diff --git a/static/assets/Accounts-B-WgN3aV.js b/static/assets/Accounts-B-WgN3aV.js new file mode 100644 index 0000000000000000000000000000000000000000..f967a07e7e368eab068fb46b65e290260a412ae5 --- /dev/null +++ b/static/assets/Accounts-B-WgN3aV.js @@ -0,0 +1 @@ +import{g as C,C as zt,h as a,d as Pt,D as Ft,i as N,o as Kt,j as Jt,c as l,a as s,x as U,y as ke,m as V,v as I,A as ft,t as n,n as b,u as S,b as f,f as Ce,F as ie,r as Te,T as Se,w as A,e as r}from"./index-DrM07qAY.js";import{_ as Ht}from"./SelectMenu.vue_vue_type_script_setup_true_lang-BOyWonLr.js";import{_ as ue}from"./Checkbox.vue_vue_type_script_setup_true_lang-DXuWSs7B.js";import{_ as Gt}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-2Xqtgrin.js";import{u as Yt}from"./useConfirmDialog-CfZjR4ey.js";import{_ as Qt}from"./HelpTip.vue_vue_type_script_setup_true_lang-DLBrB24x.js";const y={list:()=>C.get("/admin/accounts"),getConfig:()=>C.get("/admin/accounts-config"),updateConfig:x=>C.put("/admin/accounts-config",x),delete:x=>C.delete(`/admin/accounts/${x}`),disable:x=>C.put(`/admin/accounts/${x}/disable`),enable:x=>C.put(`/admin/accounts/${x}/enable`),startRegister:(x,_)=>C.post("/admin/register/start",{count:x,domain:_}),getRegisterTask:x=>C.get(`/admin/register/task/${x}`),getRegisterCurrent:()=>C.get("/admin/register/current"),startLogin:x=>C.post("/admin/login/start",x),getLoginTask:x=>C.get(`/admin/login/task/${x}`),getLoginCurrent:()=>C.get("/admin/login/current"),checkLogin:()=>C.post("/admin/login/check")},qt=zt("accounts",()=>{const x=a([]),_=a(!1);async function T(){_.value=!0;try{const u=await y.list();x.value=Array.isArray(u)?u:u.accounts||[]}finally{_.value=!1}}async function X(u){await y.delete(u),await T()}async function k(u){await y.disable(u),await T()}async function Z(u){await y.enable(u),await T()}async function J(u){await Promise.all(u.map(E=>y.enable(E))),await T()}async function g(u){await Promise.all(u.map(E=>y.disable(E))),await T()}async function z(u){await Promise.all(u.map(E=>y.delete(E))),await T()}async function ee(u){await y.updateConfig(u),await T()}return{accounts:x,isLoading:_,loadAccounts:T,deleteAccount:X,disableAccount:k,enableAccount:Z,bulkEnable:J,bulkDisable:g,bulkDelete:z,updateConfig:ee}}),Wt={class:"space-y-8"},Xt={class:"rounded-3xl border border-border bg-card p-6"},Zt={class:"flex flex-wrap items-center justify-between gap-4"},es={class:"grid w-full grid-cols-2 gap-3 sm:flex sm:w-auto sm:items-center"},ts={class:"flex w-full flex-wrap items-center gap-3 text-xs text-muted-foreground sm:w-auto sm:flex-nowrap"},ss={class:"ml-auto flex items-center gap-2 sm:ml-0"},os={class:"mt-4 flex flex-wrap items-center gap-2"},rs=["disabled"],ls=["disabled"],ns={key:0,class:"absolute right-0 z-10 mt-2 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg"},as=["disabled"],is=["disabled"],us=["disabled"],ds=["disabled"],cs=["disabled"],vs={key:0,class:"mt-6 grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3"},fs=["onClick"],xs={class:"flex items-start justify-between gap-3"},gs={class:"mt-1 font-mono text-xs text-foreground"},ms={class:"flex items-center gap-2"},ps={class:"mt-4 grid grid-cols-2 gap-3 text-xs text-muted-foreground"},bs={key:0,class:"mt-1 text-[11px]"},ys={key:0},_s={key:1},ws={class:"mt-1 text-sm font-semibold text-foreground"},hs={class:"mt-1 text-sm font-semibold text-foreground"},ks={class:"mt-4 flex flex-wrap items-center gap-2"},Cs=["onClick"],Ts=["onClick"],Ss=["onClick"],As=["onClick"],Es={key:0,class:"rounded-2xl border border-border bg-background p-4 text-center text-xs text-muted-foreground"},Ls={key:1,class:"relative mt-6 overflow-x-auto overflow-y-visible"},$s={class:"min-w-full text-left text-sm"},Rs={class:"text-xs uppercase tracking-[0.2em] text-muted-foreground"},Vs={class:"py-3 pr-4"},Is={class:"py-3 pr-6"},js={class:"inline-flex items-center gap-2"},Ds={class:"text-sm text-foreground"},Ms={key:0},Os=["onClick"],Bs={class:"py-4 pr-6 font-mono text-xs text-foreground"},Ns={class:"py-4 pr-6"},Us={class:"py-4 pr-6"},zs={key:0,class:"block text-[11px] text-muted-foreground"},Ps={class:"py-4 pr-6 text-xs"},Fs={class:"py-4 pr-6 text-xs text-muted-foreground"},Ks={class:"py-4 pr-6 text-xs text-muted-foreground"},Js={class:"py-4 text-right"},Hs={class:"flex flex-wrap justify-end gap-2"},Gs=["onClick"],Ys=["onClick"],Qs=["onClick"],qs=["onClick"],Ws={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Xs={class:"w-full max-w-md rounded-3xl border border-border bg-card p-6 shadow-xl"},Zs={class:"mt-4 space-y-4 text-sm"},eo={class:"mt-6 flex items-center justify-end gap-2"},to=["disabled"],so={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},oo={class:"w-full max-w-2xl max-h-[80vh] rounded-3xl border border-border bg-card shadow-xl"},ro={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},lo={class:"flex items-center gap-2"},no=["disabled"],ao={class:"max-h-[calc(80vh-92px)] overflow-y-auto px-6 py-4"},io={key:0,class:"rounded-2xl bg-destructive/10 px-3 py-2 text-xs text-destructive"},uo={key:1,class:"mt-4 grid gap-2 text-xs text-muted-foreground"},co={key:0},vo={class:"ml-2"},fo={class:"ml-2"},xo={class:"ml-2"},go={class:"ml-2"},mo={key:1},po={class:"ml-2"},bo={class:"ml-2"},yo={class:"ml-2"},_o={class:"ml-2"},wo={key:2,class:"mt-4 grid gap-2"},ho={key:0,class:"rounded-2xl border border-border bg-muted/30 p-3"},ko={class:"mt-2 space-y-1 text-[11px] text-muted-foreground"},Co={key:1,class:"rounded-2xl border border-border bg-muted/30 p-3"},To={class:"mt-2 space-y-1 text-[11px] text-muted-foreground"},So={key:3,class:"mt-4 rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},Ao={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Eo={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},Lo={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},$o={class:"mt-4 space-y-3 text-sm"},Ro={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Vo={class:"w-full max-w-3xl rounded-3xl border border-border bg-card p-6 shadow-xl"},Io={class:"flex items-center justify-between"},jo={class:"flex items-center gap-2"},Do={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Mo={class:"mt-4"},Oo=["readonly"],Bo={class:"mt-6 flex items-center justify-end gap-2"},No=["disabled"],De="accounts-register-task-cache",Me="accounts-login-task-cache",Oe="accounts-register-log-clear",Be="accounts-login-log-clear",Ne="accounts-register-task-cleared-id",Ue="accounts-login-task-cleared-id",Ho=Pt({__name:"Accounts",setup(x){const _=qt(),{accounts:T,isLoading:X}=Ft(_),k=Yt(),Z=a(""),J=a("all"),g=a(new Set),z=a("table"),ee=a(!1),u=a(""),E=a(!1),L=a(""),H=a(""),j=a(!1),te=a([]),se=a(1),de=a(!1),oe=a(!1),D=a(!1),Ae=a(null),ce=a(null),ve=a(null),M=a(null),O=a(null),G=a(0),Y=a(0),fe=a(!1),d=a(null),c=a(null),$=a(!1),h=a(!1),m=a(""),p=a({id:"",secure_c_ses:"",csesidx:"",config_id:"",host_c_oses:"",expires_at:""}),xe=a(null),ze=a([]),xt=[{label:"全部状态",value:"all"},{label:"正常",value:"正常"},{label:"即将过期",value:"即将过期"},{label:"已过期",value:"已过期"},{label:"手动禁用",value:"手动禁用"},{label:"错误禁用",value:"错误禁用"},{label:"429限流",value:"429限流"}],B=N(()=>{const e=Z.value.trim().toLowerCase();return T.value.filter(t=>{const o=!e||t.id.toLowerCase().includes(e),i=J.value==="all"||re(t)===J.value;return o&&i})}),R=N(()=>g.value.size),Ee=N(()=>B.value.length>0&&B.value.every(e=>g.value.has(e.id))),ge=async()=>{await _.loadAccounts(),g.value=new Set,D.value=!1},Pe=e=>{try{const t=localStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}},Fe=e=>{try{return localStorage.getItem(e)||null}catch{return null}},me=(e,t)=>{try{if(t){localStorage.setItem(e,t);return}localStorage.removeItem(e)}catch{}},Ke=(e,t)=>{try{localStorage.setItem(e,JSON.stringify(t))}catch{}},Je=e=>{try{localStorage.removeItem(e)}catch{}},He=e=>{const t=localStorage.getItem(e),o=Number(t);return Number.isFinite(o)?o:0},pe=(e,t)=>{try{localStorage.setItem(e,String(t))}catch{}},Le=(e,t=!0)=>{e&&(e.id&&e.id===M.value||(e.id&&M.value&&e.id!==M.value&&(M.value=null,me(Ne,null)),d.value=e,e.id&&e.id!==ce.value&&(ce.value=e.id,G.value=0,pe(Oe,0)),t&&Ke(De,e)))},be=(e,t=!0)=>{e&&(e.id&&e.id===O.value||(e.id&&O.value&&e.id!==O.value&&(O.value=null,me(Ue,null)),c.value=e,e.id&&e.id!==ve.value&&(ve.value=e.id,Y.value=0,pe(Be,0)),t&&Ke(Me,e)))},gt=()=>{G.value=He(Oe),Y.value=He(Be),M.value=Fe(Ne),O.value=Fe(Ue);const e=Pe(De);e&&e.id!==M.value&&(d.value=e,ce.value=e.id||null);const t=Pe(Me);t&&t.id!==O.value&&(c.value=t,ve.value=t.id||null)},mt=()=>{de.value=!0,fe.value=!1},Ge=()=>{de.value=!1},pt=async()=>{try{const e=[],t=d.value?.id,o=c.value?.id;if(t&&!ye(t)&&e.push(dt(t)),o&&!_e(o)&&e.push(ct(o)),!e.length){await je();return}await Promise.all(e)}catch(e){m.value=e?.message||"任务状态更新失败"}},bt=async()=>{oe.value=!0,await pt()},yt=()=>{oe.value=!1},_t=()=>{const e=d.value?.id||null,t=c.value?.id||null;M.value=e,O.value=t,me(Ne,e),me(Ue,t),G.value=d.value?.logs?.length||0,Y.value=c.value?.logs?.length||0,pe(Oe,G.value),pe(Be,Y.value),d.value=null,c.value=null,ce.value=null,ve.value=null,m.value="",$.value=!1,h.value=!1,P(),F(),Je(De),Je(Me)},ye=e=>!!(e&&e===M.value),_e=e=>!!(e&&e===O.value),wt=()=>{D.value=!D.value},Q=()=>{D.value=!1},Ye=e=>{if(!D.value)return;const t=e.target;Ae.value&&!Ae.value.contains(t)&&(D.value=!1)};Kt(async()=>{gt(),await ge(),await je(),Ot(),document.addEventListener("click",Ye)});const q=N(()=>{const e=d.value?.logs||[];return G.value?e.slice(G.value):e}),W=N(()=>{const e=c.value?.logs||[];return Y.value?e.slice(Y.value):e}),ht=N(()=>!!m.value||!!d.value||!!c.value||q.value.length>0||W.value.length>0),kt=N(()=>{const e=d.value?.status,t=c.value?.status;return e==="running"||e==="pending"||t==="running"||t==="pending"}),Ct=N(()=>{if(m.value)return"bg-rose-500";if(kt.value)return"bg-sky-400";const e=[];if(d.value){const v=d.value.success_count??0,w=d.value.fail_count??0,K=d.value.count??v+w;e.push({success:v,fail:w,total:K,status:d.value.status})}if(c.value){const v=c.value.success_count??0,w=c.value.fail_count??0,K=c.value.account_ids?.length??v+w;e.push({success:v,fail:w,total:K,status:c.value.status})}if(!e.length)return"bg-muted-foreground";const t=e.reduce((v,w)=>v+w.success,0),o=e.reduce((v,w)=>v+w.fail,0),i=e.reduce((v,w)=>v+(w.total||0),0);if(t>0&&o>0)return"bg-amber-400";if(o>0&&t===0)return"bg-rose-500";if(t>0&&o===0)return"bg-emerald-400";if(i===0){const v=e.every(K=>K.status==="success");if(e.some(K=>K.status==="failed"))return"bg-rose-500";if(v)return"bg-emerald-400"}return"bg-muted-foreground"});Jt(()=>{P(),F(),Mt(),document.removeEventListener("click",Ye)});const re=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?"429限流":e.cooldown_reason==="错误禁用"?"错误禁用":e.disabled?"手动禁用":e.status==="已过期"?"已过期":e.status==="即将过期"?"即将过期":"正常",Qe=e=>{const t=re(e);return t==="429限流"||t==="即将过期"?"bg-amber-200 text-amber-900":t==="错误禁用"||t==="已过期"?"bg-destructive/10 text-destructive":t==="手动禁用"?"bg-muted text-muted-foreground":"bg-emerald-500 text-white"},qe=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?!0:e.disabled||e.cooldown_reason==="错误禁用",We=e=>e==="已过期"?"过期":e==="未设置"?"未设置":e,Xe=e=>e.status==="已过期"?"text-rose-600":e.status==="即将过期"?"text-amber-700":e.status==="未设置"?"text-muted-foreground":"text-emerald-600",Ze=e=>e<60?`${e} 秒`:e<3600?`${Math.ceil(e/60)} 分钟`:`${(e/3600).toFixed(1)} 小时`,$e=e=>e.cooldown_seconds>0?"text-amber-700":e.cooldown_reason==="错误禁用"?"text-rose-600":"text-muted-foreground",et=e=>{const t=re(e);return t==="手动禁用"||t==="已过期"?"bg-muted/70":""},we=e=>{const t=new Set(g.value);t.has(e)?t.delete(e):t.add(e),g.value=t},tt=()=>{if(Ee.value){g.value=new Set;return}g.value=new Set(B.value.map(e=>e.id))},Tt=(e,t)=>e.id||`account_${t+1}`,St=async()=>(await y.getConfig()).accounts.map((t,o)=>({...t,id:Tt(t,o)})),st=e=>`${e.time} [${e.level}] ${e.message}`,At=(e,t)=>{let o=-1;for(let v=0;v{u.value="";try{const t=await St();At(t,e)}catch(t){u.value=t.message||"加载账号配置失败"}},Et=async()=>{L.value="";try{const e=await y.getConfig();te.value=Array.isArray(e.accounts)?e.accounts:[],H.value=JSON.stringify(lt(te.value),null,2),j.value=!0,E.value=!0}catch(e){L.value=e.message||"加载账号配置失败"}},Re=()=>{E.value=!1,L.value="",j.value=!1},rt=()=>{const e=JSON.parse(H.value);if(!Array.isArray(e))throw new Error("配置格式必须是数组。");return e},Lt=e=>typeof e!="string"||!e?e:e.length<=6?`${e.slice(0,2)}****`:`${e.slice(0,3)}****`,lt=e=>{const t=new Set(["secure_c_ses","csesidx","config_id","host_c_oses","mail_password"]);return e.map(o=>{const i={...o};return t.forEach(v=>{const w=i[v];w&&(i[v]=Lt(w))}),i})},$t=()=>{if(L.value="",!j.value){try{te.value=rt()}catch(e){L.value=e.message||"JSON 格式错误";return}H.value=JSON.stringify(lt(te.value),null,2),j.value=!0;return}H.value=JSON.stringify(te.value,null,2),j.value=!1},Rt=async()=>{L.value="";try{const e=rt();await _.updateConfig(e),Re()}catch(e){L.value=e.message||"保存失败"}},Ve=()=>{ee.value=!1,u.value=""},Vt=async()=>{if(xe.value===null)return;const e=[...ze.value];e[xe.value]={...e[xe.value],id:p.value.id,secure_c_ses:p.value.secure_c_ses,csesidx:p.value.csesidx,config_id:p.value.config_id,host_c_oses:p.value.host_c_oses||void 0,expires_at:p.value.expires_at||void 0};try{await _.updateConfig(e),Ve()}catch(t){u.value=t.message||"保存失败"}},It=async()=>{await _.bulkEnable(Array.from(g.value)),g.value=new Set},jt=async()=>{await k.ask({title:"批量禁用",message:"确定要批量禁用选中的账号吗?"})&&(await _.bulkDisable(Array.from(g.value)),g.value=new Set)},Dt=async()=>{await k.ask({title:"批量删除",message:"确定要批量删除选中的账号吗?",confirmText:"删除"})&&(await _.bulkDelete(Array.from(g.value)),g.value=new Set)},nt=async e=>{await _.enableAccount(e)},at=async e=>{await k.ask({title:"禁用账号",message:"确定要禁用该账号吗?"})&&await _.disableAccount(e)},it=async e=>{await k.ask({title:"删除账号",message:"确定要删除该账号吗?",confirmText:"删除"})&&await _.deleteAccount(e)};let le=null,ne=null,ae=null,he=!1;const P=()=>{le!==null&&(window.clearInterval(le),le=null)},F=()=>{ne!==null&&(window.clearInterval(ne),ne=null)},Mt=()=>{ae!==null&&(window.clearInterval(ae),ae=null),he=!1},ut=e=>e==="pending"?"等待中":e==="running"?"执行中":e==="success"?"成功":e==="failed"?"失败":e,dt=async e=>{if(ye(e)){P();return}const t=await y.getRegisterTask(e);if(ye(t.id)){P();return}Le(t),t.status!=="running"&&t.status!=="pending"&&($.value=!1,P(),await ge())},ct=async e=>{if(_e(e)){F();return}const t=await y.getLoginTask(e);if(_e(t.id)){F();return}be(t),t.status!=="running"&&t.status!=="pending"&&(h.value=!1,F(),await ge())},vt=e=>{P(),le=window.setInterval(()=>{dt(e).catch(t=>{m.value=t?.message||"注册任务更新失败",P(),$.value=!1})},3e3)},Ie=e=>{F(),ne=window.setInterval(()=>{ct(e).catch(t=>{m.value=t?.message||"刷新任务更新失败",F(),h.value=!1})},3e3)},Ot=()=>{ae===null&&(ae=window.setInterval(async()=>{if(!he&&!oe.value&&!(le!==null||ne!==null)&&!(!$.value&&!h.value&&!d.value&&!c.value)){he=!0;try{await je()}catch(e){m.value=e?.message||"后台刷新失败"}finally{he=!1}}},6e3))},je=async()=>{try{const e=await y.getRegisterCurrent();e&&"id"in e&&!ye(e.id)&&(Le(e),(e.status==="running"||e.status==="pending")&&($.value=!0,vt(e.id)))}catch(e){m.value=e.message||"加载注册任务失败"}try{const e=await y.getLoginCurrent();e&&"id"in e&&!_e(e.id)&&(be(e),(e.status==="running"||e.status==="pending")&&(h.value=!0,Ie(e.id)))}catch(e){m.value=e.message||"加载刷新任务失败"}},Bt=async()=>{m.value="",$.value=!0;try{const e=Number.isFinite(se.value)&&se.value>0?se.value:void 0,t=await y.startRegister(e);Le(t),vt(t.id),de.value=!1,oe.value=!0}catch(e){m.value=e.message||"启动注册失败",$.value=!1}},Nt=async()=>{if(g.value.size){m.value="",h.value=!0;try{const e=await y.startLogin(Array.from(g.value));be(e),Ie(e.id)}catch(e){m.value=e.message||"启动刷新失败",h.value=!1}}},Ut=async()=>{m.value="",h.value=!0;try{await y.checkLogin();const e=await y.getLoginCurrent();if(e&&"id"in e){be(e),Ie(e.id);return}h.value=!1}catch(e){m.value=e.message||"触发刷新失败",h.value=!1}};return(e,t)=>(r(),l(ie,null,[s("div",Wt,[s("section",Xt,[s("div",Zt,[s("div",es,[V(s("input",{"onUpdate:modelValue":t[0]||(t[0]=o=>Z.value=o),type:"text",placeholder:"搜索账号 ID",class:"w-full rounded-full border border-input bg-background px-4 py-2 text-sm sm:w-48"},null,512),[[I,Z.value]]),U(Ht,{modelValue:J.value,"onUpdate:modelValue":t[1]||(t[1]=o=>J.value=o),options:xt},null,8,["modelValue"])]),s("div",ts,[U(ue,{modelValue:Ee.value,"onUpdate:modelValue":tt},{default:ft(()=>[...t[24]||(t[24]=[Ce(" 全选 ",-1)])]),_:1},8,["modelValue"]),s("span",null,"已选 "+n(R.value)+" / "+n(B.value.length)+" 个账号",1),s("div",ss,[s("button",{type:"button",class:b(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",z.value==="table"?"bg-accent text-accent-foreground":""]),onClick:t[2]||(t[2]=o=>z.value="table"),"aria-label":"列表视图"},[...t[25]||(t[25]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])],2),s("button",{type:"button",class:b(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",z.value==="card"?"bg-accent text-accent-foreground":""]),onClick:t[3]||(t[3]=o=>z.value="card"),"aria-label":"卡片视图"},[...t[26]||(t[26]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h7v6H4V6zm9 0h7v6h-7V6zM4 14h7v4H4v-4zm9 0h7v4h-7v-4z"})],-1)])],2)])])]),s("div",os,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:S(X),onClick:ge}," 刷新列表 ",8,rs),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:Et}," 账户配置 "),s("button",{class:"rounded-full border border-border bg-background px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:$.value,onClick:mt}," 添加账户 ",8,ls),s("div",{ref_key:"moreActionsRef",ref:Ae,class:"relative"},[s("button",{class:b(["flex items-center gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary",D.value?"bg-accent text-accent-foreground":""]),onClick:wt},[t[27]||(t[27]=Ce(" 更多操作 ",-1)),t[28]||(t[28]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1)),ht.value?(r(),l("span",{key:0,class:b(["ml-1 h-2 w-2 rounded-full",Ct.value]),"aria-hidden":"true"},null,2)):f("",!0)],2),D.value?(r(),l("div",ns,[s("button",{type:"button",class:"flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm text-foreground transition-colors hover:bg-accent",onClick:t[4]||(t[4]=o=>{bt(),Q()})}," 任务状态 "),t[29]||(t[29]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:b(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",h.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:h.value,onClick:t[5]||(t[5]=o=>{Ut(),Q()})}," 刷新过期 ",10,as),s("button",{type:"button",class:b(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",!R.value||h.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:!R.value||h.value,onClick:t[6]||(t[6]=o=>{Nt(),Q()})}," 刷新选中 ",10,is),t[30]||(t[30]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:b(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",R.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!R.value,onClick:t[7]||(t[7]=o=>{It(),Q()})}," 批量启用 ",10,us),s("button",{type:"button",class:b(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",R.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!R.value,onClick:t[8]||(t[8]=o=>{jt(),Q()})}," 批量禁用 ",10,ds),s("button",{type:"button",class:b(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",R.value?"text-destructive hover:bg-destructive/10":"cursor-not-allowed text-muted-foreground"]),disabled:!R.value,onClick:t[9]||(t[9]=o=>{Dt(),Q()})}," 批量删除 ",10,cs)])):f("",!0)],512)]),z.value==="card"?(r(),l("div",vs,[(r(!0),l(ie,null,Te(B.value,o=>(r(),l("div",{key:o.id,class:b(["rounded-2xl border border-border bg-card p-4",et(o)]),onClick:i=>we(o.id)},[s("div",xs,[s("div",null,[t[31]||(t[31]=s("p",{class:"text-xs text-muted-foreground"},"账号 ID",-1)),s("p",gs,n(o.id),1)]),s("div",ms,[U(ue,{modelValue:g.value.has(o.id),"onUpdate:modelValue":i=>we(o.id),onClick:t[10]||(t[10]=A(()=>{},["stop"]))},null,8,["modelValue","onUpdate:modelValue"]),s("span",{class:b(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",Qe(o)])},n(re(o)),3)])]),s("div",ps,[s("div",null,[t[32]||(t[32]=s("p",null,"剩余时间",-1)),s("p",{class:b(["mt-1 text-sm font-semibold",Xe(o)])},n(We(o.remaining_display)),3),o.expires_at?(r(),l("p",bs,n(o.expires_at),1)):f("",!0)]),s("div",null,[t[33]||(t[33]=s("p",null,"冷却",-1)),s("p",{class:b(["mt-1",$e(o)])},[o.cooldown_seconds>0?(r(),l("span",ys,n(Ze(o.cooldown_seconds))+" · "+n(o.cooldown_reason),1)):(r(),l("span",_s,n(o.cooldown_reason||"无冷却"),1))],2)]),s("div",null,[t[34]||(t[34]=s("p",null,"失败数",-1)),s("p",ws,n(o.error_count),1)]),s("div",null,[t[35]||(t[35]=s("p",null,"会话数",-1)),s("p",hs,n(o.conversation_count),1)])]),s("div",ks,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A(i=>ot(o.id),["stop"])}," 编辑 ",8,Cs),qe(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[11]||(t[11]=A(()=>{},["stop"])),i=>nt(o.id)]}," 启用 ",8,Ts)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[12]||(t[12]=A(()=>{},["stop"])),i=>at(o.id)]}," 禁用 ",8,Ss)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:[t[13]||(t[13]=A(()=>{},["stop"])),i=>it(o.id)]}," 删除 ",8,As)])],10,fs))),128)),!B.value.length&&!S(X)?(r(),l("div",Es," 暂无账号数据,请检查后台配置。 ")):f("",!0)])):(r(),l("div",Ls,[s("table",$s,[s("thead",Rs,[s("tr",null,[s("th",Vs,[U(ue,{modelValue:Ee.value,"onUpdate:modelValue":tt},null,8,["modelValue"])]),t[37]||(t[37]=s("th",{class:"py-3 pr-6"},"账号 ID",-1)),t[38]||(t[38]=s("th",{class:"py-3 pr-6"},"状态",-1)),s("th",Is,[s("span",js,[t[36]||(t[36]=Ce(" 剩余/过期 ",-1)),U(Qt,{text:"过期时间为 12 小时,账户过期以北京时间为准。"})])]),t[39]||(t[39]=s("th",{class:"py-3 pr-6"},"冷却",-1)),t[40]||(t[40]=s("th",{class:"py-3 pr-6"},"失败数",-1)),t[41]||(t[41]=s("th",{class:"py-3 pr-6"},"会话数",-1)),t[42]||(t[42]=s("th",{class:"py-3 text-right"},"操作",-1))])]),s("tbody",Ds,[!B.value.length&&!S(X)?(r(),l("tr",Ms,[...t[43]||(t[43]=[s("td",{colspan:"8",class:"py-8 text-center text-muted-foreground"}," 暂无账号数据,请检查后台配置。 ",-1)])])):f("",!0),(r(!0),l(ie,null,Te(B.value,o=>(r(),l("tr",{key:o.id,class:b(["border-t border-border",et(o)]),onClick:i=>we(o.id)},[s("td",{class:"py-4 pr-4",onClick:t[14]||(t[14]=A(()=>{},["stop"]))},[U(ue,{modelValue:g.value.has(o.id),"onUpdate:modelValue":i=>we(o.id)},null,8,["modelValue","onUpdate:modelValue"])]),s("td",Bs,n(o.id),1),s("td",Ns,[s("span",{class:b(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",Qe(o)])},n(re(o)),3)]),s("td",Us,[s("div",{class:b(["text-sm font-semibold",Xe(o)])},n(We(o.remaining_display)),3),o.expires_at?(r(),l("span",zs,n(o.expires_at),1)):f("",!0)]),s("td",Ps,[o.cooldown_seconds>0?(r(),l("span",{key:0,class:b($e(o))},n(Ze(o.cooldown_seconds))+" · "+n(o.cooldown_reason),3)):(r(),l("span",{key:1,class:b($e(o))},n(o.cooldown_reason||"无冷却"),3))]),s("td",Fs,n(o.error_count),1),s("td",Ks,n(o.conversation_count),1),s("td",Js,[s("div",Hs,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A(i=>ot(o.id),["stop"])}," 编辑 ",8,Gs),qe(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A(i=>nt(o.id),["stop"])}," 启用 ",8,Ys)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A(i=>at(o.id),["stop"])}," 禁用 ",8,Qs)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:A(i=>it(o.id),["stop"])}," 删除 ",8,qs)])])],10,Os))),128))])])]))])]),U(Gt,{open:S(k).open.value,title:S(k).title.value,message:S(k).message.value,"confirm-text":S(k).confirmText.value,"cancel-text":S(k).cancelText.value,onConfirm:S(k).confirm,onCancel:S(k).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(r(),ke(Se,{to:"body"},[de.value?(r(),l("div",Ws,[s("div",Xs,[s("div",{class:"flex items-center justify-between"},[t[44]||(t[44]=s("div",null,[s("p",{class:"text-sm font-medium text-foreground"},"添加账户"),s("p",{class:"mt-1 text-xs text-muted-foreground"},"创建 DuckMail 账号并自动注册")],-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Ge}," 关闭 ")]),s("div",Zs,[t[46]||(t[46]=s("label",{class:"block text-xs text-muted-foreground"},"注册数量",-1)),V(s("input",{"onUpdate:modelValue":t[15]||(t[15]=o=>se.value=o),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[I,se.value,void 0,{number:!0}]]),t[47]||(t[47]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"}," 默认域名来自设置面板(可在“配置面板”中修改) ",-1)),t[48]||(t[48]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-[11px] leading-relaxed text-muted-foreground"},[s("div",{class:"space-y-2"},[s("p",{class:"font-semibold text-rose-600"},"使用限制:禁止将本工具用于商业用途或大规模滥用。"),s("p",null,"用途说明:本项目仅用于学习、研究和技术交流,旨在探索浏览器自动化与系统集成。"),s("p",null,"使用责任:因使用本工具产生的一切后果由使用者自行承担,包括但不限于账号封禁、数据损失及法律责任。"),s("p",null,"合规要求:使用者应遵守所在国家/地区法律法规及 Google 服务条款,作者不对任何违规使用行为负责。"),s("p",null,"无担保:本项目按“现状”提供,不提供任何明示或暗示的担保,包括适销性或特定用途适用性。"),s("p",null,"第三方服务:本项目依赖 DuckMail API 等第三方服务,其可用性与稳定性不受作者控制。"),s("p",null,"维护声明:作者保留随时停止维护或变更功能的权利,恕不另行通知。")])],-1)),U(ue,{modelValue:fe.value,"onUpdate:modelValue":t[16]||(t[16]=o=>fe.value=o)},{default:ft(()=>[...t[45]||(t[45]=[Ce(" 我已阅读并同意上述说明与限制 ",-1)])]),_:1},8,["modelValue"])]),s("div",eo,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Ge}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:$.value||!fe.value,onClick:Bt}," 开始注册 ",8,to)])])])):f("",!0)])),(r(),ke(Se,{to:"body"},[oe.value?(r(),l("div",so,[s("div",oo,[s("div",ro,[t[49]||(t[49]=s("div",null,[s("p",{class:"text-sm font-medium text-foreground"},"任务状态"),s("p",{class:"mt-1 text-xs text-muted-foreground"},"注册与刷新任务的状态与日志")],-1)),s("div",lo,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-muted-foreground transition-colors hover:border-primary hover:text-primary",disabled:!q.value.length&&!W.value.length&&!d.value&&!c.value&&!m.value,onClick:_t}," 清空日志 ",8,no),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:yt}," 关闭 ")])]),s("div",ao,[m.value?(r(),l("div",io,n(m.value),1)):f("",!0),d.value||c.value?(r(),l("div",uo,[d.value?(r(),l("div",co,[t[50]||(t[50]=s("span",{class:"font-medium text-foreground"},"注册任务",-1)),s("span",vo,"状态:"+n(ut(d.value.status)),1),s("span",fo,"进度:"+n(d.value.progress)+"/"+n(d.value.count),1),s("span",xo,"成功:"+n(d.value.success_count),1),s("span",go,"失败:"+n(d.value.fail_count),1)])):f("",!0),c.value?(r(),l("div",mo,[t[51]||(t[51]=s("span",{class:"font-medium text-foreground"},"刷新任务",-1)),s("span",po,"状态:"+n(ut(c.value.status)),1),s("span",bo,"进度:"+n(c.value.progress)+"/"+n(c.value.account_ids.length),1),s("span",yo,"成功:"+n(c.value.success_count),1),s("span",_o,"失败:"+n(c.value.fail_count),1)])):f("",!0)])):f("",!0),q.value.length||W.value.length?(r(),l("div",wo,[q.value.length?(r(),l("div",ho,[t[52]||(t[52]=s("p",{class:"text-xs font-semibold text-foreground"},"注册日志",-1)),s("div",ko,[(r(!0),l(ie,null,Te(q.value,(o,i)=>(r(),l("div",{key:`reg-${i}`,class:"font-mono"},n(st(o)),1))),128))])])):f("",!0),W.value.length?(r(),l("div",Co,[t[53]||(t[53]=s("p",{class:"text-xs font-semibold text-foreground"},"刷新日志",-1)),s("div",To,[(r(!0),l(ie,null,Te(W.value,(o,i)=>(r(),l("div",{key:`login-${i}`,class:"font-mono"},n(st(o)),1))),128))])])):f("",!0)])):f("",!0),!m.value&&!d.value&&!c.value&&!q.value.length&&!W.value.length?(r(),l("div",So," 暂无任务 ")):f("",!0)])])])):f("",!0)])),(r(),ke(Se,{to:"body"},[ee.value?(r(),l("div",Ao,[s("div",Eo,[s("div",{class:"flex items-center justify-between"},[t[54]||(t[54]=s("p",{class:"text-sm font-medium text-foreground"},"编辑账号",-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Ve}," 关闭 ")]),u.value?(r(),l("div",Lo,n(u.value),1)):f("",!0),s("div",$o,[t[55]||(t[55]=s("label",{class:"block text-xs text-muted-foreground"},"账号 ID",-1)),V(s("input",{"onUpdate:modelValue":t[17]||(t[17]=o=>p.value.id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",disabled:""},null,512),[[I,p.value.id]]),t[56]||(t[56]=s("label",{class:"block text-xs text-muted-foreground"},"secure_c_ses",-1)),V(s("textarea",{"onUpdate:modelValue":t[18]||(t[18]=o=>p.value.secure_c_ses=o),class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",rows:"3"},null,512),[[I,p.value.secure_c_ses]]),t[57]||(t[57]=s("label",{class:"block text-xs text-muted-foreground"},"csesidx",-1)),V(s("input",{"onUpdate:modelValue":t[19]||(t[19]=o=>p.value.csesidx=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[I,p.value.csesidx]]),t[58]||(t[58]=s("label",{class:"block text-xs text-muted-foreground"},"config_id",-1)),V(s("input",{"onUpdate:modelValue":t[20]||(t[20]=o=>p.value.config_id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[I,p.value.config_id]]),t[59]||(t[59]=s("label",{class:"block text-xs text-muted-foreground"},"host_c_oses",-1)),V(s("input",{"onUpdate:modelValue":t[21]||(t[21]=o=>p.value.host_c_oses=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[I,p.value.host_c_oses]]),t[60]||(t[60]=s("label",{class:"block text-xs text-muted-foreground"},"expires_at",-1)),V(s("input",{"onUpdate:modelValue":t[22]||(t[22]=o=>p.value.expires_at=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"2025-12-23 10:59:21"},null,512),[[I,p.value.expires_at]])]),s("div",{class:"mt-6 flex items-center justify-end gap-2"},[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Ve}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Vt}," 保存 ")])])])):f("",!0)])),(r(),ke(Se,{to:"body"},[E.value?(r(),l("div",Ro,[s("div",Vo,[s("div",Io,[t[61]||(t[61]=s("p",{class:"text-sm font-medium text-foreground"},"账户配置(JSON)",-1)),s("div",jo,[s("button",{class:"rounded-full bg-foreground px-3 py-1 text-xs text-background transition-opacity hover:opacity-90",onClick:$t},n(j.value?"显示原文":"脱敏显示"),1),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Re}," 关闭 ")])]),L.value?(r(),l("div",Do,n(L.value),1)):f("",!0),s("div",Mo,[V(s("textarea",{"onUpdate:modelValue":t[23]||(t[23]=o=>H.value=o),class:"h-96 w-full rounded-2xl border border-input bg-background px-4 py-3 font-mono text-xs text-foreground",spellcheck:"false",readonly:j.value},null,8,Oo),[[I,H.value]])]),s("div",Bo,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Re}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Rt,disabled:j.value}," 保存 ",8,No)])])])):f("",!0)]))],64))}});export{Ho as default}; diff --git a/static/assets/Accounts-B-ft7iE1.js b/static/assets/Accounts-B-ft7iE1.js new file mode 100644 index 0000000000000000000000000000000000000000..bb1751236dd454a88de313de1af67c70c2270379 --- /dev/null +++ b/static/assets/Accounts-B-ft7iE1.js @@ -0,0 +1,2 @@ +import{g as E,C as ts,h as a,d as ss,D as os,i as H,o as rs,x as ls,j as ns,c as l,a as s,y as J,z as Re,p as A,v as $,A as Tt,t as n,n as g,u as R,b as m,f as pe,F as ge,r as Ve,T as je,w as V,e as r,E as as}from"./index-Bx7qSams.js";import{_ as is}from"./SelectMenu.vue_vue_type_script_setup_true_lang-CJjLLYhZ.js";import{_ as be}from"./Checkbox.vue_vue_type_script_setup_true_lang-BCrOKjX_.js";import{_ as ds}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-CLzCrpfO.js";import{u as us}from"./useConfirmDialog-DIY3VaSP.js";import{_ as cs}from"./HelpTip.vue_vue_type_script_setup_true_lang-BaMbEJhq.js";const h={list:()=>E.get("/admin/accounts"),getConfig:()=>E.get("/admin/accounts-config"),updateConfig:b=>E.put("/admin/accounts-config",b),delete:b=>E.delete(`/admin/accounts/${b}`),disable:b=>E.put(`/admin/accounts/${b}/disable`),enable:b=>E.put(`/admin/accounts/${b}/enable`),startRegister:(b,w)=>E.post("/admin/register/start",{count:b,domain:w}),getRegisterTask:b=>E.get(`/admin/register/task/${b}`),getRegisterCurrent:()=>E.get("/admin/register/current"),startLogin:b=>E.post("/admin/login/start",b),getLoginTask:b=>E.get(`/admin/login/task/${b}`),getLoginCurrent:()=>E.get("/admin/login/current"),checkLogin:()=>E.post("/admin/login/check")},fs=ts("accounts",()=>{const b=a([]),w=a(!1);async function L(){w.value=!0;try{const u=await h.list();b.value=Array.isArray(u)?u:u.accounts||[]}finally{w.value=!1}}async function re(u){await h.delete(u),await L()}async function C(u){await h.disable(u),await L()}async function le(u){await h.enable(u),await L()}async function Z(u){await Promise.all(u.map(j=>h.enable(j))),await L()}async function p(u){await Promise.all(u.map(j=>h.disable(j))),await L()}async function G(u){await Promise.all(u.map(j=>h.delete(j))),await L()}async function ne(u){await h.updateConfig(u),await L()}return{accounts:b,isLoading:w,loadAccounts:L,deleteAccount:re,disableAccount:C,enableAccount:le,bulkEnable:Z,bulkDisable:p,bulkDelete:G,updateConfig:ne}}),vs={class:"space-y-8"},xs={class:"rounded-3xl border border-border bg-card p-6"},ms={class:"flex flex-wrap items-center justify-between gap-4"},ps={class:"grid w-full grid-cols-2 gap-3 sm:flex sm:w-auto sm:items-center"},gs={class:"flex w-full flex-wrap items-center gap-3 text-xs text-muted-foreground sm:w-auto sm:flex-nowrap"},bs={class:"ml-auto flex items-center gap-2 sm:ml-0"},ys={class:"mt-4 flex flex-wrap items-center gap-2"},_s=["disabled"],hs=["disabled"],ws={key:0,class:"absolute right-0 z-10 mt-2 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg"},ks=["disabled"],Cs=["disabled"],Ts=["disabled"],Ss=["disabled"],Es=["disabled"],Is={key:0,class:"mt-6 grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3"},Ls=["onClick"],As={class:"flex items-start justify-between gap-3"},$s={class:"mt-1 font-mono text-xs text-foreground"},Rs={class:"flex items-center gap-2"},Vs={class:"mt-4 grid grid-cols-2 gap-3 text-xs text-muted-foreground"},js={key:0,class:"mt-1 text-[11px]"},Ms={key:0},Ds={key:1},Os={class:"mt-1 text-sm font-semibold text-foreground"},Bs={class:"mt-1 text-sm font-semibold text-foreground"},Ns={class:"mt-4 flex flex-wrap items-center gap-2"},Us=["onClick"],zs=["onClick"],Ps=["onClick"],Fs=["onClick"],Ks={key:0,class:"rounded-2xl border border-border bg-background p-4 text-center text-xs text-muted-foreground"},Hs={key:1,class:"relative mt-6 overflow-x-auto overflow-y-visible"},Js={class:"min-w-full text-left text-sm"},Gs={class:"text-xs uppercase tracking-[0.2em] text-muted-foreground"},Ys={class:"py-3 pr-4"},Qs={class:"py-3 pr-6"},qs={class:"inline-flex items-center gap-2"},Xs={class:"text-sm text-foreground"},Ws={key:0},Zs=["onClick"],eo={class:"py-4 pr-6 font-mono text-xs text-foreground"},to={class:"py-4 pr-6"},so={class:"py-4 pr-6"},oo={key:0,class:"block text-[11px] text-muted-foreground"},ro={class:"py-4 pr-6 text-xs"},lo={class:"py-4 pr-6 text-xs text-muted-foreground"},no={class:"py-4 pr-6 text-xs text-muted-foreground"},ao={class:"py-4 text-right"},io={class:"flex flex-wrap justify-end gap-2"},uo=["onClick"],co=["onClick"],fo=["onClick"],vo=["onClick"],xo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},mo={class:"flex max-h-[90vh] w-full max-w-lg flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},po={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},go={class:"mt-1 text-xs text-muted-foreground"},bo={class:"scrollbar-slim flex-1 overflow-y-auto px-6 py-4"},yo={class:"space-y-4 text-sm"},_o={class:"flex rounded-full border border-border bg-muted/30 p-1 text-xs"},ho={key:0,class:"space-y-4"},wo={key:1,class:"space-y-4"},ko={key:0,class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-xs text-rose-600"},Co={class:"border-t border-border/60 px-6 py-4"},To={class:"flex items-center justify-end gap-2"},So=["disabled"],Eo=["disabled"],Io={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Lo={class:"flex h-[80vh] w-full max-w-2xl flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},Ao={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},$o={class:"flex items-center gap-2"},Ro=["disabled"],Vo={class:"flex min-h-0 flex-1 flex-col px-6 py-4"},jo={key:0,class:"rounded-2xl bg-destructive/10 px-3 py-2 text-xs text-destructive"},Mo={key:1,class:"grid gap-3 text-xs text-muted-foreground"},Do={key:0,class:"space-y-1"},Oo={class:"flex flex-wrap gap-x-4 gap-y-1"},Bo={key:1,class:"space-y-1"},No={class:"flex flex-wrap gap-x-4 gap-y-1"},Uo={key:2,class:"mt-4 flex min-h-0 flex-1 flex-col"},zo={key:0,class:"space-y-2"},Po={class:"space-y-1 text-[11px] text-muted-foreground"},Fo={key:1,class:"mt-4 space-y-2"},Ko={class:"space-y-1 text-[11px] text-muted-foreground"},Ho={key:3,class:"mt-4 rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},Jo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Go={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},Yo={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Qo={class:"mt-4 space-y-3 text-sm"},qo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Xo={class:"w-full max-w-3xl rounded-3xl border border-border bg-card p-6 shadow-xl"},Wo={class:"flex items-center justify-between"},Zo={class:"flex items-center gap-2"},er={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},tr={class:"mt-4"},sr=["readonly"],or={class:"mt-6 flex items-center justify-end gap-2"},rr=["disabled"],He="accounts-register-task-cache",Je="accounts-login-task-cache",Ge="accounts-register-log-clear",Ye="accounts-login-log-clear",Qe="accounts-register-task-cleared-id",qe="accounts-login-task-cleared-id",St="1970-01-01 00:00:00",cr=ss({__name:"Accounts",setup(b){const w=fs(),{accounts:L,isLoading:re}=os(w),C=us(),le=a(""),Z=a("all"),p=a(new Set),G=a("table"),ne=a(!1),u=a(""),j=a(!1),M=a(""),ee=a(""),B=a(!1),ae=a([]),ie=a(1),ye=a(!1),N=a("register"),de=a(""),U=a(""),_e=a(!1),Y=a(!1),z=a(!1),Me=a(null),he=a(null),we=a(null),P=a(null),F=a(null),te=a(0),se=a(0),ue=a(!1),c=a(null),f=a(null),Xe=a(null),D=a(!1),T=a(!1),y=a(""),_=a({id:"",secure_c_ses:"",csesidx:"",config_id:"",host_c_oses:"",expires_at:""}),ke=a(null),We=a([]),Et=[{label:"全部状态",value:"all"},{label:"正常",value:"正常"},{label:"即将过期",value:"即将过期"},{label:"已过期",value:"已过期"},{label:"手动禁用",value:"手动禁用"},{label:"错误禁用",value:"错误禁用"},{label:"429限流",value:"429限流"}],K=H(()=>{const e=le.value.trim().toLowerCase();return L.value.filter(t=>{const o=!e||t.id.toLowerCase().includes(e),i=Z.value==="all"||fe(t)===Z.value;return o&&i})}),O=H(()=>p.value.size),De=H(()=>K.value.length>0&&K.value.every(e=>p.value.has(e.id))),ce=async()=>{await w.loadAccounts(),p.value=new Set,z.value=!1},Ze=e=>{try{const t=localStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}},et=e=>{try{return localStorage.getItem(e)||null}catch{return null}},Ce=(e,t)=>{try{if(t){localStorage.setItem(e,t);return}localStorage.removeItem(e)}catch{}},tt=(e,t)=>{try{localStorage.setItem(e,JSON.stringify(t))}catch{}},st=e=>{try{localStorage.removeItem(e)}catch{}},ot=e=>{const t=localStorage.getItem(e),o=Number(t);return Number.isFinite(o)?o:0},Te=(e,t)=>{try{localStorage.setItem(e,String(t))}catch{}},Oe=(e,t=!0)=>{e&&(e.id&&e.id===P.value||(e.id&&P.value&&e.id!==P.value&&(P.value=null,Ce(Qe,null)),c.value=e,e.id&&e.id!==he.value&&(he.value=e.id,te.value=0,Te(Ge,0)),t&&tt(He,e)))},Se=(e,t=!0)=>{e&&(e.id&&e.id===F.value||(e.id&&F.value&&e.id!==F.value&&(F.value=null,Ce(qe,null)),f.value=e,e.id&&e.id!==we.value&&(we.value=e.id,se.value=0,Te(Ye,0)),t&&tt(Je,e)))},It=()=>{te.value=ot(Ge),se.value=ot(Ye),P.value=et(Qe),F.value=et(qe);const e=Ze(He);e&&e.id!==P.value&&(c.value=e,he.value=e.id||null);const t=Ze(Je);t&&t.id!==F.value&&(f.value=t,we.value=t.id||null)},Lt=()=>{ye.value=!0,N.value="register",de.value="",U.value="",_e.value=!1,ue.value=!1},Be=()=>{ye.value=!1},At=e=>{const t=[],o=[];return e.split(/\r?\n/).map(d=>d.trim()).filter(Boolean).forEach((d,x)=>{const v=d.split("----").map(S=>S.trim()),k=x+1;if(v.length){if(v[0].toLowerCase()==="duckmail"){if(v.length<3||!v[1]||!v[2]){o.push(`第 ${k} 行格式错误(duckmail)`);return}const S=v[1],$e=v.slice(2).join("----");t.push({id:S,secure_c_ses:"",csesidx:"",config_id:"",expires_at:St,mail_provider:"duckmail",mail_address:S,mail_password:$e});return}if(v.length>=4&&v[0]&&v[2]&&v[3]){const S=v[0],$e=v[1]||"",I=v[2],es=v.slice(3).join("----");t.push({id:S,secure_c_ses:"",csesidx:"",config_id:"",expires_at:St,mail_provider:"microsoft",mail_address:S,mail_password:$e,mail_client_id:I,mail_refresh_token:es,mail_tenant:"consumers"});return}o.push(`第 ${k} 行格式错误`)}}),{items:t,errors:o}},$t=async()=>{if(U.value="",!de.value.trim()){U.value="请输入导入内容";return}const{items:e,errors:t}=At(de.value);if(!e.length){U.value=t.length?t.join(","):"未识别到有效账号";return}if(t.length){U.value=t.slice(0,3).join(",");return}_e.value=!0;try{const i=[...await ft()],d=new Map(i.map((k,S)=>[k.id,S])),x=[];e.forEach(k=>{const S=d.get(k.id||"");if(S===void 0){i.push(k),x.push(k.id);return}const I={...i[S],mail_provider:k.mail_provider,mail_address:k.mail_address};k.mail_provider==="microsoft"?(I.mail_client_id=k.mail_client_id,I.mail_refresh_token=k.mail_refresh_token,I.mail_tenant=k.mail_tenant,I.mail_password=k.mail_password):(I.mail_password=k.mail_password,I.mail_client_id=void 0,I.mail_refresh_token=void 0,I.mail_tenant=void 0),i[S]=I,x.push(k.id)}),await w.updateConfig(i),await ce(),p.value=new Set(x),Be(),await C.ask({title:"导入成功",message:`已导入 ${x.length} 个账户并自动选中。是否立即刷新这些账户以获取 Cookie?`,confirmText:"立即刷新",cancelText:"稍后手动刷新"})&&await Ct()}catch(o){U.value=o.message||"导入失败"}finally{_e.value=!1}},Rt=async()=>{try{const e=[],t=c.value?.id,o=f.value?.id;if(t&&!Ee(t)&&e.push(ht(t)),o&&!Ie(o)&&e.push(wt(o)),!e.length){await Ke();return}await Promise.all(e)}catch(e){y.value=e?.message||"任务状态更新失败"}},Ne=async()=>{Y.value=!0,await Rt()},Vt=()=>{Y.value=!1},jt=()=>{const e=c.value?.id||null,t=f.value?.id||null;P.value=e,F.value=t,Ce(Qe,e),Ce(qe,t),te.value=c.value?.logs?.length||0,se.value=f.value?.logs?.length||0,Te(Ge,te.value),Te(Ye,se.value),c.value=null,f.value=null,he.value=null,we.value=null,y.value="",D.value=!1,T.value=!1,X(),W(),st(He),st(Je)},Ee=e=>!!(e&&e===P.value),Ie=e=>!!(e&&e===F.value),Mt=()=>{z.value=!z.value},oe=()=>{z.value=!1},rt=e=>{if(!z.value)return;const t=e.target;Me.value&&!Me.value.contains(t)&&(z.value=!1)};rs(async()=>{It(),await ce(),await Ke(),Xt(),document.addEventListener("click",rt)});const Q=H(()=>{const e=c.value?.logs||[];return te.value?e.slice(te.value):e}),q=H(()=>{const e=f.value?.logs||[];return se.value?e.slice(se.value):e}),Dt=H(()=>!!y.value||!!c.value||!!f.value||Q.value.length>0||q.value.length>0),Ot=async()=>{await as();const e=Xe.value;e&&(e.scrollTop=e.scrollHeight)};ls([Q,q,Y],async()=>{Y.value&&await Ot()},{deep:!0});const Bt=H(()=>{const e=c.value?.status,t=f.value?.status;return e==="running"||e==="pending"||t==="running"||t==="pending"}),Nt=H(()=>{if(y.value)return"bg-rose-500";if(Bt.value)return"bg-sky-400";const e=[];if(c.value){const d=c.value.success_count??0,x=c.value.fail_count??0,v=c.value.count??d+x;e.push({success:d,fail:x,total:v,status:c.value.status})}if(f.value){const d=f.value.success_count??0,x=f.value.fail_count??0,v=f.value.account_ids?.length??d+x;e.push({success:d,fail:x,total:v,status:f.value.status})}if(!e.length)return"bg-muted-foreground";const t=e.reduce((d,x)=>d+x.success,0),o=e.reduce((d,x)=>d+x.fail,0),i=e.reduce((d,x)=>d+(x.total||0),0);if(t>0&&o>0)return"bg-amber-400";if(o>0&&t===0)return"bg-rose-500";if(t>0&&o===0)return"bg-emerald-400";if(i===0){const d=e.every(v=>v.status==="success");if(e.some(v=>v.status==="failed"))return"bg-rose-500";if(d)return"bg-emerald-400"}return"bg-muted-foreground"});ns(()=>{X(),W(),qt(),document.removeEventListener("click",rt)});const fe=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?"429限流":e.cooldown_reason==="错误禁用"?"错误禁用":e.disabled?"手动禁用":e.status==="已过期"?"已过期":e.status==="即将过期"?"即将过期":"正常",lt=e=>{const t=fe(e);return t==="429限流"||t==="即将过期"?"bg-amber-200 text-amber-900":t==="错误禁用"||t==="已过期"?"bg-destructive/10 text-destructive":t==="手动禁用"?"bg-muted text-muted-foreground":"bg-emerald-500 text-white"},nt=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?!0:e.disabled||e.cooldown_reason==="错误禁用",at=e=>e==="已过期"?"过期":e==="未设置"?"未设置":e,it=e=>e.status==="已过期"?"text-rose-600":e.status==="即将过期"?"text-amber-700":e.status==="未设置"?"text-muted-foreground":"text-emerald-600",dt=e=>e<60?`${e} 秒`:e<3600?`${Math.ceil(e/60)} 分钟`:`${(e/3600).toFixed(1)} 小时`,Ue=e=>e.cooldown_seconds>0?"text-amber-700":e.cooldown_reason==="错误禁用"?"text-rose-600":"text-muted-foreground",ut=e=>{const t=fe(e);return t==="手动禁用"||t==="已过期"?"bg-muted/70":""},Le=e=>{const t=new Set(p.value);t.has(e)?t.delete(e):t.add(e),p.value=t},ct=()=>{if(De.value){p.value=new Set;return}p.value=new Set(K.value.map(e=>e.id))},Ut=(e,t)=>e.id||`account_${t+1}`,ft=async()=>(await h.getConfig()).accounts.map((t,o)=>({...t,id:Ut(t,o)})),vt=e=>`${e.time} [${e.level}] ${e.message}`,zt=(e,t)=>{let o=-1;for(let d=0;d{u.value="";try{const t=await ft();zt(t,e)}catch(t){u.value=t.message||"加载账号配置失败"}},Pt=async()=>{M.value="";try{const e=await h.getConfig();ae.value=Array.isArray(e.accounts)?e.accounts:[],ee.value=JSON.stringify(pt(ae.value),null,2),B.value=!0,j.value=!0}catch(e){M.value=e.message||"加载账号配置失败"}},ze=()=>{j.value=!1,M.value="",B.value=!1},mt=()=>{const e=JSON.parse(ee.value);if(!Array.isArray(e))throw new Error("配置格式必须是数组。");return e},Ft=e=>typeof e!="string"||!e?e:e.length<=6?`${e.slice(0,2)}****`:`${e.slice(0,3)}****`,pt=e=>{const t=new Set(["secure_c_ses","csesidx","config_id","host_c_oses","mail_password","mail_refresh_token","mail_client_id"]);return e.map(o=>{const i={...o};return t.forEach(d=>{const x=i[d];x&&(i[d]=Ft(x))}),i})},Kt=()=>{if(M.value="",!B.value){try{ae.value=mt()}catch(e){M.value=e.message||"JSON 格式错误";return}ee.value=JSON.stringify(pt(ae.value),null,2),B.value=!0;return}ee.value=JSON.stringify(ae.value,null,2),B.value=!1},Ht=async()=>{M.value="";try{const e=mt();await w.updateConfig(e),ze()}catch(e){M.value=e.message||"保存失败"}},Pe=()=>{ne.value=!1,u.value=""},Jt=async()=>{if(ke.value===null)return;const e=[...We.value];e[ke.value]={...e[ke.value],id:_.value.id,secure_c_ses:_.value.secure_c_ses,csesidx:_.value.csesidx,config_id:_.value.config_id,host_c_oses:_.value.host_c_oses||void 0,expires_at:_.value.expires_at||void 0};try{await w.updateConfig(e),Pe()}catch(t){u.value=t.message||"保存失败"}},Gt=async()=>{await w.bulkEnable(Array.from(p.value)),p.value=new Set},Yt=async()=>{await C.ask({title:"批量禁用",message:"确定要批量禁用选中的账号吗?"})&&(await w.bulkDisable(Array.from(p.value)),p.value=new Set)},Qt=async()=>{await C.ask({title:"批量删除",message:"确定要批量删除选中的账号吗?",confirmText:"删除"})&&(await w.bulkDelete(Array.from(p.value)),p.value=new Set)},gt=async e=>{await w.enableAccount(e)},bt=async e=>{await C.ask({title:"禁用账号",message:"确定要禁用该账号吗?"})&&await w.disableAccount(e)},yt=async e=>{await C.ask({title:"删除账号",message:"确定要删除该账号吗?",confirmText:"删除"})&&await w.deleteAccount(e)};let ve=null,xe=null,me=null,Ae=!1;const X=()=>{ve!==null&&(window.clearInterval(ve),ve=null)},W=()=>{xe!==null&&(window.clearInterval(xe),xe=null)},qt=()=>{me!==null&&(window.clearInterval(me),me=null),Ae=!1},_t=e=>e==="pending"?"等待中":e==="running"?"执行中":e==="success"?"成功":e==="failed"?"失败":e,ht=async e=>{if(Ee(e)){X();return}const t=await h.getRegisterTask(e);if(Ee(t.id)){X();return}Oe(t),t.status!=="running"&&t.status!=="pending"&&(D.value=!1,X(),await ce())},wt=async e=>{if(Ie(e)){W();return}const t=await h.getLoginTask(e);if(Ie(t.id)){W();return}Se(t),t.status!=="running"&&t.status!=="pending"&&(T.value=!1,W(),await ce())},kt=e=>{X(),ve=window.setInterval(()=>{ht(e).catch(t=>{y.value=t?.message||"注册任务更新失败",X(),D.value=!1})},3e3)},Fe=e=>{W(),xe=window.setInterval(()=>{wt(e).catch(t=>{y.value=t?.message||"刷新任务更新失败",W(),T.value=!1})},3e3)},Xt=()=>{me===null&&(me=window.setInterval(async()=>{if(!Ae&&!Y.value&&!(ve!==null||xe!==null)&&!(!D.value&&!T.value&&!c.value&&!f.value)){Ae=!0;try{await Ke()}catch(e){y.value=e?.message||"后台刷新失败"}finally{Ae=!1}}},6e3))},Ke=async()=>{try{const e=await h.getRegisterCurrent();e&&"id"in e&&!Ee(e.id)&&(Oe(e),(e.status==="running"||e.status==="pending")&&(D.value=!0,kt(e.id)))}catch(e){y.value=e.message||"加载注册任务失败"}try{const e=await h.getLoginCurrent();e&&"id"in e&&!Ie(e.id)&&(Se(e),(e.status==="running"||e.status==="pending")&&(T.value=!0,Fe(e.id)))}catch(e){y.value=e.message||"加载刷新任务失败"}},Wt=async()=>{y.value="",D.value=!0;try{const e=Number.isFinite(ie.value)&&ie.value>0?ie.value:void 0,t=await h.startRegister(e);Oe(t),kt(t.id),ye.value=!1,Y.value=!0}catch(e){y.value=e.message||"启动注册失败",D.value=!1}},Ct=async()=>{if(p.value.size){y.value="",T.value=!0;try{const e=await h.startLogin(Array.from(p.value));Se(e),Fe(e.id),Ne()}catch(e){y.value=e.message||"启动刷新失败",T.value=!1}}},Zt=async()=>{y.value="",T.value=!0;try{await h.checkLogin();const e=await h.getLoginCurrent();if(e&&"id"in e){Se(e),Fe(e.id),Ne();return}T.value=!1}catch(e){y.value=e.message||"触发刷新失败",T.value=!1}};return(e,t)=>(r(),l(ge,null,[s("div",vs,[s("section",xs,[s("div",ms,[s("div",ps,[A(s("input",{"onUpdate:modelValue":t[0]||(t[0]=o=>le.value=o),type:"text",placeholder:"搜索账号 ID",class:"w-full rounded-full border border-input bg-background px-4 py-2 text-sm sm:w-48"},null,512),[[$,le.value]]),J(is,{modelValue:Z.value,"onUpdate:modelValue":t[1]||(t[1]=o=>Z.value=o),options:Et},null,8,["modelValue"])]),s("div",gs,[J(be,{modelValue:De.value,"onUpdate:modelValue":ct},{default:Tt(()=>[...t[27]||(t[27]=[pe(" 全选 ",-1)])]),_:1},8,["modelValue"]),s("span",null,"已选 "+n(O.value)+" / "+n(K.value.length)+" 个账号",1),s("div",bs,[s("button",{type:"button",class:g(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",G.value==="table"?"bg-accent text-accent-foreground":""]),onClick:t[2]||(t[2]=o=>G.value="table"),"aria-label":"列表视图"},[...t[28]||(t[28]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])],2),s("button",{type:"button",class:g(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",G.value==="card"?"bg-accent text-accent-foreground":""]),onClick:t[3]||(t[3]=o=>G.value="card"),"aria-label":"卡片视图"},[...t[29]||(t[29]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h7v6H4V6zm9 0h7v6h-7V6zM4 14h7v4H4v-4zm9 0h7v4h-7v-4z"})],-1)])],2)])])]),s("div",ys,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:R(re),onClick:ce}," 刷新列表 ",8,_s),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:Pt}," 账户配置 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:D.value,onClick:Lt}," 添加账户 ",8,hs),s("div",{ref_key:"moreActionsRef",ref:Me,class:"relative"},[s("button",{class:g(["flex items-center gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary",z.value?"bg-accent text-accent-foreground":""]),onClick:Mt},[t[30]||(t[30]=pe(" 更多操作 ",-1)),t[31]||(t[31]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1)),Dt.value?(r(),l("span",{key:0,class:g(["ml-1 h-2 w-2 rounded-full",Nt.value]),"aria-hidden":"true"},null,2)):m("",!0)],2),z.value?(r(),l("div",ws,[s("button",{type:"button",class:"flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm text-foreground transition-colors hover:bg-accent",onClick:t[4]||(t[4]=o=>{Ne(),oe()})}," 任务状态 "),t[32]||(t[32]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",T.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:T.value,onClick:t[5]||(t[5]=o=>{Zt(),oe()})}," 刷新过期 ",10,ks),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",!O.value||T.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:!O.value||T.value,onClick:t[6]||(t[6]=o=>{Ct(),oe()})}," 刷新选中 ",10,Cs),t[33]||(t[33]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",O.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!O.value,onClick:t[7]||(t[7]=o=>{Gt(),oe()})}," 批量启用 ",10,Ts),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",O.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!O.value,onClick:t[8]||(t[8]=o=>{Yt(),oe()})}," 批量禁用 ",10,Ss),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",O.value?"text-destructive hover:bg-destructive/10":"cursor-not-allowed text-muted-foreground"]),disabled:!O.value,onClick:t[9]||(t[9]=o=>{Qt(),oe()})}," 批量删除 ",10,Es)])):m("",!0)],512)]),G.value==="card"?(r(),l("div",Is,[(r(!0),l(ge,null,Ve(K.value,o=>(r(),l("div",{key:o.id,class:g(["rounded-2xl border border-border bg-card p-4",ut(o)]),onClick:i=>Le(o.id)},[s("div",As,[s("div",null,[t[34]||(t[34]=s("p",{class:"text-xs text-muted-foreground"},"账号 ID",-1)),s("p",$s,n(o.id),1)]),s("div",Rs,[J(be,{modelValue:p.value.has(o.id),"onUpdate:modelValue":i=>Le(o.id),onClick:t[10]||(t[10]=V(()=>{},["stop"]))},null,8,["modelValue","onUpdate:modelValue"]),s("span",{class:g(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",lt(o)])},n(fe(o)),3)])]),s("div",Vs,[s("div",null,[t[35]||(t[35]=s("p",null,"剩余时间",-1)),s("p",{class:g(["mt-1 text-sm font-semibold",it(o)])},n(at(o.remaining_display)),3),o.expires_at?(r(),l("p",js,n(o.expires_at),1)):m("",!0)]),s("div",null,[t[36]||(t[36]=s("p",null,"冷却",-1)),s("p",{class:g(["mt-1",Ue(o)])},[o.cooldown_seconds>0?(r(),l("span",Ms,n(dt(o.cooldown_seconds))+" · "+n(o.cooldown_reason),1)):(r(),l("span",Ds,n(o.cooldown_reason||"无冷却"),1))],2)]),s("div",null,[t[37]||(t[37]=s("p",null,"失败数",-1)),s("p",Os,n(o.error_count),1)]),s("div",null,[t[38]||(t[38]=s("p",null,"会话数",-1)),s("p",Bs,n(o.conversation_count),1)])]),s("div",Ns,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>xt(o.id),["stop"])}," 编辑 ",8,Us),nt(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[11]||(t[11]=V(()=>{},["stop"])),i=>gt(o.id)]}," 启用 ",8,zs)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[12]||(t[12]=V(()=>{},["stop"])),i=>bt(o.id)]}," 禁用 ",8,Ps)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:[t[13]||(t[13]=V(()=>{},["stop"])),i=>yt(o.id)]}," 删除 ",8,Fs)])],10,Ls))),128)),!K.value.length&&!R(re)?(r(),l("div",Ks," 暂无账号数据,请检查后台配置。 ")):m("",!0)])):(r(),l("div",Hs,[s("table",Js,[s("thead",Gs,[s("tr",null,[s("th",Ys,[J(be,{modelValue:De.value,"onUpdate:modelValue":ct},null,8,["modelValue"])]),t[40]||(t[40]=s("th",{class:"py-3 pr-6"},"账号 ID",-1)),t[41]||(t[41]=s("th",{class:"py-3 pr-6"},"状态",-1)),s("th",Qs,[s("span",qs,[t[39]||(t[39]=pe(" 剩余/过期 ",-1)),J(cs,{text:"过期时间为 12 小时,账户过期以北京时间为准。"})])]),t[42]||(t[42]=s("th",{class:"py-3 pr-6"},"冷却",-1)),t[43]||(t[43]=s("th",{class:"py-3 pr-6"},"失败数",-1)),t[44]||(t[44]=s("th",{class:"py-3 pr-6"},"会话数",-1)),t[45]||(t[45]=s("th",{class:"py-3 text-right"},"操作",-1))])]),s("tbody",Xs,[!K.value.length&&!R(re)?(r(),l("tr",Ws,[...t[46]||(t[46]=[s("td",{colspan:"8",class:"py-8 text-center text-muted-foreground"}," 暂无账号数据,请检查后台配置。 ",-1)])])):m("",!0),(r(!0),l(ge,null,Ve(K.value,o=>(r(),l("tr",{key:o.id,class:g(["border-t border-border",ut(o)]),onClick:i=>Le(o.id)},[s("td",{class:"py-4 pr-4",onClick:t[14]||(t[14]=V(()=>{},["stop"]))},[J(be,{modelValue:p.value.has(o.id),"onUpdate:modelValue":i=>Le(o.id)},null,8,["modelValue","onUpdate:modelValue"])]),s("td",eo,n(o.id),1),s("td",to,[s("span",{class:g(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",lt(o)])},n(fe(o)),3)]),s("td",so,[s("div",{class:g(["text-sm font-semibold",it(o)])},n(at(o.remaining_display)),3),o.expires_at?(r(),l("span",oo,n(o.expires_at),1)):m("",!0)]),s("td",ro,[o.cooldown_seconds>0?(r(),l("span",{key:0,class:g(Ue(o))},n(dt(o.cooldown_seconds))+" · "+n(o.cooldown_reason),3)):(r(),l("span",{key:1,class:g(Ue(o))},n(o.cooldown_reason||"无冷却"),3))]),s("td",lo,n(o.error_count),1),s("td",no,n(o.conversation_count),1),s("td",ao,[s("div",io,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>xt(o.id),["stop"])}," 编辑 ",8,uo),nt(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>gt(o.id),["stop"])}," 启用 ",8,co)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>bt(o.id),["stop"])}," 禁用 ",8,fo)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:V(i=>yt(o.id),["stop"])}," 删除 ",8,vo)])])],10,Zs))),128))])])]))])]),J(ds,{open:R(C).open.value,title:R(C).title.value,message:R(C).message.value,"confirm-text":R(C).confirmText.value,"cancel-text":R(C).cancelText.value,onConfirm:R(C).confirm,onCancel:R(C).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(r(),Re(je,{to:"body"},[ye.value?(r(),l("div",xo,[s("div",mo,[s("div",po,[s("div",null,[t[47]||(t[47]=s("p",{class:"text-sm font-medium text-foreground"},"添加账户",-1)),s("p",go,n(N.value==="register"?"创建 DuckMail 账号并自动注册":"批量导入账户配置"),1)]),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Be}," 关闭 ")]),s("div",bo,[s("div",yo,[s("div",_o,[s("button",{type:"button",class:g(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",N.value==="register"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:t[15]||(t[15]=o=>N.value="register")}," 自动注册 ",2),s("button",{type:"button",class:g(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",N.value==="import"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:t[16]||(t[16]=o=>N.value="import")}," 批量导入 ",2)]),N.value==="register"?(r(),l("div",ho,[t[48]||(t[48]=s("label",{class:"block text-xs text-muted-foreground"},"注册数量",-1)),A(s("input",{"onUpdate:modelValue":t[17]||(t[17]=o=>ie.value=o),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,ie.value,void 0,{number:!0}]]),t[49]||(t[49]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"}," 默认域名来自设置面板(可在“配置面板”中修改) ",-1))])):(r(),l("div",wo,[t[50]||(t[50]=s("label",{class:"block text-xs text-muted-foreground"},"批量导入(每行一个)",-1)),A(s("textarea",{"onUpdate:modelValue":t[18]||(t[18]=o=>de.value=o),class:"min-h-[140px] w-full rounded-2xl border border-input bg-background px-3 py-2 text-xs font-mono",placeholder:`duckmail----you@example.com----password +user@outlook.com----loginPassword----clientId----refreshToken`},null,512),[[$,de.value]]),t[51]||(t[51]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},[s("p",null,"支持两种格式:"),s("p",{class:"mt-1 font-mono"},"duckmail----email----password"),s("p",{class:"mt-1 font-mono"},"email----password----clientId----refreshToken"),s("p",{class:"mt-2 text-[11px]"},'导入后请执行一次"刷新选中"以获取 Cookie。')],-1)),U.value?(r(),l("div",ko,n(U.value),1)):m("",!0)])),t[53]||(t[53]=s("div",{class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-[11px] leading-relaxed"},[s("p",{class:"text-xs font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)"),s("p",{class:"mt-1 text-muted-foreground"},[pe("详细声明请查看项目 "),s("a",{href:"https://github.com/Dreamy-rain/gemini-business2api/blob/main/docs/DISCLAIMER.md",target:"_blank",class:"text-primary hover:underline font-medium"},"DISCLAIMER.md")])],-1)),J(be,{modelValue:ue.value,"onUpdate:modelValue":t[19]||(t[19]=o=>ue.value=o)},{default:Tt(()=>[...t[52]||(t[52]=[pe(" 我已阅读并同意上述说明与限制 ",-1)])]),_:1},8,["modelValue"])])]),s("div",Co,[s("div",To,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Be}," 取消 "),N.value==="register"?(r(),l("button",{key:0,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:D.value||!ue.value,onClick:Wt}," 开始注册 ",8,So)):(r(),l("button",{key:1,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:_e.value||!ue.value,onClick:$t}," 导入并保存 ",8,Eo))])])])])):m("",!0)])),(r(),Re(je,{to:"body"},[Y.value?(r(),l("div",Io,[s("div",Lo,[s("div",Ao,[t[54]||(t[54]=s("div",null,[s("p",{class:"text-sm font-medium text-foreground"},"任务状态"),s("p",{class:"mt-1 text-xs text-muted-foreground"},"注册与刷新任务的状态与日志")],-1)),s("div",$o,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-muted-foreground transition-colors hover:border-primary hover:text-primary",disabled:!Q.value.length&&!q.value.length&&!c.value&&!f.value&&!y.value,onClick:jt}," 清空日志 ",8,Ro),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Vt}," 关闭 ")])]),s("div",Vo,[y.value?(r(),l("div",jo,n(y.value),1)):m("",!0),c.value||f.value?(r(),l("div",Mo,[c.value?(r(),l("div",Do,[t[55]||(t[55]=s("div",{class:"font-medium text-foreground"},"注册任务",-1)),s("div",Oo,[s("span",null,"状态:"+n(_t(c.value.status)),1),s("span",null,"进度:"+n(c.value.progress)+"/"+n(c.value.count),1),s("span",null,"成功:"+n(c.value.success_count),1),s("span",null,"失败:"+n(c.value.fail_count),1)])])):m("",!0),f.value?(r(),l("div",Bo,[t[56]||(t[56]=s("div",{class:"font-medium text-foreground"},"刷新任务",-1)),s("div",No,[s("span",null,"状态:"+n(_t(f.value.status)),1),s("span",null,"进度:"+n(f.value.progress)+"/"+n(f.value.account_ids.length),1),s("span",null,"成功:"+n(f.value.success_count),1),s("span",null,"失败:"+n(f.value.fail_count),1)])])):m("",!0)])):m("",!0),Q.value.length||q.value.length?(r(),l("div",Uo,[s("div",{ref_key:"taskLogsRef",ref:Xe,class:"scrollbar-slim flex-1 overflow-y-auto rounded-2xl border border-border bg-muted/30 p-3"},[Q.value.length?(r(),l("div",zo,[t[57]||(t[57]=s("p",{class:"text-xs font-semibold text-foreground"},"注册日志",-1)),s("div",Po,[(r(!0),l(ge,null,Ve(Q.value,(o,i)=>(r(),l("div",{key:`reg-${i}`,class:"font-mono"},n(vt(o)),1))),128))])])):m("",!0),q.value.length?(r(),l("div",Fo,[t[58]||(t[58]=s("p",{class:"text-xs font-semibold text-foreground"},"刷新日志",-1)),s("div",Ko,[(r(!0),l(ge,null,Ve(q.value,(o,i)=>(r(),l("div",{key:`login-${i}`,class:"font-mono"},n(vt(o)),1))),128))])])):m("",!0)],512)])):m("",!0),!y.value&&!c.value&&!f.value&&!Q.value.length&&!q.value.length?(r(),l("div",Ho," 暂无任务 ")):m("",!0)])])])):m("",!0)])),(r(),Re(je,{to:"body"},[ne.value?(r(),l("div",Jo,[s("div",Go,[s("div",{class:"flex items-center justify-between"},[t[59]||(t[59]=s("p",{class:"text-sm font-medium text-foreground"},"编辑账号",-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Pe}," 关闭 ")]),u.value?(r(),l("div",Yo,n(u.value),1)):m("",!0),s("div",Qo,[t[60]||(t[60]=s("label",{class:"block text-xs text-muted-foreground"},"账号 ID",-1)),A(s("input",{"onUpdate:modelValue":t[20]||(t[20]=o=>_.value.id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",disabled:""},null,512),[[$,_.value.id]]),t[61]||(t[61]=s("label",{class:"block text-xs text-muted-foreground"},"secure_c_ses",-1)),A(s("textarea",{"onUpdate:modelValue":t[21]||(t[21]=o=>_.value.secure_c_ses=o),class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",rows:"3"},null,512),[[$,_.value.secure_c_ses]]),t[62]||(t[62]=s("label",{class:"block text-xs text-muted-foreground"},"csesidx",-1)),A(s("input",{"onUpdate:modelValue":t[22]||(t[22]=o=>_.value.csesidx=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,_.value.csesidx]]),t[63]||(t[63]=s("label",{class:"block text-xs text-muted-foreground"},"config_id",-1)),A(s("input",{"onUpdate:modelValue":t[23]||(t[23]=o=>_.value.config_id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,_.value.config_id]]),t[64]||(t[64]=s("label",{class:"block text-xs text-muted-foreground"},"host_c_oses",-1)),A(s("input",{"onUpdate:modelValue":t[24]||(t[24]=o=>_.value.host_c_oses=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,_.value.host_c_oses]]),t[65]||(t[65]=s("label",{class:"block text-xs text-muted-foreground"},"expires_at",-1)),A(s("input",{"onUpdate:modelValue":t[25]||(t[25]=o=>_.value.expires_at=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"2025-12-23 10:59:21"},null,512),[[$,_.value.expires_at]])]),s("div",{class:"mt-6 flex items-center justify-end gap-2"},[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Pe}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Jt}," 保存 ")])])])):m("",!0)])),(r(),Re(je,{to:"body"},[j.value?(r(),l("div",qo,[s("div",Xo,[s("div",Wo,[t[66]||(t[66]=s("p",{class:"text-sm font-medium text-foreground"},"账户配置(JSON)",-1)),s("div",Zo,[s("button",{class:"rounded-full bg-foreground px-3 py-1 text-xs text-background transition-opacity hover:opacity-90",onClick:Kt},n(B.value?"显示原文":"脱敏显示"),1),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:ze}," 关闭 ")])]),M.value?(r(),l("div",er,n(M.value),1)):m("",!0),s("div",tr,[A(s("textarea",{"onUpdate:modelValue":t[26]||(t[26]=o=>ee.value=o),class:"h-96 w-full rounded-2xl border border-input bg-background px-4 py-3 font-mono text-xs text-foreground",spellcheck:"false",readonly:B.value},null,8,sr),[[$,ee.value]])]),s("div",or,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:ze}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Ht,disabled:B.value}," 保存 ",8,rr)])])])):m("",!0)]))],64))}});export{cr as default}; diff --git a/static/assets/Accounts-BBKUc_zD.js b/static/assets/Accounts-BBKUc_zD.js index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..b78668546e7f4304e448923b483d163e700a9c64 100644 --- a/static/assets/Accounts-BBKUc_zD.js +++ b/static/assets/Accounts-BBKUc_zD.js @@ -0,0 +1,2 @@ +import{g as E,C as os,h as i,d as rs,D as ls,i as J,o as ns,z as as,j as is,c as n,a as s,p as G,m as Re,q as R,v as V,s as $t,t as a,n as p,u as j,b as g,f as ee,F as ge,r as Ve,T as je,E as ds,w as M,e as l,G as us}from"./index-C4edAQLF.js";import{_ as cs}from"./SelectMenu.vue_vue_type_script_setup_true_lang-Cu_3WwPc.js";import{_ as be}from"./Checkbox.vue_vue_type_script_setup_true_lang-41XRw3c5.js";import{_ as fs}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-DW0P4Bk8.js";import{u as vs}from"./useConfirmDialog-wyft8rf-.js";import{_ as ms}from"./HelpTip.vue_vue_type_script_setup_true_lang-CWJidBqq.js";const w={list:()=>E.get("/admin/accounts"),getConfig:()=>E.get("/admin/accounts-config"),updateConfig:y=>E.put("/admin/accounts-config",y),delete:y=>E.delete(`/admin/accounts/${y}`),disable:y=>E.put(`/admin/accounts/${y}/disable`),enable:y=>E.put(`/admin/accounts/${y}/enable`),startRegister:(y,k)=>E.post("/admin/register/start",{count:y,domain:k}),getRegisterTask:y=>E.get(`/admin/register/task/${y}`),getRegisterCurrent:()=>E.get("/admin/register/current"),startLogin:y=>E.post("/admin/login/start",y),getLoginTask:y=>E.get(`/admin/login/task/${y}`),getLoginCurrent:()=>E.get("/admin/login/current"),checkLogin:()=>E.post("/admin/login/check")},ps=os("accounts",()=>{const y=i([]),k=i(!1);async function A(){k.value=!0;try{const x=await w.list();y.value=Array.isArray(x)?x:x.accounts||[]}finally{k.value=!1}}async function ne(x){await w.delete(x),await A()}async function T(x){await w.disable(x),await A()}async function d(x){await w.enable(x),await A()}async function ae(x){await Promise.all(x.map($=>w.enable($))),await A()}async function te(x){await Promise.all(x.map($=>w.disable($))),await A()}async function b(x){await Promise.all(x.map($=>w.delete($))),await A()}async function Y(x){await w.updateConfig(x),await A()}return{accounts:y,isLoading:k,loadAccounts:A,deleteAccount:ne,disableAccount:T,enableAccount:d,bulkEnable:ae,bulkDisable:te,bulkDelete:b,updateConfig:Y}}),xs={class:"space-y-8"},gs={class:"rounded-3xl border border-border bg-card p-6"},bs={class:"flex flex-wrap items-center justify-between gap-4"},ys={class:"grid w-full grid-cols-2 gap-3 sm:flex sm:w-auto sm:items-center"},_s={class:"flex w-full flex-wrap items-center gap-3 text-xs text-muted-foreground sm:w-auto sm:flex-nowrap"},hs={class:"ml-auto flex items-center gap-2 sm:ml-0"},ws={class:"mt-4 flex flex-wrap items-center gap-2"},ks=["disabled"],Cs=["disabled"],Ts={key:0,class:"absolute right-0 z-10 mt-2 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg"},Ss=["disabled"],$s=["disabled"],Is=["disabled"],Es=["disabled"],Ls=["disabled"],As={key:0,class:"mt-6 grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3"},Rs=["onClick"],Vs={class:"flex items-start justify-between gap-3"},js={class:"mt-1 font-mono text-xs text-foreground"},Ms={class:"flex items-center gap-2"},Ds={class:"mt-4 grid grid-cols-2 gap-3 text-xs text-muted-foreground"},Os={key:0,class:"mt-1 text-[11px]"},Bs={key:0},Ns={key:1},Us={class:"mt-1 text-sm font-semibold text-foreground"},zs={class:"mt-1 text-sm font-semibold text-foreground"},Ps={class:"mt-4 flex flex-wrap items-center gap-2"},Fs=["onClick"],Ks=["onClick"],Hs=["onClick"],Js=["onClick"],Gs={key:0,class:"rounded-2xl border border-border bg-background p-4 text-center text-xs text-muted-foreground"},Ys={key:1,class:"relative mt-6 overflow-x-auto overflow-y-visible"},qs={class:"min-w-full text-left text-sm"},Qs={class:"text-xs uppercase tracking-[0.2em] text-muted-foreground"},Xs={class:"py-3 pr-4"},Ws={class:"py-3 pr-6"},Zs={class:"inline-flex items-center gap-2"},eo={class:"text-sm text-foreground"},to={key:0},so=["onClick"],oo={class:"py-4 pr-6 font-mono text-xs text-foreground"},ro={class:"py-4 pr-6"},lo={class:"py-4 pr-6"},no={key:0,class:"block text-[11px] text-muted-foreground"},ao={class:"py-4 pr-6 text-xs"},io={class:"py-4 pr-6 text-xs text-muted-foreground"},uo={class:"py-4 pr-6 text-xs text-muted-foreground"},co={class:"py-4 text-right"},fo={class:"flex flex-wrap justify-end gap-2"},vo=["onClick"],mo=["onClick"],po=["onClick"],xo=["onClick"],go={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},bo={class:"flex max-h-[90vh] w-full max-w-lg flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},yo={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},_o={class:"mt-1 text-xs text-muted-foreground"},ho={class:"scrollbar-slim flex-1 overflow-y-auto px-6 py-4"},wo={class:"space-y-4 text-sm"},ko={class:"flex rounded-full border border-border bg-muted/30 p-1 text-xs"},Co={key:0,class:"space-y-4"},To={key:1,class:"space-y-4"},So={key:0,class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-xs text-rose-600"},$o={class:"border-t border-border/60 px-6 py-4"},Io={class:"flex items-center justify-end gap-2"},Eo=["disabled"],Lo=["disabled"],Ao={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Ro={class:"flex h-[80vh] w-full max-w-2xl flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},Vo={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},jo={class:"flex items-center gap-2"},Mo=["disabled"],Do={class:"flex min-h-0 flex-1 flex-col px-6 py-4"},Oo={key:0,class:"rounded-2xl bg-destructive/10 px-3 py-2 text-xs text-destructive"},Bo={key:1,class:"grid gap-3 text-xs text-muted-foreground"},No={key:0,class:"space-y-1"},Uo={class:"flex items-center gap-2 font-medium text-foreground"},zo={class:"flex flex-wrap gap-x-4 gap-y-1"},Po={key:1,class:"space-y-1"},Fo={class:"flex items-center gap-2 font-medium text-foreground"},Ko={class:"flex flex-wrap gap-x-4 gap-y-1"},Ho={key:2,class:"mt-4 flex min-h-0 flex-1 flex-col"},Jo={key:0,class:"space-y-2"},Go={class:"space-y-1 text-[11px] text-muted-foreground"},Yo={key:1,class:"mt-4 space-y-2"},qo={class:"space-y-1 text-[11px] text-muted-foreground"},Qo={key:3,class:"mt-4 rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},Xo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Wo={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},Zo={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},er={class:"mt-4 space-y-3 text-sm"},tr={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},sr={class:"w-full max-w-3xl rounded-3xl border border-border bg-card p-6 shadow-xl"},or={class:"flex items-center justify-between"},rr={class:"flex items-center gap-2"},lr={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},nr={class:"mt-4"},ar=["readonly"],ir={class:"mt-6 flex items-center justify-end gap-2"},dr=["disabled"],Je="accounts-register-task-cache",Ge="accounts-login-task-cache",Ye="accounts-register-log-clear",qe="accounts-login-log-clear",Qe="accounts-register-task-cleared-id",Xe="accounts-login-task-cleared-id",It="1970-01-01 00:00:00",xr=rs({__name:"Accounts",setup(y){const k=ps(),{accounts:A,isLoading:ne}=ls(k),T=vs(),d=ds(),ae=i(""),te=i("all"),b=i(new Set),Y=i("table"),x=i(!1),$=i(""),Me=i(!1),D=i(""),se=i(""),N=i(!1),ie=i([]),de=i(1),ye=i(!1),U=i("register"),ue=i(""),z=i(""),_e=i(!1),q=i(!1),P=i(!1),De=i(null),he=i(null),we=i(null),F=i(null),K=i(null),oe=i(0),re=i(0),ce=i(!1),c=i(null),f=i(null),We=i(null),O=i(!1),S=i(!1),_=i(""),h=i({id:"",secure_c_ses:"",csesidx:"",config_id:"",host_c_oses:"",expires_at:""}),ke=i(null),Ze=i([]),Et=[{label:"全部状态",value:"all"},{label:"正常",value:"正常"},{label:"即将过期",value:"即将过期"},{label:"已过期",value:"已过期"},{label:"手动禁用",value:"手动禁用"},{label:"错误禁用",value:"错误禁用"},{label:"429限流",value:"429限流"}],H=J(()=>{const t=ae.value.trim().toLowerCase();return A.value.filter(e=>{const o=!t||e.id.toLowerCase().includes(t),r=te.value==="all"||ve(e)===te.value;return o&&r})}),B=J(()=>b.value.size),Oe=J(()=>H.value.length>0&&H.value.every(t=>b.value.has(t.id))),fe=async()=>{await k.loadAccounts(),b.value=new Set,P.value=!1},et=t=>{try{const e=localStorage.getItem(t);return e?JSON.parse(e):null}catch{return null}},tt=t=>{try{return localStorage.getItem(t)||null}catch{return null}},Ce=(t,e)=>{try{if(e){localStorage.setItem(t,e);return}localStorage.removeItem(t)}catch{}},st=(t,e)=>{try{localStorage.setItem(t,JSON.stringify(e))}catch{}},ot=t=>{try{localStorage.removeItem(t)}catch{}},rt=t=>{const e=localStorage.getItem(t),o=Number(e);return Number.isFinite(o)?o:0},Te=(t,e)=>{try{localStorage.setItem(t,String(e))}catch{}},Be=(t,e=!0)=>{t&&(t.id&&t.id===F.value||(t.id&&F.value&&t.id!==F.value&&(F.value=null,Ce(Qe,null)),c.value=t,t.id&&t.id!==he.value&&(he.value=t.id,oe.value=0,Te(Ye,0)),e&&st(Je,t)))},Se=(t,e=!0)=>{t&&(t.id&&t.id===K.value||(t.id&&K.value&&t.id!==K.value&&(K.value=null,Ce(Xe,null)),f.value=t,t.id&&t.id!==we.value&&(we.value=t.id,re.value=0,Te(qe,0)),e&&st(Ge,t)))},Lt=()=>{oe.value=rt(Ye),re.value=rt(qe),F.value=tt(Qe),K.value=tt(Xe);const t=et(Je);t&&t.id!==F.value&&(c.value=t,he.value=t.id||null);const e=et(Ge);e&&e.id!==K.value&&(f.value=e,we.value=e.id||null)},At=()=>{ye.value=!0,U.value="register",ue.value="",z.value="",_e.value=!1,ce.value=!1},Ne=()=>{ye.value=!1},Rt=t=>{const e=[],o=[];return t.split(/\r?\n/).map(u=>u.trim()).filter(Boolean).forEach((u,m)=>{const v=u.split("----").map(I=>I.trim()),C=m+1;if(v.length){if(v[0].toLowerCase()==="duckmail"){if(v.length<3||!v[1]||!v[2]){o.push(`第 ${C} 行格式错误(duckmail)`);return}const I=v[1],Ae=v.slice(2).join("----");e.push({id:I,secure_c_ses:"",csesidx:"",config_id:"",expires_at:It,mail_provider:"duckmail",mail_address:I,mail_password:Ae});return}if(v.length>=4&&v[0]&&v[2]&&v[3]){const I=v[0],Ae=v[1]||"",L=v[2],ss=v.slice(3).join("----");e.push({id:I,secure_c_ses:"",csesidx:"",config_id:"",expires_at:It,mail_provider:"microsoft",mail_address:I,mail_password:Ae,mail_client_id:L,mail_refresh_token:ss,mail_tenant:"consumers"});return}o.push(`第 ${C} 行格式错误`)}}),{items:e,errors:o}},Vt=async()=>{if(z.value="",!ue.value.trim()){z.value="请输入导入内容";return}const{items:t,errors:e}=Rt(ue.value);if(!t.length){z.value=e.length?e.join(","):"未识别到有效账号";return}if(e.length){z.value=e.slice(0,3).join(",");return}_e.value=!0;try{const r=[...await vt()],u=new Map(r.map((C,I)=>[C.id,I])),m=[];t.forEach(C=>{const I=u.get(C.id||"");if(I===void 0){r.push(C),m.push(C.id);return}const L={...r[I],mail_provider:C.mail_provider,mail_address:C.mail_address};C.mail_provider==="microsoft"?(L.mail_client_id=C.mail_client_id,L.mail_refresh_token=C.mail_refresh_token,L.mail_tenant=C.mail_tenant,L.mail_password=C.mail_password):(L.mail_password=C.mail_password,L.mail_client_id=void 0,L.mail_refresh_token=void 0,L.mail_tenant=void 0),r[I]=L,m.push(C.id)}),await k.updateConfig(r),await fe(),b.value=new Set(m),d.success(`成功导入 ${m.length} 个账户`),Ne(),await T.ask({title:"导入成功",message:`已导入 ${m.length} 个账户并自动选中。是否立即刷新这些账户以获取 Cookie?`,confirmText:"立即刷新",cancelText:"稍后手动刷新"})&&await St()}catch(o){z.value=o.message||"导入失败",d.error(o.message||"导入失败")}finally{_e.value=!1}},jt=async()=>{try{const t=[],e=c.value?.id,o=f.value?.id;if(e&&!$e(e)&&t.push(kt(e)),o&&!Ie(o)&&t.push(Ct(o)),!t.length){await He();return}await Promise.all(t)}catch(t){_.value=t?.message||"任务状态更新失败"}},Ue=async()=>{q.value=!0,await jt()},Mt=()=>{q.value=!1},Dt=()=>{const t=c.value?.id||null,e=f.value?.id||null;F.value=t,K.value=e,Ce(Qe,t),Ce(Xe,e),oe.value=c.value?.logs?.length||0,re.value=f.value?.logs?.length||0,Te(Ye,oe.value),Te(qe,re.value),c.value=null,f.value=null,he.value=null,we.value=null,_.value="",O.value=!1,S.value=!1,W(),Z(),ot(Je),ot(Ge)},$e=t=>!!(t&&t===F.value),Ie=t=>!!(t&&t===K.value),Ot=()=>{P.value=!P.value},le=()=>{P.value=!1},lt=t=>{if(!P.value)return;const e=t.target;De.value&&!De.value.contains(e)&&(P.value=!1)};ns(async()=>{Lt(),await fe(),await He(),Zt(),document.addEventListener("click",lt)});const Q=J(()=>{const t=c.value?.logs||[];return oe.value?t.slice(oe.value):t}),X=J(()=>{const t=f.value?.logs||[];return re.value?t.slice(re.value):t}),Bt=J(()=>!!_.value||!!c.value||!!f.value||Q.value.length>0||X.value.length>0),Nt=async()=>{await us();const t=We.value;t&&(t.scrollTop=t.scrollHeight)};as([Q,X,q],async()=>{q.value&&await Nt()},{deep:!0});const Ut=J(()=>{const t=c.value?.status,e=f.value?.status;return t==="running"||t==="pending"||e==="running"||e==="pending"}),zt=J(()=>{if(_.value)return"bg-rose-500";if(Ut.value)return"bg-sky-400";const t=[];if(c.value){const u=c.value.success_count??0,m=c.value.fail_count??0,v=c.value.count??u+m;t.push({success:u,fail:m,total:v,status:c.value.status})}if(f.value){const u=f.value.success_count??0,m=f.value.fail_count??0,v=f.value.account_ids?.length??u+m;t.push({success:u,fail:m,total:v,status:f.value.status})}if(!t.length)return"bg-muted-foreground";const e=t.reduce((u,m)=>u+m.success,0),o=t.reduce((u,m)=>u+m.fail,0),r=t.reduce((u,m)=>u+(m.total||0),0);if(e>0&&o>0)return"bg-amber-400";if(o>0&&e===0)return"bg-rose-500";if(e>0&&o===0)return"bg-emerald-400";if(r===0){const u=t.every(v=>v.status==="success");if(t.some(v=>v.status==="failed"))return"bg-rose-500";if(u)return"bg-emerald-400"}return"bg-muted-foreground"});is(()=>{W(),Z(),Wt(),document.removeEventListener("click",lt)});const ve=t=>t.cooldown_reason?.includes("429")&&t.cooldown_seconds>0?"429限流":t.cooldown_reason==="错误禁用"?"错误禁用":t.disabled?"手动禁用":t.status==="已过期"?"已过期":t.status==="即将过期"?"即将过期":"正常",nt=t=>{const e=ve(t);return e==="429限流"||e==="即将过期"?"bg-amber-200 text-amber-900":e==="错误禁用"||e==="已过期"?"bg-destructive/10 text-destructive":e==="手动禁用"?"bg-muted text-muted-foreground":"bg-emerald-500 text-white"},at=t=>t.cooldown_reason?.includes("429")&&t.cooldown_seconds>0?!0:t.disabled||t.cooldown_reason==="错误禁用",it=t=>t==="已过期"?"过期":t==="未设置"?"未设置":t,dt=t=>t.status==="已过期"?"text-rose-600":t.status==="即将过期"?"text-amber-700":t.status==="未设置"?"text-muted-foreground":"text-emerald-600",ut=t=>t<60?`${t} 秒`:t<3600?`${Math.ceil(t/60)} 分钟`:`${(t/3600).toFixed(1)} 小时`,ze=t=>t.cooldown_seconds>0?"text-amber-700":t.cooldown_reason==="错误禁用"?"text-rose-600":"text-muted-foreground",ct=t=>{const e=ve(t);return e==="手动禁用"||e==="已过期"?"bg-muted/70":""},Ee=t=>{const e=new Set(b.value);e.has(t)?e.delete(t):e.add(t),b.value=e},ft=()=>{if(Oe.value){b.value=new Set;return}b.value=new Set(H.value.map(t=>t.id))},Pt=(t,e)=>t.id||`account_${e+1}`,vt=async()=>(await w.getConfig()).accounts.map((e,o)=>({...e,id:Pt(e,o)})),mt=t=>`${t.time} [${t.level}] ${t.message}`,Ft=(t,e)=>{let o=-1;for(let u=0;u{$.value="";try{const e=await vt();Ft(e,t)}catch(e){$.value=e.message||"加载账号配置失败"}},Kt=async()=>{D.value="";try{const t=await w.getConfig();ie.value=Array.isArray(t.accounts)?t.accounts:[],se.value=JSON.stringify(gt(ie.value),null,2),N.value=!0,Me.value=!0}catch(t){D.value=t.message||"加载账号配置失败"}},Pe=()=>{Me.value=!1,D.value="",N.value=!1},xt=()=>{const t=JSON.parse(se.value);if(!Array.isArray(t))throw new Error("配置格式必须是数组。");return t},Ht=t=>typeof t!="string"||!t?t:t.length<=6?`${t.slice(0,2)}****`:`${t.slice(0,3)}****`,gt=t=>{const e=new Set(["secure_c_ses","csesidx","config_id","host_c_oses","mail_password","mail_refresh_token","mail_client_id"]);return t.map(o=>{const r={...o};return e.forEach(u=>{const m=r[u];m&&(r[u]=Ht(m))}),r})},Jt=()=>{if(D.value="",!N.value){try{ie.value=xt()}catch(t){D.value=t.message||"JSON 格式错误";return}se.value=JSON.stringify(gt(ie.value),null,2),N.value=!0;return}se.value=JSON.stringify(ie.value,null,2),N.value=!1},Gt=async()=>{D.value="";try{const t=xt();await k.updateConfig(t),d.success("配置保存成功"),Pe()}catch(t){D.value=t.message||"保存失败",d.error(t.message||"保存失败")}},Fe=()=>{x.value=!1,$.value=""},Yt=async()=>{if(ke.value===null)return;const t=[...Ze.value];t[ke.value]={...t[ke.value],id:h.value.id,secure_c_ses:h.value.secure_c_ses,csesidx:h.value.csesidx,config_id:h.value.config_id,host_c_oses:h.value.host_c_oses||void 0,expires_at:h.value.expires_at||void 0};try{await k.updateConfig(t),d.success("账号编辑成功"),Fe()}catch(e){$.value=e.message||"保存失败",d.error(e.message||"保存失败")}},qt=async()=>{try{await k.bulkEnable(Array.from(b.value)),d.success("批量启用成功"),b.value=new Set}catch(t){d.error(t.message||"批量启用失败")}},Qt=async()=>{if(await T.ask({title:"批量禁用",message:"确定要批量禁用选中的账号吗?"}))try{await k.bulkDisable(Array.from(b.value)),d.success("批量禁用成功"),b.value=new Set}catch(e){d.error(e.message||"批量禁用失败")}},Xt=async()=>{if(await T.ask({title:"批量删除",message:"确定要批量删除选中的账号吗?",confirmText:"删除"}))try{await k.bulkDelete(Array.from(b.value)),d.success("批量删除成功"),b.value=new Set}catch(e){d.error(e.message||"批量删除失败")}},bt=async t=>{try{await k.enableAccount(t),d.success("账号已启用")}catch(e){d.error(e.message||"启用失败")}},yt=async t=>{if(await T.ask({title:"禁用账号",message:"确定要禁用该账号吗?"}))try{await k.disableAccount(t),d.success("账号已禁用")}catch(o){d.error(o.message||"禁用失败")}},_t=async t=>{if(await T.ask({title:"删除账号",message:"确定要删除该账号吗?",confirmText:"删除"}))try{await k.deleteAccount(t),d.success("账号已删除")}catch(o){d.error(o.message||"删除失败")}};let me=null,pe=null,xe=null,Le=!1;const W=()=>{me!==null&&(window.clearInterval(me),me=null)},Z=()=>{pe!==null&&(window.clearInterval(pe),pe=null)},Wt=()=>{xe!==null&&(window.clearInterval(xe),xe=null),Le=!1},ht=t=>t==="pending"?"等待中":t==="running"?"执行中":t==="success"?"成功":t==="failed"?"失败":t,wt=t=>{const e=t.status,o=t.success_count??0,r=t.fail_count??0;if(e==="running"||e==="pending")return"bg-sky-400";if(e==="success"||e==="failed"){if(o>0&&r===0)return"bg-emerald-400";if(r>0&&o===0)return"bg-rose-500";if(o>0&&r>0)return"bg-amber-400"}return"bg-muted-foreground"},kt=async t=>{if($e(t)){W();return}const e=await w.getRegisterTask(t);if($e(e.id)){W();return}if(Be(e),e.status!=="running"&&e.status!=="pending"){O.value=!1,W(),await fe();const o=e.success_count||0,r=e.fail_count||0;o>0&&r>0?d.success(`注册任务完成:成功 ${o},失败 ${r}`):o>0&&r===0?d.success(`注册任务完成:全部成功 (${o})`):r>0&&o===0?d.error(`注册任务完成:全部失败 (${r})`):d.error("注册任务失败")}},Ct=async t=>{if(Ie(t)){Z();return}const e=await w.getLoginTask(t);if(Ie(e.id)){Z();return}if(Se(e),e.status!=="running"&&e.status!=="pending"){S.value=!1,Z(),await fe();const o=e.success_count||0,r=e.fail_count||0;o>0&&r>0?d.success(`刷新任务完成:成功 ${o},失败 ${r}`):o>0&&r===0?d.success(`刷新任务完成:全部成功 (${o})`):r>0&&o===0?d.error(`刷新任务完成:全部失败 (${r})`):d.error("刷新任务失败")}},Tt=t=>{W(),me=window.setInterval(()=>{kt(t).catch(e=>{_.value=e?.message||"注册任务更新失败",W(),O.value=!1})},3e3)},Ke=t=>{Z(),pe=window.setInterval(()=>{Ct(t).catch(e=>{_.value=e?.message||"刷新任务更新失败",Z(),S.value=!1})},3e3)},Zt=()=>{xe===null&&(xe=window.setInterval(async()=>{if(!Le&&!q.value&&!(me!==null||pe!==null)&&!(!O.value&&!S.value&&!c.value&&!f.value)){Le=!0;try{await He()}catch(t){_.value=t?.message||"后台刷新失败"}finally{Le=!1}}},6e3))},He=async()=>{try{const t=await w.getRegisterCurrent();t&&"id"in t&&!$e(t.id)&&(Be(t),(t.status==="running"||t.status==="pending")&&(O.value=!0,Tt(t.id)))}catch(t){_.value=t.message||"加载注册任务失败"}try{const t=await w.getLoginCurrent();t&&"id"in t&&!Ie(t.id)&&(Se(t),(t.status==="running"||t.status==="pending")&&(S.value=!0,Ke(t.id)))}catch(t){_.value=t.message||"加载刷新任务失败"}},es=async()=>{_.value="",O.value=!0;try{const t=Number.isFinite(de.value)&&de.value>0?de.value:void 0,e=await w.startRegister(t);Be(e),Tt(e.id),ye.value=!1,q.value=!0}catch(t){_.value=t.message||"启动注册失败",O.value=!1}},St=async()=>{if(b.value.size){_.value="",S.value=!0;try{const t=await w.startLogin(Array.from(b.value));Se(t),Ke(t.id),Ue()}catch(t){_.value=t.message||"启动刷新失败",S.value=!1}}},ts=async()=>{_.value="",S.value=!0;try{await w.checkLogin();const t=await w.getLoginCurrent();if(t&&"id"in t){Se(t),Ke(t.id),Ue();return}S.value=!1}catch(t){_.value=t.message||"触发刷新失败",S.value=!1}};return(t,e)=>(l(),n(ge,null,[s("div",xs,[s("section",gs,[s("div",bs,[s("div",ys,[R(s("input",{"onUpdate:modelValue":e[0]||(e[0]=o=>ae.value=o),type:"text",placeholder:"搜索账号 ID",class:"w-full rounded-full border border-input bg-background px-4 py-2 text-sm sm:w-48"},null,512),[[V,ae.value]]),G(cs,{modelValue:te.value,"onUpdate:modelValue":e[1]||(e[1]=o=>te.value=o),options:Et,class:"!w-full sm:!w-40"},null,8,["modelValue"])]),s("div",_s,[G(be,{modelValue:Oe.value,"onUpdate:modelValue":ft},{default:$t(()=>[...e[27]||(e[27]=[ee(" 全选 ",-1)])]),_:1},8,["modelValue"]),s("span",null,"已选 "+a(B.value)+" / "+a(H.value.length)+" 个账号",1),s("div",hs,[s("button",{type:"button",class:p(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",Y.value==="table"?"bg-accent text-accent-foreground":""]),onClick:e[2]||(e[2]=o=>Y.value="table"),"aria-label":"列表视图"},[...e[28]||(e[28]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])],2),s("button",{type:"button",class:p(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",Y.value==="card"?"bg-accent text-accent-foreground":""]),onClick:e[3]||(e[3]=o=>Y.value="card"),"aria-label":"卡片视图"},[...e[29]||(e[29]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h7v6H4V6zm9 0h7v6h-7V6zM4 14h7v4H4v-4zm9 0h7v4h-7v-4z"})],-1)])],2)])])]),s("div",ws,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary disabled:cursor-not-allowed disabled:opacity-50",disabled:j(ne),onClick:fe}," 刷新列表 ",8,ks),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:Kt}," 账户配置 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary disabled:cursor-not-allowed disabled:opacity-50",disabled:O.value,onClick:At}," 添加账户 ",8,Cs),s("div",{ref_key:"moreActionsRef",ref:De,class:"relative"},[s("button",{class:p(["flex items-center gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary",P.value?"bg-accent text-accent-foreground":""]),onClick:Ot},[e[30]||(e[30]=ee(" 更多操作 ",-1)),e[31]||(e[31]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1)),Bt.value?(l(),n("span",{key:0,class:p(["ml-1 h-2 w-2 rounded-full",zt.value]),"aria-hidden":"true"},null,2)):g("",!0)],2),P.value?(l(),n("div",Ts,[s("button",{type:"button",class:"flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm text-foreground transition-colors hover:bg-accent",onClick:e[4]||(e[4]=o=>{Ue(),le()})}," 任务状态 "),e[32]||(e[32]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:p(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",S.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:S.value,onClick:e[5]||(e[5]=o=>{ts(),le()})}," 刷新过期 ",10,Ss),s("button",{type:"button",class:p(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",!B.value||S.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:!B.value||S.value,onClick:e[6]||(e[6]=o=>{St(),le()})}," 刷新选中 ",10,$s),e[33]||(e[33]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:p(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",B.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!B.value,onClick:e[7]||(e[7]=o=>{qt(),le()})}," 批量启用 ",10,Is),s("button",{type:"button",class:p(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",B.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!B.value,onClick:e[8]||(e[8]=o=>{Qt(),le()})}," 批量禁用 ",10,Es),s("button",{type:"button",class:p(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",B.value?"text-destructive hover:bg-destructive/10":"cursor-not-allowed text-muted-foreground"]),disabled:!B.value,onClick:e[9]||(e[9]=o=>{Xt(),le()})}," 批量删除 ",10,Ls)])):g("",!0)],512)]),Y.value==="card"?(l(),n("div",As,[(l(!0),n(ge,null,Ve(H.value,o=>(l(),n("div",{key:o.id,class:p(["rounded-2xl border border-border bg-card p-4",ct(o)]),onClick:r=>Ee(o.id)},[s("div",Vs,[s("div",null,[e[34]||(e[34]=s("p",{class:"text-xs text-muted-foreground"},"账号 ID",-1)),s("p",js,a(o.id),1)]),s("div",Ms,[G(be,{modelValue:b.value.has(o.id),"onUpdate:modelValue":r=>Ee(o.id),onClick:e[10]||(e[10]=M(()=>{},["stop"]))},null,8,["modelValue","onUpdate:modelValue"]),s("span",{class:p(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",nt(o)])},a(ve(o)),3)])]),s("div",Ds,[s("div",null,[e[35]||(e[35]=s("p",null,"剩余时间",-1)),s("p",{class:p(["mt-1 text-sm font-semibold",dt(o)])},a(it(o.remaining_display)),3),o.expires_at?(l(),n("p",Os,a(o.expires_at),1)):g("",!0)]),s("div",null,[e[36]||(e[36]=s("p",null,"冷却",-1)),s("p",{class:p(["mt-1",ze(o)])},[o.cooldown_seconds>0?(l(),n("span",Bs,a(ut(o.cooldown_seconds))+" · "+a(o.cooldown_reason),1)):(l(),n("span",Ns,a(o.cooldown_reason||"无冷却"),1))],2)]),s("div",null,[e[37]||(e[37]=s("p",null,"失败数",-1)),s("p",Us,a(o.error_count),1)]),s("div",null,[e[38]||(e[38]=s("p",null,"会话数",-1)),s("p",zs,a(o.conversation_count),1)])]),s("div",Ps,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:M(r=>pt(o.id),["stop"])}," 编辑 ",8,Fs),at(o)?(l(),n("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[e[11]||(e[11]=M(()=>{},["stop"])),r=>bt(o.id)]}," 启用 ",8,Ks)):(l(),n("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[e[12]||(e[12]=M(()=>{},["stop"])),r=>yt(o.id)]}," 禁用 ",8,Hs)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:[e[13]||(e[13]=M(()=>{},["stop"])),r=>_t(o.id)]}," 删除 ",8,Js)])],10,Rs))),128)),!H.value.length&&!j(ne)?(l(),n("div",Gs," 暂无账号数据,请检查后台配置。 ")):g("",!0)])):(l(),n("div",Ys,[s("table",qs,[s("thead",Qs,[s("tr",null,[s("th",Xs,[G(be,{modelValue:Oe.value,"onUpdate:modelValue":ft},null,8,["modelValue"])]),e[40]||(e[40]=s("th",{class:"py-3 pr-6"},"账号 ID",-1)),e[41]||(e[41]=s("th",{class:"py-3 pr-6"},"状态",-1)),s("th",Ws,[s("span",Zs,[e[39]||(e[39]=ee(" 剩余/过期 ",-1)),G(ms,{text:"过期时间为 12 小时,账户过期以北京时间为准。"})])]),e[42]||(e[42]=s("th",{class:"py-3 pr-6"},"冷却",-1)),e[43]||(e[43]=s("th",{class:"py-3 pr-6"},"失败数",-1)),e[44]||(e[44]=s("th",{class:"py-3 pr-6"},"会话数",-1)),e[45]||(e[45]=s("th",{class:"py-3 text-right"},"操作",-1))])]),s("tbody",eo,[!H.value.length&&!j(ne)?(l(),n("tr",to,[...e[46]||(e[46]=[s("td",{colspan:"8",class:"py-8 text-center text-muted-foreground"}," 暂无账号数据,请检查后台配置。 ",-1)])])):g("",!0),(l(!0),n(ge,null,Ve(H.value,o=>(l(),n("tr",{key:o.id,class:p(["border-t border-border",ct(o)]),onClick:r=>Ee(o.id)},[s("td",{class:"py-4 pr-4",onClick:e[14]||(e[14]=M(()=>{},["stop"]))},[G(be,{modelValue:b.value.has(o.id),"onUpdate:modelValue":r=>Ee(o.id)},null,8,["modelValue","onUpdate:modelValue"])]),s("td",oo,a(o.id),1),s("td",ro,[s("span",{class:p(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",nt(o)])},a(ve(o)),3)]),s("td",lo,[s("div",{class:p(["text-sm font-semibold",dt(o)])},a(it(o.remaining_display)),3),o.expires_at?(l(),n("span",no,a(o.expires_at),1)):g("",!0)]),s("td",ao,[o.cooldown_seconds>0?(l(),n("span",{key:0,class:p(ze(o))},a(ut(o.cooldown_seconds))+" · "+a(o.cooldown_reason),3)):(l(),n("span",{key:1,class:p(ze(o))},a(o.cooldown_reason||"无冷却"),3))]),s("td",io,a(o.error_count),1),s("td",uo,a(o.conversation_count),1),s("td",co,[s("div",fo,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:M(r=>pt(o.id),["stop"])}," 编辑 ",8,vo),at(o)?(l(),n("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:M(r=>bt(o.id),["stop"])}," 启用 ",8,mo)):(l(),n("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:M(r=>yt(o.id),["stop"])}," 禁用 ",8,po)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:M(r=>_t(o.id),["stop"])}," 删除 ",8,xo)])])],10,so))),128))])])]))])]),G(fs,{open:j(T).open.value,title:j(T).title.value,message:j(T).message.value,"confirm-text":j(T).confirmText.value,"cancel-text":j(T).cancelText.value,onConfirm:j(T).confirm,onCancel:j(T).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(l(),Re(je,{to:"body"},[ye.value?(l(),n("div",go,[s("div",bo,[s("div",yo,[s("div",null,[e[47]||(e[47]=s("p",{class:"text-sm font-medium text-foreground"},"添加账户",-1)),s("p",_o,a(U.value==="register"?"创建 DuckMail 账号并自动注册":"批量导入账户配置"),1)]),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Ne}," 关闭 ")]),s("div",ho,[s("div",wo,[s("div",ko,[s("button",{type:"button",class:p(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",U.value==="register"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:e[15]||(e[15]=o=>U.value="register")}," 自动注册 ",2),s("button",{type:"button",class:p(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",U.value==="import"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:e[16]||(e[16]=o=>U.value="import")}," 批量导入 ",2)]),U.value==="register"?(l(),n("div",Co,[e[48]||(e[48]=s("label",{class:"block text-xs text-muted-foreground"},"注册数量",-1)),R(s("input",{"onUpdate:modelValue":e[17]||(e[17]=o=>de.value=o),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,de.value,void 0,{number:!0}]]),e[49]||(e[49]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},[s("p",null,"默认域名(可在配置面板修改,推荐使用)"),s("p",{class:"mt-1"},"注册失败建议关闭无头浏览器再试")],-1))])):(l(),n("div",To,[e[50]||(e[50]=s("label",{class:"block text-xs text-muted-foreground"},"批量导入(每行一个)",-1)),R(s("textarea",{"onUpdate:modelValue":e[18]||(e[18]=o=>ue.value=o),class:"min-h-[140px] w-full rounded-2xl border border-input bg-background px-3 py-2 text-xs font-mono",placeholder:`duckmail----you@example.com----password +user@outlook.com----loginPassword----clientId----refreshToken`},null,512),[[V,ue.value]]),e[51]||(e[51]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},[s("p",null,"支持两种格式:"),s("p",{class:"mt-1 font-mono"},"duckmail----email----password"),s("p",{class:"mt-1 font-mono"},"email----password----clientId----refreshToken"),s("p",{class:"mt-2"},'导入后请执行一次"刷新选中"以获取 Cookie。'),s("p",{class:"mt-1"},"注册失败建议关闭无头浏览器再试")],-1)),z.value?(l(),n("div",So,a(z.value),1)):g("",!0)])),e[53]||(e[53]=s("div",{class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-[11px] leading-relaxed"},[s("p",{class:"text-xs font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)"),s("p",{class:"mt-1 text-muted-foreground"},[ee("详细声明请查看项目 "),s("a",{href:"https://github.com/Dreamy-rain/gemini-business2api/blob/main/docs/DISCLAIMER.md",target:"_blank",class:"text-primary hover:underline font-medium"},"DISCLAIMER.md")])],-1)),G(be,{modelValue:ce.value,"onUpdate:modelValue":e[19]||(e[19]=o=>ce.value=o)},{default:$t(()=>[...e[52]||(e[52]=[ee(" 我已阅读并同意上述说明与限制 ",-1)])]),_:1},8,["modelValue"])])]),s("div",$o,[s("div",Io,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Ne}," 取消 "),U.value==="register"?(l(),n("button",{key:0,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",disabled:O.value||!ce.value,onClick:es}," 开始注册 ",8,Eo)):(l(),n("button",{key:1,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",disabled:_e.value||!ce.value,onClick:Vt}," 导入并保存 ",8,Lo))])])])])):g("",!0)])),(l(),Re(je,{to:"body"},[q.value?(l(),n("div",Ao,[s("div",Ro,[s("div",Vo,[e[54]||(e[54]=s("div",null,[s("p",{class:"text-sm font-medium text-foreground"},"任务状态"),s("p",{class:"mt-1 text-xs text-muted-foreground"},"注册与刷新任务的状态与日志")],-1)),s("div",jo,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-muted-foreground transition-colors hover:border-primary hover:text-primary disabled:cursor-not-allowed disabled:opacity-50",disabled:!Q.value.length&&!X.value.length&&!c.value&&!f.value&&!_.value,onClick:Dt}," 清空日志 ",8,Mo),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Mt}," 关闭 ")])]),s("div",Do,[_.value?(l(),n("div",Oo,a(_.value),1)):g("",!0),c.value||f.value?(l(),n("div",Bo,[c.value?(l(),n("div",No,[s("div",Uo,[s("span",{class:p(["h-2.5 w-2.5 rounded-full",wt(c.value)]),"aria-hidden":"true"},null,2),e[55]||(e[55]=ee(" 注册任务 ",-1))]),s("div",zo,[s("span",null,"状态:"+a(ht(c.value.status)),1),s("span",null,"进度:"+a(c.value.progress)+"/"+a(c.value.count),1),s("span",null,"成功:"+a(c.value.success_count),1),s("span",null,"失败:"+a(c.value.fail_count),1)])])):g("",!0),f.value?(l(),n("div",Po,[s("div",Fo,[s("span",{class:p(["h-2.5 w-2.5 rounded-full",wt(f.value)]),"aria-hidden":"true"},null,2),e[56]||(e[56]=ee(" 刷新任务 ",-1))]),s("div",Ko,[s("span",null,"状态:"+a(ht(f.value.status)),1),s("span",null,"进度:"+a(f.value.progress)+"/"+a(f.value.account_ids.length),1),s("span",null,"成功:"+a(f.value.success_count),1),s("span",null,"失败:"+a(f.value.fail_count),1)])])):g("",!0)])):g("",!0),Q.value.length||X.value.length?(l(),n("div",Ho,[s("div",{ref_key:"taskLogsRef",ref:We,class:"scrollbar-slim flex-1 overflow-y-auto rounded-2xl border border-border bg-muted/30 p-3"},[Q.value.length?(l(),n("div",Jo,[e[57]||(e[57]=s("p",{class:"text-xs font-semibold text-foreground"},"注册日志",-1)),s("div",Go,[(l(!0),n(ge,null,Ve(Q.value,(o,r)=>(l(),n("div",{key:`reg-${r}`,class:"font-mono"},a(mt(o)),1))),128))])])):g("",!0),X.value.length?(l(),n("div",Yo,[e[58]||(e[58]=s("p",{class:"text-xs font-semibold text-foreground"},"刷新日志",-1)),s("div",qo,[(l(!0),n(ge,null,Ve(X.value,(o,r)=>(l(),n("div",{key:`login-${r}`,class:"font-mono"},a(mt(o)),1))),128))])])):g("",!0)],512)])):g("",!0),!_.value&&!c.value&&!f.value&&!Q.value.length&&!X.value.length?(l(),n("div",Qo," 暂无任务 ")):g("",!0)])])])):g("",!0)])),(l(),Re(je,{to:"body"},[x.value?(l(),n("div",Xo,[s("div",Wo,[s("div",{class:"flex items-center justify-between"},[e[59]||(e[59]=s("p",{class:"text-sm font-medium text-foreground"},"编辑账号",-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Fe}," 关闭 ")]),$.value?(l(),n("div",Zo,a($.value),1)):g("",!0),s("div",er,[e[60]||(e[60]=s("label",{class:"block text-xs text-muted-foreground"},"账号 ID",-1)),R(s("input",{"onUpdate:modelValue":e[20]||(e[20]=o=>h.value.id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",disabled:""},null,512),[[V,h.value.id]]),e[61]||(e[61]=s("label",{class:"block text-xs text-muted-foreground"},"secure_c_ses",-1)),R(s("textarea",{"onUpdate:modelValue":e[21]||(e[21]=o=>h.value.secure_c_ses=o),class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",rows:"3"},null,512),[[V,h.value.secure_c_ses]]),e[62]||(e[62]=s("label",{class:"block text-xs text-muted-foreground"},"csesidx",-1)),R(s("input",{"onUpdate:modelValue":e[22]||(e[22]=o=>h.value.csesidx=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,h.value.csesidx]]),e[63]||(e[63]=s("label",{class:"block text-xs text-muted-foreground"},"config_id",-1)),R(s("input",{"onUpdate:modelValue":e[23]||(e[23]=o=>h.value.config_id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,h.value.config_id]]),e[64]||(e[64]=s("label",{class:"block text-xs text-muted-foreground"},"host_c_oses",-1)),R(s("input",{"onUpdate:modelValue":e[24]||(e[24]=o=>h.value.host_c_oses=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,h.value.host_c_oses]]),e[65]||(e[65]=s("label",{class:"block text-xs text-muted-foreground"},"expires_at",-1)),R(s("input",{"onUpdate:modelValue":e[25]||(e[25]=o=>h.value.expires_at=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"2025-12-23 10:59:21"},null,512),[[V,h.value.expires_at]])]),s("div",{class:"mt-6 flex items-center justify-end gap-2"},[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Fe}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Yt}," 保存 ")])])])):g("",!0)])),(l(),Re(je,{to:"body"},[Me.value?(l(),n("div",tr,[s("div",sr,[s("div",or,[e[66]||(e[66]=s("p",{class:"text-sm font-medium text-foreground"},"账户配置(JSON)",-1)),s("div",rr,[s("button",{class:"rounded-full bg-foreground px-3 py-1 text-xs text-background transition-opacity hover:opacity-90",onClick:Jt},a(N.value?"显示原文":"脱敏显示"),1),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Pe}," 关闭 ")])]),D.value?(l(),n("div",lr,a(D.value),1)):g("",!0),s("div",nr,[R(s("textarea",{"onUpdate:modelValue":e[26]||(e[26]=o=>se.value=o),class:"h-96 w-full rounded-2xl border border-input bg-background px-4 py-3 font-mono text-xs text-foreground",spellcheck:"false",readonly:N.value},null,8,ar),[[V,se.value]])]),s("div",ir,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Pe}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",onClick:Gt,disabled:N.value}," 保存 ",8,dr)])])])):g("",!0)]))],64))}});export{xr as default}; diff --git a/static/assets/Accounts-BPJBl--e.js b/static/assets/Accounts-BPJBl--e.js new file mode 100644 index 0000000000000000000000000000000000000000..36fe8ec6ea2154091da1ee6f21af51f9fcf70e55 --- /dev/null +++ b/static/assets/Accounts-BPJBl--e.js @@ -0,0 +1 @@ +import{g as j,C as $e,h as c,d as Ae,D as Se,i as R,o as De,c as d,a as t,x as D,y as ue,m as V,v as $,b as h,A as Ee,t as a,n as m,u as v,F as q,r as ce,f as xe,T as pe,w as g,e as r}from"./index-B0A0-QFY.js";import{_ as Ue}from"./SelectMenu.vue_vue_type_script_setup_true_lang-Bb3w9pba.js";import{_ as F}from"./Checkbox.vue_vue_type_script_setup_true_lang-B6QFZaQQ.js";import{_ as je}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-Bkr0tSJw.js";import{u as ze}from"./useConfirmDialog-BS9rDomX.js";import{_ as Me}from"./HelpTip.vue_vue_type_script_setup_true_lang-BwK5Fa3C.js";const y={list:()=>j.get("/admin/accounts"),getConfig:()=>j.get("/admin/accounts-config"),updateConfig:f=>j.put("/admin/accounts-config",f),delete:f=>j.delete(`/admin/accounts/${f}`),disable:f=>j.put(`/admin/accounts/${f}/disable`),enable:f=>j.put(`/admin/accounts/${f}/enable`)},Ne=$e("accounts",()=>{const f=c([]),x=c(!1);async function b(){x.value=!0;try{const l=await y.list();f.value=Array.isArray(l)?l:l.accounts||[]}finally{x.value=!1}}async function z(l){await y.delete(l),await b()}async function p(l){await y.disable(l),await b()}async function M(l){await y.enable(l),await b()}async function E(l){await Promise.all(l.map(_=>y.enable(_))),await b()}async function u(l){await Promise.all(l.map(_=>y.disable(_))),await b()}async function A(l){await Promise.all(l.map(_=>y.delete(_))),await b()}async function N(l){await y.updateConfig(l),await b()}return{accounts:f,isLoading:x,loadAccounts:b,deleteAccount:z,disableAccount:p,enableAccount:M,bulkEnable:E,bulkDisable:u,bulkDelete:A,updateConfig:N}}),Te={class:"space-y-8"},Be={class:"rounded-3xl border border-border bg-card p-6"},Oe={class:"flex flex-wrap items-center justify-between gap-4"},Je={class:"grid w-full grid-cols-2 gap-3 sm:flex sm:w-auto sm:items-center"},Le={class:"flex w-full flex-wrap items-center gap-3 text-xs text-muted-foreground sm:w-auto sm:flex-nowrap"},Fe={key:0},Ie={class:"ml-auto flex items-center gap-2 sm:ml-0"},Pe={class:"mt-4 flex flex-wrap items-center gap-3"},He=["disabled"],Qe=["disabled"],Re=["disabled"],qe=["disabled"],Ge={key:0,class:"mt-6 grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3"},Ke=["onClick"],We={class:"flex items-start justify-between gap-3"},Xe={class:"mt-1 font-mono text-xs text-foreground"},Ye={class:"flex items-center gap-2"},Ze={class:"mt-4 grid grid-cols-2 gap-3 text-xs text-muted-foreground"},et={key:0,class:"mt-1 text-[11px]"},tt={key:0},ot={key:1},st={class:"mt-1 text-sm font-semibold text-foreground"},rt={class:"mt-1 text-sm font-semibold text-foreground"},lt={class:"mt-4 flex flex-wrap items-center gap-2"},nt=["onClick"],dt=["onClick"],at=["onClick"],it=["onClick"],ut={key:0,class:"rounded-2xl border border-border bg-background p-4 text-center text-xs text-muted-foreground"},ct={key:1,class:"relative mt-6 overflow-x-auto overflow-y-visible"},xt={class:"min-w-full text-left text-sm"},pt={class:"text-xs uppercase tracking-[0.2em] text-muted-foreground"},ft={class:"py-3 pr-4"},mt={class:"py-3 pr-6"},bt={class:"inline-flex items-center gap-2"},vt={class:"text-sm text-foreground"},gt={key:0},yt=["onClick"],_t={class:"py-4 pr-6 font-mono text-xs text-foreground"},wt={class:"py-4 pr-6"},ht={class:"py-4 pr-6"},kt={key:0,class:"block text-[11px] text-muted-foreground"},Ct={class:"py-4 pr-6 text-xs"},Vt={class:"py-4 pr-6 text-xs text-muted-foreground"},$t={class:"py-4 pr-6 text-xs text-muted-foreground"},At={class:"py-4 text-right"},St={class:"flex flex-wrap justify-end gap-2"},Dt=["onClick"],Et=["onClick"],Ut=["onClick"],jt=["onClick"],zt={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Mt={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},Nt={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Tt={class:"mt-4 space-y-3 text-sm"},Bt={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Ot={class:"w-full max-w-3xl rounded-3xl border border-border bg-card p-6 shadow-xl"},Jt={class:"flex items-center justify-between"},Lt={class:"flex items-center gap-2"},Ft={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},It={class:"mt-4"},Pt=["readonly"],Ht={class:"mt-6 flex items-center justify-end gap-2"},Qt=["disabled"],Yt=Ae({__name:"Accounts",setup(f){const x=Ne(),{accounts:b,isLoading:z}=Se(x),p=ze(),M=c(""),E=c("all"),u=c(new Set),A=c("table"),N=c(!1),l=c(""),_=c(!1),w=c(""),U=c(""),k=c(!1),T=c([]),i=c({id:"",secure_c_ses:"",csesidx:"",config_id:"",host_c_oses:"",expires_at:""}),J=c(null),G=c([]),fe=[{label:"全部状态",value:"all"},{label:"正常",value:"正常"},{label:"即将过期",value:"即将过期"},{label:"已过期",value:"已过期"},{label:"手动禁用",value:"手动禁用"},{label:"错误禁用",value:"错误禁用"},{label:"429限流",value:"429限流"}],C=R(()=>{const o=M.value.trim().toLowerCase();return b.value.filter(e=>{const s=!o||e.id.toLowerCase().includes(o),n=E.value==="all"||O(e)===E.value;return s&&n})}),B=R(()=>u.value.size),I=R(()=>C.value.length>0&&C.value.every(o=>u.value.has(o.id))),K=async()=>{await x.loadAccounts(),u.value=new Set};De(async()=>{await K()});const O=o=>o.cooldown_reason?.includes("429")&&o.cooldown_seconds>0?"429限流":o.cooldown_reason==="错误禁用"?"错误禁用":o.disabled?"手动禁用":o.status==="已过期"?"已过期":o.status==="即将过期"?"即将过期":"正常",W=o=>{const e=O(o);return e==="429限流"||e==="即将过期"?"bg-amber-200 text-amber-900":e==="错误禁用"||e==="已过期"?"bg-destructive/10 text-destructive":e==="手动禁用"?"bg-muted text-muted-foreground":"bg-emerald-500 text-white"},X=o=>o.cooldown_reason?.includes("429")&&o.cooldown_seconds>0?!0:o.disabled||o.cooldown_reason==="错误禁用",Y=o=>o==="已过期"?"过期":o==="未设置"?"未设置":o,Z=o=>o.status==="已过期"?"text-rose-600":o.status==="即将过期"?"text-amber-700":o.status==="未设置"?"text-muted-foreground":"text-emerald-600",ee=o=>o<60?`${o} 秒`:o<3600?`${Math.ceil(o/60)} 分钟`:`${(o/3600).toFixed(1)} 小时`,P=o=>o.cooldown_seconds>0?"text-amber-700":o.cooldown_reason==="错误禁用"?"text-rose-600":"text-muted-foreground",te=o=>{const e=O(o);return e==="手动禁用"||e==="已过期"?"bg-muted/70":""},L=o=>{const e=new Set(u.value);e.has(o)?e.delete(o):e.add(o),u.value=e},oe=()=>{if(I.value){u.value=new Set;return}u.value=new Set(C.value.map(o=>o.id))},me=(o,e)=>o.id||`account_${e+1}`,be=async()=>(await y.getConfig()).accounts.map((e,s)=>({...e,id:me(e,s)})),ve=(o,e)=>{let s=-1;for(let S=0;S{l.value="";try{const e=await be();ve(e,o)}catch(e){l.value=e.message||"加载账号配置失败"}},ge=async()=>{w.value="";try{const o=await y.getConfig();T.value=Array.isArray(o.accounts)?o.accounts:[],U.value=JSON.stringify(le(T.value),null,2),k.value=!0,_.value=!0}catch(o){w.value=o.message||"加载账号配置失败"}},H=()=>{_.value=!1,w.value="",k.value=!1},re=()=>{const o=JSON.parse(U.value);if(!Array.isArray(o))throw new Error("配置格式必须是数组。");return o},ye=o=>typeof o!="string"||!o?o:o.length<=6?`${o.slice(0,2)}****`:`${o.slice(0,3)}****`,le=o=>{const e=new Set(["secure_c_ses","csesidx","config_id","host_c_oses"]);return o.map(s=>{const n={...s};return e.forEach(S=>{const ie=n[S];ie&&(n[S]=ye(ie))}),n})},_e=()=>{if(w.value="",!k.value){try{T.value=re()}catch(o){w.value=o.message||"JSON 格式错误";return}U.value=JSON.stringify(le(T.value),null,2),k.value=!0;return}U.value=JSON.stringify(T.value,null,2),k.value=!1},we=async()=>{w.value="";try{const o=re();await x.updateConfig(o),H()}catch(o){w.value=o.message||"保存失败"}},Q=()=>{N.value=!1,l.value=""},he=async()=>{if(J.value===null)return;const o=[...G.value];o[J.value]={...o[J.value],id:i.value.id,secure_c_ses:i.value.secure_c_ses,csesidx:i.value.csesidx,config_id:i.value.config_id,host_c_oses:i.value.host_c_oses||void 0,expires_at:i.value.expires_at||void 0};try{await x.updateConfig(o),Q()}catch(e){l.value=e.message||"保存失败"}},ke=async()=>{await x.bulkEnable(Array.from(u.value)),u.value=new Set},Ce=async()=>{await p.ask({title:"批量禁用",message:"确定要批量禁用选中的账号吗?"})&&(await x.bulkDisable(Array.from(u.value)),u.value=new Set)},Ve=async()=>{await p.ask({title:"批量删除",message:"确定要批量删除选中的账号吗?",confirmText:"删除"})&&(await x.bulkDelete(Array.from(u.value)),u.value=new Set)},ne=async o=>{await x.enableAccount(o)},de=async o=>{await p.ask({title:"禁用账号",message:"确定要禁用该账号吗?"})&&await x.disableAccount(o)},ae=async o=>{await p.ask({title:"删除账号",message:"确定要删除该账号吗?",confirmText:"删除"})&&await x.deleteAccount(o)};return(o,e)=>(r(),d(q,null,[t("div",Te,[t("section",Be,[t("div",Oe,[t("div",Je,[V(t("input",{"onUpdate:modelValue":e[0]||(e[0]=s=>M.value=s),type:"text",placeholder:"搜索账号 ID",class:"w-full rounded-full border border-input bg-background px-4 py-2 text-sm sm:w-48"},null,512),[[$,M.value]]),D(Ue,{modelValue:E.value,"onUpdate:modelValue":e[1]||(e[1]=s=>E.value=s),options:fe},null,8,["modelValue"])]),t("div",Le,[D(F,{modelValue:I.value,"onUpdate:modelValue":oe},{default:Ee(()=>[...e[16]||(e[16]=[xe(" 全选 ",-1)])]),_:1},8,["modelValue"]),t("span",null,"共 "+a(C.value.length)+" 个账号",1),B.value?(r(),d("span",Fe,"已选 "+a(B.value)+" 个",1)):h("",!0),t("div",Ie,[t("button",{type:"button",class:m(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",A.value==="table"?"bg-accent text-accent-foreground":""]),onClick:e[2]||(e[2]=s=>A.value="table"),"aria-label":"列表视图"},[...e[17]||(e[17]=[t("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[t("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])],2),t("button",{type:"button",class:m(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",A.value==="card"?"bg-accent text-accent-foreground":""]),onClick:e[3]||(e[3]=s=>A.value="card"),"aria-label":"卡片视图"},[...e[18]||(e[18]=[t("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[t("path",{d:"M4 6h7v6H4V6zm9 0h7v6h-7V6zM4 14h7v4H4v-4zm9 0h7v4h-7v-4z"})],-1)])],2)])])]),t("div",Pe,[t("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:ge}," 账户配置 "),t("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:v(z),onClick:K}," 刷新列表 ",8,He),t("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:!B.value,onClick:ke}," 批量启用 ",8,Qe),t("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:!B.value,onClick:Ce}," 批量禁用 ",8,Re),t("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-destructive transition-colors hover:border-destructive hover:text-destructive",disabled:!B.value,onClick:Ve}," 批量删除 ",8,qe)]),A.value==="card"?(r(),d("div",Ge,[(r(!0),d(q,null,ce(C.value,s=>(r(),d("div",{key:s.id,class:m(["rounded-2xl border border-border bg-card p-4",te(s)]),onClick:n=>L(s.id)},[t("div",We,[t("div",null,[e[19]||(e[19]=t("p",{class:"text-xs text-muted-foreground"},"账号 ID",-1)),t("p",Xe,a(s.id),1)]),t("div",Ye,[D(F,{modelValue:u.value.has(s.id),"onUpdate:modelValue":n=>L(s.id),onClick:e[4]||(e[4]=g(()=>{},["stop"]))},null,8,["modelValue","onUpdate:modelValue"]),t("span",{class:m(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",W(s)])},a(O(s)),3)])]),t("div",Ze,[t("div",null,[e[20]||(e[20]=t("p",null,"剩余时间",-1)),t("p",{class:m(["mt-1 text-sm font-semibold",Z(s)])},a(Y(s.remaining_display)),3),s.expires_at?(r(),d("p",et,a(s.expires_at),1)):h("",!0)]),t("div",null,[e[21]||(e[21]=t("p",null,"冷却",-1)),t("p",{class:m(["mt-1",P(s)])},[s.cooldown_seconds>0?(r(),d("span",tt,a(ee(s.cooldown_seconds))+" · "+a(s.cooldown_reason),1)):(r(),d("span",ot,a(s.cooldown_reason||"无冷却"),1))],2)]),t("div",null,[e[22]||(e[22]=t("p",null,"失败数",-1)),t("p",st,a(s.error_count),1)]),t("div",null,[e[23]||(e[23]=t("p",null,"会话数",-1)),t("p",rt,a(s.conversation_count),1)])]),t("div",lt,[t("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:g(n=>se(s.id),["stop"])}," 编辑 ",8,nt),X(s)?(r(),d("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[e[5]||(e[5]=g(()=>{},["stop"])),n=>ne(s.id)]}," 启用 ",8,dt)):(r(),d("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[e[6]||(e[6]=g(()=>{},["stop"])),n=>de(s.id)]}," 禁用 ",8,at)),t("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:[e[7]||(e[7]=g(()=>{},["stop"])),n=>ae(s.id)]}," 删除 ",8,it)])],10,Ke))),128)),!C.value.length&&!v(z)?(r(),d("div",ut," 暂无账号数据,请检查后台配置。 ")):h("",!0)])):(r(),d("div",ct,[t("table",xt,[t("thead",pt,[t("tr",null,[t("th",ft,[D(F,{modelValue:I.value,"onUpdate:modelValue":oe},null,8,["modelValue"])]),e[25]||(e[25]=t("th",{class:"py-3 pr-6"},"账号 ID",-1)),e[26]||(e[26]=t("th",{class:"py-3 pr-6"},"状态",-1)),t("th",mt,[t("span",bt,[e[24]||(e[24]=xe(" 剩余/过期 ",-1)),D(Me,{text:"过期时间为 12 小时,账户过期以北京时间为准。"})])]),e[27]||(e[27]=t("th",{class:"py-3 pr-6"},"冷却",-1)),e[28]||(e[28]=t("th",{class:"py-3 pr-6"},"失败数",-1)),e[29]||(e[29]=t("th",{class:"py-3 pr-6"},"会话数",-1)),e[30]||(e[30]=t("th",{class:"py-3 text-right"},"操作",-1))])]),t("tbody",vt,[!C.value.length&&!v(z)?(r(),d("tr",gt,[...e[31]||(e[31]=[t("td",{colspan:"8",class:"py-8 text-center text-muted-foreground"}," 暂无账号数据,请检查后台配置。 ",-1)])])):h("",!0),(r(!0),d(q,null,ce(C.value,s=>(r(),d("tr",{key:s.id,class:m(["border-t border-border",te(s)]),onClick:n=>L(s.id)},[t("td",{class:"py-4 pr-4",onClick:e[8]||(e[8]=g(()=>{},["stop"]))},[D(F,{modelValue:u.value.has(s.id),"onUpdate:modelValue":n=>L(s.id)},null,8,["modelValue","onUpdate:modelValue"])]),t("td",_t,a(s.id),1),t("td",wt,[t("span",{class:m(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",W(s)])},a(O(s)),3)]),t("td",ht,[t("div",{class:m(["text-sm font-semibold",Z(s)])},a(Y(s.remaining_display)),3),s.expires_at?(r(),d("span",kt,a(s.expires_at),1)):h("",!0)]),t("td",Ct,[s.cooldown_seconds>0?(r(),d("span",{key:0,class:m(P(s))},a(ee(s.cooldown_seconds))+" · "+a(s.cooldown_reason),3)):(r(),d("span",{key:1,class:m(P(s))},a(s.cooldown_reason||"无冷却"),3))]),t("td",Vt,a(s.error_count),1),t("td",$t,a(s.conversation_count),1),t("td",At,[t("div",St,[t("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:g(n=>se(s.id),["stop"])}," 编辑 ",8,Dt),X(s)?(r(),d("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:g(n=>ne(s.id),["stop"])}," 启用 ",8,Et)):(r(),d("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:g(n=>de(s.id),["stop"])}," 禁用 ",8,Ut)),t("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:g(n=>ae(s.id),["stop"])}," 删除 ",8,jt)])])],10,yt))),128))])])]))])]),D(je,{open:v(p).open.value,title:v(p).title.value,message:v(p).message.value,"confirm-text":v(p).confirmText.value,"cancel-text":v(p).cancelText.value,onConfirm:v(p).confirm,onCancel:v(p).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(r(),ue(pe,{to:"body"},[N.value?(r(),d("div",zt,[t("div",Mt,[t("div",{class:"flex items-center justify-between"},[e[32]||(e[32]=t("p",{class:"text-sm font-medium text-foreground"},"编辑账号",-1)),t("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Q}," 关闭 ")]),l.value?(r(),d("div",Nt,a(l.value),1)):h("",!0),t("div",Tt,[e[33]||(e[33]=t("label",{class:"block text-xs text-muted-foreground"},"账号 ID",-1)),V(t("input",{"onUpdate:modelValue":e[9]||(e[9]=s=>i.value.id=s),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",disabled:""},null,512),[[$,i.value.id]]),e[34]||(e[34]=t("label",{class:"block text-xs text-muted-foreground"},"secure_c_ses",-1)),V(t("textarea",{"onUpdate:modelValue":e[10]||(e[10]=s=>i.value.secure_c_ses=s),class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",rows:"3"},null,512),[[$,i.value.secure_c_ses]]),e[35]||(e[35]=t("label",{class:"block text-xs text-muted-foreground"},"csesidx",-1)),V(t("input",{"onUpdate:modelValue":e[11]||(e[11]=s=>i.value.csesidx=s),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,i.value.csesidx]]),e[36]||(e[36]=t("label",{class:"block text-xs text-muted-foreground"},"config_id",-1)),V(t("input",{"onUpdate:modelValue":e[12]||(e[12]=s=>i.value.config_id=s),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,i.value.config_id]]),e[37]||(e[37]=t("label",{class:"block text-xs text-muted-foreground"},"host_c_oses",-1)),V(t("input",{"onUpdate:modelValue":e[13]||(e[13]=s=>i.value.host_c_oses=s),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,i.value.host_c_oses]]),e[38]||(e[38]=t("label",{class:"block text-xs text-muted-foreground"},"expires_at",-1)),V(t("input",{"onUpdate:modelValue":e[14]||(e[14]=s=>i.value.expires_at=s),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"2025-12-23 10:59:21"},null,512),[[$,i.value.expires_at]])]),t("div",{class:"mt-6 flex items-center justify-end gap-2"},[t("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Q}," 取消 "),t("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:he}," 保存 ")])])])):h("",!0)])),(r(),ue(pe,{to:"body"},[_.value?(r(),d("div",Bt,[t("div",Ot,[t("div",Jt,[e[39]||(e[39]=t("p",{class:"text-sm font-medium text-foreground"},"账户配置(JSON)",-1)),t("div",Lt,[t("button",{class:"rounded-full bg-foreground px-3 py-1 text-xs text-background transition-opacity hover:opacity-90",onClick:_e},a(k.value?"显示原文":"脱敏显示"),1),t("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:H}," 关闭 ")])]),w.value?(r(),d("div",Ft,a(w.value),1)):h("",!0),t("div",It,[V(t("textarea",{"onUpdate:modelValue":e[15]||(e[15]=s=>U.value=s),class:"h-96 w-full rounded-2xl border border-input bg-background px-4 py-3 font-mono text-xs text-foreground",spellcheck:"false",readonly:k.value},null,8,Pt),[[$,U.value]])]),t("div",Ht,[t("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:H}," 取消 "),t("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:we,disabled:k.value}," 保存 ",8,Qt)])])])):h("",!0)]))],64))}});export{Yt as default}; diff --git a/static/assets/Accounts-BWmfQ8Fj.js b/static/assets/Accounts-BWmfQ8Fj.js new file mode 100644 index 0000000000000000000000000000000000000000..8b36fde3c2c66e0c4a4667372f6d6c905d9b4bd7 --- /dev/null +++ b/static/assets/Accounts-BWmfQ8Fj.js @@ -0,0 +1,2 @@ +import{g as E,D as ts,h as a,d as ss,E as os,i as H,o as rs,A as ls,j as ns,c as l,a as s,q as J,m as Re,p as A,v as $,s as Tt,t as n,n as g,u as R,b as m,f as pe,F as ge,r as Ve,x as je,w as V,e as r,G as as}from"./index-DL4Fp3an.js";import{_ as is}from"./SelectMenu.vue_vue_type_script_setup_true_lang-CmVUq-Y1.js";import{_ as be}from"./Checkbox.vue_vue_type_script_setup_true_lang-FvD-aCmU.js";import{_ as ds}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-CWs1-jf0.js";import{u as us}from"./useConfirmDialog-MThy7PVA.js";import{_ as cs}from"./HelpTip.vue_vue_type_script_setup_true_lang-CAICIbTF.js";const h={list:()=>E.get("/admin/accounts"),getConfig:()=>E.get("/admin/accounts-config"),updateConfig:b=>E.put("/admin/accounts-config",b),delete:b=>E.delete(`/admin/accounts/${b}`),disable:b=>E.put(`/admin/accounts/${b}/disable`),enable:b=>E.put(`/admin/accounts/${b}/enable`),startRegister:(b,w)=>E.post("/admin/register/start",{count:b,domain:w}),getRegisterTask:b=>E.get(`/admin/register/task/${b}`),getRegisterCurrent:()=>E.get("/admin/register/current"),startLogin:b=>E.post("/admin/login/start",b),getLoginTask:b=>E.get(`/admin/login/task/${b}`),getLoginCurrent:()=>E.get("/admin/login/current"),checkLogin:()=>E.post("/admin/login/check")},fs=ts("accounts",()=>{const b=a([]),w=a(!1);async function L(){w.value=!0;try{const u=await h.list();b.value=Array.isArray(u)?u:u.accounts||[]}finally{w.value=!1}}async function re(u){await h.delete(u),await L()}async function C(u){await h.disable(u),await L()}async function le(u){await h.enable(u),await L()}async function Z(u){await Promise.all(u.map(j=>h.enable(j))),await L()}async function p(u){await Promise.all(u.map(j=>h.disable(j))),await L()}async function G(u){await Promise.all(u.map(j=>h.delete(j))),await L()}async function ne(u){await h.updateConfig(u),await L()}return{accounts:b,isLoading:w,loadAccounts:L,deleteAccount:re,disableAccount:C,enableAccount:le,bulkEnable:Z,bulkDisable:p,bulkDelete:G,updateConfig:ne}}),vs={class:"space-y-8"},xs={class:"rounded-3xl border border-border bg-card p-6"},ms={class:"flex flex-wrap items-center justify-between gap-4"},ps={class:"grid w-full grid-cols-2 gap-3 sm:flex sm:w-auto sm:items-center"},gs={class:"flex w-full flex-wrap items-center gap-3 text-xs text-muted-foreground sm:w-auto sm:flex-nowrap"},bs={class:"ml-auto flex items-center gap-2 sm:ml-0"},ys={class:"mt-4 flex flex-wrap items-center gap-2"},_s=["disabled"],hs=["disabled"],ws={key:0,class:"absolute right-0 z-10 mt-2 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg"},ks=["disabled"],Cs=["disabled"],Ts=["disabled"],Ss=["disabled"],Es=["disabled"],Is={key:0,class:"mt-6 grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3"},Ls=["onClick"],As={class:"flex items-start justify-between gap-3"},$s={class:"mt-1 font-mono text-xs text-foreground"},Rs={class:"flex items-center gap-2"},Vs={class:"mt-4 grid grid-cols-2 gap-3 text-xs text-muted-foreground"},js={key:0,class:"mt-1 text-[11px]"},Ms={key:0},Ds={key:1},Os={class:"mt-1 text-sm font-semibold text-foreground"},Bs={class:"mt-1 text-sm font-semibold text-foreground"},Ns={class:"mt-4 flex flex-wrap items-center gap-2"},Us=["onClick"],zs=["onClick"],Ps=["onClick"],Fs=["onClick"],Ks={key:0,class:"rounded-2xl border border-border bg-background p-4 text-center text-xs text-muted-foreground"},Hs={key:1,class:"relative mt-6 overflow-x-auto overflow-y-visible"},Js={class:"min-w-full text-left text-sm"},Gs={class:"text-xs uppercase tracking-[0.2em] text-muted-foreground"},Ys={class:"py-3 pr-4"},qs={class:"py-3 pr-6"},Qs={class:"inline-flex items-center gap-2"},Xs={class:"text-sm text-foreground"},Ws={key:0},Zs=["onClick"],eo={class:"py-4 pr-6 font-mono text-xs text-foreground"},to={class:"py-4 pr-6"},so={class:"py-4 pr-6"},oo={key:0,class:"block text-[11px] text-muted-foreground"},ro={class:"py-4 pr-6 text-xs"},lo={class:"py-4 pr-6 text-xs text-muted-foreground"},no={class:"py-4 pr-6 text-xs text-muted-foreground"},ao={class:"py-4 text-right"},io={class:"flex flex-wrap justify-end gap-2"},uo=["onClick"],co=["onClick"],fo=["onClick"],vo=["onClick"],xo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},mo={class:"flex max-h-[90vh] w-full max-w-lg flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},po={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},go={class:"mt-1 text-xs text-muted-foreground"},bo={class:"scrollbar-slim flex-1 overflow-y-auto px-6 py-4"},yo={class:"space-y-4 text-sm"},_o={class:"flex rounded-full border border-border bg-muted/30 p-1 text-xs"},ho={key:0,class:"space-y-4"},wo={key:1,class:"space-y-4"},ko={key:0,class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-xs text-rose-600"},Co={class:"border-t border-border/60 px-6 py-4"},To={class:"flex items-center justify-end gap-2"},So=["disabled"],Eo=["disabled"],Io={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Lo={class:"flex h-[80vh] w-full max-w-2xl flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},Ao={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},$o={class:"flex items-center gap-2"},Ro=["disabled"],Vo={class:"flex min-h-0 flex-1 flex-col px-6 py-4"},jo={key:0,class:"rounded-2xl bg-destructive/10 px-3 py-2 text-xs text-destructive"},Mo={key:1,class:"grid gap-3 text-xs text-muted-foreground"},Do={key:0,class:"space-y-1"},Oo={class:"flex flex-wrap gap-x-4 gap-y-1"},Bo={key:1,class:"space-y-1"},No={class:"flex flex-wrap gap-x-4 gap-y-1"},Uo={key:2,class:"mt-4 flex min-h-0 flex-1 flex-col"},zo={key:0,class:"space-y-2"},Po={class:"space-y-1 text-[11px] text-muted-foreground"},Fo={key:1,class:"mt-4 space-y-2"},Ko={class:"space-y-1 text-[11px] text-muted-foreground"},Ho={key:3,class:"mt-4 rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},Jo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Go={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},Yo={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},qo={class:"mt-4 space-y-3 text-sm"},Qo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Xo={class:"w-full max-w-3xl rounded-3xl border border-border bg-card p-6 shadow-xl"},Wo={class:"flex items-center justify-between"},Zo={class:"flex items-center gap-2"},er={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},tr={class:"mt-4"},sr=["readonly"],or={class:"mt-6 flex items-center justify-end gap-2"},rr=["disabled"],He="accounts-register-task-cache",Je="accounts-login-task-cache",Ge="accounts-register-log-clear",Ye="accounts-login-log-clear",qe="accounts-register-task-cleared-id",Qe="accounts-login-task-cleared-id",St="1970-01-01 00:00:00",cr=ss({__name:"Accounts",setup(b){const w=fs(),{accounts:L,isLoading:re}=os(w),C=us(),le=a(""),Z=a("all"),p=a(new Set),G=a("table"),ne=a(!1),u=a(""),j=a(!1),M=a(""),ee=a(""),B=a(!1),ae=a([]),ie=a(1),ye=a(!1),N=a("register"),de=a(""),U=a(""),_e=a(!1),Y=a(!1),z=a(!1),Me=a(null),he=a(null),we=a(null),P=a(null),F=a(null),te=a(0),se=a(0),ue=a(!1),c=a(null),f=a(null),Xe=a(null),D=a(!1),T=a(!1),y=a(""),_=a({id:"",secure_c_ses:"",csesidx:"",config_id:"",host_c_oses:"",expires_at:""}),ke=a(null),We=a([]),Et=[{label:"全部状态",value:"all"},{label:"正常",value:"正常"},{label:"即将过期",value:"即将过期"},{label:"已过期",value:"已过期"},{label:"手动禁用",value:"手动禁用"},{label:"错误禁用",value:"错误禁用"},{label:"429限流",value:"429限流"}],K=H(()=>{const e=le.value.trim().toLowerCase();return L.value.filter(t=>{const o=!e||t.id.toLowerCase().includes(e),i=Z.value==="all"||fe(t)===Z.value;return o&&i})}),O=H(()=>p.value.size),De=H(()=>K.value.length>0&&K.value.every(e=>p.value.has(e.id))),ce=async()=>{await w.loadAccounts(),p.value=new Set,z.value=!1},Ze=e=>{try{const t=localStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}},et=e=>{try{return localStorage.getItem(e)||null}catch{return null}},Ce=(e,t)=>{try{if(t){localStorage.setItem(e,t);return}localStorage.removeItem(e)}catch{}},tt=(e,t)=>{try{localStorage.setItem(e,JSON.stringify(t))}catch{}},st=e=>{try{localStorage.removeItem(e)}catch{}},ot=e=>{const t=localStorage.getItem(e),o=Number(t);return Number.isFinite(o)?o:0},Te=(e,t)=>{try{localStorage.setItem(e,String(t))}catch{}},Oe=(e,t=!0)=>{e&&(e.id&&e.id===P.value||(e.id&&P.value&&e.id!==P.value&&(P.value=null,Ce(qe,null)),c.value=e,e.id&&e.id!==he.value&&(he.value=e.id,te.value=0,Te(Ge,0)),t&&tt(He,e)))},Se=(e,t=!0)=>{e&&(e.id&&e.id===F.value||(e.id&&F.value&&e.id!==F.value&&(F.value=null,Ce(Qe,null)),f.value=e,e.id&&e.id!==we.value&&(we.value=e.id,se.value=0,Te(Ye,0)),t&&tt(Je,e)))},It=()=>{te.value=ot(Ge),se.value=ot(Ye),P.value=et(qe),F.value=et(Qe);const e=Ze(He);e&&e.id!==P.value&&(c.value=e,he.value=e.id||null);const t=Ze(Je);t&&t.id!==F.value&&(f.value=t,we.value=t.id||null)},Lt=()=>{ye.value=!0,N.value="register",de.value="",U.value="",_e.value=!1,ue.value=!1},Be=()=>{ye.value=!1},At=e=>{const t=[],o=[];return e.split(/\r?\n/).map(d=>d.trim()).filter(Boolean).forEach((d,x)=>{const v=d.split("----").map(S=>S.trim()),k=x+1;if(v.length){if(v[0].toLowerCase()==="duckmail"){if(v.length<3||!v[1]||!v[2]){o.push(`第 ${k} 行格式错误(duckmail)`);return}const S=v[1],$e=v.slice(2).join("----");t.push({id:S,secure_c_ses:"",csesidx:"",config_id:"",expires_at:St,mail_provider:"duckmail",mail_address:S,mail_password:$e});return}if(v.length>=4&&v[0]&&v[2]&&v[3]){const S=v[0],$e=v[1]||"",I=v[2],es=v.slice(3).join("----");t.push({id:S,secure_c_ses:"",csesidx:"",config_id:"",expires_at:St,mail_provider:"microsoft",mail_address:S,mail_password:$e,mail_client_id:I,mail_refresh_token:es,mail_tenant:"consumers"});return}o.push(`第 ${k} 行格式错误`)}}),{items:t,errors:o}},$t=async()=>{if(U.value="",!de.value.trim()){U.value="请输入导入内容";return}const{items:e,errors:t}=At(de.value);if(!e.length){U.value=t.length?t.join(","):"未识别到有效账号";return}if(t.length){U.value=t.slice(0,3).join(",");return}_e.value=!0;try{const i=[...await ft()],d=new Map(i.map((k,S)=>[k.id,S])),x=[];e.forEach(k=>{const S=d.get(k.id||"");if(S===void 0){i.push(k),x.push(k.id);return}const I={...i[S],mail_provider:k.mail_provider,mail_address:k.mail_address};k.mail_provider==="microsoft"?(I.mail_client_id=k.mail_client_id,I.mail_refresh_token=k.mail_refresh_token,I.mail_tenant=k.mail_tenant,I.mail_password=k.mail_password):(I.mail_password=k.mail_password,I.mail_client_id=void 0,I.mail_refresh_token=void 0,I.mail_tenant=void 0),i[S]=I,x.push(k.id)}),await w.updateConfig(i),await ce(),p.value=new Set(x),Be(),await C.ask({title:"导入成功",message:`已导入 ${x.length} 个账户并自动选中。是否立即刷新这些账户以获取 Cookie?`,confirmText:"立即刷新",cancelText:"稍后手动刷新"})&&await Ct()}catch(o){U.value=o.message||"导入失败"}finally{_e.value=!1}},Rt=async()=>{try{const e=[],t=c.value?.id,o=f.value?.id;if(t&&!Ee(t)&&e.push(ht(t)),o&&!Ie(o)&&e.push(wt(o)),!e.length){await Ke();return}await Promise.all(e)}catch(e){y.value=e?.message||"任务状态更新失败"}},Ne=async()=>{Y.value=!0,await Rt()},Vt=()=>{Y.value=!1},jt=()=>{const e=c.value?.id||null,t=f.value?.id||null;P.value=e,F.value=t,Ce(qe,e),Ce(Qe,t),te.value=c.value?.logs?.length||0,se.value=f.value?.logs?.length||0,Te(Ge,te.value),Te(Ye,se.value),c.value=null,f.value=null,he.value=null,we.value=null,y.value="",D.value=!1,T.value=!1,X(),W(),st(He),st(Je)},Ee=e=>!!(e&&e===P.value),Ie=e=>!!(e&&e===F.value),Mt=()=>{z.value=!z.value},oe=()=>{z.value=!1},rt=e=>{if(!z.value)return;const t=e.target;Me.value&&!Me.value.contains(t)&&(z.value=!1)};rs(async()=>{It(),await ce(),await Ke(),Xt(),document.addEventListener("click",rt)});const q=H(()=>{const e=c.value?.logs||[];return te.value?e.slice(te.value):e}),Q=H(()=>{const e=f.value?.logs||[];return se.value?e.slice(se.value):e}),Dt=H(()=>!!y.value||!!c.value||!!f.value||q.value.length>0||Q.value.length>0),Ot=async()=>{await as();const e=Xe.value;e&&(e.scrollTop=e.scrollHeight)};ls([q,Q,Y],async()=>{Y.value&&await Ot()},{deep:!0});const Bt=H(()=>{const e=c.value?.status,t=f.value?.status;return e==="running"||e==="pending"||t==="running"||t==="pending"}),Nt=H(()=>{if(y.value)return"bg-rose-500";if(Bt.value)return"bg-sky-400";const e=[];if(c.value){const d=c.value.success_count??0,x=c.value.fail_count??0,v=c.value.count??d+x;e.push({success:d,fail:x,total:v,status:c.value.status})}if(f.value){const d=f.value.success_count??0,x=f.value.fail_count??0,v=f.value.account_ids?.length??d+x;e.push({success:d,fail:x,total:v,status:f.value.status})}if(!e.length)return"bg-muted-foreground";const t=e.reduce((d,x)=>d+x.success,0),o=e.reduce((d,x)=>d+x.fail,0),i=e.reduce((d,x)=>d+(x.total||0),0);if(t>0&&o>0)return"bg-amber-400";if(o>0&&t===0)return"bg-rose-500";if(t>0&&o===0)return"bg-emerald-400";if(i===0){const d=e.every(v=>v.status==="success");if(e.some(v=>v.status==="failed"))return"bg-rose-500";if(d)return"bg-emerald-400"}return"bg-muted-foreground"});ns(()=>{X(),W(),Qt(),document.removeEventListener("click",rt)});const fe=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?"429限流":e.cooldown_reason==="错误禁用"?"错误禁用":e.disabled?"手动禁用":e.status==="已过期"?"已过期":e.status==="即将过期"?"即将过期":"正常",lt=e=>{const t=fe(e);return t==="429限流"||t==="即将过期"?"bg-amber-200 text-amber-900":t==="错误禁用"||t==="已过期"?"bg-destructive/10 text-destructive":t==="手动禁用"?"bg-muted text-muted-foreground":"bg-emerald-500 text-white"},nt=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?!0:e.disabled||e.cooldown_reason==="错误禁用",at=e=>e==="已过期"?"过期":e==="未设置"?"未设置":e,it=e=>e.status==="已过期"?"text-rose-600":e.status==="即将过期"?"text-amber-700":e.status==="未设置"?"text-muted-foreground":"text-emerald-600",dt=e=>e<60?`${e} 秒`:e<3600?`${Math.ceil(e/60)} 分钟`:`${(e/3600).toFixed(1)} 小时`,Ue=e=>e.cooldown_seconds>0?"text-amber-700":e.cooldown_reason==="错误禁用"?"text-rose-600":"text-muted-foreground",ut=e=>{const t=fe(e);return t==="手动禁用"||t==="已过期"?"bg-muted/70":""},Le=e=>{const t=new Set(p.value);t.has(e)?t.delete(e):t.add(e),p.value=t},ct=()=>{if(De.value){p.value=new Set;return}p.value=new Set(K.value.map(e=>e.id))},Ut=(e,t)=>e.id||`account_${t+1}`,ft=async()=>(await h.getConfig()).accounts.map((t,o)=>({...t,id:Ut(t,o)})),vt=e=>`${e.time} [${e.level}] ${e.message}`,zt=(e,t)=>{let o=-1;for(let d=0;d{u.value="";try{const t=await ft();zt(t,e)}catch(t){u.value=t.message||"加载账号配置失败"}},Pt=async()=>{M.value="";try{const e=await h.getConfig();ae.value=Array.isArray(e.accounts)?e.accounts:[],ee.value=JSON.stringify(pt(ae.value),null,2),B.value=!0,j.value=!0}catch(e){M.value=e.message||"加载账号配置失败"}},ze=()=>{j.value=!1,M.value="",B.value=!1},mt=()=>{const e=JSON.parse(ee.value);if(!Array.isArray(e))throw new Error("配置格式必须是数组。");return e},Ft=e=>typeof e!="string"||!e?e:e.length<=6?`${e.slice(0,2)}****`:`${e.slice(0,3)}****`,pt=e=>{const t=new Set(["secure_c_ses","csesidx","config_id","host_c_oses","mail_password","mail_refresh_token","mail_client_id"]);return e.map(o=>{const i={...o};return t.forEach(d=>{const x=i[d];x&&(i[d]=Ft(x))}),i})},Kt=()=>{if(M.value="",!B.value){try{ae.value=mt()}catch(e){M.value=e.message||"JSON 格式错误";return}ee.value=JSON.stringify(pt(ae.value),null,2),B.value=!0;return}ee.value=JSON.stringify(ae.value,null,2),B.value=!1},Ht=async()=>{M.value="";try{const e=mt();await w.updateConfig(e),ze()}catch(e){M.value=e.message||"保存失败"}},Pe=()=>{ne.value=!1,u.value=""},Jt=async()=>{if(ke.value===null)return;const e=[...We.value];e[ke.value]={...e[ke.value],id:_.value.id,secure_c_ses:_.value.secure_c_ses,csesidx:_.value.csesidx,config_id:_.value.config_id,host_c_oses:_.value.host_c_oses||void 0,expires_at:_.value.expires_at||void 0};try{await w.updateConfig(e),Pe()}catch(t){u.value=t.message||"保存失败"}},Gt=async()=>{await w.bulkEnable(Array.from(p.value)),p.value=new Set},Yt=async()=>{await C.ask({title:"批量禁用",message:"确定要批量禁用选中的账号吗?"})&&(await w.bulkDisable(Array.from(p.value)),p.value=new Set)},qt=async()=>{await C.ask({title:"批量删除",message:"确定要批量删除选中的账号吗?",confirmText:"删除"})&&(await w.bulkDelete(Array.from(p.value)),p.value=new Set)},gt=async e=>{await w.enableAccount(e)},bt=async e=>{await C.ask({title:"禁用账号",message:"确定要禁用该账号吗?"})&&await w.disableAccount(e)},yt=async e=>{await C.ask({title:"删除账号",message:"确定要删除该账号吗?",confirmText:"删除"})&&await w.deleteAccount(e)};let ve=null,xe=null,me=null,Ae=!1;const X=()=>{ve!==null&&(window.clearInterval(ve),ve=null)},W=()=>{xe!==null&&(window.clearInterval(xe),xe=null)},Qt=()=>{me!==null&&(window.clearInterval(me),me=null),Ae=!1},_t=e=>e==="pending"?"等待中":e==="running"?"执行中":e==="success"?"成功":e==="failed"?"失败":e,ht=async e=>{if(Ee(e)){X();return}const t=await h.getRegisterTask(e);if(Ee(t.id)){X();return}Oe(t),t.status!=="running"&&t.status!=="pending"&&(D.value=!1,X(),await ce())},wt=async e=>{if(Ie(e)){W();return}const t=await h.getLoginTask(e);if(Ie(t.id)){W();return}Se(t),t.status!=="running"&&t.status!=="pending"&&(T.value=!1,W(),await ce())},kt=e=>{X(),ve=window.setInterval(()=>{ht(e).catch(t=>{y.value=t?.message||"注册任务更新失败",X(),D.value=!1})},3e3)},Fe=e=>{W(),xe=window.setInterval(()=>{wt(e).catch(t=>{y.value=t?.message||"刷新任务更新失败",W(),T.value=!1})},3e3)},Xt=()=>{me===null&&(me=window.setInterval(async()=>{if(!Ae&&!Y.value&&!(ve!==null||xe!==null)&&!(!D.value&&!T.value&&!c.value&&!f.value)){Ae=!0;try{await Ke()}catch(e){y.value=e?.message||"后台刷新失败"}finally{Ae=!1}}},6e3))},Ke=async()=>{try{const e=await h.getRegisterCurrent();e&&"id"in e&&!Ee(e.id)&&(Oe(e),(e.status==="running"||e.status==="pending")&&(D.value=!0,kt(e.id)))}catch(e){y.value=e.message||"加载注册任务失败"}try{const e=await h.getLoginCurrent();e&&"id"in e&&!Ie(e.id)&&(Se(e),(e.status==="running"||e.status==="pending")&&(T.value=!0,Fe(e.id)))}catch(e){y.value=e.message||"加载刷新任务失败"}},Wt=async()=>{y.value="",D.value=!0;try{const e=Number.isFinite(ie.value)&&ie.value>0?ie.value:void 0,t=await h.startRegister(e);Oe(t),kt(t.id),ye.value=!1,Y.value=!0}catch(e){y.value=e.message||"启动注册失败",D.value=!1}},Ct=async()=>{if(p.value.size){y.value="",T.value=!0;try{const e=await h.startLogin(Array.from(p.value));Se(e),Fe(e.id),Ne()}catch(e){y.value=e.message||"启动刷新失败",T.value=!1}}},Zt=async()=>{y.value="",T.value=!0;try{await h.checkLogin();const e=await h.getLoginCurrent();if(e&&"id"in e){Se(e),Fe(e.id),Ne();return}T.value=!1}catch(e){y.value=e.message||"触发刷新失败",T.value=!1}};return(e,t)=>(r(),l(ge,null,[s("div",vs,[s("section",xs,[s("div",ms,[s("div",ps,[A(s("input",{"onUpdate:modelValue":t[0]||(t[0]=o=>le.value=o),type:"text",placeholder:"搜索账号 ID",class:"w-full rounded-full border border-input bg-background px-4 py-2 text-sm sm:w-48"},null,512),[[$,le.value]]),J(is,{modelValue:Z.value,"onUpdate:modelValue":t[1]||(t[1]=o=>Z.value=o),options:Et},null,8,["modelValue"])]),s("div",gs,[J(be,{modelValue:De.value,"onUpdate:modelValue":ct},{default:Tt(()=>[...t[27]||(t[27]=[pe(" 全选 ",-1)])]),_:1},8,["modelValue"]),s("span",null,"已选 "+n(O.value)+" / "+n(K.value.length)+" 个账号",1),s("div",bs,[s("button",{type:"button",class:g(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",G.value==="table"?"bg-accent text-accent-foreground":""]),onClick:t[2]||(t[2]=o=>G.value="table"),"aria-label":"列表视图"},[...t[28]||(t[28]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])],2),s("button",{type:"button",class:g(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",G.value==="card"?"bg-accent text-accent-foreground":""]),onClick:t[3]||(t[3]=o=>G.value="card"),"aria-label":"卡片视图"},[...t[29]||(t[29]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h7v6H4V6zm9 0h7v6h-7V6zM4 14h7v4H4v-4zm9 0h7v4h-7v-4z"})],-1)])],2)])])]),s("div",ys,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:R(re),onClick:ce}," 刷新列表 ",8,_s),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:Pt}," 账户配置 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:D.value,onClick:Lt}," 添加账户 ",8,hs),s("div",{ref_key:"moreActionsRef",ref:Me,class:"relative"},[s("button",{class:g(["flex items-center gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary",z.value?"bg-accent text-accent-foreground":""]),onClick:Mt},[t[30]||(t[30]=pe(" 更多操作 ",-1)),t[31]||(t[31]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1)),Dt.value?(r(),l("span",{key:0,class:g(["ml-1 h-2 w-2 rounded-full",Nt.value]),"aria-hidden":"true"},null,2)):m("",!0)],2),z.value?(r(),l("div",ws,[s("button",{type:"button",class:"flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm text-foreground transition-colors hover:bg-accent",onClick:t[4]||(t[4]=o=>{Ne(),oe()})}," 任务状态 "),t[32]||(t[32]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",T.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:T.value,onClick:t[5]||(t[5]=o=>{Zt(),oe()})}," 刷新过期 ",10,ks),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",!O.value||T.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:!O.value||T.value,onClick:t[6]||(t[6]=o=>{Ct(),oe()})}," 刷新选中 ",10,Cs),t[33]||(t[33]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",O.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!O.value,onClick:t[7]||(t[7]=o=>{Gt(),oe()})}," 批量启用 ",10,Ts),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",O.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!O.value,onClick:t[8]||(t[8]=o=>{Yt(),oe()})}," 批量禁用 ",10,Ss),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",O.value?"text-destructive hover:bg-destructive/10":"cursor-not-allowed text-muted-foreground"]),disabled:!O.value,onClick:t[9]||(t[9]=o=>{qt(),oe()})}," 批量删除 ",10,Es)])):m("",!0)],512)]),G.value==="card"?(r(),l("div",Is,[(r(!0),l(ge,null,Ve(K.value,o=>(r(),l("div",{key:o.id,class:g(["rounded-2xl border border-border bg-card p-4",ut(o)]),onClick:i=>Le(o.id)},[s("div",As,[s("div",null,[t[34]||(t[34]=s("p",{class:"text-xs text-muted-foreground"},"账号 ID",-1)),s("p",$s,n(o.id),1)]),s("div",Rs,[J(be,{modelValue:p.value.has(o.id),"onUpdate:modelValue":i=>Le(o.id),onClick:t[10]||(t[10]=V(()=>{},["stop"]))},null,8,["modelValue","onUpdate:modelValue"]),s("span",{class:g(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",lt(o)])},n(fe(o)),3)])]),s("div",Vs,[s("div",null,[t[35]||(t[35]=s("p",null,"剩余时间",-1)),s("p",{class:g(["mt-1 text-sm font-semibold",it(o)])},n(at(o.remaining_display)),3),o.expires_at?(r(),l("p",js,n(o.expires_at),1)):m("",!0)]),s("div",null,[t[36]||(t[36]=s("p",null,"冷却",-1)),s("p",{class:g(["mt-1",Ue(o)])},[o.cooldown_seconds>0?(r(),l("span",Ms,n(dt(o.cooldown_seconds))+" · "+n(o.cooldown_reason),1)):(r(),l("span",Ds,n(o.cooldown_reason||"无冷却"),1))],2)]),s("div",null,[t[37]||(t[37]=s("p",null,"失败数",-1)),s("p",Os,n(o.error_count),1)]),s("div",null,[t[38]||(t[38]=s("p",null,"会话数",-1)),s("p",Bs,n(o.conversation_count),1)])]),s("div",Ns,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>xt(o.id),["stop"])}," 编辑 ",8,Us),nt(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[11]||(t[11]=V(()=>{},["stop"])),i=>gt(o.id)]}," 启用 ",8,zs)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[12]||(t[12]=V(()=>{},["stop"])),i=>bt(o.id)]}," 禁用 ",8,Ps)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:[t[13]||(t[13]=V(()=>{},["stop"])),i=>yt(o.id)]}," 删除 ",8,Fs)])],10,Ls))),128)),!K.value.length&&!R(re)?(r(),l("div",Ks," 暂无账号数据,请检查后台配置。 ")):m("",!0)])):(r(),l("div",Hs,[s("table",Js,[s("thead",Gs,[s("tr",null,[s("th",Ys,[J(be,{modelValue:De.value,"onUpdate:modelValue":ct},null,8,["modelValue"])]),t[40]||(t[40]=s("th",{class:"py-3 pr-6"},"账号 ID",-1)),t[41]||(t[41]=s("th",{class:"py-3 pr-6"},"状态",-1)),s("th",qs,[s("span",Qs,[t[39]||(t[39]=pe(" 剩余/过期 ",-1)),J(cs,{text:"过期时间为 12 小时,账户过期以北京时间为准。"})])]),t[42]||(t[42]=s("th",{class:"py-3 pr-6"},"冷却",-1)),t[43]||(t[43]=s("th",{class:"py-3 pr-6"},"失败数",-1)),t[44]||(t[44]=s("th",{class:"py-3 pr-6"},"会话数",-1)),t[45]||(t[45]=s("th",{class:"py-3 text-right"},"操作",-1))])]),s("tbody",Xs,[!K.value.length&&!R(re)?(r(),l("tr",Ws,[...t[46]||(t[46]=[s("td",{colspan:"8",class:"py-8 text-center text-muted-foreground"}," 暂无账号数据,请检查后台配置。 ",-1)])])):m("",!0),(r(!0),l(ge,null,Ve(K.value,o=>(r(),l("tr",{key:o.id,class:g(["border-t border-border",ut(o)]),onClick:i=>Le(o.id)},[s("td",{class:"py-4 pr-4",onClick:t[14]||(t[14]=V(()=>{},["stop"]))},[J(be,{modelValue:p.value.has(o.id),"onUpdate:modelValue":i=>Le(o.id)},null,8,["modelValue","onUpdate:modelValue"])]),s("td",eo,n(o.id),1),s("td",to,[s("span",{class:g(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",lt(o)])},n(fe(o)),3)]),s("td",so,[s("div",{class:g(["text-sm font-semibold",it(o)])},n(at(o.remaining_display)),3),o.expires_at?(r(),l("span",oo,n(o.expires_at),1)):m("",!0)]),s("td",ro,[o.cooldown_seconds>0?(r(),l("span",{key:0,class:g(Ue(o))},n(dt(o.cooldown_seconds))+" · "+n(o.cooldown_reason),3)):(r(),l("span",{key:1,class:g(Ue(o))},n(o.cooldown_reason||"无冷却"),3))]),s("td",lo,n(o.error_count),1),s("td",no,n(o.conversation_count),1),s("td",ao,[s("div",io,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>xt(o.id),["stop"])}," 编辑 ",8,uo),nt(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>gt(o.id),["stop"])}," 启用 ",8,co)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>bt(o.id),["stop"])}," 禁用 ",8,fo)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:V(i=>yt(o.id),["stop"])}," 删除 ",8,vo)])])],10,Zs))),128))])])]))])]),J(ds,{open:R(C).open.value,title:R(C).title.value,message:R(C).message.value,"confirm-text":R(C).confirmText.value,"cancel-text":R(C).cancelText.value,onConfirm:R(C).confirm,onCancel:R(C).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(r(),Re(je,{to:"body"},[ye.value?(r(),l("div",xo,[s("div",mo,[s("div",po,[s("div",null,[t[47]||(t[47]=s("p",{class:"text-sm font-medium text-foreground"},"添加账户",-1)),s("p",go,n(N.value==="register"?"创建 DuckMail 账号并自动注册":"批量导入账户配置"),1)]),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Be}," 关闭 ")]),s("div",bo,[s("div",yo,[s("div",_o,[s("button",{type:"button",class:g(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",N.value==="register"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:t[15]||(t[15]=o=>N.value="register")}," 自动注册 ",2),s("button",{type:"button",class:g(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",N.value==="import"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:t[16]||(t[16]=o=>N.value="import")}," 批量导入 ",2)]),N.value==="register"?(r(),l("div",ho,[t[48]||(t[48]=s("label",{class:"block text-xs text-muted-foreground"},"注册数量",-1)),A(s("input",{"onUpdate:modelValue":t[17]||(t[17]=o=>ie.value=o),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,ie.value,void 0,{number:!0}]]),t[49]||(t[49]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"}," 默认域名来自设置面板(可在“配置面板”中修改) ",-1))])):(r(),l("div",wo,[t[50]||(t[50]=s("label",{class:"block text-xs text-muted-foreground"},"批量导入(每行一个)",-1)),A(s("textarea",{"onUpdate:modelValue":t[18]||(t[18]=o=>de.value=o),class:"min-h-[140px] w-full rounded-2xl border border-input bg-background px-3 py-2 text-xs font-mono",placeholder:`duckmail----you@example.com----password +user@outlook.com----loginPassword----clientId----refreshToken`},null,512),[[$,de.value]]),t[51]||(t[51]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},[s("p",null,"支持两种格式:"),s("p",{class:"mt-1 font-mono"},"duckmail----email----password"),s("p",{class:"mt-1 font-mono"},"email----password----clientId----refreshToken"),s("p",{class:"mt-2 text-[11px]"},'导入后请执行一次"刷新选中"以获取 Cookie。')],-1)),U.value?(r(),l("div",ko,n(U.value),1)):m("",!0)])),t[53]||(t[53]=s("div",{class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-[11px] leading-relaxed"},[s("p",{class:"text-xs font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)"),s("p",{class:"mt-1 text-muted-foreground"},[pe("详细声明请查看项目 "),s("a",{href:"https://github.com/Dreamy-rain/gemini-business2api/blob/main/docs/DISCLAIMER.md",target:"_blank",class:"text-primary hover:underline font-medium"},"DISCLAIMER.md")])],-1)),J(be,{modelValue:ue.value,"onUpdate:modelValue":t[19]||(t[19]=o=>ue.value=o)},{default:Tt(()=>[...t[52]||(t[52]=[pe(" 我已阅读并同意上述说明与限制 ",-1)])]),_:1},8,["modelValue"])])]),s("div",Co,[s("div",To,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Be}," 取消 "),N.value==="register"?(r(),l("button",{key:0,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:D.value||!ue.value,onClick:Wt}," 开始注册 ",8,So)):(r(),l("button",{key:1,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:_e.value||!ue.value,onClick:$t}," 导入并保存 ",8,Eo))])])])])):m("",!0)])),(r(),Re(je,{to:"body"},[Y.value?(r(),l("div",Io,[s("div",Lo,[s("div",Ao,[t[54]||(t[54]=s("div",null,[s("p",{class:"text-sm font-medium text-foreground"},"任务状态"),s("p",{class:"mt-1 text-xs text-muted-foreground"},"注册与刷新任务的状态与日志")],-1)),s("div",$o,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-muted-foreground transition-colors hover:border-primary hover:text-primary",disabled:!q.value.length&&!Q.value.length&&!c.value&&!f.value&&!y.value,onClick:jt}," 清空日志 ",8,Ro),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Vt}," 关闭 ")])]),s("div",Vo,[y.value?(r(),l("div",jo,n(y.value),1)):m("",!0),c.value||f.value?(r(),l("div",Mo,[c.value?(r(),l("div",Do,[t[55]||(t[55]=s("div",{class:"font-medium text-foreground"},"注册任务",-1)),s("div",Oo,[s("span",null,"状态:"+n(_t(c.value.status)),1),s("span",null,"进度:"+n(c.value.progress)+"/"+n(c.value.count),1),s("span",null,"成功:"+n(c.value.success_count),1),s("span",null,"失败:"+n(c.value.fail_count),1)])])):m("",!0),f.value?(r(),l("div",Bo,[t[56]||(t[56]=s("div",{class:"font-medium text-foreground"},"刷新任务",-1)),s("div",No,[s("span",null,"状态:"+n(_t(f.value.status)),1),s("span",null,"进度:"+n(f.value.progress)+"/"+n(f.value.account_ids.length),1),s("span",null,"成功:"+n(f.value.success_count),1),s("span",null,"失败:"+n(f.value.fail_count),1)])])):m("",!0)])):m("",!0),q.value.length||Q.value.length?(r(),l("div",Uo,[s("div",{ref_key:"taskLogsRef",ref:Xe,class:"scrollbar-slim flex-1 overflow-y-auto rounded-2xl border border-border bg-muted/30 p-3"},[q.value.length?(r(),l("div",zo,[t[57]||(t[57]=s("p",{class:"text-xs font-semibold text-foreground"},"注册日志",-1)),s("div",Po,[(r(!0),l(ge,null,Ve(q.value,(o,i)=>(r(),l("div",{key:`reg-${i}`,class:"font-mono"},n(vt(o)),1))),128))])])):m("",!0),Q.value.length?(r(),l("div",Fo,[t[58]||(t[58]=s("p",{class:"text-xs font-semibold text-foreground"},"刷新日志",-1)),s("div",Ko,[(r(!0),l(ge,null,Ve(Q.value,(o,i)=>(r(),l("div",{key:`login-${i}`,class:"font-mono"},n(vt(o)),1))),128))])])):m("",!0)],512)])):m("",!0),!y.value&&!c.value&&!f.value&&!q.value.length&&!Q.value.length?(r(),l("div",Ho," 暂无任务 ")):m("",!0)])])])):m("",!0)])),(r(),Re(je,{to:"body"},[ne.value?(r(),l("div",Jo,[s("div",Go,[s("div",{class:"flex items-center justify-between"},[t[59]||(t[59]=s("p",{class:"text-sm font-medium text-foreground"},"编辑账号",-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Pe}," 关闭 ")]),u.value?(r(),l("div",Yo,n(u.value),1)):m("",!0),s("div",qo,[t[60]||(t[60]=s("label",{class:"block text-xs text-muted-foreground"},"账号 ID",-1)),A(s("input",{"onUpdate:modelValue":t[20]||(t[20]=o=>_.value.id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",disabled:""},null,512),[[$,_.value.id]]),t[61]||(t[61]=s("label",{class:"block text-xs text-muted-foreground"},"secure_c_ses",-1)),A(s("textarea",{"onUpdate:modelValue":t[21]||(t[21]=o=>_.value.secure_c_ses=o),class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",rows:"3"},null,512),[[$,_.value.secure_c_ses]]),t[62]||(t[62]=s("label",{class:"block text-xs text-muted-foreground"},"csesidx",-1)),A(s("input",{"onUpdate:modelValue":t[22]||(t[22]=o=>_.value.csesidx=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,_.value.csesidx]]),t[63]||(t[63]=s("label",{class:"block text-xs text-muted-foreground"},"config_id",-1)),A(s("input",{"onUpdate:modelValue":t[23]||(t[23]=o=>_.value.config_id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,_.value.config_id]]),t[64]||(t[64]=s("label",{class:"block text-xs text-muted-foreground"},"host_c_oses",-1)),A(s("input",{"onUpdate:modelValue":t[24]||(t[24]=o=>_.value.host_c_oses=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,_.value.host_c_oses]]),t[65]||(t[65]=s("label",{class:"block text-xs text-muted-foreground"},"expires_at",-1)),A(s("input",{"onUpdate:modelValue":t[25]||(t[25]=o=>_.value.expires_at=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"2025-12-23 10:59:21"},null,512),[[$,_.value.expires_at]])]),s("div",{class:"mt-6 flex items-center justify-end gap-2"},[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Pe}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Jt}," 保存 ")])])])):m("",!0)])),(r(),Re(je,{to:"body"},[j.value?(r(),l("div",Qo,[s("div",Xo,[s("div",Wo,[t[66]||(t[66]=s("p",{class:"text-sm font-medium text-foreground"},"账户配置(JSON)",-1)),s("div",Zo,[s("button",{class:"rounded-full bg-foreground px-3 py-1 text-xs text-background transition-opacity hover:opacity-90",onClick:Kt},n(B.value?"显示原文":"脱敏显示"),1),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:ze}," 关闭 ")])]),M.value?(r(),l("div",er,n(M.value),1)):m("",!0),s("div",tr,[A(s("textarea",{"onUpdate:modelValue":t[26]||(t[26]=o=>ee.value=o),class:"h-96 w-full rounded-2xl border border-input bg-background px-4 py-3 font-mono text-xs text-foreground",spellcheck:"false",readonly:B.value},null,8,sr),[[$,ee.value]])]),s("div",or,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:ze}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Ht,disabled:B.value}," 保存 ",8,rr)])])])):m("",!0)]))],64))}});export{cr as default}; diff --git a/static/assets/Accounts-BgTEWmTn.js b/static/assets/Accounts-BgTEWmTn.js new file mode 100644 index 0000000000000000000000000000000000000000..03542bf92d46046be5ef4e57012c8ebb6816be6a --- /dev/null +++ b/static/assets/Accounts-BgTEWmTn.js @@ -0,0 +1,2 @@ +import{g as E,C as os,h as i,d as rs,D as ls,i as J,o as ns,z as as,j as is,c as n,a as s,p as G,m as Re,q as R,v as V,s as $t,t as a,n as p,u as j,b as g,f as ee,F as ge,r as Ve,T as je,E as ds,w as M,e as l,G as us}from"./index-BYFRJmx0.js";import{_ as cs}from"./SelectMenu.vue_vue_type_script_setup_true_lang-D8K-xqMi.js";import{_ as be}from"./Checkbox.vue_vue_type_script_setup_true_lang-BQ4FJTZi.js";import{_ as fs}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-BElgd3uY.js";import{u as vs}from"./useConfirmDialog-BQNp3TV9.js";import{_ as ms}from"./HelpTip.vue_vue_type_script_setup_true_lang-sPivD74C.js";const w={list:()=>E.get("/admin/accounts"),getConfig:()=>E.get("/admin/accounts-config"),updateConfig:y=>E.put("/admin/accounts-config",y),delete:y=>E.delete(`/admin/accounts/${y}`),disable:y=>E.put(`/admin/accounts/${y}/disable`),enable:y=>E.put(`/admin/accounts/${y}/enable`),startRegister:(y,k)=>E.post("/admin/register/start",{count:y,domain:k}),getRegisterTask:y=>E.get(`/admin/register/task/${y}`),getRegisterCurrent:()=>E.get("/admin/register/current"),startLogin:y=>E.post("/admin/login/start",y),getLoginTask:y=>E.get(`/admin/login/task/${y}`),getLoginCurrent:()=>E.get("/admin/login/current"),checkLogin:()=>E.post("/admin/login/check")},ps=os("accounts",()=>{const y=i([]),k=i(!1);async function A(){k.value=!0;try{const x=await w.list();y.value=Array.isArray(x)?x:x.accounts||[]}finally{k.value=!1}}async function ne(x){await w.delete(x),await A()}async function T(x){await w.disable(x),await A()}async function d(x){await w.enable(x),await A()}async function ae(x){await Promise.all(x.map($=>w.enable($))),await A()}async function te(x){await Promise.all(x.map($=>w.disable($))),await A()}async function b(x){await Promise.all(x.map($=>w.delete($))),await A()}async function Y(x){await w.updateConfig(x),await A()}return{accounts:y,isLoading:k,loadAccounts:A,deleteAccount:ne,disableAccount:T,enableAccount:d,bulkEnable:ae,bulkDisable:te,bulkDelete:b,updateConfig:Y}}),xs={class:"space-y-8"},gs={class:"rounded-3xl border border-border bg-card p-6"},bs={class:"flex flex-wrap items-center justify-between gap-4"},ys={class:"grid w-full grid-cols-2 gap-3 sm:flex sm:w-auto sm:items-center"},_s={class:"flex w-full flex-wrap items-center gap-3 text-xs text-muted-foreground sm:w-auto sm:flex-nowrap"},hs={class:"ml-auto flex items-center gap-2 sm:ml-0"},ws={class:"mt-4 flex flex-wrap items-center gap-2"},ks=["disabled"],Cs=["disabled"],Ts={key:0,class:"absolute right-0 z-10 mt-2 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg"},Ss=["disabled"],$s=["disabled"],Is=["disabled"],Es=["disabled"],Ls=["disabled"],As={key:0,class:"mt-6 grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3"},Rs=["onClick"],Vs={class:"flex items-start justify-between gap-3"},js={class:"mt-1 font-mono text-xs text-foreground"},Ms={class:"flex items-center gap-2"},Ds={class:"mt-4 grid grid-cols-2 gap-3 text-xs text-muted-foreground"},Os={key:0,class:"mt-1 text-[11px]"},Bs={key:0},Ns={key:1},Us={class:"mt-1 text-sm font-semibold text-foreground"},zs={class:"mt-1 text-sm font-semibold text-foreground"},Ps={class:"mt-4 flex flex-wrap items-center gap-2"},Fs=["onClick"],Ks=["onClick"],Hs=["onClick"],Js=["onClick"],Gs={key:0,class:"rounded-2xl border border-border bg-background p-4 text-center text-xs text-muted-foreground"},Ys={key:1,class:"relative mt-6 overflow-x-auto overflow-y-visible"},qs={class:"min-w-full text-left text-sm"},Qs={class:"text-xs uppercase tracking-[0.2em] text-muted-foreground"},Xs={class:"py-3 pr-4"},Ws={class:"py-3 pr-6"},Zs={class:"inline-flex items-center gap-2"},eo={class:"text-sm text-foreground"},to={key:0},so=["onClick"],oo={class:"py-4 pr-6 font-mono text-xs text-foreground"},ro={class:"py-4 pr-6"},lo={class:"py-4 pr-6"},no={key:0,class:"block text-[11px] text-muted-foreground"},ao={class:"py-4 pr-6 text-xs"},io={class:"py-4 pr-6 text-xs text-muted-foreground"},uo={class:"py-4 pr-6 text-xs text-muted-foreground"},co={class:"py-4 text-right"},fo={class:"flex flex-wrap justify-end gap-2"},vo=["onClick"],mo=["onClick"],po=["onClick"],xo=["onClick"],go={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},bo={class:"flex max-h-[90vh] w-full max-w-lg flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},yo={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},_o={class:"mt-1 text-xs text-muted-foreground"},ho={class:"scrollbar-slim flex-1 overflow-y-auto px-6 py-4"},wo={class:"space-y-4 text-sm"},ko={class:"flex rounded-full border border-border bg-muted/30 p-1 text-xs"},Co={key:0,class:"space-y-4"},To={key:1,class:"space-y-4"},So={key:0,class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-xs text-rose-600"},$o={class:"border-t border-border/60 px-6 py-4"},Io={class:"flex items-center justify-end gap-2"},Eo=["disabled"],Lo=["disabled"],Ao={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Ro={class:"flex h-[80vh] w-full max-w-2xl flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},Vo={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},jo={class:"flex items-center gap-2"},Mo=["disabled"],Do={class:"flex min-h-0 flex-1 flex-col px-6 py-4"},Oo={key:0,class:"rounded-2xl bg-destructive/10 px-3 py-2 text-xs text-destructive"},Bo={key:1,class:"grid gap-3 text-xs text-muted-foreground"},No={key:0,class:"space-y-1"},Uo={class:"flex items-center gap-2 font-medium text-foreground"},zo={class:"flex flex-wrap gap-x-4 gap-y-1"},Po={key:1,class:"space-y-1"},Fo={class:"flex items-center gap-2 font-medium text-foreground"},Ko={class:"flex flex-wrap gap-x-4 gap-y-1"},Ho={key:2,class:"mt-4 flex min-h-0 flex-1 flex-col"},Jo={key:0,class:"space-y-2"},Go={class:"space-y-1 text-[11px] text-muted-foreground"},Yo={key:1,class:"mt-4 space-y-2"},qo={class:"space-y-1 text-[11px] text-muted-foreground"},Qo={key:3,class:"mt-4 rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},Xo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Wo={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},Zo={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},er={class:"mt-4 space-y-3 text-sm"},tr={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},sr={class:"w-full max-w-3xl rounded-3xl border border-border bg-card p-6 shadow-xl"},or={class:"flex items-center justify-between"},rr={class:"flex items-center gap-2"},lr={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},nr={class:"mt-4"},ar=["readonly"],ir={class:"mt-6 flex items-center justify-end gap-2"},dr=["disabled"],Je="accounts-register-task-cache",Ge="accounts-login-task-cache",Ye="accounts-register-log-clear",qe="accounts-login-log-clear",Qe="accounts-register-task-cleared-id",Xe="accounts-login-task-cleared-id",It="1970-01-01 00:00:00",xr=rs({__name:"Accounts",setup(y){const k=ps(),{accounts:A,isLoading:ne}=ls(k),T=vs(),d=ds(),ae=i(""),te=i("all"),b=i(new Set),Y=i("table"),x=i(!1),$=i(""),Me=i(!1),D=i(""),se=i(""),N=i(!1),ie=i([]),de=i(1),ye=i(!1),U=i("register"),ue=i(""),z=i(""),_e=i(!1),q=i(!1),P=i(!1),De=i(null),he=i(null),we=i(null),F=i(null),K=i(null),oe=i(0),re=i(0),ce=i(!1),c=i(null),f=i(null),We=i(null),O=i(!1),S=i(!1),_=i(""),h=i({id:"",secure_c_ses:"",csesidx:"",config_id:"",host_c_oses:"",expires_at:""}),ke=i(null),Ze=i([]),Et=[{label:"全部状态",value:"all"},{label:"正常",value:"正常"},{label:"即将过期",value:"即将过期"},{label:"已过期",value:"已过期"},{label:"手动禁用",value:"手动禁用"},{label:"错误禁用",value:"错误禁用"},{label:"429限流",value:"429限流"}],H=J(()=>{const t=ae.value.trim().toLowerCase();return A.value.filter(e=>{const o=!t||e.id.toLowerCase().includes(t),r=te.value==="all"||ve(e)===te.value;return o&&r})}),B=J(()=>b.value.size),Oe=J(()=>H.value.length>0&&H.value.every(t=>b.value.has(t.id))),fe=async()=>{await k.loadAccounts(),b.value=new Set,P.value=!1},et=t=>{try{const e=localStorage.getItem(t);return e?JSON.parse(e):null}catch{return null}},tt=t=>{try{return localStorage.getItem(t)||null}catch{return null}},Ce=(t,e)=>{try{if(e){localStorage.setItem(t,e);return}localStorage.removeItem(t)}catch{}},st=(t,e)=>{try{localStorage.setItem(t,JSON.stringify(e))}catch{}},ot=t=>{try{localStorage.removeItem(t)}catch{}},rt=t=>{const e=localStorage.getItem(t),o=Number(e);return Number.isFinite(o)?o:0},Te=(t,e)=>{try{localStorage.setItem(t,String(e))}catch{}},Be=(t,e=!0)=>{t&&(t.id&&t.id===F.value||(t.id&&F.value&&t.id!==F.value&&(F.value=null,Ce(Qe,null)),c.value=t,t.id&&t.id!==he.value&&(he.value=t.id,oe.value=0,Te(Ye,0)),e&&st(Je,t)))},Se=(t,e=!0)=>{t&&(t.id&&t.id===K.value||(t.id&&K.value&&t.id!==K.value&&(K.value=null,Ce(Xe,null)),f.value=t,t.id&&t.id!==we.value&&(we.value=t.id,re.value=0,Te(qe,0)),e&&st(Ge,t)))},Lt=()=>{oe.value=rt(Ye),re.value=rt(qe),F.value=tt(Qe),K.value=tt(Xe);const t=et(Je);t&&t.id!==F.value&&(c.value=t,he.value=t.id||null);const e=et(Ge);e&&e.id!==K.value&&(f.value=e,we.value=e.id||null)},At=()=>{ye.value=!0,U.value="register",ue.value="",z.value="",_e.value=!1,ce.value=!1},Ne=()=>{ye.value=!1},Rt=t=>{const e=[],o=[];return t.split(/\r?\n/).map(u=>u.trim()).filter(Boolean).forEach((u,m)=>{const v=u.split("----").map(I=>I.trim()),C=m+1;if(v.length){if(v[0].toLowerCase()==="duckmail"){if(v.length<3||!v[1]||!v[2]){o.push(`第 ${C} 行格式错误(duckmail)`);return}const I=v[1],Ae=v.slice(2).join("----");e.push({id:I,secure_c_ses:"",csesidx:"",config_id:"",expires_at:It,mail_provider:"duckmail",mail_address:I,mail_password:Ae});return}if(v.length>=4&&v[0]&&v[2]&&v[3]){const I=v[0],Ae=v[1]||"",L=v[2],ss=v.slice(3).join("----");e.push({id:I,secure_c_ses:"",csesidx:"",config_id:"",expires_at:It,mail_provider:"microsoft",mail_address:I,mail_password:Ae,mail_client_id:L,mail_refresh_token:ss,mail_tenant:"consumers"});return}o.push(`第 ${C} 行格式错误`)}}),{items:e,errors:o}},Vt=async()=>{if(z.value="",!ue.value.trim()){z.value="请输入导入内容";return}const{items:t,errors:e}=Rt(ue.value);if(!t.length){z.value=e.length?e.join(","):"未识别到有效账号";return}if(e.length){z.value=e.slice(0,3).join(",");return}_e.value=!0;try{const r=[...await vt()],u=new Map(r.map((C,I)=>[C.id,I])),m=[];t.forEach(C=>{const I=u.get(C.id||"");if(I===void 0){r.push(C),m.push(C.id);return}const L={...r[I],mail_provider:C.mail_provider,mail_address:C.mail_address};C.mail_provider==="microsoft"?(L.mail_client_id=C.mail_client_id,L.mail_refresh_token=C.mail_refresh_token,L.mail_tenant=C.mail_tenant,L.mail_password=C.mail_password):(L.mail_password=C.mail_password,L.mail_client_id=void 0,L.mail_refresh_token=void 0,L.mail_tenant=void 0),r[I]=L,m.push(C.id)}),await k.updateConfig(r),await fe(),b.value=new Set(m),d.success(`成功导入 ${m.length} 个账户`),Ne(),await T.ask({title:"导入成功",message:`已导入 ${m.length} 个账户并自动选中。是否立即刷新这些账户以获取 Cookie?`,confirmText:"立即刷新",cancelText:"稍后手动刷新"})&&await St()}catch(o){z.value=o.message||"导入失败",d.error(o.message||"导入失败")}finally{_e.value=!1}},jt=async()=>{try{const t=[],e=c.value?.id,o=f.value?.id;if(e&&!$e(e)&&t.push(kt(e)),o&&!Ie(o)&&t.push(Ct(o)),!t.length){await He();return}await Promise.all(t)}catch(t){_.value=t?.message||"任务状态更新失败"}},Ue=async()=>{q.value=!0,await jt()},Mt=()=>{q.value=!1},Dt=()=>{const t=c.value?.id||null,e=f.value?.id||null;F.value=t,K.value=e,Ce(Qe,t),Ce(Xe,e),oe.value=c.value?.logs?.length||0,re.value=f.value?.logs?.length||0,Te(Ye,oe.value),Te(qe,re.value),c.value=null,f.value=null,he.value=null,we.value=null,_.value="",O.value=!1,S.value=!1,W(),Z(),ot(Je),ot(Ge)},$e=t=>!!(t&&t===F.value),Ie=t=>!!(t&&t===K.value),Ot=()=>{P.value=!P.value},le=()=>{P.value=!1},lt=t=>{if(!P.value)return;const e=t.target;De.value&&!De.value.contains(e)&&(P.value=!1)};ns(async()=>{Lt(),await fe(),await He(),Zt(),document.addEventListener("click",lt)});const Q=J(()=>{const t=c.value?.logs||[];return oe.value?t.slice(oe.value):t}),X=J(()=>{const t=f.value?.logs||[];return re.value?t.slice(re.value):t}),Bt=J(()=>!!_.value||!!c.value||!!f.value||Q.value.length>0||X.value.length>0),Nt=async()=>{await us();const t=We.value;t&&(t.scrollTop=t.scrollHeight)};as([Q,X,q],async()=>{q.value&&await Nt()},{deep:!0});const Ut=J(()=>{const t=c.value?.status,e=f.value?.status;return t==="running"||t==="pending"||e==="running"||e==="pending"}),zt=J(()=>{if(_.value)return"bg-rose-500";if(Ut.value)return"bg-sky-400";const t=[];if(c.value){const u=c.value.success_count??0,m=c.value.fail_count??0,v=c.value.count??u+m;t.push({success:u,fail:m,total:v,status:c.value.status})}if(f.value){const u=f.value.success_count??0,m=f.value.fail_count??0,v=f.value.account_ids?.length??u+m;t.push({success:u,fail:m,total:v,status:f.value.status})}if(!t.length)return"bg-muted-foreground";const e=t.reduce((u,m)=>u+m.success,0),o=t.reduce((u,m)=>u+m.fail,0),r=t.reduce((u,m)=>u+(m.total||0),0);if(e>0&&o>0)return"bg-amber-400";if(o>0&&e===0)return"bg-rose-500";if(e>0&&o===0)return"bg-emerald-400";if(r===0){const u=t.every(v=>v.status==="success");if(t.some(v=>v.status==="failed"))return"bg-rose-500";if(u)return"bg-emerald-400"}return"bg-muted-foreground"});is(()=>{W(),Z(),Wt(),document.removeEventListener("click",lt)});const ve=t=>t.cooldown_reason?.includes("429")&&t.cooldown_seconds>0?"429限流":t.cooldown_reason==="错误禁用"?"错误禁用":t.disabled?"手动禁用":t.status==="已过期"?"已过期":t.status==="即将过期"?"即将过期":"正常",nt=t=>{const e=ve(t);return e==="429限流"||e==="即将过期"?"bg-amber-200 text-amber-900":e==="错误禁用"||e==="已过期"?"bg-destructive/10 text-destructive":e==="手动禁用"?"bg-muted text-muted-foreground":"bg-emerald-500 text-white"},at=t=>t.cooldown_reason?.includes("429")&&t.cooldown_seconds>0?!0:t.disabled||t.cooldown_reason==="错误禁用",it=t=>t==="已过期"?"过期":t==="未设置"?"未设置":t,dt=t=>t.status==="已过期"?"text-rose-600":t.status==="即将过期"?"text-amber-700":t.status==="未设置"?"text-muted-foreground":"text-emerald-600",ut=t=>t<60?`${t} 秒`:t<3600?`${Math.ceil(t/60)} 分钟`:`${(t/3600).toFixed(1)} 小时`,ze=t=>t.cooldown_seconds>0?"text-amber-700":t.cooldown_reason==="错误禁用"?"text-rose-600":"text-muted-foreground",ct=t=>{const e=ve(t);return e==="手动禁用"||e==="已过期"?"bg-muted/70":""},Ee=t=>{const e=new Set(b.value);e.has(t)?e.delete(t):e.add(t),b.value=e},ft=()=>{if(Oe.value){b.value=new Set;return}b.value=new Set(H.value.map(t=>t.id))},Pt=(t,e)=>t.id||`account_${e+1}`,vt=async()=>(await w.getConfig()).accounts.map((e,o)=>({...e,id:Pt(e,o)})),mt=t=>`${t.time} [${t.level}] ${t.message}`,Ft=(t,e)=>{let o=-1;for(let u=0;u{$.value="";try{const e=await vt();Ft(e,t)}catch(e){$.value=e.message||"加载账号配置失败"}},Kt=async()=>{D.value="";try{const t=await w.getConfig();ie.value=Array.isArray(t.accounts)?t.accounts:[],se.value=JSON.stringify(gt(ie.value),null,2),N.value=!0,Me.value=!0}catch(t){D.value=t.message||"加载账号配置失败"}},Pe=()=>{Me.value=!1,D.value="",N.value=!1},xt=()=>{const t=JSON.parse(se.value);if(!Array.isArray(t))throw new Error("配置格式必须是数组。");return t},Ht=t=>typeof t!="string"||!t?t:t.length<=6?`${t.slice(0,2)}****`:`${t.slice(0,3)}****`,gt=t=>{const e=new Set(["secure_c_ses","csesidx","config_id","host_c_oses","mail_password","mail_refresh_token","mail_client_id"]);return t.map(o=>{const r={...o};return e.forEach(u=>{const m=r[u];m&&(r[u]=Ht(m))}),r})},Jt=()=>{if(D.value="",!N.value){try{ie.value=xt()}catch(t){D.value=t.message||"JSON 格式错误";return}se.value=JSON.stringify(gt(ie.value),null,2),N.value=!0;return}se.value=JSON.stringify(ie.value,null,2),N.value=!1},Gt=async()=>{D.value="";try{const t=xt();await k.updateConfig(t),d.success("配置保存成功"),Pe()}catch(t){D.value=t.message||"保存失败",d.error(t.message||"保存失败")}},Fe=()=>{x.value=!1,$.value=""},Yt=async()=>{if(ke.value===null)return;const t=[...Ze.value];t[ke.value]={...t[ke.value],id:h.value.id,secure_c_ses:h.value.secure_c_ses,csesidx:h.value.csesidx,config_id:h.value.config_id,host_c_oses:h.value.host_c_oses||void 0,expires_at:h.value.expires_at||void 0};try{await k.updateConfig(t),d.success("账号编辑成功"),Fe()}catch(e){$.value=e.message||"保存失败",d.error(e.message||"保存失败")}},qt=async()=>{try{await k.bulkEnable(Array.from(b.value)),d.success("批量启用成功"),b.value=new Set}catch(t){d.error(t.message||"批量启用失败")}},Qt=async()=>{if(await T.ask({title:"批量禁用",message:"确定要批量禁用选中的账号吗?"}))try{await k.bulkDisable(Array.from(b.value)),d.success("批量禁用成功"),b.value=new Set}catch(e){d.error(e.message||"批量禁用失败")}},Xt=async()=>{if(await T.ask({title:"批量删除",message:"确定要批量删除选中的账号吗?",confirmText:"删除"}))try{await k.bulkDelete(Array.from(b.value)),d.success("批量删除成功"),b.value=new Set}catch(e){d.error(e.message||"批量删除失败")}},bt=async t=>{try{await k.enableAccount(t),d.success("账号已启用")}catch(e){d.error(e.message||"启用失败")}},yt=async t=>{if(await T.ask({title:"禁用账号",message:"确定要禁用该账号吗?"}))try{await k.disableAccount(t),d.success("账号已禁用")}catch(o){d.error(o.message||"禁用失败")}},_t=async t=>{if(await T.ask({title:"删除账号",message:"确定要删除该账号吗?",confirmText:"删除"}))try{await k.deleteAccount(t),d.success("账号已删除")}catch(o){d.error(o.message||"删除失败")}};let me=null,pe=null,xe=null,Le=!1;const W=()=>{me!==null&&(window.clearInterval(me),me=null)},Z=()=>{pe!==null&&(window.clearInterval(pe),pe=null)},Wt=()=>{xe!==null&&(window.clearInterval(xe),xe=null),Le=!1},ht=t=>t==="pending"?"等待中":t==="running"?"执行中":t==="success"?"成功":t==="failed"?"失败":t,wt=t=>{const e=t.status,o=t.success_count??0,r=t.fail_count??0;if(e==="running"||e==="pending")return"bg-sky-400";if(e==="success"||e==="failed"){if(o>0&&r===0)return"bg-emerald-400";if(r>0&&o===0)return"bg-rose-500";if(o>0&&r>0)return"bg-amber-400"}return"bg-muted-foreground"},kt=async t=>{if($e(t)){W();return}const e=await w.getRegisterTask(t);if($e(e.id)){W();return}if(Be(e),e.status!=="running"&&e.status!=="pending"){O.value=!1,W(),await fe();const o=e.success_count||0,r=e.fail_count||0;o>0&&r>0?d.success(`注册任务完成:成功 ${o},失败 ${r}`):o>0&&r===0?d.success(`注册任务完成:全部成功 (${o})`):r>0&&o===0?d.error(`注册任务完成:全部失败 (${r})`):d.error("注册任务失败")}},Ct=async t=>{if(Ie(t)){Z();return}const e=await w.getLoginTask(t);if(Ie(e.id)){Z();return}if(Se(e),e.status!=="running"&&e.status!=="pending"){S.value=!1,Z(),await fe();const o=e.success_count||0,r=e.fail_count||0;o>0&&r>0?d.success(`刷新任务完成:成功 ${o},失败 ${r}`):o>0&&r===0?d.success(`刷新任务完成:全部成功 (${o})`):r>0&&o===0?d.error(`刷新任务完成:全部失败 (${r})`):d.error("刷新任务失败")}},Tt=t=>{W(),me=window.setInterval(()=>{kt(t).catch(e=>{_.value=e?.message||"注册任务更新失败",W(),O.value=!1})},3e3)},Ke=t=>{Z(),pe=window.setInterval(()=>{Ct(t).catch(e=>{_.value=e?.message||"刷新任务更新失败",Z(),S.value=!1})},3e3)},Zt=()=>{xe===null&&(xe=window.setInterval(async()=>{if(!Le&&!q.value&&!(me!==null||pe!==null)&&!(!O.value&&!S.value&&!c.value&&!f.value)){Le=!0;try{await He()}catch(t){_.value=t?.message||"后台刷新失败"}finally{Le=!1}}},6e3))},He=async()=>{try{const t=await w.getRegisterCurrent();t&&"id"in t&&!$e(t.id)&&(Be(t),(t.status==="running"||t.status==="pending")&&(O.value=!0,Tt(t.id)))}catch(t){_.value=t.message||"加载注册任务失败"}try{const t=await w.getLoginCurrent();t&&"id"in t&&!Ie(t.id)&&(Se(t),(t.status==="running"||t.status==="pending")&&(S.value=!0,Ke(t.id)))}catch(t){_.value=t.message||"加载刷新任务失败"}},es=async()=>{_.value="",O.value=!0;try{const t=Number.isFinite(de.value)&&de.value>0?de.value:void 0,e=await w.startRegister(t);Be(e),Tt(e.id),ye.value=!1,q.value=!0}catch(t){_.value=t.message||"启动注册失败",O.value=!1}},St=async()=>{if(b.value.size){_.value="",S.value=!0;try{const t=await w.startLogin(Array.from(b.value));Se(t),Ke(t.id),Ue()}catch(t){_.value=t.message||"启动刷新失败",S.value=!1}}},ts=async()=>{_.value="",S.value=!0;try{await w.checkLogin();const t=await w.getLoginCurrent();if(t&&"id"in t){Se(t),Ke(t.id),Ue();return}S.value=!1}catch(t){_.value=t.message||"触发刷新失败",S.value=!1}};return(t,e)=>(l(),n(ge,null,[s("div",xs,[s("section",gs,[s("div",bs,[s("div",ys,[R(s("input",{"onUpdate:modelValue":e[0]||(e[0]=o=>ae.value=o),type:"text",placeholder:"搜索账号 ID",class:"w-full rounded-full border border-input bg-background px-4 py-2 text-sm sm:w-48"},null,512),[[V,ae.value]]),G(cs,{modelValue:te.value,"onUpdate:modelValue":e[1]||(e[1]=o=>te.value=o),options:Et},null,8,["modelValue"])]),s("div",_s,[G(be,{modelValue:Oe.value,"onUpdate:modelValue":ft},{default:$t(()=>[...e[27]||(e[27]=[ee(" 全选 ",-1)])]),_:1},8,["modelValue"]),s("span",null,"已选 "+a(B.value)+" / "+a(H.value.length)+" 个账号",1),s("div",hs,[s("button",{type:"button",class:p(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",Y.value==="table"?"bg-accent text-accent-foreground":""]),onClick:e[2]||(e[2]=o=>Y.value="table"),"aria-label":"列表视图"},[...e[28]||(e[28]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])],2),s("button",{type:"button",class:p(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",Y.value==="card"?"bg-accent text-accent-foreground":""]),onClick:e[3]||(e[3]=o=>Y.value="card"),"aria-label":"卡片视图"},[...e[29]||(e[29]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h7v6H4V6zm9 0h7v6h-7V6zM4 14h7v4H4v-4zm9 0h7v4h-7v-4z"})],-1)])],2)])])]),s("div",ws,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary disabled:cursor-not-allowed disabled:opacity-50",disabled:j(ne),onClick:fe}," 刷新列表 ",8,ks),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:Kt}," 账户配置 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary disabled:cursor-not-allowed disabled:opacity-50",disabled:O.value,onClick:At}," 添加账户 ",8,Cs),s("div",{ref_key:"moreActionsRef",ref:De,class:"relative"},[s("button",{class:p(["flex items-center gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary",P.value?"bg-accent text-accent-foreground":""]),onClick:Ot},[e[30]||(e[30]=ee(" 更多操作 ",-1)),e[31]||(e[31]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1)),Bt.value?(l(),n("span",{key:0,class:p(["ml-1 h-2 w-2 rounded-full",zt.value]),"aria-hidden":"true"},null,2)):g("",!0)],2),P.value?(l(),n("div",Ts,[s("button",{type:"button",class:"flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm text-foreground transition-colors hover:bg-accent",onClick:e[4]||(e[4]=o=>{Ue(),le()})}," 任务状态 "),e[32]||(e[32]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:p(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",S.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:S.value,onClick:e[5]||(e[5]=o=>{ts(),le()})}," 刷新过期 ",10,Ss),s("button",{type:"button",class:p(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",!B.value||S.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:!B.value||S.value,onClick:e[6]||(e[6]=o=>{St(),le()})}," 刷新选中 ",10,$s),e[33]||(e[33]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:p(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",B.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!B.value,onClick:e[7]||(e[7]=o=>{qt(),le()})}," 批量启用 ",10,Is),s("button",{type:"button",class:p(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",B.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!B.value,onClick:e[8]||(e[8]=o=>{Qt(),le()})}," 批量禁用 ",10,Es),s("button",{type:"button",class:p(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",B.value?"text-destructive hover:bg-destructive/10":"cursor-not-allowed text-muted-foreground"]),disabled:!B.value,onClick:e[9]||(e[9]=o=>{Xt(),le()})}," 批量删除 ",10,Ls)])):g("",!0)],512)]),Y.value==="card"?(l(),n("div",As,[(l(!0),n(ge,null,Ve(H.value,o=>(l(),n("div",{key:o.id,class:p(["rounded-2xl border border-border bg-card p-4",ct(o)]),onClick:r=>Ee(o.id)},[s("div",Vs,[s("div",null,[e[34]||(e[34]=s("p",{class:"text-xs text-muted-foreground"},"账号 ID",-1)),s("p",js,a(o.id),1)]),s("div",Ms,[G(be,{modelValue:b.value.has(o.id),"onUpdate:modelValue":r=>Ee(o.id),onClick:e[10]||(e[10]=M(()=>{},["stop"]))},null,8,["modelValue","onUpdate:modelValue"]),s("span",{class:p(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",nt(o)])},a(ve(o)),3)])]),s("div",Ds,[s("div",null,[e[35]||(e[35]=s("p",null,"剩余时间",-1)),s("p",{class:p(["mt-1 text-sm font-semibold",dt(o)])},a(it(o.remaining_display)),3),o.expires_at?(l(),n("p",Os,a(o.expires_at),1)):g("",!0)]),s("div",null,[e[36]||(e[36]=s("p",null,"冷却",-1)),s("p",{class:p(["mt-1",ze(o)])},[o.cooldown_seconds>0?(l(),n("span",Bs,a(ut(o.cooldown_seconds))+" · "+a(o.cooldown_reason),1)):(l(),n("span",Ns,a(o.cooldown_reason||"无冷却"),1))],2)]),s("div",null,[e[37]||(e[37]=s("p",null,"失败数",-1)),s("p",Us,a(o.error_count),1)]),s("div",null,[e[38]||(e[38]=s("p",null,"会话数",-1)),s("p",zs,a(o.conversation_count),1)])]),s("div",Ps,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:M(r=>pt(o.id),["stop"])}," 编辑 ",8,Fs),at(o)?(l(),n("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[e[11]||(e[11]=M(()=>{},["stop"])),r=>bt(o.id)]}," 启用 ",8,Ks)):(l(),n("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[e[12]||(e[12]=M(()=>{},["stop"])),r=>yt(o.id)]}," 禁用 ",8,Hs)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:[e[13]||(e[13]=M(()=>{},["stop"])),r=>_t(o.id)]}," 删除 ",8,Js)])],10,Rs))),128)),!H.value.length&&!j(ne)?(l(),n("div",Gs," 暂无账号数据,请检查后台配置。 ")):g("",!0)])):(l(),n("div",Ys,[s("table",qs,[s("thead",Qs,[s("tr",null,[s("th",Xs,[G(be,{modelValue:Oe.value,"onUpdate:modelValue":ft},null,8,["modelValue"])]),e[40]||(e[40]=s("th",{class:"py-3 pr-6"},"账号 ID",-1)),e[41]||(e[41]=s("th",{class:"py-3 pr-6"},"状态",-1)),s("th",Ws,[s("span",Zs,[e[39]||(e[39]=ee(" 剩余/过期 ",-1)),G(ms,{text:"过期时间为 12 小时,账户过期以北京时间为准。"})])]),e[42]||(e[42]=s("th",{class:"py-3 pr-6"},"冷却",-1)),e[43]||(e[43]=s("th",{class:"py-3 pr-6"},"失败数",-1)),e[44]||(e[44]=s("th",{class:"py-3 pr-6"},"会话数",-1)),e[45]||(e[45]=s("th",{class:"py-3 text-right"},"操作",-1))])]),s("tbody",eo,[!H.value.length&&!j(ne)?(l(),n("tr",to,[...e[46]||(e[46]=[s("td",{colspan:"8",class:"py-8 text-center text-muted-foreground"}," 暂无账号数据,请检查后台配置。 ",-1)])])):g("",!0),(l(!0),n(ge,null,Ve(H.value,o=>(l(),n("tr",{key:o.id,class:p(["border-t border-border",ct(o)]),onClick:r=>Ee(o.id)},[s("td",{class:"py-4 pr-4",onClick:e[14]||(e[14]=M(()=>{},["stop"]))},[G(be,{modelValue:b.value.has(o.id),"onUpdate:modelValue":r=>Ee(o.id)},null,8,["modelValue","onUpdate:modelValue"])]),s("td",oo,a(o.id),1),s("td",ro,[s("span",{class:p(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",nt(o)])},a(ve(o)),3)]),s("td",lo,[s("div",{class:p(["text-sm font-semibold",dt(o)])},a(it(o.remaining_display)),3),o.expires_at?(l(),n("span",no,a(o.expires_at),1)):g("",!0)]),s("td",ao,[o.cooldown_seconds>0?(l(),n("span",{key:0,class:p(ze(o))},a(ut(o.cooldown_seconds))+" · "+a(o.cooldown_reason),3)):(l(),n("span",{key:1,class:p(ze(o))},a(o.cooldown_reason||"无冷却"),3))]),s("td",io,a(o.error_count),1),s("td",uo,a(o.conversation_count),1),s("td",co,[s("div",fo,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:M(r=>pt(o.id),["stop"])}," 编辑 ",8,vo),at(o)?(l(),n("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:M(r=>bt(o.id),["stop"])}," 启用 ",8,mo)):(l(),n("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:M(r=>yt(o.id),["stop"])}," 禁用 ",8,po)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:M(r=>_t(o.id),["stop"])}," 删除 ",8,xo)])])],10,so))),128))])])]))])]),G(fs,{open:j(T).open.value,title:j(T).title.value,message:j(T).message.value,"confirm-text":j(T).confirmText.value,"cancel-text":j(T).cancelText.value,onConfirm:j(T).confirm,onCancel:j(T).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(l(),Re(je,{to:"body"},[ye.value?(l(),n("div",go,[s("div",bo,[s("div",yo,[s("div",null,[e[47]||(e[47]=s("p",{class:"text-sm font-medium text-foreground"},"添加账户",-1)),s("p",_o,a(U.value==="register"?"创建 DuckMail 账号并自动注册":"批量导入账户配置"),1)]),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Ne}," 关闭 ")]),s("div",ho,[s("div",wo,[s("div",ko,[s("button",{type:"button",class:p(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",U.value==="register"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:e[15]||(e[15]=o=>U.value="register")}," 自动注册 ",2),s("button",{type:"button",class:p(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",U.value==="import"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:e[16]||(e[16]=o=>U.value="import")}," 批量导入 ",2)]),U.value==="register"?(l(),n("div",Co,[e[48]||(e[48]=s("label",{class:"block text-xs text-muted-foreground"},"注册数量",-1)),R(s("input",{"onUpdate:modelValue":e[17]||(e[17]=o=>de.value=o),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,de.value,void 0,{number:!0}]]),e[49]||(e[49]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},[s("p",null,"默认域名(可在配置面板修改,推荐使用)"),s("p",{class:"mt-1"},"注册失败建议关闭无头浏览器再试")],-1))])):(l(),n("div",To,[e[50]||(e[50]=s("label",{class:"block text-xs text-muted-foreground"},"批量导入(每行一个)",-1)),R(s("textarea",{"onUpdate:modelValue":e[18]||(e[18]=o=>ue.value=o),class:"min-h-[140px] w-full rounded-2xl border border-input bg-background px-3 py-2 text-xs font-mono",placeholder:`duckmail----you@example.com----password +user@outlook.com----loginPassword----clientId----refreshToken`},null,512),[[V,ue.value]]),e[51]||(e[51]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},[s("p",null,"支持两种格式:"),s("p",{class:"mt-1 font-mono"},"duckmail----email----password"),s("p",{class:"mt-1 font-mono"},"email----password----clientId----refreshToken"),s("p",{class:"mt-2"},'导入后请执行一次"刷新选中"以获取 Cookie。'),s("p",{class:"mt-1"},"注册失败建议关闭无头浏览器再试")],-1)),z.value?(l(),n("div",So,a(z.value),1)):g("",!0)])),e[53]||(e[53]=s("div",{class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-[11px] leading-relaxed"},[s("p",{class:"text-xs font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)"),s("p",{class:"mt-1 text-muted-foreground"},[ee("详细声明请查看项目 "),s("a",{href:"https://github.com/Dreamy-rain/gemini-business2api/blob/main/docs/DISCLAIMER.md",target:"_blank",class:"text-primary hover:underline font-medium"},"DISCLAIMER.md")])],-1)),G(be,{modelValue:ce.value,"onUpdate:modelValue":e[19]||(e[19]=o=>ce.value=o)},{default:$t(()=>[...e[52]||(e[52]=[ee(" 我已阅读并同意上述说明与限制 ",-1)])]),_:1},8,["modelValue"])])]),s("div",$o,[s("div",Io,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Ne}," 取消 "),U.value==="register"?(l(),n("button",{key:0,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",disabled:O.value||!ce.value,onClick:es}," 开始注册 ",8,Eo)):(l(),n("button",{key:1,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",disabled:_e.value||!ce.value,onClick:Vt}," 导入并保存 ",8,Lo))])])])])):g("",!0)])),(l(),Re(je,{to:"body"},[q.value?(l(),n("div",Ao,[s("div",Ro,[s("div",Vo,[e[54]||(e[54]=s("div",null,[s("p",{class:"text-sm font-medium text-foreground"},"任务状态"),s("p",{class:"mt-1 text-xs text-muted-foreground"},"注册与刷新任务的状态与日志")],-1)),s("div",jo,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-muted-foreground transition-colors hover:border-primary hover:text-primary disabled:cursor-not-allowed disabled:opacity-50",disabled:!Q.value.length&&!X.value.length&&!c.value&&!f.value&&!_.value,onClick:Dt}," 清空日志 ",8,Mo),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Mt}," 关闭 ")])]),s("div",Do,[_.value?(l(),n("div",Oo,a(_.value),1)):g("",!0),c.value||f.value?(l(),n("div",Bo,[c.value?(l(),n("div",No,[s("div",Uo,[s("span",{class:p(["h-2.5 w-2.5 rounded-full",wt(c.value)]),"aria-hidden":"true"},null,2),e[55]||(e[55]=ee(" 注册任务 ",-1))]),s("div",zo,[s("span",null,"状态:"+a(ht(c.value.status)),1),s("span",null,"进度:"+a(c.value.progress)+"/"+a(c.value.count),1),s("span",null,"成功:"+a(c.value.success_count),1),s("span",null,"失败:"+a(c.value.fail_count),1)])])):g("",!0),f.value?(l(),n("div",Po,[s("div",Fo,[s("span",{class:p(["h-2.5 w-2.5 rounded-full",wt(f.value)]),"aria-hidden":"true"},null,2),e[56]||(e[56]=ee(" 刷新任务 ",-1))]),s("div",Ko,[s("span",null,"状态:"+a(ht(f.value.status)),1),s("span",null,"进度:"+a(f.value.progress)+"/"+a(f.value.account_ids.length),1),s("span",null,"成功:"+a(f.value.success_count),1),s("span",null,"失败:"+a(f.value.fail_count),1)])])):g("",!0)])):g("",!0),Q.value.length||X.value.length?(l(),n("div",Ho,[s("div",{ref_key:"taskLogsRef",ref:We,class:"scrollbar-slim flex-1 overflow-y-auto rounded-2xl border border-border bg-muted/30 p-3"},[Q.value.length?(l(),n("div",Jo,[e[57]||(e[57]=s("p",{class:"text-xs font-semibold text-foreground"},"注册日志",-1)),s("div",Go,[(l(!0),n(ge,null,Ve(Q.value,(o,r)=>(l(),n("div",{key:`reg-${r}`,class:"font-mono"},a(mt(o)),1))),128))])])):g("",!0),X.value.length?(l(),n("div",Yo,[e[58]||(e[58]=s("p",{class:"text-xs font-semibold text-foreground"},"刷新日志",-1)),s("div",qo,[(l(!0),n(ge,null,Ve(X.value,(o,r)=>(l(),n("div",{key:`login-${r}`,class:"font-mono"},a(mt(o)),1))),128))])])):g("",!0)],512)])):g("",!0),!_.value&&!c.value&&!f.value&&!Q.value.length&&!X.value.length?(l(),n("div",Qo," 暂无任务 ")):g("",!0)])])])):g("",!0)])),(l(),Re(je,{to:"body"},[x.value?(l(),n("div",Xo,[s("div",Wo,[s("div",{class:"flex items-center justify-between"},[e[59]||(e[59]=s("p",{class:"text-sm font-medium text-foreground"},"编辑账号",-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Fe}," 关闭 ")]),$.value?(l(),n("div",Zo,a($.value),1)):g("",!0),s("div",er,[e[60]||(e[60]=s("label",{class:"block text-xs text-muted-foreground"},"账号 ID",-1)),R(s("input",{"onUpdate:modelValue":e[20]||(e[20]=o=>h.value.id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",disabled:""},null,512),[[V,h.value.id]]),e[61]||(e[61]=s("label",{class:"block text-xs text-muted-foreground"},"secure_c_ses",-1)),R(s("textarea",{"onUpdate:modelValue":e[21]||(e[21]=o=>h.value.secure_c_ses=o),class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",rows:"3"},null,512),[[V,h.value.secure_c_ses]]),e[62]||(e[62]=s("label",{class:"block text-xs text-muted-foreground"},"csesidx",-1)),R(s("input",{"onUpdate:modelValue":e[22]||(e[22]=o=>h.value.csesidx=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,h.value.csesidx]]),e[63]||(e[63]=s("label",{class:"block text-xs text-muted-foreground"},"config_id",-1)),R(s("input",{"onUpdate:modelValue":e[23]||(e[23]=o=>h.value.config_id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,h.value.config_id]]),e[64]||(e[64]=s("label",{class:"block text-xs text-muted-foreground"},"host_c_oses",-1)),R(s("input",{"onUpdate:modelValue":e[24]||(e[24]=o=>h.value.host_c_oses=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,h.value.host_c_oses]]),e[65]||(e[65]=s("label",{class:"block text-xs text-muted-foreground"},"expires_at",-1)),R(s("input",{"onUpdate:modelValue":e[25]||(e[25]=o=>h.value.expires_at=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"2025-12-23 10:59:21"},null,512),[[V,h.value.expires_at]])]),s("div",{class:"mt-6 flex items-center justify-end gap-2"},[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Fe}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Yt}," 保存 ")])])])):g("",!0)])),(l(),Re(je,{to:"body"},[Me.value?(l(),n("div",tr,[s("div",sr,[s("div",or,[e[66]||(e[66]=s("p",{class:"text-sm font-medium text-foreground"},"账户配置(JSON)",-1)),s("div",rr,[s("button",{class:"rounded-full bg-foreground px-3 py-1 text-xs text-background transition-opacity hover:opacity-90",onClick:Jt},a(N.value?"显示原文":"脱敏显示"),1),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Pe}," 关闭 ")])]),D.value?(l(),n("div",lr,a(D.value),1)):g("",!0),s("div",nr,[R(s("textarea",{"onUpdate:modelValue":e[26]||(e[26]=o=>se.value=o),class:"h-96 w-full rounded-2xl border border-input bg-background px-4 py-3 font-mono text-xs text-foreground",spellcheck:"false",readonly:N.value},null,8,ar),[[V,se.value]])]),s("div",ir,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Pe}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",onClick:Gt,disabled:N.value}," 保存 ",8,dr)])])])):g("",!0)]))],64))}});export{xr as default}; diff --git a/static/assets/Accounts-CS68WEf6.js b/static/assets/Accounts-CS68WEf6.js new file mode 100644 index 0000000000000000000000000000000000000000..06749df5d98574d8562e9068b09348e81c1b055c --- /dev/null +++ b/static/assets/Accounts-CS68WEf6.js @@ -0,0 +1,2 @@ +import{g as E,D as ts,h as a,d as ss,E as os,i as H,o as rs,A as ls,j as ns,c as l,a as s,p as J,m as Re,q as A,v as $,s as Tt,t as n,n as g,u as R,b as m,f as pe,F as ge,r as Ve,x as je,w as V,e as r,G as as}from"./index-B38eA7T4.js";import{_ as is}from"./SelectMenu.vue_vue_type_script_setup_true_lang-n4k9i9SG.js";import{_ as be}from"./Checkbox.vue_vue_type_script_setup_true_lang-mPA_O7TM.js";import{_ as ds}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-B4oTz-IR.js";import{u as us}from"./useConfirmDialog-DRJ5fetN.js";import{_ as cs}from"./HelpTip.vue_vue_type_script_setup_true_lang-P0lttIQ0.js";const h={list:()=>E.get("/admin/accounts"),getConfig:()=>E.get("/admin/accounts-config"),updateConfig:b=>E.put("/admin/accounts-config",b),delete:b=>E.delete(`/admin/accounts/${b}`),disable:b=>E.put(`/admin/accounts/${b}/disable`),enable:b=>E.put(`/admin/accounts/${b}/enable`),startRegister:(b,w)=>E.post("/admin/register/start",{count:b,domain:w}),getRegisterTask:b=>E.get(`/admin/register/task/${b}`),getRegisterCurrent:()=>E.get("/admin/register/current"),startLogin:b=>E.post("/admin/login/start",b),getLoginTask:b=>E.get(`/admin/login/task/${b}`),getLoginCurrent:()=>E.get("/admin/login/current"),checkLogin:()=>E.post("/admin/login/check")},fs=ts("accounts",()=>{const b=a([]),w=a(!1);async function L(){w.value=!0;try{const u=await h.list();b.value=Array.isArray(u)?u:u.accounts||[]}finally{w.value=!1}}async function re(u){await h.delete(u),await L()}async function C(u){await h.disable(u),await L()}async function le(u){await h.enable(u),await L()}async function Z(u){await Promise.all(u.map(j=>h.enable(j))),await L()}async function p(u){await Promise.all(u.map(j=>h.disable(j))),await L()}async function G(u){await Promise.all(u.map(j=>h.delete(j))),await L()}async function ne(u){await h.updateConfig(u),await L()}return{accounts:b,isLoading:w,loadAccounts:L,deleteAccount:re,disableAccount:C,enableAccount:le,bulkEnable:Z,bulkDisable:p,bulkDelete:G,updateConfig:ne}}),vs={class:"space-y-8"},xs={class:"rounded-3xl border border-border bg-card p-6"},ms={class:"flex flex-wrap items-center justify-between gap-4"},ps={class:"grid w-full grid-cols-2 gap-3 sm:flex sm:w-auto sm:items-center"},gs={class:"flex w-full flex-wrap items-center gap-3 text-xs text-muted-foreground sm:w-auto sm:flex-nowrap"},bs={class:"ml-auto flex items-center gap-2 sm:ml-0"},ys={class:"mt-4 flex flex-wrap items-center gap-2"},_s=["disabled"],hs=["disabled"],ws={key:0,class:"absolute right-0 z-10 mt-2 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg"},ks=["disabled"],Cs=["disabled"],Ts=["disabled"],Ss=["disabled"],Es=["disabled"],Is={key:0,class:"mt-6 grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3"},Ls=["onClick"],As={class:"flex items-start justify-between gap-3"},$s={class:"mt-1 font-mono text-xs text-foreground"},Rs={class:"flex items-center gap-2"},Vs={class:"mt-4 grid grid-cols-2 gap-3 text-xs text-muted-foreground"},js={key:0,class:"mt-1 text-[11px]"},Ms={key:0},Ds={key:1},Os={class:"mt-1 text-sm font-semibold text-foreground"},Bs={class:"mt-1 text-sm font-semibold text-foreground"},Ns={class:"mt-4 flex flex-wrap items-center gap-2"},Us=["onClick"],zs=["onClick"],Ps=["onClick"],Fs=["onClick"],Ks={key:0,class:"rounded-2xl border border-border bg-background p-4 text-center text-xs text-muted-foreground"},Hs={key:1,class:"relative mt-6 overflow-x-auto overflow-y-visible"},Js={class:"min-w-full text-left text-sm"},Gs={class:"text-xs uppercase tracking-[0.2em] text-muted-foreground"},Ys={class:"py-3 pr-4"},qs={class:"py-3 pr-6"},Qs={class:"inline-flex items-center gap-2"},Xs={class:"text-sm text-foreground"},Ws={key:0},Zs=["onClick"],eo={class:"py-4 pr-6 font-mono text-xs text-foreground"},to={class:"py-4 pr-6"},so={class:"py-4 pr-6"},oo={key:0,class:"block text-[11px] text-muted-foreground"},ro={class:"py-4 pr-6 text-xs"},lo={class:"py-4 pr-6 text-xs text-muted-foreground"},no={class:"py-4 pr-6 text-xs text-muted-foreground"},ao={class:"py-4 text-right"},io={class:"flex flex-wrap justify-end gap-2"},uo=["onClick"],co=["onClick"],fo=["onClick"],vo=["onClick"],xo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},mo={class:"flex max-h-[90vh] w-full max-w-lg flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},po={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},go={class:"mt-1 text-xs text-muted-foreground"},bo={class:"scrollbar-slim flex-1 overflow-y-auto px-6 py-4"},yo={class:"space-y-4 text-sm"},_o={class:"flex rounded-full border border-border bg-muted/30 p-1 text-xs"},ho={key:0,class:"space-y-4"},wo={key:1,class:"space-y-4"},ko={key:0,class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-xs text-rose-600"},Co={class:"border-t border-border/60 px-6 py-4"},To={class:"flex items-center justify-end gap-2"},So=["disabled"],Eo=["disabled"],Io={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Lo={class:"flex h-[80vh] w-full max-w-2xl flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},Ao={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},$o={class:"flex items-center gap-2"},Ro=["disabled"],Vo={class:"flex min-h-0 flex-1 flex-col px-6 py-4"},jo={key:0,class:"rounded-2xl bg-destructive/10 px-3 py-2 text-xs text-destructive"},Mo={key:1,class:"grid gap-3 text-xs text-muted-foreground"},Do={key:0,class:"space-y-1"},Oo={class:"flex flex-wrap gap-x-4 gap-y-1"},Bo={key:1,class:"space-y-1"},No={class:"flex flex-wrap gap-x-4 gap-y-1"},Uo={key:2,class:"mt-4 flex min-h-0 flex-1 flex-col"},zo={key:0,class:"space-y-2"},Po={class:"space-y-1 text-[11px] text-muted-foreground"},Fo={key:1,class:"mt-4 space-y-2"},Ko={class:"space-y-1 text-[11px] text-muted-foreground"},Ho={key:3,class:"mt-4 rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},Jo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Go={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},Yo={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},qo={class:"mt-4 space-y-3 text-sm"},Qo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Xo={class:"w-full max-w-3xl rounded-3xl border border-border bg-card p-6 shadow-xl"},Wo={class:"flex items-center justify-between"},Zo={class:"flex items-center gap-2"},er={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},tr={class:"mt-4"},sr=["readonly"],or={class:"mt-6 flex items-center justify-end gap-2"},rr=["disabled"],He="accounts-register-task-cache",Je="accounts-login-task-cache",Ge="accounts-register-log-clear",Ye="accounts-login-log-clear",qe="accounts-register-task-cleared-id",Qe="accounts-login-task-cleared-id",St="1970-01-01 00:00:00",cr=ss({__name:"Accounts",setup(b){const w=fs(),{accounts:L,isLoading:re}=os(w),C=us(),le=a(""),Z=a("all"),p=a(new Set),G=a("table"),ne=a(!1),u=a(""),j=a(!1),M=a(""),ee=a(""),B=a(!1),ae=a([]),ie=a(1),ye=a(!1),N=a("register"),de=a(""),U=a(""),_e=a(!1),Y=a(!1),z=a(!1),Me=a(null),he=a(null),we=a(null),P=a(null),F=a(null),te=a(0),se=a(0),ue=a(!1),c=a(null),f=a(null),Xe=a(null),D=a(!1),T=a(!1),y=a(""),_=a({id:"",secure_c_ses:"",csesidx:"",config_id:"",host_c_oses:"",expires_at:""}),ke=a(null),We=a([]),Et=[{label:"全部状态",value:"all"},{label:"正常",value:"正常"},{label:"即将过期",value:"即将过期"},{label:"已过期",value:"已过期"},{label:"手动禁用",value:"手动禁用"},{label:"错误禁用",value:"错误禁用"},{label:"429限流",value:"429限流"}],K=H(()=>{const e=le.value.trim().toLowerCase();return L.value.filter(t=>{const o=!e||t.id.toLowerCase().includes(e),i=Z.value==="all"||fe(t)===Z.value;return o&&i})}),O=H(()=>p.value.size),De=H(()=>K.value.length>0&&K.value.every(e=>p.value.has(e.id))),ce=async()=>{await w.loadAccounts(),p.value=new Set,z.value=!1},Ze=e=>{try{const t=localStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}},et=e=>{try{return localStorage.getItem(e)||null}catch{return null}},Ce=(e,t)=>{try{if(t){localStorage.setItem(e,t);return}localStorage.removeItem(e)}catch{}},tt=(e,t)=>{try{localStorage.setItem(e,JSON.stringify(t))}catch{}},st=e=>{try{localStorage.removeItem(e)}catch{}},ot=e=>{const t=localStorage.getItem(e),o=Number(t);return Number.isFinite(o)?o:0},Te=(e,t)=>{try{localStorage.setItem(e,String(t))}catch{}},Oe=(e,t=!0)=>{e&&(e.id&&e.id===P.value||(e.id&&P.value&&e.id!==P.value&&(P.value=null,Ce(qe,null)),c.value=e,e.id&&e.id!==he.value&&(he.value=e.id,te.value=0,Te(Ge,0)),t&&tt(He,e)))},Se=(e,t=!0)=>{e&&(e.id&&e.id===F.value||(e.id&&F.value&&e.id!==F.value&&(F.value=null,Ce(Qe,null)),f.value=e,e.id&&e.id!==we.value&&(we.value=e.id,se.value=0,Te(Ye,0)),t&&tt(Je,e)))},It=()=>{te.value=ot(Ge),se.value=ot(Ye),P.value=et(qe),F.value=et(Qe);const e=Ze(He);e&&e.id!==P.value&&(c.value=e,he.value=e.id||null);const t=Ze(Je);t&&t.id!==F.value&&(f.value=t,we.value=t.id||null)},Lt=()=>{ye.value=!0,N.value="register",de.value="",U.value="",_e.value=!1,ue.value=!1},Be=()=>{ye.value=!1},At=e=>{const t=[],o=[];return e.split(/\r?\n/).map(d=>d.trim()).filter(Boolean).forEach((d,x)=>{const v=d.split("----").map(S=>S.trim()),k=x+1;if(v.length){if(v[0].toLowerCase()==="duckmail"){if(v.length<3||!v[1]||!v[2]){o.push(`第 ${k} 行格式错误(duckmail)`);return}const S=v[1],$e=v.slice(2).join("----");t.push({id:S,secure_c_ses:"",csesidx:"",config_id:"",expires_at:St,mail_provider:"duckmail",mail_address:S,mail_password:$e});return}if(v.length>=4&&v[0]&&v[2]&&v[3]){const S=v[0],$e=v[1]||"",I=v[2],es=v.slice(3).join("----");t.push({id:S,secure_c_ses:"",csesidx:"",config_id:"",expires_at:St,mail_provider:"microsoft",mail_address:S,mail_password:$e,mail_client_id:I,mail_refresh_token:es,mail_tenant:"consumers"});return}o.push(`第 ${k} 行格式错误`)}}),{items:t,errors:o}},$t=async()=>{if(U.value="",!de.value.trim()){U.value="请输入导入内容";return}const{items:e,errors:t}=At(de.value);if(!e.length){U.value=t.length?t.join(","):"未识别到有效账号";return}if(t.length){U.value=t.slice(0,3).join(",");return}_e.value=!0;try{const i=[...await ft()],d=new Map(i.map((k,S)=>[k.id,S])),x=[];e.forEach(k=>{const S=d.get(k.id||"");if(S===void 0){i.push(k),x.push(k.id);return}const I={...i[S],mail_provider:k.mail_provider,mail_address:k.mail_address};k.mail_provider==="microsoft"?(I.mail_client_id=k.mail_client_id,I.mail_refresh_token=k.mail_refresh_token,I.mail_tenant=k.mail_tenant,I.mail_password=k.mail_password):(I.mail_password=k.mail_password,I.mail_client_id=void 0,I.mail_refresh_token=void 0,I.mail_tenant=void 0),i[S]=I,x.push(k.id)}),await w.updateConfig(i),await ce(),p.value=new Set(x),Be(),await C.ask({title:"导入成功",message:`已导入 ${x.length} 个账户并自动选中。是否立即刷新这些账户以获取 Cookie?`,confirmText:"立即刷新",cancelText:"稍后手动刷新"})&&await Ct()}catch(o){U.value=o.message||"导入失败"}finally{_e.value=!1}},Rt=async()=>{try{const e=[],t=c.value?.id,o=f.value?.id;if(t&&!Ee(t)&&e.push(ht(t)),o&&!Ie(o)&&e.push(wt(o)),!e.length){await Ke();return}await Promise.all(e)}catch(e){y.value=e?.message||"任务状态更新失败"}},Ne=async()=>{Y.value=!0,await Rt()},Vt=()=>{Y.value=!1},jt=()=>{const e=c.value?.id||null,t=f.value?.id||null;P.value=e,F.value=t,Ce(qe,e),Ce(Qe,t),te.value=c.value?.logs?.length||0,se.value=f.value?.logs?.length||0,Te(Ge,te.value),Te(Ye,se.value),c.value=null,f.value=null,he.value=null,we.value=null,y.value="",D.value=!1,T.value=!1,X(),W(),st(He),st(Je)},Ee=e=>!!(e&&e===P.value),Ie=e=>!!(e&&e===F.value),Mt=()=>{z.value=!z.value},oe=()=>{z.value=!1},rt=e=>{if(!z.value)return;const t=e.target;Me.value&&!Me.value.contains(t)&&(z.value=!1)};rs(async()=>{It(),await ce(),await Ke(),Xt(),document.addEventListener("click",rt)});const q=H(()=>{const e=c.value?.logs||[];return te.value?e.slice(te.value):e}),Q=H(()=>{const e=f.value?.logs||[];return se.value?e.slice(se.value):e}),Dt=H(()=>!!y.value||!!c.value||!!f.value||q.value.length>0||Q.value.length>0),Ot=async()=>{await as();const e=Xe.value;e&&(e.scrollTop=e.scrollHeight)};ls([q,Q,Y],async()=>{Y.value&&await Ot()},{deep:!0});const Bt=H(()=>{const e=c.value?.status,t=f.value?.status;return e==="running"||e==="pending"||t==="running"||t==="pending"}),Nt=H(()=>{if(y.value)return"bg-rose-500";if(Bt.value)return"bg-sky-400";const e=[];if(c.value){const d=c.value.success_count??0,x=c.value.fail_count??0,v=c.value.count??d+x;e.push({success:d,fail:x,total:v,status:c.value.status})}if(f.value){const d=f.value.success_count??0,x=f.value.fail_count??0,v=f.value.account_ids?.length??d+x;e.push({success:d,fail:x,total:v,status:f.value.status})}if(!e.length)return"bg-muted-foreground";const t=e.reduce((d,x)=>d+x.success,0),o=e.reduce((d,x)=>d+x.fail,0),i=e.reduce((d,x)=>d+(x.total||0),0);if(t>0&&o>0)return"bg-amber-400";if(o>0&&t===0)return"bg-rose-500";if(t>0&&o===0)return"bg-emerald-400";if(i===0){const d=e.every(v=>v.status==="success");if(e.some(v=>v.status==="failed"))return"bg-rose-500";if(d)return"bg-emerald-400"}return"bg-muted-foreground"});ns(()=>{X(),W(),Qt(),document.removeEventListener("click",rt)});const fe=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?"429限流":e.cooldown_reason==="错误禁用"?"错误禁用":e.disabled?"手动禁用":e.status==="已过期"?"已过期":e.status==="即将过期"?"即将过期":"正常",lt=e=>{const t=fe(e);return t==="429限流"||t==="即将过期"?"bg-amber-200 text-amber-900":t==="错误禁用"||t==="已过期"?"bg-destructive/10 text-destructive":t==="手动禁用"?"bg-muted text-muted-foreground":"bg-emerald-500 text-white"},nt=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?!0:e.disabled||e.cooldown_reason==="错误禁用",at=e=>e==="已过期"?"过期":e==="未设置"?"未设置":e,it=e=>e.status==="已过期"?"text-rose-600":e.status==="即将过期"?"text-amber-700":e.status==="未设置"?"text-muted-foreground":"text-emerald-600",dt=e=>e<60?`${e} 秒`:e<3600?`${Math.ceil(e/60)} 分钟`:`${(e/3600).toFixed(1)} 小时`,Ue=e=>e.cooldown_seconds>0?"text-amber-700":e.cooldown_reason==="错误禁用"?"text-rose-600":"text-muted-foreground",ut=e=>{const t=fe(e);return t==="手动禁用"||t==="已过期"?"bg-muted/70":""},Le=e=>{const t=new Set(p.value);t.has(e)?t.delete(e):t.add(e),p.value=t},ct=()=>{if(De.value){p.value=new Set;return}p.value=new Set(K.value.map(e=>e.id))},Ut=(e,t)=>e.id||`account_${t+1}`,ft=async()=>(await h.getConfig()).accounts.map((t,o)=>({...t,id:Ut(t,o)})),vt=e=>`${e.time} [${e.level}] ${e.message}`,zt=(e,t)=>{let o=-1;for(let d=0;d{u.value="";try{const t=await ft();zt(t,e)}catch(t){u.value=t.message||"加载账号配置失败"}},Pt=async()=>{M.value="";try{const e=await h.getConfig();ae.value=Array.isArray(e.accounts)?e.accounts:[],ee.value=JSON.stringify(pt(ae.value),null,2),B.value=!0,j.value=!0}catch(e){M.value=e.message||"加载账号配置失败"}},ze=()=>{j.value=!1,M.value="",B.value=!1},mt=()=>{const e=JSON.parse(ee.value);if(!Array.isArray(e))throw new Error("配置格式必须是数组。");return e},Ft=e=>typeof e!="string"||!e?e:e.length<=6?`${e.slice(0,2)}****`:`${e.slice(0,3)}****`,pt=e=>{const t=new Set(["secure_c_ses","csesidx","config_id","host_c_oses","mail_password","mail_refresh_token","mail_client_id"]);return e.map(o=>{const i={...o};return t.forEach(d=>{const x=i[d];x&&(i[d]=Ft(x))}),i})},Kt=()=>{if(M.value="",!B.value){try{ae.value=mt()}catch(e){M.value=e.message||"JSON 格式错误";return}ee.value=JSON.stringify(pt(ae.value),null,2),B.value=!0;return}ee.value=JSON.stringify(ae.value,null,2),B.value=!1},Ht=async()=>{M.value="";try{const e=mt();await w.updateConfig(e),ze()}catch(e){M.value=e.message||"保存失败"}},Pe=()=>{ne.value=!1,u.value=""},Jt=async()=>{if(ke.value===null)return;const e=[...We.value];e[ke.value]={...e[ke.value],id:_.value.id,secure_c_ses:_.value.secure_c_ses,csesidx:_.value.csesidx,config_id:_.value.config_id,host_c_oses:_.value.host_c_oses||void 0,expires_at:_.value.expires_at||void 0};try{await w.updateConfig(e),Pe()}catch(t){u.value=t.message||"保存失败"}},Gt=async()=>{await w.bulkEnable(Array.from(p.value)),p.value=new Set},Yt=async()=>{await C.ask({title:"批量禁用",message:"确定要批量禁用选中的账号吗?"})&&(await w.bulkDisable(Array.from(p.value)),p.value=new Set)},qt=async()=>{await C.ask({title:"批量删除",message:"确定要批量删除选中的账号吗?",confirmText:"删除"})&&(await w.bulkDelete(Array.from(p.value)),p.value=new Set)},gt=async e=>{await w.enableAccount(e)},bt=async e=>{await C.ask({title:"禁用账号",message:"确定要禁用该账号吗?"})&&await w.disableAccount(e)},yt=async e=>{await C.ask({title:"删除账号",message:"确定要删除该账号吗?",confirmText:"删除"})&&await w.deleteAccount(e)};let ve=null,xe=null,me=null,Ae=!1;const X=()=>{ve!==null&&(window.clearInterval(ve),ve=null)},W=()=>{xe!==null&&(window.clearInterval(xe),xe=null)},Qt=()=>{me!==null&&(window.clearInterval(me),me=null),Ae=!1},_t=e=>e==="pending"?"等待中":e==="running"?"执行中":e==="success"?"成功":e==="failed"?"失败":e,ht=async e=>{if(Ee(e)){X();return}const t=await h.getRegisterTask(e);if(Ee(t.id)){X();return}Oe(t),t.status!=="running"&&t.status!=="pending"&&(D.value=!1,X(),await ce())},wt=async e=>{if(Ie(e)){W();return}const t=await h.getLoginTask(e);if(Ie(t.id)){W();return}Se(t),t.status!=="running"&&t.status!=="pending"&&(T.value=!1,W(),await ce())},kt=e=>{X(),ve=window.setInterval(()=>{ht(e).catch(t=>{y.value=t?.message||"注册任务更新失败",X(),D.value=!1})},3e3)},Fe=e=>{W(),xe=window.setInterval(()=>{wt(e).catch(t=>{y.value=t?.message||"刷新任务更新失败",W(),T.value=!1})},3e3)},Xt=()=>{me===null&&(me=window.setInterval(async()=>{if(!Ae&&!Y.value&&!(ve!==null||xe!==null)&&!(!D.value&&!T.value&&!c.value&&!f.value)){Ae=!0;try{await Ke()}catch(e){y.value=e?.message||"后台刷新失败"}finally{Ae=!1}}},6e3))},Ke=async()=>{try{const e=await h.getRegisterCurrent();e&&"id"in e&&!Ee(e.id)&&(Oe(e),(e.status==="running"||e.status==="pending")&&(D.value=!0,kt(e.id)))}catch(e){y.value=e.message||"加载注册任务失败"}try{const e=await h.getLoginCurrent();e&&"id"in e&&!Ie(e.id)&&(Se(e),(e.status==="running"||e.status==="pending")&&(T.value=!0,Fe(e.id)))}catch(e){y.value=e.message||"加载刷新任务失败"}},Wt=async()=>{y.value="",D.value=!0;try{const e=Number.isFinite(ie.value)&&ie.value>0?ie.value:void 0,t=await h.startRegister(e);Oe(t),kt(t.id),ye.value=!1,Y.value=!0}catch(e){y.value=e.message||"启动注册失败",D.value=!1}},Ct=async()=>{if(p.value.size){y.value="",T.value=!0;try{const e=await h.startLogin(Array.from(p.value));Se(e),Fe(e.id),Ne()}catch(e){y.value=e.message||"启动刷新失败",T.value=!1}}},Zt=async()=>{y.value="",T.value=!0;try{await h.checkLogin();const e=await h.getLoginCurrent();if(e&&"id"in e){Se(e),Fe(e.id),Ne();return}T.value=!1}catch(e){y.value=e.message||"触发刷新失败",T.value=!1}};return(e,t)=>(r(),l(ge,null,[s("div",vs,[s("section",xs,[s("div",ms,[s("div",ps,[A(s("input",{"onUpdate:modelValue":t[0]||(t[0]=o=>le.value=o),type:"text",placeholder:"搜索账号 ID",class:"w-full rounded-full border border-input bg-background px-4 py-2 text-sm sm:w-48"},null,512),[[$,le.value]]),J(is,{modelValue:Z.value,"onUpdate:modelValue":t[1]||(t[1]=o=>Z.value=o),options:Et},null,8,["modelValue"])]),s("div",gs,[J(be,{modelValue:De.value,"onUpdate:modelValue":ct},{default:Tt(()=>[...t[27]||(t[27]=[pe(" 全选 ",-1)])]),_:1},8,["modelValue"]),s("span",null,"已选 "+n(O.value)+" / "+n(K.value.length)+" 个账号",1),s("div",bs,[s("button",{type:"button",class:g(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",G.value==="table"?"bg-accent text-accent-foreground":""]),onClick:t[2]||(t[2]=o=>G.value="table"),"aria-label":"列表视图"},[...t[28]||(t[28]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])],2),s("button",{type:"button",class:g(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",G.value==="card"?"bg-accent text-accent-foreground":""]),onClick:t[3]||(t[3]=o=>G.value="card"),"aria-label":"卡片视图"},[...t[29]||(t[29]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h7v6H4V6zm9 0h7v6h-7V6zM4 14h7v4H4v-4zm9 0h7v4h-7v-4z"})],-1)])],2)])])]),s("div",ys,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:R(re),onClick:ce}," 刷新列表 ",8,_s),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:Pt}," 账户配置 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:D.value,onClick:Lt}," 添加账户 ",8,hs),s("div",{ref_key:"moreActionsRef",ref:Me,class:"relative"},[s("button",{class:g(["flex items-center gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary",z.value?"bg-accent text-accent-foreground":""]),onClick:Mt},[t[30]||(t[30]=pe(" 更多操作 ",-1)),t[31]||(t[31]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1)),Dt.value?(r(),l("span",{key:0,class:g(["ml-1 h-2 w-2 rounded-full",Nt.value]),"aria-hidden":"true"},null,2)):m("",!0)],2),z.value?(r(),l("div",ws,[s("button",{type:"button",class:"flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm text-foreground transition-colors hover:bg-accent",onClick:t[4]||(t[4]=o=>{Ne(),oe()})}," 任务状态 "),t[32]||(t[32]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",T.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:T.value,onClick:t[5]||(t[5]=o=>{Zt(),oe()})}," 刷新过期 ",10,ks),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",!O.value||T.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:!O.value||T.value,onClick:t[6]||(t[6]=o=>{Ct(),oe()})}," 刷新选中 ",10,Cs),t[33]||(t[33]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",O.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!O.value,onClick:t[7]||(t[7]=o=>{Gt(),oe()})}," 批量启用 ",10,Ts),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",O.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!O.value,onClick:t[8]||(t[8]=o=>{Yt(),oe()})}," 批量禁用 ",10,Ss),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",O.value?"text-destructive hover:bg-destructive/10":"cursor-not-allowed text-muted-foreground"]),disabled:!O.value,onClick:t[9]||(t[9]=o=>{qt(),oe()})}," 批量删除 ",10,Es)])):m("",!0)],512)]),G.value==="card"?(r(),l("div",Is,[(r(!0),l(ge,null,Ve(K.value,o=>(r(),l("div",{key:o.id,class:g(["rounded-2xl border border-border bg-card p-4",ut(o)]),onClick:i=>Le(o.id)},[s("div",As,[s("div",null,[t[34]||(t[34]=s("p",{class:"text-xs text-muted-foreground"},"账号 ID",-1)),s("p",$s,n(o.id),1)]),s("div",Rs,[J(be,{modelValue:p.value.has(o.id),"onUpdate:modelValue":i=>Le(o.id),onClick:t[10]||(t[10]=V(()=>{},["stop"]))},null,8,["modelValue","onUpdate:modelValue"]),s("span",{class:g(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",lt(o)])},n(fe(o)),3)])]),s("div",Vs,[s("div",null,[t[35]||(t[35]=s("p",null,"剩余时间",-1)),s("p",{class:g(["mt-1 text-sm font-semibold",it(o)])},n(at(o.remaining_display)),3),o.expires_at?(r(),l("p",js,n(o.expires_at),1)):m("",!0)]),s("div",null,[t[36]||(t[36]=s("p",null,"冷却",-1)),s("p",{class:g(["mt-1",Ue(o)])},[o.cooldown_seconds>0?(r(),l("span",Ms,n(dt(o.cooldown_seconds))+" · "+n(o.cooldown_reason),1)):(r(),l("span",Ds,n(o.cooldown_reason||"无冷却"),1))],2)]),s("div",null,[t[37]||(t[37]=s("p",null,"失败数",-1)),s("p",Os,n(o.error_count),1)]),s("div",null,[t[38]||(t[38]=s("p",null,"会话数",-1)),s("p",Bs,n(o.conversation_count),1)])]),s("div",Ns,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>xt(o.id),["stop"])}," 编辑 ",8,Us),nt(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[11]||(t[11]=V(()=>{},["stop"])),i=>gt(o.id)]}," 启用 ",8,zs)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[12]||(t[12]=V(()=>{},["stop"])),i=>bt(o.id)]}," 禁用 ",8,Ps)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:[t[13]||(t[13]=V(()=>{},["stop"])),i=>yt(o.id)]}," 删除 ",8,Fs)])],10,Ls))),128)),!K.value.length&&!R(re)?(r(),l("div",Ks," 暂无账号数据,请检查后台配置。 ")):m("",!0)])):(r(),l("div",Hs,[s("table",Js,[s("thead",Gs,[s("tr",null,[s("th",Ys,[J(be,{modelValue:De.value,"onUpdate:modelValue":ct},null,8,["modelValue"])]),t[40]||(t[40]=s("th",{class:"py-3 pr-6"},"账号 ID",-1)),t[41]||(t[41]=s("th",{class:"py-3 pr-6"},"状态",-1)),s("th",qs,[s("span",Qs,[t[39]||(t[39]=pe(" 剩余/过期 ",-1)),J(cs,{text:"过期时间为 12 小时,账户过期以北京时间为准。"})])]),t[42]||(t[42]=s("th",{class:"py-3 pr-6"},"冷却",-1)),t[43]||(t[43]=s("th",{class:"py-3 pr-6"},"失败数",-1)),t[44]||(t[44]=s("th",{class:"py-3 pr-6"},"会话数",-1)),t[45]||(t[45]=s("th",{class:"py-3 text-right"},"操作",-1))])]),s("tbody",Xs,[!K.value.length&&!R(re)?(r(),l("tr",Ws,[...t[46]||(t[46]=[s("td",{colspan:"8",class:"py-8 text-center text-muted-foreground"}," 暂无账号数据,请检查后台配置。 ",-1)])])):m("",!0),(r(!0),l(ge,null,Ve(K.value,o=>(r(),l("tr",{key:o.id,class:g(["border-t border-border",ut(o)]),onClick:i=>Le(o.id)},[s("td",{class:"py-4 pr-4",onClick:t[14]||(t[14]=V(()=>{},["stop"]))},[J(be,{modelValue:p.value.has(o.id),"onUpdate:modelValue":i=>Le(o.id)},null,8,["modelValue","onUpdate:modelValue"])]),s("td",eo,n(o.id),1),s("td",to,[s("span",{class:g(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",lt(o)])},n(fe(o)),3)]),s("td",so,[s("div",{class:g(["text-sm font-semibold",it(o)])},n(at(o.remaining_display)),3),o.expires_at?(r(),l("span",oo,n(o.expires_at),1)):m("",!0)]),s("td",ro,[o.cooldown_seconds>0?(r(),l("span",{key:0,class:g(Ue(o))},n(dt(o.cooldown_seconds))+" · "+n(o.cooldown_reason),3)):(r(),l("span",{key:1,class:g(Ue(o))},n(o.cooldown_reason||"无冷却"),3))]),s("td",lo,n(o.error_count),1),s("td",no,n(o.conversation_count),1),s("td",ao,[s("div",io,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>xt(o.id),["stop"])}," 编辑 ",8,uo),nt(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>gt(o.id),["stop"])}," 启用 ",8,co)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>bt(o.id),["stop"])}," 禁用 ",8,fo)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:V(i=>yt(o.id),["stop"])}," 删除 ",8,vo)])])],10,Zs))),128))])])]))])]),J(ds,{open:R(C).open.value,title:R(C).title.value,message:R(C).message.value,"confirm-text":R(C).confirmText.value,"cancel-text":R(C).cancelText.value,onConfirm:R(C).confirm,onCancel:R(C).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(r(),Re(je,{to:"body"},[ye.value?(r(),l("div",xo,[s("div",mo,[s("div",po,[s("div",null,[t[47]||(t[47]=s("p",{class:"text-sm font-medium text-foreground"},"添加账户",-1)),s("p",go,n(N.value==="register"?"创建 DuckMail 账号并自动注册":"批量导入账户配置"),1)]),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Be}," 关闭 ")]),s("div",bo,[s("div",yo,[s("div",_o,[s("button",{type:"button",class:g(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",N.value==="register"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:t[15]||(t[15]=o=>N.value="register")}," 自动注册 ",2),s("button",{type:"button",class:g(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",N.value==="import"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:t[16]||(t[16]=o=>N.value="import")}," 批量导入 ",2)]),N.value==="register"?(r(),l("div",ho,[t[48]||(t[48]=s("label",{class:"block text-xs text-muted-foreground"},"注册数量",-1)),A(s("input",{"onUpdate:modelValue":t[17]||(t[17]=o=>ie.value=o),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,ie.value,void 0,{number:!0}]]),t[49]||(t[49]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"}," 默认域名来自设置面板(可在“配置面板”中修改) ",-1))])):(r(),l("div",wo,[t[50]||(t[50]=s("label",{class:"block text-xs text-muted-foreground"},"批量导入(每行一个)",-1)),A(s("textarea",{"onUpdate:modelValue":t[18]||(t[18]=o=>de.value=o),class:"min-h-[140px] w-full rounded-2xl border border-input bg-background px-3 py-2 text-xs font-mono",placeholder:`duckmail----you@example.com----password +user@outlook.com----loginPassword----clientId----refreshToken`},null,512),[[$,de.value]]),t[51]||(t[51]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},[s("p",null,"支持两种格式:"),s("p",{class:"mt-1 font-mono"},"duckmail----email----password"),s("p",{class:"mt-1 font-mono"},"email----password----clientId----refreshToken"),s("p",{class:"mt-2 text-[11px]"},'导入后请执行一次"刷新选中"以获取 Cookie。')],-1)),U.value?(r(),l("div",ko,n(U.value),1)):m("",!0)])),t[53]||(t[53]=s("div",{class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-[11px] leading-relaxed"},[s("p",{class:"text-xs font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)"),s("p",{class:"mt-1 text-muted-foreground"},[pe("详细声明请查看项目 "),s("a",{href:"https://github.com/Dreamy-rain/gemini-business2api/blob/main/docs/DISCLAIMER.md",target:"_blank",class:"text-primary hover:underline font-medium"},"DISCLAIMER.md")])],-1)),J(be,{modelValue:ue.value,"onUpdate:modelValue":t[19]||(t[19]=o=>ue.value=o)},{default:Tt(()=>[...t[52]||(t[52]=[pe(" 我已阅读并同意上述说明与限制 ",-1)])]),_:1},8,["modelValue"])])]),s("div",Co,[s("div",To,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Be}," 取消 "),N.value==="register"?(r(),l("button",{key:0,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:D.value||!ue.value,onClick:Wt}," 开始注册 ",8,So)):(r(),l("button",{key:1,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:_e.value||!ue.value,onClick:$t}," 导入并保存 ",8,Eo))])])])])):m("",!0)])),(r(),Re(je,{to:"body"},[Y.value?(r(),l("div",Io,[s("div",Lo,[s("div",Ao,[t[54]||(t[54]=s("div",null,[s("p",{class:"text-sm font-medium text-foreground"},"任务状态"),s("p",{class:"mt-1 text-xs text-muted-foreground"},"注册与刷新任务的状态与日志")],-1)),s("div",$o,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-muted-foreground transition-colors hover:border-primary hover:text-primary",disabled:!q.value.length&&!Q.value.length&&!c.value&&!f.value&&!y.value,onClick:jt}," 清空日志 ",8,Ro),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Vt}," 关闭 ")])]),s("div",Vo,[y.value?(r(),l("div",jo,n(y.value),1)):m("",!0),c.value||f.value?(r(),l("div",Mo,[c.value?(r(),l("div",Do,[t[55]||(t[55]=s("div",{class:"font-medium text-foreground"},"注册任务",-1)),s("div",Oo,[s("span",null,"状态:"+n(_t(c.value.status)),1),s("span",null,"进度:"+n(c.value.progress)+"/"+n(c.value.count),1),s("span",null,"成功:"+n(c.value.success_count),1),s("span",null,"失败:"+n(c.value.fail_count),1)])])):m("",!0),f.value?(r(),l("div",Bo,[t[56]||(t[56]=s("div",{class:"font-medium text-foreground"},"刷新任务",-1)),s("div",No,[s("span",null,"状态:"+n(_t(f.value.status)),1),s("span",null,"进度:"+n(f.value.progress)+"/"+n(f.value.account_ids.length),1),s("span",null,"成功:"+n(f.value.success_count),1),s("span",null,"失败:"+n(f.value.fail_count),1)])])):m("",!0)])):m("",!0),q.value.length||Q.value.length?(r(),l("div",Uo,[s("div",{ref_key:"taskLogsRef",ref:Xe,class:"scrollbar-slim flex-1 overflow-y-auto rounded-2xl border border-border bg-muted/30 p-3"},[q.value.length?(r(),l("div",zo,[t[57]||(t[57]=s("p",{class:"text-xs font-semibold text-foreground"},"注册日志",-1)),s("div",Po,[(r(!0),l(ge,null,Ve(q.value,(o,i)=>(r(),l("div",{key:`reg-${i}`,class:"font-mono"},n(vt(o)),1))),128))])])):m("",!0),Q.value.length?(r(),l("div",Fo,[t[58]||(t[58]=s("p",{class:"text-xs font-semibold text-foreground"},"刷新日志",-1)),s("div",Ko,[(r(!0),l(ge,null,Ve(Q.value,(o,i)=>(r(),l("div",{key:`login-${i}`,class:"font-mono"},n(vt(o)),1))),128))])])):m("",!0)],512)])):m("",!0),!y.value&&!c.value&&!f.value&&!q.value.length&&!Q.value.length?(r(),l("div",Ho," 暂无任务 ")):m("",!0)])])])):m("",!0)])),(r(),Re(je,{to:"body"},[ne.value?(r(),l("div",Jo,[s("div",Go,[s("div",{class:"flex items-center justify-between"},[t[59]||(t[59]=s("p",{class:"text-sm font-medium text-foreground"},"编辑账号",-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Pe}," 关闭 ")]),u.value?(r(),l("div",Yo,n(u.value),1)):m("",!0),s("div",qo,[t[60]||(t[60]=s("label",{class:"block text-xs text-muted-foreground"},"账号 ID",-1)),A(s("input",{"onUpdate:modelValue":t[20]||(t[20]=o=>_.value.id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",disabled:""},null,512),[[$,_.value.id]]),t[61]||(t[61]=s("label",{class:"block text-xs text-muted-foreground"},"secure_c_ses",-1)),A(s("textarea",{"onUpdate:modelValue":t[21]||(t[21]=o=>_.value.secure_c_ses=o),class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",rows:"3"},null,512),[[$,_.value.secure_c_ses]]),t[62]||(t[62]=s("label",{class:"block text-xs text-muted-foreground"},"csesidx",-1)),A(s("input",{"onUpdate:modelValue":t[22]||(t[22]=o=>_.value.csesidx=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,_.value.csesidx]]),t[63]||(t[63]=s("label",{class:"block text-xs text-muted-foreground"},"config_id",-1)),A(s("input",{"onUpdate:modelValue":t[23]||(t[23]=o=>_.value.config_id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,_.value.config_id]]),t[64]||(t[64]=s("label",{class:"block text-xs text-muted-foreground"},"host_c_oses",-1)),A(s("input",{"onUpdate:modelValue":t[24]||(t[24]=o=>_.value.host_c_oses=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,_.value.host_c_oses]]),t[65]||(t[65]=s("label",{class:"block text-xs text-muted-foreground"},"expires_at",-1)),A(s("input",{"onUpdate:modelValue":t[25]||(t[25]=o=>_.value.expires_at=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"2025-12-23 10:59:21"},null,512),[[$,_.value.expires_at]])]),s("div",{class:"mt-6 flex items-center justify-end gap-2"},[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Pe}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Jt}," 保存 ")])])])):m("",!0)])),(r(),Re(je,{to:"body"},[j.value?(r(),l("div",Qo,[s("div",Xo,[s("div",Wo,[t[66]||(t[66]=s("p",{class:"text-sm font-medium text-foreground"},"账户配置(JSON)",-1)),s("div",Zo,[s("button",{class:"rounded-full bg-foreground px-3 py-1 text-xs text-background transition-opacity hover:opacity-90",onClick:Kt},n(B.value?"显示原文":"脱敏显示"),1),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:ze}," 关闭 ")])]),M.value?(r(),l("div",er,n(M.value),1)):m("",!0),s("div",tr,[A(s("textarea",{"onUpdate:modelValue":t[26]||(t[26]=o=>ee.value=o),class:"h-96 w-full rounded-2xl border border-input bg-background px-4 py-3 font-mono text-xs text-foreground",spellcheck:"false",readonly:B.value},null,8,sr),[[$,ee.value]])]),s("div",or,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:ze}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Ht,disabled:B.value}," 保存 ",8,rr)])])])):m("",!0)]))],64))}});export{cr as default}; diff --git a/static/assets/Accounts-CWTZ3Utf.js b/static/assets/Accounts-CWTZ3Utf.js new file mode 100644 index 0000000000000000000000000000000000000000..f528f6052d9b5c6254d411b015e8a230182b24d2 --- /dev/null +++ b/static/assets/Accounts-CWTZ3Utf.js @@ -0,0 +1 @@ +import{g as b,C as Qe,h as d,d as qe,D as Ge,i as ne,o as Ke,j as We,c as l,a as s,x as R,y as Ce,m as C,v as V,b as g,A as Xe,t as r,n as h,u as $,F as le,r as Ve,f as $e,T as Ae,w as A,e as n}from"./index-gD6QQiOu.js";import{_ as Ye}from"./SelectMenu.vue_vue_type_script_setup_true_lang-B2Zu3W0l.js";import{_ as Y}from"./Checkbox.vue_vue_type_script_setup_true_lang-DT0LWHxC.js";import{_ as Ze}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-D2ZZ5gFD.js";import{u as et}from"./useConfirmDialog-DEfIwwMt.js";import{_ as tt}from"./HelpTip.vue_vue_type_script_setup_true_lang-Cur056hv.js";const x={list:()=>b.get("/admin/accounts"),getConfig:()=>b.get("/admin/accounts-config"),updateConfig:u=>b.put("/admin/accounts-config",u),delete:u=>b.delete(`/admin/accounts/${u}`),disable:u=>b.put(`/admin/accounts/${u}/disable`),enable:u=>b.put(`/admin/accounts/${u}/enable`),startRegister:(u,m)=>b.post("/admin/register/start",{count:u,domain:m}),getRegisterTask:u=>b.get(`/admin/register/task/${u}`),getRegisterCurrent:()=>b.get("/admin/register/current"),startLogin:u=>b.post("/admin/login/start",u),getLoginTask:u=>b.get(`/admin/login/task/${u}`),getLoginCurrent:()=>b.get("/admin/login/current"),checkLogin:()=>b.post("/admin/login/check")},st=Qe("accounts",()=>{const u=d([]),m=d(!1);async function w(){m.value=!0;try{const a=await x.list();u.value=Array.isArray(a)?a:a.accounts||[]}finally{m.value=!1}}async function I(a){await x.delete(a),await w()}async function f(a){await x.disable(a),await w()}async function M(a){await x.enable(a),await w()}async function j(a){await Promise.all(a.map(S=>x.enable(S))),await w()}async function c(a){await Promise.all(a.map(S=>x.disable(S))),await w()}async function E(a){await Promise.all(a.map(S=>x.delete(S))),await w()}async function O(a){await x.updateConfig(a),await w()}return{accounts:u,isLoading:m,loadAccounts:w,deleteAccount:I,disableAccount:f,enableAccount:M,bulkEnable:j,bulkDisable:c,bulkDelete:E,updateConfig:O}}),ot={class:"space-y-8"},rt={class:"rounded-3xl border border-border bg-card p-6"},nt={class:"flex flex-wrap items-center justify-between gap-4"},lt={class:"grid w-full grid-cols-2 gap-3 sm:flex sm:w-auto sm:items-center"},at={class:"flex w-full flex-wrap items-center gap-3 text-xs text-muted-foreground sm:w-auto sm:flex-nowrap"},it={key:0},dt={class:"ml-auto flex items-center gap-2 sm:ml-0"},ut={class:"mt-4 flex flex-wrap items-center gap-3"},ct=["disabled"],pt=["disabled"],xt=["disabled"],mt=["disabled"],ft={class:"mt-4 rounded-2xl border border-border bg-background p-4"},vt={class:"flex flex-wrap items-center gap-3"},bt={class:"flex flex-wrap items-center gap-2 text-xs text-muted-foreground"},gt=["disabled"],yt=["disabled"],_t=["disabled"],ht={key:0,class:"mt-3 rounded-2xl bg-destructive/10 px-3 py-2 text-xs text-destructive"},wt={key:1,class:"mt-3 grid gap-2 text-xs text-muted-foreground"},kt={key:0},Ct={class:"ml-2"},Vt={class:"ml-2"},$t={class:"ml-2"},At={class:"ml-2"},St={key:1},Tt={class:"ml-2"},Dt={class:"ml-2"},Lt={class:"ml-2"},Et={class:"ml-2"},Ut={key:0,class:"mt-6 grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3"},Rt=["onClick"],jt={class:"flex items-start justify-between gap-3"},zt={class:"mt-1 font-mono text-xs text-foreground"},Nt={class:"flex items-center gap-2"},Bt={class:"mt-4 grid grid-cols-2 gap-3 text-xs text-muted-foreground"},It={key:0,class:"mt-1 text-[11px]"},Mt={key:0},Ot={key:1},Pt={class:"mt-1 text-sm font-semibold text-foreground"},Ft={class:"mt-1 text-sm font-semibold text-foreground"},Jt={class:"mt-4 flex flex-wrap items-center gap-2"},Ht=["onClick"],Qt=["onClick"],qt=["onClick"],Gt=["onClick"],Kt={key:0,class:"rounded-2xl border border-border bg-background p-4 text-center text-xs text-muted-foreground"},Wt={key:1,class:"relative mt-6 overflow-x-auto overflow-y-visible"},Xt={class:"min-w-full text-left text-sm"},Yt={class:"text-xs uppercase tracking-[0.2em] text-muted-foreground"},Zt={class:"py-3 pr-4"},es={class:"py-3 pr-6"},ts={class:"inline-flex items-center gap-2"},ss={class:"text-sm text-foreground"},os={key:0},rs=["onClick"],ns={class:"py-4 pr-6 font-mono text-xs text-foreground"},ls={class:"py-4 pr-6"},as={class:"py-4 pr-6"},is={key:0,class:"block text-[11px] text-muted-foreground"},ds={class:"py-4 pr-6 text-xs"},us={class:"py-4 pr-6 text-xs text-muted-foreground"},cs={class:"py-4 pr-6 text-xs text-muted-foreground"},ps={class:"py-4 text-right"},xs={class:"flex flex-wrap justify-end gap-2"},ms=["onClick"],fs=["onClick"],vs=["onClick"],bs=["onClick"],gs={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ys={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},_s={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},hs={class:"mt-4 space-y-3 text-sm"},ws={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ks={class:"w-full max-w-3xl rounded-3xl border border-border bg-card p-6 shadow-xl"},Cs={class:"flex items-center justify-between"},Vs={class:"flex items-center gap-2"},$s={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},As={class:"mt-4"},Ss=["readonly"],Ts={class:"mt-6 flex items-center justify-end gap-2"},Ds=["disabled"],Ns=qe({__name:"Accounts",setup(u){const m=st(),{accounts:w,isLoading:I}=Ge(m),f=et(),M=d(""),j=d("all"),c=d(new Set),E=d("table"),O=d(!1),a=d(""),S=d(!1),T=d(""),z=d(""),D=d(!1),P=d([]),F=d(1),Z=d(""),_=d(null),v=d(null),N=d(!1),k=d(!1),y=d(""),p=d({id:"",secure_c_ses:"",csesidx:"",config_id:"",host_c_oses:"",expires_at:""}),H=d(null),ae=d([]),Se=[{label:"全部状态",value:"all"},{label:"正常",value:"正常"},{label:"即将过期",value:"即将过期"},{label:"已过期",value:"已过期"},{label:"手动禁用",value:"手动禁用"},{label:"错误禁用",value:"错误禁用"},{label:"429限流",value:"429限流"}],L=ne(()=>{const t=M.value.trim().toLowerCase();return w.value.filter(e=>{const o=!t||e.id.toLowerCase().includes(t),i=j.value==="all"||J(e)===j.value;return o&&i})}),B=ne(()=>c.value.size),ee=ne(()=>L.value.length>0&&L.value.every(t=>c.value.has(t.id))),Q=async()=>{await m.loadAccounts(),c.value=new Set};Ke(async()=>{await Q(),await Pe()}),We(()=>{W(),X()});const J=t=>t.cooldown_reason?.includes("429")&&t.cooldown_seconds>0?"429限流":t.cooldown_reason==="错误禁用"?"错误禁用":t.disabled?"手动禁用":t.status==="已过期"?"已过期":t.status==="即将过期"?"即将过期":"正常",ie=t=>{const e=J(t);return e==="429限流"||e==="即将过期"?"bg-amber-200 text-amber-900":e==="错误禁用"||e==="已过期"?"bg-destructive/10 text-destructive":e==="手动禁用"?"bg-muted text-muted-foreground":"bg-emerald-500 text-white"},de=t=>t.cooldown_reason?.includes("429")&&t.cooldown_seconds>0?!0:t.disabled||t.cooldown_reason==="错误禁用",ue=t=>t==="已过期"?"过期":t==="未设置"?"未设置":t,ce=t=>t.status==="已过期"?"text-rose-600":t.status==="即将过期"?"text-amber-700":t.status==="未设置"?"text-muted-foreground":"text-emerald-600",pe=t=>t<60?`${t} 秒`:t<3600?`${Math.ceil(t/60)} 分钟`:`${(t/3600).toFixed(1)} 小时`,te=t=>t.cooldown_seconds>0?"text-amber-700":t.cooldown_reason==="错误禁用"?"text-rose-600":"text-muted-foreground",xe=t=>{const e=J(t);return e==="手动禁用"||e==="已过期"?"bg-muted/70":""},q=t=>{const e=new Set(c.value);e.has(t)?e.delete(t):e.add(t),c.value=e},me=()=>{if(ee.value){c.value=new Set;return}c.value=new Set(L.value.map(t=>t.id))},Te=(t,e)=>t.id||`account_${e+1}`,De=async()=>(await x.getConfig()).accounts.map((e,o)=>({...e,id:Te(e,o)})),Le=(t,e)=>{let o=-1;for(let U=0;U{a.value="";try{const e=await De();Le(e,t)}catch(e){a.value=e.message||"加载账号配置失败"}},Ee=async()=>{T.value="";try{const t=await x.getConfig();P.value=Array.isArray(t.accounts)?t.accounts:[],z.value=JSON.stringify(be(P.value),null,2),D.value=!0,S.value=!0}catch(t){T.value=t.message||"加载账号配置失败"}},se=()=>{S.value=!1,T.value="",D.value=!1},ve=()=>{const t=JSON.parse(z.value);if(!Array.isArray(t))throw new Error("配置格式必须是数组。");return t},Ue=t=>typeof t!="string"||!t?t:t.length<=6?`${t.slice(0,2)}****`:`${t.slice(0,3)}****`,be=t=>{const e=new Set(["secure_c_ses","csesidx","config_id","host_c_oses","mail_password"]);return t.map(o=>{const i={...o};return e.forEach(U=>{const ke=i[U];ke&&(i[U]=Ue(ke))}),i})},Re=()=>{if(T.value="",!D.value){try{P.value=ve()}catch(t){T.value=t.message||"JSON 格式错误";return}z.value=JSON.stringify(be(P.value),null,2),D.value=!0;return}z.value=JSON.stringify(P.value,null,2),D.value=!1},je=async()=>{T.value="";try{const t=ve();await m.updateConfig(t),se()}catch(t){T.value=t.message||"保存失败"}},oe=()=>{O.value=!1,a.value=""},ze=async()=>{if(H.value===null)return;const t=[...ae.value];t[H.value]={...t[H.value],id:p.value.id,secure_c_ses:p.value.secure_c_ses,csesidx:p.value.csesidx,config_id:p.value.config_id,host_c_oses:p.value.host_c_oses||void 0,expires_at:p.value.expires_at||void 0};try{await m.updateConfig(t),oe()}catch(e){a.value=e.message||"保存失败"}},Ne=async()=>{await m.bulkEnable(Array.from(c.value)),c.value=new Set},Be=async()=>{await f.ask({title:"批量禁用",message:"确定要批量禁用选中的账号吗?"})&&(await m.bulkDisable(Array.from(c.value)),c.value=new Set)},Ie=async()=>{await f.ask({title:"批量删除",message:"确定要批量删除选中的账号吗?",confirmText:"删除"})&&(await m.bulkDelete(Array.from(c.value)),c.value=new Set)},ge=async t=>{await m.enableAccount(t)},ye=async t=>{await f.ask({title:"禁用账号",message:"确定要禁用该账号吗?"})&&await m.disableAccount(t)},_e=async t=>{await f.ask({title:"删除账号",message:"确定要删除该账号吗?",confirmText:"删除"})&&await m.deleteAccount(t)};let G=null,K=null;const W=()=>{G!==null&&(window.clearInterval(G),G=null)},X=()=>{K!==null&&(window.clearInterval(K),K=null)},he=t=>t==="pending"?"等待中":t==="running"?"执行中":t==="success"?"成功":t==="failed"?"失败":t,Me=async t=>{const e=await x.getRegisterTask(t);_.value=e,e.status!=="running"&&e.status!=="pending"&&(N.value=!1,W(),await Q())},Oe=async t=>{const e=await x.getLoginTask(t);v.value=e,e.status!=="running"&&e.status!=="pending"&&(k.value=!1,X(),await Q())},we=t=>{W(),G=window.setInterval(()=>{Me(t).catch(e=>{y.value=e?.message||"注册任务更新失败",W(),N.value=!1})},3e3)},re=t=>{X(),K=window.setInterval(()=>{Oe(t).catch(e=>{y.value=e?.message||"刷新任务更新失败",X(),k.value=!1})},3e3)},Pe=async()=>{try{const t=await x.getRegisterCurrent();t&&"id"in t?(_.value=t,(t.status==="running"||t.status==="pending")&&(N.value=!0,we(t.id))):_.value=null}catch(t){y.value=t.message||"加载注册任务失败"}try{const t=await x.getLoginCurrent();t&&"id"in t?(v.value=t,(t.status==="running"||t.status==="pending")&&(k.value=!0,re(t.id))):v.value=null}catch(t){y.value=t.message||"加载刷新任务失败"}},Fe=async()=>{y.value="",N.value=!0;const t=Z.value.trim();try{const e=Number.isFinite(F.value)&&F.value>0?F.value:void 0,o=await x.startRegister(e,t||void 0);_.value=o,we(o.id)}catch(e){y.value=e.message||"启动注册失败",N.value=!1}},Je=async()=>{if(c.value.size){y.value="",k.value=!0;try{const t=await x.startLogin(Array.from(c.value));v.value=t,re(t.id)}catch(t){y.value=t.message||"启动刷新失败",k.value=!1}}},He=async()=>{y.value="",k.value=!0;try{await x.checkLogin();const t=await x.getLoginCurrent();if(t&&"id"in t){v.value=t,re(t.id);return}v.value=null,k.value=!1}catch(t){y.value=t.message||"触发刷新失败",k.value=!1}};return(t,e)=>(n(),l(le,null,[s("div",ot,[s("section",rt,[s("div",nt,[s("div",lt,[C(s("input",{"onUpdate:modelValue":e[0]||(e[0]=o=>M.value=o),type:"text",placeholder:"搜索账号 ID",class:"w-full rounded-full border border-input bg-background px-4 py-2 text-sm sm:w-48"},null,512),[[V,M.value]]),R(Ye,{modelValue:j.value,"onUpdate:modelValue":e[1]||(e[1]=o=>j.value=o),options:Se},null,8,["modelValue"])]),s("div",at,[R(Y,{modelValue:ee.value,"onUpdate:modelValue":me},{default:Xe(()=>[...e[18]||(e[18]=[$e(" 全选 ",-1)])]),_:1},8,["modelValue"]),s("span",null,"共 "+r(L.value.length)+" 个账号",1),B.value?(n(),l("span",it,"已选 "+r(B.value)+" 个",1)):g("",!0),s("div",dt,[s("button",{type:"button",class:h(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",E.value==="table"?"bg-accent text-accent-foreground":""]),onClick:e[2]||(e[2]=o=>E.value="table"),"aria-label":"列表视图"},[...e[19]||(e[19]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])],2),s("button",{type:"button",class:h(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",E.value==="card"?"bg-accent text-accent-foreground":""]),onClick:e[3]||(e[3]=o=>E.value="card"),"aria-label":"卡片视图"},[...e[20]||(e[20]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h7v6H4V6zm9 0h7v6h-7V6zM4 14h7v4H4v-4zm9 0h7v4h-7v-4z"})],-1)])],2)])])]),s("div",ut,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:Ee}," 账户配置 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:$(I),onClick:Q}," 刷新列表 ",8,ct),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:!B.value,onClick:Ne}," 批量启用 ",8,pt),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:!B.value,onClick:Be}," 批量禁用 ",8,xt),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-destructive transition-colors hover:border-destructive hover:text-destructive",disabled:!B.value,onClick:Ie}," 批量删除 ",8,mt)]),s("div",ft,[s("div",vt,[s("div",bt,[e[21]||(e[21]=s("span",{class:"text-foreground"},"自动注册",-1)),C(s("input",{"onUpdate:modelValue":e[4]||(e[4]=o=>F.value=o),type:"number",min:"1",class:"w-20 rounded-full border border-input bg-background px-3 py-1 text-xs"},null,512),[[V,F.value,void 0,{number:!0}]]),C(s("input",{"onUpdate:modelValue":e[5]||(e[5]=o=>Z.value=o),type:"text",class:"w-40 rounded-full border border-input bg-background px-3 py-1 text-xs",placeholder:"指定域名(可选)"},null,512),[[V,Z.value]])]),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:N.value,onClick:Fe}," 开始注册 ",8,gt),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:k.value,onClick:He}," 刷新过期 ",8,yt),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:!B.value||k.value,onClick:Je}," 刷新选中 ",8,_t)]),y.value?(n(),l("div",ht,r(y.value),1)):g("",!0),_.value||v.value?(n(),l("div",wt,[_.value?(n(),l("div",kt,[e[22]||(e[22]=s("span",{class:"font-medium text-foreground"},"注册任务",-1)),s("span",Ct,"状态:"+r(he(_.value.status)),1),s("span",Vt,"进度:"+r(_.value.progress)+"/"+r(_.value.count),1),s("span",$t,"成功:"+r(_.value.success_count),1),s("span",At,"失败:"+r(_.value.fail_count),1)])):g("",!0),v.value?(n(),l("div",St,[e[23]||(e[23]=s("span",{class:"font-medium text-foreground"},"刷新任务",-1)),s("span",Tt,"状态:"+r(he(v.value.status)),1),s("span",Dt,"进度:"+r(v.value.progress)+"/"+r(v.value.account_ids.length),1),s("span",Lt,"成功:"+r(v.value.success_count),1),s("span",Et,"失败:"+r(v.value.fail_count),1)])):g("",!0)])):g("",!0)]),E.value==="card"?(n(),l("div",Ut,[(n(!0),l(le,null,Ve(L.value,o=>(n(),l("div",{key:o.id,class:h(["rounded-2xl border border-border bg-card p-4",xe(o)]),onClick:i=>q(o.id)},[s("div",jt,[s("div",null,[e[24]||(e[24]=s("p",{class:"text-xs text-muted-foreground"},"账号 ID",-1)),s("p",zt,r(o.id),1)]),s("div",Nt,[R(Y,{modelValue:c.value.has(o.id),"onUpdate:modelValue":i=>q(o.id),onClick:e[6]||(e[6]=A(()=>{},["stop"]))},null,8,["modelValue","onUpdate:modelValue"]),s("span",{class:h(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",ie(o)])},r(J(o)),3)])]),s("div",Bt,[s("div",null,[e[25]||(e[25]=s("p",null,"剩余时间",-1)),s("p",{class:h(["mt-1 text-sm font-semibold",ce(o)])},r(ue(o.remaining_display)),3),o.expires_at?(n(),l("p",It,r(o.expires_at),1)):g("",!0)]),s("div",null,[e[26]||(e[26]=s("p",null,"冷却",-1)),s("p",{class:h(["mt-1",te(o)])},[o.cooldown_seconds>0?(n(),l("span",Mt,r(pe(o.cooldown_seconds))+" · "+r(o.cooldown_reason),1)):(n(),l("span",Ot,r(o.cooldown_reason||"无冷却"),1))],2)]),s("div",null,[e[27]||(e[27]=s("p",null,"失败数",-1)),s("p",Pt,r(o.error_count),1)]),s("div",null,[e[28]||(e[28]=s("p",null,"会话数",-1)),s("p",Ft,r(o.conversation_count),1)])]),s("div",Jt,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A(i=>fe(o.id),["stop"])}," 编辑 ",8,Ht),de(o)?(n(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[e[7]||(e[7]=A(()=>{},["stop"])),i=>ge(o.id)]}," 启用 ",8,Qt)):(n(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[e[8]||(e[8]=A(()=>{},["stop"])),i=>ye(o.id)]}," 禁用 ",8,qt)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:[e[9]||(e[9]=A(()=>{},["stop"])),i=>_e(o.id)]}," 删除 ",8,Gt)])],10,Rt))),128)),!L.value.length&&!$(I)?(n(),l("div",Kt," 暂无账号数据,请检查后台配置。 ")):g("",!0)])):(n(),l("div",Wt,[s("table",Xt,[s("thead",Yt,[s("tr",null,[s("th",Zt,[R(Y,{modelValue:ee.value,"onUpdate:modelValue":me},null,8,["modelValue"])]),e[30]||(e[30]=s("th",{class:"py-3 pr-6"},"账号 ID",-1)),e[31]||(e[31]=s("th",{class:"py-3 pr-6"},"状态",-1)),s("th",es,[s("span",ts,[e[29]||(e[29]=$e(" 剩余/过期 ",-1)),R(tt,{text:"过期时间为 12 小时,账户过期以北京时间为准。"})])]),e[32]||(e[32]=s("th",{class:"py-3 pr-6"},"冷却",-1)),e[33]||(e[33]=s("th",{class:"py-3 pr-6"},"失败数",-1)),e[34]||(e[34]=s("th",{class:"py-3 pr-6"},"会话数",-1)),e[35]||(e[35]=s("th",{class:"py-3 text-right"},"操作",-1))])]),s("tbody",ss,[!L.value.length&&!$(I)?(n(),l("tr",os,[...e[36]||(e[36]=[s("td",{colspan:"8",class:"py-8 text-center text-muted-foreground"}," 暂无账号数据,请检查后台配置。 ",-1)])])):g("",!0),(n(!0),l(le,null,Ve(L.value,o=>(n(),l("tr",{key:o.id,class:h(["border-t border-border",xe(o)]),onClick:i=>q(o.id)},[s("td",{class:"py-4 pr-4",onClick:e[10]||(e[10]=A(()=>{},["stop"]))},[R(Y,{modelValue:c.value.has(o.id),"onUpdate:modelValue":i=>q(o.id)},null,8,["modelValue","onUpdate:modelValue"])]),s("td",ns,r(o.id),1),s("td",ls,[s("span",{class:h(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",ie(o)])},r(J(o)),3)]),s("td",as,[s("div",{class:h(["text-sm font-semibold",ce(o)])},r(ue(o.remaining_display)),3),o.expires_at?(n(),l("span",is,r(o.expires_at),1)):g("",!0)]),s("td",ds,[o.cooldown_seconds>0?(n(),l("span",{key:0,class:h(te(o))},r(pe(o.cooldown_seconds))+" · "+r(o.cooldown_reason),3)):(n(),l("span",{key:1,class:h(te(o))},r(o.cooldown_reason||"无冷却"),3))]),s("td",us,r(o.error_count),1),s("td",cs,r(o.conversation_count),1),s("td",ps,[s("div",xs,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A(i=>fe(o.id),["stop"])}," 编辑 ",8,ms),de(o)?(n(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A(i=>ge(o.id),["stop"])}," 启用 ",8,fs)):(n(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A(i=>ye(o.id),["stop"])}," 禁用 ",8,vs)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:A(i=>_e(o.id),["stop"])}," 删除 ",8,bs)])])],10,rs))),128))])])]))])]),R(Ze,{open:$(f).open.value,title:$(f).title.value,message:$(f).message.value,"confirm-text":$(f).confirmText.value,"cancel-text":$(f).cancelText.value,onConfirm:$(f).confirm,onCancel:$(f).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(n(),Ce(Ae,{to:"body"},[O.value?(n(),l("div",gs,[s("div",ys,[s("div",{class:"flex items-center justify-between"},[e[37]||(e[37]=s("p",{class:"text-sm font-medium text-foreground"},"编辑账号",-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:oe}," 关闭 ")]),a.value?(n(),l("div",_s,r(a.value),1)):g("",!0),s("div",hs,[e[38]||(e[38]=s("label",{class:"block text-xs text-muted-foreground"},"账号 ID",-1)),C(s("input",{"onUpdate:modelValue":e[11]||(e[11]=o=>p.value.id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",disabled:""},null,512),[[V,p.value.id]]),e[39]||(e[39]=s("label",{class:"block text-xs text-muted-foreground"},"secure_c_ses",-1)),C(s("textarea",{"onUpdate:modelValue":e[12]||(e[12]=o=>p.value.secure_c_ses=o),class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",rows:"3"},null,512),[[V,p.value.secure_c_ses]]),e[40]||(e[40]=s("label",{class:"block text-xs text-muted-foreground"},"csesidx",-1)),C(s("input",{"onUpdate:modelValue":e[13]||(e[13]=o=>p.value.csesidx=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,p.value.csesidx]]),e[41]||(e[41]=s("label",{class:"block text-xs text-muted-foreground"},"config_id",-1)),C(s("input",{"onUpdate:modelValue":e[14]||(e[14]=o=>p.value.config_id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,p.value.config_id]]),e[42]||(e[42]=s("label",{class:"block text-xs text-muted-foreground"},"host_c_oses",-1)),C(s("input",{"onUpdate:modelValue":e[15]||(e[15]=o=>p.value.host_c_oses=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,p.value.host_c_oses]]),e[43]||(e[43]=s("label",{class:"block text-xs text-muted-foreground"},"expires_at",-1)),C(s("input",{"onUpdate:modelValue":e[16]||(e[16]=o=>p.value.expires_at=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"2025-12-23 10:59:21"},null,512),[[V,p.value.expires_at]])]),s("div",{class:"mt-6 flex items-center justify-end gap-2"},[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:oe}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:ze}," 保存 ")])])])):g("",!0)])),(n(),Ce(Ae,{to:"body"},[S.value?(n(),l("div",ws,[s("div",ks,[s("div",Cs,[e[44]||(e[44]=s("p",{class:"text-sm font-medium text-foreground"},"账户配置(JSON)",-1)),s("div",Vs,[s("button",{class:"rounded-full bg-foreground px-3 py-1 text-xs text-background transition-opacity hover:opacity-90",onClick:Re},r(D.value?"显示原文":"脱敏显示"),1),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:se}," 关闭 ")])]),T.value?(n(),l("div",$s,r(T.value),1)):g("",!0),s("div",As,[C(s("textarea",{"onUpdate:modelValue":e[17]||(e[17]=o=>z.value=o),class:"h-96 w-full rounded-2xl border border-input bg-background px-4 py-3 font-mono text-xs text-foreground",spellcheck:"false",readonly:D.value},null,8,Ss),[[V,z.value]])]),s("div",Ts,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:se}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:je,disabled:D.value}," 保存 ",8,Ds)])])])):g("",!0)]))],64))}});export{Ns as default}; diff --git a/static/assets/Accounts-CgsggPDB.js b/static/assets/Accounts-CgsggPDB.js new file mode 100644 index 0000000000000000000000000000000000000000..9e43af84500199d183119679d946162218daff68 --- /dev/null +++ b/static/assets/Accounts-CgsggPDB.js @@ -0,0 +1,2 @@ +import{g as E,D as os,h as i,d as rs,E as ls,i as J,o as ns,A as as,j as is,c as n,a as s,p as G,m as Re,q as R,v as V,s as $t,t as a,n as x,u as j,b as g,f as ee,F as ge,r as Ve,x as je,G as ds,w as M,e as l,H as us}from"./index-BRM37S6x.js";import{_ as cs}from"./SelectMenu.vue_vue_type_script_setup_true_lang-CeWkosco.js";import{_ as be}from"./Checkbox.vue_vue_type_script_setup_true_lang-BBcv-AYv.js";import{_ as fs}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-C9Wgr_sd.js";import{u as vs}from"./useConfirmDialog-BaiXrQSU.js";import{_ as ms}from"./HelpTip.vue_vue_type_script_setup_true_lang-DJyeZS9P.js";const w={list:()=>E.get("/admin/accounts"),getConfig:()=>E.get("/admin/accounts-config"),updateConfig:y=>E.put("/admin/accounts-config",y),delete:y=>E.delete(`/admin/accounts/${y}`),disable:y=>E.put(`/admin/accounts/${y}/disable`),enable:y=>E.put(`/admin/accounts/${y}/enable`),startRegister:(y,k)=>E.post("/admin/register/start",{count:y,domain:k}),getRegisterTask:y=>E.get(`/admin/register/task/${y}`),getRegisterCurrent:()=>E.get("/admin/register/current"),startLogin:y=>E.post("/admin/login/start",y),getLoginTask:y=>E.get(`/admin/login/task/${y}`),getLoginCurrent:()=>E.get("/admin/login/current"),checkLogin:()=>E.post("/admin/login/check")},xs=os("accounts",()=>{const y=i([]),k=i(!1);async function A(){k.value=!0;try{const p=await w.list();y.value=Array.isArray(p)?p:p.accounts||[]}finally{k.value=!1}}async function ne(p){await w.delete(p),await A()}async function T(p){await w.disable(p),await A()}async function d(p){await w.enable(p),await A()}async function ae(p){await Promise.all(p.map($=>w.enable($))),await A()}async function te(p){await Promise.all(p.map($=>w.disable($))),await A()}async function b(p){await Promise.all(p.map($=>w.delete($))),await A()}async function Y(p){await w.updateConfig(p),await A()}return{accounts:y,isLoading:k,loadAccounts:A,deleteAccount:ne,disableAccount:T,enableAccount:d,bulkEnable:ae,bulkDisable:te,bulkDelete:b,updateConfig:Y}}),ps={class:"space-y-8"},gs={class:"rounded-3xl border border-border bg-card p-6"},bs={class:"flex flex-wrap items-center justify-between gap-4"},ys={class:"grid w-full grid-cols-2 gap-3 sm:flex sm:w-auto sm:items-center"},_s={class:"flex w-full flex-wrap items-center gap-3 text-xs text-muted-foreground sm:w-auto sm:flex-nowrap"},hs={class:"ml-auto flex items-center gap-2 sm:ml-0"},ws={class:"mt-4 flex flex-wrap items-center gap-2"},ks=["disabled"],Cs=["disabled"],Ts={key:0,class:"absolute right-0 z-10 mt-2 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg"},Ss=["disabled"],$s=["disabled"],Is=["disabled"],Es=["disabled"],Ls=["disabled"],As={key:0,class:"mt-6 grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3"},Rs=["onClick"],Vs={class:"flex items-start justify-between gap-3"},js={class:"mt-1 font-mono text-xs text-foreground"},Ms={class:"flex items-center gap-2"},Ds={class:"mt-4 grid grid-cols-2 gap-3 text-xs text-muted-foreground"},Os={key:0,class:"mt-1 text-[11px]"},Bs={key:0},Ns={key:1},Us={class:"mt-1 text-sm font-semibold text-foreground"},zs={class:"mt-1 text-sm font-semibold text-foreground"},Ps={class:"mt-4 flex flex-wrap items-center gap-2"},Fs=["onClick"],Hs=["onClick"],Ks=["onClick"],Js=["onClick"],Gs={key:0,class:"rounded-2xl border border-border bg-background p-4 text-center text-xs text-muted-foreground"},Ys={key:1,class:"relative mt-6 overflow-x-auto overflow-y-visible"},qs={class:"min-w-full text-left text-sm"},Qs={class:"text-xs uppercase tracking-[0.2em] text-muted-foreground"},Xs={class:"py-3 pr-4"},Ws={class:"py-3 pr-6"},Zs={class:"inline-flex items-center gap-2"},eo={class:"text-sm text-foreground"},to={key:0},so=["onClick"],oo={class:"py-4 pr-6 font-mono text-xs text-foreground"},ro={class:"py-4 pr-6"},lo={class:"py-4 pr-6"},no={key:0,class:"block text-[11px] text-muted-foreground"},ao={class:"py-4 pr-6 text-xs"},io={class:"py-4 pr-6 text-xs text-muted-foreground"},uo={class:"py-4 pr-6 text-xs text-muted-foreground"},co={class:"py-4 text-right"},fo={class:"flex flex-wrap justify-end gap-2"},vo=["onClick"],mo=["onClick"],xo=["onClick"],po=["onClick"],go={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},bo={class:"flex max-h-[90vh] w-full max-w-lg flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},yo={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},_o={class:"mt-1 text-xs text-muted-foreground"},ho={class:"scrollbar-slim flex-1 overflow-y-auto px-6 py-4"},wo={class:"space-y-4 text-sm"},ko={class:"flex rounded-full border border-border bg-muted/30 p-1 text-xs"},Co={key:0,class:"space-y-4"},To={key:1,class:"space-y-4"},So={key:0,class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-xs text-rose-600"},$o={class:"border-t border-border/60 px-6 py-4"},Io={class:"flex items-center justify-end gap-2"},Eo=["disabled"],Lo=["disabled"],Ao={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Ro={class:"flex h-[80vh] w-full max-w-2xl flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},Vo={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},jo={class:"flex items-center gap-2"},Mo=["disabled"],Do={class:"flex min-h-0 flex-1 flex-col px-6 py-4"},Oo={key:0,class:"rounded-2xl bg-destructive/10 px-3 py-2 text-xs text-destructive"},Bo={key:1,class:"grid gap-3 text-xs text-muted-foreground"},No={key:0,class:"space-y-1"},Uo={class:"flex items-center gap-2 font-medium text-foreground"},zo={class:"flex flex-wrap gap-x-4 gap-y-1"},Po={key:1,class:"space-y-1"},Fo={class:"flex items-center gap-2 font-medium text-foreground"},Ho={class:"flex flex-wrap gap-x-4 gap-y-1"},Ko={key:2,class:"mt-4 flex min-h-0 flex-1 flex-col"},Jo={key:0,class:"space-y-2"},Go={class:"space-y-1 text-[11px] text-muted-foreground"},Yo={key:1,class:"mt-4 space-y-2"},qo={class:"space-y-1 text-[11px] text-muted-foreground"},Qo={key:3,class:"mt-4 rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},Xo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Wo={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},Zo={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},er={class:"mt-4 space-y-3 text-sm"},tr={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},sr={class:"w-full max-w-3xl rounded-3xl border border-border bg-card p-6 shadow-xl"},or={class:"flex items-center justify-between"},rr={class:"flex items-center gap-2"},lr={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},nr={class:"mt-4"},ar=["readonly"],ir={class:"mt-6 flex items-center justify-end gap-2"},dr=["disabled"],Je="accounts-register-task-cache",Ge="accounts-login-task-cache",Ye="accounts-register-log-clear",qe="accounts-login-log-clear",Qe="accounts-register-task-cleared-id",Xe="accounts-login-task-cleared-id",It="1970-01-01 00:00:00",pr=rs({__name:"Accounts",setup(y){const k=xs(),{accounts:A,isLoading:ne}=ls(k),T=vs(),d=ds(),ae=i(""),te=i("all"),b=i(new Set),Y=i("table"),p=i(!1),$=i(""),Me=i(!1),D=i(""),se=i(""),N=i(!1),ie=i([]),de=i(1),ye=i(!1),U=i("register"),ue=i(""),z=i(""),_e=i(!1),q=i(!1),P=i(!1),De=i(null),he=i(null),we=i(null),F=i(null),H=i(null),oe=i(0),re=i(0),ce=i(!1),c=i(null),f=i(null),We=i(null),O=i(!1),S=i(!1),_=i(""),h=i({id:"",secure_c_ses:"",csesidx:"",config_id:"",host_c_oses:"",expires_at:""}),ke=i(null),Ze=i([]),Et=[{label:"全部状态",value:"all"},{label:"正常",value:"正常"},{label:"即将过期",value:"即将过期"},{label:"已过期",value:"已过期"},{label:"手动禁用",value:"手动禁用"},{label:"错误禁用",value:"错误禁用"},{label:"429限流",value:"429限流"}],K=J(()=>{const t=ae.value.trim().toLowerCase();return A.value.filter(e=>{const o=!t||e.id.toLowerCase().includes(t),r=te.value==="all"||ve(e)===te.value;return o&&r})}),B=J(()=>b.value.size),Oe=J(()=>K.value.length>0&&K.value.every(t=>b.value.has(t.id))),fe=async()=>{await k.loadAccounts(),b.value=new Set,P.value=!1},et=t=>{try{const e=localStorage.getItem(t);return e?JSON.parse(e):null}catch{return null}},tt=t=>{try{return localStorage.getItem(t)||null}catch{return null}},Ce=(t,e)=>{try{if(e){localStorage.setItem(t,e);return}localStorage.removeItem(t)}catch{}},st=(t,e)=>{try{localStorage.setItem(t,JSON.stringify(e))}catch{}},ot=t=>{try{localStorage.removeItem(t)}catch{}},rt=t=>{const e=localStorage.getItem(t),o=Number(e);return Number.isFinite(o)?o:0},Te=(t,e)=>{try{localStorage.setItem(t,String(e))}catch{}},Be=(t,e=!0)=>{t&&(t.id&&t.id===F.value||(t.id&&F.value&&t.id!==F.value&&(F.value=null,Ce(Qe,null)),c.value=t,t.id&&t.id!==he.value&&(he.value=t.id,oe.value=0,Te(Ye,0)),e&&st(Je,t)))},Se=(t,e=!0)=>{t&&(t.id&&t.id===H.value||(t.id&&H.value&&t.id!==H.value&&(H.value=null,Ce(Xe,null)),f.value=t,t.id&&t.id!==we.value&&(we.value=t.id,re.value=0,Te(qe,0)),e&&st(Ge,t)))},Lt=()=>{oe.value=rt(Ye),re.value=rt(qe),F.value=tt(Qe),H.value=tt(Xe);const t=et(Je);t&&t.id!==F.value&&(c.value=t,he.value=t.id||null);const e=et(Ge);e&&e.id!==H.value&&(f.value=e,we.value=e.id||null)},At=()=>{ye.value=!0,U.value="register",ue.value="",z.value="",_e.value=!1,ce.value=!1},Ne=()=>{ye.value=!1},Rt=t=>{const e=[],o=[];return t.split(/\r?\n/).map(u=>u.trim()).filter(Boolean).forEach((u,m)=>{const v=u.split("----").map(I=>I.trim()),C=m+1;if(v.length){if(v[0].toLowerCase()==="duckmail"){if(v.length<3||!v[1]||!v[2]){o.push(`第 ${C} 行格式错误(duckmail)`);return}const I=v[1],Ae=v.slice(2).join("----");e.push({id:I,secure_c_ses:"",csesidx:"",config_id:"",expires_at:It,mail_provider:"duckmail",mail_address:I,mail_password:Ae});return}if(v.length>=4&&v[0]&&v[2]&&v[3]){const I=v[0],Ae=v[1]||"",L=v[2],ss=v.slice(3).join("----");e.push({id:I,secure_c_ses:"",csesidx:"",config_id:"",expires_at:It,mail_provider:"microsoft",mail_address:I,mail_password:Ae,mail_client_id:L,mail_refresh_token:ss,mail_tenant:"consumers"});return}o.push(`第 ${C} 行格式错误`)}}),{items:e,errors:o}},Vt=async()=>{if(z.value="",!ue.value.trim()){z.value="请输入导入内容";return}const{items:t,errors:e}=Rt(ue.value);if(!t.length){z.value=e.length?e.join(","):"未识别到有效账号";return}if(e.length){z.value=e.slice(0,3).join(",");return}_e.value=!0;try{const r=[...await vt()],u=new Map(r.map((C,I)=>[C.id,I])),m=[];t.forEach(C=>{const I=u.get(C.id||"");if(I===void 0){r.push(C),m.push(C.id);return}const L={...r[I],mail_provider:C.mail_provider,mail_address:C.mail_address};C.mail_provider==="microsoft"?(L.mail_client_id=C.mail_client_id,L.mail_refresh_token=C.mail_refresh_token,L.mail_tenant=C.mail_tenant,L.mail_password=C.mail_password):(L.mail_password=C.mail_password,L.mail_client_id=void 0,L.mail_refresh_token=void 0,L.mail_tenant=void 0),r[I]=L,m.push(C.id)}),await k.updateConfig(r),await fe(),b.value=new Set(m),d.success(`成功导入 ${m.length} 个账户`),Ne(),await T.ask({title:"导入成功",message:`已导入 ${m.length} 个账户并自动选中。是否立即刷新这些账户以获取 Cookie?`,confirmText:"立即刷新",cancelText:"稍后手动刷新"})&&await St()}catch(o){z.value=o.message||"导入失败",d.error(o.message||"导入失败")}finally{_e.value=!1}},jt=async()=>{try{const t=[],e=c.value?.id,o=f.value?.id;if(e&&!$e(e)&&t.push(kt(e)),o&&!Ie(o)&&t.push(Ct(o)),!t.length){await Ke();return}await Promise.all(t)}catch(t){_.value=t?.message||"任务状态更新失败"}},Ue=async()=>{q.value=!0,await jt()},Mt=()=>{q.value=!1},Dt=()=>{const t=c.value?.id||null,e=f.value?.id||null;F.value=t,H.value=e,Ce(Qe,t),Ce(Xe,e),oe.value=c.value?.logs?.length||0,re.value=f.value?.logs?.length||0,Te(Ye,oe.value),Te(qe,re.value),c.value=null,f.value=null,he.value=null,we.value=null,_.value="",O.value=!1,S.value=!1,W(),Z(),ot(Je),ot(Ge)},$e=t=>!!(t&&t===F.value),Ie=t=>!!(t&&t===H.value),Ot=()=>{P.value=!P.value},le=()=>{P.value=!1},lt=t=>{if(!P.value)return;const e=t.target;De.value&&!De.value.contains(e)&&(P.value=!1)};ns(async()=>{Lt(),await fe(),await Ke(),Zt(),document.addEventListener("click",lt)});const Q=J(()=>{const t=c.value?.logs||[];return oe.value?t.slice(oe.value):t}),X=J(()=>{const t=f.value?.logs||[];return re.value?t.slice(re.value):t}),Bt=J(()=>!!_.value||!!c.value||!!f.value||Q.value.length>0||X.value.length>0),Nt=async()=>{await us();const t=We.value;t&&(t.scrollTop=t.scrollHeight)};as([Q,X,q],async()=>{q.value&&await Nt()},{deep:!0});const Ut=J(()=>{const t=c.value?.status,e=f.value?.status;return t==="running"||t==="pending"||e==="running"||e==="pending"}),zt=J(()=>{if(_.value)return"bg-rose-500";if(Ut.value)return"bg-sky-400";const t=[];if(c.value){const u=c.value.success_count??0,m=c.value.fail_count??0,v=c.value.count??u+m;t.push({success:u,fail:m,total:v,status:c.value.status})}if(f.value){const u=f.value.success_count??0,m=f.value.fail_count??0,v=f.value.account_ids?.length??u+m;t.push({success:u,fail:m,total:v,status:f.value.status})}if(!t.length)return"bg-muted-foreground";const e=t.reduce((u,m)=>u+m.success,0),o=t.reduce((u,m)=>u+m.fail,0),r=t.reduce((u,m)=>u+(m.total||0),0);if(e>0&&o>0)return"bg-amber-400";if(o>0&&e===0)return"bg-rose-500";if(e>0&&o===0)return"bg-emerald-400";if(r===0){const u=t.every(v=>v.status==="success");if(t.some(v=>v.status==="failed"))return"bg-rose-500";if(u)return"bg-emerald-400"}return"bg-muted-foreground"});is(()=>{W(),Z(),Wt(),document.removeEventListener("click",lt)});const ve=t=>t.cooldown_reason?.includes("429")&&t.cooldown_seconds>0?"429限流":t.cooldown_reason==="错误禁用"?"错误禁用":t.disabled?"手动禁用":t.status==="已过期"?"已过期":t.status==="即将过期"?"即将过期":"正常",nt=t=>{const e=ve(t);return e==="429限流"||e==="即将过期"?"bg-amber-200 text-amber-900":e==="错误禁用"||e==="已过期"?"bg-destructive/10 text-destructive":e==="手动禁用"?"bg-muted text-muted-foreground":"bg-emerald-500 text-white"},at=t=>t.cooldown_reason?.includes("429")&&t.cooldown_seconds>0?!0:t.disabled||t.cooldown_reason==="错误禁用",it=t=>t==="已过期"?"过期":t==="未设置"?"未设置":t,dt=t=>t.status==="已过期"?"text-rose-600":t.status==="即将过期"?"text-amber-700":t.status==="未设置"?"text-muted-foreground":"text-emerald-600",ut=t=>t<60?`${t} 秒`:t<3600?`${Math.ceil(t/60)} 分钟`:`${(t/3600).toFixed(1)} 小时`,ze=t=>t.cooldown_seconds>0?"text-amber-700":t.cooldown_reason==="错误禁用"?"text-rose-600":"text-muted-foreground",ct=t=>{const e=ve(t);return e==="手动禁用"||e==="已过期"?"bg-muted/70":""},Ee=t=>{const e=new Set(b.value);e.has(t)?e.delete(t):e.add(t),b.value=e},ft=()=>{if(Oe.value){b.value=new Set;return}b.value=new Set(K.value.map(t=>t.id))},Pt=(t,e)=>t.id||`account_${e+1}`,vt=async()=>(await w.getConfig()).accounts.map((e,o)=>({...e,id:Pt(e,o)})),mt=t=>`${t.time} [${t.level}] ${t.message}`,Ft=(t,e)=>{let o=-1;for(let u=0;u{$.value="";try{const e=await vt();Ft(e,t)}catch(e){$.value=e.message||"加载账号配置失败"}},Ht=async()=>{D.value="";try{const t=await w.getConfig();ie.value=Array.isArray(t.accounts)?t.accounts:[],se.value=JSON.stringify(gt(ie.value),null,2),N.value=!0,Me.value=!0}catch(t){D.value=t.message||"加载账号配置失败"}},Pe=()=>{Me.value=!1,D.value="",N.value=!1},pt=()=>{const t=JSON.parse(se.value);if(!Array.isArray(t))throw new Error("配置格式必须是数组。");return t},Kt=t=>typeof t!="string"||!t?t:t.length<=6?`${t.slice(0,2)}****`:`${t.slice(0,3)}****`,gt=t=>{const e=new Set(["secure_c_ses","csesidx","config_id","host_c_oses","mail_password","mail_refresh_token","mail_client_id"]);return t.map(o=>{const r={...o};return e.forEach(u=>{const m=r[u];m&&(r[u]=Kt(m))}),r})},Jt=()=>{if(D.value="",!N.value){try{ie.value=pt()}catch(t){D.value=t.message||"JSON 格式错误";return}se.value=JSON.stringify(gt(ie.value),null,2),N.value=!0;return}se.value=JSON.stringify(ie.value,null,2),N.value=!1},Gt=async()=>{D.value="";try{const t=pt();await k.updateConfig(t),d.success("配置保存成功"),Pe()}catch(t){D.value=t.message||"保存失败",d.error(t.message||"保存失败")}},Fe=()=>{p.value=!1,$.value=""},Yt=async()=>{if(ke.value===null)return;const t=[...Ze.value];t[ke.value]={...t[ke.value],id:h.value.id,secure_c_ses:h.value.secure_c_ses,csesidx:h.value.csesidx,config_id:h.value.config_id,host_c_oses:h.value.host_c_oses||void 0,expires_at:h.value.expires_at||void 0};try{await k.updateConfig(t),d.success("账号编辑成功"),Fe()}catch(e){$.value=e.message||"保存失败",d.error(e.message||"保存失败")}},qt=async()=>{try{await k.bulkEnable(Array.from(b.value)),d.success("批量启用成功"),b.value=new Set}catch(t){d.error(t.message||"批量启用失败")}},Qt=async()=>{if(await T.ask({title:"批量禁用",message:"确定要批量禁用选中的账号吗?"}))try{await k.bulkDisable(Array.from(b.value)),d.success("批量禁用成功"),b.value=new Set}catch(e){d.error(e.message||"批量禁用失败")}},Xt=async()=>{if(await T.ask({title:"批量删除",message:"确定要批量删除选中的账号吗?",confirmText:"删除"}))try{await k.bulkDelete(Array.from(b.value)),d.success("批量删除成功"),b.value=new Set}catch(e){d.error(e.message||"批量删除失败")}},bt=async t=>{try{await k.enableAccount(t),d.success("账号已启用")}catch(e){d.error(e.message||"启用失败")}},yt=async t=>{if(await T.ask({title:"禁用账号",message:"确定要禁用该账号吗?"}))try{await k.disableAccount(t),d.success("账号已禁用")}catch(o){d.error(o.message||"禁用失败")}},_t=async t=>{if(await T.ask({title:"删除账号",message:"确定要删除该账号吗?",confirmText:"删除"}))try{await k.deleteAccount(t),d.success("账号已删除")}catch(o){d.error(o.message||"删除失败")}};let me=null,xe=null,pe=null,Le=!1;const W=()=>{me!==null&&(window.clearInterval(me),me=null)},Z=()=>{xe!==null&&(window.clearInterval(xe),xe=null)},Wt=()=>{pe!==null&&(window.clearInterval(pe),pe=null),Le=!1},ht=t=>t==="pending"?"等待中":t==="running"?"执行中":t==="success"?"成功":t==="failed"?"失败":t,wt=t=>{const e=t.status,o=t.success_count??0,r=t.fail_count??0;if(e==="running"||e==="pending")return"bg-sky-400";if(e==="success"||e==="failed"){if(o>0&&r===0)return"bg-emerald-400";if(r>0&&o===0)return"bg-rose-500";if(o>0&&r>0)return"bg-amber-400"}return"bg-muted-foreground"},kt=async t=>{if($e(t)){W();return}const e=await w.getRegisterTask(t);if($e(e.id)){W();return}if(Be(e),e.status!=="running"&&e.status!=="pending"){O.value=!1,W(),await fe();const o=e.success_count||0,r=e.fail_count||0;o>0&&r>0?d.success(`注册任务完成:成功 ${o},失败 ${r}`):o>0&&r===0?d.success(`注册任务完成:全部成功 (${o})`):r>0&&o===0?d.error(`注册任务完成:全部失败 (${r})`):d.error("注册任务失败")}},Ct=async t=>{if(Ie(t)){Z();return}const e=await w.getLoginTask(t);if(Ie(e.id)){Z();return}if(Se(e),e.status!=="running"&&e.status!=="pending"){S.value=!1,Z(),await fe();const o=e.success_count||0,r=e.fail_count||0;o>0&&r>0?d.success(`刷新任务完成:成功 ${o},失败 ${r}`):o>0&&r===0?d.success(`刷新任务完成:全部成功 (${o})`):r>0&&o===0?d.error(`刷新任务完成:全部失败 (${r})`):d.error("刷新任务失败")}},Tt=t=>{W(),me=window.setInterval(()=>{kt(t).catch(e=>{_.value=e?.message||"注册任务更新失败",W(),O.value=!1})},3e3)},He=t=>{Z(),xe=window.setInterval(()=>{Ct(t).catch(e=>{_.value=e?.message||"刷新任务更新失败",Z(),S.value=!1})},3e3)},Zt=()=>{pe===null&&(pe=window.setInterval(async()=>{if(!Le&&!q.value&&!(me!==null||xe!==null)&&!(!O.value&&!S.value&&!c.value&&!f.value)){Le=!0;try{await Ke()}catch(t){_.value=t?.message||"后台刷新失败"}finally{Le=!1}}},6e3))},Ke=async()=>{try{const t=await w.getRegisterCurrent();t&&"id"in t&&!$e(t.id)&&(Be(t),(t.status==="running"||t.status==="pending")&&(O.value=!0,Tt(t.id)))}catch(t){_.value=t.message||"加载注册任务失败"}try{const t=await w.getLoginCurrent();t&&"id"in t&&!Ie(t.id)&&(Se(t),(t.status==="running"||t.status==="pending")&&(S.value=!0,He(t.id)))}catch(t){_.value=t.message||"加载刷新任务失败"}},es=async()=>{_.value="",O.value=!0;try{const t=Number.isFinite(de.value)&&de.value>0?de.value:void 0,e=await w.startRegister(t);Be(e),Tt(e.id),ye.value=!1,q.value=!0}catch(t){_.value=t.message||"启动注册失败",O.value=!1}},St=async()=>{if(b.value.size){_.value="",S.value=!0;try{const t=await w.startLogin(Array.from(b.value));Se(t),He(t.id),Ue()}catch(t){_.value=t.message||"启动刷新失败",S.value=!1}}},ts=async()=>{_.value="",S.value=!0;try{await w.checkLogin();const t=await w.getLoginCurrent();if(t&&"id"in t){Se(t),He(t.id),Ue();return}S.value=!1}catch(t){_.value=t.message||"触发刷新失败",S.value=!1}};return(t,e)=>(l(),n(ge,null,[s("div",ps,[s("section",gs,[s("div",bs,[s("div",ys,[R(s("input",{"onUpdate:modelValue":e[0]||(e[0]=o=>ae.value=o),type:"text",placeholder:"搜索账号 ID",class:"w-full rounded-full border border-input bg-background px-4 py-2 text-sm sm:w-48"},null,512),[[V,ae.value]]),G(cs,{modelValue:te.value,"onUpdate:modelValue":e[1]||(e[1]=o=>te.value=o),options:Et},null,8,["modelValue"])]),s("div",_s,[G(be,{modelValue:Oe.value,"onUpdate:modelValue":ft},{default:$t(()=>[...e[27]||(e[27]=[ee(" 全选 ",-1)])]),_:1},8,["modelValue"]),s("span",null,"已选 "+a(B.value)+" / "+a(K.value.length)+" 个账号",1),s("div",hs,[s("button",{type:"button",class:x(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",Y.value==="table"?"bg-accent text-accent-foreground":""]),onClick:e[2]||(e[2]=o=>Y.value="table"),"aria-label":"列表视图"},[...e[28]||(e[28]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])],2),s("button",{type:"button",class:x(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",Y.value==="card"?"bg-accent text-accent-foreground":""]),onClick:e[3]||(e[3]=o=>Y.value="card"),"aria-label":"卡片视图"},[...e[29]||(e[29]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h7v6H4V6zm9 0h7v6h-7V6zM4 14h7v4H4v-4zm9 0h7v4h-7v-4z"})],-1)])],2)])])]),s("div",ws,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary disabled:cursor-not-allowed disabled:opacity-50",disabled:j(ne),onClick:fe}," 刷新列表 ",8,ks),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:Ht}," 账户配置 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary disabled:cursor-not-allowed disabled:opacity-50",disabled:O.value,onClick:At}," 添加账户 ",8,Cs),s("div",{ref_key:"moreActionsRef",ref:De,class:"relative"},[s("button",{class:x(["flex items-center gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary",P.value?"bg-accent text-accent-foreground":""]),onClick:Ot},[e[30]||(e[30]=ee(" 更多操作 ",-1)),e[31]||(e[31]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1)),Bt.value?(l(),n("span",{key:0,class:x(["ml-1 h-2 w-2 rounded-full",zt.value]),"aria-hidden":"true"},null,2)):g("",!0)],2),P.value?(l(),n("div",Ts,[s("button",{type:"button",class:"flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm text-foreground transition-colors hover:bg-accent",onClick:e[4]||(e[4]=o=>{Ue(),le()})}," 任务状态 "),e[32]||(e[32]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:x(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",S.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:S.value,onClick:e[5]||(e[5]=o=>{ts(),le()})}," 刷新过期 ",10,Ss),s("button",{type:"button",class:x(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",!B.value||S.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:!B.value||S.value,onClick:e[6]||(e[6]=o=>{St(),le()})}," 刷新选中 ",10,$s),e[33]||(e[33]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:x(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",B.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!B.value,onClick:e[7]||(e[7]=o=>{qt(),le()})}," 批量启用 ",10,Is),s("button",{type:"button",class:x(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",B.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!B.value,onClick:e[8]||(e[8]=o=>{Qt(),le()})}," 批量禁用 ",10,Es),s("button",{type:"button",class:x(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",B.value?"text-destructive hover:bg-destructive/10":"cursor-not-allowed text-muted-foreground"]),disabled:!B.value,onClick:e[9]||(e[9]=o=>{Xt(),le()})}," 批量删除 ",10,Ls)])):g("",!0)],512)]),Y.value==="card"?(l(),n("div",As,[(l(!0),n(ge,null,Ve(K.value,o=>(l(),n("div",{key:o.id,class:x(["rounded-2xl border border-border bg-card p-4",ct(o)]),onClick:r=>Ee(o.id)},[s("div",Vs,[s("div",null,[e[34]||(e[34]=s("p",{class:"text-xs text-muted-foreground"},"账号 ID",-1)),s("p",js,a(o.id),1)]),s("div",Ms,[G(be,{modelValue:b.value.has(o.id),"onUpdate:modelValue":r=>Ee(o.id),onClick:e[10]||(e[10]=M(()=>{},["stop"]))},null,8,["modelValue","onUpdate:modelValue"]),s("span",{class:x(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",nt(o)])},a(ve(o)),3)])]),s("div",Ds,[s("div",null,[e[35]||(e[35]=s("p",null,"剩余时间",-1)),s("p",{class:x(["mt-1 text-sm font-semibold",dt(o)])},a(it(o.remaining_display)),3),o.expires_at?(l(),n("p",Os,a(o.expires_at),1)):g("",!0)]),s("div",null,[e[36]||(e[36]=s("p",null,"冷却",-1)),s("p",{class:x(["mt-1",ze(o)])},[o.cooldown_seconds>0?(l(),n("span",Bs,a(ut(o.cooldown_seconds))+" · "+a(o.cooldown_reason),1)):(l(),n("span",Ns,a(o.cooldown_reason||"无冷却"),1))],2)]),s("div",null,[e[37]||(e[37]=s("p",null,"失败数",-1)),s("p",Us,a(o.error_count),1)]),s("div",null,[e[38]||(e[38]=s("p",null,"会话数",-1)),s("p",zs,a(o.conversation_count),1)])]),s("div",Ps,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:M(r=>xt(o.id),["stop"])}," 编辑 ",8,Fs),at(o)?(l(),n("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[e[11]||(e[11]=M(()=>{},["stop"])),r=>bt(o.id)]}," 启用 ",8,Hs)):(l(),n("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[e[12]||(e[12]=M(()=>{},["stop"])),r=>yt(o.id)]}," 禁用 ",8,Ks)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:[e[13]||(e[13]=M(()=>{},["stop"])),r=>_t(o.id)]}," 删除 ",8,Js)])],10,Rs))),128)),!K.value.length&&!j(ne)?(l(),n("div",Gs," 暂无账号数据,请检查后台配置。 ")):g("",!0)])):(l(),n("div",Ys,[s("table",qs,[s("thead",Qs,[s("tr",null,[s("th",Xs,[G(be,{modelValue:Oe.value,"onUpdate:modelValue":ft},null,8,["modelValue"])]),e[40]||(e[40]=s("th",{class:"py-3 pr-6"},"账号 ID",-1)),e[41]||(e[41]=s("th",{class:"py-3 pr-6"},"状态",-1)),s("th",Ws,[s("span",Zs,[e[39]||(e[39]=ee(" 剩余/过期 ",-1)),G(ms,{text:"过期时间为 12 小时,账户过期以北京时间为准。"})])]),e[42]||(e[42]=s("th",{class:"py-3 pr-6"},"冷却",-1)),e[43]||(e[43]=s("th",{class:"py-3 pr-6"},"失败数",-1)),e[44]||(e[44]=s("th",{class:"py-3 pr-6"},"会话数",-1)),e[45]||(e[45]=s("th",{class:"py-3 text-right"},"操作",-1))])]),s("tbody",eo,[!K.value.length&&!j(ne)?(l(),n("tr",to,[...e[46]||(e[46]=[s("td",{colspan:"8",class:"py-8 text-center text-muted-foreground"}," 暂无账号数据,请检查后台配置。 ",-1)])])):g("",!0),(l(!0),n(ge,null,Ve(K.value,o=>(l(),n("tr",{key:o.id,class:x(["border-t border-border",ct(o)]),onClick:r=>Ee(o.id)},[s("td",{class:"py-4 pr-4",onClick:e[14]||(e[14]=M(()=>{},["stop"]))},[G(be,{modelValue:b.value.has(o.id),"onUpdate:modelValue":r=>Ee(o.id)},null,8,["modelValue","onUpdate:modelValue"])]),s("td",oo,a(o.id),1),s("td",ro,[s("span",{class:x(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",nt(o)])},a(ve(o)),3)]),s("td",lo,[s("div",{class:x(["text-sm font-semibold",dt(o)])},a(it(o.remaining_display)),3),o.expires_at?(l(),n("span",no,a(o.expires_at),1)):g("",!0)]),s("td",ao,[o.cooldown_seconds>0?(l(),n("span",{key:0,class:x(ze(o))},a(ut(o.cooldown_seconds))+" · "+a(o.cooldown_reason),3)):(l(),n("span",{key:1,class:x(ze(o))},a(o.cooldown_reason||"无冷却"),3))]),s("td",io,a(o.error_count),1),s("td",uo,a(o.conversation_count),1),s("td",co,[s("div",fo,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:M(r=>xt(o.id),["stop"])}," 编辑 ",8,vo),at(o)?(l(),n("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:M(r=>bt(o.id),["stop"])}," 启用 ",8,mo)):(l(),n("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:M(r=>yt(o.id),["stop"])}," 禁用 ",8,xo)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:M(r=>_t(o.id),["stop"])}," 删除 ",8,po)])])],10,so))),128))])])]))])]),G(fs,{open:j(T).open.value,title:j(T).title.value,message:j(T).message.value,"confirm-text":j(T).confirmText.value,"cancel-text":j(T).cancelText.value,onConfirm:j(T).confirm,onCancel:j(T).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(l(),Re(je,{to:"body"},[ye.value?(l(),n("div",go,[s("div",bo,[s("div",yo,[s("div",null,[e[47]||(e[47]=s("p",{class:"text-sm font-medium text-foreground"},"添加账户",-1)),s("p",_o,a(U.value==="register"?"创建 DuckMail 账号并自动注册":"批量导入账户配置"),1)]),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Ne}," 关闭 ")]),s("div",ho,[s("div",wo,[s("div",ko,[s("button",{type:"button",class:x(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",U.value==="register"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:e[15]||(e[15]=o=>U.value="register")}," 自动注册 ",2),s("button",{type:"button",class:x(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",U.value==="import"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:e[16]||(e[16]=o=>U.value="import")}," 批量导入 ",2)]),U.value==="register"?(l(),n("div",Co,[e[48]||(e[48]=s("label",{class:"block text-xs text-muted-foreground"},"注册数量",-1)),R(s("input",{"onUpdate:modelValue":e[17]||(e[17]=o=>de.value=o),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,de.value,void 0,{number:!0}]]),e[49]||(e[49]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"}," 默认域名(可在配置面板修改,推荐使用) ",-1))])):(l(),n("div",To,[e[50]||(e[50]=s("label",{class:"block text-xs text-muted-foreground"},"批量导入(每行一个)",-1)),R(s("textarea",{"onUpdate:modelValue":e[18]||(e[18]=o=>ue.value=o),class:"min-h-[140px] w-full rounded-2xl border border-input bg-background px-3 py-2 text-xs font-mono",placeholder:`duckmail----you@example.com----password +user@outlook.com----loginPassword----clientId----refreshToken`},null,512),[[V,ue.value]]),e[51]||(e[51]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},[s("p",null,"支持两种格式:"),s("p",{class:"mt-1 font-mono"},"duckmail----email----password"),s("p",{class:"mt-1 font-mono"},"email----password----clientId----refreshToken"),s("p",{class:"mt-2 text-[11px]"},'导入后请执行一次"刷新选中"以获取 Cookie。')],-1)),z.value?(l(),n("div",So,a(z.value),1)):g("",!0)])),e[53]||(e[53]=s("div",{class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-[11px] leading-relaxed"},[s("p",{class:"text-xs font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)"),s("p",{class:"mt-1 text-muted-foreground"},[ee("详细声明请查看项目 "),s("a",{href:"https://github.com/Dreamy-rain/gemini-business2api/blob/main/docs/DISCLAIMER.md",target:"_blank",class:"text-primary hover:underline font-medium"},"DISCLAIMER.md")])],-1)),G(be,{modelValue:ce.value,"onUpdate:modelValue":e[19]||(e[19]=o=>ce.value=o)},{default:$t(()=>[...e[52]||(e[52]=[ee(" 我已阅读并同意上述说明与限制 ",-1)])]),_:1},8,["modelValue"])])]),s("div",$o,[s("div",Io,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Ne}," 取消 "),U.value==="register"?(l(),n("button",{key:0,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",disabled:O.value||!ce.value,onClick:es}," 开始注册 ",8,Eo)):(l(),n("button",{key:1,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",disabled:_e.value||!ce.value,onClick:Vt}," 导入并保存 ",8,Lo))])])])])):g("",!0)])),(l(),Re(je,{to:"body"},[q.value?(l(),n("div",Ao,[s("div",Ro,[s("div",Vo,[e[54]||(e[54]=s("div",null,[s("p",{class:"text-sm font-medium text-foreground"},"任务状态"),s("p",{class:"mt-1 text-xs text-muted-foreground"},"注册与刷新任务的状态与日志")],-1)),s("div",jo,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-muted-foreground transition-colors hover:border-primary hover:text-primary disabled:cursor-not-allowed disabled:opacity-50",disabled:!Q.value.length&&!X.value.length&&!c.value&&!f.value&&!_.value,onClick:Dt}," 清空日志 ",8,Mo),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Mt}," 关闭 ")])]),s("div",Do,[_.value?(l(),n("div",Oo,a(_.value),1)):g("",!0),c.value||f.value?(l(),n("div",Bo,[c.value?(l(),n("div",No,[s("div",Uo,[s("span",{class:x(["h-2.5 w-2.5 rounded-full",wt(c.value)]),"aria-hidden":"true"},null,2),e[55]||(e[55]=ee(" 注册任务 ",-1))]),s("div",zo,[s("span",null,"状态:"+a(ht(c.value.status)),1),s("span",null,"进度:"+a(c.value.progress)+"/"+a(c.value.count),1),s("span",null,"成功:"+a(c.value.success_count),1),s("span",null,"失败:"+a(c.value.fail_count),1)])])):g("",!0),f.value?(l(),n("div",Po,[s("div",Fo,[s("span",{class:x(["h-2.5 w-2.5 rounded-full",wt(f.value)]),"aria-hidden":"true"},null,2),e[56]||(e[56]=ee(" 刷新任务 ",-1))]),s("div",Ho,[s("span",null,"状态:"+a(ht(f.value.status)),1),s("span",null,"进度:"+a(f.value.progress)+"/"+a(f.value.account_ids.length),1),s("span",null,"成功:"+a(f.value.success_count),1),s("span",null,"失败:"+a(f.value.fail_count),1)])])):g("",!0)])):g("",!0),Q.value.length||X.value.length?(l(),n("div",Ko,[s("div",{ref_key:"taskLogsRef",ref:We,class:"scrollbar-slim flex-1 overflow-y-auto rounded-2xl border border-border bg-muted/30 p-3"},[Q.value.length?(l(),n("div",Jo,[e[57]||(e[57]=s("p",{class:"text-xs font-semibold text-foreground"},"注册日志",-1)),s("div",Go,[(l(!0),n(ge,null,Ve(Q.value,(o,r)=>(l(),n("div",{key:`reg-${r}`,class:"font-mono"},a(mt(o)),1))),128))])])):g("",!0),X.value.length?(l(),n("div",Yo,[e[58]||(e[58]=s("p",{class:"text-xs font-semibold text-foreground"},"刷新日志",-1)),s("div",qo,[(l(!0),n(ge,null,Ve(X.value,(o,r)=>(l(),n("div",{key:`login-${r}`,class:"font-mono"},a(mt(o)),1))),128))])])):g("",!0)],512)])):g("",!0),!_.value&&!c.value&&!f.value&&!Q.value.length&&!X.value.length?(l(),n("div",Qo," 暂无任务 ")):g("",!0)])])])):g("",!0)])),(l(),Re(je,{to:"body"},[p.value?(l(),n("div",Xo,[s("div",Wo,[s("div",{class:"flex items-center justify-between"},[e[59]||(e[59]=s("p",{class:"text-sm font-medium text-foreground"},"编辑账号",-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Fe}," 关闭 ")]),$.value?(l(),n("div",Zo,a($.value),1)):g("",!0),s("div",er,[e[60]||(e[60]=s("label",{class:"block text-xs text-muted-foreground"},"账号 ID",-1)),R(s("input",{"onUpdate:modelValue":e[20]||(e[20]=o=>h.value.id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",disabled:""},null,512),[[V,h.value.id]]),e[61]||(e[61]=s("label",{class:"block text-xs text-muted-foreground"},"secure_c_ses",-1)),R(s("textarea",{"onUpdate:modelValue":e[21]||(e[21]=o=>h.value.secure_c_ses=o),class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",rows:"3"},null,512),[[V,h.value.secure_c_ses]]),e[62]||(e[62]=s("label",{class:"block text-xs text-muted-foreground"},"csesidx",-1)),R(s("input",{"onUpdate:modelValue":e[22]||(e[22]=o=>h.value.csesidx=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,h.value.csesidx]]),e[63]||(e[63]=s("label",{class:"block text-xs text-muted-foreground"},"config_id",-1)),R(s("input",{"onUpdate:modelValue":e[23]||(e[23]=o=>h.value.config_id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,h.value.config_id]]),e[64]||(e[64]=s("label",{class:"block text-xs text-muted-foreground"},"host_c_oses",-1)),R(s("input",{"onUpdate:modelValue":e[24]||(e[24]=o=>h.value.host_c_oses=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,h.value.host_c_oses]]),e[65]||(e[65]=s("label",{class:"block text-xs text-muted-foreground"},"expires_at",-1)),R(s("input",{"onUpdate:modelValue":e[25]||(e[25]=o=>h.value.expires_at=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"2025-12-23 10:59:21"},null,512),[[V,h.value.expires_at]])]),s("div",{class:"mt-6 flex items-center justify-end gap-2"},[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Fe}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Yt}," 保存 ")])])])):g("",!0)])),(l(),Re(je,{to:"body"},[Me.value?(l(),n("div",tr,[s("div",sr,[s("div",or,[e[66]||(e[66]=s("p",{class:"text-sm font-medium text-foreground"},"账户配置(JSON)",-1)),s("div",rr,[s("button",{class:"rounded-full bg-foreground px-3 py-1 text-xs text-background transition-opacity hover:opacity-90",onClick:Jt},a(N.value?"显示原文":"脱敏显示"),1),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Pe}," 关闭 ")])]),D.value?(l(),n("div",lr,a(D.value),1)):g("",!0),s("div",nr,[R(s("textarea",{"onUpdate:modelValue":e[26]||(e[26]=o=>se.value=o),class:"h-96 w-full rounded-2xl border border-input bg-background px-4 py-3 font-mono text-xs text-foreground",spellcheck:"false",readonly:N.value},null,8,ar),[[V,se.value]])]),s("div",ir,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Pe}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",onClick:Gt,disabled:N.value}," 保存 ",8,dr)])])])):g("",!0)]))],64))}});export{pr as default}; diff --git a/static/assets/Accounts-Cujd5Q6N.js b/static/assets/Accounts-Cujd5Q6N.js new file mode 100644 index 0000000000000000000000000000000000000000..0d2cd3e880cce20f24b815ca27e31a3be66ed692 --- /dev/null +++ b/static/assets/Accounts-Cujd5Q6N.js @@ -0,0 +1 @@ +import{g as C,C as Ft,h as a,d as Kt,D as Ht,i as N,o as Jt,s as Gt,j as Yt,c as l,a as s,x as U,y as Ce,m as V,v as I,A as xt,t as n,n as b,u as S,b as v,f as z,F as ue,r as Te,T as Se,w as A,e as r,E as Qt}from"./index-4tSmcUDY.js";import{_ as qt}from"./SelectMenu.vue_vue_type_script_setup_true_lang-DsnNWmZF.js";import{_ as de}from"./Checkbox.vue_vue_type_script_setup_true_lang-B2pvqq8a.js";import{_ as Wt}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-TmgBmCy7.js";import{u as Xt}from"./useConfirmDialog-DC2-Wjcf.js";import{_ as Zt}from"./HelpTip.vue_vue_type_script_setup_true_lang-BNcd5Xum.js";const y={list:()=>C.get("/admin/accounts"),getConfig:()=>C.get("/admin/accounts-config"),updateConfig:x=>C.put("/admin/accounts-config",x),delete:x=>C.delete(`/admin/accounts/${x}`),disable:x=>C.put(`/admin/accounts/${x}/disable`),enable:x=>C.put(`/admin/accounts/${x}/enable`),startRegister:(x,_)=>C.post("/admin/register/start",{count:x,domain:_}),getRegisterTask:x=>C.get(`/admin/register/task/${x}`),getRegisterCurrent:()=>C.get("/admin/register/current"),startLogin:x=>C.post("/admin/login/start",x),getLoginTask:x=>C.get(`/admin/login/task/${x}`),getLoginCurrent:()=>C.get("/admin/login/current"),checkLogin:()=>C.post("/admin/login/check")},es=Ft("accounts",()=>{const x=a([]),_=a(!1);async function T(){_.value=!0;try{const u=await y.list();x.value=Array.isArray(u)?u:u.accounts||[]}finally{_.value=!1}}async function ee(u){await y.delete(u),await T()}async function h(u){await y.disable(u),await T()}async function te(u){await y.enable(u),await T()}async function Q(u){await Promise.all(u.map(L=>y.enable(L))),await T()}async function g(u){await Promise.all(u.map(L=>y.disable(L))),await T()}async function P(u){await Promise.all(u.map(L=>y.delete(L))),await T()}async function se(u){await y.updateConfig(u),await T()}return{accounts:x,isLoading:_,loadAccounts:T,deleteAccount:ee,disableAccount:h,enableAccount:te,bulkEnable:Q,bulkDisable:g,bulkDelete:P,updateConfig:se}}),ts={class:"space-y-8"},ss={class:"rounded-3xl border border-border bg-card p-6"},os={class:"flex flex-wrap items-center justify-between gap-4"},rs={class:"grid w-full grid-cols-2 gap-3 sm:flex sm:w-auto sm:items-center"},ls={class:"flex w-full flex-wrap items-center gap-3 text-xs text-muted-foreground sm:w-auto sm:flex-nowrap"},ns={class:"ml-auto flex items-center gap-2 sm:ml-0"},as={class:"mt-4 flex flex-wrap items-center gap-2"},is=["disabled"],us=["disabled"],ds={key:0,class:"absolute right-0 z-10 mt-2 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg"},cs=["disabled"],fs=["disabled"],vs=["disabled"],xs=["disabled"],gs=["disabled"],ps={key:0,class:"mt-6 grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3"},ms=["onClick"],bs={class:"flex items-start justify-between gap-3"},ys={class:"mt-1 font-mono text-xs text-foreground"},_s={class:"flex items-center gap-2"},ws={class:"mt-4 grid grid-cols-2 gap-3 text-xs text-muted-foreground"},ks={key:0,class:"mt-1 text-[11px]"},hs={key:0},Cs={key:1},Ts={class:"mt-1 text-sm font-semibold text-foreground"},Ss={class:"mt-1 text-sm font-semibold text-foreground"},As={class:"mt-4 flex flex-wrap items-center gap-2"},Ls=["onClick"],Es=["onClick"],$s=["onClick"],Rs=["onClick"],Vs={key:0,class:"rounded-2xl border border-border bg-background p-4 text-center text-xs text-muted-foreground"},Is={key:1,class:"relative mt-6 overflow-x-auto overflow-y-visible"},js={class:"min-w-full text-left text-sm"},Ds={class:"text-xs uppercase tracking-[0.2em] text-muted-foreground"},Ms={class:"py-3 pr-4"},Os={class:"py-3 pr-6"},Bs={class:"inline-flex items-center gap-2"},Ns={class:"text-sm text-foreground"},Us={key:0},zs=["onClick"],Ps={class:"py-4 pr-6 font-mono text-xs text-foreground"},Fs={class:"py-4 pr-6"},Ks={class:"py-4 pr-6"},Hs={key:0,class:"block text-[11px] text-muted-foreground"},Js={class:"py-4 pr-6 text-xs"},Gs={class:"py-4 pr-6 text-xs text-muted-foreground"},Ys={class:"py-4 pr-6 text-xs text-muted-foreground"},Qs={class:"py-4 text-right"},qs={class:"flex flex-wrap justify-end gap-2"},Ws=["onClick"],Xs=["onClick"],Zs=["onClick"],eo=["onClick"],to={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},so={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},oo={class:"mt-4 space-y-4 text-sm"},ro={class:"mt-6 flex items-center justify-end gap-2"},lo=["disabled"],no={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ao={class:"flex h-[80vh] w-full max-w-2xl flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},io={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},uo={class:"flex items-center gap-2"},co=["disabled"],fo={class:"flex min-h-0 flex-1 flex-col px-6 py-4"},vo={key:0,class:"rounded-2xl bg-destructive/10 px-3 py-2 text-xs text-destructive"},xo={key:1,class:"grid gap-3 text-xs text-muted-foreground"},go={key:0,class:"space-y-1"},po={class:"flex flex-wrap gap-x-4 gap-y-1"},mo={key:1,class:"space-y-1"},bo={class:"flex flex-wrap gap-x-4 gap-y-1"},yo={key:2,class:"mt-4 flex min-h-0 flex-1 flex-col"},_o={key:0,class:"space-y-2"},wo={class:"space-y-1 text-[11px] text-muted-foreground"},ko={key:1,class:"mt-4 space-y-2"},ho={class:"space-y-1 text-[11px] text-muted-foreground"},Co={key:3,class:"mt-4 rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},To={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},So={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},Ao={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Lo={class:"mt-4 space-y-3 text-sm"},Eo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},$o={class:"w-full max-w-3xl rounded-3xl border border-border bg-card p-6 shadow-xl"},Ro={class:"flex items-center justify-between"},Vo={class:"flex items-center gap-2"},Io={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},jo={class:"mt-4"},Do=["readonly"],Mo={class:"mt-6 flex items-center justify-end gap-2"},Oo=["disabled"],De="accounts-register-task-cache",Me="accounts-login-task-cache",Oe="accounts-register-log-clear",Be="accounts-login-log-clear",Ne="accounts-register-task-cleared-id",Ue="accounts-login-task-cleared-id",Ko=Kt({__name:"Accounts",setup(x){const _=es(),{accounts:T,isLoading:ee}=Ht(_),h=Xt(),te=a(""),Q=a("all"),g=a(new Set),P=a("table"),se=a(!1),u=a(""),L=a(!1),E=a(""),q=a(""),j=a(!1),oe=a([]),re=a(1),ce=a(!1),F=a(!1),D=a(!1),Ae=a(null),fe=a(null),ve=a(null),M=a(null),O=a(null),W=a(0),X=a(0),xe=a(!1),d=a(null),c=a(null),ze=a(null),$=a(!1),k=a(!1),p=a(""),m=a({id:"",secure_c_ses:"",csesidx:"",config_id:"",host_c_oses:"",expires_at:""}),ge=a(null),Pe=a([]),gt=[{label:"全部状态",value:"all"},{label:"正常",value:"正常"},{label:"即将过期",value:"即将过期"},{label:"已过期",value:"已过期"},{label:"手动禁用",value:"手动禁用"},{label:"错误禁用",value:"错误禁用"},{label:"429限流",value:"429限流"}],B=N(()=>{const e=te.value.trim().toLowerCase();return T.value.filter(t=>{const o=!e||t.id.toLowerCase().includes(e),i=Q.value==="all"||le(t)===Q.value;return o&&i})}),R=N(()=>g.value.size),Le=N(()=>B.value.length>0&&B.value.every(e=>g.value.has(e.id))),pe=async()=>{await _.loadAccounts(),g.value=new Set,D.value=!1},Fe=e=>{try{const t=localStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}},Ke=e=>{try{return localStorage.getItem(e)||null}catch{return null}},me=(e,t)=>{try{if(t){localStorage.setItem(e,t);return}localStorage.removeItem(e)}catch{}},He=(e,t)=>{try{localStorage.setItem(e,JSON.stringify(t))}catch{}},Je=e=>{try{localStorage.removeItem(e)}catch{}},Ge=e=>{const t=localStorage.getItem(e),o=Number(t);return Number.isFinite(o)?o:0},be=(e,t)=>{try{localStorage.setItem(e,String(t))}catch{}},Ee=(e,t=!0)=>{e&&(e.id&&e.id===M.value||(e.id&&M.value&&e.id!==M.value&&(M.value=null,me(Ne,null)),d.value=e,e.id&&e.id!==fe.value&&(fe.value=e.id,W.value=0,be(Oe,0)),t&&He(De,e)))},ye=(e,t=!0)=>{e&&(e.id&&e.id===O.value||(e.id&&O.value&&e.id!==O.value&&(O.value=null,me(Ue,null)),c.value=e,e.id&&e.id!==ve.value&&(ve.value=e.id,X.value=0,be(Be,0)),t&&He(Me,e)))},pt=()=>{W.value=Ge(Oe),X.value=Ge(Be),M.value=Ke(Ne),O.value=Ke(Ue);const e=Fe(De);e&&e.id!==M.value&&(d.value=e,fe.value=e.id||null);const t=Fe(Me);t&&t.id!==O.value&&(c.value=t,ve.value=t.id||null)},mt=()=>{ce.value=!0,xe.value=!1},Ye=()=>{ce.value=!1},bt=async()=>{try{const e=[],t=d.value?.id,o=c.value?.id;if(t&&!_e(t)&&e.push(ct(t)),o&&!we(o)&&e.push(ft(o)),!e.length){await je();return}await Promise.all(e)}catch(e){p.value=e?.message||"任务状态更新失败"}},yt=async()=>{F.value=!0,await bt()},_t=()=>{F.value=!1},wt=()=>{const e=d.value?.id||null,t=c.value?.id||null;M.value=e,O.value=t,me(Ne,e),me(Ue,t),W.value=d.value?.logs?.length||0,X.value=c.value?.logs?.length||0,be(Oe,W.value),be(Be,X.value),d.value=null,c.value=null,fe.value=null,ve.value=null,p.value="",$.value=!1,k.value=!1,J(),G(),Je(De),Je(Me)},_e=e=>!!(e&&e===M.value),we=e=>!!(e&&e===O.value),kt=()=>{D.value=!D.value},Z=()=>{D.value=!1},Qe=e=>{if(!D.value)return;const t=e.target;Ae.value&&!Ae.value.contains(t)&&(D.value=!1)};Jt(async()=>{pt(),await pe(),await je(),Nt(),document.addEventListener("click",Qe)});const K=N(()=>{const e=d.value?.logs||[];return W.value?e.slice(W.value):e}),H=N(()=>{const e=c.value?.logs||[];return X.value?e.slice(X.value):e}),ht=N(()=>!!p.value||!!d.value||!!c.value||K.value.length>0||H.value.length>0),Ct=async()=>{await Qt();const e=ze.value;e&&(e.scrollTop=e.scrollHeight)};Gt([K,H,F],async()=>{F.value&&await Ct()},{deep:!0});const Tt=N(()=>{const e=d.value?.status,t=c.value?.status;return e==="running"||e==="pending"||t==="running"||t==="pending"}),St=N(()=>{if(p.value)return"bg-rose-500";if(Tt.value)return"bg-sky-400";const e=[];if(d.value){const f=d.value.success_count??0,w=d.value.fail_count??0,Y=d.value.count??f+w;e.push({success:f,fail:w,total:Y,status:d.value.status})}if(c.value){const f=c.value.success_count??0,w=c.value.fail_count??0,Y=c.value.account_ids?.length??f+w;e.push({success:f,fail:w,total:Y,status:c.value.status})}if(!e.length)return"bg-muted-foreground";const t=e.reduce((f,w)=>f+w.success,0),o=e.reduce((f,w)=>f+w.fail,0),i=e.reduce((f,w)=>f+(w.total||0),0);if(t>0&&o>0)return"bg-amber-400";if(o>0&&t===0)return"bg-rose-500";if(t>0&&o===0)return"bg-emerald-400";if(i===0){const f=e.every(Y=>Y.status==="success");if(e.some(Y=>Y.status==="failed"))return"bg-rose-500";if(f)return"bg-emerald-400"}return"bg-muted-foreground"});Yt(()=>{J(),G(),Bt(),document.removeEventListener("click",Qe)});const le=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?"429限流":e.cooldown_reason==="错误禁用"?"错误禁用":e.disabled?"手动禁用":e.status==="已过期"?"已过期":e.status==="即将过期"?"即将过期":"正常",qe=e=>{const t=le(e);return t==="429限流"||t==="即将过期"?"bg-amber-200 text-amber-900":t==="错误禁用"||t==="已过期"?"bg-destructive/10 text-destructive":t==="手动禁用"?"bg-muted text-muted-foreground":"bg-emerald-500 text-white"},We=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?!0:e.disabled||e.cooldown_reason==="错误禁用",Xe=e=>e==="已过期"?"过期":e==="未设置"?"未设置":e,Ze=e=>e.status==="已过期"?"text-rose-600":e.status==="即将过期"?"text-amber-700":e.status==="未设置"?"text-muted-foreground":"text-emerald-600",et=e=>e<60?`${e} 秒`:e<3600?`${Math.ceil(e/60)} 分钟`:`${(e/3600).toFixed(1)} 小时`,$e=e=>e.cooldown_seconds>0?"text-amber-700":e.cooldown_reason==="错误禁用"?"text-rose-600":"text-muted-foreground",tt=e=>{const t=le(e);return t==="手动禁用"||t==="已过期"?"bg-muted/70":""},ke=e=>{const t=new Set(g.value);t.has(e)?t.delete(e):t.add(e),g.value=t},st=()=>{if(Le.value){g.value=new Set;return}g.value=new Set(B.value.map(e=>e.id))},At=(e,t)=>e.id||`account_${t+1}`,Lt=async()=>(await y.getConfig()).accounts.map((t,o)=>({...t,id:At(t,o)})),ot=e=>`${e.time} [${e.level}] ${e.message}`,Et=(e,t)=>{let o=-1;for(let f=0;f{u.value="";try{const t=await Lt();Et(t,e)}catch(t){u.value=t.message||"加载账号配置失败"}},$t=async()=>{E.value="";try{const e=await y.getConfig();oe.value=Array.isArray(e.accounts)?e.accounts:[],q.value=JSON.stringify(nt(oe.value),null,2),j.value=!0,L.value=!0}catch(e){E.value=e.message||"加载账号配置失败"}},Re=()=>{L.value=!1,E.value="",j.value=!1},lt=()=>{const e=JSON.parse(q.value);if(!Array.isArray(e))throw new Error("配置格式必须是数组。");return e},Rt=e=>typeof e!="string"||!e?e:e.length<=6?`${e.slice(0,2)}****`:`${e.slice(0,3)}****`,nt=e=>{const t=new Set(["secure_c_ses","csesidx","config_id","host_c_oses","mail_password"]);return e.map(o=>{const i={...o};return t.forEach(f=>{const w=i[f];w&&(i[f]=Rt(w))}),i})},Vt=()=>{if(E.value="",!j.value){try{oe.value=lt()}catch(e){E.value=e.message||"JSON 格式错误";return}q.value=JSON.stringify(nt(oe.value),null,2),j.value=!0;return}q.value=JSON.stringify(oe.value,null,2),j.value=!1},It=async()=>{E.value="";try{const e=lt();await _.updateConfig(e),Re()}catch(e){E.value=e.message||"保存失败"}},Ve=()=>{se.value=!1,u.value=""},jt=async()=>{if(ge.value===null)return;const e=[...Pe.value];e[ge.value]={...e[ge.value],id:m.value.id,secure_c_ses:m.value.secure_c_ses,csesidx:m.value.csesidx,config_id:m.value.config_id,host_c_oses:m.value.host_c_oses||void 0,expires_at:m.value.expires_at||void 0};try{await _.updateConfig(e),Ve()}catch(t){u.value=t.message||"保存失败"}},Dt=async()=>{await _.bulkEnable(Array.from(g.value)),g.value=new Set},Mt=async()=>{await h.ask({title:"批量禁用",message:"确定要批量禁用选中的账号吗?"})&&(await _.bulkDisable(Array.from(g.value)),g.value=new Set)},Ot=async()=>{await h.ask({title:"批量删除",message:"确定要批量删除选中的账号吗?",confirmText:"删除"})&&(await _.bulkDelete(Array.from(g.value)),g.value=new Set)},at=async e=>{await _.enableAccount(e)},it=async e=>{await h.ask({title:"禁用账号",message:"确定要禁用该账号吗?"})&&await _.disableAccount(e)},ut=async e=>{await h.ask({title:"删除账号",message:"确定要删除该账号吗?",confirmText:"删除"})&&await _.deleteAccount(e)};let ne=null,ae=null,ie=null,he=!1;const J=()=>{ne!==null&&(window.clearInterval(ne),ne=null)},G=()=>{ae!==null&&(window.clearInterval(ae),ae=null)},Bt=()=>{ie!==null&&(window.clearInterval(ie),ie=null),he=!1},dt=e=>e==="pending"?"等待中":e==="running"?"执行中":e==="success"?"成功":e==="failed"?"失败":e,ct=async e=>{if(_e(e)){J();return}const t=await y.getRegisterTask(e);if(_e(t.id)){J();return}Ee(t),t.status!=="running"&&t.status!=="pending"&&($.value=!1,J(),await pe())},ft=async e=>{if(we(e)){G();return}const t=await y.getLoginTask(e);if(we(t.id)){G();return}ye(t),t.status!=="running"&&t.status!=="pending"&&(k.value=!1,G(),await pe())},vt=e=>{J(),ne=window.setInterval(()=>{ct(e).catch(t=>{p.value=t?.message||"注册任务更新失败",J(),$.value=!1})},3e3)},Ie=e=>{G(),ae=window.setInterval(()=>{ft(e).catch(t=>{p.value=t?.message||"刷新任务更新失败",G(),k.value=!1})},3e3)},Nt=()=>{ie===null&&(ie=window.setInterval(async()=>{if(!he&&!F.value&&!(ne!==null||ae!==null)&&!(!$.value&&!k.value&&!d.value&&!c.value)){he=!0;try{await je()}catch(e){p.value=e?.message||"后台刷新失败"}finally{he=!1}}},6e3))},je=async()=>{try{const e=await y.getRegisterCurrent();e&&"id"in e&&!_e(e.id)&&(Ee(e),(e.status==="running"||e.status==="pending")&&($.value=!0,vt(e.id)))}catch(e){p.value=e.message||"加载注册任务失败"}try{const e=await y.getLoginCurrent();e&&"id"in e&&!we(e.id)&&(ye(e),(e.status==="running"||e.status==="pending")&&(k.value=!0,Ie(e.id)))}catch(e){p.value=e.message||"加载刷新任务失败"}},Ut=async()=>{p.value="",$.value=!0;try{const e=Number.isFinite(re.value)&&re.value>0?re.value:void 0,t=await y.startRegister(e);Ee(t),vt(t.id),ce.value=!1,F.value=!0}catch(e){p.value=e.message||"启动注册失败",$.value=!1}},zt=async()=>{if(g.value.size){p.value="",k.value=!0;try{const e=await y.startLogin(Array.from(g.value));ye(e),Ie(e.id)}catch(e){p.value=e.message||"启动刷新失败",k.value=!1}}},Pt=async()=>{p.value="",k.value=!0;try{await y.checkLogin();const e=await y.getLoginCurrent();if(e&&"id"in e){ye(e),Ie(e.id);return}k.value=!1}catch(e){p.value=e.message||"触发刷新失败",k.value=!1}};return(e,t)=>(r(),l(ue,null,[s("div",ts,[s("section",ss,[s("div",os,[s("div",rs,[V(s("input",{"onUpdate:modelValue":t[0]||(t[0]=o=>te.value=o),type:"text",placeholder:"搜索账号 ID",class:"w-full rounded-full border border-input bg-background px-4 py-2 text-sm sm:w-48"},null,512),[[I,te.value]]),U(qt,{modelValue:Q.value,"onUpdate:modelValue":t[1]||(t[1]=o=>Q.value=o),options:gt},null,8,["modelValue"])]),s("div",ls,[U(de,{modelValue:Le.value,"onUpdate:modelValue":st},{default:xt(()=>[...t[24]||(t[24]=[z(" 全选 ",-1)])]),_:1},8,["modelValue"]),s("span",null,"已选 "+n(R.value)+" / "+n(B.value.length)+" 个账号",1),s("div",ns,[s("button",{type:"button",class:b(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",P.value==="table"?"bg-accent text-accent-foreground":""]),onClick:t[2]||(t[2]=o=>P.value="table"),"aria-label":"列表视图"},[...t[25]||(t[25]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])],2),s("button",{type:"button",class:b(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",P.value==="card"?"bg-accent text-accent-foreground":""]),onClick:t[3]||(t[3]=o=>P.value="card"),"aria-label":"卡片视图"},[...t[26]||(t[26]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h7v6H4V6zm9 0h7v6h-7V6zM4 14h7v4H4v-4zm9 0h7v4h-7v-4z"})],-1)])],2)])])]),s("div",as,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:S(ee),onClick:pe}," 刷新列表 ",8,is),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:$t}," 账户配置 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:$.value,onClick:mt}," 添加账户 ",8,us),s("div",{ref_key:"moreActionsRef",ref:Ae,class:"relative"},[s("button",{class:b(["flex items-center gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary",D.value?"bg-accent text-accent-foreground":""]),onClick:kt},[t[27]||(t[27]=z(" 更多操作 ",-1)),t[28]||(t[28]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1)),ht.value?(r(),l("span",{key:0,class:b(["ml-1 h-2 w-2 rounded-full",St.value]),"aria-hidden":"true"},null,2)):v("",!0)],2),D.value?(r(),l("div",ds,[s("button",{type:"button",class:"flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm text-foreground transition-colors hover:bg-accent",onClick:t[4]||(t[4]=o=>{yt(),Z()})}," 任务状态 "),t[29]||(t[29]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:b(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",k.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:k.value,onClick:t[5]||(t[5]=o=>{Pt(),Z()})}," 刷新过期 ",10,cs),s("button",{type:"button",class:b(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",!R.value||k.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:!R.value||k.value,onClick:t[6]||(t[6]=o=>{zt(),Z()})}," 刷新选中 ",10,fs),t[30]||(t[30]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:b(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",R.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!R.value,onClick:t[7]||(t[7]=o=>{Dt(),Z()})}," 批量启用 ",10,vs),s("button",{type:"button",class:b(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",R.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!R.value,onClick:t[8]||(t[8]=o=>{Mt(),Z()})}," 批量禁用 ",10,xs),s("button",{type:"button",class:b(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",R.value?"text-destructive hover:bg-destructive/10":"cursor-not-allowed text-muted-foreground"]),disabled:!R.value,onClick:t[9]||(t[9]=o=>{Ot(),Z()})}," 批量删除 ",10,gs)])):v("",!0)],512)]),P.value==="card"?(r(),l("div",ps,[(r(!0),l(ue,null,Te(B.value,o=>(r(),l("div",{key:o.id,class:b(["rounded-2xl border border-border bg-card p-4",tt(o)]),onClick:i=>ke(o.id)},[s("div",bs,[s("div",null,[t[31]||(t[31]=s("p",{class:"text-xs text-muted-foreground"},"账号 ID",-1)),s("p",ys,n(o.id),1)]),s("div",_s,[U(de,{modelValue:g.value.has(o.id),"onUpdate:modelValue":i=>ke(o.id),onClick:t[10]||(t[10]=A(()=>{},["stop"]))},null,8,["modelValue","onUpdate:modelValue"]),s("span",{class:b(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",qe(o)])},n(le(o)),3)])]),s("div",ws,[s("div",null,[t[32]||(t[32]=s("p",null,"剩余时间",-1)),s("p",{class:b(["mt-1 text-sm font-semibold",Ze(o)])},n(Xe(o.remaining_display)),3),o.expires_at?(r(),l("p",ks,n(o.expires_at),1)):v("",!0)]),s("div",null,[t[33]||(t[33]=s("p",null,"冷却",-1)),s("p",{class:b(["mt-1",$e(o)])},[o.cooldown_seconds>0?(r(),l("span",hs,n(et(o.cooldown_seconds))+" · "+n(o.cooldown_reason),1)):(r(),l("span",Cs,n(o.cooldown_reason||"无冷却"),1))],2)]),s("div",null,[t[34]||(t[34]=s("p",null,"失败数",-1)),s("p",Ts,n(o.error_count),1)]),s("div",null,[t[35]||(t[35]=s("p",null,"会话数",-1)),s("p",Ss,n(o.conversation_count),1)])]),s("div",As,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A(i=>rt(o.id),["stop"])}," 编辑 ",8,Ls),We(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[11]||(t[11]=A(()=>{},["stop"])),i=>at(o.id)]}," 启用 ",8,Es)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[12]||(t[12]=A(()=>{},["stop"])),i=>it(o.id)]}," 禁用 ",8,$s)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:[t[13]||(t[13]=A(()=>{},["stop"])),i=>ut(o.id)]}," 删除 ",8,Rs)])],10,ms))),128)),!B.value.length&&!S(ee)?(r(),l("div",Vs," 暂无账号数据,请检查后台配置。 ")):v("",!0)])):(r(),l("div",Is,[s("table",js,[s("thead",Ds,[s("tr",null,[s("th",Ms,[U(de,{modelValue:Le.value,"onUpdate:modelValue":st},null,8,["modelValue"])]),t[37]||(t[37]=s("th",{class:"py-3 pr-6"},"账号 ID",-1)),t[38]||(t[38]=s("th",{class:"py-3 pr-6"},"状态",-1)),s("th",Os,[s("span",Bs,[t[36]||(t[36]=z(" 剩余/过期 ",-1)),U(Zt,{text:"过期时间为 12 小时,账户过期以北京时间为准。"})])]),t[39]||(t[39]=s("th",{class:"py-3 pr-6"},"冷却",-1)),t[40]||(t[40]=s("th",{class:"py-3 pr-6"},"失败数",-1)),t[41]||(t[41]=s("th",{class:"py-3 pr-6"},"会话数",-1)),t[42]||(t[42]=s("th",{class:"py-3 text-right"},"操作",-1))])]),s("tbody",Ns,[!B.value.length&&!S(ee)?(r(),l("tr",Us,[...t[43]||(t[43]=[s("td",{colspan:"8",class:"py-8 text-center text-muted-foreground"}," 暂无账号数据,请检查后台配置。 ",-1)])])):v("",!0),(r(!0),l(ue,null,Te(B.value,o=>(r(),l("tr",{key:o.id,class:b(["border-t border-border",tt(o)]),onClick:i=>ke(o.id)},[s("td",{class:"py-4 pr-4",onClick:t[14]||(t[14]=A(()=>{},["stop"]))},[U(de,{modelValue:g.value.has(o.id),"onUpdate:modelValue":i=>ke(o.id)},null,8,["modelValue","onUpdate:modelValue"])]),s("td",Ps,n(o.id),1),s("td",Fs,[s("span",{class:b(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",qe(o)])},n(le(o)),3)]),s("td",Ks,[s("div",{class:b(["text-sm font-semibold",Ze(o)])},n(Xe(o.remaining_display)),3),o.expires_at?(r(),l("span",Hs,n(o.expires_at),1)):v("",!0)]),s("td",Js,[o.cooldown_seconds>0?(r(),l("span",{key:0,class:b($e(o))},n(et(o.cooldown_seconds))+" · "+n(o.cooldown_reason),3)):(r(),l("span",{key:1,class:b($e(o))},n(o.cooldown_reason||"无冷却"),3))]),s("td",Gs,n(o.error_count),1),s("td",Ys,n(o.conversation_count),1),s("td",Qs,[s("div",qs,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A(i=>rt(o.id),["stop"])}," 编辑 ",8,Ws),We(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A(i=>at(o.id),["stop"])}," 启用 ",8,Xs)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A(i=>it(o.id),["stop"])}," 禁用 ",8,Zs)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:A(i=>ut(o.id),["stop"])}," 删除 ",8,eo)])])],10,zs))),128))])])]))])]),U(Wt,{open:S(h).open.value,title:S(h).title.value,message:S(h).message.value,"confirm-text":S(h).confirmText.value,"cancel-text":S(h).cancelText.value,onConfirm:S(h).confirm,onCancel:S(h).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(r(),Ce(Se,{to:"body"},[ce.value?(r(),l("div",to,[s("div",so,[s("div",{class:"flex items-center justify-between"},[t[44]||(t[44]=s("div",null,[s("p",{class:"text-sm font-medium text-foreground"},"添加账户"),s("p",{class:"mt-1 text-xs text-muted-foreground"},"创建 DuckMail 账号并自动注册")],-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Ye}," 关闭 ")]),s("div",oo,[t[46]||(t[46]=s("label",{class:"block text-xs text-muted-foreground"},"注册数量",-1)),V(s("input",{"onUpdate:modelValue":t[15]||(t[15]=o=>re.value=o),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[I,re.value,void 0,{number:!0}]]),t[47]||(t[47]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"}," 默认域名来自设置面板(可在“配置面板”中修改) ",-1)),t[48]||(t[48]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-[11px] leading-relaxed text-muted-foreground"},[s("div",{class:"space-y-2"},[s("p",{class:"font-semibold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)"),s("div",{class:"space-y-1"},[s("p",null,[s("strong",null,"合法用途:"),z("本项目仅限个人学习、技术研究与非商业性技术交流,旨在探索浏览器自动化与系统集成。")])]),s("div",{class:"space-y-1"},[s("p",null,[s("strong",null,"禁止行为:"),z("严禁用于以下场景:")]),s("p",{class:"pl-3"},"• 商业用途或盈利性使用"),s("p",{class:"pl-3"},"• 任何形式的批量注册或自动化滥用(无论规模大小)"),s("p",{class:"pl-3"},"• 破坏市场秩序或恶意竞争"),s("p",{class:"pl-3"},"• 违反 Google 服务条款的任何行为")]),s("div",{class:"space-y-1"},[s("p",null,[s("strong",null,"使用责任:"),z("因使用本工具产生的一切后果由使用者完全承担,包括但不限于账号封禁、数据损失及法律责任。")]),s("p",null,[s("strong",null,"合规要求:"),z("使用者必须遵守所在地法律法规及第三方服务条款,作者不对任何违规使用行为承担责任。")])]),s("div",{class:"space-y-1"},[s("p",null,[s("strong",null,"技术声明:")]),s("p",{class:"pl-3"},'• 本项目按"现状"提供,不提供任何明示或暗示的担保'),s("p",{class:"pl-3"},"• 依赖 DuckMail API 等第三方服务,其可用性不受作者控制"),s("p",{class:"pl-3"},"• 作者保留随时停止维护或变更功能的权利")])])],-1)),U(de,{modelValue:xe.value,"onUpdate:modelValue":t[16]||(t[16]=o=>xe.value=o)},{default:xt(()=>[...t[45]||(t[45]=[z(" 我已阅读并同意上述说明与限制 ",-1)])]),_:1},8,["modelValue"])]),s("div",ro,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Ye}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:$.value||!xe.value,onClick:Ut}," 开始注册 ",8,lo)])])])):v("",!0)])),(r(),Ce(Se,{to:"body"},[F.value?(r(),l("div",no,[s("div",ao,[s("div",io,[t[49]||(t[49]=s("div",null,[s("p",{class:"text-sm font-medium text-foreground"},"任务状态"),s("p",{class:"mt-1 text-xs text-muted-foreground"},"注册与刷新任务的状态与日志")],-1)),s("div",uo,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-muted-foreground transition-colors hover:border-primary hover:text-primary",disabled:!K.value.length&&!H.value.length&&!d.value&&!c.value&&!p.value,onClick:wt}," 清空日志 ",8,co),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:_t}," 关闭 ")])]),s("div",fo,[p.value?(r(),l("div",vo,n(p.value),1)):v("",!0),d.value||c.value?(r(),l("div",xo,[d.value?(r(),l("div",go,[t[50]||(t[50]=s("div",{class:"font-medium text-foreground"},"注册任务",-1)),s("div",po,[s("span",null,"状态:"+n(dt(d.value.status)),1),s("span",null,"进度:"+n(d.value.progress)+"/"+n(d.value.count),1),s("span",null,"成功:"+n(d.value.success_count),1),s("span",null,"失败:"+n(d.value.fail_count),1)])])):v("",!0),c.value?(r(),l("div",mo,[t[51]||(t[51]=s("div",{class:"font-medium text-foreground"},"刷新任务",-1)),s("div",bo,[s("span",null,"状态:"+n(dt(c.value.status)),1),s("span",null,"进度:"+n(c.value.progress)+"/"+n(c.value.account_ids.length),1),s("span",null,"成功:"+n(c.value.success_count),1),s("span",null,"失败:"+n(c.value.fail_count),1)])])):v("",!0)])):v("",!0),K.value.length||H.value.length?(r(),l("div",yo,[s("div",{ref_key:"taskLogsRef",ref:ze,class:"scrollbar-slim flex-1 overflow-y-auto rounded-2xl border border-border bg-muted/30 p-3"},[K.value.length?(r(),l("div",_o,[t[52]||(t[52]=s("p",{class:"text-xs font-semibold text-foreground"},"注册日志",-1)),s("div",wo,[(r(!0),l(ue,null,Te(K.value,(o,i)=>(r(),l("div",{key:`reg-${i}`,class:"font-mono"},n(ot(o)),1))),128))])])):v("",!0),H.value.length?(r(),l("div",ko,[t[53]||(t[53]=s("p",{class:"text-xs font-semibold text-foreground"},"刷新日志",-1)),s("div",ho,[(r(!0),l(ue,null,Te(H.value,(o,i)=>(r(),l("div",{key:`login-${i}`,class:"font-mono"},n(ot(o)),1))),128))])])):v("",!0)],512)])):v("",!0),!p.value&&!d.value&&!c.value&&!K.value.length&&!H.value.length?(r(),l("div",Co," 暂无任务 ")):v("",!0)])])])):v("",!0)])),(r(),Ce(Se,{to:"body"},[se.value?(r(),l("div",To,[s("div",So,[s("div",{class:"flex items-center justify-between"},[t[54]||(t[54]=s("p",{class:"text-sm font-medium text-foreground"},"编辑账号",-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Ve}," 关闭 ")]),u.value?(r(),l("div",Ao,n(u.value),1)):v("",!0),s("div",Lo,[t[55]||(t[55]=s("label",{class:"block text-xs text-muted-foreground"},"账号 ID",-1)),V(s("input",{"onUpdate:modelValue":t[17]||(t[17]=o=>m.value.id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",disabled:""},null,512),[[I,m.value.id]]),t[56]||(t[56]=s("label",{class:"block text-xs text-muted-foreground"},"secure_c_ses",-1)),V(s("textarea",{"onUpdate:modelValue":t[18]||(t[18]=o=>m.value.secure_c_ses=o),class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",rows:"3"},null,512),[[I,m.value.secure_c_ses]]),t[57]||(t[57]=s("label",{class:"block text-xs text-muted-foreground"},"csesidx",-1)),V(s("input",{"onUpdate:modelValue":t[19]||(t[19]=o=>m.value.csesidx=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[I,m.value.csesidx]]),t[58]||(t[58]=s("label",{class:"block text-xs text-muted-foreground"},"config_id",-1)),V(s("input",{"onUpdate:modelValue":t[20]||(t[20]=o=>m.value.config_id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[I,m.value.config_id]]),t[59]||(t[59]=s("label",{class:"block text-xs text-muted-foreground"},"host_c_oses",-1)),V(s("input",{"onUpdate:modelValue":t[21]||(t[21]=o=>m.value.host_c_oses=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[I,m.value.host_c_oses]]),t[60]||(t[60]=s("label",{class:"block text-xs text-muted-foreground"},"expires_at",-1)),V(s("input",{"onUpdate:modelValue":t[22]||(t[22]=o=>m.value.expires_at=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"2025-12-23 10:59:21"},null,512),[[I,m.value.expires_at]])]),s("div",{class:"mt-6 flex items-center justify-end gap-2"},[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Ve}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:jt}," 保存 ")])])])):v("",!0)])),(r(),Ce(Se,{to:"body"},[L.value?(r(),l("div",Eo,[s("div",$o,[s("div",Ro,[t[61]||(t[61]=s("p",{class:"text-sm font-medium text-foreground"},"账户配置(JSON)",-1)),s("div",Vo,[s("button",{class:"rounded-full bg-foreground px-3 py-1 text-xs text-background transition-opacity hover:opacity-90",onClick:Vt},n(j.value?"显示原文":"脱敏显示"),1),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Re}," 关闭 ")])]),E.value?(r(),l("div",Io,n(E.value),1)):v("",!0),s("div",jo,[V(s("textarea",{"onUpdate:modelValue":t[23]||(t[23]=o=>q.value=o),class:"h-96 w-full rounded-2xl border border-input bg-background px-4 py-3 font-mono text-xs text-foreground",spellcheck:"false",readonly:j.value},null,8,Do),[[I,q.value]])]),s("div",Mo,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Re}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:It,disabled:j.value}," 保存 ",8,Oo)])])])):v("",!0)]))],64))}});export{Ko as default}; diff --git a/static/assets/Accounts-D4WYjY04.js b/static/assets/Accounts-D4WYjY04.js new file mode 100644 index 0000000000000000000000000000000000000000..ebb9ac234f0db417d07aea1176d9094f4f7be229 --- /dev/null +++ b/static/assets/Accounts-D4WYjY04.js @@ -0,0 +1,2 @@ +import{g as A,C as ts,h as a,d as ss,D as os,i as G,o as rs,s as ls,j as ns,c as l,a as s,x as H,y as Re,m as L,v as $,A as Ct,t as n,n as g,u as R,b as x,f as J,F as ge,r as Ve,T as Me,w as V,e as r,E as as}from"./index-BRg_yWJl.js";import{_ as is}from"./SelectMenu.vue_vue_type_script_setup_true_lang-DswSmh70.js";import{_ as be}from"./Checkbox.vue_vue_type_script_setup_true_lang-CRAgcaHj.js";import{_ as ds}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-CZswS7RJ.js";import{u as us}from"./useConfirmDialog-Ds3wJrfU.js";import{_ as cs}from"./HelpTip.vue_vue_type_script_setup_true_lang-D8gzoJNA.js";const w={list:()=>A.get("/admin/accounts"),getConfig:()=>A.get("/admin/accounts-config"),updateConfig:b=>A.put("/admin/accounts-config",b),delete:b=>A.delete(`/admin/accounts/${b}`),disable:b=>A.put(`/admin/accounts/${b}/disable`),enable:b=>A.put(`/admin/accounts/${b}/enable`),startRegister:(b,h)=>A.post("/admin/register/start",{count:b,domain:h}),getRegisterTask:b=>A.get(`/admin/register/task/${b}`),getRegisterCurrent:()=>A.get("/admin/register/current"),startLogin:b=>A.post("/admin/login/start",b),getLoginTask:b=>A.get(`/admin/login/task/${b}`),getLoginCurrent:()=>A.get("/admin/login/current"),checkLogin:()=>A.post("/admin/login/check")},fs=ts("accounts",()=>{const b=a([]),h=a(!1);async function I(){h.value=!0;try{const u=await w.list();b.value=Array.isArray(u)?u:u.accounts||[]}finally{h.value=!1}}async function le(u){await w.delete(u),await I()}async function C(u){await w.disable(u),await I()}async function ne(u){await w.enable(u),await I()}async function ee(u){await Promise.all(u.map(M=>w.enable(M))),await I()}async function m(u){await Promise.all(u.map(M=>w.disable(M))),await I()}async function Y(u){await Promise.all(u.map(M=>w.delete(M))),await I()}async function ae(u){await w.updateConfig(u),await I()}return{accounts:b,isLoading:h,loadAccounts:I,deleteAccount:le,disableAccount:C,enableAccount:ne,bulkEnable:ee,bulkDisable:m,bulkDelete:Y,updateConfig:ae}}),vs={class:"space-y-8"},ps={class:"rounded-3xl border border-border bg-card p-6"},xs={class:"flex flex-wrap items-center justify-between gap-4"},ms={class:"grid w-full grid-cols-2 gap-3 sm:flex sm:w-auto sm:items-center"},gs={class:"flex w-full flex-wrap items-center gap-3 text-xs text-muted-foreground sm:w-auto sm:flex-nowrap"},bs={class:"ml-auto flex items-center gap-2 sm:ml-0"},ys={class:"mt-4 flex flex-wrap items-center gap-2"},_s=["disabled"],ws=["disabled"],hs={key:0,class:"absolute right-0 z-10 mt-2 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg"},ks=["disabled"],Cs=["disabled"],Ts=["disabled"],Ss=["disabled"],As=["disabled"],Es={key:0,class:"mt-6 grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3"},Is=["onClick"],Ls={class:"flex items-start justify-between gap-3"},$s={class:"mt-1 font-mono text-xs text-foreground"},Rs={class:"flex items-center gap-2"},Vs={class:"mt-4 grid grid-cols-2 gap-3 text-xs text-muted-foreground"},Ms={key:0,class:"mt-1 text-[11px]"},js={key:0},Ds={key:1},Os={class:"mt-1 text-sm font-semibold text-foreground"},Bs={class:"mt-1 text-sm font-semibold text-foreground"},Ns={class:"mt-4 flex flex-wrap items-center gap-2"},Us=["onClick"],zs=["onClick"],Ps=["onClick"],Fs=["onClick"],Ks={key:0,class:"rounded-2xl border border-border bg-background p-4 text-center text-xs text-muted-foreground"},Gs={key:1,class:"relative mt-6 overflow-x-auto overflow-y-visible"},Hs={class:"min-w-full text-left text-sm"},Js={class:"text-xs uppercase tracking-[0.2em] text-muted-foreground"},Ys={class:"py-3 pr-4"},Qs={class:"py-3 pr-6"},qs={class:"inline-flex items-center gap-2"},Ws={class:"text-sm text-foreground"},Xs={key:0},Zs=["onClick"],eo={class:"py-4 pr-6 font-mono text-xs text-foreground"},to={class:"py-4 pr-6"},so={class:"py-4 pr-6"},oo={key:0,class:"block text-[11px] text-muted-foreground"},ro={class:"py-4 pr-6 text-xs"},lo={class:"py-4 pr-6 text-xs text-muted-foreground"},no={class:"py-4 pr-6 text-xs text-muted-foreground"},ao={class:"py-4 text-right"},io={class:"flex flex-wrap justify-end gap-2"},uo=["onClick"],co=["onClick"],fo=["onClick"],vo=["onClick"],po={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},xo={class:"flex max-h-[90vh] w-full max-w-lg flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},mo={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},go={class:"mt-1 text-xs text-muted-foreground"},bo={class:"scrollbar-slim flex-1 overflow-y-auto px-6 py-4"},yo={class:"space-y-4 text-sm"},_o={class:"flex rounded-full border border-border bg-muted/30 p-1 text-xs"},wo={key:0,class:"space-y-4"},ho={key:1,class:"space-y-4"},ko={key:0,class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-xs text-rose-600"},Co={class:"border-t border-border/60 px-6 py-4"},To={class:"flex items-center justify-end gap-2"},So=["disabled"],Ao=["disabled"],Eo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Io={class:"flex h-[80vh] w-full max-w-2xl flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},Lo={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},$o={class:"flex items-center gap-2"},Ro=["disabled"],Vo={class:"flex min-h-0 flex-1 flex-col px-6 py-4"},Mo={key:0,class:"rounded-2xl bg-destructive/10 px-3 py-2 text-xs text-destructive"},jo={key:1,class:"grid gap-3 text-xs text-muted-foreground"},Do={key:0,class:"space-y-1"},Oo={class:"flex flex-wrap gap-x-4 gap-y-1"},Bo={key:1,class:"space-y-1"},No={class:"flex flex-wrap gap-x-4 gap-y-1"},Uo={key:2,class:"mt-4 flex min-h-0 flex-1 flex-col"},zo={key:0,class:"space-y-2"},Po={class:"space-y-1 text-[11px] text-muted-foreground"},Fo={key:1,class:"mt-4 space-y-2"},Ko={class:"space-y-1 text-[11px] text-muted-foreground"},Go={key:3,class:"mt-4 rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},Ho={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Jo={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},Yo={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Qo={class:"mt-4 space-y-3 text-sm"},qo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Wo={class:"w-full max-w-3xl rounded-3xl border border-border bg-card p-6 shadow-xl"},Xo={class:"flex items-center justify-between"},Zo={class:"flex items-center gap-2"},er={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},tr={class:"mt-4"},sr=["readonly"],or={class:"mt-6 flex items-center justify-end gap-2"},rr=["disabled"],Ke="accounts-register-task-cache",Ge="accounts-login-task-cache",He="accounts-register-log-clear",Je="accounts-login-log-clear",Ye="accounts-register-task-cleared-id",Qe="accounts-login-task-cleared-id",Tt="1970-01-01 00:00:00",cr=ss({__name:"Accounts",setup(b){const h=fs(),{accounts:I,isLoading:le}=os(h),C=us(),ne=a(""),ee=a("all"),m=a(new Set),Y=a("table"),ae=a(!1),u=a(""),M=a(!1),j=a(""),te=a(""),B=a(!1),ie=a([]),de=a(1),ye=a(!1),N=a("register"),ue=a(""),U=a(""),_e=a(!1),Q=a(!1),z=a(!1),je=a(null),we=a(null),he=a(null),P=a(null),F=a(null),se=a(0),oe=a(0),ce=a(!1),c=a(null),f=a(null),qe=a(null),D=a(!1),T=a(!1),y=a(""),_=a({id:"",secure_c_ses:"",csesidx:"",config_id:"",host_c_oses:"",expires_at:""}),ke=a(null),We=a([]),St=[{label:"全部状态",value:"all"},{label:"正常",value:"正常"},{label:"即将过期",value:"即将过期"},{label:"已过期",value:"已过期"},{label:"手动禁用",value:"手动禁用"},{label:"错误禁用",value:"错误禁用"},{label:"429限流",value:"429限流"}],K=G(()=>{const e=ne.value.trim().toLowerCase();return I.value.filter(t=>{const o=!e||t.id.toLowerCase().includes(e),i=ee.value==="all"||ve(t)===ee.value;return o&&i})}),O=G(()=>m.value.size),De=G(()=>K.value.length>0&&K.value.every(e=>m.value.has(e.id))),fe=async()=>{await h.loadAccounts(),m.value=new Set,z.value=!1},Xe=e=>{try{const t=localStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}},Ze=e=>{try{return localStorage.getItem(e)||null}catch{return null}},Ce=(e,t)=>{try{if(t){localStorage.setItem(e,t);return}localStorage.removeItem(e)}catch{}},et=(e,t)=>{try{localStorage.setItem(e,JSON.stringify(t))}catch{}},tt=e=>{try{localStorage.removeItem(e)}catch{}},st=e=>{const t=localStorage.getItem(e),o=Number(t);return Number.isFinite(o)?o:0},Te=(e,t)=>{try{localStorage.setItem(e,String(t))}catch{}},Oe=(e,t=!0)=>{e&&(e.id&&e.id===P.value||(e.id&&P.value&&e.id!==P.value&&(P.value=null,Ce(Ye,null)),c.value=e,e.id&&e.id!==we.value&&(we.value=e.id,se.value=0,Te(He,0)),t&&et(Ke,e)))},Se=(e,t=!0)=>{e&&(e.id&&e.id===F.value||(e.id&&F.value&&e.id!==F.value&&(F.value=null,Ce(Qe,null)),f.value=e,e.id&&e.id!==he.value&&(he.value=e.id,oe.value=0,Te(Je,0)),t&&et(Ge,e)))},At=()=>{se.value=st(He),oe.value=st(Je),P.value=Ze(Ye),F.value=Ze(Qe);const e=Xe(Ke);e&&e.id!==P.value&&(c.value=e,we.value=e.id||null);const t=Xe(Ge);t&&t.id!==F.value&&(f.value=t,he.value=t.id||null)},Et=()=>{ye.value=!0,N.value="register",ue.value="",U.value="",_e.value=!1,ce.value=!1},Be=()=>{ye.value=!1},It=e=>{const t=[],o=[];return e.split(/\r?\n/).map(d=>d.trim()).filter(Boolean).forEach((d,p)=>{const v=d.split("----").map(S=>S.trim()),k=p+1;if(v.length){if(v[0].toLowerCase()==="duckmail"){if(v.length<3||!v[1]||!v[2]){o.push(`第 ${k} 行格式错误(duckmail)`);return}const S=v[1],$e=v.slice(2).join("----");t.push({id:S,secure_c_ses:"",csesidx:"",config_id:"",expires_at:Tt,mail_provider:"duckmail",mail_address:S,mail_password:$e});return}if(v.length>=4&&v[0]&&v[2]&&v[3]){const S=v[0],$e=v[1]||"",E=v[2],es=v.slice(3).join("----");t.push({id:S,secure_c_ses:"",csesidx:"",config_id:"",expires_at:Tt,mail_provider:"microsoft",mail_address:S,mail_password:$e,mail_client_id:E,mail_refresh_token:es,mail_tenant:"consumers"});return}o.push(`第 ${k} 行格式错误`)}}),{items:t,errors:o}},Lt=async()=>{if(U.value="",!ue.value.trim()){U.value="请输入导入内容";return}const{items:e,errors:t}=It(ue.value);if(!e.length){U.value=t.length?t.join(","):"未识别到有效账号";return}if(t.length){U.value=t.slice(0,3).join(",");return}_e.value=!0;try{const i=[...await ct()],d=new Map(i.map((k,S)=>[k.id,S])),p=[];e.forEach(k=>{const S=d.get(k.id||"");if(S===void 0){i.push(k),p.push(k.id);return}const E={...i[S],mail_provider:k.mail_provider,mail_address:k.mail_address};k.mail_provider==="microsoft"?(E.mail_client_id=k.mail_client_id,E.mail_refresh_token=k.mail_refresh_token,E.mail_tenant=k.mail_tenant,E.mail_password=k.mail_password):(E.mail_password=k.mail_password,E.mail_client_id=void 0,E.mail_refresh_token=void 0,E.mail_tenant=void 0),i[S]=E,p.push(k.id)}),await h.updateConfig(i),await fe(),m.value=new Set(p),Be(),await C.ask({title:"导入成功",message:`已导入 ${p.length} 个账户并自动选中。是否立即刷新这些账户以获取 Cookie?`,confirmText:"立即刷新",cancelText:"稍后手动刷新"})&&await kt()}catch(o){U.value=o.message||"导入失败"}finally{_e.value=!1}},$t=async()=>{try{const e=[],t=c.value?.id,o=f.value?.id;if(t&&!Ae(t)&&e.push(_t(t)),o&&!Ee(o)&&e.push(wt(o)),!e.length){await Fe();return}await Promise.all(e)}catch(e){y.value=e?.message||"任务状态更新失败"}},Rt=async()=>{Q.value=!0,await $t()},Vt=()=>{Q.value=!1},Mt=()=>{const e=c.value?.id||null,t=f.value?.id||null;P.value=e,F.value=t,Ce(Ye,e),Ce(Qe,t),se.value=c.value?.logs?.length||0,oe.value=f.value?.logs?.length||0,Te(He,se.value),Te(Je,oe.value),c.value=null,f.value=null,we.value=null,he.value=null,y.value="",D.value=!1,T.value=!1,X(),Z(),tt(Ke),tt(Ge)},Ae=e=>!!(e&&e===P.value),Ee=e=>!!(e&&e===F.value),jt=()=>{z.value=!z.value},re=()=>{z.value=!1},ot=e=>{if(!z.value)return;const t=e.target;je.value&&!je.value.contains(t)&&(z.value=!1)};rs(async()=>{At(),await fe(),await Fe(),Wt(),document.addEventListener("click",ot)});const q=G(()=>{const e=c.value?.logs||[];return se.value?e.slice(se.value):e}),W=G(()=>{const e=f.value?.logs||[];return oe.value?e.slice(oe.value):e}),Dt=G(()=>!!y.value||!!c.value||!!f.value||q.value.length>0||W.value.length>0),Ot=async()=>{await as();const e=qe.value;e&&(e.scrollTop=e.scrollHeight)};ls([q,W,Q],async()=>{Q.value&&await Ot()},{deep:!0});const Bt=G(()=>{const e=c.value?.status,t=f.value?.status;return e==="running"||e==="pending"||t==="running"||t==="pending"}),Nt=G(()=>{if(y.value)return"bg-rose-500";if(Bt.value)return"bg-sky-400";const e=[];if(c.value){const d=c.value.success_count??0,p=c.value.fail_count??0,v=c.value.count??d+p;e.push({success:d,fail:p,total:v,status:c.value.status})}if(f.value){const d=f.value.success_count??0,p=f.value.fail_count??0,v=f.value.account_ids?.length??d+p;e.push({success:d,fail:p,total:v,status:f.value.status})}if(!e.length)return"bg-muted-foreground";const t=e.reduce((d,p)=>d+p.success,0),o=e.reduce((d,p)=>d+p.fail,0),i=e.reduce((d,p)=>d+(p.total||0),0);if(t>0&&o>0)return"bg-amber-400";if(o>0&&t===0)return"bg-rose-500";if(t>0&&o===0)return"bg-emerald-400";if(i===0){const d=e.every(v=>v.status==="success");if(e.some(v=>v.status==="failed"))return"bg-rose-500";if(d)return"bg-emerald-400"}return"bg-muted-foreground"});ns(()=>{X(),Z(),qt(),document.removeEventListener("click",ot)});const ve=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?"429限流":e.cooldown_reason==="错误禁用"?"错误禁用":e.disabled?"手动禁用":e.status==="已过期"?"已过期":e.status==="即将过期"?"即将过期":"正常",rt=e=>{const t=ve(e);return t==="429限流"||t==="即将过期"?"bg-amber-200 text-amber-900":t==="错误禁用"||t==="已过期"?"bg-destructive/10 text-destructive":t==="手动禁用"?"bg-muted text-muted-foreground":"bg-emerald-500 text-white"},lt=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?!0:e.disabled||e.cooldown_reason==="错误禁用",nt=e=>e==="已过期"?"过期":e==="未设置"?"未设置":e,at=e=>e.status==="已过期"?"text-rose-600":e.status==="即将过期"?"text-amber-700":e.status==="未设置"?"text-muted-foreground":"text-emerald-600",it=e=>e<60?`${e} 秒`:e<3600?`${Math.ceil(e/60)} 分钟`:`${(e/3600).toFixed(1)} 小时`,Ne=e=>e.cooldown_seconds>0?"text-amber-700":e.cooldown_reason==="错误禁用"?"text-rose-600":"text-muted-foreground",dt=e=>{const t=ve(e);return t==="手动禁用"||t==="已过期"?"bg-muted/70":""},Ie=e=>{const t=new Set(m.value);t.has(e)?t.delete(e):t.add(e),m.value=t},ut=()=>{if(De.value){m.value=new Set;return}m.value=new Set(K.value.map(e=>e.id))},Ut=(e,t)=>e.id||`account_${t+1}`,ct=async()=>(await w.getConfig()).accounts.map((t,o)=>({...t,id:Ut(t,o)})),ft=e=>`${e.time} [${e.level}] ${e.message}`,zt=(e,t)=>{let o=-1;for(let d=0;d{u.value="";try{const t=await ct();zt(t,e)}catch(t){u.value=t.message||"加载账号配置失败"}},Pt=async()=>{j.value="";try{const e=await w.getConfig();ie.value=Array.isArray(e.accounts)?e.accounts:[],te.value=JSON.stringify(xt(ie.value),null,2),B.value=!0,M.value=!0}catch(e){j.value=e.message||"加载账号配置失败"}},Ue=()=>{M.value=!1,j.value="",B.value=!1},pt=()=>{const e=JSON.parse(te.value);if(!Array.isArray(e))throw new Error("配置格式必须是数组。");return e},Ft=e=>typeof e!="string"||!e?e:e.length<=6?`${e.slice(0,2)}****`:`${e.slice(0,3)}****`,xt=e=>{const t=new Set(["secure_c_ses","csesidx","config_id","host_c_oses","mail_password","mail_refresh_token","mail_client_id"]);return e.map(o=>{const i={...o};return t.forEach(d=>{const p=i[d];p&&(i[d]=Ft(p))}),i})},Kt=()=>{if(j.value="",!B.value){try{ie.value=pt()}catch(e){j.value=e.message||"JSON 格式错误";return}te.value=JSON.stringify(xt(ie.value),null,2),B.value=!0;return}te.value=JSON.stringify(ie.value,null,2),B.value=!1},Gt=async()=>{j.value="";try{const e=pt();await h.updateConfig(e),Ue()}catch(e){j.value=e.message||"保存失败"}},ze=()=>{ae.value=!1,u.value=""},Ht=async()=>{if(ke.value===null)return;const e=[...We.value];e[ke.value]={...e[ke.value],id:_.value.id,secure_c_ses:_.value.secure_c_ses,csesidx:_.value.csesidx,config_id:_.value.config_id,host_c_oses:_.value.host_c_oses||void 0,expires_at:_.value.expires_at||void 0};try{await h.updateConfig(e),ze()}catch(t){u.value=t.message||"保存失败"}},Jt=async()=>{await h.bulkEnable(Array.from(m.value)),m.value=new Set},Yt=async()=>{await C.ask({title:"批量禁用",message:"确定要批量禁用选中的账号吗?"})&&(await h.bulkDisable(Array.from(m.value)),m.value=new Set)},Qt=async()=>{await C.ask({title:"批量删除",message:"确定要批量删除选中的账号吗?",confirmText:"删除"})&&(await h.bulkDelete(Array.from(m.value)),m.value=new Set)},mt=async e=>{await h.enableAccount(e)},gt=async e=>{await C.ask({title:"禁用账号",message:"确定要禁用该账号吗?"})&&await h.disableAccount(e)},bt=async e=>{await C.ask({title:"删除账号",message:"确定要删除该账号吗?",confirmText:"删除"})&&await h.deleteAccount(e)};let pe=null,xe=null,me=null,Le=!1;const X=()=>{pe!==null&&(window.clearInterval(pe),pe=null)},Z=()=>{xe!==null&&(window.clearInterval(xe),xe=null)},qt=()=>{me!==null&&(window.clearInterval(me),me=null),Le=!1},yt=e=>e==="pending"?"等待中":e==="running"?"执行中":e==="success"?"成功":e==="failed"?"失败":e,_t=async e=>{if(Ae(e)){X();return}const t=await w.getRegisterTask(e);if(Ae(t.id)){X();return}Oe(t),t.status!=="running"&&t.status!=="pending"&&(D.value=!1,X(),await fe())},wt=async e=>{if(Ee(e)){Z();return}const t=await w.getLoginTask(e);if(Ee(t.id)){Z();return}Se(t),t.status!=="running"&&t.status!=="pending"&&(T.value=!1,Z(),await fe())},ht=e=>{X(),pe=window.setInterval(()=>{_t(e).catch(t=>{y.value=t?.message||"注册任务更新失败",X(),D.value=!1})},3e3)},Pe=e=>{Z(),xe=window.setInterval(()=>{wt(e).catch(t=>{y.value=t?.message||"刷新任务更新失败",Z(),T.value=!1})},3e3)},Wt=()=>{me===null&&(me=window.setInterval(async()=>{if(!Le&&!Q.value&&!(pe!==null||xe!==null)&&!(!D.value&&!T.value&&!c.value&&!f.value)){Le=!0;try{await Fe()}catch(e){y.value=e?.message||"后台刷新失败"}finally{Le=!1}}},6e3))},Fe=async()=>{try{const e=await w.getRegisterCurrent();e&&"id"in e&&!Ae(e.id)&&(Oe(e),(e.status==="running"||e.status==="pending")&&(D.value=!0,ht(e.id)))}catch(e){y.value=e.message||"加载注册任务失败"}try{const e=await w.getLoginCurrent();e&&"id"in e&&!Ee(e.id)&&(Se(e),(e.status==="running"||e.status==="pending")&&(T.value=!0,Pe(e.id)))}catch(e){y.value=e.message||"加载刷新任务失败"}},Xt=async()=>{y.value="",D.value=!0;try{const e=Number.isFinite(de.value)&&de.value>0?de.value:void 0,t=await w.startRegister(e);Oe(t),ht(t.id),ye.value=!1,Q.value=!0}catch(e){y.value=e.message||"启动注册失败",D.value=!1}},kt=async()=>{if(m.value.size){y.value="",T.value=!0;try{const e=await w.startLogin(Array.from(m.value));Se(e),Pe(e.id)}catch(e){y.value=e.message||"启动刷新失败",T.value=!1}}},Zt=async()=>{y.value="",T.value=!0;try{await w.checkLogin();const e=await w.getLoginCurrent();if(e&&"id"in e){Se(e),Pe(e.id);return}T.value=!1}catch(e){y.value=e.message||"触发刷新失败",T.value=!1}};return(e,t)=>(r(),l(ge,null,[s("div",vs,[s("section",ps,[s("div",xs,[s("div",ms,[L(s("input",{"onUpdate:modelValue":t[0]||(t[0]=o=>ne.value=o),type:"text",placeholder:"搜索账号 ID",class:"w-full rounded-full border border-input bg-background px-4 py-2 text-sm sm:w-48"},null,512),[[$,ne.value]]),H(is,{modelValue:ee.value,"onUpdate:modelValue":t[1]||(t[1]=o=>ee.value=o),options:St},null,8,["modelValue"])]),s("div",gs,[H(be,{modelValue:De.value,"onUpdate:modelValue":ut},{default:Ct(()=>[...t[27]||(t[27]=[J(" 全选 ",-1)])]),_:1},8,["modelValue"]),s("span",null,"已选 "+n(O.value)+" / "+n(K.value.length)+" 个账号",1),s("div",bs,[s("button",{type:"button",class:g(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",Y.value==="table"?"bg-accent text-accent-foreground":""]),onClick:t[2]||(t[2]=o=>Y.value="table"),"aria-label":"列表视图"},[...t[28]||(t[28]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])],2),s("button",{type:"button",class:g(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",Y.value==="card"?"bg-accent text-accent-foreground":""]),onClick:t[3]||(t[3]=o=>Y.value="card"),"aria-label":"卡片视图"},[...t[29]||(t[29]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h7v6H4V6zm9 0h7v6h-7V6zM4 14h7v4H4v-4zm9 0h7v4h-7v-4z"})],-1)])],2)])])]),s("div",ys,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:R(le),onClick:fe}," 刷新列表 ",8,_s),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:Pt}," 账户配置 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:D.value,onClick:Et}," 添加账户 ",8,ws),s("div",{ref_key:"moreActionsRef",ref:je,class:"relative"},[s("button",{class:g(["flex items-center gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary",z.value?"bg-accent text-accent-foreground":""]),onClick:jt},[t[30]||(t[30]=J(" 更多操作 ",-1)),t[31]||(t[31]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1)),Dt.value?(r(),l("span",{key:0,class:g(["ml-1 h-2 w-2 rounded-full",Nt.value]),"aria-hidden":"true"},null,2)):x("",!0)],2),z.value?(r(),l("div",hs,[s("button",{type:"button",class:"flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm text-foreground transition-colors hover:bg-accent",onClick:t[4]||(t[4]=o=>{Rt(),re()})}," 任务状态 "),t[32]||(t[32]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",T.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:T.value,onClick:t[5]||(t[5]=o=>{Zt(),re()})}," 刷新过期 ",10,ks),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",!O.value||T.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:!O.value||T.value,onClick:t[6]||(t[6]=o=>{kt(),re()})}," 刷新选中 ",10,Cs),t[33]||(t[33]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",O.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!O.value,onClick:t[7]||(t[7]=o=>{Jt(),re()})}," 批量启用 ",10,Ts),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",O.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!O.value,onClick:t[8]||(t[8]=o=>{Yt(),re()})}," 批量禁用 ",10,Ss),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",O.value?"text-destructive hover:bg-destructive/10":"cursor-not-allowed text-muted-foreground"]),disabled:!O.value,onClick:t[9]||(t[9]=o=>{Qt(),re()})}," 批量删除 ",10,As)])):x("",!0)],512)]),Y.value==="card"?(r(),l("div",Es,[(r(!0),l(ge,null,Ve(K.value,o=>(r(),l("div",{key:o.id,class:g(["rounded-2xl border border-border bg-card p-4",dt(o)]),onClick:i=>Ie(o.id)},[s("div",Ls,[s("div",null,[t[34]||(t[34]=s("p",{class:"text-xs text-muted-foreground"},"账号 ID",-1)),s("p",$s,n(o.id),1)]),s("div",Rs,[H(be,{modelValue:m.value.has(o.id),"onUpdate:modelValue":i=>Ie(o.id),onClick:t[10]||(t[10]=V(()=>{},["stop"]))},null,8,["modelValue","onUpdate:modelValue"]),s("span",{class:g(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",rt(o)])},n(ve(o)),3)])]),s("div",Vs,[s("div",null,[t[35]||(t[35]=s("p",null,"剩余时间",-1)),s("p",{class:g(["mt-1 text-sm font-semibold",at(o)])},n(nt(o.remaining_display)),3),o.expires_at?(r(),l("p",Ms,n(o.expires_at),1)):x("",!0)]),s("div",null,[t[36]||(t[36]=s("p",null,"冷却",-1)),s("p",{class:g(["mt-1",Ne(o)])},[o.cooldown_seconds>0?(r(),l("span",js,n(it(o.cooldown_seconds))+" · "+n(o.cooldown_reason),1)):(r(),l("span",Ds,n(o.cooldown_reason||"无冷却"),1))],2)]),s("div",null,[t[37]||(t[37]=s("p",null,"失败数",-1)),s("p",Os,n(o.error_count),1)]),s("div",null,[t[38]||(t[38]=s("p",null,"会话数",-1)),s("p",Bs,n(o.conversation_count),1)])]),s("div",Ns,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>vt(o.id),["stop"])}," 编辑 ",8,Us),lt(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[11]||(t[11]=V(()=>{},["stop"])),i=>mt(o.id)]}," 启用 ",8,zs)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[12]||(t[12]=V(()=>{},["stop"])),i=>gt(o.id)]}," 禁用 ",8,Ps)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:[t[13]||(t[13]=V(()=>{},["stop"])),i=>bt(o.id)]}," 删除 ",8,Fs)])],10,Is))),128)),!K.value.length&&!R(le)?(r(),l("div",Ks," 暂无账号数据,请检查后台配置。 ")):x("",!0)])):(r(),l("div",Gs,[s("table",Hs,[s("thead",Js,[s("tr",null,[s("th",Ys,[H(be,{modelValue:De.value,"onUpdate:modelValue":ut},null,8,["modelValue"])]),t[40]||(t[40]=s("th",{class:"py-3 pr-6"},"账号 ID",-1)),t[41]||(t[41]=s("th",{class:"py-3 pr-6"},"状态",-1)),s("th",Qs,[s("span",qs,[t[39]||(t[39]=J(" 剩余/过期 ",-1)),H(cs,{text:"过期时间为 12 小时,账户过期以北京时间为准。"})])]),t[42]||(t[42]=s("th",{class:"py-3 pr-6"},"冷却",-1)),t[43]||(t[43]=s("th",{class:"py-3 pr-6"},"失败数",-1)),t[44]||(t[44]=s("th",{class:"py-3 pr-6"},"会话数",-1)),t[45]||(t[45]=s("th",{class:"py-3 text-right"},"操作",-1))])]),s("tbody",Ws,[!K.value.length&&!R(le)?(r(),l("tr",Xs,[...t[46]||(t[46]=[s("td",{colspan:"8",class:"py-8 text-center text-muted-foreground"}," 暂无账号数据,请检查后台配置。 ",-1)])])):x("",!0),(r(!0),l(ge,null,Ve(K.value,o=>(r(),l("tr",{key:o.id,class:g(["border-t border-border",dt(o)]),onClick:i=>Ie(o.id)},[s("td",{class:"py-4 pr-4",onClick:t[14]||(t[14]=V(()=>{},["stop"]))},[H(be,{modelValue:m.value.has(o.id),"onUpdate:modelValue":i=>Ie(o.id)},null,8,["modelValue","onUpdate:modelValue"])]),s("td",eo,n(o.id),1),s("td",to,[s("span",{class:g(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",rt(o)])},n(ve(o)),3)]),s("td",so,[s("div",{class:g(["text-sm font-semibold",at(o)])},n(nt(o.remaining_display)),3),o.expires_at?(r(),l("span",oo,n(o.expires_at),1)):x("",!0)]),s("td",ro,[o.cooldown_seconds>0?(r(),l("span",{key:0,class:g(Ne(o))},n(it(o.cooldown_seconds))+" · "+n(o.cooldown_reason),3)):(r(),l("span",{key:1,class:g(Ne(o))},n(o.cooldown_reason||"无冷却"),3))]),s("td",lo,n(o.error_count),1),s("td",no,n(o.conversation_count),1),s("td",ao,[s("div",io,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>vt(o.id),["stop"])}," 编辑 ",8,uo),lt(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>mt(o.id),["stop"])}," 启用 ",8,co)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>gt(o.id),["stop"])}," 禁用 ",8,fo)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:V(i=>bt(o.id),["stop"])}," 删除 ",8,vo)])])],10,Zs))),128))])])]))])]),H(ds,{open:R(C).open.value,title:R(C).title.value,message:R(C).message.value,"confirm-text":R(C).confirmText.value,"cancel-text":R(C).cancelText.value,onConfirm:R(C).confirm,onCancel:R(C).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(r(),Re(Me,{to:"body"},[ye.value?(r(),l("div",po,[s("div",xo,[s("div",mo,[s("div",null,[t[47]||(t[47]=s("p",{class:"text-sm font-medium text-foreground"},"添加账户",-1)),s("p",go,n(N.value==="register"?"创建 DuckMail 账号并自动注册":"批量导入账户配置"),1)]),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Be}," 关闭 ")]),s("div",bo,[s("div",yo,[s("div",_o,[s("button",{type:"button",class:g(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",N.value==="register"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:t[15]||(t[15]=o=>N.value="register")}," 自动注册 ",2),s("button",{type:"button",class:g(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",N.value==="import"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:t[16]||(t[16]=o=>N.value="import")}," 批量导入 ",2)]),N.value==="register"?(r(),l("div",wo,[t[48]||(t[48]=s("label",{class:"block text-xs text-muted-foreground"},"注册数量",-1)),L(s("input",{"onUpdate:modelValue":t[17]||(t[17]=o=>de.value=o),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,de.value,void 0,{number:!0}]]),t[49]||(t[49]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"}," 默认域名来自设置面板(可在“配置面板”中修改) ",-1))])):(r(),l("div",ho,[t[50]||(t[50]=s("label",{class:"block text-xs text-muted-foreground"},"批量导入(每行一个)",-1)),L(s("textarea",{"onUpdate:modelValue":t[18]||(t[18]=o=>ue.value=o),class:"min-h-[140px] w-full rounded-2xl border border-input bg-background px-3 py-2 text-xs font-mono",placeholder:`duckmail----you@example.com----password +user@outlook.com----loginPassword----clientId----refreshToken`},null,512),[[$,ue.value]]),t[51]||(t[51]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},[s("p",null,"支持两种格式:"),s("p",{class:"mt-1 font-mono"},"duckmail----email----password"),s("p",{class:"mt-1 font-mono"},"email----password----clientId----refreshToken"),s("p",{class:"mt-2 text-[11px]"},'导入后请执行一次"刷新选中"以获取 Cookie。')],-1)),U.value?(r(),l("div",ko,n(U.value),1)):x("",!0)])),t[53]||(t[53]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-[11px] leading-relaxed text-muted-foreground"},[s("div",{class:"space-y-2"},[s("p",{class:"text-xs font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)"),s("div",{class:"space-y-1"},[s("p",null,[s("strong",null,"本工具严禁用于以下行为:")]),s("p",{class:"pl-3"},"• 商业用途或盈利性使用"),s("p",{class:"pl-3"},"• 任何形式的批量操作或自动化滥用(无论规模大小)"),s("p",{class:"pl-3"},"• 破坏市场秩序或恶意竞争"),s("p",{class:"pl-3"},"• 违反 Google 服务条款的任何行为"),s("p",{class:"pl-3"},"• 违反 Microsoft 服务条款的任何行为")]),s("div",{class:"space-y-1"},[s("p",null,[s("strong",null,"违规后果:"),J("滥用行为可能导致账号永久封禁、法律追责,一切后果由使用者自行承担。")])]),s("div",{class:"space-y-1"},[s("p",{class:"font-semibold text-foreground"},"📖 合法用途"),s("p",null,"本项目仅限于以下场景:"),s("p",{class:"pl-3"},"• 个人学习与技术研究"),s("p",{class:"pl-3"},"• 浏览器自动化技术探索"),s("p",{class:"pl-3"},"• 非商业性技术交流")]),s("div",{class:"space-y-1"},[s("p",{class:"font-semibold text-foreground"},"⚖️ 法律责任"),s("p",null,[s("strong",null,"使用者责任:"),J("使用本工具产生的一切后果(包括但不限于账号封禁、数据损失、法律纠纷)由使用者完全承担。")]),s("p",null,[s("strong",null,"合规义务:"),J("使用者必须遵守所在地法律法规及第三方服务条款(包括但不限于 Google Workspace、Microsoft 365 等服务条款)。")]),s("p",null,[s("strong",null,"作者免责:"),J("作者不对任何违规使用、滥用行为或由此产生的后果承担责任。")])]),s("div",{class:"space-y-1"},[s("p",{class:"font-semibold text-foreground"},"📋 技术声明"),s("p",{class:"pl-3"},'• 本项目按"现状"提供,不提供任何形式的担保'),s("p",{class:"pl-3"},"• 依赖的第三方服务(如 DuckMail API、Microsoft Graph API 等)可用性不受作者控制"),s("p",{class:"pl-3"},"• 作者保留随时停止维护、变更功能或关闭项目的权利")])])],-1)),H(be,{modelValue:ce.value,"onUpdate:modelValue":t[19]||(t[19]=o=>ce.value=o)},{default:Ct(()=>[...t[52]||(t[52]=[J(" 我已阅读并同意上述说明与限制 ",-1)])]),_:1},8,["modelValue"])])]),s("div",Co,[s("div",To,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Be}," 取消 "),N.value==="register"?(r(),l("button",{key:0,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:D.value||!ce.value,onClick:Xt}," 开始注册 ",8,So)):(r(),l("button",{key:1,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:_e.value||!ce.value,onClick:Lt}," 导入并保存 ",8,Ao))])])])])):x("",!0)])),(r(),Re(Me,{to:"body"},[Q.value?(r(),l("div",Eo,[s("div",Io,[s("div",Lo,[t[54]||(t[54]=s("div",null,[s("p",{class:"text-sm font-medium text-foreground"},"任务状态"),s("p",{class:"mt-1 text-xs text-muted-foreground"},"注册与刷新任务的状态与日志")],-1)),s("div",$o,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-muted-foreground transition-colors hover:border-primary hover:text-primary",disabled:!q.value.length&&!W.value.length&&!c.value&&!f.value&&!y.value,onClick:Mt}," 清空日志 ",8,Ro),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Vt}," 关闭 ")])]),s("div",Vo,[y.value?(r(),l("div",Mo,n(y.value),1)):x("",!0),c.value||f.value?(r(),l("div",jo,[c.value?(r(),l("div",Do,[t[55]||(t[55]=s("div",{class:"font-medium text-foreground"},"注册任务",-1)),s("div",Oo,[s("span",null,"状态:"+n(yt(c.value.status)),1),s("span",null,"进度:"+n(c.value.progress)+"/"+n(c.value.count),1),s("span",null,"成功:"+n(c.value.success_count),1),s("span",null,"失败:"+n(c.value.fail_count),1)])])):x("",!0),f.value?(r(),l("div",Bo,[t[56]||(t[56]=s("div",{class:"font-medium text-foreground"},"刷新任务",-1)),s("div",No,[s("span",null,"状态:"+n(yt(f.value.status)),1),s("span",null,"进度:"+n(f.value.progress)+"/"+n(f.value.account_ids.length),1),s("span",null,"成功:"+n(f.value.success_count),1),s("span",null,"失败:"+n(f.value.fail_count),1)])])):x("",!0)])):x("",!0),q.value.length||W.value.length?(r(),l("div",Uo,[s("div",{ref_key:"taskLogsRef",ref:qe,class:"scrollbar-slim flex-1 overflow-y-auto rounded-2xl border border-border bg-muted/30 p-3"},[q.value.length?(r(),l("div",zo,[t[57]||(t[57]=s("p",{class:"text-xs font-semibold text-foreground"},"注册日志",-1)),s("div",Po,[(r(!0),l(ge,null,Ve(q.value,(o,i)=>(r(),l("div",{key:`reg-${i}`,class:"font-mono"},n(ft(o)),1))),128))])])):x("",!0),W.value.length?(r(),l("div",Fo,[t[58]||(t[58]=s("p",{class:"text-xs font-semibold text-foreground"},"刷新日志",-1)),s("div",Ko,[(r(!0),l(ge,null,Ve(W.value,(o,i)=>(r(),l("div",{key:`login-${i}`,class:"font-mono"},n(ft(o)),1))),128))])])):x("",!0)],512)])):x("",!0),!y.value&&!c.value&&!f.value&&!q.value.length&&!W.value.length?(r(),l("div",Go," 暂无任务 ")):x("",!0)])])])):x("",!0)])),(r(),Re(Me,{to:"body"},[ae.value?(r(),l("div",Ho,[s("div",Jo,[s("div",{class:"flex items-center justify-between"},[t[59]||(t[59]=s("p",{class:"text-sm font-medium text-foreground"},"编辑账号",-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:ze}," 关闭 ")]),u.value?(r(),l("div",Yo,n(u.value),1)):x("",!0),s("div",Qo,[t[60]||(t[60]=s("label",{class:"block text-xs text-muted-foreground"},"账号 ID",-1)),L(s("input",{"onUpdate:modelValue":t[20]||(t[20]=o=>_.value.id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",disabled:""},null,512),[[$,_.value.id]]),t[61]||(t[61]=s("label",{class:"block text-xs text-muted-foreground"},"secure_c_ses",-1)),L(s("textarea",{"onUpdate:modelValue":t[21]||(t[21]=o=>_.value.secure_c_ses=o),class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",rows:"3"},null,512),[[$,_.value.secure_c_ses]]),t[62]||(t[62]=s("label",{class:"block text-xs text-muted-foreground"},"csesidx",-1)),L(s("input",{"onUpdate:modelValue":t[22]||(t[22]=o=>_.value.csesidx=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,_.value.csesidx]]),t[63]||(t[63]=s("label",{class:"block text-xs text-muted-foreground"},"config_id",-1)),L(s("input",{"onUpdate:modelValue":t[23]||(t[23]=o=>_.value.config_id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,_.value.config_id]]),t[64]||(t[64]=s("label",{class:"block text-xs text-muted-foreground"},"host_c_oses",-1)),L(s("input",{"onUpdate:modelValue":t[24]||(t[24]=o=>_.value.host_c_oses=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,_.value.host_c_oses]]),t[65]||(t[65]=s("label",{class:"block text-xs text-muted-foreground"},"expires_at",-1)),L(s("input",{"onUpdate:modelValue":t[25]||(t[25]=o=>_.value.expires_at=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"2025-12-23 10:59:21"},null,512),[[$,_.value.expires_at]])]),s("div",{class:"mt-6 flex items-center justify-end gap-2"},[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:ze}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Ht}," 保存 ")])])])):x("",!0)])),(r(),Re(Me,{to:"body"},[M.value?(r(),l("div",qo,[s("div",Wo,[s("div",Xo,[t[66]||(t[66]=s("p",{class:"text-sm font-medium text-foreground"},"账户配置(JSON)",-1)),s("div",Zo,[s("button",{class:"rounded-full bg-foreground px-3 py-1 text-xs text-background transition-opacity hover:opacity-90",onClick:Kt},n(B.value?"显示原文":"脱敏显示"),1),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Ue}," 关闭 ")])]),j.value?(r(),l("div",er,n(j.value),1)):x("",!0),s("div",tr,[L(s("textarea",{"onUpdate:modelValue":t[26]||(t[26]=o=>te.value=o),class:"h-96 w-full rounded-2xl border border-input bg-background px-4 py-3 font-mono text-xs text-foreground",spellcheck:"false",readonly:B.value},null,8,sr),[[$,te.value]])]),s("div",or,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Ue}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Gt,disabled:B.value}," 保存 ",8,rr)])])])):x("",!0)]))],64))}});export{cr as default}; diff --git a/static/assets/Accounts-D9VhnA3_.js b/static/assets/Accounts-D9VhnA3_.js new file mode 100644 index 0000000000000000000000000000000000000000..360335253d02b7921b28e60b4b13a347e38285be --- /dev/null +++ b/static/assets/Accounts-D9VhnA3_.js @@ -0,0 +1 @@ +import{g as C,C as Ft,h as a,d as Kt,D as Ht,i as N,o as Jt,s as Gt,j as Yt,c as l,a as s,x as U,y as Ce,m as V,v as I,A as xt,t as n,n as b,u as S,b as v,f as z,F as ue,r as Te,T as Se,w as A,e as r,E as Qt}from"./index-Babp7OwB.js";import{_ as qt}from"./SelectMenu.vue_vue_type_script_setup_true_lang-BVzlIq4n.js";import{_ as de}from"./Checkbox.vue_vue_type_script_setup_true_lang-566L0Qi-.js";import{_ as Wt}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-LOlIelGk.js";import{u as Xt}from"./useConfirmDialog-CVbCTmLz.js";import{_ as Zt}from"./HelpTip.vue_vue_type_script_setup_true_lang-Cx7pOr6m.js";const y={list:()=>C.get("/admin/accounts"),getConfig:()=>C.get("/admin/accounts-config"),updateConfig:x=>C.put("/admin/accounts-config",x),delete:x=>C.delete(`/admin/accounts/${x}`),disable:x=>C.put(`/admin/accounts/${x}/disable`),enable:x=>C.put(`/admin/accounts/${x}/enable`),startRegister:(x,_)=>C.post("/admin/register/start",{count:x,domain:_}),getRegisterTask:x=>C.get(`/admin/register/task/${x}`),getRegisterCurrent:()=>C.get("/admin/register/current"),startLogin:x=>C.post("/admin/login/start",x),getLoginTask:x=>C.get(`/admin/login/task/${x}`),getLoginCurrent:()=>C.get("/admin/login/current"),checkLogin:()=>C.post("/admin/login/check")},es=Ft("accounts",()=>{const x=a([]),_=a(!1);async function T(){_.value=!0;try{const u=await y.list();x.value=Array.isArray(u)?u:u.accounts||[]}finally{_.value=!1}}async function ee(u){await y.delete(u),await T()}async function h(u){await y.disable(u),await T()}async function te(u){await y.enable(u),await T()}async function Q(u){await Promise.all(u.map(L=>y.enable(L))),await T()}async function g(u){await Promise.all(u.map(L=>y.disable(L))),await T()}async function P(u){await Promise.all(u.map(L=>y.delete(L))),await T()}async function se(u){await y.updateConfig(u),await T()}return{accounts:x,isLoading:_,loadAccounts:T,deleteAccount:ee,disableAccount:h,enableAccount:te,bulkEnable:Q,bulkDisable:g,bulkDelete:P,updateConfig:se}}),ts={class:"space-y-8"},ss={class:"rounded-3xl border border-border bg-card p-6"},os={class:"flex flex-wrap items-center justify-between gap-4"},rs={class:"grid w-full grid-cols-2 gap-3 sm:flex sm:w-auto sm:items-center"},ls={class:"flex w-full flex-wrap items-center gap-3 text-xs text-muted-foreground sm:w-auto sm:flex-nowrap"},ns={class:"ml-auto flex items-center gap-2 sm:ml-0"},as={class:"mt-4 flex flex-wrap items-center gap-2"},is=["disabled"],us=["disabled"],ds={key:0,class:"absolute right-0 z-10 mt-2 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg"},cs=["disabled"],fs=["disabled"],vs=["disabled"],xs=["disabled"],gs=["disabled"],ps={key:0,class:"mt-6 grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3"},ms=["onClick"],bs={class:"flex items-start justify-between gap-3"},ys={class:"mt-1 font-mono text-xs text-foreground"},_s={class:"flex items-center gap-2"},ws={class:"mt-4 grid grid-cols-2 gap-3 text-xs text-muted-foreground"},ks={key:0,class:"mt-1 text-[11px]"},hs={key:0},Cs={key:1},Ts={class:"mt-1 text-sm font-semibold text-foreground"},Ss={class:"mt-1 text-sm font-semibold text-foreground"},As={class:"mt-4 flex flex-wrap items-center gap-2"},Ls=["onClick"],Es=["onClick"],$s=["onClick"],Rs=["onClick"],Vs={key:0,class:"rounded-2xl border border-border bg-background p-4 text-center text-xs text-muted-foreground"},Is={key:1,class:"relative mt-6 overflow-x-auto overflow-y-visible"},js={class:"min-w-full text-left text-sm"},Ds={class:"text-xs uppercase tracking-[0.2em] text-muted-foreground"},Ms={class:"py-3 pr-4"},Os={class:"py-3 pr-6"},Bs={class:"inline-flex items-center gap-2"},Ns={class:"text-sm text-foreground"},Us={key:0},zs=["onClick"],Ps={class:"py-4 pr-6 font-mono text-xs text-foreground"},Fs={class:"py-4 pr-6"},Ks={class:"py-4 pr-6"},Hs={key:0,class:"block text-[11px] text-muted-foreground"},Js={class:"py-4 pr-6 text-xs"},Gs={class:"py-4 pr-6 text-xs text-muted-foreground"},Ys={class:"py-4 pr-6 text-xs text-muted-foreground"},Qs={class:"py-4 text-right"},qs={class:"flex flex-wrap justify-end gap-2"},Ws=["onClick"],Xs=["onClick"],Zs=["onClick"],eo=["onClick"],to={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},so={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},oo={class:"mt-4 space-y-4 text-sm"},ro={class:"mt-6 flex items-center justify-end gap-2"},lo=["disabled"],no={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ao={class:"flex h-[80vh] w-full max-w-2xl flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},io={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},uo={class:"flex items-center gap-2"},co=["disabled"],fo={class:"flex min-h-0 flex-1 flex-col px-6 py-4"},vo={key:0,class:"rounded-2xl bg-destructive/10 px-3 py-2 text-xs text-destructive"},xo={key:1,class:"mt-4 grid gap-3 text-xs text-muted-foreground"},go={key:0,class:"space-y-1"},po={class:"flex flex-wrap gap-x-4 gap-y-1"},mo={key:1,class:"space-y-1"},bo={class:"flex flex-wrap gap-x-4 gap-y-1"},yo={key:2,class:"mt-4 flex min-h-0 flex-1 flex-col"},_o={key:0,class:"space-y-2"},wo={class:"space-y-1 text-[11px] text-muted-foreground"},ko={key:1,class:"mt-4 space-y-2"},ho={class:"space-y-1 text-[11px] text-muted-foreground"},Co={key:3,class:"mt-4 rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},To={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},So={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},Ao={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Lo={class:"mt-4 space-y-3 text-sm"},Eo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},$o={class:"w-full max-w-3xl rounded-3xl border border-border bg-card p-6 shadow-xl"},Ro={class:"flex items-center justify-between"},Vo={class:"flex items-center gap-2"},Io={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},jo={class:"mt-4"},Do=["readonly"],Mo={class:"mt-6 flex items-center justify-end gap-2"},Oo=["disabled"],De="accounts-register-task-cache",Me="accounts-login-task-cache",Oe="accounts-register-log-clear",Be="accounts-login-log-clear",Ne="accounts-register-task-cleared-id",Ue="accounts-login-task-cleared-id",Ko=Kt({__name:"Accounts",setup(x){const _=es(),{accounts:T,isLoading:ee}=Ht(_),h=Xt(),te=a(""),Q=a("all"),g=a(new Set),P=a("table"),se=a(!1),u=a(""),L=a(!1),E=a(""),q=a(""),j=a(!1),oe=a([]),re=a(1),ce=a(!1),F=a(!1),D=a(!1),Ae=a(null),fe=a(null),ve=a(null),M=a(null),O=a(null),W=a(0),X=a(0),xe=a(!1),d=a(null),c=a(null),ze=a(null),$=a(!1),k=a(!1),p=a(""),m=a({id:"",secure_c_ses:"",csesidx:"",config_id:"",host_c_oses:"",expires_at:""}),ge=a(null),Pe=a([]),gt=[{label:"全部状态",value:"all"},{label:"正常",value:"正常"},{label:"即将过期",value:"即将过期"},{label:"已过期",value:"已过期"},{label:"手动禁用",value:"手动禁用"},{label:"错误禁用",value:"错误禁用"},{label:"429限流",value:"429限流"}],B=N(()=>{const e=te.value.trim().toLowerCase();return T.value.filter(t=>{const o=!e||t.id.toLowerCase().includes(e),i=Q.value==="all"||le(t)===Q.value;return o&&i})}),R=N(()=>g.value.size),Le=N(()=>B.value.length>0&&B.value.every(e=>g.value.has(e.id))),pe=async()=>{await _.loadAccounts(),g.value=new Set,D.value=!1},Fe=e=>{try{const t=localStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}},Ke=e=>{try{return localStorage.getItem(e)||null}catch{return null}},me=(e,t)=>{try{if(t){localStorage.setItem(e,t);return}localStorage.removeItem(e)}catch{}},He=(e,t)=>{try{localStorage.setItem(e,JSON.stringify(t))}catch{}},Je=e=>{try{localStorage.removeItem(e)}catch{}},Ge=e=>{const t=localStorage.getItem(e),o=Number(t);return Number.isFinite(o)?o:0},be=(e,t)=>{try{localStorage.setItem(e,String(t))}catch{}},Ee=(e,t=!0)=>{e&&(e.id&&e.id===M.value||(e.id&&M.value&&e.id!==M.value&&(M.value=null,me(Ne,null)),d.value=e,e.id&&e.id!==fe.value&&(fe.value=e.id,W.value=0,be(Oe,0)),t&&He(De,e)))},ye=(e,t=!0)=>{e&&(e.id&&e.id===O.value||(e.id&&O.value&&e.id!==O.value&&(O.value=null,me(Ue,null)),c.value=e,e.id&&e.id!==ve.value&&(ve.value=e.id,X.value=0,be(Be,0)),t&&He(Me,e)))},pt=()=>{W.value=Ge(Oe),X.value=Ge(Be),M.value=Ke(Ne),O.value=Ke(Ue);const e=Fe(De);e&&e.id!==M.value&&(d.value=e,fe.value=e.id||null);const t=Fe(Me);t&&t.id!==O.value&&(c.value=t,ve.value=t.id||null)},mt=()=>{ce.value=!0,xe.value=!1},Ye=()=>{ce.value=!1},bt=async()=>{try{const e=[],t=d.value?.id,o=c.value?.id;if(t&&!_e(t)&&e.push(ct(t)),o&&!we(o)&&e.push(ft(o)),!e.length){await je();return}await Promise.all(e)}catch(e){p.value=e?.message||"任务状态更新失败"}},yt=async()=>{F.value=!0,await bt()},_t=()=>{F.value=!1},wt=()=>{const e=d.value?.id||null,t=c.value?.id||null;M.value=e,O.value=t,me(Ne,e),me(Ue,t),W.value=d.value?.logs?.length||0,X.value=c.value?.logs?.length||0,be(Oe,W.value),be(Be,X.value),d.value=null,c.value=null,fe.value=null,ve.value=null,p.value="",$.value=!1,k.value=!1,J(),G(),Je(De),Je(Me)},_e=e=>!!(e&&e===M.value),we=e=>!!(e&&e===O.value),kt=()=>{D.value=!D.value},Z=()=>{D.value=!1},Qe=e=>{if(!D.value)return;const t=e.target;Ae.value&&!Ae.value.contains(t)&&(D.value=!1)};Jt(async()=>{pt(),await pe(),await je(),Nt(),document.addEventListener("click",Qe)});const K=N(()=>{const e=d.value?.logs||[];return W.value?e.slice(W.value):e}),H=N(()=>{const e=c.value?.logs||[];return X.value?e.slice(X.value):e}),ht=N(()=>!!p.value||!!d.value||!!c.value||K.value.length>0||H.value.length>0),Ct=async()=>{await Qt();const e=ze.value;e&&(e.scrollTop=e.scrollHeight)};Gt([K,H,F],async()=>{F.value&&await Ct()},{deep:!0});const Tt=N(()=>{const e=d.value?.status,t=c.value?.status;return e==="running"||e==="pending"||t==="running"||t==="pending"}),St=N(()=>{if(p.value)return"bg-rose-500";if(Tt.value)return"bg-sky-400";const e=[];if(d.value){const f=d.value.success_count??0,w=d.value.fail_count??0,Y=d.value.count??f+w;e.push({success:f,fail:w,total:Y,status:d.value.status})}if(c.value){const f=c.value.success_count??0,w=c.value.fail_count??0,Y=c.value.account_ids?.length??f+w;e.push({success:f,fail:w,total:Y,status:c.value.status})}if(!e.length)return"bg-muted-foreground";const t=e.reduce((f,w)=>f+w.success,0),o=e.reduce((f,w)=>f+w.fail,0),i=e.reduce((f,w)=>f+(w.total||0),0);if(t>0&&o>0)return"bg-amber-400";if(o>0&&t===0)return"bg-rose-500";if(t>0&&o===0)return"bg-emerald-400";if(i===0){const f=e.every(Y=>Y.status==="success");if(e.some(Y=>Y.status==="failed"))return"bg-rose-500";if(f)return"bg-emerald-400"}return"bg-muted-foreground"});Yt(()=>{J(),G(),Bt(),document.removeEventListener("click",Qe)});const le=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?"429限流":e.cooldown_reason==="错误禁用"?"错误禁用":e.disabled?"手动禁用":e.status==="已过期"?"已过期":e.status==="即将过期"?"即将过期":"正常",qe=e=>{const t=le(e);return t==="429限流"||t==="即将过期"?"bg-amber-200 text-amber-900":t==="错误禁用"||t==="已过期"?"bg-destructive/10 text-destructive":t==="手动禁用"?"bg-muted text-muted-foreground":"bg-emerald-500 text-white"},We=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?!0:e.disabled||e.cooldown_reason==="错误禁用",Xe=e=>e==="已过期"?"过期":e==="未设置"?"未设置":e,Ze=e=>e.status==="已过期"?"text-rose-600":e.status==="即将过期"?"text-amber-700":e.status==="未设置"?"text-muted-foreground":"text-emerald-600",et=e=>e<60?`${e} 秒`:e<3600?`${Math.ceil(e/60)} 分钟`:`${(e/3600).toFixed(1)} 小时`,$e=e=>e.cooldown_seconds>0?"text-amber-700":e.cooldown_reason==="错误禁用"?"text-rose-600":"text-muted-foreground",tt=e=>{const t=le(e);return t==="手动禁用"||t==="已过期"?"bg-muted/70":""},ke=e=>{const t=new Set(g.value);t.has(e)?t.delete(e):t.add(e),g.value=t},st=()=>{if(Le.value){g.value=new Set;return}g.value=new Set(B.value.map(e=>e.id))},At=(e,t)=>e.id||`account_${t+1}`,Lt=async()=>(await y.getConfig()).accounts.map((t,o)=>({...t,id:At(t,o)})),ot=e=>`${e.time} [${e.level}] ${e.message}`,Et=(e,t)=>{let o=-1;for(let f=0;f{u.value="";try{const t=await Lt();Et(t,e)}catch(t){u.value=t.message||"加载账号配置失败"}},$t=async()=>{E.value="";try{const e=await y.getConfig();oe.value=Array.isArray(e.accounts)?e.accounts:[],q.value=JSON.stringify(nt(oe.value),null,2),j.value=!0,L.value=!0}catch(e){E.value=e.message||"加载账号配置失败"}},Re=()=>{L.value=!1,E.value="",j.value=!1},lt=()=>{const e=JSON.parse(q.value);if(!Array.isArray(e))throw new Error("配置格式必须是数组。");return e},Rt=e=>typeof e!="string"||!e?e:e.length<=6?`${e.slice(0,2)}****`:`${e.slice(0,3)}****`,nt=e=>{const t=new Set(["secure_c_ses","csesidx","config_id","host_c_oses","mail_password"]);return e.map(o=>{const i={...o};return t.forEach(f=>{const w=i[f];w&&(i[f]=Rt(w))}),i})},Vt=()=>{if(E.value="",!j.value){try{oe.value=lt()}catch(e){E.value=e.message||"JSON 格式错误";return}q.value=JSON.stringify(nt(oe.value),null,2),j.value=!0;return}q.value=JSON.stringify(oe.value,null,2),j.value=!1},It=async()=>{E.value="";try{const e=lt();await _.updateConfig(e),Re()}catch(e){E.value=e.message||"保存失败"}},Ve=()=>{se.value=!1,u.value=""},jt=async()=>{if(ge.value===null)return;const e=[...Pe.value];e[ge.value]={...e[ge.value],id:m.value.id,secure_c_ses:m.value.secure_c_ses,csesidx:m.value.csesidx,config_id:m.value.config_id,host_c_oses:m.value.host_c_oses||void 0,expires_at:m.value.expires_at||void 0};try{await _.updateConfig(e),Ve()}catch(t){u.value=t.message||"保存失败"}},Dt=async()=>{await _.bulkEnable(Array.from(g.value)),g.value=new Set},Mt=async()=>{await h.ask({title:"批量禁用",message:"确定要批量禁用选中的账号吗?"})&&(await _.bulkDisable(Array.from(g.value)),g.value=new Set)},Ot=async()=>{await h.ask({title:"批量删除",message:"确定要批量删除选中的账号吗?",confirmText:"删除"})&&(await _.bulkDelete(Array.from(g.value)),g.value=new Set)},at=async e=>{await _.enableAccount(e)},it=async e=>{await h.ask({title:"禁用账号",message:"确定要禁用该账号吗?"})&&await _.disableAccount(e)},ut=async e=>{await h.ask({title:"删除账号",message:"确定要删除该账号吗?",confirmText:"删除"})&&await _.deleteAccount(e)};let ne=null,ae=null,ie=null,he=!1;const J=()=>{ne!==null&&(window.clearInterval(ne),ne=null)},G=()=>{ae!==null&&(window.clearInterval(ae),ae=null)},Bt=()=>{ie!==null&&(window.clearInterval(ie),ie=null),he=!1},dt=e=>e==="pending"?"等待中":e==="running"?"执行中":e==="success"?"成功":e==="failed"?"失败":e,ct=async e=>{if(_e(e)){J();return}const t=await y.getRegisterTask(e);if(_e(t.id)){J();return}Ee(t),t.status!=="running"&&t.status!=="pending"&&($.value=!1,J(),await pe())},ft=async e=>{if(we(e)){G();return}const t=await y.getLoginTask(e);if(we(t.id)){G();return}ye(t),t.status!=="running"&&t.status!=="pending"&&(k.value=!1,G(),await pe())},vt=e=>{J(),ne=window.setInterval(()=>{ct(e).catch(t=>{p.value=t?.message||"注册任务更新失败",J(),$.value=!1})},3e3)},Ie=e=>{G(),ae=window.setInterval(()=>{ft(e).catch(t=>{p.value=t?.message||"刷新任务更新失败",G(),k.value=!1})},3e3)},Nt=()=>{ie===null&&(ie=window.setInterval(async()=>{if(!he&&!F.value&&!(ne!==null||ae!==null)&&!(!$.value&&!k.value&&!d.value&&!c.value)){he=!0;try{await je()}catch(e){p.value=e?.message||"后台刷新失败"}finally{he=!1}}},6e3))},je=async()=>{try{const e=await y.getRegisterCurrent();e&&"id"in e&&!_e(e.id)&&(Ee(e),(e.status==="running"||e.status==="pending")&&($.value=!0,vt(e.id)))}catch(e){p.value=e.message||"加载注册任务失败"}try{const e=await y.getLoginCurrent();e&&"id"in e&&!we(e.id)&&(ye(e),(e.status==="running"||e.status==="pending")&&(k.value=!0,Ie(e.id)))}catch(e){p.value=e.message||"加载刷新任务失败"}},Ut=async()=>{p.value="",$.value=!0;try{const e=Number.isFinite(re.value)&&re.value>0?re.value:void 0,t=await y.startRegister(e);Ee(t),vt(t.id),ce.value=!1,F.value=!0}catch(e){p.value=e.message||"启动注册失败",$.value=!1}},zt=async()=>{if(g.value.size){p.value="",k.value=!0;try{const e=await y.startLogin(Array.from(g.value));ye(e),Ie(e.id)}catch(e){p.value=e.message||"启动刷新失败",k.value=!1}}},Pt=async()=>{p.value="",k.value=!0;try{await y.checkLogin();const e=await y.getLoginCurrent();if(e&&"id"in e){ye(e),Ie(e.id);return}k.value=!1}catch(e){p.value=e.message||"触发刷新失败",k.value=!1}};return(e,t)=>(r(),l(ue,null,[s("div",ts,[s("section",ss,[s("div",os,[s("div",rs,[V(s("input",{"onUpdate:modelValue":t[0]||(t[0]=o=>te.value=o),type:"text",placeholder:"搜索账号 ID",class:"w-full rounded-full border border-input bg-background px-4 py-2 text-sm sm:w-48"},null,512),[[I,te.value]]),U(qt,{modelValue:Q.value,"onUpdate:modelValue":t[1]||(t[1]=o=>Q.value=o),options:gt},null,8,["modelValue"])]),s("div",ls,[U(de,{modelValue:Le.value,"onUpdate:modelValue":st},{default:xt(()=>[...t[24]||(t[24]=[z(" 全选 ",-1)])]),_:1},8,["modelValue"]),s("span",null,"已选 "+n(R.value)+" / "+n(B.value.length)+" 个账号",1),s("div",ns,[s("button",{type:"button",class:b(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",P.value==="table"?"bg-accent text-accent-foreground":""]),onClick:t[2]||(t[2]=o=>P.value="table"),"aria-label":"列表视图"},[...t[25]||(t[25]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])],2),s("button",{type:"button",class:b(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",P.value==="card"?"bg-accent text-accent-foreground":""]),onClick:t[3]||(t[3]=o=>P.value="card"),"aria-label":"卡片视图"},[...t[26]||(t[26]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h7v6H4V6zm9 0h7v6h-7V6zM4 14h7v4H4v-4zm9 0h7v4h-7v-4z"})],-1)])],2)])])]),s("div",as,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:S(ee),onClick:pe}," 刷新列表 ",8,is),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:$t}," 账户配置 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:$.value,onClick:mt}," 添加账户 ",8,us),s("div",{ref_key:"moreActionsRef",ref:Ae,class:"relative"},[s("button",{class:b(["flex items-center gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary",D.value?"bg-accent text-accent-foreground":""]),onClick:kt},[t[27]||(t[27]=z(" 更多操作 ",-1)),t[28]||(t[28]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1)),ht.value?(r(),l("span",{key:0,class:b(["ml-1 h-2 w-2 rounded-full",St.value]),"aria-hidden":"true"},null,2)):v("",!0)],2),D.value?(r(),l("div",ds,[s("button",{type:"button",class:"flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm text-foreground transition-colors hover:bg-accent",onClick:t[4]||(t[4]=o=>{yt(),Z()})}," 任务状态 "),t[29]||(t[29]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:b(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",k.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:k.value,onClick:t[5]||(t[5]=o=>{Pt(),Z()})}," 刷新过期 ",10,cs),s("button",{type:"button",class:b(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",!R.value||k.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:!R.value||k.value,onClick:t[6]||(t[6]=o=>{zt(),Z()})}," 刷新选中 ",10,fs),t[30]||(t[30]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:b(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",R.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!R.value,onClick:t[7]||(t[7]=o=>{Dt(),Z()})}," 批量启用 ",10,vs),s("button",{type:"button",class:b(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",R.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!R.value,onClick:t[8]||(t[8]=o=>{Mt(),Z()})}," 批量禁用 ",10,xs),s("button",{type:"button",class:b(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",R.value?"text-destructive hover:bg-destructive/10":"cursor-not-allowed text-muted-foreground"]),disabled:!R.value,onClick:t[9]||(t[9]=o=>{Ot(),Z()})}," 批量删除 ",10,gs)])):v("",!0)],512)]),P.value==="card"?(r(),l("div",ps,[(r(!0),l(ue,null,Te(B.value,o=>(r(),l("div",{key:o.id,class:b(["rounded-2xl border border-border bg-card p-4",tt(o)]),onClick:i=>ke(o.id)},[s("div",bs,[s("div",null,[t[31]||(t[31]=s("p",{class:"text-xs text-muted-foreground"},"账号 ID",-1)),s("p",ys,n(o.id),1)]),s("div",_s,[U(de,{modelValue:g.value.has(o.id),"onUpdate:modelValue":i=>ke(o.id),onClick:t[10]||(t[10]=A(()=>{},["stop"]))},null,8,["modelValue","onUpdate:modelValue"]),s("span",{class:b(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",qe(o)])},n(le(o)),3)])]),s("div",ws,[s("div",null,[t[32]||(t[32]=s("p",null,"剩余时间",-1)),s("p",{class:b(["mt-1 text-sm font-semibold",Ze(o)])},n(Xe(o.remaining_display)),3),o.expires_at?(r(),l("p",ks,n(o.expires_at),1)):v("",!0)]),s("div",null,[t[33]||(t[33]=s("p",null,"冷却",-1)),s("p",{class:b(["mt-1",$e(o)])},[o.cooldown_seconds>0?(r(),l("span",hs,n(et(o.cooldown_seconds))+" · "+n(o.cooldown_reason),1)):(r(),l("span",Cs,n(o.cooldown_reason||"无冷却"),1))],2)]),s("div",null,[t[34]||(t[34]=s("p",null,"失败数",-1)),s("p",Ts,n(o.error_count),1)]),s("div",null,[t[35]||(t[35]=s("p",null,"会话数",-1)),s("p",Ss,n(o.conversation_count),1)])]),s("div",As,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A(i=>rt(o.id),["stop"])}," 编辑 ",8,Ls),We(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[11]||(t[11]=A(()=>{},["stop"])),i=>at(o.id)]}," 启用 ",8,Es)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[12]||(t[12]=A(()=>{},["stop"])),i=>it(o.id)]}," 禁用 ",8,$s)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:[t[13]||(t[13]=A(()=>{},["stop"])),i=>ut(o.id)]}," 删除 ",8,Rs)])],10,ms))),128)),!B.value.length&&!S(ee)?(r(),l("div",Vs," 暂无账号数据,请检查后台配置。 ")):v("",!0)])):(r(),l("div",Is,[s("table",js,[s("thead",Ds,[s("tr",null,[s("th",Ms,[U(de,{modelValue:Le.value,"onUpdate:modelValue":st},null,8,["modelValue"])]),t[37]||(t[37]=s("th",{class:"py-3 pr-6"},"账号 ID",-1)),t[38]||(t[38]=s("th",{class:"py-3 pr-6"},"状态",-1)),s("th",Os,[s("span",Bs,[t[36]||(t[36]=z(" 剩余/过期 ",-1)),U(Zt,{text:"过期时间为 12 小时,账户过期以北京时间为准。"})])]),t[39]||(t[39]=s("th",{class:"py-3 pr-6"},"冷却",-1)),t[40]||(t[40]=s("th",{class:"py-3 pr-6"},"失败数",-1)),t[41]||(t[41]=s("th",{class:"py-3 pr-6"},"会话数",-1)),t[42]||(t[42]=s("th",{class:"py-3 text-right"},"操作",-1))])]),s("tbody",Ns,[!B.value.length&&!S(ee)?(r(),l("tr",Us,[...t[43]||(t[43]=[s("td",{colspan:"8",class:"py-8 text-center text-muted-foreground"}," 暂无账号数据,请检查后台配置。 ",-1)])])):v("",!0),(r(!0),l(ue,null,Te(B.value,o=>(r(),l("tr",{key:o.id,class:b(["border-t border-border",tt(o)]),onClick:i=>ke(o.id)},[s("td",{class:"py-4 pr-4",onClick:t[14]||(t[14]=A(()=>{},["stop"]))},[U(de,{modelValue:g.value.has(o.id),"onUpdate:modelValue":i=>ke(o.id)},null,8,["modelValue","onUpdate:modelValue"])]),s("td",Ps,n(o.id),1),s("td",Fs,[s("span",{class:b(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",qe(o)])},n(le(o)),3)]),s("td",Ks,[s("div",{class:b(["text-sm font-semibold",Ze(o)])},n(Xe(o.remaining_display)),3),o.expires_at?(r(),l("span",Hs,n(o.expires_at),1)):v("",!0)]),s("td",Js,[o.cooldown_seconds>0?(r(),l("span",{key:0,class:b($e(o))},n(et(o.cooldown_seconds))+" · "+n(o.cooldown_reason),3)):(r(),l("span",{key:1,class:b($e(o))},n(o.cooldown_reason||"无冷却"),3))]),s("td",Gs,n(o.error_count),1),s("td",Ys,n(o.conversation_count),1),s("td",Qs,[s("div",qs,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A(i=>rt(o.id),["stop"])}," 编辑 ",8,Ws),We(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A(i=>at(o.id),["stop"])}," 启用 ",8,Xs)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A(i=>it(o.id),["stop"])}," 禁用 ",8,Zs)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:A(i=>ut(o.id),["stop"])}," 删除 ",8,eo)])])],10,zs))),128))])])]))])]),U(Wt,{open:S(h).open.value,title:S(h).title.value,message:S(h).message.value,"confirm-text":S(h).confirmText.value,"cancel-text":S(h).cancelText.value,onConfirm:S(h).confirm,onCancel:S(h).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(r(),Ce(Se,{to:"body"},[ce.value?(r(),l("div",to,[s("div",so,[s("div",{class:"flex items-center justify-between"},[t[44]||(t[44]=s("div",null,[s("p",{class:"text-sm font-medium text-foreground"},"添加账户"),s("p",{class:"mt-1 text-xs text-muted-foreground"},"创建 DuckMail 账号并自动注册")],-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Ye}," 关闭 ")]),s("div",oo,[t[46]||(t[46]=s("label",{class:"block text-xs text-muted-foreground"},"注册数量",-1)),V(s("input",{"onUpdate:modelValue":t[15]||(t[15]=o=>re.value=o),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[I,re.value,void 0,{number:!0}]]),t[47]||(t[47]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"}," 默认域名来自设置面板(可在“配置面板”中修改) ",-1)),t[48]||(t[48]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-[11px] leading-relaxed text-muted-foreground"},[s("div",{class:"space-y-2"},[s("p",{class:"font-semibold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)"),s("div",{class:"space-y-1"},[s("p",null,[s("strong",null,"合法用途:"),z("本项目仅限个人学习、技术研究与非商业性技术交流,旨在探索浏览器自动化与系统集成。")])]),s("div",{class:"space-y-1"},[s("p",null,[s("strong",null,"禁止行为:"),z("严禁用于以下场景:")]),s("p",{class:"pl-3"},"• 商业用途或盈利性使用"),s("p",{class:"pl-3"},"• 任何形式的批量注册或自动化滥用(无论规模大小)"),s("p",{class:"pl-3"},"• 破坏市场秩序或恶意竞争"),s("p",{class:"pl-3"},"• 违反 Google 服务条款的任何行为")]),s("div",{class:"space-y-1"},[s("p",null,[s("strong",null,"使用责任:"),z("因使用本工具产生的一切后果由使用者完全承担,包括但不限于账号封禁、数据损失及法律责任。")]),s("p",null,[s("strong",null,"合规要求:"),z("使用者必须遵守所在地法律法规及第三方服务条款,作者不对任何违规使用行为承担责任。")])]),s("div",{class:"space-y-1"},[s("p",null,[s("strong",null,"技术声明:")]),s("p",{class:"pl-3"},'• 本项目按"现状"提供,不提供任何明示或暗示的担保'),s("p",{class:"pl-3"},"• 依赖 DuckMail API 等第三方服务,其可用性不受作者控制"),s("p",{class:"pl-3"},"• 作者保留随时停止维护或变更功能的权利")])])],-1)),U(de,{modelValue:xe.value,"onUpdate:modelValue":t[16]||(t[16]=o=>xe.value=o)},{default:xt(()=>[...t[45]||(t[45]=[z(" 我已阅读并同意上述说明与限制 ",-1)])]),_:1},8,["modelValue"])]),s("div",ro,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Ye}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:$.value||!xe.value,onClick:Ut}," 开始注册 ",8,lo)])])])):v("",!0)])),(r(),Ce(Se,{to:"body"},[F.value?(r(),l("div",no,[s("div",ao,[s("div",io,[t[49]||(t[49]=s("div",null,[s("p",{class:"text-sm font-medium text-foreground"},"任务状态"),s("p",{class:"mt-1 text-xs text-muted-foreground"},"注册与刷新任务的状态与日志")],-1)),s("div",uo,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-muted-foreground transition-colors hover:border-primary hover:text-primary",disabled:!K.value.length&&!H.value.length&&!d.value&&!c.value&&!p.value,onClick:wt}," 清空日志 ",8,co),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:_t}," 关闭 ")])]),s("div",fo,[p.value?(r(),l("div",vo,n(p.value),1)):v("",!0),d.value||c.value?(r(),l("div",xo,[d.value?(r(),l("div",go,[t[50]||(t[50]=s("div",{class:"font-medium text-foreground"},"注册任务",-1)),s("div",po,[s("span",null,"状态:"+n(dt(d.value.status)),1),s("span",null,"进度:"+n(d.value.progress)+"/"+n(d.value.count),1),s("span",null,"成功:"+n(d.value.success_count),1),s("span",null,"失败:"+n(d.value.fail_count),1)])])):v("",!0),c.value?(r(),l("div",mo,[t[51]||(t[51]=s("div",{class:"font-medium text-foreground"},"刷新任务",-1)),s("div",bo,[s("span",null,"状态:"+n(dt(c.value.status)),1),s("span",null,"进度:"+n(c.value.progress)+"/"+n(c.value.account_ids.length),1),s("span",null,"成功:"+n(c.value.success_count),1),s("span",null,"失败:"+n(c.value.fail_count),1)])])):v("",!0)])):v("",!0),K.value.length||H.value.length?(r(),l("div",yo,[s("div",{ref_key:"taskLogsRef",ref:ze,class:"scrollbar-slim flex-1 overflow-y-auto rounded-2xl border border-border bg-muted/30 p-3"},[K.value.length?(r(),l("div",_o,[t[52]||(t[52]=s("p",{class:"text-xs font-semibold text-foreground"},"注册日志",-1)),s("div",wo,[(r(!0),l(ue,null,Te(K.value,(o,i)=>(r(),l("div",{key:`reg-${i}`,class:"font-mono"},n(ot(o)),1))),128))])])):v("",!0),H.value.length?(r(),l("div",ko,[t[53]||(t[53]=s("p",{class:"text-xs font-semibold text-foreground"},"刷新日志",-1)),s("div",ho,[(r(!0),l(ue,null,Te(H.value,(o,i)=>(r(),l("div",{key:`login-${i}`,class:"font-mono"},n(ot(o)),1))),128))])])):v("",!0)],512)])):v("",!0),!p.value&&!d.value&&!c.value&&!K.value.length&&!H.value.length?(r(),l("div",Co," 暂无任务 ")):v("",!0)])])])):v("",!0)])),(r(),Ce(Se,{to:"body"},[se.value?(r(),l("div",To,[s("div",So,[s("div",{class:"flex items-center justify-between"},[t[54]||(t[54]=s("p",{class:"text-sm font-medium text-foreground"},"编辑账号",-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Ve}," 关闭 ")]),u.value?(r(),l("div",Ao,n(u.value),1)):v("",!0),s("div",Lo,[t[55]||(t[55]=s("label",{class:"block text-xs text-muted-foreground"},"账号 ID",-1)),V(s("input",{"onUpdate:modelValue":t[17]||(t[17]=o=>m.value.id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",disabled:""},null,512),[[I,m.value.id]]),t[56]||(t[56]=s("label",{class:"block text-xs text-muted-foreground"},"secure_c_ses",-1)),V(s("textarea",{"onUpdate:modelValue":t[18]||(t[18]=o=>m.value.secure_c_ses=o),class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",rows:"3"},null,512),[[I,m.value.secure_c_ses]]),t[57]||(t[57]=s("label",{class:"block text-xs text-muted-foreground"},"csesidx",-1)),V(s("input",{"onUpdate:modelValue":t[19]||(t[19]=o=>m.value.csesidx=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[I,m.value.csesidx]]),t[58]||(t[58]=s("label",{class:"block text-xs text-muted-foreground"},"config_id",-1)),V(s("input",{"onUpdate:modelValue":t[20]||(t[20]=o=>m.value.config_id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[I,m.value.config_id]]),t[59]||(t[59]=s("label",{class:"block text-xs text-muted-foreground"},"host_c_oses",-1)),V(s("input",{"onUpdate:modelValue":t[21]||(t[21]=o=>m.value.host_c_oses=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[I,m.value.host_c_oses]]),t[60]||(t[60]=s("label",{class:"block text-xs text-muted-foreground"},"expires_at",-1)),V(s("input",{"onUpdate:modelValue":t[22]||(t[22]=o=>m.value.expires_at=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"2025-12-23 10:59:21"},null,512),[[I,m.value.expires_at]])]),s("div",{class:"mt-6 flex items-center justify-end gap-2"},[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Ve}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:jt}," 保存 ")])])])):v("",!0)])),(r(),Ce(Se,{to:"body"},[L.value?(r(),l("div",Eo,[s("div",$o,[s("div",Ro,[t[61]||(t[61]=s("p",{class:"text-sm font-medium text-foreground"},"账户配置(JSON)",-1)),s("div",Vo,[s("button",{class:"rounded-full bg-foreground px-3 py-1 text-xs text-background transition-opacity hover:opacity-90",onClick:Vt},n(j.value?"显示原文":"脱敏显示"),1),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Re}," 关闭 ")])]),E.value?(r(),l("div",Io,n(E.value),1)):v("",!0),s("div",jo,[V(s("textarea",{"onUpdate:modelValue":t[23]||(t[23]=o=>q.value=o),class:"h-96 w-full rounded-2xl border border-input bg-background px-4 py-3 font-mono text-xs text-foreground",spellcheck:"false",readonly:j.value},null,8,Do),[[I,q.value]])]),s("div",Mo,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Re}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:It,disabled:j.value}," 保存 ",8,Oo)])])])):v("",!0)]))],64))}});export{Ko as default}; diff --git a/static/assets/Accounts-DIoN-Ccm.js b/static/assets/Accounts-DIoN-Ccm.js new file mode 100644 index 0000000000000000000000000000000000000000..0a68d96f06c5779371ca1ca5ee55dfbc4dcdbb20 --- /dev/null +++ b/static/assets/Accounts-DIoN-Ccm.js @@ -0,0 +1,2 @@ +import{g as E,C as os,h as i,d as rs,D as ls,i as J,o as ns,z as as,j as is,c as n,a as s,p as G,m as Re,q as R,v as V,s as $t,t as a,n as p,u as j,b as g,f as ee,F as ge,r as Ve,T as je,E as ds,w as M,e as l,G as us}from"./index-Bjh6Z8Zq.js";import{_ as cs}from"./SelectMenu.vue_vue_type_script_setup_true_lang-DG1nunQt.js";import{_ as be}from"./Checkbox.vue_vue_type_script_setup_true_lang-zogPNTWE.js";import{_ as fs}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-NECRqKOO.js";import{u as vs}from"./useConfirmDialog-GDc9JuxO.js";import{_ as ms}from"./HelpTip.vue_vue_type_script_setup_true_lang-D_8sK7BY.js";const w={list:()=>E.get("/admin/accounts"),getConfig:()=>E.get("/admin/accounts-config"),updateConfig:y=>E.put("/admin/accounts-config",y),delete:y=>E.delete(`/admin/accounts/${y}`),disable:y=>E.put(`/admin/accounts/${y}/disable`),enable:y=>E.put(`/admin/accounts/${y}/enable`),startRegister:(y,k)=>E.post("/admin/register/start",{count:y,domain:k}),getRegisterTask:y=>E.get(`/admin/register/task/${y}`),getRegisterCurrent:()=>E.get("/admin/register/current"),startLogin:y=>E.post("/admin/login/start",y),getLoginTask:y=>E.get(`/admin/login/task/${y}`),getLoginCurrent:()=>E.get("/admin/login/current"),checkLogin:()=>E.post("/admin/login/check")},ps=os("accounts",()=>{const y=i([]),k=i(!1);async function A(){k.value=!0;try{const x=await w.list();y.value=Array.isArray(x)?x:x.accounts||[]}finally{k.value=!1}}async function ne(x){await w.delete(x),await A()}async function T(x){await w.disable(x),await A()}async function d(x){await w.enable(x),await A()}async function ae(x){await Promise.all(x.map($=>w.enable($))),await A()}async function te(x){await Promise.all(x.map($=>w.disable($))),await A()}async function b(x){await Promise.all(x.map($=>w.delete($))),await A()}async function Y(x){await w.updateConfig(x),await A()}return{accounts:y,isLoading:k,loadAccounts:A,deleteAccount:ne,disableAccount:T,enableAccount:d,bulkEnable:ae,bulkDisable:te,bulkDelete:b,updateConfig:Y}}),xs={class:"space-y-8"},gs={class:"rounded-3xl border border-border bg-card p-6"},bs={class:"flex flex-wrap items-center justify-between gap-4"},ys={class:"grid w-full grid-cols-2 gap-3 sm:flex sm:w-auto sm:items-center"},_s={class:"flex w-full flex-wrap items-center gap-3 text-xs text-muted-foreground sm:w-auto sm:flex-nowrap"},hs={class:"ml-auto flex items-center gap-2 sm:ml-0"},ws={class:"mt-4 flex flex-wrap items-center gap-2"},ks=["disabled"],Cs=["disabled"],Ts={key:0,class:"absolute right-0 z-10 mt-2 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg"},Ss=["disabled"],$s=["disabled"],Is=["disabled"],Es=["disabled"],Ls=["disabled"],As={key:0,class:"mt-6 grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3"},Rs=["onClick"],Vs={class:"flex items-start justify-between gap-3"},js={class:"mt-1 font-mono text-xs text-foreground"},Ms={class:"flex items-center gap-2"},Ds={class:"mt-4 grid grid-cols-2 gap-3 text-xs text-muted-foreground"},Os={key:0,class:"mt-1 text-[11px]"},Bs={key:0},Ns={key:1},Us={class:"mt-1 text-sm font-semibold text-foreground"},zs={class:"mt-1 text-sm font-semibold text-foreground"},Ps={class:"mt-4 flex flex-wrap items-center gap-2"},Fs=["onClick"],Ks=["onClick"],Hs=["onClick"],Js=["onClick"],Gs={key:0,class:"rounded-2xl border border-border bg-background p-4 text-center text-xs text-muted-foreground"},Ys={key:1,class:"relative mt-6 overflow-x-auto overflow-y-visible"},qs={class:"min-w-full text-left text-sm"},Qs={class:"text-xs uppercase tracking-[0.2em] text-muted-foreground"},Xs={class:"py-3 pr-4"},Ws={class:"py-3 pr-6"},Zs={class:"inline-flex items-center gap-2"},eo={class:"text-sm text-foreground"},to={key:0},so=["onClick"],oo={class:"py-4 pr-6 font-mono text-xs text-foreground"},ro={class:"py-4 pr-6"},lo={class:"py-4 pr-6"},no={key:0,class:"block text-[11px] text-muted-foreground"},ao={class:"py-4 pr-6 text-xs"},io={class:"py-4 pr-6 text-xs text-muted-foreground"},uo={class:"py-4 pr-6 text-xs text-muted-foreground"},co={class:"py-4 text-right"},fo={class:"flex flex-wrap justify-end gap-2"},vo=["onClick"],mo=["onClick"],po=["onClick"],xo=["onClick"],go={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},bo={class:"flex max-h-[90vh] w-full max-w-lg flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},yo={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},_o={class:"mt-1 text-xs text-muted-foreground"},ho={class:"scrollbar-slim flex-1 overflow-y-auto px-6 py-4"},wo={class:"space-y-4 text-sm"},ko={class:"flex rounded-full border border-border bg-muted/30 p-1 text-xs"},Co={key:0,class:"space-y-4"},To={key:1,class:"space-y-4"},So={key:0,class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-xs text-rose-600"},$o={class:"border-t border-border/60 px-6 py-4"},Io={class:"flex items-center justify-end gap-2"},Eo=["disabled"],Lo=["disabled"],Ao={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Ro={class:"flex h-[80vh] w-full max-w-2xl flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},Vo={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},jo={class:"flex items-center gap-2"},Mo=["disabled"],Do={class:"flex min-h-0 flex-1 flex-col px-6 py-4"},Oo={key:0,class:"rounded-2xl bg-destructive/10 px-3 py-2 text-xs text-destructive"},Bo={key:1,class:"grid gap-3 text-xs text-muted-foreground"},No={key:0,class:"space-y-1"},Uo={class:"flex items-center gap-2 font-medium text-foreground"},zo={class:"flex flex-wrap gap-x-4 gap-y-1"},Po={key:1,class:"space-y-1"},Fo={class:"flex items-center gap-2 font-medium text-foreground"},Ko={class:"flex flex-wrap gap-x-4 gap-y-1"},Ho={key:2,class:"mt-4 flex min-h-0 flex-1 flex-col"},Jo={key:0,class:"space-y-2"},Go={class:"space-y-1 text-[11px] text-muted-foreground"},Yo={key:1,class:"mt-4 space-y-2"},qo={class:"space-y-1 text-[11px] text-muted-foreground"},Qo={key:3,class:"mt-4 rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},Xo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Wo={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},Zo={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},er={class:"mt-4 space-y-3 text-sm"},tr={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},sr={class:"w-full max-w-3xl rounded-3xl border border-border bg-card p-6 shadow-xl"},or={class:"flex items-center justify-between"},rr={class:"flex items-center gap-2"},lr={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},nr={class:"mt-4"},ar=["readonly"],ir={class:"mt-6 flex items-center justify-end gap-2"},dr=["disabled"],Je="accounts-register-task-cache",Ge="accounts-login-task-cache",Ye="accounts-register-log-clear",qe="accounts-login-log-clear",Qe="accounts-register-task-cleared-id",Xe="accounts-login-task-cleared-id",It="1970-01-01 00:00:00",xr=rs({__name:"Accounts",setup(y){const k=ps(),{accounts:A,isLoading:ne}=ls(k),T=vs(),d=ds(),ae=i(""),te=i("all"),b=i(new Set),Y=i("table"),x=i(!1),$=i(""),Me=i(!1),D=i(""),se=i(""),N=i(!1),ie=i([]),de=i(1),ye=i(!1),U=i("register"),ue=i(""),z=i(""),_e=i(!1),q=i(!1),P=i(!1),De=i(null),he=i(null),we=i(null),F=i(null),K=i(null),oe=i(0),re=i(0),ce=i(!1),c=i(null),f=i(null),We=i(null),O=i(!1),S=i(!1),_=i(""),h=i({id:"",secure_c_ses:"",csesidx:"",config_id:"",host_c_oses:"",expires_at:""}),ke=i(null),Ze=i([]),Et=[{label:"全部状态",value:"all"},{label:"正常",value:"正常"},{label:"即将过期",value:"即将过期"},{label:"已过期",value:"已过期"},{label:"手动禁用",value:"手动禁用"},{label:"错误禁用",value:"错误禁用"},{label:"429限流",value:"429限流"}],H=J(()=>{const t=ae.value.trim().toLowerCase();return A.value.filter(e=>{const o=!t||e.id.toLowerCase().includes(t),r=te.value==="all"||ve(e)===te.value;return o&&r})}),B=J(()=>b.value.size),Oe=J(()=>H.value.length>0&&H.value.every(t=>b.value.has(t.id))),fe=async()=>{await k.loadAccounts(),b.value=new Set,P.value=!1},et=t=>{try{const e=localStorage.getItem(t);return e?JSON.parse(e):null}catch{return null}},tt=t=>{try{return localStorage.getItem(t)||null}catch{return null}},Ce=(t,e)=>{try{if(e){localStorage.setItem(t,e);return}localStorage.removeItem(t)}catch{}},st=(t,e)=>{try{localStorage.setItem(t,JSON.stringify(e))}catch{}},ot=t=>{try{localStorage.removeItem(t)}catch{}},rt=t=>{const e=localStorage.getItem(t),o=Number(e);return Number.isFinite(o)?o:0},Te=(t,e)=>{try{localStorage.setItem(t,String(e))}catch{}},Be=(t,e=!0)=>{t&&(t.id&&t.id===F.value||(t.id&&F.value&&t.id!==F.value&&(F.value=null,Ce(Qe,null)),c.value=t,t.id&&t.id!==he.value&&(he.value=t.id,oe.value=0,Te(Ye,0)),e&&st(Je,t)))},Se=(t,e=!0)=>{t&&(t.id&&t.id===K.value||(t.id&&K.value&&t.id!==K.value&&(K.value=null,Ce(Xe,null)),f.value=t,t.id&&t.id!==we.value&&(we.value=t.id,re.value=0,Te(qe,0)),e&&st(Ge,t)))},Lt=()=>{oe.value=rt(Ye),re.value=rt(qe),F.value=tt(Qe),K.value=tt(Xe);const t=et(Je);t&&t.id!==F.value&&(c.value=t,he.value=t.id||null);const e=et(Ge);e&&e.id!==K.value&&(f.value=e,we.value=e.id||null)},At=()=>{ye.value=!0,U.value="register",ue.value="",z.value="",_e.value=!1,ce.value=!1},Ne=()=>{ye.value=!1},Rt=t=>{const e=[],o=[];return t.split(/\r?\n/).map(u=>u.trim()).filter(Boolean).forEach((u,m)=>{const v=u.split("----").map(I=>I.trim()),C=m+1;if(v.length){if(v[0].toLowerCase()==="duckmail"){if(v.length<3||!v[1]||!v[2]){o.push(`第 ${C} 行格式错误(duckmail)`);return}const I=v[1],Ae=v.slice(2).join("----");e.push({id:I,secure_c_ses:"",csesidx:"",config_id:"",expires_at:It,mail_provider:"duckmail",mail_address:I,mail_password:Ae});return}if(v.length>=4&&v[0]&&v[2]&&v[3]){const I=v[0],Ae=v[1]||"",L=v[2],ss=v.slice(3).join("----");e.push({id:I,secure_c_ses:"",csesidx:"",config_id:"",expires_at:It,mail_provider:"microsoft",mail_address:I,mail_password:Ae,mail_client_id:L,mail_refresh_token:ss,mail_tenant:"consumers"});return}o.push(`第 ${C} 行格式错误`)}}),{items:e,errors:o}},Vt=async()=>{if(z.value="",!ue.value.trim()){z.value="请输入导入内容";return}const{items:t,errors:e}=Rt(ue.value);if(!t.length){z.value=e.length?e.join(","):"未识别到有效账号";return}if(e.length){z.value=e.slice(0,3).join(",");return}_e.value=!0;try{const r=[...await vt()],u=new Map(r.map((C,I)=>[C.id,I])),m=[];t.forEach(C=>{const I=u.get(C.id||"");if(I===void 0){r.push(C),m.push(C.id);return}const L={...r[I],mail_provider:C.mail_provider,mail_address:C.mail_address};C.mail_provider==="microsoft"?(L.mail_client_id=C.mail_client_id,L.mail_refresh_token=C.mail_refresh_token,L.mail_tenant=C.mail_tenant,L.mail_password=C.mail_password):(L.mail_password=C.mail_password,L.mail_client_id=void 0,L.mail_refresh_token=void 0,L.mail_tenant=void 0),r[I]=L,m.push(C.id)}),await k.updateConfig(r),await fe(),b.value=new Set(m),d.success(`成功导入 ${m.length} 个账户`),Ne(),await T.ask({title:"导入成功",message:`已导入 ${m.length} 个账户并自动选中。是否立即刷新这些账户以获取 Cookie?`,confirmText:"立即刷新",cancelText:"稍后手动刷新"})&&await St()}catch(o){z.value=o.message||"导入失败",d.error(o.message||"导入失败")}finally{_e.value=!1}},jt=async()=>{try{const t=[],e=c.value?.id,o=f.value?.id;if(e&&!$e(e)&&t.push(kt(e)),o&&!Ie(o)&&t.push(Ct(o)),!t.length){await He();return}await Promise.all(t)}catch(t){_.value=t?.message||"任务状态更新失败"}},Ue=async()=>{q.value=!0,await jt()},Mt=()=>{q.value=!1},Dt=()=>{const t=c.value?.id||null,e=f.value?.id||null;F.value=t,K.value=e,Ce(Qe,t),Ce(Xe,e),oe.value=c.value?.logs?.length||0,re.value=f.value?.logs?.length||0,Te(Ye,oe.value),Te(qe,re.value),c.value=null,f.value=null,he.value=null,we.value=null,_.value="",O.value=!1,S.value=!1,W(),Z(),ot(Je),ot(Ge)},$e=t=>!!(t&&t===F.value),Ie=t=>!!(t&&t===K.value),Ot=()=>{P.value=!P.value},le=()=>{P.value=!1},lt=t=>{if(!P.value)return;const e=t.target;De.value&&!De.value.contains(e)&&(P.value=!1)};ns(async()=>{Lt(),await fe(),await He(),Zt(),document.addEventListener("click",lt)});const Q=J(()=>{const t=c.value?.logs||[];return oe.value?t.slice(oe.value):t}),X=J(()=>{const t=f.value?.logs||[];return re.value?t.slice(re.value):t}),Bt=J(()=>!!_.value||!!c.value||!!f.value||Q.value.length>0||X.value.length>0),Nt=async()=>{await us();const t=We.value;t&&(t.scrollTop=t.scrollHeight)};as([Q,X,q],async()=>{q.value&&await Nt()},{deep:!0});const Ut=J(()=>{const t=c.value?.status,e=f.value?.status;return t==="running"||t==="pending"||e==="running"||e==="pending"}),zt=J(()=>{if(_.value)return"bg-rose-500";if(Ut.value)return"bg-sky-400";const t=[];if(c.value){const u=c.value.success_count??0,m=c.value.fail_count??0,v=c.value.count??u+m;t.push({success:u,fail:m,total:v,status:c.value.status})}if(f.value){const u=f.value.success_count??0,m=f.value.fail_count??0,v=f.value.account_ids?.length??u+m;t.push({success:u,fail:m,total:v,status:f.value.status})}if(!t.length)return"bg-muted-foreground";const e=t.reduce((u,m)=>u+m.success,0),o=t.reduce((u,m)=>u+m.fail,0),r=t.reduce((u,m)=>u+(m.total||0),0);if(e>0&&o>0)return"bg-amber-400";if(o>0&&e===0)return"bg-rose-500";if(e>0&&o===0)return"bg-emerald-400";if(r===0){const u=t.every(v=>v.status==="success");if(t.some(v=>v.status==="failed"))return"bg-rose-500";if(u)return"bg-emerald-400"}return"bg-muted-foreground"});is(()=>{W(),Z(),Wt(),document.removeEventListener("click",lt)});const ve=t=>t.cooldown_reason?.includes("429")&&t.cooldown_seconds>0?"429限流":t.cooldown_reason==="错误禁用"?"错误禁用":t.disabled?"手动禁用":t.status==="已过期"?"已过期":t.status==="即将过期"?"即将过期":"正常",nt=t=>{const e=ve(t);return e==="429限流"||e==="即将过期"?"bg-amber-200 text-amber-900":e==="错误禁用"||e==="已过期"?"bg-destructive/10 text-destructive":e==="手动禁用"?"bg-muted text-muted-foreground":"bg-emerald-500 text-white"},at=t=>t.cooldown_reason?.includes("429")&&t.cooldown_seconds>0?!0:t.disabled||t.cooldown_reason==="错误禁用",it=t=>t==="已过期"?"过期":t==="未设置"?"未设置":t,dt=t=>t.status==="已过期"?"text-rose-600":t.status==="即将过期"?"text-amber-700":t.status==="未设置"?"text-muted-foreground":"text-emerald-600",ut=t=>t<60?`${t} 秒`:t<3600?`${Math.ceil(t/60)} 分钟`:`${(t/3600).toFixed(1)} 小时`,ze=t=>t.cooldown_seconds>0?"text-amber-700":t.cooldown_reason==="错误禁用"?"text-rose-600":"text-muted-foreground",ct=t=>{const e=ve(t);return e==="手动禁用"||e==="已过期"?"bg-muted/70":""},Ee=t=>{const e=new Set(b.value);e.has(t)?e.delete(t):e.add(t),b.value=e},ft=()=>{if(Oe.value){b.value=new Set;return}b.value=new Set(H.value.map(t=>t.id))},Pt=(t,e)=>t.id||`account_${e+1}`,vt=async()=>(await w.getConfig()).accounts.map((e,o)=>({...e,id:Pt(e,o)})),mt=t=>`${t.time} [${t.level}] ${t.message}`,Ft=(t,e)=>{let o=-1;for(let u=0;u{$.value="";try{const e=await vt();Ft(e,t)}catch(e){$.value=e.message||"加载账号配置失败"}},Kt=async()=>{D.value="";try{const t=await w.getConfig();ie.value=Array.isArray(t.accounts)?t.accounts:[],se.value=JSON.stringify(gt(ie.value),null,2),N.value=!0,Me.value=!0}catch(t){D.value=t.message||"加载账号配置失败"}},Pe=()=>{Me.value=!1,D.value="",N.value=!1},xt=()=>{const t=JSON.parse(se.value);if(!Array.isArray(t))throw new Error("配置格式必须是数组。");return t},Ht=t=>typeof t!="string"||!t?t:t.length<=6?`${t.slice(0,2)}****`:`${t.slice(0,3)}****`,gt=t=>{const e=new Set(["secure_c_ses","csesidx","config_id","host_c_oses","mail_password","mail_refresh_token","mail_client_id"]);return t.map(o=>{const r={...o};return e.forEach(u=>{const m=r[u];m&&(r[u]=Ht(m))}),r})},Jt=()=>{if(D.value="",!N.value){try{ie.value=xt()}catch(t){D.value=t.message||"JSON 格式错误";return}se.value=JSON.stringify(gt(ie.value),null,2),N.value=!0;return}se.value=JSON.stringify(ie.value,null,2),N.value=!1},Gt=async()=>{D.value="";try{const t=xt();await k.updateConfig(t),d.success("配置保存成功"),Pe()}catch(t){D.value=t.message||"保存失败",d.error(t.message||"保存失败")}},Fe=()=>{x.value=!1,$.value=""},Yt=async()=>{if(ke.value===null)return;const t=[...Ze.value];t[ke.value]={...t[ke.value],id:h.value.id,secure_c_ses:h.value.secure_c_ses,csesidx:h.value.csesidx,config_id:h.value.config_id,host_c_oses:h.value.host_c_oses||void 0,expires_at:h.value.expires_at||void 0};try{await k.updateConfig(t),d.success("账号编辑成功"),Fe()}catch(e){$.value=e.message||"保存失败",d.error(e.message||"保存失败")}},qt=async()=>{try{await k.bulkEnable(Array.from(b.value)),d.success("批量启用成功"),b.value=new Set}catch(t){d.error(t.message||"批量启用失败")}},Qt=async()=>{if(await T.ask({title:"批量禁用",message:"确定要批量禁用选中的账号吗?"}))try{await k.bulkDisable(Array.from(b.value)),d.success("批量禁用成功"),b.value=new Set}catch(e){d.error(e.message||"批量禁用失败")}},Xt=async()=>{if(await T.ask({title:"批量删除",message:"确定要批量删除选中的账号吗?",confirmText:"删除"}))try{await k.bulkDelete(Array.from(b.value)),d.success("批量删除成功"),b.value=new Set}catch(e){d.error(e.message||"批量删除失败")}},bt=async t=>{try{await k.enableAccount(t),d.success("账号已启用")}catch(e){d.error(e.message||"启用失败")}},yt=async t=>{if(await T.ask({title:"禁用账号",message:"确定要禁用该账号吗?"}))try{await k.disableAccount(t),d.success("账号已禁用")}catch(o){d.error(o.message||"禁用失败")}},_t=async t=>{if(await T.ask({title:"删除账号",message:"确定要删除该账号吗?",confirmText:"删除"}))try{await k.deleteAccount(t),d.success("账号已删除")}catch(o){d.error(o.message||"删除失败")}};let me=null,pe=null,xe=null,Le=!1;const W=()=>{me!==null&&(window.clearInterval(me),me=null)},Z=()=>{pe!==null&&(window.clearInterval(pe),pe=null)},Wt=()=>{xe!==null&&(window.clearInterval(xe),xe=null),Le=!1},ht=t=>t==="pending"?"等待中":t==="running"?"执行中":t==="success"?"成功":t==="failed"?"失败":t,wt=t=>{const e=t.status,o=t.success_count??0,r=t.fail_count??0;if(e==="running"||e==="pending")return"bg-sky-400";if(e==="success"||e==="failed"){if(o>0&&r===0)return"bg-emerald-400";if(r>0&&o===0)return"bg-rose-500";if(o>0&&r>0)return"bg-amber-400"}return"bg-muted-foreground"},kt=async t=>{if($e(t)){W();return}const e=await w.getRegisterTask(t);if($e(e.id)){W();return}if(Be(e),e.status!=="running"&&e.status!=="pending"){O.value=!1,W(),await fe();const o=e.success_count||0,r=e.fail_count||0;o>0&&r>0?d.success(`注册任务完成:成功 ${o},失败 ${r}`):o>0&&r===0?d.success(`注册任务完成:全部成功 (${o})`):r>0&&o===0?d.error(`注册任务完成:全部失败 (${r})`):d.error("注册任务失败")}},Ct=async t=>{if(Ie(t)){Z();return}const e=await w.getLoginTask(t);if(Ie(e.id)){Z();return}if(Se(e),e.status!=="running"&&e.status!=="pending"){S.value=!1,Z(),await fe();const o=e.success_count||0,r=e.fail_count||0;o>0&&r>0?d.success(`刷新任务完成:成功 ${o},失败 ${r}`):o>0&&r===0?d.success(`刷新任务完成:全部成功 (${o})`):r>0&&o===0?d.error(`刷新任务完成:全部失败 (${r})`):d.error("刷新任务失败")}},Tt=t=>{W(),me=window.setInterval(()=>{kt(t).catch(e=>{_.value=e?.message||"注册任务更新失败",W(),O.value=!1})},3e3)},Ke=t=>{Z(),pe=window.setInterval(()=>{Ct(t).catch(e=>{_.value=e?.message||"刷新任务更新失败",Z(),S.value=!1})},3e3)},Zt=()=>{xe===null&&(xe=window.setInterval(async()=>{if(!Le&&!q.value&&!(me!==null||pe!==null)&&!(!O.value&&!S.value&&!c.value&&!f.value)){Le=!0;try{await He()}catch(t){_.value=t?.message||"后台刷新失败"}finally{Le=!1}}},6e3))},He=async()=>{try{const t=await w.getRegisterCurrent();t&&"id"in t&&!$e(t.id)&&(Be(t),(t.status==="running"||t.status==="pending")&&(O.value=!0,Tt(t.id)))}catch(t){_.value=t.message||"加载注册任务失败"}try{const t=await w.getLoginCurrent();t&&"id"in t&&!Ie(t.id)&&(Se(t),(t.status==="running"||t.status==="pending")&&(S.value=!0,Ke(t.id)))}catch(t){_.value=t.message||"加载刷新任务失败"}},es=async()=>{_.value="",O.value=!0;try{const t=Number.isFinite(de.value)&&de.value>0?de.value:void 0,e=await w.startRegister(t);Be(e),Tt(e.id),ye.value=!1,q.value=!0}catch(t){_.value=t.message||"启动注册失败",O.value=!1}},St=async()=>{if(b.value.size){_.value="",S.value=!0;try{const t=await w.startLogin(Array.from(b.value));Se(t),Ke(t.id),Ue()}catch(t){_.value=t.message||"启动刷新失败",S.value=!1}}},ts=async()=>{_.value="",S.value=!0;try{await w.checkLogin();const t=await w.getLoginCurrent();if(t&&"id"in t){Se(t),Ke(t.id),Ue();return}S.value=!1}catch(t){_.value=t.message||"触发刷新失败",S.value=!1}};return(t,e)=>(l(),n(ge,null,[s("div",xs,[s("section",gs,[s("div",bs,[s("div",ys,[R(s("input",{"onUpdate:modelValue":e[0]||(e[0]=o=>ae.value=o),type:"text",placeholder:"搜索账号 ID",class:"w-full rounded-full border border-input bg-background px-4 py-2 text-sm sm:w-48"},null,512),[[V,ae.value]]),G(cs,{modelValue:te.value,"onUpdate:modelValue":e[1]||(e[1]=o=>te.value=o),options:Et,class:"!w-full sm:!w-40"},null,8,["modelValue"])]),s("div",_s,[G(be,{modelValue:Oe.value,"onUpdate:modelValue":ft},{default:$t(()=>[...e[27]||(e[27]=[ee(" 全选 ",-1)])]),_:1},8,["modelValue"]),s("span",null,"已选 "+a(B.value)+" / "+a(H.value.length)+" 个账号",1),s("div",hs,[s("button",{type:"button",class:p(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",Y.value==="table"?"bg-accent text-accent-foreground":""]),onClick:e[2]||(e[2]=o=>Y.value="table"),"aria-label":"列表视图"},[...e[28]||(e[28]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])],2),s("button",{type:"button",class:p(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",Y.value==="card"?"bg-accent text-accent-foreground":""]),onClick:e[3]||(e[3]=o=>Y.value="card"),"aria-label":"卡片视图"},[...e[29]||(e[29]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h7v6H4V6zm9 0h7v6h-7V6zM4 14h7v4H4v-4zm9 0h7v4h-7v-4z"})],-1)])],2)])])]),s("div",ws,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary disabled:cursor-not-allowed disabled:opacity-50",disabled:j(ne),onClick:fe}," 刷新列表 ",8,ks),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:Kt}," 账户配置 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary disabled:cursor-not-allowed disabled:opacity-50",disabled:O.value,onClick:At}," 添加账户 ",8,Cs),s("div",{ref_key:"moreActionsRef",ref:De,class:"relative"},[s("button",{class:p(["flex items-center gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary",P.value?"bg-accent text-accent-foreground":""]),onClick:Ot},[e[30]||(e[30]=ee(" 更多操作 ",-1)),e[31]||(e[31]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1)),Bt.value?(l(),n("span",{key:0,class:p(["ml-1 h-2 w-2 rounded-full",zt.value]),"aria-hidden":"true"},null,2)):g("",!0)],2),P.value?(l(),n("div",Ts,[s("button",{type:"button",class:"flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm text-foreground transition-colors hover:bg-accent",onClick:e[4]||(e[4]=o=>{Ue(),le()})}," 任务状态 "),e[32]||(e[32]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:p(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",S.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:S.value,onClick:e[5]||(e[5]=o=>{ts(),le()})}," 刷新过期 ",10,Ss),s("button",{type:"button",class:p(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",!B.value||S.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:!B.value||S.value,onClick:e[6]||(e[6]=o=>{St(),le()})}," 刷新选中 ",10,$s),e[33]||(e[33]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:p(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",B.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!B.value,onClick:e[7]||(e[7]=o=>{qt(),le()})}," 批量启用 ",10,Is),s("button",{type:"button",class:p(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",B.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!B.value,onClick:e[8]||(e[8]=o=>{Qt(),le()})}," 批量禁用 ",10,Es),s("button",{type:"button",class:p(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",B.value?"text-destructive hover:bg-destructive/10":"cursor-not-allowed text-muted-foreground"]),disabled:!B.value,onClick:e[9]||(e[9]=o=>{Xt(),le()})}," 批量删除 ",10,Ls)])):g("",!0)],512)]),Y.value==="card"?(l(),n("div",As,[(l(!0),n(ge,null,Ve(H.value,o=>(l(),n("div",{key:o.id,class:p(["rounded-2xl border border-border bg-card p-4",ct(o)]),onClick:r=>Ee(o.id)},[s("div",Vs,[s("div",null,[e[34]||(e[34]=s("p",{class:"text-xs text-muted-foreground"},"账号 ID",-1)),s("p",js,a(o.id),1)]),s("div",Ms,[G(be,{modelValue:b.value.has(o.id),"onUpdate:modelValue":r=>Ee(o.id),onClick:e[10]||(e[10]=M(()=>{},["stop"]))},null,8,["modelValue","onUpdate:modelValue"]),s("span",{class:p(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",nt(o)])},a(ve(o)),3)])]),s("div",Ds,[s("div",null,[e[35]||(e[35]=s("p",null,"剩余时间",-1)),s("p",{class:p(["mt-1 text-sm font-semibold",dt(o)])},a(it(o.remaining_display)),3),o.expires_at?(l(),n("p",Os,a(o.expires_at),1)):g("",!0)]),s("div",null,[e[36]||(e[36]=s("p",null,"冷却",-1)),s("p",{class:p(["mt-1",ze(o)])},[o.cooldown_seconds>0?(l(),n("span",Bs,a(ut(o.cooldown_seconds))+" · "+a(o.cooldown_reason),1)):(l(),n("span",Ns,a(o.cooldown_reason||"无冷却"),1))],2)]),s("div",null,[e[37]||(e[37]=s("p",null,"失败数",-1)),s("p",Us,a(o.error_count),1)]),s("div",null,[e[38]||(e[38]=s("p",null,"会话数",-1)),s("p",zs,a(o.conversation_count),1)])]),s("div",Ps,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:M(r=>pt(o.id),["stop"])}," 编辑 ",8,Fs),at(o)?(l(),n("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[e[11]||(e[11]=M(()=>{},["stop"])),r=>bt(o.id)]}," 启用 ",8,Ks)):(l(),n("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[e[12]||(e[12]=M(()=>{},["stop"])),r=>yt(o.id)]}," 禁用 ",8,Hs)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:[e[13]||(e[13]=M(()=>{},["stop"])),r=>_t(o.id)]}," 删除 ",8,Js)])],10,Rs))),128)),!H.value.length&&!j(ne)?(l(),n("div",Gs," 暂无账号数据,请检查后台配置。 ")):g("",!0)])):(l(),n("div",Ys,[s("table",qs,[s("thead",Qs,[s("tr",null,[s("th",Xs,[G(be,{modelValue:Oe.value,"onUpdate:modelValue":ft},null,8,["modelValue"])]),e[40]||(e[40]=s("th",{class:"py-3 pr-6"},"账号 ID",-1)),e[41]||(e[41]=s("th",{class:"py-3 pr-6"},"状态",-1)),s("th",Ws,[s("span",Zs,[e[39]||(e[39]=ee(" 剩余/过期 ",-1)),G(ms,{text:"过期时间为 12 小时,账户过期以北京时间为准。"})])]),e[42]||(e[42]=s("th",{class:"py-3 pr-6"},"冷却",-1)),e[43]||(e[43]=s("th",{class:"py-3 pr-6"},"失败数",-1)),e[44]||(e[44]=s("th",{class:"py-3 pr-6"},"会话数",-1)),e[45]||(e[45]=s("th",{class:"py-3 text-right"},"操作",-1))])]),s("tbody",eo,[!H.value.length&&!j(ne)?(l(),n("tr",to,[...e[46]||(e[46]=[s("td",{colspan:"8",class:"py-8 text-center text-muted-foreground"}," 暂无账号数据,请检查后台配置。 ",-1)])])):g("",!0),(l(!0),n(ge,null,Ve(H.value,o=>(l(),n("tr",{key:o.id,class:p(["border-t border-border",ct(o)]),onClick:r=>Ee(o.id)},[s("td",{class:"py-4 pr-4",onClick:e[14]||(e[14]=M(()=>{},["stop"]))},[G(be,{modelValue:b.value.has(o.id),"onUpdate:modelValue":r=>Ee(o.id)},null,8,["modelValue","onUpdate:modelValue"])]),s("td",oo,a(o.id),1),s("td",ro,[s("span",{class:p(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",nt(o)])},a(ve(o)),3)]),s("td",lo,[s("div",{class:p(["text-sm font-semibold",dt(o)])},a(it(o.remaining_display)),3),o.expires_at?(l(),n("span",no,a(o.expires_at),1)):g("",!0)]),s("td",ao,[o.cooldown_seconds>0?(l(),n("span",{key:0,class:p(ze(o))},a(ut(o.cooldown_seconds))+" · "+a(o.cooldown_reason),3)):(l(),n("span",{key:1,class:p(ze(o))},a(o.cooldown_reason||"无冷却"),3))]),s("td",io,a(o.error_count),1),s("td",uo,a(o.conversation_count),1),s("td",co,[s("div",fo,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:M(r=>pt(o.id),["stop"])}," 编辑 ",8,vo),at(o)?(l(),n("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:M(r=>bt(o.id),["stop"])}," 启用 ",8,mo)):(l(),n("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:M(r=>yt(o.id),["stop"])}," 禁用 ",8,po)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:M(r=>_t(o.id),["stop"])}," 删除 ",8,xo)])])],10,so))),128))])])]))])]),G(fs,{open:j(T).open.value,title:j(T).title.value,message:j(T).message.value,"confirm-text":j(T).confirmText.value,"cancel-text":j(T).cancelText.value,onConfirm:j(T).confirm,onCancel:j(T).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(l(),Re(je,{to:"body"},[ye.value?(l(),n("div",go,[s("div",bo,[s("div",yo,[s("div",null,[e[47]||(e[47]=s("p",{class:"text-sm font-medium text-foreground"},"添加账户",-1)),s("p",_o,a(U.value==="register"?"创建 DuckMail 账号并自动注册":"批量导入账户配置"),1)]),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Ne}," 关闭 ")]),s("div",ho,[s("div",wo,[s("div",ko,[s("button",{type:"button",class:p(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",U.value==="register"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:e[15]||(e[15]=o=>U.value="register")}," 自动注册 ",2),s("button",{type:"button",class:p(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",U.value==="import"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:e[16]||(e[16]=o=>U.value="import")}," 批量导入 ",2)]),U.value==="register"?(l(),n("div",Co,[e[48]||(e[48]=s("label",{class:"block text-xs text-muted-foreground"},"注册数量",-1)),R(s("input",{"onUpdate:modelValue":e[17]||(e[17]=o=>de.value=o),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,de.value,void 0,{number:!0}]]),e[49]||(e[49]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},[s("p",null,"默认域名(可在配置面板修改,推荐使用)"),s("p",{class:"mt-1"},"注册失败建议关闭无头浏览器再试")],-1))])):(l(),n("div",To,[e[50]||(e[50]=s("label",{class:"block text-xs text-muted-foreground"},"批量导入(每行一个)",-1)),R(s("textarea",{"onUpdate:modelValue":e[18]||(e[18]=o=>ue.value=o),class:"min-h-[140px] w-full rounded-2xl border border-input bg-background px-3 py-2 text-xs font-mono",placeholder:`duckmail----you@example.com----password +user@outlook.com----loginPassword----clientId----refreshToken`},null,512),[[V,ue.value]]),e[51]||(e[51]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},[s("p",null,"支持两种格式:"),s("p",{class:"mt-1 font-mono"},"duckmail----email----password"),s("p",{class:"mt-1 font-mono"},"email----password----clientId----refreshToken"),s("p",{class:"mt-2"},'导入后请执行一次"刷新选中"以获取 Cookie。'),s("p",{class:"mt-1"},"注册失败建议关闭无头浏览器再试")],-1)),z.value?(l(),n("div",So,a(z.value),1)):g("",!0)])),e[53]||(e[53]=s("div",{class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-[11px] leading-relaxed"},[s("p",{class:"text-xs font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)"),s("p",{class:"mt-1 text-muted-foreground"},[ee("详细声明请查看项目 "),s("a",{href:"https://github.com/Dreamy-rain/gemini-business2api/blob/main/docs/DISCLAIMER.md",target:"_blank",class:"text-primary hover:underline font-medium"},"DISCLAIMER.md")])],-1)),G(be,{modelValue:ce.value,"onUpdate:modelValue":e[19]||(e[19]=o=>ce.value=o)},{default:$t(()=>[...e[52]||(e[52]=[ee(" 我已阅读并同意上述说明与限制 ",-1)])]),_:1},8,["modelValue"])])]),s("div",$o,[s("div",Io,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Ne}," 取消 "),U.value==="register"?(l(),n("button",{key:0,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",disabled:O.value||!ce.value,onClick:es}," 开始注册 ",8,Eo)):(l(),n("button",{key:1,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",disabled:_e.value||!ce.value,onClick:Vt}," 导入并保存 ",8,Lo))])])])])):g("",!0)])),(l(),Re(je,{to:"body"},[q.value?(l(),n("div",Ao,[s("div",Ro,[s("div",Vo,[e[54]||(e[54]=s("div",null,[s("p",{class:"text-sm font-medium text-foreground"},"任务状态"),s("p",{class:"mt-1 text-xs text-muted-foreground"},"注册与刷新任务的状态与日志")],-1)),s("div",jo,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-muted-foreground transition-colors hover:border-primary hover:text-primary disabled:cursor-not-allowed disabled:opacity-50",disabled:!Q.value.length&&!X.value.length&&!c.value&&!f.value&&!_.value,onClick:Dt}," 清空日志 ",8,Mo),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Mt}," 关闭 ")])]),s("div",Do,[_.value?(l(),n("div",Oo,a(_.value),1)):g("",!0),c.value||f.value?(l(),n("div",Bo,[c.value?(l(),n("div",No,[s("div",Uo,[s("span",{class:p(["h-2.5 w-2.5 rounded-full",wt(c.value)]),"aria-hidden":"true"},null,2),e[55]||(e[55]=ee(" 注册任务 ",-1))]),s("div",zo,[s("span",null,"状态:"+a(ht(c.value.status)),1),s("span",null,"进度:"+a(c.value.progress)+"/"+a(c.value.count),1),s("span",null,"成功:"+a(c.value.success_count),1),s("span",null,"失败:"+a(c.value.fail_count),1)])])):g("",!0),f.value?(l(),n("div",Po,[s("div",Fo,[s("span",{class:p(["h-2.5 w-2.5 rounded-full",wt(f.value)]),"aria-hidden":"true"},null,2),e[56]||(e[56]=ee(" 刷新任务 ",-1))]),s("div",Ko,[s("span",null,"状态:"+a(ht(f.value.status)),1),s("span",null,"进度:"+a(f.value.progress)+"/"+a(f.value.account_ids.length),1),s("span",null,"成功:"+a(f.value.success_count),1),s("span",null,"失败:"+a(f.value.fail_count),1)])])):g("",!0)])):g("",!0),Q.value.length||X.value.length?(l(),n("div",Ho,[s("div",{ref_key:"taskLogsRef",ref:We,class:"scrollbar-slim flex-1 overflow-y-auto rounded-2xl border border-border bg-muted/30 p-3"},[Q.value.length?(l(),n("div",Jo,[e[57]||(e[57]=s("p",{class:"text-xs font-semibold text-foreground"},"注册日志",-1)),s("div",Go,[(l(!0),n(ge,null,Ve(Q.value,(o,r)=>(l(),n("div",{key:`reg-${r}`,class:"font-mono"},a(mt(o)),1))),128))])])):g("",!0),X.value.length?(l(),n("div",Yo,[e[58]||(e[58]=s("p",{class:"text-xs font-semibold text-foreground"},"刷新日志",-1)),s("div",qo,[(l(!0),n(ge,null,Ve(X.value,(o,r)=>(l(),n("div",{key:`login-${r}`,class:"font-mono"},a(mt(o)),1))),128))])])):g("",!0)],512)])):g("",!0),!_.value&&!c.value&&!f.value&&!Q.value.length&&!X.value.length?(l(),n("div",Qo," 暂无任务 ")):g("",!0)])])])):g("",!0)])),(l(),Re(je,{to:"body"},[x.value?(l(),n("div",Xo,[s("div",Wo,[s("div",{class:"flex items-center justify-between"},[e[59]||(e[59]=s("p",{class:"text-sm font-medium text-foreground"},"编辑账号",-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Fe}," 关闭 ")]),$.value?(l(),n("div",Zo,a($.value),1)):g("",!0),s("div",er,[e[60]||(e[60]=s("label",{class:"block text-xs text-muted-foreground"},"账号 ID",-1)),R(s("input",{"onUpdate:modelValue":e[20]||(e[20]=o=>h.value.id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",disabled:""},null,512),[[V,h.value.id]]),e[61]||(e[61]=s("label",{class:"block text-xs text-muted-foreground"},"secure_c_ses",-1)),R(s("textarea",{"onUpdate:modelValue":e[21]||(e[21]=o=>h.value.secure_c_ses=o),class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",rows:"3"},null,512),[[V,h.value.secure_c_ses]]),e[62]||(e[62]=s("label",{class:"block text-xs text-muted-foreground"},"csesidx",-1)),R(s("input",{"onUpdate:modelValue":e[22]||(e[22]=o=>h.value.csesidx=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,h.value.csesidx]]),e[63]||(e[63]=s("label",{class:"block text-xs text-muted-foreground"},"config_id",-1)),R(s("input",{"onUpdate:modelValue":e[23]||(e[23]=o=>h.value.config_id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,h.value.config_id]]),e[64]||(e[64]=s("label",{class:"block text-xs text-muted-foreground"},"host_c_oses",-1)),R(s("input",{"onUpdate:modelValue":e[24]||(e[24]=o=>h.value.host_c_oses=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,h.value.host_c_oses]]),e[65]||(e[65]=s("label",{class:"block text-xs text-muted-foreground"},"expires_at",-1)),R(s("input",{"onUpdate:modelValue":e[25]||(e[25]=o=>h.value.expires_at=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"2025-12-23 10:59:21"},null,512),[[V,h.value.expires_at]])]),s("div",{class:"mt-6 flex items-center justify-end gap-2"},[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Fe}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Yt}," 保存 ")])])])):g("",!0)])),(l(),Re(je,{to:"body"},[Me.value?(l(),n("div",tr,[s("div",sr,[s("div",or,[e[66]||(e[66]=s("p",{class:"text-sm font-medium text-foreground"},"账户配置(JSON)",-1)),s("div",rr,[s("button",{class:"rounded-full bg-foreground px-3 py-1 text-xs text-background transition-opacity hover:opacity-90",onClick:Jt},a(N.value?"显示原文":"脱敏显示"),1),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Pe}," 关闭 ")])]),D.value?(l(),n("div",lr,a(D.value),1)):g("",!0),s("div",nr,[R(s("textarea",{"onUpdate:modelValue":e[26]||(e[26]=o=>se.value=o),class:"h-96 w-full rounded-2xl border border-input bg-background px-4 py-3 font-mono text-xs text-foreground",spellcheck:"false",readonly:N.value},null,8,ar),[[V,se.value]])]),s("div",ir,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Pe}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",onClick:Gt,disabled:N.value}," 保存 ",8,dr)])])])):g("",!0)]))],64))}});export{xr as default}; diff --git a/static/assets/Accounts-DW_IBG7n.js b/static/assets/Accounts-DW_IBG7n.js new file mode 100644 index 0000000000000000000000000000000000000000..1dec093575ac8908d4bf231094dad87f0d852780 --- /dev/null +++ b/static/assets/Accounts-DW_IBG7n.js @@ -0,0 +1,2 @@ +import{g as A,C as ts,h as a,d as ss,D as os,i as G,o as rs,s as ls,j as ns,c as l,a as s,x as H,y as Re,m as L,v as $,A as Tt,t as n,n as g,u as R,b as x,f as J,F as ge,r as Ve,T as Me,w as V,e as r,E as as}from"./index-CDbQWWUi.js";import{_ as is}from"./SelectMenu.vue_vue_type_script_setup_true_lang-DebMUA1u.js";import{_ as be}from"./Checkbox.vue_vue_type_script_setup_true_lang-B6kSOS_e.js";import{_ as ds}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-BA1J4R7-.js";import{u as us}from"./useConfirmDialog-qOidKSEY.js";import{_ as cs}from"./HelpTip.vue_vue_type_script_setup_true_lang-Cw2hnECN.js";const w={list:()=>A.get("/admin/accounts"),getConfig:()=>A.get("/admin/accounts-config"),updateConfig:b=>A.put("/admin/accounts-config",b),delete:b=>A.delete(`/admin/accounts/${b}`),disable:b=>A.put(`/admin/accounts/${b}/disable`),enable:b=>A.put(`/admin/accounts/${b}/enable`),startRegister:(b,h)=>A.post("/admin/register/start",{count:b,domain:h}),getRegisterTask:b=>A.get(`/admin/register/task/${b}`),getRegisterCurrent:()=>A.get("/admin/register/current"),startLogin:b=>A.post("/admin/login/start",b),getLoginTask:b=>A.get(`/admin/login/task/${b}`),getLoginCurrent:()=>A.get("/admin/login/current"),checkLogin:()=>A.post("/admin/login/check")},fs=ts("accounts",()=>{const b=a([]),h=a(!1);async function I(){h.value=!0;try{const u=await w.list();b.value=Array.isArray(u)?u:u.accounts||[]}finally{h.value=!1}}async function le(u){await w.delete(u),await I()}async function C(u){await w.disable(u),await I()}async function ne(u){await w.enable(u),await I()}async function ee(u){await Promise.all(u.map(M=>w.enable(M))),await I()}async function m(u){await Promise.all(u.map(M=>w.disable(M))),await I()}async function Y(u){await Promise.all(u.map(M=>w.delete(M))),await I()}async function ae(u){await w.updateConfig(u),await I()}return{accounts:b,isLoading:h,loadAccounts:I,deleteAccount:le,disableAccount:C,enableAccount:ne,bulkEnable:ee,bulkDisable:m,bulkDelete:Y,updateConfig:ae}}),vs={class:"space-y-8"},ps={class:"rounded-3xl border border-border bg-card p-6"},xs={class:"flex flex-wrap items-center justify-between gap-4"},ms={class:"grid w-full grid-cols-2 gap-3 sm:flex sm:w-auto sm:items-center"},gs={class:"flex w-full flex-wrap items-center gap-3 text-xs text-muted-foreground sm:w-auto sm:flex-nowrap"},bs={class:"ml-auto flex items-center gap-2 sm:ml-0"},ys={class:"mt-4 flex flex-wrap items-center gap-2"},_s=["disabled"],ws=["disabled"],hs={key:0,class:"absolute right-0 z-10 mt-2 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg"},ks=["disabled"],Cs=["disabled"],Ts=["disabled"],Ss=["disabled"],As=["disabled"],Es={key:0,class:"mt-6 grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3"},Is=["onClick"],Ls={class:"flex items-start justify-between gap-3"},$s={class:"mt-1 font-mono text-xs text-foreground"},Rs={class:"flex items-center gap-2"},Vs={class:"mt-4 grid grid-cols-2 gap-3 text-xs text-muted-foreground"},Ms={key:0,class:"mt-1 text-[11px]"},js={key:0},Ds={key:1},Os={class:"mt-1 text-sm font-semibold text-foreground"},Bs={class:"mt-1 text-sm font-semibold text-foreground"},Ns={class:"mt-4 flex flex-wrap items-center gap-2"},Us=["onClick"],zs=["onClick"],Ps=["onClick"],Fs=["onClick"],Ks={key:0,class:"rounded-2xl border border-border bg-background p-4 text-center text-xs text-muted-foreground"},Gs={key:1,class:"relative mt-6 overflow-x-auto overflow-y-visible"},Hs={class:"min-w-full text-left text-sm"},Js={class:"text-xs uppercase tracking-[0.2em] text-muted-foreground"},Ys={class:"py-3 pr-4"},Qs={class:"py-3 pr-6"},qs={class:"inline-flex items-center gap-2"},Ws={class:"text-sm text-foreground"},Xs={key:0},Zs=["onClick"],eo={class:"py-4 pr-6 font-mono text-xs text-foreground"},to={class:"py-4 pr-6"},so={class:"py-4 pr-6"},oo={key:0,class:"block text-[11px] text-muted-foreground"},ro={class:"py-4 pr-6 text-xs"},lo={class:"py-4 pr-6 text-xs text-muted-foreground"},no={class:"py-4 pr-6 text-xs text-muted-foreground"},ao={class:"py-4 text-right"},io={class:"flex flex-wrap justify-end gap-2"},uo=["onClick"],co=["onClick"],fo=["onClick"],vo=["onClick"],po={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},xo={class:"flex max-h-[90vh] w-full max-w-lg flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},mo={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},go={class:"mt-1 text-xs text-muted-foreground"},bo={class:"scrollbar-slim flex-1 overflow-y-auto px-6 py-4"},yo={class:"space-y-4 text-sm"},_o={class:"flex rounded-full border border-border bg-muted/30 p-1 text-xs"},wo={key:0,class:"space-y-4"},ho={key:1,class:"space-y-4"},ko={key:0,class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-xs text-rose-600"},Co={class:"border-t border-border/60 px-6 py-4"},To={class:"flex items-center justify-end gap-2"},So=["disabled"],Ao=["disabled"],Eo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Io={class:"flex h-[80vh] w-full max-w-2xl flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},Lo={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},$o={class:"flex items-center gap-2"},Ro=["disabled"],Vo={class:"flex min-h-0 flex-1 flex-col px-6 py-4"},Mo={key:0,class:"rounded-2xl bg-destructive/10 px-3 py-2 text-xs text-destructive"},jo={key:1,class:"grid gap-3 text-xs text-muted-foreground"},Do={key:0,class:"space-y-1"},Oo={class:"flex flex-wrap gap-x-4 gap-y-1"},Bo={key:1,class:"space-y-1"},No={class:"flex flex-wrap gap-x-4 gap-y-1"},Uo={key:2,class:"mt-4 flex min-h-0 flex-1 flex-col"},zo={key:0,class:"space-y-2"},Po={class:"space-y-1 text-[11px] text-muted-foreground"},Fo={key:1,class:"mt-4 space-y-2"},Ko={class:"space-y-1 text-[11px] text-muted-foreground"},Go={key:3,class:"mt-4 rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},Ho={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Jo={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},Yo={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Qo={class:"mt-4 space-y-3 text-sm"},qo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Wo={class:"w-full max-w-3xl rounded-3xl border border-border bg-card p-6 shadow-xl"},Xo={class:"flex items-center justify-between"},Zo={class:"flex items-center gap-2"},er={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},tr={class:"mt-4"},sr=["readonly"],or={class:"mt-6 flex items-center justify-end gap-2"},rr=["disabled"],Ge="accounts-register-task-cache",He="accounts-login-task-cache",Je="accounts-register-log-clear",Ye="accounts-login-log-clear",Qe="accounts-register-task-cleared-id",qe="accounts-login-task-cleared-id",St="1970-01-01 00:00:00",cr=ss({__name:"Accounts",setup(b){const h=fs(),{accounts:I,isLoading:le}=os(h),C=us(),ne=a(""),ee=a("all"),m=a(new Set),Y=a("table"),ae=a(!1),u=a(""),M=a(!1),j=a(""),te=a(""),B=a(!1),ie=a([]),de=a(1),ye=a(!1),N=a("register"),ue=a(""),U=a(""),_e=a(!1),Q=a(!1),z=a(!1),je=a(null),we=a(null),he=a(null),P=a(null),F=a(null),se=a(0),oe=a(0),ce=a(!1),c=a(null),f=a(null),We=a(null),D=a(!1),T=a(!1),y=a(""),_=a({id:"",secure_c_ses:"",csesidx:"",config_id:"",host_c_oses:"",expires_at:""}),ke=a(null),Xe=a([]),At=[{label:"全部状态",value:"all"},{label:"正常",value:"正常"},{label:"即将过期",value:"即将过期"},{label:"已过期",value:"已过期"},{label:"手动禁用",value:"手动禁用"},{label:"错误禁用",value:"错误禁用"},{label:"429限流",value:"429限流"}],K=G(()=>{const e=ne.value.trim().toLowerCase();return I.value.filter(t=>{const o=!e||t.id.toLowerCase().includes(e),i=ee.value==="all"||ve(t)===ee.value;return o&&i})}),O=G(()=>m.value.size),De=G(()=>K.value.length>0&&K.value.every(e=>m.value.has(e.id))),fe=async()=>{await h.loadAccounts(),m.value=new Set,z.value=!1},Ze=e=>{try{const t=localStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}},et=e=>{try{return localStorage.getItem(e)||null}catch{return null}},Ce=(e,t)=>{try{if(t){localStorage.setItem(e,t);return}localStorage.removeItem(e)}catch{}},tt=(e,t)=>{try{localStorage.setItem(e,JSON.stringify(t))}catch{}},st=e=>{try{localStorage.removeItem(e)}catch{}},ot=e=>{const t=localStorage.getItem(e),o=Number(t);return Number.isFinite(o)?o:0},Te=(e,t)=>{try{localStorage.setItem(e,String(t))}catch{}},Oe=(e,t=!0)=>{e&&(e.id&&e.id===P.value||(e.id&&P.value&&e.id!==P.value&&(P.value=null,Ce(Qe,null)),c.value=e,e.id&&e.id!==we.value&&(we.value=e.id,se.value=0,Te(Je,0)),t&&tt(Ge,e)))},Se=(e,t=!0)=>{e&&(e.id&&e.id===F.value||(e.id&&F.value&&e.id!==F.value&&(F.value=null,Ce(qe,null)),f.value=e,e.id&&e.id!==he.value&&(he.value=e.id,oe.value=0,Te(Ye,0)),t&&tt(He,e)))},Et=()=>{se.value=ot(Je),oe.value=ot(Ye),P.value=et(Qe),F.value=et(qe);const e=Ze(Ge);e&&e.id!==P.value&&(c.value=e,we.value=e.id||null);const t=Ze(He);t&&t.id!==F.value&&(f.value=t,he.value=t.id||null)},It=()=>{ye.value=!0,N.value="register",ue.value="",U.value="",_e.value=!1,ce.value=!1},Be=()=>{ye.value=!1},Lt=e=>{const t=[],o=[];return e.split(/\r?\n/).map(d=>d.trim()).filter(Boolean).forEach((d,p)=>{const v=d.split("----").map(S=>S.trim()),k=p+1;if(v.length){if(v[0].toLowerCase()==="duckmail"){if(v.length<3||!v[1]||!v[2]){o.push(`第 ${k} 行格式错误(duckmail)`);return}const S=v[1],$e=v.slice(2).join("----");t.push({id:S,secure_c_ses:"",csesidx:"",config_id:"",expires_at:St,mail_provider:"duckmail",mail_address:S,mail_password:$e});return}if(v.length>=4&&v[0]&&v[2]&&v[3]){const S=v[0],$e=v[1]||"",E=v[2],es=v.slice(3).join("----");t.push({id:S,secure_c_ses:"",csesidx:"",config_id:"",expires_at:St,mail_provider:"microsoft",mail_address:S,mail_password:$e,mail_client_id:E,mail_refresh_token:es,mail_tenant:"consumers"});return}o.push(`第 ${k} 行格式错误`)}}),{items:t,errors:o}},$t=async()=>{if(U.value="",!ue.value.trim()){U.value="请输入导入内容";return}const{items:e,errors:t}=Lt(ue.value);if(!e.length){U.value=t.length?t.join(","):"未识别到有效账号";return}if(t.length){U.value=t.slice(0,3).join(",");return}_e.value=!0;try{const i=[...await ft()],d=new Map(i.map((k,S)=>[k.id,S])),p=[];e.forEach(k=>{const S=d.get(k.id||"");if(S===void 0){i.push(k),p.push(k.id);return}const E={...i[S],mail_provider:k.mail_provider,mail_address:k.mail_address};k.mail_provider==="microsoft"?(E.mail_client_id=k.mail_client_id,E.mail_refresh_token=k.mail_refresh_token,E.mail_tenant=k.mail_tenant,E.mail_password=k.mail_password):(E.mail_password=k.mail_password,E.mail_client_id=void 0,E.mail_refresh_token=void 0,E.mail_tenant=void 0),i[S]=E,p.push(k.id)}),await h.updateConfig(i),await fe(),m.value=new Set(p),Be(),await C.ask({title:"导入成功",message:`已导入 ${p.length} 个账户并自动选中。是否立即刷新这些账户以获取 Cookie?`,confirmText:"立即刷新",cancelText:"稍后手动刷新"})&&await Ct()}catch(o){U.value=o.message||"导入失败"}finally{_e.value=!1}},Rt=async()=>{try{const e=[],t=c.value?.id,o=f.value?.id;if(t&&!Ae(t)&&e.push(wt(t)),o&&!Ee(o)&&e.push(ht(o)),!e.length){await Ke();return}await Promise.all(e)}catch(e){y.value=e?.message||"任务状态更新失败"}},Ne=async()=>{Q.value=!0,await Rt()},Vt=()=>{Q.value=!1},Mt=()=>{const e=c.value?.id||null,t=f.value?.id||null;P.value=e,F.value=t,Ce(Qe,e),Ce(qe,t),se.value=c.value?.logs?.length||0,oe.value=f.value?.logs?.length||0,Te(Je,se.value),Te(Ye,oe.value),c.value=null,f.value=null,we.value=null,he.value=null,y.value="",D.value=!1,T.value=!1,X(),Z(),st(Ge),st(He)},Ae=e=>!!(e&&e===P.value),Ee=e=>!!(e&&e===F.value),jt=()=>{z.value=!z.value},re=()=>{z.value=!1},rt=e=>{if(!z.value)return;const t=e.target;je.value&&!je.value.contains(t)&&(z.value=!1)};rs(async()=>{Et(),await fe(),await Ke(),Wt(),document.addEventListener("click",rt)});const q=G(()=>{const e=c.value?.logs||[];return se.value?e.slice(se.value):e}),W=G(()=>{const e=f.value?.logs||[];return oe.value?e.slice(oe.value):e}),Dt=G(()=>!!y.value||!!c.value||!!f.value||q.value.length>0||W.value.length>0),Ot=async()=>{await as();const e=We.value;e&&(e.scrollTop=e.scrollHeight)};ls([q,W,Q],async()=>{Q.value&&await Ot()},{deep:!0});const Bt=G(()=>{const e=c.value?.status,t=f.value?.status;return e==="running"||e==="pending"||t==="running"||t==="pending"}),Nt=G(()=>{if(y.value)return"bg-rose-500";if(Bt.value)return"bg-sky-400";const e=[];if(c.value){const d=c.value.success_count??0,p=c.value.fail_count??0,v=c.value.count??d+p;e.push({success:d,fail:p,total:v,status:c.value.status})}if(f.value){const d=f.value.success_count??0,p=f.value.fail_count??0,v=f.value.account_ids?.length??d+p;e.push({success:d,fail:p,total:v,status:f.value.status})}if(!e.length)return"bg-muted-foreground";const t=e.reduce((d,p)=>d+p.success,0),o=e.reduce((d,p)=>d+p.fail,0),i=e.reduce((d,p)=>d+(p.total||0),0);if(t>0&&o>0)return"bg-amber-400";if(o>0&&t===0)return"bg-rose-500";if(t>0&&o===0)return"bg-emerald-400";if(i===0){const d=e.every(v=>v.status==="success");if(e.some(v=>v.status==="failed"))return"bg-rose-500";if(d)return"bg-emerald-400"}return"bg-muted-foreground"});ns(()=>{X(),Z(),qt(),document.removeEventListener("click",rt)});const ve=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?"429限流":e.cooldown_reason==="错误禁用"?"错误禁用":e.disabled?"手动禁用":e.status==="已过期"?"已过期":e.status==="即将过期"?"即将过期":"正常",lt=e=>{const t=ve(e);return t==="429限流"||t==="即将过期"?"bg-amber-200 text-amber-900":t==="错误禁用"||t==="已过期"?"bg-destructive/10 text-destructive":t==="手动禁用"?"bg-muted text-muted-foreground":"bg-emerald-500 text-white"},nt=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?!0:e.disabled||e.cooldown_reason==="错误禁用",at=e=>e==="已过期"?"过期":e==="未设置"?"未设置":e,it=e=>e.status==="已过期"?"text-rose-600":e.status==="即将过期"?"text-amber-700":e.status==="未设置"?"text-muted-foreground":"text-emerald-600",dt=e=>e<60?`${e} 秒`:e<3600?`${Math.ceil(e/60)} 分钟`:`${(e/3600).toFixed(1)} 小时`,Ue=e=>e.cooldown_seconds>0?"text-amber-700":e.cooldown_reason==="错误禁用"?"text-rose-600":"text-muted-foreground",ut=e=>{const t=ve(e);return t==="手动禁用"||t==="已过期"?"bg-muted/70":""},Ie=e=>{const t=new Set(m.value);t.has(e)?t.delete(e):t.add(e),m.value=t},ct=()=>{if(De.value){m.value=new Set;return}m.value=new Set(K.value.map(e=>e.id))},Ut=(e,t)=>e.id||`account_${t+1}`,ft=async()=>(await w.getConfig()).accounts.map((t,o)=>({...t,id:Ut(t,o)})),vt=e=>`${e.time} [${e.level}] ${e.message}`,zt=(e,t)=>{let o=-1;for(let d=0;d{u.value="";try{const t=await ft();zt(t,e)}catch(t){u.value=t.message||"加载账号配置失败"}},Pt=async()=>{j.value="";try{const e=await w.getConfig();ie.value=Array.isArray(e.accounts)?e.accounts:[],te.value=JSON.stringify(mt(ie.value),null,2),B.value=!0,M.value=!0}catch(e){j.value=e.message||"加载账号配置失败"}},ze=()=>{M.value=!1,j.value="",B.value=!1},xt=()=>{const e=JSON.parse(te.value);if(!Array.isArray(e))throw new Error("配置格式必须是数组。");return e},Ft=e=>typeof e!="string"||!e?e:e.length<=6?`${e.slice(0,2)}****`:`${e.slice(0,3)}****`,mt=e=>{const t=new Set(["secure_c_ses","csesidx","config_id","host_c_oses","mail_password","mail_refresh_token","mail_client_id"]);return e.map(o=>{const i={...o};return t.forEach(d=>{const p=i[d];p&&(i[d]=Ft(p))}),i})},Kt=()=>{if(j.value="",!B.value){try{ie.value=xt()}catch(e){j.value=e.message||"JSON 格式错误";return}te.value=JSON.stringify(mt(ie.value),null,2),B.value=!0;return}te.value=JSON.stringify(ie.value,null,2),B.value=!1},Gt=async()=>{j.value="";try{const e=xt();await h.updateConfig(e),ze()}catch(e){j.value=e.message||"保存失败"}},Pe=()=>{ae.value=!1,u.value=""},Ht=async()=>{if(ke.value===null)return;const e=[...Xe.value];e[ke.value]={...e[ke.value],id:_.value.id,secure_c_ses:_.value.secure_c_ses,csesidx:_.value.csesidx,config_id:_.value.config_id,host_c_oses:_.value.host_c_oses||void 0,expires_at:_.value.expires_at||void 0};try{await h.updateConfig(e),Pe()}catch(t){u.value=t.message||"保存失败"}},Jt=async()=>{await h.bulkEnable(Array.from(m.value)),m.value=new Set},Yt=async()=>{await C.ask({title:"批量禁用",message:"确定要批量禁用选中的账号吗?"})&&(await h.bulkDisable(Array.from(m.value)),m.value=new Set)},Qt=async()=>{await C.ask({title:"批量删除",message:"确定要批量删除选中的账号吗?",confirmText:"删除"})&&(await h.bulkDelete(Array.from(m.value)),m.value=new Set)},gt=async e=>{await h.enableAccount(e)},bt=async e=>{await C.ask({title:"禁用账号",message:"确定要禁用该账号吗?"})&&await h.disableAccount(e)},yt=async e=>{await C.ask({title:"删除账号",message:"确定要删除该账号吗?",confirmText:"删除"})&&await h.deleteAccount(e)};let pe=null,xe=null,me=null,Le=!1;const X=()=>{pe!==null&&(window.clearInterval(pe),pe=null)},Z=()=>{xe!==null&&(window.clearInterval(xe),xe=null)},qt=()=>{me!==null&&(window.clearInterval(me),me=null),Le=!1},_t=e=>e==="pending"?"等待中":e==="running"?"执行中":e==="success"?"成功":e==="failed"?"失败":e,wt=async e=>{if(Ae(e)){X();return}const t=await w.getRegisterTask(e);if(Ae(t.id)){X();return}Oe(t),t.status!=="running"&&t.status!=="pending"&&(D.value=!1,X(),await fe())},ht=async e=>{if(Ee(e)){Z();return}const t=await w.getLoginTask(e);if(Ee(t.id)){Z();return}Se(t),t.status!=="running"&&t.status!=="pending"&&(T.value=!1,Z(),await fe())},kt=e=>{X(),pe=window.setInterval(()=>{wt(e).catch(t=>{y.value=t?.message||"注册任务更新失败",X(),D.value=!1})},3e3)},Fe=e=>{Z(),xe=window.setInterval(()=>{ht(e).catch(t=>{y.value=t?.message||"刷新任务更新失败",Z(),T.value=!1})},3e3)},Wt=()=>{me===null&&(me=window.setInterval(async()=>{if(!Le&&!Q.value&&!(pe!==null||xe!==null)&&!(!D.value&&!T.value&&!c.value&&!f.value)){Le=!0;try{await Ke()}catch(e){y.value=e?.message||"后台刷新失败"}finally{Le=!1}}},6e3))},Ke=async()=>{try{const e=await w.getRegisterCurrent();e&&"id"in e&&!Ae(e.id)&&(Oe(e),(e.status==="running"||e.status==="pending")&&(D.value=!0,kt(e.id)))}catch(e){y.value=e.message||"加载注册任务失败"}try{const e=await w.getLoginCurrent();e&&"id"in e&&!Ee(e.id)&&(Se(e),(e.status==="running"||e.status==="pending")&&(T.value=!0,Fe(e.id)))}catch(e){y.value=e.message||"加载刷新任务失败"}},Xt=async()=>{y.value="",D.value=!0;try{const e=Number.isFinite(de.value)&&de.value>0?de.value:void 0,t=await w.startRegister(e);Oe(t),kt(t.id),ye.value=!1,Q.value=!0}catch(e){y.value=e.message||"启动注册失败",D.value=!1}},Ct=async()=>{if(m.value.size){y.value="",T.value=!0;try{const e=await w.startLogin(Array.from(m.value));Se(e),Fe(e.id),Ne()}catch(e){y.value=e.message||"启动刷新失败",T.value=!1}}},Zt=async()=>{y.value="",T.value=!0;try{await w.checkLogin();const e=await w.getLoginCurrent();if(e&&"id"in e){Se(e),Fe(e.id),Ne();return}T.value=!1}catch(e){y.value=e.message||"触发刷新失败",T.value=!1}};return(e,t)=>(r(),l(ge,null,[s("div",vs,[s("section",ps,[s("div",xs,[s("div",ms,[L(s("input",{"onUpdate:modelValue":t[0]||(t[0]=o=>ne.value=o),type:"text",placeholder:"搜索账号 ID",class:"w-full rounded-full border border-input bg-background px-4 py-2 text-sm sm:w-48"},null,512),[[$,ne.value]]),H(is,{modelValue:ee.value,"onUpdate:modelValue":t[1]||(t[1]=o=>ee.value=o),options:At},null,8,["modelValue"])]),s("div",gs,[H(be,{modelValue:De.value,"onUpdate:modelValue":ct},{default:Tt(()=>[...t[27]||(t[27]=[J(" 全选 ",-1)])]),_:1},8,["modelValue"]),s("span",null,"已选 "+n(O.value)+" / "+n(K.value.length)+" 个账号",1),s("div",bs,[s("button",{type:"button",class:g(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",Y.value==="table"?"bg-accent text-accent-foreground":""]),onClick:t[2]||(t[2]=o=>Y.value="table"),"aria-label":"列表视图"},[...t[28]||(t[28]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])],2),s("button",{type:"button",class:g(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",Y.value==="card"?"bg-accent text-accent-foreground":""]),onClick:t[3]||(t[3]=o=>Y.value="card"),"aria-label":"卡片视图"},[...t[29]||(t[29]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h7v6H4V6zm9 0h7v6h-7V6zM4 14h7v4H4v-4zm9 0h7v4h-7v-4z"})],-1)])],2)])])]),s("div",ys,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:R(le),onClick:fe}," 刷新列表 ",8,_s),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:Pt}," 账户配置 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:D.value,onClick:It}," 添加账户 ",8,ws),s("div",{ref_key:"moreActionsRef",ref:je,class:"relative"},[s("button",{class:g(["flex items-center gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary",z.value?"bg-accent text-accent-foreground":""]),onClick:jt},[t[30]||(t[30]=J(" 更多操作 ",-1)),t[31]||(t[31]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1)),Dt.value?(r(),l("span",{key:0,class:g(["ml-1 h-2 w-2 rounded-full",Nt.value]),"aria-hidden":"true"},null,2)):x("",!0)],2),z.value?(r(),l("div",hs,[s("button",{type:"button",class:"flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm text-foreground transition-colors hover:bg-accent",onClick:t[4]||(t[4]=o=>{Ne(),re()})}," 任务状态 "),t[32]||(t[32]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",T.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:T.value,onClick:t[5]||(t[5]=o=>{Zt(),re()})}," 刷新过期 ",10,ks),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",!O.value||T.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:!O.value||T.value,onClick:t[6]||(t[6]=o=>{Ct(),re()})}," 刷新选中 ",10,Cs),t[33]||(t[33]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",O.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!O.value,onClick:t[7]||(t[7]=o=>{Jt(),re()})}," 批量启用 ",10,Ts),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",O.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!O.value,onClick:t[8]||(t[8]=o=>{Yt(),re()})}," 批量禁用 ",10,Ss),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",O.value?"text-destructive hover:bg-destructive/10":"cursor-not-allowed text-muted-foreground"]),disabled:!O.value,onClick:t[9]||(t[9]=o=>{Qt(),re()})}," 批量删除 ",10,As)])):x("",!0)],512)]),Y.value==="card"?(r(),l("div",Es,[(r(!0),l(ge,null,Ve(K.value,o=>(r(),l("div",{key:o.id,class:g(["rounded-2xl border border-border bg-card p-4",ut(o)]),onClick:i=>Ie(o.id)},[s("div",Ls,[s("div",null,[t[34]||(t[34]=s("p",{class:"text-xs text-muted-foreground"},"账号 ID",-1)),s("p",$s,n(o.id),1)]),s("div",Rs,[H(be,{modelValue:m.value.has(o.id),"onUpdate:modelValue":i=>Ie(o.id),onClick:t[10]||(t[10]=V(()=>{},["stop"]))},null,8,["modelValue","onUpdate:modelValue"]),s("span",{class:g(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",lt(o)])},n(ve(o)),3)])]),s("div",Vs,[s("div",null,[t[35]||(t[35]=s("p",null,"剩余时间",-1)),s("p",{class:g(["mt-1 text-sm font-semibold",it(o)])},n(at(o.remaining_display)),3),o.expires_at?(r(),l("p",Ms,n(o.expires_at),1)):x("",!0)]),s("div",null,[t[36]||(t[36]=s("p",null,"冷却",-1)),s("p",{class:g(["mt-1",Ue(o)])},[o.cooldown_seconds>0?(r(),l("span",js,n(dt(o.cooldown_seconds))+" · "+n(o.cooldown_reason),1)):(r(),l("span",Ds,n(o.cooldown_reason||"无冷却"),1))],2)]),s("div",null,[t[37]||(t[37]=s("p",null,"失败数",-1)),s("p",Os,n(o.error_count),1)]),s("div",null,[t[38]||(t[38]=s("p",null,"会话数",-1)),s("p",Bs,n(o.conversation_count),1)])]),s("div",Ns,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>pt(o.id),["stop"])}," 编辑 ",8,Us),nt(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[11]||(t[11]=V(()=>{},["stop"])),i=>gt(o.id)]}," 启用 ",8,zs)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[12]||(t[12]=V(()=>{},["stop"])),i=>bt(o.id)]}," 禁用 ",8,Ps)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:[t[13]||(t[13]=V(()=>{},["stop"])),i=>yt(o.id)]}," 删除 ",8,Fs)])],10,Is))),128)),!K.value.length&&!R(le)?(r(),l("div",Ks," 暂无账号数据,请检查后台配置。 ")):x("",!0)])):(r(),l("div",Gs,[s("table",Hs,[s("thead",Js,[s("tr",null,[s("th",Ys,[H(be,{modelValue:De.value,"onUpdate:modelValue":ct},null,8,["modelValue"])]),t[40]||(t[40]=s("th",{class:"py-3 pr-6"},"账号 ID",-1)),t[41]||(t[41]=s("th",{class:"py-3 pr-6"},"状态",-1)),s("th",Qs,[s("span",qs,[t[39]||(t[39]=J(" 剩余/过期 ",-1)),H(cs,{text:"过期时间为 12 小时,账户过期以北京时间为准。"})])]),t[42]||(t[42]=s("th",{class:"py-3 pr-6"},"冷却",-1)),t[43]||(t[43]=s("th",{class:"py-3 pr-6"},"失败数",-1)),t[44]||(t[44]=s("th",{class:"py-3 pr-6"},"会话数",-1)),t[45]||(t[45]=s("th",{class:"py-3 text-right"},"操作",-1))])]),s("tbody",Ws,[!K.value.length&&!R(le)?(r(),l("tr",Xs,[...t[46]||(t[46]=[s("td",{colspan:"8",class:"py-8 text-center text-muted-foreground"}," 暂无账号数据,请检查后台配置。 ",-1)])])):x("",!0),(r(!0),l(ge,null,Ve(K.value,o=>(r(),l("tr",{key:o.id,class:g(["border-t border-border",ut(o)]),onClick:i=>Ie(o.id)},[s("td",{class:"py-4 pr-4",onClick:t[14]||(t[14]=V(()=>{},["stop"]))},[H(be,{modelValue:m.value.has(o.id),"onUpdate:modelValue":i=>Ie(o.id)},null,8,["modelValue","onUpdate:modelValue"])]),s("td",eo,n(o.id),1),s("td",to,[s("span",{class:g(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",lt(o)])},n(ve(o)),3)]),s("td",so,[s("div",{class:g(["text-sm font-semibold",it(o)])},n(at(o.remaining_display)),3),o.expires_at?(r(),l("span",oo,n(o.expires_at),1)):x("",!0)]),s("td",ro,[o.cooldown_seconds>0?(r(),l("span",{key:0,class:g(Ue(o))},n(dt(o.cooldown_seconds))+" · "+n(o.cooldown_reason),3)):(r(),l("span",{key:1,class:g(Ue(o))},n(o.cooldown_reason||"无冷却"),3))]),s("td",lo,n(o.error_count),1),s("td",no,n(o.conversation_count),1),s("td",ao,[s("div",io,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>pt(o.id),["stop"])}," 编辑 ",8,uo),nt(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>gt(o.id),["stop"])}," 启用 ",8,co)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>bt(o.id),["stop"])}," 禁用 ",8,fo)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:V(i=>yt(o.id),["stop"])}," 删除 ",8,vo)])])],10,Zs))),128))])])]))])]),H(ds,{open:R(C).open.value,title:R(C).title.value,message:R(C).message.value,"confirm-text":R(C).confirmText.value,"cancel-text":R(C).cancelText.value,onConfirm:R(C).confirm,onCancel:R(C).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(r(),Re(Me,{to:"body"},[ye.value?(r(),l("div",po,[s("div",xo,[s("div",mo,[s("div",null,[t[47]||(t[47]=s("p",{class:"text-sm font-medium text-foreground"},"添加账户",-1)),s("p",go,n(N.value==="register"?"创建 DuckMail 账号并自动注册":"批量导入账户配置"),1)]),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Be}," 关闭 ")]),s("div",bo,[s("div",yo,[s("div",_o,[s("button",{type:"button",class:g(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",N.value==="register"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:t[15]||(t[15]=o=>N.value="register")}," 自动注册 ",2),s("button",{type:"button",class:g(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",N.value==="import"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:t[16]||(t[16]=o=>N.value="import")}," 批量导入 ",2)]),N.value==="register"?(r(),l("div",wo,[t[48]||(t[48]=s("label",{class:"block text-xs text-muted-foreground"},"注册数量",-1)),L(s("input",{"onUpdate:modelValue":t[17]||(t[17]=o=>de.value=o),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,de.value,void 0,{number:!0}]]),t[49]||(t[49]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"}," 默认域名来自设置面板(可在“配置面板”中修改) ",-1))])):(r(),l("div",ho,[t[50]||(t[50]=s("label",{class:"block text-xs text-muted-foreground"},"批量导入(每行一个)",-1)),L(s("textarea",{"onUpdate:modelValue":t[18]||(t[18]=o=>ue.value=o),class:"min-h-[140px] w-full rounded-2xl border border-input bg-background px-3 py-2 text-xs font-mono",placeholder:`duckmail----you@example.com----password +user@outlook.com----loginPassword----clientId----refreshToken`},null,512),[[$,ue.value]]),t[51]||(t[51]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},[s("p",null,"支持两种格式:"),s("p",{class:"mt-1 font-mono"},"duckmail----email----password"),s("p",{class:"mt-1 font-mono"},"email----password----clientId----refreshToken"),s("p",{class:"mt-2 text-[11px]"},'导入后请执行一次"刷新选中"以获取 Cookie。')],-1)),U.value?(r(),l("div",ko,n(U.value),1)):x("",!0)])),t[53]||(t[53]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-[11px] leading-relaxed text-muted-foreground"},[s("div",{class:"space-y-2"},[s("p",{class:"text-xs font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)"),s("div",{class:"space-y-1"},[s("p",null,[s("strong",null,"本工具严禁用于以下行为:")]),s("p",{class:"pl-3"},"• 商业用途或盈利性使用"),s("p",{class:"pl-3"},"• 任何形式的批量操作或自动化滥用(无论规模大小)"),s("p",{class:"pl-3"},"• 破坏市场秩序或恶意竞争"),s("p",{class:"pl-3"},"• 违反 Google 服务条款的任何行为"),s("p",{class:"pl-3"},"• 违反 Microsoft 服务条款的任何行为")]),s("div",{class:"space-y-1"},[s("p",null,[s("strong",null,"违规后果:"),J("滥用行为可能导致账号永久封禁、法律追责,一切后果由使用者自行承担。")])]),s("div",{class:"space-y-1"},[s("p",{class:"font-semibold text-foreground"},"📖 合法用途"),s("p",null,"本项目仅限于以下场景:"),s("p",{class:"pl-3"},"• 个人学习与技术研究"),s("p",{class:"pl-3"},"• 浏览器自动化技术探索"),s("p",{class:"pl-3"},"• 非商业性技术交流")]),s("div",{class:"space-y-1"},[s("p",{class:"font-semibold text-foreground"},"⚖️ 法律责任"),s("p",null,[s("strong",null,"使用者责任:"),J("使用本工具产生的一切后果(包括但不限于账号封禁、数据损失、法律纠纷)由使用者完全承担。")]),s("p",null,[s("strong",null,"合规义务:"),J("使用者必须遵守所在地法律法规及第三方服务条款(包括但不限于 Google Workspace、Microsoft 365 等服务条款)。")]),s("p",null,[s("strong",null,"作者免责:"),J("作者不对任何违规使用、滥用行为或由此产生的后果承担责任。")])]),s("div",{class:"space-y-1"},[s("p",{class:"font-semibold text-foreground"},"📋 技术声明"),s("p",{class:"pl-3"},'• 本项目按"现状"提供,不提供任何形式的担保'),s("p",{class:"pl-3"},"• 依赖的第三方服务(如 DuckMail API、Microsoft Graph API 等)可用性不受作者控制"),s("p",{class:"pl-3"},"• 作者保留随时停止维护、变更功能或关闭项目的权利")])])],-1)),H(be,{modelValue:ce.value,"onUpdate:modelValue":t[19]||(t[19]=o=>ce.value=o)},{default:Tt(()=>[...t[52]||(t[52]=[J(" 我已阅读并同意上述说明与限制 ",-1)])]),_:1},8,["modelValue"])])]),s("div",Co,[s("div",To,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Be}," 取消 "),N.value==="register"?(r(),l("button",{key:0,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:D.value||!ce.value,onClick:Xt}," 开始注册 ",8,So)):(r(),l("button",{key:1,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:_e.value||!ce.value,onClick:$t}," 导入并保存 ",8,Ao))])])])])):x("",!0)])),(r(),Re(Me,{to:"body"},[Q.value?(r(),l("div",Eo,[s("div",Io,[s("div",Lo,[t[54]||(t[54]=s("div",null,[s("p",{class:"text-sm font-medium text-foreground"},"任务状态"),s("p",{class:"mt-1 text-xs text-muted-foreground"},"注册与刷新任务的状态与日志")],-1)),s("div",$o,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-muted-foreground transition-colors hover:border-primary hover:text-primary",disabled:!q.value.length&&!W.value.length&&!c.value&&!f.value&&!y.value,onClick:Mt}," 清空日志 ",8,Ro),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Vt}," 关闭 ")])]),s("div",Vo,[y.value?(r(),l("div",Mo,n(y.value),1)):x("",!0),c.value||f.value?(r(),l("div",jo,[c.value?(r(),l("div",Do,[t[55]||(t[55]=s("div",{class:"font-medium text-foreground"},"注册任务",-1)),s("div",Oo,[s("span",null,"状态:"+n(_t(c.value.status)),1),s("span",null,"进度:"+n(c.value.progress)+"/"+n(c.value.count),1),s("span",null,"成功:"+n(c.value.success_count),1),s("span",null,"失败:"+n(c.value.fail_count),1)])])):x("",!0),f.value?(r(),l("div",Bo,[t[56]||(t[56]=s("div",{class:"font-medium text-foreground"},"刷新任务",-1)),s("div",No,[s("span",null,"状态:"+n(_t(f.value.status)),1),s("span",null,"进度:"+n(f.value.progress)+"/"+n(f.value.account_ids.length),1),s("span",null,"成功:"+n(f.value.success_count),1),s("span",null,"失败:"+n(f.value.fail_count),1)])])):x("",!0)])):x("",!0),q.value.length||W.value.length?(r(),l("div",Uo,[s("div",{ref_key:"taskLogsRef",ref:We,class:"scrollbar-slim flex-1 overflow-y-auto rounded-2xl border border-border bg-muted/30 p-3"},[q.value.length?(r(),l("div",zo,[t[57]||(t[57]=s("p",{class:"text-xs font-semibold text-foreground"},"注册日志",-1)),s("div",Po,[(r(!0),l(ge,null,Ve(q.value,(o,i)=>(r(),l("div",{key:`reg-${i}`,class:"font-mono"},n(vt(o)),1))),128))])])):x("",!0),W.value.length?(r(),l("div",Fo,[t[58]||(t[58]=s("p",{class:"text-xs font-semibold text-foreground"},"刷新日志",-1)),s("div",Ko,[(r(!0),l(ge,null,Ve(W.value,(o,i)=>(r(),l("div",{key:`login-${i}`,class:"font-mono"},n(vt(o)),1))),128))])])):x("",!0)],512)])):x("",!0),!y.value&&!c.value&&!f.value&&!q.value.length&&!W.value.length?(r(),l("div",Go," 暂无任务 ")):x("",!0)])])])):x("",!0)])),(r(),Re(Me,{to:"body"},[ae.value?(r(),l("div",Ho,[s("div",Jo,[s("div",{class:"flex items-center justify-between"},[t[59]||(t[59]=s("p",{class:"text-sm font-medium text-foreground"},"编辑账号",-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Pe}," 关闭 ")]),u.value?(r(),l("div",Yo,n(u.value),1)):x("",!0),s("div",Qo,[t[60]||(t[60]=s("label",{class:"block text-xs text-muted-foreground"},"账号 ID",-1)),L(s("input",{"onUpdate:modelValue":t[20]||(t[20]=o=>_.value.id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",disabled:""},null,512),[[$,_.value.id]]),t[61]||(t[61]=s("label",{class:"block text-xs text-muted-foreground"},"secure_c_ses",-1)),L(s("textarea",{"onUpdate:modelValue":t[21]||(t[21]=o=>_.value.secure_c_ses=o),class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",rows:"3"},null,512),[[$,_.value.secure_c_ses]]),t[62]||(t[62]=s("label",{class:"block text-xs text-muted-foreground"},"csesidx",-1)),L(s("input",{"onUpdate:modelValue":t[22]||(t[22]=o=>_.value.csesidx=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,_.value.csesidx]]),t[63]||(t[63]=s("label",{class:"block text-xs text-muted-foreground"},"config_id",-1)),L(s("input",{"onUpdate:modelValue":t[23]||(t[23]=o=>_.value.config_id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,_.value.config_id]]),t[64]||(t[64]=s("label",{class:"block text-xs text-muted-foreground"},"host_c_oses",-1)),L(s("input",{"onUpdate:modelValue":t[24]||(t[24]=o=>_.value.host_c_oses=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,_.value.host_c_oses]]),t[65]||(t[65]=s("label",{class:"block text-xs text-muted-foreground"},"expires_at",-1)),L(s("input",{"onUpdate:modelValue":t[25]||(t[25]=o=>_.value.expires_at=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"2025-12-23 10:59:21"},null,512),[[$,_.value.expires_at]])]),s("div",{class:"mt-6 flex items-center justify-end gap-2"},[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Pe}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Ht}," 保存 ")])])])):x("",!0)])),(r(),Re(Me,{to:"body"},[M.value?(r(),l("div",qo,[s("div",Wo,[s("div",Xo,[t[66]||(t[66]=s("p",{class:"text-sm font-medium text-foreground"},"账户配置(JSON)",-1)),s("div",Zo,[s("button",{class:"rounded-full bg-foreground px-3 py-1 text-xs text-background transition-opacity hover:opacity-90",onClick:Kt},n(B.value?"显示原文":"脱敏显示"),1),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:ze}," 关闭 ")])]),j.value?(r(),l("div",er,n(j.value),1)):x("",!0),s("div",tr,[L(s("textarea",{"onUpdate:modelValue":t[26]||(t[26]=o=>te.value=o),class:"h-96 w-full rounded-2xl border border-input bg-background px-4 py-3 font-mono text-xs text-foreground",spellcheck:"false",readonly:B.value},null,8,sr),[[$,te.value]])]),s("div",or,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:ze}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Gt,disabled:B.value}," 保存 ",8,rr)])])])):x("",!0)]))],64))}});export{cr as default}; diff --git a/static/assets/Accounts-DanJ5qVz.js b/static/assets/Accounts-DanJ5qVz.js new file mode 100644 index 0000000000000000000000000000000000000000..6ac61f2d6a338cd798b8a4f4d5ff00340365851f --- /dev/null +++ b/static/assets/Accounts-DanJ5qVz.js @@ -0,0 +1 @@ +import{g as C,C as Ft,h as a,d as Kt,D as Ht,i as N,o as Jt,s as Gt,j as Yt,c as l,a as s,x as U,y as Ce,m as V,v as I,A as xt,t as n,n as b,u as S,b as v,f as z,F as ue,r as Te,T as Se,w as A,e as r,E as Qt}from"./index-CkXB0iyt.js";import{_ as qt}from"./SelectMenu.vue_vue_type_script_setup_true_lang-DEvRak0a.js";import{_ as de}from"./Checkbox.vue_vue_type_script_setup_true_lang-Bn84CDew.js";import{_ as Wt}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-87LA-h3c.js";import{u as Xt}from"./useConfirmDialog-BpSB-4KN.js";import{_ as Zt}from"./HelpTip.vue_vue_type_script_setup_true_lang-PWvzGrPg.js";const y={list:()=>C.get("/admin/accounts"),getConfig:()=>C.get("/admin/accounts-config"),updateConfig:x=>C.put("/admin/accounts-config",x),delete:x=>C.delete(`/admin/accounts/${x}`),disable:x=>C.put(`/admin/accounts/${x}/disable`),enable:x=>C.put(`/admin/accounts/${x}/enable`),startRegister:(x,_)=>C.post("/admin/register/start",{count:x,domain:_}),getRegisterTask:x=>C.get(`/admin/register/task/${x}`),getRegisterCurrent:()=>C.get("/admin/register/current"),startLogin:x=>C.post("/admin/login/start",x),getLoginTask:x=>C.get(`/admin/login/task/${x}`),getLoginCurrent:()=>C.get("/admin/login/current"),checkLogin:()=>C.post("/admin/login/check")},es=Ft("accounts",()=>{const x=a([]),_=a(!1);async function T(){_.value=!0;try{const u=await y.list();x.value=Array.isArray(u)?u:u.accounts||[]}finally{_.value=!1}}async function ee(u){await y.delete(u),await T()}async function h(u){await y.disable(u),await T()}async function te(u){await y.enable(u),await T()}async function Q(u){await Promise.all(u.map(L=>y.enable(L))),await T()}async function g(u){await Promise.all(u.map(L=>y.disable(L))),await T()}async function P(u){await Promise.all(u.map(L=>y.delete(L))),await T()}async function se(u){await y.updateConfig(u),await T()}return{accounts:x,isLoading:_,loadAccounts:T,deleteAccount:ee,disableAccount:h,enableAccount:te,bulkEnable:Q,bulkDisable:g,bulkDelete:P,updateConfig:se}}),ts={class:"space-y-8"},ss={class:"rounded-3xl border border-border bg-card p-6"},os={class:"flex flex-wrap items-center justify-between gap-4"},rs={class:"grid w-full grid-cols-2 gap-3 sm:flex sm:w-auto sm:items-center"},ls={class:"flex w-full flex-wrap items-center gap-3 text-xs text-muted-foreground sm:w-auto sm:flex-nowrap"},ns={class:"ml-auto flex items-center gap-2 sm:ml-0"},as={class:"mt-4 flex flex-wrap items-center gap-2"},is=["disabled"],us=["disabled"],ds={key:0,class:"absolute right-0 z-10 mt-2 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg"},cs=["disabled"],fs=["disabled"],vs=["disabled"],xs=["disabled"],gs=["disabled"],ps={key:0,class:"mt-6 grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3"},ms=["onClick"],bs={class:"flex items-start justify-between gap-3"},ys={class:"mt-1 font-mono text-xs text-foreground"},_s={class:"flex items-center gap-2"},ws={class:"mt-4 grid grid-cols-2 gap-3 text-xs text-muted-foreground"},ks={key:0,class:"mt-1 text-[11px]"},hs={key:0},Cs={key:1},Ts={class:"mt-1 text-sm font-semibold text-foreground"},Ss={class:"mt-1 text-sm font-semibold text-foreground"},As={class:"mt-4 flex flex-wrap items-center gap-2"},Ls=["onClick"],Es=["onClick"],$s=["onClick"],Rs=["onClick"],Vs={key:0,class:"rounded-2xl border border-border bg-background p-4 text-center text-xs text-muted-foreground"},Is={key:1,class:"relative mt-6 overflow-x-auto overflow-y-visible"},js={class:"min-w-full text-left text-sm"},Ds={class:"text-xs uppercase tracking-[0.2em] text-muted-foreground"},Ms={class:"py-3 pr-4"},Os={class:"py-3 pr-6"},Bs={class:"inline-flex items-center gap-2"},Ns={class:"text-sm text-foreground"},Us={key:0},zs=["onClick"],Ps={class:"py-4 pr-6 font-mono text-xs text-foreground"},Fs={class:"py-4 pr-6"},Ks={class:"py-4 pr-6"},Hs={key:0,class:"block text-[11px] text-muted-foreground"},Js={class:"py-4 pr-6 text-xs"},Gs={class:"py-4 pr-6 text-xs text-muted-foreground"},Ys={class:"py-4 pr-6 text-xs text-muted-foreground"},Qs={class:"py-4 text-right"},qs={class:"flex flex-wrap justify-end gap-2"},Ws=["onClick"],Xs=["onClick"],Zs=["onClick"],eo=["onClick"],to={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},so={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},oo={class:"mt-4 space-y-4 text-sm"},ro={class:"mt-6 flex items-center justify-end gap-2"},lo=["disabled"],no={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ao={class:"flex h-[80vh] w-full max-w-2xl flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},io={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},uo={class:"flex items-center gap-2"},co=["disabled"],fo={class:"flex min-h-0 flex-1 flex-col px-6 py-4"},vo={key:0,class:"rounded-2xl bg-destructive/10 px-3 py-2 text-xs text-destructive"},xo={key:1,class:"mt-4 grid gap-3 text-xs text-muted-foreground"},go={key:0,class:"space-y-1"},po={class:"flex flex-wrap gap-x-4 gap-y-1"},mo={key:1,class:"space-y-1"},bo={class:"flex flex-wrap gap-x-4 gap-y-1"},yo={key:2,class:"mt-4 flex min-h-0 flex-1 flex-col"},_o={key:0,class:"space-y-2"},wo={class:"space-y-1 text-[11px] text-muted-foreground"},ko={key:1,class:"mt-4 space-y-2"},ho={class:"space-y-1 text-[11px] text-muted-foreground"},Co={key:3,class:"mt-4 rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},To={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},So={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},Ao={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Lo={class:"mt-4 space-y-3 text-sm"},Eo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},$o={class:"w-full max-w-3xl rounded-3xl border border-border bg-card p-6 shadow-xl"},Ro={class:"flex items-center justify-between"},Vo={class:"flex items-center gap-2"},Io={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},jo={class:"mt-4"},Do=["readonly"],Mo={class:"mt-6 flex items-center justify-end gap-2"},Oo=["disabled"],De="accounts-register-task-cache",Me="accounts-login-task-cache",Oe="accounts-register-log-clear",Be="accounts-login-log-clear",Ne="accounts-register-task-cleared-id",Ue="accounts-login-task-cleared-id",Ko=Kt({__name:"Accounts",setup(x){const _=es(),{accounts:T,isLoading:ee}=Ht(_),h=Xt(),te=a(""),Q=a("all"),g=a(new Set),P=a("table"),se=a(!1),u=a(""),L=a(!1),E=a(""),q=a(""),j=a(!1),oe=a([]),re=a(1),ce=a(!1),F=a(!1),D=a(!1),Ae=a(null),fe=a(null),ve=a(null),M=a(null),O=a(null),W=a(0),X=a(0),xe=a(!1),d=a(null),c=a(null),ze=a(null),$=a(!1),k=a(!1),p=a(""),m=a({id:"",secure_c_ses:"",csesidx:"",config_id:"",host_c_oses:"",expires_at:""}),ge=a(null),Pe=a([]),gt=[{label:"全部状态",value:"all"},{label:"正常",value:"正常"},{label:"即将过期",value:"即将过期"},{label:"已过期",value:"已过期"},{label:"手动禁用",value:"手动禁用"},{label:"错误禁用",value:"错误禁用"},{label:"429限流",value:"429限流"}],B=N(()=>{const e=te.value.trim().toLowerCase();return T.value.filter(t=>{const o=!e||t.id.toLowerCase().includes(e),i=Q.value==="all"||le(t)===Q.value;return o&&i})}),R=N(()=>g.value.size),Le=N(()=>B.value.length>0&&B.value.every(e=>g.value.has(e.id))),pe=async()=>{await _.loadAccounts(),g.value=new Set,D.value=!1},Fe=e=>{try{const t=localStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}},Ke=e=>{try{return localStorage.getItem(e)||null}catch{return null}},me=(e,t)=>{try{if(t){localStorage.setItem(e,t);return}localStorage.removeItem(e)}catch{}},He=(e,t)=>{try{localStorage.setItem(e,JSON.stringify(t))}catch{}},Je=e=>{try{localStorage.removeItem(e)}catch{}},Ge=e=>{const t=localStorage.getItem(e),o=Number(t);return Number.isFinite(o)?o:0},be=(e,t)=>{try{localStorage.setItem(e,String(t))}catch{}},Ee=(e,t=!0)=>{e&&(e.id&&e.id===M.value||(e.id&&M.value&&e.id!==M.value&&(M.value=null,me(Ne,null)),d.value=e,e.id&&e.id!==fe.value&&(fe.value=e.id,W.value=0,be(Oe,0)),t&&He(De,e)))},ye=(e,t=!0)=>{e&&(e.id&&e.id===O.value||(e.id&&O.value&&e.id!==O.value&&(O.value=null,me(Ue,null)),c.value=e,e.id&&e.id!==ve.value&&(ve.value=e.id,X.value=0,be(Be,0)),t&&He(Me,e)))},pt=()=>{W.value=Ge(Oe),X.value=Ge(Be),M.value=Ke(Ne),O.value=Ke(Ue);const e=Fe(De);e&&e.id!==M.value&&(d.value=e,fe.value=e.id||null);const t=Fe(Me);t&&t.id!==O.value&&(c.value=t,ve.value=t.id||null)},mt=()=>{ce.value=!0,xe.value=!1},Ye=()=>{ce.value=!1},bt=async()=>{try{const e=[],t=d.value?.id,o=c.value?.id;if(t&&!_e(t)&&e.push(ct(t)),o&&!we(o)&&e.push(ft(o)),!e.length){await je();return}await Promise.all(e)}catch(e){p.value=e?.message||"任务状态更新失败"}},yt=async()=>{F.value=!0,await bt()},_t=()=>{F.value=!1},wt=()=>{const e=d.value?.id||null,t=c.value?.id||null;M.value=e,O.value=t,me(Ne,e),me(Ue,t),W.value=d.value?.logs?.length||0,X.value=c.value?.logs?.length||0,be(Oe,W.value),be(Be,X.value),d.value=null,c.value=null,fe.value=null,ve.value=null,p.value="",$.value=!1,k.value=!1,J(),G(),Je(De),Je(Me)},_e=e=>!!(e&&e===M.value),we=e=>!!(e&&e===O.value),kt=()=>{D.value=!D.value},Z=()=>{D.value=!1},Qe=e=>{if(!D.value)return;const t=e.target;Ae.value&&!Ae.value.contains(t)&&(D.value=!1)};Jt(async()=>{pt(),await pe(),await je(),Nt(),document.addEventListener("click",Qe)});const K=N(()=>{const e=d.value?.logs||[];return W.value?e.slice(W.value):e}),H=N(()=>{const e=c.value?.logs||[];return X.value?e.slice(X.value):e}),ht=N(()=>!!p.value||!!d.value||!!c.value||K.value.length>0||H.value.length>0),Ct=async()=>{await Qt();const e=ze.value;e&&(e.scrollTop=e.scrollHeight)};Gt([K,H,F],async()=>{F.value&&await Ct()},{deep:!0});const Tt=N(()=>{const e=d.value?.status,t=c.value?.status;return e==="running"||e==="pending"||t==="running"||t==="pending"}),St=N(()=>{if(p.value)return"bg-rose-500";if(Tt.value)return"bg-sky-400";const e=[];if(d.value){const f=d.value.success_count??0,w=d.value.fail_count??0,Y=d.value.count??f+w;e.push({success:f,fail:w,total:Y,status:d.value.status})}if(c.value){const f=c.value.success_count??0,w=c.value.fail_count??0,Y=c.value.account_ids?.length??f+w;e.push({success:f,fail:w,total:Y,status:c.value.status})}if(!e.length)return"bg-muted-foreground";const t=e.reduce((f,w)=>f+w.success,0),o=e.reduce((f,w)=>f+w.fail,0),i=e.reduce((f,w)=>f+(w.total||0),0);if(t>0&&o>0)return"bg-amber-400";if(o>0&&t===0)return"bg-rose-500";if(t>0&&o===0)return"bg-emerald-400";if(i===0){const f=e.every(Y=>Y.status==="success");if(e.some(Y=>Y.status==="failed"))return"bg-rose-500";if(f)return"bg-emerald-400"}return"bg-muted-foreground"});Yt(()=>{J(),G(),Bt(),document.removeEventListener("click",Qe)});const le=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?"429限流":e.cooldown_reason==="错误禁用"?"错误禁用":e.disabled?"手动禁用":e.status==="已过期"?"已过期":e.status==="即将过期"?"即将过期":"正常",qe=e=>{const t=le(e);return t==="429限流"||t==="即将过期"?"bg-amber-200 text-amber-900":t==="错误禁用"||t==="已过期"?"bg-destructive/10 text-destructive":t==="手动禁用"?"bg-muted text-muted-foreground":"bg-emerald-500 text-white"},We=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?!0:e.disabled||e.cooldown_reason==="错误禁用",Xe=e=>e==="已过期"?"过期":e==="未设置"?"未设置":e,Ze=e=>e.status==="已过期"?"text-rose-600":e.status==="即将过期"?"text-amber-700":e.status==="未设置"?"text-muted-foreground":"text-emerald-600",et=e=>e<60?`${e} 秒`:e<3600?`${Math.ceil(e/60)} 分钟`:`${(e/3600).toFixed(1)} 小时`,$e=e=>e.cooldown_seconds>0?"text-amber-700":e.cooldown_reason==="错误禁用"?"text-rose-600":"text-muted-foreground",tt=e=>{const t=le(e);return t==="手动禁用"||t==="已过期"?"bg-muted/70":""},ke=e=>{const t=new Set(g.value);t.has(e)?t.delete(e):t.add(e),g.value=t},st=()=>{if(Le.value){g.value=new Set;return}g.value=new Set(B.value.map(e=>e.id))},At=(e,t)=>e.id||`account_${t+1}`,Lt=async()=>(await y.getConfig()).accounts.map((t,o)=>({...t,id:At(t,o)})),ot=e=>`${e.time} [${e.level}] ${e.message}`,Et=(e,t)=>{let o=-1;for(let f=0;f{u.value="";try{const t=await Lt();Et(t,e)}catch(t){u.value=t.message||"加载账号配置失败"}},$t=async()=>{E.value="";try{const e=await y.getConfig();oe.value=Array.isArray(e.accounts)?e.accounts:[],q.value=JSON.stringify(nt(oe.value),null,2),j.value=!0,L.value=!0}catch(e){E.value=e.message||"加载账号配置失败"}},Re=()=>{L.value=!1,E.value="",j.value=!1},lt=()=>{const e=JSON.parse(q.value);if(!Array.isArray(e))throw new Error("配置格式必须是数组。");return e},Rt=e=>typeof e!="string"||!e?e:e.length<=6?`${e.slice(0,2)}****`:`${e.slice(0,3)}****`,nt=e=>{const t=new Set(["secure_c_ses","csesidx","config_id","host_c_oses","mail_password"]);return e.map(o=>{const i={...o};return t.forEach(f=>{const w=i[f];w&&(i[f]=Rt(w))}),i})},Vt=()=>{if(E.value="",!j.value){try{oe.value=lt()}catch(e){E.value=e.message||"JSON 格式错误";return}q.value=JSON.stringify(nt(oe.value),null,2),j.value=!0;return}q.value=JSON.stringify(oe.value,null,2),j.value=!1},It=async()=>{E.value="";try{const e=lt();await _.updateConfig(e),Re()}catch(e){E.value=e.message||"保存失败"}},Ve=()=>{se.value=!1,u.value=""},jt=async()=>{if(ge.value===null)return;const e=[...Pe.value];e[ge.value]={...e[ge.value],id:m.value.id,secure_c_ses:m.value.secure_c_ses,csesidx:m.value.csesidx,config_id:m.value.config_id,host_c_oses:m.value.host_c_oses||void 0,expires_at:m.value.expires_at||void 0};try{await _.updateConfig(e),Ve()}catch(t){u.value=t.message||"保存失败"}},Dt=async()=>{await _.bulkEnable(Array.from(g.value)),g.value=new Set},Mt=async()=>{await h.ask({title:"批量禁用",message:"确定要批量禁用选中的账号吗?"})&&(await _.bulkDisable(Array.from(g.value)),g.value=new Set)},Ot=async()=>{await h.ask({title:"批量删除",message:"确定要批量删除选中的账号吗?",confirmText:"删除"})&&(await _.bulkDelete(Array.from(g.value)),g.value=new Set)},at=async e=>{await _.enableAccount(e)},it=async e=>{await h.ask({title:"禁用账号",message:"确定要禁用该账号吗?"})&&await _.disableAccount(e)},ut=async e=>{await h.ask({title:"删除账号",message:"确定要删除该账号吗?",confirmText:"删除"})&&await _.deleteAccount(e)};let ne=null,ae=null,ie=null,he=!1;const J=()=>{ne!==null&&(window.clearInterval(ne),ne=null)},G=()=>{ae!==null&&(window.clearInterval(ae),ae=null)},Bt=()=>{ie!==null&&(window.clearInterval(ie),ie=null),he=!1},dt=e=>e==="pending"?"等待中":e==="running"?"执行中":e==="success"?"成功":e==="failed"?"失败":e,ct=async e=>{if(_e(e)){J();return}const t=await y.getRegisterTask(e);if(_e(t.id)){J();return}Ee(t),t.status!=="running"&&t.status!=="pending"&&($.value=!1,J(),await pe())},ft=async e=>{if(we(e)){G();return}const t=await y.getLoginTask(e);if(we(t.id)){G();return}ye(t),t.status!=="running"&&t.status!=="pending"&&(k.value=!1,G(),await pe())},vt=e=>{J(),ne=window.setInterval(()=>{ct(e).catch(t=>{p.value=t?.message||"注册任务更新失败",J(),$.value=!1})},3e3)},Ie=e=>{G(),ae=window.setInterval(()=>{ft(e).catch(t=>{p.value=t?.message||"刷新任务更新失败",G(),k.value=!1})},3e3)},Nt=()=>{ie===null&&(ie=window.setInterval(async()=>{if(!he&&!F.value&&!(ne!==null||ae!==null)&&!(!$.value&&!k.value&&!d.value&&!c.value)){he=!0;try{await je()}catch(e){p.value=e?.message||"后台刷新失败"}finally{he=!1}}},6e3))},je=async()=>{try{const e=await y.getRegisterCurrent();e&&"id"in e&&!_e(e.id)&&(Ee(e),(e.status==="running"||e.status==="pending")&&($.value=!0,vt(e.id)))}catch(e){p.value=e.message||"加载注册任务失败"}try{const e=await y.getLoginCurrent();e&&"id"in e&&!we(e.id)&&(ye(e),(e.status==="running"||e.status==="pending")&&(k.value=!0,Ie(e.id)))}catch(e){p.value=e.message||"加载刷新任务失败"}},Ut=async()=>{p.value="",$.value=!0;try{const e=Number.isFinite(re.value)&&re.value>0?re.value:void 0,t=await y.startRegister(e);Ee(t),vt(t.id),ce.value=!1,F.value=!0}catch(e){p.value=e.message||"启动注册失败",$.value=!1}},zt=async()=>{if(g.value.size){p.value="",k.value=!0;try{const e=await y.startLogin(Array.from(g.value));ye(e),Ie(e.id)}catch(e){p.value=e.message||"启动刷新失败",k.value=!1}}},Pt=async()=>{p.value="",k.value=!0;try{await y.checkLogin();const e=await y.getLoginCurrent();if(e&&"id"in e){ye(e),Ie(e.id);return}k.value=!1}catch(e){p.value=e.message||"触发刷新失败",k.value=!1}};return(e,t)=>(r(),l(ue,null,[s("div",ts,[s("section",ss,[s("div",os,[s("div",rs,[V(s("input",{"onUpdate:modelValue":t[0]||(t[0]=o=>te.value=o),type:"text",placeholder:"搜索账号 ID",class:"w-full rounded-full border border-input bg-background px-4 py-2 text-sm sm:w-48"},null,512),[[I,te.value]]),U(qt,{modelValue:Q.value,"onUpdate:modelValue":t[1]||(t[1]=o=>Q.value=o),options:gt},null,8,["modelValue"])]),s("div",ls,[U(de,{modelValue:Le.value,"onUpdate:modelValue":st},{default:xt(()=>[...t[24]||(t[24]=[z(" 全选 ",-1)])]),_:1},8,["modelValue"]),s("span",null,"已选 "+n(R.value)+" / "+n(B.value.length)+" 个账号",1),s("div",ns,[s("button",{type:"button",class:b(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",P.value==="table"?"bg-accent text-accent-foreground":""]),onClick:t[2]||(t[2]=o=>P.value="table"),"aria-label":"列表视图"},[...t[25]||(t[25]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])],2),s("button",{type:"button",class:b(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",P.value==="card"?"bg-accent text-accent-foreground":""]),onClick:t[3]||(t[3]=o=>P.value="card"),"aria-label":"卡片视图"},[...t[26]||(t[26]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h7v6H4V6zm9 0h7v6h-7V6zM4 14h7v4H4v-4zm9 0h7v4h-7v-4z"})],-1)])],2)])])]),s("div",as,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:S(ee),onClick:pe}," 刷新列表 ",8,is),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:$t}," 账户配置 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:$.value,onClick:mt}," 添加账户 ",8,us),s("div",{ref_key:"moreActionsRef",ref:Ae,class:"relative"},[s("button",{class:b(["flex items-center gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary",D.value?"bg-accent text-accent-foreground":""]),onClick:kt},[t[27]||(t[27]=z(" 更多操作 ",-1)),t[28]||(t[28]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1)),ht.value?(r(),l("span",{key:0,class:b(["ml-1 h-2 w-2 rounded-full",St.value]),"aria-hidden":"true"},null,2)):v("",!0)],2),D.value?(r(),l("div",ds,[s("button",{type:"button",class:"flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm text-foreground transition-colors hover:bg-accent",onClick:t[4]||(t[4]=o=>{yt(),Z()})}," 任务状态 "),t[29]||(t[29]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:b(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",k.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:k.value,onClick:t[5]||(t[5]=o=>{Pt(),Z()})}," 刷新过期 ",10,cs),s("button",{type:"button",class:b(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",!R.value||k.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:!R.value||k.value,onClick:t[6]||(t[6]=o=>{zt(),Z()})}," 刷新选中 ",10,fs),t[30]||(t[30]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:b(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",R.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!R.value,onClick:t[7]||(t[7]=o=>{Dt(),Z()})}," 批量启用 ",10,vs),s("button",{type:"button",class:b(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",R.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!R.value,onClick:t[8]||(t[8]=o=>{Mt(),Z()})}," 批量禁用 ",10,xs),s("button",{type:"button",class:b(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",R.value?"text-destructive hover:bg-destructive/10":"cursor-not-allowed text-muted-foreground"]),disabled:!R.value,onClick:t[9]||(t[9]=o=>{Ot(),Z()})}," 批量删除 ",10,gs)])):v("",!0)],512)]),P.value==="card"?(r(),l("div",ps,[(r(!0),l(ue,null,Te(B.value,o=>(r(),l("div",{key:o.id,class:b(["rounded-2xl border border-border bg-card p-4",tt(o)]),onClick:i=>ke(o.id)},[s("div",bs,[s("div",null,[t[31]||(t[31]=s("p",{class:"text-xs text-muted-foreground"},"账号 ID",-1)),s("p",ys,n(o.id),1)]),s("div",_s,[U(de,{modelValue:g.value.has(o.id),"onUpdate:modelValue":i=>ke(o.id),onClick:t[10]||(t[10]=A(()=>{},["stop"]))},null,8,["modelValue","onUpdate:modelValue"]),s("span",{class:b(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",qe(o)])},n(le(o)),3)])]),s("div",ws,[s("div",null,[t[32]||(t[32]=s("p",null,"剩余时间",-1)),s("p",{class:b(["mt-1 text-sm font-semibold",Ze(o)])},n(Xe(o.remaining_display)),3),o.expires_at?(r(),l("p",ks,n(o.expires_at),1)):v("",!0)]),s("div",null,[t[33]||(t[33]=s("p",null,"冷却",-1)),s("p",{class:b(["mt-1",$e(o)])},[o.cooldown_seconds>0?(r(),l("span",hs,n(et(o.cooldown_seconds))+" · "+n(o.cooldown_reason),1)):(r(),l("span",Cs,n(o.cooldown_reason||"无冷却"),1))],2)]),s("div",null,[t[34]||(t[34]=s("p",null,"失败数",-1)),s("p",Ts,n(o.error_count),1)]),s("div",null,[t[35]||(t[35]=s("p",null,"会话数",-1)),s("p",Ss,n(o.conversation_count),1)])]),s("div",As,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A(i=>rt(o.id),["stop"])}," 编辑 ",8,Ls),We(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[11]||(t[11]=A(()=>{},["stop"])),i=>at(o.id)]}," 启用 ",8,Es)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[12]||(t[12]=A(()=>{},["stop"])),i=>it(o.id)]}," 禁用 ",8,$s)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:[t[13]||(t[13]=A(()=>{},["stop"])),i=>ut(o.id)]}," 删除 ",8,Rs)])],10,ms))),128)),!B.value.length&&!S(ee)?(r(),l("div",Vs," 暂无账号数据,请检查后台配置。 ")):v("",!0)])):(r(),l("div",Is,[s("table",js,[s("thead",Ds,[s("tr",null,[s("th",Ms,[U(de,{modelValue:Le.value,"onUpdate:modelValue":st},null,8,["modelValue"])]),t[37]||(t[37]=s("th",{class:"py-3 pr-6"},"账号 ID",-1)),t[38]||(t[38]=s("th",{class:"py-3 pr-6"},"状态",-1)),s("th",Os,[s("span",Bs,[t[36]||(t[36]=z(" 剩余/过期 ",-1)),U(Zt,{text:"过期时间为 12 小时,账户过期以北京时间为准。"})])]),t[39]||(t[39]=s("th",{class:"py-3 pr-6"},"冷却",-1)),t[40]||(t[40]=s("th",{class:"py-3 pr-6"},"失败数",-1)),t[41]||(t[41]=s("th",{class:"py-3 pr-6"},"会话数",-1)),t[42]||(t[42]=s("th",{class:"py-3 text-right"},"操作",-1))])]),s("tbody",Ns,[!B.value.length&&!S(ee)?(r(),l("tr",Us,[...t[43]||(t[43]=[s("td",{colspan:"8",class:"py-8 text-center text-muted-foreground"}," 暂无账号数据,请检查后台配置。 ",-1)])])):v("",!0),(r(!0),l(ue,null,Te(B.value,o=>(r(),l("tr",{key:o.id,class:b(["border-t border-border",tt(o)]),onClick:i=>ke(o.id)},[s("td",{class:"py-4 pr-4",onClick:t[14]||(t[14]=A(()=>{},["stop"]))},[U(de,{modelValue:g.value.has(o.id),"onUpdate:modelValue":i=>ke(o.id)},null,8,["modelValue","onUpdate:modelValue"])]),s("td",Ps,n(o.id),1),s("td",Fs,[s("span",{class:b(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",qe(o)])},n(le(o)),3)]),s("td",Ks,[s("div",{class:b(["text-sm font-semibold",Ze(o)])},n(Xe(o.remaining_display)),3),o.expires_at?(r(),l("span",Hs,n(o.expires_at),1)):v("",!0)]),s("td",Js,[o.cooldown_seconds>0?(r(),l("span",{key:0,class:b($e(o))},n(et(o.cooldown_seconds))+" · "+n(o.cooldown_reason),3)):(r(),l("span",{key:1,class:b($e(o))},n(o.cooldown_reason||"无冷却"),3))]),s("td",Gs,n(o.error_count),1),s("td",Ys,n(o.conversation_count),1),s("td",Qs,[s("div",qs,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A(i=>rt(o.id),["stop"])}," 编辑 ",8,Ws),We(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A(i=>at(o.id),["stop"])}," 启用 ",8,Xs)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A(i=>it(o.id),["stop"])}," 禁用 ",8,Zs)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:A(i=>ut(o.id),["stop"])}," 删除 ",8,eo)])])],10,zs))),128))])])]))])]),U(Wt,{open:S(h).open.value,title:S(h).title.value,message:S(h).message.value,"confirm-text":S(h).confirmText.value,"cancel-text":S(h).cancelText.value,onConfirm:S(h).confirm,onCancel:S(h).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(r(),Ce(Se,{to:"body"},[ce.value?(r(),l("div",to,[s("div",so,[s("div",{class:"flex items-center justify-between"},[t[44]||(t[44]=s("div",null,[s("p",{class:"text-sm font-medium text-foreground"},"添加账户"),s("p",{class:"mt-1 text-xs text-muted-foreground"},"创建 DuckMail 账号并自动注册")],-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Ye}," 关闭 ")]),s("div",oo,[t[46]||(t[46]=s("label",{class:"block text-xs text-muted-foreground"},"注册数量",-1)),V(s("input",{"onUpdate:modelValue":t[15]||(t[15]=o=>re.value=o),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[I,re.value,void 0,{number:!0}]]),t[47]||(t[47]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"}," 默认域名来自设置面板(可在“配置面板”中修改) ",-1)),t[48]||(t[48]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-[11px] leading-relaxed text-muted-foreground"},[s("div",{class:"space-y-2"},[s("p",{class:"font-semibold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)"),s("div",{class:"space-y-1"},[s("p",null,[s("strong",null,"合法用途:"),z("本项目仅限个人学习、技术研究与非商业性技术交流,旨在探索浏览器自动化与系统集成。")])]),s("div",{class:"space-y-1"},[s("p",null,[s("strong",null,"禁止行为:"),z("严禁用于以下场景:")]),s("p",{class:"pl-3"},"• 商业用途或盈利性使用"),s("p",{class:"pl-3"},"• 任何形式的批量注册或自动化滥用(无论规模大小)"),s("p",{class:"pl-3"},"• 破坏市场秩序或恶意竞争"),s("p",{class:"pl-3"},"• 违反 Google 服务条款的任何行为")]),s("div",{class:"space-y-1"},[s("p",null,[s("strong",null,"使用责任:"),z("因使用本工具产生的一切后果由使用者完全承担,包括但不限于账号封禁、数据损失及法律责任。")]),s("p",null,[s("strong",null,"合规要求:"),z("使用者必须遵守所在地法律法规及第三方服务条款,作者不对任何违规使用行为承担责任。")])]),s("div",{class:"space-y-1"},[s("p",null,[s("strong",null,"技术声明:")]),s("p",{class:"pl-3"},'• 本项目按"现状"提供,不提供任何明示或暗示的担保'),s("p",{class:"pl-3"},"• 依赖 DuckMail API 等第三方服务,其可用性不受作者控制"),s("p",{class:"pl-3"},"• 作者保留随时停止维护或变更功能的权利")])])],-1)),U(de,{modelValue:xe.value,"onUpdate:modelValue":t[16]||(t[16]=o=>xe.value=o)},{default:xt(()=>[...t[45]||(t[45]=[z(" 我已阅读并同意上述说明与限制 ",-1)])]),_:1},8,["modelValue"])]),s("div",ro,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Ye}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:$.value||!xe.value,onClick:Ut}," 开始注册 ",8,lo)])])])):v("",!0)])),(r(),Ce(Se,{to:"body"},[F.value?(r(),l("div",no,[s("div",ao,[s("div",io,[t[49]||(t[49]=s("div",null,[s("p",{class:"text-sm font-medium text-foreground"},"任务状态"),s("p",{class:"mt-1 text-xs text-muted-foreground"},"注册与刷新任务的状态与日志")],-1)),s("div",uo,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-muted-foreground transition-colors hover:border-primary hover:text-primary",disabled:!K.value.length&&!H.value.length&&!d.value&&!c.value&&!p.value,onClick:wt}," 清空日志 ",8,co),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:_t}," 关闭 ")])]),s("div",fo,[p.value?(r(),l("div",vo,n(p.value),1)):v("",!0),d.value||c.value?(r(),l("div",xo,[d.value?(r(),l("div",go,[t[50]||(t[50]=s("div",{class:"font-medium text-foreground"},"注册任务",-1)),s("div",po,[s("span",null,"状态:"+n(dt(d.value.status)),1),s("span",null,"进度:"+n(d.value.progress)+"/"+n(d.value.count),1),s("span",null,"成功:"+n(d.value.success_count),1),s("span",null,"失败:"+n(d.value.fail_count),1)])])):v("",!0),c.value?(r(),l("div",mo,[t[51]||(t[51]=s("div",{class:"font-medium text-foreground"},"刷新任务",-1)),s("div",bo,[s("span",null,"状态:"+n(dt(c.value.status)),1),s("span",null,"进度:"+n(c.value.progress)+"/"+n(c.value.account_ids.length),1),s("span",null,"成功:"+n(c.value.success_count),1),s("span",null,"失败:"+n(c.value.fail_count),1)])])):v("",!0)])):v("",!0),K.value.length||H.value.length?(r(),l("div",yo,[s("div",{ref_key:"taskLogsRef",ref:ze,class:"scrollbar-slim flex-1 overflow-y-auto rounded-2xl border border-border bg-muted/30 p-3"},[K.value.length?(r(),l("div",_o,[t[52]||(t[52]=s("p",{class:"text-xs font-semibold text-foreground"},"注册日志",-1)),s("div",wo,[(r(!0),l(ue,null,Te(K.value,(o,i)=>(r(),l("div",{key:`reg-${i}`,class:"font-mono"},n(ot(o)),1))),128))])])):v("",!0),H.value.length?(r(),l("div",ko,[t[53]||(t[53]=s("p",{class:"text-xs font-semibold text-foreground"},"刷新日志",-1)),s("div",ho,[(r(!0),l(ue,null,Te(H.value,(o,i)=>(r(),l("div",{key:`login-${i}`,class:"font-mono"},n(ot(o)),1))),128))])])):v("",!0)],512)])):v("",!0),!p.value&&!d.value&&!c.value&&!K.value.length&&!H.value.length?(r(),l("div",Co," 暂无任务 ")):v("",!0)])])])):v("",!0)])),(r(),Ce(Se,{to:"body"},[se.value?(r(),l("div",To,[s("div",So,[s("div",{class:"flex items-center justify-between"},[t[54]||(t[54]=s("p",{class:"text-sm font-medium text-foreground"},"编辑账号",-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Ve}," 关闭 ")]),u.value?(r(),l("div",Ao,n(u.value),1)):v("",!0),s("div",Lo,[t[55]||(t[55]=s("label",{class:"block text-xs text-muted-foreground"},"账号 ID",-1)),V(s("input",{"onUpdate:modelValue":t[17]||(t[17]=o=>m.value.id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",disabled:""},null,512),[[I,m.value.id]]),t[56]||(t[56]=s("label",{class:"block text-xs text-muted-foreground"},"secure_c_ses",-1)),V(s("textarea",{"onUpdate:modelValue":t[18]||(t[18]=o=>m.value.secure_c_ses=o),class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",rows:"3"},null,512),[[I,m.value.secure_c_ses]]),t[57]||(t[57]=s("label",{class:"block text-xs text-muted-foreground"},"csesidx",-1)),V(s("input",{"onUpdate:modelValue":t[19]||(t[19]=o=>m.value.csesidx=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[I,m.value.csesidx]]),t[58]||(t[58]=s("label",{class:"block text-xs text-muted-foreground"},"config_id",-1)),V(s("input",{"onUpdate:modelValue":t[20]||(t[20]=o=>m.value.config_id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[I,m.value.config_id]]),t[59]||(t[59]=s("label",{class:"block text-xs text-muted-foreground"},"host_c_oses",-1)),V(s("input",{"onUpdate:modelValue":t[21]||(t[21]=o=>m.value.host_c_oses=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[I,m.value.host_c_oses]]),t[60]||(t[60]=s("label",{class:"block text-xs text-muted-foreground"},"expires_at",-1)),V(s("input",{"onUpdate:modelValue":t[22]||(t[22]=o=>m.value.expires_at=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"2025-12-23 10:59:21"},null,512),[[I,m.value.expires_at]])]),s("div",{class:"mt-6 flex items-center justify-end gap-2"},[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Ve}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:jt}," 保存 ")])])])):v("",!0)])),(r(),Ce(Se,{to:"body"},[L.value?(r(),l("div",Eo,[s("div",$o,[s("div",Ro,[t[61]||(t[61]=s("p",{class:"text-sm font-medium text-foreground"},"账户配置(JSON)",-1)),s("div",Vo,[s("button",{class:"rounded-full bg-foreground px-3 py-1 text-xs text-background transition-opacity hover:opacity-90",onClick:Vt},n(j.value?"显示原文":"脱敏显示"),1),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Re}," 关闭 ")])]),E.value?(r(),l("div",Io,n(E.value),1)):v("",!0),s("div",jo,[V(s("textarea",{"onUpdate:modelValue":t[23]||(t[23]=o=>q.value=o),class:"h-96 w-full rounded-2xl border border-input bg-background px-4 py-3 font-mono text-xs text-foreground",spellcheck:"false",readonly:j.value},null,8,Do),[[I,q.value]])]),s("div",Mo,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Re}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:It,disabled:j.value}," 保存 ",8,Oo)])])])):v("",!0)]))],64))}});export{Ko as default}; diff --git a/static/assets/Accounts-DeEVJUcd.js b/static/assets/Accounts-DeEVJUcd.js new file mode 100644 index 0000000000000000000000000000000000000000..d409f7074a4c7f523b16453f6858dff2e6899bef --- /dev/null +++ b/static/assets/Accounts-DeEVJUcd.js @@ -0,0 +1,2 @@ +import{g as E,C as os,h as i,d as rs,D as ls,i as J,o as ns,z as as,j as is,c as n,a as s,p as G,m as Re,q as R,v as V,s as $t,t as a,n as p,u as j,b as g,f as ee,F as ge,r as Ve,T as je,E as ds,w as M,e as l,G as us}from"./index-Dul9zA0O.js";import{_ as cs}from"./SelectMenu.vue_vue_type_script_setup_true_lang-B6K28QJL.js";import{_ as be}from"./Checkbox.vue_vue_type_script_setup_true_lang-BzH_cd6M.js";import{_ as fs}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-Dx9N8w52.js";import{u as vs}from"./useConfirmDialog-Bh7Fog50.js";import{_ as ms}from"./HelpTip.vue_vue_type_script_setup_true_lang-ZZDQpvjn.js";const w={list:()=>E.get("/admin/accounts"),getConfig:()=>E.get("/admin/accounts-config"),updateConfig:y=>E.put("/admin/accounts-config",y),delete:y=>E.delete(`/admin/accounts/${y}`),disable:y=>E.put(`/admin/accounts/${y}/disable`),enable:y=>E.put(`/admin/accounts/${y}/enable`),startRegister:(y,k)=>E.post("/admin/register/start",{count:y,domain:k}),getRegisterTask:y=>E.get(`/admin/register/task/${y}`),getRegisterCurrent:()=>E.get("/admin/register/current"),startLogin:y=>E.post("/admin/login/start",y),getLoginTask:y=>E.get(`/admin/login/task/${y}`),getLoginCurrent:()=>E.get("/admin/login/current"),checkLogin:()=>E.post("/admin/login/check")},ps=os("accounts",()=>{const y=i([]),k=i(!1);async function A(){k.value=!0;try{const x=await w.list();y.value=Array.isArray(x)?x:x.accounts||[]}finally{k.value=!1}}async function ne(x){await w.delete(x),await A()}async function T(x){await w.disable(x),await A()}async function d(x){await w.enable(x),await A()}async function ae(x){await Promise.all(x.map($=>w.enable($))),await A()}async function te(x){await Promise.all(x.map($=>w.disable($))),await A()}async function b(x){await Promise.all(x.map($=>w.delete($))),await A()}async function Y(x){await w.updateConfig(x),await A()}return{accounts:y,isLoading:k,loadAccounts:A,deleteAccount:ne,disableAccount:T,enableAccount:d,bulkEnable:ae,bulkDisable:te,bulkDelete:b,updateConfig:Y}}),xs={class:"space-y-8"},gs={class:"rounded-3xl border border-border bg-card p-6"},bs={class:"flex flex-wrap items-center justify-between gap-4"},ys={class:"grid w-full grid-cols-2 gap-3 sm:flex sm:w-auto sm:items-center"},_s={class:"flex w-full flex-wrap items-center gap-3 text-xs text-muted-foreground sm:w-auto sm:flex-nowrap"},hs={class:"ml-auto flex items-center gap-2 sm:ml-0"},ws={class:"mt-4 flex flex-wrap items-center gap-2"},ks=["disabled"],Cs=["disabled"],Ts={key:0,class:"absolute right-0 z-10 mt-2 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg"},Ss=["disabled"],$s=["disabled"],Is=["disabled"],Es=["disabled"],Ls=["disabled"],As={key:0,class:"mt-6 grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3"},Rs=["onClick"],Vs={class:"flex items-start justify-between gap-3"},js={class:"mt-1 font-mono text-xs text-foreground"},Ms={class:"flex items-center gap-2"},Ds={class:"mt-4 grid grid-cols-2 gap-3 text-xs text-muted-foreground"},Os={key:0,class:"mt-1 text-[11px]"},Bs={key:0},Ns={key:1},Us={class:"mt-1 text-sm font-semibold text-foreground"},zs={class:"mt-1 text-sm font-semibold text-foreground"},Ps={class:"mt-4 flex flex-wrap items-center gap-2"},Fs=["onClick"],Ks=["onClick"],Hs=["onClick"],Js=["onClick"],Gs={key:0,class:"rounded-2xl border border-border bg-background p-4 text-center text-xs text-muted-foreground"},Ys={key:1,class:"relative mt-6 overflow-x-auto overflow-y-visible"},qs={class:"min-w-full text-left text-sm"},Qs={class:"text-xs uppercase tracking-[0.2em] text-muted-foreground"},Xs={class:"py-3 pr-4"},Ws={class:"py-3 pr-6"},Zs={class:"inline-flex items-center gap-2"},eo={class:"text-sm text-foreground"},to={key:0},so=["onClick"],oo={class:"py-4 pr-6 font-mono text-xs text-foreground"},ro={class:"py-4 pr-6"},lo={class:"py-4 pr-6"},no={key:0,class:"block text-[11px] text-muted-foreground"},ao={class:"py-4 pr-6 text-xs"},io={class:"py-4 pr-6 text-xs text-muted-foreground"},uo={class:"py-4 pr-6 text-xs text-muted-foreground"},co={class:"py-4 text-right"},fo={class:"flex flex-wrap justify-end gap-2"},vo=["onClick"],mo=["onClick"],po=["onClick"],xo=["onClick"],go={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},bo={class:"flex max-h-[90vh] w-full max-w-lg flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},yo={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},_o={class:"mt-1 text-xs text-muted-foreground"},ho={class:"scrollbar-slim flex-1 overflow-y-auto px-6 py-4"},wo={class:"space-y-4 text-sm"},ko={class:"flex rounded-full border border-border bg-muted/30 p-1 text-xs"},Co={key:0,class:"space-y-4"},To={key:1,class:"space-y-4"},So={key:0,class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-xs text-rose-600"},$o={class:"border-t border-border/60 px-6 py-4"},Io={class:"flex items-center justify-end gap-2"},Eo=["disabled"],Lo=["disabled"],Ao={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Ro={class:"flex h-[80vh] w-full max-w-2xl flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},Vo={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},jo={class:"flex items-center gap-2"},Mo=["disabled"],Do={class:"flex min-h-0 flex-1 flex-col px-6 py-4"},Oo={key:0,class:"rounded-2xl bg-destructive/10 px-3 py-2 text-xs text-destructive"},Bo={key:1,class:"grid gap-3 text-xs text-muted-foreground"},No={key:0,class:"space-y-1"},Uo={class:"flex items-center gap-2 font-medium text-foreground"},zo={class:"flex flex-wrap gap-x-4 gap-y-1"},Po={key:1,class:"space-y-1"},Fo={class:"flex items-center gap-2 font-medium text-foreground"},Ko={class:"flex flex-wrap gap-x-4 gap-y-1"},Ho={key:2,class:"mt-4 flex min-h-0 flex-1 flex-col"},Jo={key:0,class:"space-y-2"},Go={class:"space-y-1 text-[11px] text-muted-foreground"},Yo={key:1,class:"mt-4 space-y-2"},qo={class:"space-y-1 text-[11px] text-muted-foreground"},Qo={key:3,class:"mt-4 rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},Xo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Wo={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},Zo={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},er={class:"mt-4 space-y-3 text-sm"},tr={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},sr={class:"w-full max-w-3xl rounded-3xl border border-border bg-card p-6 shadow-xl"},or={class:"flex items-center justify-between"},rr={class:"flex items-center gap-2"},lr={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},nr={class:"mt-4"},ar=["readonly"],ir={class:"mt-6 flex items-center justify-end gap-2"},dr=["disabled"],Je="accounts-register-task-cache",Ge="accounts-login-task-cache",Ye="accounts-register-log-clear",qe="accounts-login-log-clear",Qe="accounts-register-task-cleared-id",Xe="accounts-login-task-cleared-id",It="1970-01-01 00:00:00",xr=rs({__name:"Accounts",setup(y){const k=ps(),{accounts:A,isLoading:ne}=ls(k),T=vs(),d=ds(),ae=i(""),te=i("all"),b=i(new Set),Y=i("table"),x=i(!1),$=i(""),Me=i(!1),D=i(""),se=i(""),N=i(!1),ie=i([]),de=i(1),ye=i(!1),U=i("register"),ue=i(""),z=i(""),_e=i(!1),q=i(!1),P=i(!1),De=i(null),he=i(null),we=i(null),F=i(null),K=i(null),oe=i(0),re=i(0),ce=i(!1),c=i(null),f=i(null),We=i(null),O=i(!1),S=i(!1),_=i(""),h=i({id:"",secure_c_ses:"",csesidx:"",config_id:"",host_c_oses:"",expires_at:""}),ke=i(null),Ze=i([]),Et=[{label:"全部状态",value:"all"},{label:"正常",value:"正常"},{label:"即将过期",value:"即将过期"},{label:"已过期",value:"已过期"},{label:"手动禁用",value:"手动禁用"},{label:"错误禁用",value:"错误禁用"},{label:"429限流",value:"429限流"}],H=J(()=>{const t=ae.value.trim().toLowerCase();return A.value.filter(e=>{const o=!t||e.id.toLowerCase().includes(t),r=te.value==="all"||ve(e)===te.value;return o&&r})}),B=J(()=>b.value.size),Oe=J(()=>H.value.length>0&&H.value.every(t=>b.value.has(t.id))),fe=async()=>{await k.loadAccounts(),b.value=new Set,P.value=!1},et=t=>{try{const e=localStorage.getItem(t);return e?JSON.parse(e):null}catch{return null}},tt=t=>{try{return localStorage.getItem(t)||null}catch{return null}},Ce=(t,e)=>{try{if(e){localStorage.setItem(t,e);return}localStorage.removeItem(t)}catch{}},st=(t,e)=>{try{localStorage.setItem(t,JSON.stringify(e))}catch{}},ot=t=>{try{localStorage.removeItem(t)}catch{}},rt=t=>{const e=localStorage.getItem(t),o=Number(e);return Number.isFinite(o)?o:0},Te=(t,e)=>{try{localStorage.setItem(t,String(e))}catch{}},Be=(t,e=!0)=>{t&&(t.id&&t.id===F.value||(t.id&&F.value&&t.id!==F.value&&(F.value=null,Ce(Qe,null)),c.value=t,t.id&&t.id!==he.value&&(he.value=t.id,oe.value=0,Te(Ye,0)),e&&st(Je,t)))},Se=(t,e=!0)=>{t&&(t.id&&t.id===K.value||(t.id&&K.value&&t.id!==K.value&&(K.value=null,Ce(Xe,null)),f.value=t,t.id&&t.id!==we.value&&(we.value=t.id,re.value=0,Te(qe,0)),e&&st(Ge,t)))},Lt=()=>{oe.value=rt(Ye),re.value=rt(qe),F.value=tt(Qe),K.value=tt(Xe);const t=et(Je);t&&t.id!==F.value&&(c.value=t,he.value=t.id||null);const e=et(Ge);e&&e.id!==K.value&&(f.value=e,we.value=e.id||null)},At=()=>{ye.value=!0,U.value="register",ue.value="",z.value="",_e.value=!1,ce.value=!1},Ne=()=>{ye.value=!1},Rt=t=>{const e=[],o=[];return t.split(/\r?\n/).map(u=>u.trim()).filter(Boolean).forEach((u,m)=>{const v=u.split("----").map(I=>I.trim()),C=m+1;if(v.length){if(v[0].toLowerCase()==="duckmail"){if(v.length<3||!v[1]||!v[2]){o.push(`第 ${C} 行格式错误(duckmail)`);return}const I=v[1],Ae=v.slice(2).join("----");e.push({id:I,secure_c_ses:"",csesidx:"",config_id:"",expires_at:It,mail_provider:"duckmail",mail_address:I,mail_password:Ae});return}if(v.length>=4&&v[0]&&v[2]&&v[3]){const I=v[0],Ae=v[1]||"",L=v[2],ss=v.slice(3).join("----");e.push({id:I,secure_c_ses:"",csesidx:"",config_id:"",expires_at:It,mail_provider:"microsoft",mail_address:I,mail_password:Ae,mail_client_id:L,mail_refresh_token:ss,mail_tenant:"consumers"});return}o.push(`第 ${C} 行格式错误`)}}),{items:e,errors:o}},Vt=async()=>{if(z.value="",!ue.value.trim()){z.value="请输入导入内容";return}const{items:t,errors:e}=Rt(ue.value);if(!t.length){z.value=e.length?e.join(","):"未识别到有效账号";return}if(e.length){z.value=e.slice(0,3).join(",");return}_e.value=!0;try{const r=[...await vt()],u=new Map(r.map((C,I)=>[C.id,I])),m=[];t.forEach(C=>{const I=u.get(C.id||"");if(I===void 0){r.push(C),m.push(C.id);return}const L={...r[I],mail_provider:C.mail_provider,mail_address:C.mail_address};C.mail_provider==="microsoft"?(L.mail_client_id=C.mail_client_id,L.mail_refresh_token=C.mail_refresh_token,L.mail_tenant=C.mail_tenant,L.mail_password=C.mail_password):(L.mail_password=C.mail_password,L.mail_client_id=void 0,L.mail_refresh_token=void 0,L.mail_tenant=void 0),r[I]=L,m.push(C.id)}),await k.updateConfig(r),await fe(),b.value=new Set(m),d.success(`成功导入 ${m.length} 个账户`),Ne(),await T.ask({title:"导入成功",message:`已导入 ${m.length} 个账户并自动选中。是否立即刷新这些账户以获取 Cookie?`,confirmText:"立即刷新",cancelText:"稍后手动刷新"})&&await St()}catch(o){z.value=o.message||"导入失败",d.error(o.message||"导入失败")}finally{_e.value=!1}},jt=async()=>{try{const t=[],e=c.value?.id,o=f.value?.id;if(e&&!$e(e)&&t.push(kt(e)),o&&!Ie(o)&&t.push(Ct(o)),!t.length){await He();return}await Promise.all(t)}catch(t){_.value=t?.message||"任务状态更新失败"}},Ue=async()=>{q.value=!0,await jt()},Mt=()=>{q.value=!1},Dt=()=>{const t=c.value?.id||null,e=f.value?.id||null;F.value=t,K.value=e,Ce(Qe,t),Ce(Xe,e),oe.value=c.value?.logs?.length||0,re.value=f.value?.logs?.length||0,Te(Ye,oe.value),Te(qe,re.value),c.value=null,f.value=null,he.value=null,we.value=null,_.value="",O.value=!1,S.value=!1,W(),Z(),ot(Je),ot(Ge)},$e=t=>!!(t&&t===F.value),Ie=t=>!!(t&&t===K.value),Ot=()=>{P.value=!P.value},le=()=>{P.value=!1},lt=t=>{if(!P.value)return;const e=t.target;De.value&&!De.value.contains(e)&&(P.value=!1)};ns(async()=>{Lt(),await fe(),await He(),Zt(),document.addEventListener("click",lt)});const Q=J(()=>{const t=c.value?.logs||[];return oe.value?t.slice(oe.value):t}),X=J(()=>{const t=f.value?.logs||[];return re.value?t.slice(re.value):t}),Bt=J(()=>!!_.value||!!c.value||!!f.value||Q.value.length>0||X.value.length>0),Nt=async()=>{await us();const t=We.value;t&&(t.scrollTop=t.scrollHeight)};as([Q,X,q],async()=>{q.value&&await Nt()},{deep:!0});const Ut=J(()=>{const t=c.value?.status,e=f.value?.status;return t==="running"||t==="pending"||e==="running"||e==="pending"}),zt=J(()=>{if(_.value)return"bg-rose-500";if(Ut.value)return"bg-sky-400";const t=[];if(c.value){const u=c.value.success_count??0,m=c.value.fail_count??0,v=c.value.count??u+m;t.push({success:u,fail:m,total:v,status:c.value.status})}if(f.value){const u=f.value.success_count??0,m=f.value.fail_count??0,v=f.value.account_ids?.length??u+m;t.push({success:u,fail:m,total:v,status:f.value.status})}if(!t.length)return"bg-muted-foreground";const e=t.reduce((u,m)=>u+m.success,0),o=t.reduce((u,m)=>u+m.fail,0),r=t.reduce((u,m)=>u+(m.total||0),0);if(e>0&&o>0)return"bg-amber-400";if(o>0&&e===0)return"bg-rose-500";if(e>0&&o===0)return"bg-emerald-400";if(r===0){const u=t.every(v=>v.status==="success");if(t.some(v=>v.status==="failed"))return"bg-rose-500";if(u)return"bg-emerald-400"}return"bg-muted-foreground"});is(()=>{W(),Z(),Wt(),document.removeEventListener("click",lt)});const ve=t=>t.cooldown_reason?.includes("429")&&t.cooldown_seconds>0?"429限流":t.cooldown_reason==="错误禁用"?"错误禁用":t.disabled?"手动禁用":t.status==="已过期"?"已过期":t.status==="即将过期"?"即将过期":"正常",nt=t=>{const e=ve(t);return e==="429限流"||e==="即将过期"?"bg-amber-200 text-amber-900":e==="错误禁用"||e==="已过期"?"bg-destructive/10 text-destructive":e==="手动禁用"?"bg-muted text-muted-foreground":"bg-emerald-500 text-white"},at=t=>t.cooldown_reason?.includes("429")&&t.cooldown_seconds>0?!0:t.disabled||t.cooldown_reason==="错误禁用",it=t=>t==="已过期"?"过期":t==="未设置"?"未设置":t,dt=t=>t.status==="已过期"?"text-rose-600":t.status==="即将过期"?"text-amber-700":t.status==="未设置"?"text-muted-foreground":"text-emerald-600",ut=t=>t<60?`${t} 秒`:t<3600?`${Math.ceil(t/60)} 分钟`:`${(t/3600).toFixed(1)} 小时`,ze=t=>t.cooldown_seconds>0?"text-amber-700":t.cooldown_reason==="错误禁用"?"text-rose-600":"text-muted-foreground",ct=t=>{const e=ve(t);return e==="手动禁用"||e==="已过期"?"bg-muted/70":""},Ee=t=>{const e=new Set(b.value);e.has(t)?e.delete(t):e.add(t),b.value=e},ft=()=>{if(Oe.value){b.value=new Set;return}b.value=new Set(H.value.map(t=>t.id))},Pt=(t,e)=>t.id||`account_${e+1}`,vt=async()=>(await w.getConfig()).accounts.map((e,o)=>({...e,id:Pt(e,o)})),mt=t=>`${t.time} [${t.level}] ${t.message}`,Ft=(t,e)=>{let o=-1;for(let u=0;u{$.value="";try{const e=await vt();Ft(e,t)}catch(e){$.value=e.message||"加载账号配置失败"}},Kt=async()=>{D.value="";try{const t=await w.getConfig();ie.value=Array.isArray(t.accounts)?t.accounts:[],se.value=JSON.stringify(gt(ie.value),null,2),N.value=!0,Me.value=!0}catch(t){D.value=t.message||"加载账号配置失败"}},Pe=()=>{Me.value=!1,D.value="",N.value=!1},xt=()=>{const t=JSON.parse(se.value);if(!Array.isArray(t))throw new Error("配置格式必须是数组。");return t},Ht=t=>typeof t!="string"||!t?t:t.length<=6?`${t.slice(0,2)}****`:`${t.slice(0,3)}****`,gt=t=>{const e=new Set(["secure_c_ses","csesidx","config_id","host_c_oses","mail_password","mail_refresh_token","mail_client_id"]);return t.map(o=>{const r={...o};return e.forEach(u=>{const m=r[u];m&&(r[u]=Ht(m))}),r})},Jt=()=>{if(D.value="",!N.value){try{ie.value=xt()}catch(t){D.value=t.message||"JSON 格式错误";return}se.value=JSON.stringify(gt(ie.value),null,2),N.value=!0;return}se.value=JSON.stringify(ie.value,null,2),N.value=!1},Gt=async()=>{D.value="";try{const t=xt();await k.updateConfig(t),d.success("配置保存成功"),Pe()}catch(t){D.value=t.message||"保存失败",d.error(t.message||"保存失败")}},Fe=()=>{x.value=!1,$.value=""},Yt=async()=>{if(ke.value===null)return;const t=[...Ze.value];t[ke.value]={...t[ke.value],id:h.value.id,secure_c_ses:h.value.secure_c_ses,csesidx:h.value.csesidx,config_id:h.value.config_id,host_c_oses:h.value.host_c_oses||void 0,expires_at:h.value.expires_at||void 0};try{await k.updateConfig(t),d.success("账号编辑成功"),Fe()}catch(e){$.value=e.message||"保存失败",d.error(e.message||"保存失败")}},qt=async()=>{try{await k.bulkEnable(Array.from(b.value)),d.success("批量启用成功"),b.value=new Set}catch(t){d.error(t.message||"批量启用失败")}},Qt=async()=>{if(await T.ask({title:"批量禁用",message:"确定要批量禁用选中的账号吗?"}))try{await k.bulkDisable(Array.from(b.value)),d.success("批量禁用成功"),b.value=new Set}catch(e){d.error(e.message||"批量禁用失败")}},Xt=async()=>{if(await T.ask({title:"批量删除",message:"确定要批量删除选中的账号吗?",confirmText:"删除"}))try{await k.bulkDelete(Array.from(b.value)),d.success("批量删除成功"),b.value=new Set}catch(e){d.error(e.message||"批量删除失败")}},bt=async t=>{try{await k.enableAccount(t),d.success("账号已启用")}catch(e){d.error(e.message||"启用失败")}},yt=async t=>{if(await T.ask({title:"禁用账号",message:"确定要禁用该账号吗?"}))try{await k.disableAccount(t),d.success("账号已禁用")}catch(o){d.error(o.message||"禁用失败")}},_t=async t=>{if(await T.ask({title:"删除账号",message:"确定要删除该账号吗?",confirmText:"删除"}))try{await k.deleteAccount(t),d.success("账号已删除")}catch(o){d.error(o.message||"删除失败")}};let me=null,pe=null,xe=null,Le=!1;const W=()=>{me!==null&&(window.clearInterval(me),me=null)},Z=()=>{pe!==null&&(window.clearInterval(pe),pe=null)},Wt=()=>{xe!==null&&(window.clearInterval(xe),xe=null),Le=!1},ht=t=>t==="pending"?"等待中":t==="running"?"执行中":t==="success"?"成功":t==="failed"?"失败":t,wt=t=>{const e=t.status,o=t.success_count??0,r=t.fail_count??0;if(e==="running"||e==="pending")return"bg-sky-400";if(e==="success"||e==="failed"){if(o>0&&r===0)return"bg-emerald-400";if(r>0&&o===0)return"bg-rose-500";if(o>0&&r>0)return"bg-amber-400"}return"bg-muted-foreground"},kt=async t=>{if($e(t)){W();return}const e=await w.getRegisterTask(t);if($e(e.id)){W();return}if(Be(e),e.status!=="running"&&e.status!=="pending"){O.value=!1,W(),await fe();const o=e.success_count||0,r=e.fail_count||0;o>0&&r>0?d.success(`注册任务完成:成功 ${o},失败 ${r}`):o>0&&r===0?d.success(`注册任务完成:全部成功 (${o})`):r>0&&o===0?d.error(`注册任务完成:全部失败 (${r})`):d.error("注册任务失败")}},Ct=async t=>{if(Ie(t)){Z();return}const e=await w.getLoginTask(t);if(Ie(e.id)){Z();return}if(Se(e),e.status!=="running"&&e.status!=="pending"){S.value=!1,Z(),await fe();const o=e.success_count||0,r=e.fail_count||0;o>0&&r>0?d.success(`刷新任务完成:成功 ${o},失败 ${r}`):o>0&&r===0?d.success(`刷新任务完成:全部成功 (${o})`):r>0&&o===0?d.error(`刷新任务完成:全部失败 (${r})`):d.error("刷新任务失败")}},Tt=t=>{W(),me=window.setInterval(()=>{kt(t).catch(e=>{_.value=e?.message||"注册任务更新失败",W(),O.value=!1})},3e3)},Ke=t=>{Z(),pe=window.setInterval(()=>{Ct(t).catch(e=>{_.value=e?.message||"刷新任务更新失败",Z(),S.value=!1})},3e3)},Zt=()=>{xe===null&&(xe=window.setInterval(async()=>{if(!Le&&!q.value&&!(me!==null||pe!==null)&&!(!O.value&&!S.value&&!c.value&&!f.value)){Le=!0;try{await He()}catch(t){_.value=t?.message||"后台刷新失败"}finally{Le=!1}}},6e3))},He=async()=>{try{const t=await w.getRegisterCurrent();t&&"id"in t&&!$e(t.id)&&(Be(t),(t.status==="running"||t.status==="pending")&&(O.value=!0,Tt(t.id)))}catch(t){_.value=t.message||"加载注册任务失败"}try{const t=await w.getLoginCurrent();t&&"id"in t&&!Ie(t.id)&&(Se(t),(t.status==="running"||t.status==="pending")&&(S.value=!0,Ke(t.id)))}catch(t){_.value=t.message||"加载刷新任务失败"}},es=async()=>{_.value="",O.value=!0;try{const t=Number.isFinite(de.value)&&de.value>0?de.value:void 0,e=await w.startRegister(t);Be(e),Tt(e.id),ye.value=!1,q.value=!0}catch(t){_.value=t.message||"启动注册失败",O.value=!1}},St=async()=>{if(b.value.size){_.value="",S.value=!0;try{const t=await w.startLogin(Array.from(b.value));Se(t),Ke(t.id),Ue()}catch(t){_.value=t.message||"启动刷新失败",S.value=!1}}},ts=async()=>{_.value="",S.value=!0;try{await w.checkLogin();const t=await w.getLoginCurrent();if(t&&"id"in t){Se(t),Ke(t.id),Ue();return}S.value=!1}catch(t){_.value=t.message||"触发刷新失败",S.value=!1}};return(t,e)=>(l(),n(ge,null,[s("div",xs,[s("section",gs,[s("div",bs,[s("div",ys,[R(s("input",{"onUpdate:modelValue":e[0]||(e[0]=o=>ae.value=o),type:"text",placeholder:"搜索账号 ID",class:"w-full rounded-full border border-input bg-background px-4 py-2 text-sm sm:w-48"},null,512),[[V,ae.value]]),G(cs,{modelValue:te.value,"onUpdate:modelValue":e[1]||(e[1]=o=>te.value=o),options:Et},null,8,["modelValue"])]),s("div",_s,[G(be,{modelValue:Oe.value,"onUpdate:modelValue":ft},{default:$t(()=>[...e[27]||(e[27]=[ee(" 全选 ",-1)])]),_:1},8,["modelValue"]),s("span",null,"已选 "+a(B.value)+" / "+a(H.value.length)+" 个账号",1),s("div",hs,[s("button",{type:"button",class:p(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",Y.value==="table"?"bg-accent text-accent-foreground":""]),onClick:e[2]||(e[2]=o=>Y.value="table"),"aria-label":"列表视图"},[...e[28]||(e[28]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])],2),s("button",{type:"button",class:p(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",Y.value==="card"?"bg-accent text-accent-foreground":""]),onClick:e[3]||(e[3]=o=>Y.value="card"),"aria-label":"卡片视图"},[...e[29]||(e[29]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h7v6H4V6zm9 0h7v6h-7V6zM4 14h7v4H4v-4zm9 0h7v4h-7v-4z"})],-1)])],2)])])]),s("div",ws,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary disabled:cursor-not-allowed disabled:opacity-50",disabled:j(ne),onClick:fe}," 刷新列表 ",8,ks),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:Kt}," 账户配置 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary disabled:cursor-not-allowed disabled:opacity-50",disabled:O.value,onClick:At}," 添加账户 ",8,Cs),s("div",{ref_key:"moreActionsRef",ref:De,class:"relative"},[s("button",{class:p(["flex items-center gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary",P.value?"bg-accent text-accent-foreground":""]),onClick:Ot},[e[30]||(e[30]=ee(" 更多操作 ",-1)),e[31]||(e[31]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1)),Bt.value?(l(),n("span",{key:0,class:p(["ml-1 h-2 w-2 rounded-full",zt.value]),"aria-hidden":"true"},null,2)):g("",!0)],2),P.value?(l(),n("div",Ts,[s("button",{type:"button",class:"flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm text-foreground transition-colors hover:bg-accent",onClick:e[4]||(e[4]=o=>{Ue(),le()})}," 任务状态 "),e[32]||(e[32]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:p(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",S.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:S.value,onClick:e[5]||(e[5]=o=>{ts(),le()})}," 刷新过期 ",10,Ss),s("button",{type:"button",class:p(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",!B.value||S.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:!B.value||S.value,onClick:e[6]||(e[6]=o=>{St(),le()})}," 刷新选中 ",10,$s),e[33]||(e[33]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:p(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",B.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!B.value,onClick:e[7]||(e[7]=o=>{qt(),le()})}," 批量启用 ",10,Is),s("button",{type:"button",class:p(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",B.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!B.value,onClick:e[8]||(e[8]=o=>{Qt(),le()})}," 批量禁用 ",10,Es),s("button",{type:"button",class:p(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",B.value?"text-destructive hover:bg-destructive/10":"cursor-not-allowed text-muted-foreground"]),disabled:!B.value,onClick:e[9]||(e[9]=o=>{Xt(),le()})}," 批量删除 ",10,Ls)])):g("",!0)],512)]),Y.value==="card"?(l(),n("div",As,[(l(!0),n(ge,null,Ve(H.value,o=>(l(),n("div",{key:o.id,class:p(["rounded-2xl border border-border bg-card p-4",ct(o)]),onClick:r=>Ee(o.id)},[s("div",Vs,[s("div",null,[e[34]||(e[34]=s("p",{class:"text-xs text-muted-foreground"},"账号 ID",-1)),s("p",js,a(o.id),1)]),s("div",Ms,[G(be,{modelValue:b.value.has(o.id),"onUpdate:modelValue":r=>Ee(o.id),onClick:e[10]||(e[10]=M(()=>{},["stop"]))},null,8,["modelValue","onUpdate:modelValue"]),s("span",{class:p(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",nt(o)])},a(ve(o)),3)])]),s("div",Ds,[s("div",null,[e[35]||(e[35]=s("p",null,"剩余时间",-1)),s("p",{class:p(["mt-1 text-sm font-semibold",dt(o)])},a(it(o.remaining_display)),3),o.expires_at?(l(),n("p",Os,a(o.expires_at),1)):g("",!0)]),s("div",null,[e[36]||(e[36]=s("p",null,"冷却",-1)),s("p",{class:p(["mt-1",ze(o)])},[o.cooldown_seconds>0?(l(),n("span",Bs,a(ut(o.cooldown_seconds))+" · "+a(o.cooldown_reason),1)):(l(),n("span",Ns,a(o.cooldown_reason||"无冷却"),1))],2)]),s("div",null,[e[37]||(e[37]=s("p",null,"失败数",-1)),s("p",Us,a(o.error_count),1)]),s("div",null,[e[38]||(e[38]=s("p",null,"会话数",-1)),s("p",zs,a(o.conversation_count),1)])]),s("div",Ps,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:M(r=>pt(o.id),["stop"])}," 编辑 ",8,Fs),at(o)?(l(),n("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[e[11]||(e[11]=M(()=>{},["stop"])),r=>bt(o.id)]}," 启用 ",8,Ks)):(l(),n("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[e[12]||(e[12]=M(()=>{},["stop"])),r=>yt(o.id)]}," 禁用 ",8,Hs)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:[e[13]||(e[13]=M(()=>{},["stop"])),r=>_t(o.id)]}," 删除 ",8,Js)])],10,Rs))),128)),!H.value.length&&!j(ne)?(l(),n("div",Gs," 暂无账号数据,请检查后台配置。 ")):g("",!0)])):(l(),n("div",Ys,[s("table",qs,[s("thead",Qs,[s("tr",null,[s("th",Xs,[G(be,{modelValue:Oe.value,"onUpdate:modelValue":ft},null,8,["modelValue"])]),e[40]||(e[40]=s("th",{class:"py-3 pr-6"},"账号 ID",-1)),e[41]||(e[41]=s("th",{class:"py-3 pr-6"},"状态",-1)),s("th",Ws,[s("span",Zs,[e[39]||(e[39]=ee(" 剩余/过期 ",-1)),G(ms,{text:"过期时间为 12 小时,账户过期以北京时间为准。"})])]),e[42]||(e[42]=s("th",{class:"py-3 pr-6"},"冷却",-1)),e[43]||(e[43]=s("th",{class:"py-3 pr-6"},"失败数",-1)),e[44]||(e[44]=s("th",{class:"py-3 pr-6"},"会话数",-1)),e[45]||(e[45]=s("th",{class:"py-3 text-right"},"操作",-1))])]),s("tbody",eo,[!H.value.length&&!j(ne)?(l(),n("tr",to,[...e[46]||(e[46]=[s("td",{colspan:"8",class:"py-8 text-center text-muted-foreground"}," 暂无账号数据,请检查后台配置。 ",-1)])])):g("",!0),(l(!0),n(ge,null,Ve(H.value,o=>(l(),n("tr",{key:o.id,class:p(["border-t border-border",ct(o)]),onClick:r=>Ee(o.id)},[s("td",{class:"py-4 pr-4",onClick:e[14]||(e[14]=M(()=>{},["stop"]))},[G(be,{modelValue:b.value.has(o.id),"onUpdate:modelValue":r=>Ee(o.id)},null,8,["modelValue","onUpdate:modelValue"])]),s("td",oo,a(o.id),1),s("td",ro,[s("span",{class:p(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",nt(o)])},a(ve(o)),3)]),s("td",lo,[s("div",{class:p(["text-sm font-semibold",dt(o)])},a(it(o.remaining_display)),3),o.expires_at?(l(),n("span",no,a(o.expires_at),1)):g("",!0)]),s("td",ao,[o.cooldown_seconds>0?(l(),n("span",{key:0,class:p(ze(o))},a(ut(o.cooldown_seconds))+" · "+a(o.cooldown_reason),3)):(l(),n("span",{key:1,class:p(ze(o))},a(o.cooldown_reason||"无冷却"),3))]),s("td",io,a(o.error_count),1),s("td",uo,a(o.conversation_count),1),s("td",co,[s("div",fo,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:M(r=>pt(o.id),["stop"])}," 编辑 ",8,vo),at(o)?(l(),n("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:M(r=>bt(o.id),["stop"])}," 启用 ",8,mo)):(l(),n("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:M(r=>yt(o.id),["stop"])}," 禁用 ",8,po)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:M(r=>_t(o.id),["stop"])}," 删除 ",8,xo)])])],10,so))),128))])])]))])]),G(fs,{open:j(T).open.value,title:j(T).title.value,message:j(T).message.value,"confirm-text":j(T).confirmText.value,"cancel-text":j(T).cancelText.value,onConfirm:j(T).confirm,onCancel:j(T).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(l(),Re(je,{to:"body"},[ye.value?(l(),n("div",go,[s("div",bo,[s("div",yo,[s("div",null,[e[47]||(e[47]=s("p",{class:"text-sm font-medium text-foreground"},"添加账户",-1)),s("p",_o,a(U.value==="register"?"创建 DuckMail 账号并自动注册":"批量导入账户配置"),1)]),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Ne}," 关闭 ")]),s("div",ho,[s("div",wo,[s("div",ko,[s("button",{type:"button",class:p(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",U.value==="register"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:e[15]||(e[15]=o=>U.value="register")}," 自动注册 ",2),s("button",{type:"button",class:p(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",U.value==="import"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:e[16]||(e[16]=o=>U.value="import")}," 批量导入 ",2)]),U.value==="register"?(l(),n("div",Co,[e[48]||(e[48]=s("label",{class:"block text-xs text-muted-foreground"},"注册数量",-1)),R(s("input",{"onUpdate:modelValue":e[17]||(e[17]=o=>de.value=o),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,de.value,void 0,{number:!0}]]),e[49]||(e[49]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},[s("p",null,"默认域名(可在配置面板修改,推荐使用)"),s("p",{class:"mt-1"},"注册失败建议关闭无头浏览器再试")],-1))])):(l(),n("div",To,[e[50]||(e[50]=s("label",{class:"block text-xs text-muted-foreground"},"批量导入(每行一个)",-1)),R(s("textarea",{"onUpdate:modelValue":e[18]||(e[18]=o=>ue.value=o),class:"min-h-[140px] w-full rounded-2xl border border-input bg-background px-3 py-2 text-xs font-mono",placeholder:`duckmail----you@example.com----password +user@outlook.com----loginPassword----clientId----refreshToken`},null,512),[[V,ue.value]]),e[51]||(e[51]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},[s("p",null,"支持两种格式:"),s("p",{class:"mt-1 font-mono"},"duckmail----email----password"),s("p",{class:"mt-1 font-mono"},"email----password----clientId----refreshToken"),s("p",{class:"mt-2"},'导入后请执行一次"刷新选中"以获取 Cookie。'),s("p",{class:"mt-1"},"注册失败建议关闭无头浏览器再试")],-1)),z.value?(l(),n("div",So,a(z.value),1)):g("",!0)])),e[53]||(e[53]=s("div",{class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-[11px] leading-relaxed"},[s("p",{class:"text-xs font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)"),s("p",{class:"mt-1 text-muted-foreground"},[ee("详细声明请查看项目 "),s("a",{href:"https://github.com/Dreamy-rain/gemini-business2api/blob/main/docs/DISCLAIMER.md",target:"_blank",class:"text-primary hover:underline font-medium"},"DISCLAIMER.md")])],-1)),G(be,{modelValue:ce.value,"onUpdate:modelValue":e[19]||(e[19]=o=>ce.value=o)},{default:$t(()=>[...e[52]||(e[52]=[ee(" 我已阅读并同意上述说明与限制 ",-1)])]),_:1},8,["modelValue"])])]),s("div",$o,[s("div",Io,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Ne}," 取消 "),U.value==="register"?(l(),n("button",{key:0,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",disabled:O.value||!ce.value,onClick:es}," 开始注册 ",8,Eo)):(l(),n("button",{key:1,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",disabled:_e.value||!ce.value,onClick:Vt}," 导入并保存 ",8,Lo))])])])])):g("",!0)])),(l(),Re(je,{to:"body"},[q.value?(l(),n("div",Ao,[s("div",Ro,[s("div",Vo,[e[54]||(e[54]=s("div",null,[s("p",{class:"text-sm font-medium text-foreground"},"任务状态"),s("p",{class:"mt-1 text-xs text-muted-foreground"},"注册与刷新任务的状态与日志")],-1)),s("div",jo,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-muted-foreground transition-colors hover:border-primary hover:text-primary disabled:cursor-not-allowed disabled:opacity-50",disabled:!Q.value.length&&!X.value.length&&!c.value&&!f.value&&!_.value,onClick:Dt}," 清空日志 ",8,Mo),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Mt}," 关闭 ")])]),s("div",Do,[_.value?(l(),n("div",Oo,a(_.value),1)):g("",!0),c.value||f.value?(l(),n("div",Bo,[c.value?(l(),n("div",No,[s("div",Uo,[s("span",{class:p(["h-2.5 w-2.5 rounded-full",wt(c.value)]),"aria-hidden":"true"},null,2),e[55]||(e[55]=ee(" 注册任务 ",-1))]),s("div",zo,[s("span",null,"状态:"+a(ht(c.value.status)),1),s("span",null,"进度:"+a(c.value.progress)+"/"+a(c.value.count),1),s("span",null,"成功:"+a(c.value.success_count),1),s("span",null,"失败:"+a(c.value.fail_count),1)])])):g("",!0),f.value?(l(),n("div",Po,[s("div",Fo,[s("span",{class:p(["h-2.5 w-2.5 rounded-full",wt(f.value)]),"aria-hidden":"true"},null,2),e[56]||(e[56]=ee(" 刷新任务 ",-1))]),s("div",Ko,[s("span",null,"状态:"+a(ht(f.value.status)),1),s("span",null,"进度:"+a(f.value.progress)+"/"+a(f.value.account_ids.length),1),s("span",null,"成功:"+a(f.value.success_count),1),s("span",null,"失败:"+a(f.value.fail_count),1)])])):g("",!0)])):g("",!0),Q.value.length||X.value.length?(l(),n("div",Ho,[s("div",{ref_key:"taskLogsRef",ref:We,class:"scrollbar-slim flex-1 overflow-y-auto rounded-2xl border border-border bg-muted/30 p-3"},[Q.value.length?(l(),n("div",Jo,[e[57]||(e[57]=s("p",{class:"text-xs font-semibold text-foreground"},"注册日志",-1)),s("div",Go,[(l(!0),n(ge,null,Ve(Q.value,(o,r)=>(l(),n("div",{key:`reg-${r}`,class:"font-mono"},a(mt(o)),1))),128))])])):g("",!0),X.value.length?(l(),n("div",Yo,[e[58]||(e[58]=s("p",{class:"text-xs font-semibold text-foreground"},"刷新日志",-1)),s("div",qo,[(l(!0),n(ge,null,Ve(X.value,(o,r)=>(l(),n("div",{key:`login-${r}`,class:"font-mono"},a(mt(o)),1))),128))])])):g("",!0)],512)])):g("",!0),!_.value&&!c.value&&!f.value&&!Q.value.length&&!X.value.length?(l(),n("div",Qo," 暂无任务 ")):g("",!0)])])])):g("",!0)])),(l(),Re(je,{to:"body"},[x.value?(l(),n("div",Xo,[s("div",Wo,[s("div",{class:"flex items-center justify-between"},[e[59]||(e[59]=s("p",{class:"text-sm font-medium text-foreground"},"编辑账号",-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Fe}," 关闭 ")]),$.value?(l(),n("div",Zo,a($.value),1)):g("",!0),s("div",er,[e[60]||(e[60]=s("label",{class:"block text-xs text-muted-foreground"},"账号 ID",-1)),R(s("input",{"onUpdate:modelValue":e[20]||(e[20]=o=>h.value.id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",disabled:""},null,512),[[V,h.value.id]]),e[61]||(e[61]=s("label",{class:"block text-xs text-muted-foreground"},"secure_c_ses",-1)),R(s("textarea",{"onUpdate:modelValue":e[21]||(e[21]=o=>h.value.secure_c_ses=o),class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",rows:"3"},null,512),[[V,h.value.secure_c_ses]]),e[62]||(e[62]=s("label",{class:"block text-xs text-muted-foreground"},"csesidx",-1)),R(s("input",{"onUpdate:modelValue":e[22]||(e[22]=o=>h.value.csesidx=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,h.value.csesidx]]),e[63]||(e[63]=s("label",{class:"block text-xs text-muted-foreground"},"config_id",-1)),R(s("input",{"onUpdate:modelValue":e[23]||(e[23]=o=>h.value.config_id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,h.value.config_id]]),e[64]||(e[64]=s("label",{class:"block text-xs text-muted-foreground"},"host_c_oses",-1)),R(s("input",{"onUpdate:modelValue":e[24]||(e[24]=o=>h.value.host_c_oses=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,h.value.host_c_oses]]),e[65]||(e[65]=s("label",{class:"block text-xs text-muted-foreground"},"expires_at",-1)),R(s("input",{"onUpdate:modelValue":e[25]||(e[25]=o=>h.value.expires_at=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"2025-12-23 10:59:21"},null,512),[[V,h.value.expires_at]])]),s("div",{class:"mt-6 flex items-center justify-end gap-2"},[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Fe}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Yt}," 保存 ")])])])):g("",!0)])),(l(),Re(je,{to:"body"},[Me.value?(l(),n("div",tr,[s("div",sr,[s("div",or,[e[66]||(e[66]=s("p",{class:"text-sm font-medium text-foreground"},"账户配置(JSON)",-1)),s("div",rr,[s("button",{class:"rounded-full bg-foreground px-3 py-1 text-xs text-background transition-opacity hover:opacity-90",onClick:Jt},a(N.value?"显示原文":"脱敏显示"),1),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Pe}," 关闭 ")])]),D.value?(l(),n("div",lr,a(D.value),1)):g("",!0),s("div",nr,[R(s("textarea",{"onUpdate:modelValue":e[26]||(e[26]=o=>se.value=o),class:"h-96 w-full rounded-2xl border border-input bg-background px-4 py-3 font-mono text-xs text-foreground",spellcheck:"false",readonly:N.value},null,8,ar),[[V,se.value]])]),s("div",ir,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Pe}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",onClick:Gt,disabled:N.value}," 保存 ",8,dr)])])])):g("",!0)]))],64))}});export{xr as default}; diff --git a/static/assets/Accounts-DnG8de1F.js b/static/assets/Accounts-DnG8de1F.js new file mode 100644 index 0000000000000000000000000000000000000000..d08c154dac02d87f27ebb92e9e5dc4333318edf5 --- /dev/null +++ b/static/assets/Accounts-DnG8de1F.js @@ -0,0 +1,2 @@ +import{g as E,E as ts,h as a,d as ss,G as os,i as K,o as rs,w as ls,j as ns,c as l,a as s,x as J,m as Re,q as A,v as $,y as Tt,t as n,n as g,u as R,b as m,f as pe,F as ge,r as Ve,z as je,p as V,e as r,H as as}from"./index-CM73xqTK.js";import{_ as is}from"./SelectMenu.vue_vue_type_script_setup_true_lang-CmlylKNl.js";import{_ as be}from"./Checkbox.vue_vue_type_script_setup_true_lang-D3YmChBg.js";import{_ as ds}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-szV8KRsH.js";import{u as us}from"./useConfirmDialog-WjrHNzIy.js";import{_ as cs}from"./HelpTip.vue_vue_type_script_setup_true_lang-D0920Okk.js";const h={list:()=>E.get("/admin/accounts"),getConfig:()=>E.get("/admin/accounts-config"),updateConfig:b=>E.put("/admin/accounts-config",b),delete:b=>E.delete(`/admin/accounts/${b}`),disable:b=>E.put(`/admin/accounts/${b}/disable`),enable:b=>E.put(`/admin/accounts/${b}/enable`),startRegister:(b,w)=>E.post("/admin/register/start",{count:b,domain:w}),getRegisterTask:b=>E.get(`/admin/register/task/${b}`),getRegisterCurrent:()=>E.get("/admin/register/current"),startLogin:b=>E.post("/admin/login/start",b),getLoginTask:b=>E.get(`/admin/login/task/${b}`),getLoginCurrent:()=>E.get("/admin/login/current"),checkLogin:()=>E.post("/admin/login/check")},fs=ts("accounts",()=>{const b=a([]),w=a(!1);async function L(){w.value=!0;try{const u=await h.list();b.value=Array.isArray(u)?u:u.accounts||[]}finally{w.value=!1}}async function re(u){await h.delete(u),await L()}async function C(u){await h.disable(u),await L()}async function le(u){await h.enable(u),await L()}async function Z(u){await Promise.all(u.map(j=>h.enable(j))),await L()}async function p(u){await Promise.all(u.map(j=>h.disable(j))),await L()}async function G(u){await Promise.all(u.map(j=>h.delete(j))),await L()}async function ne(u){await h.updateConfig(u),await L()}return{accounts:b,isLoading:w,loadAccounts:L,deleteAccount:re,disableAccount:C,enableAccount:le,bulkEnable:Z,bulkDisable:p,bulkDelete:G,updateConfig:ne}}),vs={class:"space-y-8"},xs={class:"rounded-3xl border border-border bg-card p-6"},ms={class:"flex flex-wrap items-center justify-between gap-4"},ps={class:"grid w-full grid-cols-2 gap-3 sm:flex sm:w-auto sm:items-center"},gs={class:"flex w-full flex-wrap items-center gap-3 text-xs text-muted-foreground sm:w-auto sm:flex-nowrap"},bs={class:"ml-auto flex items-center gap-2 sm:ml-0"},ys={class:"mt-4 flex flex-wrap items-center gap-2"},_s=["disabled"],hs=["disabled"],ws={key:0,class:"absolute right-0 z-10 mt-2 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg"},ks=["disabled"],Cs=["disabled"],Ts=["disabled"],Ss=["disabled"],Es=["disabled"],Is={key:0,class:"mt-6 grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3"},Ls=["onClick"],As={class:"flex items-start justify-between gap-3"},$s={class:"mt-1 font-mono text-xs text-foreground"},Rs={class:"flex items-center gap-2"},Vs={class:"mt-4 grid grid-cols-2 gap-3 text-xs text-muted-foreground"},js={key:0,class:"mt-1 text-[11px]"},Ms={key:0},Ds={key:1},Os={class:"mt-1 text-sm font-semibold text-foreground"},Bs={class:"mt-1 text-sm font-semibold text-foreground"},Ns={class:"mt-4 flex flex-wrap items-center gap-2"},Us=["onClick"],zs=["onClick"],Ps=["onClick"],Fs=["onClick"],Hs={key:0,class:"rounded-2xl border border-border bg-background p-4 text-center text-xs text-muted-foreground"},Ks={key:1,class:"relative mt-6 overflow-x-auto overflow-y-visible"},Js={class:"min-w-full text-left text-sm"},Gs={class:"text-xs uppercase tracking-[0.2em] text-muted-foreground"},Ys={class:"py-3 pr-4"},qs={class:"py-3 pr-6"},Qs={class:"inline-flex items-center gap-2"},Xs={class:"text-sm text-foreground"},Ws={key:0},Zs=["onClick"],eo={class:"py-4 pr-6 font-mono text-xs text-foreground"},to={class:"py-4 pr-6"},so={class:"py-4 pr-6"},oo={key:0,class:"block text-[11px] text-muted-foreground"},ro={class:"py-4 pr-6 text-xs"},lo={class:"py-4 pr-6 text-xs text-muted-foreground"},no={class:"py-4 pr-6 text-xs text-muted-foreground"},ao={class:"py-4 text-right"},io={class:"flex flex-wrap justify-end gap-2"},uo=["onClick"],co=["onClick"],fo=["onClick"],vo=["onClick"],xo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},mo={class:"flex max-h-[90vh] w-full max-w-lg flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},po={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},go={class:"mt-1 text-xs text-muted-foreground"},bo={class:"scrollbar-slim flex-1 overflow-y-auto px-6 py-4"},yo={class:"space-y-4 text-sm"},_o={class:"flex rounded-full border border-border bg-muted/30 p-1 text-xs"},ho={key:0,class:"space-y-4"},wo={key:1,class:"space-y-4"},ko={key:0,class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-xs text-rose-600"},Co={class:"border-t border-border/60 px-6 py-4"},To={class:"flex items-center justify-end gap-2"},So=["disabled"],Eo=["disabled"],Io={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Lo={class:"flex h-[80vh] w-full max-w-2xl flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},Ao={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},$o={class:"flex items-center gap-2"},Ro=["disabled"],Vo={class:"flex min-h-0 flex-1 flex-col px-6 py-4"},jo={key:0,class:"rounded-2xl bg-destructive/10 px-3 py-2 text-xs text-destructive"},Mo={key:1,class:"grid gap-3 text-xs text-muted-foreground"},Do={key:0,class:"space-y-1"},Oo={class:"flex flex-wrap gap-x-4 gap-y-1"},Bo={key:1,class:"space-y-1"},No={class:"flex flex-wrap gap-x-4 gap-y-1"},Uo={key:2,class:"mt-4 flex min-h-0 flex-1 flex-col"},zo={key:0,class:"space-y-2"},Po={class:"space-y-1 text-[11px] text-muted-foreground"},Fo={key:1,class:"mt-4 space-y-2"},Ho={class:"space-y-1 text-[11px] text-muted-foreground"},Ko={key:3,class:"mt-4 rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},Jo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Go={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},Yo={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},qo={class:"mt-4 space-y-3 text-sm"},Qo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Xo={class:"w-full max-w-3xl rounded-3xl border border-border bg-card p-6 shadow-xl"},Wo={class:"flex items-center justify-between"},Zo={class:"flex items-center gap-2"},er={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},tr={class:"mt-4"},sr=["readonly"],or={class:"mt-6 flex items-center justify-end gap-2"},rr=["disabled"],Ke="accounts-register-task-cache",Je="accounts-login-task-cache",Ge="accounts-register-log-clear",Ye="accounts-login-log-clear",qe="accounts-register-task-cleared-id",Qe="accounts-login-task-cleared-id",St="1970-01-01 00:00:00",cr=ss({__name:"Accounts",setup(b){const w=fs(),{accounts:L,isLoading:re}=os(w),C=us(),le=a(""),Z=a("all"),p=a(new Set),G=a("table"),ne=a(!1),u=a(""),j=a(!1),M=a(""),ee=a(""),B=a(!1),ae=a([]),ie=a(1),ye=a(!1),N=a("register"),de=a(""),U=a(""),_e=a(!1),Y=a(!1),z=a(!1),Me=a(null),he=a(null),we=a(null),P=a(null),F=a(null),te=a(0),se=a(0),ue=a(!1),c=a(null),f=a(null),Xe=a(null),D=a(!1),T=a(!1),y=a(""),_=a({id:"",secure_c_ses:"",csesidx:"",config_id:"",host_c_oses:"",expires_at:""}),ke=a(null),We=a([]),Et=[{label:"全部状态",value:"all"},{label:"正常",value:"正常"},{label:"即将过期",value:"即将过期"},{label:"已过期",value:"已过期"},{label:"手动禁用",value:"手动禁用"},{label:"错误禁用",value:"错误禁用"},{label:"429限流",value:"429限流"}],H=K(()=>{const e=le.value.trim().toLowerCase();return L.value.filter(t=>{const o=!e||t.id.toLowerCase().includes(e),i=Z.value==="all"||fe(t)===Z.value;return o&&i})}),O=K(()=>p.value.size),De=K(()=>H.value.length>0&&H.value.every(e=>p.value.has(e.id))),ce=async()=>{await w.loadAccounts(),p.value=new Set,z.value=!1},Ze=e=>{try{const t=localStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}},et=e=>{try{return localStorage.getItem(e)||null}catch{return null}},Ce=(e,t)=>{try{if(t){localStorage.setItem(e,t);return}localStorage.removeItem(e)}catch{}},tt=(e,t)=>{try{localStorage.setItem(e,JSON.stringify(t))}catch{}},st=e=>{try{localStorage.removeItem(e)}catch{}},ot=e=>{const t=localStorage.getItem(e),o=Number(t);return Number.isFinite(o)?o:0},Te=(e,t)=>{try{localStorage.setItem(e,String(t))}catch{}},Oe=(e,t=!0)=>{e&&(e.id&&e.id===P.value||(e.id&&P.value&&e.id!==P.value&&(P.value=null,Ce(qe,null)),c.value=e,e.id&&e.id!==he.value&&(he.value=e.id,te.value=0,Te(Ge,0)),t&&tt(Ke,e)))},Se=(e,t=!0)=>{e&&(e.id&&e.id===F.value||(e.id&&F.value&&e.id!==F.value&&(F.value=null,Ce(Qe,null)),f.value=e,e.id&&e.id!==we.value&&(we.value=e.id,se.value=0,Te(Ye,0)),t&&tt(Je,e)))},It=()=>{te.value=ot(Ge),se.value=ot(Ye),P.value=et(qe),F.value=et(Qe);const e=Ze(Ke);e&&e.id!==P.value&&(c.value=e,he.value=e.id||null);const t=Ze(Je);t&&t.id!==F.value&&(f.value=t,we.value=t.id||null)},Lt=()=>{ye.value=!0,N.value="register",de.value="",U.value="",_e.value=!1,ue.value=!1},Be=()=>{ye.value=!1},At=e=>{const t=[],o=[];return e.split(/\r?\n/).map(d=>d.trim()).filter(Boolean).forEach((d,x)=>{const v=d.split("----").map(S=>S.trim()),k=x+1;if(v.length){if(v[0].toLowerCase()==="duckmail"){if(v.length<3||!v[1]||!v[2]){o.push(`第 ${k} 行格式错误(duckmail)`);return}const S=v[1],$e=v.slice(2).join("----");t.push({id:S,secure_c_ses:"",csesidx:"",config_id:"",expires_at:St,mail_provider:"duckmail",mail_address:S,mail_password:$e});return}if(v.length>=4&&v[0]&&v[2]&&v[3]){const S=v[0],$e=v[1]||"",I=v[2],es=v.slice(3).join("----");t.push({id:S,secure_c_ses:"",csesidx:"",config_id:"",expires_at:St,mail_provider:"microsoft",mail_address:S,mail_password:$e,mail_client_id:I,mail_refresh_token:es,mail_tenant:"consumers"});return}o.push(`第 ${k} 行格式错误`)}}),{items:t,errors:o}},$t=async()=>{if(U.value="",!de.value.trim()){U.value="请输入导入内容";return}const{items:e,errors:t}=At(de.value);if(!e.length){U.value=t.length?t.join(","):"未识别到有效账号";return}if(t.length){U.value=t.slice(0,3).join(",");return}_e.value=!0;try{const i=[...await ft()],d=new Map(i.map((k,S)=>[k.id,S])),x=[];e.forEach(k=>{const S=d.get(k.id||"");if(S===void 0){i.push(k),x.push(k.id);return}const I={...i[S],mail_provider:k.mail_provider,mail_address:k.mail_address};k.mail_provider==="microsoft"?(I.mail_client_id=k.mail_client_id,I.mail_refresh_token=k.mail_refresh_token,I.mail_tenant=k.mail_tenant,I.mail_password=k.mail_password):(I.mail_password=k.mail_password,I.mail_client_id=void 0,I.mail_refresh_token=void 0,I.mail_tenant=void 0),i[S]=I,x.push(k.id)}),await w.updateConfig(i),await ce(),p.value=new Set(x),Be(),await C.ask({title:"导入成功",message:`已导入 ${x.length} 个账户并自动选中。是否立即刷新这些账户以获取 Cookie?`,confirmText:"立即刷新",cancelText:"稍后手动刷新"})&&await Ct()}catch(o){U.value=o.message||"导入失败"}finally{_e.value=!1}},Rt=async()=>{try{const e=[],t=c.value?.id,o=f.value?.id;if(t&&!Ee(t)&&e.push(ht(t)),o&&!Ie(o)&&e.push(wt(o)),!e.length){await He();return}await Promise.all(e)}catch(e){y.value=e?.message||"任务状态更新失败"}},Ne=async()=>{Y.value=!0,await Rt()},Vt=()=>{Y.value=!1},jt=()=>{const e=c.value?.id||null,t=f.value?.id||null;P.value=e,F.value=t,Ce(qe,e),Ce(Qe,t),te.value=c.value?.logs?.length||0,se.value=f.value?.logs?.length||0,Te(Ge,te.value),Te(Ye,se.value),c.value=null,f.value=null,he.value=null,we.value=null,y.value="",D.value=!1,T.value=!1,X(),W(),st(Ke),st(Je)},Ee=e=>!!(e&&e===P.value),Ie=e=>!!(e&&e===F.value),Mt=()=>{z.value=!z.value},oe=()=>{z.value=!1},rt=e=>{if(!z.value)return;const t=e.target;Me.value&&!Me.value.contains(t)&&(z.value=!1)};rs(async()=>{It(),await ce(),await He(),Xt(),document.addEventListener("click",rt)});const q=K(()=>{const e=c.value?.logs||[];return te.value?e.slice(te.value):e}),Q=K(()=>{const e=f.value?.logs||[];return se.value?e.slice(se.value):e}),Dt=K(()=>!!y.value||!!c.value||!!f.value||q.value.length>0||Q.value.length>0),Ot=async()=>{await as();const e=Xe.value;e&&(e.scrollTop=e.scrollHeight)};ls([q,Q,Y],async()=>{Y.value&&await Ot()},{deep:!0});const Bt=K(()=>{const e=c.value?.status,t=f.value?.status;return e==="running"||e==="pending"||t==="running"||t==="pending"}),Nt=K(()=>{if(y.value)return"bg-rose-500";if(Bt.value)return"bg-sky-400";const e=[];if(c.value){const d=c.value.success_count??0,x=c.value.fail_count??0,v=c.value.count??d+x;e.push({success:d,fail:x,total:v,status:c.value.status})}if(f.value){const d=f.value.success_count??0,x=f.value.fail_count??0,v=f.value.account_ids?.length??d+x;e.push({success:d,fail:x,total:v,status:f.value.status})}if(!e.length)return"bg-muted-foreground";const t=e.reduce((d,x)=>d+x.success,0),o=e.reduce((d,x)=>d+x.fail,0),i=e.reduce((d,x)=>d+(x.total||0),0);if(t>0&&o>0)return"bg-amber-400";if(o>0&&t===0)return"bg-rose-500";if(t>0&&o===0)return"bg-emerald-400";if(i===0){const d=e.every(v=>v.status==="success");if(e.some(v=>v.status==="failed"))return"bg-rose-500";if(d)return"bg-emerald-400"}return"bg-muted-foreground"});ns(()=>{X(),W(),Qt(),document.removeEventListener("click",rt)});const fe=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?"429限流":e.cooldown_reason==="错误禁用"?"错误禁用":e.disabled?"手动禁用":e.status==="已过期"?"已过期":e.status==="即将过期"?"即将过期":"正常",lt=e=>{const t=fe(e);return t==="429限流"||t==="即将过期"?"bg-amber-200 text-amber-900":t==="错误禁用"||t==="已过期"?"bg-destructive/10 text-destructive":t==="手动禁用"?"bg-muted text-muted-foreground":"bg-emerald-500 text-white"},nt=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?!0:e.disabled||e.cooldown_reason==="错误禁用",at=e=>e==="已过期"?"过期":e==="未设置"?"未设置":e,it=e=>e.status==="已过期"?"text-rose-600":e.status==="即将过期"?"text-amber-700":e.status==="未设置"?"text-muted-foreground":"text-emerald-600",dt=e=>e<60?`${e} 秒`:e<3600?`${Math.ceil(e/60)} 分钟`:`${(e/3600).toFixed(1)} 小时`,Ue=e=>e.cooldown_seconds>0?"text-amber-700":e.cooldown_reason==="错误禁用"?"text-rose-600":"text-muted-foreground",ut=e=>{const t=fe(e);return t==="手动禁用"||t==="已过期"?"bg-muted/70":""},Le=e=>{const t=new Set(p.value);t.has(e)?t.delete(e):t.add(e),p.value=t},ct=()=>{if(De.value){p.value=new Set;return}p.value=new Set(H.value.map(e=>e.id))},Ut=(e,t)=>e.id||`account_${t+1}`,ft=async()=>(await h.getConfig()).accounts.map((t,o)=>({...t,id:Ut(t,o)})),vt=e=>`${e.time} [${e.level}] ${e.message}`,zt=(e,t)=>{let o=-1;for(let d=0;d{u.value="";try{const t=await ft();zt(t,e)}catch(t){u.value=t.message||"加载账号配置失败"}},Pt=async()=>{M.value="";try{const e=await h.getConfig();ae.value=Array.isArray(e.accounts)?e.accounts:[],ee.value=JSON.stringify(pt(ae.value),null,2),B.value=!0,j.value=!0}catch(e){M.value=e.message||"加载账号配置失败"}},ze=()=>{j.value=!1,M.value="",B.value=!1},mt=()=>{const e=JSON.parse(ee.value);if(!Array.isArray(e))throw new Error("配置格式必须是数组。");return e},Ft=e=>typeof e!="string"||!e?e:e.length<=6?`${e.slice(0,2)}****`:`${e.slice(0,3)}****`,pt=e=>{const t=new Set(["secure_c_ses","csesidx","config_id","host_c_oses","mail_password","mail_refresh_token","mail_client_id"]);return e.map(o=>{const i={...o};return t.forEach(d=>{const x=i[d];x&&(i[d]=Ft(x))}),i})},Ht=()=>{if(M.value="",!B.value){try{ae.value=mt()}catch(e){M.value=e.message||"JSON 格式错误";return}ee.value=JSON.stringify(pt(ae.value),null,2),B.value=!0;return}ee.value=JSON.stringify(ae.value,null,2),B.value=!1},Kt=async()=>{M.value="";try{const e=mt();await w.updateConfig(e),ze()}catch(e){M.value=e.message||"保存失败"}},Pe=()=>{ne.value=!1,u.value=""},Jt=async()=>{if(ke.value===null)return;const e=[...We.value];e[ke.value]={...e[ke.value],id:_.value.id,secure_c_ses:_.value.secure_c_ses,csesidx:_.value.csesidx,config_id:_.value.config_id,host_c_oses:_.value.host_c_oses||void 0,expires_at:_.value.expires_at||void 0};try{await w.updateConfig(e),Pe()}catch(t){u.value=t.message||"保存失败"}},Gt=async()=>{await w.bulkEnable(Array.from(p.value)),p.value=new Set},Yt=async()=>{await C.ask({title:"批量禁用",message:"确定要批量禁用选中的账号吗?"})&&(await w.bulkDisable(Array.from(p.value)),p.value=new Set)},qt=async()=>{await C.ask({title:"批量删除",message:"确定要批量删除选中的账号吗?",confirmText:"删除"})&&(await w.bulkDelete(Array.from(p.value)),p.value=new Set)},gt=async e=>{await w.enableAccount(e)},bt=async e=>{await C.ask({title:"禁用账号",message:"确定要禁用该账号吗?"})&&await w.disableAccount(e)},yt=async e=>{await C.ask({title:"删除账号",message:"确定要删除该账号吗?",confirmText:"删除"})&&await w.deleteAccount(e)};let ve=null,xe=null,me=null,Ae=!1;const X=()=>{ve!==null&&(window.clearInterval(ve),ve=null)},W=()=>{xe!==null&&(window.clearInterval(xe),xe=null)},Qt=()=>{me!==null&&(window.clearInterval(me),me=null),Ae=!1},_t=e=>e==="pending"?"等待中":e==="running"?"执行中":e==="success"?"成功":e==="failed"?"失败":e,ht=async e=>{if(Ee(e)){X();return}const t=await h.getRegisterTask(e);if(Ee(t.id)){X();return}Oe(t),t.status!=="running"&&t.status!=="pending"&&(D.value=!1,X(),await ce())},wt=async e=>{if(Ie(e)){W();return}const t=await h.getLoginTask(e);if(Ie(t.id)){W();return}Se(t),t.status!=="running"&&t.status!=="pending"&&(T.value=!1,W(),await ce())},kt=e=>{X(),ve=window.setInterval(()=>{ht(e).catch(t=>{y.value=t?.message||"注册任务更新失败",X(),D.value=!1})},3e3)},Fe=e=>{W(),xe=window.setInterval(()=>{wt(e).catch(t=>{y.value=t?.message||"刷新任务更新失败",W(),T.value=!1})},3e3)},Xt=()=>{me===null&&(me=window.setInterval(async()=>{if(!Ae&&!Y.value&&!(ve!==null||xe!==null)&&!(!D.value&&!T.value&&!c.value&&!f.value)){Ae=!0;try{await He()}catch(e){y.value=e?.message||"后台刷新失败"}finally{Ae=!1}}},6e3))},He=async()=>{try{const e=await h.getRegisterCurrent();e&&"id"in e&&!Ee(e.id)&&(Oe(e),(e.status==="running"||e.status==="pending")&&(D.value=!0,kt(e.id)))}catch(e){y.value=e.message||"加载注册任务失败"}try{const e=await h.getLoginCurrent();e&&"id"in e&&!Ie(e.id)&&(Se(e),(e.status==="running"||e.status==="pending")&&(T.value=!0,Fe(e.id)))}catch(e){y.value=e.message||"加载刷新任务失败"}},Wt=async()=>{y.value="",D.value=!0;try{const e=Number.isFinite(ie.value)&&ie.value>0?ie.value:void 0,t=await h.startRegister(e);Oe(t),kt(t.id),ye.value=!1,Y.value=!0}catch(e){y.value=e.message||"启动注册失败",D.value=!1}},Ct=async()=>{if(p.value.size){y.value="",T.value=!0;try{const e=await h.startLogin(Array.from(p.value));Se(e),Fe(e.id),Ne()}catch(e){y.value=e.message||"启动刷新失败",T.value=!1}}},Zt=async()=>{y.value="",T.value=!0;try{await h.checkLogin();const e=await h.getLoginCurrent();if(e&&"id"in e){Se(e),Fe(e.id),Ne();return}T.value=!1}catch(e){y.value=e.message||"触发刷新失败",T.value=!1}};return(e,t)=>(r(),l(ge,null,[s("div",vs,[s("section",xs,[s("div",ms,[s("div",ps,[A(s("input",{"onUpdate:modelValue":t[0]||(t[0]=o=>le.value=o),type:"text",placeholder:"搜索账号 ID",class:"w-full rounded-full border border-input bg-background px-4 py-2 text-sm sm:w-48"},null,512),[[$,le.value]]),J(is,{modelValue:Z.value,"onUpdate:modelValue":t[1]||(t[1]=o=>Z.value=o),options:Et},null,8,["modelValue"])]),s("div",gs,[J(be,{modelValue:De.value,"onUpdate:modelValue":ct},{default:Tt(()=>[...t[27]||(t[27]=[pe(" 全选 ",-1)])]),_:1},8,["modelValue"]),s("span",null,"已选 "+n(O.value)+" / "+n(H.value.length)+" 个账号",1),s("div",bs,[s("button",{type:"button",class:g(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",G.value==="table"?"bg-accent text-accent-foreground":""]),onClick:t[2]||(t[2]=o=>G.value="table"),"aria-label":"列表视图"},[...t[28]||(t[28]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])],2),s("button",{type:"button",class:g(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",G.value==="card"?"bg-accent text-accent-foreground":""]),onClick:t[3]||(t[3]=o=>G.value="card"),"aria-label":"卡片视图"},[...t[29]||(t[29]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h7v6H4V6zm9 0h7v6h-7V6zM4 14h7v4H4v-4zm9 0h7v4h-7v-4z"})],-1)])],2)])])]),s("div",ys,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:R(re),onClick:ce}," 刷新列表 ",8,_s),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:Pt}," 账户配置 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:D.value,onClick:Lt}," 添加账户 ",8,hs),s("div",{ref_key:"moreActionsRef",ref:Me,class:"relative"},[s("button",{class:g(["flex items-center gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary",z.value?"bg-accent text-accent-foreground":""]),onClick:Mt},[t[30]||(t[30]=pe(" 更多操作 ",-1)),t[31]||(t[31]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1)),Dt.value?(r(),l("span",{key:0,class:g(["ml-1 h-2 w-2 rounded-full",Nt.value]),"aria-hidden":"true"},null,2)):m("",!0)],2),z.value?(r(),l("div",ws,[s("button",{type:"button",class:"flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm text-foreground transition-colors hover:bg-accent",onClick:t[4]||(t[4]=o=>{Ne(),oe()})}," 任务状态 "),t[32]||(t[32]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",T.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:T.value,onClick:t[5]||(t[5]=o=>{Zt(),oe()})}," 刷新过期 ",10,ks),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",!O.value||T.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:!O.value||T.value,onClick:t[6]||(t[6]=o=>{Ct(),oe()})}," 刷新选中 ",10,Cs),t[33]||(t[33]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",O.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!O.value,onClick:t[7]||(t[7]=o=>{Gt(),oe()})}," 批量启用 ",10,Ts),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",O.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!O.value,onClick:t[8]||(t[8]=o=>{Yt(),oe()})}," 批量禁用 ",10,Ss),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",O.value?"text-destructive hover:bg-destructive/10":"cursor-not-allowed text-muted-foreground"]),disabled:!O.value,onClick:t[9]||(t[9]=o=>{qt(),oe()})}," 批量删除 ",10,Es)])):m("",!0)],512)]),G.value==="card"?(r(),l("div",Is,[(r(!0),l(ge,null,Ve(H.value,o=>(r(),l("div",{key:o.id,class:g(["rounded-2xl border border-border bg-card p-4",ut(o)]),onClick:i=>Le(o.id)},[s("div",As,[s("div",null,[t[34]||(t[34]=s("p",{class:"text-xs text-muted-foreground"},"账号 ID",-1)),s("p",$s,n(o.id),1)]),s("div",Rs,[J(be,{modelValue:p.value.has(o.id),"onUpdate:modelValue":i=>Le(o.id),onClick:t[10]||(t[10]=V(()=>{},["stop"]))},null,8,["modelValue","onUpdate:modelValue"]),s("span",{class:g(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",lt(o)])},n(fe(o)),3)])]),s("div",Vs,[s("div",null,[t[35]||(t[35]=s("p",null,"剩余时间",-1)),s("p",{class:g(["mt-1 text-sm font-semibold",it(o)])},n(at(o.remaining_display)),3),o.expires_at?(r(),l("p",js,n(o.expires_at),1)):m("",!0)]),s("div",null,[t[36]||(t[36]=s("p",null,"冷却",-1)),s("p",{class:g(["mt-1",Ue(o)])},[o.cooldown_seconds>0?(r(),l("span",Ms,n(dt(o.cooldown_seconds))+" · "+n(o.cooldown_reason),1)):(r(),l("span",Ds,n(o.cooldown_reason||"无冷却"),1))],2)]),s("div",null,[t[37]||(t[37]=s("p",null,"失败数",-1)),s("p",Os,n(o.error_count),1)]),s("div",null,[t[38]||(t[38]=s("p",null,"会话数",-1)),s("p",Bs,n(o.conversation_count),1)])]),s("div",Ns,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>xt(o.id),["stop"])}," 编辑 ",8,Us),nt(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[11]||(t[11]=V(()=>{},["stop"])),i=>gt(o.id)]}," 启用 ",8,zs)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[12]||(t[12]=V(()=>{},["stop"])),i=>bt(o.id)]}," 禁用 ",8,Ps)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:[t[13]||(t[13]=V(()=>{},["stop"])),i=>yt(o.id)]}," 删除 ",8,Fs)])],10,Ls))),128)),!H.value.length&&!R(re)?(r(),l("div",Hs," 暂无账号数据,请检查后台配置。 ")):m("",!0)])):(r(),l("div",Ks,[s("table",Js,[s("thead",Gs,[s("tr",null,[s("th",Ys,[J(be,{modelValue:De.value,"onUpdate:modelValue":ct},null,8,["modelValue"])]),t[40]||(t[40]=s("th",{class:"py-3 pr-6"},"账号 ID",-1)),t[41]||(t[41]=s("th",{class:"py-3 pr-6"},"状态",-1)),s("th",qs,[s("span",Qs,[t[39]||(t[39]=pe(" 剩余/过期 ",-1)),J(cs,{text:"过期时间为 12 小时,账户过期以北京时间为准。"})])]),t[42]||(t[42]=s("th",{class:"py-3 pr-6"},"冷却",-1)),t[43]||(t[43]=s("th",{class:"py-3 pr-6"},"失败数",-1)),t[44]||(t[44]=s("th",{class:"py-3 pr-6"},"会话数",-1)),t[45]||(t[45]=s("th",{class:"py-3 text-right"},"操作",-1))])]),s("tbody",Xs,[!H.value.length&&!R(re)?(r(),l("tr",Ws,[...t[46]||(t[46]=[s("td",{colspan:"8",class:"py-8 text-center text-muted-foreground"}," 暂无账号数据,请检查后台配置。 ",-1)])])):m("",!0),(r(!0),l(ge,null,Ve(H.value,o=>(r(),l("tr",{key:o.id,class:g(["border-t border-border",ut(o)]),onClick:i=>Le(o.id)},[s("td",{class:"py-4 pr-4",onClick:t[14]||(t[14]=V(()=>{},["stop"]))},[J(be,{modelValue:p.value.has(o.id),"onUpdate:modelValue":i=>Le(o.id)},null,8,["modelValue","onUpdate:modelValue"])]),s("td",eo,n(o.id),1),s("td",to,[s("span",{class:g(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",lt(o)])},n(fe(o)),3)]),s("td",so,[s("div",{class:g(["text-sm font-semibold",it(o)])},n(at(o.remaining_display)),3),o.expires_at?(r(),l("span",oo,n(o.expires_at),1)):m("",!0)]),s("td",ro,[o.cooldown_seconds>0?(r(),l("span",{key:0,class:g(Ue(o))},n(dt(o.cooldown_seconds))+" · "+n(o.cooldown_reason),3)):(r(),l("span",{key:1,class:g(Ue(o))},n(o.cooldown_reason||"无冷却"),3))]),s("td",lo,n(o.error_count),1),s("td",no,n(o.conversation_count),1),s("td",ao,[s("div",io,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>xt(o.id),["stop"])}," 编辑 ",8,uo),nt(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>gt(o.id),["stop"])}," 启用 ",8,co)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>bt(o.id),["stop"])}," 禁用 ",8,fo)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:V(i=>yt(o.id),["stop"])}," 删除 ",8,vo)])])],10,Zs))),128))])])]))])]),J(ds,{open:R(C).open.value,title:R(C).title.value,message:R(C).message.value,"confirm-text":R(C).confirmText.value,"cancel-text":R(C).cancelText.value,onConfirm:R(C).confirm,onCancel:R(C).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(r(),Re(je,{to:"body"},[ye.value?(r(),l("div",xo,[s("div",mo,[s("div",po,[s("div",null,[t[47]||(t[47]=s("p",{class:"text-sm font-medium text-foreground"},"添加账户",-1)),s("p",go,n(N.value==="register"?"创建 DuckMail 账号并自动注册":"批量导入账户配置"),1)]),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Be}," 关闭 ")]),s("div",bo,[s("div",yo,[s("div",_o,[s("button",{type:"button",class:g(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",N.value==="register"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:t[15]||(t[15]=o=>N.value="register")}," 自动注册 ",2),s("button",{type:"button",class:g(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",N.value==="import"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:t[16]||(t[16]=o=>N.value="import")}," 批量导入 ",2)]),N.value==="register"?(r(),l("div",ho,[t[48]||(t[48]=s("label",{class:"block text-xs text-muted-foreground"},"注册数量",-1)),A(s("input",{"onUpdate:modelValue":t[17]||(t[17]=o=>ie.value=o),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,ie.value,void 0,{number:!0}]]),t[49]||(t[49]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"}," 默认域名来自设置面板(可在“配置面板”中修改) ",-1))])):(r(),l("div",wo,[t[50]||(t[50]=s("label",{class:"block text-xs text-muted-foreground"},"批量导入(每行一个)",-1)),A(s("textarea",{"onUpdate:modelValue":t[18]||(t[18]=o=>de.value=o),class:"min-h-[140px] w-full rounded-2xl border border-input bg-background px-3 py-2 text-xs font-mono",placeholder:`duckmail----you@example.com----password +user@outlook.com----loginPassword----clientId----refreshToken`},null,512),[[$,de.value]]),t[51]||(t[51]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},[s("p",null,"支持两种格式:"),s("p",{class:"mt-1 font-mono"},"duckmail----email----password"),s("p",{class:"mt-1 font-mono"},"email----password----clientId----refreshToken"),s("p",{class:"mt-2 text-[11px]"},'导入后请执行一次"刷新选中"以获取 Cookie。')],-1)),U.value?(r(),l("div",ko,n(U.value),1)):m("",!0)])),t[53]||(t[53]=s("div",{class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-[11px] leading-relaxed"},[s("p",{class:"text-xs font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)"),s("p",{class:"mt-1 text-muted-foreground"},[pe("详细声明请查看项目 "),s("a",{href:"https://github.com/Dreamy-rain/gemini-business2api/blob/main/docs/DISCLAIMER.md",target:"_blank",class:"text-primary hover:underline font-medium"},"DISCLAIMER.md")])],-1)),J(be,{modelValue:ue.value,"onUpdate:modelValue":t[19]||(t[19]=o=>ue.value=o)},{default:Tt(()=>[...t[52]||(t[52]=[pe(" 我已阅读并同意上述说明与限制 ",-1)])]),_:1},8,["modelValue"])])]),s("div",Co,[s("div",To,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Be}," 取消 "),N.value==="register"?(r(),l("button",{key:0,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:D.value||!ue.value,onClick:Wt}," 开始注册 ",8,So)):(r(),l("button",{key:1,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:_e.value||!ue.value,onClick:$t}," 导入并保存 ",8,Eo))])])])])):m("",!0)])),(r(),Re(je,{to:"body"},[Y.value?(r(),l("div",Io,[s("div",Lo,[s("div",Ao,[t[54]||(t[54]=s("div",null,[s("p",{class:"text-sm font-medium text-foreground"},"任务状态"),s("p",{class:"mt-1 text-xs text-muted-foreground"},"注册与刷新任务的状态与日志")],-1)),s("div",$o,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-muted-foreground transition-colors hover:border-primary hover:text-primary",disabled:!q.value.length&&!Q.value.length&&!c.value&&!f.value&&!y.value,onClick:jt}," 清空日志 ",8,Ro),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Vt}," 关闭 ")])]),s("div",Vo,[y.value?(r(),l("div",jo,n(y.value),1)):m("",!0),c.value||f.value?(r(),l("div",Mo,[c.value?(r(),l("div",Do,[t[55]||(t[55]=s("div",{class:"font-medium text-foreground"},"注册任务",-1)),s("div",Oo,[s("span",null,"状态:"+n(_t(c.value.status)),1),s("span",null,"进度:"+n(c.value.progress)+"/"+n(c.value.count),1),s("span",null,"成功:"+n(c.value.success_count),1),s("span",null,"失败:"+n(c.value.fail_count),1)])])):m("",!0),f.value?(r(),l("div",Bo,[t[56]||(t[56]=s("div",{class:"font-medium text-foreground"},"刷新任务",-1)),s("div",No,[s("span",null,"状态:"+n(_t(f.value.status)),1),s("span",null,"进度:"+n(f.value.progress)+"/"+n(f.value.account_ids.length),1),s("span",null,"成功:"+n(f.value.success_count),1),s("span",null,"失败:"+n(f.value.fail_count),1)])])):m("",!0)])):m("",!0),q.value.length||Q.value.length?(r(),l("div",Uo,[s("div",{ref_key:"taskLogsRef",ref:Xe,class:"scrollbar-slim flex-1 overflow-y-auto rounded-2xl border border-border bg-muted/30 p-3"},[q.value.length?(r(),l("div",zo,[t[57]||(t[57]=s("p",{class:"text-xs font-semibold text-foreground"},"注册日志",-1)),s("div",Po,[(r(!0),l(ge,null,Ve(q.value,(o,i)=>(r(),l("div",{key:`reg-${i}`,class:"font-mono"},n(vt(o)),1))),128))])])):m("",!0),Q.value.length?(r(),l("div",Fo,[t[58]||(t[58]=s("p",{class:"text-xs font-semibold text-foreground"},"刷新日志",-1)),s("div",Ho,[(r(!0),l(ge,null,Ve(Q.value,(o,i)=>(r(),l("div",{key:`login-${i}`,class:"font-mono"},n(vt(o)),1))),128))])])):m("",!0)],512)])):m("",!0),!y.value&&!c.value&&!f.value&&!q.value.length&&!Q.value.length?(r(),l("div",Ko," 暂无任务 ")):m("",!0)])])])):m("",!0)])),(r(),Re(je,{to:"body"},[ne.value?(r(),l("div",Jo,[s("div",Go,[s("div",{class:"flex items-center justify-between"},[t[59]||(t[59]=s("p",{class:"text-sm font-medium text-foreground"},"编辑账号",-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Pe}," 关闭 ")]),u.value?(r(),l("div",Yo,n(u.value),1)):m("",!0),s("div",qo,[t[60]||(t[60]=s("label",{class:"block text-xs text-muted-foreground"},"账号 ID",-1)),A(s("input",{"onUpdate:modelValue":t[20]||(t[20]=o=>_.value.id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",disabled:""},null,512),[[$,_.value.id]]),t[61]||(t[61]=s("label",{class:"block text-xs text-muted-foreground"},"secure_c_ses",-1)),A(s("textarea",{"onUpdate:modelValue":t[21]||(t[21]=o=>_.value.secure_c_ses=o),class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",rows:"3"},null,512),[[$,_.value.secure_c_ses]]),t[62]||(t[62]=s("label",{class:"block text-xs text-muted-foreground"},"csesidx",-1)),A(s("input",{"onUpdate:modelValue":t[22]||(t[22]=o=>_.value.csesidx=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,_.value.csesidx]]),t[63]||(t[63]=s("label",{class:"block text-xs text-muted-foreground"},"config_id",-1)),A(s("input",{"onUpdate:modelValue":t[23]||(t[23]=o=>_.value.config_id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,_.value.config_id]]),t[64]||(t[64]=s("label",{class:"block text-xs text-muted-foreground"},"host_c_oses",-1)),A(s("input",{"onUpdate:modelValue":t[24]||(t[24]=o=>_.value.host_c_oses=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,_.value.host_c_oses]]),t[65]||(t[65]=s("label",{class:"block text-xs text-muted-foreground"},"expires_at",-1)),A(s("input",{"onUpdate:modelValue":t[25]||(t[25]=o=>_.value.expires_at=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"2025-12-23 10:59:21"},null,512),[[$,_.value.expires_at]])]),s("div",{class:"mt-6 flex items-center justify-end gap-2"},[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Pe}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Jt}," 保存 ")])])])):m("",!0)])),(r(),Re(je,{to:"body"},[j.value?(r(),l("div",Qo,[s("div",Xo,[s("div",Wo,[t[66]||(t[66]=s("p",{class:"text-sm font-medium text-foreground"},"账户配置(JSON)",-1)),s("div",Zo,[s("button",{class:"rounded-full bg-foreground px-3 py-1 text-xs text-background transition-opacity hover:opacity-90",onClick:Ht},n(B.value?"显示原文":"脱敏显示"),1),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:ze}," 关闭 ")])]),M.value?(r(),l("div",er,n(M.value),1)):m("",!0),s("div",tr,[A(s("textarea",{"onUpdate:modelValue":t[26]||(t[26]=o=>ee.value=o),class:"h-96 w-full rounded-2xl border border-input bg-background px-4 py-3 font-mono text-xs text-foreground",spellcheck:"false",readonly:B.value},null,8,sr),[[$,ee.value]])]),s("div",or,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:ze}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Kt,disabled:B.value}," 保存 ",8,rr)])])])):m("",!0)]))],64))}});export{cr as default}; diff --git a/static/assets/Accounts-Dzw6xcVv.js b/static/assets/Accounts-Dzw6xcVv.js new file mode 100644 index 0000000000000000000000000000000000000000..eef5a683a357559024241db45f64a7f3f0829b1e --- /dev/null +++ b/static/assets/Accounts-Dzw6xcVv.js @@ -0,0 +1,2 @@ +import{g as S,C as es,h as a,d as ts,D as ss,i as F,o as os,s as rs,j as ls,c as l,a as s,x as K,y as Le,m as A,v as L,A as wt,t as n,n as m,u as I,b as x,f as H,F as pe,r as Ie,T as $e,w as $,e as r,E as ns}from"./index-C7QtVLks.js";import{_ as as}from"./SelectMenu.vue_vue_type_script_setup_true_lang-bF-MPrxc.js";import{_ as xe}from"./Checkbox.vue_vue_type_script_setup_true_lang-ChgTHjuD.js";import{_ as is}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-Cf0ef7-g.js";import{u as ds}from"./useConfirmDialog-0WVRfuk6.js";import{_ as us}from"./HelpTip.vue_vue_type_script_setup_true_lang-C9YlQcyS.js";const k={list:()=>S.get("/admin/accounts"),getConfig:()=>S.get("/admin/accounts-config"),updateConfig:g=>S.put("/admin/accounts-config",g),delete:g=>S.delete(`/admin/accounts/${g}`),disable:g=>S.put(`/admin/accounts/${g}/disable`),enable:g=>S.put(`/admin/accounts/${g}/enable`),startRegister:(g,w)=>S.post("/admin/register/start",{count:g,domain:w}),getRegisterTask:g=>S.get(`/admin/register/task/${g}`),getRegisterCurrent:()=>S.get("/admin/register/current"),startLogin:g=>S.post("/admin/login/start",g),getLoginTask:g=>S.get(`/admin/login/task/${g}`),getLoginCurrent:()=>S.get("/admin/login/current"),checkLogin:()=>S.post("/admin/login/check")},cs=es("accounts",()=>{const g=a([]),w=a(!1);async function E(){w.value=!0;try{const f=await k.list();g.value=Array.isArray(f)?f:f.accounts||[]}finally{w.value=!1}}async function oe(f){await k.delete(f),await E()}async function T(f){await k.disable(f),await E()}async function re(f){await k.enable(f),await E()}async function W(f){await Promise.all(f.map(R=>k.enable(R))),await E()}async function b(f){await Promise.all(f.map(R=>k.disable(R))),await E()}async function J(f){await Promise.all(f.map(R=>k.delete(R))),await E()}async function le(f){await k.updateConfig(f),await E()}return{accounts:g,isLoading:w,loadAccounts:E,deleteAccount:oe,disableAccount:T,enableAccount:re,bulkEnable:W,bulkDisable:b,bulkDelete:J,updateConfig:le}}),fs={class:"space-y-8"},vs={class:"rounded-3xl border border-border bg-card p-6"},ps={class:"flex flex-wrap items-center justify-between gap-4"},xs={class:"grid w-full grid-cols-2 gap-3 sm:flex sm:w-auto sm:items-center"},ms={class:"flex w-full flex-wrap items-center gap-3 text-xs text-muted-foreground sm:w-auto sm:flex-nowrap"},gs={class:"ml-auto flex items-center gap-2 sm:ml-0"},bs={class:"mt-4 flex flex-wrap items-center gap-2"},ys=["disabled"],_s=["disabled"],ks={key:0,class:"absolute right-0 z-10 mt-2 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg"},ws=["disabled"],hs=["disabled"],Cs=["disabled"],Ts=["disabled"],Ss=["disabled"],Es={key:0,class:"mt-6 grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3"},As=["onClick"],Ls={class:"flex items-start justify-between gap-3"},Is={class:"mt-1 font-mono text-xs text-foreground"},$s={class:"flex items-center gap-2"},Rs={class:"mt-4 grid grid-cols-2 gap-3 text-xs text-muted-foreground"},Vs={key:0,class:"mt-1 text-[11px]"},js={key:0},Ms={key:1},Ds={class:"mt-1 text-sm font-semibold text-foreground"},Os={class:"mt-1 text-sm font-semibold text-foreground"},Bs={class:"mt-4 flex flex-wrap items-center gap-2"},Ns=["onClick"],Us=["onClick"],zs=["onClick"],Ps=["onClick"],Fs={key:0,class:"rounded-2xl border border-border bg-background p-4 text-center text-xs text-muted-foreground"},Ks={key:1,class:"relative mt-6 overflow-x-auto overflow-y-visible"},Hs={class:"min-w-full text-left text-sm"},Js={class:"text-xs uppercase tracking-[0.2em] text-muted-foreground"},Gs={class:"py-3 pr-4"},Ys={class:"py-3 pr-6"},Qs={class:"inline-flex items-center gap-2"},qs={class:"text-sm text-foreground"},Xs={key:0},Ws=["onClick"],Zs={class:"py-4 pr-6 font-mono text-xs text-foreground"},eo={class:"py-4 pr-6"},to={class:"py-4 pr-6"},so={key:0,class:"block text-[11px] text-muted-foreground"},oo={class:"py-4 pr-6 text-xs"},ro={class:"py-4 pr-6 text-xs text-muted-foreground"},lo={class:"py-4 pr-6 text-xs text-muted-foreground"},no={class:"py-4 text-right"},ao={class:"flex flex-wrap justify-end gap-2"},io=["onClick"],uo=["onClick"],co=["onClick"],fo=["onClick"],vo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},po={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},xo={class:"flex items-center justify-between"},mo={class:"mt-1 text-xs text-muted-foreground"},go={class:"mt-4 space-y-4 text-sm"},bo={class:"flex rounded-full border border-border bg-muted/30 p-1 text-xs"},yo={key:0,class:"space-y-4"},_o={key:1,class:"space-y-4"},ko={key:0,class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-xs text-rose-600"},wo={class:"mt-6 flex items-center justify-end gap-2"},ho=["disabled"],Co=["disabled"],To={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},So={class:"flex h-[80vh] w-full max-w-2xl flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},Eo={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},Ao={class:"flex items-center gap-2"},Lo=["disabled"],Io={class:"flex min-h-0 flex-1 flex-col px-6 py-4"},$o={key:0,class:"rounded-2xl bg-destructive/10 px-3 py-2 text-xs text-destructive"},Ro={key:1,class:"grid gap-3 text-xs text-muted-foreground"},Vo={key:0,class:"space-y-1"},jo={class:"flex flex-wrap gap-x-4 gap-y-1"},Mo={key:1,class:"space-y-1"},Do={class:"flex flex-wrap gap-x-4 gap-y-1"},Oo={key:2,class:"mt-4 flex min-h-0 flex-1 flex-col"},Bo={key:0,class:"space-y-2"},No={class:"space-y-1 text-[11px] text-muted-foreground"},Uo={key:1,class:"mt-4 space-y-2"},zo={class:"space-y-1 text-[11px] text-muted-foreground"},Po={key:3,class:"mt-4 rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},Fo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Ko={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},Ho={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Jo={class:"mt-4 space-y-3 text-sm"},Go={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Yo={class:"w-full max-w-3xl rounded-3xl border border-border bg-card p-6 shadow-xl"},Qo={class:"flex items-center justify-between"},qo={class:"flex items-center gap-2"},Xo={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Wo={class:"mt-4"},Zo=["readonly"],er={class:"mt-6 flex items-center justify-end gap-2"},tr=["disabled"],Fe="accounts-register-task-cache",Ke="accounts-login-task-cache",He="accounts-register-log-clear",Je="accounts-login-log-clear",Ge="accounts-register-task-cleared-id",Ye="accounts-login-task-cleared-id",ht="1970-01-01 00:00:00",ir=ts({__name:"Accounts",setup(g){const w=cs(),{accounts:E,isLoading:oe}=ss(w),T=ds(),re=a(""),W=a("all"),b=a(new Set),J=a("table"),le=a(!1),f=a(""),R=a(!1),V=a(""),Z=a(""),D=a(!1),ne=a([]),ae=a(1),me=a(!1),O=a("register"),ie=a(""),B=a(""),ge=a(!1),G=a(!1),N=a(!1),Re=a(null),be=a(null),ye=a(null),U=a(null),z=a(null),ee=a(0),te=a(0),de=a(!1),v=a(null),p=a(null),Qe=a(null),j=a(!1),C=a(!1),y=a(""),_=a({id:"",secure_c_ses:"",csesidx:"",config_id:"",host_c_oses:"",expires_at:""}),_e=a(null),qe=a([]),Ct=[{label:"全部状态",value:"all"},{label:"正常",value:"正常"},{label:"即将过期",value:"即将过期"},{label:"已过期",value:"已过期"},{label:"手动禁用",value:"手动禁用"},{label:"错误禁用",value:"错误禁用"},{label:"429限流",value:"429限流"}],P=F(()=>{const e=re.value.trim().toLowerCase();return E.value.filter(t=>{const o=!e||t.id.toLowerCase().includes(e),i=W.value==="all"||ue(t)===W.value;return o&&i})}),M=F(()=>b.value.size),Ve=F(()=>P.value.length>0&&P.value.every(e=>b.value.has(e.id))),ke=async()=>{await w.loadAccounts(),b.value=new Set,N.value=!1},Xe=e=>{try{const t=localStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}},We=e=>{try{return localStorage.getItem(e)||null}catch{return null}},we=(e,t)=>{try{if(t){localStorage.setItem(e,t);return}localStorage.removeItem(e)}catch{}},Ze=(e,t)=>{try{localStorage.setItem(e,JSON.stringify(t))}catch{}},et=e=>{try{localStorage.removeItem(e)}catch{}},tt=e=>{const t=localStorage.getItem(e),o=Number(t);return Number.isFinite(o)?o:0},he=(e,t)=>{try{localStorage.setItem(e,String(t))}catch{}},je=(e,t=!0)=>{e&&(e.id&&e.id===U.value||(e.id&&U.value&&e.id!==U.value&&(U.value=null,we(Ge,null)),v.value=e,e.id&&e.id!==be.value&&(be.value=e.id,ee.value=0,he(He,0)),t&&Ze(Fe,e)))},Ce=(e,t=!0)=>{e&&(e.id&&e.id===z.value||(e.id&&z.value&&e.id!==z.value&&(z.value=null,we(Ye,null)),p.value=e,e.id&&e.id!==ye.value&&(ye.value=e.id,te.value=0,he(Je,0)),t&&Ze(Ke,e)))},Tt=()=>{ee.value=tt(He),te.value=tt(Je),U.value=We(Ge),z.value=We(Ye);const e=Xe(Fe);e&&e.id!==U.value&&(v.value=e,be.value=e.id||null);const t=Xe(Ke);t&&t.id!==z.value&&(p.value=t,ye.value=t.id||null)},St=()=>{me.value=!0,O.value="register",ie.value="",B.value="",ge.value=!1,de.value=!1},Me=()=>{me.value=!1},Et=e=>{const t=[],o=[];return e.split(/\r?\n/).map(c=>c.trim()).filter(Boolean).forEach((c,d)=>{const u=c.split("----").map(h=>h.trim()),ze=d+1;if(u.length){if(u[0].toLowerCase()==="duckmail"){if(u.length<3||!u[1]||!u[2]){o.push(`第 ${ze} 行格式错误(duckmail)`);return}const h=u[1],Pe=u.slice(2).join("----");t.push({id:h,secure_c_ses:"",csesidx:"",config_id:"",expires_at:ht,mail_provider:"duckmail",mail_address:h,mail_password:Pe});return}if(u.length>=4&&u[0]&&u[2]&&u[3]){const h=u[0],Pe=u[2],Zt=u.slice(3).join("----");t.push({id:h,secure_c_ses:"",csesidx:"",config_id:"",expires_at:ht,mail_provider:"microsoft",mail_address:h,mail_client_id:Pe,mail_refresh_token:Zt,mail_tenant:"consumers"});return}o.push(`第 ${ze} 行格式错误`)}}),{items:t,errors:o}},At=async()=>{if(B.value="",!ie.value.trim()){B.value="请输入导入内容";return}const{items:e,errors:t}=Et(ie.value);if(!e.length){B.value=t.length?t.join(","):"未识别到有效账号";return}if(t.length){B.value=t.slice(0,3).join(",");return}ge.value=!0;try{const i=[...await ut()],c=new Map(i.map((d,u)=>[d.id,u]));e.forEach(d=>{const u=c.get(d.id||"");if(u===void 0){i.push(d);return}const h={...i[u],mail_provider:d.mail_provider,mail_address:d.mail_address};d.mail_provider==="microsoft"?(h.mail_client_id=d.mail_client_id,h.mail_refresh_token=d.mail_refresh_token,h.mail_tenant=d.mail_tenant,h.mail_password=void 0):(h.mail_password=d.mail_password,h.mail_client_id=void 0,h.mail_refresh_token=void 0,h.mail_tenant=void 0),i[u]=h}),await w.updateConfig(i),Me()}catch(o){B.value=o.message||"导入失败"}finally{ge.value=!1}},Lt=async()=>{try{const e=[],t=v.value?.id,o=p.value?.id;if(t&&!Te(t)&&e.push(yt(t)),o&&!Se(o)&&e.push(_t(o)),!e.length){await Ue();return}await Promise.all(e)}catch(e){y.value=e?.message||"任务状态更新失败"}},It=async()=>{G.value=!0,await Lt()},$t=()=>{G.value=!1},Rt=()=>{const e=v.value?.id||null,t=p.value?.id||null;U.value=e,z.value=t,we(Ge,e),we(Ye,t),ee.value=v.value?.logs?.length||0,te.value=p.value?.logs?.length||0,he(He,ee.value),he(Je,te.value),v.value=null,p.value=null,be.value=null,ye.value=null,y.value="",j.value=!1,C.value=!1,q(),X(),et(Fe),et(Ke)},Te=e=>!!(e&&e===U.value),Se=e=>!!(e&&e===z.value),Vt=()=>{N.value=!N.value},se=()=>{N.value=!1},st=e=>{if(!N.value)return;const t=e.target;Re.value&&!Re.value.contains(t)&&(N.value=!1)};os(async()=>{Tt(),await ke(),await Ue(),Qt(),document.addEventListener("click",st)});const Y=F(()=>{const e=v.value?.logs||[];return ee.value?e.slice(ee.value):e}),Q=F(()=>{const e=p.value?.logs||[];return te.value?e.slice(te.value):e}),jt=F(()=>!!y.value||!!v.value||!!p.value||Y.value.length>0||Q.value.length>0),Mt=async()=>{await ns();const e=Qe.value;e&&(e.scrollTop=e.scrollHeight)};rs([Y,Q,G],async()=>{G.value&&await Mt()},{deep:!0});const Dt=F(()=>{const e=v.value?.status,t=p.value?.status;return e==="running"||e==="pending"||t==="running"||t==="pending"}),Ot=F(()=>{if(y.value)return"bg-rose-500";if(Dt.value)return"bg-sky-400";const e=[];if(v.value){const c=v.value.success_count??0,d=v.value.fail_count??0,u=v.value.count??c+d;e.push({success:c,fail:d,total:u,status:v.value.status})}if(p.value){const c=p.value.success_count??0,d=p.value.fail_count??0,u=p.value.account_ids?.length??c+d;e.push({success:c,fail:d,total:u,status:p.value.status})}if(!e.length)return"bg-muted-foreground";const t=e.reduce((c,d)=>c+d.success,0),o=e.reduce((c,d)=>c+d.fail,0),i=e.reduce((c,d)=>c+(d.total||0),0);if(t>0&&o>0)return"bg-amber-400";if(o>0&&t===0)return"bg-rose-500";if(t>0&&o===0)return"bg-emerald-400";if(i===0){const c=e.every(u=>u.status==="success");if(e.some(u=>u.status==="failed"))return"bg-rose-500";if(c)return"bg-emerald-400"}return"bg-muted-foreground"});ls(()=>{q(),X(),Yt(),document.removeEventListener("click",st)});const ue=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?"429限流":e.cooldown_reason==="错误禁用"?"错误禁用":e.disabled?"手动禁用":e.status==="已过期"?"已过期":e.status==="即将过期"?"即将过期":"正常",ot=e=>{const t=ue(e);return t==="429限流"||t==="即将过期"?"bg-amber-200 text-amber-900":t==="错误禁用"||t==="已过期"?"bg-destructive/10 text-destructive":t==="手动禁用"?"bg-muted text-muted-foreground":"bg-emerald-500 text-white"},rt=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?!0:e.disabled||e.cooldown_reason==="错误禁用",lt=e=>e==="已过期"?"过期":e==="未设置"?"未设置":e,nt=e=>e.status==="已过期"?"text-rose-600":e.status==="即将过期"?"text-amber-700":e.status==="未设置"?"text-muted-foreground":"text-emerald-600",at=e=>e<60?`${e} 秒`:e<3600?`${Math.ceil(e/60)} 分钟`:`${(e/3600).toFixed(1)} 小时`,De=e=>e.cooldown_seconds>0?"text-amber-700":e.cooldown_reason==="错误禁用"?"text-rose-600":"text-muted-foreground",it=e=>{const t=ue(e);return t==="手动禁用"||t==="已过期"?"bg-muted/70":""},Ee=e=>{const t=new Set(b.value);t.has(e)?t.delete(e):t.add(e),b.value=t},dt=()=>{if(Ve.value){b.value=new Set;return}b.value=new Set(P.value.map(e=>e.id))},Bt=(e,t)=>e.id||`account_${t+1}`,ut=async()=>(await k.getConfig()).accounts.map((t,o)=>({...t,id:Bt(t,o)})),ct=e=>`${e.time} [${e.level}] ${e.message}`,Nt=(e,t)=>{let o=-1;for(let c=0;c{f.value="";try{const t=await ut();Nt(t,e)}catch(t){f.value=t.message||"加载账号配置失败"}},Ut=async()=>{V.value="";try{const e=await k.getConfig();ne.value=Array.isArray(e.accounts)?e.accounts:[],Z.value=JSON.stringify(pt(ne.value),null,2),D.value=!0,R.value=!0}catch(e){V.value=e.message||"加载账号配置失败"}},Oe=()=>{R.value=!1,V.value="",D.value=!1},vt=()=>{const e=JSON.parse(Z.value);if(!Array.isArray(e))throw new Error("配置格式必须是数组。");return e},zt=e=>typeof e!="string"||!e?e:e.length<=6?`${e.slice(0,2)}****`:`${e.slice(0,3)}****`,pt=e=>{const t=new Set(["secure_c_ses","csesidx","config_id","host_c_oses","mail_password","mail_refresh_token","mail_client_id"]);return e.map(o=>{const i={...o};return t.forEach(c=>{const d=i[c];d&&(i[c]=zt(d))}),i})},Pt=()=>{if(V.value="",!D.value){try{ne.value=vt()}catch(e){V.value=e.message||"JSON 格式错误";return}Z.value=JSON.stringify(pt(ne.value),null,2),D.value=!0;return}Z.value=JSON.stringify(ne.value,null,2),D.value=!1},Ft=async()=>{V.value="";try{const e=vt();await w.updateConfig(e),Oe()}catch(e){V.value=e.message||"保存失败"}},Be=()=>{le.value=!1,f.value=""},Kt=async()=>{if(_e.value===null)return;const e=[...qe.value];e[_e.value]={...e[_e.value],id:_.value.id,secure_c_ses:_.value.secure_c_ses,csesidx:_.value.csesidx,config_id:_.value.config_id,host_c_oses:_.value.host_c_oses||void 0,expires_at:_.value.expires_at||void 0};try{await w.updateConfig(e),Be()}catch(t){f.value=t.message||"保存失败"}},Ht=async()=>{await w.bulkEnable(Array.from(b.value)),b.value=new Set},Jt=async()=>{await T.ask({title:"批量禁用",message:"确定要批量禁用选中的账号吗?"})&&(await w.bulkDisable(Array.from(b.value)),b.value=new Set)},Gt=async()=>{await T.ask({title:"批量删除",message:"确定要批量删除选中的账号吗?",confirmText:"删除"})&&(await w.bulkDelete(Array.from(b.value)),b.value=new Set)},xt=async e=>{await w.enableAccount(e)},mt=async e=>{await T.ask({title:"禁用账号",message:"确定要禁用该账号吗?"})&&await w.disableAccount(e)},gt=async e=>{await T.ask({title:"删除账号",message:"确定要删除该账号吗?",confirmText:"删除"})&&await w.deleteAccount(e)};let ce=null,fe=null,ve=null,Ae=!1;const q=()=>{ce!==null&&(window.clearInterval(ce),ce=null)},X=()=>{fe!==null&&(window.clearInterval(fe),fe=null)},Yt=()=>{ve!==null&&(window.clearInterval(ve),ve=null),Ae=!1},bt=e=>e==="pending"?"等待中":e==="running"?"执行中":e==="success"?"成功":e==="failed"?"失败":e,yt=async e=>{if(Te(e)){q();return}const t=await k.getRegisterTask(e);if(Te(t.id)){q();return}je(t),t.status!=="running"&&t.status!=="pending"&&(j.value=!1,q(),await ke())},_t=async e=>{if(Se(e)){X();return}const t=await k.getLoginTask(e);if(Se(t.id)){X();return}Ce(t),t.status!=="running"&&t.status!=="pending"&&(C.value=!1,X(),await ke())},kt=e=>{q(),ce=window.setInterval(()=>{yt(e).catch(t=>{y.value=t?.message||"注册任务更新失败",q(),j.value=!1})},3e3)},Ne=e=>{X(),fe=window.setInterval(()=>{_t(e).catch(t=>{y.value=t?.message||"刷新任务更新失败",X(),C.value=!1})},3e3)},Qt=()=>{ve===null&&(ve=window.setInterval(async()=>{if(!Ae&&!G.value&&!(ce!==null||fe!==null)&&!(!j.value&&!C.value&&!v.value&&!p.value)){Ae=!0;try{await Ue()}catch(e){y.value=e?.message||"后台刷新失败"}finally{Ae=!1}}},6e3))},Ue=async()=>{try{const e=await k.getRegisterCurrent();e&&"id"in e&&!Te(e.id)&&(je(e),(e.status==="running"||e.status==="pending")&&(j.value=!0,kt(e.id)))}catch(e){y.value=e.message||"加载注册任务失败"}try{const e=await k.getLoginCurrent();e&&"id"in e&&!Se(e.id)&&(Ce(e),(e.status==="running"||e.status==="pending")&&(C.value=!0,Ne(e.id)))}catch(e){y.value=e.message||"加载刷新任务失败"}},qt=async()=>{y.value="",j.value=!0;try{const e=Number.isFinite(ae.value)&&ae.value>0?ae.value:void 0,t=await k.startRegister(e);je(t),kt(t.id),me.value=!1,G.value=!0}catch(e){y.value=e.message||"启动注册失败",j.value=!1}},Xt=async()=>{if(b.value.size){y.value="",C.value=!0;try{const e=await k.startLogin(Array.from(b.value));Ce(e),Ne(e.id)}catch(e){y.value=e.message||"启动刷新失败",C.value=!1}}},Wt=async()=>{y.value="",C.value=!0;try{await k.checkLogin();const e=await k.getLoginCurrent();if(e&&"id"in e){Ce(e),Ne(e.id);return}C.value=!1}catch(e){y.value=e.message||"触发刷新失败",C.value=!1}};return(e,t)=>(r(),l(pe,null,[s("div",fs,[s("section",vs,[s("div",ps,[s("div",xs,[A(s("input",{"onUpdate:modelValue":t[0]||(t[0]=o=>re.value=o),type:"text",placeholder:"搜索账号 ID",class:"w-full rounded-full border border-input bg-background px-4 py-2 text-sm sm:w-48"},null,512),[[L,re.value]]),K(as,{modelValue:W.value,"onUpdate:modelValue":t[1]||(t[1]=o=>W.value=o),options:Ct},null,8,["modelValue"])]),s("div",ms,[K(xe,{modelValue:Ve.value,"onUpdate:modelValue":dt},{default:wt(()=>[...t[27]||(t[27]=[H(" 全选 ",-1)])]),_:1},8,["modelValue"]),s("span",null,"已选 "+n(M.value)+" / "+n(P.value.length)+" 个账号",1),s("div",gs,[s("button",{type:"button",class:m(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",J.value==="table"?"bg-accent text-accent-foreground":""]),onClick:t[2]||(t[2]=o=>J.value="table"),"aria-label":"列表视图"},[...t[28]||(t[28]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])],2),s("button",{type:"button",class:m(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",J.value==="card"?"bg-accent text-accent-foreground":""]),onClick:t[3]||(t[3]=o=>J.value="card"),"aria-label":"卡片视图"},[...t[29]||(t[29]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h7v6H4V6zm9 0h7v6h-7V6zM4 14h7v4H4v-4zm9 0h7v4h-7v-4z"})],-1)])],2)])])]),s("div",bs,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:I(oe),onClick:ke}," 刷新列表 ",8,ys),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:Ut}," 账户配置 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:j.value,onClick:St}," 添加账户 ",8,_s),s("div",{ref_key:"moreActionsRef",ref:Re,class:"relative"},[s("button",{class:m(["flex items-center gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary",N.value?"bg-accent text-accent-foreground":""]),onClick:Vt},[t[30]||(t[30]=H(" 更多操作 ",-1)),t[31]||(t[31]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1)),jt.value?(r(),l("span",{key:0,class:m(["ml-1 h-2 w-2 rounded-full",Ot.value]),"aria-hidden":"true"},null,2)):x("",!0)],2),N.value?(r(),l("div",ks,[s("button",{type:"button",class:"flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm text-foreground transition-colors hover:bg-accent",onClick:t[4]||(t[4]=o=>{It(),se()})}," 任务状态 "),t[32]||(t[32]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:m(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",C.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:C.value,onClick:t[5]||(t[5]=o=>{Wt(),se()})}," 刷新过期 ",10,ws),s("button",{type:"button",class:m(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",!M.value||C.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:!M.value||C.value,onClick:t[6]||(t[6]=o=>{Xt(),se()})}," 刷新选中 ",10,hs),t[33]||(t[33]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:m(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",M.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!M.value,onClick:t[7]||(t[7]=o=>{Ht(),se()})}," 批量启用 ",10,Cs),s("button",{type:"button",class:m(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",M.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!M.value,onClick:t[8]||(t[8]=o=>{Jt(),se()})}," 批量禁用 ",10,Ts),s("button",{type:"button",class:m(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",M.value?"text-destructive hover:bg-destructive/10":"cursor-not-allowed text-muted-foreground"]),disabled:!M.value,onClick:t[9]||(t[9]=o=>{Gt(),se()})}," 批量删除 ",10,Ss)])):x("",!0)],512)]),J.value==="card"?(r(),l("div",Es,[(r(!0),l(pe,null,Ie(P.value,o=>(r(),l("div",{key:o.id,class:m(["rounded-2xl border border-border bg-card p-4",it(o)]),onClick:i=>Ee(o.id)},[s("div",Ls,[s("div",null,[t[34]||(t[34]=s("p",{class:"text-xs text-muted-foreground"},"账号 ID",-1)),s("p",Is,n(o.id),1)]),s("div",$s,[K(xe,{modelValue:b.value.has(o.id),"onUpdate:modelValue":i=>Ee(o.id),onClick:t[10]||(t[10]=$(()=>{},["stop"]))},null,8,["modelValue","onUpdate:modelValue"]),s("span",{class:m(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",ot(o)])},n(ue(o)),3)])]),s("div",Rs,[s("div",null,[t[35]||(t[35]=s("p",null,"剩余时间",-1)),s("p",{class:m(["mt-1 text-sm font-semibold",nt(o)])},n(lt(o.remaining_display)),3),o.expires_at?(r(),l("p",Vs,n(o.expires_at),1)):x("",!0)]),s("div",null,[t[36]||(t[36]=s("p",null,"冷却",-1)),s("p",{class:m(["mt-1",De(o)])},[o.cooldown_seconds>0?(r(),l("span",js,n(at(o.cooldown_seconds))+" · "+n(o.cooldown_reason),1)):(r(),l("span",Ms,n(o.cooldown_reason||"无冷却"),1))],2)]),s("div",null,[t[37]||(t[37]=s("p",null,"失败数",-1)),s("p",Ds,n(o.error_count),1)]),s("div",null,[t[38]||(t[38]=s("p",null,"会话数",-1)),s("p",Os,n(o.conversation_count),1)])]),s("div",Bs,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:$(i=>ft(o.id),["stop"])}," 编辑 ",8,Ns),rt(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[11]||(t[11]=$(()=>{},["stop"])),i=>xt(o.id)]}," 启用 ",8,Us)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[12]||(t[12]=$(()=>{},["stop"])),i=>mt(o.id)]}," 禁用 ",8,zs)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:[t[13]||(t[13]=$(()=>{},["stop"])),i=>gt(o.id)]}," 删除 ",8,Ps)])],10,As))),128)),!P.value.length&&!I(oe)?(r(),l("div",Fs," 暂无账号数据,请检查后台配置。 ")):x("",!0)])):(r(),l("div",Ks,[s("table",Hs,[s("thead",Js,[s("tr",null,[s("th",Gs,[K(xe,{modelValue:Ve.value,"onUpdate:modelValue":dt},null,8,["modelValue"])]),t[40]||(t[40]=s("th",{class:"py-3 pr-6"},"账号 ID",-1)),t[41]||(t[41]=s("th",{class:"py-3 pr-6"},"状态",-1)),s("th",Ys,[s("span",Qs,[t[39]||(t[39]=H(" 剩余/过期 ",-1)),K(us,{text:"过期时间为 12 小时,账户过期以北京时间为准。"})])]),t[42]||(t[42]=s("th",{class:"py-3 pr-6"},"冷却",-1)),t[43]||(t[43]=s("th",{class:"py-3 pr-6"},"失败数",-1)),t[44]||(t[44]=s("th",{class:"py-3 pr-6"},"会话数",-1)),t[45]||(t[45]=s("th",{class:"py-3 text-right"},"操作",-1))])]),s("tbody",qs,[!P.value.length&&!I(oe)?(r(),l("tr",Xs,[...t[46]||(t[46]=[s("td",{colspan:"8",class:"py-8 text-center text-muted-foreground"}," 暂无账号数据,请检查后台配置。 ",-1)])])):x("",!0),(r(!0),l(pe,null,Ie(P.value,o=>(r(),l("tr",{key:o.id,class:m(["border-t border-border",it(o)]),onClick:i=>Ee(o.id)},[s("td",{class:"py-4 pr-4",onClick:t[14]||(t[14]=$(()=>{},["stop"]))},[K(xe,{modelValue:b.value.has(o.id),"onUpdate:modelValue":i=>Ee(o.id)},null,8,["modelValue","onUpdate:modelValue"])]),s("td",Zs,n(o.id),1),s("td",eo,[s("span",{class:m(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",ot(o)])},n(ue(o)),3)]),s("td",to,[s("div",{class:m(["text-sm font-semibold",nt(o)])},n(lt(o.remaining_display)),3),o.expires_at?(r(),l("span",so,n(o.expires_at),1)):x("",!0)]),s("td",oo,[o.cooldown_seconds>0?(r(),l("span",{key:0,class:m(De(o))},n(at(o.cooldown_seconds))+" · "+n(o.cooldown_reason),3)):(r(),l("span",{key:1,class:m(De(o))},n(o.cooldown_reason||"无冷却"),3))]),s("td",ro,n(o.error_count),1),s("td",lo,n(o.conversation_count),1),s("td",no,[s("div",ao,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:$(i=>ft(o.id),["stop"])}," 编辑 ",8,io),rt(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:$(i=>xt(o.id),["stop"])}," 启用 ",8,uo)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:$(i=>mt(o.id),["stop"])}," 禁用 ",8,co)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:$(i=>gt(o.id),["stop"])}," 删除 ",8,fo)])])],10,Ws))),128))])])]))])]),K(is,{open:I(T).open.value,title:I(T).title.value,message:I(T).message.value,"confirm-text":I(T).confirmText.value,"cancel-text":I(T).cancelText.value,onConfirm:I(T).confirm,onCancel:I(T).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(r(),Le($e,{to:"body"},[me.value?(r(),l("div",vo,[s("div",po,[s("div",xo,[s("div",null,[t[47]||(t[47]=s("p",{class:"text-sm font-medium text-foreground"},"添加账户",-1)),s("p",mo,n(O.value==="register"?"创建 DuckMail 账号并自动注册":"批量导入账户配置"),1)]),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Me}," 关闭 ")]),s("div",go,[s("div",bo,[s("button",{type:"button",class:m(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",O.value==="register"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:t[15]||(t[15]=o=>O.value="register")}," 自动注册 ",2),s("button",{type:"button",class:m(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",O.value==="import"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:t[16]||(t[16]=o=>O.value="import")}," 批量导入 ",2)]),O.value==="register"?(r(),l("div",yo,[t[48]||(t[48]=s("label",{class:"block text-xs text-muted-foreground"},"注册数量",-1)),A(s("input",{"onUpdate:modelValue":t[17]||(t[17]=o=>ae.value=o),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[L,ae.value,void 0,{number:!0}]]),t[49]||(t[49]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"}," 默认域名来自设置面板(可在“配置面板”中修改) ",-1))])):(r(),l("div",_o,[t[50]||(t[50]=s("label",{class:"block text-xs text-muted-foreground"},"批量导入(每行一个)",-1)),A(s("textarea",{"onUpdate:modelValue":t[18]||(t[18]=o=>ie.value=o),class:"min-h-[140px] w-full rounded-2xl border border-input bg-background px-3 py-2 text-xs font-mono",placeholder:`duckmail----you@example.com----password +user@outlook.com----loginPassword----clientId----refreshToken`},null,512),[[L,ie.value]]),t[51]||(t[51]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},[s("p",null,"支持两种格式:"),s("p",{class:"mt-1 font-mono"},"duckmail----email----password"),s("p",{class:"mt-1 font-mono"},"email----password----clientId----refreshToken"),s("p",{class:"mt-2 text-[11px]"},"说明:微软格式中的 password 仅用于兼容输入,不会保存或使用。"),s("p",{class:"mt-1 text-[11px]"},"导入后请执行一次“刷新选中”以获取 Cookie。")],-1)),B.value?(r(),l("div",ko,n(B.value),1)):x("",!0)])),t[53]||(t[53]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-[11px] leading-relaxed text-muted-foreground"},[s("div",{class:"space-y-2"},[s("p",{class:"font-semibold text-rose-600"},"严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)"),s("div",{class:"space-y-1"},[s("p",null,[s("strong",null,"合法用途:"),H("本项目仅限个人学习、技术研究与非商业性技术交流,旨在探索浏览器自动化与系统集成。")])]),s("div",{class:"space-y-1"},[s("p",null,[s("strong",null,"禁止行为:"),H("严禁用于以下场景:")]),s("p",{class:"pl-3"},"- 商业用途或盈利性使用"),s("p",{class:"pl-3"},"- 任何形式的批量注册或自动化滥用(无论规模大小)"),s("p",{class:"pl-3"},"- 破坏市场秩序或恶意竞争"),s("p",{class:"pl-3"},"- 违反 Google 服务条款的任何行为")]),s("div",{class:"space-y-1"},[s("p",null,[s("strong",null,"使用责任:"),H("因使用本工具产生的一切后果由使用者完全承担,包括但不限于账号封禁、数据损失及法律责任。")]),s("p",null,[s("strong",null,"合规要求:"),H("使用者必须遵守所在地法律法规及第三方服务条款,作者不对任何违规使用行为承担责任。")])]),s("div",{class:"space-y-1"},[s("p",null,[s("strong",null,"技术声明:")]),s("p",{class:"pl-3"},'- 本项目按"现状"提供,不提供任何明示或暗示的担保'),s("p",{class:"pl-3"},"- 依赖 DuckMail API 等第三方服务,其可用性不受作者控制"),s("p",{class:"pl-3"},"- 作者保留随时停止维护或变更功能的权利")])])],-1)),K(xe,{modelValue:de.value,"onUpdate:modelValue":t[19]||(t[19]=o=>de.value=o)},{default:wt(()=>[...t[52]||(t[52]=[H(" 我已阅读并同意上述说明与限制 ",-1)])]),_:1},8,["modelValue"])]),s("div",wo,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Me}," 取消 "),O.value==="register"?(r(),l("button",{key:0,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:j.value||!de.value,onClick:qt}," 开始注册 ",8,ho)):(r(),l("button",{key:1,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:ge.value||!de.value,onClick:At}," 导入并保存 ",8,Co))])])])):x("",!0)])),(r(),Le($e,{to:"body"},[G.value?(r(),l("div",To,[s("div",So,[s("div",Eo,[t[54]||(t[54]=s("div",null,[s("p",{class:"text-sm font-medium text-foreground"},"任务状态"),s("p",{class:"mt-1 text-xs text-muted-foreground"},"注册与刷新任务的状态与日志")],-1)),s("div",Ao,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-muted-foreground transition-colors hover:border-primary hover:text-primary",disabled:!Y.value.length&&!Q.value.length&&!v.value&&!p.value&&!y.value,onClick:Rt}," 清空日志 ",8,Lo),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:$t}," 关闭 ")])]),s("div",Io,[y.value?(r(),l("div",$o,n(y.value),1)):x("",!0),v.value||p.value?(r(),l("div",Ro,[v.value?(r(),l("div",Vo,[t[55]||(t[55]=s("div",{class:"font-medium text-foreground"},"注册任务",-1)),s("div",jo,[s("span",null,"状态:"+n(bt(v.value.status)),1),s("span",null,"进度:"+n(v.value.progress)+"/"+n(v.value.count),1),s("span",null,"成功:"+n(v.value.success_count),1),s("span",null,"失败:"+n(v.value.fail_count),1)])])):x("",!0),p.value?(r(),l("div",Mo,[t[56]||(t[56]=s("div",{class:"font-medium text-foreground"},"刷新任务",-1)),s("div",Do,[s("span",null,"状态:"+n(bt(p.value.status)),1),s("span",null,"进度:"+n(p.value.progress)+"/"+n(p.value.account_ids.length),1),s("span",null,"成功:"+n(p.value.success_count),1),s("span",null,"失败:"+n(p.value.fail_count),1)])])):x("",!0)])):x("",!0),Y.value.length||Q.value.length?(r(),l("div",Oo,[s("div",{ref_key:"taskLogsRef",ref:Qe,class:"scrollbar-slim flex-1 overflow-y-auto rounded-2xl border border-border bg-muted/30 p-3"},[Y.value.length?(r(),l("div",Bo,[t[57]||(t[57]=s("p",{class:"text-xs font-semibold text-foreground"},"注册日志",-1)),s("div",No,[(r(!0),l(pe,null,Ie(Y.value,(o,i)=>(r(),l("div",{key:`reg-${i}`,class:"font-mono"},n(ct(o)),1))),128))])])):x("",!0),Q.value.length?(r(),l("div",Uo,[t[58]||(t[58]=s("p",{class:"text-xs font-semibold text-foreground"},"刷新日志",-1)),s("div",zo,[(r(!0),l(pe,null,Ie(Q.value,(o,i)=>(r(),l("div",{key:`login-${i}`,class:"font-mono"},n(ct(o)),1))),128))])])):x("",!0)],512)])):x("",!0),!y.value&&!v.value&&!p.value&&!Y.value.length&&!Q.value.length?(r(),l("div",Po," 暂无任务 ")):x("",!0)])])])):x("",!0)])),(r(),Le($e,{to:"body"},[le.value?(r(),l("div",Fo,[s("div",Ko,[s("div",{class:"flex items-center justify-between"},[t[59]||(t[59]=s("p",{class:"text-sm font-medium text-foreground"},"编辑账号",-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Be}," 关闭 ")]),f.value?(r(),l("div",Ho,n(f.value),1)):x("",!0),s("div",Jo,[t[60]||(t[60]=s("label",{class:"block text-xs text-muted-foreground"},"账号 ID",-1)),A(s("input",{"onUpdate:modelValue":t[20]||(t[20]=o=>_.value.id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",disabled:""},null,512),[[L,_.value.id]]),t[61]||(t[61]=s("label",{class:"block text-xs text-muted-foreground"},"secure_c_ses",-1)),A(s("textarea",{"onUpdate:modelValue":t[21]||(t[21]=o=>_.value.secure_c_ses=o),class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",rows:"3"},null,512),[[L,_.value.secure_c_ses]]),t[62]||(t[62]=s("label",{class:"block text-xs text-muted-foreground"},"csesidx",-1)),A(s("input",{"onUpdate:modelValue":t[22]||(t[22]=o=>_.value.csesidx=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[L,_.value.csesidx]]),t[63]||(t[63]=s("label",{class:"block text-xs text-muted-foreground"},"config_id",-1)),A(s("input",{"onUpdate:modelValue":t[23]||(t[23]=o=>_.value.config_id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[L,_.value.config_id]]),t[64]||(t[64]=s("label",{class:"block text-xs text-muted-foreground"},"host_c_oses",-1)),A(s("input",{"onUpdate:modelValue":t[24]||(t[24]=o=>_.value.host_c_oses=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[L,_.value.host_c_oses]]),t[65]||(t[65]=s("label",{class:"block text-xs text-muted-foreground"},"expires_at",-1)),A(s("input",{"onUpdate:modelValue":t[25]||(t[25]=o=>_.value.expires_at=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"2025-12-23 10:59:21"},null,512),[[L,_.value.expires_at]])]),s("div",{class:"mt-6 flex items-center justify-end gap-2"},[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Be}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Kt}," 保存 ")])])])):x("",!0)])),(r(),Le($e,{to:"body"},[R.value?(r(),l("div",Go,[s("div",Yo,[s("div",Qo,[t[66]||(t[66]=s("p",{class:"text-sm font-medium text-foreground"},"账户配置(JSON)",-1)),s("div",qo,[s("button",{class:"rounded-full bg-foreground px-3 py-1 text-xs text-background transition-opacity hover:opacity-90",onClick:Pt},n(D.value?"显示原文":"脱敏显示"),1),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Oe}," 关闭 ")])]),V.value?(r(),l("div",Xo,n(V.value),1)):x("",!0),s("div",Wo,[A(s("textarea",{"onUpdate:modelValue":t[26]||(t[26]=o=>Z.value=o),class:"h-96 w-full rounded-2xl border border-input bg-background px-4 py-3 font-mono text-xs text-foreground",spellcheck:"false",readonly:D.value},null,8,Zo),[[L,Z.value]])]),s("div",er,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Oe}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Ft,disabled:D.value}," 保存 ",8,tr)])])])):x("",!0)]))],64))}});export{ir as default}; diff --git a/static/assets/Accounts-EOqS8kG-.js b/static/assets/Accounts-EOqS8kG-.js new file mode 100644 index 0000000000000000000000000000000000000000..8e214803b34409ae9c1b860a71f63bc585161248 --- /dev/null +++ b/static/assets/Accounts-EOqS8kG-.js @@ -0,0 +1,2 @@ +import{g as E,C as os,h as i,d as rs,D as ls,i as J,o as ns,z as as,j as is,c as n,a as s,p as G,m as Re,q as R,v as V,s as $t,t as a,n as p,u as j,b as g,f as ee,F as ge,r as Ve,T as je,E as ds,w as M,e as l,G as us}from"./index-BCQxBeUo.js";import{_ as cs}from"./SelectMenu.vue_vue_type_script_setup_true_lang-SHDMWwbQ.js";import{_ as be}from"./Checkbox.vue_vue_type_script_setup_true_lang-12Ygc6BR.js";import{_ as fs}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-CXKmFeEu.js";import{u as vs}from"./useConfirmDialog-CdgTrrpG.js";import{_ as ms}from"./HelpTip.vue_vue_type_script_setup_true_lang-32PHHvO_.js";const w={list:()=>E.get("/admin/accounts"),getConfig:()=>E.get("/admin/accounts-config"),updateConfig:y=>E.put("/admin/accounts-config",y),delete:y=>E.delete(`/admin/accounts/${y}`),disable:y=>E.put(`/admin/accounts/${y}/disable`),enable:y=>E.put(`/admin/accounts/${y}/enable`),startRegister:(y,k)=>E.post("/admin/register/start",{count:y,domain:k}),getRegisterTask:y=>E.get(`/admin/register/task/${y}`),getRegisterCurrent:()=>E.get("/admin/register/current"),startLogin:y=>E.post("/admin/login/start",y),getLoginTask:y=>E.get(`/admin/login/task/${y}`),getLoginCurrent:()=>E.get("/admin/login/current"),checkLogin:()=>E.post("/admin/login/check")},ps=os("accounts",()=>{const y=i([]),k=i(!1);async function A(){k.value=!0;try{const x=await w.list();y.value=Array.isArray(x)?x:x.accounts||[]}finally{k.value=!1}}async function ne(x){await w.delete(x),await A()}async function T(x){await w.disable(x),await A()}async function d(x){await w.enable(x),await A()}async function ae(x){await Promise.all(x.map($=>w.enable($))),await A()}async function te(x){await Promise.all(x.map($=>w.disable($))),await A()}async function b(x){await Promise.all(x.map($=>w.delete($))),await A()}async function Y(x){await w.updateConfig(x),await A()}return{accounts:y,isLoading:k,loadAccounts:A,deleteAccount:ne,disableAccount:T,enableAccount:d,bulkEnable:ae,bulkDisable:te,bulkDelete:b,updateConfig:Y}}),xs={class:"space-y-8"},gs={class:"rounded-3xl border border-border bg-card p-6"},bs={class:"flex flex-wrap items-center justify-between gap-4"},ys={class:"grid w-full grid-cols-2 gap-3 sm:flex sm:w-auto sm:items-center"},_s={class:"flex w-full flex-wrap items-center gap-3 text-xs text-muted-foreground sm:w-auto sm:flex-nowrap"},hs={class:"ml-auto flex items-center gap-2 sm:ml-0"},ws={class:"mt-4 flex flex-wrap items-center gap-2"},ks=["disabled"],Cs=["disabled"],Ts={key:0,class:"absolute right-0 z-10 mt-2 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg"},Ss=["disabled"],$s=["disabled"],Is=["disabled"],Es=["disabled"],Ls=["disabled"],As={key:0,class:"mt-6 grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3"},Rs=["onClick"],Vs={class:"flex items-start justify-between gap-3"},js={class:"mt-1 font-mono text-xs text-foreground"},Ms={class:"flex items-center gap-2"},Ds={class:"mt-4 grid grid-cols-2 gap-3 text-xs text-muted-foreground"},Os={key:0,class:"mt-1 text-[11px]"},Bs={key:0},Ns={key:1},Us={class:"mt-1 text-sm font-semibold text-foreground"},zs={class:"mt-1 text-sm font-semibold text-foreground"},Ps={class:"mt-4 flex flex-wrap items-center gap-2"},Fs=["onClick"],Ks=["onClick"],Hs=["onClick"],Js=["onClick"],Gs={key:0,class:"rounded-2xl border border-border bg-background p-4 text-center text-xs text-muted-foreground"},Ys={key:1,class:"relative mt-6 overflow-x-auto overflow-y-visible"},qs={class:"min-w-full text-left text-sm"},Qs={class:"text-xs uppercase tracking-[0.2em] text-muted-foreground"},Xs={class:"py-3 pr-4"},Ws={class:"py-3 pr-6"},Zs={class:"inline-flex items-center gap-2"},eo={class:"text-sm text-foreground"},to={key:0},so=["onClick"],oo={class:"py-4 pr-6 font-mono text-xs text-foreground"},ro={class:"py-4 pr-6"},lo={class:"py-4 pr-6"},no={key:0,class:"block text-[11px] text-muted-foreground"},ao={class:"py-4 pr-6 text-xs"},io={class:"py-4 pr-6 text-xs text-muted-foreground"},uo={class:"py-4 pr-6 text-xs text-muted-foreground"},co={class:"py-4 text-right"},fo={class:"flex flex-wrap justify-end gap-2"},vo=["onClick"],mo=["onClick"],po=["onClick"],xo=["onClick"],go={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},bo={class:"flex max-h-[90vh] w-full max-w-lg flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},yo={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},_o={class:"mt-1 text-xs text-muted-foreground"},ho={class:"scrollbar-slim flex-1 overflow-y-auto px-6 py-4"},wo={class:"space-y-4 text-sm"},ko={class:"flex rounded-full border border-border bg-muted/30 p-1 text-xs"},Co={key:0,class:"space-y-4"},To={key:1,class:"space-y-4"},So={key:0,class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-xs text-rose-600"},$o={class:"border-t border-border/60 px-6 py-4"},Io={class:"flex items-center justify-end gap-2"},Eo=["disabled"],Lo=["disabled"],Ao={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Ro={class:"flex h-[80vh] w-full max-w-2xl flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},Vo={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},jo={class:"flex items-center gap-2"},Mo=["disabled"],Do={class:"flex min-h-0 flex-1 flex-col px-6 py-4"},Oo={key:0,class:"rounded-2xl bg-destructive/10 px-3 py-2 text-xs text-destructive"},Bo={key:1,class:"grid gap-3 text-xs text-muted-foreground"},No={key:0,class:"space-y-1"},Uo={class:"flex items-center gap-2 font-medium text-foreground"},zo={class:"flex flex-wrap gap-x-4 gap-y-1"},Po={key:1,class:"space-y-1"},Fo={class:"flex items-center gap-2 font-medium text-foreground"},Ko={class:"flex flex-wrap gap-x-4 gap-y-1"},Ho={key:2,class:"mt-4 flex min-h-0 flex-1 flex-col"},Jo={key:0,class:"space-y-2"},Go={class:"space-y-1 text-[11px] text-muted-foreground"},Yo={key:1,class:"mt-4 space-y-2"},qo={class:"space-y-1 text-[11px] text-muted-foreground"},Qo={key:3,class:"mt-4 rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},Xo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Wo={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},Zo={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},er={class:"mt-4 space-y-3 text-sm"},tr={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},sr={class:"w-full max-w-3xl rounded-3xl border border-border bg-card p-6 shadow-xl"},or={class:"flex items-center justify-between"},rr={class:"flex items-center gap-2"},lr={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},nr={class:"mt-4"},ar=["readonly"],ir={class:"mt-6 flex items-center justify-end gap-2"},dr=["disabled"],Je="accounts-register-task-cache",Ge="accounts-login-task-cache",Ye="accounts-register-log-clear",qe="accounts-login-log-clear",Qe="accounts-register-task-cleared-id",Xe="accounts-login-task-cleared-id",It="1970-01-01 00:00:00",xr=rs({__name:"Accounts",setup(y){const k=ps(),{accounts:A,isLoading:ne}=ls(k),T=vs(),d=ds(),ae=i(""),te=i("all"),b=i(new Set),Y=i("table"),x=i(!1),$=i(""),Me=i(!1),D=i(""),se=i(""),N=i(!1),ie=i([]),de=i(1),ye=i(!1),U=i("register"),ue=i(""),z=i(""),_e=i(!1),q=i(!1),P=i(!1),De=i(null),he=i(null),we=i(null),F=i(null),K=i(null),oe=i(0),re=i(0),ce=i(!1),c=i(null),f=i(null),We=i(null),O=i(!1),S=i(!1),_=i(""),h=i({id:"",secure_c_ses:"",csesidx:"",config_id:"",host_c_oses:"",expires_at:""}),ke=i(null),Ze=i([]),Et=[{label:"全部状态",value:"all"},{label:"正常",value:"正常"},{label:"即将过期",value:"即将过期"},{label:"已过期",value:"已过期"},{label:"手动禁用",value:"手动禁用"},{label:"错误禁用",value:"错误禁用"},{label:"429限流",value:"429限流"}],H=J(()=>{const t=ae.value.trim().toLowerCase();return A.value.filter(e=>{const o=!t||e.id.toLowerCase().includes(t),r=te.value==="all"||ve(e)===te.value;return o&&r})}),B=J(()=>b.value.size),Oe=J(()=>H.value.length>0&&H.value.every(t=>b.value.has(t.id))),fe=async()=>{await k.loadAccounts(),b.value=new Set,P.value=!1},et=t=>{try{const e=localStorage.getItem(t);return e?JSON.parse(e):null}catch{return null}},tt=t=>{try{return localStorage.getItem(t)||null}catch{return null}},Ce=(t,e)=>{try{if(e){localStorage.setItem(t,e);return}localStorage.removeItem(t)}catch{}},st=(t,e)=>{try{localStorage.setItem(t,JSON.stringify(e))}catch{}},ot=t=>{try{localStorage.removeItem(t)}catch{}},rt=t=>{const e=localStorage.getItem(t),o=Number(e);return Number.isFinite(o)?o:0},Te=(t,e)=>{try{localStorage.setItem(t,String(e))}catch{}},Be=(t,e=!0)=>{t&&(t.id&&t.id===F.value||(t.id&&F.value&&t.id!==F.value&&(F.value=null,Ce(Qe,null)),c.value=t,t.id&&t.id!==he.value&&(he.value=t.id,oe.value=0,Te(Ye,0)),e&&st(Je,t)))},Se=(t,e=!0)=>{t&&(t.id&&t.id===K.value||(t.id&&K.value&&t.id!==K.value&&(K.value=null,Ce(Xe,null)),f.value=t,t.id&&t.id!==we.value&&(we.value=t.id,re.value=0,Te(qe,0)),e&&st(Ge,t)))},Lt=()=>{oe.value=rt(Ye),re.value=rt(qe),F.value=tt(Qe),K.value=tt(Xe);const t=et(Je);t&&t.id!==F.value&&(c.value=t,he.value=t.id||null);const e=et(Ge);e&&e.id!==K.value&&(f.value=e,we.value=e.id||null)},At=()=>{ye.value=!0,U.value="register",ue.value="",z.value="",_e.value=!1,ce.value=!1},Ne=()=>{ye.value=!1},Rt=t=>{const e=[],o=[];return t.split(/\r?\n/).map(u=>u.trim()).filter(Boolean).forEach((u,m)=>{const v=u.split("----").map(I=>I.trim()),C=m+1;if(v.length){if(v[0].toLowerCase()==="duckmail"){if(v.length<3||!v[1]||!v[2]){o.push(`第 ${C} 行格式错误(duckmail)`);return}const I=v[1],Ae=v.slice(2).join("----");e.push({id:I,secure_c_ses:"",csesidx:"",config_id:"",expires_at:It,mail_provider:"duckmail",mail_address:I,mail_password:Ae});return}if(v.length>=4&&v[0]&&v[2]&&v[3]){const I=v[0],Ae=v[1]||"",L=v[2],ss=v.slice(3).join("----");e.push({id:I,secure_c_ses:"",csesidx:"",config_id:"",expires_at:It,mail_provider:"microsoft",mail_address:I,mail_password:Ae,mail_client_id:L,mail_refresh_token:ss,mail_tenant:"consumers"});return}o.push(`第 ${C} 行格式错误`)}}),{items:e,errors:o}},Vt=async()=>{if(z.value="",!ue.value.trim()){z.value="请输入导入内容";return}const{items:t,errors:e}=Rt(ue.value);if(!t.length){z.value=e.length?e.join(","):"未识别到有效账号";return}if(e.length){z.value=e.slice(0,3).join(",");return}_e.value=!0;try{const r=[...await vt()],u=new Map(r.map((C,I)=>[C.id,I])),m=[];t.forEach(C=>{const I=u.get(C.id||"");if(I===void 0){r.push(C),m.push(C.id);return}const L={...r[I],mail_provider:C.mail_provider,mail_address:C.mail_address};C.mail_provider==="microsoft"?(L.mail_client_id=C.mail_client_id,L.mail_refresh_token=C.mail_refresh_token,L.mail_tenant=C.mail_tenant,L.mail_password=C.mail_password):(L.mail_password=C.mail_password,L.mail_client_id=void 0,L.mail_refresh_token=void 0,L.mail_tenant=void 0),r[I]=L,m.push(C.id)}),await k.updateConfig(r),await fe(),b.value=new Set(m),d.success(`成功导入 ${m.length} 个账户`),Ne(),await T.ask({title:"导入成功",message:`已导入 ${m.length} 个账户并自动选中。是否立即刷新这些账户以获取 Cookie?`,confirmText:"立即刷新",cancelText:"稍后手动刷新"})&&await St()}catch(o){z.value=o.message||"导入失败",d.error(o.message||"导入失败")}finally{_e.value=!1}},jt=async()=>{try{const t=[],e=c.value?.id,o=f.value?.id;if(e&&!$e(e)&&t.push(kt(e)),o&&!Ie(o)&&t.push(Ct(o)),!t.length){await He();return}await Promise.all(t)}catch(t){_.value=t?.message||"任务状态更新失败"}},Ue=async()=>{q.value=!0,await jt()},Mt=()=>{q.value=!1},Dt=()=>{const t=c.value?.id||null,e=f.value?.id||null;F.value=t,K.value=e,Ce(Qe,t),Ce(Xe,e),oe.value=c.value?.logs?.length||0,re.value=f.value?.logs?.length||0,Te(Ye,oe.value),Te(qe,re.value),c.value=null,f.value=null,he.value=null,we.value=null,_.value="",O.value=!1,S.value=!1,W(),Z(),ot(Je),ot(Ge)},$e=t=>!!(t&&t===F.value),Ie=t=>!!(t&&t===K.value),Ot=()=>{P.value=!P.value},le=()=>{P.value=!1},lt=t=>{if(!P.value)return;const e=t.target;De.value&&!De.value.contains(e)&&(P.value=!1)};ns(async()=>{Lt(),await fe(),await He(),Zt(),document.addEventListener("click",lt)});const Q=J(()=>{const t=c.value?.logs||[];return oe.value?t.slice(oe.value):t}),X=J(()=>{const t=f.value?.logs||[];return re.value?t.slice(re.value):t}),Bt=J(()=>!!_.value||!!c.value||!!f.value||Q.value.length>0||X.value.length>0),Nt=async()=>{await us();const t=We.value;t&&(t.scrollTop=t.scrollHeight)};as([Q,X,q],async()=>{q.value&&await Nt()},{deep:!0});const Ut=J(()=>{const t=c.value?.status,e=f.value?.status;return t==="running"||t==="pending"||e==="running"||e==="pending"}),zt=J(()=>{if(_.value)return"bg-rose-500";if(Ut.value)return"bg-sky-400";const t=[];if(c.value){const u=c.value.success_count??0,m=c.value.fail_count??0,v=c.value.count??u+m;t.push({success:u,fail:m,total:v,status:c.value.status})}if(f.value){const u=f.value.success_count??0,m=f.value.fail_count??0,v=f.value.account_ids?.length??u+m;t.push({success:u,fail:m,total:v,status:f.value.status})}if(!t.length)return"bg-muted-foreground";const e=t.reduce((u,m)=>u+m.success,0),o=t.reduce((u,m)=>u+m.fail,0),r=t.reduce((u,m)=>u+(m.total||0),0);if(e>0&&o>0)return"bg-amber-400";if(o>0&&e===0)return"bg-rose-500";if(e>0&&o===0)return"bg-emerald-400";if(r===0){const u=t.every(v=>v.status==="success");if(t.some(v=>v.status==="failed"))return"bg-rose-500";if(u)return"bg-emerald-400"}return"bg-muted-foreground"});is(()=>{W(),Z(),Wt(),document.removeEventListener("click",lt)});const ve=t=>t.cooldown_reason?.includes("429")&&t.cooldown_seconds>0?"429限流":t.cooldown_reason==="错误禁用"?"错误禁用":t.disabled?"手动禁用":t.status==="已过期"?"已过期":t.status==="即将过期"?"即将过期":"正常",nt=t=>{const e=ve(t);return e==="429限流"||e==="即将过期"?"bg-amber-200 text-amber-900":e==="错误禁用"||e==="已过期"?"bg-destructive/10 text-destructive":e==="手动禁用"?"bg-muted text-muted-foreground":"bg-emerald-500 text-white"},at=t=>t.cooldown_reason?.includes("429")&&t.cooldown_seconds>0?!0:t.disabled||t.cooldown_reason==="错误禁用",it=t=>t==="已过期"?"过期":t==="未设置"?"未设置":t,dt=t=>t.status==="已过期"?"text-rose-600":t.status==="即将过期"?"text-amber-700":t.status==="未设置"?"text-muted-foreground":"text-emerald-600",ut=t=>t<60?`${t} 秒`:t<3600?`${Math.ceil(t/60)} 分钟`:`${(t/3600).toFixed(1)} 小时`,ze=t=>t.cooldown_seconds>0?"text-amber-700":t.cooldown_reason==="错误禁用"?"text-rose-600":"text-muted-foreground",ct=t=>{const e=ve(t);return e==="手动禁用"||e==="已过期"?"bg-muted/70":""},Ee=t=>{const e=new Set(b.value);e.has(t)?e.delete(t):e.add(t),b.value=e},ft=()=>{if(Oe.value){b.value=new Set;return}b.value=new Set(H.value.map(t=>t.id))},Pt=(t,e)=>t.id||`account_${e+1}`,vt=async()=>(await w.getConfig()).accounts.map((e,o)=>({...e,id:Pt(e,o)})),mt=t=>`${t.time} [${t.level}] ${t.message}`,Ft=(t,e)=>{let o=-1;for(let u=0;u{$.value="";try{const e=await vt();Ft(e,t)}catch(e){$.value=e.message||"加载账号配置失败"}},Kt=async()=>{D.value="";try{const t=await w.getConfig();ie.value=Array.isArray(t.accounts)?t.accounts:[],se.value=JSON.stringify(gt(ie.value),null,2),N.value=!0,Me.value=!0}catch(t){D.value=t.message||"加载账号配置失败"}},Pe=()=>{Me.value=!1,D.value="",N.value=!1},xt=()=>{const t=JSON.parse(se.value);if(!Array.isArray(t))throw new Error("配置格式必须是数组。");return t},Ht=t=>typeof t!="string"||!t?t:t.length<=6?`${t.slice(0,2)}****`:`${t.slice(0,3)}****`,gt=t=>{const e=new Set(["secure_c_ses","csesidx","config_id","host_c_oses","mail_password","mail_refresh_token","mail_client_id"]);return t.map(o=>{const r={...o};return e.forEach(u=>{const m=r[u];m&&(r[u]=Ht(m))}),r})},Jt=()=>{if(D.value="",!N.value){try{ie.value=xt()}catch(t){D.value=t.message||"JSON 格式错误";return}se.value=JSON.stringify(gt(ie.value),null,2),N.value=!0;return}se.value=JSON.stringify(ie.value,null,2),N.value=!1},Gt=async()=>{D.value="";try{const t=xt();await k.updateConfig(t),d.success("配置保存成功"),Pe()}catch(t){D.value=t.message||"保存失败",d.error(t.message||"保存失败")}},Fe=()=>{x.value=!1,$.value=""},Yt=async()=>{if(ke.value===null)return;const t=[...Ze.value];t[ke.value]={...t[ke.value],id:h.value.id,secure_c_ses:h.value.secure_c_ses,csesidx:h.value.csesidx,config_id:h.value.config_id,host_c_oses:h.value.host_c_oses||void 0,expires_at:h.value.expires_at||void 0};try{await k.updateConfig(t),d.success("账号编辑成功"),Fe()}catch(e){$.value=e.message||"保存失败",d.error(e.message||"保存失败")}},qt=async()=>{try{await k.bulkEnable(Array.from(b.value)),d.success("批量启用成功"),b.value=new Set}catch(t){d.error(t.message||"批量启用失败")}},Qt=async()=>{if(await T.ask({title:"批量禁用",message:"确定要批量禁用选中的账号吗?"}))try{await k.bulkDisable(Array.from(b.value)),d.success("批量禁用成功"),b.value=new Set}catch(e){d.error(e.message||"批量禁用失败")}},Xt=async()=>{if(await T.ask({title:"批量删除",message:"确定要批量删除选中的账号吗?",confirmText:"删除"}))try{await k.bulkDelete(Array.from(b.value)),d.success("批量删除成功"),b.value=new Set}catch(e){d.error(e.message||"批量删除失败")}},bt=async t=>{try{await k.enableAccount(t),d.success("账号已启用")}catch(e){d.error(e.message||"启用失败")}},yt=async t=>{if(await T.ask({title:"禁用账号",message:"确定要禁用该账号吗?"}))try{await k.disableAccount(t),d.success("账号已禁用")}catch(o){d.error(o.message||"禁用失败")}},_t=async t=>{if(await T.ask({title:"删除账号",message:"确定要删除该账号吗?",confirmText:"删除"}))try{await k.deleteAccount(t),d.success("账号已删除")}catch(o){d.error(o.message||"删除失败")}};let me=null,pe=null,xe=null,Le=!1;const W=()=>{me!==null&&(window.clearInterval(me),me=null)},Z=()=>{pe!==null&&(window.clearInterval(pe),pe=null)},Wt=()=>{xe!==null&&(window.clearInterval(xe),xe=null),Le=!1},ht=t=>t==="pending"?"等待中":t==="running"?"执行中":t==="success"?"成功":t==="failed"?"失败":t,wt=t=>{const e=t.status,o=t.success_count??0,r=t.fail_count??0;if(e==="running"||e==="pending")return"bg-sky-400";if(e==="success"||e==="failed"){if(o>0&&r===0)return"bg-emerald-400";if(r>0&&o===0)return"bg-rose-500";if(o>0&&r>0)return"bg-amber-400"}return"bg-muted-foreground"},kt=async t=>{if($e(t)){W();return}const e=await w.getRegisterTask(t);if($e(e.id)){W();return}if(Be(e),e.status!=="running"&&e.status!=="pending"){O.value=!1,W(),await fe();const o=e.success_count||0,r=e.fail_count||0;o>0&&r>0?d.success(`注册任务完成:成功 ${o},失败 ${r}`):o>0&&r===0?d.success(`注册任务完成:全部成功 (${o})`):r>0&&o===0?d.error(`注册任务完成:全部失败 (${r})`):d.error("注册任务失败")}},Ct=async t=>{if(Ie(t)){Z();return}const e=await w.getLoginTask(t);if(Ie(e.id)){Z();return}if(Se(e),e.status!=="running"&&e.status!=="pending"){S.value=!1,Z(),await fe();const o=e.success_count||0,r=e.fail_count||0;o>0&&r>0?d.success(`刷新任务完成:成功 ${o},失败 ${r}`):o>0&&r===0?d.success(`刷新任务完成:全部成功 (${o})`):r>0&&o===0?d.error(`刷新任务完成:全部失败 (${r})`):d.error("刷新任务失败")}},Tt=t=>{W(),me=window.setInterval(()=>{kt(t).catch(e=>{_.value=e?.message||"注册任务更新失败",W(),O.value=!1})},3e3)},Ke=t=>{Z(),pe=window.setInterval(()=>{Ct(t).catch(e=>{_.value=e?.message||"刷新任务更新失败",Z(),S.value=!1})},3e3)},Zt=()=>{xe===null&&(xe=window.setInterval(async()=>{if(!Le&&!q.value&&!(me!==null||pe!==null)&&!(!O.value&&!S.value&&!c.value&&!f.value)){Le=!0;try{await He()}catch(t){_.value=t?.message||"后台刷新失败"}finally{Le=!1}}},6e3))},He=async()=>{try{const t=await w.getRegisterCurrent();t&&"id"in t&&!$e(t.id)&&(Be(t),(t.status==="running"||t.status==="pending")&&(O.value=!0,Tt(t.id)))}catch(t){_.value=t.message||"加载注册任务失败"}try{const t=await w.getLoginCurrent();t&&"id"in t&&!Ie(t.id)&&(Se(t),(t.status==="running"||t.status==="pending")&&(S.value=!0,Ke(t.id)))}catch(t){_.value=t.message||"加载刷新任务失败"}},es=async()=>{_.value="",O.value=!0;try{const t=Number.isFinite(de.value)&&de.value>0?de.value:void 0,e=await w.startRegister(t);Be(e),Tt(e.id),ye.value=!1,q.value=!0}catch(t){_.value=t.message||"启动注册失败",O.value=!1}},St=async()=>{if(b.value.size){_.value="",S.value=!0;try{const t=await w.startLogin(Array.from(b.value));Se(t),Ke(t.id),Ue()}catch(t){_.value=t.message||"启动刷新失败",S.value=!1}}},ts=async()=>{_.value="",S.value=!0;try{await w.checkLogin();const t=await w.getLoginCurrent();if(t&&"id"in t){Se(t),Ke(t.id),Ue();return}S.value=!1}catch(t){_.value=t.message||"触发刷新失败",S.value=!1}};return(t,e)=>(l(),n(ge,null,[s("div",xs,[s("section",gs,[s("div",bs,[s("div",ys,[R(s("input",{"onUpdate:modelValue":e[0]||(e[0]=o=>ae.value=o),type:"text",placeholder:"搜索账号 ID",class:"w-full rounded-full border border-input bg-background px-4 py-2 text-sm sm:w-48"},null,512),[[V,ae.value]]),G(cs,{modelValue:te.value,"onUpdate:modelValue":e[1]||(e[1]=o=>te.value=o),options:Et},null,8,["modelValue"])]),s("div",_s,[G(be,{modelValue:Oe.value,"onUpdate:modelValue":ft},{default:$t(()=>[...e[27]||(e[27]=[ee(" 全选 ",-1)])]),_:1},8,["modelValue"]),s("span",null,"已选 "+a(B.value)+" / "+a(H.value.length)+" 个账号",1),s("div",hs,[s("button",{type:"button",class:p(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",Y.value==="table"?"bg-accent text-accent-foreground":""]),onClick:e[2]||(e[2]=o=>Y.value="table"),"aria-label":"列表视图"},[...e[28]||(e[28]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])],2),s("button",{type:"button",class:p(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",Y.value==="card"?"bg-accent text-accent-foreground":""]),onClick:e[3]||(e[3]=o=>Y.value="card"),"aria-label":"卡片视图"},[...e[29]||(e[29]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h7v6H4V6zm9 0h7v6h-7V6zM4 14h7v4H4v-4zm9 0h7v4h-7v-4z"})],-1)])],2)])])]),s("div",ws,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary disabled:cursor-not-allowed disabled:opacity-50",disabled:j(ne),onClick:fe}," 刷新列表 ",8,ks),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:Kt}," 账户配置 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary disabled:cursor-not-allowed disabled:opacity-50",disabled:O.value,onClick:At}," 添加账户 ",8,Cs),s("div",{ref_key:"moreActionsRef",ref:De,class:"relative"},[s("button",{class:p(["flex items-center gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary",P.value?"bg-accent text-accent-foreground":""]),onClick:Ot},[e[30]||(e[30]=ee(" 更多操作 ",-1)),e[31]||(e[31]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1)),Bt.value?(l(),n("span",{key:0,class:p(["ml-1 h-2 w-2 rounded-full",zt.value]),"aria-hidden":"true"},null,2)):g("",!0)],2),P.value?(l(),n("div",Ts,[s("button",{type:"button",class:"flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm text-foreground transition-colors hover:bg-accent",onClick:e[4]||(e[4]=o=>{Ue(),le()})}," 任务状态 "),e[32]||(e[32]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:p(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",S.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:S.value,onClick:e[5]||(e[5]=o=>{ts(),le()})}," 刷新过期 ",10,Ss),s("button",{type:"button",class:p(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",!B.value||S.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:!B.value||S.value,onClick:e[6]||(e[6]=o=>{St(),le()})}," 刷新选中 ",10,$s),e[33]||(e[33]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:p(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",B.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!B.value,onClick:e[7]||(e[7]=o=>{qt(),le()})}," 批量启用 ",10,Is),s("button",{type:"button",class:p(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",B.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!B.value,onClick:e[8]||(e[8]=o=>{Qt(),le()})}," 批量禁用 ",10,Es),s("button",{type:"button",class:p(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",B.value?"text-destructive hover:bg-destructive/10":"cursor-not-allowed text-muted-foreground"]),disabled:!B.value,onClick:e[9]||(e[9]=o=>{Xt(),le()})}," 批量删除 ",10,Ls)])):g("",!0)],512)]),Y.value==="card"?(l(),n("div",As,[(l(!0),n(ge,null,Ve(H.value,o=>(l(),n("div",{key:o.id,class:p(["rounded-2xl border border-border bg-card p-4",ct(o)]),onClick:r=>Ee(o.id)},[s("div",Vs,[s("div",null,[e[34]||(e[34]=s("p",{class:"text-xs text-muted-foreground"},"账号 ID",-1)),s("p",js,a(o.id),1)]),s("div",Ms,[G(be,{modelValue:b.value.has(o.id),"onUpdate:modelValue":r=>Ee(o.id),onClick:e[10]||(e[10]=M(()=>{},["stop"]))},null,8,["modelValue","onUpdate:modelValue"]),s("span",{class:p(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",nt(o)])},a(ve(o)),3)])]),s("div",Ds,[s("div",null,[e[35]||(e[35]=s("p",null,"剩余时间",-1)),s("p",{class:p(["mt-1 text-sm font-semibold",dt(o)])},a(it(o.remaining_display)),3),o.expires_at?(l(),n("p",Os,a(o.expires_at),1)):g("",!0)]),s("div",null,[e[36]||(e[36]=s("p",null,"冷却",-1)),s("p",{class:p(["mt-1",ze(o)])},[o.cooldown_seconds>0?(l(),n("span",Bs,a(ut(o.cooldown_seconds))+" · "+a(o.cooldown_reason),1)):(l(),n("span",Ns,a(o.cooldown_reason||"无冷却"),1))],2)]),s("div",null,[e[37]||(e[37]=s("p",null,"失败数",-1)),s("p",Us,a(o.error_count),1)]),s("div",null,[e[38]||(e[38]=s("p",null,"会话数",-1)),s("p",zs,a(o.conversation_count),1)])]),s("div",Ps,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:M(r=>pt(o.id),["stop"])}," 编辑 ",8,Fs),at(o)?(l(),n("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[e[11]||(e[11]=M(()=>{},["stop"])),r=>bt(o.id)]}," 启用 ",8,Ks)):(l(),n("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[e[12]||(e[12]=M(()=>{},["stop"])),r=>yt(o.id)]}," 禁用 ",8,Hs)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:[e[13]||(e[13]=M(()=>{},["stop"])),r=>_t(o.id)]}," 删除 ",8,Js)])],10,Rs))),128)),!H.value.length&&!j(ne)?(l(),n("div",Gs," 暂无账号数据,请检查后台配置。 ")):g("",!0)])):(l(),n("div",Ys,[s("table",qs,[s("thead",Qs,[s("tr",null,[s("th",Xs,[G(be,{modelValue:Oe.value,"onUpdate:modelValue":ft},null,8,["modelValue"])]),e[40]||(e[40]=s("th",{class:"py-3 pr-6"},"账号 ID",-1)),e[41]||(e[41]=s("th",{class:"py-3 pr-6"},"状态",-1)),s("th",Ws,[s("span",Zs,[e[39]||(e[39]=ee(" 剩余/过期 ",-1)),G(ms,{text:"过期时间为 12 小时,账户过期以北京时间为准。"})])]),e[42]||(e[42]=s("th",{class:"py-3 pr-6"},"冷却",-1)),e[43]||(e[43]=s("th",{class:"py-3 pr-6"},"失败数",-1)),e[44]||(e[44]=s("th",{class:"py-3 pr-6"},"会话数",-1)),e[45]||(e[45]=s("th",{class:"py-3 text-right"},"操作",-1))])]),s("tbody",eo,[!H.value.length&&!j(ne)?(l(),n("tr",to,[...e[46]||(e[46]=[s("td",{colspan:"8",class:"py-8 text-center text-muted-foreground"}," 暂无账号数据,请检查后台配置。 ",-1)])])):g("",!0),(l(!0),n(ge,null,Ve(H.value,o=>(l(),n("tr",{key:o.id,class:p(["border-t border-border",ct(o)]),onClick:r=>Ee(o.id)},[s("td",{class:"py-4 pr-4",onClick:e[14]||(e[14]=M(()=>{},["stop"]))},[G(be,{modelValue:b.value.has(o.id),"onUpdate:modelValue":r=>Ee(o.id)},null,8,["modelValue","onUpdate:modelValue"])]),s("td",oo,a(o.id),1),s("td",ro,[s("span",{class:p(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",nt(o)])},a(ve(o)),3)]),s("td",lo,[s("div",{class:p(["text-sm font-semibold",dt(o)])},a(it(o.remaining_display)),3),o.expires_at?(l(),n("span",no,a(o.expires_at),1)):g("",!0)]),s("td",ao,[o.cooldown_seconds>0?(l(),n("span",{key:0,class:p(ze(o))},a(ut(o.cooldown_seconds))+" · "+a(o.cooldown_reason),3)):(l(),n("span",{key:1,class:p(ze(o))},a(o.cooldown_reason||"无冷却"),3))]),s("td",io,a(o.error_count),1),s("td",uo,a(o.conversation_count),1),s("td",co,[s("div",fo,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:M(r=>pt(o.id),["stop"])}," 编辑 ",8,vo),at(o)?(l(),n("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:M(r=>bt(o.id),["stop"])}," 启用 ",8,mo)):(l(),n("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:M(r=>yt(o.id),["stop"])}," 禁用 ",8,po)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:M(r=>_t(o.id),["stop"])}," 删除 ",8,xo)])])],10,so))),128))])])]))])]),G(fs,{open:j(T).open.value,title:j(T).title.value,message:j(T).message.value,"confirm-text":j(T).confirmText.value,"cancel-text":j(T).cancelText.value,onConfirm:j(T).confirm,onCancel:j(T).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(l(),Re(je,{to:"body"},[ye.value?(l(),n("div",go,[s("div",bo,[s("div",yo,[s("div",null,[e[47]||(e[47]=s("p",{class:"text-sm font-medium text-foreground"},"添加账户",-1)),s("p",_o,a(U.value==="register"?"创建 DuckMail 账号并自动注册":"批量导入账户配置"),1)]),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Ne}," 关闭 ")]),s("div",ho,[s("div",wo,[s("div",ko,[s("button",{type:"button",class:p(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",U.value==="register"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:e[15]||(e[15]=o=>U.value="register")}," 自动注册 ",2),s("button",{type:"button",class:p(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",U.value==="import"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:e[16]||(e[16]=o=>U.value="import")}," 批量导入 ",2)]),U.value==="register"?(l(),n("div",Co,[e[48]||(e[48]=s("label",{class:"block text-xs text-muted-foreground"},"注册数量",-1)),R(s("input",{"onUpdate:modelValue":e[17]||(e[17]=o=>de.value=o),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,de.value,void 0,{number:!0}]]),e[49]||(e[49]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},[s("p",null,"默认域名(可在配置面板修改,推荐使用)"),s("p",{class:"mt-1"},"注册失败建议关闭无头浏览器再试")],-1))])):(l(),n("div",To,[e[50]||(e[50]=s("label",{class:"block text-xs text-muted-foreground"},"批量导入(每行一个)",-1)),R(s("textarea",{"onUpdate:modelValue":e[18]||(e[18]=o=>ue.value=o),class:"min-h-[140px] w-full rounded-2xl border border-input bg-background px-3 py-2 text-xs font-mono",placeholder:`duckmail----you@example.com----password +user@outlook.com----loginPassword----clientId----refreshToken`},null,512),[[V,ue.value]]),e[51]||(e[51]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},[s("p",null,"支持两种格式:"),s("p",{class:"mt-1 font-mono"},"duckmail----email----password"),s("p",{class:"mt-1 font-mono"},"email----password----clientId----refreshToken"),s("p",{class:"mt-2"},'导入后请执行一次"刷新选中"以获取 Cookie。'),s("p",{class:"mt-1"},"注册失败建议关闭无头浏览器再试")],-1)),z.value?(l(),n("div",So,a(z.value),1)):g("",!0)])),e[53]||(e[53]=s("div",{class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-[11px] leading-relaxed"},[s("p",{class:"text-xs font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)"),s("p",{class:"mt-1 text-muted-foreground"},[ee("详细声明请查看项目 "),s("a",{href:"https://github.com/Dreamy-rain/gemini-business2api/blob/main/docs/DISCLAIMER.md",target:"_blank",class:"text-primary hover:underline font-medium"},"DISCLAIMER.md")])],-1)),G(be,{modelValue:ce.value,"onUpdate:modelValue":e[19]||(e[19]=o=>ce.value=o)},{default:$t(()=>[...e[52]||(e[52]=[ee(" 我已阅读并同意上述说明与限制 ",-1)])]),_:1},8,["modelValue"])])]),s("div",$o,[s("div",Io,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Ne}," 取消 "),U.value==="register"?(l(),n("button",{key:0,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",disabled:O.value||!ce.value,onClick:es}," 开始注册 ",8,Eo)):(l(),n("button",{key:1,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",disabled:_e.value||!ce.value,onClick:Vt}," 导入并保存 ",8,Lo))])])])])):g("",!0)])),(l(),Re(je,{to:"body"},[q.value?(l(),n("div",Ao,[s("div",Ro,[s("div",Vo,[e[54]||(e[54]=s("div",null,[s("p",{class:"text-sm font-medium text-foreground"},"任务状态"),s("p",{class:"mt-1 text-xs text-muted-foreground"},"注册与刷新任务的状态与日志")],-1)),s("div",jo,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-muted-foreground transition-colors hover:border-primary hover:text-primary disabled:cursor-not-allowed disabled:opacity-50",disabled:!Q.value.length&&!X.value.length&&!c.value&&!f.value&&!_.value,onClick:Dt}," 清空日志 ",8,Mo),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Mt}," 关闭 ")])]),s("div",Do,[_.value?(l(),n("div",Oo,a(_.value),1)):g("",!0),c.value||f.value?(l(),n("div",Bo,[c.value?(l(),n("div",No,[s("div",Uo,[s("span",{class:p(["h-2.5 w-2.5 rounded-full",wt(c.value)]),"aria-hidden":"true"},null,2),e[55]||(e[55]=ee(" 注册任务 ",-1))]),s("div",zo,[s("span",null,"状态:"+a(ht(c.value.status)),1),s("span",null,"进度:"+a(c.value.progress)+"/"+a(c.value.count),1),s("span",null,"成功:"+a(c.value.success_count),1),s("span",null,"失败:"+a(c.value.fail_count),1)])])):g("",!0),f.value?(l(),n("div",Po,[s("div",Fo,[s("span",{class:p(["h-2.5 w-2.5 rounded-full",wt(f.value)]),"aria-hidden":"true"},null,2),e[56]||(e[56]=ee(" 刷新任务 ",-1))]),s("div",Ko,[s("span",null,"状态:"+a(ht(f.value.status)),1),s("span",null,"进度:"+a(f.value.progress)+"/"+a(f.value.account_ids.length),1),s("span",null,"成功:"+a(f.value.success_count),1),s("span",null,"失败:"+a(f.value.fail_count),1)])])):g("",!0)])):g("",!0),Q.value.length||X.value.length?(l(),n("div",Ho,[s("div",{ref_key:"taskLogsRef",ref:We,class:"scrollbar-slim flex-1 overflow-y-auto rounded-2xl border border-border bg-muted/30 p-3"},[Q.value.length?(l(),n("div",Jo,[e[57]||(e[57]=s("p",{class:"text-xs font-semibold text-foreground"},"注册日志",-1)),s("div",Go,[(l(!0),n(ge,null,Ve(Q.value,(o,r)=>(l(),n("div",{key:`reg-${r}`,class:"font-mono"},a(mt(o)),1))),128))])])):g("",!0),X.value.length?(l(),n("div",Yo,[e[58]||(e[58]=s("p",{class:"text-xs font-semibold text-foreground"},"刷新日志",-1)),s("div",qo,[(l(!0),n(ge,null,Ve(X.value,(o,r)=>(l(),n("div",{key:`login-${r}`,class:"font-mono"},a(mt(o)),1))),128))])])):g("",!0)],512)])):g("",!0),!_.value&&!c.value&&!f.value&&!Q.value.length&&!X.value.length?(l(),n("div",Qo," 暂无任务 ")):g("",!0)])])])):g("",!0)])),(l(),Re(je,{to:"body"},[x.value?(l(),n("div",Xo,[s("div",Wo,[s("div",{class:"flex items-center justify-between"},[e[59]||(e[59]=s("p",{class:"text-sm font-medium text-foreground"},"编辑账号",-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Fe}," 关闭 ")]),$.value?(l(),n("div",Zo,a($.value),1)):g("",!0),s("div",er,[e[60]||(e[60]=s("label",{class:"block text-xs text-muted-foreground"},"账号 ID",-1)),R(s("input",{"onUpdate:modelValue":e[20]||(e[20]=o=>h.value.id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",disabled:""},null,512),[[V,h.value.id]]),e[61]||(e[61]=s("label",{class:"block text-xs text-muted-foreground"},"secure_c_ses",-1)),R(s("textarea",{"onUpdate:modelValue":e[21]||(e[21]=o=>h.value.secure_c_ses=o),class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",rows:"3"},null,512),[[V,h.value.secure_c_ses]]),e[62]||(e[62]=s("label",{class:"block text-xs text-muted-foreground"},"csesidx",-1)),R(s("input",{"onUpdate:modelValue":e[22]||(e[22]=o=>h.value.csesidx=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,h.value.csesidx]]),e[63]||(e[63]=s("label",{class:"block text-xs text-muted-foreground"},"config_id",-1)),R(s("input",{"onUpdate:modelValue":e[23]||(e[23]=o=>h.value.config_id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,h.value.config_id]]),e[64]||(e[64]=s("label",{class:"block text-xs text-muted-foreground"},"host_c_oses",-1)),R(s("input",{"onUpdate:modelValue":e[24]||(e[24]=o=>h.value.host_c_oses=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,h.value.host_c_oses]]),e[65]||(e[65]=s("label",{class:"block text-xs text-muted-foreground"},"expires_at",-1)),R(s("input",{"onUpdate:modelValue":e[25]||(e[25]=o=>h.value.expires_at=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"2025-12-23 10:59:21"},null,512),[[V,h.value.expires_at]])]),s("div",{class:"mt-6 flex items-center justify-end gap-2"},[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Fe}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Yt}," 保存 ")])])])):g("",!0)])),(l(),Re(je,{to:"body"},[Me.value?(l(),n("div",tr,[s("div",sr,[s("div",or,[e[66]||(e[66]=s("p",{class:"text-sm font-medium text-foreground"},"账户配置(JSON)",-1)),s("div",rr,[s("button",{class:"rounded-full bg-foreground px-3 py-1 text-xs text-background transition-opacity hover:opacity-90",onClick:Jt},a(N.value?"显示原文":"脱敏显示"),1),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Pe}," 关闭 ")])]),D.value?(l(),n("div",lr,a(D.value),1)):g("",!0),s("div",nr,[R(s("textarea",{"onUpdate:modelValue":e[26]||(e[26]=o=>se.value=o),class:"h-96 w-full rounded-2xl border border-input bg-background px-4 py-3 font-mono text-xs text-foreground",spellcheck:"false",readonly:N.value},null,8,ar),[[V,se.value]])]),s("div",ir,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Pe}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",onClick:Gt,disabled:N.value}," 保存 ",8,dr)])])])):g("",!0)]))],64))}});export{xr as default}; diff --git a/static/assets/Accounts-J1ZNWiem.js b/static/assets/Accounts-J1ZNWiem.js new file mode 100644 index 0000000000000000000000000000000000000000..9f3d2403b823327a2ff070a745da87f01d5eb3bf --- /dev/null +++ b/static/assets/Accounts-J1ZNWiem.js @@ -0,0 +1,2 @@ +import{g as S,C as ts,h as a,d as ss,D as os,i as F,o as rs,s as ls,j as ns,c as l,a as s,x as K,y as Ie,m as E,v as I,A as ht,t as n,n as m,u as L,b as x,f as G,F as pe,r as Le,T as $e,w as $,e as r,E as as}from"./index-DhxxzIOh.js";import{_ as is}from"./SelectMenu.vue_vue_type_script_setup_true_lang-Vv-llkmB.js";import{_ as xe}from"./Checkbox.vue_vue_type_script_setup_true_lang-Cui3ZVy3.js";import{_ as ds}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-C_ZbANx_.js";import{u as us}from"./useConfirmDialog-ChXSHLDJ.js";import{_ as cs}from"./HelpTip.vue_vue_type_script_setup_true_lang-Dj0Fsuty.js";const w={list:()=>S.get("/admin/accounts"),getConfig:()=>S.get("/admin/accounts-config"),updateConfig:g=>S.put("/admin/accounts-config",g),delete:g=>S.delete(`/admin/accounts/${g}`),disable:g=>S.put(`/admin/accounts/${g}/disable`),enable:g=>S.put(`/admin/accounts/${g}/enable`),startRegister:(g,h)=>S.post("/admin/register/start",{count:g,domain:h}),getRegisterTask:g=>S.get(`/admin/register/task/${g}`),getRegisterCurrent:()=>S.get("/admin/register/current"),startLogin:g=>S.post("/admin/login/start",g),getLoginTask:g=>S.get(`/admin/login/task/${g}`),getLoginCurrent:()=>S.get("/admin/login/current"),checkLogin:()=>S.post("/admin/login/check")},fs=ts("accounts",()=>{const g=a([]),h=a(!1);async function A(){h.value=!0;try{const f=await w.list();g.value=Array.isArray(f)?f:f.accounts||[]}finally{h.value=!1}}async function oe(f){await w.delete(f),await A()}async function T(f){await w.disable(f),await A()}async function re(f){await w.enable(f),await A()}async function X(f){await Promise.all(f.map(R=>w.enable(R))),await A()}async function b(f){await Promise.all(f.map(R=>w.disable(R))),await A()}async function H(f){await Promise.all(f.map(R=>w.delete(R))),await A()}async function le(f){await w.updateConfig(f),await A()}return{accounts:g,isLoading:h,loadAccounts:A,deleteAccount:oe,disableAccount:T,enableAccount:re,bulkEnable:X,bulkDisable:b,bulkDelete:H,updateConfig:le}}),vs={class:"space-y-8"},ps={class:"rounded-3xl border border-border bg-card p-6"},xs={class:"flex flex-wrap items-center justify-between gap-4"},ms={class:"grid w-full grid-cols-2 gap-3 sm:flex sm:w-auto sm:items-center"},gs={class:"flex w-full flex-wrap items-center gap-3 text-xs text-muted-foreground sm:w-auto sm:flex-nowrap"},bs={class:"ml-auto flex items-center gap-2 sm:ml-0"},ys={class:"mt-4 flex flex-wrap items-center gap-2"},_s=["disabled"],ws=["disabled"],hs={key:0,class:"absolute right-0 z-10 mt-2 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg"},ks=["disabled"],Cs=["disabled"],Ts=["disabled"],Ss=["disabled"],As=["disabled"],Es={key:0,class:"mt-6 grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3"},Is=["onClick"],Ls={class:"flex items-start justify-between gap-3"},$s={class:"mt-1 font-mono text-xs text-foreground"},Rs={class:"flex items-center gap-2"},Vs={class:"mt-4 grid grid-cols-2 gap-3 text-xs text-muted-foreground"},Ms={key:0,class:"mt-1 text-[11px]"},js={key:0},Ds={key:1},Os={class:"mt-1 text-sm font-semibold text-foreground"},Bs={class:"mt-1 text-sm font-semibold text-foreground"},Ns={class:"mt-4 flex flex-wrap items-center gap-2"},Us=["onClick"],zs=["onClick"],Ps=["onClick"],Fs=["onClick"],Ks={key:0,class:"rounded-2xl border border-border bg-background p-4 text-center text-xs text-muted-foreground"},Gs={key:1,class:"relative mt-6 overflow-x-auto overflow-y-visible"},Hs={class:"min-w-full text-left text-sm"},Js={class:"text-xs uppercase tracking-[0.2em] text-muted-foreground"},Ys={class:"py-3 pr-4"},Qs={class:"py-3 pr-6"},qs={class:"inline-flex items-center gap-2"},Ws={class:"text-sm text-foreground"},Xs={key:0},Zs=["onClick"],eo={class:"py-4 pr-6 font-mono text-xs text-foreground"},to={class:"py-4 pr-6"},so={class:"py-4 pr-6"},oo={key:0,class:"block text-[11px] text-muted-foreground"},ro={class:"py-4 pr-6 text-xs"},lo={class:"py-4 pr-6 text-xs text-muted-foreground"},no={class:"py-4 pr-6 text-xs text-muted-foreground"},ao={class:"py-4 text-right"},io={class:"flex flex-wrap justify-end gap-2"},uo=["onClick"],co=["onClick"],fo=["onClick"],vo=["onClick"],po={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},xo={class:"flex max-h-[90vh] w-full max-w-lg flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},mo={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},go={class:"mt-1 text-xs text-muted-foreground"},bo={class:"scrollbar-slim flex-1 overflow-y-auto px-6 py-4"},yo={class:"space-y-4 text-sm"},_o={class:"flex rounded-full border border-border bg-muted/30 p-1 text-xs"},wo={key:0,class:"space-y-4"},ho={key:1,class:"space-y-4"},ko={key:0,class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-xs text-rose-600"},Co={class:"border-t border-border/60 px-6 py-4"},To={class:"flex items-center justify-end gap-2"},So=["disabled"],Ao=["disabled"],Eo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Io={class:"flex h-[80vh] w-full max-w-2xl flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},Lo={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},$o={class:"flex items-center gap-2"},Ro=["disabled"],Vo={class:"flex min-h-0 flex-1 flex-col px-6 py-4"},Mo={key:0,class:"rounded-2xl bg-destructive/10 px-3 py-2 text-xs text-destructive"},jo={key:1,class:"grid gap-3 text-xs text-muted-foreground"},Do={key:0,class:"space-y-1"},Oo={class:"flex flex-wrap gap-x-4 gap-y-1"},Bo={key:1,class:"space-y-1"},No={class:"flex flex-wrap gap-x-4 gap-y-1"},Uo={key:2,class:"mt-4 flex min-h-0 flex-1 flex-col"},zo={key:0,class:"space-y-2"},Po={class:"space-y-1 text-[11px] text-muted-foreground"},Fo={key:1,class:"mt-4 space-y-2"},Ko={class:"space-y-1 text-[11px] text-muted-foreground"},Go={key:3,class:"mt-4 rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},Ho={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Jo={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},Yo={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Qo={class:"mt-4 space-y-3 text-sm"},qo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Wo={class:"w-full max-w-3xl rounded-3xl border border-border bg-card p-6 shadow-xl"},Xo={class:"flex items-center justify-between"},Zo={class:"flex items-center gap-2"},er={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},tr={class:"mt-4"},sr=["readonly"],or={class:"mt-6 flex items-center justify-end gap-2"},rr=["disabled"],Fe="accounts-register-task-cache",Ke="accounts-login-task-cache",Ge="accounts-register-log-clear",He="accounts-login-log-clear",Je="accounts-register-task-cleared-id",Ye="accounts-login-task-cleared-id",kt="1970-01-01 00:00:00",cr=ss({__name:"Accounts",setup(g){const h=fs(),{accounts:A,isLoading:oe}=os(h),T=us(),re=a(""),X=a("all"),b=a(new Set),H=a("table"),le=a(!1),f=a(""),R=a(!1),V=a(""),Z=a(""),D=a(!1),ne=a([]),ae=a(1),me=a(!1),O=a("register"),ie=a(""),B=a(""),ge=a(!1),J=a(!1),N=a(!1),Re=a(null),be=a(null),ye=a(null),U=a(null),z=a(null),ee=a(0),te=a(0),de=a(!1),v=a(null),p=a(null),Qe=a(null),M=a(!1),C=a(!1),y=a(""),_=a({id:"",secure_c_ses:"",csesidx:"",config_id:"",host_c_oses:"",expires_at:""}),_e=a(null),qe=a([]),Ct=[{label:"全部状态",value:"all"},{label:"正常",value:"正常"},{label:"即将过期",value:"即将过期"},{label:"已过期",value:"已过期"},{label:"手动禁用",value:"手动禁用"},{label:"错误禁用",value:"错误禁用"},{label:"429限流",value:"429限流"}],P=F(()=>{const e=re.value.trim().toLowerCase();return A.value.filter(t=>{const o=!e||t.id.toLowerCase().includes(e),i=X.value==="all"||ue(t)===X.value;return o&&i})}),j=F(()=>b.value.size),Ve=F(()=>P.value.length>0&&P.value.every(e=>b.value.has(e.id))),we=async()=>{await h.loadAccounts(),b.value=new Set,N.value=!1},We=e=>{try{const t=localStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}},Xe=e=>{try{return localStorage.getItem(e)||null}catch{return null}},he=(e,t)=>{try{if(t){localStorage.setItem(e,t);return}localStorage.removeItem(e)}catch{}},Ze=(e,t)=>{try{localStorage.setItem(e,JSON.stringify(t))}catch{}},et=e=>{try{localStorage.removeItem(e)}catch{}},tt=e=>{const t=localStorage.getItem(e),o=Number(t);return Number.isFinite(o)?o:0},ke=(e,t)=>{try{localStorage.setItem(e,String(t))}catch{}},Me=(e,t=!0)=>{e&&(e.id&&e.id===U.value||(e.id&&U.value&&e.id!==U.value&&(U.value=null,he(Je,null)),v.value=e,e.id&&e.id!==be.value&&(be.value=e.id,ee.value=0,ke(Ge,0)),t&&Ze(Fe,e)))},Ce=(e,t=!0)=>{e&&(e.id&&e.id===z.value||(e.id&&z.value&&e.id!==z.value&&(z.value=null,he(Ye,null)),p.value=e,e.id&&e.id!==ye.value&&(ye.value=e.id,te.value=0,ke(He,0)),t&&Ze(Ke,e)))},Tt=()=>{ee.value=tt(Ge),te.value=tt(He),U.value=Xe(Je),z.value=Xe(Ye);const e=We(Fe);e&&e.id!==U.value&&(v.value=e,be.value=e.id||null);const t=We(Ke);t&&t.id!==z.value&&(p.value=t,ye.value=t.id||null)},St=()=>{me.value=!0,O.value="register",ie.value="",B.value="",ge.value=!1,de.value=!1},je=()=>{me.value=!1},At=e=>{const t=[],o=[];return e.split(/\r?\n/).map(c=>c.trim()).filter(Boolean).forEach((c,d)=>{const u=c.split("----").map(k=>k.trim()),ze=d+1;if(u.length){if(u[0].toLowerCase()==="duckmail"){if(u.length<3||!u[1]||!u[2]){o.push(`第 ${ze} 行格式错误(duckmail)`);return}const k=u[1],Pe=u.slice(2).join("----");t.push({id:k,secure_c_ses:"",csesidx:"",config_id:"",expires_at:kt,mail_provider:"duckmail",mail_address:k,mail_password:Pe});return}if(u.length>=4&&u[0]&&u[2]&&u[3]){const k=u[0],Pe=u[1]||"",Zt=u[2],es=u.slice(3).join("----");t.push({id:k,secure_c_ses:"",csesidx:"",config_id:"",expires_at:kt,mail_provider:"microsoft",mail_address:k,mail_password:Pe,mail_client_id:Zt,mail_refresh_token:es,mail_tenant:"consumers"});return}o.push(`第 ${ze} 行格式错误`)}}),{items:t,errors:o}},Et=async()=>{if(B.value="",!ie.value.trim()){B.value="请输入导入内容";return}const{items:e,errors:t}=At(ie.value);if(!e.length){B.value=t.length?t.join(","):"未识别到有效账号";return}if(t.length){B.value=t.slice(0,3).join(",");return}ge.value=!0;try{const i=[...await ut()],c=new Map(i.map((d,u)=>[d.id,u]));e.forEach(d=>{const u=c.get(d.id||"");if(u===void 0){i.push(d);return}const k={...i[u],mail_provider:d.mail_provider,mail_address:d.mail_address};d.mail_provider==="microsoft"?(k.mail_client_id=d.mail_client_id,k.mail_refresh_token=d.mail_refresh_token,k.mail_tenant=d.mail_tenant,k.mail_password=void 0):(k.mail_password=d.mail_password,k.mail_client_id=void 0,k.mail_refresh_token=void 0,k.mail_tenant=void 0),i[u]=k}),await h.updateConfig(i),je()}catch(o){B.value=o.message||"导入失败"}finally{ge.value=!1}},It=async()=>{try{const e=[],t=v.value?.id,o=p.value?.id;if(t&&!Te(t)&&e.push(yt(t)),o&&!Se(o)&&e.push(_t(o)),!e.length){await Ue();return}await Promise.all(e)}catch(e){y.value=e?.message||"任务状态更新失败"}},Lt=async()=>{J.value=!0,await It()},$t=()=>{J.value=!1},Rt=()=>{const e=v.value?.id||null,t=p.value?.id||null;U.value=e,z.value=t,he(Je,e),he(Ye,t),ee.value=v.value?.logs?.length||0,te.value=p.value?.logs?.length||0,ke(Ge,ee.value),ke(He,te.value),v.value=null,p.value=null,be.value=null,ye.value=null,y.value="",M.value=!1,C.value=!1,q(),W(),et(Fe),et(Ke)},Te=e=>!!(e&&e===U.value),Se=e=>!!(e&&e===z.value),Vt=()=>{N.value=!N.value},se=()=>{N.value=!1},st=e=>{if(!N.value)return;const t=e.target;Re.value&&!Re.value.contains(t)&&(N.value=!1)};rs(async()=>{Tt(),await we(),await Ue(),Qt(),document.addEventListener("click",st)});const Y=F(()=>{const e=v.value?.logs||[];return ee.value?e.slice(ee.value):e}),Q=F(()=>{const e=p.value?.logs||[];return te.value?e.slice(te.value):e}),Mt=F(()=>!!y.value||!!v.value||!!p.value||Y.value.length>0||Q.value.length>0),jt=async()=>{await as();const e=Qe.value;e&&(e.scrollTop=e.scrollHeight)};ls([Y,Q,J],async()=>{J.value&&await jt()},{deep:!0});const Dt=F(()=>{const e=v.value?.status,t=p.value?.status;return e==="running"||e==="pending"||t==="running"||t==="pending"}),Ot=F(()=>{if(y.value)return"bg-rose-500";if(Dt.value)return"bg-sky-400";const e=[];if(v.value){const c=v.value.success_count??0,d=v.value.fail_count??0,u=v.value.count??c+d;e.push({success:c,fail:d,total:u,status:v.value.status})}if(p.value){const c=p.value.success_count??0,d=p.value.fail_count??0,u=p.value.account_ids?.length??c+d;e.push({success:c,fail:d,total:u,status:p.value.status})}if(!e.length)return"bg-muted-foreground";const t=e.reduce((c,d)=>c+d.success,0),o=e.reduce((c,d)=>c+d.fail,0),i=e.reduce((c,d)=>c+(d.total||0),0);if(t>0&&o>0)return"bg-amber-400";if(o>0&&t===0)return"bg-rose-500";if(t>0&&o===0)return"bg-emerald-400";if(i===0){const c=e.every(u=>u.status==="success");if(e.some(u=>u.status==="failed"))return"bg-rose-500";if(c)return"bg-emerald-400"}return"bg-muted-foreground"});ns(()=>{q(),W(),Yt(),document.removeEventListener("click",st)});const ue=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?"429限流":e.cooldown_reason==="错误禁用"?"错误禁用":e.disabled?"手动禁用":e.status==="已过期"?"已过期":e.status==="即将过期"?"即将过期":"正常",ot=e=>{const t=ue(e);return t==="429限流"||t==="即将过期"?"bg-amber-200 text-amber-900":t==="错误禁用"||t==="已过期"?"bg-destructive/10 text-destructive":t==="手动禁用"?"bg-muted text-muted-foreground":"bg-emerald-500 text-white"},rt=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?!0:e.disabled||e.cooldown_reason==="错误禁用",lt=e=>e==="已过期"?"过期":e==="未设置"?"未设置":e,nt=e=>e.status==="已过期"?"text-rose-600":e.status==="即将过期"?"text-amber-700":e.status==="未设置"?"text-muted-foreground":"text-emerald-600",at=e=>e<60?`${e} 秒`:e<3600?`${Math.ceil(e/60)} 分钟`:`${(e/3600).toFixed(1)} 小时`,De=e=>e.cooldown_seconds>0?"text-amber-700":e.cooldown_reason==="错误禁用"?"text-rose-600":"text-muted-foreground",it=e=>{const t=ue(e);return t==="手动禁用"||t==="已过期"?"bg-muted/70":""},Ae=e=>{const t=new Set(b.value);t.has(e)?t.delete(e):t.add(e),b.value=t},dt=()=>{if(Ve.value){b.value=new Set;return}b.value=new Set(P.value.map(e=>e.id))},Bt=(e,t)=>e.id||`account_${t+1}`,ut=async()=>(await w.getConfig()).accounts.map((t,o)=>({...t,id:Bt(t,o)})),ct=e=>`${e.time} [${e.level}] ${e.message}`,Nt=(e,t)=>{let o=-1;for(let c=0;c{f.value="";try{const t=await ut();Nt(t,e)}catch(t){f.value=t.message||"加载账号配置失败"}},Ut=async()=>{V.value="";try{const e=await w.getConfig();ne.value=Array.isArray(e.accounts)?e.accounts:[],Z.value=JSON.stringify(pt(ne.value),null,2),D.value=!0,R.value=!0}catch(e){V.value=e.message||"加载账号配置失败"}},Oe=()=>{R.value=!1,V.value="",D.value=!1},vt=()=>{const e=JSON.parse(Z.value);if(!Array.isArray(e))throw new Error("配置格式必须是数组。");return e},zt=e=>typeof e!="string"||!e?e:e.length<=6?`${e.slice(0,2)}****`:`${e.slice(0,3)}****`,pt=e=>{const t=new Set(["secure_c_ses","csesidx","config_id","host_c_oses","mail_password","mail_refresh_token","mail_client_id"]);return e.map(o=>{const i={...o};return t.forEach(c=>{const d=i[c];d&&(i[c]=zt(d))}),i})},Pt=()=>{if(V.value="",!D.value){try{ne.value=vt()}catch(e){V.value=e.message||"JSON 格式错误";return}Z.value=JSON.stringify(pt(ne.value),null,2),D.value=!0;return}Z.value=JSON.stringify(ne.value,null,2),D.value=!1},Ft=async()=>{V.value="";try{const e=vt();await h.updateConfig(e),Oe()}catch(e){V.value=e.message||"保存失败"}},Be=()=>{le.value=!1,f.value=""},Kt=async()=>{if(_e.value===null)return;const e=[...qe.value];e[_e.value]={...e[_e.value],id:_.value.id,secure_c_ses:_.value.secure_c_ses,csesidx:_.value.csesidx,config_id:_.value.config_id,host_c_oses:_.value.host_c_oses||void 0,expires_at:_.value.expires_at||void 0};try{await h.updateConfig(e),Be()}catch(t){f.value=t.message||"保存失败"}},Gt=async()=>{await h.bulkEnable(Array.from(b.value)),b.value=new Set},Ht=async()=>{await T.ask({title:"批量禁用",message:"确定要批量禁用选中的账号吗?"})&&(await h.bulkDisable(Array.from(b.value)),b.value=new Set)},Jt=async()=>{await T.ask({title:"批量删除",message:"确定要批量删除选中的账号吗?",confirmText:"删除"})&&(await h.bulkDelete(Array.from(b.value)),b.value=new Set)},xt=async e=>{await h.enableAccount(e)},mt=async e=>{await T.ask({title:"禁用账号",message:"确定要禁用该账号吗?"})&&await h.disableAccount(e)},gt=async e=>{await T.ask({title:"删除账号",message:"确定要删除该账号吗?",confirmText:"删除"})&&await h.deleteAccount(e)};let ce=null,fe=null,ve=null,Ee=!1;const q=()=>{ce!==null&&(window.clearInterval(ce),ce=null)},W=()=>{fe!==null&&(window.clearInterval(fe),fe=null)},Yt=()=>{ve!==null&&(window.clearInterval(ve),ve=null),Ee=!1},bt=e=>e==="pending"?"等待中":e==="running"?"执行中":e==="success"?"成功":e==="failed"?"失败":e,yt=async e=>{if(Te(e)){q();return}const t=await w.getRegisterTask(e);if(Te(t.id)){q();return}Me(t),t.status!=="running"&&t.status!=="pending"&&(M.value=!1,q(),await we())},_t=async e=>{if(Se(e)){W();return}const t=await w.getLoginTask(e);if(Se(t.id)){W();return}Ce(t),t.status!=="running"&&t.status!=="pending"&&(C.value=!1,W(),await we())},wt=e=>{q(),ce=window.setInterval(()=>{yt(e).catch(t=>{y.value=t?.message||"注册任务更新失败",q(),M.value=!1})},3e3)},Ne=e=>{W(),fe=window.setInterval(()=>{_t(e).catch(t=>{y.value=t?.message||"刷新任务更新失败",W(),C.value=!1})},3e3)},Qt=()=>{ve===null&&(ve=window.setInterval(async()=>{if(!Ee&&!J.value&&!(ce!==null||fe!==null)&&!(!M.value&&!C.value&&!v.value&&!p.value)){Ee=!0;try{await Ue()}catch(e){y.value=e?.message||"后台刷新失败"}finally{Ee=!1}}},6e3))},Ue=async()=>{try{const e=await w.getRegisterCurrent();e&&"id"in e&&!Te(e.id)&&(Me(e),(e.status==="running"||e.status==="pending")&&(M.value=!0,wt(e.id)))}catch(e){y.value=e.message||"加载注册任务失败"}try{const e=await w.getLoginCurrent();e&&"id"in e&&!Se(e.id)&&(Ce(e),(e.status==="running"||e.status==="pending")&&(C.value=!0,Ne(e.id)))}catch(e){y.value=e.message||"加载刷新任务失败"}},qt=async()=>{y.value="",M.value=!0;try{const e=Number.isFinite(ae.value)&&ae.value>0?ae.value:void 0,t=await w.startRegister(e);Me(t),wt(t.id),me.value=!1,J.value=!0}catch(e){y.value=e.message||"启动注册失败",M.value=!1}},Wt=async()=>{if(b.value.size){y.value="",C.value=!0;try{const e=await w.startLogin(Array.from(b.value));Ce(e),Ne(e.id)}catch(e){y.value=e.message||"启动刷新失败",C.value=!1}}},Xt=async()=>{y.value="",C.value=!0;try{await w.checkLogin();const e=await w.getLoginCurrent();if(e&&"id"in e){Ce(e),Ne(e.id);return}C.value=!1}catch(e){y.value=e.message||"触发刷新失败",C.value=!1}};return(e,t)=>(r(),l(pe,null,[s("div",vs,[s("section",ps,[s("div",xs,[s("div",ms,[E(s("input",{"onUpdate:modelValue":t[0]||(t[0]=o=>re.value=o),type:"text",placeholder:"搜索账号 ID",class:"w-full rounded-full border border-input bg-background px-4 py-2 text-sm sm:w-48"},null,512),[[I,re.value]]),K(is,{modelValue:X.value,"onUpdate:modelValue":t[1]||(t[1]=o=>X.value=o),options:Ct},null,8,["modelValue"])]),s("div",gs,[K(xe,{modelValue:Ve.value,"onUpdate:modelValue":dt},{default:ht(()=>[...t[27]||(t[27]=[G(" 全选 ",-1)])]),_:1},8,["modelValue"]),s("span",null,"已选 "+n(j.value)+" / "+n(P.value.length)+" 个账号",1),s("div",bs,[s("button",{type:"button",class:m(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",H.value==="table"?"bg-accent text-accent-foreground":""]),onClick:t[2]||(t[2]=o=>H.value="table"),"aria-label":"列表视图"},[...t[28]||(t[28]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])],2),s("button",{type:"button",class:m(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",H.value==="card"?"bg-accent text-accent-foreground":""]),onClick:t[3]||(t[3]=o=>H.value="card"),"aria-label":"卡片视图"},[...t[29]||(t[29]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h7v6H4V6zm9 0h7v6h-7V6zM4 14h7v4H4v-4zm9 0h7v4h-7v-4z"})],-1)])],2)])])]),s("div",ys,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:L(oe),onClick:we}," 刷新列表 ",8,_s),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:Ut}," 账户配置 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:M.value,onClick:St}," 添加账户 ",8,ws),s("div",{ref_key:"moreActionsRef",ref:Re,class:"relative"},[s("button",{class:m(["flex items-center gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary",N.value?"bg-accent text-accent-foreground":""]),onClick:Vt},[t[30]||(t[30]=G(" 更多操作 ",-1)),t[31]||(t[31]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1)),Mt.value?(r(),l("span",{key:0,class:m(["ml-1 h-2 w-2 rounded-full",Ot.value]),"aria-hidden":"true"},null,2)):x("",!0)],2),N.value?(r(),l("div",hs,[s("button",{type:"button",class:"flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm text-foreground transition-colors hover:bg-accent",onClick:t[4]||(t[4]=o=>{Lt(),se()})}," 任务状态 "),t[32]||(t[32]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:m(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",C.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:C.value,onClick:t[5]||(t[5]=o=>{Xt(),se()})}," 刷新过期 ",10,ks),s("button",{type:"button",class:m(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",!j.value||C.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:!j.value||C.value,onClick:t[6]||(t[6]=o=>{Wt(),se()})}," 刷新选中 ",10,Cs),t[33]||(t[33]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:m(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",j.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!j.value,onClick:t[7]||(t[7]=o=>{Gt(),se()})}," 批量启用 ",10,Ts),s("button",{type:"button",class:m(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",j.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!j.value,onClick:t[8]||(t[8]=o=>{Ht(),se()})}," 批量禁用 ",10,Ss),s("button",{type:"button",class:m(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",j.value?"text-destructive hover:bg-destructive/10":"cursor-not-allowed text-muted-foreground"]),disabled:!j.value,onClick:t[9]||(t[9]=o=>{Jt(),se()})}," 批量删除 ",10,As)])):x("",!0)],512)]),H.value==="card"?(r(),l("div",Es,[(r(!0),l(pe,null,Le(P.value,o=>(r(),l("div",{key:o.id,class:m(["rounded-2xl border border-border bg-card p-4",it(o)]),onClick:i=>Ae(o.id)},[s("div",Ls,[s("div",null,[t[34]||(t[34]=s("p",{class:"text-xs text-muted-foreground"},"账号 ID",-1)),s("p",$s,n(o.id),1)]),s("div",Rs,[K(xe,{modelValue:b.value.has(o.id),"onUpdate:modelValue":i=>Ae(o.id),onClick:t[10]||(t[10]=$(()=>{},["stop"]))},null,8,["modelValue","onUpdate:modelValue"]),s("span",{class:m(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",ot(o)])},n(ue(o)),3)])]),s("div",Vs,[s("div",null,[t[35]||(t[35]=s("p",null,"剩余时间",-1)),s("p",{class:m(["mt-1 text-sm font-semibold",nt(o)])},n(lt(o.remaining_display)),3),o.expires_at?(r(),l("p",Ms,n(o.expires_at),1)):x("",!0)]),s("div",null,[t[36]||(t[36]=s("p",null,"冷却",-1)),s("p",{class:m(["mt-1",De(o)])},[o.cooldown_seconds>0?(r(),l("span",js,n(at(o.cooldown_seconds))+" · "+n(o.cooldown_reason),1)):(r(),l("span",Ds,n(o.cooldown_reason||"无冷却"),1))],2)]),s("div",null,[t[37]||(t[37]=s("p",null,"失败数",-1)),s("p",Os,n(o.error_count),1)]),s("div",null,[t[38]||(t[38]=s("p",null,"会话数",-1)),s("p",Bs,n(o.conversation_count),1)])]),s("div",Ns,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:$(i=>ft(o.id),["stop"])}," 编辑 ",8,Us),rt(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[11]||(t[11]=$(()=>{},["stop"])),i=>xt(o.id)]}," 启用 ",8,zs)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[12]||(t[12]=$(()=>{},["stop"])),i=>mt(o.id)]}," 禁用 ",8,Ps)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:[t[13]||(t[13]=$(()=>{},["stop"])),i=>gt(o.id)]}," 删除 ",8,Fs)])],10,Is))),128)),!P.value.length&&!L(oe)?(r(),l("div",Ks," 暂无账号数据,请检查后台配置。 ")):x("",!0)])):(r(),l("div",Gs,[s("table",Hs,[s("thead",Js,[s("tr",null,[s("th",Ys,[K(xe,{modelValue:Ve.value,"onUpdate:modelValue":dt},null,8,["modelValue"])]),t[40]||(t[40]=s("th",{class:"py-3 pr-6"},"账号 ID",-1)),t[41]||(t[41]=s("th",{class:"py-3 pr-6"},"状态",-1)),s("th",Qs,[s("span",qs,[t[39]||(t[39]=G(" 剩余/过期 ",-1)),K(cs,{text:"过期时间为 12 小时,账户过期以北京时间为准。"})])]),t[42]||(t[42]=s("th",{class:"py-3 pr-6"},"冷却",-1)),t[43]||(t[43]=s("th",{class:"py-3 pr-6"},"失败数",-1)),t[44]||(t[44]=s("th",{class:"py-3 pr-6"},"会话数",-1)),t[45]||(t[45]=s("th",{class:"py-3 text-right"},"操作",-1))])]),s("tbody",Ws,[!P.value.length&&!L(oe)?(r(),l("tr",Xs,[...t[46]||(t[46]=[s("td",{colspan:"8",class:"py-8 text-center text-muted-foreground"}," 暂无账号数据,请检查后台配置。 ",-1)])])):x("",!0),(r(!0),l(pe,null,Le(P.value,o=>(r(),l("tr",{key:o.id,class:m(["border-t border-border",it(o)]),onClick:i=>Ae(o.id)},[s("td",{class:"py-4 pr-4",onClick:t[14]||(t[14]=$(()=>{},["stop"]))},[K(xe,{modelValue:b.value.has(o.id),"onUpdate:modelValue":i=>Ae(o.id)},null,8,["modelValue","onUpdate:modelValue"])]),s("td",eo,n(o.id),1),s("td",to,[s("span",{class:m(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",ot(o)])},n(ue(o)),3)]),s("td",so,[s("div",{class:m(["text-sm font-semibold",nt(o)])},n(lt(o.remaining_display)),3),o.expires_at?(r(),l("span",oo,n(o.expires_at),1)):x("",!0)]),s("td",ro,[o.cooldown_seconds>0?(r(),l("span",{key:0,class:m(De(o))},n(at(o.cooldown_seconds))+" · "+n(o.cooldown_reason),3)):(r(),l("span",{key:1,class:m(De(o))},n(o.cooldown_reason||"无冷却"),3))]),s("td",lo,n(o.error_count),1),s("td",no,n(o.conversation_count),1),s("td",ao,[s("div",io,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:$(i=>ft(o.id),["stop"])}," 编辑 ",8,uo),rt(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:$(i=>xt(o.id),["stop"])}," 启用 ",8,co)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:$(i=>mt(o.id),["stop"])}," 禁用 ",8,fo)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:$(i=>gt(o.id),["stop"])}," 删除 ",8,vo)])])],10,Zs))),128))])])]))])]),K(ds,{open:L(T).open.value,title:L(T).title.value,message:L(T).message.value,"confirm-text":L(T).confirmText.value,"cancel-text":L(T).cancelText.value,onConfirm:L(T).confirm,onCancel:L(T).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(r(),Ie($e,{to:"body"},[me.value?(r(),l("div",po,[s("div",xo,[s("div",mo,[s("div",null,[t[47]||(t[47]=s("p",{class:"text-sm font-medium text-foreground"},"添加账户",-1)),s("p",go,n(O.value==="register"?"创建 DuckMail 账号并自动注册":"批量导入账户配置"),1)]),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:je}," 关闭 ")]),s("div",bo,[s("div",yo,[s("div",_o,[s("button",{type:"button",class:m(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",O.value==="register"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:t[15]||(t[15]=o=>O.value="register")}," 自动注册 ",2),s("button",{type:"button",class:m(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",O.value==="import"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:t[16]||(t[16]=o=>O.value="import")}," 批量导入 ",2)]),O.value==="register"?(r(),l("div",wo,[t[48]||(t[48]=s("label",{class:"block text-xs text-muted-foreground"},"注册数量",-1)),E(s("input",{"onUpdate:modelValue":t[17]||(t[17]=o=>ae.value=o),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[I,ae.value,void 0,{number:!0}]]),t[49]||(t[49]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"}," 默认域名来自设置面板(可在“配置面板”中修改) ",-1))])):(r(),l("div",ho,[t[50]||(t[50]=s("label",{class:"block text-xs text-muted-foreground"},"批量导入(每行一个)",-1)),E(s("textarea",{"onUpdate:modelValue":t[18]||(t[18]=o=>ie.value=o),class:"min-h-[140px] w-full rounded-2xl border border-input bg-background px-3 py-2 text-xs font-mono",placeholder:`duckmail----you@example.com----password +user@outlook.com----loginPassword----clientId----refreshToken`},null,512),[[I,ie.value]]),t[51]||(t[51]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},[s("p",null,"支持两种格式:"),s("p",{class:"mt-1 font-mono"},"duckmail----email----password"),s("p",{class:"mt-1 font-mono"},"email----password----clientId----refreshToken"),s("p",{class:"mt-2 text-[11px]"},'导入后请执行一次"刷新选中"以获取 Cookie。')],-1)),B.value?(r(),l("div",ko,n(B.value),1)):x("",!0)])),t[53]||(t[53]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-[11px] leading-relaxed text-muted-foreground"},[s("div",{class:"space-y-2"},[s("p",{class:"text-xs font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)"),s("div",{class:"space-y-1"},[s("p",null,[s("strong",null,"本工具严禁用于以下行为:")]),s("p",{class:"pl-3"},"• 商业用途或盈利性使用"),s("p",{class:"pl-3"},"• 任何形式的批量操作或自动化滥用(无论规模大小)"),s("p",{class:"pl-3"},"• 破坏市场秩序或恶意竞争"),s("p",{class:"pl-3"},"• 违反 Google 服务条款的任何行为"),s("p",{class:"pl-3"},"• 违反 Microsoft 服务条款的任何行为")]),s("div",{class:"space-y-1"},[s("p",null,[s("strong",null,"违规后果:"),G("滥用行为可能导致账号永久封禁、法律追责,一切后果由使用者自行承担。")])]),s("div",{class:"space-y-1"},[s("p",{class:"font-semibold text-foreground"},"📖 合法用途"),s("p",null,"本项目仅限于以下场景:"),s("p",{class:"pl-3"},"• 个人学习与技术研究"),s("p",{class:"pl-3"},"• 浏览器自动化技术探索"),s("p",{class:"pl-3"},"• 非商业性技术交流")]),s("div",{class:"space-y-1"},[s("p",{class:"font-semibold text-foreground"},"⚖️ 法律责任"),s("p",null,[s("strong",null,"使用者责任:"),G("使用本工具产生的一切后果(包括但不限于账号封禁、数据损失、法律纠纷)由使用者完全承担。")]),s("p",null,[s("strong",null,"合规义务:"),G("使用者必须遵守所在地法律法规及第三方服务条款(包括但不限于 Google Workspace、Microsoft 365 等服务条款)。")]),s("p",null,[s("strong",null,"作者免责:"),G("作者不对任何违规使用、滥用行为或由此产生的后果承担责任。")])]),s("div",{class:"space-y-1"},[s("p",{class:"font-semibold text-foreground"},"📋 技术声明"),s("p",{class:"pl-3"},'• 本项目按"现状"提供,不提供任何形式的担保'),s("p",{class:"pl-3"},"• 依赖的第三方服务(如 DuckMail API、Microsoft Graph API 等)可用性不受作者控制"),s("p",{class:"pl-3"},"• 作者保留随时停止维护、变更功能或关闭项目的权利")])])],-1)),K(xe,{modelValue:de.value,"onUpdate:modelValue":t[19]||(t[19]=o=>de.value=o)},{default:ht(()=>[...t[52]||(t[52]=[G(" 我已阅读并同意上述说明与限制 ",-1)])]),_:1},8,["modelValue"])])]),s("div",Co,[s("div",To,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:je}," 取消 "),O.value==="register"?(r(),l("button",{key:0,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:M.value||!de.value,onClick:qt}," 开始注册 ",8,So)):(r(),l("button",{key:1,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:ge.value||!de.value,onClick:Et}," 导入并保存 ",8,Ao))])])])])):x("",!0)])),(r(),Ie($e,{to:"body"},[J.value?(r(),l("div",Eo,[s("div",Io,[s("div",Lo,[t[54]||(t[54]=s("div",null,[s("p",{class:"text-sm font-medium text-foreground"},"任务状态"),s("p",{class:"mt-1 text-xs text-muted-foreground"},"注册与刷新任务的状态与日志")],-1)),s("div",$o,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-muted-foreground transition-colors hover:border-primary hover:text-primary",disabled:!Y.value.length&&!Q.value.length&&!v.value&&!p.value&&!y.value,onClick:Rt}," 清空日志 ",8,Ro),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:$t}," 关闭 ")])]),s("div",Vo,[y.value?(r(),l("div",Mo,n(y.value),1)):x("",!0),v.value||p.value?(r(),l("div",jo,[v.value?(r(),l("div",Do,[t[55]||(t[55]=s("div",{class:"font-medium text-foreground"},"注册任务",-1)),s("div",Oo,[s("span",null,"状态:"+n(bt(v.value.status)),1),s("span",null,"进度:"+n(v.value.progress)+"/"+n(v.value.count),1),s("span",null,"成功:"+n(v.value.success_count),1),s("span",null,"失败:"+n(v.value.fail_count),1)])])):x("",!0),p.value?(r(),l("div",Bo,[t[56]||(t[56]=s("div",{class:"font-medium text-foreground"},"刷新任务",-1)),s("div",No,[s("span",null,"状态:"+n(bt(p.value.status)),1),s("span",null,"进度:"+n(p.value.progress)+"/"+n(p.value.account_ids.length),1),s("span",null,"成功:"+n(p.value.success_count),1),s("span",null,"失败:"+n(p.value.fail_count),1)])])):x("",!0)])):x("",!0),Y.value.length||Q.value.length?(r(),l("div",Uo,[s("div",{ref_key:"taskLogsRef",ref:Qe,class:"scrollbar-slim flex-1 overflow-y-auto rounded-2xl border border-border bg-muted/30 p-3"},[Y.value.length?(r(),l("div",zo,[t[57]||(t[57]=s("p",{class:"text-xs font-semibold text-foreground"},"注册日志",-1)),s("div",Po,[(r(!0),l(pe,null,Le(Y.value,(o,i)=>(r(),l("div",{key:`reg-${i}`,class:"font-mono"},n(ct(o)),1))),128))])])):x("",!0),Q.value.length?(r(),l("div",Fo,[t[58]||(t[58]=s("p",{class:"text-xs font-semibold text-foreground"},"刷新日志",-1)),s("div",Ko,[(r(!0),l(pe,null,Le(Q.value,(o,i)=>(r(),l("div",{key:`login-${i}`,class:"font-mono"},n(ct(o)),1))),128))])])):x("",!0)],512)])):x("",!0),!y.value&&!v.value&&!p.value&&!Y.value.length&&!Q.value.length?(r(),l("div",Go," 暂无任务 ")):x("",!0)])])])):x("",!0)])),(r(),Ie($e,{to:"body"},[le.value?(r(),l("div",Ho,[s("div",Jo,[s("div",{class:"flex items-center justify-between"},[t[59]||(t[59]=s("p",{class:"text-sm font-medium text-foreground"},"编辑账号",-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Be}," 关闭 ")]),f.value?(r(),l("div",Yo,n(f.value),1)):x("",!0),s("div",Qo,[t[60]||(t[60]=s("label",{class:"block text-xs text-muted-foreground"},"账号 ID",-1)),E(s("input",{"onUpdate:modelValue":t[20]||(t[20]=o=>_.value.id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",disabled:""},null,512),[[I,_.value.id]]),t[61]||(t[61]=s("label",{class:"block text-xs text-muted-foreground"},"secure_c_ses",-1)),E(s("textarea",{"onUpdate:modelValue":t[21]||(t[21]=o=>_.value.secure_c_ses=o),class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",rows:"3"},null,512),[[I,_.value.secure_c_ses]]),t[62]||(t[62]=s("label",{class:"block text-xs text-muted-foreground"},"csesidx",-1)),E(s("input",{"onUpdate:modelValue":t[22]||(t[22]=o=>_.value.csesidx=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[I,_.value.csesidx]]),t[63]||(t[63]=s("label",{class:"block text-xs text-muted-foreground"},"config_id",-1)),E(s("input",{"onUpdate:modelValue":t[23]||(t[23]=o=>_.value.config_id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[I,_.value.config_id]]),t[64]||(t[64]=s("label",{class:"block text-xs text-muted-foreground"},"host_c_oses",-1)),E(s("input",{"onUpdate:modelValue":t[24]||(t[24]=o=>_.value.host_c_oses=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[I,_.value.host_c_oses]]),t[65]||(t[65]=s("label",{class:"block text-xs text-muted-foreground"},"expires_at",-1)),E(s("input",{"onUpdate:modelValue":t[25]||(t[25]=o=>_.value.expires_at=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"2025-12-23 10:59:21"},null,512),[[I,_.value.expires_at]])]),s("div",{class:"mt-6 flex items-center justify-end gap-2"},[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Be}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Kt}," 保存 ")])])])):x("",!0)])),(r(),Ie($e,{to:"body"},[R.value?(r(),l("div",qo,[s("div",Wo,[s("div",Xo,[t[66]||(t[66]=s("p",{class:"text-sm font-medium text-foreground"},"账户配置(JSON)",-1)),s("div",Zo,[s("button",{class:"rounded-full bg-foreground px-3 py-1 text-xs text-background transition-opacity hover:opacity-90",onClick:Pt},n(D.value?"显示原文":"脱敏显示"),1),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Oe}," 关闭 ")])]),V.value?(r(),l("div",er,n(V.value),1)):x("",!0),s("div",tr,[E(s("textarea",{"onUpdate:modelValue":t[26]||(t[26]=o=>Z.value=o),class:"h-96 w-full rounded-2xl border border-input bg-background px-4 py-3 font-mono text-xs text-foreground",spellcheck:"false",readonly:D.value},null,8,sr),[[I,Z.value]])]),s("div",or,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Oe}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Ft,disabled:D.value}," 保存 ",8,rr)])])])):x("",!0)]))],64))}});export{cr as default}; diff --git a/static/assets/Accounts-JKhKShMC.js b/static/assets/Accounts-JKhKShMC.js new file mode 100644 index 0000000000000000000000000000000000000000..dffea0a46998124211dee0d694b1e1e63566465d --- /dev/null +++ b/static/assets/Accounts-JKhKShMC.js @@ -0,0 +1 @@ +import{g as C,C as zt,h as a,d as Pt,D as Ft,i as N,o as Kt,j as Jt,c as l,a as s,x as U,y as ke,m as V,v as I,A as ft,t as n,n as b,u as S,b as f,f as Ce,F as ie,r as Te,T as Se,w as A,e as r}from"./index-C9KL0lrc.js";import{_ as Ht}from"./SelectMenu.vue_vue_type_script_setup_true_lang-gwg2tONM.js";import{_ as ue}from"./Checkbox.vue_vue_type_script_setup_true_lang-DQLrRLI4.js";import{_ as Gt}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-pFdqEtiD.js";import{u as Yt}from"./useConfirmDialog-DHNXQEiw.js";import{_ as Qt}from"./HelpTip.vue_vue_type_script_setup_true_lang-q6qcDogV.js";const y={list:()=>C.get("/admin/accounts"),getConfig:()=>C.get("/admin/accounts-config"),updateConfig:x=>C.put("/admin/accounts-config",x),delete:x=>C.delete(`/admin/accounts/${x}`),disable:x=>C.put(`/admin/accounts/${x}/disable`),enable:x=>C.put(`/admin/accounts/${x}/enable`),startRegister:(x,_)=>C.post("/admin/register/start",{count:x,domain:_}),getRegisterTask:x=>C.get(`/admin/register/task/${x}`),getRegisterCurrent:()=>C.get("/admin/register/current"),startLogin:x=>C.post("/admin/login/start",x),getLoginTask:x=>C.get(`/admin/login/task/${x}`),getLoginCurrent:()=>C.get("/admin/login/current"),checkLogin:()=>C.post("/admin/login/check")},qt=zt("accounts",()=>{const x=a([]),_=a(!1);async function T(){_.value=!0;try{const u=await y.list();x.value=Array.isArray(u)?u:u.accounts||[]}finally{_.value=!1}}async function X(u){await y.delete(u),await T()}async function k(u){await y.disable(u),await T()}async function Z(u){await y.enable(u),await T()}async function J(u){await Promise.all(u.map(E=>y.enable(E))),await T()}async function g(u){await Promise.all(u.map(E=>y.disable(E))),await T()}async function z(u){await Promise.all(u.map(E=>y.delete(E))),await T()}async function ee(u){await y.updateConfig(u),await T()}return{accounts:x,isLoading:_,loadAccounts:T,deleteAccount:X,disableAccount:k,enableAccount:Z,bulkEnable:J,bulkDisable:g,bulkDelete:z,updateConfig:ee}}),Wt={class:"space-y-8"},Xt={class:"rounded-3xl border border-border bg-card p-6"},Zt={class:"flex flex-wrap items-center justify-between gap-4"},es={class:"grid w-full grid-cols-2 gap-3 sm:flex sm:w-auto sm:items-center"},ts={class:"flex w-full flex-wrap items-center gap-3 text-xs text-muted-foreground sm:w-auto sm:flex-nowrap"},ss={class:"ml-auto flex items-center gap-2 sm:ml-0"},os={class:"mt-4 flex flex-wrap items-center gap-2"},rs=["disabled"],ls=["disabled"],ns={key:0,class:"absolute right-0 z-10 mt-2 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg"},as=["disabled"],is=["disabled"],us=["disabled"],ds=["disabled"],cs=["disabled"],vs={key:0,class:"mt-6 grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3"},fs=["onClick"],xs={class:"flex items-start justify-between gap-3"},gs={class:"mt-1 font-mono text-xs text-foreground"},ms={class:"flex items-center gap-2"},ps={class:"mt-4 grid grid-cols-2 gap-3 text-xs text-muted-foreground"},bs={key:0,class:"mt-1 text-[11px]"},ys={key:0},_s={key:1},ws={class:"mt-1 text-sm font-semibold text-foreground"},hs={class:"mt-1 text-sm font-semibold text-foreground"},ks={class:"mt-4 flex flex-wrap items-center gap-2"},Cs=["onClick"],Ts=["onClick"],Ss=["onClick"],As=["onClick"],Es={key:0,class:"rounded-2xl border border-border bg-background p-4 text-center text-xs text-muted-foreground"},Ls={key:1,class:"relative mt-6 overflow-x-auto overflow-y-visible"},$s={class:"min-w-full text-left text-sm"},Rs={class:"text-xs uppercase tracking-[0.2em] text-muted-foreground"},Vs={class:"py-3 pr-4"},Is={class:"py-3 pr-6"},js={class:"inline-flex items-center gap-2"},Ds={class:"text-sm text-foreground"},Ms={key:0},Os=["onClick"],Bs={class:"py-4 pr-6 font-mono text-xs text-foreground"},Ns={class:"py-4 pr-6"},Us={class:"py-4 pr-6"},zs={key:0,class:"block text-[11px] text-muted-foreground"},Ps={class:"py-4 pr-6 text-xs"},Fs={class:"py-4 pr-6 text-xs text-muted-foreground"},Ks={class:"py-4 pr-6 text-xs text-muted-foreground"},Js={class:"py-4 text-right"},Hs={class:"flex flex-wrap justify-end gap-2"},Gs=["onClick"],Ys=["onClick"],Qs=["onClick"],qs=["onClick"],Ws={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Xs={class:"w-full max-w-md rounded-3xl border border-border bg-card p-6 shadow-xl"},Zs={class:"mt-4 space-y-4 text-sm"},eo={class:"mt-6 flex items-center justify-end gap-2"},to=["disabled"],so={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},oo={class:"w-full max-w-2xl max-h-[80vh] overflow-y-auto rounded-3xl border border-border bg-card p-6 shadow-xl"},ro={class:"flex items-center justify-between"},lo={class:"flex items-center gap-2"},no=["disabled"],ao={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-3 py-2 text-xs text-destructive"},io={key:1,class:"mt-4 grid gap-2 text-xs text-muted-foreground"},uo={key:0},co={class:"ml-2"},vo={class:"ml-2"},fo={class:"ml-2"},xo={class:"ml-2"},go={key:1},mo={class:"ml-2"},po={class:"ml-2"},bo={class:"ml-2"},yo={class:"ml-2"},_o={key:2,class:"mt-4 grid gap-2"},wo={key:0,class:"rounded-2xl border border-border bg-muted/30 p-3"},ho={class:"mt-2 space-y-1 text-[11px] text-muted-foreground"},ko={key:1,class:"rounded-2xl border border-border bg-muted/30 p-3"},Co={class:"mt-2 space-y-1 text-[11px] text-muted-foreground"},To={key:3,class:"mt-4 rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},So={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Ao={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},Eo={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Lo={class:"mt-4 space-y-3 text-sm"},$o={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Ro={class:"w-full max-w-3xl rounded-3xl border border-border bg-card p-6 shadow-xl"},Vo={class:"flex items-center justify-between"},Io={class:"flex items-center gap-2"},jo={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Do={class:"mt-4"},Mo=["readonly"],Oo={class:"mt-6 flex items-center justify-end gap-2"},Bo=["disabled"],De="accounts-register-task-cache",Me="accounts-login-task-cache",Oe="accounts-register-log-clear",Be="accounts-login-log-clear",Ne="accounts-register-task-cleared-id",Ue="accounts-login-task-cleared-id",Jo=Pt({__name:"Accounts",setup(x){const _=qt(),{accounts:T,isLoading:X}=Ft(_),k=Yt(),Z=a(""),J=a("all"),g=a(new Set),z=a("table"),ee=a(!1),u=a(""),E=a(!1),L=a(""),H=a(""),j=a(!1),te=a([]),se=a(1),de=a(!1),oe=a(!1),D=a(!1),Ae=a(null),ce=a(null),ve=a(null),M=a(null),O=a(null),G=a(0),Y=a(0),fe=a(!1),d=a(null),c=a(null),$=a(!1),h=a(!1),m=a(""),p=a({id:"",secure_c_ses:"",csesidx:"",config_id:"",host_c_oses:"",expires_at:""}),xe=a(null),ze=a([]),xt=[{label:"全部状态",value:"all"},{label:"正常",value:"正常"},{label:"即将过期",value:"即将过期"},{label:"已过期",value:"已过期"},{label:"手动禁用",value:"手动禁用"},{label:"错误禁用",value:"错误禁用"},{label:"429限流",value:"429限流"}],B=N(()=>{const e=Z.value.trim().toLowerCase();return T.value.filter(t=>{const o=!e||t.id.toLowerCase().includes(e),i=J.value==="all"||re(t)===J.value;return o&&i})}),R=N(()=>g.value.size),Ee=N(()=>B.value.length>0&&B.value.every(e=>g.value.has(e.id))),ge=async()=>{await _.loadAccounts(),g.value=new Set,D.value=!1},Pe=e=>{try{const t=localStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}},Fe=e=>{try{return localStorage.getItem(e)||null}catch{return null}},me=(e,t)=>{try{if(t){localStorage.setItem(e,t);return}localStorage.removeItem(e)}catch{}},Ke=(e,t)=>{try{localStorage.setItem(e,JSON.stringify(t))}catch{}},Je=e=>{try{localStorage.removeItem(e)}catch{}},He=e=>{const t=localStorage.getItem(e),o=Number(t);return Number.isFinite(o)?o:0},pe=(e,t)=>{try{localStorage.setItem(e,String(t))}catch{}},Le=(e,t=!0)=>{e&&(e.id&&e.id===M.value||(e.id&&M.value&&e.id!==M.value&&(M.value=null,me(Ne,null)),d.value=e,e.id&&e.id!==ce.value&&(ce.value=e.id,G.value=0,pe(Oe,0)),t&&Ke(De,e)))},be=(e,t=!0)=>{e&&(e.id&&e.id===O.value||(e.id&&O.value&&e.id!==O.value&&(O.value=null,me(Ue,null)),c.value=e,e.id&&e.id!==ve.value&&(ve.value=e.id,Y.value=0,pe(Be,0)),t&&Ke(Me,e)))},gt=()=>{G.value=He(Oe),Y.value=He(Be),M.value=Fe(Ne),O.value=Fe(Ue);const e=Pe(De);e&&e.id!==M.value&&(d.value=e,ce.value=e.id||null);const t=Pe(Me);t&&t.id!==O.value&&(c.value=t,ve.value=t.id||null)},mt=()=>{de.value=!0,fe.value=!1},Ge=()=>{de.value=!1},pt=async()=>{try{const e=[],t=d.value?.id,o=c.value?.id;if(t&&!ye(t)&&e.push(dt(t)),o&&!_e(o)&&e.push(ct(o)),!e.length){await je();return}await Promise.all(e)}catch(e){m.value=e?.message||"任务状态更新失败"}},bt=async()=>{oe.value=!0,await pt()},yt=()=>{oe.value=!1},_t=()=>{const e=d.value?.id||null,t=c.value?.id||null;M.value=e,O.value=t,me(Ne,e),me(Ue,t),G.value=d.value?.logs?.length||0,Y.value=c.value?.logs?.length||0,pe(Oe,G.value),pe(Be,Y.value),d.value=null,c.value=null,ce.value=null,ve.value=null,m.value="",$.value=!1,h.value=!1,P(),F(),Je(De),Je(Me)},ye=e=>!!(e&&e===M.value),_e=e=>!!(e&&e===O.value),wt=()=>{D.value=!D.value},Q=()=>{D.value=!1},Ye=e=>{if(!D.value)return;const t=e.target;Ae.value&&!Ae.value.contains(t)&&(D.value=!1)};Kt(async()=>{gt(),await ge(),await je(),Ot(),document.addEventListener("click",Ye)});const q=N(()=>{const e=d.value?.logs||[];return G.value?e.slice(G.value):e}),W=N(()=>{const e=c.value?.logs||[];return Y.value?e.slice(Y.value):e}),ht=N(()=>!!m.value||!!d.value||!!c.value||q.value.length>0||W.value.length>0),kt=N(()=>{const e=d.value?.status,t=c.value?.status;return e==="running"||e==="pending"||t==="running"||t==="pending"}),Ct=N(()=>{if(m.value)return"bg-rose-500";if(kt.value)return"bg-sky-400";const e=[];if(d.value){const v=d.value.success_count??0,w=d.value.fail_count??0,K=d.value.count??v+w;e.push({success:v,fail:w,total:K,status:d.value.status})}if(c.value){const v=c.value.success_count??0,w=c.value.fail_count??0,K=c.value.account_ids?.length??v+w;e.push({success:v,fail:w,total:K,status:c.value.status})}if(!e.length)return"bg-muted-foreground";const t=e.reduce((v,w)=>v+w.success,0),o=e.reduce((v,w)=>v+w.fail,0),i=e.reduce((v,w)=>v+(w.total||0),0);if(t>0&&o>0)return"bg-amber-400";if(o>0&&t===0)return"bg-rose-500";if(t>0&&o===0)return"bg-emerald-400";if(i===0){const v=e.every(K=>K.status==="success");if(e.some(K=>K.status==="failed"))return"bg-rose-500";if(v)return"bg-emerald-400"}return"bg-muted-foreground"});Jt(()=>{P(),F(),Mt(),document.removeEventListener("click",Ye)});const re=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?"429限流":e.cooldown_reason==="错误禁用"?"错误禁用":e.disabled?"手动禁用":e.status==="已过期"?"已过期":e.status==="即将过期"?"即将过期":"正常",Qe=e=>{const t=re(e);return t==="429限流"||t==="即将过期"?"bg-amber-200 text-amber-900":t==="错误禁用"||t==="已过期"?"bg-destructive/10 text-destructive":t==="手动禁用"?"bg-muted text-muted-foreground":"bg-emerald-500 text-white"},qe=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?!0:e.disabled||e.cooldown_reason==="错误禁用",We=e=>e==="已过期"?"过期":e==="未设置"?"未设置":e,Xe=e=>e.status==="已过期"?"text-rose-600":e.status==="即将过期"?"text-amber-700":e.status==="未设置"?"text-muted-foreground":"text-emerald-600",Ze=e=>e<60?`${e} 秒`:e<3600?`${Math.ceil(e/60)} 分钟`:`${(e/3600).toFixed(1)} 小时`,$e=e=>e.cooldown_seconds>0?"text-amber-700":e.cooldown_reason==="错误禁用"?"text-rose-600":"text-muted-foreground",et=e=>{const t=re(e);return t==="手动禁用"||t==="已过期"?"bg-muted/70":""},we=e=>{const t=new Set(g.value);t.has(e)?t.delete(e):t.add(e),g.value=t},tt=()=>{if(Ee.value){g.value=new Set;return}g.value=new Set(B.value.map(e=>e.id))},Tt=(e,t)=>e.id||`account_${t+1}`,St=async()=>(await y.getConfig()).accounts.map((t,o)=>({...t,id:Tt(t,o)})),st=e=>`${e.time} [${e.level}] ${e.message}`,At=(e,t)=>{let o=-1;for(let v=0;v{u.value="";try{const t=await St();At(t,e)}catch(t){u.value=t.message||"加载账号配置失败"}},Et=async()=>{L.value="";try{const e=await y.getConfig();te.value=Array.isArray(e.accounts)?e.accounts:[],H.value=JSON.stringify(lt(te.value),null,2),j.value=!0,E.value=!0}catch(e){L.value=e.message||"加载账号配置失败"}},Re=()=>{E.value=!1,L.value="",j.value=!1},rt=()=>{const e=JSON.parse(H.value);if(!Array.isArray(e))throw new Error("配置格式必须是数组。");return e},Lt=e=>typeof e!="string"||!e?e:e.length<=6?`${e.slice(0,2)}****`:`${e.slice(0,3)}****`,lt=e=>{const t=new Set(["secure_c_ses","csesidx","config_id","host_c_oses","mail_password"]);return e.map(o=>{const i={...o};return t.forEach(v=>{const w=i[v];w&&(i[v]=Lt(w))}),i})},$t=()=>{if(L.value="",!j.value){try{te.value=rt()}catch(e){L.value=e.message||"JSON 格式错误";return}H.value=JSON.stringify(lt(te.value),null,2),j.value=!0;return}H.value=JSON.stringify(te.value,null,2),j.value=!1},Rt=async()=>{L.value="";try{const e=rt();await _.updateConfig(e),Re()}catch(e){L.value=e.message||"保存失败"}},Ve=()=>{ee.value=!1,u.value=""},Vt=async()=>{if(xe.value===null)return;const e=[...ze.value];e[xe.value]={...e[xe.value],id:p.value.id,secure_c_ses:p.value.secure_c_ses,csesidx:p.value.csesidx,config_id:p.value.config_id,host_c_oses:p.value.host_c_oses||void 0,expires_at:p.value.expires_at||void 0};try{await _.updateConfig(e),Ve()}catch(t){u.value=t.message||"保存失败"}},It=async()=>{await _.bulkEnable(Array.from(g.value)),g.value=new Set},jt=async()=>{await k.ask({title:"批量禁用",message:"确定要批量禁用选中的账号吗?"})&&(await _.bulkDisable(Array.from(g.value)),g.value=new Set)},Dt=async()=>{await k.ask({title:"批量删除",message:"确定要批量删除选中的账号吗?",confirmText:"删除"})&&(await _.bulkDelete(Array.from(g.value)),g.value=new Set)},nt=async e=>{await _.enableAccount(e)},at=async e=>{await k.ask({title:"禁用账号",message:"确定要禁用该账号吗?"})&&await _.disableAccount(e)},it=async e=>{await k.ask({title:"删除账号",message:"确定要删除该账号吗?",confirmText:"删除"})&&await _.deleteAccount(e)};let le=null,ne=null,ae=null,he=!1;const P=()=>{le!==null&&(window.clearInterval(le),le=null)},F=()=>{ne!==null&&(window.clearInterval(ne),ne=null)},Mt=()=>{ae!==null&&(window.clearInterval(ae),ae=null),he=!1},ut=e=>e==="pending"?"等待中":e==="running"?"执行中":e==="success"?"成功":e==="failed"?"失败":e,dt=async e=>{if(ye(e)){P();return}const t=await y.getRegisterTask(e);if(ye(t.id)){P();return}Le(t),t.status!=="running"&&t.status!=="pending"&&($.value=!1,P(),await ge())},ct=async e=>{if(_e(e)){F();return}const t=await y.getLoginTask(e);if(_e(t.id)){F();return}be(t),t.status!=="running"&&t.status!=="pending"&&(h.value=!1,F(),await ge())},vt=e=>{P(),le=window.setInterval(()=>{dt(e).catch(t=>{m.value=t?.message||"注册任务更新失败",P(),$.value=!1})},3e3)},Ie=e=>{F(),ne=window.setInterval(()=>{ct(e).catch(t=>{m.value=t?.message||"刷新任务更新失败",F(),h.value=!1})},3e3)},Ot=()=>{ae===null&&(ae=window.setInterval(async()=>{if(!he&&!oe.value&&!(le!==null||ne!==null)&&!(!$.value&&!h.value&&!d.value&&!c.value)){he=!0;try{await je()}catch(e){m.value=e?.message||"后台刷新失败"}finally{he=!1}}},6e3))},je=async()=>{try{const e=await y.getRegisterCurrent();e&&"id"in e&&!ye(e.id)&&(Le(e),(e.status==="running"||e.status==="pending")&&($.value=!0,vt(e.id)))}catch(e){m.value=e.message||"加载注册任务失败"}try{const e=await y.getLoginCurrent();e&&"id"in e&&!_e(e.id)&&(be(e),(e.status==="running"||e.status==="pending")&&(h.value=!0,Ie(e.id)))}catch(e){m.value=e.message||"加载刷新任务失败"}},Bt=async()=>{m.value="",$.value=!0;try{const e=Number.isFinite(se.value)&&se.value>0?se.value:void 0,t=await y.startRegister(e);Le(t),vt(t.id),de.value=!1,oe.value=!0}catch(e){m.value=e.message||"启动注册失败",$.value=!1}},Nt=async()=>{if(g.value.size){m.value="",h.value=!0;try{const e=await y.startLogin(Array.from(g.value));be(e),Ie(e.id)}catch(e){m.value=e.message||"启动刷新失败",h.value=!1}}},Ut=async()=>{m.value="",h.value=!0;try{await y.checkLogin();const e=await y.getLoginCurrent();if(e&&"id"in e){be(e),Ie(e.id);return}h.value=!1}catch(e){m.value=e.message||"触发刷新失败",h.value=!1}};return(e,t)=>(r(),l(ie,null,[s("div",Wt,[s("section",Xt,[s("div",Zt,[s("div",es,[V(s("input",{"onUpdate:modelValue":t[0]||(t[0]=o=>Z.value=o),type:"text",placeholder:"搜索账号 ID",class:"w-full rounded-full border border-input bg-background px-4 py-2 text-sm sm:w-48"},null,512),[[I,Z.value]]),U(Ht,{modelValue:J.value,"onUpdate:modelValue":t[1]||(t[1]=o=>J.value=o),options:xt},null,8,["modelValue"])]),s("div",ts,[U(ue,{modelValue:Ee.value,"onUpdate:modelValue":tt},{default:ft(()=>[...t[24]||(t[24]=[Ce(" 全选 ",-1)])]),_:1},8,["modelValue"]),s("span",null,"已选 "+n(R.value)+" / "+n(B.value.length)+" 个账号",1),s("div",ss,[s("button",{type:"button",class:b(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",z.value==="table"?"bg-accent text-accent-foreground":""]),onClick:t[2]||(t[2]=o=>z.value="table"),"aria-label":"列表视图"},[...t[25]||(t[25]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])],2),s("button",{type:"button",class:b(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",z.value==="card"?"bg-accent text-accent-foreground":""]),onClick:t[3]||(t[3]=o=>z.value="card"),"aria-label":"卡片视图"},[...t[26]||(t[26]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h7v6H4V6zm9 0h7v6h-7V6zM4 14h7v4H4v-4zm9 0h7v4h-7v-4z"})],-1)])],2)])])]),s("div",os,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:S(X),onClick:ge}," 刷新列表 ",8,rs),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:Et}," 账户配置 "),s("button",{class:"rounded-full border border-border bg-background px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:$.value,onClick:mt}," 添加账户 ",8,ls),s("div",{ref_key:"moreActionsRef",ref:Ae,class:"relative"},[s("button",{class:b(["flex items-center gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary",D.value?"bg-accent text-accent-foreground":""]),onClick:wt},[t[27]||(t[27]=Ce(" 更多操作 ",-1)),t[28]||(t[28]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1)),ht.value?(r(),l("span",{key:0,class:b(["ml-1 h-2 w-2 rounded-full",Ct.value]),"aria-hidden":"true"},null,2)):f("",!0)],2),D.value?(r(),l("div",ns,[s("button",{type:"button",class:"flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm text-foreground transition-colors hover:bg-accent",onClick:t[4]||(t[4]=o=>{bt(),Q()})}," 任务状态 "),t[29]||(t[29]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:b(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",h.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:h.value,onClick:t[5]||(t[5]=o=>{Ut(),Q()})}," 刷新过期 ",10,as),s("button",{type:"button",class:b(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",!R.value||h.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:!R.value||h.value,onClick:t[6]||(t[6]=o=>{Nt(),Q()})}," 刷新选中 ",10,is),t[30]||(t[30]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:b(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",R.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!R.value,onClick:t[7]||(t[7]=o=>{It(),Q()})}," 批量启用 ",10,us),s("button",{type:"button",class:b(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",R.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!R.value,onClick:t[8]||(t[8]=o=>{jt(),Q()})}," 批量禁用 ",10,ds),s("button",{type:"button",class:b(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",R.value?"text-destructive hover:bg-destructive/10":"cursor-not-allowed text-muted-foreground"]),disabled:!R.value,onClick:t[9]||(t[9]=o=>{Dt(),Q()})}," 批量删除 ",10,cs)])):f("",!0)],512)]),z.value==="card"?(r(),l("div",vs,[(r(!0),l(ie,null,Te(B.value,o=>(r(),l("div",{key:o.id,class:b(["rounded-2xl border border-border bg-card p-4",et(o)]),onClick:i=>we(o.id)},[s("div",xs,[s("div",null,[t[31]||(t[31]=s("p",{class:"text-xs text-muted-foreground"},"账号 ID",-1)),s("p",gs,n(o.id),1)]),s("div",ms,[U(ue,{modelValue:g.value.has(o.id),"onUpdate:modelValue":i=>we(o.id),onClick:t[10]||(t[10]=A(()=>{},["stop"]))},null,8,["modelValue","onUpdate:modelValue"]),s("span",{class:b(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",Qe(o)])},n(re(o)),3)])]),s("div",ps,[s("div",null,[t[32]||(t[32]=s("p",null,"剩余时间",-1)),s("p",{class:b(["mt-1 text-sm font-semibold",Xe(o)])},n(We(o.remaining_display)),3),o.expires_at?(r(),l("p",bs,n(o.expires_at),1)):f("",!0)]),s("div",null,[t[33]||(t[33]=s("p",null,"冷却",-1)),s("p",{class:b(["mt-1",$e(o)])},[o.cooldown_seconds>0?(r(),l("span",ys,n(Ze(o.cooldown_seconds))+" · "+n(o.cooldown_reason),1)):(r(),l("span",_s,n(o.cooldown_reason||"无冷却"),1))],2)]),s("div",null,[t[34]||(t[34]=s("p",null,"失败数",-1)),s("p",ws,n(o.error_count),1)]),s("div",null,[t[35]||(t[35]=s("p",null,"会话数",-1)),s("p",hs,n(o.conversation_count),1)])]),s("div",ks,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A(i=>ot(o.id),["stop"])}," 编辑 ",8,Cs),qe(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[11]||(t[11]=A(()=>{},["stop"])),i=>nt(o.id)]}," 启用 ",8,Ts)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[12]||(t[12]=A(()=>{},["stop"])),i=>at(o.id)]}," 禁用 ",8,Ss)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:[t[13]||(t[13]=A(()=>{},["stop"])),i=>it(o.id)]}," 删除 ",8,As)])],10,fs))),128)),!B.value.length&&!S(X)?(r(),l("div",Es," 暂无账号数据,请检查后台配置。 ")):f("",!0)])):(r(),l("div",Ls,[s("table",$s,[s("thead",Rs,[s("tr",null,[s("th",Vs,[U(ue,{modelValue:Ee.value,"onUpdate:modelValue":tt},null,8,["modelValue"])]),t[37]||(t[37]=s("th",{class:"py-3 pr-6"},"账号 ID",-1)),t[38]||(t[38]=s("th",{class:"py-3 pr-6"},"状态",-1)),s("th",Is,[s("span",js,[t[36]||(t[36]=Ce(" 剩余/过期 ",-1)),U(Qt,{text:"过期时间为 12 小时,账户过期以北京时间为准。"})])]),t[39]||(t[39]=s("th",{class:"py-3 pr-6"},"冷却",-1)),t[40]||(t[40]=s("th",{class:"py-3 pr-6"},"失败数",-1)),t[41]||(t[41]=s("th",{class:"py-3 pr-6"},"会话数",-1)),t[42]||(t[42]=s("th",{class:"py-3 text-right"},"操作",-1))])]),s("tbody",Ds,[!B.value.length&&!S(X)?(r(),l("tr",Ms,[...t[43]||(t[43]=[s("td",{colspan:"8",class:"py-8 text-center text-muted-foreground"}," 暂无账号数据,请检查后台配置。 ",-1)])])):f("",!0),(r(!0),l(ie,null,Te(B.value,o=>(r(),l("tr",{key:o.id,class:b(["border-t border-border",et(o)]),onClick:i=>we(o.id)},[s("td",{class:"py-4 pr-4",onClick:t[14]||(t[14]=A(()=>{},["stop"]))},[U(ue,{modelValue:g.value.has(o.id),"onUpdate:modelValue":i=>we(o.id)},null,8,["modelValue","onUpdate:modelValue"])]),s("td",Bs,n(o.id),1),s("td",Ns,[s("span",{class:b(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",Qe(o)])},n(re(o)),3)]),s("td",Us,[s("div",{class:b(["text-sm font-semibold",Xe(o)])},n(We(o.remaining_display)),3),o.expires_at?(r(),l("span",zs,n(o.expires_at),1)):f("",!0)]),s("td",Ps,[o.cooldown_seconds>0?(r(),l("span",{key:0,class:b($e(o))},n(Ze(o.cooldown_seconds))+" · "+n(o.cooldown_reason),3)):(r(),l("span",{key:1,class:b($e(o))},n(o.cooldown_reason||"无冷却"),3))]),s("td",Fs,n(o.error_count),1),s("td",Ks,n(o.conversation_count),1),s("td",Js,[s("div",Hs,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A(i=>ot(o.id),["stop"])}," 编辑 ",8,Gs),qe(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A(i=>nt(o.id),["stop"])}," 启用 ",8,Ys)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A(i=>at(o.id),["stop"])}," 禁用 ",8,Qs)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:A(i=>it(o.id),["stop"])}," 删除 ",8,qs)])])],10,Os))),128))])])]))])]),U(Gt,{open:S(k).open.value,title:S(k).title.value,message:S(k).message.value,"confirm-text":S(k).confirmText.value,"cancel-text":S(k).cancelText.value,onConfirm:S(k).confirm,onCancel:S(k).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(r(),ke(Se,{to:"body"},[de.value?(r(),l("div",Ws,[s("div",Xs,[s("div",{class:"flex items-center justify-between"},[t[44]||(t[44]=s("div",null,[s("p",{class:"text-sm font-medium text-foreground"},"添加账户"),s("p",{class:"mt-1 text-xs text-muted-foreground"},"创建 DuckMail 账号并自动注册")],-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Ge}," 关闭 ")]),s("div",Zs,[t[46]||(t[46]=s("label",{class:"block text-xs text-muted-foreground"},"注册数量",-1)),V(s("input",{"onUpdate:modelValue":t[15]||(t[15]=o=>se.value=o),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[I,se.value,void 0,{number:!0}]]),t[47]||(t[47]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"}," 默认域名来自设置面板(可在“配置面板”中修改) ",-1)),t[48]||(t[48]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-[11px] leading-relaxed text-muted-foreground"},[s("div",{class:"space-y-2"},[s("p",{class:"font-semibold text-rose-600"},"使用限制:禁止将本工具用于商业用途或大规模滥用。"),s("p",null,"用途说明:本项目仅用于学习、研究和技术交流,旨在探索浏览器自动化与系统集成。"),s("p",null,"使用责任:因使用本工具产生的一切后果由使用者自行承担,包括但不限于账号封禁、数据损失及法律责任。"),s("p",null,"合规要求:使用者应遵守所在国家/地区法律法规及 Google 服务条款,作者不对任何违规使用行为负责。"),s("p",null,"无担保:本项目按“现状”提供,不提供任何明示或暗示的担保,包括适销性或特定用途适用性。"),s("p",null,"第三方服务:本项目依赖 DuckMail API 等第三方服务,其可用性与稳定性不受作者控制。"),s("p",null,"维护声明:作者保留随时停止维护或变更功能的权利,恕不另行通知。")])],-1)),U(ue,{modelValue:fe.value,"onUpdate:modelValue":t[16]||(t[16]=o=>fe.value=o)},{default:ft(()=>[...t[45]||(t[45]=[Ce(" 我已阅读并同意上述说明与限制 ",-1)])]),_:1},8,["modelValue"])]),s("div",eo,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Ge}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:$.value||!fe.value,onClick:Bt}," 开始注册 ",8,to)])])])):f("",!0)])),(r(),ke(Se,{to:"body"},[oe.value?(r(),l("div",so,[s("div",oo,[s("div",ro,[t[49]||(t[49]=s("div",null,[s("p",{class:"text-sm font-medium text-foreground"},"任务状态"),s("p",{class:"mt-1 text-xs text-muted-foreground"},"注册与刷新任务的状态与日志")],-1)),s("div",lo,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-muted-foreground transition-colors hover:border-primary hover:text-primary",disabled:!q.value.length&&!W.value.length&&!d.value&&!c.value&&!m.value,onClick:_t}," 清空日志 ",8,no),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:yt}," 关闭 ")])]),m.value?(r(),l("div",ao,n(m.value),1)):f("",!0),d.value||c.value?(r(),l("div",io,[d.value?(r(),l("div",uo,[t[50]||(t[50]=s("span",{class:"font-medium text-foreground"},"注册任务",-1)),s("span",co,"状态:"+n(ut(d.value.status)),1),s("span",vo,"进度:"+n(d.value.progress)+"/"+n(d.value.count),1),s("span",fo,"成功:"+n(d.value.success_count),1),s("span",xo,"失败:"+n(d.value.fail_count),1)])):f("",!0),c.value?(r(),l("div",go,[t[51]||(t[51]=s("span",{class:"font-medium text-foreground"},"刷新任务",-1)),s("span",mo,"状态:"+n(ut(c.value.status)),1),s("span",po,"进度:"+n(c.value.progress)+"/"+n(c.value.account_ids.length),1),s("span",bo,"成功:"+n(c.value.success_count),1),s("span",yo,"失败:"+n(c.value.fail_count),1)])):f("",!0)])):f("",!0),q.value.length||W.value.length?(r(),l("div",_o,[q.value.length?(r(),l("div",wo,[t[52]||(t[52]=s("p",{class:"text-xs font-semibold text-foreground"},"注册日志",-1)),s("div",ho,[(r(!0),l(ie,null,Te(q.value,(o,i)=>(r(),l("div",{key:`reg-${i}`,class:"font-mono"},n(st(o)),1))),128))])])):f("",!0),W.value.length?(r(),l("div",ko,[t[53]||(t[53]=s("p",{class:"text-xs font-semibold text-foreground"},"刷新日志",-1)),s("div",Co,[(r(!0),l(ie,null,Te(W.value,(o,i)=>(r(),l("div",{key:`login-${i}`,class:"font-mono"},n(st(o)),1))),128))])])):f("",!0)])):f("",!0),!m.value&&!d.value&&!c.value&&!q.value.length&&!W.value.length?(r(),l("div",To," 暂无任务 ")):f("",!0)])])):f("",!0)])),(r(),ke(Se,{to:"body"},[ee.value?(r(),l("div",So,[s("div",Ao,[s("div",{class:"flex items-center justify-between"},[t[54]||(t[54]=s("p",{class:"text-sm font-medium text-foreground"},"编辑账号",-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Ve}," 关闭 ")]),u.value?(r(),l("div",Eo,n(u.value),1)):f("",!0),s("div",Lo,[t[55]||(t[55]=s("label",{class:"block text-xs text-muted-foreground"},"账号 ID",-1)),V(s("input",{"onUpdate:modelValue":t[17]||(t[17]=o=>p.value.id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",disabled:""},null,512),[[I,p.value.id]]),t[56]||(t[56]=s("label",{class:"block text-xs text-muted-foreground"},"secure_c_ses",-1)),V(s("textarea",{"onUpdate:modelValue":t[18]||(t[18]=o=>p.value.secure_c_ses=o),class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",rows:"3"},null,512),[[I,p.value.secure_c_ses]]),t[57]||(t[57]=s("label",{class:"block text-xs text-muted-foreground"},"csesidx",-1)),V(s("input",{"onUpdate:modelValue":t[19]||(t[19]=o=>p.value.csesidx=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[I,p.value.csesidx]]),t[58]||(t[58]=s("label",{class:"block text-xs text-muted-foreground"},"config_id",-1)),V(s("input",{"onUpdate:modelValue":t[20]||(t[20]=o=>p.value.config_id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[I,p.value.config_id]]),t[59]||(t[59]=s("label",{class:"block text-xs text-muted-foreground"},"host_c_oses",-1)),V(s("input",{"onUpdate:modelValue":t[21]||(t[21]=o=>p.value.host_c_oses=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[I,p.value.host_c_oses]]),t[60]||(t[60]=s("label",{class:"block text-xs text-muted-foreground"},"expires_at",-1)),V(s("input",{"onUpdate:modelValue":t[22]||(t[22]=o=>p.value.expires_at=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"2025-12-23 10:59:21"},null,512),[[I,p.value.expires_at]])]),s("div",{class:"mt-6 flex items-center justify-end gap-2"},[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Ve}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Vt}," 保存 ")])])])):f("",!0)])),(r(),ke(Se,{to:"body"},[E.value?(r(),l("div",$o,[s("div",Ro,[s("div",Vo,[t[61]||(t[61]=s("p",{class:"text-sm font-medium text-foreground"},"账户配置(JSON)",-1)),s("div",Io,[s("button",{class:"rounded-full bg-foreground px-3 py-1 text-xs text-background transition-opacity hover:opacity-90",onClick:$t},n(j.value?"显示原文":"脱敏显示"),1),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Re}," 关闭 ")])]),L.value?(r(),l("div",jo,n(L.value),1)):f("",!0),s("div",Do,[V(s("textarea",{"onUpdate:modelValue":t[23]||(t[23]=o=>H.value=o),class:"h-96 w-full rounded-2xl border border-input bg-background px-4 py-3 font-mono text-xs text-foreground",spellcheck:"false",readonly:j.value},null,8,Mo),[[I,H.value]])]),s("div",Oo,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Re}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Rt,disabled:j.value}," 保存 ",8,Bo)])])])):f("",!0)]))],64))}});export{Jo as default}; diff --git a/static/assets/Accounts-YFw0nAMh.js b/static/assets/Accounts-YFw0nAMh.js new file mode 100644 index 0000000000000000000000000000000000000000..db5460b26979088dda5a8f0b0402b3c45f9186ab --- /dev/null +++ b/static/assets/Accounts-YFw0nAMh.js @@ -0,0 +1 @@ +import{g as b,C as Ke,h as d,d as We,D as Xe,i as H,o as Ye,j as Ze,c as l,a as s,x as R,y as Se,m as C,v as V,b as v,A as et,t as n,n as h,u as $,F as Q,r as ee,f as Te,T as Le,w as A,e as r}from"./index-Bh_hLcqi.js";import{_ as tt}from"./SelectMenu.vue_vue_type_script_setup_true_lang-8KWxq5-G.js";import{_ as te}from"./Checkbox.vue_vue_type_script_setup_true_lang-DsgZPRUK.js";import{_ as st}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-B-fGXmXJ.js";import{u as ot}from"./useConfirmDialog-CSNT_h0m.js";import{_ as rt}from"./HelpTip.vue_vue_type_script_setup_true_lang-Be-NxYdK.js";const x={list:()=>b.get("/admin/accounts"),getConfig:()=>b.get("/admin/accounts-config"),updateConfig:u=>b.put("/admin/accounts-config",u),delete:u=>b.delete(`/admin/accounts/${u}`),disable:u=>b.put(`/admin/accounts/${u}/disable`),enable:u=>b.put(`/admin/accounts/${u}/enable`),startRegister:(u,m)=>b.post("/admin/register/start",{count:u,domain:m}),getRegisterTask:u=>b.get(`/admin/register/task/${u}`),getRegisterCurrent:()=>b.get("/admin/register/current"),startLogin:u=>b.post("/admin/login/start",u),getLoginTask:u=>b.get(`/admin/login/task/${u}`),getLoginCurrent:()=>b.get("/admin/login/current"),checkLogin:()=>b.post("/admin/login/check")},nt=Ke("accounts",()=>{const u=d([]),m=d(!1);async function w(){m.value=!0;try{const i=await x.list();u.value=Array.isArray(i)?i:i.accounts||[]}finally{m.value=!1}}async function I(i){await x.delete(i),await w()}async function g(i){await x.disable(i),await w()}async function M(i){await x.enable(i),await w()}async function j(i){await Promise.all(i.map(S=>x.enable(S))),await w()}async function c(i){await Promise.all(i.map(S=>x.disable(S))),await w()}async function E(i){await Promise.all(i.map(S=>x.delete(S))),await w()}async function O(i){await x.updateConfig(i),await w()}return{accounts:u,isLoading:m,loadAccounts:w,deleteAccount:I,disableAccount:g,enableAccount:M,bulkEnable:j,bulkDisable:c,bulkDelete:E,updateConfig:O}}),lt={class:"space-y-8"},at={class:"rounded-3xl border border-border bg-card p-6"},it={class:"flex flex-wrap items-center justify-between gap-4"},dt={class:"grid w-full grid-cols-2 gap-3 sm:flex sm:w-auto sm:items-center"},ut={class:"flex w-full flex-wrap items-center gap-3 text-xs text-muted-foreground sm:w-auto sm:flex-nowrap"},ct={key:0},pt={class:"ml-auto flex items-center gap-2 sm:ml-0"},xt={class:"mt-4 flex flex-wrap items-center gap-3"},mt=["disabled"],vt=["disabled"],ft=["disabled"],gt=["disabled"],bt={class:"mt-4 rounded-2xl border border-border bg-background p-4"},yt={class:"flex flex-wrap items-center gap-3"},_t={class:"flex flex-wrap items-center gap-2 text-xs text-muted-foreground"},ht=["disabled"],wt=["disabled"],kt=["disabled"],Ct={key:0,class:"mt-3 rounded-2xl bg-destructive/10 px-3 py-2 text-xs text-destructive"},Vt={key:1,class:"mt-3 grid gap-2 text-xs text-muted-foreground"},$t={key:0},At={class:"ml-2"},St={class:"ml-2"},Tt={class:"ml-2"},Lt={class:"ml-2"},Dt={key:1},Et={class:"ml-2"},Ut={class:"ml-2"},Rt={class:"ml-2"},jt={class:"ml-2"},zt={key:2,class:"mt-3 grid gap-2"},Nt={key:0,class:"rounded-2xl border border-border bg-muted/30 p-3"},Bt={class:"mt-2 space-y-1 text-[11px] text-muted-foreground"},It={key:1,class:"rounded-2xl border border-border bg-muted/30 p-3"},Mt={class:"mt-2 space-y-1 text-[11px] text-muted-foreground"},Ot={key:0,class:"mt-6 grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3"},Pt=["onClick"],Ft={class:"flex items-start justify-between gap-3"},Jt={class:"mt-1 font-mono text-xs text-foreground"},Ht={class:"flex items-center gap-2"},Qt={class:"mt-4 grid grid-cols-2 gap-3 text-xs text-muted-foreground"},qt={key:0,class:"mt-1 text-[11px]"},Gt={key:0},Kt={key:1},Wt={class:"mt-1 text-sm font-semibold text-foreground"},Xt={class:"mt-1 text-sm font-semibold text-foreground"},Yt={class:"mt-4 flex flex-wrap items-center gap-2"},Zt=["onClick"],es=["onClick"],ts=["onClick"],ss=["onClick"],os={key:0,class:"rounded-2xl border border-border bg-background p-4 text-center text-xs text-muted-foreground"},rs={key:1,class:"relative mt-6 overflow-x-auto overflow-y-visible"},ns={class:"min-w-full text-left text-sm"},ls={class:"text-xs uppercase tracking-[0.2em] text-muted-foreground"},as={class:"py-3 pr-4"},is={class:"py-3 pr-6"},ds={class:"inline-flex items-center gap-2"},us={class:"text-sm text-foreground"},cs={key:0},ps=["onClick"],xs={class:"py-4 pr-6 font-mono text-xs text-foreground"},ms={class:"py-4 pr-6"},vs={class:"py-4 pr-6"},fs={key:0,class:"block text-[11px] text-muted-foreground"},gs={class:"py-4 pr-6 text-xs"},bs={class:"py-4 pr-6 text-xs text-muted-foreground"},ys={class:"py-4 pr-6 text-xs text-muted-foreground"},_s={class:"py-4 text-right"},hs={class:"flex flex-wrap justify-end gap-2"},ws=["onClick"],ks=["onClick"],Cs=["onClick"],Vs=["onClick"],$s={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},As={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},Ss={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Ts={class:"mt-4 space-y-3 text-sm"},Ls={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Ds={class:"w-full max-w-3xl rounded-3xl border border-border bg-card p-6 shadow-xl"},Es={class:"flex items-center justify-between"},Us={class:"flex items-center gap-2"},Rs={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},js={class:"mt-4"},zs=["readonly"],Ns={class:"mt-6 flex items-center justify-end gap-2"},Bs=["disabled"],Hs=We({__name:"Accounts",setup(u){const m=nt(),{accounts:w,isLoading:I}=Xe(m),g=ot(),M=d(""),j=d("all"),c=d(new Set),E=d("table"),O=d(!1),i=d(""),S=d(!1),T=d(""),z=d(""),L=d(!1),P=d([]),F=d(1),se=d(""),y=d(null),f=d(null),N=d(!1),k=d(!1),_=d(""),p=d({id:"",secure_c_ses:"",csesidx:"",config_id:"",host_c_oses:"",expires_at:""}),q=d(null),ue=d([]),De=[{label:"全部状态",value:"all"},{label:"正常",value:"正常"},{label:"即将过期",value:"即将过期"},{label:"已过期",value:"已过期"},{label:"手动禁用",value:"手动禁用"},{label:"错误禁用",value:"错误禁用"},{label:"429限流",value:"429限流"}],D=H(()=>{const t=M.value.trim().toLowerCase();return w.value.filter(e=>{const o=!t||e.id.toLowerCase().includes(t),a=j.value==="all"||J(e)===j.value;return o&&a})}),B=H(()=>c.value.size),oe=H(()=>D.value.length>0&&D.value.every(t=>c.value.has(t.id))),G=async()=>{await m.loadAccounts(),c.value=new Set};Ye(async()=>{await G(),await He()});const re=H(()=>y.value?.logs?.slice(-8)||[]),ne=H(()=>f.value?.logs?.slice(-8)||[]);Ze(()=>{Y(),Z()});const J=t=>t.cooldown_reason?.includes("429")&&t.cooldown_seconds>0?"429限流":t.cooldown_reason==="错误禁用"?"错误禁用":t.disabled?"手动禁用":t.status==="已过期"?"已过期":t.status==="即将过期"?"即将过期":"正常",ce=t=>{const e=J(t);return e==="429限流"||e==="即将过期"?"bg-amber-200 text-amber-900":e==="错误禁用"||e==="已过期"?"bg-destructive/10 text-destructive":e==="手动禁用"?"bg-muted text-muted-foreground":"bg-emerald-500 text-white"},pe=t=>t.cooldown_reason?.includes("429")&&t.cooldown_seconds>0?!0:t.disabled||t.cooldown_reason==="错误禁用",xe=t=>t==="已过期"?"过期":t==="未设置"?"未设置":t,me=t=>t.status==="已过期"?"text-rose-600":t.status==="即将过期"?"text-amber-700":t.status==="未设置"?"text-muted-foreground":"text-emerald-600",ve=t=>t<60?`${t} 秒`:t<3600?`${Math.ceil(t/60)} 分钟`:`${(t/3600).toFixed(1)} 小时`,le=t=>t.cooldown_seconds>0?"text-amber-700":t.cooldown_reason==="错误禁用"?"text-rose-600":"text-muted-foreground",fe=t=>{const e=J(t);return e==="手动禁用"||e==="已过期"?"bg-muted/70":""},K=t=>{const e=new Set(c.value);e.has(t)?e.delete(t):e.add(t),c.value=e},ge=()=>{if(oe.value){c.value=new Set;return}c.value=new Set(D.value.map(t=>t.id))},Ee=(t,e)=>t.id||`account_${e+1}`,Ue=async()=>(await x.getConfig()).accounts.map((e,o)=>({...e,id:Ee(e,o)})),be=t=>`${t.time} [${t.level}] ${t.message}`,Re=(t,e)=>{let o=-1;for(let U=0;U{i.value="";try{const e=await Ue();Re(e,t)}catch(e){i.value=e.message||"加载账号配置失败"}},je=async()=>{T.value="";try{const t=await x.getConfig();P.value=Array.isArray(t.accounts)?t.accounts:[],z.value=JSON.stringify(he(P.value),null,2),L.value=!0,S.value=!0}catch(t){T.value=t.message||"加载账号配置失败"}},ae=()=>{S.value=!1,T.value="",L.value=!1},_e=()=>{const t=JSON.parse(z.value);if(!Array.isArray(t))throw new Error("配置格式必须是数组。");return t},ze=t=>typeof t!="string"||!t?t:t.length<=6?`${t.slice(0,2)}****`:`${t.slice(0,3)}****`,he=t=>{const e=new Set(["secure_c_ses","csesidx","config_id","host_c_oses","mail_password"]);return t.map(o=>{const a={...o};return e.forEach(U=>{const Ae=a[U];Ae&&(a[U]=ze(Ae))}),a})},Ne=()=>{if(T.value="",!L.value){try{P.value=_e()}catch(t){T.value=t.message||"JSON 格式错误";return}z.value=JSON.stringify(he(P.value),null,2),L.value=!0;return}z.value=JSON.stringify(P.value,null,2),L.value=!1},Be=async()=>{T.value="";try{const t=_e();await m.updateConfig(t),ae()}catch(t){T.value=t.message||"保存失败"}},ie=()=>{O.value=!1,i.value=""},Ie=async()=>{if(q.value===null)return;const t=[...ue.value];t[q.value]={...t[q.value],id:p.value.id,secure_c_ses:p.value.secure_c_ses,csesidx:p.value.csesidx,config_id:p.value.config_id,host_c_oses:p.value.host_c_oses||void 0,expires_at:p.value.expires_at||void 0};try{await m.updateConfig(t),ie()}catch(e){i.value=e.message||"保存失败"}},Me=async()=>{await m.bulkEnable(Array.from(c.value)),c.value=new Set},Oe=async()=>{await g.ask({title:"批量禁用",message:"确定要批量禁用选中的账号吗?"})&&(await m.bulkDisable(Array.from(c.value)),c.value=new Set)},Pe=async()=>{await g.ask({title:"批量删除",message:"确定要批量删除选中的账号吗?",confirmText:"删除"})&&(await m.bulkDelete(Array.from(c.value)),c.value=new Set)},we=async t=>{await m.enableAccount(t)},ke=async t=>{await g.ask({title:"禁用账号",message:"确定要禁用该账号吗?"})&&await m.disableAccount(t)},Ce=async t=>{await g.ask({title:"删除账号",message:"确定要删除该账号吗?",confirmText:"删除"})&&await m.deleteAccount(t)};let W=null,X=null;const Y=()=>{W!==null&&(window.clearInterval(W),W=null)},Z=()=>{X!==null&&(window.clearInterval(X),X=null)},Ve=t=>t==="pending"?"等待中":t==="running"?"执行中":t==="success"?"成功":t==="failed"?"失败":t,Fe=async t=>{const e=await x.getRegisterTask(t);y.value=e,e.status!=="running"&&e.status!=="pending"&&(N.value=!1,Y(),await G())},Je=async t=>{const e=await x.getLoginTask(t);f.value=e,e.status!=="running"&&e.status!=="pending"&&(k.value=!1,Z(),await G())},$e=t=>{Y(),W=window.setInterval(()=>{Fe(t).catch(e=>{_.value=e?.message||"注册任务更新失败",Y(),N.value=!1})},3e3)},de=t=>{Z(),X=window.setInterval(()=>{Je(t).catch(e=>{_.value=e?.message||"刷新任务更新失败",Z(),k.value=!1})},3e3)},He=async()=>{try{const t=await x.getRegisterCurrent();t&&"id"in t?(y.value=t,(t.status==="running"||t.status==="pending")&&(N.value=!0,$e(t.id))):y.value=null}catch(t){_.value=t.message||"加载注册任务失败"}try{const t=await x.getLoginCurrent();t&&"id"in t?(f.value=t,(t.status==="running"||t.status==="pending")&&(k.value=!0,de(t.id))):f.value=null}catch(t){_.value=t.message||"加载刷新任务失败"}},Qe=async()=>{_.value="",N.value=!0;const t=se.value.trim();try{const e=Number.isFinite(F.value)&&F.value>0?F.value:void 0,o=await x.startRegister(e,t||void 0);y.value=o,$e(o.id)}catch(e){_.value=e.message||"启动注册失败",N.value=!1}},qe=async()=>{if(c.value.size){_.value="",k.value=!0;try{const t=await x.startLogin(Array.from(c.value));f.value=t,de(t.id)}catch(t){_.value=t.message||"启动刷新失败",k.value=!1}}},Ge=async()=>{_.value="",k.value=!0;try{await x.checkLogin();const t=await x.getLoginCurrent();if(t&&"id"in t){f.value=t,de(t.id);return}f.value=null,k.value=!1}catch(t){_.value=t.message||"触发刷新失败",k.value=!1}};return(t,e)=>(r(),l(Q,null,[s("div",lt,[s("section",at,[s("div",it,[s("div",dt,[C(s("input",{"onUpdate:modelValue":e[0]||(e[0]=o=>M.value=o),type:"text",placeholder:"搜索账号 ID",class:"w-full rounded-full border border-input bg-background px-4 py-2 text-sm sm:w-48"},null,512),[[V,M.value]]),R(tt,{modelValue:j.value,"onUpdate:modelValue":e[1]||(e[1]=o=>j.value=o),options:De},null,8,["modelValue"])]),s("div",ut,[R(te,{modelValue:oe.value,"onUpdate:modelValue":ge},{default:et(()=>[...e[18]||(e[18]=[Te(" 全选 ",-1)])]),_:1},8,["modelValue"]),s("span",null,"共 "+n(D.value.length)+" 个账号",1),B.value?(r(),l("span",ct,"已选 "+n(B.value)+" 个",1)):v("",!0),s("div",pt,[s("button",{type:"button",class:h(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",E.value==="table"?"bg-accent text-accent-foreground":""]),onClick:e[2]||(e[2]=o=>E.value="table"),"aria-label":"列表视图"},[...e[19]||(e[19]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])],2),s("button",{type:"button",class:h(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",E.value==="card"?"bg-accent text-accent-foreground":""]),onClick:e[3]||(e[3]=o=>E.value="card"),"aria-label":"卡片视图"},[...e[20]||(e[20]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h7v6H4V6zm9 0h7v6h-7V6zM4 14h7v4H4v-4zm9 0h7v4h-7v-4z"})],-1)])],2)])])]),s("div",xt,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:je}," 账户配置 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:$(I),onClick:G}," 刷新列表 ",8,mt),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:!B.value,onClick:Me}," 批量启用 ",8,vt),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:!B.value,onClick:Oe}," 批量禁用 ",8,ft),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-destructive transition-colors hover:border-destructive hover:text-destructive",disabled:!B.value,onClick:Pe}," 批量删除 ",8,gt)]),s("div",bt,[s("div",yt,[s("div",_t,[e[21]||(e[21]=s("span",{class:"text-foreground"},"自动注册",-1)),C(s("input",{"onUpdate:modelValue":e[4]||(e[4]=o=>F.value=o),type:"number",min:"1",class:"w-20 rounded-full border border-input bg-background px-3 py-1 text-xs"},null,512),[[V,F.value,void 0,{number:!0}]]),C(s("input",{"onUpdate:modelValue":e[5]||(e[5]=o=>se.value=o),type:"text",class:"w-40 rounded-full border border-input bg-background px-3 py-1 text-xs",placeholder:"指定域名(可选)"},null,512),[[V,se.value]])]),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:N.value,onClick:Qe}," 开始注册 ",8,ht),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:k.value,onClick:Ge}," 刷新过期 ",8,wt),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:!B.value||k.value,onClick:qe}," 刷新选中 ",8,kt)]),_.value?(r(),l("div",Ct,n(_.value),1)):v("",!0),y.value||f.value?(r(),l("div",Vt,[y.value?(r(),l("div",$t,[e[22]||(e[22]=s("span",{class:"font-medium text-foreground"},"注册任务",-1)),s("span",At,"状态:"+n(Ve(y.value.status)),1),s("span",St,"进度:"+n(y.value.progress)+"/"+n(y.value.count),1),s("span",Tt,"成功:"+n(y.value.success_count),1),s("span",Lt,"失败:"+n(y.value.fail_count),1)])):v("",!0),f.value?(r(),l("div",Dt,[e[23]||(e[23]=s("span",{class:"font-medium text-foreground"},"刷新任务",-1)),s("span",Et,"状态:"+n(Ve(f.value.status)),1),s("span",Ut,"进度:"+n(f.value.progress)+"/"+n(f.value.account_ids.length),1),s("span",Rt,"成功:"+n(f.value.success_count),1),s("span",jt,"失败:"+n(f.value.fail_count),1)])):v("",!0)])):v("",!0),re.value.length||ne.value.length?(r(),l("div",zt,[re.value.length?(r(),l("div",Nt,[e[24]||(e[24]=s("p",{class:"text-xs font-semibold text-foreground"},"注册日志",-1)),s("div",Bt,[(r(!0),l(Q,null,ee(re.value,(o,a)=>(r(),l("div",{key:`reg-${a}`,class:"font-mono"},n(be(o)),1))),128))])])):v("",!0),ne.value.length?(r(),l("div",It,[e[25]||(e[25]=s("p",{class:"text-xs font-semibold text-foreground"},"刷新日志",-1)),s("div",Mt,[(r(!0),l(Q,null,ee(ne.value,(o,a)=>(r(),l("div",{key:`login-${a}`,class:"font-mono"},n(be(o)),1))),128))])])):v("",!0)])):v("",!0)]),E.value==="card"?(r(),l("div",Ot,[(r(!0),l(Q,null,ee(D.value,o=>(r(),l("div",{key:o.id,class:h(["rounded-2xl border border-border bg-card p-4",fe(o)]),onClick:a=>K(o.id)},[s("div",Ft,[s("div",null,[e[26]||(e[26]=s("p",{class:"text-xs text-muted-foreground"},"账号 ID",-1)),s("p",Jt,n(o.id),1)]),s("div",Ht,[R(te,{modelValue:c.value.has(o.id),"onUpdate:modelValue":a=>K(o.id),onClick:e[6]||(e[6]=A(()=>{},["stop"]))},null,8,["modelValue","onUpdate:modelValue"]),s("span",{class:h(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",ce(o)])},n(J(o)),3)])]),s("div",Qt,[s("div",null,[e[27]||(e[27]=s("p",null,"剩余时间",-1)),s("p",{class:h(["mt-1 text-sm font-semibold",me(o)])},n(xe(o.remaining_display)),3),o.expires_at?(r(),l("p",qt,n(o.expires_at),1)):v("",!0)]),s("div",null,[e[28]||(e[28]=s("p",null,"冷却",-1)),s("p",{class:h(["mt-1",le(o)])},[o.cooldown_seconds>0?(r(),l("span",Gt,n(ve(o.cooldown_seconds))+" · "+n(o.cooldown_reason),1)):(r(),l("span",Kt,n(o.cooldown_reason||"无冷却"),1))],2)]),s("div",null,[e[29]||(e[29]=s("p",null,"失败数",-1)),s("p",Wt,n(o.error_count),1)]),s("div",null,[e[30]||(e[30]=s("p",null,"会话数",-1)),s("p",Xt,n(o.conversation_count),1)])]),s("div",Yt,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A(a=>ye(o.id),["stop"])}," 编辑 ",8,Zt),pe(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[e[7]||(e[7]=A(()=>{},["stop"])),a=>we(o.id)]}," 启用 ",8,es)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[e[8]||(e[8]=A(()=>{},["stop"])),a=>ke(o.id)]}," 禁用 ",8,ts)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:[e[9]||(e[9]=A(()=>{},["stop"])),a=>Ce(o.id)]}," 删除 ",8,ss)])],10,Pt))),128)),!D.value.length&&!$(I)?(r(),l("div",os," 暂无账号数据,请检查后台配置。 ")):v("",!0)])):(r(),l("div",rs,[s("table",ns,[s("thead",ls,[s("tr",null,[s("th",as,[R(te,{modelValue:oe.value,"onUpdate:modelValue":ge},null,8,["modelValue"])]),e[32]||(e[32]=s("th",{class:"py-3 pr-6"},"账号 ID",-1)),e[33]||(e[33]=s("th",{class:"py-3 pr-6"},"状态",-1)),s("th",is,[s("span",ds,[e[31]||(e[31]=Te(" 剩余/过期 ",-1)),R(rt,{text:"过期时间为 12 小时,账户过期以北京时间为准。"})])]),e[34]||(e[34]=s("th",{class:"py-3 pr-6"},"冷却",-1)),e[35]||(e[35]=s("th",{class:"py-3 pr-6"},"失败数",-1)),e[36]||(e[36]=s("th",{class:"py-3 pr-6"},"会话数",-1)),e[37]||(e[37]=s("th",{class:"py-3 text-right"},"操作",-1))])]),s("tbody",us,[!D.value.length&&!$(I)?(r(),l("tr",cs,[...e[38]||(e[38]=[s("td",{colspan:"8",class:"py-8 text-center text-muted-foreground"}," 暂无账号数据,请检查后台配置。 ",-1)])])):v("",!0),(r(!0),l(Q,null,ee(D.value,o=>(r(),l("tr",{key:o.id,class:h(["border-t border-border",fe(o)]),onClick:a=>K(o.id)},[s("td",{class:"py-4 pr-4",onClick:e[10]||(e[10]=A(()=>{},["stop"]))},[R(te,{modelValue:c.value.has(o.id),"onUpdate:modelValue":a=>K(o.id)},null,8,["modelValue","onUpdate:modelValue"])]),s("td",xs,n(o.id),1),s("td",ms,[s("span",{class:h(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",ce(o)])},n(J(o)),3)]),s("td",vs,[s("div",{class:h(["text-sm font-semibold",me(o)])},n(xe(o.remaining_display)),3),o.expires_at?(r(),l("span",fs,n(o.expires_at),1)):v("",!0)]),s("td",gs,[o.cooldown_seconds>0?(r(),l("span",{key:0,class:h(le(o))},n(ve(o.cooldown_seconds))+" · "+n(o.cooldown_reason),3)):(r(),l("span",{key:1,class:h(le(o))},n(o.cooldown_reason||"无冷却"),3))]),s("td",bs,n(o.error_count),1),s("td",ys,n(o.conversation_count),1),s("td",_s,[s("div",hs,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A(a=>ye(o.id),["stop"])}," 编辑 ",8,ws),pe(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A(a=>we(o.id),["stop"])}," 启用 ",8,ks)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A(a=>ke(o.id),["stop"])}," 禁用 ",8,Cs)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:A(a=>Ce(o.id),["stop"])}," 删除 ",8,Vs)])])],10,ps))),128))])])]))])]),R(st,{open:$(g).open.value,title:$(g).title.value,message:$(g).message.value,"confirm-text":$(g).confirmText.value,"cancel-text":$(g).cancelText.value,onConfirm:$(g).confirm,onCancel:$(g).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(r(),Se(Le,{to:"body"},[O.value?(r(),l("div",$s,[s("div",As,[s("div",{class:"flex items-center justify-between"},[e[39]||(e[39]=s("p",{class:"text-sm font-medium text-foreground"},"编辑账号",-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:ie}," 关闭 ")]),i.value?(r(),l("div",Ss,n(i.value),1)):v("",!0),s("div",Ts,[e[40]||(e[40]=s("label",{class:"block text-xs text-muted-foreground"},"账号 ID",-1)),C(s("input",{"onUpdate:modelValue":e[11]||(e[11]=o=>p.value.id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",disabled:""},null,512),[[V,p.value.id]]),e[41]||(e[41]=s("label",{class:"block text-xs text-muted-foreground"},"secure_c_ses",-1)),C(s("textarea",{"onUpdate:modelValue":e[12]||(e[12]=o=>p.value.secure_c_ses=o),class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",rows:"3"},null,512),[[V,p.value.secure_c_ses]]),e[42]||(e[42]=s("label",{class:"block text-xs text-muted-foreground"},"csesidx",-1)),C(s("input",{"onUpdate:modelValue":e[13]||(e[13]=o=>p.value.csesidx=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,p.value.csesidx]]),e[43]||(e[43]=s("label",{class:"block text-xs text-muted-foreground"},"config_id",-1)),C(s("input",{"onUpdate:modelValue":e[14]||(e[14]=o=>p.value.config_id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,p.value.config_id]]),e[44]||(e[44]=s("label",{class:"block text-xs text-muted-foreground"},"host_c_oses",-1)),C(s("input",{"onUpdate:modelValue":e[15]||(e[15]=o=>p.value.host_c_oses=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,p.value.host_c_oses]]),e[45]||(e[45]=s("label",{class:"block text-xs text-muted-foreground"},"expires_at",-1)),C(s("input",{"onUpdate:modelValue":e[16]||(e[16]=o=>p.value.expires_at=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"2025-12-23 10:59:21"},null,512),[[V,p.value.expires_at]])]),s("div",{class:"mt-6 flex items-center justify-end gap-2"},[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:ie}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Ie}," 保存 ")])])])):v("",!0)])),(r(),Se(Le,{to:"body"},[S.value?(r(),l("div",Ls,[s("div",Ds,[s("div",Es,[e[46]||(e[46]=s("p",{class:"text-sm font-medium text-foreground"},"账户配置(JSON)",-1)),s("div",Us,[s("button",{class:"rounded-full bg-foreground px-3 py-1 text-xs text-background transition-opacity hover:opacity-90",onClick:Ne},n(L.value?"显示原文":"脱敏显示"),1),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:ae}," 关闭 ")])]),T.value?(r(),l("div",Rs,n(T.value),1)):v("",!0),s("div",js,[C(s("textarea",{"onUpdate:modelValue":e[17]||(e[17]=o=>z.value=o),class:"h-96 w-full rounded-2xl border border-input bg-background px-4 py-3 font-mono text-xs text-foreground",spellcheck:"false",readonly:L.value},null,8,zs),[[V,z.value]])]),s("div",Ns,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:ae}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Be,disabled:L.value}," 保存 ",8,Bs)])])])):v("",!0)]))],64))}});export{Hs as default}; diff --git a/static/assets/Accounts-kVPSbBOv.js b/static/assets/Accounts-kVPSbBOv.js new file mode 100644 index 0000000000000000000000000000000000000000..7676a6f09c747db28a4d41058adbcdc4c1dab2b8 --- /dev/null +++ b/static/assets/Accounts-kVPSbBOv.js @@ -0,0 +1,2 @@ +import{g as E,C as os,h as i,d as rs,D as ls,i as J,o as ns,z as as,j as is,c as n,a as s,p as G,m as Re,q as R,v as V,s as $t,t as a,n as x,u as j,b as g,f as ee,F as ge,r as Ve,T as je,E as ds,w as M,e as l,G as us}from"./index-Dt-VnrHx.js";import{_ as cs}from"./SelectMenu.vue_vue_type_script_setup_true_lang-r1ha8_PD.js";import{_ as be}from"./Checkbox.vue_vue_type_script_setup_true_lang-D6uSa7ue.js";import{_ as fs}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-jpm-Quh6.js";import{u as vs}from"./useConfirmDialog-Dz9xMRf2.js";import{_ as ms}from"./HelpTip.vue_vue_type_script_setup_true_lang-DV7kZRSO.js";const w={list:()=>E.get("/admin/accounts"),getConfig:()=>E.get("/admin/accounts-config"),updateConfig:y=>E.put("/admin/accounts-config",y),delete:y=>E.delete(`/admin/accounts/${y}`),disable:y=>E.put(`/admin/accounts/${y}/disable`),enable:y=>E.put(`/admin/accounts/${y}/enable`),startRegister:(y,k)=>E.post("/admin/register/start",{count:y,domain:k}),getRegisterTask:y=>E.get(`/admin/register/task/${y}`),getRegisterCurrent:()=>E.get("/admin/register/current"),startLogin:y=>E.post("/admin/login/start",y),getLoginTask:y=>E.get(`/admin/login/task/${y}`),getLoginCurrent:()=>E.get("/admin/login/current"),checkLogin:()=>E.post("/admin/login/check")},xs=os("accounts",()=>{const y=i([]),k=i(!1);async function A(){k.value=!0;try{const p=await w.list();y.value=Array.isArray(p)?p:p.accounts||[]}finally{k.value=!1}}async function ne(p){await w.delete(p),await A()}async function T(p){await w.disable(p),await A()}async function d(p){await w.enable(p),await A()}async function ae(p){await Promise.all(p.map($=>w.enable($))),await A()}async function te(p){await Promise.all(p.map($=>w.disable($))),await A()}async function b(p){await Promise.all(p.map($=>w.delete($))),await A()}async function Y(p){await w.updateConfig(p),await A()}return{accounts:y,isLoading:k,loadAccounts:A,deleteAccount:ne,disableAccount:T,enableAccount:d,bulkEnable:ae,bulkDisable:te,bulkDelete:b,updateConfig:Y}}),ps={class:"space-y-8"},gs={class:"rounded-3xl border border-border bg-card p-6"},bs={class:"flex flex-wrap items-center justify-between gap-4"},ys={class:"grid w-full grid-cols-2 gap-3 sm:flex sm:w-auto sm:items-center"},_s={class:"flex w-full flex-wrap items-center gap-3 text-xs text-muted-foreground sm:w-auto sm:flex-nowrap"},hs={class:"ml-auto flex items-center gap-2 sm:ml-0"},ws={class:"mt-4 flex flex-wrap items-center gap-2"},ks=["disabled"],Cs=["disabled"],Ts={key:0,class:"absolute right-0 z-10 mt-2 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg"},Ss=["disabled"],$s=["disabled"],Is=["disabled"],Es=["disabled"],Ls=["disabled"],As={key:0,class:"mt-6 grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3"},Rs=["onClick"],Vs={class:"flex items-start justify-between gap-3"},js={class:"mt-1 font-mono text-xs text-foreground"},Ms={class:"flex items-center gap-2"},Ds={class:"mt-4 grid grid-cols-2 gap-3 text-xs text-muted-foreground"},Os={key:0,class:"mt-1 text-[11px]"},Bs={key:0},Ns={key:1},Us={class:"mt-1 text-sm font-semibold text-foreground"},zs={class:"mt-1 text-sm font-semibold text-foreground"},Ps={class:"mt-4 flex flex-wrap items-center gap-2"},Fs=["onClick"],Ks=["onClick"],Hs=["onClick"],Js=["onClick"],Gs={key:0,class:"rounded-2xl border border-border bg-background p-4 text-center text-xs text-muted-foreground"},Ys={key:1,class:"relative mt-6 overflow-x-auto overflow-y-visible"},qs={class:"min-w-full text-left text-sm"},Qs={class:"text-xs uppercase tracking-[0.2em] text-muted-foreground"},Xs={class:"py-3 pr-4"},Ws={class:"py-3 pr-6"},Zs={class:"inline-flex items-center gap-2"},eo={class:"text-sm text-foreground"},to={key:0},so=["onClick"],oo={class:"py-4 pr-6 font-mono text-xs text-foreground"},ro={class:"py-4 pr-6"},lo={class:"py-4 pr-6"},no={key:0,class:"block text-[11px] text-muted-foreground"},ao={class:"py-4 pr-6 text-xs"},io={class:"py-4 pr-6 text-xs text-muted-foreground"},uo={class:"py-4 pr-6 text-xs text-muted-foreground"},co={class:"py-4 text-right"},fo={class:"flex flex-wrap justify-end gap-2"},vo=["onClick"],mo=["onClick"],xo=["onClick"],po=["onClick"],go={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},bo={class:"flex max-h-[90vh] w-full max-w-lg flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},yo={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},_o={class:"mt-1 text-xs text-muted-foreground"},ho={class:"scrollbar-slim flex-1 overflow-y-auto px-6 py-4"},wo={class:"space-y-4 text-sm"},ko={class:"flex rounded-full border border-border bg-muted/30 p-1 text-xs"},Co={key:0,class:"space-y-4"},To={key:1,class:"space-y-4"},So={key:0,class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-xs text-rose-600"},$o={class:"border-t border-border/60 px-6 py-4"},Io={class:"flex items-center justify-end gap-2"},Eo=["disabled"],Lo=["disabled"],Ao={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Ro={class:"flex h-[80vh] w-full max-w-2xl flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},Vo={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},jo={class:"flex items-center gap-2"},Mo=["disabled"],Do={class:"flex min-h-0 flex-1 flex-col px-6 py-4"},Oo={key:0,class:"rounded-2xl bg-destructive/10 px-3 py-2 text-xs text-destructive"},Bo={key:1,class:"grid gap-3 text-xs text-muted-foreground"},No={key:0,class:"space-y-1"},Uo={class:"flex items-center gap-2 font-medium text-foreground"},zo={class:"flex flex-wrap gap-x-4 gap-y-1"},Po={key:1,class:"space-y-1"},Fo={class:"flex items-center gap-2 font-medium text-foreground"},Ko={class:"flex flex-wrap gap-x-4 gap-y-1"},Ho={key:2,class:"mt-4 flex min-h-0 flex-1 flex-col"},Jo={key:0,class:"space-y-2"},Go={class:"space-y-1 text-[11px] text-muted-foreground"},Yo={key:1,class:"mt-4 space-y-2"},qo={class:"space-y-1 text-[11px] text-muted-foreground"},Qo={key:3,class:"mt-4 rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},Xo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Wo={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},Zo={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},er={class:"mt-4 space-y-3 text-sm"},tr={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},sr={class:"w-full max-w-3xl rounded-3xl border border-border bg-card p-6 shadow-xl"},or={class:"flex items-center justify-between"},rr={class:"flex items-center gap-2"},lr={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},nr={class:"mt-4"},ar=["readonly"],ir={class:"mt-6 flex items-center justify-end gap-2"},dr=["disabled"],Je="accounts-register-task-cache",Ge="accounts-login-task-cache",Ye="accounts-register-log-clear",qe="accounts-login-log-clear",Qe="accounts-register-task-cleared-id",Xe="accounts-login-task-cleared-id",It="1970-01-01 00:00:00",pr=rs({__name:"Accounts",setup(y){const k=xs(),{accounts:A,isLoading:ne}=ls(k),T=vs(),d=ds(),ae=i(""),te=i("all"),b=i(new Set),Y=i("table"),p=i(!1),$=i(""),Me=i(!1),D=i(""),se=i(""),N=i(!1),ie=i([]),de=i(1),ye=i(!1),U=i("register"),ue=i(""),z=i(""),_e=i(!1),q=i(!1),P=i(!1),De=i(null),he=i(null),we=i(null),F=i(null),K=i(null),oe=i(0),re=i(0),ce=i(!1),c=i(null),f=i(null),We=i(null),O=i(!1),S=i(!1),_=i(""),h=i({id:"",secure_c_ses:"",csesidx:"",config_id:"",host_c_oses:"",expires_at:""}),ke=i(null),Ze=i([]),Et=[{label:"全部状态",value:"all"},{label:"正常",value:"正常"},{label:"即将过期",value:"即将过期"},{label:"已过期",value:"已过期"},{label:"手动禁用",value:"手动禁用"},{label:"错误禁用",value:"错误禁用"},{label:"429限流",value:"429限流"}],H=J(()=>{const t=ae.value.trim().toLowerCase();return A.value.filter(e=>{const o=!t||e.id.toLowerCase().includes(t),r=te.value==="all"||ve(e)===te.value;return o&&r})}),B=J(()=>b.value.size),Oe=J(()=>H.value.length>0&&H.value.every(t=>b.value.has(t.id))),fe=async()=>{await k.loadAccounts(),b.value=new Set,P.value=!1},et=t=>{try{const e=localStorage.getItem(t);return e?JSON.parse(e):null}catch{return null}},tt=t=>{try{return localStorage.getItem(t)||null}catch{return null}},Ce=(t,e)=>{try{if(e){localStorage.setItem(t,e);return}localStorage.removeItem(t)}catch{}},st=(t,e)=>{try{localStorage.setItem(t,JSON.stringify(e))}catch{}},ot=t=>{try{localStorage.removeItem(t)}catch{}},rt=t=>{const e=localStorage.getItem(t),o=Number(e);return Number.isFinite(o)?o:0},Te=(t,e)=>{try{localStorage.setItem(t,String(e))}catch{}},Be=(t,e=!0)=>{t&&(t.id&&t.id===F.value||(t.id&&F.value&&t.id!==F.value&&(F.value=null,Ce(Qe,null)),c.value=t,t.id&&t.id!==he.value&&(he.value=t.id,oe.value=0,Te(Ye,0)),e&&st(Je,t)))},Se=(t,e=!0)=>{t&&(t.id&&t.id===K.value||(t.id&&K.value&&t.id!==K.value&&(K.value=null,Ce(Xe,null)),f.value=t,t.id&&t.id!==we.value&&(we.value=t.id,re.value=0,Te(qe,0)),e&&st(Ge,t)))},Lt=()=>{oe.value=rt(Ye),re.value=rt(qe),F.value=tt(Qe),K.value=tt(Xe);const t=et(Je);t&&t.id!==F.value&&(c.value=t,he.value=t.id||null);const e=et(Ge);e&&e.id!==K.value&&(f.value=e,we.value=e.id||null)},At=()=>{ye.value=!0,U.value="register",ue.value="",z.value="",_e.value=!1,ce.value=!1},Ne=()=>{ye.value=!1},Rt=t=>{const e=[],o=[];return t.split(/\r?\n/).map(u=>u.trim()).filter(Boolean).forEach((u,m)=>{const v=u.split("----").map(I=>I.trim()),C=m+1;if(v.length){if(v[0].toLowerCase()==="duckmail"){if(v.length<3||!v[1]||!v[2]){o.push(`第 ${C} 行格式错误(duckmail)`);return}const I=v[1],Ae=v.slice(2).join("----");e.push({id:I,secure_c_ses:"",csesidx:"",config_id:"",expires_at:It,mail_provider:"duckmail",mail_address:I,mail_password:Ae});return}if(v.length>=4&&v[0]&&v[2]&&v[3]){const I=v[0],Ae=v[1]||"",L=v[2],ss=v.slice(3).join("----");e.push({id:I,secure_c_ses:"",csesidx:"",config_id:"",expires_at:It,mail_provider:"microsoft",mail_address:I,mail_password:Ae,mail_client_id:L,mail_refresh_token:ss,mail_tenant:"consumers"});return}o.push(`第 ${C} 行格式错误`)}}),{items:e,errors:o}},Vt=async()=>{if(z.value="",!ue.value.trim()){z.value="请输入导入内容";return}const{items:t,errors:e}=Rt(ue.value);if(!t.length){z.value=e.length?e.join(","):"未识别到有效账号";return}if(e.length){z.value=e.slice(0,3).join(",");return}_e.value=!0;try{const r=[...await vt()],u=new Map(r.map((C,I)=>[C.id,I])),m=[];t.forEach(C=>{const I=u.get(C.id||"");if(I===void 0){r.push(C),m.push(C.id);return}const L={...r[I],mail_provider:C.mail_provider,mail_address:C.mail_address};C.mail_provider==="microsoft"?(L.mail_client_id=C.mail_client_id,L.mail_refresh_token=C.mail_refresh_token,L.mail_tenant=C.mail_tenant,L.mail_password=C.mail_password):(L.mail_password=C.mail_password,L.mail_client_id=void 0,L.mail_refresh_token=void 0,L.mail_tenant=void 0),r[I]=L,m.push(C.id)}),await k.updateConfig(r),await fe(),b.value=new Set(m),d.success(`成功导入 ${m.length} 个账户`),Ne(),await T.ask({title:"导入成功",message:`已导入 ${m.length} 个账户并自动选中。是否立即刷新这些账户以获取 Cookie?`,confirmText:"立即刷新",cancelText:"稍后手动刷新"})&&await St()}catch(o){z.value=o.message||"导入失败",d.error(o.message||"导入失败")}finally{_e.value=!1}},jt=async()=>{try{const t=[],e=c.value?.id,o=f.value?.id;if(e&&!$e(e)&&t.push(kt(e)),o&&!Ie(o)&&t.push(Ct(o)),!t.length){await He();return}await Promise.all(t)}catch(t){_.value=t?.message||"任务状态更新失败"}},Ue=async()=>{q.value=!0,await jt()},Mt=()=>{q.value=!1},Dt=()=>{const t=c.value?.id||null,e=f.value?.id||null;F.value=t,K.value=e,Ce(Qe,t),Ce(Xe,e),oe.value=c.value?.logs?.length||0,re.value=f.value?.logs?.length||0,Te(Ye,oe.value),Te(qe,re.value),c.value=null,f.value=null,he.value=null,we.value=null,_.value="",O.value=!1,S.value=!1,W(),Z(),ot(Je),ot(Ge)},$e=t=>!!(t&&t===F.value),Ie=t=>!!(t&&t===K.value),Ot=()=>{P.value=!P.value},le=()=>{P.value=!1},lt=t=>{if(!P.value)return;const e=t.target;De.value&&!De.value.contains(e)&&(P.value=!1)};ns(async()=>{Lt(),await fe(),await He(),Zt(),document.addEventListener("click",lt)});const Q=J(()=>{const t=c.value?.logs||[];return oe.value?t.slice(oe.value):t}),X=J(()=>{const t=f.value?.logs||[];return re.value?t.slice(re.value):t}),Bt=J(()=>!!_.value||!!c.value||!!f.value||Q.value.length>0||X.value.length>0),Nt=async()=>{await us();const t=We.value;t&&(t.scrollTop=t.scrollHeight)};as([Q,X,q],async()=>{q.value&&await Nt()},{deep:!0});const Ut=J(()=>{const t=c.value?.status,e=f.value?.status;return t==="running"||t==="pending"||e==="running"||e==="pending"}),zt=J(()=>{if(_.value)return"bg-rose-500";if(Ut.value)return"bg-sky-400";const t=[];if(c.value){const u=c.value.success_count??0,m=c.value.fail_count??0,v=c.value.count??u+m;t.push({success:u,fail:m,total:v,status:c.value.status})}if(f.value){const u=f.value.success_count??0,m=f.value.fail_count??0,v=f.value.account_ids?.length??u+m;t.push({success:u,fail:m,total:v,status:f.value.status})}if(!t.length)return"bg-muted-foreground";const e=t.reduce((u,m)=>u+m.success,0),o=t.reduce((u,m)=>u+m.fail,0),r=t.reduce((u,m)=>u+(m.total||0),0);if(e>0&&o>0)return"bg-amber-400";if(o>0&&e===0)return"bg-rose-500";if(e>0&&o===0)return"bg-emerald-400";if(r===0){const u=t.every(v=>v.status==="success");if(t.some(v=>v.status==="failed"))return"bg-rose-500";if(u)return"bg-emerald-400"}return"bg-muted-foreground"});is(()=>{W(),Z(),Wt(),document.removeEventListener("click",lt)});const ve=t=>t.cooldown_reason?.includes("429")&&t.cooldown_seconds>0?"429限流":t.cooldown_reason==="错误禁用"?"错误禁用":t.disabled?"手动禁用":t.status==="已过期"?"已过期":t.status==="即将过期"?"即将过期":"正常",nt=t=>{const e=ve(t);return e==="429限流"||e==="即将过期"?"bg-amber-200 text-amber-900":e==="错误禁用"||e==="已过期"?"bg-destructive/10 text-destructive":e==="手动禁用"?"bg-muted text-muted-foreground":"bg-emerald-500 text-white"},at=t=>t.cooldown_reason?.includes("429")&&t.cooldown_seconds>0?!0:t.disabled||t.cooldown_reason==="错误禁用",it=t=>t==="已过期"?"过期":t==="未设置"?"未设置":t,dt=t=>t.status==="已过期"?"text-rose-600":t.status==="即将过期"?"text-amber-700":t.status==="未设置"?"text-muted-foreground":"text-emerald-600",ut=t=>t<60?`${t} 秒`:t<3600?`${Math.ceil(t/60)} 分钟`:`${(t/3600).toFixed(1)} 小时`,ze=t=>t.cooldown_seconds>0?"text-amber-700":t.cooldown_reason==="错误禁用"?"text-rose-600":"text-muted-foreground",ct=t=>{const e=ve(t);return e==="手动禁用"||e==="已过期"?"bg-muted/70":""},Ee=t=>{const e=new Set(b.value);e.has(t)?e.delete(t):e.add(t),b.value=e},ft=()=>{if(Oe.value){b.value=new Set;return}b.value=new Set(H.value.map(t=>t.id))},Pt=(t,e)=>t.id||`account_${e+1}`,vt=async()=>(await w.getConfig()).accounts.map((e,o)=>({...e,id:Pt(e,o)})),mt=t=>`${t.time} [${t.level}] ${t.message}`,Ft=(t,e)=>{let o=-1;for(let u=0;u{$.value="";try{const e=await vt();Ft(e,t)}catch(e){$.value=e.message||"加载账号配置失败"}},Kt=async()=>{D.value="";try{const t=await w.getConfig();ie.value=Array.isArray(t.accounts)?t.accounts:[],se.value=JSON.stringify(gt(ie.value),null,2),N.value=!0,Me.value=!0}catch(t){D.value=t.message||"加载账号配置失败"}},Pe=()=>{Me.value=!1,D.value="",N.value=!1},pt=()=>{const t=JSON.parse(se.value);if(!Array.isArray(t))throw new Error("配置格式必须是数组。");return t},Ht=t=>typeof t!="string"||!t?t:t.length<=6?`${t.slice(0,2)}****`:`${t.slice(0,3)}****`,gt=t=>{const e=new Set(["secure_c_ses","csesidx","config_id","host_c_oses","mail_password","mail_refresh_token","mail_client_id"]);return t.map(o=>{const r={...o};return e.forEach(u=>{const m=r[u];m&&(r[u]=Ht(m))}),r})},Jt=()=>{if(D.value="",!N.value){try{ie.value=pt()}catch(t){D.value=t.message||"JSON 格式错误";return}se.value=JSON.stringify(gt(ie.value),null,2),N.value=!0;return}se.value=JSON.stringify(ie.value,null,2),N.value=!1},Gt=async()=>{D.value="";try{const t=pt();await k.updateConfig(t),d.success("配置保存成功"),Pe()}catch(t){D.value=t.message||"保存失败",d.error(t.message||"保存失败")}},Fe=()=>{p.value=!1,$.value=""},Yt=async()=>{if(ke.value===null)return;const t=[...Ze.value];t[ke.value]={...t[ke.value],id:h.value.id,secure_c_ses:h.value.secure_c_ses,csesidx:h.value.csesidx,config_id:h.value.config_id,host_c_oses:h.value.host_c_oses||void 0,expires_at:h.value.expires_at||void 0};try{await k.updateConfig(t),d.success("账号编辑成功"),Fe()}catch(e){$.value=e.message||"保存失败",d.error(e.message||"保存失败")}},qt=async()=>{try{await k.bulkEnable(Array.from(b.value)),d.success("批量启用成功"),b.value=new Set}catch(t){d.error(t.message||"批量启用失败")}},Qt=async()=>{if(await T.ask({title:"批量禁用",message:"确定要批量禁用选中的账号吗?"}))try{await k.bulkDisable(Array.from(b.value)),d.success("批量禁用成功"),b.value=new Set}catch(e){d.error(e.message||"批量禁用失败")}},Xt=async()=>{if(await T.ask({title:"批量删除",message:"确定要批量删除选中的账号吗?",confirmText:"删除"}))try{await k.bulkDelete(Array.from(b.value)),d.success("批量删除成功"),b.value=new Set}catch(e){d.error(e.message||"批量删除失败")}},bt=async t=>{try{await k.enableAccount(t),d.success("账号已启用")}catch(e){d.error(e.message||"启用失败")}},yt=async t=>{if(await T.ask({title:"禁用账号",message:"确定要禁用该账号吗?"}))try{await k.disableAccount(t),d.success("账号已禁用")}catch(o){d.error(o.message||"禁用失败")}},_t=async t=>{if(await T.ask({title:"删除账号",message:"确定要删除该账号吗?",confirmText:"删除"}))try{await k.deleteAccount(t),d.success("账号已删除")}catch(o){d.error(o.message||"删除失败")}};let me=null,xe=null,pe=null,Le=!1;const W=()=>{me!==null&&(window.clearInterval(me),me=null)},Z=()=>{xe!==null&&(window.clearInterval(xe),xe=null)},Wt=()=>{pe!==null&&(window.clearInterval(pe),pe=null),Le=!1},ht=t=>t==="pending"?"等待中":t==="running"?"执行中":t==="success"?"成功":t==="failed"?"失败":t,wt=t=>{const e=t.status,o=t.success_count??0,r=t.fail_count??0;if(e==="running"||e==="pending")return"bg-sky-400";if(e==="success"||e==="failed"){if(o>0&&r===0)return"bg-emerald-400";if(r>0&&o===0)return"bg-rose-500";if(o>0&&r>0)return"bg-amber-400"}return"bg-muted-foreground"},kt=async t=>{if($e(t)){W();return}const e=await w.getRegisterTask(t);if($e(e.id)){W();return}if(Be(e),e.status!=="running"&&e.status!=="pending"){O.value=!1,W(),await fe();const o=e.success_count||0,r=e.fail_count||0;o>0&&r>0?d.success(`注册任务完成:成功 ${o},失败 ${r}`):o>0&&r===0?d.success(`注册任务完成:全部成功 (${o})`):r>0&&o===0?d.error(`注册任务完成:全部失败 (${r})`):d.error("注册任务失败")}},Ct=async t=>{if(Ie(t)){Z();return}const e=await w.getLoginTask(t);if(Ie(e.id)){Z();return}if(Se(e),e.status!=="running"&&e.status!=="pending"){S.value=!1,Z(),await fe();const o=e.success_count||0,r=e.fail_count||0;o>0&&r>0?d.success(`刷新任务完成:成功 ${o},失败 ${r}`):o>0&&r===0?d.success(`刷新任务完成:全部成功 (${o})`):r>0&&o===0?d.error(`刷新任务完成:全部失败 (${r})`):d.error("刷新任务失败")}},Tt=t=>{W(),me=window.setInterval(()=>{kt(t).catch(e=>{_.value=e?.message||"注册任务更新失败",W(),O.value=!1})},3e3)},Ke=t=>{Z(),xe=window.setInterval(()=>{Ct(t).catch(e=>{_.value=e?.message||"刷新任务更新失败",Z(),S.value=!1})},3e3)},Zt=()=>{pe===null&&(pe=window.setInterval(async()=>{if(!Le&&!q.value&&!(me!==null||xe!==null)&&!(!O.value&&!S.value&&!c.value&&!f.value)){Le=!0;try{await He()}catch(t){_.value=t?.message||"后台刷新失败"}finally{Le=!1}}},6e3))},He=async()=>{try{const t=await w.getRegisterCurrent();t&&"id"in t&&!$e(t.id)&&(Be(t),(t.status==="running"||t.status==="pending")&&(O.value=!0,Tt(t.id)))}catch(t){_.value=t.message||"加载注册任务失败"}try{const t=await w.getLoginCurrent();t&&"id"in t&&!Ie(t.id)&&(Se(t),(t.status==="running"||t.status==="pending")&&(S.value=!0,Ke(t.id)))}catch(t){_.value=t.message||"加载刷新任务失败"}},es=async()=>{_.value="",O.value=!0;try{const t=Number.isFinite(de.value)&&de.value>0?de.value:void 0,e=await w.startRegister(t);Be(e),Tt(e.id),ye.value=!1,q.value=!0}catch(t){_.value=t.message||"启动注册失败",O.value=!1}},St=async()=>{if(b.value.size){_.value="",S.value=!0;try{const t=await w.startLogin(Array.from(b.value));Se(t),Ke(t.id),Ue()}catch(t){_.value=t.message||"启动刷新失败",S.value=!1}}},ts=async()=>{_.value="",S.value=!0;try{await w.checkLogin();const t=await w.getLoginCurrent();if(t&&"id"in t){Se(t),Ke(t.id),Ue();return}S.value=!1}catch(t){_.value=t.message||"触发刷新失败",S.value=!1}};return(t,e)=>(l(),n(ge,null,[s("div",ps,[s("section",gs,[s("div",bs,[s("div",ys,[R(s("input",{"onUpdate:modelValue":e[0]||(e[0]=o=>ae.value=o),type:"text",placeholder:"搜索账号 ID",class:"w-full rounded-full border border-input bg-background px-4 py-2 text-sm sm:w-48"},null,512),[[V,ae.value]]),G(cs,{modelValue:te.value,"onUpdate:modelValue":e[1]||(e[1]=o=>te.value=o),options:Et},null,8,["modelValue"])]),s("div",_s,[G(be,{modelValue:Oe.value,"onUpdate:modelValue":ft},{default:$t(()=>[...e[27]||(e[27]=[ee(" 全选 ",-1)])]),_:1},8,["modelValue"]),s("span",null,"已选 "+a(B.value)+" / "+a(H.value.length)+" 个账号",1),s("div",hs,[s("button",{type:"button",class:x(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",Y.value==="table"?"bg-accent text-accent-foreground":""]),onClick:e[2]||(e[2]=o=>Y.value="table"),"aria-label":"列表视图"},[...e[28]||(e[28]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])],2),s("button",{type:"button",class:x(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",Y.value==="card"?"bg-accent text-accent-foreground":""]),onClick:e[3]||(e[3]=o=>Y.value="card"),"aria-label":"卡片视图"},[...e[29]||(e[29]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h7v6H4V6zm9 0h7v6h-7V6zM4 14h7v4H4v-4zm9 0h7v4h-7v-4z"})],-1)])],2)])])]),s("div",ws,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary disabled:cursor-not-allowed disabled:opacity-50",disabled:j(ne),onClick:fe}," 刷新列表 ",8,ks),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:Kt}," 账户配置 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary disabled:cursor-not-allowed disabled:opacity-50",disabled:O.value,onClick:At}," 添加账户 ",8,Cs),s("div",{ref_key:"moreActionsRef",ref:De,class:"relative"},[s("button",{class:x(["flex items-center gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary",P.value?"bg-accent text-accent-foreground":""]),onClick:Ot},[e[30]||(e[30]=ee(" 更多操作 ",-1)),e[31]||(e[31]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1)),Bt.value?(l(),n("span",{key:0,class:x(["ml-1 h-2 w-2 rounded-full",zt.value]),"aria-hidden":"true"},null,2)):g("",!0)],2),P.value?(l(),n("div",Ts,[s("button",{type:"button",class:"flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm text-foreground transition-colors hover:bg-accent",onClick:e[4]||(e[4]=o=>{Ue(),le()})}," 任务状态 "),e[32]||(e[32]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:x(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",S.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:S.value,onClick:e[5]||(e[5]=o=>{ts(),le()})}," 刷新过期 ",10,Ss),s("button",{type:"button",class:x(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",!B.value||S.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:!B.value||S.value,onClick:e[6]||(e[6]=o=>{St(),le()})}," 刷新选中 ",10,$s),e[33]||(e[33]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:x(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",B.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!B.value,onClick:e[7]||(e[7]=o=>{qt(),le()})}," 批量启用 ",10,Is),s("button",{type:"button",class:x(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",B.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!B.value,onClick:e[8]||(e[8]=o=>{Qt(),le()})}," 批量禁用 ",10,Es),s("button",{type:"button",class:x(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",B.value?"text-destructive hover:bg-destructive/10":"cursor-not-allowed text-muted-foreground"]),disabled:!B.value,onClick:e[9]||(e[9]=o=>{Xt(),le()})}," 批量删除 ",10,Ls)])):g("",!0)],512)]),Y.value==="card"?(l(),n("div",As,[(l(!0),n(ge,null,Ve(H.value,o=>(l(),n("div",{key:o.id,class:x(["rounded-2xl border border-border bg-card p-4",ct(o)]),onClick:r=>Ee(o.id)},[s("div",Vs,[s("div",null,[e[34]||(e[34]=s("p",{class:"text-xs text-muted-foreground"},"账号 ID",-1)),s("p",js,a(o.id),1)]),s("div",Ms,[G(be,{modelValue:b.value.has(o.id),"onUpdate:modelValue":r=>Ee(o.id),onClick:e[10]||(e[10]=M(()=>{},["stop"]))},null,8,["modelValue","onUpdate:modelValue"]),s("span",{class:x(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",nt(o)])},a(ve(o)),3)])]),s("div",Ds,[s("div",null,[e[35]||(e[35]=s("p",null,"剩余时间",-1)),s("p",{class:x(["mt-1 text-sm font-semibold",dt(o)])},a(it(o.remaining_display)),3),o.expires_at?(l(),n("p",Os,a(o.expires_at),1)):g("",!0)]),s("div",null,[e[36]||(e[36]=s("p",null,"冷却",-1)),s("p",{class:x(["mt-1",ze(o)])},[o.cooldown_seconds>0?(l(),n("span",Bs,a(ut(o.cooldown_seconds))+" · "+a(o.cooldown_reason),1)):(l(),n("span",Ns,a(o.cooldown_reason||"无冷却"),1))],2)]),s("div",null,[e[37]||(e[37]=s("p",null,"失败数",-1)),s("p",Us,a(o.error_count),1)]),s("div",null,[e[38]||(e[38]=s("p",null,"会话数",-1)),s("p",zs,a(o.conversation_count),1)])]),s("div",Ps,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:M(r=>xt(o.id),["stop"])}," 编辑 ",8,Fs),at(o)?(l(),n("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[e[11]||(e[11]=M(()=>{},["stop"])),r=>bt(o.id)]}," 启用 ",8,Ks)):(l(),n("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[e[12]||(e[12]=M(()=>{},["stop"])),r=>yt(o.id)]}," 禁用 ",8,Hs)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:[e[13]||(e[13]=M(()=>{},["stop"])),r=>_t(o.id)]}," 删除 ",8,Js)])],10,Rs))),128)),!H.value.length&&!j(ne)?(l(),n("div",Gs," 暂无账号数据,请检查后台配置。 ")):g("",!0)])):(l(),n("div",Ys,[s("table",qs,[s("thead",Qs,[s("tr",null,[s("th",Xs,[G(be,{modelValue:Oe.value,"onUpdate:modelValue":ft},null,8,["modelValue"])]),e[40]||(e[40]=s("th",{class:"py-3 pr-6"},"账号 ID",-1)),e[41]||(e[41]=s("th",{class:"py-3 pr-6"},"状态",-1)),s("th",Ws,[s("span",Zs,[e[39]||(e[39]=ee(" 剩余/过期 ",-1)),G(ms,{text:"过期时间为 12 小时,账户过期以北京时间为准。"})])]),e[42]||(e[42]=s("th",{class:"py-3 pr-6"},"冷却",-1)),e[43]||(e[43]=s("th",{class:"py-3 pr-6"},"失败数",-1)),e[44]||(e[44]=s("th",{class:"py-3 pr-6"},"会话数",-1)),e[45]||(e[45]=s("th",{class:"py-3 text-right"},"操作",-1))])]),s("tbody",eo,[!H.value.length&&!j(ne)?(l(),n("tr",to,[...e[46]||(e[46]=[s("td",{colspan:"8",class:"py-8 text-center text-muted-foreground"}," 暂无账号数据,请检查后台配置。 ",-1)])])):g("",!0),(l(!0),n(ge,null,Ve(H.value,o=>(l(),n("tr",{key:o.id,class:x(["border-t border-border",ct(o)]),onClick:r=>Ee(o.id)},[s("td",{class:"py-4 pr-4",onClick:e[14]||(e[14]=M(()=>{},["stop"]))},[G(be,{modelValue:b.value.has(o.id),"onUpdate:modelValue":r=>Ee(o.id)},null,8,["modelValue","onUpdate:modelValue"])]),s("td",oo,a(o.id),1),s("td",ro,[s("span",{class:x(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",nt(o)])},a(ve(o)),3)]),s("td",lo,[s("div",{class:x(["text-sm font-semibold",dt(o)])},a(it(o.remaining_display)),3),o.expires_at?(l(),n("span",no,a(o.expires_at),1)):g("",!0)]),s("td",ao,[o.cooldown_seconds>0?(l(),n("span",{key:0,class:x(ze(o))},a(ut(o.cooldown_seconds))+" · "+a(o.cooldown_reason),3)):(l(),n("span",{key:1,class:x(ze(o))},a(o.cooldown_reason||"无冷却"),3))]),s("td",io,a(o.error_count),1),s("td",uo,a(o.conversation_count),1),s("td",co,[s("div",fo,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:M(r=>xt(o.id),["stop"])}," 编辑 ",8,vo),at(o)?(l(),n("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:M(r=>bt(o.id),["stop"])}," 启用 ",8,mo)):(l(),n("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:M(r=>yt(o.id),["stop"])}," 禁用 ",8,xo)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:M(r=>_t(o.id),["stop"])}," 删除 ",8,po)])])],10,so))),128))])])]))])]),G(fs,{open:j(T).open.value,title:j(T).title.value,message:j(T).message.value,"confirm-text":j(T).confirmText.value,"cancel-text":j(T).cancelText.value,onConfirm:j(T).confirm,onCancel:j(T).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(l(),Re(je,{to:"body"},[ye.value?(l(),n("div",go,[s("div",bo,[s("div",yo,[s("div",null,[e[47]||(e[47]=s("p",{class:"text-sm font-medium text-foreground"},"添加账户",-1)),s("p",_o,a(U.value==="register"?"创建 DuckMail 账号并自动注册":"批量导入账户配置"),1)]),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Ne}," 关闭 ")]),s("div",ho,[s("div",wo,[s("div",ko,[s("button",{type:"button",class:x(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",U.value==="register"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:e[15]||(e[15]=o=>U.value="register")}," 自动注册 ",2),s("button",{type:"button",class:x(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",U.value==="import"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:e[16]||(e[16]=o=>U.value="import")}," 批量导入 ",2)]),U.value==="register"?(l(),n("div",Co,[e[48]||(e[48]=s("label",{class:"block text-xs text-muted-foreground"},"注册数量",-1)),R(s("input",{"onUpdate:modelValue":e[17]||(e[17]=o=>de.value=o),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,de.value,void 0,{number:!0}]]),e[49]||(e[49]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"}," 默认域名(可在配置面板修改,推荐使用) ",-1))])):(l(),n("div",To,[e[50]||(e[50]=s("label",{class:"block text-xs text-muted-foreground"},"批量导入(每行一个)",-1)),R(s("textarea",{"onUpdate:modelValue":e[18]||(e[18]=o=>ue.value=o),class:"min-h-[140px] w-full rounded-2xl border border-input bg-background px-3 py-2 text-xs font-mono",placeholder:`duckmail----you@example.com----password +user@outlook.com----loginPassword----clientId----refreshToken`},null,512),[[V,ue.value]]),e[51]||(e[51]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},[s("p",null,"支持两种格式:"),s("p",{class:"mt-1 font-mono"},"duckmail----email----password"),s("p",{class:"mt-1 font-mono"},"email----password----clientId----refreshToken"),s("p",{class:"mt-2 text-[11px]"},'导入后请执行一次"刷新选中"以获取 Cookie。')],-1)),z.value?(l(),n("div",So,a(z.value),1)):g("",!0)])),e[53]||(e[53]=s("div",{class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-[11px] leading-relaxed"},[s("p",{class:"text-xs font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)"),s("p",{class:"mt-1 text-muted-foreground"},[ee("详细声明请查看项目 "),s("a",{href:"https://github.com/Dreamy-rain/gemini-business2api/blob/main/docs/DISCLAIMER.md",target:"_blank",class:"text-primary hover:underline font-medium"},"DISCLAIMER.md")])],-1)),G(be,{modelValue:ce.value,"onUpdate:modelValue":e[19]||(e[19]=o=>ce.value=o)},{default:$t(()=>[...e[52]||(e[52]=[ee(" 我已阅读并同意上述说明与限制 ",-1)])]),_:1},8,["modelValue"])])]),s("div",$o,[s("div",Io,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Ne}," 取消 "),U.value==="register"?(l(),n("button",{key:0,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",disabled:O.value||!ce.value,onClick:es}," 开始注册 ",8,Eo)):(l(),n("button",{key:1,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",disabled:_e.value||!ce.value,onClick:Vt}," 导入并保存 ",8,Lo))])])])])):g("",!0)])),(l(),Re(je,{to:"body"},[q.value?(l(),n("div",Ao,[s("div",Ro,[s("div",Vo,[e[54]||(e[54]=s("div",null,[s("p",{class:"text-sm font-medium text-foreground"},"任务状态"),s("p",{class:"mt-1 text-xs text-muted-foreground"},"注册与刷新任务的状态与日志")],-1)),s("div",jo,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-muted-foreground transition-colors hover:border-primary hover:text-primary disabled:cursor-not-allowed disabled:opacity-50",disabled:!Q.value.length&&!X.value.length&&!c.value&&!f.value&&!_.value,onClick:Dt}," 清空日志 ",8,Mo),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Mt}," 关闭 ")])]),s("div",Do,[_.value?(l(),n("div",Oo,a(_.value),1)):g("",!0),c.value||f.value?(l(),n("div",Bo,[c.value?(l(),n("div",No,[s("div",Uo,[s("span",{class:x(["h-2.5 w-2.5 rounded-full",wt(c.value)]),"aria-hidden":"true"},null,2),e[55]||(e[55]=ee(" 注册任务 ",-1))]),s("div",zo,[s("span",null,"状态:"+a(ht(c.value.status)),1),s("span",null,"进度:"+a(c.value.progress)+"/"+a(c.value.count),1),s("span",null,"成功:"+a(c.value.success_count),1),s("span",null,"失败:"+a(c.value.fail_count),1)])])):g("",!0),f.value?(l(),n("div",Po,[s("div",Fo,[s("span",{class:x(["h-2.5 w-2.5 rounded-full",wt(f.value)]),"aria-hidden":"true"},null,2),e[56]||(e[56]=ee(" 刷新任务 ",-1))]),s("div",Ko,[s("span",null,"状态:"+a(ht(f.value.status)),1),s("span",null,"进度:"+a(f.value.progress)+"/"+a(f.value.account_ids.length),1),s("span",null,"成功:"+a(f.value.success_count),1),s("span",null,"失败:"+a(f.value.fail_count),1)])])):g("",!0)])):g("",!0),Q.value.length||X.value.length?(l(),n("div",Ho,[s("div",{ref_key:"taskLogsRef",ref:We,class:"scrollbar-slim flex-1 overflow-y-auto rounded-2xl border border-border bg-muted/30 p-3"},[Q.value.length?(l(),n("div",Jo,[e[57]||(e[57]=s("p",{class:"text-xs font-semibold text-foreground"},"注册日志",-1)),s("div",Go,[(l(!0),n(ge,null,Ve(Q.value,(o,r)=>(l(),n("div",{key:`reg-${r}`,class:"font-mono"},a(mt(o)),1))),128))])])):g("",!0),X.value.length?(l(),n("div",Yo,[e[58]||(e[58]=s("p",{class:"text-xs font-semibold text-foreground"},"刷新日志",-1)),s("div",qo,[(l(!0),n(ge,null,Ve(X.value,(o,r)=>(l(),n("div",{key:`login-${r}`,class:"font-mono"},a(mt(o)),1))),128))])])):g("",!0)],512)])):g("",!0),!_.value&&!c.value&&!f.value&&!Q.value.length&&!X.value.length?(l(),n("div",Qo," 暂无任务 ")):g("",!0)])])])):g("",!0)])),(l(),Re(je,{to:"body"},[p.value?(l(),n("div",Xo,[s("div",Wo,[s("div",{class:"flex items-center justify-between"},[e[59]||(e[59]=s("p",{class:"text-sm font-medium text-foreground"},"编辑账号",-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Fe}," 关闭 ")]),$.value?(l(),n("div",Zo,a($.value),1)):g("",!0),s("div",er,[e[60]||(e[60]=s("label",{class:"block text-xs text-muted-foreground"},"账号 ID",-1)),R(s("input",{"onUpdate:modelValue":e[20]||(e[20]=o=>h.value.id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",disabled:""},null,512),[[V,h.value.id]]),e[61]||(e[61]=s("label",{class:"block text-xs text-muted-foreground"},"secure_c_ses",-1)),R(s("textarea",{"onUpdate:modelValue":e[21]||(e[21]=o=>h.value.secure_c_ses=o),class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",rows:"3"},null,512),[[V,h.value.secure_c_ses]]),e[62]||(e[62]=s("label",{class:"block text-xs text-muted-foreground"},"csesidx",-1)),R(s("input",{"onUpdate:modelValue":e[22]||(e[22]=o=>h.value.csesidx=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,h.value.csesidx]]),e[63]||(e[63]=s("label",{class:"block text-xs text-muted-foreground"},"config_id",-1)),R(s("input",{"onUpdate:modelValue":e[23]||(e[23]=o=>h.value.config_id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,h.value.config_id]]),e[64]||(e[64]=s("label",{class:"block text-xs text-muted-foreground"},"host_c_oses",-1)),R(s("input",{"onUpdate:modelValue":e[24]||(e[24]=o=>h.value.host_c_oses=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,h.value.host_c_oses]]),e[65]||(e[65]=s("label",{class:"block text-xs text-muted-foreground"},"expires_at",-1)),R(s("input",{"onUpdate:modelValue":e[25]||(e[25]=o=>h.value.expires_at=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"2025-12-23 10:59:21"},null,512),[[V,h.value.expires_at]])]),s("div",{class:"mt-6 flex items-center justify-end gap-2"},[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Fe}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Yt}," 保存 ")])])])):g("",!0)])),(l(),Re(je,{to:"body"},[Me.value?(l(),n("div",tr,[s("div",sr,[s("div",or,[e[66]||(e[66]=s("p",{class:"text-sm font-medium text-foreground"},"账户配置(JSON)",-1)),s("div",rr,[s("button",{class:"rounded-full bg-foreground px-3 py-1 text-xs text-background transition-opacity hover:opacity-90",onClick:Jt},a(N.value?"显示原文":"脱敏显示"),1),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Pe}," 关闭 ")])]),D.value?(l(),n("div",lr,a(D.value),1)):g("",!0),s("div",nr,[R(s("textarea",{"onUpdate:modelValue":e[26]||(e[26]=o=>se.value=o),class:"h-96 w-full rounded-2xl border border-input bg-background px-4 py-3 font-mono text-xs text-foreground",spellcheck:"false",readonly:N.value},null,8,ar),[[V,se.value]])]),s("div",ir,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Pe}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",onClick:Gt,disabled:N.value}," 保存 ",8,dr)])])])):g("",!0)]))],64))}});export{pr as default}; diff --git a/static/assets/Accounts-lQSfPTKz.js b/static/assets/Accounts-lQSfPTKz.js new file mode 100644 index 0000000000000000000000000000000000000000..98877af13da73920dc395f542d280a3dbb115e77 --- /dev/null +++ b/static/assets/Accounts-lQSfPTKz.js @@ -0,0 +1 @@ +import{g as C,C as Ft,h as a,d as Kt,D as Ht,i as N,o as Jt,s as Gt,j as Yt,c as l,a as s,x as U,y as Ce,m as V,v as I,A as xt,t as n,n as b,u as S,b as v,f as z,F as ue,r as Te,T as Se,w as A,e as r,E as Qt}from"./index-DDWWwh2l.js";import{_ as qt}from"./SelectMenu.vue_vue_type_script_setup_true_lang-BgTufWxo.js";import{_ as de}from"./Checkbox.vue_vue_type_script_setup_true_lang-CvXZKsyi.js";import{_ as Wt}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-Bos9Whi2.js";import{u as Xt}from"./useConfirmDialog-B1UvQk4s.js";import{_ as Zt}from"./HelpTip.vue_vue_type_script_setup_true_lang-C7-LVvI-.js";const y={list:()=>C.get("/admin/accounts"),getConfig:()=>C.get("/admin/accounts-config"),updateConfig:x=>C.put("/admin/accounts-config",x),delete:x=>C.delete(`/admin/accounts/${x}`),disable:x=>C.put(`/admin/accounts/${x}/disable`),enable:x=>C.put(`/admin/accounts/${x}/enable`),startRegister:(x,_)=>C.post("/admin/register/start",{count:x,domain:_}),getRegisterTask:x=>C.get(`/admin/register/task/${x}`),getRegisterCurrent:()=>C.get("/admin/register/current"),startLogin:x=>C.post("/admin/login/start",x),getLoginTask:x=>C.get(`/admin/login/task/${x}`),getLoginCurrent:()=>C.get("/admin/login/current"),checkLogin:()=>C.post("/admin/login/check")},es=Ft("accounts",()=>{const x=a([]),_=a(!1);async function T(){_.value=!0;try{const u=await y.list();x.value=Array.isArray(u)?u:u.accounts||[]}finally{_.value=!1}}async function ee(u){await y.delete(u),await T()}async function h(u){await y.disable(u),await T()}async function te(u){await y.enable(u),await T()}async function Q(u){await Promise.all(u.map(L=>y.enable(L))),await T()}async function g(u){await Promise.all(u.map(L=>y.disable(L))),await T()}async function P(u){await Promise.all(u.map(L=>y.delete(L))),await T()}async function se(u){await y.updateConfig(u),await T()}return{accounts:x,isLoading:_,loadAccounts:T,deleteAccount:ee,disableAccount:h,enableAccount:te,bulkEnable:Q,bulkDisable:g,bulkDelete:P,updateConfig:se}}),ts={class:"space-y-8"},ss={class:"rounded-3xl border border-border bg-card p-6"},os={class:"flex flex-wrap items-center justify-between gap-4"},rs={class:"grid w-full grid-cols-2 gap-3 sm:flex sm:w-auto sm:items-center"},ls={class:"flex w-full flex-wrap items-center gap-3 text-xs text-muted-foreground sm:w-auto sm:flex-nowrap"},ns={class:"ml-auto flex items-center gap-2 sm:ml-0"},as={class:"mt-4 flex flex-wrap items-center gap-2"},is=["disabled"],us=["disabled"],ds={key:0,class:"absolute right-0 z-10 mt-2 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg"},cs=["disabled"],fs=["disabled"],vs=["disabled"],xs=["disabled"],gs=["disabled"],ps={key:0,class:"mt-6 grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3"},ms=["onClick"],bs={class:"flex items-start justify-between gap-3"},ys={class:"mt-1 font-mono text-xs text-foreground"},_s={class:"flex items-center gap-2"},ws={class:"mt-4 grid grid-cols-2 gap-3 text-xs text-muted-foreground"},ks={key:0,class:"mt-1 text-[11px]"},hs={key:0},Cs={key:1},Ts={class:"mt-1 text-sm font-semibold text-foreground"},Ss={class:"mt-1 text-sm font-semibold text-foreground"},As={class:"mt-4 flex flex-wrap items-center gap-2"},Ls=["onClick"],Es=["onClick"],$s=["onClick"],Rs=["onClick"],Vs={key:0,class:"rounded-2xl border border-border bg-background p-4 text-center text-xs text-muted-foreground"},Is={key:1,class:"relative mt-6 overflow-x-auto overflow-y-visible"},js={class:"min-w-full text-left text-sm"},Ds={class:"text-xs uppercase tracking-[0.2em] text-muted-foreground"},Ms={class:"py-3 pr-4"},Os={class:"py-3 pr-6"},Bs={class:"inline-flex items-center gap-2"},Ns={class:"text-sm text-foreground"},Us={key:0},zs=["onClick"],Ps={class:"py-4 pr-6 font-mono text-xs text-foreground"},Fs={class:"py-4 pr-6"},Ks={class:"py-4 pr-6"},Hs={key:0,class:"block text-[11px] text-muted-foreground"},Js={class:"py-4 pr-6 text-xs"},Gs={class:"py-4 pr-6 text-xs text-muted-foreground"},Ys={class:"py-4 pr-6 text-xs text-muted-foreground"},Qs={class:"py-4 text-right"},qs={class:"flex flex-wrap justify-end gap-2"},Ws=["onClick"],Xs=["onClick"],Zs=["onClick"],eo=["onClick"],to={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},so={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},oo={class:"mt-4 space-y-4 text-sm"},ro={class:"mt-6 flex items-center justify-end gap-2"},lo=["disabled"],no={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ao={class:"flex h-[80vh] w-full max-w-2xl flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},io={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},uo={class:"flex items-center gap-2"},co=["disabled"],fo={class:"flex min-h-0 flex-1 flex-col px-6 py-4"},vo={key:0,class:"rounded-2xl bg-destructive/10 px-3 py-2 text-xs text-destructive"},xo={key:1,class:"grid gap-3 text-xs text-muted-foreground"},go={key:0,class:"space-y-1"},po={class:"flex flex-wrap gap-x-4 gap-y-1"},mo={key:1,class:"space-y-1"},bo={class:"flex flex-wrap gap-x-4 gap-y-1"},yo={key:2,class:"mt-4 flex min-h-0 flex-1 flex-col"},_o={key:0,class:"space-y-2"},wo={class:"space-y-1 text-[11px] text-muted-foreground"},ko={key:1,class:"mt-4 space-y-2"},ho={class:"space-y-1 text-[11px] text-muted-foreground"},Co={key:3,class:"mt-4 rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},To={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},So={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},Ao={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Lo={class:"mt-4 space-y-3 text-sm"},Eo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},$o={class:"w-full max-w-3xl rounded-3xl border border-border bg-card p-6 shadow-xl"},Ro={class:"flex items-center justify-between"},Vo={class:"flex items-center gap-2"},Io={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},jo={class:"mt-4"},Do=["readonly"],Mo={class:"mt-6 flex items-center justify-end gap-2"},Oo=["disabled"],De="accounts-register-task-cache",Me="accounts-login-task-cache",Oe="accounts-register-log-clear",Be="accounts-login-log-clear",Ne="accounts-register-task-cleared-id",Ue="accounts-login-task-cleared-id",Ko=Kt({__name:"Accounts",setup(x){const _=es(),{accounts:T,isLoading:ee}=Ht(_),h=Xt(),te=a(""),Q=a("all"),g=a(new Set),P=a("table"),se=a(!1),u=a(""),L=a(!1),E=a(""),q=a(""),j=a(!1),oe=a([]),re=a(1),ce=a(!1),F=a(!1),D=a(!1),Ae=a(null),fe=a(null),ve=a(null),M=a(null),O=a(null),W=a(0),X=a(0),xe=a(!1),d=a(null),c=a(null),ze=a(null),$=a(!1),k=a(!1),p=a(""),m=a({id:"",secure_c_ses:"",csesidx:"",config_id:"",host_c_oses:"",expires_at:""}),ge=a(null),Pe=a([]),gt=[{label:"全部状态",value:"all"},{label:"正常",value:"正常"},{label:"即将过期",value:"即将过期"},{label:"已过期",value:"已过期"},{label:"手动禁用",value:"手动禁用"},{label:"错误禁用",value:"错误禁用"},{label:"429限流",value:"429限流"}],B=N(()=>{const e=te.value.trim().toLowerCase();return T.value.filter(t=>{const o=!e||t.id.toLowerCase().includes(e),i=Q.value==="all"||le(t)===Q.value;return o&&i})}),R=N(()=>g.value.size),Le=N(()=>B.value.length>0&&B.value.every(e=>g.value.has(e.id))),pe=async()=>{await _.loadAccounts(),g.value=new Set,D.value=!1},Fe=e=>{try{const t=localStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}},Ke=e=>{try{return localStorage.getItem(e)||null}catch{return null}},me=(e,t)=>{try{if(t){localStorage.setItem(e,t);return}localStorage.removeItem(e)}catch{}},He=(e,t)=>{try{localStorage.setItem(e,JSON.stringify(t))}catch{}},Je=e=>{try{localStorage.removeItem(e)}catch{}},Ge=e=>{const t=localStorage.getItem(e),o=Number(t);return Number.isFinite(o)?o:0},be=(e,t)=>{try{localStorage.setItem(e,String(t))}catch{}},Ee=(e,t=!0)=>{e&&(e.id&&e.id===M.value||(e.id&&M.value&&e.id!==M.value&&(M.value=null,me(Ne,null)),d.value=e,e.id&&e.id!==fe.value&&(fe.value=e.id,W.value=0,be(Oe,0)),t&&He(De,e)))},ye=(e,t=!0)=>{e&&(e.id&&e.id===O.value||(e.id&&O.value&&e.id!==O.value&&(O.value=null,me(Ue,null)),c.value=e,e.id&&e.id!==ve.value&&(ve.value=e.id,X.value=0,be(Be,0)),t&&He(Me,e)))},pt=()=>{W.value=Ge(Oe),X.value=Ge(Be),M.value=Ke(Ne),O.value=Ke(Ue);const e=Fe(De);e&&e.id!==M.value&&(d.value=e,fe.value=e.id||null);const t=Fe(Me);t&&t.id!==O.value&&(c.value=t,ve.value=t.id||null)},mt=()=>{ce.value=!0,xe.value=!1},Ye=()=>{ce.value=!1},bt=async()=>{try{const e=[],t=d.value?.id,o=c.value?.id;if(t&&!_e(t)&&e.push(ct(t)),o&&!we(o)&&e.push(ft(o)),!e.length){await je();return}await Promise.all(e)}catch(e){p.value=e?.message||"任务状态更新失败"}},yt=async()=>{F.value=!0,await bt()},_t=()=>{F.value=!1},wt=()=>{const e=d.value?.id||null,t=c.value?.id||null;M.value=e,O.value=t,me(Ne,e),me(Ue,t),W.value=d.value?.logs?.length||0,X.value=c.value?.logs?.length||0,be(Oe,W.value),be(Be,X.value),d.value=null,c.value=null,fe.value=null,ve.value=null,p.value="",$.value=!1,k.value=!1,J(),G(),Je(De),Je(Me)},_e=e=>!!(e&&e===M.value),we=e=>!!(e&&e===O.value),kt=()=>{D.value=!D.value},Z=()=>{D.value=!1},Qe=e=>{if(!D.value)return;const t=e.target;Ae.value&&!Ae.value.contains(t)&&(D.value=!1)};Jt(async()=>{pt(),await pe(),await je(),Nt(),document.addEventListener("click",Qe)});const K=N(()=>{const e=d.value?.logs||[];return W.value?e.slice(W.value):e}),H=N(()=>{const e=c.value?.logs||[];return X.value?e.slice(X.value):e}),ht=N(()=>!!p.value||!!d.value||!!c.value||K.value.length>0||H.value.length>0),Ct=async()=>{await Qt();const e=ze.value;e&&(e.scrollTop=e.scrollHeight)};Gt([K,H,F],async()=>{F.value&&await Ct()},{deep:!0});const Tt=N(()=>{const e=d.value?.status,t=c.value?.status;return e==="running"||e==="pending"||t==="running"||t==="pending"}),St=N(()=>{if(p.value)return"bg-rose-500";if(Tt.value)return"bg-sky-400";const e=[];if(d.value){const f=d.value.success_count??0,w=d.value.fail_count??0,Y=d.value.count??f+w;e.push({success:f,fail:w,total:Y,status:d.value.status})}if(c.value){const f=c.value.success_count??0,w=c.value.fail_count??0,Y=c.value.account_ids?.length??f+w;e.push({success:f,fail:w,total:Y,status:c.value.status})}if(!e.length)return"bg-muted-foreground";const t=e.reduce((f,w)=>f+w.success,0),o=e.reduce((f,w)=>f+w.fail,0),i=e.reduce((f,w)=>f+(w.total||0),0);if(t>0&&o>0)return"bg-amber-400";if(o>0&&t===0)return"bg-rose-500";if(t>0&&o===0)return"bg-emerald-400";if(i===0){const f=e.every(Y=>Y.status==="success");if(e.some(Y=>Y.status==="failed"))return"bg-rose-500";if(f)return"bg-emerald-400"}return"bg-muted-foreground"});Yt(()=>{J(),G(),Bt(),document.removeEventListener("click",Qe)});const le=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?"429限流":e.cooldown_reason==="错误禁用"?"错误禁用":e.disabled?"手动禁用":e.status==="已过期"?"已过期":e.status==="即将过期"?"即将过期":"正常",qe=e=>{const t=le(e);return t==="429限流"||t==="即将过期"?"bg-amber-200 text-amber-900":t==="错误禁用"||t==="已过期"?"bg-destructive/10 text-destructive":t==="手动禁用"?"bg-muted text-muted-foreground":"bg-emerald-500 text-white"},We=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?!0:e.disabled||e.cooldown_reason==="错误禁用",Xe=e=>e==="已过期"?"过期":e==="未设置"?"未设置":e,Ze=e=>e.status==="已过期"?"text-rose-600":e.status==="即将过期"?"text-amber-700":e.status==="未设置"?"text-muted-foreground":"text-emerald-600",et=e=>e<60?`${e} 秒`:e<3600?`${Math.ceil(e/60)} 分钟`:`${(e/3600).toFixed(1)} 小时`,$e=e=>e.cooldown_seconds>0?"text-amber-700":e.cooldown_reason==="错误禁用"?"text-rose-600":"text-muted-foreground",tt=e=>{const t=le(e);return t==="手动禁用"||t==="已过期"?"bg-muted/70":""},ke=e=>{const t=new Set(g.value);t.has(e)?t.delete(e):t.add(e),g.value=t},st=()=>{if(Le.value){g.value=new Set;return}g.value=new Set(B.value.map(e=>e.id))},At=(e,t)=>e.id||`account_${t+1}`,Lt=async()=>(await y.getConfig()).accounts.map((t,o)=>({...t,id:At(t,o)})),ot=e=>`${e.time} [${e.level}] ${e.message}`,Et=(e,t)=>{let o=-1;for(let f=0;f{u.value="";try{const t=await Lt();Et(t,e)}catch(t){u.value=t.message||"加载账号配置失败"}},$t=async()=>{E.value="";try{const e=await y.getConfig();oe.value=Array.isArray(e.accounts)?e.accounts:[],q.value=JSON.stringify(nt(oe.value),null,2),j.value=!0,L.value=!0}catch(e){E.value=e.message||"加载账号配置失败"}},Re=()=>{L.value=!1,E.value="",j.value=!1},lt=()=>{const e=JSON.parse(q.value);if(!Array.isArray(e))throw new Error("配置格式必须是数组。");return e},Rt=e=>typeof e!="string"||!e?e:e.length<=6?`${e.slice(0,2)}****`:`${e.slice(0,3)}****`,nt=e=>{const t=new Set(["secure_c_ses","csesidx","config_id","host_c_oses","mail_password"]);return e.map(o=>{const i={...o};return t.forEach(f=>{const w=i[f];w&&(i[f]=Rt(w))}),i})},Vt=()=>{if(E.value="",!j.value){try{oe.value=lt()}catch(e){E.value=e.message||"JSON 格式错误";return}q.value=JSON.stringify(nt(oe.value),null,2),j.value=!0;return}q.value=JSON.stringify(oe.value,null,2),j.value=!1},It=async()=>{E.value="";try{const e=lt();await _.updateConfig(e),Re()}catch(e){E.value=e.message||"保存失败"}},Ve=()=>{se.value=!1,u.value=""},jt=async()=>{if(ge.value===null)return;const e=[...Pe.value];e[ge.value]={...e[ge.value],id:m.value.id,secure_c_ses:m.value.secure_c_ses,csesidx:m.value.csesidx,config_id:m.value.config_id,host_c_oses:m.value.host_c_oses||void 0,expires_at:m.value.expires_at||void 0};try{await _.updateConfig(e),Ve()}catch(t){u.value=t.message||"保存失败"}},Dt=async()=>{await _.bulkEnable(Array.from(g.value)),g.value=new Set},Mt=async()=>{await h.ask({title:"批量禁用",message:"确定要批量禁用选中的账号吗?"})&&(await _.bulkDisable(Array.from(g.value)),g.value=new Set)},Ot=async()=>{await h.ask({title:"批量删除",message:"确定要批量删除选中的账号吗?",confirmText:"删除"})&&(await _.bulkDelete(Array.from(g.value)),g.value=new Set)},at=async e=>{await _.enableAccount(e)},it=async e=>{await h.ask({title:"禁用账号",message:"确定要禁用该账号吗?"})&&await _.disableAccount(e)},ut=async e=>{await h.ask({title:"删除账号",message:"确定要删除该账号吗?",confirmText:"删除"})&&await _.deleteAccount(e)};let ne=null,ae=null,ie=null,he=!1;const J=()=>{ne!==null&&(window.clearInterval(ne),ne=null)},G=()=>{ae!==null&&(window.clearInterval(ae),ae=null)},Bt=()=>{ie!==null&&(window.clearInterval(ie),ie=null),he=!1},dt=e=>e==="pending"?"等待中":e==="running"?"执行中":e==="success"?"成功":e==="failed"?"失败":e,ct=async e=>{if(_e(e)){J();return}const t=await y.getRegisterTask(e);if(_e(t.id)){J();return}Ee(t),t.status!=="running"&&t.status!=="pending"&&($.value=!1,J(),await pe())},ft=async e=>{if(we(e)){G();return}const t=await y.getLoginTask(e);if(we(t.id)){G();return}ye(t),t.status!=="running"&&t.status!=="pending"&&(k.value=!1,G(),await pe())},vt=e=>{J(),ne=window.setInterval(()=>{ct(e).catch(t=>{p.value=t?.message||"注册任务更新失败",J(),$.value=!1})},3e3)},Ie=e=>{G(),ae=window.setInterval(()=>{ft(e).catch(t=>{p.value=t?.message||"刷新任务更新失败",G(),k.value=!1})},3e3)},Nt=()=>{ie===null&&(ie=window.setInterval(async()=>{if(!he&&!F.value&&!(ne!==null||ae!==null)&&!(!$.value&&!k.value&&!d.value&&!c.value)){he=!0;try{await je()}catch(e){p.value=e?.message||"后台刷新失败"}finally{he=!1}}},6e3))},je=async()=>{try{const e=await y.getRegisterCurrent();e&&"id"in e&&!_e(e.id)&&(Ee(e),(e.status==="running"||e.status==="pending")&&($.value=!0,vt(e.id)))}catch(e){p.value=e.message||"加载注册任务失败"}try{const e=await y.getLoginCurrent();e&&"id"in e&&!we(e.id)&&(ye(e),(e.status==="running"||e.status==="pending")&&(k.value=!0,Ie(e.id)))}catch(e){p.value=e.message||"加载刷新任务失败"}},Ut=async()=>{p.value="",$.value=!0;try{const e=Number.isFinite(re.value)&&re.value>0?re.value:void 0,t=await y.startRegister(e);Ee(t),vt(t.id),ce.value=!1,F.value=!0}catch(e){p.value=e.message||"启动注册失败",$.value=!1}},zt=async()=>{if(g.value.size){p.value="",k.value=!0;try{const e=await y.startLogin(Array.from(g.value));ye(e),Ie(e.id)}catch(e){p.value=e.message||"启动刷新失败",k.value=!1}}},Pt=async()=>{p.value="",k.value=!0;try{await y.checkLogin();const e=await y.getLoginCurrent();if(e&&"id"in e){ye(e),Ie(e.id);return}k.value=!1}catch(e){p.value=e.message||"触发刷新失败",k.value=!1}};return(e,t)=>(r(),l(ue,null,[s("div",ts,[s("section",ss,[s("div",os,[s("div",rs,[V(s("input",{"onUpdate:modelValue":t[0]||(t[0]=o=>te.value=o),type:"text",placeholder:"搜索账号 ID",class:"w-full rounded-full border border-input bg-background px-4 py-2 text-sm sm:w-48"},null,512),[[I,te.value]]),U(qt,{modelValue:Q.value,"onUpdate:modelValue":t[1]||(t[1]=o=>Q.value=o),options:gt},null,8,["modelValue"])]),s("div",ls,[U(de,{modelValue:Le.value,"onUpdate:modelValue":st},{default:xt(()=>[...t[24]||(t[24]=[z(" 全选 ",-1)])]),_:1},8,["modelValue"]),s("span",null,"已选 "+n(R.value)+" / "+n(B.value.length)+" 个账号",1),s("div",ns,[s("button",{type:"button",class:b(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",P.value==="table"?"bg-accent text-accent-foreground":""]),onClick:t[2]||(t[2]=o=>P.value="table"),"aria-label":"列表视图"},[...t[25]||(t[25]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])],2),s("button",{type:"button",class:b(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",P.value==="card"?"bg-accent text-accent-foreground":""]),onClick:t[3]||(t[3]=o=>P.value="card"),"aria-label":"卡片视图"},[...t[26]||(t[26]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h7v6H4V6zm9 0h7v6h-7V6zM4 14h7v4H4v-4zm9 0h7v4h-7v-4z"})],-1)])],2)])])]),s("div",as,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:S(ee),onClick:pe}," 刷新列表 ",8,is),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:$t}," 账户配置 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:$.value,onClick:mt}," 添加账户 ",8,us),s("div",{ref_key:"moreActionsRef",ref:Ae,class:"relative"},[s("button",{class:b(["flex items-center gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary",D.value?"bg-accent text-accent-foreground":""]),onClick:kt},[t[27]||(t[27]=z(" 更多操作 ",-1)),t[28]||(t[28]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1)),ht.value?(r(),l("span",{key:0,class:b(["ml-1 h-2 w-2 rounded-full",St.value]),"aria-hidden":"true"},null,2)):v("",!0)],2),D.value?(r(),l("div",ds,[s("button",{type:"button",class:"flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm text-foreground transition-colors hover:bg-accent",onClick:t[4]||(t[4]=o=>{yt(),Z()})}," 任务状态 "),t[29]||(t[29]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:b(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",k.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:k.value,onClick:t[5]||(t[5]=o=>{Pt(),Z()})}," 刷新过期 ",10,cs),s("button",{type:"button",class:b(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",!R.value||k.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:!R.value||k.value,onClick:t[6]||(t[6]=o=>{zt(),Z()})}," 刷新选中 ",10,fs),t[30]||(t[30]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:b(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",R.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!R.value,onClick:t[7]||(t[7]=o=>{Dt(),Z()})}," 批量启用 ",10,vs),s("button",{type:"button",class:b(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",R.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!R.value,onClick:t[8]||(t[8]=o=>{Mt(),Z()})}," 批量禁用 ",10,xs),s("button",{type:"button",class:b(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",R.value?"text-destructive hover:bg-destructive/10":"cursor-not-allowed text-muted-foreground"]),disabled:!R.value,onClick:t[9]||(t[9]=o=>{Ot(),Z()})}," 批量删除 ",10,gs)])):v("",!0)],512)]),P.value==="card"?(r(),l("div",ps,[(r(!0),l(ue,null,Te(B.value,o=>(r(),l("div",{key:o.id,class:b(["rounded-2xl border border-border bg-card p-4",tt(o)]),onClick:i=>ke(o.id)},[s("div",bs,[s("div",null,[t[31]||(t[31]=s("p",{class:"text-xs text-muted-foreground"},"账号 ID",-1)),s("p",ys,n(o.id),1)]),s("div",_s,[U(de,{modelValue:g.value.has(o.id),"onUpdate:modelValue":i=>ke(o.id),onClick:t[10]||(t[10]=A(()=>{},["stop"]))},null,8,["modelValue","onUpdate:modelValue"]),s("span",{class:b(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",qe(o)])},n(le(o)),3)])]),s("div",ws,[s("div",null,[t[32]||(t[32]=s("p",null,"剩余时间",-1)),s("p",{class:b(["mt-1 text-sm font-semibold",Ze(o)])},n(Xe(o.remaining_display)),3),o.expires_at?(r(),l("p",ks,n(o.expires_at),1)):v("",!0)]),s("div",null,[t[33]||(t[33]=s("p",null,"冷却",-1)),s("p",{class:b(["mt-1",$e(o)])},[o.cooldown_seconds>0?(r(),l("span",hs,n(et(o.cooldown_seconds))+" · "+n(o.cooldown_reason),1)):(r(),l("span",Cs,n(o.cooldown_reason||"无冷却"),1))],2)]),s("div",null,[t[34]||(t[34]=s("p",null,"失败数",-1)),s("p",Ts,n(o.error_count),1)]),s("div",null,[t[35]||(t[35]=s("p",null,"会话数",-1)),s("p",Ss,n(o.conversation_count),1)])]),s("div",As,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A(i=>rt(o.id),["stop"])}," 编辑 ",8,Ls),We(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[11]||(t[11]=A(()=>{},["stop"])),i=>at(o.id)]}," 启用 ",8,Es)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[12]||(t[12]=A(()=>{},["stop"])),i=>it(o.id)]}," 禁用 ",8,$s)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:[t[13]||(t[13]=A(()=>{},["stop"])),i=>ut(o.id)]}," 删除 ",8,Rs)])],10,ms))),128)),!B.value.length&&!S(ee)?(r(),l("div",Vs," 暂无账号数据,请检查后台配置。 ")):v("",!0)])):(r(),l("div",Is,[s("table",js,[s("thead",Ds,[s("tr",null,[s("th",Ms,[U(de,{modelValue:Le.value,"onUpdate:modelValue":st},null,8,["modelValue"])]),t[37]||(t[37]=s("th",{class:"py-3 pr-6"},"账号 ID",-1)),t[38]||(t[38]=s("th",{class:"py-3 pr-6"},"状态",-1)),s("th",Os,[s("span",Bs,[t[36]||(t[36]=z(" 剩余/过期 ",-1)),U(Zt,{text:"过期时间为 12 小时,账户过期以北京时间为准。"})])]),t[39]||(t[39]=s("th",{class:"py-3 pr-6"},"冷却",-1)),t[40]||(t[40]=s("th",{class:"py-3 pr-6"},"失败数",-1)),t[41]||(t[41]=s("th",{class:"py-3 pr-6"},"会话数",-1)),t[42]||(t[42]=s("th",{class:"py-3 text-right"},"操作",-1))])]),s("tbody",Ns,[!B.value.length&&!S(ee)?(r(),l("tr",Us,[...t[43]||(t[43]=[s("td",{colspan:"8",class:"py-8 text-center text-muted-foreground"}," 暂无账号数据,请检查后台配置。 ",-1)])])):v("",!0),(r(!0),l(ue,null,Te(B.value,o=>(r(),l("tr",{key:o.id,class:b(["border-t border-border",tt(o)]),onClick:i=>ke(o.id)},[s("td",{class:"py-4 pr-4",onClick:t[14]||(t[14]=A(()=>{},["stop"]))},[U(de,{modelValue:g.value.has(o.id),"onUpdate:modelValue":i=>ke(o.id)},null,8,["modelValue","onUpdate:modelValue"])]),s("td",Ps,n(o.id),1),s("td",Fs,[s("span",{class:b(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",qe(o)])},n(le(o)),3)]),s("td",Ks,[s("div",{class:b(["text-sm font-semibold",Ze(o)])},n(Xe(o.remaining_display)),3),o.expires_at?(r(),l("span",Hs,n(o.expires_at),1)):v("",!0)]),s("td",Js,[o.cooldown_seconds>0?(r(),l("span",{key:0,class:b($e(o))},n(et(o.cooldown_seconds))+" · "+n(o.cooldown_reason),3)):(r(),l("span",{key:1,class:b($e(o))},n(o.cooldown_reason||"无冷却"),3))]),s("td",Gs,n(o.error_count),1),s("td",Ys,n(o.conversation_count),1),s("td",Qs,[s("div",qs,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A(i=>rt(o.id),["stop"])}," 编辑 ",8,Ws),We(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A(i=>at(o.id),["stop"])}," 启用 ",8,Xs)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A(i=>it(o.id),["stop"])}," 禁用 ",8,Zs)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:A(i=>ut(o.id),["stop"])}," 删除 ",8,eo)])])],10,zs))),128))])])]))])]),U(Wt,{open:S(h).open.value,title:S(h).title.value,message:S(h).message.value,"confirm-text":S(h).confirmText.value,"cancel-text":S(h).cancelText.value,onConfirm:S(h).confirm,onCancel:S(h).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(r(),Ce(Se,{to:"body"},[ce.value?(r(),l("div",to,[s("div",so,[s("div",{class:"flex items-center justify-between"},[t[44]||(t[44]=s("div",null,[s("p",{class:"text-sm font-medium text-foreground"},"添加账户"),s("p",{class:"mt-1 text-xs text-muted-foreground"},"创建 DuckMail 账号并自动注册")],-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Ye}," 关闭 ")]),s("div",oo,[t[46]||(t[46]=s("label",{class:"block text-xs text-muted-foreground"},"注册数量",-1)),V(s("input",{"onUpdate:modelValue":t[15]||(t[15]=o=>re.value=o),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[I,re.value,void 0,{number:!0}]]),t[47]||(t[47]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"}," 默认域名来自设置面板(可在“配置面板”中修改) ",-1)),t[48]||(t[48]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-[11px] leading-relaxed text-muted-foreground"},[s("div",{class:"space-y-2"},[s("p",{class:"font-semibold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)"),s("div",{class:"space-y-1"},[s("p",null,[s("strong",null,"合法用途:"),z("本项目仅限个人学习、技术研究与非商业性技术交流,旨在探索浏览器自动化与系统集成。")])]),s("div",{class:"space-y-1"},[s("p",null,[s("strong",null,"禁止行为:"),z("严禁用于以下场景:")]),s("p",{class:"pl-3"},"• 商业用途或盈利性使用"),s("p",{class:"pl-3"},"• 任何形式的批量注册或自动化滥用(无论规模大小)"),s("p",{class:"pl-3"},"• 破坏市场秩序或恶意竞争"),s("p",{class:"pl-3"},"• 违反 Google 服务条款的任何行为")]),s("div",{class:"space-y-1"},[s("p",null,[s("strong",null,"使用责任:"),z("因使用本工具产生的一切后果由使用者完全承担,包括但不限于账号封禁、数据损失及法律责任。")]),s("p",null,[s("strong",null,"合规要求:"),z("使用者必须遵守所在地法律法规及第三方服务条款,作者不对任何违规使用行为承担责任。")])]),s("div",{class:"space-y-1"},[s("p",null,[s("strong",null,"技术声明:")]),s("p",{class:"pl-3"},'• 本项目按"现状"提供,不提供任何明示或暗示的担保'),s("p",{class:"pl-3"},"• 依赖 DuckMail API 等第三方服务,其可用性不受作者控制"),s("p",{class:"pl-3"},"• 作者保留随时停止维护或变更功能的权利")])])],-1)),U(de,{modelValue:xe.value,"onUpdate:modelValue":t[16]||(t[16]=o=>xe.value=o)},{default:xt(()=>[...t[45]||(t[45]=[z(" 我已阅读并同意上述说明与限制 ",-1)])]),_:1},8,["modelValue"])]),s("div",ro,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Ye}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:$.value||!xe.value,onClick:Ut}," 开始注册 ",8,lo)])])])):v("",!0)])),(r(),Ce(Se,{to:"body"},[F.value?(r(),l("div",no,[s("div",ao,[s("div",io,[t[49]||(t[49]=s("div",null,[s("p",{class:"text-sm font-medium text-foreground"},"任务状态"),s("p",{class:"mt-1 text-xs text-muted-foreground"},"注册与刷新任务的状态与日志")],-1)),s("div",uo,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-muted-foreground transition-colors hover:border-primary hover:text-primary",disabled:!K.value.length&&!H.value.length&&!d.value&&!c.value&&!p.value,onClick:wt}," 清空日志 ",8,co),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:_t}," 关闭 ")])]),s("div",fo,[p.value?(r(),l("div",vo,n(p.value),1)):v("",!0),d.value||c.value?(r(),l("div",xo,[d.value?(r(),l("div",go,[t[50]||(t[50]=s("div",{class:"font-medium text-foreground"},"注册任务",-1)),s("div",po,[s("span",null,"状态:"+n(dt(d.value.status)),1),s("span",null,"进度:"+n(d.value.progress)+"/"+n(d.value.count),1),s("span",null,"成功:"+n(d.value.success_count),1),s("span",null,"失败:"+n(d.value.fail_count),1)])])):v("",!0),c.value?(r(),l("div",mo,[t[51]||(t[51]=s("div",{class:"font-medium text-foreground"},"刷新任务",-1)),s("div",bo,[s("span",null,"状态:"+n(dt(c.value.status)),1),s("span",null,"进度:"+n(c.value.progress)+"/"+n(c.value.account_ids.length),1),s("span",null,"成功:"+n(c.value.success_count),1),s("span",null,"失败:"+n(c.value.fail_count),1)])])):v("",!0)])):v("",!0),K.value.length||H.value.length?(r(),l("div",yo,[s("div",{ref_key:"taskLogsRef",ref:ze,class:"scrollbar-slim flex-1 overflow-y-auto rounded-2xl border border-border bg-muted/30 p-3"},[K.value.length?(r(),l("div",_o,[t[52]||(t[52]=s("p",{class:"text-xs font-semibold text-foreground"},"注册日志",-1)),s("div",wo,[(r(!0),l(ue,null,Te(K.value,(o,i)=>(r(),l("div",{key:`reg-${i}`,class:"font-mono"},n(ot(o)),1))),128))])])):v("",!0),H.value.length?(r(),l("div",ko,[t[53]||(t[53]=s("p",{class:"text-xs font-semibold text-foreground"},"刷新日志",-1)),s("div",ho,[(r(!0),l(ue,null,Te(H.value,(o,i)=>(r(),l("div",{key:`login-${i}`,class:"font-mono"},n(ot(o)),1))),128))])])):v("",!0)],512)])):v("",!0),!p.value&&!d.value&&!c.value&&!K.value.length&&!H.value.length?(r(),l("div",Co," 暂无任务 ")):v("",!0)])])])):v("",!0)])),(r(),Ce(Se,{to:"body"},[se.value?(r(),l("div",To,[s("div",So,[s("div",{class:"flex items-center justify-between"},[t[54]||(t[54]=s("p",{class:"text-sm font-medium text-foreground"},"编辑账号",-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Ve}," 关闭 ")]),u.value?(r(),l("div",Ao,n(u.value),1)):v("",!0),s("div",Lo,[t[55]||(t[55]=s("label",{class:"block text-xs text-muted-foreground"},"账号 ID",-1)),V(s("input",{"onUpdate:modelValue":t[17]||(t[17]=o=>m.value.id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",disabled:""},null,512),[[I,m.value.id]]),t[56]||(t[56]=s("label",{class:"block text-xs text-muted-foreground"},"secure_c_ses",-1)),V(s("textarea",{"onUpdate:modelValue":t[18]||(t[18]=o=>m.value.secure_c_ses=o),class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",rows:"3"},null,512),[[I,m.value.secure_c_ses]]),t[57]||(t[57]=s("label",{class:"block text-xs text-muted-foreground"},"csesidx",-1)),V(s("input",{"onUpdate:modelValue":t[19]||(t[19]=o=>m.value.csesidx=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[I,m.value.csesidx]]),t[58]||(t[58]=s("label",{class:"block text-xs text-muted-foreground"},"config_id",-1)),V(s("input",{"onUpdate:modelValue":t[20]||(t[20]=o=>m.value.config_id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[I,m.value.config_id]]),t[59]||(t[59]=s("label",{class:"block text-xs text-muted-foreground"},"host_c_oses",-1)),V(s("input",{"onUpdate:modelValue":t[21]||(t[21]=o=>m.value.host_c_oses=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[I,m.value.host_c_oses]]),t[60]||(t[60]=s("label",{class:"block text-xs text-muted-foreground"},"expires_at",-1)),V(s("input",{"onUpdate:modelValue":t[22]||(t[22]=o=>m.value.expires_at=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"2025-12-23 10:59:21"},null,512),[[I,m.value.expires_at]])]),s("div",{class:"mt-6 flex items-center justify-end gap-2"},[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Ve}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:jt}," 保存 ")])])])):v("",!0)])),(r(),Ce(Se,{to:"body"},[L.value?(r(),l("div",Eo,[s("div",$o,[s("div",Ro,[t[61]||(t[61]=s("p",{class:"text-sm font-medium text-foreground"},"账户配置(JSON)",-1)),s("div",Vo,[s("button",{class:"rounded-full bg-foreground px-3 py-1 text-xs text-background transition-opacity hover:opacity-90",onClick:Vt},n(j.value?"显示原文":"脱敏显示"),1),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Re}," 关闭 ")])]),E.value?(r(),l("div",Io,n(E.value),1)):v("",!0),s("div",jo,[V(s("textarea",{"onUpdate:modelValue":t[23]||(t[23]=o=>q.value=o),class:"h-96 w-full rounded-2xl border border-input bg-background px-4 py-3 font-mono text-xs text-foreground",spellcheck:"false",readonly:j.value},null,8,Do),[[I,q.value]])]),s("div",Mo,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Re}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:It,disabled:j.value}," 保存 ",8,Oo)])])])):v("",!0)]))],64))}});export{Ko as default}; diff --git a/static/assets/Accounts-mLu74uIS.js b/static/assets/Accounts-mLu74uIS.js new file mode 100644 index 0000000000000000000000000000000000000000..38c8e213f3e4df337b1d8cb3a9cdbfaf91e635d6 --- /dev/null +++ b/static/assets/Accounts-mLu74uIS.js @@ -0,0 +1,2 @@ +import{g as E,C as ts,h as a,d as ss,D as os,i as H,o as rs,s as ls,j as ns,c as l,a as s,x as J,y as Re,m as A,v as $,A as Tt,t as n,n as g,u as R,b as m,f as pe,F as ge,r as Ve,T as je,w as V,e as r,E as as}from"./index-DMWZCTlx.js";import{_ as is}from"./SelectMenu.vue_vue_type_script_setup_true_lang-R5yoq9NP.js";import{_ as be}from"./Checkbox.vue_vue_type_script_setup_true_lang-CsCJog3q.js";import{_ as ds}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-C75dpm4L.js";import{u as us}from"./useConfirmDialog-BdcqQTU3.js";import{_ as cs}from"./HelpTip.vue_vue_type_script_setup_true_lang-BgxOFSZZ.js";const h={list:()=>E.get("/admin/accounts"),getConfig:()=>E.get("/admin/accounts-config"),updateConfig:b=>E.put("/admin/accounts-config",b),delete:b=>E.delete(`/admin/accounts/${b}`),disable:b=>E.put(`/admin/accounts/${b}/disable`),enable:b=>E.put(`/admin/accounts/${b}/enable`),startRegister:(b,w)=>E.post("/admin/register/start",{count:b,domain:w}),getRegisterTask:b=>E.get(`/admin/register/task/${b}`),getRegisterCurrent:()=>E.get("/admin/register/current"),startLogin:b=>E.post("/admin/login/start",b),getLoginTask:b=>E.get(`/admin/login/task/${b}`),getLoginCurrent:()=>E.get("/admin/login/current"),checkLogin:()=>E.post("/admin/login/check")},fs=ts("accounts",()=>{const b=a([]),w=a(!1);async function L(){w.value=!0;try{const u=await h.list();b.value=Array.isArray(u)?u:u.accounts||[]}finally{w.value=!1}}async function re(u){await h.delete(u),await L()}async function C(u){await h.disable(u),await L()}async function le(u){await h.enable(u),await L()}async function Z(u){await Promise.all(u.map(j=>h.enable(j))),await L()}async function p(u){await Promise.all(u.map(j=>h.disable(j))),await L()}async function G(u){await Promise.all(u.map(j=>h.delete(j))),await L()}async function ne(u){await h.updateConfig(u),await L()}return{accounts:b,isLoading:w,loadAccounts:L,deleteAccount:re,disableAccount:C,enableAccount:le,bulkEnable:Z,bulkDisable:p,bulkDelete:G,updateConfig:ne}}),vs={class:"space-y-8"},xs={class:"rounded-3xl border border-border bg-card p-6"},ms={class:"flex flex-wrap items-center justify-between gap-4"},ps={class:"grid w-full grid-cols-2 gap-3 sm:flex sm:w-auto sm:items-center"},gs={class:"flex w-full flex-wrap items-center gap-3 text-xs text-muted-foreground sm:w-auto sm:flex-nowrap"},bs={class:"ml-auto flex items-center gap-2 sm:ml-0"},ys={class:"mt-4 flex flex-wrap items-center gap-2"},_s=["disabled"],hs=["disabled"],ws={key:0,class:"absolute right-0 z-10 mt-2 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg"},ks=["disabled"],Cs=["disabled"],Ts=["disabled"],Ss=["disabled"],Es=["disabled"],Is={key:0,class:"mt-6 grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3"},Ls=["onClick"],As={class:"flex items-start justify-between gap-3"},$s={class:"mt-1 font-mono text-xs text-foreground"},Rs={class:"flex items-center gap-2"},Vs={class:"mt-4 grid grid-cols-2 gap-3 text-xs text-muted-foreground"},js={key:0,class:"mt-1 text-[11px]"},Ms={key:0},Ds={key:1},Os={class:"mt-1 text-sm font-semibold text-foreground"},Bs={class:"mt-1 text-sm font-semibold text-foreground"},Ns={class:"mt-4 flex flex-wrap items-center gap-2"},Us=["onClick"],zs=["onClick"],Ps=["onClick"],Fs=["onClick"],Ks={key:0,class:"rounded-2xl border border-border bg-background p-4 text-center text-xs text-muted-foreground"},Hs={key:1,class:"relative mt-6 overflow-x-auto overflow-y-visible"},Js={class:"min-w-full text-left text-sm"},Gs={class:"text-xs uppercase tracking-[0.2em] text-muted-foreground"},Ys={class:"py-3 pr-4"},Qs={class:"py-3 pr-6"},qs={class:"inline-flex items-center gap-2"},Xs={class:"text-sm text-foreground"},Ws={key:0},Zs=["onClick"],eo={class:"py-4 pr-6 font-mono text-xs text-foreground"},to={class:"py-4 pr-6"},so={class:"py-4 pr-6"},oo={key:0,class:"block text-[11px] text-muted-foreground"},ro={class:"py-4 pr-6 text-xs"},lo={class:"py-4 pr-6 text-xs text-muted-foreground"},no={class:"py-4 pr-6 text-xs text-muted-foreground"},ao={class:"py-4 text-right"},io={class:"flex flex-wrap justify-end gap-2"},uo=["onClick"],co=["onClick"],fo=["onClick"],vo=["onClick"],xo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},mo={class:"flex max-h-[90vh] w-full max-w-lg flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},po={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},go={class:"mt-1 text-xs text-muted-foreground"},bo={class:"scrollbar-slim flex-1 overflow-y-auto px-6 py-4"},yo={class:"space-y-4 text-sm"},_o={class:"flex rounded-full border border-border bg-muted/30 p-1 text-xs"},ho={key:0,class:"space-y-4"},wo={key:1,class:"space-y-4"},ko={key:0,class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-xs text-rose-600"},Co={class:"border-t border-border/60 px-6 py-4"},To={class:"flex items-center justify-end gap-2"},So=["disabled"],Eo=["disabled"],Io={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Lo={class:"flex h-[80vh] w-full max-w-2xl flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},Ao={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},$o={class:"flex items-center gap-2"},Ro=["disabled"],Vo={class:"flex min-h-0 flex-1 flex-col px-6 py-4"},jo={key:0,class:"rounded-2xl bg-destructive/10 px-3 py-2 text-xs text-destructive"},Mo={key:1,class:"grid gap-3 text-xs text-muted-foreground"},Do={key:0,class:"space-y-1"},Oo={class:"flex flex-wrap gap-x-4 gap-y-1"},Bo={key:1,class:"space-y-1"},No={class:"flex flex-wrap gap-x-4 gap-y-1"},Uo={key:2,class:"mt-4 flex min-h-0 flex-1 flex-col"},zo={key:0,class:"space-y-2"},Po={class:"space-y-1 text-[11px] text-muted-foreground"},Fo={key:1,class:"mt-4 space-y-2"},Ko={class:"space-y-1 text-[11px] text-muted-foreground"},Ho={key:3,class:"mt-4 rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},Jo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Go={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},Yo={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Qo={class:"mt-4 space-y-3 text-sm"},qo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Xo={class:"w-full max-w-3xl rounded-3xl border border-border bg-card p-6 shadow-xl"},Wo={class:"flex items-center justify-between"},Zo={class:"flex items-center gap-2"},er={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},tr={class:"mt-4"},sr=["readonly"],or={class:"mt-6 flex items-center justify-end gap-2"},rr=["disabled"],He="accounts-register-task-cache",Je="accounts-login-task-cache",Ge="accounts-register-log-clear",Ye="accounts-login-log-clear",Qe="accounts-register-task-cleared-id",qe="accounts-login-task-cleared-id",St="1970-01-01 00:00:00",cr=ss({__name:"Accounts",setup(b){const w=fs(),{accounts:L,isLoading:re}=os(w),C=us(),le=a(""),Z=a("all"),p=a(new Set),G=a("table"),ne=a(!1),u=a(""),j=a(!1),M=a(""),ee=a(""),B=a(!1),ae=a([]),ie=a(1),ye=a(!1),N=a("register"),de=a(""),U=a(""),_e=a(!1),Y=a(!1),z=a(!1),Me=a(null),he=a(null),we=a(null),P=a(null),F=a(null),te=a(0),se=a(0),ue=a(!1),c=a(null),f=a(null),Xe=a(null),D=a(!1),T=a(!1),y=a(""),_=a({id:"",secure_c_ses:"",csesidx:"",config_id:"",host_c_oses:"",expires_at:""}),ke=a(null),We=a([]),Et=[{label:"全部状态",value:"all"},{label:"正常",value:"正常"},{label:"即将过期",value:"即将过期"},{label:"已过期",value:"已过期"},{label:"手动禁用",value:"手动禁用"},{label:"错误禁用",value:"错误禁用"},{label:"429限流",value:"429限流"}],K=H(()=>{const e=le.value.trim().toLowerCase();return L.value.filter(t=>{const o=!e||t.id.toLowerCase().includes(e),i=Z.value==="all"||fe(t)===Z.value;return o&&i})}),O=H(()=>p.value.size),De=H(()=>K.value.length>0&&K.value.every(e=>p.value.has(e.id))),ce=async()=>{await w.loadAccounts(),p.value=new Set,z.value=!1},Ze=e=>{try{const t=localStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}},et=e=>{try{return localStorage.getItem(e)||null}catch{return null}},Ce=(e,t)=>{try{if(t){localStorage.setItem(e,t);return}localStorage.removeItem(e)}catch{}},tt=(e,t)=>{try{localStorage.setItem(e,JSON.stringify(t))}catch{}},st=e=>{try{localStorage.removeItem(e)}catch{}},ot=e=>{const t=localStorage.getItem(e),o=Number(t);return Number.isFinite(o)?o:0},Te=(e,t)=>{try{localStorage.setItem(e,String(t))}catch{}},Oe=(e,t=!0)=>{e&&(e.id&&e.id===P.value||(e.id&&P.value&&e.id!==P.value&&(P.value=null,Ce(Qe,null)),c.value=e,e.id&&e.id!==he.value&&(he.value=e.id,te.value=0,Te(Ge,0)),t&&tt(He,e)))},Se=(e,t=!0)=>{e&&(e.id&&e.id===F.value||(e.id&&F.value&&e.id!==F.value&&(F.value=null,Ce(qe,null)),f.value=e,e.id&&e.id!==we.value&&(we.value=e.id,se.value=0,Te(Ye,0)),t&&tt(Je,e)))},It=()=>{te.value=ot(Ge),se.value=ot(Ye),P.value=et(Qe),F.value=et(qe);const e=Ze(He);e&&e.id!==P.value&&(c.value=e,he.value=e.id||null);const t=Ze(Je);t&&t.id!==F.value&&(f.value=t,we.value=t.id||null)},Lt=()=>{ye.value=!0,N.value="register",de.value="",U.value="",_e.value=!1,ue.value=!1},Be=()=>{ye.value=!1},At=e=>{const t=[],o=[];return e.split(/\r?\n/).map(d=>d.trim()).filter(Boolean).forEach((d,x)=>{const v=d.split("----").map(S=>S.trim()),k=x+1;if(v.length){if(v[0].toLowerCase()==="duckmail"){if(v.length<3||!v[1]||!v[2]){o.push(`第 ${k} 行格式错误(duckmail)`);return}const S=v[1],$e=v.slice(2).join("----");t.push({id:S,secure_c_ses:"",csesidx:"",config_id:"",expires_at:St,mail_provider:"duckmail",mail_address:S,mail_password:$e});return}if(v.length>=4&&v[0]&&v[2]&&v[3]){const S=v[0],$e=v[1]||"",I=v[2],es=v.slice(3).join("----");t.push({id:S,secure_c_ses:"",csesidx:"",config_id:"",expires_at:St,mail_provider:"microsoft",mail_address:S,mail_password:$e,mail_client_id:I,mail_refresh_token:es,mail_tenant:"consumers"});return}o.push(`第 ${k} 行格式错误`)}}),{items:t,errors:o}},$t=async()=>{if(U.value="",!de.value.trim()){U.value="请输入导入内容";return}const{items:e,errors:t}=At(de.value);if(!e.length){U.value=t.length?t.join(","):"未识别到有效账号";return}if(t.length){U.value=t.slice(0,3).join(",");return}_e.value=!0;try{const i=[...await ft()],d=new Map(i.map((k,S)=>[k.id,S])),x=[];e.forEach(k=>{const S=d.get(k.id||"");if(S===void 0){i.push(k),x.push(k.id);return}const I={...i[S],mail_provider:k.mail_provider,mail_address:k.mail_address};k.mail_provider==="microsoft"?(I.mail_client_id=k.mail_client_id,I.mail_refresh_token=k.mail_refresh_token,I.mail_tenant=k.mail_tenant,I.mail_password=k.mail_password):(I.mail_password=k.mail_password,I.mail_client_id=void 0,I.mail_refresh_token=void 0,I.mail_tenant=void 0),i[S]=I,x.push(k.id)}),await w.updateConfig(i),await ce(),p.value=new Set(x),Be(),await C.ask({title:"导入成功",message:`已导入 ${x.length} 个账户并自动选中。是否立即刷新这些账户以获取 Cookie?`,confirmText:"立即刷新",cancelText:"稍后手动刷新"})&&await Ct()}catch(o){U.value=o.message||"导入失败"}finally{_e.value=!1}},Rt=async()=>{try{const e=[],t=c.value?.id,o=f.value?.id;if(t&&!Ee(t)&&e.push(ht(t)),o&&!Ie(o)&&e.push(wt(o)),!e.length){await Ke();return}await Promise.all(e)}catch(e){y.value=e?.message||"任务状态更新失败"}},Ne=async()=>{Y.value=!0,await Rt()},Vt=()=>{Y.value=!1},jt=()=>{const e=c.value?.id||null,t=f.value?.id||null;P.value=e,F.value=t,Ce(Qe,e),Ce(qe,t),te.value=c.value?.logs?.length||0,se.value=f.value?.logs?.length||0,Te(Ge,te.value),Te(Ye,se.value),c.value=null,f.value=null,he.value=null,we.value=null,y.value="",D.value=!1,T.value=!1,X(),W(),st(He),st(Je)},Ee=e=>!!(e&&e===P.value),Ie=e=>!!(e&&e===F.value),Mt=()=>{z.value=!z.value},oe=()=>{z.value=!1},rt=e=>{if(!z.value)return;const t=e.target;Me.value&&!Me.value.contains(t)&&(z.value=!1)};rs(async()=>{It(),await ce(),await Ke(),Xt(),document.addEventListener("click",rt)});const Q=H(()=>{const e=c.value?.logs||[];return te.value?e.slice(te.value):e}),q=H(()=>{const e=f.value?.logs||[];return se.value?e.slice(se.value):e}),Dt=H(()=>!!y.value||!!c.value||!!f.value||Q.value.length>0||q.value.length>0),Ot=async()=>{await as();const e=Xe.value;e&&(e.scrollTop=e.scrollHeight)};ls([Q,q,Y],async()=>{Y.value&&await Ot()},{deep:!0});const Bt=H(()=>{const e=c.value?.status,t=f.value?.status;return e==="running"||e==="pending"||t==="running"||t==="pending"}),Nt=H(()=>{if(y.value)return"bg-rose-500";if(Bt.value)return"bg-sky-400";const e=[];if(c.value){const d=c.value.success_count??0,x=c.value.fail_count??0,v=c.value.count??d+x;e.push({success:d,fail:x,total:v,status:c.value.status})}if(f.value){const d=f.value.success_count??0,x=f.value.fail_count??0,v=f.value.account_ids?.length??d+x;e.push({success:d,fail:x,total:v,status:f.value.status})}if(!e.length)return"bg-muted-foreground";const t=e.reduce((d,x)=>d+x.success,0),o=e.reduce((d,x)=>d+x.fail,0),i=e.reduce((d,x)=>d+(x.total||0),0);if(t>0&&o>0)return"bg-amber-400";if(o>0&&t===0)return"bg-rose-500";if(t>0&&o===0)return"bg-emerald-400";if(i===0){const d=e.every(v=>v.status==="success");if(e.some(v=>v.status==="failed"))return"bg-rose-500";if(d)return"bg-emerald-400"}return"bg-muted-foreground"});ns(()=>{X(),W(),qt(),document.removeEventListener("click",rt)});const fe=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?"429限流":e.cooldown_reason==="错误禁用"?"错误禁用":e.disabled?"手动禁用":e.status==="已过期"?"已过期":e.status==="即将过期"?"即将过期":"正常",lt=e=>{const t=fe(e);return t==="429限流"||t==="即将过期"?"bg-amber-200 text-amber-900":t==="错误禁用"||t==="已过期"?"bg-destructive/10 text-destructive":t==="手动禁用"?"bg-muted text-muted-foreground":"bg-emerald-500 text-white"},nt=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?!0:e.disabled||e.cooldown_reason==="错误禁用",at=e=>e==="已过期"?"过期":e==="未设置"?"未设置":e,it=e=>e.status==="已过期"?"text-rose-600":e.status==="即将过期"?"text-amber-700":e.status==="未设置"?"text-muted-foreground":"text-emerald-600",dt=e=>e<60?`${e} 秒`:e<3600?`${Math.ceil(e/60)} 分钟`:`${(e/3600).toFixed(1)} 小时`,Ue=e=>e.cooldown_seconds>0?"text-amber-700":e.cooldown_reason==="错误禁用"?"text-rose-600":"text-muted-foreground",ut=e=>{const t=fe(e);return t==="手动禁用"||t==="已过期"?"bg-muted/70":""},Le=e=>{const t=new Set(p.value);t.has(e)?t.delete(e):t.add(e),p.value=t},ct=()=>{if(De.value){p.value=new Set;return}p.value=new Set(K.value.map(e=>e.id))},Ut=(e,t)=>e.id||`account_${t+1}`,ft=async()=>(await h.getConfig()).accounts.map((t,o)=>({...t,id:Ut(t,o)})),vt=e=>`${e.time} [${e.level}] ${e.message}`,zt=(e,t)=>{let o=-1;for(let d=0;d{u.value="";try{const t=await ft();zt(t,e)}catch(t){u.value=t.message||"加载账号配置失败"}},Pt=async()=>{M.value="";try{const e=await h.getConfig();ae.value=Array.isArray(e.accounts)?e.accounts:[],ee.value=JSON.stringify(pt(ae.value),null,2),B.value=!0,j.value=!0}catch(e){M.value=e.message||"加载账号配置失败"}},ze=()=>{j.value=!1,M.value="",B.value=!1},mt=()=>{const e=JSON.parse(ee.value);if(!Array.isArray(e))throw new Error("配置格式必须是数组。");return e},Ft=e=>typeof e!="string"||!e?e:e.length<=6?`${e.slice(0,2)}****`:`${e.slice(0,3)}****`,pt=e=>{const t=new Set(["secure_c_ses","csesidx","config_id","host_c_oses","mail_password","mail_refresh_token","mail_client_id"]);return e.map(o=>{const i={...o};return t.forEach(d=>{const x=i[d];x&&(i[d]=Ft(x))}),i})},Kt=()=>{if(M.value="",!B.value){try{ae.value=mt()}catch(e){M.value=e.message||"JSON 格式错误";return}ee.value=JSON.stringify(pt(ae.value),null,2),B.value=!0;return}ee.value=JSON.stringify(ae.value,null,2),B.value=!1},Ht=async()=>{M.value="";try{const e=mt();await w.updateConfig(e),ze()}catch(e){M.value=e.message||"保存失败"}},Pe=()=>{ne.value=!1,u.value=""},Jt=async()=>{if(ke.value===null)return;const e=[...We.value];e[ke.value]={...e[ke.value],id:_.value.id,secure_c_ses:_.value.secure_c_ses,csesidx:_.value.csesidx,config_id:_.value.config_id,host_c_oses:_.value.host_c_oses||void 0,expires_at:_.value.expires_at||void 0};try{await w.updateConfig(e),Pe()}catch(t){u.value=t.message||"保存失败"}},Gt=async()=>{await w.bulkEnable(Array.from(p.value)),p.value=new Set},Yt=async()=>{await C.ask({title:"批量禁用",message:"确定要批量禁用选中的账号吗?"})&&(await w.bulkDisable(Array.from(p.value)),p.value=new Set)},Qt=async()=>{await C.ask({title:"批量删除",message:"确定要批量删除选中的账号吗?",confirmText:"删除"})&&(await w.bulkDelete(Array.from(p.value)),p.value=new Set)},gt=async e=>{await w.enableAccount(e)},bt=async e=>{await C.ask({title:"禁用账号",message:"确定要禁用该账号吗?"})&&await w.disableAccount(e)},yt=async e=>{await C.ask({title:"删除账号",message:"确定要删除该账号吗?",confirmText:"删除"})&&await w.deleteAccount(e)};let ve=null,xe=null,me=null,Ae=!1;const X=()=>{ve!==null&&(window.clearInterval(ve),ve=null)},W=()=>{xe!==null&&(window.clearInterval(xe),xe=null)},qt=()=>{me!==null&&(window.clearInterval(me),me=null),Ae=!1},_t=e=>e==="pending"?"等待中":e==="running"?"执行中":e==="success"?"成功":e==="failed"?"失败":e,ht=async e=>{if(Ee(e)){X();return}const t=await h.getRegisterTask(e);if(Ee(t.id)){X();return}Oe(t),t.status!=="running"&&t.status!=="pending"&&(D.value=!1,X(),await ce())},wt=async e=>{if(Ie(e)){W();return}const t=await h.getLoginTask(e);if(Ie(t.id)){W();return}Se(t),t.status!=="running"&&t.status!=="pending"&&(T.value=!1,W(),await ce())},kt=e=>{X(),ve=window.setInterval(()=>{ht(e).catch(t=>{y.value=t?.message||"注册任务更新失败",X(),D.value=!1})},3e3)},Fe=e=>{W(),xe=window.setInterval(()=>{wt(e).catch(t=>{y.value=t?.message||"刷新任务更新失败",W(),T.value=!1})},3e3)},Xt=()=>{me===null&&(me=window.setInterval(async()=>{if(!Ae&&!Y.value&&!(ve!==null||xe!==null)&&!(!D.value&&!T.value&&!c.value&&!f.value)){Ae=!0;try{await Ke()}catch(e){y.value=e?.message||"后台刷新失败"}finally{Ae=!1}}},6e3))},Ke=async()=>{try{const e=await h.getRegisterCurrent();e&&"id"in e&&!Ee(e.id)&&(Oe(e),(e.status==="running"||e.status==="pending")&&(D.value=!0,kt(e.id)))}catch(e){y.value=e.message||"加载注册任务失败"}try{const e=await h.getLoginCurrent();e&&"id"in e&&!Ie(e.id)&&(Se(e),(e.status==="running"||e.status==="pending")&&(T.value=!0,Fe(e.id)))}catch(e){y.value=e.message||"加载刷新任务失败"}},Wt=async()=>{y.value="",D.value=!0;try{const e=Number.isFinite(ie.value)&&ie.value>0?ie.value:void 0,t=await h.startRegister(e);Oe(t),kt(t.id),ye.value=!1,Y.value=!0}catch(e){y.value=e.message||"启动注册失败",D.value=!1}},Ct=async()=>{if(p.value.size){y.value="",T.value=!0;try{const e=await h.startLogin(Array.from(p.value));Se(e),Fe(e.id),Ne()}catch(e){y.value=e.message||"启动刷新失败",T.value=!1}}},Zt=async()=>{y.value="",T.value=!0;try{await h.checkLogin();const e=await h.getLoginCurrent();if(e&&"id"in e){Se(e),Fe(e.id),Ne();return}T.value=!1}catch(e){y.value=e.message||"触发刷新失败",T.value=!1}};return(e,t)=>(r(),l(ge,null,[s("div",vs,[s("section",xs,[s("div",ms,[s("div",ps,[A(s("input",{"onUpdate:modelValue":t[0]||(t[0]=o=>le.value=o),type:"text",placeholder:"搜索账号 ID",class:"w-full rounded-full border border-input bg-background px-4 py-2 text-sm sm:w-48"},null,512),[[$,le.value]]),J(is,{modelValue:Z.value,"onUpdate:modelValue":t[1]||(t[1]=o=>Z.value=o),options:Et},null,8,["modelValue"])]),s("div",gs,[J(be,{modelValue:De.value,"onUpdate:modelValue":ct},{default:Tt(()=>[...t[27]||(t[27]=[pe(" 全选 ",-1)])]),_:1},8,["modelValue"]),s("span",null,"已选 "+n(O.value)+" / "+n(K.value.length)+" 个账号",1),s("div",bs,[s("button",{type:"button",class:g(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",G.value==="table"?"bg-accent text-accent-foreground":""]),onClick:t[2]||(t[2]=o=>G.value="table"),"aria-label":"列表视图"},[...t[28]||(t[28]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])],2),s("button",{type:"button",class:g(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",G.value==="card"?"bg-accent text-accent-foreground":""]),onClick:t[3]||(t[3]=o=>G.value="card"),"aria-label":"卡片视图"},[...t[29]||(t[29]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h7v6H4V6zm9 0h7v6h-7V6zM4 14h7v4H4v-4zm9 0h7v4h-7v-4z"})],-1)])],2)])])]),s("div",ys,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:R(re),onClick:ce}," 刷新列表 ",8,_s),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:Pt}," 账户配置 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:D.value,onClick:Lt}," 添加账户 ",8,hs),s("div",{ref_key:"moreActionsRef",ref:Me,class:"relative"},[s("button",{class:g(["flex items-center gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary",z.value?"bg-accent text-accent-foreground":""]),onClick:Mt},[t[30]||(t[30]=pe(" 更多操作 ",-1)),t[31]||(t[31]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1)),Dt.value?(r(),l("span",{key:0,class:g(["ml-1 h-2 w-2 rounded-full",Nt.value]),"aria-hidden":"true"},null,2)):m("",!0)],2),z.value?(r(),l("div",ws,[s("button",{type:"button",class:"flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm text-foreground transition-colors hover:bg-accent",onClick:t[4]||(t[4]=o=>{Ne(),oe()})}," 任务状态 "),t[32]||(t[32]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",T.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:T.value,onClick:t[5]||(t[5]=o=>{Zt(),oe()})}," 刷新过期 ",10,ks),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",!O.value||T.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:!O.value||T.value,onClick:t[6]||(t[6]=o=>{Ct(),oe()})}," 刷新选中 ",10,Cs),t[33]||(t[33]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",O.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!O.value,onClick:t[7]||(t[7]=o=>{Gt(),oe()})}," 批量启用 ",10,Ts),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",O.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!O.value,onClick:t[8]||(t[8]=o=>{Yt(),oe()})}," 批量禁用 ",10,Ss),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",O.value?"text-destructive hover:bg-destructive/10":"cursor-not-allowed text-muted-foreground"]),disabled:!O.value,onClick:t[9]||(t[9]=o=>{Qt(),oe()})}," 批量删除 ",10,Es)])):m("",!0)],512)]),G.value==="card"?(r(),l("div",Is,[(r(!0),l(ge,null,Ve(K.value,o=>(r(),l("div",{key:o.id,class:g(["rounded-2xl border border-border bg-card p-4",ut(o)]),onClick:i=>Le(o.id)},[s("div",As,[s("div",null,[t[34]||(t[34]=s("p",{class:"text-xs text-muted-foreground"},"账号 ID",-1)),s("p",$s,n(o.id),1)]),s("div",Rs,[J(be,{modelValue:p.value.has(o.id),"onUpdate:modelValue":i=>Le(o.id),onClick:t[10]||(t[10]=V(()=>{},["stop"]))},null,8,["modelValue","onUpdate:modelValue"]),s("span",{class:g(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",lt(o)])},n(fe(o)),3)])]),s("div",Vs,[s("div",null,[t[35]||(t[35]=s("p",null,"剩余时间",-1)),s("p",{class:g(["mt-1 text-sm font-semibold",it(o)])},n(at(o.remaining_display)),3),o.expires_at?(r(),l("p",js,n(o.expires_at),1)):m("",!0)]),s("div",null,[t[36]||(t[36]=s("p",null,"冷却",-1)),s("p",{class:g(["mt-1",Ue(o)])},[o.cooldown_seconds>0?(r(),l("span",Ms,n(dt(o.cooldown_seconds))+" · "+n(o.cooldown_reason),1)):(r(),l("span",Ds,n(o.cooldown_reason||"无冷却"),1))],2)]),s("div",null,[t[37]||(t[37]=s("p",null,"失败数",-1)),s("p",Os,n(o.error_count),1)]),s("div",null,[t[38]||(t[38]=s("p",null,"会话数",-1)),s("p",Bs,n(o.conversation_count),1)])]),s("div",Ns,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>xt(o.id),["stop"])}," 编辑 ",8,Us),nt(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[11]||(t[11]=V(()=>{},["stop"])),i=>gt(o.id)]}," 启用 ",8,zs)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[12]||(t[12]=V(()=>{},["stop"])),i=>bt(o.id)]}," 禁用 ",8,Ps)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:[t[13]||(t[13]=V(()=>{},["stop"])),i=>yt(o.id)]}," 删除 ",8,Fs)])],10,Ls))),128)),!K.value.length&&!R(re)?(r(),l("div",Ks," 暂无账号数据,请检查后台配置。 ")):m("",!0)])):(r(),l("div",Hs,[s("table",Js,[s("thead",Gs,[s("tr",null,[s("th",Ys,[J(be,{modelValue:De.value,"onUpdate:modelValue":ct},null,8,["modelValue"])]),t[40]||(t[40]=s("th",{class:"py-3 pr-6"},"账号 ID",-1)),t[41]||(t[41]=s("th",{class:"py-3 pr-6"},"状态",-1)),s("th",Qs,[s("span",qs,[t[39]||(t[39]=pe(" 剩余/过期 ",-1)),J(cs,{text:"过期时间为 12 小时,账户过期以北京时间为准。"})])]),t[42]||(t[42]=s("th",{class:"py-3 pr-6"},"冷却",-1)),t[43]||(t[43]=s("th",{class:"py-3 pr-6"},"失败数",-1)),t[44]||(t[44]=s("th",{class:"py-3 pr-6"},"会话数",-1)),t[45]||(t[45]=s("th",{class:"py-3 text-right"},"操作",-1))])]),s("tbody",Xs,[!K.value.length&&!R(re)?(r(),l("tr",Ws,[...t[46]||(t[46]=[s("td",{colspan:"8",class:"py-8 text-center text-muted-foreground"}," 暂无账号数据,请检查后台配置。 ",-1)])])):m("",!0),(r(!0),l(ge,null,Ve(K.value,o=>(r(),l("tr",{key:o.id,class:g(["border-t border-border",ut(o)]),onClick:i=>Le(o.id)},[s("td",{class:"py-4 pr-4",onClick:t[14]||(t[14]=V(()=>{},["stop"]))},[J(be,{modelValue:p.value.has(o.id),"onUpdate:modelValue":i=>Le(o.id)},null,8,["modelValue","onUpdate:modelValue"])]),s("td",eo,n(o.id),1),s("td",to,[s("span",{class:g(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",lt(o)])},n(fe(o)),3)]),s("td",so,[s("div",{class:g(["text-sm font-semibold",it(o)])},n(at(o.remaining_display)),3),o.expires_at?(r(),l("span",oo,n(o.expires_at),1)):m("",!0)]),s("td",ro,[o.cooldown_seconds>0?(r(),l("span",{key:0,class:g(Ue(o))},n(dt(o.cooldown_seconds))+" · "+n(o.cooldown_reason),3)):(r(),l("span",{key:1,class:g(Ue(o))},n(o.cooldown_reason||"无冷却"),3))]),s("td",lo,n(o.error_count),1),s("td",no,n(o.conversation_count),1),s("td",ao,[s("div",io,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>xt(o.id),["stop"])}," 编辑 ",8,uo),nt(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>gt(o.id),["stop"])}," 启用 ",8,co)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>bt(o.id),["stop"])}," 禁用 ",8,fo)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:V(i=>yt(o.id),["stop"])}," 删除 ",8,vo)])])],10,Zs))),128))])])]))])]),J(ds,{open:R(C).open.value,title:R(C).title.value,message:R(C).message.value,"confirm-text":R(C).confirmText.value,"cancel-text":R(C).cancelText.value,onConfirm:R(C).confirm,onCancel:R(C).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(r(),Re(je,{to:"body"},[ye.value?(r(),l("div",xo,[s("div",mo,[s("div",po,[s("div",null,[t[47]||(t[47]=s("p",{class:"text-sm font-medium text-foreground"},"添加账户",-1)),s("p",go,n(N.value==="register"?"创建 DuckMail 账号并自动注册":"批量导入账户配置"),1)]),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Be}," 关闭 ")]),s("div",bo,[s("div",yo,[s("div",_o,[s("button",{type:"button",class:g(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",N.value==="register"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:t[15]||(t[15]=o=>N.value="register")}," 自动注册 ",2),s("button",{type:"button",class:g(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",N.value==="import"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:t[16]||(t[16]=o=>N.value="import")}," 批量导入 ",2)]),N.value==="register"?(r(),l("div",ho,[t[48]||(t[48]=s("label",{class:"block text-xs text-muted-foreground"},"注册数量",-1)),A(s("input",{"onUpdate:modelValue":t[17]||(t[17]=o=>ie.value=o),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,ie.value,void 0,{number:!0}]]),t[49]||(t[49]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"}," 默认域名来自设置面板(可在“配置面板”中修改) ",-1))])):(r(),l("div",wo,[t[50]||(t[50]=s("label",{class:"block text-xs text-muted-foreground"},"批量导入(每行一个)",-1)),A(s("textarea",{"onUpdate:modelValue":t[18]||(t[18]=o=>de.value=o),class:"min-h-[140px] w-full rounded-2xl border border-input bg-background px-3 py-2 text-xs font-mono",placeholder:`duckmail----you@example.com----password +user@outlook.com----loginPassword----clientId----refreshToken`},null,512),[[$,de.value]]),t[51]||(t[51]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},[s("p",null,"支持两种格式:"),s("p",{class:"mt-1 font-mono"},"duckmail----email----password"),s("p",{class:"mt-1 font-mono"},"email----password----clientId----refreshToken"),s("p",{class:"mt-2 text-[11px]"},'导入后请执行一次"刷新选中"以获取 Cookie。')],-1)),U.value?(r(),l("div",ko,n(U.value),1)):m("",!0)])),t[53]||(t[53]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-[11px] leading-relaxed text-muted-foreground"},[s("p",{class:"text-xs font-medium text-foreground"},"⚠️ 使用提示"),s("p",{class:"mt-1"},"• 本工具仅限个人学习与技术研究"),s("p",null,"• 请遵守相关服务条款,合理使用"),s("p",null,[pe("• 详细声明请查看项目 "),s("a",{href:"https://github.com/Dreamy-rain/gemini-business2api/blob/main/docs/DISCLAIMER.md",target:"_blank",class:"text-primary hover:underline"},"DISCLAIMER.md")])],-1)),J(be,{modelValue:ue.value,"onUpdate:modelValue":t[19]||(t[19]=o=>ue.value=o)},{default:Tt(()=>[...t[52]||(t[52]=[pe(" 我已阅读并同意上述说明与限制 ",-1)])]),_:1},8,["modelValue"])])]),s("div",Co,[s("div",To,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Be}," 取消 "),N.value==="register"?(r(),l("button",{key:0,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:D.value||!ue.value,onClick:Wt}," 开始注册 ",8,So)):(r(),l("button",{key:1,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:_e.value||!ue.value,onClick:$t}," 导入并保存 ",8,Eo))])])])])):m("",!0)])),(r(),Re(je,{to:"body"},[Y.value?(r(),l("div",Io,[s("div",Lo,[s("div",Ao,[t[54]||(t[54]=s("div",null,[s("p",{class:"text-sm font-medium text-foreground"},"任务状态"),s("p",{class:"mt-1 text-xs text-muted-foreground"},"注册与刷新任务的状态与日志")],-1)),s("div",$o,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-muted-foreground transition-colors hover:border-primary hover:text-primary",disabled:!Q.value.length&&!q.value.length&&!c.value&&!f.value&&!y.value,onClick:jt}," 清空日志 ",8,Ro),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Vt}," 关闭 ")])]),s("div",Vo,[y.value?(r(),l("div",jo,n(y.value),1)):m("",!0),c.value||f.value?(r(),l("div",Mo,[c.value?(r(),l("div",Do,[t[55]||(t[55]=s("div",{class:"font-medium text-foreground"},"注册任务",-1)),s("div",Oo,[s("span",null,"状态:"+n(_t(c.value.status)),1),s("span",null,"进度:"+n(c.value.progress)+"/"+n(c.value.count),1),s("span",null,"成功:"+n(c.value.success_count),1),s("span",null,"失败:"+n(c.value.fail_count),1)])])):m("",!0),f.value?(r(),l("div",Bo,[t[56]||(t[56]=s("div",{class:"font-medium text-foreground"},"刷新任务",-1)),s("div",No,[s("span",null,"状态:"+n(_t(f.value.status)),1),s("span",null,"进度:"+n(f.value.progress)+"/"+n(f.value.account_ids.length),1),s("span",null,"成功:"+n(f.value.success_count),1),s("span",null,"失败:"+n(f.value.fail_count),1)])])):m("",!0)])):m("",!0),Q.value.length||q.value.length?(r(),l("div",Uo,[s("div",{ref_key:"taskLogsRef",ref:Xe,class:"scrollbar-slim flex-1 overflow-y-auto rounded-2xl border border-border bg-muted/30 p-3"},[Q.value.length?(r(),l("div",zo,[t[57]||(t[57]=s("p",{class:"text-xs font-semibold text-foreground"},"注册日志",-1)),s("div",Po,[(r(!0),l(ge,null,Ve(Q.value,(o,i)=>(r(),l("div",{key:`reg-${i}`,class:"font-mono"},n(vt(o)),1))),128))])])):m("",!0),q.value.length?(r(),l("div",Fo,[t[58]||(t[58]=s("p",{class:"text-xs font-semibold text-foreground"},"刷新日志",-1)),s("div",Ko,[(r(!0),l(ge,null,Ve(q.value,(o,i)=>(r(),l("div",{key:`login-${i}`,class:"font-mono"},n(vt(o)),1))),128))])])):m("",!0)],512)])):m("",!0),!y.value&&!c.value&&!f.value&&!Q.value.length&&!q.value.length?(r(),l("div",Ho," 暂无任务 ")):m("",!0)])])])):m("",!0)])),(r(),Re(je,{to:"body"},[ne.value?(r(),l("div",Jo,[s("div",Go,[s("div",{class:"flex items-center justify-between"},[t[59]||(t[59]=s("p",{class:"text-sm font-medium text-foreground"},"编辑账号",-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Pe}," 关闭 ")]),u.value?(r(),l("div",Yo,n(u.value),1)):m("",!0),s("div",Qo,[t[60]||(t[60]=s("label",{class:"block text-xs text-muted-foreground"},"账号 ID",-1)),A(s("input",{"onUpdate:modelValue":t[20]||(t[20]=o=>_.value.id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",disabled:""},null,512),[[$,_.value.id]]),t[61]||(t[61]=s("label",{class:"block text-xs text-muted-foreground"},"secure_c_ses",-1)),A(s("textarea",{"onUpdate:modelValue":t[21]||(t[21]=o=>_.value.secure_c_ses=o),class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",rows:"3"},null,512),[[$,_.value.secure_c_ses]]),t[62]||(t[62]=s("label",{class:"block text-xs text-muted-foreground"},"csesidx",-1)),A(s("input",{"onUpdate:modelValue":t[22]||(t[22]=o=>_.value.csesidx=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,_.value.csesidx]]),t[63]||(t[63]=s("label",{class:"block text-xs text-muted-foreground"},"config_id",-1)),A(s("input",{"onUpdate:modelValue":t[23]||(t[23]=o=>_.value.config_id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,_.value.config_id]]),t[64]||(t[64]=s("label",{class:"block text-xs text-muted-foreground"},"host_c_oses",-1)),A(s("input",{"onUpdate:modelValue":t[24]||(t[24]=o=>_.value.host_c_oses=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,_.value.host_c_oses]]),t[65]||(t[65]=s("label",{class:"block text-xs text-muted-foreground"},"expires_at",-1)),A(s("input",{"onUpdate:modelValue":t[25]||(t[25]=o=>_.value.expires_at=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"2025-12-23 10:59:21"},null,512),[[$,_.value.expires_at]])]),s("div",{class:"mt-6 flex items-center justify-end gap-2"},[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Pe}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Jt}," 保存 ")])])])):m("",!0)])),(r(),Re(je,{to:"body"},[j.value?(r(),l("div",qo,[s("div",Xo,[s("div",Wo,[t[66]||(t[66]=s("p",{class:"text-sm font-medium text-foreground"},"账户配置(JSON)",-1)),s("div",Zo,[s("button",{class:"rounded-full bg-foreground px-3 py-1 text-xs text-background transition-opacity hover:opacity-90",onClick:Kt},n(B.value?"显示原文":"脱敏显示"),1),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:ze}," 关闭 ")])]),M.value?(r(),l("div",er,n(M.value),1)):m("",!0),s("div",tr,[A(s("textarea",{"onUpdate:modelValue":t[26]||(t[26]=o=>ee.value=o),class:"h-96 w-full rounded-2xl border border-input bg-background px-4 py-3 font-mono text-xs text-foreground",spellcheck:"false",readonly:B.value},null,8,sr),[[$,ee.value]])]),s("div",or,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:ze}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Ht,disabled:B.value}," 保存 ",8,rr)])])])):m("",!0)]))],64))}});export{cr as default}; diff --git a/static/assets/Accounts-qETksrou.js b/static/assets/Accounts-qETksrou.js new file mode 100644 index 0000000000000000000000000000000000000000..cd278ad147bd0b33f1182da95bcaf4954cd07728 --- /dev/null +++ b/static/assets/Accounts-qETksrou.js @@ -0,0 +1,2 @@ +import{g as E,D as ts,h as a,d as ss,E as os,i as H,o as rs,A as ls,j as ns,c as l,a as s,p as J,m as Re,q as A,v as $,s as Tt,t as n,n as g,u as R,b as m,f as pe,F as ge,r as Ve,x as je,w as V,e as r,G as as}from"./index-JaBfp01b.js";import{_ as is}from"./SelectMenu.vue_vue_type_script_setup_true_lang-cSKw_kbn.js";import{_ as be}from"./Checkbox.vue_vue_type_script_setup_true_lang-B33RCL2G.js";import{_ as ds}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-BuSWgV7j.js";import{u as us}from"./useConfirmDialog-BGx3Bidu.js";import{_ as cs}from"./HelpTip.vue_vue_type_script_setup_true_lang-DO1J64wx.js";const h={list:()=>E.get("/admin/accounts"),getConfig:()=>E.get("/admin/accounts-config"),updateConfig:b=>E.put("/admin/accounts-config",b),delete:b=>E.delete(`/admin/accounts/${b}`),disable:b=>E.put(`/admin/accounts/${b}/disable`),enable:b=>E.put(`/admin/accounts/${b}/enable`),startRegister:(b,w)=>E.post("/admin/register/start",{count:b,domain:w}),getRegisterTask:b=>E.get(`/admin/register/task/${b}`),getRegisterCurrent:()=>E.get("/admin/register/current"),startLogin:b=>E.post("/admin/login/start",b),getLoginTask:b=>E.get(`/admin/login/task/${b}`),getLoginCurrent:()=>E.get("/admin/login/current"),checkLogin:()=>E.post("/admin/login/check")},fs=ts("accounts",()=>{const b=a([]),w=a(!1);async function L(){w.value=!0;try{const u=await h.list();b.value=Array.isArray(u)?u:u.accounts||[]}finally{w.value=!1}}async function re(u){await h.delete(u),await L()}async function C(u){await h.disable(u),await L()}async function le(u){await h.enable(u),await L()}async function Z(u){await Promise.all(u.map(j=>h.enable(j))),await L()}async function p(u){await Promise.all(u.map(j=>h.disable(j))),await L()}async function G(u){await Promise.all(u.map(j=>h.delete(j))),await L()}async function ne(u){await h.updateConfig(u),await L()}return{accounts:b,isLoading:w,loadAccounts:L,deleteAccount:re,disableAccount:C,enableAccount:le,bulkEnable:Z,bulkDisable:p,bulkDelete:G,updateConfig:ne}}),vs={class:"space-y-8"},xs={class:"rounded-3xl border border-border bg-card p-6"},ms={class:"flex flex-wrap items-center justify-between gap-4"},ps={class:"grid w-full grid-cols-2 gap-3 sm:flex sm:w-auto sm:items-center"},gs={class:"flex w-full flex-wrap items-center gap-3 text-xs text-muted-foreground sm:w-auto sm:flex-nowrap"},bs={class:"ml-auto flex items-center gap-2 sm:ml-0"},ys={class:"mt-4 flex flex-wrap items-center gap-2"},_s=["disabled"],hs=["disabled"],ws={key:0,class:"absolute right-0 z-10 mt-2 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg"},ks=["disabled"],Cs=["disabled"],Ts=["disabled"],Ss=["disabled"],Es=["disabled"],Is={key:0,class:"mt-6 grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3"},Ls=["onClick"],As={class:"flex items-start justify-between gap-3"},$s={class:"mt-1 font-mono text-xs text-foreground"},Rs={class:"flex items-center gap-2"},Vs={class:"mt-4 grid grid-cols-2 gap-3 text-xs text-muted-foreground"},js={key:0,class:"mt-1 text-[11px]"},Ms={key:0},Ds={key:1},Os={class:"mt-1 text-sm font-semibold text-foreground"},Bs={class:"mt-1 text-sm font-semibold text-foreground"},Ns={class:"mt-4 flex flex-wrap items-center gap-2"},Us=["onClick"],zs=["onClick"],Ps=["onClick"],Fs=["onClick"],Ks={key:0,class:"rounded-2xl border border-border bg-background p-4 text-center text-xs text-muted-foreground"},Hs={key:1,class:"relative mt-6 overflow-x-auto overflow-y-visible"},Js={class:"min-w-full text-left text-sm"},Gs={class:"text-xs uppercase tracking-[0.2em] text-muted-foreground"},Ys={class:"py-3 pr-4"},qs={class:"py-3 pr-6"},Qs={class:"inline-flex items-center gap-2"},Xs={class:"text-sm text-foreground"},Ws={key:0},Zs=["onClick"],eo={class:"py-4 pr-6 font-mono text-xs text-foreground"},to={class:"py-4 pr-6"},so={class:"py-4 pr-6"},oo={key:0,class:"block text-[11px] text-muted-foreground"},ro={class:"py-4 pr-6 text-xs"},lo={class:"py-4 pr-6 text-xs text-muted-foreground"},no={class:"py-4 pr-6 text-xs text-muted-foreground"},ao={class:"py-4 text-right"},io={class:"flex flex-wrap justify-end gap-2"},uo=["onClick"],co=["onClick"],fo=["onClick"],vo=["onClick"],xo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},mo={class:"flex max-h-[90vh] w-full max-w-lg flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},po={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},go={class:"mt-1 text-xs text-muted-foreground"},bo={class:"scrollbar-slim flex-1 overflow-y-auto px-6 py-4"},yo={class:"space-y-4 text-sm"},_o={class:"flex rounded-full border border-border bg-muted/30 p-1 text-xs"},ho={key:0,class:"space-y-4"},wo={key:1,class:"space-y-4"},ko={key:0,class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-xs text-rose-600"},Co={class:"border-t border-border/60 px-6 py-4"},To={class:"flex items-center justify-end gap-2"},So=["disabled"],Eo=["disabled"],Io={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Lo={class:"flex h-[80vh] w-full max-w-2xl flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},Ao={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},$o={class:"flex items-center gap-2"},Ro=["disabled"],Vo={class:"flex min-h-0 flex-1 flex-col px-6 py-4"},jo={key:0,class:"rounded-2xl bg-destructive/10 px-3 py-2 text-xs text-destructive"},Mo={key:1,class:"grid gap-3 text-xs text-muted-foreground"},Do={key:0,class:"space-y-1"},Oo={class:"flex flex-wrap gap-x-4 gap-y-1"},Bo={key:1,class:"space-y-1"},No={class:"flex flex-wrap gap-x-4 gap-y-1"},Uo={key:2,class:"mt-4 flex min-h-0 flex-1 flex-col"},zo={key:0,class:"space-y-2"},Po={class:"space-y-1 text-[11px] text-muted-foreground"},Fo={key:1,class:"mt-4 space-y-2"},Ko={class:"space-y-1 text-[11px] text-muted-foreground"},Ho={key:3,class:"mt-4 rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},Jo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Go={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},Yo={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},qo={class:"mt-4 space-y-3 text-sm"},Qo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Xo={class:"w-full max-w-3xl rounded-3xl border border-border bg-card p-6 shadow-xl"},Wo={class:"flex items-center justify-between"},Zo={class:"flex items-center gap-2"},er={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},tr={class:"mt-4"},sr=["readonly"],or={class:"mt-6 flex items-center justify-end gap-2"},rr=["disabled"],He="accounts-register-task-cache",Je="accounts-login-task-cache",Ge="accounts-register-log-clear",Ye="accounts-login-log-clear",qe="accounts-register-task-cleared-id",Qe="accounts-login-task-cleared-id",St="1970-01-01 00:00:00",cr=ss({__name:"Accounts",setup(b){const w=fs(),{accounts:L,isLoading:re}=os(w),C=us(),le=a(""),Z=a("all"),p=a(new Set),G=a("table"),ne=a(!1),u=a(""),j=a(!1),M=a(""),ee=a(""),B=a(!1),ae=a([]),ie=a(1),ye=a(!1),N=a("register"),de=a(""),U=a(""),_e=a(!1),Y=a(!1),z=a(!1),Me=a(null),he=a(null),we=a(null),P=a(null),F=a(null),te=a(0),se=a(0),ue=a(!1),c=a(null),f=a(null),Xe=a(null),D=a(!1),T=a(!1),y=a(""),_=a({id:"",secure_c_ses:"",csesidx:"",config_id:"",host_c_oses:"",expires_at:""}),ke=a(null),We=a([]),Et=[{label:"全部状态",value:"all"},{label:"正常",value:"正常"},{label:"即将过期",value:"即将过期"},{label:"已过期",value:"已过期"},{label:"手动禁用",value:"手动禁用"},{label:"错误禁用",value:"错误禁用"},{label:"429限流",value:"429限流"}],K=H(()=>{const e=le.value.trim().toLowerCase();return L.value.filter(t=>{const o=!e||t.id.toLowerCase().includes(e),i=Z.value==="all"||fe(t)===Z.value;return o&&i})}),O=H(()=>p.value.size),De=H(()=>K.value.length>0&&K.value.every(e=>p.value.has(e.id))),ce=async()=>{await w.loadAccounts(),p.value=new Set,z.value=!1},Ze=e=>{try{const t=localStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}},et=e=>{try{return localStorage.getItem(e)||null}catch{return null}},Ce=(e,t)=>{try{if(t){localStorage.setItem(e,t);return}localStorage.removeItem(e)}catch{}},tt=(e,t)=>{try{localStorage.setItem(e,JSON.stringify(t))}catch{}},st=e=>{try{localStorage.removeItem(e)}catch{}},ot=e=>{const t=localStorage.getItem(e),o=Number(t);return Number.isFinite(o)?o:0},Te=(e,t)=>{try{localStorage.setItem(e,String(t))}catch{}},Oe=(e,t=!0)=>{e&&(e.id&&e.id===P.value||(e.id&&P.value&&e.id!==P.value&&(P.value=null,Ce(qe,null)),c.value=e,e.id&&e.id!==he.value&&(he.value=e.id,te.value=0,Te(Ge,0)),t&&tt(He,e)))},Se=(e,t=!0)=>{e&&(e.id&&e.id===F.value||(e.id&&F.value&&e.id!==F.value&&(F.value=null,Ce(Qe,null)),f.value=e,e.id&&e.id!==we.value&&(we.value=e.id,se.value=0,Te(Ye,0)),t&&tt(Je,e)))},It=()=>{te.value=ot(Ge),se.value=ot(Ye),P.value=et(qe),F.value=et(Qe);const e=Ze(He);e&&e.id!==P.value&&(c.value=e,he.value=e.id||null);const t=Ze(Je);t&&t.id!==F.value&&(f.value=t,we.value=t.id||null)},Lt=()=>{ye.value=!0,N.value="register",de.value="",U.value="",_e.value=!1,ue.value=!1},Be=()=>{ye.value=!1},At=e=>{const t=[],o=[];return e.split(/\r?\n/).map(d=>d.trim()).filter(Boolean).forEach((d,x)=>{const v=d.split("----").map(S=>S.trim()),k=x+1;if(v.length){if(v[0].toLowerCase()==="duckmail"){if(v.length<3||!v[1]||!v[2]){o.push(`第 ${k} 行格式错误(duckmail)`);return}const S=v[1],$e=v.slice(2).join("----");t.push({id:S,secure_c_ses:"",csesidx:"",config_id:"",expires_at:St,mail_provider:"duckmail",mail_address:S,mail_password:$e});return}if(v.length>=4&&v[0]&&v[2]&&v[3]){const S=v[0],$e=v[1]||"",I=v[2],es=v.slice(3).join("----");t.push({id:S,secure_c_ses:"",csesidx:"",config_id:"",expires_at:St,mail_provider:"microsoft",mail_address:S,mail_password:$e,mail_client_id:I,mail_refresh_token:es,mail_tenant:"consumers"});return}o.push(`第 ${k} 行格式错误`)}}),{items:t,errors:o}},$t=async()=>{if(U.value="",!de.value.trim()){U.value="请输入导入内容";return}const{items:e,errors:t}=At(de.value);if(!e.length){U.value=t.length?t.join(","):"未识别到有效账号";return}if(t.length){U.value=t.slice(0,3).join(",");return}_e.value=!0;try{const i=[...await ft()],d=new Map(i.map((k,S)=>[k.id,S])),x=[];e.forEach(k=>{const S=d.get(k.id||"");if(S===void 0){i.push(k),x.push(k.id);return}const I={...i[S],mail_provider:k.mail_provider,mail_address:k.mail_address};k.mail_provider==="microsoft"?(I.mail_client_id=k.mail_client_id,I.mail_refresh_token=k.mail_refresh_token,I.mail_tenant=k.mail_tenant,I.mail_password=k.mail_password):(I.mail_password=k.mail_password,I.mail_client_id=void 0,I.mail_refresh_token=void 0,I.mail_tenant=void 0),i[S]=I,x.push(k.id)}),await w.updateConfig(i),await ce(),p.value=new Set(x),Be(),await C.ask({title:"导入成功",message:`已导入 ${x.length} 个账户并自动选中。是否立即刷新这些账户以获取 Cookie?`,confirmText:"立即刷新",cancelText:"稍后手动刷新"})&&await Ct()}catch(o){U.value=o.message||"导入失败"}finally{_e.value=!1}},Rt=async()=>{try{const e=[],t=c.value?.id,o=f.value?.id;if(t&&!Ee(t)&&e.push(ht(t)),o&&!Ie(o)&&e.push(wt(o)),!e.length){await Ke();return}await Promise.all(e)}catch(e){y.value=e?.message||"任务状态更新失败"}},Ne=async()=>{Y.value=!0,await Rt()},Vt=()=>{Y.value=!1},jt=()=>{const e=c.value?.id||null,t=f.value?.id||null;P.value=e,F.value=t,Ce(qe,e),Ce(Qe,t),te.value=c.value?.logs?.length||0,se.value=f.value?.logs?.length||0,Te(Ge,te.value),Te(Ye,se.value),c.value=null,f.value=null,he.value=null,we.value=null,y.value="",D.value=!1,T.value=!1,X(),W(),st(He),st(Je)},Ee=e=>!!(e&&e===P.value),Ie=e=>!!(e&&e===F.value),Mt=()=>{z.value=!z.value},oe=()=>{z.value=!1},rt=e=>{if(!z.value)return;const t=e.target;Me.value&&!Me.value.contains(t)&&(z.value=!1)};rs(async()=>{It(),await ce(),await Ke(),Xt(),document.addEventListener("click",rt)});const q=H(()=>{const e=c.value?.logs||[];return te.value?e.slice(te.value):e}),Q=H(()=>{const e=f.value?.logs||[];return se.value?e.slice(se.value):e}),Dt=H(()=>!!y.value||!!c.value||!!f.value||q.value.length>0||Q.value.length>0),Ot=async()=>{await as();const e=Xe.value;e&&(e.scrollTop=e.scrollHeight)};ls([q,Q,Y],async()=>{Y.value&&await Ot()},{deep:!0});const Bt=H(()=>{const e=c.value?.status,t=f.value?.status;return e==="running"||e==="pending"||t==="running"||t==="pending"}),Nt=H(()=>{if(y.value)return"bg-rose-500";if(Bt.value)return"bg-sky-400";const e=[];if(c.value){const d=c.value.success_count??0,x=c.value.fail_count??0,v=c.value.count??d+x;e.push({success:d,fail:x,total:v,status:c.value.status})}if(f.value){const d=f.value.success_count??0,x=f.value.fail_count??0,v=f.value.account_ids?.length??d+x;e.push({success:d,fail:x,total:v,status:f.value.status})}if(!e.length)return"bg-muted-foreground";const t=e.reduce((d,x)=>d+x.success,0),o=e.reduce((d,x)=>d+x.fail,0),i=e.reduce((d,x)=>d+(x.total||0),0);if(t>0&&o>0)return"bg-amber-400";if(o>0&&t===0)return"bg-rose-500";if(t>0&&o===0)return"bg-emerald-400";if(i===0){const d=e.every(v=>v.status==="success");if(e.some(v=>v.status==="failed"))return"bg-rose-500";if(d)return"bg-emerald-400"}return"bg-muted-foreground"});ns(()=>{X(),W(),Qt(),document.removeEventListener("click",rt)});const fe=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?"429限流":e.cooldown_reason==="错误禁用"?"错误禁用":e.disabled?"手动禁用":e.status==="已过期"?"已过期":e.status==="即将过期"?"即将过期":"正常",lt=e=>{const t=fe(e);return t==="429限流"||t==="即将过期"?"bg-amber-200 text-amber-900":t==="错误禁用"||t==="已过期"?"bg-destructive/10 text-destructive":t==="手动禁用"?"bg-muted text-muted-foreground":"bg-emerald-500 text-white"},nt=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?!0:e.disabled||e.cooldown_reason==="错误禁用",at=e=>e==="已过期"?"过期":e==="未设置"?"未设置":e,it=e=>e.status==="已过期"?"text-rose-600":e.status==="即将过期"?"text-amber-700":e.status==="未设置"?"text-muted-foreground":"text-emerald-600",dt=e=>e<60?`${e} 秒`:e<3600?`${Math.ceil(e/60)} 分钟`:`${(e/3600).toFixed(1)} 小时`,Ue=e=>e.cooldown_seconds>0?"text-amber-700":e.cooldown_reason==="错误禁用"?"text-rose-600":"text-muted-foreground",ut=e=>{const t=fe(e);return t==="手动禁用"||t==="已过期"?"bg-muted/70":""},Le=e=>{const t=new Set(p.value);t.has(e)?t.delete(e):t.add(e),p.value=t},ct=()=>{if(De.value){p.value=new Set;return}p.value=new Set(K.value.map(e=>e.id))},Ut=(e,t)=>e.id||`account_${t+1}`,ft=async()=>(await h.getConfig()).accounts.map((t,o)=>({...t,id:Ut(t,o)})),vt=e=>`${e.time} [${e.level}] ${e.message}`,zt=(e,t)=>{let o=-1;for(let d=0;d{u.value="";try{const t=await ft();zt(t,e)}catch(t){u.value=t.message||"加载账号配置失败"}},Pt=async()=>{M.value="";try{const e=await h.getConfig();ae.value=Array.isArray(e.accounts)?e.accounts:[],ee.value=JSON.stringify(pt(ae.value),null,2),B.value=!0,j.value=!0}catch(e){M.value=e.message||"加载账号配置失败"}},ze=()=>{j.value=!1,M.value="",B.value=!1},mt=()=>{const e=JSON.parse(ee.value);if(!Array.isArray(e))throw new Error("配置格式必须是数组。");return e},Ft=e=>typeof e!="string"||!e?e:e.length<=6?`${e.slice(0,2)}****`:`${e.slice(0,3)}****`,pt=e=>{const t=new Set(["secure_c_ses","csesidx","config_id","host_c_oses","mail_password","mail_refresh_token","mail_client_id"]);return e.map(o=>{const i={...o};return t.forEach(d=>{const x=i[d];x&&(i[d]=Ft(x))}),i})},Kt=()=>{if(M.value="",!B.value){try{ae.value=mt()}catch(e){M.value=e.message||"JSON 格式错误";return}ee.value=JSON.stringify(pt(ae.value),null,2),B.value=!0;return}ee.value=JSON.stringify(ae.value,null,2),B.value=!1},Ht=async()=>{M.value="";try{const e=mt();await w.updateConfig(e),ze()}catch(e){M.value=e.message||"保存失败"}},Pe=()=>{ne.value=!1,u.value=""},Jt=async()=>{if(ke.value===null)return;const e=[...We.value];e[ke.value]={...e[ke.value],id:_.value.id,secure_c_ses:_.value.secure_c_ses,csesidx:_.value.csesidx,config_id:_.value.config_id,host_c_oses:_.value.host_c_oses||void 0,expires_at:_.value.expires_at||void 0};try{await w.updateConfig(e),Pe()}catch(t){u.value=t.message||"保存失败"}},Gt=async()=>{await w.bulkEnable(Array.from(p.value)),p.value=new Set},Yt=async()=>{await C.ask({title:"批量禁用",message:"确定要批量禁用选中的账号吗?"})&&(await w.bulkDisable(Array.from(p.value)),p.value=new Set)},qt=async()=>{await C.ask({title:"批量删除",message:"确定要批量删除选中的账号吗?",confirmText:"删除"})&&(await w.bulkDelete(Array.from(p.value)),p.value=new Set)},gt=async e=>{await w.enableAccount(e)},bt=async e=>{await C.ask({title:"禁用账号",message:"确定要禁用该账号吗?"})&&await w.disableAccount(e)},yt=async e=>{await C.ask({title:"删除账号",message:"确定要删除该账号吗?",confirmText:"删除"})&&await w.deleteAccount(e)};let ve=null,xe=null,me=null,Ae=!1;const X=()=>{ve!==null&&(window.clearInterval(ve),ve=null)},W=()=>{xe!==null&&(window.clearInterval(xe),xe=null)},Qt=()=>{me!==null&&(window.clearInterval(me),me=null),Ae=!1},_t=e=>e==="pending"?"等待中":e==="running"?"执行中":e==="success"?"成功":e==="failed"?"失败":e,ht=async e=>{if(Ee(e)){X();return}const t=await h.getRegisterTask(e);if(Ee(t.id)){X();return}Oe(t),t.status!=="running"&&t.status!=="pending"&&(D.value=!1,X(),await ce())},wt=async e=>{if(Ie(e)){W();return}const t=await h.getLoginTask(e);if(Ie(t.id)){W();return}Se(t),t.status!=="running"&&t.status!=="pending"&&(T.value=!1,W(),await ce())},kt=e=>{X(),ve=window.setInterval(()=>{ht(e).catch(t=>{y.value=t?.message||"注册任务更新失败",X(),D.value=!1})},3e3)},Fe=e=>{W(),xe=window.setInterval(()=>{wt(e).catch(t=>{y.value=t?.message||"刷新任务更新失败",W(),T.value=!1})},3e3)},Xt=()=>{me===null&&(me=window.setInterval(async()=>{if(!Ae&&!Y.value&&!(ve!==null||xe!==null)&&!(!D.value&&!T.value&&!c.value&&!f.value)){Ae=!0;try{await Ke()}catch(e){y.value=e?.message||"后台刷新失败"}finally{Ae=!1}}},6e3))},Ke=async()=>{try{const e=await h.getRegisterCurrent();e&&"id"in e&&!Ee(e.id)&&(Oe(e),(e.status==="running"||e.status==="pending")&&(D.value=!0,kt(e.id)))}catch(e){y.value=e.message||"加载注册任务失败"}try{const e=await h.getLoginCurrent();e&&"id"in e&&!Ie(e.id)&&(Se(e),(e.status==="running"||e.status==="pending")&&(T.value=!0,Fe(e.id)))}catch(e){y.value=e.message||"加载刷新任务失败"}},Wt=async()=>{y.value="",D.value=!0;try{const e=Number.isFinite(ie.value)&&ie.value>0?ie.value:void 0,t=await h.startRegister(e);Oe(t),kt(t.id),ye.value=!1,Y.value=!0}catch(e){y.value=e.message||"启动注册失败",D.value=!1}},Ct=async()=>{if(p.value.size){y.value="",T.value=!0;try{const e=await h.startLogin(Array.from(p.value));Se(e),Fe(e.id),Ne()}catch(e){y.value=e.message||"启动刷新失败",T.value=!1}}},Zt=async()=>{y.value="",T.value=!0;try{await h.checkLogin();const e=await h.getLoginCurrent();if(e&&"id"in e){Se(e),Fe(e.id),Ne();return}T.value=!1}catch(e){y.value=e.message||"触发刷新失败",T.value=!1}};return(e,t)=>(r(),l(ge,null,[s("div",vs,[s("section",xs,[s("div",ms,[s("div",ps,[A(s("input",{"onUpdate:modelValue":t[0]||(t[0]=o=>le.value=o),type:"text",placeholder:"搜索账号 ID",class:"w-full rounded-full border border-input bg-background px-4 py-2 text-sm sm:w-48"},null,512),[[$,le.value]]),J(is,{modelValue:Z.value,"onUpdate:modelValue":t[1]||(t[1]=o=>Z.value=o),options:Et},null,8,["modelValue"])]),s("div",gs,[J(be,{modelValue:De.value,"onUpdate:modelValue":ct},{default:Tt(()=>[...t[27]||(t[27]=[pe(" 全选 ",-1)])]),_:1},8,["modelValue"]),s("span",null,"已选 "+n(O.value)+" / "+n(K.value.length)+" 个账号",1),s("div",bs,[s("button",{type:"button",class:g(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",G.value==="table"?"bg-accent text-accent-foreground":""]),onClick:t[2]||(t[2]=o=>G.value="table"),"aria-label":"列表视图"},[...t[28]||(t[28]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])],2),s("button",{type:"button",class:g(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",G.value==="card"?"bg-accent text-accent-foreground":""]),onClick:t[3]||(t[3]=o=>G.value="card"),"aria-label":"卡片视图"},[...t[29]||(t[29]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h7v6H4V6zm9 0h7v6h-7V6zM4 14h7v4H4v-4zm9 0h7v4h-7v-4z"})],-1)])],2)])])]),s("div",ys,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:R(re),onClick:ce}," 刷新列表 ",8,_s),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:Pt}," 账户配置 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:D.value,onClick:Lt}," 添加账户 ",8,hs),s("div",{ref_key:"moreActionsRef",ref:Me,class:"relative"},[s("button",{class:g(["flex items-center gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary",z.value?"bg-accent text-accent-foreground":""]),onClick:Mt},[t[30]||(t[30]=pe(" 更多操作 ",-1)),t[31]||(t[31]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1)),Dt.value?(r(),l("span",{key:0,class:g(["ml-1 h-2 w-2 rounded-full",Nt.value]),"aria-hidden":"true"},null,2)):m("",!0)],2),z.value?(r(),l("div",ws,[s("button",{type:"button",class:"flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm text-foreground transition-colors hover:bg-accent",onClick:t[4]||(t[4]=o=>{Ne(),oe()})}," 任务状态 "),t[32]||(t[32]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",T.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:T.value,onClick:t[5]||(t[5]=o=>{Zt(),oe()})}," 刷新过期 ",10,ks),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",!O.value||T.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:!O.value||T.value,onClick:t[6]||(t[6]=o=>{Ct(),oe()})}," 刷新选中 ",10,Cs),t[33]||(t[33]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",O.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!O.value,onClick:t[7]||(t[7]=o=>{Gt(),oe()})}," 批量启用 ",10,Ts),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",O.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!O.value,onClick:t[8]||(t[8]=o=>{Yt(),oe()})}," 批量禁用 ",10,Ss),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",O.value?"text-destructive hover:bg-destructive/10":"cursor-not-allowed text-muted-foreground"]),disabled:!O.value,onClick:t[9]||(t[9]=o=>{qt(),oe()})}," 批量删除 ",10,Es)])):m("",!0)],512)]),G.value==="card"?(r(),l("div",Is,[(r(!0),l(ge,null,Ve(K.value,o=>(r(),l("div",{key:o.id,class:g(["rounded-2xl border border-border bg-card p-4",ut(o)]),onClick:i=>Le(o.id)},[s("div",As,[s("div",null,[t[34]||(t[34]=s("p",{class:"text-xs text-muted-foreground"},"账号 ID",-1)),s("p",$s,n(o.id),1)]),s("div",Rs,[J(be,{modelValue:p.value.has(o.id),"onUpdate:modelValue":i=>Le(o.id),onClick:t[10]||(t[10]=V(()=>{},["stop"]))},null,8,["modelValue","onUpdate:modelValue"]),s("span",{class:g(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",lt(o)])},n(fe(o)),3)])]),s("div",Vs,[s("div",null,[t[35]||(t[35]=s("p",null,"剩余时间",-1)),s("p",{class:g(["mt-1 text-sm font-semibold",it(o)])},n(at(o.remaining_display)),3),o.expires_at?(r(),l("p",js,n(o.expires_at),1)):m("",!0)]),s("div",null,[t[36]||(t[36]=s("p",null,"冷却",-1)),s("p",{class:g(["mt-1",Ue(o)])},[o.cooldown_seconds>0?(r(),l("span",Ms,n(dt(o.cooldown_seconds))+" · "+n(o.cooldown_reason),1)):(r(),l("span",Ds,n(o.cooldown_reason||"无冷却"),1))],2)]),s("div",null,[t[37]||(t[37]=s("p",null,"失败数",-1)),s("p",Os,n(o.error_count),1)]),s("div",null,[t[38]||(t[38]=s("p",null,"会话数",-1)),s("p",Bs,n(o.conversation_count),1)])]),s("div",Ns,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>xt(o.id),["stop"])}," 编辑 ",8,Us),nt(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[11]||(t[11]=V(()=>{},["stop"])),i=>gt(o.id)]}," 启用 ",8,zs)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[12]||(t[12]=V(()=>{},["stop"])),i=>bt(o.id)]}," 禁用 ",8,Ps)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:[t[13]||(t[13]=V(()=>{},["stop"])),i=>yt(o.id)]}," 删除 ",8,Fs)])],10,Ls))),128)),!K.value.length&&!R(re)?(r(),l("div",Ks," 暂无账号数据,请检查后台配置。 ")):m("",!0)])):(r(),l("div",Hs,[s("table",Js,[s("thead",Gs,[s("tr",null,[s("th",Ys,[J(be,{modelValue:De.value,"onUpdate:modelValue":ct},null,8,["modelValue"])]),t[40]||(t[40]=s("th",{class:"py-3 pr-6"},"账号 ID",-1)),t[41]||(t[41]=s("th",{class:"py-3 pr-6"},"状态",-1)),s("th",qs,[s("span",Qs,[t[39]||(t[39]=pe(" 剩余/过期 ",-1)),J(cs,{text:"过期时间为 12 小时,账户过期以北京时间为准。"})])]),t[42]||(t[42]=s("th",{class:"py-3 pr-6"},"冷却",-1)),t[43]||(t[43]=s("th",{class:"py-3 pr-6"},"失败数",-1)),t[44]||(t[44]=s("th",{class:"py-3 pr-6"},"会话数",-1)),t[45]||(t[45]=s("th",{class:"py-3 text-right"},"操作",-1))])]),s("tbody",Xs,[!K.value.length&&!R(re)?(r(),l("tr",Ws,[...t[46]||(t[46]=[s("td",{colspan:"8",class:"py-8 text-center text-muted-foreground"}," 暂无账号数据,请检查后台配置。 ",-1)])])):m("",!0),(r(!0),l(ge,null,Ve(K.value,o=>(r(),l("tr",{key:o.id,class:g(["border-t border-border",ut(o)]),onClick:i=>Le(o.id)},[s("td",{class:"py-4 pr-4",onClick:t[14]||(t[14]=V(()=>{},["stop"]))},[J(be,{modelValue:p.value.has(o.id),"onUpdate:modelValue":i=>Le(o.id)},null,8,["modelValue","onUpdate:modelValue"])]),s("td",eo,n(o.id),1),s("td",to,[s("span",{class:g(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",lt(o)])},n(fe(o)),3)]),s("td",so,[s("div",{class:g(["text-sm font-semibold",it(o)])},n(at(o.remaining_display)),3),o.expires_at?(r(),l("span",oo,n(o.expires_at),1)):m("",!0)]),s("td",ro,[o.cooldown_seconds>0?(r(),l("span",{key:0,class:g(Ue(o))},n(dt(o.cooldown_seconds))+" · "+n(o.cooldown_reason),3)):(r(),l("span",{key:1,class:g(Ue(o))},n(o.cooldown_reason||"无冷却"),3))]),s("td",lo,n(o.error_count),1),s("td",no,n(o.conversation_count),1),s("td",ao,[s("div",io,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>xt(o.id),["stop"])}," 编辑 ",8,uo),nt(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>gt(o.id),["stop"])}," 启用 ",8,co)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>bt(o.id),["stop"])}," 禁用 ",8,fo)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:V(i=>yt(o.id),["stop"])}," 删除 ",8,vo)])])],10,Zs))),128))])])]))])]),J(ds,{open:R(C).open.value,title:R(C).title.value,message:R(C).message.value,"confirm-text":R(C).confirmText.value,"cancel-text":R(C).cancelText.value,onConfirm:R(C).confirm,onCancel:R(C).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(r(),Re(je,{to:"body"},[ye.value?(r(),l("div",xo,[s("div",mo,[s("div",po,[s("div",null,[t[47]||(t[47]=s("p",{class:"text-sm font-medium text-foreground"},"添加账户",-1)),s("p",go,n(N.value==="register"?"创建 DuckMail 账号并自动注册":"批量导入账户配置"),1)]),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Be}," 关闭 ")]),s("div",bo,[s("div",yo,[s("div",_o,[s("button",{type:"button",class:g(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",N.value==="register"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:t[15]||(t[15]=o=>N.value="register")}," 自动注册 ",2),s("button",{type:"button",class:g(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",N.value==="import"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:t[16]||(t[16]=o=>N.value="import")}," 批量导入 ",2)]),N.value==="register"?(r(),l("div",ho,[t[48]||(t[48]=s("label",{class:"block text-xs text-muted-foreground"},"注册数量",-1)),A(s("input",{"onUpdate:modelValue":t[17]||(t[17]=o=>ie.value=o),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,ie.value,void 0,{number:!0}]]),t[49]||(t[49]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"}," 默认域名来自设置面板(可在“配置面板”中修改) ",-1))])):(r(),l("div",wo,[t[50]||(t[50]=s("label",{class:"block text-xs text-muted-foreground"},"批量导入(每行一个)",-1)),A(s("textarea",{"onUpdate:modelValue":t[18]||(t[18]=o=>de.value=o),class:"min-h-[140px] w-full rounded-2xl border border-input bg-background px-3 py-2 text-xs font-mono",placeholder:`duckmail----you@example.com----password +user@outlook.com----loginPassword----clientId----refreshToken`},null,512),[[$,de.value]]),t[51]||(t[51]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},[s("p",null,"支持两种格式:"),s("p",{class:"mt-1 font-mono"},"duckmail----email----password"),s("p",{class:"mt-1 font-mono"},"email----password----clientId----refreshToken"),s("p",{class:"mt-2 text-[11px]"},'导入后请执行一次"刷新选中"以获取 Cookie。')],-1)),U.value?(r(),l("div",ko,n(U.value),1)):m("",!0)])),t[53]||(t[53]=s("div",{class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-[11px] leading-relaxed"},[s("p",{class:"text-xs font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)"),s("p",{class:"mt-1 text-muted-foreground"},[pe("详细声明请查看项目 "),s("a",{href:"https://github.com/Dreamy-rain/gemini-business2api/blob/main/docs/DISCLAIMER.md",target:"_blank",class:"text-primary hover:underline font-medium"},"DISCLAIMER.md")])],-1)),J(be,{modelValue:ue.value,"onUpdate:modelValue":t[19]||(t[19]=o=>ue.value=o)},{default:Tt(()=>[...t[52]||(t[52]=[pe(" 我已阅读并同意上述说明与限制 ",-1)])]),_:1},8,["modelValue"])])]),s("div",Co,[s("div",To,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Be}," 取消 "),N.value==="register"?(r(),l("button",{key:0,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:D.value||!ue.value,onClick:Wt}," 开始注册 ",8,So)):(r(),l("button",{key:1,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:_e.value||!ue.value,onClick:$t}," 导入并保存 ",8,Eo))])])])])):m("",!0)])),(r(),Re(je,{to:"body"},[Y.value?(r(),l("div",Io,[s("div",Lo,[s("div",Ao,[t[54]||(t[54]=s("div",null,[s("p",{class:"text-sm font-medium text-foreground"},"任务状态"),s("p",{class:"mt-1 text-xs text-muted-foreground"},"注册与刷新任务的状态与日志")],-1)),s("div",$o,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-muted-foreground transition-colors hover:border-primary hover:text-primary",disabled:!q.value.length&&!Q.value.length&&!c.value&&!f.value&&!y.value,onClick:jt}," 清空日志 ",8,Ro),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Vt}," 关闭 ")])]),s("div",Vo,[y.value?(r(),l("div",jo,n(y.value),1)):m("",!0),c.value||f.value?(r(),l("div",Mo,[c.value?(r(),l("div",Do,[t[55]||(t[55]=s("div",{class:"font-medium text-foreground"},"注册任务",-1)),s("div",Oo,[s("span",null,"状态:"+n(_t(c.value.status)),1),s("span",null,"进度:"+n(c.value.progress)+"/"+n(c.value.count),1),s("span",null,"成功:"+n(c.value.success_count),1),s("span",null,"失败:"+n(c.value.fail_count),1)])])):m("",!0),f.value?(r(),l("div",Bo,[t[56]||(t[56]=s("div",{class:"font-medium text-foreground"},"刷新任务",-1)),s("div",No,[s("span",null,"状态:"+n(_t(f.value.status)),1),s("span",null,"进度:"+n(f.value.progress)+"/"+n(f.value.account_ids.length),1),s("span",null,"成功:"+n(f.value.success_count),1),s("span",null,"失败:"+n(f.value.fail_count),1)])])):m("",!0)])):m("",!0),q.value.length||Q.value.length?(r(),l("div",Uo,[s("div",{ref_key:"taskLogsRef",ref:Xe,class:"scrollbar-slim flex-1 overflow-y-auto rounded-2xl border border-border bg-muted/30 p-3"},[q.value.length?(r(),l("div",zo,[t[57]||(t[57]=s("p",{class:"text-xs font-semibold text-foreground"},"注册日志",-1)),s("div",Po,[(r(!0),l(ge,null,Ve(q.value,(o,i)=>(r(),l("div",{key:`reg-${i}`,class:"font-mono"},n(vt(o)),1))),128))])])):m("",!0),Q.value.length?(r(),l("div",Fo,[t[58]||(t[58]=s("p",{class:"text-xs font-semibold text-foreground"},"刷新日志",-1)),s("div",Ko,[(r(!0),l(ge,null,Ve(Q.value,(o,i)=>(r(),l("div",{key:`login-${i}`,class:"font-mono"},n(vt(o)),1))),128))])])):m("",!0)],512)])):m("",!0),!y.value&&!c.value&&!f.value&&!q.value.length&&!Q.value.length?(r(),l("div",Ho," 暂无任务 ")):m("",!0)])])])):m("",!0)])),(r(),Re(je,{to:"body"},[ne.value?(r(),l("div",Jo,[s("div",Go,[s("div",{class:"flex items-center justify-between"},[t[59]||(t[59]=s("p",{class:"text-sm font-medium text-foreground"},"编辑账号",-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Pe}," 关闭 ")]),u.value?(r(),l("div",Yo,n(u.value),1)):m("",!0),s("div",qo,[t[60]||(t[60]=s("label",{class:"block text-xs text-muted-foreground"},"账号 ID",-1)),A(s("input",{"onUpdate:modelValue":t[20]||(t[20]=o=>_.value.id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",disabled:""},null,512),[[$,_.value.id]]),t[61]||(t[61]=s("label",{class:"block text-xs text-muted-foreground"},"secure_c_ses",-1)),A(s("textarea",{"onUpdate:modelValue":t[21]||(t[21]=o=>_.value.secure_c_ses=o),class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",rows:"3"},null,512),[[$,_.value.secure_c_ses]]),t[62]||(t[62]=s("label",{class:"block text-xs text-muted-foreground"},"csesidx",-1)),A(s("input",{"onUpdate:modelValue":t[22]||(t[22]=o=>_.value.csesidx=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,_.value.csesidx]]),t[63]||(t[63]=s("label",{class:"block text-xs text-muted-foreground"},"config_id",-1)),A(s("input",{"onUpdate:modelValue":t[23]||(t[23]=o=>_.value.config_id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,_.value.config_id]]),t[64]||(t[64]=s("label",{class:"block text-xs text-muted-foreground"},"host_c_oses",-1)),A(s("input",{"onUpdate:modelValue":t[24]||(t[24]=o=>_.value.host_c_oses=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,_.value.host_c_oses]]),t[65]||(t[65]=s("label",{class:"block text-xs text-muted-foreground"},"expires_at",-1)),A(s("input",{"onUpdate:modelValue":t[25]||(t[25]=o=>_.value.expires_at=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"2025-12-23 10:59:21"},null,512),[[$,_.value.expires_at]])]),s("div",{class:"mt-6 flex items-center justify-end gap-2"},[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Pe}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Jt}," 保存 ")])])])):m("",!0)])),(r(),Re(je,{to:"body"},[j.value?(r(),l("div",Qo,[s("div",Xo,[s("div",Wo,[t[66]||(t[66]=s("p",{class:"text-sm font-medium text-foreground"},"账户配置(JSON)",-1)),s("div",Zo,[s("button",{class:"rounded-full bg-foreground px-3 py-1 text-xs text-background transition-opacity hover:opacity-90",onClick:Kt},n(B.value?"显示原文":"脱敏显示"),1),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:ze}," 关闭 ")])]),M.value?(r(),l("div",er,n(M.value),1)):m("",!0),s("div",tr,[A(s("textarea",{"onUpdate:modelValue":t[26]||(t[26]=o=>ee.value=o),class:"h-96 w-full rounded-2xl border border-input bg-background px-4 py-3 font-mono text-xs text-foreground",spellcheck:"false",readonly:B.value},null,8,sr),[[$,ee.value]])]),s("div",or,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:ze}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Ht,disabled:B.value}," 保存 ",8,rr)])])])):m("",!0)]))],64))}});export{cr as default}; diff --git a/static/assets/Accounts-rG9Hbj71.js b/static/assets/Accounts-rG9Hbj71.js new file mode 100644 index 0000000000000000000000000000000000000000..2d5dc8cad4a2bc3971341bce0f4c63b63fe23c87 --- /dev/null +++ b/static/assets/Accounts-rG9Hbj71.js @@ -0,0 +1,2 @@ +import{g as E,C as os,h as i,d as rs,D as ls,i as J,o as ns,z as as,j as is,c as n,a as s,p as G,m as Re,q as R,v as V,s as $t,t as a,n as p,u as j,b as g,f as ee,F as ge,r as Ve,T as je,E as ds,w as M,e as l,G as us}from"./index-CQv2QMzB.js";import{_ as cs}from"./SelectMenu.vue_vue_type_script_setup_true_lang-BVovBIaU.js";import{_ as be}from"./Checkbox.vue_vue_type_script_setup_true_lang-D9NLz7h-.js";import{_ as fs}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-BRmG52AD.js";import{u as vs}from"./useConfirmDialog-BeyA60E7.js";import{_ as ms}from"./HelpTip.vue_vue_type_script_setup_true_lang-Dt22lg9h.js";const w={list:()=>E.get("/admin/accounts"),getConfig:()=>E.get("/admin/accounts-config"),updateConfig:y=>E.put("/admin/accounts-config",y),delete:y=>E.delete(`/admin/accounts/${y}`),disable:y=>E.put(`/admin/accounts/${y}/disable`),enable:y=>E.put(`/admin/accounts/${y}/enable`),startRegister:(y,k)=>E.post("/admin/register/start",{count:y,domain:k}),getRegisterTask:y=>E.get(`/admin/register/task/${y}`),getRegisterCurrent:()=>E.get("/admin/register/current"),startLogin:y=>E.post("/admin/login/start",y),getLoginTask:y=>E.get(`/admin/login/task/${y}`),getLoginCurrent:()=>E.get("/admin/login/current"),checkLogin:()=>E.post("/admin/login/check")},ps=os("accounts",()=>{const y=i([]),k=i(!1);async function A(){k.value=!0;try{const x=await w.list();y.value=Array.isArray(x)?x:x.accounts||[]}finally{k.value=!1}}async function ne(x){await w.delete(x),await A()}async function T(x){await w.disable(x),await A()}async function d(x){await w.enable(x),await A()}async function ae(x){await Promise.all(x.map($=>w.enable($))),await A()}async function te(x){await Promise.all(x.map($=>w.disable($))),await A()}async function b(x){await Promise.all(x.map($=>w.delete($))),await A()}async function Y(x){await w.updateConfig(x),await A()}return{accounts:y,isLoading:k,loadAccounts:A,deleteAccount:ne,disableAccount:T,enableAccount:d,bulkEnable:ae,bulkDisable:te,bulkDelete:b,updateConfig:Y}}),xs={class:"space-y-8"},gs={class:"rounded-3xl border border-border bg-card p-6"},bs={class:"flex flex-wrap items-center justify-between gap-4"},ys={class:"grid w-full grid-cols-2 gap-3 sm:flex sm:w-auto sm:items-center"},_s={class:"flex w-full flex-wrap items-center gap-3 text-xs text-muted-foreground sm:w-auto sm:flex-nowrap"},hs={class:"ml-auto flex items-center gap-2 sm:ml-0"},ws={class:"mt-4 flex flex-wrap items-center gap-2"},ks=["disabled"],Cs=["disabled"],Ts={key:0,class:"absolute right-0 z-10 mt-2 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg"},Ss=["disabled"],$s=["disabled"],Is=["disabled"],Es=["disabled"],Ls=["disabled"],As={key:0,class:"mt-6 grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3"},Rs=["onClick"],Vs={class:"flex items-start justify-between gap-3"},js={class:"mt-1 font-mono text-xs text-foreground"},Ms={class:"flex items-center gap-2"},Ds={class:"mt-4 grid grid-cols-2 gap-3 text-xs text-muted-foreground"},Os={key:0,class:"mt-1 text-[11px]"},Bs={key:0},Ns={key:1},Us={class:"mt-1 text-sm font-semibold text-foreground"},zs={class:"mt-1 text-sm font-semibold text-foreground"},Ps={class:"mt-4 flex flex-wrap items-center gap-2"},Fs=["onClick"],Ks=["onClick"],Hs=["onClick"],Js=["onClick"],Gs={key:0,class:"rounded-2xl border border-border bg-background p-4 text-center text-xs text-muted-foreground"},Ys={key:1,class:"relative mt-6 overflow-x-auto overflow-y-visible"},qs={class:"min-w-full text-left text-sm"},Qs={class:"text-xs uppercase tracking-[0.2em] text-muted-foreground"},Xs={class:"py-3 pr-4"},Ws={class:"py-3 pr-6"},Zs={class:"inline-flex items-center gap-2"},eo={class:"text-sm text-foreground"},to={key:0},so=["onClick"],oo={class:"py-4 pr-6 font-mono text-xs text-foreground"},ro={class:"py-4 pr-6"},lo={class:"py-4 pr-6"},no={key:0,class:"block text-[11px] text-muted-foreground"},ao={class:"py-4 pr-6 text-xs"},io={class:"py-4 pr-6 text-xs text-muted-foreground"},uo={class:"py-4 pr-6 text-xs text-muted-foreground"},co={class:"py-4 text-right"},fo={class:"flex flex-wrap justify-end gap-2"},vo=["onClick"],mo=["onClick"],po=["onClick"],xo=["onClick"],go={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},bo={class:"flex max-h-[90vh] w-full max-w-lg flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},yo={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},_o={class:"mt-1 text-xs text-muted-foreground"},ho={class:"scrollbar-slim flex-1 overflow-y-auto px-6 py-4"},wo={class:"space-y-4 text-sm"},ko={class:"flex rounded-full border border-border bg-muted/30 p-1 text-xs"},Co={key:0,class:"space-y-4"},To={key:1,class:"space-y-4"},So={key:0,class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-xs text-rose-600"},$o={class:"border-t border-border/60 px-6 py-4"},Io={class:"flex items-center justify-end gap-2"},Eo=["disabled"],Lo=["disabled"],Ao={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Ro={class:"flex h-[80vh] w-full max-w-2xl flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},Vo={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},jo={class:"flex items-center gap-2"},Mo=["disabled"],Do={class:"flex min-h-0 flex-1 flex-col px-6 py-4"},Oo={key:0,class:"rounded-2xl bg-destructive/10 px-3 py-2 text-xs text-destructive"},Bo={key:1,class:"grid gap-3 text-xs text-muted-foreground"},No={key:0,class:"space-y-1"},Uo={class:"flex items-center gap-2 font-medium text-foreground"},zo={class:"flex flex-wrap gap-x-4 gap-y-1"},Po={key:1,class:"space-y-1"},Fo={class:"flex items-center gap-2 font-medium text-foreground"},Ko={class:"flex flex-wrap gap-x-4 gap-y-1"},Ho={key:2,class:"mt-4 flex min-h-0 flex-1 flex-col"},Jo={key:0,class:"space-y-2"},Go={class:"space-y-1 text-[11px] text-muted-foreground"},Yo={key:1,class:"mt-4 space-y-2"},qo={class:"space-y-1 text-[11px] text-muted-foreground"},Qo={key:3,class:"mt-4 rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},Xo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Wo={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},Zo={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},er={class:"mt-4 space-y-3 text-sm"},tr={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},sr={class:"w-full max-w-3xl rounded-3xl border border-border bg-card p-6 shadow-xl"},or={class:"flex items-center justify-between"},rr={class:"flex items-center gap-2"},lr={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},nr={class:"mt-4"},ar=["readonly"],ir={class:"mt-6 flex items-center justify-end gap-2"},dr=["disabled"],Je="accounts-register-task-cache",Ge="accounts-login-task-cache",Ye="accounts-register-log-clear",qe="accounts-login-log-clear",Qe="accounts-register-task-cleared-id",Xe="accounts-login-task-cleared-id",It="1970-01-01 00:00:00",xr=rs({__name:"Accounts",setup(y){const k=ps(),{accounts:A,isLoading:ne}=ls(k),T=vs(),d=ds(),ae=i(""),te=i("all"),b=i(new Set),Y=i("table"),x=i(!1),$=i(""),Me=i(!1),D=i(""),se=i(""),N=i(!1),ie=i([]),de=i(1),ye=i(!1),U=i("register"),ue=i(""),z=i(""),_e=i(!1),q=i(!1),P=i(!1),De=i(null),he=i(null),we=i(null),F=i(null),K=i(null),oe=i(0),re=i(0),ce=i(!1),c=i(null),f=i(null),We=i(null),O=i(!1),S=i(!1),_=i(""),h=i({id:"",secure_c_ses:"",csesidx:"",config_id:"",host_c_oses:"",expires_at:""}),ke=i(null),Ze=i([]),Et=[{label:"全部状态",value:"all"},{label:"正常",value:"正常"},{label:"即将过期",value:"即将过期"},{label:"已过期",value:"已过期"},{label:"手动禁用",value:"手动禁用"},{label:"错误禁用",value:"错误禁用"},{label:"429限流",value:"429限流"}],H=J(()=>{const t=ae.value.trim().toLowerCase();return A.value.filter(e=>{const o=!t||e.id.toLowerCase().includes(t),r=te.value==="all"||ve(e)===te.value;return o&&r})}),B=J(()=>b.value.size),Oe=J(()=>H.value.length>0&&H.value.every(t=>b.value.has(t.id))),fe=async()=>{await k.loadAccounts(),b.value=new Set,P.value=!1},et=t=>{try{const e=localStorage.getItem(t);return e?JSON.parse(e):null}catch{return null}},tt=t=>{try{return localStorage.getItem(t)||null}catch{return null}},Ce=(t,e)=>{try{if(e){localStorage.setItem(t,e);return}localStorage.removeItem(t)}catch{}},st=(t,e)=>{try{localStorage.setItem(t,JSON.stringify(e))}catch{}},ot=t=>{try{localStorage.removeItem(t)}catch{}},rt=t=>{const e=localStorage.getItem(t),o=Number(e);return Number.isFinite(o)?o:0},Te=(t,e)=>{try{localStorage.setItem(t,String(e))}catch{}},Be=(t,e=!0)=>{t&&(t.id&&t.id===F.value||(t.id&&F.value&&t.id!==F.value&&(F.value=null,Ce(Qe,null)),c.value=t,t.id&&t.id!==he.value&&(he.value=t.id,oe.value=0,Te(Ye,0)),e&&st(Je,t)))},Se=(t,e=!0)=>{t&&(t.id&&t.id===K.value||(t.id&&K.value&&t.id!==K.value&&(K.value=null,Ce(Xe,null)),f.value=t,t.id&&t.id!==we.value&&(we.value=t.id,re.value=0,Te(qe,0)),e&&st(Ge,t)))},Lt=()=>{oe.value=rt(Ye),re.value=rt(qe),F.value=tt(Qe),K.value=tt(Xe);const t=et(Je);t&&t.id!==F.value&&(c.value=t,he.value=t.id||null);const e=et(Ge);e&&e.id!==K.value&&(f.value=e,we.value=e.id||null)},At=()=>{ye.value=!0,U.value="register",ue.value="",z.value="",_e.value=!1,ce.value=!1},Ne=()=>{ye.value=!1},Rt=t=>{const e=[],o=[];return t.split(/\r?\n/).map(u=>u.trim()).filter(Boolean).forEach((u,m)=>{const v=u.split("----").map(I=>I.trim()),C=m+1;if(v.length){if(v[0].toLowerCase()==="duckmail"){if(v.length<3||!v[1]||!v[2]){o.push(`第 ${C} 行格式错误(duckmail)`);return}const I=v[1],Ae=v.slice(2).join("----");e.push({id:I,secure_c_ses:"",csesidx:"",config_id:"",expires_at:It,mail_provider:"duckmail",mail_address:I,mail_password:Ae});return}if(v.length>=4&&v[0]&&v[2]&&v[3]){const I=v[0],Ae=v[1]||"",L=v[2],ss=v.slice(3).join("----");e.push({id:I,secure_c_ses:"",csesidx:"",config_id:"",expires_at:It,mail_provider:"microsoft",mail_address:I,mail_password:Ae,mail_client_id:L,mail_refresh_token:ss,mail_tenant:"consumers"});return}o.push(`第 ${C} 行格式错误`)}}),{items:e,errors:o}},Vt=async()=>{if(z.value="",!ue.value.trim()){z.value="请输入导入内容";return}const{items:t,errors:e}=Rt(ue.value);if(!t.length){z.value=e.length?e.join(","):"未识别到有效账号";return}if(e.length){z.value=e.slice(0,3).join(",");return}_e.value=!0;try{const r=[...await vt()],u=new Map(r.map((C,I)=>[C.id,I])),m=[];t.forEach(C=>{const I=u.get(C.id||"");if(I===void 0){r.push(C),m.push(C.id);return}const L={...r[I],mail_provider:C.mail_provider,mail_address:C.mail_address};C.mail_provider==="microsoft"?(L.mail_client_id=C.mail_client_id,L.mail_refresh_token=C.mail_refresh_token,L.mail_tenant=C.mail_tenant,L.mail_password=C.mail_password):(L.mail_password=C.mail_password,L.mail_client_id=void 0,L.mail_refresh_token=void 0,L.mail_tenant=void 0),r[I]=L,m.push(C.id)}),await k.updateConfig(r),await fe(),b.value=new Set(m),d.success(`成功导入 ${m.length} 个账户`),Ne(),await T.ask({title:"导入成功",message:`已导入 ${m.length} 个账户并自动选中。是否立即刷新这些账户以获取 Cookie?`,confirmText:"立即刷新",cancelText:"稍后手动刷新"})&&await St()}catch(o){z.value=o.message||"导入失败",d.error(o.message||"导入失败")}finally{_e.value=!1}},jt=async()=>{try{const t=[],e=c.value?.id,o=f.value?.id;if(e&&!$e(e)&&t.push(kt(e)),o&&!Ie(o)&&t.push(Ct(o)),!t.length){await He();return}await Promise.all(t)}catch(t){_.value=t?.message||"任务状态更新失败"}},Ue=async()=>{q.value=!0,await jt()},Mt=()=>{q.value=!1},Dt=()=>{const t=c.value?.id||null,e=f.value?.id||null;F.value=t,K.value=e,Ce(Qe,t),Ce(Xe,e),oe.value=c.value?.logs?.length||0,re.value=f.value?.logs?.length||0,Te(Ye,oe.value),Te(qe,re.value),c.value=null,f.value=null,he.value=null,we.value=null,_.value="",O.value=!1,S.value=!1,W(),Z(),ot(Je),ot(Ge)},$e=t=>!!(t&&t===F.value),Ie=t=>!!(t&&t===K.value),Ot=()=>{P.value=!P.value},le=()=>{P.value=!1},lt=t=>{if(!P.value)return;const e=t.target;De.value&&!De.value.contains(e)&&(P.value=!1)};ns(async()=>{Lt(),await fe(),await He(),Zt(),document.addEventListener("click",lt)});const Q=J(()=>{const t=c.value?.logs||[];return oe.value?t.slice(oe.value):t}),X=J(()=>{const t=f.value?.logs||[];return re.value?t.slice(re.value):t}),Bt=J(()=>!!_.value||!!c.value||!!f.value||Q.value.length>0||X.value.length>0),Nt=async()=>{await us();const t=We.value;t&&(t.scrollTop=t.scrollHeight)};as([Q,X,q],async()=>{q.value&&await Nt()},{deep:!0});const Ut=J(()=>{const t=c.value?.status,e=f.value?.status;return t==="running"||t==="pending"||e==="running"||e==="pending"}),zt=J(()=>{if(_.value)return"bg-rose-500";if(Ut.value)return"bg-sky-400";const t=[];if(c.value){const u=c.value.success_count??0,m=c.value.fail_count??0,v=c.value.count??u+m;t.push({success:u,fail:m,total:v,status:c.value.status})}if(f.value){const u=f.value.success_count??0,m=f.value.fail_count??0,v=f.value.account_ids?.length??u+m;t.push({success:u,fail:m,total:v,status:f.value.status})}if(!t.length)return"bg-muted-foreground";const e=t.reduce((u,m)=>u+m.success,0),o=t.reduce((u,m)=>u+m.fail,0),r=t.reduce((u,m)=>u+(m.total||0),0);if(e>0&&o>0)return"bg-amber-400";if(o>0&&e===0)return"bg-rose-500";if(e>0&&o===0)return"bg-emerald-400";if(r===0){const u=t.every(v=>v.status==="success");if(t.some(v=>v.status==="failed"))return"bg-rose-500";if(u)return"bg-emerald-400"}return"bg-muted-foreground"});is(()=>{W(),Z(),Wt(),document.removeEventListener("click",lt)});const ve=t=>t.cooldown_reason?.includes("429")&&t.cooldown_seconds>0?"429限流":t.cooldown_reason==="错误禁用"?"错误禁用":t.disabled?"手动禁用":t.status==="已过期"?"已过期":t.status==="即将过期"?"即将过期":"正常",nt=t=>{const e=ve(t);return e==="429限流"||e==="即将过期"?"bg-amber-200 text-amber-900":e==="错误禁用"||e==="已过期"?"bg-destructive/10 text-destructive":e==="手动禁用"?"bg-muted text-muted-foreground":"bg-emerald-500 text-white"},at=t=>t.cooldown_reason?.includes("429")&&t.cooldown_seconds>0?!0:t.disabled||t.cooldown_reason==="错误禁用",it=t=>t==="已过期"?"过期":t==="未设置"?"未设置":t,dt=t=>t.status==="已过期"?"text-rose-600":t.status==="即将过期"?"text-amber-700":t.status==="未设置"?"text-muted-foreground":"text-emerald-600",ut=t=>t<60?`${t} 秒`:t<3600?`${Math.ceil(t/60)} 分钟`:`${(t/3600).toFixed(1)} 小时`,ze=t=>t.cooldown_seconds>0?"text-amber-700":t.cooldown_reason==="错误禁用"?"text-rose-600":"text-muted-foreground",ct=t=>{const e=ve(t);return e==="手动禁用"||e==="已过期"?"bg-muted/70":""},Ee=t=>{const e=new Set(b.value);e.has(t)?e.delete(t):e.add(t),b.value=e},ft=()=>{if(Oe.value){b.value=new Set;return}b.value=new Set(H.value.map(t=>t.id))},Pt=(t,e)=>t.id||`account_${e+1}`,vt=async()=>(await w.getConfig()).accounts.map((e,o)=>({...e,id:Pt(e,o)})),mt=t=>`${t.time} [${t.level}] ${t.message}`,Ft=(t,e)=>{let o=-1;for(let u=0;u{$.value="";try{const e=await vt();Ft(e,t)}catch(e){$.value=e.message||"加载账号配置失败"}},Kt=async()=>{D.value="";try{const t=await w.getConfig();ie.value=Array.isArray(t.accounts)?t.accounts:[],se.value=JSON.stringify(gt(ie.value),null,2),N.value=!0,Me.value=!0}catch(t){D.value=t.message||"加载账号配置失败"}},Pe=()=>{Me.value=!1,D.value="",N.value=!1},xt=()=>{const t=JSON.parse(se.value);if(!Array.isArray(t))throw new Error("配置格式必须是数组。");return t},Ht=t=>typeof t!="string"||!t?t:t.length<=6?`${t.slice(0,2)}****`:`${t.slice(0,3)}****`,gt=t=>{const e=new Set(["secure_c_ses","csesidx","config_id","host_c_oses","mail_password","mail_refresh_token","mail_client_id"]);return t.map(o=>{const r={...o};return e.forEach(u=>{const m=r[u];m&&(r[u]=Ht(m))}),r})},Jt=()=>{if(D.value="",!N.value){try{ie.value=xt()}catch(t){D.value=t.message||"JSON 格式错误";return}se.value=JSON.stringify(gt(ie.value),null,2),N.value=!0;return}se.value=JSON.stringify(ie.value,null,2),N.value=!1},Gt=async()=>{D.value="";try{const t=xt();await k.updateConfig(t),d.success("配置保存成功"),Pe()}catch(t){D.value=t.message||"保存失败",d.error(t.message||"保存失败")}},Fe=()=>{x.value=!1,$.value=""},Yt=async()=>{if(ke.value===null)return;const t=[...Ze.value];t[ke.value]={...t[ke.value],id:h.value.id,secure_c_ses:h.value.secure_c_ses,csesidx:h.value.csesidx,config_id:h.value.config_id,host_c_oses:h.value.host_c_oses||void 0,expires_at:h.value.expires_at||void 0};try{await k.updateConfig(t),d.success("账号编辑成功"),Fe()}catch(e){$.value=e.message||"保存失败",d.error(e.message||"保存失败")}},qt=async()=>{try{await k.bulkEnable(Array.from(b.value)),d.success("批量启用成功"),b.value=new Set}catch(t){d.error(t.message||"批量启用失败")}},Qt=async()=>{if(await T.ask({title:"批量禁用",message:"确定要批量禁用选中的账号吗?"}))try{await k.bulkDisable(Array.from(b.value)),d.success("批量禁用成功"),b.value=new Set}catch(e){d.error(e.message||"批量禁用失败")}},Xt=async()=>{if(await T.ask({title:"批量删除",message:"确定要批量删除选中的账号吗?",confirmText:"删除"}))try{await k.bulkDelete(Array.from(b.value)),d.success("批量删除成功"),b.value=new Set}catch(e){d.error(e.message||"批量删除失败")}},bt=async t=>{try{await k.enableAccount(t),d.success("账号已启用")}catch(e){d.error(e.message||"启用失败")}},yt=async t=>{if(await T.ask({title:"禁用账号",message:"确定要禁用该账号吗?"}))try{await k.disableAccount(t),d.success("账号已禁用")}catch(o){d.error(o.message||"禁用失败")}},_t=async t=>{if(await T.ask({title:"删除账号",message:"确定要删除该账号吗?",confirmText:"删除"}))try{await k.deleteAccount(t),d.success("账号已删除")}catch(o){d.error(o.message||"删除失败")}};let me=null,pe=null,xe=null,Le=!1;const W=()=>{me!==null&&(window.clearInterval(me),me=null)},Z=()=>{pe!==null&&(window.clearInterval(pe),pe=null)},Wt=()=>{xe!==null&&(window.clearInterval(xe),xe=null),Le=!1},ht=t=>t==="pending"?"等待中":t==="running"?"执行中":t==="success"?"成功":t==="failed"?"失败":t,wt=t=>{const e=t.status,o=t.success_count??0,r=t.fail_count??0;if(e==="running"||e==="pending")return"bg-sky-400";if(e==="success"||e==="failed"){if(o>0&&r===0)return"bg-emerald-400";if(r>0&&o===0)return"bg-rose-500";if(o>0&&r>0)return"bg-amber-400"}return"bg-muted-foreground"},kt=async t=>{if($e(t)){W();return}const e=await w.getRegisterTask(t);if($e(e.id)){W();return}if(Be(e),e.status!=="running"&&e.status!=="pending"){O.value=!1,W(),await fe();const o=e.success_count||0,r=e.fail_count||0;o>0&&r>0?d.success(`注册任务完成:成功 ${o},失败 ${r}`):o>0&&r===0?d.success(`注册任务完成:全部成功 (${o})`):r>0&&o===0?d.error(`注册任务完成:全部失败 (${r})`):d.error("注册任务失败")}},Ct=async t=>{if(Ie(t)){Z();return}const e=await w.getLoginTask(t);if(Ie(e.id)){Z();return}if(Se(e),e.status!=="running"&&e.status!=="pending"){S.value=!1,Z(),await fe();const o=e.success_count||0,r=e.fail_count||0;o>0&&r>0?d.success(`刷新任务完成:成功 ${o},失败 ${r}`):o>0&&r===0?d.success(`刷新任务完成:全部成功 (${o})`):r>0&&o===0?d.error(`刷新任务完成:全部失败 (${r})`):d.error("刷新任务失败")}},Tt=t=>{W(),me=window.setInterval(()=>{kt(t).catch(e=>{_.value=e?.message||"注册任务更新失败",W(),O.value=!1})},3e3)},Ke=t=>{Z(),pe=window.setInterval(()=>{Ct(t).catch(e=>{_.value=e?.message||"刷新任务更新失败",Z(),S.value=!1})},3e3)},Zt=()=>{xe===null&&(xe=window.setInterval(async()=>{if(!Le&&!q.value&&!(me!==null||pe!==null)&&!(!O.value&&!S.value&&!c.value&&!f.value)){Le=!0;try{await He()}catch(t){_.value=t?.message||"后台刷新失败"}finally{Le=!1}}},6e3))},He=async()=>{try{const t=await w.getRegisterCurrent();t&&"id"in t&&!$e(t.id)&&(Be(t),(t.status==="running"||t.status==="pending")&&(O.value=!0,Tt(t.id)))}catch(t){_.value=t.message||"加载注册任务失败"}try{const t=await w.getLoginCurrent();t&&"id"in t&&!Ie(t.id)&&(Se(t),(t.status==="running"||t.status==="pending")&&(S.value=!0,Ke(t.id)))}catch(t){_.value=t.message||"加载刷新任务失败"}},es=async()=>{_.value="",O.value=!0;try{const t=Number.isFinite(de.value)&&de.value>0?de.value:void 0,e=await w.startRegister(t);Be(e),Tt(e.id),ye.value=!1,q.value=!0}catch(t){_.value=t.message||"启动注册失败",O.value=!1}},St=async()=>{if(b.value.size){_.value="",S.value=!0;try{const t=await w.startLogin(Array.from(b.value));Se(t),Ke(t.id),Ue()}catch(t){_.value=t.message||"启动刷新失败",S.value=!1}}},ts=async()=>{_.value="",S.value=!0;try{await w.checkLogin();const t=await w.getLoginCurrent();if(t&&"id"in t){Se(t),Ke(t.id),Ue();return}S.value=!1}catch(t){_.value=t.message||"触发刷新失败",S.value=!1}};return(t,e)=>(l(),n(ge,null,[s("div",xs,[s("section",gs,[s("div",bs,[s("div",ys,[R(s("input",{"onUpdate:modelValue":e[0]||(e[0]=o=>ae.value=o),type:"text",placeholder:"搜索账号 ID",class:"w-full rounded-full border border-input bg-background px-4 py-2 text-sm sm:w-48"},null,512),[[V,ae.value]]),G(cs,{modelValue:te.value,"onUpdate:modelValue":e[1]||(e[1]=o=>te.value=o),options:Et},null,8,["modelValue"])]),s("div",_s,[G(be,{modelValue:Oe.value,"onUpdate:modelValue":ft},{default:$t(()=>[...e[27]||(e[27]=[ee(" 全选 ",-1)])]),_:1},8,["modelValue"]),s("span",null,"已选 "+a(B.value)+" / "+a(H.value.length)+" 个账号",1),s("div",hs,[s("button",{type:"button",class:p(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",Y.value==="table"?"bg-accent text-accent-foreground":""]),onClick:e[2]||(e[2]=o=>Y.value="table"),"aria-label":"列表视图"},[...e[28]||(e[28]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])],2),s("button",{type:"button",class:p(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",Y.value==="card"?"bg-accent text-accent-foreground":""]),onClick:e[3]||(e[3]=o=>Y.value="card"),"aria-label":"卡片视图"},[...e[29]||(e[29]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h7v6H4V6zm9 0h7v6h-7V6zM4 14h7v4H4v-4zm9 0h7v4h-7v-4z"})],-1)])],2)])])]),s("div",ws,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary disabled:cursor-not-allowed disabled:opacity-50",disabled:j(ne),onClick:fe}," 刷新列表 ",8,ks),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:Kt}," 账户配置 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary disabled:cursor-not-allowed disabled:opacity-50",disabled:O.value,onClick:At}," 添加账户 ",8,Cs),s("div",{ref_key:"moreActionsRef",ref:De,class:"relative"},[s("button",{class:p(["flex items-center gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary",P.value?"bg-accent text-accent-foreground":""]),onClick:Ot},[e[30]||(e[30]=ee(" 更多操作 ",-1)),e[31]||(e[31]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1)),Bt.value?(l(),n("span",{key:0,class:p(["ml-1 h-2 w-2 rounded-full",zt.value]),"aria-hidden":"true"},null,2)):g("",!0)],2),P.value?(l(),n("div",Ts,[s("button",{type:"button",class:"flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm text-foreground transition-colors hover:bg-accent",onClick:e[4]||(e[4]=o=>{Ue(),le()})}," 任务状态 "),e[32]||(e[32]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:p(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",S.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:S.value,onClick:e[5]||(e[5]=o=>{ts(),le()})}," 刷新过期 ",10,Ss),s("button",{type:"button",class:p(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",!B.value||S.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:!B.value||S.value,onClick:e[6]||(e[6]=o=>{St(),le()})}," 刷新选中 ",10,$s),e[33]||(e[33]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:p(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",B.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!B.value,onClick:e[7]||(e[7]=o=>{qt(),le()})}," 批量启用 ",10,Is),s("button",{type:"button",class:p(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",B.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!B.value,onClick:e[8]||(e[8]=o=>{Qt(),le()})}," 批量禁用 ",10,Es),s("button",{type:"button",class:p(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",B.value?"text-destructive hover:bg-destructive/10":"cursor-not-allowed text-muted-foreground"]),disabled:!B.value,onClick:e[9]||(e[9]=o=>{Xt(),le()})}," 批量删除 ",10,Ls)])):g("",!0)],512)]),Y.value==="card"?(l(),n("div",As,[(l(!0),n(ge,null,Ve(H.value,o=>(l(),n("div",{key:o.id,class:p(["rounded-2xl border border-border bg-card p-4",ct(o)]),onClick:r=>Ee(o.id)},[s("div",Vs,[s("div",null,[e[34]||(e[34]=s("p",{class:"text-xs text-muted-foreground"},"账号 ID",-1)),s("p",js,a(o.id),1)]),s("div",Ms,[G(be,{modelValue:b.value.has(o.id),"onUpdate:modelValue":r=>Ee(o.id),onClick:e[10]||(e[10]=M(()=>{},["stop"]))},null,8,["modelValue","onUpdate:modelValue"]),s("span",{class:p(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",nt(o)])},a(ve(o)),3)])]),s("div",Ds,[s("div",null,[e[35]||(e[35]=s("p",null,"剩余时间",-1)),s("p",{class:p(["mt-1 text-sm font-semibold",dt(o)])},a(it(o.remaining_display)),3),o.expires_at?(l(),n("p",Os,a(o.expires_at),1)):g("",!0)]),s("div",null,[e[36]||(e[36]=s("p",null,"冷却",-1)),s("p",{class:p(["mt-1",ze(o)])},[o.cooldown_seconds>0?(l(),n("span",Bs,a(ut(o.cooldown_seconds))+" · "+a(o.cooldown_reason),1)):(l(),n("span",Ns,a(o.cooldown_reason||"无冷却"),1))],2)]),s("div",null,[e[37]||(e[37]=s("p",null,"失败数",-1)),s("p",Us,a(o.error_count),1)]),s("div",null,[e[38]||(e[38]=s("p",null,"会话数",-1)),s("p",zs,a(o.conversation_count),1)])]),s("div",Ps,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:M(r=>pt(o.id),["stop"])}," 编辑 ",8,Fs),at(o)?(l(),n("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[e[11]||(e[11]=M(()=>{},["stop"])),r=>bt(o.id)]}," 启用 ",8,Ks)):(l(),n("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[e[12]||(e[12]=M(()=>{},["stop"])),r=>yt(o.id)]}," 禁用 ",8,Hs)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:[e[13]||(e[13]=M(()=>{},["stop"])),r=>_t(o.id)]}," 删除 ",8,Js)])],10,Rs))),128)),!H.value.length&&!j(ne)?(l(),n("div",Gs," 暂无账号数据,请检查后台配置。 ")):g("",!0)])):(l(),n("div",Ys,[s("table",qs,[s("thead",Qs,[s("tr",null,[s("th",Xs,[G(be,{modelValue:Oe.value,"onUpdate:modelValue":ft},null,8,["modelValue"])]),e[40]||(e[40]=s("th",{class:"py-3 pr-6"},"账号 ID",-1)),e[41]||(e[41]=s("th",{class:"py-3 pr-6"},"状态",-1)),s("th",Ws,[s("span",Zs,[e[39]||(e[39]=ee(" 剩余/过期 ",-1)),G(ms,{text:"过期时间为 12 小时,账户过期以北京时间为准。"})])]),e[42]||(e[42]=s("th",{class:"py-3 pr-6"},"冷却",-1)),e[43]||(e[43]=s("th",{class:"py-3 pr-6"},"失败数",-1)),e[44]||(e[44]=s("th",{class:"py-3 pr-6"},"会话数",-1)),e[45]||(e[45]=s("th",{class:"py-3 text-right"},"操作",-1))])]),s("tbody",eo,[!H.value.length&&!j(ne)?(l(),n("tr",to,[...e[46]||(e[46]=[s("td",{colspan:"8",class:"py-8 text-center text-muted-foreground"}," 暂无账号数据,请检查后台配置。 ",-1)])])):g("",!0),(l(!0),n(ge,null,Ve(H.value,o=>(l(),n("tr",{key:o.id,class:p(["border-t border-border",ct(o)]),onClick:r=>Ee(o.id)},[s("td",{class:"py-4 pr-4",onClick:e[14]||(e[14]=M(()=>{},["stop"]))},[G(be,{modelValue:b.value.has(o.id),"onUpdate:modelValue":r=>Ee(o.id)},null,8,["modelValue","onUpdate:modelValue"])]),s("td",oo,a(o.id),1),s("td",ro,[s("span",{class:p(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",nt(o)])},a(ve(o)),3)]),s("td",lo,[s("div",{class:p(["text-sm font-semibold",dt(o)])},a(it(o.remaining_display)),3),o.expires_at?(l(),n("span",no,a(o.expires_at),1)):g("",!0)]),s("td",ao,[o.cooldown_seconds>0?(l(),n("span",{key:0,class:p(ze(o))},a(ut(o.cooldown_seconds))+" · "+a(o.cooldown_reason),3)):(l(),n("span",{key:1,class:p(ze(o))},a(o.cooldown_reason||"无冷却"),3))]),s("td",io,a(o.error_count),1),s("td",uo,a(o.conversation_count),1),s("td",co,[s("div",fo,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:M(r=>pt(o.id),["stop"])}," 编辑 ",8,vo),at(o)?(l(),n("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:M(r=>bt(o.id),["stop"])}," 启用 ",8,mo)):(l(),n("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:M(r=>yt(o.id),["stop"])}," 禁用 ",8,po)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:M(r=>_t(o.id),["stop"])}," 删除 ",8,xo)])])],10,so))),128))])])]))])]),G(fs,{open:j(T).open.value,title:j(T).title.value,message:j(T).message.value,"confirm-text":j(T).confirmText.value,"cancel-text":j(T).cancelText.value,onConfirm:j(T).confirm,onCancel:j(T).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(l(),Re(je,{to:"body"},[ye.value?(l(),n("div",go,[s("div",bo,[s("div",yo,[s("div",null,[e[47]||(e[47]=s("p",{class:"text-sm font-medium text-foreground"},"添加账户",-1)),s("p",_o,a(U.value==="register"?"创建 DuckMail 账号并自动注册":"批量导入账户配置"),1)]),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Ne}," 关闭 ")]),s("div",ho,[s("div",wo,[s("div",ko,[s("button",{type:"button",class:p(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",U.value==="register"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:e[15]||(e[15]=o=>U.value="register")}," 自动注册 ",2),s("button",{type:"button",class:p(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",U.value==="import"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:e[16]||(e[16]=o=>U.value="import")}," 批量导入 ",2)]),U.value==="register"?(l(),n("div",Co,[e[48]||(e[48]=s("label",{class:"block text-xs text-muted-foreground"},"注册数量",-1)),R(s("input",{"onUpdate:modelValue":e[17]||(e[17]=o=>de.value=o),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,de.value,void 0,{number:!0}]]),e[49]||(e[49]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},[s("p",null,"默认域名(可在配置面板修改,推荐使用)"),s("p",{class:"mt-1"},"注册失败建议关闭无头浏览器再试")],-1))])):(l(),n("div",To,[e[50]||(e[50]=s("label",{class:"block text-xs text-muted-foreground"},"批量导入(每行一个)",-1)),R(s("textarea",{"onUpdate:modelValue":e[18]||(e[18]=o=>ue.value=o),class:"min-h-[140px] w-full rounded-2xl border border-input bg-background px-3 py-2 text-xs font-mono",placeholder:`duckmail----you@example.com----password +user@outlook.com----loginPassword----clientId----refreshToken`},null,512),[[V,ue.value]]),e[51]||(e[51]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},[s("p",null,"支持两种格式:"),s("p",{class:"mt-1 font-mono"},"duckmail----email----password"),s("p",{class:"mt-1 font-mono"},"email----password----clientId----refreshToken"),s("p",{class:"mt-2"},'导入后请执行一次"刷新选中"以获取 Cookie。'),s("p",{class:"mt-1"},"注册失败建议关闭无头浏览器再试")],-1)),z.value?(l(),n("div",So,a(z.value),1)):g("",!0)])),e[53]||(e[53]=s("div",{class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-[11px] leading-relaxed"},[s("p",{class:"text-xs font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)"),s("p",{class:"mt-1 text-muted-foreground"},[ee("详细声明请查看项目 "),s("a",{href:"https://github.com/Dreamy-rain/gemini-business2api/blob/main/docs/DISCLAIMER.md",target:"_blank",class:"text-primary hover:underline font-medium"},"DISCLAIMER.md")])],-1)),G(be,{modelValue:ce.value,"onUpdate:modelValue":e[19]||(e[19]=o=>ce.value=o)},{default:$t(()=>[...e[52]||(e[52]=[ee(" 我已阅读并同意上述说明与限制 ",-1)])]),_:1},8,["modelValue"])])]),s("div",$o,[s("div",Io,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Ne}," 取消 "),U.value==="register"?(l(),n("button",{key:0,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",disabled:O.value||!ce.value,onClick:es}," 开始注册 ",8,Eo)):(l(),n("button",{key:1,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",disabled:_e.value||!ce.value,onClick:Vt}," 导入并保存 ",8,Lo))])])])])):g("",!0)])),(l(),Re(je,{to:"body"},[q.value?(l(),n("div",Ao,[s("div",Ro,[s("div",Vo,[e[54]||(e[54]=s("div",null,[s("p",{class:"text-sm font-medium text-foreground"},"任务状态"),s("p",{class:"mt-1 text-xs text-muted-foreground"},"注册与刷新任务的状态与日志")],-1)),s("div",jo,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-muted-foreground transition-colors hover:border-primary hover:text-primary disabled:cursor-not-allowed disabled:opacity-50",disabled:!Q.value.length&&!X.value.length&&!c.value&&!f.value&&!_.value,onClick:Dt}," 清空日志 ",8,Mo),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Mt}," 关闭 ")])]),s("div",Do,[_.value?(l(),n("div",Oo,a(_.value),1)):g("",!0),c.value||f.value?(l(),n("div",Bo,[c.value?(l(),n("div",No,[s("div",Uo,[s("span",{class:p(["h-2.5 w-2.5 rounded-full",wt(c.value)]),"aria-hidden":"true"},null,2),e[55]||(e[55]=ee(" 注册任务 ",-1))]),s("div",zo,[s("span",null,"状态:"+a(ht(c.value.status)),1),s("span",null,"进度:"+a(c.value.progress)+"/"+a(c.value.count),1),s("span",null,"成功:"+a(c.value.success_count),1),s("span",null,"失败:"+a(c.value.fail_count),1)])])):g("",!0),f.value?(l(),n("div",Po,[s("div",Fo,[s("span",{class:p(["h-2.5 w-2.5 rounded-full",wt(f.value)]),"aria-hidden":"true"},null,2),e[56]||(e[56]=ee(" 刷新任务 ",-1))]),s("div",Ko,[s("span",null,"状态:"+a(ht(f.value.status)),1),s("span",null,"进度:"+a(f.value.progress)+"/"+a(f.value.account_ids.length),1),s("span",null,"成功:"+a(f.value.success_count),1),s("span",null,"失败:"+a(f.value.fail_count),1)])])):g("",!0)])):g("",!0),Q.value.length||X.value.length?(l(),n("div",Ho,[s("div",{ref_key:"taskLogsRef",ref:We,class:"scrollbar-slim flex-1 overflow-y-auto rounded-2xl border border-border bg-muted/30 p-3"},[Q.value.length?(l(),n("div",Jo,[e[57]||(e[57]=s("p",{class:"text-xs font-semibold text-foreground"},"注册日志",-1)),s("div",Go,[(l(!0),n(ge,null,Ve(Q.value,(o,r)=>(l(),n("div",{key:`reg-${r}`,class:"font-mono"},a(mt(o)),1))),128))])])):g("",!0),X.value.length?(l(),n("div",Yo,[e[58]||(e[58]=s("p",{class:"text-xs font-semibold text-foreground"},"刷新日志",-1)),s("div",qo,[(l(!0),n(ge,null,Ve(X.value,(o,r)=>(l(),n("div",{key:`login-${r}`,class:"font-mono"},a(mt(o)),1))),128))])])):g("",!0)],512)])):g("",!0),!_.value&&!c.value&&!f.value&&!Q.value.length&&!X.value.length?(l(),n("div",Qo," 暂无任务 ")):g("",!0)])])])):g("",!0)])),(l(),Re(je,{to:"body"},[x.value?(l(),n("div",Xo,[s("div",Wo,[s("div",{class:"flex items-center justify-between"},[e[59]||(e[59]=s("p",{class:"text-sm font-medium text-foreground"},"编辑账号",-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Fe}," 关闭 ")]),$.value?(l(),n("div",Zo,a($.value),1)):g("",!0),s("div",er,[e[60]||(e[60]=s("label",{class:"block text-xs text-muted-foreground"},"账号 ID",-1)),R(s("input",{"onUpdate:modelValue":e[20]||(e[20]=o=>h.value.id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",disabled:""},null,512),[[V,h.value.id]]),e[61]||(e[61]=s("label",{class:"block text-xs text-muted-foreground"},"secure_c_ses",-1)),R(s("textarea",{"onUpdate:modelValue":e[21]||(e[21]=o=>h.value.secure_c_ses=o),class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",rows:"3"},null,512),[[V,h.value.secure_c_ses]]),e[62]||(e[62]=s("label",{class:"block text-xs text-muted-foreground"},"csesidx",-1)),R(s("input",{"onUpdate:modelValue":e[22]||(e[22]=o=>h.value.csesidx=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,h.value.csesidx]]),e[63]||(e[63]=s("label",{class:"block text-xs text-muted-foreground"},"config_id",-1)),R(s("input",{"onUpdate:modelValue":e[23]||(e[23]=o=>h.value.config_id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,h.value.config_id]]),e[64]||(e[64]=s("label",{class:"block text-xs text-muted-foreground"},"host_c_oses",-1)),R(s("input",{"onUpdate:modelValue":e[24]||(e[24]=o=>h.value.host_c_oses=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[V,h.value.host_c_oses]]),e[65]||(e[65]=s("label",{class:"block text-xs text-muted-foreground"},"expires_at",-1)),R(s("input",{"onUpdate:modelValue":e[25]||(e[25]=o=>h.value.expires_at=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"2025-12-23 10:59:21"},null,512),[[V,h.value.expires_at]])]),s("div",{class:"mt-6 flex items-center justify-end gap-2"},[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Fe}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Yt}," 保存 ")])])])):g("",!0)])),(l(),Re(je,{to:"body"},[Me.value?(l(),n("div",tr,[s("div",sr,[s("div",or,[e[66]||(e[66]=s("p",{class:"text-sm font-medium text-foreground"},"账户配置(JSON)",-1)),s("div",rr,[s("button",{class:"rounded-full bg-foreground px-3 py-1 text-xs text-background transition-opacity hover:opacity-90",onClick:Jt},a(N.value?"显示原文":"脱敏显示"),1),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Pe}," 关闭 ")])]),D.value?(l(),n("div",lr,a(D.value),1)):g("",!0),s("div",nr,[R(s("textarea",{"onUpdate:modelValue":e[26]||(e[26]=o=>se.value=o),class:"h-96 w-full rounded-2xl border border-input bg-background px-4 py-3 font-mono text-xs text-foreground",spellcheck:"false",readonly:N.value},null,8,ar),[[V,se.value]])]),s("div",ir,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Pe}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",onClick:Gt,disabled:N.value}," 保存 ",8,dr)])])])):g("",!0)]))],64))}});export{xr as default}; diff --git a/static/assets/Accounts-vV-lLEEq.js b/static/assets/Accounts-vV-lLEEq.js new file mode 100644 index 0000000000000000000000000000000000000000..6b31a967ce436b126247138277e92348da1ccefb --- /dev/null +++ b/static/assets/Accounts-vV-lLEEq.js @@ -0,0 +1,2 @@ +import{g as E,D as ts,h as a,d as ss,E as os,i as H,o as rs,A as ls,j as ns,c as l,a as s,p as J,m as Re,q as A,v as $,s as Tt,t as n,n as g,u as R,b as m,f as pe,F as ge,r as Ve,x as je,w as V,e as r,G as as}from"./index-OP3F9IRB.js";import{_ as is}from"./SelectMenu.vue_vue_type_script_setup_true_lang-BN7xX40H.js";import{_ as be}from"./Checkbox.vue_vue_type_script_setup_true_lang-aBWvRhQv.js";import{_ as ds}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-CPmtaJk8.js";import{u as us}from"./useConfirmDialog-BNQ4DnH9.js";import{_ as cs}from"./HelpTip.vue_vue_type_script_setup_true_lang-CpmAUbfQ.js";const h={list:()=>E.get("/admin/accounts"),getConfig:()=>E.get("/admin/accounts-config"),updateConfig:b=>E.put("/admin/accounts-config",b),delete:b=>E.delete(`/admin/accounts/${b}`),disable:b=>E.put(`/admin/accounts/${b}/disable`),enable:b=>E.put(`/admin/accounts/${b}/enable`),startRegister:(b,w)=>E.post("/admin/register/start",{count:b,domain:w}),getRegisterTask:b=>E.get(`/admin/register/task/${b}`),getRegisterCurrent:()=>E.get("/admin/register/current"),startLogin:b=>E.post("/admin/login/start",b),getLoginTask:b=>E.get(`/admin/login/task/${b}`),getLoginCurrent:()=>E.get("/admin/login/current"),checkLogin:()=>E.post("/admin/login/check")},fs=ts("accounts",()=>{const b=a([]),w=a(!1);async function L(){w.value=!0;try{const u=await h.list();b.value=Array.isArray(u)?u:u.accounts||[]}finally{w.value=!1}}async function re(u){await h.delete(u),await L()}async function C(u){await h.disable(u),await L()}async function le(u){await h.enable(u),await L()}async function Z(u){await Promise.all(u.map(j=>h.enable(j))),await L()}async function p(u){await Promise.all(u.map(j=>h.disable(j))),await L()}async function G(u){await Promise.all(u.map(j=>h.delete(j))),await L()}async function ne(u){await h.updateConfig(u),await L()}return{accounts:b,isLoading:w,loadAccounts:L,deleteAccount:re,disableAccount:C,enableAccount:le,bulkEnable:Z,bulkDisable:p,bulkDelete:G,updateConfig:ne}}),vs={class:"space-y-8"},xs={class:"rounded-3xl border border-border bg-card p-6"},ms={class:"flex flex-wrap items-center justify-between gap-4"},ps={class:"grid w-full grid-cols-2 gap-3 sm:flex sm:w-auto sm:items-center"},gs={class:"flex w-full flex-wrap items-center gap-3 text-xs text-muted-foreground sm:w-auto sm:flex-nowrap"},bs={class:"ml-auto flex items-center gap-2 sm:ml-0"},ys={class:"mt-4 flex flex-wrap items-center gap-2"},_s=["disabled"],hs=["disabled"],ws={key:0,class:"absolute right-0 z-10 mt-2 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg"},ks=["disabled"],Cs=["disabled"],Ts=["disabled"],Ss=["disabled"],Es=["disabled"],Is={key:0,class:"mt-6 grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3"},Ls=["onClick"],As={class:"flex items-start justify-between gap-3"},$s={class:"mt-1 font-mono text-xs text-foreground"},Rs={class:"flex items-center gap-2"},Vs={class:"mt-4 grid grid-cols-2 gap-3 text-xs text-muted-foreground"},js={key:0,class:"mt-1 text-[11px]"},Ms={key:0},Ds={key:1},Os={class:"mt-1 text-sm font-semibold text-foreground"},Bs={class:"mt-1 text-sm font-semibold text-foreground"},Ns={class:"mt-4 flex flex-wrap items-center gap-2"},Us=["onClick"],zs=["onClick"],Ps=["onClick"],Fs=["onClick"],Ks={key:0,class:"rounded-2xl border border-border bg-background p-4 text-center text-xs text-muted-foreground"},Hs={key:1,class:"relative mt-6 overflow-x-auto overflow-y-visible"},Js={class:"min-w-full text-left text-sm"},Gs={class:"text-xs uppercase tracking-[0.2em] text-muted-foreground"},Ys={class:"py-3 pr-4"},qs={class:"py-3 pr-6"},Qs={class:"inline-flex items-center gap-2"},Xs={class:"text-sm text-foreground"},Ws={key:0},Zs=["onClick"],eo={class:"py-4 pr-6 font-mono text-xs text-foreground"},to={class:"py-4 pr-6"},so={class:"py-4 pr-6"},oo={key:0,class:"block text-[11px] text-muted-foreground"},ro={class:"py-4 pr-6 text-xs"},lo={class:"py-4 pr-6 text-xs text-muted-foreground"},no={class:"py-4 pr-6 text-xs text-muted-foreground"},ao={class:"py-4 text-right"},io={class:"flex flex-wrap justify-end gap-2"},uo=["onClick"],co=["onClick"],fo=["onClick"],vo=["onClick"],xo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},mo={class:"flex max-h-[90vh] w-full max-w-lg flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},po={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},go={class:"mt-1 text-xs text-muted-foreground"},bo={class:"scrollbar-slim flex-1 overflow-y-auto px-6 py-4"},yo={class:"space-y-4 text-sm"},_o={class:"flex rounded-full border border-border bg-muted/30 p-1 text-xs"},ho={key:0,class:"space-y-4"},wo={key:1,class:"space-y-4"},ko={key:0,class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-xs text-rose-600"},Co={class:"border-t border-border/60 px-6 py-4"},To={class:"flex items-center justify-end gap-2"},So=["disabled"],Eo=["disabled"],Io={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Lo={class:"flex h-[80vh] w-full max-w-2xl flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},Ao={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},$o={class:"flex items-center gap-2"},Ro=["disabled"],Vo={class:"flex min-h-0 flex-1 flex-col px-6 py-4"},jo={key:0,class:"rounded-2xl bg-destructive/10 px-3 py-2 text-xs text-destructive"},Mo={key:1,class:"grid gap-3 text-xs text-muted-foreground"},Do={key:0,class:"space-y-1"},Oo={class:"flex flex-wrap gap-x-4 gap-y-1"},Bo={key:1,class:"space-y-1"},No={class:"flex flex-wrap gap-x-4 gap-y-1"},Uo={key:2,class:"mt-4 flex min-h-0 flex-1 flex-col"},zo={key:0,class:"space-y-2"},Po={class:"space-y-1 text-[11px] text-muted-foreground"},Fo={key:1,class:"mt-4 space-y-2"},Ko={class:"space-y-1 text-[11px] text-muted-foreground"},Ho={key:3,class:"mt-4 rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},Jo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Go={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},Yo={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},qo={class:"mt-4 space-y-3 text-sm"},Qo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Xo={class:"w-full max-w-3xl rounded-3xl border border-border bg-card p-6 shadow-xl"},Wo={class:"flex items-center justify-between"},Zo={class:"flex items-center gap-2"},er={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},tr={class:"mt-4"},sr=["readonly"],or={class:"mt-6 flex items-center justify-end gap-2"},rr=["disabled"],He="accounts-register-task-cache",Je="accounts-login-task-cache",Ge="accounts-register-log-clear",Ye="accounts-login-log-clear",qe="accounts-register-task-cleared-id",Qe="accounts-login-task-cleared-id",St="1970-01-01 00:00:00",cr=ss({__name:"Accounts",setup(b){const w=fs(),{accounts:L,isLoading:re}=os(w),C=us(),le=a(""),Z=a("all"),p=a(new Set),G=a("table"),ne=a(!1),u=a(""),j=a(!1),M=a(""),ee=a(""),B=a(!1),ae=a([]),ie=a(1),ye=a(!1),N=a("register"),de=a(""),U=a(""),_e=a(!1),Y=a(!1),z=a(!1),Me=a(null),he=a(null),we=a(null),P=a(null),F=a(null),te=a(0),se=a(0),ue=a(!1),c=a(null),f=a(null),Xe=a(null),D=a(!1),T=a(!1),y=a(""),_=a({id:"",secure_c_ses:"",csesidx:"",config_id:"",host_c_oses:"",expires_at:""}),ke=a(null),We=a([]),Et=[{label:"全部状态",value:"all"},{label:"正常",value:"正常"},{label:"即将过期",value:"即将过期"},{label:"已过期",value:"已过期"},{label:"手动禁用",value:"手动禁用"},{label:"错误禁用",value:"错误禁用"},{label:"429限流",value:"429限流"}],K=H(()=>{const e=le.value.trim().toLowerCase();return L.value.filter(t=>{const o=!e||t.id.toLowerCase().includes(e),i=Z.value==="all"||fe(t)===Z.value;return o&&i})}),O=H(()=>p.value.size),De=H(()=>K.value.length>0&&K.value.every(e=>p.value.has(e.id))),ce=async()=>{await w.loadAccounts(),p.value=new Set,z.value=!1},Ze=e=>{try{const t=localStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}},et=e=>{try{return localStorage.getItem(e)||null}catch{return null}},Ce=(e,t)=>{try{if(t){localStorage.setItem(e,t);return}localStorage.removeItem(e)}catch{}},tt=(e,t)=>{try{localStorage.setItem(e,JSON.stringify(t))}catch{}},st=e=>{try{localStorage.removeItem(e)}catch{}},ot=e=>{const t=localStorage.getItem(e),o=Number(t);return Number.isFinite(o)?o:0},Te=(e,t)=>{try{localStorage.setItem(e,String(t))}catch{}},Oe=(e,t=!0)=>{e&&(e.id&&e.id===P.value||(e.id&&P.value&&e.id!==P.value&&(P.value=null,Ce(qe,null)),c.value=e,e.id&&e.id!==he.value&&(he.value=e.id,te.value=0,Te(Ge,0)),t&&tt(He,e)))},Se=(e,t=!0)=>{e&&(e.id&&e.id===F.value||(e.id&&F.value&&e.id!==F.value&&(F.value=null,Ce(Qe,null)),f.value=e,e.id&&e.id!==we.value&&(we.value=e.id,se.value=0,Te(Ye,0)),t&&tt(Je,e)))},It=()=>{te.value=ot(Ge),se.value=ot(Ye),P.value=et(qe),F.value=et(Qe);const e=Ze(He);e&&e.id!==P.value&&(c.value=e,he.value=e.id||null);const t=Ze(Je);t&&t.id!==F.value&&(f.value=t,we.value=t.id||null)},Lt=()=>{ye.value=!0,N.value="register",de.value="",U.value="",_e.value=!1,ue.value=!1},Be=()=>{ye.value=!1},At=e=>{const t=[],o=[];return e.split(/\r?\n/).map(d=>d.trim()).filter(Boolean).forEach((d,x)=>{const v=d.split("----").map(S=>S.trim()),k=x+1;if(v.length){if(v[0].toLowerCase()==="duckmail"){if(v.length<3||!v[1]||!v[2]){o.push(`第 ${k} 行格式错误(duckmail)`);return}const S=v[1],$e=v.slice(2).join("----");t.push({id:S,secure_c_ses:"",csesidx:"",config_id:"",expires_at:St,mail_provider:"duckmail",mail_address:S,mail_password:$e});return}if(v.length>=4&&v[0]&&v[2]&&v[3]){const S=v[0],$e=v[1]||"",I=v[2],es=v.slice(3).join("----");t.push({id:S,secure_c_ses:"",csesidx:"",config_id:"",expires_at:St,mail_provider:"microsoft",mail_address:S,mail_password:$e,mail_client_id:I,mail_refresh_token:es,mail_tenant:"consumers"});return}o.push(`第 ${k} 行格式错误`)}}),{items:t,errors:o}},$t=async()=>{if(U.value="",!de.value.trim()){U.value="请输入导入内容";return}const{items:e,errors:t}=At(de.value);if(!e.length){U.value=t.length?t.join(","):"未识别到有效账号";return}if(t.length){U.value=t.slice(0,3).join(",");return}_e.value=!0;try{const i=[...await ft()],d=new Map(i.map((k,S)=>[k.id,S])),x=[];e.forEach(k=>{const S=d.get(k.id||"");if(S===void 0){i.push(k),x.push(k.id);return}const I={...i[S],mail_provider:k.mail_provider,mail_address:k.mail_address};k.mail_provider==="microsoft"?(I.mail_client_id=k.mail_client_id,I.mail_refresh_token=k.mail_refresh_token,I.mail_tenant=k.mail_tenant,I.mail_password=k.mail_password):(I.mail_password=k.mail_password,I.mail_client_id=void 0,I.mail_refresh_token=void 0,I.mail_tenant=void 0),i[S]=I,x.push(k.id)}),await w.updateConfig(i),await ce(),p.value=new Set(x),Be(),await C.ask({title:"导入成功",message:`已导入 ${x.length} 个账户并自动选中。是否立即刷新这些账户以获取 Cookie?`,confirmText:"立即刷新",cancelText:"稍后手动刷新"})&&await Ct()}catch(o){U.value=o.message||"导入失败"}finally{_e.value=!1}},Rt=async()=>{try{const e=[],t=c.value?.id,o=f.value?.id;if(t&&!Ee(t)&&e.push(ht(t)),o&&!Ie(o)&&e.push(wt(o)),!e.length){await Ke();return}await Promise.all(e)}catch(e){y.value=e?.message||"任务状态更新失败"}},Ne=async()=>{Y.value=!0,await Rt()},Vt=()=>{Y.value=!1},jt=()=>{const e=c.value?.id||null,t=f.value?.id||null;P.value=e,F.value=t,Ce(qe,e),Ce(Qe,t),te.value=c.value?.logs?.length||0,se.value=f.value?.logs?.length||0,Te(Ge,te.value),Te(Ye,se.value),c.value=null,f.value=null,he.value=null,we.value=null,y.value="",D.value=!1,T.value=!1,X(),W(),st(He),st(Je)},Ee=e=>!!(e&&e===P.value),Ie=e=>!!(e&&e===F.value),Mt=()=>{z.value=!z.value},oe=()=>{z.value=!1},rt=e=>{if(!z.value)return;const t=e.target;Me.value&&!Me.value.contains(t)&&(z.value=!1)};rs(async()=>{It(),await ce(),await Ke(),Xt(),document.addEventListener("click",rt)});const q=H(()=>{const e=c.value?.logs||[];return te.value?e.slice(te.value):e}),Q=H(()=>{const e=f.value?.logs||[];return se.value?e.slice(se.value):e}),Dt=H(()=>!!y.value||!!c.value||!!f.value||q.value.length>0||Q.value.length>0),Ot=async()=>{await as();const e=Xe.value;e&&(e.scrollTop=e.scrollHeight)};ls([q,Q,Y],async()=>{Y.value&&await Ot()},{deep:!0});const Bt=H(()=>{const e=c.value?.status,t=f.value?.status;return e==="running"||e==="pending"||t==="running"||t==="pending"}),Nt=H(()=>{if(y.value)return"bg-rose-500";if(Bt.value)return"bg-sky-400";const e=[];if(c.value){const d=c.value.success_count??0,x=c.value.fail_count??0,v=c.value.count??d+x;e.push({success:d,fail:x,total:v,status:c.value.status})}if(f.value){const d=f.value.success_count??0,x=f.value.fail_count??0,v=f.value.account_ids?.length??d+x;e.push({success:d,fail:x,total:v,status:f.value.status})}if(!e.length)return"bg-muted-foreground";const t=e.reduce((d,x)=>d+x.success,0),o=e.reduce((d,x)=>d+x.fail,0),i=e.reduce((d,x)=>d+(x.total||0),0);if(t>0&&o>0)return"bg-amber-400";if(o>0&&t===0)return"bg-rose-500";if(t>0&&o===0)return"bg-emerald-400";if(i===0){const d=e.every(v=>v.status==="success");if(e.some(v=>v.status==="failed"))return"bg-rose-500";if(d)return"bg-emerald-400"}return"bg-muted-foreground"});ns(()=>{X(),W(),Qt(),document.removeEventListener("click",rt)});const fe=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?"429限流":e.cooldown_reason==="错误禁用"?"错误禁用":e.disabled?"手动禁用":e.status==="已过期"?"已过期":e.status==="即将过期"?"即将过期":"正常",lt=e=>{const t=fe(e);return t==="429限流"||t==="即将过期"?"bg-amber-200 text-amber-900":t==="错误禁用"||t==="已过期"?"bg-destructive/10 text-destructive":t==="手动禁用"?"bg-muted text-muted-foreground":"bg-emerald-500 text-white"},nt=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?!0:e.disabled||e.cooldown_reason==="错误禁用",at=e=>e==="已过期"?"过期":e==="未设置"?"未设置":e,it=e=>e.status==="已过期"?"text-rose-600":e.status==="即将过期"?"text-amber-700":e.status==="未设置"?"text-muted-foreground":"text-emerald-600",dt=e=>e<60?`${e} 秒`:e<3600?`${Math.ceil(e/60)} 分钟`:`${(e/3600).toFixed(1)} 小时`,Ue=e=>e.cooldown_seconds>0?"text-amber-700":e.cooldown_reason==="错误禁用"?"text-rose-600":"text-muted-foreground",ut=e=>{const t=fe(e);return t==="手动禁用"||t==="已过期"?"bg-muted/70":""},Le=e=>{const t=new Set(p.value);t.has(e)?t.delete(e):t.add(e),p.value=t},ct=()=>{if(De.value){p.value=new Set;return}p.value=new Set(K.value.map(e=>e.id))},Ut=(e,t)=>e.id||`account_${t+1}`,ft=async()=>(await h.getConfig()).accounts.map((t,o)=>({...t,id:Ut(t,o)})),vt=e=>`${e.time} [${e.level}] ${e.message}`,zt=(e,t)=>{let o=-1;for(let d=0;d{u.value="";try{const t=await ft();zt(t,e)}catch(t){u.value=t.message||"加载账号配置失败"}},Pt=async()=>{M.value="";try{const e=await h.getConfig();ae.value=Array.isArray(e.accounts)?e.accounts:[],ee.value=JSON.stringify(pt(ae.value),null,2),B.value=!0,j.value=!0}catch(e){M.value=e.message||"加载账号配置失败"}},ze=()=>{j.value=!1,M.value="",B.value=!1},mt=()=>{const e=JSON.parse(ee.value);if(!Array.isArray(e))throw new Error("配置格式必须是数组。");return e},Ft=e=>typeof e!="string"||!e?e:e.length<=6?`${e.slice(0,2)}****`:`${e.slice(0,3)}****`,pt=e=>{const t=new Set(["secure_c_ses","csesidx","config_id","host_c_oses","mail_password","mail_refresh_token","mail_client_id"]);return e.map(o=>{const i={...o};return t.forEach(d=>{const x=i[d];x&&(i[d]=Ft(x))}),i})},Kt=()=>{if(M.value="",!B.value){try{ae.value=mt()}catch(e){M.value=e.message||"JSON 格式错误";return}ee.value=JSON.stringify(pt(ae.value),null,2),B.value=!0;return}ee.value=JSON.stringify(ae.value,null,2),B.value=!1},Ht=async()=>{M.value="";try{const e=mt();await w.updateConfig(e),ze()}catch(e){M.value=e.message||"保存失败"}},Pe=()=>{ne.value=!1,u.value=""},Jt=async()=>{if(ke.value===null)return;const e=[...We.value];e[ke.value]={...e[ke.value],id:_.value.id,secure_c_ses:_.value.secure_c_ses,csesidx:_.value.csesidx,config_id:_.value.config_id,host_c_oses:_.value.host_c_oses||void 0,expires_at:_.value.expires_at||void 0};try{await w.updateConfig(e),Pe()}catch(t){u.value=t.message||"保存失败"}},Gt=async()=>{await w.bulkEnable(Array.from(p.value)),p.value=new Set},Yt=async()=>{await C.ask({title:"批量禁用",message:"确定要批量禁用选中的账号吗?"})&&(await w.bulkDisable(Array.from(p.value)),p.value=new Set)},qt=async()=>{await C.ask({title:"批量删除",message:"确定要批量删除选中的账号吗?",confirmText:"删除"})&&(await w.bulkDelete(Array.from(p.value)),p.value=new Set)},gt=async e=>{await w.enableAccount(e)},bt=async e=>{await C.ask({title:"禁用账号",message:"确定要禁用该账号吗?"})&&await w.disableAccount(e)},yt=async e=>{await C.ask({title:"删除账号",message:"确定要删除该账号吗?",confirmText:"删除"})&&await w.deleteAccount(e)};let ve=null,xe=null,me=null,Ae=!1;const X=()=>{ve!==null&&(window.clearInterval(ve),ve=null)},W=()=>{xe!==null&&(window.clearInterval(xe),xe=null)},Qt=()=>{me!==null&&(window.clearInterval(me),me=null),Ae=!1},_t=e=>e==="pending"?"等待中":e==="running"?"执行中":e==="success"?"成功":e==="failed"?"失败":e,ht=async e=>{if(Ee(e)){X();return}const t=await h.getRegisterTask(e);if(Ee(t.id)){X();return}Oe(t),t.status!=="running"&&t.status!=="pending"&&(D.value=!1,X(),await ce())},wt=async e=>{if(Ie(e)){W();return}const t=await h.getLoginTask(e);if(Ie(t.id)){W();return}Se(t),t.status!=="running"&&t.status!=="pending"&&(T.value=!1,W(),await ce())},kt=e=>{X(),ve=window.setInterval(()=>{ht(e).catch(t=>{y.value=t?.message||"注册任务更新失败",X(),D.value=!1})},3e3)},Fe=e=>{W(),xe=window.setInterval(()=>{wt(e).catch(t=>{y.value=t?.message||"刷新任务更新失败",W(),T.value=!1})},3e3)},Xt=()=>{me===null&&(me=window.setInterval(async()=>{if(!Ae&&!Y.value&&!(ve!==null||xe!==null)&&!(!D.value&&!T.value&&!c.value&&!f.value)){Ae=!0;try{await Ke()}catch(e){y.value=e?.message||"后台刷新失败"}finally{Ae=!1}}},6e3))},Ke=async()=>{try{const e=await h.getRegisterCurrent();e&&"id"in e&&!Ee(e.id)&&(Oe(e),(e.status==="running"||e.status==="pending")&&(D.value=!0,kt(e.id)))}catch(e){y.value=e.message||"加载注册任务失败"}try{const e=await h.getLoginCurrent();e&&"id"in e&&!Ie(e.id)&&(Se(e),(e.status==="running"||e.status==="pending")&&(T.value=!0,Fe(e.id)))}catch(e){y.value=e.message||"加载刷新任务失败"}},Wt=async()=>{y.value="",D.value=!0;try{const e=Number.isFinite(ie.value)&&ie.value>0?ie.value:void 0,t=await h.startRegister(e);Oe(t),kt(t.id),ye.value=!1,Y.value=!0}catch(e){y.value=e.message||"启动注册失败",D.value=!1}},Ct=async()=>{if(p.value.size){y.value="",T.value=!0;try{const e=await h.startLogin(Array.from(p.value));Se(e),Fe(e.id),Ne()}catch(e){y.value=e.message||"启动刷新失败",T.value=!1}}},Zt=async()=>{y.value="",T.value=!0;try{await h.checkLogin();const e=await h.getLoginCurrent();if(e&&"id"in e){Se(e),Fe(e.id),Ne();return}T.value=!1}catch(e){y.value=e.message||"触发刷新失败",T.value=!1}};return(e,t)=>(r(),l(ge,null,[s("div",vs,[s("section",xs,[s("div",ms,[s("div",ps,[A(s("input",{"onUpdate:modelValue":t[0]||(t[0]=o=>le.value=o),type:"text",placeholder:"搜索账号 ID",class:"w-full rounded-full border border-input bg-background px-4 py-2 text-sm sm:w-48"},null,512),[[$,le.value]]),J(is,{modelValue:Z.value,"onUpdate:modelValue":t[1]||(t[1]=o=>Z.value=o),options:Et},null,8,["modelValue"])]),s("div",gs,[J(be,{modelValue:De.value,"onUpdate:modelValue":ct},{default:Tt(()=>[...t[27]||(t[27]=[pe(" 全选 ",-1)])]),_:1},8,["modelValue"]),s("span",null,"已选 "+n(O.value)+" / "+n(K.value.length)+" 个账号",1),s("div",bs,[s("button",{type:"button",class:g(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",G.value==="table"?"bg-accent text-accent-foreground":""]),onClick:t[2]||(t[2]=o=>G.value="table"),"aria-label":"列表视图"},[...t[28]||(t[28]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])],2),s("button",{type:"button",class:g(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",G.value==="card"?"bg-accent text-accent-foreground":""]),onClick:t[3]||(t[3]=o=>G.value="card"),"aria-label":"卡片视图"},[...t[29]||(t[29]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h7v6H4V6zm9 0h7v6h-7V6zM4 14h7v4H4v-4zm9 0h7v4h-7v-4z"})],-1)])],2)])])]),s("div",ys,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:R(re),onClick:ce}," 刷新列表 ",8,_s),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:Pt}," 账户配置 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:D.value,onClick:Lt}," 添加账户 ",8,hs),s("div",{ref_key:"moreActionsRef",ref:Me,class:"relative"},[s("button",{class:g(["flex items-center gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary",z.value?"bg-accent text-accent-foreground":""]),onClick:Mt},[t[30]||(t[30]=pe(" 更多操作 ",-1)),t[31]||(t[31]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1)),Dt.value?(r(),l("span",{key:0,class:g(["ml-1 h-2 w-2 rounded-full",Nt.value]),"aria-hidden":"true"},null,2)):m("",!0)],2),z.value?(r(),l("div",ws,[s("button",{type:"button",class:"flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm text-foreground transition-colors hover:bg-accent",onClick:t[4]||(t[4]=o=>{Ne(),oe()})}," 任务状态 "),t[32]||(t[32]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",T.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:T.value,onClick:t[5]||(t[5]=o=>{Zt(),oe()})}," 刷新过期 ",10,ks),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",!O.value||T.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:!O.value||T.value,onClick:t[6]||(t[6]=o=>{Ct(),oe()})}," 刷新选中 ",10,Cs),t[33]||(t[33]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",O.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!O.value,onClick:t[7]||(t[7]=o=>{Gt(),oe()})}," 批量启用 ",10,Ts),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",O.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!O.value,onClick:t[8]||(t[8]=o=>{Yt(),oe()})}," 批量禁用 ",10,Ss),s("button",{type:"button",class:g(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",O.value?"text-destructive hover:bg-destructive/10":"cursor-not-allowed text-muted-foreground"]),disabled:!O.value,onClick:t[9]||(t[9]=o=>{qt(),oe()})}," 批量删除 ",10,Es)])):m("",!0)],512)]),G.value==="card"?(r(),l("div",Is,[(r(!0),l(ge,null,Ve(K.value,o=>(r(),l("div",{key:o.id,class:g(["rounded-2xl border border-border bg-card p-4",ut(o)]),onClick:i=>Le(o.id)},[s("div",As,[s("div",null,[t[34]||(t[34]=s("p",{class:"text-xs text-muted-foreground"},"账号 ID",-1)),s("p",$s,n(o.id),1)]),s("div",Rs,[J(be,{modelValue:p.value.has(o.id),"onUpdate:modelValue":i=>Le(o.id),onClick:t[10]||(t[10]=V(()=>{},["stop"]))},null,8,["modelValue","onUpdate:modelValue"]),s("span",{class:g(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",lt(o)])},n(fe(o)),3)])]),s("div",Vs,[s("div",null,[t[35]||(t[35]=s("p",null,"剩余时间",-1)),s("p",{class:g(["mt-1 text-sm font-semibold",it(o)])},n(at(o.remaining_display)),3),o.expires_at?(r(),l("p",js,n(o.expires_at),1)):m("",!0)]),s("div",null,[t[36]||(t[36]=s("p",null,"冷却",-1)),s("p",{class:g(["mt-1",Ue(o)])},[o.cooldown_seconds>0?(r(),l("span",Ms,n(dt(o.cooldown_seconds))+" · "+n(o.cooldown_reason),1)):(r(),l("span",Ds,n(o.cooldown_reason||"无冷却"),1))],2)]),s("div",null,[t[37]||(t[37]=s("p",null,"失败数",-1)),s("p",Os,n(o.error_count),1)]),s("div",null,[t[38]||(t[38]=s("p",null,"会话数",-1)),s("p",Bs,n(o.conversation_count),1)])]),s("div",Ns,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>xt(o.id),["stop"])}," 编辑 ",8,Us),nt(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[11]||(t[11]=V(()=>{},["stop"])),i=>gt(o.id)]}," 启用 ",8,zs)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[12]||(t[12]=V(()=>{},["stop"])),i=>bt(o.id)]}," 禁用 ",8,Ps)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:[t[13]||(t[13]=V(()=>{},["stop"])),i=>yt(o.id)]}," 删除 ",8,Fs)])],10,Ls))),128)),!K.value.length&&!R(re)?(r(),l("div",Ks," 暂无账号数据,请检查后台配置。 ")):m("",!0)])):(r(),l("div",Hs,[s("table",Js,[s("thead",Gs,[s("tr",null,[s("th",Ys,[J(be,{modelValue:De.value,"onUpdate:modelValue":ct},null,8,["modelValue"])]),t[40]||(t[40]=s("th",{class:"py-3 pr-6"},"账号 ID",-1)),t[41]||(t[41]=s("th",{class:"py-3 pr-6"},"状态",-1)),s("th",qs,[s("span",Qs,[t[39]||(t[39]=pe(" 剩余/过期 ",-1)),J(cs,{text:"过期时间为 12 小时,账户过期以北京时间为准。"})])]),t[42]||(t[42]=s("th",{class:"py-3 pr-6"},"冷却",-1)),t[43]||(t[43]=s("th",{class:"py-3 pr-6"},"失败数",-1)),t[44]||(t[44]=s("th",{class:"py-3 pr-6"},"会话数",-1)),t[45]||(t[45]=s("th",{class:"py-3 text-right"},"操作",-1))])]),s("tbody",Xs,[!K.value.length&&!R(re)?(r(),l("tr",Ws,[...t[46]||(t[46]=[s("td",{colspan:"8",class:"py-8 text-center text-muted-foreground"}," 暂无账号数据,请检查后台配置。 ",-1)])])):m("",!0),(r(!0),l(ge,null,Ve(K.value,o=>(r(),l("tr",{key:o.id,class:g(["border-t border-border",ut(o)]),onClick:i=>Le(o.id)},[s("td",{class:"py-4 pr-4",onClick:t[14]||(t[14]=V(()=>{},["stop"]))},[J(be,{modelValue:p.value.has(o.id),"onUpdate:modelValue":i=>Le(o.id)},null,8,["modelValue","onUpdate:modelValue"])]),s("td",eo,n(o.id),1),s("td",to,[s("span",{class:g(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",lt(o)])},n(fe(o)),3)]),s("td",so,[s("div",{class:g(["text-sm font-semibold",it(o)])},n(at(o.remaining_display)),3),o.expires_at?(r(),l("span",oo,n(o.expires_at),1)):m("",!0)]),s("td",ro,[o.cooldown_seconds>0?(r(),l("span",{key:0,class:g(Ue(o))},n(dt(o.cooldown_seconds))+" · "+n(o.cooldown_reason),3)):(r(),l("span",{key:1,class:g(Ue(o))},n(o.cooldown_reason||"无冷却"),3))]),s("td",lo,n(o.error_count),1),s("td",no,n(o.conversation_count),1),s("td",ao,[s("div",io,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>xt(o.id),["stop"])}," 编辑 ",8,uo),nt(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>gt(o.id),["stop"])}," 启用 ",8,co)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:V(i=>bt(o.id),["stop"])}," 禁用 ",8,fo)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:V(i=>yt(o.id),["stop"])}," 删除 ",8,vo)])])],10,Zs))),128))])])]))])]),J(ds,{open:R(C).open.value,title:R(C).title.value,message:R(C).message.value,"confirm-text":R(C).confirmText.value,"cancel-text":R(C).cancelText.value,onConfirm:R(C).confirm,onCancel:R(C).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(r(),Re(je,{to:"body"},[ye.value?(r(),l("div",xo,[s("div",mo,[s("div",po,[s("div",null,[t[47]||(t[47]=s("p",{class:"text-sm font-medium text-foreground"},"添加账户",-1)),s("p",go,n(N.value==="register"?"创建 DuckMail 账号并自动注册":"批量导入账户配置"),1)]),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Be}," 关闭 ")]),s("div",bo,[s("div",yo,[s("div",_o,[s("button",{type:"button",class:g(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",N.value==="register"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:t[15]||(t[15]=o=>N.value="register")}," 自动注册 ",2),s("button",{type:"button",class:g(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",N.value==="import"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:t[16]||(t[16]=o=>N.value="import")}," 批量导入 ",2)]),N.value==="register"?(r(),l("div",ho,[t[48]||(t[48]=s("label",{class:"block text-xs text-muted-foreground"},"注册数量",-1)),A(s("input",{"onUpdate:modelValue":t[17]||(t[17]=o=>ie.value=o),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,ie.value,void 0,{number:!0}]]),t[49]||(t[49]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"}," 默认域名来自设置面板(可在“配置面板”中修改) ",-1))])):(r(),l("div",wo,[t[50]||(t[50]=s("label",{class:"block text-xs text-muted-foreground"},"批量导入(每行一个)",-1)),A(s("textarea",{"onUpdate:modelValue":t[18]||(t[18]=o=>de.value=o),class:"min-h-[140px] w-full rounded-2xl border border-input bg-background px-3 py-2 text-xs font-mono",placeholder:`duckmail----you@example.com----password +user@outlook.com----loginPassword----clientId----refreshToken`},null,512),[[$,de.value]]),t[51]||(t[51]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},[s("p",null,"支持两种格式:"),s("p",{class:"mt-1 font-mono"},"duckmail----email----password"),s("p",{class:"mt-1 font-mono"},"email----password----clientId----refreshToken"),s("p",{class:"mt-2 text-[11px]"},'导入后请执行一次"刷新选中"以获取 Cookie。')],-1)),U.value?(r(),l("div",ko,n(U.value),1)):m("",!0)])),t[53]||(t[53]=s("div",{class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-[11px] leading-relaxed"},[s("p",{class:"text-xs font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)"),s("p",{class:"mt-1 text-muted-foreground"},[pe("详细声明请查看项目 "),s("a",{href:"https://github.com/Dreamy-rain/gemini-business2api/blob/main/docs/DISCLAIMER.md",target:"_blank",class:"text-primary hover:underline font-medium"},"DISCLAIMER.md")])],-1)),J(be,{modelValue:ue.value,"onUpdate:modelValue":t[19]||(t[19]=o=>ue.value=o)},{default:Tt(()=>[...t[52]||(t[52]=[pe(" 我已阅读并同意上述说明与限制 ",-1)])]),_:1},8,["modelValue"])])]),s("div",Co,[s("div",To,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Be}," 取消 "),N.value==="register"?(r(),l("button",{key:0,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:D.value||!ue.value,onClick:Wt}," 开始注册 ",8,So)):(r(),l("button",{key:1,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:_e.value||!ue.value,onClick:$t}," 导入并保存 ",8,Eo))])])])])):m("",!0)])),(r(),Re(je,{to:"body"},[Y.value?(r(),l("div",Io,[s("div",Lo,[s("div",Ao,[t[54]||(t[54]=s("div",null,[s("p",{class:"text-sm font-medium text-foreground"},"任务状态"),s("p",{class:"mt-1 text-xs text-muted-foreground"},"注册与刷新任务的状态与日志")],-1)),s("div",$o,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-muted-foreground transition-colors hover:border-primary hover:text-primary",disabled:!q.value.length&&!Q.value.length&&!c.value&&!f.value&&!y.value,onClick:jt}," 清空日志 ",8,Ro),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Vt}," 关闭 ")])]),s("div",Vo,[y.value?(r(),l("div",jo,n(y.value),1)):m("",!0),c.value||f.value?(r(),l("div",Mo,[c.value?(r(),l("div",Do,[t[55]||(t[55]=s("div",{class:"font-medium text-foreground"},"注册任务",-1)),s("div",Oo,[s("span",null,"状态:"+n(_t(c.value.status)),1),s("span",null,"进度:"+n(c.value.progress)+"/"+n(c.value.count),1),s("span",null,"成功:"+n(c.value.success_count),1),s("span",null,"失败:"+n(c.value.fail_count),1)])])):m("",!0),f.value?(r(),l("div",Bo,[t[56]||(t[56]=s("div",{class:"font-medium text-foreground"},"刷新任务",-1)),s("div",No,[s("span",null,"状态:"+n(_t(f.value.status)),1),s("span",null,"进度:"+n(f.value.progress)+"/"+n(f.value.account_ids.length),1),s("span",null,"成功:"+n(f.value.success_count),1),s("span",null,"失败:"+n(f.value.fail_count),1)])])):m("",!0)])):m("",!0),q.value.length||Q.value.length?(r(),l("div",Uo,[s("div",{ref_key:"taskLogsRef",ref:Xe,class:"scrollbar-slim flex-1 overflow-y-auto rounded-2xl border border-border bg-muted/30 p-3"},[q.value.length?(r(),l("div",zo,[t[57]||(t[57]=s("p",{class:"text-xs font-semibold text-foreground"},"注册日志",-1)),s("div",Po,[(r(!0),l(ge,null,Ve(q.value,(o,i)=>(r(),l("div",{key:`reg-${i}`,class:"font-mono"},n(vt(o)),1))),128))])])):m("",!0),Q.value.length?(r(),l("div",Fo,[t[58]||(t[58]=s("p",{class:"text-xs font-semibold text-foreground"},"刷新日志",-1)),s("div",Ko,[(r(!0),l(ge,null,Ve(Q.value,(o,i)=>(r(),l("div",{key:`login-${i}`,class:"font-mono"},n(vt(o)),1))),128))])])):m("",!0)],512)])):m("",!0),!y.value&&!c.value&&!f.value&&!q.value.length&&!Q.value.length?(r(),l("div",Ho," 暂无任务 ")):m("",!0)])])])):m("",!0)])),(r(),Re(je,{to:"body"},[ne.value?(r(),l("div",Jo,[s("div",Go,[s("div",{class:"flex items-center justify-between"},[t[59]||(t[59]=s("p",{class:"text-sm font-medium text-foreground"},"编辑账号",-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Pe}," 关闭 ")]),u.value?(r(),l("div",Yo,n(u.value),1)):m("",!0),s("div",qo,[t[60]||(t[60]=s("label",{class:"block text-xs text-muted-foreground"},"账号 ID",-1)),A(s("input",{"onUpdate:modelValue":t[20]||(t[20]=o=>_.value.id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",disabled:""},null,512),[[$,_.value.id]]),t[61]||(t[61]=s("label",{class:"block text-xs text-muted-foreground"},"secure_c_ses",-1)),A(s("textarea",{"onUpdate:modelValue":t[21]||(t[21]=o=>_.value.secure_c_ses=o),class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",rows:"3"},null,512),[[$,_.value.secure_c_ses]]),t[62]||(t[62]=s("label",{class:"block text-xs text-muted-foreground"},"csesidx",-1)),A(s("input",{"onUpdate:modelValue":t[22]||(t[22]=o=>_.value.csesidx=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,_.value.csesidx]]),t[63]||(t[63]=s("label",{class:"block text-xs text-muted-foreground"},"config_id",-1)),A(s("input",{"onUpdate:modelValue":t[23]||(t[23]=o=>_.value.config_id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,_.value.config_id]]),t[64]||(t[64]=s("label",{class:"block text-xs text-muted-foreground"},"host_c_oses",-1)),A(s("input",{"onUpdate:modelValue":t[24]||(t[24]=o=>_.value.host_c_oses=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[$,_.value.host_c_oses]]),t[65]||(t[65]=s("label",{class:"block text-xs text-muted-foreground"},"expires_at",-1)),A(s("input",{"onUpdate:modelValue":t[25]||(t[25]=o=>_.value.expires_at=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"2025-12-23 10:59:21"},null,512),[[$,_.value.expires_at]])]),s("div",{class:"mt-6 flex items-center justify-end gap-2"},[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Pe}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Jt}," 保存 ")])])])):m("",!0)])),(r(),Re(je,{to:"body"},[j.value?(r(),l("div",Qo,[s("div",Xo,[s("div",Wo,[t[66]||(t[66]=s("p",{class:"text-sm font-medium text-foreground"},"账户配置(JSON)",-1)),s("div",Zo,[s("button",{class:"rounded-full bg-foreground px-3 py-1 text-xs text-background transition-opacity hover:opacity-90",onClick:Kt},n(B.value?"显示原文":"脱敏显示"),1),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:ze}," 关闭 ")])]),M.value?(r(),l("div",er,n(M.value),1)):m("",!0),s("div",tr,[A(s("textarea",{"onUpdate:modelValue":t[26]||(t[26]=o=>ee.value=o),class:"h-96 w-full rounded-2xl border border-input bg-background px-4 py-3 font-mono text-xs text-foreground",spellcheck:"false",readonly:B.value},null,8,sr),[[$,ee.value]])]),s("div",or,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:ze}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Ht,disabled:B.value}," 保存 ",8,rr)])])])):m("",!0)]))],64))}});export{cr as default}; diff --git a/static/assets/Accounts-v_9wnBup.js b/static/assets/Accounts-v_9wnBup.js new file mode 100644 index 0000000000000000000000000000000000000000..d0087d83d994b6ef3d4a116f63022e787a003972 --- /dev/null +++ b/static/assets/Accounts-v_9wnBup.js @@ -0,0 +1,2 @@ +import{g as S,C as es,h as a,d as ts,D as ss,i as F,o as os,s as rs,j as ls,c as l,a as s,x as K,y as Ie,m as E,v as I,A as kt,t as n,n as m,u as L,b as x,f as G,F as pe,r as Le,T as $e,w as $,e as r,E as ns}from"./index-BIHSVHyU.js";import{_ as as}from"./SelectMenu.vue_vue_type_script_setup_true_lang-Cdct4OHH.js";import{_ as xe}from"./Checkbox.vue_vue_type_script_setup_true_lang-p51UOq8I.js";import{_ as is}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-fISQukFW.js";import{u as ds}from"./useConfirmDialog-urbmwbaE.js";import{_ as us}from"./HelpTip.vue_vue_type_script_setup_true_lang-BYvP2-eE.js";const h={list:()=>S.get("/admin/accounts"),getConfig:()=>S.get("/admin/accounts-config"),updateConfig:g=>S.put("/admin/accounts-config",g),delete:g=>S.delete(`/admin/accounts/${g}`),disable:g=>S.put(`/admin/accounts/${g}/disable`),enable:g=>S.put(`/admin/accounts/${g}/enable`),startRegister:(g,k)=>S.post("/admin/register/start",{count:g,domain:k}),getRegisterTask:g=>S.get(`/admin/register/task/${g}`),getRegisterCurrent:()=>S.get("/admin/register/current"),startLogin:g=>S.post("/admin/login/start",g),getLoginTask:g=>S.get(`/admin/login/task/${g}`),getLoginCurrent:()=>S.get("/admin/login/current"),checkLogin:()=>S.post("/admin/login/check")},cs=es("accounts",()=>{const g=a([]),k=a(!1);async function A(){k.value=!0;try{const f=await h.list();g.value=Array.isArray(f)?f:f.accounts||[]}finally{k.value=!1}}async function oe(f){await h.delete(f),await A()}async function T(f){await h.disable(f),await A()}async function re(f){await h.enable(f),await A()}async function X(f){await Promise.all(f.map(R=>h.enable(R))),await A()}async function b(f){await Promise.all(f.map(R=>h.disable(R))),await A()}async function H(f){await Promise.all(f.map(R=>h.delete(R))),await A()}async function le(f){await h.updateConfig(f),await A()}return{accounts:g,isLoading:k,loadAccounts:A,deleteAccount:oe,disableAccount:T,enableAccount:re,bulkEnable:X,bulkDisable:b,bulkDelete:H,updateConfig:le}}),fs={class:"space-y-8"},vs={class:"rounded-3xl border border-border bg-card p-6"},ps={class:"flex flex-wrap items-center justify-between gap-4"},xs={class:"grid w-full grid-cols-2 gap-3 sm:flex sm:w-auto sm:items-center"},ms={class:"flex w-full flex-wrap items-center gap-3 text-xs text-muted-foreground sm:w-auto sm:flex-nowrap"},gs={class:"ml-auto flex items-center gap-2 sm:ml-0"},bs={class:"mt-4 flex flex-wrap items-center gap-2"},ys=["disabled"],_s=["disabled"],hs={key:0,class:"absolute right-0 z-10 mt-2 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg"},ks=["disabled"],ws=["disabled"],Cs=["disabled"],Ts=["disabled"],Ss=["disabled"],As={key:0,class:"mt-6 grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3"},Es=["onClick"],Is={class:"flex items-start justify-between gap-3"},Ls={class:"mt-1 font-mono text-xs text-foreground"},$s={class:"flex items-center gap-2"},Rs={class:"mt-4 grid grid-cols-2 gap-3 text-xs text-muted-foreground"},Vs={key:0,class:"mt-1 text-[11px]"},Ms={key:0},js={key:1},Ds={class:"mt-1 text-sm font-semibold text-foreground"},Os={class:"mt-1 text-sm font-semibold text-foreground"},Bs={class:"mt-4 flex flex-wrap items-center gap-2"},Ns=["onClick"],Us=["onClick"],zs=["onClick"],Ps=["onClick"],Fs={key:0,class:"rounded-2xl border border-border bg-background p-4 text-center text-xs text-muted-foreground"},Ks={key:1,class:"relative mt-6 overflow-x-auto overflow-y-visible"},Gs={class:"min-w-full text-left text-sm"},Hs={class:"text-xs uppercase tracking-[0.2em] text-muted-foreground"},Js={class:"py-3 pr-4"},Ys={class:"py-3 pr-6"},Qs={class:"inline-flex items-center gap-2"},qs={class:"text-sm text-foreground"},Ws={key:0},Xs=["onClick"],Zs={class:"py-4 pr-6 font-mono text-xs text-foreground"},eo={class:"py-4 pr-6"},to={class:"py-4 pr-6"},so={key:0,class:"block text-[11px] text-muted-foreground"},oo={class:"py-4 pr-6 text-xs"},ro={class:"py-4 pr-6 text-xs text-muted-foreground"},lo={class:"py-4 pr-6 text-xs text-muted-foreground"},no={class:"py-4 text-right"},ao={class:"flex flex-wrap justify-end gap-2"},io=["onClick"],uo=["onClick"],co=["onClick"],fo=["onClick"],vo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},po={class:"flex max-h-[90vh] w-full max-w-lg flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},xo={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},mo={class:"mt-1 text-xs text-muted-foreground"},go={class:"scrollbar-slim flex-1 overflow-y-auto px-6 py-4"},bo={class:"space-y-4 text-sm"},yo={class:"flex rounded-full border border-border bg-muted/30 p-1 text-xs"},_o={key:0,class:"space-y-4"},ho={key:1,class:"space-y-4"},ko={key:0,class:"rounded-2xl border border-rose-200 bg-rose-50 px-3 py-2 text-xs text-rose-600"},wo={class:"border-t border-border/60 px-6 py-4"},Co={class:"flex items-center justify-end gap-2"},To=["disabled"],So=["disabled"],Ao={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Eo={class:"flex h-[80vh] w-full max-w-2xl flex-col overflow-hidden rounded-3xl border border-border bg-card shadow-xl"},Io={class:"flex items-center justify-between border-b border-border/60 px-6 py-4"},Lo={class:"flex items-center gap-2"},$o=["disabled"],Ro={class:"flex min-h-0 flex-1 flex-col px-6 py-4"},Vo={key:0,class:"rounded-2xl bg-destructive/10 px-3 py-2 text-xs text-destructive"},Mo={key:1,class:"grid gap-3 text-xs text-muted-foreground"},jo={key:0,class:"space-y-1"},Do={class:"flex flex-wrap gap-x-4 gap-y-1"},Oo={key:1,class:"space-y-1"},Bo={class:"flex flex-wrap gap-x-4 gap-y-1"},No={key:2,class:"mt-4 flex min-h-0 flex-1 flex-col"},Uo={key:0,class:"space-y-2"},zo={class:"space-y-1 text-[11px] text-muted-foreground"},Po={key:1,class:"mt-4 space-y-2"},Fo={class:"space-y-1 text-[11px] text-muted-foreground"},Ko={key:3,class:"mt-4 rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},Go={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},Ho={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},Jo={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Yo={class:"mt-4 space-y-3 text-sm"},Qo={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},qo={class:"w-full max-w-3xl rounded-3xl border border-border bg-card p-6 shadow-xl"},Wo={class:"flex items-center justify-between"},Xo={class:"flex items-center gap-2"},Zo={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},er={class:"mt-4"},tr=["readonly"],sr={class:"mt-6 flex items-center justify-end gap-2"},or=["disabled"],Fe="accounts-register-task-cache",Ke="accounts-login-task-cache",Ge="accounts-register-log-clear",He="accounts-login-log-clear",Je="accounts-register-task-cleared-id",Ye="accounts-login-task-cleared-id",wt="1970-01-01 00:00:00",ur=ts({__name:"Accounts",setup(g){const k=cs(),{accounts:A,isLoading:oe}=ss(k),T=ds(),re=a(""),X=a("all"),b=a(new Set),H=a("table"),le=a(!1),f=a(""),R=a(!1),V=a(""),Z=a(""),D=a(!1),ne=a([]),ae=a(1),me=a(!1),O=a("register"),ie=a(""),B=a(""),ge=a(!1),J=a(!1),N=a(!1),Re=a(null),be=a(null),ye=a(null),U=a(null),z=a(null),ee=a(0),te=a(0),de=a(!1),v=a(null),p=a(null),Qe=a(null),M=a(!1),C=a(!1),y=a(""),_=a({id:"",secure_c_ses:"",csesidx:"",config_id:"",host_c_oses:"",expires_at:""}),_e=a(null),qe=a([]),Ct=[{label:"全部状态",value:"all"},{label:"正常",value:"正常"},{label:"即将过期",value:"即将过期"},{label:"已过期",value:"已过期"},{label:"手动禁用",value:"手动禁用"},{label:"错误禁用",value:"错误禁用"},{label:"429限流",value:"429限流"}],P=F(()=>{const e=re.value.trim().toLowerCase();return A.value.filter(t=>{const o=!e||t.id.toLowerCase().includes(e),i=X.value==="all"||ue(t)===X.value;return o&&i})}),j=F(()=>b.value.size),Ve=F(()=>P.value.length>0&&P.value.every(e=>b.value.has(e.id))),he=async()=>{await k.loadAccounts(),b.value=new Set,N.value=!1},We=e=>{try{const t=localStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}},Xe=e=>{try{return localStorage.getItem(e)||null}catch{return null}},ke=(e,t)=>{try{if(t){localStorage.setItem(e,t);return}localStorage.removeItem(e)}catch{}},Ze=(e,t)=>{try{localStorage.setItem(e,JSON.stringify(t))}catch{}},et=e=>{try{localStorage.removeItem(e)}catch{}},tt=e=>{const t=localStorage.getItem(e),o=Number(t);return Number.isFinite(o)?o:0},we=(e,t)=>{try{localStorage.setItem(e,String(t))}catch{}},Me=(e,t=!0)=>{e&&(e.id&&e.id===U.value||(e.id&&U.value&&e.id!==U.value&&(U.value=null,ke(Je,null)),v.value=e,e.id&&e.id!==be.value&&(be.value=e.id,ee.value=0,we(Ge,0)),t&&Ze(Fe,e)))},Ce=(e,t=!0)=>{e&&(e.id&&e.id===z.value||(e.id&&z.value&&e.id!==z.value&&(z.value=null,ke(Ye,null)),p.value=e,e.id&&e.id!==ye.value&&(ye.value=e.id,te.value=0,we(He,0)),t&&Ze(Ke,e)))},Tt=()=>{ee.value=tt(Ge),te.value=tt(He),U.value=Xe(Je),z.value=Xe(Ye);const e=We(Fe);e&&e.id!==U.value&&(v.value=e,be.value=e.id||null);const t=We(Ke);t&&t.id!==z.value&&(p.value=t,ye.value=t.id||null)},St=()=>{me.value=!0,O.value="register",ie.value="",B.value="",ge.value=!1,de.value=!1},je=()=>{me.value=!1},At=e=>{const t=[],o=[];return e.split(/\r?\n/).map(c=>c.trim()).filter(Boolean).forEach((c,d)=>{const u=c.split("----").map(w=>w.trim()),ze=d+1;if(u.length){if(u[0].toLowerCase()==="duckmail"){if(u.length<3||!u[1]||!u[2]){o.push(`第 ${ze} 行格式错误(duckmail)`);return}const w=u[1],Pe=u.slice(2).join("----");t.push({id:w,secure_c_ses:"",csesidx:"",config_id:"",expires_at:wt,mail_provider:"duckmail",mail_address:w,mail_password:Pe});return}if(u.length>=4&&u[0]&&u[2]&&u[3]){const w=u[0],Pe=u[2],Zt=u.slice(3).join("----");t.push({id:w,secure_c_ses:"",csesidx:"",config_id:"",expires_at:wt,mail_provider:"microsoft",mail_address:w,mail_client_id:Pe,mail_refresh_token:Zt,mail_tenant:"consumers"});return}o.push(`第 ${ze} 行格式错误`)}}),{items:t,errors:o}},Et=async()=>{if(B.value="",!ie.value.trim()){B.value="请输入导入内容";return}const{items:e,errors:t}=At(ie.value);if(!e.length){B.value=t.length?t.join(","):"未识别到有效账号";return}if(t.length){B.value=t.slice(0,3).join(",");return}ge.value=!0;try{const i=[...await ut()],c=new Map(i.map((d,u)=>[d.id,u]));e.forEach(d=>{const u=c.get(d.id||"");if(u===void 0){i.push(d);return}const w={...i[u],mail_provider:d.mail_provider,mail_address:d.mail_address};d.mail_provider==="microsoft"?(w.mail_client_id=d.mail_client_id,w.mail_refresh_token=d.mail_refresh_token,w.mail_tenant=d.mail_tenant,w.mail_password=void 0):(w.mail_password=d.mail_password,w.mail_client_id=void 0,w.mail_refresh_token=void 0,w.mail_tenant=void 0),i[u]=w}),await k.updateConfig(i),je()}catch(o){B.value=o.message||"导入失败"}finally{ge.value=!1}},It=async()=>{try{const e=[],t=v.value?.id,o=p.value?.id;if(t&&!Te(t)&&e.push(yt(t)),o&&!Se(o)&&e.push(_t(o)),!e.length){await Ue();return}await Promise.all(e)}catch(e){y.value=e?.message||"任务状态更新失败"}},Lt=async()=>{J.value=!0,await It()},$t=()=>{J.value=!1},Rt=()=>{const e=v.value?.id||null,t=p.value?.id||null;U.value=e,z.value=t,ke(Je,e),ke(Ye,t),ee.value=v.value?.logs?.length||0,te.value=p.value?.logs?.length||0,we(Ge,ee.value),we(He,te.value),v.value=null,p.value=null,be.value=null,ye.value=null,y.value="",M.value=!1,C.value=!1,q(),W(),et(Fe),et(Ke)},Te=e=>!!(e&&e===U.value),Se=e=>!!(e&&e===z.value),Vt=()=>{N.value=!N.value},se=()=>{N.value=!1},st=e=>{if(!N.value)return;const t=e.target;Re.value&&!Re.value.contains(t)&&(N.value=!1)};os(async()=>{Tt(),await he(),await Ue(),Qt(),document.addEventListener("click",st)});const Y=F(()=>{const e=v.value?.logs||[];return ee.value?e.slice(ee.value):e}),Q=F(()=>{const e=p.value?.logs||[];return te.value?e.slice(te.value):e}),Mt=F(()=>!!y.value||!!v.value||!!p.value||Y.value.length>0||Q.value.length>0),jt=async()=>{await ns();const e=Qe.value;e&&(e.scrollTop=e.scrollHeight)};rs([Y,Q,J],async()=>{J.value&&await jt()},{deep:!0});const Dt=F(()=>{const e=v.value?.status,t=p.value?.status;return e==="running"||e==="pending"||t==="running"||t==="pending"}),Ot=F(()=>{if(y.value)return"bg-rose-500";if(Dt.value)return"bg-sky-400";const e=[];if(v.value){const c=v.value.success_count??0,d=v.value.fail_count??0,u=v.value.count??c+d;e.push({success:c,fail:d,total:u,status:v.value.status})}if(p.value){const c=p.value.success_count??0,d=p.value.fail_count??0,u=p.value.account_ids?.length??c+d;e.push({success:c,fail:d,total:u,status:p.value.status})}if(!e.length)return"bg-muted-foreground";const t=e.reduce((c,d)=>c+d.success,0),o=e.reduce((c,d)=>c+d.fail,0),i=e.reduce((c,d)=>c+(d.total||0),0);if(t>0&&o>0)return"bg-amber-400";if(o>0&&t===0)return"bg-rose-500";if(t>0&&o===0)return"bg-emerald-400";if(i===0){const c=e.every(u=>u.status==="success");if(e.some(u=>u.status==="failed"))return"bg-rose-500";if(c)return"bg-emerald-400"}return"bg-muted-foreground"});ls(()=>{q(),W(),Yt(),document.removeEventListener("click",st)});const ue=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?"429限流":e.cooldown_reason==="错误禁用"?"错误禁用":e.disabled?"手动禁用":e.status==="已过期"?"已过期":e.status==="即将过期"?"即将过期":"正常",ot=e=>{const t=ue(e);return t==="429限流"||t==="即将过期"?"bg-amber-200 text-amber-900":t==="错误禁用"||t==="已过期"?"bg-destructive/10 text-destructive":t==="手动禁用"?"bg-muted text-muted-foreground":"bg-emerald-500 text-white"},rt=e=>e.cooldown_reason?.includes("429")&&e.cooldown_seconds>0?!0:e.disabled||e.cooldown_reason==="错误禁用",lt=e=>e==="已过期"?"过期":e==="未设置"?"未设置":e,nt=e=>e.status==="已过期"?"text-rose-600":e.status==="即将过期"?"text-amber-700":e.status==="未设置"?"text-muted-foreground":"text-emerald-600",at=e=>e<60?`${e} 秒`:e<3600?`${Math.ceil(e/60)} 分钟`:`${(e/3600).toFixed(1)} 小时`,De=e=>e.cooldown_seconds>0?"text-amber-700":e.cooldown_reason==="错误禁用"?"text-rose-600":"text-muted-foreground",it=e=>{const t=ue(e);return t==="手动禁用"||t==="已过期"?"bg-muted/70":""},Ae=e=>{const t=new Set(b.value);t.has(e)?t.delete(e):t.add(e),b.value=t},dt=()=>{if(Ve.value){b.value=new Set;return}b.value=new Set(P.value.map(e=>e.id))},Bt=(e,t)=>e.id||`account_${t+1}`,ut=async()=>(await h.getConfig()).accounts.map((t,o)=>({...t,id:Bt(t,o)})),ct=e=>`${e.time} [${e.level}] ${e.message}`,Nt=(e,t)=>{let o=-1;for(let c=0;c{f.value="";try{const t=await ut();Nt(t,e)}catch(t){f.value=t.message||"加载账号配置失败"}},Ut=async()=>{V.value="";try{const e=await h.getConfig();ne.value=Array.isArray(e.accounts)?e.accounts:[],Z.value=JSON.stringify(pt(ne.value),null,2),D.value=!0,R.value=!0}catch(e){V.value=e.message||"加载账号配置失败"}},Oe=()=>{R.value=!1,V.value="",D.value=!1},vt=()=>{const e=JSON.parse(Z.value);if(!Array.isArray(e))throw new Error("配置格式必须是数组。");return e},zt=e=>typeof e!="string"||!e?e:e.length<=6?`${e.slice(0,2)}****`:`${e.slice(0,3)}****`,pt=e=>{const t=new Set(["secure_c_ses","csesidx","config_id","host_c_oses","mail_password","mail_refresh_token","mail_client_id"]);return e.map(o=>{const i={...o};return t.forEach(c=>{const d=i[c];d&&(i[c]=zt(d))}),i})},Pt=()=>{if(V.value="",!D.value){try{ne.value=vt()}catch(e){V.value=e.message||"JSON 格式错误";return}Z.value=JSON.stringify(pt(ne.value),null,2),D.value=!0;return}Z.value=JSON.stringify(ne.value,null,2),D.value=!1},Ft=async()=>{V.value="";try{const e=vt();await k.updateConfig(e),Oe()}catch(e){V.value=e.message||"保存失败"}},Be=()=>{le.value=!1,f.value=""},Kt=async()=>{if(_e.value===null)return;const e=[...qe.value];e[_e.value]={...e[_e.value],id:_.value.id,secure_c_ses:_.value.secure_c_ses,csesidx:_.value.csesidx,config_id:_.value.config_id,host_c_oses:_.value.host_c_oses||void 0,expires_at:_.value.expires_at||void 0};try{await k.updateConfig(e),Be()}catch(t){f.value=t.message||"保存失败"}},Gt=async()=>{await k.bulkEnable(Array.from(b.value)),b.value=new Set},Ht=async()=>{await T.ask({title:"批量禁用",message:"确定要批量禁用选中的账号吗?"})&&(await k.bulkDisable(Array.from(b.value)),b.value=new Set)},Jt=async()=>{await T.ask({title:"批量删除",message:"确定要批量删除选中的账号吗?",confirmText:"删除"})&&(await k.bulkDelete(Array.from(b.value)),b.value=new Set)},xt=async e=>{await k.enableAccount(e)},mt=async e=>{await T.ask({title:"禁用账号",message:"确定要禁用该账号吗?"})&&await k.disableAccount(e)},gt=async e=>{await T.ask({title:"删除账号",message:"确定要删除该账号吗?",confirmText:"删除"})&&await k.deleteAccount(e)};let ce=null,fe=null,ve=null,Ee=!1;const q=()=>{ce!==null&&(window.clearInterval(ce),ce=null)},W=()=>{fe!==null&&(window.clearInterval(fe),fe=null)},Yt=()=>{ve!==null&&(window.clearInterval(ve),ve=null),Ee=!1},bt=e=>e==="pending"?"等待中":e==="running"?"执行中":e==="success"?"成功":e==="failed"?"失败":e,yt=async e=>{if(Te(e)){q();return}const t=await h.getRegisterTask(e);if(Te(t.id)){q();return}Me(t),t.status!=="running"&&t.status!=="pending"&&(M.value=!1,q(),await he())},_t=async e=>{if(Se(e)){W();return}const t=await h.getLoginTask(e);if(Se(t.id)){W();return}Ce(t),t.status!=="running"&&t.status!=="pending"&&(C.value=!1,W(),await he())},ht=e=>{q(),ce=window.setInterval(()=>{yt(e).catch(t=>{y.value=t?.message||"注册任务更新失败",q(),M.value=!1})},3e3)},Ne=e=>{W(),fe=window.setInterval(()=>{_t(e).catch(t=>{y.value=t?.message||"刷新任务更新失败",W(),C.value=!1})},3e3)},Qt=()=>{ve===null&&(ve=window.setInterval(async()=>{if(!Ee&&!J.value&&!(ce!==null||fe!==null)&&!(!M.value&&!C.value&&!v.value&&!p.value)){Ee=!0;try{await Ue()}catch(e){y.value=e?.message||"后台刷新失败"}finally{Ee=!1}}},6e3))},Ue=async()=>{try{const e=await h.getRegisterCurrent();e&&"id"in e&&!Te(e.id)&&(Me(e),(e.status==="running"||e.status==="pending")&&(M.value=!0,ht(e.id)))}catch(e){y.value=e.message||"加载注册任务失败"}try{const e=await h.getLoginCurrent();e&&"id"in e&&!Se(e.id)&&(Ce(e),(e.status==="running"||e.status==="pending")&&(C.value=!0,Ne(e.id)))}catch(e){y.value=e.message||"加载刷新任务失败"}},qt=async()=>{y.value="",M.value=!0;try{const e=Number.isFinite(ae.value)&&ae.value>0?ae.value:void 0,t=await h.startRegister(e);Me(t),ht(t.id),me.value=!1,J.value=!0}catch(e){y.value=e.message||"启动注册失败",M.value=!1}},Wt=async()=>{if(b.value.size){y.value="",C.value=!0;try{const e=await h.startLogin(Array.from(b.value));Ce(e),Ne(e.id)}catch(e){y.value=e.message||"启动刷新失败",C.value=!1}}},Xt=async()=>{y.value="",C.value=!0;try{await h.checkLogin();const e=await h.getLoginCurrent();if(e&&"id"in e){Ce(e),Ne(e.id);return}C.value=!1}catch(e){y.value=e.message||"触发刷新失败",C.value=!1}};return(e,t)=>(r(),l(pe,null,[s("div",fs,[s("section",vs,[s("div",ps,[s("div",xs,[E(s("input",{"onUpdate:modelValue":t[0]||(t[0]=o=>re.value=o),type:"text",placeholder:"搜索账号 ID",class:"w-full rounded-full border border-input bg-background px-4 py-2 text-sm sm:w-48"},null,512),[[I,re.value]]),K(as,{modelValue:X.value,"onUpdate:modelValue":t[1]||(t[1]=o=>X.value=o),options:Ct},null,8,["modelValue"])]),s("div",ms,[K(xe,{modelValue:Ve.value,"onUpdate:modelValue":dt},{default:kt(()=>[...t[27]||(t[27]=[G(" 全选 ",-1)])]),_:1},8,["modelValue"]),s("span",null,"已选 "+n(j.value)+" / "+n(P.value.length)+" 个账号",1),s("div",gs,[s("button",{type:"button",class:m(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",H.value==="table"?"bg-accent text-accent-foreground":""]),onClick:t[2]||(t[2]=o=>H.value="table"),"aria-label":"列表视图"},[...t[28]||(t[28]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])],2),s("button",{type:"button",class:m(["inline-flex h-8 w-8 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:border-primary hover:text-primary",H.value==="card"?"bg-accent text-accent-foreground":""]),onClick:t[3]||(t[3]=o=>H.value="card"),"aria-label":"卡片视图"},[...t[29]||(t[29]=[s("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M4 6h7v6H4V6zm9 0h7v6h-7V6zM4 14h7v4H4v-4zm9 0h7v4h-7v-4z"})],-1)])],2)])])]),s("div",bs,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:L(oe),onClick:he}," 刷新列表 ",8,ys),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:Ut}," 账户配置 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",disabled:M.value,onClick:St}," 添加账户 ",8,_s),s("div",{ref_key:"moreActionsRef",ref:Re,class:"relative"},[s("button",{class:m(["flex items-center gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary",N.value?"bg-accent text-accent-foreground":""]),onClick:Vt},[t[30]||(t[30]=G(" 更多操作 ",-1)),t[31]||(t[31]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1)),Mt.value?(r(),l("span",{key:0,class:m(["ml-1 h-2 w-2 rounded-full",Ot.value]),"aria-hidden":"true"},null,2)):x("",!0)],2),N.value?(r(),l("div",hs,[s("button",{type:"button",class:"flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm text-foreground transition-colors hover:bg-accent",onClick:t[4]||(t[4]=o=>{Lt(),se()})}," 任务状态 "),t[32]||(t[32]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:m(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",C.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:C.value,onClick:t[5]||(t[5]=o=>{Xt(),se()})}," 刷新过期 ",10,ks),s("button",{type:"button",class:m(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",!j.value||C.value?"cursor-not-allowed text-muted-foreground":"text-foreground hover:bg-accent"]),disabled:!j.value||C.value,onClick:t[6]||(t[6]=o=>{Wt(),se()})}," 刷新选中 ",10,ws),t[33]||(t[33]=s("div",{class:"my-1 border-t border-border/60"},null,-1)),s("button",{type:"button",class:m(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",j.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!j.value,onClick:t[7]||(t[7]=o=>{Gt(),se()})}," 批量启用 ",10,Cs),s("button",{type:"button",class:m(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",j.value?"text-foreground hover:bg-accent":"cursor-not-allowed text-muted-foreground"]),disabled:!j.value,onClick:t[8]||(t[8]=o=>{Ht(),se()})}," 批量禁用 ",10,Ts),s("button",{type:"button",class:m(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors",j.value?"text-destructive hover:bg-destructive/10":"cursor-not-allowed text-muted-foreground"]),disabled:!j.value,onClick:t[9]||(t[9]=o=>{Jt(),se()})}," 批量删除 ",10,Ss)])):x("",!0)],512)]),H.value==="card"?(r(),l("div",As,[(r(!0),l(pe,null,Le(P.value,o=>(r(),l("div",{key:o.id,class:m(["rounded-2xl border border-border bg-card p-4",it(o)]),onClick:i=>Ae(o.id)},[s("div",Is,[s("div",null,[t[34]||(t[34]=s("p",{class:"text-xs text-muted-foreground"},"账号 ID",-1)),s("p",Ls,n(o.id),1)]),s("div",$s,[K(xe,{modelValue:b.value.has(o.id),"onUpdate:modelValue":i=>Ae(o.id),onClick:t[10]||(t[10]=$(()=>{},["stop"]))},null,8,["modelValue","onUpdate:modelValue"]),s("span",{class:m(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",ot(o)])},n(ue(o)),3)])]),s("div",Rs,[s("div",null,[t[35]||(t[35]=s("p",null,"剩余时间",-1)),s("p",{class:m(["mt-1 text-sm font-semibold",nt(o)])},n(lt(o.remaining_display)),3),o.expires_at?(r(),l("p",Vs,n(o.expires_at),1)):x("",!0)]),s("div",null,[t[36]||(t[36]=s("p",null,"冷却",-1)),s("p",{class:m(["mt-1",De(o)])},[o.cooldown_seconds>0?(r(),l("span",Ms,n(at(o.cooldown_seconds))+" · "+n(o.cooldown_reason),1)):(r(),l("span",js,n(o.cooldown_reason||"无冷却"),1))],2)]),s("div",null,[t[37]||(t[37]=s("p",null,"失败数",-1)),s("p",Ds,n(o.error_count),1)]),s("div",null,[t[38]||(t[38]=s("p",null,"会话数",-1)),s("p",Os,n(o.conversation_count),1)])]),s("div",Bs,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:$(i=>ft(o.id),["stop"])}," 编辑 ",8,Ns),rt(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[11]||(t[11]=$(()=>{},["stop"])),i=>xt(o.id)]}," 启用 ",8,Us)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:[t[12]||(t[12]=$(()=>{},["stop"])),i=>mt(o.id)]}," 禁用 ",8,zs)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:[t[13]||(t[13]=$(()=>{},["stop"])),i=>gt(o.id)]}," 删除 ",8,Ps)])],10,Es))),128)),!P.value.length&&!L(oe)?(r(),l("div",Fs," 暂无账号数据,请检查后台配置。 ")):x("",!0)])):(r(),l("div",Ks,[s("table",Gs,[s("thead",Hs,[s("tr",null,[s("th",Js,[K(xe,{modelValue:Ve.value,"onUpdate:modelValue":dt},null,8,["modelValue"])]),t[40]||(t[40]=s("th",{class:"py-3 pr-6"},"账号 ID",-1)),t[41]||(t[41]=s("th",{class:"py-3 pr-6"},"状态",-1)),s("th",Ys,[s("span",Qs,[t[39]||(t[39]=G(" 剩余/过期 ",-1)),K(us,{text:"过期时间为 12 小时,账户过期以北京时间为准。"})])]),t[42]||(t[42]=s("th",{class:"py-3 pr-6"},"冷却",-1)),t[43]||(t[43]=s("th",{class:"py-3 pr-6"},"失败数",-1)),t[44]||(t[44]=s("th",{class:"py-3 pr-6"},"会话数",-1)),t[45]||(t[45]=s("th",{class:"py-3 text-right"},"操作",-1))])]),s("tbody",qs,[!P.value.length&&!L(oe)?(r(),l("tr",Ws,[...t[46]||(t[46]=[s("td",{colspan:"8",class:"py-8 text-center text-muted-foreground"}," 暂无账号数据,请检查后台配置。 ",-1)])])):x("",!0),(r(!0),l(pe,null,Le(P.value,o=>(r(),l("tr",{key:o.id,class:m(["border-t border-border",it(o)]),onClick:i=>Ae(o.id)},[s("td",{class:"py-4 pr-4",onClick:t[14]||(t[14]=$(()=>{},["stop"]))},[K(xe,{modelValue:b.value.has(o.id),"onUpdate:modelValue":i=>Ae(o.id)},null,8,["modelValue","onUpdate:modelValue"])]),s("td",Zs,n(o.id),1),s("td",eo,[s("span",{class:m(["inline-flex items-center rounded-full border border-border px-3 py-1 text-xs",ot(o)])},n(ue(o)),3)]),s("td",to,[s("div",{class:m(["text-sm font-semibold",nt(o)])},n(lt(o.remaining_display)),3),o.expires_at?(r(),l("span",so,n(o.expires_at),1)):x("",!0)]),s("td",oo,[o.cooldown_seconds>0?(r(),l("span",{key:0,class:m(De(o))},n(at(o.cooldown_seconds))+" · "+n(o.cooldown_reason),3)):(r(),l("span",{key:1,class:m(De(o))},n(o.cooldown_reason||"无冷却"),3))]),s("td",ro,n(o.error_count),1),s("td",lo,n(o.conversation_count),1),s("td",no,[s("div",ao,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:$(i=>ft(o.id),["stop"])}," 编辑 ",8,io),rt(o)?(r(),l("button",{key:0,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:$(i=>xt(o.id),["stop"])}," 启用 ",8,uo)):(r(),l("button",{key:1,class:"rounded-full border border-border px-3 py-1 text-xs text-foreground transition-colors hover:border-primary hover:text-primary",onClick:$(i=>mt(o.id),["stop"])}," 禁用 ",8,co)),s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-destructive transition-colors hover:border-destructive hover:text-destructive",onClick:$(i=>gt(o.id),["stop"])}," 删除 ",8,fo)])])],10,Xs))),128))])])]))])]),K(is,{open:L(T).open.value,title:L(T).title.value,message:L(T).message.value,"confirm-text":L(T).confirmText.value,"cancel-text":L(T).cancelText.value,onConfirm:L(T).confirm,onCancel:L(T).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(r(),Ie($e,{to:"body"},[me.value?(r(),l("div",vo,[s("div",po,[s("div",xo,[s("div",null,[t[47]||(t[47]=s("p",{class:"text-sm font-medium text-foreground"},"添加账户",-1)),s("p",mo,n(O.value==="register"?"创建 DuckMail 账号并自动注册":"批量导入账户配置"),1)]),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:je}," 关闭 ")]),s("div",go,[s("div",bo,[s("div",yo,[s("button",{type:"button",class:m(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",O.value==="register"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:t[15]||(t[15]=o=>O.value="register")}," 自动注册 ",2),s("button",{type:"button",class:m(["flex-1 rounded-full px-3 py-2 font-medium transition-colors",O.value==="import"?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:t[16]||(t[16]=o=>O.value="import")}," 批量导入 ",2)]),O.value==="register"?(r(),l("div",_o,[t[48]||(t[48]=s("label",{class:"block text-xs text-muted-foreground"},"注册数量",-1)),E(s("input",{"onUpdate:modelValue":t[17]||(t[17]=o=>ae.value=o),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[I,ae.value,void 0,{number:!0}]]),t[49]||(t[49]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"}," 默认域名来自设置面板(可在“配置面板”中修改) ",-1))])):(r(),l("div",ho,[t[50]||(t[50]=s("label",{class:"block text-xs text-muted-foreground"},"批量导入(每行一个)",-1)),E(s("textarea",{"onUpdate:modelValue":t[18]||(t[18]=o=>ie.value=o),class:"min-h-[140px] w-full rounded-2xl border border-input bg-background px-3 py-2 text-xs font-mono",placeholder:`duckmail----you@example.com----password +user@outlook.com----loginPassword----clientId----refreshToken`},null,512),[[I,ie.value]]),t[51]||(t[51]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground"},[s("p",null,"支持两种格式:"),s("p",{class:"mt-1 font-mono"},"duckmail----email----password"),s("p",{class:"mt-1 font-mono"},"email----password----clientId----refreshToken"),s("p",{class:"mt-2 text-[11px]"},"说明:微软格式中的 password 仅用于兼容输入,不会保存或使用。"),s("p",{class:"mt-1 text-[11px]"},"导入后请执行一次“刷新选中”以获取 Cookie。")],-1)),B.value?(r(),l("div",ko,n(B.value),1)):x("",!0)])),t[53]||(t[53]=s("div",{class:"rounded-2xl border border-border bg-muted/30 px-3 py-2 text-[11px] leading-relaxed text-muted-foreground"},[s("div",{class:"space-y-2"},[s("p",{class:"text-xs font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)"),s("div",{class:"space-y-1"},[s("p",null,[s("strong",null,"本工具严禁用于以下行为:")]),s("p",{class:"pl-3"},"• 商业用途或盈利性使用"),s("p",{class:"pl-3"},"• 任何形式的批量操作或自动化滥用(无论规模大小)"),s("p",{class:"pl-3"},"• 破坏市场秩序或恶意竞争"),s("p",{class:"pl-3"},"• 违反 Google 服务条款的任何行为"),s("p",{class:"pl-3"},"• 违反 Microsoft 服务条款的任何行为")]),s("div",{class:"space-y-1"},[s("p",null,[s("strong",null,"违规后果:"),G("滥用行为可能导致账号永久封禁、法律追责,一切后果由使用者自行承担。")])]),s("div",{class:"space-y-1"},[s("p",{class:"font-semibold text-foreground"},"📖 合法用途"),s("p",null,"本项目仅限于以下场景:"),s("p",{class:"pl-3"},"• 个人学习与技术研究"),s("p",{class:"pl-3"},"• 浏览器自动化技术探索"),s("p",{class:"pl-3"},"• 非商业性技术交流")]),s("div",{class:"space-y-1"},[s("p",{class:"font-semibold text-foreground"},"⚖️ 法律责任"),s("p",null,[s("strong",null,"使用者责任:"),G("使用本工具产生的一切后果(包括但不限于账号封禁、数据损失、法律纠纷)由使用者完全承担。")]),s("p",null,[s("strong",null,"合规义务:"),G("使用者必须遵守所在地法律法规及第三方服务条款(包括但不限于 Google Workspace、Microsoft 365 等服务条款)。")]),s("p",null,[s("strong",null,"作者免责:"),G("作者不对任何违规使用、滥用行为或由此产生的后果承担责任。")])]),s("div",{class:"space-y-1"},[s("p",{class:"font-semibold text-foreground"},"📋 技术声明"),s("p",{class:"pl-3"},'• 本项目按"现状"提供,不提供任何形式的担保'),s("p",{class:"pl-3"},"• 依赖的第三方服务(如 DuckMail API、Microsoft Graph API 等)可用性不受作者控制"),s("p",{class:"pl-3"},"• 作者保留随时停止维护、变更功能或关闭项目的权利")])])],-1)),K(xe,{modelValue:de.value,"onUpdate:modelValue":t[19]||(t[19]=o=>de.value=o)},{default:kt(()=>[...t[52]||(t[52]=[G(" 我已阅读并同意上述说明与限制 ",-1)])]),_:1},8,["modelValue"])])]),s("div",wo,[s("div",Co,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:je}," 取消 "),O.value==="register"?(r(),l("button",{key:0,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:M.value||!de.value,onClick:qt}," 开始注册 ",8,To)):(r(),l("button",{key:1,class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:ge.value||!de.value,onClick:Et}," 导入并保存 ",8,So))])])])])):x("",!0)])),(r(),Ie($e,{to:"body"},[J.value?(r(),l("div",Ao,[s("div",Eo,[s("div",Io,[t[54]||(t[54]=s("div",null,[s("p",{class:"text-sm font-medium text-foreground"},"任务状态"),s("p",{class:"mt-1 text-xs text-muted-foreground"},"注册与刷新任务的状态与日志")],-1)),s("div",Lo,[s("button",{class:"rounded-full border border-border px-3 py-1 text-xs text-muted-foreground transition-colors hover:border-primary hover:text-primary",disabled:!Y.value.length&&!Q.value.length&&!v.value&&!p.value&&!y.value,onClick:Rt}," 清空日志 ",8,$o),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:$t}," 关闭 ")])]),s("div",Ro,[y.value?(r(),l("div",Vo,n(y.value),1)):x("",!0),v.value||p.value?(r(),l("div",Mo,[v.value?(r(),l("div",jo,[t[55]||(t[55]=s("div",{class:"font-medium text-foreground"},"注册任务",-1)),s("div",Do,[s("span",null,"状态:"+n(bt(v.value.status)),1),s("span",null,"进度:"+n(v.value.progress)+"/"+n(v.value.count),1),s("span",null,"成功:"+n(v.value.success_count),1),s("span",null,"失败:"+n(v.value.fail_count),1)])])):x("",!0),p.value?(r(),l("div",Oo,[t[56]||(t[56]=s("div",{class:"font-medium text-foreground"},"刷新任务",-1)),s("div",Bo,[s("span",null,"状态:"+n(bt(p.value.status)),1),s("span",null,"进度:"+n(p.value.progress)+"/"+n(p.value.account_ids.length),1),s("span",null,"成功:"+n(p.value.success_count),1),s("span",null,"失败:"+n(p.value.fail_count),1)])])):x("",!0)])):x("",!0),Y.value.length||Q.value.length?(r(),l("div",No,[s("div",{ref_key:"taskLogsRef",ref:Qe,class:"scrollbar-slim flex-1 overflow-y-auto rounded-2xl border border-border bg-muted/30 p-3"},[Y.value.length?(r(),l("div",Uo,[t[57]||(t[57]=s("p",{class:"text-xs font-semibold text-foreground"},"注册日志",-1)),s("div",zo,[(r(!0),l(pe,null,Le(Y.value,(o,i)=>(r(),l("div",{key:`reg-${i}`,class:"font-mono"},n(ct(o)),1))),128))])])):x("",!0),Q.value.length?(r(),l("div",Po,[t[58]||(t[58]=s("p",{class:"text-xs font-semibold text-foreground"},"刷新日志",-1)),s("div",Fo,[(r(!0),l(pe,null,Le(Q.value,(o,i)=>(r(),l("div",{key:`login-${i}`,class:"font-mono"},n(ct(o)),1))),128))])])):x("",!0)],512)])):x("",!0),!y.value&&!v.value&&!p.value&&!Y.value.length&&!Q.value.length?(r(),l("div",Ko," 暂无任务 ")):x("",!0)])])])):x("",!0)])),(r(),Ie($e,{to:"body"},[le.value?(r(),l("div",Go,[s("div",Ho,[s("div",{class:"flex items-center justify-between"},[t[59]||(t[59]=s("p",{class:"text-sm font-medium text-foreground"},"编辑账号",-1)),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Be}," 关闭 ")]),f.value?(r(),l("div",Jo,n(f.value),1)):x("",!0),s("div",Yo,[t[60]||(t[60]=s("label",{class:"block text-xs text-muted-foreground"},"账号 ID",-1)),E(s("input",{"onUpdate:modelValue":t[20]||(t[20]=o=>_.value.id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",disabled:""},null,512),[[I,_.value.id]]),t[61]||(t[61]=s("label",{class:"block text-xs text-muted-foreground"},"secure_c_ses",-1)),E(s("textarea",{"onUpdate:modelValue":t[21]||(t[21]=o=>_.value.secure_c_ses=o),class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",rows:"3"},null,512),[[I,_.value.secure_c_ses]]),t[62]||(t[62]=s("label",{class:"block text-xs text-muted-foreground"},"csesidx",-1)),E(s("input",{"onUpdate:modelValue":t[22]||(t[22]=o=>_.value.csesidx=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[I,_.value.csesidx]]),t[63]||(t[63]=s("label",{class:"block text-xs text-muted-foreground"},"config_id",-1)),E(s("input",{"onUpdate:modelValue":t[23]||(t[23]=o=>_.value.config_id=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[I,_.value.config_id]]),t[64]||(t[64]=s("label",{class:"block text-xs text-muted-foreground"},"host_c_oses",-1)),E(s("input",{"onUpdate:modelValue":t[24]||(t[24]=o=>_.value.host_c_oses=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[I,_.value.host_c_oses]]),t[65]||(t[65]=s("label",{class:"block text-xs text-muted-foreground"},"expires_at",-1)),E(s("input",{"onUpdate:modelValue":t[25]||(t[25]=o=>_.value.expires_at=o),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"2025-12-23 10:59:21"},null,512),[[I,_.value.expires_at]])]),s("div",{class:"mt-6 flex items-center justify-end gap-2"},[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Be}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Kt}," 保存 ")])])])):x("",!0)])),(r(),Ie($e,{to:"body"},[R.value?(r(),l("div",Qo,[s("div",qo,[s("div",Wo,[t[66]||(t[66]=s("p",{class:"text-sm font-medium text-foreground"},"账户配置(JSON)",-1)),s("div",Xo,[s("button",{class:"rounded-full bg-foreground px-3 py-1 text-xs text-background transition-opacity hover:opacity-90",onClick:Pt},n(D.value?"显示原文":"脱敏显示"),1),s("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:Oe}," 关闭 ")])]),V.value?(r(),l("div",Zo,n(V.value),1)):x("",!0),s("div",er,[E(s("textarea",{"onUpdate:modelValue":t[26]||(t[26]=o=>Z.value=o),class:"h-96 w-full rounded-2xl border border-input bg-background px-4 py-3 font-mono text-xs text-foreground",spellcheck:"false",readonly:D.value},null,8,tr),[[I,Z.value]])]),s("div",sr,[s("button",{class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:Oe}," 取消 "),s("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:Ft,disabled:D.value}," 保存 ",8,or)])])])):x("",!0)]))],64))}});export{ur as default}; diff --git a/static/assets/AppShell-5WTn-3Ed.js b/static/assets/AppShell-5WTn-3Ed.js new file mode 100644 index 0000000000000000000000000000000000000000..2450368c9800e2fe5870fcbb0cdd2120ad9c099d --- /dev/null +++ b/static/assets/AppShell-5WTn-3Ed.js @@ -0,0 +1 @@ +import{d as F,l as U,h as y,i as f,q as Z,s as S,c as l,a as e,x as m,y as G,b as d,n as u,F as V,r as $,z as K,t as p,A as w,u as a,R as k,B as O,T as q,p as E,f as A,e as s}from"./index-CDbQWWUi.js";import{u as J}from"./settings-CqbT_C8Q.js";import{_ as Q}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-BA1J4R7-.js";import{u as W}from"./useConfirmDialog-qOidKSEY.js";const X={class:"min-h-screen"},Y={class:"flex min-h-screen flex-col lg:flex-row"},ee={key:0,class:"text-base font-semibold text-foreground"},te={key:0,class:"px-3 pb-2 text-xs uppercase tracking-[0.28em] text-muted-foreground"},re={class:"space-y-1"},oe={"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},se=["d"],ne={key:0,class:"flex-1 min-w-0 truncate"},le={key:1,class:"ml-auto text-xs opacity-0 transition-opacity group-hover:opacity-100"},ae={class:"mt-auto border-t border-border px-6 py-3 lg:py-4"},ie={key:0,class:"rounded-2xl bg-secondary/60 p-3"},de=["title"],ue={class:"min-w-0 flex-1 overflow-hidden lg:ml-0"},pe={class:"min-w-0 flex flex-col gap-4 border-b border-border bg-card/70 px-6 py-5 backdrop-blur lg:flex-row lg:items-center lg:justify-between lg:px-10"},ce={class:"flex items-center gap-3"},xe={class:"text-xl font-semibold text-foreground lg:text-2xl"},fe={class:"flex flex-wrap items-center gap-3"},me={class:"h-full overflow-y-auto overflow-x-hidden bg-card/70 px-4 pb-10 pt-6 backdrop-blur lg:px-10 lg:pt-10"},be={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ge={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},ve={class:"flex items-center justify-between"},he={class:"mt-4 space-y-3 text-sm"},ye={class:"mt-1 flex items-start gap-2"},we={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ke={class:"mt-1 flex items-start gap-2"},_e={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ze={class:"mt-1 flex items-start gap-2"},Ce={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},He={class:"mt-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground"},Me={class:"flex flex-wrap gap-2 text-foreground"},Se={class:"mt-1 flex items-start gap-2"},Ve={class:"min-w-0 flex-1 rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},$e={class:"mt-6 flex items-center justify-end"},Ie=F({__name:"AppShell",setup(Ae){const L=E(),b=Z(),j=U(),c=J(),x=y(!1),o=y(!1),i=W(),g=y(!1),_=[{path:"/",label:"概览",icon:"M4 4h7v7H4V4zm9 0h7v4h-7V4zm0 6h7v10h-7V10zM4 13h7v7H4v-7z"},{path:"/accounts",label:"账号管理",icon:"M12 12a3.5 3.5 0 1 0-3.5-3.5A3.5 3.5 0 0 0 12 12zm0 2c-4.1 0-7.5 2.2-7.5 5v1h15v-1c0-2.8-3.4-5-7.5-5z"},{path:"/settings",label:"系统设置",icon:"M4 6h10v2H4V6zm12 0h4v2h-4V6zM4 11h6v2H4v-2zm8 0h8v2h-8v-2zM4 16h10v2H4v-2zm12 0h4v2h-4v-2z"},{path:"/monitor",label:"监控状态",icon:"M3 12h4l2-4 4 8 3-6h5v2h-4l-4 8-4-8-2 4H3v-2z"},{path:"/logs",label:"运行日志",icon:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h10v2H4v-2z"},{path:"/docs",label:"文档中心",icon:"M6 3h9l4 4v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm8 1.5V8h3.5L14 4.5zM8 11h8v2H8v-2zm0 4h8v2H8v-2z"}],B=f(()=>_.find(t=>t.path===b.path)?.label||"概览"),D=n=>{const r=`transition-colors ${o.value?"px-2 justify-center gap-0":"px-3 gap-3"}`;return b.path===n?`${r} bg-primary text-primary-foreground`:`${r} text-muted-foreground hover:bg-accent hover:text-accent-foreground`},I=n=>b.path===n?"bg-primary-foreground/15 text-primary-foreground border-primary-foreground/40":"bg-secondary text-muted-foreground group-hover:text-accent-foreground",v=f(()=>(c.settings?.basic?.base_url||""||window.location.origin).replace(/\/$/,"")),z=f(()=>`${v.value}/v1`),C=f(()=>`${v.value}/v1/chat/completions`),H=f(()=>c.settings?.basic?.api_key||"未设置"),T=["gemini-auto","gemini-2.5-flash","gemini-2.5-pro","gemini-3-flash-preview","gemini-3-pro-preview"];S(()=>b.path,()=>{x.value=!1});const M=localStorage.getItem("sidebar-collapsed");M&&(o.value=M==="true"),S(o,n=>{localStorage.setItem("sidebar-collapsed",n?"true":"false")});async function N(){await i.ask({title:"退出登录",message:"确定退出管理控制台吗?"})&&(await j.logout(),L.push({name:"login"}))}function P(){window.location.reload()}async function R(){g.value=!0,!c.settings&&!c.isLoading&&await c.loadSettings()}async function h(n){if(n)try{await navigator.clipboard.writeText(n)}catch(t){console.error("Copy failed",t)}}return(n,t)=>(s(),l("div",X,[e("div",Y,[x.value?(s(),l("div",{key:0,class:"fixed inset-0 z-30 bg-black/20 backdrop-blur-sm lg:hidden",onClick:t[0]||(t[0]=r=>x.value=!1)})):d("",!0),e("aside",{class:u(["fixed inset-y-0 left-0 z-40 w-72 -translate-x-full bg-card/90 backdrop-blur-sm lg:backdrop-blur-none border-r border-border transition-[width,transform] duration-200 ease-out will-change-[transform] transform-gpu flex flex-col lg:static lg:translate-x-0 lg:bg-card/80 lg:border-b-0 lg:border-r lg:sticky lg:top-0 lg:h-screen",[{"translate-x-0":x.value,"w-20 lg:w-20":o.value}]])},[e("div",{class:u(["flex h-16 items-center justify-between px-6 pt-4 lg:h-20 lg:pt-5",o.value?"justify-center px-0":""])},[e("div",{class:u(["flex items-center gap-2",o.value?"gap-0 justify-center w-full":""])},[t[9]||(t[9]=e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"text-foreground transition-colors hover:text-primary","aria-label":"GitHub"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-6 w-6",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})])],-1)),o.value?d("",!0):(s(),l("span",ee,"Gemini Business2API"))],2)],2),e("nav",{class:u(["pb-4 pt-4 lg:pt-6 flex-1 overflow-y-auto",o.value?"px-2":"px-3"])},[o.value?d("",!0):(s(),l("p",te," 导航 ")),e("div",re,[(s(),l(V,null,$(_,r=>m(a(k),{key:r.path,to:r.path,class:u(["group flex items-center rounded-2xl py-2 text-sm font-medium transition-colors overflow-hidden",D(r.path)]),title:o.value?r.label:void 0},{default:w(()=>[e("span",{class:u(["inline-flex h-9 w-9 items-center justify-center rounded-2xl border border-border",I(r.path)])},[(s(),l("svg",oe,[e("path",{d:r.icon},null,8,se)]))],2),o.value?d("",!0):(s(),l("span",ne,p(r.label),1)),o.value?d("",!0):(s(),l("span",le," 进入 "))]),_:2},1032,["to","class","title"])),64))])],2),e("div",ae,[o.value?d("",!0):(s(),l("div",ie,[...t[10]||(t[10]=[e("p",{class:"text-xs tracking-[0.12em] text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-1 transition-colors hover:text-foreground"}," gemini-business2api "),e("span",null," · 声明")],-1),e("p",{class:"mt-2 text-xs text-muted-foreground"}," 本项目仅限学习与研究用途,禁止用于商业用途。请保留本声明、原作者信息与开源来源。 ",-1)])])),e("div",{class:u(["mt-4 flex items-center gap-3",o.value?"justify-center":""])},[o.value?d("",!0):(s(),l("button",{key:0,onClick:N,class:"flex-1 rounded-2xl border border-border bg-background px-4 py-3 text-sm font-medium text-muted-foreground transition-colors hover:border-destructive/40 hover:text-destructive"}," 退出登录 ")),e("button",{class:"h-10 w-10 shrink-0 items-center justify-center rounded-2xl border border-border text-muted-foreground transition-all hover:border-primary hover:text-primary flex",onClick:t[1]||(t[1]=r=>o.value=!o.value),title:o.value?"展开侧边栏":"收起侧边栏"},[...t[11]||(t[11]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4 shrink-0",fill:"currentColor"},[e("path",{d:"M6 4h2v16H6V4zm4 4h8v2h-8V8zm0 6h8v2h-8v-2z"})],-1)])],8,de)],2)])],2),e("main",ue,[e("header",pe,[e("div",ce,[e("button",{class:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-border text-foreground transition-colors hover:border-primary hover:text-primary lg:hidden",onClick:t[2]||(t[2]=r=>x.value=!0),"aria-label":"打开导航"},[...t[12]||(t[12]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},[e("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])]),t[13]||(t[13]=K('',1)),e("h2",xe,p(B.value),1)]),e("div",fe,[e("button",{onClick:P,class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",title:"刷新"}," 刷新 "),e("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:R}," 接口信息 "),m(a(k),{to:"/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[14]||(t[14]=[A(" 状态监控 ",-1)])]),_:1}),m(a(k),{to:"/public/logs",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[15]||(t[15]=[A(" 公开日志 ",-1)])]),_:1})])]),e("div",me,[m(a(O))])])]),m(Q,{open:a(i).open.value,title:a(i).title.value,message:a(i).message.value,"confirm-text":a(i).confirmText.value,"cancel-text":a(i).cancelText.value,onConfirm:a(i).confirm,onCancel:a(i).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(s(),G(q,{to:"body"},[g.value?(s(),l("div",be,[e("div",ge,[e("div",ve,[t[16]||(t[16]=e("p",{class:"text-sm font-medium text-foreground"},"API 接口",-1)),e("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:t[3]||(t[3]=r=>g.value=!1)}," 关闭 ")]),t[22]||(t[22]=e("p",{class:"mt-2 text-xs text-muted-foreground"},"根据客户端选择对应接口",-1)),e("div",he,[e("div",null,[t[17]||(t[17]=e("p",{class:"text-xs text-muted-foreground"},"基础端点",-1)),e("div",ye,[e("p",we,p(v.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[4]||(t[4]=r=>h(v.value))}," 复制 ")])]),e("div",null,[t[18]||(t[18]=e("p",{class:"text-xs text-muted-foreground"},"SDK 接口",-1)),e("div",ke,[e("p",_e,p(z.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[5]||(t[5]=r=>h(z.value))}," 复制 ")])]),e("div",null,[t[19]||(t[19]=e("p",{class:"text-xs text-muted-foreground"},"完整接口",-1)),e("div",ze,[e("p",Ce,p(C.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[6]||(t[6]=r=>h(C.value))}," 复制 ")])]),e("div",null,[t[20]||(t[20]=e("p",{class:"text-xs text-muted-foreground"},"支持模型",-1)),e("div",He,[e("div",Me,[(s(),l(V,null,$(T,r=>e("span",{key:r,class:"rounded-full border border-border px-2 py-0.5 text-[11px]"},p(r),1)),64))])])]),e("div",null,[t[21]||(t[21]=e("p",{class:"text-xs text-muted-foreground"},"API 密钥",-1)),e("div",Se,[e("p",Ve,p(H.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[7]||(t[7]=r=>h(H.value))}," 复制 ")])])]),e("div",$e,[e("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:t[8]||(t[8]=r=>g.value=!1)}," 知道了 ")])])])):d("",!0)]))]))}});export{Ie as default}; diff --git a/static/assets/AppShell-78CtCTQC.js b/static/assets/AppShell-78CtCTQC.js new file mode 100644 index 0000000000000000000000000000000000000000..9a2adabf83ba572e5157b7832c8ff735543cb4d6 --- /dev/null +++ b/static/assets/AppShell-78CtCTQC.js @@ -0,0 +1 @@ +import{d as F,l as U,h as y,i as f,q as Z,s as S,c as l,a as e,x as m,y as G,b as d,n as u,F as V,r as $,z as K,t as p,A as w,u as a,R as k,B as O,T as q,p as E,f as A,e as s}from"./index-C9KL0lrc.js";import{u as J}from"./settings-DpDmWAP6.js";import{_ as Q}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-pFdqEtiD.js";import{u as W}from"./useConfirmDialog-DHNXQEiw.js";const X={class:"min-h-screen"},Y={class:"flex min-h-screen flex-col lg:flex-row"},ee={key:0,class:"text-base font-semibold text-foreground"},te={key:0,class:"px-3 pb-2 text-xs uppercase tracking-[0.28em] text-muted-foreground"},re={class:"space-y-1"},oe={"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},se=["d"],ne={key:0,class:"flex-1 min-w-0 truncate"},le={key:1,class:"ml-auto text-xs opacity-0 transition-opacity group-hover:opacity-100"},ae={class:"mt-auto border-t border-border px-6 py-3 lg:py-4"},ie={key:0,class:"rounded-2xl bg-secondary/60 p-3"},de=["title"],ue={class:"min-w-0 flex-1 overflow-hidden lg:ml-0"},pe={class:"min-w-0 flex flex-col gap-4 border-b border-border bg-card/70 px-6 py-5 backdrop-blur lg:flex-row lg:items-center lg:justify-between lg:px-10"},ce={class:"flex items-center gap-3"},xe={class:"text-xl font-semibold text-foreground lg:text-2xl"},fe={class:"flex flex-wrap items-center gap-3"},me={class:"h-full overflow-y-auto overflow-x-hidden bg-card/70 px-4 pb-10 pt-6 backdrop-blur lg:px-10 lg:pt-10"},be={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ge={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},ve={class:"flex items-center justify-between"},he={class:"mt-4 space-y-3 text-sm"},ye={class:"mt-1 flex items-start gap-2"},we={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ke={class:"mt-1 flex items-start gap-2"},_e={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ze={class:"mt-1 flex items-start gap-2"},Ce={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},He={class:"mt-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground"},Me={class:"flex flex-wrap gap-2 text-foreground"},Se={class:"mt-1 flex items-start gap-2"},Ve={class:"min-w-0 flex-1 rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},$e={class:"mt-6 flex items-center justify-end"},Ie=F({__name:"AppShell",setup(Ae){const L=E(),b=Z(),j=U(),c=J(),x=y(!1),o=y(!1),i=W(),g=y(!1),_=[{path:"/",label:"概览",icon:"M4 4h7v7H4V4zm9 0h7v4h-7V4zm0 6h7v10h-7V10zM4 13h7v7H4v-7z"},{path:"/accounts",label:"账号管理",icon:"M12 12a3.5 3.5 0 1 0-3.5-3.5A3.5 3.5 0 0 0 12 12zm0 2c-4.1 0-7.5 2.2-7.5 5v1h15v-1c0-2.8-3.4-5-7.5-5z"},{path:"/settings",label:"系统设置",icon:"M4 6h10v2H4V6zm12 0h4v2h-4V6zM4 11h6v2H4v-2zm8 0h8v2h-8v-2zM4 16h10v2H4v-2zm12 0h4v2h-4v-2z"},{path:"/monitor",label:"监控状态",icon:"M3 12h4l2-4 4 8 3-6h5v2h-4l-4 8-4-8-2 4H3v-2z"},{path:"/logs",label:"运行日志",icon:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h10v2H4v-2z"},{path:"/docs",label:"文档中心",icon:"M6 3h9l4 4v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm8 1.5V8h3.5L14 4.5zM8 11h8v2H8v-2zm0 4h8v2H8v-2z"}],B=f(()=>_.find(t=>t.path===b.path)?.label||"概览"),D=n=>{const r=`transition-colors ${o.value?"px-2 justify-center gap-0":"px-3 gap-3"}`;return b.path===n?`${r} bg-primary text-primary-foreground`:`${r} text-muted-foreground hover:bg-accent hover:text-accent-foreground`},I=n=>b.path===n?"bg-primary-foreground/15 text-primary-foreground border-primary-foreground/40":"bg-secondary text-muted-foreground group-hover:text-accent-foreground",v=f(()=>(c.settings?.basic?.base_url||""||window.location.origin).replace(/\/$/,"")),z=f(()=>`${v.value}/v1`),C=f(()=>`${v.value}/v1/chat/completions`),H=f(()=>c.settings?.basic?.api_key||"未设置"),T=["gemini-auto","gemini-2.5-flash","gemini-2.5-pro","gemini-3-flash-preview","gemini-3-pro-preview"];S(()=>b.path,()=>{x.value=!1});const M=localStorage.getItem("sidebar-collapsed");M&&(o.value=M==="true"),S(o,n=>{localStorage.setItem("sidebar-collapsed",n?"true":"false")});async function N(){await i.ask({title:"退出登录",message:"确定退出管理控制台吗?"})&&(await j.logout(),L.push({name:"login"}))}function P(){window.location.reload()}async function R(){g.value=!0,!c.settings&&!c.isLoading&&await c.loadSettings()}async function h(n){if(n)try{await navigator.clipboard.writeText(n)}catch(t){console.error("Copy failed",t)}}return(n,t)=>(s(),l("div",X,[e("div",Y,[x.value?(s(),l("div",{key:0,class:"fixed inset-0 z-30 bg-black/20 backdrop-blur-sm lg:hidden",onClick:t[0]||(t[0]=r=>x.value=!1)})):d("",!0),e("aside",{class:u(["fixed inset-y-0 left-0 z-40 w-72 -translate-x-full bg-card/90 backdrop-blur-sm lg:backdrop-blur-none border-r border-border transition-transform duration-200 ease-out will-change-[transform] transform-gpu flex flex-col lg:static lg:translate-x-0 lg:bg-card/80 lg:border-b-0 lg:border-r lg:sticky lg:top-0 lg:h-screen",[{"translate-x-0":x.value,"w-20 lg:w-20":o.value}]])},[e("div",{class:u(["flex h-16 items-center justify-between px-6 pt-4 lg:h-20 lg:pt-5",o.value?"justify-center px-0":""])},[e("div",{class:u(["flex items-center gap-2",o.value?"gap-0 justify-center w-full":""])},[t[9]||(t[9]=e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"text-foreground transition-colors hover:text-primary","aria-label":"GitHub"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-6 w-6",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})])],-1)),o.value?d("",!0):(s(),l("span",ee,"Gemini Business2API"))],2)],2),e("nav",{class:u(["pb-4 pt-4 lg:pt-6 flex-1 overflow-y-auto",o.value?"px-2":"px-3"])},[o.value?d("",!0):(s(),l("p",te," 导航 ")),e("div",re,[(s(),l(V,null,$(_,r=>m(a(k),{key:r.path,to:r.path,class:u(["group flex items-center rounded-2xl py-2 text-sm font-medium transition-colors overflow-hidden",D(r.path)]),title:o.value?r.label:void 0},{default:w(()=>[e("span",{class:u(["inline-flex h-9 w-9 items-center justify-center rounded-2xl border border-border",I(r.path)])},[(s(),l("svg",oe,[e("path",{d:r.icon},null,8,se)]))],2),o.value?d("",!0):(s(),l("span",ne,p(r.label),1)),o.value?d("",!0):(s(),l("span",le," 进入 "))]),_:2},1032,["to","class","title"])),64))])],2),e("div",ae,[o.value?d("",!0):(s(),l("div",ie,[...t[10]||(t[10]=[e("p",{class:"text-xs tracking-[0.12em] text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-1 transition-colors hover:text-foreground"}," gemini-business2api "),e("span",null," · 声明")],-1),e("p",{class:"mt-2 text-xs text-muted-foreground"}," 本项目仅限学习与研究用途,禁止用于商业用途。请保留本声明、原作者信息与开源来源。 ",-1)])])),e("div",{class:u(["mt-4 flex items-center gap-3",o.value?"justify-center":""])},[o.value?d("",!0):(s(),l("button",{key:0,onClick:N,class:"flex-1 rounded-2xl border border-border bg-background px-4 py-3 text-sm font-medium text-muted-foreground transition-colors hover:border-destructive/40 hover:text-destructive"}," 退出登录 ")),e("button",{class:"h-10 w-10 shrink-0 items-center justify-center rounded-2xl border border-border text-muted-foreground transition-all hover:border-primary hover:text-primary flex",onClick:t[1]||(t[1]=r=>o.value=!o.value),title:o.value?"展开侧边栏":"收起侧边栏"},[...t[11]||(t[11]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4 shrink-0",fill:"currentColor"},[e("path",{d:"M6 4h2v16H6V4zm4 4h8v2h-8V8zm0 6h8v2h-8v-2z"})],-1)])],8,de)],2)])],2),e("main",ue,[e("header",pe,[e("div",ce,[e("button",{class:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-border text-foreground transition-colors hover:border-primary hover:text-primary lg:hidden",onClick:t[2]||(t[2]=r=>x.value=!0),"aria-label":"打开导航"},[...t[12]||(t[12]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},[e("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])]),t[13]||(t[13]=K('',1)),e("h2",xe,p(B.value),1)]),e("div",fe,[e("button",{onClick:P,class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",title:"刷新"}," 刷新 "),e("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:R}," 接口信息 "),m(a(k),{to:"/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[14]||(t[14]=[A(" 状态监控 ",-1)])]),_:1}),m(a(k),{to:"/public/logs",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[15]||(t[15]=[A(" 公开日志 ",-1)])]),_:1})])]),e("div",me,[m(a(O))])])]),m(Q,{open:a(i).open.value,title:a(i).title.value,message:a(i).message.value,"confirm-text":a(i).confirmText.value,"cancel-text":a(i).cancelText.value,onConfirm:a(i).confirm,onCancel:a(i).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(s(),G(q,{to:"body"},[g.value?(s(),l("div",be,[e("div",ge,[e("div",ve,[t[16]||(t[16]=e("p",{class:"text-sm font-medium text-foreground"},"API 接口",-1)),e("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:t[3]||(t[3]=r=>g.value=!1)}," 关闭 ")]),t[22]||(t[22]=e("p",{class:"mt-2 text-xs text-muted-foreground"},"根据客户端选择对应接口",-1)),e("div",he,[e("div",null,[t[17]||(t[17]=e("p",{class:"text-xs text-muted-foreground"},"基础端点",-1)),e("div",ye,[e("p",we,p(v.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[4]||(t[4]=r=>h(v.value))}," 复制 ")])]),e("div",null,[t[18]||(t[18]=e("p",{class:"text-xs text-muted-foreground"},"SDK 接口",-1)),e("div",ke,[e("p",_e,p(z.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[5]||(t[5]=r=>h(z.value))}," 复制 ")])]),e("div",null,[t[19]||(t[19]=e("p",{class:"text-xs text-muted-foreground"},"完整接口",-1)),e("div",ze,[e("p",Ce,p(C.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[6]||(t[6]=r=>h(C.value))}," 复制 ")])]),e("div",null,[t[20]||(t[20]=e("p",{class:"text-xs text-muted-foreground"},"支持模型",-1)),e("div",He,[e("div",Me,[(s(),l(V,null,$(T,r=>e("span",{key:r,class:"rounded-full border border-border px-2 py-0.5 text-[11px]"},p(r),1)),64))])])]),e("div",null,[t[21]||(t[21]=e("p",{class:"text-xs text-muted-foreground"},"API 密钥",-1)),e("div",Se,[e("p",Ve,p(H.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[7]||(t[7]=r=>h(H.value))}," 复制 ")])])]),e("div",$e,[e("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:t[8]||(t[8]=r=>g.value=!1)}," 知道了 ")])])])):d("",!0)]))]))}});export{Ie as default}; diff --git a/static/assets/AppShell-8b_m8Zl7.js b/static/assets/AppShell-8b_m8Zl7.js new file mode 100644 index 0000000000000000000000000000000000000000..fdd6e50884a4a7fc8dc4d609d63b41e63a44d8af --- /dev/null +++ b/static/assets/AppShell-8b_m8Zl7.js @@ -0,0 +1 @@ +import{d as F,l as U,h as y,i as f,z as Z,A as S,c as l,a as e,p as m,m as G,b as d,n as u,F as V,r as $,B as K,t as p,s as w,u as a,R as k,C as O,x as E,y as q,f as A,e as s}from"./index-JaBfp01b.js";import{u as J}from"./settings-BHsdlelt.js";import{_ as Q}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-BuSWgV7j.js";import{u as W}from"./useConfirmDialog-BGx3Bidu.js";const X={class:"min-h-screen"},Y={class:"flex min-h-screen flex-col lg:flex-row"},ee={key:0,class:"text-base font-semibold text-foreground"},te={key:0,class:"px-3 pb-2 text-xs uppercase tracking-[0.28em] text-muted-foreground"},re={class:"space-y-1"},oe={"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},se=["d"],ne={key:0,class:"flex-1 min-w-0 truncate"},le={key:1,class:"ml-auto text-xs opacity-0 transition-opacity group-hover:opacity-100"},ae={class:"mt-auto border-t border-border px-6 py-3 lg:py-4"},ie={key:0,class:"rounded-2xl bg-secondary/60 p-3"},de=["title"],ue={class:"min-w-0 flex-1 overflow-hidden lg:ml-0"},pe={class:"min-w-0 flex flex-col gap-4 border-b border-border bg-card/70 px-6 py-5 backdrop-blur lg:flex-row lg:items-center lg:justify-between lg:px-10"},ce={class:"flex items-center gap-3"},xe={class:"text-xl font-semibold text-foreground lg:text-2xl"},fe={class:"flex flex-wrap items-center gap-3"},me={class:"h-full overflow-y-auto overflow-x-hidden bg-card/70 px-4 pb-10 pt-6 backdrop-blur lg:px-10 lg:pt-10"},be={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ge={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},ve={class:"flex items-center justify-between"},he={class:"mt-4 space-y-3 text-sm"},ye={class:"mt-1 flex items-start gap-2"},we={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ke={class:"mt-1 flex items-start gap-2"},_e={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ze={class:"mt-1 flex items-start gap-2"},Ce={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},He={class:"mt-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground"},Me={class:"flex flex-wrap gap-2 text-foreground"},Se={class:"mt-1 flex items-start gap-2"},Ve={class:"min-w-0 flex-1 rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},$e={class:"mt-6 flex items-center justify-end"},Ie=F({__name:"AppShell",setup(Ae){const L=q(),b=Z(),j=U(),c=J(),x=y(!1),o=y(!1),i=W(),g=y(!1),_=[{path:"/",label:"概览",icon:"M4 4h7v7H4V4zm9 0h7v4h-7V4zm0 6h7v10h-7V10zM4 13h7v7H4v-7z"},{path:"/accounts",label:"账号管理",icon:"M12 12a3.5 3.5 0 1 0-3.5-3.5A3.5 3.5 0 0 0 12 12zm0 2c-4.1 0-7.5 2.2-7.5 5v1h15v-1c0-2.8-3.4-5-7.5-5z"},{path:"/settings",label:"系统设置",icon:"M4 6h10v2H4V6zm12 0h4v2h-4V6zM4 11h6v2H4v-2zm8 0h8v2h-8v-2zM4 16h10v2H4v-2zm12 0h4v2h-4v-2z"},{path:"/monitor",label:"监控状态",icon:"M3 12h4l2-4 4 8 3-6h5v2h-4l-4 8-4-8-2 4H3v-2z"},{path:"/logs",label:"运行日志",icon:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h10v2H4v-2z"},{path:"/docs",label:"文档中心",icon:"M6 3h9l4 4v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm8 1.5V8h3.5L14 4.5zM8 11h8v2H8v-2zm0 4h8v2H8v-2z"}],B=f(()=>_.find(t=>t.path===b.path)?.label||"概览"),D=n=>{const r=`transition-colors ${o.value?"px-2 justify-center gap-0":"px-3 gap-3"}`;return b.path===n?`${r} bg-primary text-primary-foreground`:`${r} text-muted-foreground hover:bg-accent hover:text-accent-foreground`},I=n=>b.path===n?"bg-primary-foreground/15 text-primary-foreground border-primary-foreground/40":"bg-secondary text-muted-foreground group-hover:text-accent-foreground",v=f(()=>(c.settings?.basic?.base_url||""||window.location.origin).replace(/\/$/,"")),z=f(()=>`${v.value}/v1`),C=f(()=>`${v.value}/v1/chat/completions`),H=f(()=>c.settings?.basic?.api_key||"未设置"),T=["gemini-auto","gemini-2.5-flash","gemini-2.5-pro","gemini-3-flash-preview","gemini-3-pro-preview"];S(()=>b.path,()=>{x.value=!1});const M=localStorage.getItem("sidebar-collapsed");M&&(o.value=M==="true"),S(o,n=>{localStorage.setItem("sidebar-collapsed",n?"true":"false")});async function N(){await i.ask({title:"退出登录",message:"确定退出管理控制台吗?"})&&(await j.logout(),L.push({name:"login"}))}function P(){window.location.reload()}async function R(){g.value=!0,!c.settings&&!c.isLoading&&await c.loadSettings()}async function h(n){if(n)try{await navigator.clipboard.writeText(n)}catch(t){console.error("Copy failed",t)}}return(n,t)=>(s(),l("div",X,[e("div",Y,[x.value?(s(),l("div",{key:0,class:"fixed inset-0 z-30 bg-black/20 backdrop-blur-sm lg:hidden",onClick:t[0]||(t[0]=r=>x.value=!1)})):d("",!0),e("aside",{class:u(["fixed inset-y-0 left-0 z-40 w-72 -translate-x-full bg-card/90 backdrop-blur-sm lg:backdrop-blur-none border-r border-border transition-[width,transform] duration-200 ease-out will-change-[transform] transform-gpu flex flex-col lg:static lg:translate-x-0 lg:bg-card/80 lg:border-b-0 lg:border-r lg:sticky lg:top-0 lg:h-screen",[{"translate-x-0":x.value,"w-20 lg:w-20":o.value}]])},[e("div",{class:u(["flex h-16 items-center justify-between px-6 pt-4 lg:h-20 lg:pt-5",o.value?"justify-center px-0":""])},[e("div",{class:u(["flex items-center gap-2",o.value?"gap-0 justify-center w-full":""])},[t[9]||(t[9]=e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"text-foreground transition-colors hover:text-primary","aria-label":"GitHub"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-6 w-6",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})])],-1)),o.value?d("",!0):(s(),l("span",ee,"Gemini Business2API"))],2)],2),e("nav",{class:u(["pb-4 pt-4 lg:pt-6 flex-1 overflow-y-auto",o.value?"px-2":"px-3"])},[o.value?d("",!0):(s(),l("p",te," 导航 ")),e("div",re,[(s(),l(V,null,$(_,r=>m(a(k),{key:r.path,to:r.path,class:u(["group flex items-center rounded-2xl py-2 text-sm font-medium transition-colors overflow-hidden",D(r.path)]),title:o.value?r.label:void 0},{default:w(()=>[e("span",{class:u(["inline-flex h-9 w-9 items-center justify-center rounded-2xl border border-border",I(r.path)])},[(s(),l("svg",oe,[e("path",{d:r.icon},null,8,se)]))],2),o.value?d("",!0):(s(),l("span",ne,p(r.label),1)),o.value?d("",!0):(s(),l("span",le," 进入 "))]),_:2},1032,["to","class","title"])),64))])],2),e("div",ae,[o.value?d("",!0):(s(),l("div",ie,[...t[10]||(t[10]=[e("p",{class:"text-xs tracking-[0.12em] text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-1 transition-colors hover:text-foreground"}," gemini-business2api "),e("span",null," · 声明")],-1),e("p",{class:"mt-2 text-xs text-muted-foreground"}," 本项目仅限学习与研究用途,禁止用于商业用途。请保留本声明、原作者信息与开源来源。 ",-1)])])),e("div",{class:u(["mt-4 flex items-center gap-3",o.value?"justify-center":""])},[o.value?d("",!0):(s(),l("button",{key:0,onClick:N,class:"flex-1 rounded-2xl border border-border bg-background px-4 py-3 text-sm font-medium text-muted-foreground transition-colors hover:border-destructive/40 hover:text-destructive"}," 退出登录 ")),e("button",{class:"h-10 w-10 shrink-0 items-center justify-center rounded-2xl border border-border text-muted-foreground transition-all hover:border-primary hover:text-primary flex",onClick:t[1]||(t[1]=r=>o.value=!o.value),title:o.value?"展开侧边栏":"收起侧边栏"},[...t[11]||(t[11]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4 shrink-0",fill:"currentColor"},[e("path",{d:"M6 4h2v16H6V4zm4 4h8v2h-8V8zm0 6h8v2h-8v-2z"})],-1)])],8,de)],2)])],2),e("main",ue,[e("header",pe,[e("div",ce,[e("button",{class:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-border text-foreground transition-colors hover:border-primary hover:text-primary lg:hidden",onClick:t[2]||(t[2]=r=>x.value=!0),"aria-label":"打开导航"},[...t[12]||(t[12]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},[e("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])]),t[13]||(t[13]=K('',1)),e("h2",xe,p(B.value),1)]),e("div",fe,[e("button",{onClick:P,class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",title:"刷新"}," 刷新 "),e("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:R}," 接口信息 "),m(a(k),{to:"/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[14]||(t[14]=[A(" 状态监控 ",-1)])]),_:1}),m(a(k),{to:"/public/logs",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[15]||(t[15]=[A(" 公开日志 ",-1)])]),_:1})])]),e("div",me,[m(a(O))])])]),m(Q,{open:a(i).open.value,title:a(i).title.value,message:a(i).message.value,"confirm-text":a(i).confirmText.value,"cancel-text":a(i).cancelText.value,onConfirm:a(i).confirm,onCancel:a(i).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(s(),G(E,{to:"body"},[g.value?(s(),l("div",be,[e("div",ge,[e("div",ve,[t[16]||(t[16]=e("p",{class:"text-sm font-medium text-foreground"},"API 接口",-1)),e("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:t[3]||(t[3]=r=>g.value=!1)}," 关闭 ")]),t[22]||(t[22]=e("p",{class:"mt-2 text-xs text-muted-foreground"},"根据客户端选择对应接口",-1)),e("div",he,[e("div",null,[t[17]||(t[17]=e("p",{class:"text-xs text-muted-foreground"},"基础端点",-1)),e("div",ye,[e("p",we,p(v.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[4]||(t[4]=r=>h(v.value))}," 复制 ")])]),e("div",null,[t[18]||(t[18]=e("p",{class:"text-xs text-muted-foreground"},"SDK 接口",-1)),e("div",ke,[e("p",_e,p(z.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[5]||(t[5]=r=>h(z.value))}," 复制 ")])]),e("div",null,[t[19]||(t[19]=e("p",{class:"text-xs text-muted-foreground"},"完整接口",-1)),e("div",ze,[e("p",Ce,p(C.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[6]||(t[6]=r=>h(C.value))}," 复制 ")])]),e("div",null,[t[20]||(t[20]=e("p",{class:"text-xs text-muted-foreground"},"支持模型",-1)),e("div",He,[e("div",Me,[(s(),l(V,null,$(T,r=>e("span",{key:r,class:"rounded-full border border-border px-2 py-0.5 text-[11px]"},p(r),1)),64))])])]),e("div",null,[t[21]||(t[21]=e("p",{class:"text-xs text-muted-foreground"},"API 密钥",-1)),e("div",Se,[e("p",Ve,p(H.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[7]||(t[7]=r=>h(H.value))}," 复制 ")])])]),e("div",$e,[e("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:t[8]||(t[8]=r=>g.value=!1)}," 知道了 ")])])])):d("",!0)]))]))}});export{Ie as default}; diff --git a/static/assets/AppShell-B0aV7cPb.js b/static/assets/AppShell-B0aV7cPb.js new file mode 100644 index 0000000000000000000000000000000000000000..7fd95da5662260e95bc772f2b51418ce13075d40 --- /dev/null +++ b/static/assets/AppShell-B0aV7cPb.js @@ -0,0 +1 @@ +import{d as F,l as U,h as y,i as f,q as Z,s as S,c as l,a as e,x as m,y as G,b as d,n as u,F as V,r as $,z as K,t as p,A as w,u as a,R as k,B as O,T as q,p as E,f as A,e as s}from"./index-DMWZCTlx.js";import{u as J}from"./settings-DXLXVT8l.js";import{_ as Q}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-C75dpm4L.js";import{u as W}from"./useConfirmDialog-BdcqQTU3.js";const X={class:"min-h-screen"},Y={class:"flex min-h-screen flex-col lg:flex-row"},ee={key:0,class:"text-base font-semibold text-foreground"},te={key:0,class:"px-3 pb-2 text-xs uppercase tracking-[0.28em] text-muted-foreground"},re={class:"space-y-1"},oe={"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},se=["d"],ne={key:0,class:"flex-1 min-w-0 truncate"},le={key:1,class:"ml-auto text-xs opacity-0 transition-opacity group-hover:opacity-100"},ae={class:"mt-auto border-t border-border px-6 py-3 lg:py-4"},ie={key:0,class:"rounded-2xl bg-secondary/60 p-3"},de=["title"],ue={class:"min-w-0 flex-1 overflow-hidden lg:ml-0"},pe={class:"min-w-0 flex flex-col gap-4 border-b border-border bg-card/70 px-6 py-5 backdrop-blur lg:flex-row lg:items-center lg:justify-between lg:px-10"},ce={class:"flex items-center gap-3"},xe={class:"text-xl font-semibold text-foreground lg:text-2xl"},fe={class:"flex flex-wrap items-center gap-3"},me={class:"h-full overflow-y-auto overflow-x-hidden bg-card/70 px-4 pb-10 pt-6 backdrop-blur lg:px-10 lg:pt-10"},be={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ge={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},ve={class:"flex items-center justify-between"},he={class:"mt-4 space-y-3 text-sm"},ye={class:"mt-1 flex items-start gap-2"},we={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ke={class:"mt-1 flex items-start gap-2"},_e={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ze={class:"mt-1 flex items-start gap-2"},Ce={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},He={class:"mt-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground"},Me={class:"flex flex-wrap gap-2 text-foreground"},Se={class:"mt-1 flex items-start gap-2"},Ve={class:"min-w-0 flex-1 rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},$e={class:"mt-6 flex items-center justify-end"},Ie=F({__name:"AppShell",setup(Ae){const L=E(),b=Z(),j=U(),c=J(),x=y(!1),o=y(!1),i=W(),g=y(!1),_=[{path:"/",label:"概览",icon:"M4 4h7v7H4V4zm9 0h7v4h-7V4zm0 6h7v10h-7V10zM4 13h7v7H4v-7z"},{path:"/accounts",label:"账号管理",icon:"M12 12a3.5 3.5 0 1 0-3.5-3.5A3.5 3.5 0 0 0 12 12zm0 2c-4.1 0-7.5 2.2-7.5 5v1h15v-1c0-2.8-3.4-5-7.5-5z"},{path:"/settings",label:"系统设置",icon:"M4 6h10v2H4V6zm12 0h4v2h-4V6zM4 11h6v2H4v-2zm8 0h8v2h-8v-2zM4 16h10v2H4v-2zm12 0h4v2h-4v-2z"},{path:"/monitor",label:"监控状态",icon:"M3 12h4l2-4 4 8 3-6h5v2h-4l-4 8-4-8-2 4H3v-2z"},{path:"/logs",label:"运行日志",icon:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h10v2H4v-2z"},{path:"/docs",label:"文档中心",icon:"M6 3h9l4 4v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm8 1.5V8h3.5L14 4.5zM8 11h8v2H8v-2zm0 4h8v2H8v-2z"}],B=f(()=>_.find(t=>t.path===b.path)?.label||"概览"),D=n=>{const r=`transition-colors ${o.value?"px-2 justify-center gap-0":"px-3 gap-3"}`;return b.path===n?`${r} bg-primary text-primary-foreground`:`${r} text-muted-foreground hover:bg-accent hover:text-accent-foreground`},I=n=>b.path===n?"bg-primary-foreground/15 text-primary-foreground border-primary-foreground/40":"bg-secondary text-muted-foreground group-hover:text-accent-foreground",v=f(()=>(c.settings?.basic?.base_url||""||window.location.origin).replace(/\/$/,"")),z=f(()=>`${v.value}/v1`),C=f(()=>`${v.value}/v1/chat/completions`),H=f(()=>c.settings?.basic?.api_key||"未设置"),T=["gemini-auto","gemini-2.5-flash","gemini-2.5-pro","gemini-3-flash-preview","gemini-3-pro-preview"];S(()=>b.path,()=>{x.value=!1});const M=localStorage.getItem("sidebar-collapsed");M&&(o.value=M==="true"),S(o,n=>{localStorage.setItem("sidebar-collapsed",n?"true":"false")});async function N(){await i.ask({title:"退出登录",message:"确定退出管理控制台吗?"})&&(await j.logout(),L.push({name:"login"}))}function P(){window.location.reload()}async function R(){g.value=!0,!c.settings&&!c.isLoading&&await c.loadSettings()}async function h(n){if(n)try{await navigator.clipboard.writeText(n)}catch(t){console.error("Copy failed",t)}}return(n,t)=>(s(),l("div",X,[e("div",Y,[x.value?(s(),l("div",{key:0,class:"fixed inset-0 z-30 bg-black/20 backdrop-blur-sm lg:hidden",onClick:t[0]||(t[0]=r=>x.value=!1)})):d("",!0),e("aside",{class:u(["fixed inset-y-0 left-0 z-40 w-72 -translate-x-full bg-card/90 backdrop-blur-sm lg:backdrop-blur-none border-r border-border transition-[width,transform] duration-200 ease-out will-change-[transform] transform-gpu flex flex-col lg:static lg:translate-x-0 lg:bg-card/80 lg:border-b-0 lg:border-r lg:sticky lg:top-0 lg:h-screen",[{"translate-x-0":x.value,"w-20 lg:w-20":o.value}]])},[e("div",{class:u(["flex h-16 items-center justify-between px-6 pt-4 lg:h-20 lg:pt-5",o.value?"justify-center px-0":""])},[e("div",{class:u(["flex items-center gap-2",o.value?"gap-0 justify-center w-full":""])},[t[9]||(t[9]=e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"text-foreground transition-colors hover:text-primary","aria-label":"GitHub"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-6 w-6",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})])],-1)),o.value?d("",!0):(s(),l("span",ee,"Gemini Business2API"))],2)],2),e("nav",{class:u(["pb-4 pt-4 lg:pt-6 flex-1 overflow-y-auto",o.value?"px-2":"px-3"])},[o.value?d("",!0):(s(),l("p",te," 导航 ")),e("div",re,[(s(),l(V,null,$(_,r=>m(a(k),{key:r.path,to:r.path,class:u(["group flex items-center rounded-2xl py-2 text-sm font-medium transition-colors overflow-hidden",D(r.path)]),title:o.value?r.label:void 0},{default:w(()=>[e("span",{class:u(["inline-flex h-9 w-9 items-center justify-center rounded-2xl border border-border",I(r.path)])},[(s(),l("svg",oe,[e("path",{d:r.icon},null,8,se)]))],2),o.value?d("",!0):(s(),l("span",ne,p(r.label),1)),o.value?d("",!0):(s(),l("span",le," 进入 "))]),_:2},1032,["to","class","title"])),64))])],2),e("div",ae,[o.value?d("",!0):(s(),l("div",ie,[...t[10]||(t[10]=[e("p",{class:"text-xs tracking-[0.12em] text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-1 transition-colors hover:text-foreground"}," gemini-business2api "),e("span",null," · 声明")],-1),e("p",{class:"mt-2 text-xs text-muted-foreground"}," 本项目仅限学习与研究用途,禁止用于商业用途。请保留本声明、原作者信息与开源来源。 ",-1)])])),e("div",{class:u(["mt-4 flex items-center gap-3",o.value?"justify-center":""])},[o.value?d("",!0):(s(),l("button",{key:0,onClick:N,class:"flex-1 rounded-2xl border border-border bg-background px-4 py-3 text-sm font-medium text-muted-foreground transition-colors hover:border-destructive/40 hover:text-destructive"}," 退出登录 ")),e("button",{class:"h-10 w-10 shrink-0 items-center justify-center rounded-2xl border border-border text-muted-foreground transition-all hover:border-primary hover:text-primary flex",onClick:t[1]||(t[1]=r=>o.value=!o.value),title:o.value?"展开侧边栏":"收起侧边栏"},[...t[11]||(t[11]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4 shrink-0",fill:"currentColor"},[e("path",{d:"M6 4h2v16H6V4zm4 4h8v2h-8V8zm0 6h8v2h-8v-2z"})],-1)])],8,de)],2)])],2),e("main",ue,[e("header",pe,[e("div",ce,[e("button",{class:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-border text-foreground transition-colors hover:border-primary hover:text-primary lg:hidden",onClick:t[2]||(t[2]=r=>x.value=!0),"aria-label":"打开导航"},[...t[12]||(t[12]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},[e("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])]),t[13]||(t[13]=K('',1)),e("h2",xe,p(B.value),1)]),e("div",fe,[e("button",{onClick:P,class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",title:"刷新"}," 刷新 "),e("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:R}," 接口信息 "),m(a(k),{to:"/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[14]||(t[14]=[A(" 状态监控 ",-1)])]),_:1}),m(a(k),{to:"/public/logs",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[15]||(t[15]=[A(" 公开日志 ",-1)])]),_:1})])]),e("div",me,[m(a(O))])])]),m(Q,{open:a(i).open.value,title:a(i).title.value,message:a(i).message.value,"confirm-text":a(i).confirmText.value,"cancel-text":a(i).cancelText.value,onConfirm:a(i).confirm,onCancel:a(i).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(s(),G(q,{to:"body"},[g.value?(s(),l("div",be,[e("div",ge,[e("div",ve,[t[16]||(t[16]=e("p",{class:"text-sm font-medium text-foreground"},"API 接口",-1)),e("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:t[3]||(t[3]=r=>g.value=!1)}," 关闭 ")]),t[22]||(t[22]=e("p",{class:"mt-2 text-xs text-muted-foreground"},"根据客户端选择对应接口",-1)),e("div",he,[e("div",null,[t[17]||(t[17]=e("p",{class:"text-xs text-muted-foreground"},"基础端点",-1)),e("div",ye,[e("p",we,p(v.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[4]||(t[4]=r=>h(v.value))}," 复制 ")])]),e("div",null,[t[18]||(t[18]=e("p",{class:"text-xs text-muted-foreground"},"SDK 接口",-1)),e("div",ke,[e("p",_e,p(z.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[5]||(t[5]=r=>h(z.value))}," 复制 ")])]),e("div",null,[t[19]||(t[19]=e("p",{class:"text-xs text-muted-foreground"},"完整接口",-1)),e("div",ze,[e("p",Ce,p(C.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[6]||(t[6]=r=>h(C.value))}," 复制 ")])]),e("div",null,[t[20]||(t[20]=e("p",{class:"text-xs text-muted-foreground"},"支持模型",-1)),e("div",He,[e("div",Me,[(s(),l(V,null,$(T,r=>e("span",{key:r,class:"rounded-full border border-border px-2 py-0.5 text-[11px]"},p(r),1)),64))])])]),e("div",null,[t[21]||(t[21]=e("p",{class:"text-xs text-muted-foreground"},"API 密钥",-1)),e("div",Se,[e("p",Ve,p(H.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[7]||(t[7]=r=>h(H.value))}," 复制 ")])])]),e("div",$e,[e("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:t[8]||(t[8]=r=>g.value=!1)}," 知道了 ")])])])):d("",!0)]))]))}});export{Ie as default}; diff --git a/static/assets/AppShell-B2wCSsyk.js b/static/assets/AppShell-B2wCSsyk.js new file mode 100644 index 0000000000000000000000000000000000000000..d7379bf34566885c1ce90bf37afae393bba86954 --- /dev/null +++ b/static/assets/AppShell-B2wCSsyk.js @@ -0,0 +1 @@ +import{d as F,l as U,h as y,i as f,q as Z,s as S,c as l,a as e,x as m,y as G,b as d,n as u,F as V,r as $,z as K,t as p,A as w,u as a,R as k,B as O,T as q,p as E,f as A,e as s}from"./index-Babp7OwB.js";import{u as J}from"./settings-AxgaqgWn.js";import{_ as Q}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-LOlIelGk.js";import{u as W}from"./useConfirmDialog-CVbCTmLz.js";const X={class:"min-h-screen"},Y={class:"flex min-h-screen flex-col lg:flex-row"},ee={key:0,class:"text-base font-semibold text-foreground"},te={key:0,class:"px-3 pb-2 text-xs uppercase tracking-[0.28em] text-muted-foreground"},re={class:"space-y-1"},oe={"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},se=["d"],ne={key:0,class:"flex-1 min-w-0 truncate"},le={key:1,class:"ml-auto text-xs opacity-0 transition-opacity group-hover:opacity-100"},ae={class:"mt-auto border-t border-border px-6 py-3 lg:py-4"},ie={key:0,class:"rounded-2xl bg-secondary/60 p-3"},de=["title"],ue={class:"min-w-0 flex-1 overflow-hidden lg:ml-0"},pe={class:"min-w-0 flex flex-col gap-4 border-b border-border bg-card/70 px-6 py-5 backdrop-blur lg:flex-row lg:items-center lg:justify-between lg:px-10"},ce={class:"flex items-center gap-3"},xe={class:"text-xl font-semibold text-foreground lg:text-2xl"},fe={class:"flex flex-wrap items-center gap-3"},me={class:"h-full overflow-y-auto overflow-x-hidden bg-card/70 px-4 pb-10 pt-6 backdrop-blur lg:px-10 lg:pt-10"},be={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ge={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},ve={class:"flex items-center justify-between"},he={class:"mt-4 space-y-3 text-sm"},ye={class:"mt-1 flex items-start gap-2"},we={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ke={class:"mt-1 flex items-start gap-2"},_e={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ze={class:"mt-1 flex items-start gap-2"},Ce={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},He={class:"mt-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground"},Me={class:"flex flex-wrap gap-2 text-foreground"},Se={class:"mt-1 flex items-start gap-2"},Ve={class:"min-w-0 flex-1 rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},$e={class:"mt-6 flex items-center justify-end"},Ie=F({__name:"AppShell",setup(Ae){const L=E(),b=Z(),j=U(),c=J(),x=y(!1),o=y(!1),i=W(),g=y(!1),_=[{path:"/",label:"概览",icon:"M4 4h7v7H4V4zm9 0h7v4h-7V4zm0 6h7v10h-7V10zM4 13h7v7H4v-7z"},{path:"/accounts",label:"账号管理",icon:"M12 12a3.5 3.5 0 1 0-3.5-3.5A3.5 3.5 0 0 0 12 12zm0 2c-4.1 0-7.5 2.2-7.5 5v1h15v-1c0-2.8-3.4-5-7.5-5z"},{path:"/settings",label:"系统设置",icon:"M4 6h10v2H4V6zm12 0h4v2h-4V6zM4 11h6v2H4v-2zm8 0h8v2h-8v-2zM4 16h10v2H4v-2zm12 0h4v2h-4v-2z"},{path:"/monitor",label:"监控状态",icon:"M3 12h4l2-4 4 8 3-6h5v2h-4l-4 8-4-8-2 4H3v-2z"},{path:"/logs",label:"运行日志",icon:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h10v2H4v-2z"},{path:"/docs",label:"文档中心",icon:"M6 3h9l4 4v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm8 1.5V8h3.5L14 4.5zM8 11h8v2H8v-2zm0 4h8v2H8v-2z"}],B=f(()=>_.find(t=>t.path===b.path)?.label||"概览"),D=n=>{const r=`transition-colors ${o.value?"px-2 justify-center gap-0":"px-3 gap-3"}`;return b.path===n?`${r} bg-primary text-primary-foreground`:`${r} text-muted-foreground hover:bg-accent hover:text-accent-foreground`},I=n=>b.path===n?"bg-primary-foreground/15 text-primary-foreground border-primary-foreground/40":"bg-secondary text-muted-foreground group-hover:text-accent-foreground",v=f(()=>(c.settings?.basic?.base_url||""||window.location.origin).replace(/\/$/,"")),z=f(()=>`${v.value}/v1`),C=f(()=>`${v.value}/v1/chat/completions`),H=f(()=>c.settings?.basic?.api_key||"未设置"),T=["gemini-auto","gemini-2.5-flash","gemini-2.5-pro","gemini-3-flash-preview","gemini-3-pro-preview"];S(()=>b.path,()=>{x.value=!1});const M=localStorage.getItem("sidebar-collapsed");M&&(o.value=M==="true"),S(o,n=>{localStorage.setItem("sidebar-collapsed",n?"true":"false")});async function N(){await i.ask({title:"退出登录",message:"确定退出管理控制台吗?"})&&(await j.logout(),L.push({name:"login"}))}function P(){window.location.reload()}async function R(){g.value=!0,!c.settings&&!c.isLoading&&await c.loadSettings()}async function h(n){if(n)try{await navigator.clipboard.writeText(n)}catch(t){console.error("Copy failed",t)}}return(n,t)=>(s(),l("div",X,[e("div",Y,[x.value?(s(),l("div",{key:0,class:"fixed inset-0 z-30 bg-black/20 backdrop-blur-sm lg:hidden",onClick:t[0]||(t[0]=r=>x.value=!1)})):d("",!0),e("aside",{class:u(["fixed inset-y-0 left-0 z-40 w-72 -translate-x-full bg-card/90 backdrop-blur-sm lg:backdrop-blur-none border-r border-border transition-transform duration-200 ease-out will-change-[transform] transform-gpu flex flex-col lg:static lg:translate-x-0 lg:bg-card/80 lg:border-b-0 lg:border-r lg:sticky lg:top-0 lg:h-screen",[{"translate-x-0":x.value,"w-20 lg:w-20":o.value}]])},[e("div",{class:u(["flex h-16 items-center justify-between px-6 pt-4 lg:h-20 lg:pt-5",o.value?"justify-center px-0":""])},[e("div",{class:u(["flex items-center gap-2",o.value?"gap-0 justify-center w-full":""])},[t[9]||(t[9]=e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"text-foreground transition-colors hover:text-primary","aria-label":"GitHub"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-6 w-6",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})])],-1)),o.value?d("",!0):(s(),l("span",ee,"Gemini Business2API"))],2)],2),e("nav",{class:u(["pb-4 pt-4 lg:pt-6 flex-1 overflow-y-auto",o.value?"px-2":"px-3"])},[o.value?d("",!0):(s(),l("p",te," 导航 ")),e("div",re,[(s(),l(V,null,$(_,r=>m(a(k),{key:r.path,to:r.path,class:u(["group flex items-center rounded-2xl py-2 text-sm font-medium transition-colors overflow-hidden",D(r.path)]),title:o.value?r.label:void 0},{default:w(()=>[e("span",{class:u(["inline-flex h-9 w-9 items-center justify-center rounded-2xl border border-border",I(r.path)])},[(s(),l("svg",oe,[e("path",{d:r.icon},null,8,se)]))],2),o.value?d("",!0):(s(),l("span",ne,p(r.label),1)),o.value?d("",!0):(s(),l("span",le," 进入 "))]),_:2},1032,["to","class","title"])),64))])],2),e("div",ae,[o.value?d("",!0):(s(),l("div",ie,[...t[10]||(t[10]=[e("p",{class:"text-xs tracking-[0.12em] text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-1 transition-colors hover:text-foreground"}," gemini-business2api "),e("span",null," · 声明")],-1),e("p",{class:"mt-2 text-xs text-muted-foreground"}," 本项目仅限学习与研究用途,禁止用于商业用途。请保留本声明、原作者信息与开源来源。 ",-1)])])),e("div",{class:u(["mt-4 flex items-center gap-3",o.value?"justify-center":""])},[o.value?d("",!0):(s(),l("button",{key:0,onClick:N,class:"flex-1 rounded-2xl border border-border bg-background px-4 py-3 text-sm font-medium text-muted-foreground transition-colors hover:border-destructive/40 hover:text-destructive"}," 退出登录 ")),e("button",{class:"h-10 w-10 shrink-0 items-center justify-center rounded-2xl border border-border text-muted-foreground transition-all hover:border-primary hover:text-primary flex",onClick:t[1]||(t[1]=r=>o.value=!o.value),title:o.value?"展开侧边栏":"收起侧边栏"},[...t[11]||(t[11]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4 shrink-0",fill:"currentColor"},[e("path",{d:"M6 4h2v16H6V4zm4 4h8v2h-8V8zm0 6h8v2h-8v-2z"})],-1)])],8,de)],2)])],2),e("main",ue,[e("header",pe,[e("div",ce,[e("button",{class:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-border text-foreground transition-colors hover:border-primary hover:text-primary lg:hidden",onClick:t[2]||(t[2]=r=>x.value=!0),"aria-label":"打开导航"},[...t[12]||(t[12]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},[e("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])]),t[13]||(t[13]=K('',1)),e("h2",xe,p(B.value),1)]),e("div",fe,[e("button",{onClick:P,class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",title:"刷新"}," 刷新 "),e("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:R}," 接口信息 "),m(a(k),{to:"/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[14]||(t[14]=[A(" 状态监控 ",-1)])]),_:1}),m(a(k),{to:"/public/logs",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[15]||(t[15]=[A(" 公开日志 ",-1)])]),_:1})])]),e("div",me,[m(a(O))])])]),m(Q,{open:a(i).open.value,title:a(i).title.value,message:a(i).message.value,"confirm-text":a(i).confirmText.value,"cancel-text":a(i).cancelText.value,onConfirm:a(i).confirm,onCancel:a(i).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(s(),G(q,{to:"body"},[g.value?(s(),l("div",be,[e("div",ge,[e("div",ve,[t[16]||(t[16]=e("p",{class:"text-sm font-medium text-foreground"},"API 接口",-1)),e("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:t[3]||(t[3]=r=>g.value=!1)}," 关闭 ")]),t[22]||(t[22]=e("p",{class:"mt-2 text-xs text-muted-foreground"},"根据客户端选择对应接口",-1)),e("div",he,[e("div",null,[t[17]||(t[17]=e("p",{class:"text-xs text-muted-foreground"},"基础端点",-1)),e("div",ye,[e("p",we,p(v.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[4]||(t[4]=r=>h(v.value))}," 复制 ")])]),e("div",null,[t[18]||(t[18]=e("p",{class:"text-xs text-muted-foreground"},"SDK 接口",-1)),e("div",ke,[e("p",_e,p(z.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[5]||(t[5]=r=>h(z.value))}," 复制 ")])]),e("div",null,[t[19]||(t[19]=e("p",{class:"text-xs text-muted-foreground"},"完整接口",-1)),e("div",ze,[e("p",Ce,p(C.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[6]||(t[6]=r=>h(C.value))}," 复制 ")])]),e("div",null,[t[20]||(t[20]=e("p",{class:"text-xs text-muted-foreground"},"支持模型",-1)),e("div",He,[e("div",Me,[(s(),l(V,null,$(T,r=>e("span",{key:r,class:"rounded-full border border-border px-2 py-0.5 text-[11px]"},p(r),1)),64))])])]),e("div",null,[t[21]||(t[21]=e("p",{class:"text-xs text-muted-foreground"},"API 密钥",-1)),e("div",Se,[e("p",Ve,p(H.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[7]||(t[7]=r=>h(H.value))}," 复制 ")])])]),e("div",$e,[e("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:t[8]||(t[8]=r=>g.value=!1)}," 知道了 ")])])])):d("",!0)]))]))}});export{Ie as default}; diff --git a/static/assets/AppShell-B58juTD2.js b/static/assets/AppShell-B58juTD2.js new file mode 100644 index 0000000000000000000000000000000000000000..6563607b139268f0d571c162d06e949b4eaf5fe7 --- /dev/null +++ b/static/assets/AppShell-B58juTD2.js @@ -0,0 +1 @@ +import{d as F,l as U,h as y,i as f,z as Z,A as S,c as l,a as e,q as m,m as G,b as d,n as u,F as V,r as $,B as K,t as p,s as w,u as a,R as k,C as O,x as q,y as E,f as A,e as s}from"./index-DL4Fp3an.js";import{u as J}from"./settings-oZBOK-or.js";import{_ as Q}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-CWs1-jf0.js";import{u as W}from"./useConfirmDialog-MThy7PVA.js";const X={class:"min-h-screen"},Y={class:"flex min-h-screen flex-col lg:flex-row"},ee={key:0,class:"text-base font-semibold text-foreground"},te={key:0,class:"px-3 pb-2 text-xs uppercase tracking-[0.28em] text-muted-foreground"},re={class:"space-y-1"},oe={"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},se=["d"],ne={key:0,class:"flex-1 min-w-0 truncate"},le={key:1,class:"ml-auto text-xs opacity-0 transition-opacity group-hover:opacity-100"},ae={class:"mt-auto border-t border-border px-6 py-3 lg:py-4"},ie={key:0,class:"rounded-2xl bg-secondary/60 p-3"},de=["title"],ue={class:"min-w-0 flex-1 overflow-hidden lg:ml-0"},pe={class:"min-w-0 flex flex-col gap-4 border-b border-border bg-card/70 px-6 py-5 backdrop-blur lg:flex-row lg:items-center lg:justify-between lg:px-10"},ce={class:"flex items-center gap-3"},xe={class:"text-xl font-semibold text-foreground lg:text-2xl"},fe={class:"flex flex-wrap items-center gap-3"},me={class:"h-full overflow-y-auto overflow-x-hidden bg-card/70 px-4 pb-10 pt-6 backdrop-blur lg:px-10 lg:pt-10"},be={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ge={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},ve={class:"flex items-center justify-between"},he={class:"mt-4 space-y-3 text-sm"},ye={class:"mt-1 flex items-start gap-2"},we={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ke={class:"mt-1 flex items-start gap-2"},_e={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ze={class:"mt-1 flex items-start gap-2"},Ce={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},He={class:"mt-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground"},Me={class:"flex flex-wrap gap-2 text-foreground"},Se={class:"mt-1 flex items-start gap-2"},Ve={class:"min-w-0 flex-1 rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},$e={class:"mt-6 flex items-center justify-end"},Ie=F({__name:"AppShell",setup(Ae){const L=E(),b=Z(),j=U(),c=J(),x=y(!1),o=y(!1),i=W(),g=y(!1),_=[{path:"/",label:"概览",icon:"M4 4h7v7H4V4zm9 0h7v4h-7V4zm0 6h7v10h-7V10zM4 13h7v7H4v-7z"},{path:"/accounts",label:"账号管理",icon:"M12 12a3.5 3.5 0 1 0-3.5-3.5A3.5 3.5 0 0 0 12 12zm0 2c-4.1 0-7.5 2.2-7.5 5v1h15v-1c0-2.8-3.4-5-7.5-5z"},{path:"/settings",label:"系统设置",icon:"M4 6h10v2H4V6zm12 0h4v2h-4V6zM4 11h6v2H4v-2zm8 0h8v2h-8v-2zM4 16h10v2H4v-2zm12 0h4v2h-4v-2z"},{path:"/monitor",label:"监控状态",icon:"M3 12h4l2-4 4 8 3-6h5v2h-4l-4 8-4-8-2 4H3v-2z"},{path:"/logs",label:"运行日志",icon:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h10v2H4v-2z"},{path:"/docs",label:"文档中心",icon:"M6 3h9l4 4v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm8 1.5V8h3.5L14 4.5zM8 11h8v2H8v-2zm0 4h8v2H8v-2z"}],B=f(()=>_.find(t=>t.path===b.path)?.label||"概览"),D=n=>{const r=`transition-colors ${o.value?"px-2 justify-center gap-0":"px-3 gap-3"}`;return b.path===n?`${r} bg-primary text-primary-foreground`:`${r} text-muted-foreground hover:bg-accent hover:text-accent-foreground`},I=n=>b.path===n?"bg-primary-foreground/15 text-primary-foreground border-primary-foreground/40":"bg-secondary text-muted-foreground group-hover:text-accent-foreground",v=f(()=>(c.settings?.basic?.base_url||""||window.location.origin).replace(/\/$/,"")),z=f(()=>`${v.value}/v1`),C=f(()=>`${v.value}/v1/chat/completions`),H=f(()=>c.settings?.basic?.api_key||"未设置"),T=["gemini-auto","gemini-2.5-flash","gemini-2.5-pro","gemini-3-flash-preview","gemini-3-pro-preview"];S(()=>b.path,()=>{x.value=!1});const M=localStorage.getItem("sidebar-collapsed");M&&(o.value=M==="true"),S(o,n=>{localStorage.setItem("sidebar-collapsed",n?"true":"false")});async function N(){await i.ask({title:"退出登录",message:"确定退出管理控制台吗?"})&&(await j.logout(),L.push({name:"login"}))}function P(){window.location.reload()}async function R(){g.value=!0,!c.settings&&!c.isLoading&&await c.loadSettings()}async function h(n){if(n)try{await navigator.clipboard.writeText(n)}catch(t){console.error("Copy failed",t)}}return(n,t)=>(s(),l("div",X,[e("div",Y,[x.value?(s(),l("div",{key:0,class:"fixed inset-0 z-30 bg-black/20 backdrop-blur-sm lg:hidden",onClick:t[0]||(t[0]=r=>x.value=!1)})):d("",!0),e("aside",{class:u(["fixed inset-y-0 left-0 z-40 w-72 -translate-x-full bg-card/90 backdrop-blur-sm lg:backdrop-blur-none border-r border-border transition-[width,transform] duration-200 ease-out will-change-[transform] transform-gpu flex flex-col lg:static lg:translate-x-0 lg:bg-card/80 lg:border-b-0 lg:border-r lg:sticky lg:top-0 lg:h-screen",[{"translate-x-0":x.value,"w-20 lg:w-20":o.value}]])},[e("div",{class:u(["flex h-16 items-center justify-between px-6 pt-4 lg:h-20 lg:pt-5",o.value?"justify-center px-0":""])},[e("div",{class:u(["flex items-center gap-2",o.value?"gap-0 justify-center w-full":""])},[t[9]||(t[9]=e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"text-foreground transition-colors hover:text-primary","aria-label":"GitHub"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-6 w-6",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})])],-1)),o.value?d("",!0):(s(),l("span",ee,"Gemini Business2API"))],2)],2),e("nav",{class:u(["pb-4 pt-4 lg:pt-6 flex-1 overflow-y-auto",o.value?"px-2":"px-3"])},[o.value?d("",!0):(s(),l("p",te," 导航 ")),e("div",re,[(s(),l(V,null,$(_,r=>m(a(k),{key:r.path,to:r.path,class:u(["group flex items-center rounded-2xl py-2 text-sm font-medium transition-colors overflow-hidden",D(r.path)]),title:o.value?r.label:void 0},{default:w(()=>[e("span",{class:u(["inline-flex h-9 w-9 items-center justify-center rounded-2xl border border-border",I(r.path)])},[(s(),l("svg",oe,[e("path",{d:r.icon},null,8,se)]))],2),o.value?d("",!0):(s(),l("span",ne,p(r.label),1)),o.value?d("",!0):(s(),l("span",le," 进入 "))]),_:2},1032,["to","class","title"])),64))])],2),e("div",ae,[o.value?d("",!0):(s(),l("div",ie,[...t[10]||(t[10]=[e("p",{class:"text-xs tracking-[0.12em] text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-1 transition-colors hover:text-foreground"}," gemini-business2api "),e("span",null," · 声明")],-1),e("p",{class:"mt-2 text-xs text-muted-foreground"}," 本项目仅限学习与研究用途,禁止用于商业用途。请保留本声明、原作者信息与开源来源。 ",-1)])])),e("div",{class:u(["mt-4 flex items-center gap-3",o.value?"justify-center":""])},[o.value?d("",!0):(s(),l("button",{key:0,onClick:N,class:"flex-1 rounded-2xl border border-border bg-background px-4 py-3 text-sm font-medium text-muted-foreground transition-colors hover:border-destructive/40 hover:text-destructive"}," 退出登录 ")),e("button",{class:"h-10 w-10 shrink-0 items-center justify-center rounded-2xl border border-border text-muted-foreground transition-all hover:border-primary hover:text-primary flex",onClick:t[1]||(t[1]=r=>o.value=!o.value),title:o.value?"展开侧边栏":"收起侧边栏"},[...t[11]||(t[11]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4 shrink-0",fill:"currentColor"},[e("path",{d:"M6 4h2v16H6V4zm4 4h8v2h-8V8zm0 6h8v2h-8v-2z"})],-1)])],8,de)],2)])],2),e("main",ue,[e("header",pe,[e("div",ce,[e("button",{class:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-border text-foreground transition-colors hover:border-primary hover:text-primary lg:hidden",onClick:t[2]||(t[2]=r=>x.value=!0),"aria-label":"打开导航"},[...t[12]||(t[12]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},[e("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])]),t[13]||(t[13]=K('',1)),e("h2",xe,p(B.value),1)]),e("div",fe,[e("button",{onClick:P,class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",title:"刷新"}," 刷新 "),e("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:R}," 接口信息 "),m(a(k),{to:"/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[14]||(t[14]=[A(" 状态监控 ",-1)])]),_:1}),m(a(k),{to:"/public/logs",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[15]||(t[15]=[A(" 公开日志 ",-1)])]),_:1})])]),e("div",me,[m(a(O))])])]),m(Q,{open:a(i).open.value,title:a(i).title.value,message:a(i).message.value,"confirm-text":a(i).confirmText.value,"cancel-text":a(i).cancelText.value,onConfirm:a(i).confirm,onCancel:a(i).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(s(),G(q,{to:"body"},[g.value?(s(),l("div",be,[e("div",ge,[e("div",ve,[t[16]||(t[16]=e("p",{class:"text-sm font-medium text-foreground"},"API 接口",-1)),e("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:t[3]||(t[3]=r=>g.value=!1)}," 关闭 ")]),t[22]||(t[22]=e("p",{class:"mt-2 text-xs text-muted-foreground"},"根据客户端选择对应接口",-1)),e("div",he,[e("div",null,[t[17]||(t[17]=e("p",{class:"text-xs text-muted-foreground"},"基础端点",-1)),e("div",ye,[e("p",we,p(v.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[4]||(t[4]=r=>h(v.value))}," 复制 ")])]),e("div",null,[t[18]||(t[18]=e("p",{class:"text-xs text-muted-foreground"},"SDK 接口",-1)),e("div",ke,[e("p",_e,p(z.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[5]||(t[5]=r=>h(z.value))}," 复制 ")])]),e("div",null,[t[19]||(t[19]=e("p",{class:"text-xs text-muted-foreground"},"完整接口",-1)),e("div",ze,[e("p",Ce,p(C.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[6]||(t[6]=r=>h(C.value))}," 复制 ")])]),e("div",null,[t[20]||(t[20]=e("p",{class:"text-xs text-muted-foreground"},"支持模型",-1)),e("div",He,[e("div",Me,[(s(),l(V,null,$(T,r=>e("span",{key:r,class:"rounded-full border border-border px-2 py-0.5 text-[11px]"},p(r),1)),64))])])]),e("div",null,[t[21]||(t[21]=e("p",{class:"text-xs text-muted-foreground"},"API 密钥",-1)),e("div",Se,[e("p",Ve,p(H.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[7]||(t[7]=r=>h(H.value))}," 复制 ")])])]),e("div",$e,[e("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:t[8]||(t[8]=r=>g.value=!1)}," 知道了 ")])])])):d("",!0)]))]))}});export{Ie as default}; diff --git a/static/assets/AppShell-BCoBt3vb.js b/static/assets/AppShell-BCoBt3vb.js new file mode 100644 index 0000000000000000000000000000000000000000..295f7ace1a233e2a07e49d862b1b3803a8cf7c28 --- /dev/null +++ b/static/assets/AppShell-BCoBt3vb.js @@ -0,0 +1 @@ +import{d as F,l as U,h as y,i as f,y as Z,z as S,c as l,a as e,p as m,m as G,b as d,n as u,F as V,r as $,A as K,t as p,s as w,u as a,R as k,B as O,T as E,x as q,f as A,e as s}from"./index-Dul9zA0O.js";import{u as J}from"./settings-GoayIAiR.js";import{_ as Q}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-Dx9N8w52.js";import{u as W}from"./useConfirmDialog-Bh7Fog50.js";const X={class:"min-h-screen"},Y={class:"flex min-h-screen flex-col lg:flex-row"},ee={key:0,class:"text-base font-semibold text-foreground"},te={key:0,class:"px-3 pb-2 text-xs uppercase tracking-[0.28em] text-muted-foreground"},re={class:"space-y-1"},oe={"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},se=["d"],ne={key:0,class:"flex-1 min-w-0 truncate"},le={key:1,class:"ml-auto text-xs opacity-0 transition-opacity group-hover:opacity-100"},ae={class:"mt-auto border-t border-border px-6 py-3 lg:py-4"},ie={key:0,class:"rounded-2xl bg-secondary/60 p-3"},de=["title"],ue={class:"min-w-0 flex-1 overflow-hidden lg:ml-0"},pe={class:"min-w-0 flex flex-col gap-4 border-b border-border bg-card/70 px-6 py-5 backdrop-blur lg:flex-row lg:items-center lg:justify-between lg:px-10"},ce={class:"flex items-center gap-3"},xe={class:"text-xl font-semibold text-foreground lg:text-2xl"},fe={class:"flex flex-wrap items-center gap-3"},me={class:"h-full overflow-y-auto overflow-x-hidden bg-card/70 px-4 pb-10 pt-6 backdrop-blur lg:px-10 lg:pt-10"},be={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ge={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},ve={class:"flex items-center justify-between"},he={class:"mt-4 space-y-3 text-sm"},ye={class:"mt-1 flex items-start gap-2"},we={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ke={class:"mt-1 flex items-start gap-2"},_e={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ze={class:"mt-1 flex items-start gap-2"},Ce={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},He={class:"mt-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground"},Me={class:"flex flex-wrap gap-2 text-foreground"},Se={class:"mt-1 flex items-start gap-2"},Ve={class:"min-w-0 flex-1 rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},$e={class:"mt-6 flex items-center justify-end"},Ie=F({__name:"AppShell",setup(Ae){const L=q(),b=Z(),j=U(),c=J(),x=y(!1),o=y(!1),i=W(),g=y(!1),_=[{path:"/",label:"概览",icon:"M4 4h7v7H4V4zm9 0h7v4h-7V4zm0 6h7v10h-7V10zM4 13h7v7H4v-7z"},{path:"/accounts",label:"账号管理",icon:"M12 12a3.5 3.5 0 1 0-3.5-3.5A3.5 3.5 0 0 0 12 12zm0 2c-4.1 0-7.5 2.2-7.5 5v1h15v-1c0-2.8-3.4-5-7.5-5z"},{path:"/settings",label:"系统设置",icon:"M4 6h10v2H4V6zm12 0h4v2h-4V6zM4 11h6v2H4v-2zm8 0h8v2h-8v-2zM4 16h10v2H4v-2zm12 0h4v2h-4v-2z"},{path:"/monitor",label:"监控状态",icon:"M3 12h4l2-4 4 8 3-6h5v2h-4l-4 8-4-8-2 4H3v-2z"},{path:"/logs",label:"运行日志",icon:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h10v2H4v-2z"},{path:"/docs",label:"文档中心",icon:"M6 3h9l4 4v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm8 1.5V8h3.5L14 4.5zM8 11h8v2H8v-2zm0 4h8v2H8v-2z"}],B=f(()=>_.find(t=>t.path===b.path)?.label||"概览"),D=n=>{const r=`transition-colors ${o.value?"px-2 justify-center gap-0":"px-3 gap-3"}`;return b.path===n?`${r} bg-primary text-primary-foreground`:`${r} text-muted-foreground hover:bg-accent hover:text-accent-foreground`},I=n=>b.path===n?"bg-primary-foreground/15 text-primary-foreground border-primary-foreground/40":"bg-secondary text-muted-foreground group-hover:text-accent-foreground",v=f(()=>(c.settings?.basic?.base_url||""||window.location.origin).replace(/\/$/,"")),z=f(()=>`${v.value}/v1`),C=f(()=>`${v.value}/v1/chat/completions`),H=f(()=>c.settings?.basic?.api_key||"未设置"),T=["gemini-auto","gemini-2.5-flash","gemini-2.5-pro","gemini-3-flash-preview","gemini-3-pro-preview"];S(()=>b.path,()=>{x.value=!1});const M=localStorage.getItem("sidebar-collapsed");M&&(o.value=M==="true"),S(o,n=>{localStorage.setItem("sidebar-collapsed",n?"true":"false")});async function N(){await i.ask({title:"退出登录",message:"确定退出管理控制台吗?"})&&(await j.logout(),L.push({name:"login"}))}function P(){window.location.reload()}async function R(){g.value=!0,!c.settings&&!c.isLoading&&await c.loadSettings()}async function h(n){if(n)try{await navigator.clipboard.writeText(n)}catch(t){console.error("Copy failed",t)}}return(n,t)=>(s(),l("div",X,[e("div",Y,[x.value?(s(),l("div",{key:0,class:"fixed inset-0 z-30 bg-black/20 backdrop-blur-sm lg:hidden",onClick:t[0]||(t[0]=r=>x.value=!1)})):d("",!0),e("aside",{class:u(["fixed inset-y-0 left-0 z-40 w-72 -translate-x-full bg-card/90 backdrop-blur-sm lg:backdrop-blur-none border-r border-border transition-[width,transform] duration-200 ease-out will-change-[transform] transform-gpu flex flex-col lg:static lg:translate-x-0 lg:bg-card/80 lg:border-b-0 lg:border-r lg:sticky lg:top-0 lg:h-screen",[{"translate-x-0":x.value,"w-20 lg:w-20":o.value}]])},[e("div",{class:u(["flex h-16 items-center justify-between px-6 pt-4 lg:h-20 lg:pt-5",o.value?"justify-center px-0":""])},[e("div",{class:u(["flex items-center gap-2",o.value?"gap-0 justify-center w-full":""])},[t[9]||(t[9]=e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"text-foreground transition-colors hover:text-primary","aria-label":"GitHub"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-6 w-6",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})])],-1)),o.value?d("",!0):(s(),l("span",ee,"Gemini Business2API"))],2)],2),e("nav",{class:u(["pb-4 pt-4 lg:pt-6 flex-1 overflow-y-auto",o.value?"px-2":"px-3"])},[o.value?d("",!0):(s(),l("p",te," 导航 ")),e("div",re,[(s(),l(V,null,$(_,r=>m(a(k),{key:r.path,to:r.path,class:u(["group flex items-center rounded-2xl py-2 text-sm font-medium transition-colors overflow-hidden",D(r.path)]),title:o.value?r.label:void 0},{default:w(()=>[e("span",{class:u(["inline-flex h-9 w-9 items-center justify-center rounded-2xl border border-border",I(r.path)])},[(s(),l("svg",oe,[e("path",{d:r.icon},null,8,se)]))],2),o.value?d("",!0):(s(),l("span",ne,p(r.label),1)),o.value?d("",!0):(s(),l("span",le," 进入 "))]),_:2},1032,["to","class","title"])),64))])],2),e("div",ae,[o.value?d("",!0):(s(),l("div",ie,[...t[10]||(t[10]=[e("p",{class:"text-xs tracking-[0.12em] text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-1 transition-colors hover:text-foreground"}," gemini-business2api "),e("span",null," · 声明")],-1),e("p",{class:"mt-2 text-xs text-muted-foreground"}," 本项目仅限学习与研究用途,禁止用于商业用途。请保留本声明、原作者信息与开源来源。 ",-1)])])),e("div",{class:u(["mt-4 flex items-center gap-3",o.value?"justify-center":""])},[o.value?d("",!0):(s(),l("button",{key:0,onClick:N,class:"flex-1 rounded-2xl border border-border bg-background px-4 py-3 text-sm font-medium text-muted-foreground transition-colors hover:border-destructive/40 hover:text-destructive"}," 退出登录 ")),e("button",{class:"h-10 w-10 shrink-0 items-center justify-center rounded-2xl border border-border text-muted-foreground transition-all hover:border-primary hover:text-primary flex",onClick:t[1]||(t[1]=r=>o.value=!o.value),title:o.value?"展开侧边栏":"收起侧边栏"},[...t[11]||(t[11]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4 shrink-0",fill:"currentColor"},[e("path",{d:"M6 4h2v16H6V4zm4 4h8v2h-8V8zm0 6h8v2h-8v-2z"})],-1)])],8,de)],2)])],2),e("main",ue,[e("header",pe,[e("div",ce,[e("button",{class:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-border text-foreground transition-colors hover:border-primary hover:text-primary lg:hidden",onClick:t[2]||(t[2]=r=>x.value=!0),"aria-label":"打开导航"},[...t[12]||(t[12]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},[e("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])]),t[13]||(t[13]=K('',1)),e("h2",xe,p(B.value),1)]),e("div",fe,[e("button",{onClick:P,class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",title:"刷新"}," 刷新 "),e("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:R}," 接口信息 "),m(a(k),{to:"/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[14]||(t[14]=[A(" 状态监控 ",-1)])]),_:1}),m(a(k),{to:"/public/logs",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[15]||(t[15]=[A(" 公开日志 ",-1)])]),_:1})])]),e("div",me,[m(a(O))])])]),m(Q,{open:a(i).open.value,title:a(i).title.value,message:a(i).message.value,"confirm-text":a(i).confirmText.value,"cancel-text":a(i).cancelText.value,onConfirm:a(i).confirm,onCancel:a(i).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(s(),G(E,{to:"body"},[g.value?(s(),l("div",be,[e("div",ge,[e("div",ve,[t[16]||(t[16]=e("p",{class:"text-sm font-medium text-foreground"},"API 接口",-1)),e("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:t[3]||(t[3]=r=>g.value=!1)}," 关闭 ")]),t[22]||(t[22]=e("p",{class:"mt-2 text-xs text-muted-foreground"},"根据客户端选择对应接口",-1)),e("div",he,[e("div",null,[t[17]||(t[17]=e("p",{class:"text-xs text-muted-foreground"},"基础端点",-1)),e("div",ye,[e("p",we,p(v.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[4]||(t[4]=r=>h(v.value))}," 复制 ")])]),e("div",null,[t[18]||(t[18]=e("p",{class:"text-xs text-muted-foreground"},"SDK 接口",-1)),e("div",ke,[e("p",_e,p(z.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[5]||(t[5]=r=>h(z.value))}," 复制 ")])]),e("div",null,[t[19]||(t[19]=e("p",{class:"text-xs text-muted-foreground"},"完整接口",-1)),e("div",ze,[e("p",Ce,p(C.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[6]||(t[6]=r=>h(C.value))}," 复制 ")])]),e("div",null,[t[20]||(t[20]=e("p",{class:"text-xs text-muted-foreground"},"支持模型",-1)),e("div",He,[e("div",Me,[(s(),l(V,null,$(T,r=>e("span",{key:r,class:"rounded-full border border-border px-2 py-0.5 text-[11px]"},p(r),1)),64))])])]),e("div",null,[t[21]||(t[21]=e("p",{class:"text-xs text-muted-foreground"},"API 密钥",-1)),e("div",Se,[e("p",Ve,p(H.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[7]||(t[7]=r=>h(H.value))}," 复制 ")])])]),e("div",$e,[e("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:t[8]||(t[8]=r=>g.value=!1)}," 知道了 ")])])])):d("",!0)]))]))}});export{Ie as default}; diff --git a/static/assets/AppShell-BQVnOvTQ.js b/static/assets/AppShell-BQVnOvTQ.js new file mode 100644 index 0000000000000000000000000000000000000000..6c10b4339b9eaed77e991bceda61c7f1d568189d --- /dev/null +++ b/static/assets/AppShell-BQVnOvTQ.js @@ -0,0 +1 @@ +import{d as F,l as U,h as y,i as f,z as Z,A as S,c as l,a as e,p as m,m as G,b as d,n as u,F as V,r as $,B as K,t as p,s as w,u as a,R as k,C as O,x as E,y as q,f as A,e as s}from"./index-BRM37S6x.js";import{u as J}from"./settings-SJhBKmRs.js";import{_ as Q}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-C9Wgr_sd.js";import{u as W}from"./useConfirmDialog-BaiXrQSU.js";const X={class:"min-h-screen"},Y={class:"flex min-h-screen flex-col lg:flex-row"},ee={key:0,class:"text-base font-semibold text-foreground"},te={key:0,class:"px-3 pb-2 text-xs uppercase tracking-[0.28em] text-muted-foreground"},re={class:"space-y-1"},oe={"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},se=["d"],ne={key:0,class:"flex-1 min-w-0 truncate"},le={key:1,class:"ml-auto text-xs opacity-0 transition-opacity group-hover:opacity-100"},ae={class:"mt-auto border-t border-border px-6 py-3 lg:py-4"},ie={key:0,class:"rounded-2xl bg-secondary/60 p-3"},de=["title"],ue={class:"min-w-0 flex-1 overflow-hidden lg:ml-0"},pe={class:"min-w-0 flex flex-col gap-4 border-b border-border bg-card/70 px-6 py-5 backdrop-blur lg:flex-row lg:items-center lg:justify-between lg:px-10"},ce={class:"flex items-center gap-3"},xe={class:"text-xl font-semibold text-foreground lg:text-2xl"},fe={class:"flex flex-wrap items-center gap-3"},me={class:"h-full overflow-y-auto overflow-x-hidden bg-card/70 px-4 pb-10 pt-6 backdrop-blur lg:px-10 lg:pt-10"},be={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ge={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},ve={class:"flex items-center justify-between"},he={class:"mt-4 space-y-3 text-sm"},ye={class:"mt-1 flex items-start gap-2"},we={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ke={class:"mt-1 flex items-start gap-2"},_e={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ze={class:"mt-1 flex items-start gap-2"},Ce={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},He={class:"mt-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground"},Me={class:"flex flex-wrap gap-2 text-foreground"},Se={class:"mt-1 flex items-start gap-2"},Ve={class:"min-w-0 flex-1 rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},$e={class:"mt-6 flex items-center justify-end"},Ie=F({__name:"AppShell",setup(Ae){const L=q(),b=Z(),j=U(),c=J(),x=y(!1),o=y(!1),i=W(),g=y(!1),_=[{path:"/",label:"概览",icon:"M4 4h7v7H4V4zm9 0h7v4h-7V4zm0 6h7v10h-7V10zM4 13h7v7H4v-7z"},{path:"/accounts",label:"账号管理",icon:"M12 12a3.5 3.5 0 1 0-3.5-3.5A3.5 3.5 0 0 0 12 12zm0 2c-4.1 0-7.5 2.2-7.5 5v1h15v-1c0-2.8-3.4-5-7.5-5z"},{path:"/settings",label:"系统设置",icon:"M4 6h10v2H4V6zm12 0h4v2h-4V6zM4 11h6v2H4v-2zm8 0h8v2h-8v-2zM4 16h10v2H4v-2zm12 0h4v2h-4v-2z"},{path:"/monitor",label:"监控状态",icon:"M3 12h4l2-4 4 8 3-6h5v2h-4l-4 8-4-8-2 4H3v-2z"},{path:"/logs",label:"运行日志",icon:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h10v2H4v-2z"},{path:"/docs",label:"文档中心",icon:"M6 3h9l4 4v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm8 1.5V8h3.5L14 4.5zM8 11h8v2H8v-2zm0 4h8v2H8v-2z"}],B=f(()=>_.find(t=>t.path===b.path)?.label||"概览"),D=n=>{const r=`transition-colors ${o.value?"px-2 justify-center gap-0":"px-3 gap-3"}`;return b.path===n?`${r} bg-primary text-primary-foreground`:`${r} text-muted-foreground hover:bg-accent hover:text-accent-foreground`},I=n=>b.path===n?"bg-primary-foreground/15 text-primary-foreground border-primary-foreground/40":"bg-secondary text-muted-foreground group-hover:text-accent-foreground",v=f(()=>(c.settings?.basic?.base_url||""||window.location.origin).replace(/\/$/,"")),z=f(()=>`${v.value}/v1`),C=f(()=>`${v.value}/v1/chat/completions`),H=f(()=>c.settings?.basic?.api_key||"未设置"),T=["gemini-auto","gemini-2.5-flash","gemini-2.5-pro","gemini-3-flash-preview","gemini-3-pro-preview"];S(()=>b.path,()=>{x.value=!1});const M=localStorage.getItem("sidebar-collapsed");M&&(o.value=M==="true"),S(o,n=>{localStorage.setItem("sidebar-collapsed",n?"true":"false")});async function N(){await i.ask({title:"退出登录",message:"确定退出管理控制台吗?"})&&(await j.logout(),L.push({name:"login"}))}function P(){window.location.reload()}async function R(){g.value=!0,!c.settings&&!c.isLoading&&await c.loadSettings()}async function h(n){if(n)try{await navigator.clipboard.writeText(n)}catch(t){console.error("Copy failed",t)}}return(n,t)=>(s(),l("div",X,[e("div",Y,[x.value?(s(),l("div",{key:0,class:"fixed inset-0 z-30 bg-black/20 backdrop-blur-sm lg:hidden",onClick:t[0]||(t[0]=r=>x.value=!1)})):d("",!0),e("aside",{class:u(["fixed inset-y-0 left-0 z-40 w-72 -translate-x-full bg-card/90 backdrop-blur-sm lg:backdrop-blur-none border-r border-border transition-[width,transform] duration-200 ease-out will-change-[transform] transform-gpu flex flex-col lg:static lg:translate-x-0 lg:bg-card/80 lg:border-b-0 lg:border-r lg:sticky lg:top-0 lg:h-screen",[{"translate-x-0":x.value,"w-20 lg:w-20":o.value}]])},[e("div",{class:u(["flex h-16 items-center justify-between px-6 pt-4 lg:h-20 lg:pt-5",o.value?"justify-center px-0":""])},[e("div",{class:u(["flex items-center gap-2",o.value?"gap-0 justify-center w-full":""])},[t[9]||(t[9]=e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"text-foreground transition-colors hover:text-primary","aria-label":"GitHub"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-6 w-6",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})])],-1)),o.value?d("",!0):(s(),l("span",ee,"Gemini Business2API"))],2)],2),e("nav",{class:u(["pb-4 pt-4 lg:pt-6 flex-1 overflow-y-auto",o.value?"px-2":"px-3"])},[o.value?d("",!0):(s(),l("p",te," 导航 ")),e("div",re,[(s(),l(V,null,$(_,r=>m(a(k),{key:r.path,to:r.path,class:u(["group flex items-center rounded-2xl py-2 text-sm font-medium transition-colors overflow-hidden",D(r.path)]),title:o.value?r.label:void 0},{default:w(()=>[e("span",{class:u(["inline-flex h-9 w-9 items-center justify-center rounded-2xl border border-border",I(r.path)])},[(s(),l("svg",oe,[e("path",{d:r.icon},null,8,se)]))],2),o.value?d("",!0):(s(),l("span",ne,p(r.label),1)),o.value?d("",!0):(s(),l("span",le," 进入 "))]),_:2},1032,["to","class","title"])),64))])],2),e("div",ae,[o.value?d("",!0):(s(),l("div",ie,[...t[10]||(t[10]=[e("p",{class:"text-xs tracking-[0.12em] text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-1 transition-colors hover:text-foreground"}," gemini-business2api "),e("span",null," · 声明")],-1),e("p",{class:"mt-2 text-xs text-muted-foreground"}," 本项目仅限学习与研究用途,禁止用于商业用途。请保留本声明、原作者信息与开源来源。 ",-1)])])),e("div",{class:u(["mt-4 flex items-center gap-3",o.value?"justify-center":""])},[o.value?d("",!0):(s(),l("button",{key:0,onClick:N,class:"flex-1 rounded-2xl border border-border bg-background px-4 py-3 text-sm font-medium text-muted-foreground transition-colors hover:border-destructive/40 hover:text-destructive"}," 退出登录 ")),e("button",{class:"h-10 w-10 shrink-0 items-center justify-center rounded-2xl border border-border text-muted-foreground transition-all hover:border-primary hover:text-primary flex",onClick:t[1]||(t[1]=r=>o.value=!o.value),title:o.value?"展开侧边栏":"收起侧边栏"},[...t[11]||(t[11]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4 shrink-0",fill:"currentColor"},[e("path",{d:"M6 4h2v16H6V4zm4 4h8v2h-8V8zm0 6h8v2h-8v-2z"})],-1)])],8,de)],2)])],2),e("main",ue,[e("header",pe,[e("div",ce,[e("button",{class:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-border text-foreground transition-colors hover:border-primary hover:text-primary lg:hidden",onClick:t[2]||(t[2]=r=>x.value=!0),"aria-label":"打开导航"},[...t[12]||(t[12]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},[e("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])]),t[13]||(t[13]=K('',1)),e("h2",xe,p(B.value),1)]),e("div",fe,[e("button",{onClick:P,class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",title:"刷新"}," 刷新 "),e("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:R}," 接口信息 "),m(a(k),{to:"/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[14]||(t[14]=[A(" 状态监控 ",-1)])]),_:1}),m(a(k),{to:"/public/logs",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[15]||(t[15]=[A(" 公开日志 ",-1)])]),_:1})])]),e("div",me,[m(a(O))])])]),m(Q,{open:a(i).open.value,title:a(i).title.value,message:a(i).message.value,"confirm-text":a(i).confirmText.value,"cancel-text":a(i).cancelText.value,onConfirm:a(i).confirm,onCancel:a(i).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(s(),G(E,{to:"body"},[g.value?(s(),l("div",be,[e("div",ge,[e("div",ve,[t[16]||(t[16]=e("p",{class:"text-sm font-medium text-foreground"},"API 接口",-1)),e("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:t[3]||(t[3]=r=>g.value=!1)}," 关闭 ")]),t[22]||(t[22]=e("p",{class:"mt-2 text-xs text-muted-foreground"},"根据客户端选择对应接口",-1)),e("div",he,[e("div",null,[t[17]||(t[17]=e("p",{class:"text-xs text-muted-foreground"},"基础端点",-1)),e("div",ye,[e("p",we,p(v.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[4]||(t[4]=r=>h(v.value))}," 复制 ")])]),e("div",null,[t[18]||(t[18]=e("p",{class:"text-xs text-muted-foreground"},"SDK 接口",-1)),e("div",ke,[e("p",_e,p(z.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[5]||(t[5]=r=>h(z.value))}," 复制 ")])]),e("div",null,[t[19]||(t[19]=e("p",{class:"text-xs text-muted-foreground"},"完整接口",-1)),e("div",ze,[e("p",Ce,p(C.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[6]||(t[6]=r=>h(C.value))}," 复制 ")])]),e("div",null,[t[20]||(t[20]=e("p",{class:"text-xs text-muted-foreground"},"支持模型",-1)),e("div",He,[e("div",Me,[(s(),l(V,null,$(T,r=>e("span",{key:r,class:"rounded-full border border-border px-2 py-0.5 text-[11px]"},p(r),1)),64))])])]),e("div",null,[t[21]||(t[21]=e("p",{class:"text-xs text-muted-foreground"},"API 密钥",-1)),e("div",Se,[e("p",Ve,p(H.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[7]||(t[7]=r=>h(H.value))}," 复制 ")])])]),e("div",$e,[e("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:t[8]||(t[8]=r=>g.value=!1)}," 知道了 ")])])])):d("",!0)]))]))}});export{Ie as default}; diff --git a/static/assets/AppShell-BbGZjE35.js b/static/assets/AppShell-BbGZjE35.js new file mode 100644 index 0000000000000000000000000000000000000000..9fb97f6b8f7cb475228fbdd6ec1711322b5a76d0 --- /dev/null +++ b/static/assets/AppShell-BbGZjE35.js @@ -0,0 +1 @@ +import{d as F,l as U,h as y,i as f,q as Z,s as S,c as l,a as e,x as m,y as G,b as d,n as u,F as V,r as $,z as K,t as p,A as w,u as a,R as k,B as O,T as q,p as E,f as A,e as s}from"./index-B0A0-QFY.js";import{u as J}from"./settings-MHx3aXRd.js";import{_ as Q}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-Bkr0tSJw.js";import{u as W}from"./useConfirmDialog-BS9rDomX.js";const X={class:"min-h-screen"},Y={class:"flex min-h-screen flex-col lg:flex-row"},ee={key:0,class:"text-base font-semibold text-foreground"},te={key:0,class:"px-3 pb-2 text-xs uppercase tracking-[0.28em] text-muted-foreground"},re={class:"space-y-1"},oe={"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},se=["d"],ne={key:0,class:"flex-1 min-w-0 truncate"},le={key:1,class:"ml-auto text-xs opacity-0 transition-opacity group-hover:opacity-100"},ae={class:"mt-auto border-t border-border px-6 py-3 lg:py-4"},ie={key:0,class:"rounded-2xl bg-secondary/60 p-3"},de=["title"],ue={class:"min-w-0 flex-1 overflow-hidden lg:ml-0"},pe={class:"min-w-0 flex flex-col gap-4 border-b border-border bg-card/70 px-6 py-5 backdrop-blur lg:flex-row lg:items-center lg:justify-between lg:px-10"},ce={class:"flex items-center gap-3"},xe={class:"text-xl font-semibold text-foreground lg:text-2xl"},fe={class:"flex flex-wrap items-center gap-3"},me={class:"h-full overflow-y-auto overflow-x-hidden bg-card/70 px-4 pb-10 pt-6 backdrop-blur lg:px-10 lg:pt-10"},be={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ge={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},ve={class:"flex items-center justify-between"},he={class:"mt-4 space-y-3 text-sm"},ye={class:"mt-1 flex items-start gap-2"},we={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ke={class:"mt-1 flex items-start gap-2"},_e={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ze={class:"mt-1 flex items-start gap-2"},Ce={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},He={class:"mt-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground"},Me={class:"flex flex-wrap gap-2 text-foreground"},Se={class:"mt-1 flex items-start gap-2"},Ve={class:"min-w-0 flex-1 rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},$e={class:"mt-6 flex items-center justify-end"},Ie=F({__name:"AppShell",setup(Ae){const L=E(),b=Z(),j=U(),c=J(),x=y(!1),o=y(!1),i=W(),g=y(!1),_=[{path:"/",label:"概览",icon:"M4 4h7v7H4V4zm9 0h7v4h-7V4zm0 6h7v10h-7V10zM4 13h7v7H4v-7z"},{path:"/accounts",label:"账号管理",icon:"M12 12a3.5 3.5 0 1 0-3.5-3.5A3.5 3.5 0 0 0 12 12zm0 2c-4.1 0-7.5 2.2-7.5 5v1h15v-1c0-2.8-3.4-5-7.5-5z"},{path:"/settings",label:"系统设置",icon:"M4 6h10v2H4V6zm12 0h4v2h-4V6zM4 11h6v2H4v-2zm8 0h8v2h-8v-2zM4 16h10v2H4v-2zm12 0h4v2h-4v-2z"},{path:"/monitor",label:"监控状态",icon:"M3 12h4l2-4 4 8 3-6h5v2h-4l-4 8-4-8-2 4H3v-2z"},{path:"/logs",label:"运行日志",icon:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h10v2H4v-2z"},{path:"/docs",label:"文档中心",icon:"M6 3h9l4 4v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm8 1.5V8h3.5L14 4.5zM8 11h8v2H8v-2zm0 4h8v2H8v-2z"}],B=f(()=>_.find(t=>t.path===b.path)?.label||"概览"),D=n=>{const r=`transition-colors ${o.value?"px-2 justify-center gap-0":"px-3 gap-3"}`;return b.path===n?`${r} bg-primary text-primary-foreground`:`${r} text-muted-foreground hover:bg-accent hover:text-accent-foreground`},I=n=>b.path===n?"bg-primary-foreground/15 text-primary-foreground border-primary-foreground/40":"bg-secondary text-muted-foreground group-hover:text-accent-foreground",v=f(()=>(c.settings?.basic?.base_url||""||window.location.origin).replace(/\/$/,"")),z=f(()=>`${v.value}/v1`),C=f(()=>`${v.value}/v1/chat/completions`),H=f(()=>c.settings?.basic?.api_key||"未设置"),T=["gemini-auto","gemini-2.5-flash","gemini-2.5-pro","gemini-3-flash-preview","gemini-3-pro-preview"];S(()=>b.path,()=>{x.value=!1});const M=localStorage.getItem("sidebar-collapsed");M&&(o.value=M==="true"),S(o,n=>{localStorage.setItem("sidebar-collapsed",n?"true":"false")});async function N(){await i.ask({title:"退出登录",message:"确定退出管理控制台吗?"})&&(await j.logout(),L.push({name:"login"}))}function P(){window.location.reload()}async function R(){g.value=!0,!c.settings&&!c.isLoading&&await c.loadSettings()}async function h(n){if(n)try{await navigator.clipboard.writeText(n)}catch(t){console.error("Copy failed",t)}}return(n,t)=>(s(),l("div",X,[e("div",Y,[x.value?(s(),l("div",{key:0,class:"fixed inset-0 z-30 bg-black/20 backdrop-blur-sm lg:hidden",onClick:t[0]||(t[0]=r=>x.value=!1)})):d("",!0),e("aside",{class:u(["fixed inset-y-0 left-0 z-40 w-72 -translate-x-full bg-card/90 backdrop-blur-sm lg:backdrop-blur-none border-r border-border transition-transform duration-200 ease-out will-change-[transform] transform-gpu flex flex-col lg:static lg:translate-x-0 lg:bg-card/80 lg:border-b-0 lg:border-r lg:sticky lg:top-0 lg:h-screen",[{"translate-x-0":x.value,"w-20 lg:w-20":o.value}]])},[e("div",{class:u(["flex h-16 items-center justify-between px-6 pt-4 lg:h-20 lg:pt-5",o.value?"justify-center px-0":""])},[e("div",{class:u(["flex items-center gap-2",o.value?"gap-0 justify-center w-full":""])},[t[9]||(t[9]=e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"text-foreground transition-colors hover:text-primary","aria-label":"GitHub"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-6 w-6",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})])],-1)),o.value?d("",!0):(s(),l("span",ee,"Gemini Business2API"))],2)],2),e("nav",{class:u(["pb-4 pt-4 lg:pt-6 flex-1 overflow-y-auto",o.value?"px-2":"px-3"])},[o.value?d("",!0):(s(),l("p",te," 导航 ")),e("div",re,[(s(),l(V,null,$(_,r=>m(a(k),{key:r.path,to:r.path,class:u(["group flex items-center rounded-2xl py-2 text-sm font-medium transition-colors overflow-hidden",D(r.path)]),title:o.value?r.label:void 0},{default:w(()=>[e("span",{class:u(["inline-flex h-9 w-9 items-center justify-center rounded-2xl border border-border",I(r.path)])},[(s(),l("svg",oe,[e("path",{d:r.icon},null,8,se)]))],2),o.value?d("",!0):(s(),l("span",ne,p(r.label),1)),o.value?d("",!0):(s(),l("span",le," 进入 "))]),_:2},1032,["to","class","title"])),64))])],2),e("div",ae,[o.value?d("",!0):(s(),l("div",ie,[...t[10]||(t[10]=[e("p",{class:"text-xs tracking-[0.12em] text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-1 transition-colors hover:text-foreground"}," gemini-business2api "),e("span",null," · 声明")],-1),e("p",{class:"mt-2 text-xs text-muted-foreground"}," 本项目仅限学习与研究用途,禁止用于商业用途。请保留本声明、原作者信息与开源来源。 ",-1)])])),e("div",{class:u(["mt-4 flex items-center gap-3",o.value?"justify-center":""])},[o.value?d("",!0):(s(),l("button",{key:0,onClick:N,class:"flex-1 rounded-2xl border border-border bg-background px-4 py-3 text-sm font-medium text-muted-foreground transition-colors hover:border-destructive/40 hover:text-destructive"}," 退出登录 ")),e("button",{class:"h-10 w-10 shrink-0 items-center justify-center rounded-2xl border border-border text-muted-foreground transition-all hover:border-primary hover:text-primary flex",onClick:t[1]||(t[1]=r=>o.value=!o.value),title:o.value?"展开侧边栏":"收起侧边栏"},[...t[11]||(t[11]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4 shrink-0",fill:"currentColor"},[e("path",{d:"M6 4h2v16H6V4zm4 4h8v2h-8V8zm0 6h8v2h-8v-2z"})],-1)])],8,de)],2)])],2),e("main",ue,[e("header",pe,[e("div",ce,[e("button",{class:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-border text-foreground transition-colors hover:border-primary hover:text-primary lg:hidden",onClick:t[2]||(t[2]=r=>x.value=!0),"aria-label":"打开导航"},[...t[12]||(t[12]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},[e("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])]),t[13]||(t[13]=K('',1)),e("h2",xe,p(B.value),1)]),e("div",fe,[e("button",{onClick:P,class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",title:"刷新"}," 刷新 "),e("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:R}," 接口信息 "),m(a(k),{to:"/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[14]||(t[14]=[A(" 状态监控 ",-1)])]),_:1}),m(a(k),{to:"/public/logs",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[15]||(t[15]=[A(" 公开日志 ",-1)])]),_:1})])]),e("div",me,[m(a(O))])])]),m(Q,{open:a(i).open.value,title:a(i).title.value,message:a(i).message.value,"confirm-text":a(i).confirmText.value,"cancel-text":a(i).cancelText.value,onConfirm:a(i).confirm,onCancel:a(i).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(s(),G(q,{to:"body"},[g.value?(s(),l("div",be,[e("div",ge,[e("div",ve,[t[16]||(t[16]=e("p",{class:"text-sm font-medium text-foreground"},"API 接口",-1)),e("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:t[3]||(t[3]=r=>g.value=!1)}," 关闭 ")]),t[22]||(t[22]=e("p",{class:"mt-2 text-xs text-muted-foreground"},"根据客户端选择对应接口",-1)),e("div",he,[e("div",null,[t[17]||(t[17]=e("p",{class:"text-xs text-muted-foreground"},"基础端点",-1)),e("div",ye,[e("p",we,p(v.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[4]||(t[4]=r=>h(v.value))}," 复制 ")])]),e("div",null,[t[18]||(t[18]=e("p",{class:"text-xs text-muted-foreground"},"SDK 接口",-1)),e("div",ke,[e("p",_e,p(z.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[5]||(t[5]=r=>h(z.value))}," 复制 ")])]),e("div",null,[t[19]||(t[19]=e("p",{class:"text-xs text-muted-foreground"},"完整接口",-1)),e("div",ze,[e("p",Ce,p(C.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[6]||(t[6]=r=>h(C.value))}," 复制 ")])]),e("div",null,[t[20]||(t[20]=e("p",{class:"text-xs text-muted-foreground"},"支持模型",-1)),e("div",He,[e("div",Me,[(s(),l(V,null,$(T,r=>e("span",{key:r,class:"rounded-full border border-border px-2 py-0.5 text-[11px]"},p(r),1)),64))])])]),e("div",null,[t[21]||(t[21]=e("p",{class:"text-xs text-muted-foreground"},"API 密钥",-1)),e("div",Se,[e("p",Ve,p(H.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[7]||(t[7]=r=>h(H.value))}," 复制 ")])])]),e("div",$e,[e("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:t[8]||(t[8]=r=>g.value=!1)}," 知道了 ")])])])):d("",!0)]))]))}});export{Ie as default}; diff --git a/static/assets/AppShell-Bk_f20v2.js b/static/assets/AppShell-Bk_f20v2.js new file mode 100644 index 0000000000000000000000000000000000000000..c00f8eeb0c3917c3b09878d9b0066b047bbdfe1a --- /dev/null +++ b/static/assets/AppShell-Bk_f20v2.js @@ -0,0 +1 @@ +import{d as F,l as U,h as y,i as f,y as Z,z as S,c as l,a as e,p as m,m as G,b as d,n as u,F as V,r as $,A as K,t as p,s as w,u as a,R as k,B as O,T as E,x as q,f as A,e as s}from"./index-C4edAQLF.js";import{u as J}from"./settings-C6i6OeZ-.js";import{_ as Q}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-DW0P4Bk8.js";import{u as W}from"./useConfirmDialog-wyft8rf-.js";const X={class:"min-h-screen"},Y={class:"flex min-h-screen flex-col lg:flex-row"},ee={key:0,class:"text-base font-semibold text-foreground"},te={key:0,class:"px-3 pb-2 text-xs uppercase tracking-[0.28em] text-muted-foreground"},re={class:"space-y-1"},oe={"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},se=["d"],ne={key:0,class:"flex-1 min-w-0 truncate"},le={key:1,class:"ml-auto text-xs opacity-0 transition-opacity group-hover:opacity-100"},ae={class:"mt-auto border-t border-border px-6 py-3 lg:py-4"},ie={key:0,class:"rounded-2xl bg-secondary/60 p-3"},de=["title"],ue={class:"min-w-0 flex-1 overflow-hidden lg:ml-0"},pe={class:"min-w-0 flex flex-col gap-4 border-b border-border bg-card/70 px-6 py-5 backdrop-blur lg:flex-row lg:items-center lg:justify-between lg:px-10"},ce={class:"flex items-center gap-3"},xe={class:"text-xl font-semibold text-foreground lg:text-2xl"},fe={class:"flex flex-wrap items-center gap-3"},me={class:"h-full overflow-y-auto overflow-x-hidden bg-card/70 px-4 pb-10 pt-6 backdrop-blur lg:px-10 lg:pt-10"},be={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ge={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},ve={class:"flex items-center justify-between"},he={class:"mt-4 space-y-3 text-sm"},ye={class:"mt-1 flex items-start gap-2"},we={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ke={class:"mt-1 flex items-start gap-2"},_e={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ze={class:"mt-1 flex items-start gap-2"},Ce={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},He={class:"mt-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground"},Me={class:"flex flex-wrap gap-2 text-foreground"},Se={class:"mt-1 flex items-start gap-2"},Ve={class:"min-w-0 flex-1 rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},$e={class:"mt-6 flex items-center justify-end"},Ie=F({__name:"AppShell",setup(Ae){const L=q(),b=Z(),j=U(),c=J(),x=y(!1),o=y(!1),i=W(),g=y(!1),_=[{path:"/",label:"概览",icon:"M4 4h7v7H4V4zm9 0h7v4h-7V4zm0 6h7v10h-7V10zM4 13h7v7H4v-7z"},{path:"/accounts",label:"账号管理",icon:"M12 12a3.5 3.5 0 1 0-3.5-3.5A3.5 3.5 0 0 0 12 12zm0 2c-4.1 0-7.5 2.2-7.5 5v1h15v-1c0-2.8-3.4-5-7.5-5z"},{path:"/settings",label:"系统设置",icon:"M4 6h10v2H4V6zm12 0h4v2h-4V6zM4 11h6v2H4v-2zm8 0h8v2h-8v-2zM4 16h10v2H4v-2zm12 0h4v2h-4v-2z"},{path:"/monitor",label:"监控状态",icon:"M3 12h4l2-4 4 8 3-6h5v2h-4l-4 8-4-8-2 4H3v-2z"},{path:"/logs",label:"运行日志",icon:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h10v2H4v-2z"},{path:"/docs",label:"文档中心",icon:"M6 3h9l4 4v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm8 1.5V8h3.5L14 4.5zM8 11h8v2H8v-2zm0 4h8v2H8v-2z"}],B=f(()=>_.find(t=>t.path===b.path)?.label||"概览"),D=n=>{const r=`transition-colors ${o.value?"px-2 justify-center gap-0":"px-3 gap-3"}`;return b.path===n?`${r} bg-primary text-primary-foreground`:`${r} text-muted-foreground hover:bg-accent hover:text-accent-foreground`},I=n=>b.path===n?"bg-primary-foreground/15 text-primary-foreground border-primary-foreground/40":"bg-secondary text-muted-foreground group-hover:text-accent-foreground",v=f(()=>(c.settings?.basic?.base_url||""||window.location.origin).replace(/\/$/,"")),z=f(()=>`${v.value}/v1`),C=f(()=>`${v.value}/v1/chat/completions`),H=f(()=>c.settings?.basic?.api_key||"未设置"),T=["gemini-auto","gemini-2.5-flash","gemini-2.5-pro","gemini-3-flash-preview","gemini-3-pro-preview"];S(()=>b.path,()=>{x.value=!1});const M=localStorage.getItem("sidebar-collapsed");M&&(o.value=M==="true"),S(o,n=>{localStorage.setItem("sidebar-collapsed",n?"true":"false")});async function N(){await i.ask({title:"退出登录",message:"确定退出管理控制台吗?"})&&(await j.logout(),L.push({name:"login"}))}function P(){window.location.reload()}async function R(){g.value=!0,!c.settings&&!c.isLoading&&await c.loadSettings()}async function h(n){if(n)try{await navigator.clipboard.writeText(n)}catch(t){console.error("Copy failed",t)}}return(n,t)=>(s(),l("div",X,[e("div",Y,[x.value?(s(),l("div",{key:0,class:"fixed inset-0 z-30 bg-black/20 backdrop-blur-sm lg:hidden",onClick:t[0]||(t[0]=r=>x.value=!1)})):d("",!0),e("aside",{class:u(["fixed inset-y-0 left-0 z-40 w-72 -translate-x-full bg-card/90 backdrop-blur-sm lg:backdrop-blur-none border-r border-border transition-[width,transform] duration-200 ease-out will-change-[transform] transform-gpu flex flex-col lg:static lg:translate-x-0 lg:bg-card/80 lg:border-b-0 lg:border-r lg:sticky lg:top-0 lg:h-screen",[{"translate-x-0":x.value,"w-20 lg:w-20":o.value}]])},[e("div",{class:u(["flex h-16 items-center justify-between px-6 pt-4 lg:h-20 lg:pt-5",o.value?"justify-center px-0":""])},[e("div",{class:u(["flex items-center gap-2",o.value?"gap-0 justify-center w-full":""])},[t[9]||(t[9]=e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"text-foreground transition-colors hover:text-primary","aria-label":"GitHub"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-6 w-6",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})])],-1)),o.value?d("",!0):(s(),l("span",ee,"Gemini Business2API"))],2)],2),e("nav",{class:u(["pb-4 pt-4 lg:pt-6 flex-1 overflow-y-auto",o.value?"px-2":"px-3"])},[o.value?d("",!0):(s(),l("p",te," 导航 ")),e("div",re,[(s(),l(V,null,$(_,r=>m(a(k),{key:r.path,to:r.path,class:u(["group flex items-center rounded-2xl py-2 text-sm font-medium transition-colors overflow-hidden",D(r.path)]),title:o.value?r.label:void 0},{default:w(()=>[e("span",{class:u(["inline-flex h-9 w-9 items-center justify-center rounded-2xl border border-border",I(r.path)])},[(s(),l("svg",oe,[e("path",{d:r.icon},null,8,se)]))],2),o.value?d("",!0):(s(),l("span",ne,p(r.label),1)),o.value?d("",!0):(s(),l("span",le," 进入 "))]),_:2},1032,["to","class","title"])),64))])],2),e("div",ae,[o.value?d("",!0):(s(),l("div",ie,[...t[10]||(t[10]=[e("p",{class:"text-xs tracking-[0.12em] text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-1 transition-colors hover:text-foreground"}," gemini-business2api "),e("span",null," · 声明")],-1),e("p",{class:"mt-2 text-xs text-muted-foreground"}," 本项目仅限学习与研究用途,禁止用于商业用途。请保留本声明、原作者信息与开源来源。 ",-1)])])),e("div",{class:u(["mt-4 flex items-center gap-3",o.value?"justify-center":""])},[o.value?d("",!0):(s(),l("button",{key:0,onClick:N,class:"flex-1 rounded-2xl border border-border bg-background px-4 py-3 text-sm font-medium text-muted-foreground transition-colors hover:border-destructive/40 hover:text-destructive"}," 退出登录 ")),e("button",{class:"h-10 w-10 shrink-0 items-center justify-center rounded-2xl border border-border text-muted-foreground transition-all hover:border-primary hover:text-primary flex",onClick:t[1]||(t[1]=r=>o.value=!o.value),title:o.value?"展开侧边栏":"收起侧边栏"},[...t[11]||(t[11]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4 shrink-0",fill:"currentColor"},[e("path",{d:"M6 4h2v16H6V4zm4 4h8v2h-8V8zm0 6h8v2h-8v-2z"})],-1)])],8,de)],2)])],2),e("main",ue,[e("header",pe,[e("div",ce,[e("button",{class:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-border text-foreground transition-colors hover:border-primary hover:text-primary lg:hidden",onClick:t[2]||(t[2]=r=>x.value=!0),"aria-label":"打开导航"},[...t[12]||(t[12]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},[e("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])]),t[13]||(t[13]=K('',1)),e("h2",xe,p(B.value),1)]),e("div",fe,[e("button",{onClick:P,class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",title:"刷新"}," 刷新 "),e("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:R}," 接口信息 "),m(a(k),{to:"/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[14]||(t[14]=[A(" 状态监控 ",-1)])]),_:1}),m(a(k),{to:"/public/logs",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[15]||(t[15]=[A(" 公开日志 ",-1)])]),_:1})])]),e("div",me,[m(a(O))])])]),m(Q,{open:a(i).open.value,title:a(i).title.value,message:a(i).message.value,"confirm-text":a(i).confirmText.value,"cancel-text":a(i).cancelText.value,onConfirm:a(i).confirm,onCancel:a(i).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(s(),G(E,{to:"body"},[g.value?(s(),l("div",be,[e("div",ge,[e("div",ve,[t[16]||(t[16]=e("p",{class:"text-sm font-medium text-foreground"},"API 接口",-1)),e("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:t[3]||(t[3]=r=>g.value=!1)}," 关闭 ")]),t[22]||(t[22]=e("p",{class:"mt-2 text-xs text-muted-foreground"},"根据客户端选择对应接口",-1)),e("div",he,[e("div",null,[t[17]||(t[17]=e("p",{class:"text-xs text-muted-foreground"},"基础端点",-1)),e("div",ye,[e("p",we,p(v.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[4]||(t[4]=r=>h(v.value))}," 复制 ")])]),e("div",null,[t[18]||(t[18]=e("p",{class:"text-xs text-muted-foreground"},"SDK 接口",-1)),e("div",ke,[e("p",_e,p(z.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[5]||(t[5]=r=>h(z.value))}," 复制 ")])]),e("div",null,[t[19]||(t[19]=e("p",{class:"text-xs text-muted-foreground"},"完整接口",-1)),e("div",ze,[e("p",Ce,p(C.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[6]||(t[6]=r=>h(C.value))}," 复制 ")])]),e("div",null,[t[20]||(t[20]=e("p",{class:"text-xs text-muted-foreground"},"支持模型",-1)),e("div",He,[e("div",Me,[(s(),l(V,null,$(T,r=>e("span",{key:r,class:"rounded-full border border-border px-2 py-0.5 text-[11px]"},p(r),1)),64))])])]),e("div",null,[t[21]||(t[21]=e("p",{class:"text-xs text-muted-foreground"},"API 密钥",-1)),e("div",Se,[e("p",Ve,p(H.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[7]||(t[7]=r=>h(H.value))}," 复制 ")])])]),e("div",$e,[e("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:t[8]||(t[8]=r=>g.value=!1)}," 知道了 ")])])])):d("",!0)]))]))}});export{Ie as default}; diff --git a/static/assets/AppShell-By1VIFEt.js b/static/assets/AppShell-By1VIFEt.js new file mode 100644 index 0000000000000000000000000000000000000000..f696dc237978ffcdb6334fc7901c8a05f80b53d3 --- /dev/null +++ b/static/assets/AppShell-By1VIFEt.js @@ -0,0 +1 @@ +import{d as F,l as U,h as y,i as f,q as Z,s as S,c as l,a as e,x as m,y as G,b as d,n as u,F as V,r as $,z as K,t as p,A as w,u as a,R as k,B as O,T as q,p as E,f as A,e as s}from"./index-C7QtVLks.js";import{u as J}from"./settings-_wJjBPdz.js";import{_ as Q}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-Cf0ef7-g.js";import{u as W}from"./useConfirmDialog-0WVRfuk6.js";const X={class:"min-h-screen"},Y={class:"flex min-h-screen flex-col lg:flex-row"},ee={key:0,class:"text-base font-semibold text-foreground"},te={key:0,class:"px-3 pb-2 text-xs uppercase tracking-[0.28em] text-muted-foreground"},re={class:"space-y-1"},oe={"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},se=["d"],ne={key:0,class:"flex-1 min-w-0 truncate"},le={key:1,class:"ml-auto text-xs opacity-0 transition-opacity group-hover:opacity-100"},ae={class:"mt-auto border-t border-border px-6 py-3 lg:py-4"},ie={key:0,class:"rounded-2xl bg-secondary/60 p-3"},de=["title"],ue={class:"min-w-0 flex-1 overflow-hidden lg:ml-0"},pe={class:"min-w-0 flex flex-col gap-4 border-b border-border bg-card/70 px-6 py-5 backdrop-blur lg:flex-row lg:items-center lg:justify-between lg:px-10"},ce={class:"flex items-center gap-3"},xe={class:"text-xl font-semibold text-foreground lg:text-2xl"},fe={class:"flex flex-wrap items-center gap-3"},me={class:"h-full overflow-y-auto overflow-x-hidden bg-card/70 px-4 pb-10 pt-6 backdrop-blur lg:px-10 lg:pt-10"},be={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ge={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},ve={class:"flex items-center justify-between"},he={class:"mt-4 space-y-3 text-sm"},ye={class:"mt-1 flex items-start gap-2"},we={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ke={class:"mt-1 flex items-start gap-2"},_e={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ze={class:"mt-1 flex items-start gap-2"},Ce={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},He={class:"mt-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground"},Me={class:"flex flex-wrap gap-2 text-foreground"},Se={class:"mt-1 flex items-start gap-2"},Ve={class:"min-w-0 flex-1 rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},$e={class:"mt-6 flex items-center justify-end"},Ie=F({__name:"AppShell",setup(Ae){const L=E(),b=Z(),j=U(),c=J(),x=y(!1),o=y(!1),i=W(),g=y(!1),_=[{path:"/",label:"概览",icon:"M4 4h7v7H4V4zm9 0h7v4h-7V4zm0 6h7v10h-7V10zM4 13h7v7H4v-7z"},{path:"/accounts",label:"账号管理",icon:"M12 12a3.5 3.5 0 1 0-3.5-3.5A3.5 3.5 0 0 0 12 12zm0 2c-4.1 0-7.5 2.2-7.5 5v1h15v-1c0-2.8-3.4-5-7.5-5z"},{path:"/settings",label:"系统设置",icon:"M4 6h10v2H4V6zm12 0h4v2h-4V6zM4 11h6v2H4v-2zm8 0h8v2h-8v-2zM4 16h10v2H4v-2zm12 0h4v2h-4v-2z"},{path:"/monitor",label:"监控状态",icon:"M3 12h4l2-4 4 8 3-6h5v2h-4l-4 8-4-8-2 4H3v-2z"},{path:"/logs",label:"运行日志",icon:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h10v2H4v-2z"},{path:"/docs",label:"文档中心",icon:"M6 3h9l4 4v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm8 1.5V8h3.5L14 4.5zM8 11h8v2H8v-2zm0 4h8v2H8v-2z"}],B=f(()=>_.find(t=>t.path===b.path)?.label||"概览"),D=n=>{const r=`transition-colors ${o.value?"px-2 justify-center gap-0":"px-3 gap-3"}`;return b.path===n?`${r} bg-primary text-primary-foreground`:`${r} text-muted-foreground hover:bg-accent hover:text-accent-foreground`},I=n=>b.path===n?"bg-primary-foreground/15 text-primary-foreground border-primary-foreground/40":"bg-secondary text-muted-foreground group-hover:text-accent-foreground",v=f(()=>(c.settings?.basic?.base_url||""||window.location.origin).replace(/\/$/,"")),z=f(()=>`${v.value}/v1`),C=f(()=>`${v.value}/v1/chat/completions`),H=f(()=>c.settings?.basic?.api_key||"未设置"),T=["gemini-auto","gemini-2.5-flash","gemini-2.5-pro","gemini-3-flash-preview","gemini-3-pro-preview"];S(()=>b.path,()=>{x.value=!1});const M=localStorage.getItem("sidebar-collapsed");M&&(o.value=M==="true"),S(o,n=>{localStorage.setItem("sidebar-collapsed",n?"true":"false")});async function N(){await i.ask({title:"退出登录",message:"确定退出管理控制台吗?"})&&(await j.logout(),L.push({name:"login"}))}function P(){window.location.reload()}async function R(){g.value=!0,!c.settings&&!c.isLoading&&await c.loadSettings()}async function h(n){if(n)try{await navigator.clipboard.writeText(n)}catch(t){console.error("Copy failed",t)}}return(n,t)=>(s(),l("div",X,[e("div",Y,[x.value?(s(),l("div",{key:0,class:"fixed inset-0 z-30 bg-black/20 backdrop-blur-sm lg:hidden",onClick:t[0]||(t[0]=r=>x.value=!1)})):d("",!0),e("aside",{class:u(["fixed inset-y-0 left-0 z-40 w-72 -translate-x-full bg-card/90 backdrop-blur-sm lg:backdrop-blur-none border-r border-border transition-[width,transform] duration-200 ease-out will-change-[transform] transform-gpu flex flex-col lg:static lg:translate-x-0 lg:bg-card/80 lg:border-b-0 lg:border-r lg:sticky lg:top-0 lg:h-screen",[{"translate-x-0":x.value,"w-20 lg:w-20":o.value}]])},[e("div",{class:u(["flex h-16 items-center justify-between px-6 pt-4 lg:h-20 lg:pt-5",o.value?"justify-center px-0":""])},[e("div",{class:u(["flex items-center gap-2",o.value?"gap-0 justify-center w-full":""])},[t[9]||(t[9]=e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"text-foreground transition-colors hover:text-primary","aria-label":"GitHub"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-6 w-6",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})])],-1)),o.value?d("",!0):(s(),l("span",ee,"Gemini Business2API"))],2)],2),e("nav",{class:u(["pb-4 pt-4 lg:pt-6 flex-1 overflow-y-auto",o.value?"px-2":"px-3"])},[o.value?d("",!0):(s(),l("p",te," 导航 ")),e("div",re,[(s(),l(V,null,$(_,r=>m(a(k),{key:r.path,to:r.path,class:u(["group flex items-center rounded-2xl py-2 text-sm font-medium transition-colors overflow-hidden",D(r.path)]),title:o.value?r.label:void 0},{default:w(()=>[e("span",{class:u(["inline-flex h-9 w-9 items-center justify-center rounded-2xl border border-border",I(r.path)])},[(s(),l("svg",oe,[e("path",{d:r.icon},null,8,se)]))],2),o.value?d("",!0):(s(),l("span",ne,p(r.label),1)),o.value?d("",!0):(s(),l("span",le," 进入 "))]),_:2},1032,["to","class","title"])),64))])],2),e("div",ae,[o.value?d("",!0):(s(),l("div",ie,[...t[10]||(t[10]=[e("p",{class:"text-xs tracking-[0.12em] text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-1 transition-colors hover:text-foreground"}," gemini-business2api "),e("span",null," · 声明")],-1),e("p",{class:"mt-2 text-xs text-muted-foreground"}," 本项目仅限学习与研究用途,禁止用于商业用途。请保留本声明、原作者信息与开源来源。 ",-1)])])),e("div",{class:u(["mt-4 flex items-center gap-3",o.value?"justify-center":""])},[o.value?d("",!0):(s(),l("button",{key:0,onClick:N,class:"flex-1 rounded-2xl border border-border bg-background px-4 py-3 text-sm font-medium text-muted-foreground transition-colors hover:border-destructive/40 hover:text-destructive"}," 退出登录 ")),e("button",{class:"h-10 w-10 shrink-0 items-center justify-center rounded-2xl border border-border text-muted-foreground transition-all hover:border-primary hover:text-primary flex",onClick:t[1]||(t[1]=r=>o.value=!o.value),title:o.value?"展开侧边栏":"收起侧边栏"},[...t[11]||(t[11]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4 shrink-0",fill:"currentColor"},[e("path",{d:"M6 4h2v16H6V4zm4 4h8v2h-8V8zm0 6h8v2h-8v-2z"})],-1)])],8,de)],2)])],2),e("main",ue,[e("header",pe,[e("div",ce,[e("button",{class:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-border text-foreground transition-colors hover:border-primary hover:text-primary lg:hidden",onClick:t[2]||(t[2]=r=>x.value=!0),"aria-label":"打开导航"},[...t[12]||(t[12]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},[e("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])]),t[13]||(t[13]=K('',1)),e("h2",xe,p(B.value),1)]),e("div",fe,[e("button",{onClick:P,class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",title:"刷新"}," 刷新 "),e("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:R}," 接口信息 "),m(a(k),{to:"/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[14]||(t[14]=[A(" 状态监控 ",-1)])]),_:1}),m(a(k),{to:"/public/logs",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[15]||(t[15]=[A(" 公开日志 ",-1)])]),_:1})])]),e("div",me,[m(a(O))])])]),m(Q,{open:a(i).open.value,title:a(i).title.value,message:a(i).message.value,"confirm-text":a(i).confirmText.value,"cancel-text":a(i).cancelText.value,onConfirm:a(i).confirm,onCancel:a(i).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(s(),G(q,{to:"body"},[g.value?(s(),l("div",be,[e("div",ge,[e("div",ve,[t[16]||(t[16]=e("p",{class:"text-sm font-medium text-foreground"},"API 接口",-1)),e("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:t[3]||(t[3]=r=>g.value=!1)}," 关闭 ")]),t[22]||(t[22]=e("p",{class:"mt-2 text-xs text-muted-foreground"},"根据客户端选择对应接口",-1)),e("div",he,[e("div",null,[t[17]||(t[17]=e("p",{class:"text-xs text-muted-foreground"},"基础端点",-1)),e("div",ye,[e("p",we,p(v.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[4]||(t[4]=r=>h(v.value))}," 复制 ")])]),e("div",null,[t[18]||(t[18]=e("p",{class:"text-xs text-muted-foreground"},"SDK 接口",-1)),e("div",ke,[e("p",_e,p(z.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[5]||(t[5]=r=>h(z.value))}," 复制 ")])]),e("div",null,[t[19]||(t[19]=e("p",{class:"text-xs text-muted-foreground"},"完整接口",-1)),e("div",ze,[e("p",Ce,p(C.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[6]||(t[6]=r=>h(C.value))}," 复制 ")])]),e("div",null,[t[20]||(t[20]=e("p",{class:"text-xs text-muted-foreground"},"支持模型",-1)),e("div",He,[e("div",Me,[(s(),l(V,null,$(T,r=>e("span",{key:r,class:"rounded-full border border-border px-2 py-0.5 text-[11px]"},p(r),1)),64))])])]),e("div",null,[t[21]||(t[21]=e("p",{class:"text-xs text-muted-foreground"},"API 密钥",-1)),e("div",Se,[e("p",Ve,p(H.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[7]||(t[7]=r=>h(H.value))}," 复制 ")])])]),e("div",$e,[e("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:t[8]||(t[8]=r=>g.value=!1)}," 知道了 ")])])])):d("",!0)]))]))}});export{Ie as default}; diff --git a/static/assets/AppShell-C-FNXlk9.js b/static/assets/AppShell-C-FNXlk9.js new file mode 100644 index 0000000000000000000000000000000000000000..b3d27dcd61b742a2cd4073e3ea7014c51060382e --- /dev/null +++ b/static/assets/AppShell-C-FNXlk9.js @@ -0,0 +1 @@ +import{d as F,l as U,h as y,i as f,q as Z,s as S,c as l,a as e,x as m,y as G,b as d,n as u,F as V,r as $,z as K,t as p,A as w,u as a,R as k,B as O,T as q,p as E,f as A,e as s}from"./index-DhxxzIOh.js";import{u as J}from"./settings-CCCXerrX.js";import{_ as Q}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-C_ZbANx_.js";import{u as W}from"./useConfirmDialog-ChXSHLDJ.js";const X={class:"min-h-screen"},Y={class:"flex min-h-screen flex-col lg:flex-row"},ee={key:0,class:"text-base font-semibold text-foreground"},te={key:0,class:"px-3 pb-2 text-xs uppercase tracking-[0.28em] text-muted-foreground"},re={class:"space-y-1"},oe={"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},se=["d"],ne={key:0,class:"flex-1 min-w-0 truncate"},le={key:1,class:"ml-auto text-xs opacity-0 transition-opacity group-hover:opacity-100"},ae={class:"mt-auto border-t border-border px-6 py-3 lg:py-4"},ie={key:0,class:"rounded-2xl bg-secondary/60 p-3"},de=["title"],ue={class:"min-w-0 flex-1 overflow-hidden lg:ml-0"},pe={class:"min-w-0 flex flex-col gap-4 border-b border-border bg-card/70 px-6 py-5 backdrop-blur lg:flex-row lg:items-center lg:justify-between lg:px-10"},ce={class:"flex items-center gap-3"},xe={class:"text-xl font-semibold text-foreground lg:text-2xl"},fe={class:"flex flex-wrap items-center gap-3"},me={class:"h-full overflow-y-auto overflow-x-hidden bg-card/70 px-4 pb-10 pt-6 backdrop-blur lg:px-10 lg:pt-10"},be={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ge={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},ve={class:"flex items-center justify-between"},he={class:"mt-4 space-y-3 text-sm"},ye={class:"mt-1 flex items-start gap-2"},we={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ke={class:"mt-1 flex items-start gap-2"},_e={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ze={class:"mt-1 flex items-start gap-2"},Ce={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},He={class:"mt-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground"},Me={class:"flex flex-wrap gap-2 text-foreground"},Se={class:"mt-1 flex items-start gap-2"},Ve={class:"min-w-0 flex-1 rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},$e={class:"mt-6 flex items-center justify-end"},Ie=F({__name:"AppShell",setup(Ae){const L=E(),b=Z(),j=U(),c=J(),x=y(!1),o=y(!1),i=W(),g=y(!1),_=[{path:"/",label:"概览",icon:"M4 4h7v7H4V4zm9 0h7v4h-7V4zm0 6h7v10h-7V10zM4 13h7v7H4v-7z"},{path:"/accounts",label:"账号管理",icon:"M12 12a3.5 3.5 0 1 0-3.5-3.5A3.5 3.5 0 0 0 12 12zm0 2c-4.1 0-7.5 2.2-7.5 5v1h15v-1c0-2.8-3.4-5-7.5-5z"},{path:"/settings",label:"系统设置",icon:"M4 6h10v2H4V6zm12 0h4v2h-4V6zM4 11h6v2H4v-2zm8 0h8v2h-8v-2zM4 16h10v2H4v-2zm12 0h4v2h-4v-2z"},{path:"/monitor",label:"监控状态",icon:"M3 12h4l2-4 4 8 3-6h5v2h-4l-4 8-4-8-2 4H3v-2z"},{path:"/logs",label:"运行日志",icon:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h10v2H4v-2z"},{path:"/docs",label:"文档中心",icon:"M6 3h9l4 4v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm8 1.5V8h3.5L14 4.5zM8 11h8v2H8v-2zm0 4h8v2H8v-2z"}],B=f(()=>_.find(t=>t.path===b.path)?.label||"概览"),D=n=>{const r=`transition-colors ${o.value?"px-2 justify-center gap-0":"px-3 gap-3"}`;return b.path===n?`${r} bg-primary text-primary-foreground`:`${r} text-muted-foreground hover:bg-accent hover:text-accent-foreground`},I=n=>b.path===n?"bg-primary-foreground/15 text-primary-foreground border-primary-foreground/40":"bg-secondary text-muted-foreground group-hover:text-accent-foreground",v=f(()=>(c.settings?.basic?.base_url||""||window.location.origin).replace(/\/$/,"")),z=f(()=>`${v.value}/v1`),C=f(()=>`${v.value}/v1/chat/completions`),H=f(()=>c.settings?.basic?.api_key||"未设置"),T=["gemini-auto","gemini-2.5-flash","gemini-2.5-pro","gemini-3-flash-preview","gemini-3-pro-preview"];S(()=>b.path,()=>{x.value=!1});const M=localStorage.getItem("sidebar-collapsed");M&&(o.value=M==="true"),S(o,n=>{localStorage.setItem("sidebar-collapsed",n?"true":"false")});async function N(){await i.ask({title:"退出登录",message:"确定退出管理控制台吗?"})&&(await j.logout(),L.push({name:"login"}))}function P(){window.location.reload()}async function R(){g.value=!0,!c.settings&&!c.isLoading&&await c.loadSettings()}async function h(n){if(n)try{await navigator.clipboard.writeText(n)}catch(t){console.error("Copy failed",t)}}return(n,t)=>(s(),l("div",X,[e("div",Y,[x.value?(s(),l("div",{key:0,class:"fixed inset-0 z-30 bg-black/20 backdrop-blur-sm lg:hidden",onClick:t[0]||(t[0]=r=>x.value=!1)})):d("",!0),e("aside",{class:u(["fixed inset-y-0 left-0 z-40 w-72 -translate-x-full bg-card/90 backdrop-blur-sm lg:backdrop-blur-none border-r border-border transition-[width,transform] duration-200 ease-out will-change-[transform] transform-gpu flex flex-col lg:static lg:translate-x-0 lg:bg-card/80 lg:border-b-0 lg:border-r lg:sticky lg:top-0 lg:h-screen",[{"translate-x-0":x.value,"w-20 lg:w-20":o.value}]])},[e("div",{class:u(["flex h-16 items-center justify-between px-6 pt-4 lg:h-20 lg:pt-5",o.value?"justify-center px-0":""])},[e("div",{class:u(["flex items-center gap-2",o.value?"gap-0 justify-center w-full":""])},[t[9]||(t[9]=e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"text-foreground transition-colors hover:text-primary","aria-label":"GitHub"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-6 w-6",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})])],-1)),o.value?d("",!0):(s(),l("span",ee,"Gemini Business2API"))],2)],2),e("nav",{class:u(["pb-4 pt-4 lg:pt-6 flex-1 overflow-y-auto",o.value?"px-2":"px-3"])},[o.value?d("",!0):(s(),l("p",te," 导航 ")),e("div",re,[(s(),l(V,null,$(_,r=>m(a(k),{key:r.path,to:r.path,class:u(["group flex items-center rounded-2xl py-2 text-sm font-medium transition-colors overflow-hidden",D(r.path)]),title:o.value?r.label:void 0},{default:w(()=>[e("span",{class:u(["inline-flex h-9 w-9 items-center justify-center rounded-2xl border border-border",I(r.path)])},[(s(),l("svg",oe,[e("path",{d:r.icon},null,8,se)]))],2),o.value?d("",!0):(s(),l("span",ne,p(r.label),1)),o.value?d("",!0):(s(),l("span",le," 进入 "))]),_:2},1032,["to","class","title"])),64))])],2),e("div",ae,[o.value?d("",!0):(s(),l("div",ie,[...t[10]||(t[10]=[e("p",{class:"text-xs tracking-[0.12em] text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-1 transition-colors hover:text-foreground"}," gemini-business2api "),e("span",null," · 声明")],-1),e("p",{class:"mt-2 text-xs text-muted-foreground"}," 本项目仅限学习与研究用途,禁止用于商业用途。请保留本声明、原作者信息与开源来源。 ",-1)])])),e("div",{class:u(["mt-4 flex items-center gap-3",o.value?"justify-center":""])},[o.value?d("",!0):(s(),l("button",{key:0,onClick:N,class:"flex-1 rounded-2xl border border-border bg-background px-4 py-3 text-sm font-medium text-muted-foreground transition-colors hover:border-destructive/40 hover:text-destructive"}," 退出登录 ")),e("button",{class:"h-10 w-10 shrink-0 items-center justify-center rounded-2xl border border-border text-muted-foreground transition-all hover:border-primary hover:text-primary flex",onClick:t[1]||(t[1]=r=>o.value=!o.value),title:o.value?"展开侧边栏":"收起侧边栏"},[...t[11]||(t[11]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4 shrink-0",fill:"currentColor"},[e("path",{d:"M6 4h2v16H6V4zm4 4h8v2h-8V8zm0 6h8v2h-8v-2z"})],-1)])],8,de)],2)])],2),e("main",ue,[e("header",pe,[e("div",ce,[e("button",{class:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-border text-foreground transition-colors hover:border-primary hover:text-primary lg:hidden",onClick:t[2]||(t[2]=r=>x.value=!0),"aria-label":"打开导航"},[...t[12]||(t[12]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},[e("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])]),t[13]||(t[13]=K('',1)),e("h2",xe,p(B.value),1)]),e("div",fe,[e("button",{onClick:P,class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",title:"刷新"}," 刷新 "),e("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:R}," 接口信息 "),m(a(k),{to:"/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[14]||(t[14]=[A(" 状态监控 ",-1)])]),_:1}),m(a(k),{to:"/public/logs",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[15]||(t[15]=[A(" 公开日志 ",-1)])]),_:1})])]),e("div",me,[m(a(O))])])]),m(Q,{open:a(i).open.value,title:a(i).title.value,message:a(i).message.value,"confirm-text":a(i).confirmText.value,"cancel-text":a(i).cancelText.value,onConfirm:a(i).confirm,onCancel:a(i).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(s(),G(q,{to:"body"},[g.value?(s(),l("div",be,[e("div",ge,[e("div",ve,[t[16]||(t[16]=e("p",{class:"text-sm font-medium text-foreground"},"API 接口",-1)),e("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:t[3]||(t[3]=r=>g.value=!1)}," 关闭 ")]),t[22]||(t[22]=e("p",{class:"mt-2 text-xs text-muted-foreground"},"根据客户端选择对应接口",-1)),e("div",he,[e("div",null,[t[17]||(t[17]=e("p",{class:"text-xs text-muted-foreground"},"基础端点",-1)),e("div",ye,[e("p",we,p(v.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[4]||(t[4]=r=>h(v.value))}," 复制 ")])]),e("div",null,[t[18]||(t[18]=e("p",{class:"text-xs text-muted-foreground"},"SDK 接口",-1)),e("div",ke,[e("p",_e,p(z.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[5]||(t[5]=r=>h(z.value))}," 复制 ")])]),e("div",null,[t[19]||(t[19]=e("p",{class:"text-xs text-muted-foreground"},"完整接口",-1)),e("div",ze,[e("p",Ce,p(C.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[6]||(t[6]=r=>h(C.value))}," 复制 ")])]),e("div",null,[t[20]||(t[20]=e("p",{class:"text-xs text-muted-foreground"},"支持模型",-1)),e("div",He,[e("div",Me,[(s(),l(V,null,$(T,r=>e("span",{key:r,class:"rounded-full border border-border px-2 py-0.5 text-[11px]"},p(r),1)),64))])])]),e("div",null,[t[21]||(t[21]=e("p",{class:"text-xs text-muted-foreground"},"API 密钥",-1)),e("div",Se,[e("p",Ve,p(H.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[7]||(t[7]=r=>h(H.value))}," 复制 ")])])]),e("div",$e,[e("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:t[8]||(t[8]=r=>g.value=!1)}," 知道了 ")])])])):d("",!0)]))]))}});export{Ie as default}; diff --git a/static/assets/AppShell-C6gOM0Kd.js b/static/assets/AppShell-C6gOM0Kd.js new file mode 100644 index 0000000000000000000000000000000000000000..7b8323cfc5bbf61b9c1f803d3e6be151ab946439 --- /dev/null +++ b/static/assets/AppShell-C6gOM0Kd.js @@ -0,0 +1 @@ +import{d as F,l as U,h as y,i as f,B as Z,w as S,c as l,a as e,x as m,m as G,b as d,n as u,F as V,r as $,C as K,t as p,y as w,u as a,R as k,D as O,z as E,A as q,f as A,e as s}from"./index-CM73xqTK.js";import{u as J}from"./settings-vReTlwTm.js";import{_ as Q}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-szV8KRsH.js";import{u as W}from"./useConfirmDialog-WjrHNzIy.js";const X={class:"min-h-screen"},Y={class:"flex min-h-screen flex-col lg:flex-row"},ee={key:0,class:"text-base font-semibold text-foreground"},te={key:0,class:"px-3 pb-2 text-xs uppercase tracking-[0.28em] text-muted-foreground"},re={class:"space-y-1"},oe={"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},se=["d"],ne={key:0,class:"flex-1 min-w-0 truncate"},le={key:1,class:"ml-auto text-xs opacity-0 transition-opacity group-hover:opacity-100"},ae={class:"mt-auto border-t border-border px-6 py-3 lg:py-4"},ie={key:0,class:"rounded-2xl bg-secondary/60 p-3"},de=["title"],ue={class:"min-w-0 flex-1 overflow-hidden lg:ml-0"},pe={class:"min-w-0 flex flex-col gap-4 border-b border-border bg-card/70 px-6 py-5 backdrop-blur lg:flex-row lg:items-center lg:justify-between lg:px-10"},ce={class:"flex items-center gap-3"},xe={class:"text-xl font-semibold text-foreground lg:text-2xl"},fe={class:"flex flex-wrap items-center gap-3"},me={class:"h-full overflow-y-auto overflow-x-hidden bg-card/70 px-4 pb-10 pt-6 backdrop-blur lg:px-10 lg:pt-10"},be={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ge={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},ve={class:"flex items-center justify-between"},he={class:"mt-4 space-y-3 text-sm"},ye={class:"mt-1 flex items-start gap-2"},we={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ke={class:"mt-1 flex items-start gap-2"},_e={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ze={class:"mt-1 flex items-start gap-2"},Ce={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},He={class:"mt-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground"},Me={class:"flex flex-wrap gap-2 text-foreground"},Se={class:"mt-1 flex items-start gap-2"},Ve={class:"min-w-0 flex-1 rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},$e={class:"mt-6 flex items-center justify-end"},Ie=F({__name:"AppShell",setup(Ae){const L=q(),b=Z(),j=U(),c=J(),x=y(!1),o=y(!1),i=W(),g=y(!1),_=[{path:"/",label:"概览",icon:"M4 4h7v7H4V4zm9 0h7v4h-7V4zm0 6h7v10h-7V10zM4 13h7v7H4v-7z"},{path:"/accounts",label:"账号管理",icon:"M12 12a3.5 3.5 0 1 0-3.5-3.5A3.5 3.5 0 0 0 12 12zm0 2c-4.1 0-7.5 2.2-7.5 5v1h15v-1c0-2.8-3.4-5-7.5-5z"},{path:"/settings",label:"系统设置",icon:"M4 6h10v2H4V6zm12 0h4v2h-4V6zM4 11h6v2H4v-2zm8 0h8v2h-8v-2zM4 16h10v2H4v-2zm12 0h4v2h-4v-2z"},{path:"/monitor",label:"监控状态",icon:"M3 12h4l2-4 4 8 3-6h5v2h-4l-4 8-4-8-2 4H3v-2z"},{path:"/logs",label:"运行日志",icon:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h10v2H4v-2z"},{path:"/docs",label:"文档中心",icon:"M6 3h9l4 4v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm8 1.5V8h3.5L14 4.5zM8 11h8v2H8v-2zm0 4h8v2H8v-2z"}],B=f(()=>_.find(t=>t.path===b.path)?.label||"概览"),D=n=>{const r=`transition-colors ${o.value?"px-2 justify-center gap-0":"px-3 gap-3"}`;return b.path===n?`${r} bg-primary text-primary-foreground`:`${r} text-muted-foreground hover:bg-accent hover:text-accent-foreground`},I=n=>b.path===n?"bg-primary-foreground/15 text-primary-foreground border-primary-foreground/40":"bg-secondary text-muted-foreground group-hover:text-accent-foreground",v=f(()=>(c.settings?.basic?.base_url||""||window.location.origin).replace(/\/$/,"")),z=f(()=>`${v.value}/v1`),C=f(()=>`${v.value}/v1/chat/completions`),H=f(()=>c.settings?.basic?.api_key||"未设置"),T=["gemini-auto","gemini-2.5-flash","gemini-2.5-pro","gemini-3-flash-preview","gemini-3-pro-preview"];S(()=>b.path,()=>{x.value=!1});const M=localStorage.getItem("sidebar-collapsed");M&&(o.value=M==="true"),S(o,n=>{localStorage.setItem("sidebar-collapsed",n?"true":"false")});async function N(){await i.ask({title:"退出登录",message:"确定退出管理控制台吗?"})&&(await j.logout(),L.push({name:"login"}))}function P(){window.location.reload()}async function R(){g.value=!0,!c.settings&&!c.isLoading&&await c.loadSettings()}async function h(n){if(n)try{await navigator.clipboard.writeText(n)}catch(t){console.error("Copy failed",t)}}return(n,t)=>(s(),l("div",X,[e("div",Y,[x.value?(s(),l("div",{key:0,class:"fixed inset-0 z-30 bg-black/20 backdrop-blur-sm lg:hidden",onClick:t[0]||(t[0]=r=>x.value=!1)})):d("",!0),e("aside",{class:u(["fixed inset-y-0 left-0 z-40 w-72 -translate-x-full bg-card/90 backdrop-blur-sm lg:backdrop-blur-none border-r border-border transition-[width,transform] duration-200 ease-out will-change-[transform] transform-gpu flex flex-col lg:static lg:translate-x-0 lg:bg-card/80 lg:border-b-0 lg:border-r lg:sticky lg:top-0 lg:h-screen",[{"translate-x-0":x.value,"w-20 lg:w-20":o.value}]])},[e("div",{class:u(["flex h-16 items-center justify-between px-6 pt-4 lg:h-20 lg:pt-5",o.value?"justify-center px-0":""])},[e("div",{class:u(["flex items-center gap-2",o.value?"gap-0 justify-center w-full":""])},[t[9]||(t[9]=e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"text-foreground transition-colors hover:text-primary","aria-label":"GitHub"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-6 w-6",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})])],-1)),o.value?d("",!0):(s(),l("span",ee,"Gemini Business2API"))],2)],2),e("nav",{class:u(["pb-4 pt-4 lg:pt-6 flex-1 overflow-y-auto",o.value?"px-2":"px-3"])},[o.value?d("",!0):(s(),l("p",te," 导航 ")),e("div",re,[(s(),l(V,null,$(_,r=>m(a(k),{key:r.path,to:r.path,class:u(["group flex items-center rounded-2xl py-2 text-sm font-medium transition-colors overflow-hidden",D(r.path)]),title:o.value?r.label:void 0},{default:w(()=>[e("span",{class:u(["inline-flex h-9 w-9 items-center justify-center rounded-2xl border border-border",I(r.path)])},[(s(),l("svg",oe,[e("path",{d:r.icon},null,8,se)]))],2),o.value?d("",!0):(s(),l("span",ne,p(r.label),1)),o.value?d("",!0):(s(),l("span",le," 进入 "))]),_:2},1032,["to","class","title"])),64))])],2),e("div",ae,[o.value?d("",!0):(s(),l("div",ie,[...t[10]||(t[10]=[e("p",{class:"text-xs tracking-[0.12em] text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-1 transition-colors hover:text-foreground"}," gemini-business2api "),e("span",null," · 声明")],-1),e("p",{class:"mt-2 text-xs text-muted-foreground"}," 本项目仅限学习与研究用途,禁止用于商业用途。请保留本声明、原作者信息与开源来源。 ",-1)])])),e("div",{class:u(["mt-4 flex items-center gap-3",o.value?"justify-center":""])},[o.value?d("",!0):(s(),l("button",{key:0,onClick:N,class:"flex-1 rounded-2xl border border-border bg-background px-4 py-3 text-sm font-medium text-muted-foreground transition-colors hover:border-destructive/40 hover:text-destructive"}," 退出登录 ")),e("button",{class:"h-10 w-10 shrink-0 items-center justify-center rounded-2xl border border-border text-muted-foreground transition-all hover:border-primary hover:text-primary flex",onClick:t[1]||(t[1]=r=>o.value=!o.value),title:o.value?"展开侧边栏":"收起侧边栏"},[...t[11]||(t[11]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4 shrink-0",fill:"currentColor"},[e("path",{d:"M6 4h2v16H6V4zm4 4h8v2h-8V8zm0 6h8v2h-8v-2z"})],-1)])],8,de)],2)])],2),e("main",ue,[e("header",pe,[e("div",ce,[e("button",{class:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-border text-foreground transition-colors hover:border-primary hover:text-primary lg:hidden",onClick:t[2]||(t[2]=r=>x.value=!0),"aria-label":"打开导航"},[...t[12]||(t[12]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},[e("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])]),t[13]||(t[13]=K('',1)),e("h2",xe,p(B.value),1)]),e("div",fe,[e("button",{onClick:P,class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",title:"刷新"}," 刷新 "),e("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:R}," 接口信息 "),m(a(k),{to:"/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[14]||(t[14]=[A(" 状态监控 ",-1)])]),_:1}),m(a(k),{to:"/public/logs",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[15]||(t[15]=[A(" 公开日志 ",-1)])]),_:1})])]),e("div",me,[m(a(O))])])]),m(Q,{open:a(i).open.value,title:a(i).title.value,message:a(i).message.value,"confirm-text":a(i).confirmText.value,"cancel-text":a(i).cancelText.value,onConfirm:a(i).confirm,onCancel:a(i).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(s(),G(E,{to:"body"},[g.value?(s(),l("div",be,[e("div",ge,[e("div",ve,[t[16]||(t[16]=e("p",{class:"text-sm font-medium text-foreground"},"API 接口",-1)),e("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:t[3]||(t[3]=r=>g.value=!1)}," 关闭 ")]),t[22]||(t[22]=e("p",{class:"mt-2 text-xs text-muted-foreground"},"根据客户端选择对应接口",-1)),e("div",he,[e("div",null,[t[17]||(t[17]=e("p",{class:"text-xs text-muted-foreground"},"基础端点",-1)),e("div",ye,[e("p",we,p(v.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[4]||(t[4]=r=>h(v.value))}," 复制 ")])]),e("div",null,[t[18]||(t[18]=e("p",{class:"text-xs text-muted-foreground"},"SDK 接口",-1)),e("div",ke,[e("p",_e,p(z.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[5]||(t[5]=r=>h(z.value))}," 复制 ")])]),e("div",null,[t[19]||(t[19]=e("p",{class:"text-xs text-muted-foreground"},"完整接口",-1)),e("div",ze,[e("p",Ce,p(C.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[6]||(t[6]=r=>h(C.value))}," 复制 ")])]),e("div",null,[t[20]||(t[20]=e("p",{class:"text-xs text-muted-foreground"},"支持模型",-1)),e("div",He,[e("div",Me,[(s(),l(V,null,$(T,r=>e("span",{key:r,class:"rounded-full border border-border px-2 py-0.5 text-[11px]"},p(r),1)),64))])])]),e("div",null,[t[21]||(t[21]=e("p",{class:"text-xs text-muted-foreground"},"API 密钥",-1)),e("div",Se,[e("p",Ve,p(H.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[7]||(t[7]=r=>h(H.value))}," 复制 ")])])]),e("div",$e,[e("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:t[8]||(t[8]=r=>g.value=!1)}," 知道了 ")])])])):d("",!0)]))]))}});export{Ie as default}; diff --git a/static/assets/AppShell-CI3sE0H8.js b/static/assets/AppShell-CI3sE0H8.js new file mode 100644 index 0000000000000000000000000000000000000000..de5120128d234b7c41b80317885e7834fbad2832 --- /dev/null +++ b/static/assets/AppShell-CI3sE0H8.js @@ -0,0 +1 @@ +import{d as F,l as U,h as y,i as f,y as Z,z as S,c as l,a as e,p as m,m as G,b as d,n as u,F as V,r as $,A as K,t as p,s as w,u as a,R as k,B as O,T as E,x as q,f as A,e as s}from"./index-Bjh6Z8Zq.js";import{u as J}from"./settings-BgKIn-YY.js";import{_ as Q}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-NECRqKOO.js";import{u as W}from"./useConfirmDialog-GDc9JuxO.js";const X={class:"min-h-screen"},Y={class:"flex min-h-screen flex-col lg:flex-row"},ee={key:0,class:"text-base font-semibold text-foreground"},te={key:0,class:"px-3 pb-2 text-xs uppercase tracking-[0.28em] text-muted-foreground"},re={class:"space-y-1"},oe={"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},se=["d"],ne={key:0,class:"flex-1 min-w-0 truncate"},le={key:1,class:"ml-auto text-xs opacity-0 transition-opacity group-hover:opacity-100"},ae={class:"mt-auto border-t border-border px-6 py-3 lg:py-4"},ie={key:0,class:"rounded-2xl bg-secondary/60 p-3"},de=["title"],ue={class:"min-w-0 flex-1 overflow-hidden lg:ml-0"},pe={class:"min-w-0 flex flex-col gap-4 border-b border-border bg-card/70 px-6 py-5 backdrop-blur lg:flex-row lg:items-center lg:justify-between lg:px-10"},ce={class:"flex items-center gap-3"},xe={class:"text-xl font-semibold text-foreground lg:text-2xl"},fe={class:"flex flex-wrap items-center gap-3"},me={class:"h-full overflow-y-auto overflow-x-hidden bg-card/70 px-4 pb-10 pt-6 backdrop-blur lg:px-10 lg:pt-10"},be={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ge={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},ve={class:"flex items-center justify-between"},he={class:"mt-4 space-y-3 text-sm"},ye={class:"mt-1 flex items-start gap-2"},we={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ke={class:"mt-1 flex items-start gap-2"},_e={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ze={class:"mt-1 flex items-start gap-2"},Ce={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},He={class:"mt-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground"},Me={class:"flex flex-wrap gap-2 text-foreground"},Se={class:"mt-1 flex items-start gap-2"},Ve={class:"min-w-0 flex-1 rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},$e={class:"mt-6 flex items-center justify-end"},Ie=F({__name:"AppShell",setup(Ae){const L=q(),b=Z(),j=U(),c=J(),x=y(!1),o=y(!1),i=W(),g=y(!1),_=[{path:"/",label:"概览",icon:"M4 4h7v7H4V4zm9 0h7v4h-7V4zm0 6h7v10h-7V10zM4 13h7v7H4v-7z"},{path:"/accounts",label:"账号管理",icon:"M12 12a3.5 3.5 0 1 0-3.5-3.5A3.5 3.5 0 0 0 12 12zm0 2c-4.1 0-7.5 2.2-7.5 5v1h15v-1c0-2.8-3.4-5-7.5-5z"},{path:"/settings",label:"系统设置",icon:"M4 6h10v2H4V6zm12 0h4v2h-4V6zM4 11h6v2H4v-2zm8 0h8v2h-8v-2zM4 16h10v2H4v-2zm12 0h4v2h-4v-2z"},{path:"/monitor",label:"监控状态",icon:"M3 12h4l2-4 4 8 3-6h5v2h-4l-4 8-4-8-2 4H3v-2z"},{path:"/logs",label:"运行日志",icon:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h10v2H4v-2z"},{path:"/docs",label:"文档中心",icon:"M6 3h9l4 4v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm8 1.5V8h3.5L14 4.5zM8 11h8v2H8v-2zm0 4h8v2H8v-2z"}],B=f(()=>_.find(t=>t.path===b.path)?.label||"概览"),D=n=>{const r=`transition-colors ${o.value?"px-2 justify-center gap-0":"px-3 gap-3"}`;return b.path===n?`${r} bg-primary text-primary-foreground`:`${r} text-muted-foreground hover:bg-accent hover:text-accent-foreground`},I=n=>b.path===n?"bg-primary-foreground/15 text-primary-foreground border-primary-foreground/40":"bg-secondary text-muted-foreground group-hover:text-accent-foreground",v=f(()=>(c.settings?.basic?.base_url||""||window.location.origin).replace(/\/$/,"")),z=f(()=>`${v.value}/v1`),C=f(()=>`${v.value}/v1/chat/completions`),H=f(()=>c.settings?.basic?.api_key||"未设置"),T=["gemini-auto","gemini-2.5-flash","gemini-2.5-pro","gemini-3-flash-preview","gemini-3-pro-preview"];S(()=>b.path,()=>{x.value=!1});const M=localStorage.getItem("sidebar-collapsed");M&&(o.value=M==="true"),S(o,n=>{localStorage.setItem("sidebar-collapsed",n?"true":"false")});async function N(){await i.ask({title:"退出登录",message:"确定退出管理控制台吗?"})&&(await j.logout(),L.push({name:"login"}))}function P(){window.location.reload()}async function R(){g.value=!0,!c.settings&&!c.isLoading&&await c.loadSettings()}async function h(n){if(n)try{await navigator.clipboard.writeText(n)}catch(t){console.error("Copy failed",t)}}return(n,t)=>(s(),l("div",X,[e("div",Y,[x.value?(s(),l("div",{key:0,class:"fixed inset-0 z-30 bg-black/20 backdrop-blur-sm lg:hidden",onClick:t[0]||(t[0]=r=>x.value=!1)})):d("",!0),e("aside",{class:u(["fixed inset-y-0 left-0 z-40 w-72 -translate-x-full bg-card/90 backdrop-blur-sm lg:backdrop-blur-none border-r border-border transition-[width,transform] duration-200 ease-out will-change-[transform] transform-gpu flex flex-col lg:static lg:translate-x-0 lg:bg-card/80 lg:border-b-0 lg:border-r lg:sticky lg:top-0 lg:h-screen",[{"translate-x-0":x.value,"w-20 lg:w-20":o.value}]])},[e("div",{class:u(["flex h-16 items-center justify-between px-6 pt-4 lg:h-20 lg:pt-5",o.value?"justify-center px-0":""])},[e("div",{class:u(["flex items-center gap-2",o.value?"gap-0 justify-center w-full":""])},[t[9]||(t[9]=e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"text-foreground transition-colors hover:text-primary","aria-label":"GitHub"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-6 w-6",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})])],-1)),o.value?d("",!0):(s(),l("span",ee,"Gemini Business2API"))],2)],2),e("nav",{class:u(["pb-4 pt-4 lg:pt-6 flex-1 overflow-y-auto",o.value?"px-2":"px-3"])},[o.value?d("",!0):(s(),l("p",te," 导航 ")),e("div",re,[(s(),l(V,null,$(_,r=>m(a(k),{key:r.path,to:r.path,class:u(["group flex items-center rounded-2xl py-2 text-sm font-medium transition-colors overflow-hidden",D(r.path)]),title:o.value?r.label:void 0},{default:w(()=>[e("span",{class:u(["inline-flex h-9 w-9 items-center justify-center rounded-2xl border border-border",I(r.path)])},[(s(),l("svg",oe,[e("path",{d:r.icon},null,8,se)]))],2),o.value?d("",!0):(s(),l("span",ne,p(r.label),1)),o.value?d("",!0):(s(),l("span",le," 进入 "))]),_:2},1032,["to","class","title"])),64))])],2),e("div",ae,[o.value?d("",!0):(s(),l("div",ie,[...t[10]||(t[10]=[e("p",{class:"text-xs tracking-[0.12em] text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-1 transition-colors hover:text-foreground"}," gemini-business2api "),e("span",null," · 声明")],-1),e("p",{class:"mt-2 text-xs text-muted-foreground"}," 本项目仅限学习与研究用途,禁止用于商业用途。请保留本声明、原作者信息与开源来源。 ",-1)])])),e("div",{class:u(["mt-4 flex items-center gap-3",o.value?"justify-center":""])},[o.value?d("",!0):(s(),l("button",{key:0,onClick:N,class:"flex-1 rounded-2xl border border-border bg-background px-4 py-3 text-sm font-medium text-muted-foreground transition-colors hover:border-destructive/40 hover:text-destructive"}," 退出登录 ")),e("button",{class:"h-10 w-10 shrink-0 items-center justify-center rounded-2xl border border-border text-muted-foreground transition-all hover:border-primary hover:text-primary flex",onClick:t[1]||(t[1]=r=>o.value=!o.value),title:o.value?"展开侧边栏":"收起侧边栏"},[...t[11]||(t[11]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4 shrink-0",fill:"currentColor"},[e("path",{d:"M6 4h2v16H6V4zm4 4h8v2h-8V8zm0 6h8v2h-8v-2z"})],-1)])],8,de)],2)])],2),e("main",ue,[e("header",pe,[e("div",ce,[e("button",{class:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-border text-foreground transition-colors hover:border-primary hover:text-primary lg:hidden",onClick:t[2]||(t[2]=r=>x.value=!0),"aria-label":"打开导航"},[...t[12]||(t[12]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},[e("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])]),t[13]||(t[13]=K('',1)),e("h2",xe,p(B.value),1)]),e("div",fe,[e("button",{onClick:P,class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",title:"刷新"}," 刷新 "),e("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:R}," 接口信息 "),m(a(k),{to:"/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[14]||(t[14]=[A(" 状态监控 ",-1)])]),_:1}),m(a(k),{to:"/public/logs",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[15]||(t[15]=[A(" 公开日志 ",-1)])]),_:1})])]),e("div",me,[m(a(O))])])]),m(Q,{open:a(i).open.value,title:a(i).title.value,message:a(i).message.value,"confirm-text":a(i).confirmText.value,"cancel-text":a(i).cancelText.value,onConfirm:a(i).confirm,onCancel:a(i).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(s(),G(E,{to:"body"},[g.value?(s(),l("div",be,[e("div",ge,[e("div",ve,[t[16]||(t[16]=e("p",{class:"text-sm font-medium text-foreground"},"API 接口",-1)),e("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:t[3]||(t[3]=r=>g.value=!1)}," 关闭 ")]),t[22]||(t[22]=e("p",{class:"mt-2 text-xs text-muted-foreground"},"根据客户端选择对应接口",-1)),e("div",he,[e("div",null,[t[17]||(t[17]=e("p",{class:"text-xs text-muted-foreground"},"基础端点",-1)),e("div",ye,[e("p",we,p(v.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[4]||(t[4]=r=>h(v.value))}," 复制 ")])]),e("div",null,[t[18]||(t[18]=e("p",{class:"text-xs text-muted-foreground"},"SDK 接口",-1)),e("div",ke,[e("p",_e,p(z.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[5]||(t[5]=r=>h(z.value))}," 复制 ")])]),e("div",null,[t[19]||(t[19]=e("p",{class:"text-xs text-muted-foreground"},"完整接口",-1)),e("div",ze,[e("p",Ce,p(C.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[6]||(t[6]=r=>h(C.value))}," 复制 ")])]),e("div",null,[t[20]||(t[20]=e("p",{class:"text-xs text-muted-foreground"},"支持模型",-1)),e("div",He,[e("div",Me,[(s(),l(V,null,$(T,r=>e("span",{key:r,class:"rounded-full border border-border px-2 py-0.5 text-[11px]"},p(r),1)),64))])])]),e("div",null,[t[21]||(t[21]=e("p",{class:"text-xs text-muted-foreground"},"API 密钥",-1)),e("div",Se,[e("p",Ve,p(H.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[7]||(t[7]=r=>h(H.value))}," 复制 ")])])]),e("div",$e,[e("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:t[8]||(t[8]=r=>g.value=!1)}," 知道了 ")])])])):d("",!0)]))]))}});export{Ie as default}; diff --git a/static/assets/AppShell-CXOssFu_.js b/static/assets/AppShell-CXOssFu_.js new file mode 100644 index 0000000000000000000000000000000000000000..9ab90f8a8b1a40006731a40cebccba33b8e45314 --- /dev/null +++ b/static/assets/AppShell-CXOssFu_.js @@ -0,0 +1 @@ +import{d as F,l as U,h as y,i as f,q as Z,s as S,c as l,a as e,x as m,y as G,b as d,n as u,F as V,r as $,z as K,t as p,A as w,u as a,R as k,B as O,T as q,p as E,f as A,e as s}from"./index-CkXB0iyt.js";import{u as J}from"./settings-B_knXf3v.js";import{_ as Q}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-87LA-h3c.js";import{u as W}from"./useConfirmDialog-BpSB-4KN.js";const X={class:"min-h-screen"},Y={class:"flex min-h-screen flex-col lg:flex-row"},ee={key:0,class:"text-base font-semibold text-foreground"},te={key:0,class:"px-3 pb-2 text-xs uppercase tracking-[0.28em] text-muted-foreground"},re={class:"space-y-1"},oe={"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},se=["d"],ne={key:0,class:"flex-1 min-w-0 truncate"},le={key:1,class:"ml-auto text-xs opacity-0 transition-opacity group-hover:opacity-100"},ae={class:"mt-auto border-t border-border px-6 py-3 lg:py-4"},ie={key:0,class:"rounded-2xl bg-secondary/60 p-3"},de=["title"],ue={class:"min-w-0 flex-1 overflow-hidden lg:ml-0"},pe={class:"min-w-0 flex flex-col gap-4 border-b border-border bg-card/70 px-6 py-5 backdrop-blur lg:flex-row lg:items-center lg:justify-between lg:px-10"},ce={class:"flex items-center gap-3"},xe={class:"text-xl font-semibold text-foreground lg:text-2xl"},fe={class:"flex flex-wrap items-center gap-3"},me={class:"h-full overflow-y-auto overflow-x-hidden bg-card/70 px-4 pb-10 pt-6 backdrop-blur lg:px-10 lg:pt-10"},be={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ge={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},ve={class:"flex items-center justify-between"},he={class:"mt-4 space-y-3 text-sm"},ye={class:"mt-1 flex items-start gap-2"},we={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ke={class:"mt-1 flex items-start gap-2"},_e={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ze={class:"mt-1 flex items-start gap-2"},Ce={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},He={class:"mt-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground"},Me={class:"flex flex-wrap gap-2 text-foreground"},Se={class:"mt-1 flex items-start gap-2"},Ve={class:"min-w-0 flex-1 rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},$e={class:"mt-6 flex items-center justify-end"},Ie=F({__name:"AppShell",setup(Ae){const L=E(),b=Z(),j=U(),c=J(),x=y(!1),o=y(!1),i=W(),g=y(!1),_=[{path:"/",label:"概览",icon:"M4 4h7v7H4V4zm9 0h7v4h-7V4zm0 6h7v10h-7V10zM4 13h7v7H4v-7z"},{path:"/accounts",label:"账号管理",icon:"M12 12a3.5 3.5 0 1 0-3.5-3.5A3.5 3.5 0 0 0 12 12zm0 2c-4.1 0-7.5 2.2-7.5 5v1h15v-1c0-2.8-3.4-5-7.5-5z"},{path:"/settings",label:"系统设置",icon:"M4 6h10v2H4V6zm12 0h4v2h-4V6zM4 11h6v2H4v-2zm8 0h8v2h-8v-2zM4 16h10v2H4v-2zm12 0h4v2h-4v-2z"},{path:"/monitor",label:"监控状态",icon:"M3 12h4l2-4 4 8 3-6h5v2h-4l-4 8-4-8-2 4H3v-2z"},{path:"/logs",label:"运行日志",icon:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h10v2H4v-2z"},{path:"/docs",label:"文档中心",icon:"M6 3h9l4 4v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm8 1.5V8h3.5L14 4.5zM8 11h8v2H8v-2zm0 4h8v2H8v-2z"}],B=f(()=>_.find(t=>t.path===b.path)?.label||"概览"),D=n=>{const r=`transition-colors ${o.value?"px-2 justify-center gap-0":"px-3 gap-3"}`;return b.path===n?`${r} bg-primary text-primary-foreground`:`${r} text-muted-foreground hover:bg-accent hover:text-accent-foreground`},I=n=>b.path===n?"bg-primary-foreground/15 text-primary-foreground border-primary-foreground/40":"bg-secondary text-muted-foreground group-hover:text-accent-foreground",v=f(()=>(c.settings?.basic?.base_url||""||window.location.origin).replace(/\/$/,"")),z=f(()=>`${v.value}/v1`),C=f(()=>`${v.value}/v1/chat/completions`),H=f(()=>c.settings?.basic?.api_key||"未设置"),T=["gemini-auto","gemini-2.5-flash","gemini-2.5-pro","gemini-3-flash-preview","gemini-3-pro-preview"];S(()=>b.path,()=>{x.value=!1});const M=localStorage.getItem("sidebar-collapsed");M&&(o.value=M==="true"),S(o,n=>{localStorage.setItem("sidebar-collapsed",n?"true":"false")});async function N(){await i.ask({title:"退出登录",message:"确定退出管理控制台吗?"})&&(await j.logout(),L.push({name:"login"}))}function P(){window.location.reload()}async function R(){g.value=!0,!c.settings&&!c.isLoading&&await c.loadSettings()}async function h(n){if(n)try{await navigator.clipboard.writeText(n)}catch(t){console.error("Copy failed",t)}}return(n,t)=>(s(),l("div",X,[e("div",Y,[x.value?(s(),l("div",{key:0,class:"fixed inset-0 z-30 bg-black/20 backdrop-blur-sm lg:hidden",onClick:t[0]||(t[0]=r=>x.value=!1)})):d("",!0),e("aside",{class:u(["fixed inset-y-0 left-0 z-40 w-72 -translate-x-full bg-card/90 backdrop-blur-sm lg:backdrop-blur-none border-r border-border transition-transform duration-200 ease-out will-change-[transform] transform-gpu flex flex-col lg:static lg:translate-x-0 lg:bg-card/80 lg:border-b-0 lg:border-r lg:sticky lg:top-0 lg:h-screen",[{"translate-x-0":x.value,"w-20 lg:w-20":o.value}]])},[e("div",{class:u(["flex h-16 items-center justify-between px-6 pt-4 lg:h-20 lg:pt-5",o.value?"justify-center px-0":""])},[e("div",{class:u(["flex items-center gap-2",o.value?"gap-0 justify-center w-full":""])},[t[9]||(t[9]=e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"text-foreground transition-colors hover:text-primary","aria-label":"GitHub"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-6 w-6",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})])],-1)),o.value?d("",!0):(s(),l("span",ee,"Gemini Business2API"))],2)],2),e("nav",{class:u(["pb-4 pt-4 lg:pt-6 flex-1 overflow-y-auto",o.value?"px-2":"px-3"])},[o.value?d("",!0):(s(),l("p",te," 导航 ")),e("div",re,[(s(),l(V,null,$(_,r=>m(a(k),{key:r.path,to:r.path,class:u(["group flex items-center rounded-2xl py-2 text-sm font-medium transition-colors overflow-hidden",D(r.path)]),title:o.value?r.label:void 0},{default:w(()=>[e("span",{class:u(["inline-flex h-9 w-9 items-center justify-center rounded-2xl border border-border",I(r.path)])},[(s(),l("svg",oe,[e("path",{d:r.icon},null,8,se)]))],2),o.value?d("",!0):(s(),l("span",ne,p(r.label),1)),o.value?d("",!0):(s(),l("span",le," 进入 "))]),_:2},1032,["to","class","title"])),64))])],2),e("div",ae,[o.value?d("",!0):(s(),l("div",ie,[...t[10]||(t[10]=[e("p",{class:"text-xs tracking-[0.12em] text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-1 transition-colors hover:text-foreground"}," gemini-business2api "),e("span",null," · 声明")],-1),e("p",{class:"mt-2 text-xs text-muted-foreground"}," 本项目仅限学习与研究用途,禁止用于商业用途。请保留本声明、原作者信息与开源来源。 ",-1)])])),e("div",{class:u(["mt-4 flex items-center gap-3",o.value?"justify-center":""])},[o.value?d("",!0):(s(),l("button",{key:0,onClick:N,class:"flex-1 rounded-2xl border border-border bg-background px-4 py-3 text-sm font-medium text-muted-foreground transition-colors hover:border-destructive/40 hover:text-destructive"}," 退出登录 ")),e("button",{class:"h-10 w-10 shrink-0 items-center justify-center rounded-2xl border border-border text-muted-foreground transition-all hover:border-primary hover:text-primary flex",onClick:t[1]||(t[1]=r=>o.value=!o.value),title:o.value?"展开侧边栏":"收起侧边栏"},[...t[11]||(t[11]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4 shrink-0",fill:"currentColor"},[e("path",{d:"M6 4h2v16H6V4zm4 4h8v2h-8V8zm0 6h8v2h-8v-2z"})],-1)])],8,de)],2)])],2),e("main",ue,[e("header",pe,[e("div",ce,[e("button",{class:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-border text-foreground transition-colors hover:border-primary hover:text-primary lg:hidden",onClick:t[2]||(t[2]=r=>x.value=!0),"aria-label":"打开导航"},[...t[12]||(t[12]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},[e("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])]),t[13]||(t[13]=K('',1)),e("h2",xe,p(B.value),1)]),e("div",fe,[e("button",{onClick:P,class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",title:"刷新"}," 刷新 "),e("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:R}," 接口信息 "),m(a(k),{to:"/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[14]||(t[14]=[A(" 状态监控 ",-1)])]),_:1}),m(a(k),{to:"/public/logs",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[15]||(t[15]=[A(" 公开日志 ",-1)])]),_:1})])]),e("div",me,[m(a(O))])])]),m(Q,{open:a(i).open.value,title:a(i).title.value,message:a(i).message.value,"confirm-text":a(i).confirmText.value,"cancel-text":a(i).cancelText.value,onConfirm:a(i).confirm,onCancel:a(i).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(s(),G(q,{to:"body"},[g.value?(s(),l("div",be,[e("div",ge,[e("div",ve,[t[16]||(t[16]=e("p",{class:"text-sm font-medium text-foreground"},"API 接口",-1)),e("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:t[3]||(t[3]=r=>g.value=!1)}," 关闭 ")]),t[22]||(t[22]=e("p",{class:"mt-2 text-xs text-muted-foreground"},"根据客户端选择对应接口",-1)),e("div",he,[e("div",null,[t[17]||(t[17]=e("p",{class:"text-xs text-muted-foreground"},"基础端点",-1)),e("div",ye,[e("p",we,p(v.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[4]||(t[4]=r=>h(v.value))}," 复制 ")])]),e("div",null,[t[18]||(t[18]=e("p",{class:"text-xs text-muted-foreground"},"SDK 接口",-1)),e("div",ke,[e("p",_e,p(z.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[5]||(t[5]=r=>h(z.value))}," 复制 ")])]),e("div",null,[t[19]||(t[19]=e("p",{class:"text-xs text-muted-foreground"},"完整接口",-1)),e("div",ze,[e("p",Ce,p(C.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[6]||(t[6]=r=>h(C.value))}," 复制 ")])]),e("div",null,[t[20]||(t[20]=e("p",{class:"text-xs text-muted-foreground"},"支持模型",-1)),e("div",He,[e("div",Me,[(s(),l(V,null,$(T,r=>e("span",{key:r,class:"rounded-full border border-border px-2 py-0.5 text-[11px]"},p(r),1)),64))])])]),e("div",null,[t[21]||(t[21]=e("p",{class:"text-xs text-muted-foreground"},"API 密钥",-1)),e("div",Se,[e("p",Ve,p(H.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[7]||(t[7]=r=>h(H.value))}," 复制 ")])])]),e("div",$e,[e("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:t[8]||(t[8]=r=>g.value=!1)}," 知道了 ")])])])):d("",!0)]))]))}});export{Ie as default}; diff --git a/static/assets/AppShell-CsF8NWoD.js b/static/assets/AppShell-CsF8NWoD.js new file mode 100644 index 0000000000000000000000000000000000000000..c8a25cbdcbdecb60e5b9f761ff8adf159067586b --- /dev/null +++ b/static/assets/AppShell-CsF8NWoD.js @@ -0,0 +1 @@ +import{d as F,l as U,h as y,i as f,q as Z,s as S,c as l,a as e,x as m,y as G,b as d,n as u,F as V,r as $,z as K,t as p,A as w,u as a,R as k,B as O,T as q,p as E,f as A,e as s}from"./index-DrM07qAY.js";import{u as J}from"./settings-BYE7wugy.js";import{_ as Q}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-2Xqtgrin.js";import{u as W}from"./useConfirmDialog-CfZjR4ey.js";const X={class:"min-h-screen"},Y={class:"flex min-h-screen flex-col lg:flex-row"},ee={key:0,class:"text-base font-semibold text-foreground"},te={key:0,class:"px-3 pb-2 text-xs uppercase tracking-[0.28em] text-muted-foreground"},re={class:"space-y-1"},oe={"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},se=["d"],ne={key:0,class:"flex-1 min-w-0 truncate"},le={key:1,class:"ml-auto text-xs opacity-0 transition-opacity group-hover:opacity-100"},ae={class:"mt-auto border-t border-border px-6 py-3 lg:py-4"},ie={key:0,class:"rounded-2xl bg-secondary/60 p-3"},de=["title"],ue={class:"min-w-0 flex-1 overflow-hidden lg:ml-0"},pe={class:"min-w-0 flex flex-col gap-4 border-b border-border bg-card/70 px-6 py-5 backdrop-blur lg:flex-row lg:items-center lg:justify-between lg:px-10"},ce={class:"flex items-center gap-3"},xe={class:"text-xl font-semibold text-foreground lg:text-2xl"},fe={class:"flex flex-wrap items-center gap-3"},me={class:"h-full overflow-y-auto overflow-x-hidden bg-card/70 px-4 pb-10 pt-6 backdrop-blur lg:px-10 lg:pt-10"},be={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ge={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},ve={class:"flex items-center justify-between"},he={class:"mt-4 space-y-3 text-sm"},ye={class:"mt-1 flex items-start gap-2"},we={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ke={class:"mt-1 flex items-start gap-2"},_e={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ze={class:"mt-1 flex items-start gap-2"},Ce={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},He={class:"mt-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground"},Me={class:"flex flex-wrap gap-2 text-foreground"},Se={class:"mt-1 flex items-start gap-2"},Ve={class:"min-w-0 flex-1 rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},$e={class:"mt-6 flex items-center justify-end"},Ie=F({__name:"AppShell",setup(Ae){const L=E(),b=Z(),j=U(),c=J(),x=y(!1),o=y(!1),i=W(),g=y(!1),_=[{path:"/",label:"概览",icon:"M4 4h7v7H4V4zm9 0h7v4h-7V4zm0 6h7v10h-7V10zM4 13h7v7H4v-7z"},{path:"/accounts",label:"账号管理",icon:"M12 12a3.5 3.5 0 1 0-3.5-3.5A3.5 3.5 0 0 0 12 12zm0 2c-4.1 0-7.5 2.2-7.5 5v1h15v-1c0-2.8-3.4-5-7.5-5z"},{path:"/settings",label:"系统设置",icon:"M4 6h10v2H4V6zm12 0h4v2h-4V6zM4 11h6v2H4v-2zm8 0h8v2h-8v-2zM4 16h10v2H4v-2zm12 0h4v2h-4v-2z"},{path:"/monitor",label:"监控状态",icon:"M3 12h4l2-4 4 8 3-6h5v2h-4l-4 8-4-8-2 4H3v-2z"},{path:"/logs",label:"运行日志",icon:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h10v2H4v-2z"},{path:"/docs",label:"文档中心",icon:"M6 3h9l4 4v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm8 1.5V8h3.5L14 4.5zM8 11h8v2H8v-2zm0 4h8v2H8v-2z"}],B=f(()=>_.find(t=>t.path===b.path)?.label||"概览"),D=n=>{const r=`transition-colors ${o.value?"px-2 justify-center gap-0":"px-3 gap-3"}`;return b.path===n?`${r} bg-primary text-primary-foreground`:`${r} text-muted-foreground hover:bg-accent hover:text-accent-foreground`},I=n=>b.path===n?"bg-primary-foreground/15 text-primary-foreground border-primary-foreground/40":"bg-secondary text-muted-foreground group-hover:text-accent-foreground",v=f(()=>(c.settings?.basic?.base_url||""||window.location.origin).replace(/\/$/,"")),z=f(()=>`${v.value}/v1`),C=f(()=>`${v.value}/v1/chat/completions`),H=f(()=>c.settings?.basic?.api_key||"未设置"),T=["gemini-auto","gemini-2.5-flash","gemini-2.5-pro","gemini-3-flash-preview","gemini-3-pro-preview"];S(()=>b.path,()=>{x.value=!1});const M=localStorage.getItem("sidebar-collapsed");M&&(o.value=M==="true"),S(o,n=>{localStorage.setItem("sidebar-collapsed",n?"true":"false")});async function N(){await i.ask({title:"退出登录",message:"确定退出管理控制台吗?"})&&(await j.logout(),L.push({name:"login"}))}function P(){window.location.reload()}async function R(){g.value=!0,!c.settings&&!c.isLoading&&await c.loadSettings()}async function h(n){if(n)try{await navigator.clipboard.writeText(n)}catch(t){console.error("Copy failed",t)}}return(n,t)=>(s(),l("div",X,[e("div",Y,[x.value?(s(),l("div",{key:0,class:"fixed inset-0 z-30 bg-black/20 backdrop-blur-sm lg:hidden",onClick:t[0]||(t[0]=r=>x.value=!1)})):d("",!0),e("aside",{class:u(["fixed inset-y-0 left-0 z-40 w-72 -translate-x-full bg-card/90 backdrop-blur-sm lg:backdrop-blur-none border-r border-border transition-transform duration-200 ease-out will-change-[transform] transform-gpu flex flex-col lg:static lg:translate-x-0 lg:bg-card/80 lg:border-b-0 lg:border-r lg:sticky lg:top-0 lg:h-screen",[{"translate-x-0":x.value,"w-20 lg:w-20":o.value}]])},[e("div",{class:u(["flex h-16 items-center justify-between px-6 pt-4 lg:h-20 lg:pt-5",o.value?"justify-center px-0":""])},[e("div",{class:u(["flex items-center gap-2",o.value?"gap-0 justify-center w-full":""])},[t[9]||(t[9]=e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"text-foreground transition-colors hover:text-primary","aria-label":"GitHub"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-6 w-6",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})])],-1)),o.value?d("",!0):(s(),l("span",ee,"Gemini Business2API"))],2)],2),e("nav",{class:u(["pb-4 pt-4 lg:pt-6 flex-1 overflow-y-auto",o.value?"px-2":"px-3"])},[o.value?d("",!0):(s(),l("p",te," 导航 ")),e("div",re,[(s(),l(V,null,$(_,r=>m(a(k),{key:r.path,to:r.path,class:u(["group flex items-center rounded-2xl py-2 text-sm font-medium transition-colors overflow-hidden",D(r.path)]),title:o.value?r.label:void 0},{default:w(()=>[e("span",{class:u(["inline-flex h-9 w-9 items-center justify-center rounded-2xl border border-border",I(r.path)])},[(s(),l("svg",oe,[e("path",{d:r.icon},null,8,se)]))],2),o.value?d("",!0):(s(),l("span",ne,p(r.label),1)),o.value?d("",!0):(s(),l("span",le," 进入 "))]),_:2},1032,["to","class","title"])),64))])],2),e("div",ae,[o.value?d("",!0):(s(),l("div",ie,[...t[10]||(t[10]=[e("p",{class:"text-xs tracking-[0.12em] text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-1 transition-colors hover:text-foreground"}," gemini-business2api "),e("span",null," · 声明")],-1),e("p",{class:"mt-2 text-xs text-muted-foreground"}," 本项目仅限学习与研究用途,禁止用于商业用途。请保留本声明、原作者信息与开源来源。 ",-1)])])),e("div",{class:u(["mt-4 flex items-center gap-3",o.value?"justify-center":""])},[o.value?d("",!0):(s(),l("button",{key:0,onClick:N,class:"flex-1 rounded-2xl border border-border bg-background px-4 py-3 text-sm font-medium text-muted-foreground transition-colors hover:border-destructive/40 hover:text-destructive"}," 退出登录 ")),e("button",{class:"h-10 w-10 shrink-0 items-center justify-center rounded-2xl border border-border text-muted-foreground transition-all hover:border-primary hover:text-primary flex",onClick:t[1]||(t[1]=r=>o.value=!o.value),title:o.value?"展开侧边栏":"收起侧边栏"},[...t[11]||(t[11]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4 shrink-0",fill:"currentColor"},[e("path",{d:"M6 4h2v16H6V4zm4 4h8v2h-8V8zm0 6h8v2h-8v-2z"})],-1)])],8,de)],2)])],2),e("main",ue,[e("header",pe,[e("div",ce,[e("button",{class:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-border text-foreground transition-colors hover:border-primary hover:text-primary lg:hidden",onClick:t[2]||(t[2]=r=>x.value=!0),"aria-label":"打开导航"},[...t[12]||(t[12]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},[e("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])]),t[13]||(t[13]=K('',1)),e("h2",xe,p(B.value),1)]),e("div",fe,[e("button",{onClick:P,class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",title:"刷新"}," 刷新 "),e("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:R}," 接口信息 "),m(a(k),{to:"/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[14]||(t[14]=[A(" 状态监控 ",-1)])]),_:1}),m(a(k),{to:"/public/logs",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[15]||(t[15]=[A(" 公开日志 ",-1)])]),_:1})])]),e("div",me,[m(a(O))])])]),m(Q,{open:a(i).open.value,title:a(i).title.value,message:a(i).message.value,"confirm-text":a(i).confirmText.value,"cancel-text":a(i).cancelText.value,onConfirm:a(i).confirm,onCancel:a(i).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(s(),G(q,{to:"body"},[g.value?(s(),l("div",be,[e("div",ge,[e("div",ve,[t[16]||(t[16]=e("p",{class:"text-sm font-medium text-foreground"},"API 接口",-1)),e("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:t[3]||(t[3]=r=>g.value=!1)}," 关闭 ")]),t[22]||(t[22]=e("p",{class:"mt-2 text-xs text-muted-foreground"},"根据客户端选择对应接口",-1)),e("div",he,[e("div",null,[t[17]||(t[17]=e("p",{class:"text-xs text-muted-foreground"},"基础端点",-1)),e("div",ye,[e("p",we,p(v.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[4]||(t[4]=r=>h(v.value))}," 复制 ")])]),e("div",null,[t[18]||(t[18]=e("p",{class:"text-xs text-muted-foreground"},"SDK 接口",-1)),e("div",ke,[e("p",_e,p(z.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[5]||(t[5]=r=>h(z.value))}," 复制 ")])]),e("div",null,[t[19]||(t[19]=e("p",{class:"text-xs text-muted-foreground"},"完整接口",-1)),e("div",ze,[e("p",Ce,p(C.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[6]||(t[6]=r=>h(C.value))}," 复制 ")])]),e("div",null,[t[20]||(t[20]=e("p",{class:"text-xs text-muted-foreground"},"支持模型",-1)),e("div",He,[e("div",Me,[(s(),l(V,null,$(T,r=>e("span",{key:r,class:"rounded-full border border-border px-2 py-0.5 text-[11px]"},p(r),1)),64))])])]),e("div",null,[t[21]||(t[21]=e("p",{class:"text-xs text-muted-foreground"},"API 密钥",-1)),e("div",Se,[e("p",Ve,p(H.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[7]||(t[7]=r=>h(H.value))}," 复制 ")])])]),e("div",$e,[e("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:t[8]||(t[8]=r=>g.value=!1)}," 知道了 ")])])])):d("",!0)]))]))}});export{Ie as default}; diff --git a/static/assets/AppShell-D4_kHEqh.js b/static/assets/AppShell-D4_kHEqh.js new file mode 100644 index 0000000000000000000000000000000000000000..34567dd7c5609bc779619be24aa417afe584a614 --- /dev/null +++ b/static/assets/AppShell-D4_kHEqh.js @@ -0,0 +1 @@ +import{d as F,l as U,h as y,i as f,z as Z,A as S,c as l,a as e,p as m,m as G,b as d,n as u,F as V,r as $,B as K,t as p,s as w,u as a,R as k,C as O,x as E,y as q,f as A,e as s}from"./index-B38eA7T4.js";import{u as J}from"./settings-CVW1vhYs.js";import{_ as Q}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-B4oTz-IR.js";import{u as W}from"./useConfirmDialog-DRJ5fetN.js";const X={class:"min-h-screen"},Y={class:"flex min-h-screen flex-col lg:flex-row"},ee={key:0,class:"text-base font-semibold text-foreground"},te={key:0,class:"px-3 pb-2 text-xs uppercase tracking-[0.28em] text-muted-foreground"},re={class:"space-y-1"},oe={"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},se=["d"],ne={key:0,class:"flex-1 min-w-0 truncate"},le={key:1,class:"ml-auto text-xs opacity-0 transition-opacity group-hover:opacity-100"},ae={class:"mt-auto border-t border-border px-6 py-3 lg:py-4"},ie={key:0,class:"rounded-2xl bg-secondary/60 p-3"},de=["title"],ue={class:"min-w-0 flex-1 overflow-hidden lg:ml-0"},pe={class:"min-w-0 flex flex-col gap-4 border-b border-border bg-card/70 px-6 py-5 backdrop-blur lg:flex-row lg:items-center lg:justify-between lg:px-10"},ce={class:"flex items-center gap-3"},xe={class:"text-xl font-semibold text-foreground lg:text-2xl"},fe={class:"flex flex-wrap items-center gap-3"},me={class:"h-full overflow-y-auto overflow-x-hidden bg-card/70 px-4 pb-10 pt-6 backdrop-blur lg:px-10 lg:pt-10"},be={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ge={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},ve={class:"flex items-center justify-between"},he={class:"mt-4 space-y-3 text-sm"},ye={class:"mt-1 flex items-start gap-2"},we={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ke={class:"mt-1 flex items-start gap-2"},_e={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ze={class:"mt-1 flex items-start gap-2"},Ce={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},He={class:"mt-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground"},Me={class:"flex flex-wrap gap-2 text-foreground"},Se={class:"mt-1 flex items-start gap-2"},Ve={class:"min-w-0 flex-1 rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},$e={class:"mt-6 flex items-center justify-end"},Ie=F({__name:"AppShell",setup(Ae){const L=q(),b=Z(),j=U(),c=J(),x=y(!1),o=y(!1),i=W(),g=y(!1),_=[{path:"/",label:"概览",icon:"M4 4h7v7H4V4zm9 0h7v4h-7V4zm0 6h7v10h-7V10zM4 13h7v7H4v-7z"},{path:"/accounts",label:"账号管理",icon:"M12 12a3.5 3.5 0 1 0-3.5-3.5A3.5 3.5 0 0 0 12 12zm0 2c-4.1 0-7.5 2.2-7.5 5v1h15v-1c0-2.8-3.4-5-7.5-5z"},{path:"/settings",label:"系统设置",icon:"M4 6h10v2H4V6zm12 0h4v2h-4V6zM4 11h6v2H4v-2zm8 0h8v2h-8v-2zM4 16h10v2H4v-2zm12 0h4v2h-4v-2z"},{path:"/monitor",label:"监控状态",icon:"M3 12h4l2-4 4 8 3-6h5v2h-4l-4 8-4-8-2 4H3v-2z"},{path:"/logs",label:"运行日志",icon:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h10v2H4v-2z"},{path:"/docs",label:"文档中心",icon:"M6 3h9l4 4v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm8 1.5V8h3.5L14 4.5zM8 11h8v2H8v-2zm0 4h8v2H8v-2z"}],B=f(()=>_.find(t=>t.path===b.path)?.label||"概览"),D=n=>{const r=`transition-colors ${o.value?"px-2 justify-center gap-0":"px-3 gap-3"}`;return b.path===n?`${r} bg-primary text-primary-foreground`:`${r} text-muted-foreground hover:bg-accent hover:text-accent-foreground`},I=n=>b.path===n?"bg-primary-foreground/15 text-primary-foreground border-primary-foreground/40":"bg-secondary text-muted-foreground group-hover:text-accent-foreground",v=f(()=>(c.settings?.basic?.base_url||""||window.location.origin).replace(/\/$/,"")),z=f(()=>`${v.value}/v1`),C=f(()=>`${v.value}/v1/chat/completions`),H=f(()=>c.settings?.basic?.api_key||"未设置"),T=["gemini-auto","gemini-2.5-flash","gemini-2.5-pro","gemini-3-flash-preview","gemini-3-pro-preview"];S(()=>b.path,()=>{x.value=!1});const M=localStorage.getItem("sidebar-collapsed");M&&(o.value=M==="true"),S(o,n=>{localStorage.setItem("sidebar-collapsed",n?"true":"false")});async function N(){await i.ask({title:"退出登录",message:"确定退出管理控制台吗?"})&&(await j.logout(),L.push({name:"login"}))}function P(){window.location.reload()}async function R(){g.value=!0,!c.settings&&!c.isLoading&&await c.loadSettings()}async function h(n){if(n)try{await navigator.clipboard.writeText(n)}catch(t){console.error("Copy failed",t)}}return(n,t)=>(s(),l("div",X,[e("div",Y,[x.value?(s(),l("div",{key:0,class:"fixed inset-0 z-30 bg-black/20 backdrop-blur-sm lg:hidden",onClick:t[0]||(t[0]=r=>x.value=!1)})):d("",!0),e("aside",{class:u(["fixed inset-y-0 left-0 z-40 w-72 -translate-x-full bg-card/90 backdrop-blur-sm lg:backdrop-blur-none border-r border-border transition-[width,transform] duration-200 ease-out will-change-[transform] transform-gpu flex flex-col lg:static lg:translate-x-0 lg:bg-card/80 lg:border-b-0 lg:border-r lg:sticky lg:top-0 lg:h-screen",[{"translate-x-0":x.value,"w-20 lg:w-20":o.value}]])},[e("div",{class:u(["flex h-16 items-center justify-between px-6 pt-4 lg:h-20 lg:pt-5",o.value?"justify-center px-0":""])},[e("div",{class:u(["flex items-center gap-2",o.value?"gap-0 justify-center w-full":""])},[t[9]||(t[9]=e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"text-foreground transition-colors hover:text-primary","aria-label":"GitHub"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-6 w-6",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})])],-1)),o.value?d("",!0):(s(),l("span",ee,"Gemini Business2API"))],2)],2),e("nav",{class:u(["pb-4 pt-4 lg:pt-6 flex-1 overflow-y-auto",o.value?"px-2":"px-3"])},[o.value?d("",!0):(s(),l("p",te," 导航 ")),e("div",re,[(s(),l(V,null,$(_,r=>m(a(k),{key:r.path,to:r.path,class:u(["group flex items-center rounded-2xl py-2 text-sm font-medium transition-colors overflow-hidden",D(r.path)]),title:o.value?r.label:void 0},{default:w(()=>[e("span",{class:u(["inline-flex h-9 w-9 items-center justify-center rounded-2xl border border-border",I(r.path)])},[(s(),l("svg",oe,[e("path",{d:r.icon},null,8,se)]))],2),o.value?d("",!0):(s(),l("span",ne,p(r.label),1)),o.value?d("",!0):(s(),l("span",le," 进入 "))]),_:2},1032,["to","class","title"])),64))])],2),e("div",ae,[o.value?d("",!0):(s(),l("div",ie,[...t[10]||(t[10]=[e("p",{class:"text-xs tracking-[0.12em] text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-1 transition-colors hover:text-foreground"}," gemini-business2api "),e("span",null," · 声明")],-1),e("p",{class:"mt-2 text-xs text-muted-foreground"}," 本项目仅限学习与研究用途,禁止用于商业用途。请保留本声明、原作者信息与开源来源。 ",-1)])])),e("div",{class:u(["mt-4 flex items-center gap-3",o.value?"justify-center":""])},[o.value?d("",!0):(s(),l("button",{key:0,onClick:N,class:"flex-1 rounded-2xl border border-border bg-background px-4 py-3 text-sm font-medium text-muted-foreground transition-colors hover:border-destructive/40 hover:text-destructive"}," 退出登录 ")),e("button",{class:"h-10 w-10 shrink-0 items-center justify-center rounded-2xl border border-border text-muted-foreground transition-all hover:border-primary hover:text-primary flex",onClick:t[1]||(t[1]=r=>o.value=!o.value),title:o.value?"展开侧边栏":"收起侧边栏"},[...t[11]||(t[11]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4 shrink-0",fill:"currentColor"},[e("path",{d:"M6 4h2v16H6V4zm4 4h8v2h-8V8zm0 6h8v2h-8v-2z"})],-1)])],8,de)],2)])],2),e("main",ue,[e("header",pe,[e("div",ce,[e("button",{class:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-border text-foreground transition-colors hover:border-primary hover:text-primary lg:hidden",onClick:t[2]||(t[2]=r=>x.value=!0),"aria-label":"打开导航"},[...t[12]||(t[12]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},[e("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])]),t[13]||(t[13]=K('',1)),e("h2",xe,p(B.value),1)]),e("div",fe,[e("button",{onClick:P,class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",title:"刷新"}," 刷新 "),e("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:R}," 接口信息 "),m(a(k),{to:"/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[14]||(t[14]=[A(" 状态监控 ",-1)])]),_:1}),m(a(k),{to:"/public/logs",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[15]||(t[15]=[A(" 公开日志 ",-1)])]),_:1})])]),e("div",me,[m(a(O))])])]),m(Q,{open:a(i).open.value,title:a(i).title.value,message:a(i).message.value,"confirm-text":a(i).confirmText.value,"cancel-text":a(i).cancelText.value,onConfirm:a(i).confirm,onCancel:a(i).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(s(),G(E,{to:"body"},[g.value?(s(),l("div",be,[e("div",ge,[e("div",ve,[t[16]||(t[16]=e("p",{class:"text-sm font-medium text-foreground"},"API 接口",-1)),e("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:t[3]||(t[3]=r=>g.value=!1)}," 关闭 ")]),t[22]||(t[22]=e("p",{class:"mt-2 text-xs text-muted-foreground"},"根据客户端选择对应接口",-1)),e("div",he,[e("div",null,[t[17]||(t[17]=e("p",{class:"text-xs text-muted-foreground"},"基础端点",-1)),e("div",ye,[e("p",we,p(v.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[4]||(t[4]=r=>h(v.value))}," 复制 ")])]),e("div",null,[t[18]||(t[18]=e("p",{class:"text-xs text-muted-foreground"},"SDK 接口",-1)),e("div",ke,[e("p",_e,p(z.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[5]||(t[5]=r=>h(z.value))}," 复制 ")])]),e("div",null,[t[19]||(t[19]=e("p",{class:"text-xs text-muted-foreground"},"完整接口",-1)),e("div",ze,[e("p",Ce,p(C.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[6]||(t[6]=r=>h(C.value))}," 复制 ")])]),e("div",null,[t[20]||(t[20]=e("p",{class:"text-xs text-muted-foreground"},"支持模型",-1)),e("div",He,[e("div",Me,[(s(),l(V,null,$(T,r=>e("span",{key:r,class:"rounded-full border border-border px-2 py-0.5 text-[11px]"},p(r),1)),64))])])]),e("div",null,[t[21]||(t[21]=e("p",{class:"text-xs text-muted-foreground"},"API 密钥",-1)),e("div",Se,[e("p",Ve,p(H.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[7]||(t[7]=r=>h(H.value))}," 复制 ")])])]),e("div",$e,[e("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:t[8]||(t[8]=r=>g.value=!1)}," 知道了 ")])])])):d("",!0)]))]))}});export{Ie as default}; diff --git a/static/assets/AppShell-D6boa7bt.js b/static/assets/AppShell-D6boa7bt.js new file mode 100644 index 0000000000000000000000000000000000000000..c6c78c51e21da40157886295b543f4475a7be2fc --- /dev/null +++ b/static/assets/AppShell-D6boa7bt.js @@ -0,0 +1 @@ +import{d as F,l as U,h as y,i as f,q as Z,s as S,c as l,a as e,x as m,y as G,b as d,n as u,F as V,r as $,z as K,t as p,A as w,u as a,R as k,B as O,T as q,p as E,f as A,e as s}from"./index-Bh_hLcqi.js";import{u as J}from"./settings-D1FY5IP9.js";import{_ as Q}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-B-fGXmXJ.js";import{u as W}from"./useConfirmDialog-CSNT_h0m.js";const X={class:"min-h-screen"},Y={class:"flex min-h-screen flex-col lg:flex-row"},ee={key:0,class:"text-base font-semibold text-foreground"},te={key:0,class:"px-3 pb-2 text-xs uppercase tracking-[0.28em] text-muted-foreground"},re={class:"space-y-1"},oe={"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},se=["d"],ne={key:0,class:"flex-1 min-w-0 truncate"},le={key:1,class:"ml-auto text-xs opacity-0 transition-opacity group-hover:opacity-100"},ae={class:"mt-auto border-t border-border px-6 py-3 lg:py-4"},ie={key:0,class:"rounded-2xl bg-secondary/60 p-3"},de=["title"],ue={class:"min-w-0 flex-1 overflow-hidden lg:ml-0"},pe={class:"min-w-0 flex flex-col gap-4 border-b border-border bg-card/70 px-6 py-5 backdrop-blur lg:flex-row lg:items-center lg:justify-between lg:px-10"},ce={class:"flex items-center gap-3"},xe={class:"text-xl font-semibold text-foreground lg:text-2xl"},fe={class:"flex flex-wrap items-center gap-3"},me={class:"h-full overflow-y-auto overflow-x-hidden bg-card/70 px-4 pb-10 pt-6 backdrop-blur lg:px-10 lg:pt-10"},be={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ge={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},ve={class:"flex items-center justify-between"},he={class:"mt-4 space-y-3 text-sm"},ye={class:"mt-1 flex items-start gap-2"},we={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ke={class:"mt-1 flex items-start gap-2"},_e={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ze={class:"mt-1 flex items-start gap-2"},Ce={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},He={class:"mt-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground"},Me={class:"flex flex-wrap gap-2 text-foreground"},Se={class:"mt-1 flex items-start gap-2"},Ve={class:"min-w-0 flex-1 rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},$e={class:"mt-6 flex items-center justify-end"},Ie=F({__name:"AppShell",setup(Ae){const L=E(),b=Z(),j=U(),c=J(),x=y(!1),o=y(!1),i=W(),g=y(!1),_=[{path:"/",label:"概览",icon:"M4 4h7v7H4V4zm9 0h7v4h-7V4zm0 6h7v10h-7V10zM4 13h7v7H4v-7z"},{path:"/accounts",label:"账号管理",icon:"M12 12a3.5 3.5 0 1 0-3.5-3.5A3.5 3.5 0 0 0 12 12zm0 2c-4.1 0-7.5 2.2-7.5 5v1h15v-1c0-2.8-3.4-5-7.5-5z"},{path:"/settings",label:"系统设置",icon:"M4 6h10v2H4V6zm12 0h4v2h-4V6zM4 11h6v2H4v-2zm8 0h8v2h-8v-2zM4 16h10v2H4v-2zm12 0h4v2h-4v-2z"},{path:"/monitor",label:"监控状态",icon:"M3 12h4l2-4 4 8 3-6h5v2h-4l-4 8-4-8-2 4H3v-2z"},{path:"/logs",label:"运行日志",icon:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h10v2H4v-2z"},{path:"/docs",label:"文档中心",icon:"M6 3h9l4 4v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm8 1.5V8h3.5L14 4.5zM8 11h8v2H8v-2zm0 4h8v2H8v-2z"}],B=f(()=>_.find(t=>t.path===b.path)?.label||"概览"),D=n=>{const r=`transition-colors ${o.value?"px-2 justify-center gap-0":"px-3 gap-3"}`;return b.path===n?`${r} bg-primary text-primary-foreground`:`${r} text-muted-foreground hover:bg-accent hover:text-accent-foreground`},I=n=>b.path===n?"bg-primary-foreground/15 text-primary-foreground border-primary-foreground/40":"bg-secondary text-muted-foreground group-hover:text-accent-foreground",v=f(()=>(c.settings?.basic?.base_url||""||window.location.origin).replace(/\/$/,"")),z=f(()=>`${v.value}/v1`),C=f(()=>`${v.value}/v1/chat/completions`),H=f(()=>c.settings?.basic?.api_key||"未设置"),T=["gemini-auto","gemini-2.5-flash","gemini-2.5-pro","gemini-3-flash-preview","gemini-3-pro-preview"];S(()=>b.path,()=>{x.value=!1});const M=localStorage.getItem("sidebar-collapsed");M&&(o.value=M==="true"),S(o,n=>{localStorage.setItem("sidebar-collapsed",n?"true":"false")});async function N(){await i.ask({title:"退出登录",message:"确定退出管理控制台吗?"})&&(await j.logout(),L.push({name:"login"}))}function P(){window.location.reload()}async function R(){g.value=!0,!c.settings&&!c.isLoading&&await c.loadSettings()}async function h(n){if(n)try{await navigator.clipboard.writeText(n)}catch(t){console.error("Copy failed",t)}}return(n,t)=>(s(),l("div",X,[e("div",Y,[x.value?(s(),l("div",{key:0,class:"fixed inset-0 z-30 bg-black/20 backdrop-blur-sm lg:hidden",onClick:t[0]||(t[0]=r=>x.value=!1)})):d("",!0),e("aside",{class:u(["fixed inset-y-0 left-0 z-40 w-72 -translate-x-full bg-card/90 backdrop-blur-sm lg:backdrop-blur-none border-r border-border transition-transform duration-200 ease-out will-change-[transform] transform-gpu flex flex-col lg:static lg:translate-x-0 lg:bg-card/80 lg:border-b-0 lg:border-r lg:sticky lg:top-0 lg:h-screen",[{"translate-x-0":x.value,"w-20 lg:w-20":o.value}]])},[e("div",{class:u(["flex h-16 items-center justify-between px-6 pt-4 lg:h-20 lg:pt-5",o.value?"justify-center px-0":""])},[e("div",{class:u(["flex items-center gap-2",o.value?"gap-0 justify-center w-full":""])},[t[9]||(t[9]=e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"text-foreground transition-colors hover:text-primary","aria-label":"GitHub"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-6 w-6",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})])],-1)),o.value?d("",!0):(s(),l("span",ee,"Gemini Business2API"))],2)],2),e("nav",{class:u(["pb-4 pt-4 lg:pt-6 flex-1 overflow-y-auto",o.value?"px-2":"px-3"])},[o.value?d("",!0):(s(),l("p",te," 导航 ")),e("div",re,[(s(),l(V,null,$(_,r=>m(a(k),{key:r.path,to:r.path,class:u(["group flex items-center rounded-2xl py-2 text-sm font-medium transition-colors overflow-hidden",D(r.path)]),title:o.value?r.label:void 0},{default:w(()=>[e("span",{class:u(["inline-flex h-9 w-9 items-center justify-center rounded-2xl border border-border",I(r.path)])},[(s(),l("svg",oe,[e("path",{d:r.icon},null,8,se)]))],2),o.value?d("",!0):(s(),l("span",ne,p(r.label),1)),o.value?d("",!0):(s(),l("span",le," 进入 "))]),_:2},1032,["to","class","title"])),64))])],2),e("div",ae,[o.value?d("",!0):(s(),l("div",ie,[...t[10]||(t[10]=[e("p",{class:"text-xs tracking-[0.12em] text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-1 transition-colors hover:text-foreground"}," gemini-business2api "),e("span",null," · 声明")],-1),e("p",{class:"mt-2 text-xs text-muted-foreground"}," 本项目仅限学习与研究用途,禁止用于商业用途。请保留本声明、原作者信息与开源来源。 ",-1)])])),e("div",{class:u(["mt-4 flex items-center gap-3",o.value?"justify-center":""])},[o.value?d("",!0):(s(),l("button",{key:0,onClick:N,class:"flex-1 rounded-2xl border border-border bg-background px-4 py-3 text-sm font-medium text-muted-foreground transition-colors hover:border-destructive/40 hover:text-destructive"}," 退出登录 ")),e("button",{class:"h-10 w-10 shrink-0 items-center justify-center rounded-2xl border border-border text-muted-foreground transition-all hover:border-primary hover:text-primary flex",onClick:t[1]||(t[1]=r=>o.value=!o.value),title:o.value?"展开侧边栏":"收起侧边栏"},[...t[11]||(t[11]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4 shrink-0",fill:"currentColor"},[e("path",{d:"M6 4h2v16H6V4zm4 4h8v2h-8V8zm0 6h8v2h-8v-2z"})],-1)])],8,de)],2)])],2),e("main",ue,[e("header",pe,[e("div",ce,[e("button",{class:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-border text-foreground transition-colors hover:border-primary hover:text-primary lg:hidden",onClick:t[2]||(t[2]=r=>x.value=!0),"aria-label":"打开导航"},[...t[12]||(t[12]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},[e("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])]),t[13]||(t[13]=K('',1)),e("h2",xe,p(B.value),1)]),e("div",fe,[e("button",{onClick:P,class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",title:"刷新"}," 刷新 "),e("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:R}," 接口信息 "),m(a(k),{to:"/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[14]||(t[14]=[A(" 状态监控 ",-1)])]),_:1}),m(a(k),{to:"/public/logs",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[15]||(t[15]=[A(" 公开日志 ",-1)])]),_:1})])]),e("div",me,[m(a(O))])])]),m(Q,{open:a(i).open.value,title:a(i).title.value,message:a(i).message.value,"confirm-text":a(i).confirmText.value,"cancel-text":a(i).cancelText.value,onConfirm:a(i).confirm,onCancel:a(i).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(s(),G(q,{to:"body"},[g.value?(s(),l("div",be,[e("div",ge,[e("div",ve,[t[16]||(t[16]=e("p",{class:"text-sm font-medium text-foreground"},"API 接口",-1)),e("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:t[3]||(t[3]=r=>g.value=!1)}," 关闭 ")]),t[22]||(t[22]=e("p",{class:"mt-2 text-xs text-muted-foreground"},"根据客户端选择对应接口",-1)),e("div",he,[e("div",null,[t[17]||(t[17]=e("p",{class:"text-xs text-muted-foreground"},"基础端点",-1)),e("div",ye,[e("p",we,p(v.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[4]||(t[4]=r=>h(v.value))}," 复制 ")])]),e("div",null,[t[18]||(t[18]=e("p",{class:"text-xs text-muted-foreground"},"SDK 接口",-1)),e("div",ke,[e("p",_e,p(z.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[5]||(t[5]=r=>h(z.value))}," 复制 ")])]),e("div",null,[t[19]||(t[19]=e("p",{class:"text-xs text-muted-foreground"},"完整接口",-1)),e("div",ze,[e("p",Ce,p(C.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[6]||(t[6]=r=>h(C.value))}," 复制 ")])]),e("div",null,[t[20]||(t[20]=e("p",{class:"text-xs text-muted-foreground"},"支持模型",-1)),e("div",He,[e("div",Me,[(s(),l(V,null,$(T,r=>e("span",{key:r,class:"rounded-full border border-border px-2 py-0.5 text-[11px]"},p(r),1)),64))])])]),e("div",null,[t[21]||(t[21]=e("p",{class:"text-xs text-muted-foreground"},"API 密钥",-1)),e("div",Se,[e("p",Ve,p(H.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[7]||(t[7]=r=>h(H.value))}," 复制 ")])])]),e("div",$e,[e("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:t[8]||(t[8]=r=>g.value=!1)}," 知道了 ")])])])):d("",!0)]))]))}});export{Ie as default}; diff --git a/static/assets/AppShell-DKPLDP3H.js b/static/assets/AppShell-DKPLDP3H.js new file mode 100644 index 0000000000000000000000000000000000000000..77427982536f841dae2e611cc984082c87491802 --- /dev/null +++ b/static/assets/AppShell-DKPLDP3H.js @@ -0,0 +1 @@ +import{d as F,l as U,h as y,i as f,y as Z,z as S,c as l,a as e,p as m,m as G,b as d,n as u,F as V,r as $,A as K,t as p,s as w,u as a,R as k,B as O,T as E,x as q,f as A,e as s}from"./index-BYFRJmx0.js";import{u as J}from"./settings-BkhyfuxO.js";import{_ as Q}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-BElgd3uY.js";import{u as W}from"./useConfirmDialog-BQNp3TV9.js";const X={class:"min-h-screen"},Y={class:"flex min-h-screen flex-col lg:flex-row"},ee={key:0,class:"text-base font-semibold text-foreground"},te={key:0,class:"px-3 pb-2 text-xs uppercase tracking-[0.28em] text-muted-foreground"},re={class:"space-y-1"},oe={"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},se=["d"],ne={key:0,class:"flex-1 min-w-0 truncate"},le={key:1,class:"ml-auto text-xs opacity-0 transition-opacity group-hover:opacity-100"},ae={class:"mt-auto border-t border-border px-6 py-3 lg:py-4"},ie={key:0,class:"rounded-2xl bg-secondary/60 p-3"},de=["title"],ue={class:"min-w-0 flex-1 overflow-hidden lg:ml-0"},pe={class:"min-w-0 flex flex-col gap-4 border-b border-border bg-card/70 px-6 py-5 backdrop-blur lg:flex-row lg:items-center lg:justify-between lg:px-10"},ce={class:"flex items-center gap-3"},xe={class:"text-xl font-semibold text-foreground lg:text-2xl"},fe={class:"flex flex-wrap items-center gap-3"},me={class:"h-full overflow-y-auto overflow-x-hidden bg-card/70 px-4 pb-10 pt-6 backdrop-blur lg:px-10 lg:pt-10"},be={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ge={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},ve={class:"flex items-center justify-between"},he={class:"mt-4 space-y-3 text-sm"},ye={class:"mt-1 flex items-start gap-2"},we={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ke={class:"mt-1 flex items-start gap-2"},_e={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ze={class:"mt-1 flex items-start gap-2"},Ce={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},He={class:"mt-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground"},Me={class:"flex flex-wrap gap-2 text-foreground"},Se={class:"mt-1 flex items-start gap-2"},Ve={class:"min-w-0 flex-1 rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},$e={class:"mt-6 flex items-center justify-end"},Ie=F({__name:"AppShell",setup(Ae){const L=q(),b=Z(),j=U(),c=J(),x=y(!1),o=y(!1),i=W(),g=y(!1),_=[{path:"/",label:"概览",icon:"M4 4h7v7H4V4zm9 0h7v4h-7V4zm0 6h7v10h-7V10zM4 13h7v7H4v-7z"},{path:"/accounts",label:"账号管理",icon:"M12 12a3.5 3.5 0 1 0-3.5-3.5A3.5 3.5 0 0 0 12 12zm0 2c-4.1 0-7.5 2.2-7.5 5v1h15v-1c0-2.8-3.4-5-7.5-5z"},{path:"/settings",label:"系统设置",icon:"M4 6h10v2H4V6zm12 0h4v2h-4V6zM4 11h6v2H4v-2zm8 0h8v2h-8v-2zM4 16h10v2H4v-2zm12 0h4v2h-4v-2z"},{path:"/monitor",label:"监控状态",icon:"M3 12h4l2-4 4 8 3-6h5v2h-4l-4 8-4-8-2 4H3v-2z"},{path:"/logs",label:"运行日志",icon:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h10v2H4v-2z"},{path:"/docs",label:"文档中心",icon:"M6 3h9l4 4v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm8 1.5V8h3.5L14 4.5zM8 11h8v2H8v-2zm0 4h8v2H8v-2z"}],B=f(()=>_.find(t=>t.path===b.path)?.label||"概览"),D=n=>{const r=`transition-colors ${o.value?"px-2 justify-center gap-0":"px-3 gap-3"}`;return b.path===n?`${r} bg-primary text-primary-foreground`:`${r} text-muted-foreground hover:bg-accent hover:text-accent-foreground`},I=n=>b.path===n?"bg-primary-foreground/15 text-primary-foreground border-primary-foreground/40":"bg-secondary text-muted-foreground group-hover:text-accent-foreground",v=f(()=>(c.settings?.basic?.base_url||""||window.location.origin).replace(/\/$/,"")),z=f(()=>`${v.value}/v1`),C=f(()=>`${v.value}/v1/chat/completions`),H=f(()=>c.settings?.basic?.api_key||"未设置"),T=["gemini-auto","gemini-2.5-flash","gemini-2.5-pro","gemini-3-flash-preview","gemini-3-pro-preview"];S(()=>b.path,()=>{x.value=!1});const M=localStorage.getItem("sidebar-collapsed");M&&(o.value=M==="true"),S(o,n=>{localStorage.setItem("sidebar-collapsed",n?"true":"false")});async function N(){await i.ask({title:"退出登录",message:"确定退出管理控制台吗?"})&&(await j.logout(),L.push({name:"login"}))}function P(){window.location.reload()}async function R(){g.value=!0,!c.settings&&!c.isLoading&&await c.loadSettings()}async function h(n){if(n)try{await navigator.clipboard.writeText(n)}catch(t){console.error("Copy failed",t)}}return(n,t)=>(s(),l("div",X,[e("div",Y,[x.value?(s(),l("div",{key:0,class:"fixed inset-0 z-30 bg-black/20 backdrop-blur-sm lg:hidden",onClick:t[0]||(t[0]=r=>x.value=!1)})):d("",!0),e("aside",{class:u(["fixed inset-y-0 left-0 z-40 w-72 -translate-x-full bg-card/90 backdrop-blur-sm lg:backdrop-blur-none border-r border-border transition-[width,transform] duration-200 ease-out will-change-[transform] transform-gpu flex flex-col lg:static lg:translate-x-0 lg:bg-card/80 lg:border-b-0 lg:border-r lg:sticky lg:top-0 lg:h-screen",[{"translate-x-0":x.value,"w-20 lg:w-20":o.value}]])},[e("div",{class:u(["flex h-16 items-center justify-between px-6 pt-4 lg:h-20 lg:pt-5",o.value?"justify-center px-0":""])},[e("div",{class:u(["flex items-center gap-2",o.value?"gap-0 justify-center w-full":""])},[t[9]||(t[9]=e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"text-foreground transition-colors hover:text-primary","aria-label":"GitHub"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-6 w-6",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})])],-1)),o.value?d("",!0):(s(),l("span",ee,"Gemini Business2API"))],2)],2),e("nav",{class:u(["pb-4 pt-4 lg:pt-6 flex-1 overflow-y-auto",o.value?"px-2":"px-3"])},[o.value?d("",!0):(s(),l("p",te," 导航 ")),e("div",re,[(s(),l(V,null,$(_,r=>m(a(k),{key:r.path,to:r.path,class:u(["group flex items-center rounded-2xl py-2 text-sm font-medium transition-colors overflow-hidden",D(r.path)]),title:o.value?r.label:void 0},{default:w(()=>[e("span",{class:u(["inline-flex h-9 w-9 items-center justify-center rounded-2xl border border-border",I(r.path)])},[(s(),l("svg",oe,[e("path",{d:r.icon},null,8,se)]))],2),o.value?d("",!0):(s(),l("span",ne,p(r.label),1)),o.value?d("",!0):(s(),l("span",le," 进入 "))]),_:2},1032,["to","class","title"])),64))])],2),e("div",ae,[o.value?d("",!0):(s(),l("div",ie,[...t[10]||(t[10]=[e("p",{class:"text-xs tracking-[0.12em] text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-1 transition-colors hover:text-foreground"}," gemini-business2api "),e("span",null," · 声明")],-1),e("p",{class:"mt-2 text-xs text-muted-foreground"}," 本项目仅限学习与研究用途,禁止用于商业用途。请保留本声明、原作者信息与开源来源。 ",-1)])])),e("div",{class:u(["mt-4 flex items-center gap-3",o.value?"justify-center":""])},[o.value?d("",!0):(s(),l("button",{key:0,onClick:N,class:"flex-1 rounded-2xl border border-border bg-background px-4 py-3 text-sm font-medium text-muted-foreground transition-colors hover:border-destructive/40 hover:text-destructive"}," 退出登录 ")),e("button",{class:"h-10 w-10 shrink-0 items-center justify-center rounded-2xl border border-border text-muted-foreground transition-all hover:border-primary hover:text-primary flex",onClick:t[1]||(t[1]=r=>o.value=!o.value),title:o.value?"展开侧边栏":"收起侧边栏"},[...t[11]||(t[11]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4 shrink-0",fill:"currentColor"},[e("path",{d:"M6 4h2v16H6V4zm4 4h8v2h-8V8zm0 6h8v2h-8v-2z"})],-1)])],8,de)],2)])],2),e("main",ue,[e("header",pe,[e("div",ce,[e("button",{class:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-border text-foreground transition-colors hover:border-primary hover:text-primary lg:hidden",onClick:t[2]||(t[2]=r=>x.value=!0),"aria-label":"打开导航"},[...t[12]||(t[12]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},[e("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])]),t[13]||(t[13]=K('',1)),e("h2",xe,p(B.value),1)]),e("div",fe,[e("button",{onClick:P,class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",title:"刷新"}," 刷新 "),e("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:R}," 接口信息 "),m(a(k),{to:"/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[14]||(t[14]=[A(" 状态监控 ",-1)])]),_:1}),m(a(k),{to:"/public/logs",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[15]||(t[15]=[A(" 公开日志 ",-1)])]),_:1})])]),e("div",me,[m(a(O))])])]),m(Q,{open:a(i).open.value,title:a(i).title.value,message:a(i).message.value,"confirm-text":a(i).confirmText.value,"cancel-text":a(i).cancelText.value,onConfirm:a(i).confirm,onCancel:a(i).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(s(),G(E,{to:"body"},[g.value?(s(),l("div",be,[e("div",ge,[e("div",ve,[t[16]||(t[16]=e("p",{class:"text-sm font-medium text-foreground"},"API 接口",-1)),e("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:t[3]||(t[3]=r=>g.value=!1)}," 关闭 ")]),t[22]||(t[22]=e("p",{class:"mt-2 text-xs text-muted-foreground"},"根据客户端选择对应接口",-1)),e("div",he,[e("div",null,[t[17]||(t[17]=e("p",{class:"text-xs text-muted-foreground"},"基础端点",-1)),e("div",ye,[e("p",we,p(v.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[4]||(t[4]=r=>h(v.value))}," 复制 ")])]),e("div",null,[t[18]||(t[18]=e("p",{class:"text-xs text-muted-foreground"},"SDK 接口",-1)),e("div",ke,[e("p",_e,p(z.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[5]||(t[5]=r=>h(z.value))}," 复制 ")])]),e("div",null,[t[19]||(t[19]=e("p",{class:"text-xs text-muted-foreground"},"完整接口",-1)),e("div",ze,[e("p",Ce,p(C.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[6]||(t[6]=r=>h(C.value))}," 复制 ")])]),e("div",null,[t[20]||(t[20]=e("p",{class:"text-xs text-muted-foreground"},"支持模型",-1)),e("div",He,[e("div",Me,[(s(),l(V,null,$(T,r=>e("span",{key:r,class:"rounded-full border border-border px-2 py-0.5 text-[11px]"},p(r),1)),64))])])]),e("div",null,[t[21]||(t[21]=e("p",{class:"text-xs text-muted-foreground"},"API 密钥",-1)),e("div",Se,[e("p",Ve,p(H.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[7]||(t[7]=r=>h(H.value))}," 复制 ")])])]),e("div",$e,[e("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:t[8]||(t[8]=r=>g.value=!1)}," 知道了 ")])])])):d("",!0)]))]))}});export{Ie as default}; diff --git a/static/assets/AppShell-DWHcP5pC.js b/static/assets/AppShell-DWHcP5pC.js new file mode 100644 index 0000000000000000000000000000000000000000..531da10de7d46dc7d533a17e19fe2205eebbef91 --- /dev/null +++ b/static/assets/AppShell-DWHcP5pC.js @@ -0,0 +1 @@ +import{d as F,l as U,h as y,i as f,q as Z,s as S,c as l,a as e,x as m,y as G,b as d,n as u,F as V,r as $,z as K,t as p,A as w,u as a,R as k,B as O,T as q,p as E,f as A,e as s}from"./index-4tSmcUDY.js";import{u as J}from"./settings-By2abYt3.js";import{_ as Q}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-TmgBmCy7.js";import{u as W}from"./useConfirmDialog-DC2-Wjcf.js";const X={class:"min-h-screen"},Y={class:"flex min-h-screen flex-col lg:flex-row"},ee={key:0,class:"text-base font-semibold text-foreground"},te={key:0,class:"px-3 pb-2 text-xs uppercase tracking-[0.28em] text-muted-foreground"},re={class:"space-y-1"},oe={"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},se=["d"],ne={key:0,class:"flex-1 min-w-0 truncate"},le={key:1,class:"ml-auto text-xs opacity-0 transition-opacity group-hover:opacity-100"},ae={class:"mt-auto border-t border-border px-6 py-3 lg:py-4"},ie={key:0,class:"rounded-2xl bg-secondary/60 p-3"},de=["title"],ue={class:"min-w-0 flex-1 overflow-hidden lg:ml-0"},pe={class:"min-w-0 flex flex-col gap-4 border-b border-border bg-card/70 px-6 py-5 backdrop-blur lg:flex-row lg:items-center lg:justify-between lg:px-10"},ce={class:"flex items-center gap-3"},xe={class:"text-xl font-semibold text-foreground lg:text-2xl"},fe={class:"flex flex-wrap items-center gap-3"},me={class:"h-full overflow-y-auto overflow-x-hidden bg-card/70 px-4 pb-10 pt-6 backdrop-blur lg:px-10 lg:pt-10"},be={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ge={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},ve={class:"flex items-center justify-between"},he={class:"mt-4 space-y-3 text-sm"},ye={class:"mt-1 flex items-start gap-2"},we={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ke={class:"mt-1 flex items-start gap-2"},_e={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ze={class:"mt-1 flex items-start gap-2"},Ce={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},He={class:"mt-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground"},Me={class:"flex flex-wrap gap-2 text-foreground"},Se={class:"mt-1 flex items-start gap-2"},Ve={class:"min-w-0 flex-1 rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},$e={class:"mt-6 flex items-center justify-end"},Ie=F({__name:"AppShell",setup(Ae){const L=E(),b=Z(),j=U(),c=J(),x=y(!1),o=y(!1),i=W(),g=y(!1),_=[{path:"/",label:"概览",icon:"M4 4h7v7H4V4zm9 0h7v4h-7V4zm0 6h7v10h-7V10zM4 13h7v7H4v-7z"},{path:"/accounts",label:"账号管理",icon:"M12 12a3.5 3.5 0 1 0-3.5-3.5A3.5 3.5 0 0 0 12 12zm0 2c-4.1 0-7.5 2.2-7.5 5v1h15v-1c0-2.8-3.4-5-7.5-5z"},{path:"/settings",label:"系统设置",icon:"M4 6h10v2H4V6zm12 0h4v2h-4V6zM4 11h6v2H4v-2zm8 0h8v2h-8v-2zM4 16h10v2H4v-2zm12 0h4v2h-4v-2z"},{path:"/monitor",label:"监控状态",icon:"M3 12h4l2-4 4 8 3-6h5v2h-4l-4 8-4-8-2 4H3v-2z"},{path:"/logs",label:"运行日志",icon:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h10v2H4v-2z"},{path:"/docs",label:"文档中心",icon:"M6 3h9l4 4v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm8 1.5V8h3.5L14 4.5zM8 11h8v2H8v-2zm0 4h8v2H8v-2z"}],B=f(()=>_.find(t=>t.path===b.path)?.label||"概览"),D=n=>{const r=`transition-colors ${o.value?"px-2 justify-center gap-0":"px-3 gap-3"}`;return b.path===n?`${r} bg-primary text-primary-foreground`:`${r} text-muted-foreground hover:bg-accent hover:text-accent-foreground`},I=n=>b.path===n?"bg-primary-foreground/15 text-primary-foreground border-primary-foreground/40":"bg-secondary text-muted-foreground group-hover:text-accent-foreground",v=f(()=>(c.settings?.basic?.base_url||""||window.location.origin).replace(/\/$/,"")),z=f(()=>`${v.value}/v1`),C=f(()=>`${v.value}/v1/chat/completions`),H=f(()=>c.settings?.basic?.api_key||"未设置"),T=["gemini-auto","gemini-2.5-flash","gemini-2.5-pro","gemini-3-flash-preview","gemini-3-pro-preview"];S(()=>b.path,()=>{x.value=!1});const M=localStorage.getItem("sidebar-collapsed");M&&(o.value=M==="true"),S(o,n=>{localStorage.setItem("sidebar-collapsed",n?"true":"false")});async function N(){await i.ask({title:"退出登录",message:"确定退出管理控制台吗?"})&&(await j.logout(),L.push({name:"login"}))}function P(){window.location.reload()}async function R(){g.value=!0,!c.settings&&!c.isLoading&&await c.loadSettings()}async function h(n){if(n)try{await navigator.clipboard.writeText(n)}catch(t){console.error("Copy failed",t)}}return(n,t)=>(s(),l("div",X,[e("div",Y,[x.value?(s(),l("div",{key:0,class:"fixed inset-0 z-30 bg-black/20 backdrop-blur-sm lg:hidden",onClick:t[0]||(t[0]=r=>x.value=!1)})):d("",!0),e("aside",{class:u(["fixed inset-y-0 left-0 z-40 w-72 -translate-x-full bg-card/90 backdrop-blur-sm lg:backdrop-blur-none border-r border-border transition-[width,transform] duration-200 ease-out will-change-[transform] transform-gpu flex flex-col lg:static lg:translate-x-0 lg:bg-card/80 lg:border-b-0 lg:border-r lg:sticky lg:top-0 lg:h-screen",[{"translate-x-0":x.value,"w-20 lg:w-20":o.value}]])},[e("div",{class:u(["flex h-16 items-center justify-between px-6 pt-4 lg:h-20 lg:pt-5",o.value?"justify-center px-0":""])},[e("div",{class:u(["flex items-center gap-2",o.value?"gap-0 justify-center w-full":""])},[t[9]||(t[9]=e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"text-foreground transition-colors hover:text-primary","aria-label":"GitHub"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-6 w-6",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})])],-1)),o.value?d("",!0):(s(),l("span",ee,"Gemini Business2API"))],2)],2),e("nav",{class:u(["pb-4 pt-4 lg:pt-6 flex-1 overflow-y-auto",o.value?"px-2":"px-3"])},[o.value?d("",!0):(s(),l("p",te," 导航 ")),e("div",re,[(s(),l(V,null,$(_,r=>m(a(k),{key:r.path,to:r.path,class:u(["group flex items-center rounded-2xl py-2 text-sm font-medium transition-colors overflow-hidden",D(r.path)]),title:o.value?r.label:void 0},{default:w(()=>[e("span",{class:u(["inline-flex h-9 w-9 items-center justify-center rounded-2xl border border-border",I(r.path)])},[(s(),l("svg",oe,[e("path",{d:r.icon},null,8,se)]))],2),o.value?d("",!0):(s(),l("span",ne,p(r.label),1)),o.value?d("",!0):(s(),l("span",le," 进入 "))]),_:2},1032,["to","class","title"])),64))])],2),e("div",ae,[o.value?d("",!0):(s(),l("div",ie,[...t[10]||(t[10]=[e("p",{class:"text-xs tracking-[0.12em] text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-1 transition-colors hover:text-foreground"}," gemini-business2api "),e("span",null," · 声明")],-1),e("p",{class:"mt-2 text-xs text-muted-foreground"}," 本项目仅限学习与研究用途,禁止用于商业用途。请保留本声明、原作者信息与开源来源。 ",-1)])])),e("div",{class:u(["mt-4 flex items-center gap-3",o.value?"justify-center":""])},[o.value?d("",!0):(s(),l("button",{key:0,onClick:N,class:"flex-1 rounded-2xl border border-border bg-background px-4 py-3 text-sm font-medium text-muted-foreground transition-colors hover:border-destructive/40 hover:text-destructive"}," 退出登录 ")),e("button",{class:"h-10 w-10 shrink-0 items-center justify-center rounded-2xl border border-border text-muted-foreground transition-all hover:border-primary hover:text-primary flex",onClick:t[1]||(t[1]=r=>o.value=!o.value),title:o.value?"展开侧边栏":"收起侧边栏"},[...t[11]||(t[11]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4 shrink-0",fill:"currentColor"},[e("path",{d:"M6 4h2v16H6V4zm4 4h8v2h-8V8zm0 6h8v2h-8v-2z"})],-1)])],8,de)],2)])],2),e("main",ue,[e("header",pe,[e("div",ce,[e("button",{class:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-border text-foreground transition-colors hover:border-primary hover:text-primary lg:hidden",onClick:t[2]||(t[2]=r=>x.value=!0),"aria-label":"打开导航"},[...t[12]||(t[12]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},[e("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])]),t[13]||(t[13]=K('',1)),e("h2",xe,p(B.value),1)]),e("div",fe,[e("button",{onClick:P,class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",title:"刷新"}," 刷新 "),e("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:R}," 接口信息 "),m(a(k),{to:"/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[14]||(t[14]=[A(" 状态监控 ",-1)])]),_:1}),m(a(k),{to:"/public/logs",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[15]||(t[15]=[A(" 公开日志 ",-1)])]),_:1})])]),e("div",me,[m(a(O))])])]),m(Q,{open:a(i).open.value,title:a(i).title.value,message:a(i).message.value,"confirm-text":a(i).confirmText.value,"cancel-text":a(i).cancelText.value,onConfirm:a(i).confirm,onCancel:a(i).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(s(),G(q,{to:"body"},[g.value?(s(),l("div",be,[e("div",ge,[e("div",ve,[t[16]||(t[16]=e("p",{class:"text-sm font-medium text-foreground"},"API 接口",-1)),e("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:t[3]||(t[3]=r=>g.value=!1)}," 关闭 ")]),t[22]||(t[22]=e("p",{class:"mt-2 text-xs text-muted-foreground"},"根据客户端选择对应接口",-1)),e("div",he,[e("div",null,[t[17]||(t[17]=e("p",{class:"text-xs text-muted-foreground"},"基础端点",-1)),e("div",ye,[e("p",we,p(v.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[4]||(t[4]=r=>h(v.value))}," 复制 ")])]),e("div",null,[t[18]||(t[18]=e("p",{class:"text-xs text-muted-foreground"},"SDK 接口",-1)),e("div",ke,[e("p",_e,p(z.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[5]||(t[5]=r=>h(z.value))}," 复制 ")])]),e("div",null,[t[19]||(t[19]=e("p",{class:"text-xs text-muted-foreground"},"完整接口",-1)),e("div",ze,[e("p",Ce,p(C.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[6]||(t[6]=r=>h(C.value))}," 复制 ")])]),e("div",null,[t[20]||(t[20]=e("p",{class:"text-xs text-muted-foreground"},"支持模型",-1)),e("div",He,[e("div",Me,[(s(),l(V,null,$(T,r=>e("span",{key:r,class:"rounded-full border border-border px-2 py-0.5 text-[11px]"},p(r),1)),64))])])]),e("div",null,[t[21]||(t[21]=e("p",{class:"text-xs text-muted-foreground"},"API 密钥",-1)),e("div",Se,[e("p",Ve,p(H.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[7]||(t[7]=r=>h(H.value))}," 复制 ")])])]),e("div",$e,[e("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:t[8]||(t[8]=r=>g.value=!1)}," 知道了 ")])])])):d("",!0)]))]))}});export{Ie as default}; diff --git a/static/assets/AppShell-DZfg1gi0.js b/static/assets/AppShell-DZfg1gi0.js new file mode 100644 index 0000000000000000000000000000000000000000..afc4399c853b19102ca0474979ead52288f711f9 --- /dev/null +++ b/static/assets/AppShell-DZfg1gi0.js @@ -0,0 +1 @@ +import{d as F,l as U,h as y,i as f,q as Z,s as S,c as l,a as e,x as m,y as G,b as d,n as u,F as V,r as $,z as K,t as p,A as w,u as a,R as k,B as O,T as q,p as E,f as A,e as s}from"./index-DDWWwh2l.js";import{u as J}from"./settings-CHSHPnGz.js";import{_ as Q}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-Bos9Whi2.js";import{u as W}from"./useConfirmDialog-B1UvQk4s.js";const X={class:"min-h-screen"},Y={class:"flex min-h-screen flex-col lg:flex-row"},ee={key:0,class:"text-base font-semibold text-foreground"},te={key:0,class:"px-3 pb-2 text-xs uppercase tracking-[0.28em] text-muted-foreground"},re={class:"space-y-1"},oe={"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},se=["d"],ne={key:0,class:"flex-1 min-w-0 truncate"},le={key:1,class:"ml-auto text-xs opacity-0 transition-opacity group-hover:opacity-100"},ae={class:"mt-auto border-t border-border px-6 py-3 lg:py-4"},ie={key:0,class:"rounded-2xl bg-secondary/60 p-3"},de=["title"],ue={class:"min-w-0 flex-1 overflow-hidden lg:ml-0"},pe={class:"min-w-0 flex flex-col gap-4 border-b border-border bg-card/70 px-6 py-5 backdrop-blur lg:flex-row lg:items-center lg:justify-between lg:px-10"},ce={class:"flex items-center gap-3"},xe={class:"text-xl font-semibold text-foreground lg:text-2xl"},fe={class:"flex flex-wrap items-center gap-3"},me={class:"h-full overflow-y-auto overflow-x-hidden bg-card/70 px-4 pb-10 pt-6 backdrop-blur lg:px-10 lg:pt-10"},be={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ge={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},ve={class:"flex items-center justify-between"},he={class:"mt-4 space-y-3 text-sm"},ye={class:"mt-1 flex items-start gap-2"},we={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ke={class:"mt-1 flex items-start gap-2"},_e={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ze={class:"mt-1 flex items-start gap-2"},Ce={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},He={class:"mt-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground"},Me={class:"flex flex-wrap gap-2 text-foreground"},Se={class:"mt-1 flex items-start gap-2"},Ve={class:"min-w-0 flex-1 rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},$e={class:"mt-6 flex items-center justify-end"},Ie=F({__name:"AppShell",setup(Ae){const L=E(),b=Z(),j=U(),c=J(),x=y(!1),o=y(!1),i=W(),g=y(!1),_=[{path:"/",label:"概览",icon:"M4 4h7v7H4V4zm9 0h7v4h-7V4zm0 6h7v10h-7V10zM4 13h7v7H4v-7z"},{path:"/accounts",label:"账号管理",icon:"M12 12a3.5 3.5 0 1 0-3.5-3.5A3.5 3.5 0 0 0 12 12zm0 2c-4.1 0-7.5 2.2-7.5 5v1h15v-1c0-2.8-3.4-5-7.5-5z"},{path:"/settings",label:"系统设置",icon:"M4 6h10v2H4V6zm12 0h4v2h-4V6zM4 11h6v2H4v-2zm8 0h8v2h-8v-2zM4 16h10v2H4v-2zm12 0h4v2h-4v-2z"},{path:"/monitor",label:"监控状态",icon:"M3 12h4l2-4 4 8 3-6h5v2h-4l-4 8-4-8-2 4H3v-2z"},{path:"/logs",label:"运行日志",icon:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h10v2H4v-2z"},{path:"/docs",label:"文档中心",icon:"M6 3h9l4 4v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm8 1.5V8h3.5L14 4.5zM8 11h8v2H8v-2zm0 4h8v2H8v-2z"}],B=f(()=>_.find(t=>t.path===b.path)?.label||"概览"),D=n=>{const r=`transition-colors ${o.value?"px-2 justify-center gap-0":"px-3 gap-3"}`;return b.path===n?`${r} bg-primary text-primary-foreground`:`${r} text-muted-foreground hover:bg-accent hover:text-accent-foreground`},I=n=>b.path===n?"bg-primary-foreground/15 text-primary-foreground border-primary-foreground/40":"bg-secondary text-muted-foreground group-hover:text-accent-foreground",v=f(()=>(c.settings?.basic?.base_url||""||window.location.origin).replace(/\/$/,"")),z=f(()=>`${v.value}/v1`),C=f(()=>`${v.value}/v1/chat/completions`),H=f(()=>c.settings?.basic?.api_key||"未设置"),T=["gemini-auto","gemini-2.5-flash","gemini-2.5-pro","gemini-3-flash-preview","gemini-3-pro-preview"];S(()=>b.path,()=>{x.value=!1});const M=localStorage.getItem("sidebar-collapsed");M&&(o.value=M==="true"),S(o,n=>{localStorage.setItem("sidebar-collapsed",n?"true":"false")});async function N(){await i.ask({title:"退出登录",message:"确定退出管理控制台吗?"})&&(await j.logout(),L.push({name:"login"}))}function P(){window.location.reload()}async function R(){g.value=!0,!c.settings&&!c.isLoading&&await c.loadSettings()}async function h(n){if(n)try{await navigator.clipboard.writeText(n)}catch(t){console.error("Copy failed",t)}}return(n,t)=>(s(),l("div",X,[e("div",Y,[x.value?(s(),l("div",{key:0,class:"fixed inset-0 z-30 bg-black/20 backdrop-blur-sm lg:hidden",onClick:t[0]||(t[0]=r=>x.value=!1)})):d("",!0),e("aside",{class:u(["fixed inset-y-0 left-0 z-40 w-72 -translate-x-full bg-card/90 backdrop-blur-sm lg:backdrop-blur-none border-r border-border transition-[width,transform] duration-200 ease-out will-change-[transform] transform-gpu flex flex-col lg:static lg:translate-x-0 lg:bg-card/80 lg:border-b-0 lg:border-r lg:sticky lg:top-0 lg:h-screen",[{"translate-x-0":x.value,"w-20 lg:w-20":o.value}]])},[e("div",{class:u(["flex h-16 items-center justify-between px-6 pt-4 lg:h-20 lg:pt-5",o.value?"justify-center px-0":""])},[e("div",{class:u(["flex items-center gap-2",o.value?"gap-0 justify-center w-full":""])},[t[9]||(t[9]=e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"text-foreground transition-colors hover:text-primary","aria-label":"GitHub"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-6 w-6",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})])],-1)),o.value?d("",!0):(s(),l("span",ee,"Gemini Business2API"))],2)],2),e("nav",{class:u(["pb-4 pt-4 lg:pt-6 flex-1 overflow-y-auto",o.value?"px-2":"px-3"])},[o.value?d("",!0):(s(),l("p",te," 导航 ")),e("div",re,[(s(),l(V,null,$(_,r=>m(a(k),{key:r.path,to:r.path,class:u(["group flex items-center rounded-2xl py-2 text-sm font-medium transition-colors overflow-hidden",D(r.path)]),title:o.value?r.label:void 0},{default:w(()=>[e("span",{class:u(["inline-flex h-9 w-9 items-center justify-center rounded-2xl border border-border",I(r.path)])},[(s(),l("svg",oe,[e("path",{d:r.icon},null,8,se)]))],2),o.value?d("",!0):(s(),l("span",ne,p(r.label),1)),o.value?d("",!0):(s(),l("span",le," 进入 "))]),_:2},1032,["to","class","title"])),64))])],2),e("div",ae,[o.value?d("",!0):(s(),l("div",ie,[...t[10]||(t[10]=[e("p",{class:"text-xs tracking-[0.12em] text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-1 transition-colors hover:text-foreground"}," gemini-business2api "),e("span",null," · 声明")],-1),e("p",{class:"mt-2 text-xs text-muted-foreground"}," 本项目仅限学习与研究用途,禁止用于商业用途。请保留本声明、原作者信息与开源来源。 ",-1)])])),e("div",{class:u(["mt-4 flex items-center gap-3",o.value?"justify-center":""])},[o.value?d("",!0):(s(),l("button",{key:0,onClick:N,class:"flex-1 rounded-2xl border border-border bg-background px-4 py-3 text-sm font-medium text-muted-foreground transition-colors hover:border-destructive/40 hover:text-destructive"}," 退出登录 ")),e("button",{class:"h-10 w-10 shrink-0 items-center justify-center rounded-2xl border border-border text-muted-foreground transition-all hover:border-primary hover:text-primary flex",onClick:t[1]||(t[1]=r=>o.value=!o.value),title:o.value?"展开侧边栏":"收起侧边栏"},[...t[11]||(t[11]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4 shrink-0",fill:"currentColor"},[e("path",{d:"M6 4h2v16H6V4zm4 4h8v2h-8V8zm0 6h8v2h-8v-2z"})],-1)])],8,de)],2)])],2),e("main",ue,[e("header",pe,[e("div",ce,[e("button",{class:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-border text-foreground transition-colors hover:border-primary hover:text-primary lg:hidden",onClick:t[2]||(t[2]=r=>x.value=!0),"aria-label":"打开导航"},[...t[12]||(t[12]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},[e("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])]),t[13]||(t[13]=K('',1)),e("h2",xe,p(B.value),1)]),e("div",fe,[e("button",{onClick:P,class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",title:"刷新"}," 刷新 "),e("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:R}," 接口信息 "),m(a(k),{to:"/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[14]||(t[14]=[A(" 状态监控 ",-1)])]),_:1}),m(a(k),{to:"/public/logs",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[15]||(t[15]=[A(" 公开日志 ",-1)])]),_:1})])]),e("div",me,[m(a(O))])])]),m(Q,{open:a(i).open.value,title:a(i).title.value,message:a(i).message.value,"confirm-text":a(i).confirmText.value,"cancel-text":a(i).cancelText.value,onConfirm:a(i).confirm,onCancel:a(i).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(s(),G(q,{to:"body"},[g.value?(s(),l("div",be,[e("div",ge,[e("div",ve,[t[16]||(t[16]=e("p",{class:"text-sm font-medium text-foreground"},"API 接口",-1)),e("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:t[3]||(t[3]=r=>g.value=!1)}," 关闭 ")]),t[22]||(t[22]=e("p",{class:"mt-2 text-xs text-muted-foreground"},"根据客户端选择对应接口",-1)),e("div",he,[e("div",null,[t[17]||(t[17]=e("p",{class:"text-xs text-muted-foreground"},"基础端点",-1)),e("div",ye,[e("p",we,p(v.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[4]||(t[4]=r=>h(v.value))}," 复制 ")])]),e("div",null,[t[18]||(t[18]=e("p",{class:"text-xs text-muted-foreground"},"SDK 接口",-1)),e("div",ke,[e("p",_e,p(z.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[5]||(t[5]=r=>h(z.value))}," 复制 ")])]),e("div",null,[t[19]||(t[19]=e("p",{class:"text-xs text-muted-foreground"},"完整接口",-1)),e("div",ze,[e("p",Ce,p(C.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[6]||(t[6]=r=>h(C.value))}," 复制 ")])]),e("div",null,[t[20]||(t[20]=e("p",{class:"text-xs text-muted-foreground"},"支持模型",-1)),e("div",He,[e("div",Me,[(s(),l(V,null,$(T,r=>e("span",{key:r,class:"rounded-full border border-border px-2 py-0.5 text-[11px]"},p(r),1)),64))])])]),e("div",null,[t[21]||(t[21]=e("p",{class:"text-xs text-muted-foreground"},"API 密钥",-1)),e("div",Se,[e("p",Ve,p(H.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[7]||(t[7]=r=>h(H.value))}," 复制 ")])])]),e("div",$e,[e("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:t[8]||(t[8]=r=>g.value=!1)}," 知道了 ")])])])):d("",!0)]))]))}});export{Ie as default}; diff --git a/static/assets/AppShell-D_XBwVf-.js b/static/assets/AppShell-D_XBwVf-.js new file mode 100644 index 0000000000000000000000000000000000000000..31ff69d1e4f0a37f31f139fbbb4a51a3366a44f7 --- /dev/null +++ b/static/assets/AppShell-D_XBwVf-.js @@ -0,0 +1 @@ +import{d as F,l as U,h as y,i as f,z as Z,A as S,c as l,a as e,p as m,m as G,b as d,n as u,F as V,r as $,B as K,t as p,s as w,u as a,R as k,C as O,x as E,y as q,f as A,e as s}from"./index-OP3F9IRB.js";import{u as J}from"./settings-DVwbsbgP.js";import{_ as Q}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-CPmtaJk8.js";import{u as W}from"./useConfirmDialog-BNQ4DnH9.js";const X={class:"min-h-screen"},Y={class:"flex min-h-screen flex-col lg:flex-row"},ee={key:0,class:"text-base font-semibold text-foreground"},te={key:0,class:"px-3 pb-2 text-xs uppercase tracking-[0.28em] text-muted-foreground"},re={class:"space-y-1"},oe={"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},se=["d"],ne={key:0,class:"flex-1 min-w-0 truncate"},le={key:1,class:"ml-auto text-xs opacity-0 transition-opacity group-hover:opacity-100"},ae={class:"mt-auto border-t border-border px-6 py-3 lg:py-4"},ie={key:0,class:"rounded-2xl bg-secondary/60 p-3"},de=["title"],ue={class:"min-w-0 flex-1 overflow-hidden lg:ml-0"},pe={class:"min-w-0 flex flex-col gap-4 border-b border-border bg-card/70 px-6 py-5 backdrop-blur lg:flex-row lg:items-center lg:justify-between lg:px-10"},ce={class:"flex items-center gap-3"},xe={class:"text-xl font-semibold text-foreground lg:text-2xl"},fe={class:"flex flex-wrap items-center gap-3"},me={class:"h-full overflow-y-auto overflow-x-hidden bg-card/70 px-4 pb-10 pt-6 backdrop-blur lg:px-10 lg:pt-10"},be={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ge={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},ve={class:"flex items-center justify-between"},he={class:"mt-4 space-y-3 text-sm"},ye={class:"mt-1 flex items-start gap-2"},we={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ke={class:"mt-1 flex items-start gap-2"},_e={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ze={class:"mt-1 flex items-start gap-2"},Ce={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},He={class:"mt-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground"},Me={class:"flex flex-wrap gap-2 text-foreground"},Se={class:"mt-1 flex items-start gap-2"},Ve={class:"min-w-0 flex-1 rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},$e={class:"mt-6 flex items-center justify-end"},Ie=F({__name:"AppShell",setup(Ae){const L=q(),b=Z(),j=U(),c=J(),x=y(!1),o=y(!1),i=W(),g=y(!1),_=[{path:"/",label:"概览",icon:"M4 4h7v7H4V4zm9 0h7v4h-7V4zm0 6h7v10h-7V10zM4 13h7v7H4v-7z"},{path:"/accounts",label:"账号管理",icon:"M12 12a3.5 3.5 0 1 0-3.5-3.5A3.5 3.5 0 0 0 12 12zm0 2c-4.1 0-7.5 2.2-7.5 5v1h15v-1c0-2.8-3.4-5-7.5-5z"},{path:"/settings",label:"系统设置",icon:"M4 6h10v2H4V6zm12 0h4v2h-4V6zM4 11h6v2H4v-2zm8 0h8v2h-8v-2zM4 16h10v2H4v-2zm12 0h4v2h-4v-2z"},{path:"/monitor",label:"监控状态",icon:"M3 12h4l2-4 4 8 3-6h5v2h-4l-4 8-4-8-2 4H3v-2z"},{path:"/logs",label:"运行日志",icon:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h10v2H4v-2z"},{path:"/docs",label:"文档中心",icon:"M6 3h9l4 4v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm8 1.5V8h3.5L14 4.5zM8 11h8v2H8v-2zm0 4h8v2H8v-2z"}],B=f(()=>_.find(t=>t.path===b.path)?.label||"概览"),D=n=>{const r=`transition-colors ${o.value?"px-2 justify-center gap-0":"px-3 gap-3"}`;return b.path===n?`${r} bg-primary text-primary-foreground`:`${r} text-muted-foreground hover:bg-accent hover:text-accent-foreground`},I=n=>b.path===n?"bg-primary-foreground/15 text-primary-foreground border-primary-foreground/40":"bg-secondary text-muted-foreground group-hover:text-accent-foreground",v=f(()=>(c.settings?.basic?.base_url||""||window.location.origin).replace(/\/$/,"")),z=f(()=>`${v.value}/v1`),C=f(()=>`${v.value}/v1/chat/completions`),H=f(()=>c.settings?.basic?.api_key||"未设置"),T=["gemini-auto","gemini-2.5-flash","gemini-2.5-pro","gemini-3-flash-preview","gemini-3-pro-preview"];S(()=>b.path,()=>{x.value=!1});const M=localStorage.getItem("sidebar-collapsed");M&&(o.value=M==="true"),S(o,n=>{localStorage.setItem("sidebar-collapsed",n?"true":"false")});async function N(){await i.ask({title:"退出登录",message:"确定退出管理控制台吗?"})&&(await j.logout(),L.push({name:"login"}))}function P(){window.location.reload()}async function R(){g.value=!0,!c.settings&&!c.isLoading&&await c.loadSettings()}async function h(n){if(n)try{await navigator.clipboard.writeText(n)}catch(t){console.error("Copy failed",t)}}return(n,t)=>(s(),l("div",X,[e("div",Y,[x.value?(s(),l("div",{key:0,class:"fixed inset-0 z-30 bg-black/20 backdrop-blur-sm lg:hidden",onClick:t[0]||(t[0]=r=>x.value=!1)})):d("",!0),e("aside",{class:u(["fixed inset-y-0 left-0 z-40 w-72 -translate-x-full bg-card/90 backdrop-blur-sm lg:backdrop-blur-none border-r border-border transition-[width,transform] duration-200 ease-out will-change-[transform] transform-gpu flex flex-col lg:static lg:translate-x-0 lg:bg-card/80 lg:border-b-0 lg:border-r lg:sticky lg:top-0 lg:h-screen",[{"translate-x-0":x.value,"w-20 lg:w-20":o.value}]])},[e("div",{class:u(["flex h-16 items-center justify-between px-6 pt-4 lg:h-20 lg:pt-5",o.value?"justify-center px-0":""])},[e("div",{class:u(["flex items-center gap-2",o.value?"gap-0 justify-center w-full":""])},[t[9]||(t[9]=e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"text-foreground transition-colors hover:text-primary","aria-label":"GitHub"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-6 w-6",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})])],-1)),o.value?d("",!0):(s(),l("span",ee,"Gemini Business2API"))],2)],2),e("nav",{class:u(["pb-4 pt-4 lg:pt-6 flex-1 overflow-y-auto",o.value?"px-2":"px-3"])},[o.value?d("",!0):(s(),l("p",te," 导航 ")),e("div",re,[(s(),l(V,null,$(_,r=>m(a(k),{key:r.path,to:r.path,class:u(["group flex items-center rounded-2xl py-2 text-sm font-medium transition-colors overflow-hidden",D(r.path)]),title:o.value?r.label:void 0},{default:w(()=>[e("span",{class:u(["inline-flex h-9 w-9 items-center justify-center rounded-2xl border border-border",I(r.path)])},[(s(),l("svg",oe,[e("path",{d:r.icon},null,8,se)]))],2),o.value?d("",!0):(s(),l("span",ne,p(r.label),1)),o.value?d("",!0):(s(),l("span",le," 进入 "))]),_:2},1032,["to","class","title"])),64))])],2),e("div",ae,[o.value?d("",!0):(s(),l("div",ie,[...t[10]||(t[10]=[e("p",{class:"text-xs tracking-[0.12em] text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-1 transition-colors hover:text-foreground"}," gemini-business2api "),e("span",null," · 声明")],-1),e("p",{class:"mt-2 text-xs text-muted-foreground"}," 本项目仅限学习与研究用途,禁止用于商业用途。请保留本声明、原作者信息与开源来源。 ",-1)])])),e("div",{class:u(["mt-4 flex items-center gap-3",o.value?"justify-center":""])},[o.value?d("",!0):(s(),l("button",{key:0,onClick:N,class:"flex-1 rounded-2xl border border-border bg-background px-4 py-3 text-sm font-medium text-muted-foreground transition-colors hover:border-destructive/40 hover:text-destructive"}," 退出登录 ")),e("button",{class:"h-10 w-10 shrink-0 items-center justify-center rounded-2xl border border-border text-muted-foreground transition-all hover:border-primary hover:text-primary flex",onClick:t[1]||(t[1]=r=>o.value=!o.value),title:o.value?"展开侧边栏":"收起侧边栏"},[...t[11]||(t[11]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4 shrink-0",fill:"currentColor"},[e("path",{d:"M6 4h2v16H6V4zm4 4h8v2h-8V8zm0 6h8v2h-8v-2z"})],-1)])],8,de)],2)])],2),e("main",ue,[e("header",pe,[e("div",ce,[e("button",{class:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-border text-foreground transition-colors hover:border-primary hover:text-primary lg:hidden",onClick:t[2]||(t[2]=r=>x.value=!0),"aria-label":"打开导航"},[...t[12]||(t[12]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},[e("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])]),t[13]||(t[13]=K('',1)),e("h2",xe,p(B.value),1)]),e("div",fe,[e("button",{onClick:P,class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",title:"刷新"}," 刷新 "),e("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:R}," 接口信息 "),m(a(k),{to:"/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[14]||(t[14]=[A(" 状态监控 ",-1)])]),_:1}),m(a(k),{to:"/public/logs",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[15]||(t[15]=[A(" 公开日志 ",-1)])]),_:1})])]),e("div",me,[m(a(O))])])]),m(Q,{open:a(i).open.value,title:a(i).title.value,message:a(i).message.value,"confirm-text":a(i).confirmText.value,"cancel-text":a(i).cancelText.value,onConfirm:a(i).confirm,onCancel:a(i).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(s(),G(E,{to:"body"},[g.value?(s(),l("div",be,[e("div",ge,[e("div",ve,[t[16]||(t[16]=e("p",{class:"text-sm font-medium text-foreground"},"API 接口",-1)),e("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:t[3]||(t[3]=r=>g.value=!1)}," 关闭 ")]),t[22]||(t[22]=e("p",{class:"mt-2 text-xs text-muted-foreground"},"根据客户端选择对应接口",-1)),e("div",he,[e("div",null,[t[17]||(t[17]=e("p",{class:"text-xs text-muted-foreground"},"基础端点",-1)),e("div",ye,[e("p",we,p(v.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[4]||(t[4]=r=>h(v.value))}," 复制 ")])]),e("div",null,[t[18]||(t[18]=e("p",{class:"text-xs text-muted-foreground"},"SDK 接口",-1)),e("div",ke,[e("p",_e,p(z.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[5]||(t[5]=r=>h(z.value))}," 复制 ")])]),e("div",null,[t[19]||(t[19]=e("p",{class:"text-xs text-muted-foreground"},"完整接口",-1)),e("div",ze,[e("p",Ce,p(C.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[6]||(t[6]=r=>h(C.value))}," 复制 ")])]),e("div",null,[t[20]||(t[20]=e("p",{class:"text-xs text-muted-foreground"},"支持模型",-1)),e("div",He,[e("div",Me,[(s(),l(V,null,$(T,r=>e("span",{key:r,class:"rounded-full border border-border px-2 py-0.5 text-[11px]"},p(r),1)),64))])])]),e("div",null,[t[21]||(t[21]=e("p",{class:"text-xs text-muted-foreground"},"API 密钥",-1)),e("div",Se,[e("p",Ve,p(H.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[7]||(t[7]=r=>h(H.value))}," 复制 ")])])]),e("div",$e,[e("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:t[8]||(t[8]=r=>g.value=!1)}," 知道了 ")])])])):d("",!0)]))]))}});export{Ie as default}; diff --git a/static/assets/AppShell-DeReBBBN.js b/static/assets/AppShell-DeReBBBN.js new file mode 100644 index 0000000000000000000000000000000000000000..e34381e0ef22ed09f4935765a7582baa2a2e1f42 --- /dev/null +++ b/static/assets/AppShell-DeReBBBN.js @@ -0,0 +1 @@ +import{d as F,l as U,h as y,i as f,q as Z,s as S,c as l,a as e,x as m,y as G,b as d,n as u,F as V,r as $,z as K,t as p,A as w,u as a,R as k,B as O,T as q,p as E,f as A,e as s}from"./index-gD6QQiOu.js";import{u as J}from"./settings-CAn-I9vU.js";import{_ as Q}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-D2ZZ5gFD.js";import{u as W}from"./useConfirmDialog-DEfIwwMt.js";const X={class:"min-h-screen"},Y={class:"flex min-h-screen flex-col lg:flex-row"},ee={key:0,class:"text-base font-semibold text-foreground"},te={key:0,class:"px-3 pb-2 text-xs uppercase tracking-[0.28em] text-muted-foreground"},re={class:"space-y-1"},oe={"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},se=["d"],ne={key:0,class:"flex-1 min-w-0 truncate"},le={key:1,class:"ml-auto text-xs opacity-0 transition-opacity group-hover:opacity-100"},ae={class:"mt-auto border-t border-border px-6 py-3 lg:py-4"},ie={key:0,class:"rounded-2xl bg-secondary/60 p-3"},de=["title"],ue={class:"min-w-0 flex-1 overflow-hidden lg:ml-0"},pe={class:"min-w-0 flex flex-col gap-4 border-b border-border bg-card/70 px-6 py-5 backdrop-blur lg:flex-row lg:items-center lg:justify-between lg:px-10"},ce={class:"flex items-center gap-3"},xe={class:"text-xl font-semibold text-foreground lg:text-2xl"},fe={class:"flex flex-wrap items-center gap-3"},me={class:"h-full overflow-y-auto overflow-x-hidden bg-card/70 px-4 pb-10 pt-6 backdrop-blur lg:px-10 lg:pt-10"},be={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ge={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},ve={class:"flex items-center justify-between"},he={class:"mt-4 space-y-3 text-sm"},ye={class:"mt-1 flex items-start gap-2"},we={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ke={class:"mt-1 flex items-start gap-2"},_e={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ze={class:"mt-1 flex items-start gap-2"},Ce={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},He={class:"mt-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground"},Me={class:"flex flex-wrap gap-2 text-foreground"},Se={class:"mt-1 flex items-start gap-2"},Ve={class:"min-w-0 flex-1 rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},$e={class:"mt-6 flex items-center justify-end"},Ie=F({__name:"AppShell",setup(Ae){const L=E(),b=Z(),j=U(),c=J(),x=y(!1),o=y(!1),i=W(),g=y(!1),_=[{path:"/",label:"概览",icon:"M4 4h7v7H4V4zm9 0h7v4h-7V4zm0 6h7v10h-7V10zM4 13h7v7H4v-7z"},{path:"/accounts",label:"账号管理",icon:"M12 12a3.5 3.5 0 1 0-3.5-3.5A3.5 3.5 0 0 0 12 12zm0 2c-4.1 0-7.5 2.2-7.5 5v1h15v-1c0-2.8-3.4-5-7.5-5z"},{path:"/settings",label:"系统设置",icon:"M4 6h10v2H4V6zm12 0h4v2h-4V6zM4 11h6v2H4v-2zm8 0h8v2h-8v-2zM4 16h10v2H4v-2zm12 0h4v2h-4v-2z"},{path:"/monitor",label:"监控状态",icon:"M3 12h4l2-4 4 8 3-6h5v2h-4l-4 8-4-8-2 4H3v-2z"},{path:"/logs",label:"运行日志",icon:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h10v2H4v-2z"},{path:"/docs",label:"文档中心",icon:"M6 3h9l4 4v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm8 1.5V8h3.5L14 4.5zM8 11h8v2H8v-2zm0 4h8v2H8v-2z"}],B=f(()=>_.find(t=>t.path===b.path)?.label||"概览"),D=n=>{const r=`transition-colors ${o.value?"px-2 justify-center gap-0":"px-3 gap-3"}`;return b.path===n?`${r} bg-primary text-primary-foreground`:`${r} text-muted-foreground hover:bg-accent hover:text-accent-foreground`},I=n=>b.path===n?"bg-primary-foreground/15 text-primary-foreground border-primary-foreground/40":"bg-secondary text-muted-foreground group-hover:text-accent-foreground",v=f(()=>(c.settings?.basic?.base_url||""||window.location.origin).replace(/\/$/,"")),z=f(()=>`${v.value}/v1`),C=f(()=>`${v.value}/v1/chat/completions`),H=f(()=>c.settings?.basic?.api_key||"未设置"),T=["gemini-auto","gemini-2.5-flash","gemini-2.5-pro","gemini-3-flash-preview","gemini-3-pro-preview"];S(()=>b.path,()=>{x.value=!1});const M=localStorage.getItem("sidebar-collapsed");M&&(o.value=M==="true"),S(o,n=>{localStorage.setItem("sidebar-collapsed",n?"true":"false")});async function N(){await i.ask({title:"退出登录",message:"确定退出管理控制台吗?"})&&(await j.logout(),L.push({name:"login"}))}function P(){window.location.reload()}async function R(){g.value=!0,!c.settings&&!c.isLoading&&await c.loadSettings()}async function h(n){if(n)try{await navigator.clipboard.writeText(n)}catch(t){console.error("Copy failed",t)}}return(n,t)=>(s(),l("div",X,[e("div",Y,[x.value?(s(),l("div",{key:0,class:"fixed inset-0 z-30 bg-black/20 backdrop-blur-sm lg:hidden",onClick:t[0]||(t[0]=r=>x.value=!1)})):d("",!0),e("aside",{class:u(["fixed inset-y-0 left-0 z-40 w-72 -translate-x-full bg-card/90 backdrop-blur-sm lg:backdrop-blur-none border-r border-border transition-transform duration-200 ease-out will-change-[transform] transform-gpu flex flex-col lg:static lg:translate-x-0 lg:bg-card/80 lg:border-b-0 lg:border-r lg:sticky lg:top-0 lg:h-screen",[{"translate-x-0":x.value,"w-20 lg:w-20":o.value}]])},[e("div",{class:u(["flex h-16 items-center justify-between px-6 pt-4 lg:h-20 lg:pt-5",o.value?"justify-center px-0":""])},[e("div",{class:u(["flex items-center gap-2",o.value?"gap-0 justify-center w-full":""])},[t[9]||(t[9]=e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"text-foreground transition-colors hover:text-primary","aria-label":"GitHub"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-6 w-6",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})])],-1)),o.value?d("",!0):(s(),l("span",ee,"Gemini Business2API"))],2)],2),e("nav",{class:u(["pb-4 pt-4 lg:pt-6 flex-1 overflow-y-auto",o.value?"px-2":"px-3"])},[o.value?d("",!0):(s(),l("p",te," 导航 ")),e("div",re,[(s(),l(V,null,$(_,r=>m(a(k),{key:r.path,to:r.path,class:u(["group flex items-center rounded-2xl py-2 text-sm font-medium transition-colors overflow-hidden",D(r.path)]),title:o.value?r.label:void 0},{default:w(()=>[e("span",{class:u(["inline-flex h-9 w-9 items-center justify-center rounded-2xl border border-border",I(r.path)])},[(s(),l("svg",oe,[e("path",{d:r.icon},null,8,se)]))],2),o.value?d("",!0):(s(),l("span",ne,p(r.label),1)),o.value?d("",!0):(s(),l("span",le," 进入 "))]),_:2},1032,["to","class","title"])),64))])],2),e("div",ae,[o.value?d("",!0):(s(),l("div",ie,[...t[10]||(t[10]=[e("p",{class:"text-xs tracking-[0.12em] text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-1 transition-colors hover:text-foreground"}," gemini-business2api "),e("span",null," · 声明")],-1),e("p",{class:"mt-2 text-xs text-muted-foreground"}," 本项目仅限学习与研究用途,禁止用于商业用途。请保留本声明、原作者信息与开源来源。 ",-1)])])),e("div",{class:u(["mt-4 flex items-center gap-3",o.value?"justify-center":""])},[o.value?d("",!0):(s(),l("button",{key:0,onClick:N,class:"flex-1 rounded-2xl border border-border bg-background px-4 py-3 text-sm font-medium text-muted-foreground transition-colors hover:border-destructive/40 hover:text-destructive"}," 退出登录 ")),e("button",{class:"h-10 w-10 shrink-0 items-center justify-center rounded-2xl border border-border text-muted-foreground transition-all hover:border-primary hover:text-primary flex",onClick:t[1]||(t[1]=r=>o.value=!o.value),title:o.value?"展开侧边栏":"收起侧边栏"},[...t[11]||(t[11]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4 shrink-0",fill:"currentColor"},[e("path",{d:"M6 4h2v16H6V4zm4 4h8v2h-8V8zm0 6h8v2h-8v-2z"})],-1)])],8,de)],2)])],2),e("main",ue,[e("header",pe,[e("div",ce,[e("button",{class:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-border text-foreground transition-colors hover:border-primary hover:text-primary lg:hidden",onClick:t[2]||(t[2]=r=>x.value=!0),"aria-label":"打开导航"},[...t[12]||(t[12]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},[e("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])]),t[13]||(t[13]=K('',1)),e("h2",xe,p(B.value),1)]),e("div",fe,[e("button",{onClick:P,class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",title:"刷新"}," 刷新 "),e("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:R}," 接口信息 "),m(a(k),{to:"/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[14]||(t[14]=[A(" 状态监控 ",-1)])]),_:1}),m(a(k),{to:"/public/logs",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[15]||(t[15]=[A(" 公开日志 ",-1)])]),_:1})])]),e("div",me,[m(a(O))])])]),m(Q,{open:a(i).open.value,title:a(i).title.value,message:a(i).message.value,"confirm-text":a(i).confirmText.value,"cancel-text":a(i).cancelText.value,onConfirm:a(i).confirm,onCancel:a(i).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(s(),G(q,{to:"body"},[g.value?(s(),l("div",be,[e("div",ge,[e("div",ve,[t[16]||(t[16]=e("p",{class:"text-sm font-medium text-foreground"},"API 接口",-1)),e("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:t[3]||(t[3]=r=>g.value=!1)}," 关闭 ")]),t[22]||(t[22]=e("p",{class:"mt-2 text-xs text-muted-foreground"},"根据客户端选择对应接口",-1)),e("div",he,[e("div",null,[t[17]||(t[17]=e("p",{class:"text-xs text-muted-foreground"},"基础端点",-1)),e("div",ye,[e("p",we,p(v.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[4]||(t[4]=r=>h(v.value))}," 复制 ")])]),e("div",null,[t[18]||(t[18]=e("p",{class:"text-xs text-muted-foreground"},"SDK 接口",-1)),e("div",ke,[e("p",_e,p(z.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[5]||(t[5]=r=>h(z.value))}," 复制 ")])]),e("div",null,[t[19]||(t[19]=e("p",{class:"text-xs text-muted-foreground"},"完整接口",-1)),e("div",ze,[e("p",Ce,p(C.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[6]||(t[6]=r=>h(C.value))}," 复制 ")])]),e("div",null,[t[20]||(t[20]=e("p",{class:"text-xs text-muted-foreground"},"支持模型",-1)),e("div",He,[e("div",Me,[(s(),l(V,null,$(T,r=>e("span",{key:r,class:"rounded-full border border-border px-2 py-0.5 text-[11px]"},p(r),1)),64))])])]),e("div",null,[t[21]||(t[21]=e("p",{class:"text-xs text-muted-foreground"},"API 密钥",-1)),e("div",Se,[e("p",Ve,p(H.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[7]||(t[7]=r=>h(H.value))}," 复制 ")])])]),e("div",$e,[e("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:t[8]||(t[8]=r=>g.value=!1)}," 知道了 ")])])])):d("",!0)]))]))}});export{Ie as default}; diff --git a/static/assets/AppShell-DwEnl3b1.js b/static/assets/AppShell-DwEnl3b1.js new file mode 100644 index 0000000000000000000000000000000000000000..01f14a7d8e3a6df0c00e446f9b3933647349460d --- /dev/null +++ b/static/assets/AppShell-DwEnl3b1.js @@ -0,0 +1 @@ +import{d as F,l as U,h as y,i as f,q as Z,s as S,c as l,a as e,x as m,y as G,b as d,n as u,F as V,r as $,z as K,t as p,A as w,u as a,R as k,B as O,T as q,p as E,f as A,e as s}from"./index-BRg_yWJl.js";import{u as J}from"./settings-AWz-24Iz.js";import{_ as Q}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-CZswS7RJ.js";import{u as W}from"./useConfirmDialog-Ds3wJrfU.js";const X={class:"min-h-screen"},Y={class:"flex min-h-screen flex-col lg:flex-row"},ee={key:0,class:"text-base font-semibold text-foreground"},te={key:0,class:"px-3 pb-2 text-xs uppercase tracking-[0.28em] text-muted-foreground"},re={class:"space-y-1"},oe={"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},se=["d"],ne={key:0,class:"flex-1 min-w-0 truncate"},le={key:1,class:"ml-auto text-xs opacity-0 transition-opacity group-hover:opacity-100"},ae={class:"mt-auto border-t border-border px-6 py-3 lg:py-4"},ie={key:0,class:"rounded-2xl bg-secondary/60 p-3"},de=["title"],ue={class:"min-w-0 flex-1 overflow-hidden lg:ml-0"},pe={class:"min-w-0 flex flex-col gap-4 border-b border-border bg-card/70 px-6 py-5 backdrop-blur lg:flex-row lg:items-center lg:justify-between lg:px-10"},ce={class:"flex items-center gap-3"},xe={class:"text-xl font-semibold text-foreground lg:text-2xl"},fe={class:"flex flex-wrap items-center gap-3"},me={class:"h-full overflow-y-auto overflow-x-hidden bg-card/70 px-4 pb-10 pt-6 backdrop-blur lg:px-10 lg:pt-10"},be={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ge={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},ve={class:"flex items-center justify-between"},he={class:"mt-4 space-y-3 text-sm"},ye={class:"mt-1 flex items-start gap-2"},we={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ke={class:"mt-1 flex items-start gap-2"},_e={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ze={class:"mt-1 flex items-start gap-2"},Ce={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},He={class:"mt-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground"},Me={class:"flex flex-wrap gap-2 text-foreground"},Se={class:"mt-1 flex items-start gap-2"},Ve={class:"min-w-0 flex-1 rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},$e={class:"mt-6 flex items-center justify-end"},Ie=F({__name:"AppShell",setup(Ae){const L=E(),b=Z(),j=U(),c=J(),x=y(!1),o=y(!1),i=W(),g=y(!1),_=[{path:"/",label:"概览",icon:"M4 4h7v7H4V4zm9 0h7v4h-7V4zm0 6h7v10h-7V10zM4 13h7v7H4v-7z"},{path:"/accounts",label:"账号管理",icon:"M12 12a3.5 3.5 0 1 0-3.5-3.5A3.5 3.5 0 0 0 12 12zm0 2c-4.1 0-7.5 2.2-7.5 5v1h15v-1c0-2.8-3.4-5-7.5-5z"},{path:"/settings",label:"系统设置",icon:"M4 6h10v2H4V6zm12 0h4v2h-4V6zM4 11h6v2H4v-2zm8 0h8v2h-8v-2zM4 16h10v2H4v-2zm12 0h4v2h-4v-2z"},{path:"/monitor",label:"监控状态",icon:"M3 12h4l2-4 4 8 3-6h5v2h-4l-4 8-4-8-2 4H3v-2z"},{path:"/logs",label:"运行日志",icon:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h10v2H4v-2z"},{path:"/docs",label:"文档中心",icon:"M6 3h9l4 4v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm8 1.5V8h3.5L14 4.5zM8 11h8v2H8v-2zm0 4h8v2H8v-2z"}],B=f(()=>_.find(t=>t.path===b.path)?.label||"概览"),D=n=>{const r=`transition-colors ${o.value?"px-2 justify-center gap-0":"px-3 gap-3"}`;return b.path===n?`${r} bg-primary text-primary-foreground`:`${r} text-muted-foreground hover:bg-accent hover:text-accent-foreground`},I=n=>b.path===n?"bg-primary-foreground/15 text-primary-foreground border-primary-foreground/40":"bg-secondary text-muted-foreground group-hover:text-accent-foreground",v=f(()=>(c.settings?.basic?.base_url||""||window.location.origin).replace(/\/$/,"")),z=f(()=>`${v.value}/v1`),C=f(()=>`${v.value}/v1/chat/completions`),H=f(()=>c.settings?.basic?.api_key||"未设置"),T=["gemini-auto","gemini-2.5-flash","gemini-2.5-pro","gemini-3-flash-preview","gemini-3-pro-preview"];S(()=>b.path,()=>{x.value=!1});const M=localStorage.getItem("sidebar-collapsed");M&&(o.value=M==="true"),S(o,n=>{localStorage.setItem("sidebar-collapsed",n?"true":"false")});async function N(){await i.ask({title:"退出登录",message:"确定退出管理控制台吗?"})&&(await j.logout(),L.push({name:"login"}))}function P(){window.location.reload()}async function R(){g.value=!0,!c.settings&&!c.isLoading&&await c.loadSettings()}async function h(n){if(n)try{await navigator.clipboard.writeText(n)}catch(t){console.error("Copy failed",t)}}return(n,t)=>(s(),l("div",X,[e("div",Y,[x.value?(s(),l("div",{key:0,class:"fixed inset-0 z-30 bg-black/20 backdrop-blur-sm lg:hidden",onClick:t[0]||(t[0]=r=>x.value=!1)})):d("",!0),e("aside",{class:u(["fixed inset-y-0 left-0 z-40 w-72 -translate-x-full bg-card/90 backdrop-blur-sm lg:backdrop-blur-none border-r border-border transition-[width,transform] duration-200 ease-out will-change-[transform] transform-gpu flex flex-col lg:static lg:translate-x-0 lg:bg-card/80 lg:border-b-0 lg:border-r lg:sticky lg:top-0 lg:h-screen",[{"translate-x-0":x.value,"w-20 lg:w-20":o.value}]])},[e("div",{class:u(["flex h-16 items-center justify-between px-6 pt-4 lg:h-20 lg:pt-5",o.value?"justify-center px-0":""])},[e("div",{class:u(["flex items-center gap-2",o.value?"gap-0 justify-center w-full":""])},[t[9]||(t[9]=e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"text-foreground transition-colors hover:text-primary","aria-label":"GitHub"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-6 w-6",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})])],-1)),o.value?d("",!0):(s(),l("span",ee,"Gemini Business2API"))],2)],2),e("nav",{class:u(["pb-4 pt-4 lg:pt-6 flex-1 overflow-y-auto",o.value?"px-2":"px-3"])},[o.value?d("",!0):(s(),l("p",te," 导航 ")),e("div",re,[(s(),l(V,null,$(_,r=>m(a(k),{key:r.path,to:r.path,class:u(["group flex items-center rounded-2xl py-2 text-sm font-medium transition-colors overflow-hidden",D(r.path)]),title:o.value?r.label:void 0},{default:w(()=>[e("span",{class:u(["inline-flex h-9 w-9 items-center justify-center rounded-2xl border border-border",I(r.path)])},[(s(),l("svg",oe,[e("path",{d:r.icon},null,8,se)]))],2),o.value?d("",!0):(s(),l("span",ne,p(r.label),1)),o.value?d("",!0):(s(),l("span",le," 进入 "))]),_:2},1032,["to","class","title"])),64))])],2),e("div",ae,[o.value?d("",!0):(s(),l("div",ie,[...t[10]||(t[10]=[e("p",{class:"text-xs tracking-[0.12em] text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-1 transition-colors hover:text-foreground"}," gemini-business2api "),e("span",null," · 声明")],-1),e("p",{class:"mt-2 text-xs text-muted-foreground"}," 本项目仅限学习与研究用途,禁止用于商业用途。请保留本声明、原作者信息与开源来源。 ",-1)])])),e("div",{class:u(["mt-4 flex items-center gap-3",o.value?"justify-center":""])},[o.value?d("",!0):(s(),l("button",{key:0,onClick:N,class:"flex-1 rounded-2xl border border-border bg-background px-4 py-3 text-sm font-medium text-muted-foreground transition-colors hover:border-destructive/40 hover:text-destructive"}," 退出登录 ")),e("button",{class:"h-10 w-10 shrink-0 items-center justify-center rounded-2xl border border-border text-muted-foreground transition-all hover:border-primary hover:text-primary flex",onClick:t[1]||(t[1]=r=>o.value=!o.value),title:o.value?"展开侧边栏":"收起侧边栏"},[...t[11]||(t[11]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4 shrink-0",fill:"currentColor"},[e("path",{d:"M6 4h2v16H6V4zm4 4h8v2h-8V8zm0 6h8v2h-8v-2z"})],-1)])],8,de)],2)])],2),e("main",ue,[e("header",pe,[e("div",ce,[e("button",{class:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-border text-foreground transition-colors hover:border-primary hover:text-primary lg:hidden",onClick:t[2]||(t[2]=r=>x.value=!0),"aria-label":"打开导航"},[...t[12]||(t[12]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},[e("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])]),t[13]||(t[13]=K('',1)),e("h2",xe,p(B.value),1)]),e("div",fe,[e("button",{onClick:P,class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",title:"刷新"}," 刷新 "),e("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:R}," 接口信息 "),m(a(k),{to:"/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[14]||(t[14]=[A(" 状态监控 ",-1)])]),_:1}),m(a(k),{to:"/public/logs",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[15]||(t[15]=[A(" 公开日志 ",-1)])]),_:1})])]),e("div",me,[m(a(O))])])]),m(Q,{open:a(i).open.value,title:a(i).title.value,message:a(i).message.value,"confirm-text":a(i).confirmText.value,"cancel-text":a(i).cancelText.value,onConfirm:a(i).confirm,onCancel:a(i).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(s(),G(q,{to:"body"},[g.value?(s(),l("div",be,[e("div",ge,[e("div",ve,[t[16]||(t[16]=e("p",{class:"text-sm font-medium text-foreground"},"API 接口",-1)),e("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:t[3]||(t[3]=r=>g.value=!1)}," 关闭 ")]),t[22]||(t[22]=e("p",{class:"mt-2 text-xs text-muted-foreground"},"根据客户端选择对应接口",-1)),e("div",he,[e("div",null,[t[17]||(t[17]=e("p",{class:"text-xs text-muted-foreground"},"基础端点",-1)),e("div",ye,[e("p",we,p(v.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[4]||(t[4]=r=>h(v.value))}," 复制 ")])]),e("div",null,[t[18]||(t[18]=e("p",{class:"text-xs text-muted-foreground"},"SDK 接口",-1)),e("div",ke,[e("p",_e,p(z.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[5]||(t[5]=r=>h(z.value))}," 复制 ")])]),e("div",null,[t[19]||(t[19]=e("p",{class:"text-xs text-muted-foreground"},"完整接口",-1)),e("div",ze,[e("p",Ce,p(C.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[6]||(t[6]=r=>h(C.value))}," 复制 ")])]),e("div",null,[t[20]||(t[20]=e("p",{class:"text-xs text-muted-foreground"},"支持模型",-1)),e("div",He,[e("div",Me,[(s(),l(V,null,$(T,r=>e("span",{key:r,class:"rounded-full border border-border px-2 py-0.5 text-[11px]"},p(r),1)),64))])])]),e("div",null,[t[21]||(t[21]=e("p",{class:"text-xs text-muted-foreground"},"API 密钥",-1)),e("div",Se,[e("p",Ve,p(H.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[7]||(t[7]=r=>h(H.value))}," 复制 ")])])]),e("div",$e,[e("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:t[8]||(t[8]=r=>g.value=!1)}," 知道了 ")])])])):d("",!0)]))]))}});export{Ie as default}; diff --git a/static/assets/AppShell-Dz-ViePQ.js b/static/assets/AppShell-Dz-ViePQ.js new file mode 100644 index 0000000000000000000000000000000000000000..3c64655fbde88d9c2fed0b7826fc49588d26c39d --- /dev/null +++ b/static/assets/AppShell-Dz-ViePQ.js @@ -0,0 +1 @@ +import{d as F,l as U,h as y,i as f,y as Z,z as S,c as l,a as e,p as m,m as G,b as d,n as u,F as V,r as $,A as K,t as p,s as w,u as a,R as k,B as O,T as E,x as q,f as A,e as s}from"./index-CQv2QMzB.js";import{u as J}from"./settings-D7bt90ge.js";import{_ as Q}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-BRmG52AD.js";import{u as W}from"./useConfirmDialog-BeyA60E7.js";const X={class:"min-h-screen"},Y={class:"flex min-h-screen flex-col lg:flex-row"},ee={key:0,class:"text-base font-semibold text-foreground"},te={key:0,class:"px-3 pb-2 text-xs uppercase tracking-[0.28em] text-muted-foreground"},re={class:"space-y-1"},oe={"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},se=["d"],ne={key:0,class:"flex-1 min-w-0 truncate"},le={key:1,class:"ml-auto text-xs opacity-0 transition-opacity group-hover:opacity-100"},ae={class:"mt-auto border-t border-border px-6 py-3 lg:py-4"},ie={key:0,class:"rounded-2xl bg-secondary/60 p-3"},de=["title"],ue={class:"min-w-0 flex-1 overflow-hidden lg:ml-0"},pe={class:"min-w-0 flex flex-col gap-4 border-b border-border bg-card/70 px-6 py-5 backdrop-blur lg:flex-row lg:items-center lg:justify-between lg:px-10"},ce={class:"flex items-center gap-3"},xe={class:"text-xl font-semibold text-foreground lg:text-2xl"},fe={class:"flex flex-wrap items-center gap-3"},me={class:"h-full overflow-y-auto overflow-x-hidden bg-card/70 px-4 pb-10 pt-6 backdrop-blur lg:px-10 lg:pt-10"},be={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ge={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},ve={class:"flex items-center justify-between"},he={class:"mt-4 space-y-3 text-sm"},ye={class:"mt-1 flex items-start gap-2"},we={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ke={class:"mt-1 flex items-start gap-2"},_e={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ze={class:"mt-1 flex items-start gap-2"},Ce={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},He={class:"mt-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground"},Me={class:"flex flex-wrap gap-2 text-foreground"},Se={class:"mt-1 flex items-start gap-2"},Ve={class:"min-w-0 flex-1 rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},$e={class:"mt-6 flex items-center justify-end"},Ie=F({__name:"AppShell",setup(Ae){const L=q(),b=Z(),j=U(),c=J(),x=y(!1),o=y(!1),i=W(),g=y(!1),_=[{path:"/",label:"概览",icon:"M4 4h7v7H4V4zm9 0h7v4h-7V4zm0 6h7v10h-7V10zM4 13h7v7H4v-7z"},{path:"/accounts",label:"账号管理",icon:"M12 12a3.5 3.5 0 1 0-3.5-3.5A3.5 3.5 0 0 0 12 12zm0 2c-4.1 0-7.5 2.2-7.5 5v1h15v-1c0-2.8-3.4-5-7.5-5z"},{path:"/settings",label:"系统设置",icon:"M4 6h10v2H4V6zm12 0h4v2h-4V6zM4 11h6v2H4v-2zm8 0h8v2h-8v-2zM4 16h10v2H4v-2zm12 0h4v2h-4v-2z"},{path:"/monitor",label:"监控状态",icon:"M3 12h4l2-4 4 8 3-6h5v2h-4l-4 8-4-8-2 4H3v-2z"},{path:"/logs",label:"运行日志",icon:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h10v2H4v-2z"},{path:"/docs",label:"文档中心",icon:"M6 3h9l4 4v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm8 1.5V8h3.5L14 4.5zM8 11h8v2H8v-2zm0 4h8v2H8v-2z"}],B=f(()=>_.find(t=>t.path===b.path)?.label||"概览"),D=n=>{const r=`transition-colors ${o.value?"px-2 justify-center gap-0":"px-3 gap-3"}`;return b.path===n?`${r} bg-primary text-primary-foreground`:`${r} text-muted-foreground hover:bg-accent hover:text-accent-foreground`},I=n=>b.path===n?"bg-primary-foreground/15 text-primary-foreground border-primary-foreground/40":"bg-secondary text-muted-foreground group-hover:text-accent-foreground",v=f(()=>(c.settings?.basic?.base_url||""||window.location.origin).replace(/\/$/,"")),z=f(()=>`${v.value}/v1`),C=f(()=>`${v.value}/v1/chat/completions`),H=f(()=>c.settings?.basic?.api_key||"未设置"),T=["gemini-auto","gemini-2.5-flash","gemini-2.5-pro","gemini-3-flash-preview","gemini-3-pro-preview"];S(()=>b.path,()=>{x.value=!1});const M=localStorage.getItem("sidebar-collapsed");M&&(o.value=M==="true"),S(o,n=>{localStorage.setItem("sidebar-collapsed",n?"true":"false")});async function N(){await i.ask({title:"退出登录",message:"确定退出管理控制台吗?"})&&(await j.logout(),L.push({name:"login"}))}function P(){window.location.reload()}async function R(){g.value=!0,!c.settings&&!c.isLoading&&await c.loadSettings()}async function h(n){if(n)try{await navigator.clipboard.writeText(n)}catch(t){console.error("Copy failed",t)}}return(n,t)=>(s(),l("div",X,[e("div",Y,[x.value?(s(),l("div",{key:0,class:"fixed inset-0 z-30 bg-black/20 backdrop-blur-sm lg:hidden",onClick:t[0]||(t[0]=r=>x.value=!1)})):d("",!0),e("aside",{class:u(["fixed inset-y-0 left-0 z-40 w-72 -translate-x-full bg-card/90 backdrop-blur-sm lg:backdrop-blur-none border-r border-border transition-[width,transform] duration-200 ease-out will-change-[transform] transform-gpu flex flex-col lg:static lg:translate-x-0 lg:bg-card/80 lg:border-b-0 lg:border-r lg:sticky lg:top-0 lg:h-screen",[{"translate-x-0":x.value,"w-20 lg:w-20":o.value}]])},[e("div",{class:u(["flex h-16 items-center justify-between px-6 pt-4 lg:h-20 lg:pt-5",o.value?"justify-center px-0":""])},[e("div",{class:u(["flex items-center gap-2",o.value?"gap-0 justify-center w-full":""])},[t[9]||(t[9]=e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"text-foreground transition-colors hover:text-primary","aria-label":"GitHub"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-6 w-6",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})])],-1)),o.value?d("",!0):(s(),l("span",ee,"Gemini Business2API"))],2)],2),e("nav",{class:u(["pb-4 pt-4 lg:pt-6 flex-1 overflow-y-auto",o.value?"px-2":"px-3"])},[o.value?d("",!0):(s(),l("p",te," 导航 ")),e("div",re,[(s(),l(V,null,$(_,r=>m(a(k),{key:r.path,to:r.path,class:u(["group flex items-center rounded-2xl py-2 text-sm font-medium transition-colors overflow-hidden",D(r.path)]),title:o.value?r.label:void 0},{default:w(()=>[e("span",{class:u(["inline-flex h-9 w-9 items-center justify-center rounded-2xl border border-border",I(r.path)])},[(s(),l("svg",oe,[e("path",{d:r.icon},null,8,se)]))],2),o.value?d("",!0):(s(),l("span",ne,p(r.label),1)),o.value?d("",!0):(s(),l("span",le," 进入 "))]),_:2},1032,["to","class","title"])),64))])],2),e("div",ae,[o.value?d("",!0):(s(),l("div",ie,[...t[10]||(t[10]=[e("p",{class:"text-xs tracking-[0.12em] text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-1 transition-colors hover:text-foreground"}," gemini-business2api "),e("span",null," · 声明")],-1),e("p",{class:"mt-2 text-xs text-muted-foreground"}," 本项目仅限学习与研究用途,禁止用于商业用途。请保留本声明、原作者信息与开源来源。 ",-1)])])),e("div",{class:u(["mt-4 flex items-center gap-3",o.value?"justify-center":""])},[o.value?d("",!0):(s(),l("button",{key:0,onClick:N,class:"flex-1 rounded-2xl border border-border bg-background px-4 py-3 text-sm font-medium text-muted-foreground transition-colors hover:border-destructive/40 hover:text-destructive"}," 退出登录 ")),e("button",{class:"h-10 w-10 shrink-0 items-center justify-center rounded-2xl border border-border text-muted-foreground transition-all hover:border-primary hover:text-primary flex",onClick:t[1]||(t[1]=r=>o.value=!o.value),title:o.value?"展开侧边栏":"收起侧边栏"},[...t[11]||(t[11]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4 shrink-0",fill:"currentColor"},[e("path",{d:"M6 4h2v16H6V4zm4 4h8v2h-8V8zm0 6h8v2h-8v-2z"})],-1)])],8,de)],2)])],2),e("main",ue,[e("header",pe,[e("div",ce,[e("button",{class:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-border text-foreground transition-colors hover:border-primary hover:text-primary lg:hidden",onClick:t[2]||(t[2]=r=>x.value=!0),"aria-label":"打开导航"},[...t[12]||(t[12]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},[e("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])]),t[13]||(t[13]=K('',1)),e("h2",xe,p(B.value),1)]),e("div",fe,[e("button",{onClick:P,class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",title:"刷新"}," 刷新 "),e("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:R}," 接口信息 "),m(a(k),{to:"/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[14]||(t[14]=[A(" 状态监控 ",-1)])]),_:1}),m(a(k),{to:"/public/logs",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[15]||(t[15]=[A(" 公开日志 ",-1)])]),_:1})])]),e("div",me,[m(a(O))])])]),m(Q,{open:a(i).open.value,title:a(i).title.value,message:a(i).message.value,"confirm-text":a(i).confirmText.value,"cancel-text":a(i).cancelText.value,onConfirm:a(i).confirm,onCancel:a(i).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(s(),G(E,{to:"body"},[g.value?(s(),l("div",be,[e("div",ge,[e("div",ve,[t[16]||(t[16]=e("p",{class:"text-sm font-medium text-foreground"},"API 接口",-1)),e("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:t[3]||(t[3]=r=>g.value=!1)}," 关闭 ")]),t[22]||(t[22]=e("p",{class:"mt-2 text-xs text-muted-foreground"},"根据客户端选择对应接口",-1)),e("div",he,[e("div",null,[t[17]||(t[17]=e("p",{class:"text-xs text-muted-foreground"},"基础端点",-1)),e("div",ye,[e("p",we,p(v.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[4]||(t[4]=r=>h(v.value))}," 复制 ")])]),e("div",null,[t[18]||(t[18]=e("p",{class:"text-xs text-muted-foreground"},"SDK 接口",-1)),e("div",ke,[e("p",_e,p(z.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[5]||(t[5]=r=>h(z.value))}," 复制 ")])]),e("div",null,[t[19]||(t[19]=e("p",{class:"text-xs text-muted-foreground"},"完整接口",-1)),e("div",ze,[e("p",Ce,p(C.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[6]||(t[6]=r=>h(C.value))}," 复制 ")])]),e("div",null,[t[20]||(t[20]=e("p",{class:"text-xs text-muted-foreground"},"支持模型",-1)),e("div",He,[e("div",Me,[(s(),l(V,null,$(T,r=>e("span",{key:r,class:"rounded-full border border-border px-2 py-0.5 text-[11px]"},p(r),1)),64))])])]),e("div",null,[t[21]||(t[21]=e("p",{class:"text-xs text-muted-foreground"},"API 密钥",-1)),e("div",Se,[e("p",Ve,p(H.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[7]||(t[7]=r=>h(H.value))}," 复制 ")])])]),e("div",$e,[e("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:t[8]||(t[8]=r=>g.value=!1)}," 知道了 ")])])])):d("",!0)]))]))}});export{Ie as default}; diff --git a/static/assets/AppShell-WtLTfBVP.js b/static/assets/AppShell-WtLTfBVP.js new file mode 100644 index 0000000000000000000000000000000000000000..4a9abffbbbf9b2b19cae3d99772e406d778b86a6 --- /dev/null +++ b/static/assets/AppShell-WtLTfBVP.js @@ -0,0 +1 @@ +import{d as F,l as U,h as y,i as f,q as Z,s as S,c as l,a as e,x as m,y as G,b as d,n as u,F as V,r as $,z as K,t as p,A as w,u as a,R as k,B as O,T as q,p as E,f as A,e as s}from"./index-BIHSVHyU.js";import{u as J}from"./settings-CnjmnC7x.js";import{_ as Q}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-fISQukFW.js";import{u as W}from"./useConfirmDialog-urbmwbaE.js";const X={class:"min-h-screen"},Y={class:"flex min-h-screen flex-col lg:flex-row"},ee={key:0,class:"text-base font-semibold text-foreground"},te={key:0,class:"px-3 pb-2 text-xs uppercase tracking-[0.28em] text-muted-foreground"},re={class:"space-y-1"},oe={"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},se=["d"],ne={key:0,class:"flex-1 min-w-0 truncate"},le={key:1,class:"ml-auto text-xs opacity-0 transition-opacity group-hover:opacity-100"},ae={class:"mt-auto border-t border-border px-6 py-3 lg:py-4"},ie={key:0,class:"rounded-2xl bg-secondary/60 p-3"},de=["title"],ue={class:"min-w-0 flex-1 overflow-hidden lg:ml-0"},pe={class:"min-w-0 flex flex-col gap-4 border-b border-border bg-card/70 px-6 py-5 backdrop-blur lg:flex-row lg:items-center lg:justify-between lg:px-10"},ce={class:"flex items-center gap-3"},xe={class:"text-xl font-semibold text-foreground lg:text-2xl"},fe={class:"flex flex-wrap items-center gap-3"},me={class:"h-full overflow-y-auto overflow-x-hidden bg-card/70 px-4 pb-10 pt-6 backdrop-blur lg:px-10 lg:pt-10"},be={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ge={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},ve={class:"flex items-center justify-between"},he={class:"mt-4 space-y-3 text-sm"},ye={class:"mt-1 flex items-start gap-2"},we={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ke={class:"mt-1 flex items-start gap-2"},_e={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ze={class:"mt-1 flex items-start gap-2"},Ce={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},He={class:"mt-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground"},Me={class:"flex flex-wrap gap-2 text-foreground"},Se={class:"mt-1 flex items-start gap-2"},Ve={class:"min-w-0 flex-1 rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},$e={class:"mt-6 flex items-center justify-end"},Ie=F({__name:"AppShell",setup(Ae){const L=E(),b=Z(),j=U(),c=J(),x=y(!1),o=y(!1),i=W(),g=y(!1),_=[{path:"/",label:"概览",icon:"M4 4h7v7H4V4zm9 0h7v4h-7V4zm0 6h7v10h-7V10zM4 13h7v7H4v-7z"},{path:"/accounts",label:"账号管理",icon:"M12 12a3.5 3.5 0 1 0-3.5-3.5A3.5 3.5 0 0 0 12 12zm0 2c-4.1 0-7.5 2.2-7.5 5v1h15v-1c0-2.8-3.4-5-7.5-5z"},{path:"/settings",label:"系统设置",icon:"M4 6h10v2H4V6zm12 0h4v2h-4V6zM4 11h6v2H4v-2zm8 0h8v2h-8v-2zM4 16h10v2H4v-2zm12 0h4v2h-4v-2z"},{path:"/monitor",label:"监控状态",icon:"M3 12h4l2-4 4 8 3-6h5v2h-4l-4 8-4-8-2 4H3v-2z"},{path:"/logs",label:"运行日志",icon:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h10v2H4v-2z"},{path:"/docs",label:"文档中心",icon:"M6 3h9l4 4v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm8 1.5V8h3.5L14 4.5zM8 11h8v2H8v-2zm0 4h8v2H8v-2z"}],B=f(()=>_.find(t=>t.path===b.path)?.label||"概览"),D=n=>{const r=`transition-colors ${o.value?"px-2 justify-center gap-0":"px-3 gap-3"}`;return b.path===n?`${r} bg-primary text-primary-foreground`:`${r} text-muted-foreground hover:bg-accent hover:text-accent-foreground`},I=n=>b.path===n?"bg-primary-foreground/15 text-primary-foreground border-primary-foreground/40":"bg-secondary text-muted-foreground group-hover:text-accent-foreground",v=f(()=>(c.settings?.basic?.base_url||""||window.location.origin).replace(/\/$/,"")),z=f(()=>`${v.value}/v1`),C=f(()=>`${v.value}/v1/chat/completions`),H=f(()=>c.settings?.basic?.api_key||"未设置"),T=["gemini-auto","gemini-2.5-flash","gemini-2.5-pro","gemini-3-flash-preview","gemini-3-pro-preview"];S(()=>b.path,()=>{x.value=!1});const M=localStorage.getItem("sidebar-collapsed");M&&(o.value=M==="true"),S(o,n=>{localStorage.setItem("sidebar-collapsed",n?"true":"false")});async function N(){await i.ask({title:"退出登录",message:"确定退出管理控制台吗?"})&&(await j.logout(),L.push({name:"login"}))}function P(){window.location.reload()}async function R(){g.value=!0,!c.settings&&!c.isLoading&&await c.loadSettings()}async function h(n){if(n)try{await navigator.clipboard.writeText(n)}catch(t){console.error("Copy failed",t)}}return(n,t)=>(s(),l("div",X,[e("div",Y,[x.value?(s(),l("div",{key:0,class:"fixed inset-0 z-30 bg-black/20 backdrop-blur-sm lg:hidden",onClick:t[0]||(t[0]=r=>x.value=!1)})):d("",!0),e("aside",{class:u(["fixed inset-y-0 left-0 z-40 w-72 -translate-x-full bg-card/90 backdrop-blur-sm lg:backdrop-blur-none border-r border-border transition-[width,transform] duration-200 ease-out will-change-[transform] transform-gpu flex flex-col lg:static lg:translate-x-0 lg:bg-card/80 lg:border-b-0 lg:border-r lg:sticky lg:top-0 lg:h-screen",[{"translate-x-0":x.value,"w-20 lg:w-20":o.value}]])},[e("div",{class:u(["flex h-16 items-center justify-between px-6 pt-4 lg:h-20 lg:pt-5",o.value?"justify-center px-0":""])},[e("div",{class:u(["flex items-center gap-2",o.value?"gap-0 justify-center w-full":""])},[t[9]||(t[9]=e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"text-foreground transition-colors hover:text-primary","aria-label":"GitHub"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-6 w-6",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})])],-1)),o.value?d("",!0):(s(),l("span",ee,"Gemini Business2API"))],2)],2),e("nav",{class:u(["pb-4 pt-4 lg:pt-6 flex-1 overflow-y-auto",o.value?"px-2":"px-3"])},[o.value?d("",!0):(s(),l("p",te," 导航 ")),e("div",re,[(s(),l(V,null,$(_,r=>m(a(k),{key:r.path,to:r.path,class:u(["group flex items-center rounded-2xl py-2 text-sm font-medium transition-colors overflow-hidden",D(r.path)]),title:o.value?r.label:void 0},{default:w(()=>[e("span",{class:u(["inline-flex h-9 w-9 items-center justify-center rounded-2xl border border-border",I(r.path)])},[(s(),l("svg",oe,[e("path",{d:r.icon},null,8,se)]))],2),o.value?d("",!0):(s(),l("span",ne,p(r.label),1)),o.value?d("",!0):(s(),l("span",le," 进入 "))]),_:2},1032,["to","class","title"])),64))])],2),e("div",ae,[o.value?d("",!0):(s(),l("div",ie,[...t[10]||(t[10]=[e("p",{class:"text-xs tracking-[0.12em] text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-1 transition-colors hover:text-foreground"}," gemini-business2api "),e("span",null," · 声明")],-1),e("p",{class:"mt-2 text-xs text-muted-foreground"}," 本项目仅限学习与研究用途,禁止用于商业用途。请保留本声明、原作者信息与开源来源。 ",-1)])])),e("div",{class:u(["mt-4 flex items-center gap-3",o.value?"justify-center":""])},[o.value?d("",!0):(s(),l("button",{key:0,onClick:N,class:"flex-1 rounded-2xl border border-border bg-background px-4 py-3 text-sm font-medium text-muted-foreground transition-colors hover:border-destructive/40 hover:text-destructive"}," 退出登录 ")),e("button",{class:"h-10 w-10 shrink-0 items-center justify-center rounded-2xl border border-border text-muted-foreground transition-all hover:border-primary hover:text-primary flex",onClick:t[1]||(t[1]=r=>o.value=!o.value),title:o.value?"展开侧边栏":"收起侧边栏"},[...t[11]||(t[11]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4 shrink-0",fill:"currentColor"},[e("path",{d:"M6 4h2v16H6V4zm4 4h8v2h-8V8zm0 6h8v2h-8v-2z"})],-1)])],8,de)],2)])],2),e("main",ue,[e("header",pe,[e("div",ce,[e("button",{class:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-border text-foreground transition-colors hover:border-primary hover:text-primary lg:hidden",onClick:t[2]||(t[2]=r=>x.value=!0),"aria-label":"打开导航"},[...t[12]||(t[12]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},[e("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])]),t[13]||(t[13]=K('',1)),e("h2",xe,p(B.value),1)]),e("div",fe,[e("button",{onClick:P,class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",title:"刷新"}," 刷新 "),e("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:R}," 接口信息 "),m(a(k),{to:"/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[14]||(t[14]=[A(" 状态监控 ",-1)])]),_:1}),m(a(k),{to:"/public/logs",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[15]||(t[15]=[A(" 公开日志 ",-1)])]),_:1})])]),e("div",me,[m(a(O))])])]),m(Q,{open:a(i).open.value,title:a(i).title.value,message:a(i).message.value,"confirm-text":a(i).confirmText.value,"cancel-text":a(i).cancelText.value,onConfirm:a(i).confirm,onCancel:a(i).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(s(),G(q,{to:"body"},[g.value?(s(),l("div",be,[e("div",ge,[e("div",ve,[t[16]||(t[16]=e("p",{class:"text-sm font-medium text-foreground"},"API 接口",-1)),e("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:t[3]||(t[3]=r=>g.value=!1)}," 关闭 ")]),t[22]||(t[22]=e("p",{class:"mt-2 text-xs text-muted-foreground"},"根据客户端选择对应接口",-1)),e("div",he,[e("div",null,[t[17]||(t[17]=e("p",{class:"text-xs text-muted-foreground"},"基础端点",-1)),e("div",ye,[e("p",we,p(v.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[4]||(t[4]=r=>h(v.value))}," 复制 ")])]),e("div",null,[t[18]||(t[18]=e("p",{class:"text-xs text-muted-foreground"},"SDK 接口",-1)),e("div",ke,[e("p",_e,p(z.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[5]||(t[5]=r=>h(z.value))}," 复制 ")])]),e("div",null,[t[19]||(t[19]=e("p",{class:"text-xs text-muted-foreground"},"完整接口",-1)),e("div",ze,[e("p",Ce,p(C.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[6]||(t[6]=r=>h(C.value))}," 复制 ")])]),e("div",null,[t[20]||(t[20]=e("p",{class:"text-xs text-muted-foreground"},"支持模型",-1)),e("div",He,[e("div",Me,[(s(),l(V,null,$(T,r=>e("span",{key:r,class:"rounded-full border border-border px-2 py-0.5 text-[11px]"},p(r),1)),64))])])]),e("div",null,[t[21]||(t[21]=e("p",{class:"text-xs text-muted-foreground"},"API 密钥",-1)),e("div",Se,[e("p",Ve,p(H.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[7]||(t[7]=r=>h(H.value))}," 复制 ")])])]),e("div",$e,[e("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:t[8]||(t[8]=r=>g.value=!1)}," 知道了 ")])])])):d("",!0)]))]))}});export{Ie as default}; diff --git a/static/assets/AppShell-_I1IX8_9.js b/static/assets/AppShell-_I1IX8_9.js new file mode 100644 index 0000000000000000000000000000000000000000..082828429335e1e0c7ae772443538c747c22c6bc --- /dev/null +++ b/static/assets/AppShell-_I1IX8_9.js @@ -0,0 +1 @@ +import{d as F,l as U,h as y,i as f,s as Z,x as S,c as l,a as e,y as m,z as G,b as d,n as u,F as V,r as $,m as K,t as p,A as w,u as a,R as k,B as O,T as q,q as E,f as A,e as s}from"./index-Bx7qSams.js";import{u as J}from"./settings-Br7FkzDa.js";import{_ as Q}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-CLzCrpfO.js";import{u as W}from"./useConfirmDialog-DIY3VaSP.js";const X={class:"min-h-screen"},Y={class:"flex min-h-screen flex-col lg:flex-row"},ee={key:0,class:"text-base font-semibold text-foreground"},te={key:0,class:"px-3 pb-2 text-xs uppercase tracking-[0.28em] text-muted-foreground"},re={class:"space-y-1"},oe={"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},se=["d"],ne={key:0,class:"flex-1 min-w-0 truncate"},le={key:1,class:"ml-auto text-xs opacity-0 transition-opacity group-hover:opacity-100"},ae={class:"mt-auto border-t border-border px-6 py-3 lg:py-4"},ie={key:0,class:"rounded-2xl bg-secondary/60 p-3"},de=["title"],ue={class:"min-w-0 flex-1 overflow-hidden lg:ml-0"},pe={class:"min-w-0 flex flex-col gap-4 border-b border-border bg-card/70 px-6 py-5 backdrop-blur lg:flex-row lg:items-center lg:justify-between lg:px-10"},ce={class:"flex items-center gap-3"},xe={class:"text-xl font-semibold text-foreground lg:text-2xl"},fe={class:"flex flex-wrap items-center gap-3"},me={class:"h-full overflow-y-auto overflow-x-hidden bg-card/70 px-4 pb-10 pt-6 backdrop-blur lg:px-10 lg:pt-10"},be={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ge={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},ve={class:"flex items-center justify-between"},he={class:"mt-4 space-y-3 text-sm"},ye={class:"mt-1 flex items-start gap-2"},we={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ke={class:"mt-1 flex items-start gap-2"},_e={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ze={class:"mt-1 flex items-start gap-2"},Ce={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},He={class:"mt-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground"},Me={class:"flex flex-wrap gap-2 text-foreground"},Se={class:"mt-1 flex items-start gap-2"},Ve={class:"min-w-0 flex-1 rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},$e={class:"mt-6 flex items-center justify-end"},Ie=F({__name:"AppShell",setup(Ae){const L=E(),b=Z(),j=U(),c=J(),x=y(!1),o=y(!1),i=W(),g=y(!1),_=[{path:"/",label:"概览",icon:"M4 4h7v7H4V4zm9 0h7v4h-7V4zm0 6h7v10h-7V10zM4 13h7v7H4v-7z"},{path:"/accounts",label:"账号管理",icon:"M12 12a3.5 3.5 0 1 0-3.5-3.5A3.5 3.5 0 0 0 12 12zm0 2c-4.1 0-7.5 2.2-7.5 5v1h15v-1c0-2.8-3.4-5-7.5-5z"},{path:"/settings",label:"系统设置",icon:"M4 6h10v2H4V6zm12 0h4v2h-4V6zM4 11h6v2H4v-2zm8 0h8v2h-8v-2zM4 16h10v2H4v-2zm12 0h4v2h-4v-2z"},{path:"/monitor",label:"监控状态",icon:"M3 12h4l2-4 4 8 3-6h5v2h-4l-4 8-4-8-2 4H3v-2z"},{path:"/logs",label:"运行日志",icon:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h10v2H4v-2z"},{path:"/docs",label:"文档中心",icon:"M6 3h9l4 4v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm8 1.5V8h3.5L14 4.5zM8 11h8v2H8v-2zm0 4h8v2H8v-2z"}],B=f(()=>_.find(t=>t.path===b.path)?.label||"概览"),D=n=>{const r=`transition-colors ${o.value?"px-2 justify-center gap-0":"px-3 gap-3"}`;return b.path===n?`${r} bg-primary text-primary-foreground`:`${r} text-muted-foreground hover:bg-accent hover:text-accent-foreground`},I=n=>b.path===n?"bg-primary-foreground/15 text-primary-foreground border-primary-foreground/40":"bg-secondary text-muted-foreground group-hover:text-accent-foreground",v=f(()=>(c.settings?.basic?.base_url||""||window.location.origin).replace(/\/$/,"")),z=f(()=>`${v.value}/v1`),C=f(()=>`${v.value}/v1/chat/completions`),H=f(()=>c.settings?.basic?.api_key||"未设置"),T=["gemini-auto","gemini-2.5-flash","gemini-2.5-pro","gemini-3-flash-preview","gemini-3-pro-preview"];S(()=>b.path,()=>{x.value=!1});const M=localStorage.getItem("sidebar-collapsed");M&&(o.value=M==="true"),S(o,n=>{localStorage.setItem("sidebar-collapsed",n?"true":"false")});async function N(){await i.ask({title:"退出登录",message:"确定退出管理控制台吗?"})&&(await j.logout(),L.push({name:"login"}))}function P(){window.location.reload()}async function R(){g.value=!0,!c.settings&&!c.isLoading&&await c.loadSettings()}async function h(n){if(n)try{await navigator.clipboard.writeText(n)}catch(t){console.error("Copy failed",t)}}return(n,t)=>(s(),l("div",X,[e("div",Y,[x.value?(s(),l("div",{key:0,class:"fixed inset-0 z-30 bg-black/20 backdrop-blur-sm lg:hidden",onClick:t[0]||(t[0]=r=>x.value=!1)})):d("",!0),e("aside",{class:u(["fixed inset-y-0 left-0 z-40 w-72 -translate-x-full bg-card/90 backdrop-blur-sm lg:backdrop-blur-none border-r border-border transition-[width,transform] duration-200 ease-out will-change-[transform] transform-gpu flex flex-col lg:static lg:translate-x-0 lg:bg-card/80 lg:border-b-0 lg:border-r lg:sticky lg:top-0 lg:h-screen",[{"translate-x-0":x.value,"w-20 lg:w-20":o.value}]])},[e("div",{class:u(["flex h-16 items-center justify-between px-6 pt-4 lg:h-20 lg:pt-5",o.value?"justify-center px-0":""])},[e("div",{class:u(["flex items-center gap-2",o.value?"gap-0 justify-center w-full":""])},[t[9]||(t[9]=e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"text-foreground transition-colors hover:text-primary","aria-label":"GitHub"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-6 w-6",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})])],-1)),o.value?d("",!0):(s(),l("span",ee,"Gemini Business2API"))],2)],2),e("nav",{class:u(["pb-4 pt-4 lg:pt-6 flex-1 overflow-y-auto",o.value?"px-2":"px-3"])},[o.value?d("",!0):(s(),l("p",te," 导航 ")),e("div",re,[(s(),l(V,null,$(_,r=>m(a(k),{key:r.path,to:r.path,class:u(["group flex items-center rounded-2xl py-2 text-sm font-medium transition-colors overflow-hidden",D(r.path)]),title:o.value?r.label:void 0},{default:w(()=>[e("span",{class:u(["inline-flex h-9 w-9 items-center justify-center rounded-2xl border border-border",I(r.path)])},[(s(),l("svg",oe,[e("path",{d:r.icon},null,8,se)]))],2),o.value?d("",!0):(s(),l("span",ne,p(r.label),1)),o.value?d("",!0):(s(),l("span",le," 进入 "))]),_:2},1032,["to","class","title"])),64))])],2),e("div",ae,[o.value?d("",!0):(s(),l("div",ie,[...t[10]||(t[10]=[e("p",{class:"text-xs tracking-[0.12em] text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-1 transition-colors hover:text-foreground"}," gemini-business2api "),e("span",null," · 声明")],-1),e("p",{class:"mt-2 text-xs text-muted-foreground"}," 本项目仅限学习与研究用途,禁止用于商业用途。请保留本声明、原作者信息与开源来源。 ",-1)])])),e("div",{class:u(["mt-4 flex items-center gap-3",o.value?"justify-center":""])},[o.value?d("",!0):(s(),l("button",{key:0,onClick:N,class:"flex-1 rounded-2xl border border-border bg-background px-4 py-3 text-sm font-medium text-muted-foreground transition-colors hover:border-destructive/40 hover:text-destructive"}," 退出登录 ")),e("button",{class:"h-10 w-10 shrink-0 items-center justify-center rounded-2xl border border-border text-muted-foreground transition-all hover:border-primary hover:text-primary flex",onClick:t[1]||(t[1]=r=>o.value=!o.value),title:o.value?"展开侧边栏":"收起侧边栏"},[...t[11]||(t[11]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4 shrink-0",fill:"currentColor"},[e("path",{d:"M6 4h2v16H6V4zm4 4h8v2h-8V8zm0 6h8v2h-8v-2z"})],-1)])],8,de)],2)])],2),e("main",ue,[e("header",pe,[e("div",ce,[e("button",{class:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-border text-foreground transition-colors hover:border-primary hover:text-primary lg:hidden",onClick:t[2]||(t[2]=r=>x.value=!0),"aria-label":"打开导航"},[...t[12]||(t[12]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},[e("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])]),t[13]||(t[13]=K('',1)),e("h2",xe,p(B.value),1)]),e("div",fe,[e("button",{onClick:P,class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",title:"刷新"}," 刷新 "),e("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:R}," 接口信息 "),m(a(k),{to:"/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[14]||(t[14]=[A(" 状态监控 ",-1)])]),_:1}),m(a(k),{to:"/public/logs",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[15]||(t[15]=[A(" 公开日志 ",-1)])]),_:1})])]),e("div",me,[m(a(O))])])]),m(Q,{open:a(i).open.value,title:a(i).title.value,message:a(i).message.value,"confirm-text":a(i).confirmText.value,"cancel-text":a(i).cancelText.value,onConfirm:a(i).confirm,onCancel:a(i).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(s(),G(q,{to:"body"},[g.value?(s(),l("div",be,[e("div",ge,[e("div",ve,[t[16]||(t[16]=e("p",{class:"text-sm font-medium text-foreground"},"API 接口",-1)),e("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:t[3]||(t[3]=r=>g.value=!1)}," 关闭 ")]),t[22]||(t[22]=e("p",{class:"mt-2 text-xs text-muted-foreground"},"根据客户端选择对应接口",-1)),e("div",he,[e("div",null,[t[17]||(t[17]=e("p",{class:"text-xs text-muted-foreground"},"基础端点",-1)),e("div",ye,[e("p",we,p(v.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[4]||(t[4]=r=>h(v.value))}," 复制 ")])]),e("div",null,[t[18]||(t[18]=e("p",{class:"text-xs text-muted-foreground"},"SDK 接口",-1)),e("div",ke,[e("p",_e,p(z.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[5]||(t[5]=r=>h(z.value))}," 复制 ")])]),e("div",null,[t[19]||(t[19]=e("p",{class:"text-xs text-muted-foreground"},"完整接口",-1)),e("div",ze,[e("p",Ce,p(C.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[6]||(t[6]=r=>h(C.value))}," 复制 ")])]),e("div",null,[t[20]||(t[20]=e("p",{class:"text-xs text-muted-foreground"},"支持模型",-1)),e("div",He,[e("div",Me,[(s(),l(V,null,$(T,r=>e("span",{key:r,class:"rounded-full border border-border px-2 py-0.5 text-[11px]"},p(r),1)),64))])])]),e("div",null,[t[21]||(t[21]=e("p",{class:"text-xs text-muted-foreground"},"API 密钥",-1)),e("div",Se,[e("p",Ve,p(H.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[7]||(t[7]=r=>h(H.value))}," 复制 ")])])]),e("div",$e,[e("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:t[8]||(t[8]=r=>g.value=!1)}," 知道了 ")])])])):d("",!0)]))]))}});export{Ie as default}; diff --git a/static/assets/AppShell-aSE0a76B.js b/static/assets/AppShell-aSE0a76B.js new file mode 100644 index 0000000000000000000000000000000000000000..a0defdb6b313a880da3b998cb51e39492e467ea5 --- /dev/null +++ b/static/assets/AppShell-aSE0a76B.js @@ -0,0 +1 @@ +import{d as F,l as U,h as y,i as f,y as Z,z as S,c as l,a as e,p as m,m as G,b as d,n as u,F as V,r as $,A as K,t as p,s as w,u as a,R as k,B as O,T as E,x as q,f as A,e as s}from"./index-BCQxBeUo.js";import{u as J}from"./settings-2nHuz2zg.js";import{_ as Q}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-CXKmFeEu.js";import{u as W}from"./useConfirmDialog-CdgTrrpG.js";const X={class:"min-h-screen"},Y={class:"flex min-h-screen flex-col lg:flex-row"},ee={key:0,class:"text-base font-semibold text-foreground"},te={key:0,class:"px-3 pb-2 text-xs uppercase tracking-[0.28em] text-muted-foreground"},re={class:"space-y-1"},oe={"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},se=["d"],ne={key:0,class:"flex-1 min-w-0 truncate"},le={key:1,class:"ml-auto text-xs opacity-0 transition-opacity group-hover:opacity-100"},ae={class:"mt-auto border-t border-border px-6 py-3 lg:py-4"},ie={key:0,class:"rounded-2xl bg-secondary/60 p-3"},de=["title"],ue={class:"min-w-0 flex-1 overflow-hidden lg:ml-0"},pe={class:"min-w-0 flex flex-col gap-4 border-b border-border bg-card/70 px-6 py-5 backdrop-blur lg:flex-row lg:items-center lg:justify-between lg:px-10"},ce={class:"flex items-center gap-3"},xe={class:"text-xl font-semibold text-foreground lg:text-2xl"},fe={class:"flex flex-wrap items-center gap-3"},me={class:"h-full overflow-y-auto overflow-x-hidden bg-card/70 px-4 pb-10 pt-6 backdrop-blur lg:px-10 lg:pt-10"},be={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ge={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},ve={class:"flex items-center justify-between"},he={class:"mt-4 space-y-3 text-sm"},ye={class:"mt-1 flex items-start gap-2"},we={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ke={class:"mt-1 flex items-start gap-2"},_e={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ze={class:"mt-1 flex items-start gap-2"},Ce={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},He={class:"mt-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground"},Me={class:"flex flex-wrap gap-2 text-foreground"},Se={class:"mt-1 flex items-start gap-2"},Ve={class:"min-w-0 flex-1 rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},$e={class:"mt-6 flex items-center justify-end"},Ie=F({__name:"AppShell",setup(Ae){const L=q(),b=Z(),j=U(),c=J(),x=y(!1),o=y(!1),i=W(),g=y(!1),_=[{path:"/",label:"概览",icon:"M4 4h7v7H4V4zm9 0h7v4h-7V4zm0 6h7v10h-7V10zM4 13h7v7H4v-7z"},{path:"/accounts",label:"账号管理",icon:"M12 12a3.5 3.5 0 1 0-3.5-3.5A3.5 3.5 0 0 0 12 12zm0 2c-4.1 0-7.5 2.2-7.5 5v1h15v-1c0-2.8-3.4-5-7.5-5z"},{path:"/settings",label:"系统设置",icon:"M4 6h10v2H4V6zm12 0h4v2h-4V6zM4 11h6v2H4v-2zm8 0h8v2h-8v-2zM4 16h10v2H4v-2zm12 0h4v2h-4v-2z"},{path:"/monitor",label:"监控状态",icon:"M3 12h4l2-4 4 8 3-6h5v2h-4l-4 8-4-8-2 4H3v-2z"},{path:"/logs",label:"运行日志",icon:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h10v2H4v-2z"},{path:"/docs",label:"文档中心",icon:"M6 3h9l4 4v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm8 1.5V8h3.5L14 4.5zM8 11h8v2H8v-2zm0 4h8v2H8v-2z"}],B=f(()=>_.find(t=>t.path===b.path)?.label||"概览"),D=n=>{const r=`transition-colors ${o.value?"px-2 justify-center gap-0":"px-3 gap-3"}`;return b.path===n?`${r} bg-primary text-primary-foreground`:`${r} text-muted-foreground hover:bg-accent hover:text-accent-foreground`},I=n=>b.path===n?"bg-primary-foreground/15 text-primary-foreground border-primary-foreground/40":"bg-secondary text-muted-foreground group-hover:text-accent-foreground",v=f(()=>(c.settings?.basic?.base_url||""||window.location.origin).replace(/\/$/,"")),z=f(()=>`${v.value}/v1`),C=f(()=>`${v.value}/v1/chat/completions`),H=f(()=>c.settings?.basic?.api_key||"未设置"),T=["gemini-auto","gemini-2.5-flash","gemini-2.5-pro","gemini-3-flash-preview","gemini-3-pro-preview"];S(()=>b.path,()=>{x.value=!1});const M=localStorage.getItem("sidebar-collapsed");M&&(o.value=M==="true"),S(o,n=>{localStorage.setItem("sidebar-collapsed",n?"true":"false")});async function N(){await i.ask({title:"退出登录",message:"确定退出管理控制台吗?"})&&(await j.logout(),L.push({name:"login"}))}function P(){window.location.reload()}async function R(){g.value=!0,!c.settings&&!c.isLoading&&await c.loadSettings()}async function h(n){if(n)try{await navigator.clipboard.writeText(n)}catch(t){console.error("Copy failed",t)}}return(n,t)=>(s(),l("div",X,[e("div",Y,[x.value?(s(),l("div",{key:0,class:"fixed inset-0 z-30 bg-black/20 backdrop-blur-sm lg:hidden",onClick:t[0]||(t[0]=r=>x.value=!1)})):d("",!0),e("aside",{class:u(["fixed inset-y-0 left-0 z-40 w-72 -translate-x-full bg-card/90 backdrop-blur-sm lg:backdrop-blur-none border-r border-border transition-[width,transform] duration-200 ease-out will-change-[transform] transform-gpu flex flex-col lg:static lg:translate-x-0 lg:bg-card/80 lg:border-b-0 lg:border-r lg:sticky lg:top-0 lg:h-screen",[{"translate-x-0":x.value,"w-20 lg:w-20":o.value}]])},[e("div",{class:u(["flex h-16 items-center justify-between px-6 pt-4 lg:h-20 lg:pt-5",o.value?"justify-center px-0":""])},[e("div",{class:u(["flex items-center gap-2",o.value?"gap-0 justify-center w-full":""])},[t[9]||(t[9]=e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"text-foreground transition-colors hover:text-primary","aria-label":"GitHub"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-6 w-6",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})])],-1)),o.value?d("",!0):(s(),l("span",ee,"Gemini Business2API"))],2)],2),e("nav",{class:u(["pb-4 pt-4 lg:pt-6 flex-1 overflow-y-auto",o.value?"px-2":"px-3"])},[o.value?d("",!0):(s(),l("p",te," 导航 ")),e("div",re,[(s(),l(V,null,$(_,r=>m(a(k),{key:r.path,to:r.path,class:u(["group flex items-center rounded-2xl py-2 text-sm font-medium transition-colors overflow-hidden",D(r.path)]),title:o.value?r.label:void 0},{default:w(()=>[e("span",{class:u(["inline-flex h-9 w-9 items-center justify-center rounded-2xl border border-border",I(r.path)])},[(s(),l("svg",oe,[e("path",{d:r.icon},null,8,se)]))],2),o.value?d("",!0):(s(),l("span",ne,p(r.label),1)),o.value?d("",!0):(s(),l("span",le," 进入 "))]),_:2},1032,["to","class","title"])),64))])],2),e("div",ae,[o.value?d("",!0):(s(),l("div",ie,[...t[10]||(t[10]=[e("p",{class:"text-xs tracking-[0.12em] text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-1 transition-colors hover:text-foreground"}," gemini-business2api "),e("span",null," · 声明")],-1),e("p",{class:"mt-2 text-xs text-muted-foreground"}," 本项目仅限学习与研究用途,禁止用于商业用途。请保留本声明、原作者信息与开源来源。 ",-1)])])),e("div",{class:u(["mt-4 flex items-center gap-3",o.value?"justify-center":""])},[o.value?d("",!0):(s(),l("button",{key:0,onClick:N,class:"flex-1 rounded-2xl border border-border bg-background px-4 py-3 text-sm font-medium text-muted-foreground transition-colors hover:border-destructive/40 hover:text-destructive"}," 退出登录 ")),e("button",{class:"h-10 w-10 shrink-0 items-center justify-center rounded-2xl border border-border text-muted-foreground transition-all hover:border-primary hover:text-primary flex",onClick:t[1]||(t[1]=r=>o.value=!o.value),title:o.value?"展开侧边栏":"收起侧边栏"},[...t[11]||(t[11]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4 shrink-0",fill:"currentColor"},[e("path",{d:"M6 4h2v16H6V4zm4 4h8v2h-8V8zm0 6h8v2h-8v-2z"})],-1)])],8,de)],2)])],2),e("main",ue,[e("header",pe,[e("div",ce,[e("button",{class:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-border text-foreground transition-colors hover:border-primary hover:text-primary lg:hidden",onClick:t[2]||(t[2]=r=>x.value=!0),"aria-label":"打开导航"},[...t[12]||(t[12]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},[e("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])]),t[13]||(t[13]=K('',1)),e("h2",xe,p(B.value),1)]),e("div",fe,[e("button",{onClick:P,class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",title:"刷新"}," 刷新 "),e("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:R}," 接口信息 "),m(a(k),{to:"/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[14]||(t[14]=[A(" 状态监控 ",-1)])]),_:1}),m(a(k),{to:"/public/logs",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[15]||(t[15]=[A(" 公开日志 ",-1)])]),_:1})])]),e("div",me,[m(a(O))])])]),m(Q,{open:a(i).open.value,title:a(i).title.value,message:a(i).message.value,"confirm-text":a(i).confirmText.value,"cancel-text":a(i).cancelText.value,onConfirm:a(i).confirm,onCancel:a(i).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(s(),G(E,{to:"body"},[g.value?(s(),l("div",be,[e("div",ge,[e("div",ve,[t[16]||(t[16]=e("p",{class:"text-sm font-medium text-foreground"},"API 接口",-1)),e("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:t[3]||(t[3]=r=>g.value=!1)}," 关闭 ")]),t[22]||(t[22]=e("p",{class:"mt-2 text-xs text-muted-foreground"},"根据客户端选择对应接口",-1)),e("div",he,[e("div",null,[t[17]||(t[17]=e("p",{class:"text-xs text-muted-foreground"},"基础端点",-1)),e("div",ye,[e("p",we,p(v.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[4]||(t[4]=r=>h(v.value))}," 复制 ")])]),e("div",null,[t[18]||(t[18]=e("p",{class:"text-xs text-muted-foreground"},"SDK 接口",-1)),e("div",ke,[e("p",_e,p(z.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[5]||(t[5]=r=>h(z.value))}," 复制 ")])]),e("div",null,[t[19]||(t[19]=e("p",{class:"text-xs text-muted-foreground"},"完整接口",-1)),e("div",ze,[e("p",Ce,p(C.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[6]||(t[6]=r=>h(C.value))}," 复制 ")])]),e("div",null,[t[20]||(t[20]=e("p",{class:"text-xs text-muted-foreground"},"支持模型",-1)),e("div",He,[e("div",Me,[(s(),l(V,null,$(T,r=>e("span",{key:r,class:"rounded-full border border-border px-2 py-0.5 text-[11px]"},p(r),1)),64))])])]),e("div",null,[t[21]||(t[21]=e("p",{class:"text-xs text-muted-foreground"},"API 密钥",-1)),e("div",Se,[e("p",Ve,p(H.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[7]||(t[7]=r=>h(H.value))}," 复制 ")])])]),e("div",$e,[e("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:t[8]||(t[8]=r=>g.value=!1)}," 知道了 ")])])])):d("",!0)]))]))}});export{Ie as default}; diff --git a/static/assets/AppShell-ah6Dvscx.js b/static/assets/AppShell-ah6Dvscx.js new file mode 100644 index 0000000000000000000000000000000000000000..883b2832f004a6676329ed2f3318aa8bfdf356f0 --- /dev/null +++ b/static/assets/AppShell-ah6Dvscx.js @@ -0,0 +1 @@ +import{d as F,l as U,h as y,i as f,y as Z,z as S,c as l,a as e,p as m,m as G,b as d,n as u,F as V,r as $,A as K,t as p,s as w,u as a,R as k,B as O,T as E,x as q,f as A,e as s}from"./index-Dt-VnrHx.js";import{u as J}from"./settings-Ba-Xl9Xv.js";import{_ as Q}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-jpm-Quh6.js";import{u as W}from"./useConfirmDialog-Dz9xMRf2.js";const X={class:"min-h-screen"},Y={class:"flex min-h-screen flex-col lg:flex-row"},ee={key:0,class:"text-base font-semibold text-foreground"},te={key:0,class:"px-3 pb-2 text-xs uppercase tracking-[0.28em] text-muted-foreground"},re={class:"space-y-1"},oe={"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},se=["d"],ne={key:0,class:"flex-1 min-w-0 truncate"},le={key:1,class:"ml-auto text-xs opacity-0 transition-opacity group-hover:opacity-100"},ae={class:"mt-auto border-t border-border px-6 py-3 lg:py-4"},ie={key:0,class:"rounded-2xl bg-secondary/60 p-3"},de=["title"],ue={class:"min-w-0 flex-1 overflow-hidden lg:ml-0"},pe={class:"min-w-0 flex flex-col gap-4 border-b border-border bg-card/70 px-6 py-5 backdrop-blur lg:flex-row lg:items-center lg:justify-between lg:px-10"},ce={class:"flex items-center gap-3"},xe={class:"text-xl font-semibold text-foreground lg:text-2xl"},fe={class:"flex flex-wrap items-center gap-3"},me={class:"h-full overflow-y-auto overflow-x-hidden bg-card/70 px-4 pb-10 pt-6 backdrop-blur lg:px-10 lg:pt-10"},be={key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/30 px-4"},ge={class:"w-full max-w-lg rounded-3xl border border-border bg-card p-6 shadow-xl"},ve={class:"flex items-center justify-between"},he={class:"mt-4 space-y-3 text-sm"},ye={class:"mt-1 flex items-start gap-2"},we={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ke={class:"mt-1 flex items-start gap-2"},_e={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},ze={class:"mt-1 flex items-start gap-2"},Ce={class:"min-w-0 flex-1 break-all rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},He={class:"mt-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground"},Me={class:"flex flex-wrap gap-2 text-foreground"},Se={class:"mt-1 flex items-start gap-2"},Ve={class:"min-w-0 flex-1 rounded-2xl border border-border bg-background px-3 py-2 font-mono text-xs"},$e={class:"mt-6 flex items-center justify-end"},Ie=F({__name:"AppShell",setup(Ae){const L=q(),b=Z(),j=U(),c=J(),x=y(!1),o=y(!1),i=W(),g=y(!1),_=[{path:"/",label:"概览",icon:"M4 4h7v7H4V4zm9 0h7v4h-7V4zm0 6h7v10h-7V10zM4 13h7v7H4v-7z"},{path:"/accounts",label:"账号管理",icon:"M12 12a3.5 3.5 0 1 0-3.5-3.5A3.5 3.5 0 0 0 12 12zm0 2c-4.1 0-7.5 2.2-7.5 5v1h15v-1c0-2.8-3.4-5-7.5-5z"},{path:"/settings",label:"系统设置",icon:"M4 6h10v2H4V6zm12 0h4v2h-4V6zM4 11h6v2H4v-2zm8 0h8v2h-8v-2zM4 16h10v2H4v-2zm12 0h4v2h-4v-2z"},{path:"/monitor",label:"监控状态",icon:"M3 12h4l2-4 4 8 3-6h5v2h-4l-4 8-4-8-2 4H3v-2z"},{path:"/logs",label:"运行日志",icon:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h10v2H4v-2z"},{path:"/docs",label:"文档中心",icon:"M6 3h9l4 4v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm8 1.5V8h3.5L14 4.5zM8 11h8v2H8v-2zm0 4h8v2H8v-2z"}],B=f(()=>_.find(t=>t.path===b.path)?.label||"概览"),D=n=>{const r=`transition-colors ${o.value?"px-2 justify-center gap-0":"px-3 gap-3"}`;return b.path===n?`${r} bg-primary text-primary-foreground`:`${r} text-muted-foreground hover:bg-accent hover:text-accent-foreground`},I=n=>b.path===n?"bg-primary-foreground/15 text-primary-foreground border-primary-foreground/40":"bg-secondary text-muted-foreground group-hover:text-accent-foreground",v=f(()=>(c.settings?.basic?.base_url||""||window.location.origin).replace(/\/$/,"")),z=f(()=>`${v.value}/v1`),C=f(()=>`${v.value}/v1/chat/completions`),H=f(()=>c.settings?.basic?.api_key||"未设置"),T=["gemini-auto","gemini-2.5-flash","gemini-2.5-pro","gemini-3-flash-preview","gemini-3-pro-preview"];S(()=>b.path,()=>{x.value=!1});const M=localStorage.getItem("sidebar-collapsed");M&&(o.value=M==="true"),S(o,n=>{localStorage.setItem("sidebar-collapsed",n?"true":"false")});async function N(){await i.ask({title:"退出登录",message:"确定退出管理控制台吗?"})&&(await j.logout(),L.push({name:"login"}))}function P(){window.location.reload()}async function R(){g.value=!0,!c.settings&&!c.isLoading&&await c.loadSettings()}async function h(n){if(n)try{await navigator.clipboard.writeText(n)}catch(t){console.error("Copy failed",t)}}return(n,t)=>(s(),l("div",X,[e("div",Y,[x.value?(s(),l("div",{key:0,class:"fixed inset-0 z-30 bg-black/20 backdrop-blur-sm lg:hidden",onClick:t[0]||(t[0]=r=>x.value=!1)})):d("",!0),e("aside",{class:u(["fixed inset-y-0 left-0 z-40 w-72 -translate-x-full bg-card/90 backdrop-blur-sm lg:backdrop-blur-none border-r border-border transition-[width,transform] duration-200 ease-out will-change-[transform] transform-gpu flex flex-col lg:static lg:translate-x-0 lg:bg-card/80 lg:border-b-0 lg:border-r lg:sticky lg:top-0 lg:h-screen",[{"translate-x-0":x.value,"w-20 lg:w-20":o.value}]])},[e("div",{class:u(["flex h-16 items-center justify-between px-6 pt-4 lg:h-20 lg:pt-5",o.value?"justify-center px-0":""])},[e("div",{class:u(["flex items-center gap-2",o.value?"gap-0 justify-center w-full":""])},[t[9]||(t[9]=e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"text-foreground transition-colors hover:text-primary","aria-label":"GitHub"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-6 w-6",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})])],-1)),o.value?d("",!0):(s(),l("span",ee,"Gemini Business2API"))],2)],2),e("nav",{class:u(["pb-4 pt-4 lg:pt-6 flex-1 overflow-y-auto",o.value?"px-2":"px-3"])},[o.value?d("",!0):(s(),l("p",te," 导航 ")),e("div",re,[(s(),l(V,null,$(_,r=>m(a(k),{key:r.path,to:r.path,class:u(["group flex items-center rounded-2xl py-2 text-sm font-medium transition-colors overflow-hidden",D(r.path)]),title:o.value?r.label:void 0},{default:w(()=>[e("span",{class:u(["inline-flex h-9 w-9 items-center justify-center rounded-2xl border border-border",I(r.path)])},[(s(),l("svg",oe,[e("path",{d:r.icon},null,8,se)]))],2),o.value?d("",!0):(s(),l("span",ne,p(r.label),1)),o.value?d("",!0):(s(),l("span",le," 进入 "))]),_:2},1032,["to","class","title"])),64))])],2),e("div",ae,[o.value?d("",!0):(s(),l("div",ie,[...t[10]||(t[10]=[e("p",{class:"text-xs tracking-[0.12em] text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-1 transition-colors hover:text-foreground"}," gemini-business2api "),e("span",null," · 声明")],-1),e("p",{class:"mt-2 text-xs text-muted-foreground"}," 本项目仅限学习与研究用途,禁止用于商业用途。请保留本声明、原作者信息与开源来源。 ",-1)])])),e("div",{class:u(["mt-4 flex items-center gap-3",o.value?"justify-center":""])},[o.value?d("",!0):(s(),l("button",{key:0,onClick:N,class:"flex-1 rounded-2xl border border-border bg-background px-4 py-3 text-sm font-medium text-muted-foreground transition-colors hover:border-destructive/40 hover:text-destructive"}," 退出登录 ")),e("button",{class:"h-10 w-10 shrink-0 items-center justify-center rounded-2xl border border-border text-muted-foreground transition-all hover:border-primary hover:text-primary flex",onClick:t[1]||(t[1]=r=>o.value=!o.value),title:o.value?"展开侧边栏":"收起侧边栏"},[...t[11]||(t[11]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4 shrink-0",fill:"currentColor"},[e("path",{d:"M6 4h2v16H6V4zm4 4h8v2h-8V8zm0 6h8v2h-8v-2z"})],-1)])],8,de)],2)])],2),e("main",ue,[e("header",pe,[e("div",ce,[e("button",{class:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-border text-foreground transition-colors hover:border-primary hover:text-primary lg:hidden",onClick:t[2]||(t[2]=r=>x.value=!0),"aria-label":"打开导航"},[...t[12]||(t[12]=[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-5 w-5",fill:"currentColor"},[e("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h16v2H4v-2z"})],-1)])]),t[13]||(t[13]=K('',1)),e("h2",xe,p(B.value),1)]),e("div",fe,[e("button",{onClick:P,class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",title:"刷新"}," 刷新 "),e("button",{class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:R}," 接口信息 "),m(a(k),{to:"/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[14]||(t[14]=[A(" 状态监控 ",-1)])]),_:1}),m(a(k),{to:"/public/logs",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"},{default:w(()=>[...t[15]||(t[15]=[A(" 公开日志 ",-1)])]),_:1})])]),e("div",me,[m(a(O))])])]),m(Q,{open:a(i).open.value,title:a(i).title.value,message:a(i).message.value,"confirm-text":a(i).confirmText.value,"cancel-text":a(i).cancelText.value,onConfirm:a(i).confirm,onCancel:a(i).cancel},null,8,["open","title","message","confirm-text","cancel-text","onConfirm","onCancel"]),(s(),G(E,{to:"body"},[g.value?(s(),l("div",be,[e("div",ge,[e("div",ve,[t[16]||(t[16]=e("p",{class:"text-sm font-medium text-foreground"},"API 接口",-1)),e("button",{class:"text-xs text-muted-foreground transition-colors hover:text-foreground",onClick:t[3]||(t[3]=r=>g.value=!1)}," 关闭 ")]),t[22]||(t[22]=e("p",{class:"mt-2 text-xs text-muted-foreground"},"根据客户端选择对应接口",-1)),e("div",he,[e("div",null,[t[17]||(t[17]=e("p",{class:"text-xs text-muted-foreground"},"基础端点",-1)),e("div",ye,[e("p",we,p(v.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[4]||(t[4]=r=>h(v.value))}," 复制 ")])]),e("div",null,[t[18]||(t[18]=e("p",{class:"text-xs text-muted-foreground"},"SDK 接口",-1)),e("div",ke,[e("p",_e,p(z.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[5]||(t[5]=r=>h(z.value))}," 复制 ")])]),e("div",null,[t[19]||(t[19]=e("p",{class:"text-xs text-muted-foreground"},"完整接口",-1)),e("div",ze,[e("p",Ce,p(C.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[6]||(t[6]=r=>h(C.value))}," 复制 ")])]),e("div",null,[t[20]||(t[20]=e("p",{class:"text-xs text-muted-foreground"},"支持模型",-1)),e("div",He,[e("div",Me,[(s(),l(V,null,$(T,r=>e("span",{key:r,class:"rounded-full border border-border px-2 py-0.5 text-[11px]"},p(r),1)),64))])])]),e("div",null,[t[21]||(t[21]=e("p",{class:"text-xs text-muted-foreground"},"API 密钥",-1)),e("div",Se,[e("p",Ve,p(H.value),1),e("button",{class:"shrink-0 rounded-full border border-border px-3 py-1 text-[11px] text-muted-foreground transition-colors hover:border-primary hover:text-primary",onClick:t[7]||(t[7]=r=>h(H.value))}," 复制 ")])])]),e("div",$e,[e("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",onClick:t[8]||(t[8]=r=>g.value=!1)}," 知道了 ")])])])):d("",!0)]))]))}});export{Ie as default}; diff --git a/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-12Ygc6BR.js b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-12Ygc6BR.js new file mode 100644 index 0000000000000000000000000000000000000000..04c499595fc28079953ef85cd43db0aa658d4b39 --- /dev/null +++ b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-12Ygc6BR.js @@ -0,0 +1 @@ +import{d as c,c as r,a as o,b as i,H as u,e as a}from"./index-BCQxBeUo.js";const p={class:"inline-flex items-center gap-2"},m=["checked","disabled"],b={key:0,class:"text-xs text-muted-foreground"},f=c({__name:"Checkbox",props:{modelValue:{type:Boolean},disabled:{type:Boolean}},emits:["update:modelValue"],setup(s,{emit:d}){const n=d,l=e=>{const t=e.target;n("update:modelValue",t.checked)};return(e,t)=>(a(),r("label",p,[o("input",{type:"checkbox",class:"sr-only peer",checked:s.modelValue,disabled:s.disabled,onChange:l},null,40,m),t[0]||(t[0]=o("span",{class:"flex h-4 w-4 items-center justify-center rounded border border-border bg-background text-transparent transition-colors peer-checked:border-foreground peer-checked:bg-foreground peer-checked:text-white peer-disabled:opacity-50","aria-hidden":"true"},[o("svg",{viewBox:"0 0 20 20",class:"h-3.5 w-3.5",fill:"currentColor"},[o("path",{d:"M7.6 13.2 4.4 10l1.2-1.2 2 2 6-6 1.2 1.2-7.2 7.2z"})])],-1)),e.$slots.default?(a(),r("span",b,[u(e.$slots,"default")])):i("",!0)]))}});export{f as _}; diff --git a/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-41XRw3c5.js b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-41XRw3c5.js new file mode 100644 index 0000000000000000000000000000000000000000..3b5a4169bccb9fc2ccfa46d9dd62c97f825b408a --- /dev/null +++ b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-41XRw3c5.js @@ -0,0 +1 @@ +import{d as c,c as r,a as o,b as i,H as u,e as a}from"./index-C4edAQLF.js";const p={class:"inline-flex items-center gap-2"},m=["checked","disabled"],b={key:0,class:"text-xs text-muted-foreground"},f=c({__name:"Checkbox",props:{modelValue:{type:Boolean},disabled:{type:Boolean}},emits:["update:modelValue"],setup(s,{emit:d}){const n=d,l=e=>{const t=e.target;n("update:modelValue",t.checked)};return(e,t)=>(a(),r("label",p,[o("input",{type:"checkbox",class:"sr-only peer",checked:s.modelValue,disabled:s.disabled,onChange:l},null,40,m),t[0]||(t[0]=o("span",{class:"flex h-4 w-4 items-center justify-center rounded border border-border bg-background text-transparent transition-colors peer-checked:border-foreground peer-checked:bg-foreground peer-checked:text-white peer-disabled:opacity-50","aria-hidden":"true"},[o("svg",{viewBox:"0 0 20 20",class:"h-3.5 w-3.5",fill:"currentColor"},[o("path",{d:"M7.6 13.2 4.4 10l1.2-1.2 2 2 6-6 1.2 1.2-7.2 7.2z"})])],-1)),e.$slots.default?(a(),r("span",b,[u(e.$slots,"default")])):i("",!0)]))}});export{f as _}; diff --git a/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-566L0Qi-.js b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-566L0Qi-.js new file mode 100644 index 0000000000000000000000000000000000000000..c9c9ab5a05444429ab699f1c161928f6421d583d --- /dev/null +++ b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-566L0Qi-.js @@ -0,0 +1 @@ +import{d as c,c as r,a as o,b as i,G as u,e as a}from"./index-Babp7OwB.js";const p={class:"inline-flex items-center gap-2"},m=["checked","disabled"],b={key:0,class:"text-xs text-muted-foreground"},f=c({__name:"Checkbox",props:{modelValue:{type:Boolean},disabled:{type:Boolean}},emits:["update:modelValue"],setup(s,{emit:d}){const n=d,l=e=>{const t=e.target;n("update:modelValue",t.checked)};return(e,t)=>(a(),r("label",p,[o("input",{type:"checkbox",class:"sr-only peer",checked:s.modelValue,disabled:s.disabled,onChange:l},null,40,m),t[0]||(t[0]=o("span",{class:"flex h-4 w-4 items-center justify-center rounded border border-border bg-background text-transparent transition-colors peer-checked:border-foreground peer-checked:bg-foreground peer-checked:text-white peer-disabled:opacity-50","aria-hidden":"true"},[o("svg",{viewBox:"0 0 20 20",class:"h-3.5 w-3.5",fill:"currentColor"},[o("path",{d:"M7.6 13.2 4.4 10l1.2-1.2 2 2 6-6 1.2 1.2-7.2 7.2z"})])],-1)),e.$slots.default?(a(),r("span",b,[u(e.$slots,"default")])):i("",!0)]))}});export{f as _}; diff --git a/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-B2pvqq8a.js b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-B2pvqq8a.js new file mode 100644 index 0000000000000000000000000000000000000000..d227b473f25a03cf4d7de1740d908fbda53245a0 --- /dev/null +++ b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-B2pvqq8a.js @@ -0,0 +1 @@ +import{d as c,c as r,a as o,b as i,G as u,e as a}from"./index-4tSmcUDY.js";const p={class:"inline-flex items-center gap-2"},m=["checked","disabled"],b={key:0,class:"text-xs text-muted-foreground"},f=c({__name:"Checkbox",props:{modelValue:{type:Boolean},disabled:{type:Boolean}},emits:["update:modelValue"],setup(s,{emit:d}){const n=d,l=e=>{const t=e.target;n("update:modelValue",t.checked)};return(e,t)=>(a(),r("label",p,[o("input",{type:"checkbox",class:"sr-only peer",checked:s.modelValue,disabled:s.disabled,onChange:l},null,40,m),t[0]||(t[0]=o("span",{class:"flex h-4 w-4 items-center justify-center rounded border border-border bg-background text-transparent transition-colors peer-checked:border-foreground peer-checked:bg-foreground peer-checked:text-white peer-disabled:opacity-50","aria-hidden":"true"},[o("svg",{viewBox:"0 0 20 20",class:"h-3.5 w-3.5",fill:"currentColor"},[o("path",{d:"M7.6 13.2 4.4 10l1.2-1.2 2 2 6-6 1.2 1.2-7.2 7.2z"})])],-1)),e.$slots.default?(a(),r("span",b,[u(e.$slots,"default")])):i("",!0)]))}});export{f as _}; diff --git a/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-B33RCL2G.js b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-B33RCL2G.js new file mode 100644 index 0000000000000000000000000000000000000000..f3228f487f6c527e2a7c1fe1a4e1c413df56b049 --- /dev/null +++ b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-B33RCL2G.js @@ -0,0 +1 @@ +import{d as c,c as r,a as o,b as i,H as u,e as a}from"./index-JaBfp01b.js";const p={class:"inline-flex items-center gap-2"},m=["checked","disabled"],b={key:0,class:"text-xs text-muted-foreground"},f=c({__name:"Checkbox",props:{modelValue:{type:Boolean},disabled:{type:Boolean}},emits:["update:modelValue"],setup(s,{emit:d}){const n=d,l=e=>{const t=e.target;n("update:modelValue",t.checked)};return(e,t)=>(a(),r("label",p,[o("input",{type:"checkbox",class:"sr-only peer",checked:s.modelValue,disabled:s.disabled,onChange:l},null,40,m),t[0]||(t[0]=o("span",{class:"flex h-4 w-4 items-center justify-center rounded border border-border bg-background text-transparent transition-colors peer-checked:border-foreground peer-checked:bg-foreground peer-checked:text-white peer-disabled:opacity-50","aria-hidden":"true"},[o("svg",{viewBox:"0 0 20 20",class:"h-3.5 w-3.5",fill:"currentColor"},[o("path",{d:"M7.6 13.2 4.4 10l1.2-1.2 2 2 6-6 1.2 1.2-7.2 7.2z"})])],-1)),e.$slots.default?(a(),r("span",b,[u(e.$slots,"default")])):i("",!0)]))}});export{f as _}; diff --git a/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-B6QFZaQQ.js b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-B6QFZaQQ.js new file mode 100644 index 0000000000000000000000000000000000000000..d143590a6b986ec9a740f897bc270ba8c1f281dc --- /dev/null +++ b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-B6QFZaQQ.js @@ -0,0 +1 @@ +import{d as c,c as r,a as o,b as i,E as u,e as a}from"./index-B0A0-QFY.js";const p={class:"inline-flex items-center gap-2"},m=["checked","disabled"],b={key:0,class:"text-xs text-muted-foreground"},f=c({__name:"Checkbox",props:{modelValue:{type:Boolean},disabled:{type:Boolean}},emits:["update:modelValue"],setup(s,{emit:d}){const n=d,l=e=>{const t=e.target;n("update:modelValue",t.checked)};return(e,t)=>(a(),r("label",p,[o("input",{type:"checkbox",class:"sr-only peer",checked:s.modelValue,disabled:s.disabled,onChange:l},null,40,m),t[0]||(t[0]=o("span",{class:"flex h-4 w-4 items-center justify-center rounded border border-border bg-background text-transparent transition-colors peer-checked:border-foreground peer-checked:bg-foreground peer-checked:text-white peer-disabled:opacity-50","aria-hidden":"true"},[o("svg",{viewBox:"0 0 20 20",class:"h-3.5 w-3.5",fill:"currentColor"},[o("path",{d:"M7.6 13.2 4.4 10l1.2-1.2 2 2 6-6 1.2 1.2-7.2 7.2z"})])],-1)),e.$slots.default?(a(),r("span",b,[u(e.$slots,"default")])):i("",!0)]))}});export{f as _}; diff --git a/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-B6kSOS_e.js b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-B6kSOS_e.js new file mode 100644 index 0000000000000000000000000000000000000000..f3025bea6f0a9bcee7ecaab9c674f93703ea2d5b --- /dev/null +++ b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-B6kSOS_e.js @@ -0,0 +1 @@ +import{d as c,c as r,a as o,b as i,G as u,e as a}from"./index-CDbQWWUi.js";const p={class:"inline-flex items-center gap-2"},m=["checked","disabled"],b={key:0,class:"text-xs text-muted-foreground"},f=c({__name:"Checkbox",props:{modelValue:{type:Boolean},disabled:{type:Boolean}},emits:["update:modelValue"],setup(s,{emit:d}){const n=d,l=e=>{const t=e.target;n("update:modelValue",t.checked)};return(e,t)=>(a(),r("label",p,[o("input",{type:"checkbox",class:"sr-only peer",checked:s.modelValue,disabled:s.disabled,onChange:l},null,40,m),t[0]||(t[0]=o("span",{class:"flex h-4 w-4 items-center justify-center rounded border border-border bg-background text-transparent transition-colors peer-checked:border-foreground peer-checked:bg-foreground peer-checked:text-white peer-disabled:opacity-50","aria-hidden":"true"},[o("svg",{viewBox:"0 0 20 20",class:"h-3.5 w-3.5",fill:"currentColor"},[o("path",{d:"M7.6 13.2 4.4 10l1.2-1.2 2 2 6-6 1.2 1.2-7.2 7.2z"})])],-1)),e.$slots.default?(a(),r("span",b,[u(e.$slots,"default")])):i("",!0)]))}});export{f as _}; diff --git a/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-BBcv-AYv.js b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-BBcv-AYv.js new file mode 100644 index 0000000000000000000000000000000000000000..0720a1416dee16113ba9a626caca2ec6c63184c6 --- /dev/null +++ b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-BBcv-AYv.js @@ -0,0 +1 @@ +import{d as c,c as r,a as o,b as i,I as u,e as a}from"./index-BRM37S6x.js";const p={class:"inline-flex items-center gap-2"},m=["checked","disabled"],b={key:0,class:"text-xs text-muted-foreground"},f=c({__name:"Checkbox",props:{modelValue:{type:Boolean},disabled:{type:Boolean}},emits:["update:modelValue"],setup(s,{emit:d}){const n=d,l=e=>{const t=e.target;n("update:modelValue",t.checked)};return(e,t)=>(a(),r("label",p,[o("input",{type:"checkbox",class:"sr-only peer",checked:s.modelValue,disabled:s.disabled,onChange:l},null,40,m),t[0]||(t[0]=o("span",{class:"flex h-4 w-4 items-center justify-center rounded border border-border bg-background text-transparent transition-colors peer-checked:border-foreground peer-checked:bg-foreground peer-checked:text-white peer-disabled:opacity-50","aria-hidden":"true"},[o("svg",{viewBox:"0 0 20 20",class:"h-3.5 w-3.5",fill:"currentColor"},[o("path",{d:"M7.6 13.2 4.4 10l1.2-1.2 2 2 6-6 1.2 1.2-7.2 7.2z"})])],-1)),e.$slots.default?(a(),r("span",b,[u(e.$slots,"default")])):i("",!0)]))}});export{f as _}; diff --git a/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-BCrOKjX_.js b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-BCrOKjX_.js new file mode 100644 index 0000000000000000000000000000000000000000..932c503b17c427010e88e2e2d91cb32f185e5e47 --- /dev/null +++ b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-BCrOKjX_.js @@ -0,0 +1 @@ +import{d as c,c as r,a as o,b as i,G as u,e as a}from"./index-Bx7qSams.js";const p={class:"inline-flex items-center gap-2"},m=["checked","disabled"],b={key:0,class:"text-xs text-muted-foreground"},f=c({__name:"Checkbox",props:{modelValue:{type:Boolean},disabled:{type:Boolean}},emits:["update:modelValue"],setup(s,{emit:d}){const n=d,l=e=>{const t=e.target;n("update:modelValue",t.checked)};return(e,t)=>(a(),r("label",p,[o("input",{type:"checkbox",class:"sr-only peer",checked:s.modelValue,disabled:s.disabled,onChange:l},null,40,m),t[0]||(t[0]=o("span",{class:"flex h-4 w-4 items-center justify-center rounded border border-border bg-background text-transparent transition-colors peer-checked:border-foreground peer-checked:bg-foreground peer-checked:text-white peer-disabled:opacity-50","aria-hidden":"true"},[o("svg",{viewBox:"0 0 20 20",class:"h-3.5 w-3.5",fill:"currentColor"},[o("path",{d:"M7.6 13.2 4.4 10l1.2-1.2 2 2 6-6 1.2 1.2-7.2 7.2z"})])],-1)),e.$slots.default?(a(),r("span",b,[u(e.$slots,"default")])):i("",!0)]))}});export{f as _}; diff --git a/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-BQ4FJTZi.js b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-BQ4FJTZi.js new file mode 100644 index 0000000000000000000000000000000000000000..e708fea6d41f1f46a4e133f9cd4cf9bbaded783c --- /dev/null +++ b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-BQ4FJTZi.js @@ -0,0 +1 @@ +import{d as c,c as r,a as o,b as i,H as u,e as a}from"./index-BYFRJmx0.js";const p={class:"inline-flex items-center gap-2"},m=["checked","disabled"],b={key:0,class:"text-xs text-muted-foreground"},f=c({__name:"Checkbox",props:{modelValue:{type:Boolean},disabled:{type:Boolean}},emits:["update:modelValue"],setup(s,{emit:d}){const n=d,l=e=>{const t=e.target;n("update:modelValue",t.checked)};return(e,t)=>(a(),r("label",p,[o("input",{type:"checkbox",class:"sr-only peer",checked:s.modelValue,disabled:s.disabled,onChange:l},null,40,m),t[0]||(t[0]=o("span",{class:"flex h-4 w-4 items-center justify-center rounded border border-border bg-background text-transparent transition-colors peer-checked:border-foreground peer-checked:bg-foreground peer-checked:text-white peer-disabled:opacity-50","aria-hidden":"true"},[o("svg",{viewBox:"0 0 20 20",class:"h-3.5 w-3.5",fill:"currentColor"},[o("path",{d:"M7.6 13.2 4.4 10l1.2-1.2 2 2 6-6 1.2 1.2-7.2 7.2z"})])],-1)),e.$slots.default?(a(),r("span",b,[u(e.$slots,"default")])):i("",!0)]))}});export{f as _}; diff --git a/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-Bn84CDew.js b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-Bn84CDew.js new file mode 100644 index 0000000000000000000000000000000000000000..e238359b284aaae0bf02ee4efec9f805742755ca --- /dev/null +++ b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-Bn84CDew.js @@ -0,0 +1 @@ +import{d as c,c as r,a as o,b as i,G as u,e as a}from"./index-CkXB0iyt.js";const p={class:"inline-flex items-center gap-2"},m=["checked","disabled"],b={key:0,class:"text-xs text-muted-foreground"},f=c({__name:"Checkbox",props:{modelValue:{type:Boolean},disabled:{type:Boolean}},emits:["update:modelValue"],setup(s,{emit:d}){const n=d,l=e=>{const t=e.target;n("update:modelValue",t.checked)};return(e,t)=>(a(),r("label",p,[o("input",{type:"checkbox",class:"sr-only peer",checked:s.modelValue,disabled:s.disabled,onChange:l},null,40,m),t[0]||(t[0]=o("span",{class:"flex h-4 w-4 items-center justify-center rounded border border-border bg-background text-transparent transition-colors peer-checked:border-foreground peer-checked:bg-foreground peer-checked:text-white peer-disabled:opacity-50","aria-hidden":"true"},[o("svg",{viewBox:"0 0 20 20",class:"h-3.5 w-3.5",fill:"currentColor"},[o("path",{d:"M7.6 13.2 4.4 10l1.2-1.2 2 2 6-6 1.2 1.2-7.2 7.2z"})])],-1)),e.$slots.default?(a(),r("span",b,[u(e.$slots,"default")])):i("",!0)]))}});export{f as _}; diff --git a/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-BzH_cd6M.js b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-BzH_cd6M.js new file mode 100644 index 0000000000000000000000000000000000000000..1fb53f5b4c1dd66b73b1b82089aa7cd864a03c4b --- /dev/null +++ b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-BzH_cd6M.js @@ -0,0 +1 @@ +import{d as c,c as r,a as o,b as i,H as u,e as a}from"./index-Dul9zA0O.js";const p={class:"inline-flex items-center gap-2"},m=["checked","disabled"],b={key:0,class:"text-xs text-muted-foreground"},f=c({__name:"Checkbox",props:{modelValue:{type:Boolean},disabled:{type:Boolean}},emits:["update:modelValue"],setup(s,{emit:d}){const n=d,l=e=>{const t=e.target;n("update:modelValue",t.checked)};return(e,t)=>(a(),r("label",p,[o("input",{type:"checkbox",class:"sr-only peer",checked:s.modelValue,disabled:s.disabled,onChange:l},null,40,m),t[0]||(t[0]=o("span",{class:"flex h-4 w-4 items-center justify-center rounded border border-border bg-background text-transparent transition-colors peer-checked:border-foreground peer-checked:bg-foreground peer-checked:text-white peer-disabled:opacity-50","aria-hidden":"true"},[o("svg",{viewBox:"0 0 20 20",class:"h-3.5 w-3.5",fill:"currentColor"},[o("path",{d:"M7.6 13.2 4.4 10l1.2-1.2 2 2 6-6 1.2 1.2-7.2 7.2z"})])],-1)),e.$slots.default?(a(),r("span",b,[u(e.$slots,"default")])):i("",!0)]))}});export{f as _}; diff --git a/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-CRAgcaHj.js b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-CRAgcaHj.js new file mode 100644 index 0000000000000000000000000000000000000000..18a8f0a5214cf2d715bc601c980866deda460817 --- /dev/null +++ b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-CRAgcaHj.js @@ -0,0 +1 @@ +import{d as c,c as r,a as o,b as i,G as u,e as a}from"./index-BRg_yWJl.js";const p={class:"inline-flex items-center gap-2"},m=["checked","disabled"],b={key:0,class:"text-xs text-muted-foreground"},f=c({__name:"Checkbox",props:{modelValue:{type:Boolean},disabled:{type:Boolean}},emits:["update:modelValue"],setup(s,{emit:d}){const n=d,l=e=>{const t=e.target;n("update:modelValue",t.checked)};return(e,t)=>(a(),r("label",p,[o("input",{type:"checkbox",class:"sr-only peer",checked:s.modelValue,disabled:s.disabled,onChange:l},null,40,m),t[0]||(t[0]=o("span",{class:"flex h-4 w-4 items-center justify-center rounded border border-border bg-background text-transparent transition-colors peer-checked:border-foreground peer-checked:bg-foreground peer-checked:text-white peer-disabled:opacity-50","aria-hidden":"true"},[o("svg",{viewBox:"0 0 20 20",class:"h-3.5 w-3.5",fill:"currentColor"},[o("path",{d:"M7.6 13.2 4.4 10l1.2-1.2 2 2 6-6 1.2 1.2-7.2 7.2z"})])],-1)),e.$slots.default?(a(),r("span",b,[u(e.$slots,"default")])):i("",!0)]))}});export{f as _}; diff --git a/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-ChgTHjuD.js b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-ChgTHjuD.js new file mode 100644 index 0000000000000000000000000000000000000000..f1095b52f22c89836e615088c6341b1e41f1922e --- /dev/null +++ b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-ChgTHjuD.js @@ -0,0 +1 @@ +import{d as c,c as r,a as o,b as i,G as u,e as a}from"./index-C7QtVLks.js";const p={class:"inline-flex items-center gap-2"},m=["checked","disabled"],b={key:0,class:"text-xs text-muted-foreground"},f=c({__name:"Checkbox",props:{modelValue:{type:Boolean},disabled:{type:Boolean}},emits:["update:modelValue"],setup(s,{emit:d}){const n=d,l=e=>{const t=e.target;n("update:modelValue",t.checked)};return(e,t)=>(a(),r("label",p,[o("input",{type:"checkbox",class:"sr-only peer",checked:s.modelValue,disabled:s.disabled,onChange:l},null,40,m),t[0]||(t[0]=o("span",{class:"flex h-4 w-4 items-center justify-center rounded border border-border bg-background text-transparent transition-colors peer-checked:border-foreground peer-checked:bg-foreground peer-checked:text-white peer-disabled:opacity-50","aria-hidden":"true"},[o("svg",{viewBox:"0 0 20 20",class:"h-3.5 w-3.5",fill:"currentColor"},[o("path",{d:"M7.6 13.2 4.4 10l1.2-1.2 2 2 6-6 1.2 1.2-7.2 7.2z"})])],-1)),e.$slots.default?(a(),r("span",b,[u(e.$slots,"default")])):i("",!0)]))}});export{f as _}; diff --git a/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-CsCJog3q.js b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-CsCJog3q.js new file mode 100644 index 0000000000000000000000000000000000000000..60834e0add947ba785b6146e3ce5f9f5067b47c7 --- /dev/null +++ b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-CsCJog3q.js @@ -0,0 +1 @@ +import{d as c,c as r,a as o,b as i,G as u,e as a}from"./index-DMWZCTlx.js";const p={class:"inline-flex items-center gap-2"},m=["checked","disabled"],b={key:0,class:"text-xs text-muted-foreground"},f=c({__name:"Checkbox",props:{modelValue:{type:Boolean},disabled:{type:Boolean}},emits:["update:modelValue"],setup(s,{emit:d}){const n=d,l=e=>{const t=e.target;n("update:modelValue",t.checked)};return(e,t)=>(a(),r("label",p,[o("input",{type:"checkbox",class:"sr-only peer",checked:s.modelValue,disabled:s.disabled,onChange:l},null,40,m),t[0]||(t[0]=o("span",{class:"flex h-4 w-4 items-center justify-center rounded border border-border bg-background text-transparent transition-colors peer-checked:border-foreground peer-checked:bg-foreground peer-checked:text-white peer-disabled:opacity-50","aria-hidden":"true"},[o("svg",{viewBox:"0 0 20 20",class:"h-3.5 w-3.5",fill:"currentColor"},[o("path",{d:"M7.6 13.2 4.4 10l1.2-1.2 2 2 6-6 1.2 1.2-7.2 7.2z"})])],-1)),e.$slots.default?(a(),r("span",b,[u(e.$slots,"default")])):i("",!0)]))}});export{f as _}; diff --git a/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-Cui3ZVy3.js b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-Cui3ZVy3.js new file mode 100644 index 0000000000000000000000000000000000000000..218d95f21ec01a7dcef1992d3f13b85756e17de7 --- /dev/null +++ b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-Cui3ZVy3.js @@ -0,0 +1 @@ +import{d as c,c as r,a as o,b as i,G as u,e as a}from"./index-DhxxzIOh.js";const p={class:"inline-flex items-center gap-2"},m=["checked","disabled"],b={key:0,class:"text-xs text-muted-foreground"},f=c({__name:"Checkbox",props:{modelValue:{type:Boolean},disabled:{type:Boolean}},emits:["update:modelValue"],setup(s,{emit:d}){const n=d,l=e=>{const t=e.target;n("update:modelValue",t.checked)};return(e,t)=>(a(),r("label",p,[o("input",{type:"checkbox",class:"sr-only peer",checked:s.modelValue,disabled:s.disabled,onChange:l},null,40,m),t[0]||(t[0]=o("span",{class:"flex h-4 w-4 items-center justify-center rounded border border-border bg-background text-transparent transition-colors peer-checked:border-foreground peer-checked:bg-foreground peer-checked:text-white peer-disabled:opacity-50","aria-hidden":"true"},[o("svg",{viewBox:"0 0 20 20",class:"h-3.5 w-3.5",fill:"currentColor"},[o("path",{d:"M7.6 13.2 4.4 10l1.2-1.2 2 2 6-6 1.2 1.2-7.2 7.2z"})])],-1)),e.$slots.default?(a(),r("span",b,[u(e.$slots,"default")])):i("",!0)]))}});export{f as _}; diff --git a/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-CvXZKsyi.js b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-CvXZKsyi.js new file mode 100644 index 0000000000000000000000000000000000000000..6ef2f0c1d79fd0f4ef1cf6574daa14b522b91260 --- /dev/null +++ b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-CvXZKsyi.js @@ -0,0 +1 @@ +import{d as c,c as r,a as o,b as i,G as u,e as a}from"./index-DDWWwh2l.js";const p={class:"inline-flex items-center gap-2"},m=["checked","disabled"],b={key:0,class:"text-xs text-muted-foreground"},f=c({__name:"Checkbox",props:{modelValue:{type:Boolean},disabled:{type:Boolean}},emits:["update:modelValue"],setup(s,{emit:d}){const n=d,l=e=>{const t=e.target;n("update:modelValue",t.checked)};return(e,t)=>(a(),r("label",p,[o("input",{type:"checkbox",class:"sr-only peer",checked:s.modelValue,disabled:s.disabled,onChange:l},null,40,m),t[0]||(t[0]=o("span",{class:"flex h-4 w-4 items-center justify-center rounded border border-border bg-background text-transparent transition-colors peer-checked:border-foreground peer-checked:bg-foreground peer-checked:text-white peer-disabled:opacity-50","aria-hidden":"true"},[o("svg",{viewBox:"0 0 20 20",class:"h-3.5 w-3.5",fill:"currentColor"},[o("path",{d:"M7.6 13.2 4.4 10l1.2-1.2 2 2 6-6 1.2 1.2-7.2 7.2z"})])],-1)),e.$slots.default?(a(),r("span",b,[u(e.$slots,"default")])):i("",!0)]))}});export{f as _}; diff --git a/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-D3YmChBg.js b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-D3YmChBg.js new file mode 100644 index 0000000000000000000000000000000000000000..e93ba85b21e39d0ab36ab8a1adc9fa03887dea1b --- /dev/null +++ b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-D3YmChBg.js @@ -0,0 +1 @@ +import{d as c,c as r,a as o,b as i,I as u,e as a}from"./index-CM73xqTK.js";const p={class:"inline-flex items-center gap-2"},m=["checked","disabled"],b={key:0,class:"text-xs text-muted-foreground"},f=c({__name:"Checkbox",props:{modelValue:{type:Boolean},disabled:{type:Boolean}},emits:["update:modelValue"],setup(s,{emit:d}){const n=d,l=e=>{const t=e.target;n("update:modelValue",t.checked)};return(e,t)=>(a(),r("label",p,[o("input",{type:"checkbox",class:"sr-only peer",checked:s.modelValue,disabled:s.disabled,onChange:l},null,40,m),t[0]||(t[0]=o("span",{class:"flex h-4 w-4 items-center justify-center rounded border border-border bg-background text-transparent transition-colors peer-checked:border-foreground peer-checked:bg-foreground peer-checked:text-white peer-disabled:opacity-50","aria-hidden":"true"},[o("svg",{viewBox:"0 0 20 20",class:"h-3.5 w-3.5",fill:"currentColor"},[o("path",{d:"M7.6 13.2 4.4 10l1.2-1.2 2 2 6-6 1.2 1.2-7.2 7.2z"})])],-1)),e.$slots.default?(a(),r("span",b,[u(e.$slots,"default")])):i("",!0)]))}});export{f as _}; diff --git a/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-D6uSa7ue.js b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-D6uSa7ue.js new file mode 100644 index 0000000000000000000000000000000000000000..b5e46376200355288ba9f305d135e4fdda27e0c8 --- /dev/null +++ b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-D6uSa7ue.js @@ -0,0 +1 @@ +import{d as c,c as r,a as o,b as i,H as u,e as a}from"./index-Dt-VnrHx.js";const p={class:"inline-flex items-center gap-2"},m=["checked","disabled"],b={key:0,class:"text-xs text-muted-foreground"},f=c({__name:"Checkbox",props:{modelValue:{type:Boolean},disabled:{type:Boolean}},emits:["update:modelValue"],setup(s,{emit:d}){const n=d,l=e=>{const t=e.target;n("update:modelValue",t.checked)};return(e,t)=>(a(),r("label",p,[o("input",{type:"checkbox",class:"sr-only peer",checked:s.modelValue,disabled:s.disabled,onChange:l},null,40,m),t[0]||(t[0]=o("span",{class:"flex h-4 w-4 items-center justify-center rounded border border-border bg-background text-transparent transition-colors peer-checked:border-foreground peer-checked:bg-foreground peer-checked:text-white peer-disabled:opacity-50","aria-hidden":"true"},[o("svg",{viewBox:"0 0 20 20",class:"h-3.5 w-3.5",fill:"currentColor"},[o("path",{d:"M7.6 13.2 4.4 10l1.2-1.2 2 2 6-6 1.2 1.2-7.2 7.2z"})])],-1)),e.$slots.default?(a(),r("span",b,[u(e.$slots,"default")])):i("",!0)]))}});export{f as _}; diff --git a/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-D9NLz7h-.js b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-D9NLz7h-.js new file mode 100644 index 0000000000000000000000000000000000000000..8b7d2a825e8715871a1cdb9e44f7e586aca44d07 --- /dev/null +++ b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-D9NLz7h-.js @@ -0,0 +1 @@ +import{d as c,c as r,a as o,b as i,H as u,e as a}from"./index-CQv2QMzB.js";const p={class:"inline-flex items-center gap-2"},m=["checked","disabled"],b={key:0,class:"text-xs text-muted-foreground"},f=c({__name:"Checkbox",props:{modelValue:{type:Boolean},disabled:{type:Boolean}},emits:["update:modelValue"],setup(s,{emit:d}){const n=d,l=e=>{const t=e.target;n("update:modelValue",t.checked)};return(e,t)=>(a(),r("label",p,[o("input",{type:"checkbox",class:"sr-only peer",checked:s.modelValue,disabled:s.disabled,onChange:l},null,40,m),t[0]||(t[0]=o("span",{class:"flex h-4 w-4 items-center justify-center rounded border border-border bg-background text-transparent transition-colors peer-checked:border-foreground peer-checked:bg-foreground peer-checked:text-white peer-disabled:opacity-50","aria-hidden":"true"},[o("svg",{viewBox:"0 0 20 20",class:"h-3.5 w-3.5",fill:"currentColor"},[o("path",{d:"M7.6 13.2 4.4 10l1.2-1.2 2 2 6-6 1.2 1.2-7.2 7.2z"})])],-1)),e.$slots.default?(a(),r("span",b,[u(e.$slots,"default")])):i("",!0)]))}});export{f as _}; diff --git a/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-DQLrRLI4.js b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-DQLrRLI4.js new file mode 100644 index 0000000000000000000000000000000000000000..0db372ec32cea1cc914e183bd04b018dd69f42b5 --- /dev/null +++ b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-DQLrRLI4.js @@ -0,0 +1 @@ +import{d as c,c as r,a as o,b as i,E as u,e as a}from"./index-C9KL0lrc.js";const p={class:"inline-flex items-center gap-2"},m=["checked","disabled"],b={key:0,class:"text-xs text-muted-foreground"},f=c({__name:"Checkbox",props:{modelValue:{type:Boolean},disabled:{type:Boolean}},emits:["update:modelValue"],setup(s,{emit:d}){const n=d,l=e=>{const t=e.target;n("update:modelValue",t.checked)};return(e,t)=>(a(),r("label",p,[o("input",{type:"checkbox",class:"sr-only peer",checked:s.modelValue,disabled:s.disabled,onChange:l},null,40,m),t[0]||(t[0]=o("span",{class:"flex h-4 w-4 items-center justify-center rounded border border-border bg-background text-transparent transition-colors peer-checked:border-foreground peer-checked:bg-foreground peer-checked:text-white peer-disabled:opacity-50","aria-hidden":"true"},[o("svg",{viewBox:"0 0 20 20",class:"h-3.5 w-3.5",fill:"currentColor"},[o("path",{d:"M7.6 13.2 4.4 10l1.2-1.2 2 2 6-6 1.2 1.2-7.2 7.2z"})])],-1)),e.$slots.default?(a(),r("span",b,[u(e.$slots,"default")])):i("",!0)]))}});export{f as _}; diff --git a/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-DT0LWHxC.js b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-DT0LWHxC.js new file mode 100644 index 0000000000000000000000000000000000000000..8fee7b055a95a861460872b8dd4a08a87031495e --- /dev/null +++ b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-DT0LWHxC.js @@ -0,0 +1 @@ +import{d as c,c as r,a as o,b as i,E as u,e as a}from"./index-gD6QQiOu.js";const p={class:"inline-flex items-center gap-2"},m=["checked","disabled"],b={key:0,class:"text-xs text-muted-foreground"},f=c({__name:"Checkbox",props:{modelValue:{type:Boolean},disabled:{type:Boolean}},emits:["update:modelValue"],setup(s,{emit:d}){const n=d,l=e=>{const t=e.target;n("update:modelValue",t.checked)};return(e,t)=>(a(),r("label",p,[o("input",{type:"checkbox",class:"sr-only peer",checked:s.modelValue,disabled:s.disabled,onChange:l},null,40,m),t[0]||(t[0]=o("span",{class:"flex h-4 w-4 items-center justify-center rounded border border-border bg-background text-transparent transition-colors peer-checked:border-foreground peer-checked:bg-foreground peer-checked:text-white peer-disabled:opacity-50","aria-hidden":"true"},[o("svg",{viewBox:"0 0 20 20",class:"h-3.5 w-3.5",fill:"currentColor"},[o("path",{d:"M7.6 13.2 4.4 10l1.2-1.2 2 2 6-6 1.2 1.2-7.2 7.2z"})])],-1)),e.$slots.default?(a(),r("span",b,[u(e.$slots,"default")])):i("",!0)]))}});export{f as _}; diff --git a/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-DXuWSs7B.js b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-DXuWSs7B.js new file mode 100644 index 0000000000000000000000000000000000000000..fb1e24287131210263b223d3c673282accc59d8c --- /dev/null +++ b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-DXuWSs7B.js @@ -0,0 +1 @@ +import{d as c,c as r,a as o,b as i,E as u,e as a}from"./index-DrM07qAY.js";const p={class:"inline-flex items-center gap-2"},m=["checked","disabled"],b={key:0,class:"text-xs text-muted-foreground"},f=c({__name:"Checkbox",props:{modelValue:{type:Boolean},disabled:{type:Boolean}},emits:["update:modelValue"],setup(s,{emit:d}){const n=d,l=e=>{const t=e.target;n("update:modelValue",t.checked)};return(e,t)=>(a(),r("label",p,[o("input",{type:"checkbox",class:"sr-only peer",checked:s.modelValue,disabled:s.disabled,onChange:l},null,40,m),t[0]||(t[0]=o("span",{class:"flex h-4 w-4 items-center justify-center rounded border border-border bg-background text-transparent transition-colors peer-checked:border-foreground peer-checked:bg-foreground peer-checked:text-white peer-disabled:opacity-50","aria-hidden":"true"},[o("svg",{viewBox:"0 0 20 20",class:"h-3.5 w-3.5",fill:"currentColor"},[o("path",{d:"M7.6 13.2 4.4 10l1.2-1.2 2 2 6-6 1.2 1.2-7.2 7.2z"})])],-1)),e.$slots.default?(a(),r("span",b,[u(e.$slots,"default")])):i("",!0)]))}});export{f as _}; diff --git a/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-DsgZPRUK.js b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-DsgZPRUK.js new file mode 100644 index 0000000000000000000000000000000000000000..896c18c03f1346a10c4a45f13d996fa594a33570 --- /dev/null +++ b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-DsgZPRUK.js @@ -0,0 +1 @@ +import{d as c,c as r,a as o,b as i,E as u,e as a}from"./index-Bh_hLcqi.js";const p={class:"inline-flex items-center gap-2"},m=["checked","disabled"],b={key:0,class:"text-xs text-muted-foreground"},f=c({__name:"Checkbox",props:{modelValue:{type:Boolean},disabled:{type:Boolean}},emits:["update:modelValue"],setup(s,{emit:d}){const n=d,l=e=>{const t=e.target;n("update:modelValue",t.checked)};return(e,t)=>(a(),r("label",p,[o("input",{type:"checkbox",class:"sr-only peer",checked:s.modelValue,disabled:s.disabled,onChange:l},null,40,m),t[0]||(t[0]=o("span",{class:"flex h-4 w-4 items-center justify-center rounded border border-border bg-background text-transparent transition-colors peer-checked:border-foreground peer-checked:bg-foreground peer-checked:text-white peer-disabled:opacity-50","aria-hidden":"true"},[o("svg",{viewBox:"0 0 20 20",class:"h-3.5 w-3.5",fill:"currentColor"},[o("path",{d:"M7.6 13.2 4.4 10l1.2-1.2 2 2 6-6 1.2 1.2-7.2 7.2z"})])],-1)),e.$slots.default?(a(),r("span",b,[u(e.$slots,"default")])):i("",!0)]))}});export{f as _}; diff --git a/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-FvD-aCmU.js b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-FvD-aCmU.js new file mode 100644 index 0000000000000000000000000000000000000000..68965db78e45621577b0edad7e20d4cbc8fa7ed4 --- /dev/null +++ b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-FvD-aCmU.js @@ -0,0 +1 @@ +import{d as c,c as r,a as o,b as i,H as u,e as a}from"./index-DL4Fp3an.js";const p={class:"inline-flex items-center gap-2"},m=["checked","disabled"],b={key:0,class:"text-xs text-muted-foreground"},f=c({__name:"Checkbox",props:{modelValue:{type:Boolean},disabled:{type:Boolean}},emits:["update:modelValue"],setup(s,{emit:d}){const n=d,l=e=>{const t=e.target;n("update:modelValue",t.checked)};return(e,t)=>(a(),r("label",p,[o("input",{type:"checkbox",class:"sr-only peer",checked:s.modelValue,disabled:s.disabled,onChange:l},null,40,m),t[0]||(t[0]=o("span",{class:"flex h-4 w-4 items-center justify-center rounded border border-border bg-background text-transparent transition-colors peer-checked:border-foreground peer-checked:bg-foreground peer-checked:text-white peer-disabled:opacity-50","aria-hidden":"true"},[o("svg",{viewBox:"0 0 20 20",class:"h-3.5 w-3.5",fill:"currentColor"},[o("path",{d:"M7.6 13.2 4.4 10l1.2-1.2 2 2 6-6 1.2 1.2-7.2 7.2z"})])],-1)),e.$slots.default?(a(),r("span",b,[u(e.$slots,"default")])):i("",!0)]))}});export{f as _}; diff --git a/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-aBWvRhQv.js b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-aBWvRhQv.js new file mode 100644 index 0000000000000000000000000000000000000000..5895cb90fed871ea0a03fe79c25246e7923df825 --- /dev/null +++ b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-aBWvRhQv.js @@ -0,0 +1 @@ +import{d as c,c as r,a as o,b as i,H as u,e as a}from"./index-OP3F9IRB.js";const p={class:"inline-flex items-center gap-2"},m=["checked","disabled"],b={key:0,class:"text-xs text-muted-foreground"},f=c({__name:"Checkbox",props:{modelValue:{type:Boolean},disabled:{type:Boolean}},emits:["update:modelValue"],setup(s,{emit:d}){const n=d,l=e=>{const t=e.target;n("update:modelValue",t.checked)};return(e,t)=>(a(),r("label",p,[o("input",{type:"checkbox",class:"sr-only peer",checked:s.modelValue,disabled:s.disabled,onChange:l},null,40,m),t[0]||(t[0]=o("span",{class:"flex h-4 w-4 items-center justify-center rounded border border-border bg-background text-transparent transition-colors peer-checked:border-foreground peer-checked:bg-foreground peer-checked:text-white peer-disabled:opacity-50","aria-hidden":"true"},[o("svg",{viewBox:"0 0 20 20",class:"h-3.5 w-3.5",fill:"currentColor"},[o("path",{d:"M7.6 13.2 4.4 10l1.2-1.2 2 2 6-6 1.2 1.2-7.2 7.2z"})])],-1)),e.$slots.default?(a(),r("span",b,[u(e.$slots,"default")])):i("",!0)]))}});export{f as _}; diff --git a/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-mPA_O7TM.js b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-mPA_O7TM.js new file mode 100644 index 0000000000000000000000000000000000000000..a4afd18b1d5234af4fa4d6ddc3df3391f3718ee7 --- /dev/null +++ b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-mPA_O7TM.js @@ -0,0 +1 @@ +import{d as c,c as r,a as o,b as i,H as u,e as a}from"./index-B38eA7T4.js";const p={class:"inline-flex items-center gap-2"},m=["checked","disabled"],b={key:0,class:"text-xs text-muted-foreground"},f=c({__name:"Checkbox",props:{modelValue:{type:Boolean},disabled:{type:Boolean}},emits:["update:modelValue"],setup(s,{emit:d}){const n=d,l=e=>{const t=e.target;n("update:modelValue",t.checked)};return(e,t)=>(a(),r("label",p,[o("input",{type:"checkbox",class:"sr-only peer",checked:s.modelValue,disabled:s.disabled,onChange:l},null,40,m),t[0]||(t[0]=o("span",{class:"flex h-4 w-4 items-center justify-center rounded border border-border bg-background text-transparent transition-colors peer-checked:border-foreground peer-checked:bg-foreground peer-checked:text-white peer-disabled:opacity-50","aria-hidden":"true"},[o("svg",{viewBox:"0 0 20 20",class:"h-3.5 w-3.5",fill:"currentColor"},[o("path",{d:"M7.6 13.2 4.4 10l1.2-1.2 2 2 6-6 1.2 1.2-7.2 7.2z"})])],-1)),e.$slots.default?(a(),r("span",b,[u(e.$slots,"default")])):i("",!0)]))}});export{f as _}; diff --git a/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-p51UOq8I.js b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-p51UOq8I.js new file mode 100644 index 0000000000000000000000000000000000000000..51fe19ff774f9cb19788988bd2516a1b3f8b3974 --- /dev/null +++ b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-p51UOq8I.js @@ -0,0 +1 @@ +import{d as c,c as r,a as o,b as i,G as u,e as a}from"./index-BIHSVHyU.js";const p={class:"inline-flex items-center gap-2"},m=["checked","disabled"],b={key:0,class:"text-xs text-muted-foreground"},f=c({__name:"Checkbox",props:{modelValue:{type:Boolean},disabled:{type:Boolean}},emits:["update:modelValue"],setup(s,{emit:d}){const n=d,l=e=>{const t=e.target;n("update:modelValue",t.checked)};return(e,t)=>(a(),r("label",p,[o("input",{type:"checkbox",class:"sr-only peer",checked:s.modelValue,disabled:s.disabled,onChange:l},null,40,m),t[0]||(t[0]=o("span",{class:"flex h-4 w-4 items-center justify-center rounded border border-border bg-background text-transparent transition-colors peer-checked:border-foreground peer-checked:bg-foreground peer-checked:text-white peer-disabled:opacity-50","aria-hidden":"true"},[o("svg",{viewBox:"0 0 20 20",class:"h-3.5 w-3.5",fill:"currentColor"},[o("path",{d:"M7.6 13.2 4.4 10l1.2-1.2 2 2 6-6 1.2 1.2-7.2 7.2z"})])],-1)),e.$slots.default?(a(),r("span",b,[u(e.$slots,"default")])):i("",!0)]))}});export{f as _}; diff --git a/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-zogPNTWE.js b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-zogPNTWE.js new file mode 100644 index 0000000000000000000000000000000000000000..533451b0667fc867df1c088ddbcb2f8dc142ad12 --- /dev/null +++ b/static/assets/Checkbox.vue_vue_type_script_setup_true_lang-zogPNTWE.js @@ -0,0 +1 @@ +import{d as c,c as r,a as o,b as i,H as u,e as a}from"./index-Bjh6Z8Zq.js";const p={class:"inline-flex items-center gap-2"},m=["checked","disabled"],b={key:0,class:"text-xs text-muted-foreground"},f=c({__name:"Checkbox",props:{modelValue:{type:Boolean},disabled:{type:Boolean}},emits:["update:modelValue"],setup(s,{emit:d}){const n=d,l=e=>{const t=e.target;n("update:modelValue",t.checked)};return(e,t)=>(a(),r("label",p,[o("input",{type:"checkbox",class:"sr-only peer",checked:s.modelValue,disabled:s.disabled,onChange:l},null,40,m),t[0]||(t[0]=o("span",{class:"flex h-4 w-4 items-center justify-center rounded border border-border bg-background text-transparent transition-colors peer-checked:border-foreground peer-checked:bg-foreground peer-checked:text-white peer-disabled:opacity-50","aria-hidden":"true"},[o("svg",{viewBox:"0 0 20 20",class:"h-3.5 w-3.5",fill:"currentColor"},[o("path",{d:"M7.6 13.2 4.4 10l1.2-1.2 2 2 6-6 1.2 1.2-7.2 7.2z"})])],-1)),e.$slots.default?(a(),r("span",b,[u(e.$slots,"default")])):i("",!0)]))}});export{f as _}; diff --git a/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-2Xqtgrin.js b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-2Xqtgrin.js new file mode 100644 index 0000000000000000000000000000000000000000..aa041448cd99cba45fe48dab1f792302fe40a1c6 --- /dev/null +++ b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-2Xqtgrin.js @@ -0,0 +1 @@ +import{d as a,y as d,c as l,b as c,w as m,a as t,t as r,T as f,e as i}from"./index-DrM07qAY.js";const u={class:"w-full max-w-sm rounded-3xl border border-border bg-card p-6 shadow-2xl"},x={class:"text-sm font-semibold text-foreground"},p={class:"mt-2 text-sm text-muted-foreground"},b={class:"mt-6 flex items-center justify-end gap-2"},g=a({__name:"ConfirmDialog",props:{open:{type:Boolean},title:{},message:{},confirmText:{},cancelText:{}},emits:["confirm","cancel"],setup(o){return(n,e)=>(i(),d(f,{to:"body"},[o.open?(i(),l("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 px-4",onClick:e[2]||(e[2]=m(s=>n.$emit("cancel"),["self"]))},[t("div",u,[t("p",x,r(o.title),1),t("p",p,r(o.message),1),t("div",b,[t("button",{type:"button",class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-foreground hover:text-foreground",onClick:e[0]||(e[0]=s=>n.$emit("cancel"))},r(o.cancelText),1),t("button",{type:"button",class:"rounded-full bg-primary px-4 py-2 text-sm text-primary-foreground transition-opacity hover:opacity-90",onClick:e[1]||(e[1]=s=>n.$emit("confirm"))},r(o.confirmText),1)])])])):c("",!0)]))}});export{g as _}; diff --git a/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-87LA-h3c.js b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-87LA-h3c.js new file mode 100644 index 0000000000000000000000000000000000000000..58763300df84896ff7f70fb83b10440e965676bf --- /dev/null +++ b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-87LA-h3c.js @@ -0,0 +1 @@ +import{d as a,y as d,c as l,b as c,w as m,a as t,t as r,T as f,e as i}from"./index-CkXB0iyt.js";const u={class:"w-full max-w-sm rounded-3xl border border-border bg-card p-6 shadow-2xl"},x={class:"text-sm font-semibold text-foreground"},p={class:"mt-2 text-sm text-muted-foreground"},b={class:"mt-6 flex items-center justify-end gap-2"},g=a({__name:"ConfirmDialog",props:{open:{type:Boolean},title:{},message:{},confirmText:{},cancelText:{}},emits:["confirm","cancel"],setup(o){return(n,e)=>(i(),d(f,{to:"body"},[o.open?(i(),l("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 px-4",onClick:e[2]||(e[2]=m(s=>n.$emit("cancel"),["self"]))},[t("div",u,[t("p",x,r(o.title),1),t("p",p,r(o.message),1),t("div",b,[t("button",{type:"button",class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-foreground hover:text-foreground",onClick:e[0]||(e[0]=s=>n.$emit("cancel"))},r(o.cancelText),1),t("button",{type:"button",class:"rounded-full bg-primary px-4 py-2 text-sm text-primary-foreground transition-opacity hover:opacity-90",onClick:e[1]||(e[1]=s=>n.$emit("confirm"))},r(o.confirmText),1)])])])):c("",!0)]))}});export{g as _}; diff --git a/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-B-fGXmXJ.js b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-B-fGXmXJ.js new file mode 100644 index 0000000000000000000000000000000000000000..6e5cfefa904ecf364619f8ff3cb952e6b3b26521 --- /dev/null +++ b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-B-fGXmXJ.js @@ -0,0 +1 @@ +import{d as a,y as d,c as l,b as c,w as m,a as t,t as r,T as f,e as i}from"./index-Bh_hLcqi.js";const u={class:"w-full max-w-sm rounded-3xl border border-border bg-card p-6 shadow-2xl"},x={class:"text-sm font-semibold text-foreground"},p={class:"mt-2 text-sm text-muted-foreground"},b={class:"mt-6 flex items-center justify-end gap-2"},g=a({__name:"ConfirmDialog",props:{open:{type:Boolean},title:{},message:{},confirmText:{},cancelText:{}},emits:["confirm","cancel"],setup(o){return(n,e)=>(i(),d(f,{to:"body"},[o.open?(i(),l("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 px-4",onClick:e[2]||(e[2]=m(s=>n.$emit("cancel"),["self"]))},[t("div",u,[t("p",x,r(o.title),1),t("p",p,r(o.message),1),t("div",b,[t("button",{type:"button",class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-foreground hover:text-foreground",onClick:e[0]||(e[0]=s=>n.$emit("cancel"))},r(o.cancelText),1),t("button",{type:"button",class:"rounded-full bg-primary px-4 py-2 text-sm text-primary-foreground transition-opacity hover:opacity-90",onClick:e[1]||(e[1]=s=>n.$emit("confirm"))},r(o.confirmText),1)])])])):c("",!0)]))}});export{g as _}; diff --git a/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-B4oTz-IR.js b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-B4oTz-IR.js new file mode 100644 index 0000000000000000000000000000000000000000..0cd325100e1bea7806e0c2de85fd33b389cfb7df --- /dev/null +++ b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-B4oTz-IR.js @@ -0,0 +1 @@ +import{d as a,m as d,c as l,b as m,w as c,a as t,t as r,x as f,e as i}from"./index-B38eA7T4.js";const u={class:"w-full max-w-sm rounded-3xl border border-border bg-card p-6 shadow-2xl"},x={class:"text-sm font-semibold text-foreground"},p={class:"mt-2 text-sm text-muted-foreground"},b={class:"mt-6 flex items-center justify-end gap-2"},y=a({__name:"ConfirmDialog",props:{open:{type:Boolean},title:{},message:{},confirmText:{},cancelText:{}},emits:["confirm","cancel"],setup(o){return(n,e)=>(i(),d(f,{to:"body"},[o.open?(i(),l("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 px-4",onClick:e[2]||(e[2]=c(s=>n.$emit("cancel"),["self"]))},[t("div",u,[t("p",x,r(o.title),1),t("p",p,r(o.message),1),t("div",b,[t("button",{type:"button",class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-foreground hover:text-foreground",onClick:e[0]||(e[0]=s=>n.$emit("cancel"))},r(o.cancelText),1),t("button",{type:"button",class:"rounded-full bg-primary px-4 py-2 text-sm text-primary-foreground transition-opacity hover:opacity-90",onClick:e[1]||(e[1]=s=>n.$emit("confirm"))},r(o.confirmText),1)])])])):m("",!0)]))}});export{y as _}; diff --git a/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-BA1J4R7-.js b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-BA1J4R7-.js new file mode 100644 index 0000000000000000000000000000000000000000..bdf2c8719a6904b702778d8fdb21dd49fff6a798 --- /dev/null +++ b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-BA1J4R7-.js @@ -0,0 +1 @@ +import{d as a,y as d,c as l,b as c,w as m,a as t,t as r,T as f,e as i}from"./index-CDbQWWUi.js";const u={class:"w-full max-w-sm rounded-3xl border border-border bg-card p-6 shadow-2xl"},x={class:"text-sm font-semibold text-foreground"},p={class:"mt-2 text-sm text-muted-foreground"},b={class:"mt-6 flex items-center justify-end gap-2"},g=a({__name:"ConfirmDialog",props:{open:{type:Boolean},title:{},message:{},confirmText:{},cancelText:{}},emits:["confirm","cancel"],setup(o){return(n,e)=>(i(),d(f,{to:"body"},[o.open?(i(),l("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 px-4",onClick:e[2]||(e[2]=m(s=>n.$emit("cancel"),["self"]))},[t("div",u,[t("p",x,r(o.title),1),t("p",p,r(o.message),1),t("div",b,[t("button",{type:"button",class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-foreground hover:text-foreground",onClick:e[0]||(e[0]=s=>n.$emit("cancel"))},r(o.cancelText),1),t("button",{type:"button",class:"rounded-full bg-primary px-4 py-2 text-sm text-primary-foreground transition-opacity hover:opacity-90",onClick:e[1]||(e[1]=s=>n.$emit("confirm"))},r(o.confirmText),1)])])])):c("",!0)]))}});export{g as _}; diff --git a/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-BElgd3uY.js b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-BElgd3uY.js new file mode 100644 index 0000000000000000000000000000000000000000..83c2a329349d5c11c70cb1f4e7a9d4e20112baef --- /dev/null +++ b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-BElgd3uY.js @@ -0,0 +1 @@ +import{d as a,m as d,c as l,b as m,w as c,a as t,t as r,T as f,e as i}from"./index-BYFRJmx0.js";const u={class:"w-full max-w-sm rounded-3xl border border-border bg-card p-6 shadow-2xl"},x={class:"text-sm font-semibold text-foreground"},p={class:"mt-2 text-sm text-muted-foreground"},b={class:"mt-6 flex items-center justify-end gap-2"},y=a({__name:"ConfirmDialog",props:{open:{type:Boolean},title:{},message:{},confirmText:{},cancelText:{}},emits:["confirm","cancel"],setup(o){return(n,e)=>(i(),d(f,{to:"body"},[o.open?(i(),l("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 px-4",onClick:e[2]||(e[2]=c(s=>n.$emit("cancel"),["self"]))},[t("div",u,[t("p",x,r(o.title),1),t("p",p,r(o.message),1),t("div",b,[t("button",{type:"button",class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-foreground hover:text-foreground",onClick:e[0]||(e[0]=s=>n.$emit("cancel"))},r(o.cancelText),1),t("button",{type:"button",class:"rounded-full bg-primary px-4 py-2 text-sm text-primary-foreground transition-opacity hover:opacity-90",onClick:e[1]||(e[1]=s=>n.$emit("confirm"))},r(o.confirmText),1)])])])):m("",!0)]))}});export{y as _}; diff --git a/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-BRmG52AD.js b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-BRmG52AD.js new file mode 100644 index 0000000000000000000000000000000000000000..ce6a5c59470ab43a4ae61555145651939149b384 --- /dev/null +++ b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-BRmG52AD.js @@ -0,0 +1 @@ +import{d as a,m as d,c as l,b as m,w as c,a as t,t as r,T as f,e as i}from"./index-CQv2QMzB.js";const u={class:"w-full max-w-sm rounded-3xl border border-border bg-card p-6 shadow-2xl"},x={class:"text-sm font-semibold text-foreground"},p={class:"mt-2 text-sm text-muted-foreground"},b={class:"mt-6 flex items-center justify-end gap-2"},y=a({__name:"ConfirmDialog",props:{open:{type:Boolean},title:{},message:{},confirmText:{},cancelText:{}},emits:["confirm","cancel"],setup(o){return(n,e)=>(i(),d(f,{to:"body"},[o.open?(i(),l("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 px-4",onClick:e[2]||(e[2]=c(s=>n.$emit("cancel"),["self"]))},[t("div",u,[t("p",x,r(o.title),1),t("p",p,r(o.message),1),t("div",b,[t("button",{type:"button",class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-foreground hover:text-foreground",onClick:e[0]||(e[0]=s=>n.$emit("cancel"))},r(o.cancelText),1),t("button",{type:"button",class:"rounded-full bg-primary px-4 py-2 text-sm text-primary-foreground transition-opacity hover:opacity-90",onClick:e[1]||(e[1]=s=>n.$emit("confirm"))},r(o.confirmText),1)])])])):m("",!0)]))}});export{y as _}; diff --git a/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-Bkr0tSJw.js b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-Bkr0tSJw.js new file mode 100644 index 0000000000000000000000000000000000000000..08c6839f4de28918b6e5a7c54e746b22c33a58c0 --- /dev/null +++ b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-Bkr0tSJw.js @@ -0,0 +1 @@ +import{d as a,y as d,c as l,b as c,w as m,a as t,t as r,T as f,e as i}from"./index-B0A0-QFY.js";const u={class:"w-full max-w-sm rounded-3xl border border-border bg-card p-6 shadow-2xl"},x={class:"text-sm font-semibold text-foreground"},p={class:"mt-2 text-sm text-muted-foreground"},b={class:"mt-6 flex items-center justify-end gap-2"},g=a({__name:"ConfirmDialog",props:{open:{type:Boolean},title:{},message:{},confirmText:{},cancelText:{}},emits:["confirm","cancel"],setup(o){return(n,e)=>(i(),d(f,{to:"body"},[o.open?(i(),l("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 px-4",onClick:e[2]||(e[2]=m(s=>n.$emit("cancel"),["self"]))},[t("div",u,[t("p",x,r(o.title),1),t("p",p,r(o.message),1),t("div",b,[t("button",{type:"button",class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-foreground hover:text-foreground",onClick:e[0]||(e[0]=s=>n.$emit("cancel"))},r(o.cancelText),1),t("button",{type:"button",class:"rounded-full bg-primary px-4 py-2 text-sm text-primary-foreground transition-opacity hover:opacity-90",onClick:e[1]||(e[1]=s=>n.$emit("confirm"))},r(o.confirmText),1)])])])):c("",!0)]))}});export{g as _}; diff --git a/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-Bos9Whi2.js b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-Bos9Whi2.js new file mode 100644 index 0000000000000000000000000000000000000000..55160644cc351fd732ad961a417b16f1d01f6d63 --- /dev/null +++ b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-Bos9Whi2.js @@ -0,0 +1 @@ +import{d as a,y as d,c as l,b as c,w as m,a as t,t as r,T as f,e as i}from"./index-DDWWwh2l.js";const u={class:"w-full max-w-sm rounded-3xl border border-border bg-card p-6 shadow-2xl"},x={class:"text-sm font-semibold text-foreground"},p={class:"mt-2 text-sm text-muted-foreground"},b={class:"mt-6 flex items-center justify-end gap-2"},g=a({__name:"ConfirmDialog",props:{open:{type:Boolean},title:{},message:{},confirmText:{},cancelText:{}},emits:["confirm","cancel"],setup(o){return(n,e)=>(i(),d(f,{to:"body"},[o.open?(i(),l("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 px-4",onClick:e[2]||(e[2]=m(s=>n.$emit("cancel"),["self"]))},[t("div",u,[t("p",x,r(o.title),1),t("p",p,r(o.message),1),t("div",b,[t("button",{type:"button",class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-foreground hover:text-foreground",onClick:e[0]||(e[0]=s=>n.$emit("cancel"))},r(o.cancelText),1),t("button",{type:"button",class:"rounded-full bg-primary px-4 py-2 text-sm text-primary-foreground transition-opacity hover:opacity-90",onClick:e[1]||(e[1]=s=>n.$emit("confirm"))},r(o.confirmText),1)])])])):c("",!0)]))}});export{g as _}; diff --git a/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-BuSWgV7j.js b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-BuSWgV7j.js new file mode 100644 index 0000000000000000000000000000000000000000..16365e12ecdab6ea9b48e105cc73eef1f5a459cb --- /dev/null +++ b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-BuSWgV7j.js @@ -0,0 +1 @@ +import{d as a,m as d,c as l,b as m,w as c,a as t,t as r,x as f,e as i}from"./index-JaBfp01b.js";const u={class:"w-full max-w-sm rounded-3xl border border-border bg-card p-6 shadow-2xl"},x={class:"text-sm font-semibold text-foreground"},p={class:"mt-2 text-sm text-muted-foreground"},b={class:"mt-6 flex items-center justify-end gap-2"},y=a({__name:"ConfirmDialog",props:{open:{type:Boolean},title:{},message:{},confirmText:{},cancelText:{}},emits:["confirm","cancel"],setup(o){return(n,e)=>(i(),d(f,{to:"body"},[o.open?(i(),l("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 px-4",onClick:e[2]||(e[2]=c(s=>n.$emit("cancel"),["self"]))},[t("div",u,[t("p",x,r(o.title),1),t("p",p,r(o.message),1),t("div",b,[t("button",{type:"button",class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-foreground hover:text-foreground",onClick:e[0]||(e[0]=s=>n.$emit("cancel"))},r(o.cancelText),1),t("button",{type:"button",class:"rounded-full bg-primary px-4 py-2 text-sm text-primary-foreground transition-opacity hover:opacity-90",onClick:e[1]||(e[1]=s=>n.$emit("confirm"))},r(o.confirmText),1)])])])):m("",!0)]))}});export{y as _}; diff --git a/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-C75dpm4L.js b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-C75dpm4L.js new file mode 100644 index 0000000000000000000000000000000000000000..4852705b7b94447e257a38fedda347e46002054b --- /dev/null +++ b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-C75dpm4L.js @@ -0,0 +1 @@ +import{d as a,y as d,c as l,b as c,w as m,a as t,t as r,T as f,e as i}from"./index-DMWZCTlx.js";const u={class:"w-full max-w-sm rounded-3xl border border-border bg-card p-6 shadow-2xl"},x={class:"text-sm font-semibold text-foreground"},p={class:"mt-2 text-sm text-muted-foreground"},b={class:"mt-6 flex items-center justify-end gap-2"},g=a({__name:"ConfirmDialog",props:{open:{type:Boolean},title:{},message:{},confirmText:{},cancelText:{}},emits:["confirm","cancel"],setup(o){return(n,e)=>(i(),d(f,{to:"body"},[o.open?(i(),l("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 px-4",onClick:e[2]||(e[2]=m(s=>n.$emit("cancel"),["self"]))},[t("div",u,[t("p",x,r(o.title),1),t("p",p,r(o.message),1),t("div",b,[t("button",{type:"button",class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-foreground hover:text-foreground",onClick:e[0]||(e[0]=s=>n.$emit("cancel"))},r(o.cancelText),1),t("button",{type:"button",class:"rounded-full bg-primary px-4 py-2 text-sm text-primary-foreground transition-opacity hover:opacity-90",onClick:e[1]||(e[1]=s=>n.$emit("confirm"))},r(o.confirmText),1)])])])):c("",!0)]))}});export{g as _}; diff --git a/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-C9Wgr_sd.js b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-C9Wgr_sd.js new file mode 100644 index 0000000000000000000000000000000000000000..c21974dbb08bfe3904b15edd9c0a801787532e5b --- /dev/null +++ b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-C9Wgr_sd.js @@ -0,0 +1 @@ +import{d as a,m as d,c as l,b as m,w as c,a as t,t as r,x as f,e as i}from"./index-BRM37S6x.js";const u={class:"w-full max-w-sm rounded-3xl border border-border bg-card p-6 shadow-2xl"},x={class:"text-sm font-semibold text-foreground"},p={class:"mt-2 text-sm text-muted-foreground"},b={class:"mt-6 flex items-center justify-end gap-2"},y=a({__name:"ConfirmDialog",props:{open:{type:Boolean},title:{},message:{},confirmText:{},cancelText:{}},emits:["confirm","cancel"],setup(o){return(n,e)=>(i(),d(f,{to:"body"},[o.open?(i(),l("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 px-4",onClick:e[2]||(e[2]=c(s=>n.$emit("cancel"),["self"]))},[t("div",u,[t("p",x,r(o.title),1),t("p",p,r(o.message),1),t("div",b,[t("button",{type:"button",class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-foreground hover:text-foreground",onClick:e[0]||(e[0]=s=>n.$emit("cancel"))},r(o.cancelText),1),t("button",{type:"button",class:"rounded-full bg-primary px-4 py-2 text-sm text-primary-foreground transition-opacity hover:opacity-90",onClick:e[1]||(e[1]=s=>n.$emit("confirm"))},r(o.confirmText),1)])])])):m("",!0)]))}});export{y as _}; diff --git a/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-CLzCrpfO.js b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-CLzCrpfO.js new file mode 100644 index 0000000000000000000000000000000000000000..b34d89bbf9888ecdbca5de0611f7a977f62b9655 --- /dev/null +++ b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-CLzCrpfO.js @@ -0,0 +1 @@ +import{d as a,z as d,c as l,b as c,w as m,a as t,t as r,T as f,e as i}from"./index-Bx7qSams.js";const u={class:"w-full max-w-sm rounded-3xl border border-border bg-card p-6 shadow-2xl"},x={class:"text-sm font-semibold text-foreground"},p={class:"mt-2 text-sm text-muted-foreground"},b={class:"mt-6 flex items-center justify-end gap-2"},y=a({__name:"ConfirmDialog",props:{open:{type:Boolean},title:{},message:{},confirmText:{},cancelText:{}},emits:["confirm","cancel"],setup(o){return(n,e)=>(i(),d(f,{to:"body"},[o.open?(i(),l("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 px-4",onClick:e[2]||(e[2]=m(s=>n.$emit("cancel"),["self"]))},[t("div",u,[t("p",x,r(o.title),1),t("p",p,r(o.message),1),t("div",b,[t("button",{type:"button",class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-foreground hover:text-foreground",onClick:e[0]||(e[0]=s=>n.$emit("cancel"))},r(o.cancelText),1),t("button",{type:"button",class:"rounded-full bg-primary px-4 py-2 text-sm text-primary-foreground transition-opacity hover:opacity-90",onClick:e[1]||(e[1]=s=>n.$emit("confirm"))},r(o.confirmText),1)])])])):c("",!0)]))}});export{y as _}; diff --git a/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-CPmtaJk8.js b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-CPmtaJk8.js new file mode 100644 index 0000000000000000000000000000000000000000..4eb1c908aaf05ed99c1ff4fecae0041d67110b73 --- /dev/null +++ b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-CPmtaJk8.js @@ -0,0 +1 @@ +import{d as a,m as d,c as l,b as m,w as c,a as t,t as r,x as f,e as i}from"./index-OP3F9IRB.js";const u={class:"w-full max-w-sm rounded-3xl border border-border bg-card p-6 shadow-2xl"},x={class:"text-sm font-semibold text-foreground"},p={class:"mt-2 text-sm text-muted-foreground"},b={class:"mt-6 flex items-center justify-end gap-2"},y=a({__name:"ConfirmDialog",props:{open:{type:Boolean},title:{},message:{},confirmText:{},cancelText:{}},emits:["confirm","cancel"],setup(o){return(n,e)=>(i(),d(f,{to:"body"},[o.open?(i(),l("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 px-4",onClick:e[2]||(e[2]=c(s=>n.$emit("cancel"),["self"]))},[t("div",u,[t("p",x,r(o.title),1),t("p",p,r(o.message),1),t("div",b,[t("button",{type:"button",class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-foreground hover:text-foreground",onClick:e[0]||(e[0]=s=>n.$emit("cancel"))},r(o.cancelText),1),t("button",{type:"button",class:"rounded-full bg-primary px-4 py-2 text-sm text-primary-foreground transition-opacity hover:opacity-90",onClick:e[1]||(e[1]=s=>n.$emit("confirm"))},r(o.confirmText),1)])])])):m("",!0)]))}});export{y as _}; diff --git a/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-CWs1-jf0.js b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-CWs1-jf0.js new file mode 100644 index 0000000000000000000000000000000000000000..64eb9a26074e9ec34173311094c3854cc39d4376 --- /dev/null +++ b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-CWs1-jf0.js @@ -0,0 +1 @@ +import{d as a,m as d,c as l,b as m,w as c,a as t,t as r,x as f,e as i}from"./index-DL4Fp3an.js";const u={class:"w-full max-w-sm rounded-3xl border border-border bg-card p-6 shadow-2xl"},x={class:"text-sm font-semibold text-foreground"},p={class:"mt-2 text-sm text-muted-foreground"},b={class:"mt-6 flex items-center justify-end gap-2"},y=a({__name:"ConfirmDialog",props:{open:{type:Boolean},title:{},message:{},confirmText:{},cancelText:{}},emits:["confirm","cancel"],setup(o){return(n,e)=>(i(),d(f,{to:"body"},[o.open?(i(),l("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 px-4",onClick:e[2]||(e[2]=c(s=>n.$emit("cancel"),["self"]))},[t("div",u,[t("p",x,r(o.title),1),t("p",p,r(o.message),1),t("div",b,[t("button",{type:"button",class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-foreground hover:text-foreground",onClick:e[0]||(e[0]=s=>n.$emit("cancel"))},r(o.cancelText),1),t("button",{type:"button",class:"rounded-full bg-primary px-4 py-2 text-sm text-primary-foreground transition-opacity hover:opacity-90",onClick:e[1]||(e[1]=s=>n.$emit("confirm"))},r(o.confirmText),1)])])])):m("",!0)]))}});export{y as _}; diff --git a/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-CXKmFeEu.js b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-CXKmFeEu.js new file mode 100644 index 0000000000000000000000000000000000000000..7aa2d767d176c7ee2ce3b39d05dec8c4581b1d35 --- /dev/null +++ b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-CXKmFeEu.js @@ -0,0 +1 @@ +import{d as a,m as d,c as l,b as m,w as c,a as t,t as r,T as f,e as i}from"./index-BCQxBeUo.js";const u={class:"w-full max-w-sm rounded-3xl border border-border bg-card p-6 shadow-2xl"},x={class:"text-sm font-semibold text-foreground"},p={class:"mt-2 text-sm text-muted-foreground"},b={class:"mt-6 flex items-center justify-end gap-2"},y=a({__name:"ConfirmDialog",props:{open:{type:Boolean},title:{},message:{},confirmText:{},cancelText:{}},emits:["confirm","cancel"],setup(o){return(n,e)=>(i(),d(f,{to:"body"},[o.open?(i(),l("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 px-4",onClick:e[2]||(e[2]=c(s=>n.$emit("cancel"),["self"]))},[t("div",u,[t("p",x,r(o.title),1),t("p",p,r(o.message),1),t("div",b,[t("button",{type:"button",class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-foreground hover:text-foreground",onClick:e[0]||(e[0]=s=>n.$emit("cancel"))},r(o.cancelText),1),t("button",{type:"button",class:"rounded-full bg-primary px-4 py-2 text-sm text-primary-foreground transition-opacity hover:opacity-90",onClick:e[1]||(e[1]=s=>n.$emit("confirm"))},r(o.confirmText),1)])])])):m("",!0)]))}});export{y as _}; diff --git a/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-CZswS7RJ.js b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-CZswS7RJ.js new file mode 100644 index 0000000000000000000000000000000000000000..27c4f3a0322f4fc572fd6ef35bbf145ef59f30b7 --- /dev/null +++ b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-CZswS7RJ.js @@ -0,0 +1 @@ +import{d as a,y as d,c as l,b as c,w as m,a as t,t as r,T as f,e as i}from"./index-BRg_yWJl.js";const u={class:"w-full max-w-sm rounded-3xl border border-border bg-card p-6 shadow-2xl"},x={class:"text-sm font-semibold text-foreground"},p={class:"mt-2 text-sm text-muted-foreground"},b={class:"mt-6 flex items-center justify-end gap-2"},g=a({__name:"ConfirmDialog",props:{open:{type:Boolean},title:{},message:{},confirmText:{},cancelText:{}},emits:["confirm","cancel"],setup(o){return(n,e)=>(i(),d(f,{to:"body"},[o.open?(i(),l("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 px-4",onClick:e[2]||(e[2]=m(s=>n.$emit("cancel"),["self"]))},[t("div",u,[t("p",x,r(o.title),1),t("p",p,r(o.message),1),t("div",b,[t("button",{type:"button",class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-foreground hover:text-foreground",onClick:e[0]||(e[0]=s=>n.$emit("cancel"))},r(o.cancelText),1),t("button",{type:"button",class:"rounded-full bg-primary px-4 py-2 text-sm text-primary-foreground transition-opacity hover:opacity-90",onClick:e[1]||(e[1]=s=>n.$emit("confirm"))},r(o.confirmText),1)])])])):c("",!0)]))}});export{g as _}; diff --git a/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-C_ZbANx_.js b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-C_ZbANx_.js new file mode 100644 index 0000000000000000000000000000000000000000..3f29ff45a382a38526c4569ccbb7484dceac79e9 --- /dev/null +++ b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-C_ZbANx_.js @@ -0,0 +1 @@ +import{d as a,y as d,c as l,b as c,w as m,a as t,t as r,T as f,e as i}from"./index-DhxxzIOh.js";const u={class:"w-full max-w-sm rounded-3xl border border-border bg-card p-6 shadow-2xl"},x={class:"text-sm font-semibold text-foreground"},p={class:"mt-2 text-sm text-muted-foreground"},b={class:"mt-6 flex items-center justify-end gap-2"},g=a({__name:"ConfirmDialog",props:{open:{type:Boolean},title:{},message:{},confirmText:{},cancelText:{}},emits:["confirm","cancel"],setup(o){return(n,e)=>(i(),d(f,{to:"body"},[o.open?(i(),l("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 px-4",onClick:e[2]||(e[2]=m(s=>n.$emit("cancel"),["self"]))},[t("div",u,[t("p",x,r(o.title),1),t("p",p,r(o.message),1),t("div",b,[t("button",{type:"button",class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-foreground hover:text-foreground",onClick:e[0]||(e[0]=s=>n.$emit("cancel"))},r(o.cancelText),1),t("button",{type:"button",class:"rounded-full bg-primary px-4 py-2 text-sm text-primary-foreground transition-opacity hover:opacity-90",onClick:e[1]||(e[1]=s=>n.$emit("confirm"))},r(o.confirmText),1)])])])):c("",!0)]))}});export{g as _}; diff --git a/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-Cf0ef7-g.js b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-Cf0ef7-g.js new file mode 100644 index 0000000000000000000000000000000000000000..3feb928ceee8314f281c2476b72894a01bb501fa --- /dev/null +++ b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-Cf0ef7-g.js @@ -0,0 +1 @@ +import{d as a,y as d,c as l,b as c,w as m,a as t,t as r,T as f,e as i}from"./index-C7QtVLks.js";const u={class:"w-full max-w-sm rounded-3xl border border-border bg-card p-6 shadow-2xl"},x={class:"text-sm font-semibold text-foreground"},p={class:"mt-2 text-sm text-muted-foreground"},b={class:"mt-6 flex items-center justify-end gap-2"},g=a({__name:"ConfirmDialog",props:{open:{type:Boolean},title:{},message:{},confirmText:{},cancelText:{}},emits:["confirm","cancel"],setup(o){return(n,e)=>(i(),d(f,{to:"body"},[o.open?(i(),l("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 px-4",onClick:e[2]||(e[2]=m(s=>n.$emit("cancel"),["self"]))},[t("div",u,[t("p",x,r(o.title),1),t("p",p,r(o.message),1),t("div",b,[t("button",{type:"button",class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-foreground hover:text-foreground",onClick:e[0]||(e[0]=s=>n.$emit("cancel"))},r(o.cancelText),1),t("button",{type:"button",class:"rounded-full bg-primary px-4 py-2 text-sm text-primary-foreground transition-opacity hover:opacity-90",onClick:e[1]||(e[1]=s=>n.$emit("confirm"))},r(o.confirmText),1)])])])):c("",!0)]))}});export{g as _}; diff --git a/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-D2ZZ5gFD.js b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-D2ZZ5gFD.js new file mode 100644 index 0000000000000000000000000000000000000000..871f117ae5e44d0c1ea606be0d86876a5c73d5a3 --- /dev/null +++ b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-D2ZZ5gFD.js @@ -0,0 +1 @@ +import{d as a,y as d,c as l,b as c,w as m,a as t,t as r,T as f,e as i}from"./index-gD6QQiOu.js";const u={class:"w-full max-w-sm rounded-3xl border border-border bg-card p-6 shadow-2xl"},x={class:"text-sm font-semibold text-foreground"},p={class:"mt-2 text-sm text-muted-foreground"},b={class:"mt-6 flex items-center justify-end gap-2"},g=a({__name:"ConfirmDialog",props:{open:{type:Boolean},title:{},message:{},confirmText:{},cancelText:{}},emits:["confirm","cancel"],setup(o){return(n,e)=>(i(),d(f,{to:"body"},[o.open?(i(),l("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 px-4",onClick:e[2]||(e[2]=m(s=>n.$emit("cancel"),["self"]))},[t("div",u,[t("p",x,r(o.title),1),t("p",p,r(o.message),1),t("div",b,[t("button",{type:"button",class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-foreground hover:text-foreground",onClick:e[0]||(e[0]=s=>n.$emit("cancel"))},r(o.cancelText),1),t("button",{type:"button",class:"rounded-full bg-primary px-4 py-2 text-sm text-primary-foreground transition-opacity hover:opacity-90",onClick:e[1]||(e[1]=s=>n.$emit("confirm"))},r(o.confirmText),1)])])])):c("",!0)]))}});export{g as _}; diff --git a/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-DW0P4Bk8.js b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-DW0P4Bk8.js new file mode 100644 index 0000000000000000000000000000000000000000..aab77131bf589db10f6bd4f0aa36c12c8b093579 --- /dev/null +++ b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-DW0P4Bk8.js @@ -0,0 +1 @@ +import{d as a,m as d,c as l,b as m,w as c,a as t,t as r,T as f,e as i}from"./index-C4edAQLF.js";const u={class:"w-full max-w-sm rounded-3xl border border-border bg-card p-6 shadow-2xl"},x={class:"text-sm font-semibold text-foreground"},p={class:"mt-2 text-sm text-muted-foreground"},b={class:"mt-6 flex items-center justify-end gap-2"},y=a({__name:"ConfirmDialog",props:{open:{type:Boolean},title:{},message:{},confirmText:{},cancelText:{}},emits:["confirm","cancel"],setup(o){return(n,e)=>(i(),d(f,{to:"body"},[o.open?(i(),l("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 px-4",onClick:e[2]||(e[2]=c(s=>n.$emit("cancel"),["self"]))},[t("div",u,[t("p",x,r(o.title),1),t("p",p,r(o.message),1),t("div",b,[t("button",{type:"button",class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-foreground hover:text-foreground",onClick:e[0]||(e[0]=s=>n.$emit("cancel"))},r(o.cancelText),1),t("button",{type:"button",class:"rounded-full bg-primary px-4 py-2 text-sm text-primary-foreground transition-opacity hover:opacity-90",onClick:e[1]||(e[1]=s=>n.$emit("confirm"))},r(o.confirmText),1)])])])):m("",!0)]))}});export{y as _}; diff --git a/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-Dx9N8w52.js b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-Dx9N8w52.js new file mode 100644 index 0000000000000000000000000000000000000000..3f8d29c5a09c64a58998b3382c1eaf84cde34052 --- /dev/null +++ b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-Dx9N8w52.js @@ -0,0 +1 @@ +import{d as a,m as d,c as l,b as m,w as c,a as t,t as r,T as f,e as i}from"./index-Dul9zA0O.js";const u={class:"w-full max-w-sm rounded-3xl border border-border bg-card p-6 shadow-2xl"},x={class:"text-sm font-semibold text-foreground"},p={class:"mt-2 text-sm text-muted-foreground"},b={class:"mt-6 flex items-center justify-end gap-2"},y=a({__name:"ConfirmDialog",props:{open:{type:Boolean},title:{},message:{},confirmText:{},cancelText:{}},emits:["confirm","cancel"],setup(o){return(n,e)=>(i(),d(f,{to:"body"},[o.open?(i(),l("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 px-4",onClick:e[2]||(e[2]=c(s=>n.$emit("cancel"),["self"]))},[t("div",u,[t("p",x,r(o.title),1),t("p",p,r(o.message),1),t("div",b,[t("button",{type:"button",class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-foreground hover:text-foreground",onClick:e[0]||(e[0]=s=>n.$emit("cancel"))},r(o.cancelText),1),t("button",{type:"button",class:"rounded-full bg-primary px-4 py-2 text-sm text-primary-foreground transition-opacity hover:opacity-90",onClick:e[1]||(e[1]=s=>n.$emit("confirm"))},r(o.confirmText),1)])])])):m("",!0)]))}});export{y as _}; diff --git a/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-LOlIelGk.js b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-LOlIelGk.js new file mode 100644 index 0000000000000000000000000000000000000000..79b0c1eb23805daf2abcc242a47b1cb880bb14da --- /dev/null +++ b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-LOlIelGk.js @@ -0,0 +1 @@ +import{d as a,y as d,c as l,b as c,w as m,a as t,t as r,T as f,e as i}from"./index-Babp7OwB.js";const u={class:"w-full max-w-sm rounded-3xl border border-border bg-card p-6 shadow-2xl"},x={class:"text-sm font-semibold text-foreground"},p={class:"mt-2 text-sm text-muted-foreground"},b={class:"mt-6 flex items-center justify-end gap-2"},g=a({__name:"ConfirmDialog",props:{open:{type:Boolean},title:{},message:{},confirmText:{},cancelText:{}},emits:["confirm","cancel"],setup(o){return(n,e)=>(i(),d(f,{to:"body"},[o.open?(i(),l("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 px-4",onClick:e[2]||(e[2]=m(s=>n.$emit("cancel"),["self"]))},[t("div",u,[t("p",x,r(o.title),1),t("p",p,r(o.message),1),t("div",b,[t("button",{type:"button",class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-foreground hover:text-foreground",onClick:e[0]||(e[0]=s=>n.$emit("cancel"))},r(o.cancelText),1),t("button",{type:"button",class:"rounded-full bg-primary px-4 py-2 text-sm text-primary-foreground transition-opacity hover:opacity-90",onClick:e[1]||(e[1]=s=>n.$emit("confirm"))},r(o.confirmText),1)])])])):c("",!0)]))}});export{g as _}; diff --git a/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-NECRqKOO.js b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-NECRqKOO.js new file mode 100644 index 0000000000000000000000000000000000000000..dbc404f3af4803e414bc6d1c486252f67500229c --- /dev/null +++ b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-NECRqKOO.js @@ -0,0 +1 @@ +import{d as a,m as d,c as l,b as m,w as c,a as t,t as r,T as f,e as i}from"./index-Bjh6Z8Zq.js";const u={class:"w-full max-w-sm rounded-3xl border border-border bg-card p-6 shadow-2xl"},x={class:"text-sm font-semibold text-foreground"},p={class:"mt-2 text-sm text-muted-foreground"},b={class:"mt-6 flex items-center justify-end gap-2"},y=a({__name:"ConfirmDialog",props:{open:{type:Boolean},title:{},message:{},confirmText:{},cancelText:{}},emits:["confirm","cancel"],setup(o){return(n,e)=>(i(),d(f,{to:"body"},[o.open?(i(),l("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 px-4",onClick:e[2]||(e[2]=c(s=>n.$emit("cancel"),["self"]))},[t("div",u,[t("p",x,r(o.title),1),t("p",p,r(o.message),1),t("div",b,[t("button",{type:"button",class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-foreground hover:text-foreground",onClick:e[0]||(e[0]=s=>n.$emit("cancel"))},r(o.cancelText),1),t("button",{type:"button",class:"rounded-full bg-primary px-4 py-2 text-sm text-primary-foreground transition-opacity hover:opacity-90",onClick:e[1]||(e[1]=s=>n.$emit("confirm"))},r(o.confirmText),1)])])])):m("",!0)]))}});export{y as _}; diff --git a/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-TmgBmCy7.js b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-TmgBmCy7.js new file mode 100644 index 0000000000000000000000000000000000000000..8a6dc89dbda1b940282e9556c379cdb76c2e2cdc --- /dev/null +++ b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-TmgBmCy7.js @@ -0,0 +1 @@ +import{d as a,y as d,c as l,b as c,w as m,a as t,t as r,T as f,e as i}from"./index-4tSmcUDY.js";const u={class:"w-full max-w-sm rounded-3xl border border-border bg-card p-6 shadow-2xl"},x={class:"text-sm font-semibold text-foreground"},p={class:"mt-2 text-sm text-muted-foreground"},b={class:"mt-6 flex items-center justify-end gap-2"},g=a({__name:"ConfirmDialog",props:{open:{type:Boolean},title:{},message:{},confirmText:{},cancelText:{}},emits:["confirm","cancel"],setup(o){return(n,e)=>(i(),d(f,{to:"body"},[o.open?(i(),l("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 px-4",onClick:e[2]||(e[2]=m(s=>n.$emit("cancel"),["self"]))},[t("div",u,[t("p",x,r(o.title),1),t("p",p,r(o.message),1),t("div",b,[t("button",{type:"button",class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-foreground hover:text-foreground",onClick:e[0]||(e[0]=s=>n.$emit("cancel"))},r(o.cancelText),1),t("button",{type:"button",class:"rounded-full bg-primary px-4 py-2 text-sm text-primary-foreground transition-opacity hover:opacity-90",onClick:e[1]||(e[1]=s=>n.$emit("confirm"))},r(o.confirmText),1)])])])):c("",!0)]))}});export{g as _}; diff --git a/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-fISQukFW.js b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-fISQukFW.js new file mode 100644 index 0000000000000000000000000000000000000000..cac0a112f4182848edac96ad6012c20abfdb1032 --- /dev/null +++ b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-fISQukFW.js @@ -0,0 +1 @@ +import{d as a,y as d,c as l,b as c,w as m,a as t,t as r,T as f,e as i}from"./index-BIHSVHyU.js";const u={class:"w-full max-w-sm rounded-3xl border border-border bg-card p-6 shadow-2xl"},x={class:"text-sm font-semibold text-foreground"},p={class:"mt-2 text-sm text-muted-foreground"},b={class:"mt-6 flex items-center justify-end gap-2"},g=a({__name:"ConfirmDialog",props:{open:{type:Boolean},title:{},message:{},confirmText:{},cancelText:{}},emits:["confirm","cancel"],setup(o){return(n,e)=>(i(),d(f,{to:"body"},[o.open?(i(),l("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 px-4",onClick:e[2]||(e[2]=m(s=>n.$emit("cancel"),["self"]))},[t("div",u,[t("p",x,r(o.title),1),t("p",p,r(o.message),1),t("div",b,[t("button",{type:"button",class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-foreground hover:text-foreground",onClick:e[0]||(e[0]=s=>n.$emit("cancel"))},r(o.cancelText),1),t("button",{type:"button",class:"rounded-full bg-primary px-4 py-2 text-sm text-primary-foreground transition-opacity hover:opacity-90",onClick:e[1]||(e[1]=s=>n.$emit("confirm"))},r(o.confirmText),1)])])])):c("",!0)]))}});export{g as _}; diff --git a/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-jpm-Quh6.js b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-jpm-Quh6.js new file mode 100644 index 0000000000000000000000000000000000000000..f06d42e89d4b10ca12827928855281a7190581cb --- /dev/null +++ b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-jpm-Quh6.js @@ -0,0 +1 @@ +import{d as a,m as d,c as l,b as m,w as c,a as t,t as r,T as f,e as i}from"./index-Dt-VnrHx.js";const u={class:"w-full max-w-sm rounded-3xl border border-border bg-card p-6 shadow-2xl"},x={class:"text-sm font-semibold text-foreground"},p={class:"mt-2 text-sm text-muted-foreground"},b={class:"mt-6 flex items-center justify-end gap-2"},y=a({__name:"ConfirmDialog",props:{open:{type:Boolean},title:{},message:{},confirmText:{},cancelText:{}},emits:["confirm","cancel"],setup(o){return(n,e)=>(i(),d(f,{to:"body"},[o.open?(i(),l("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 px-4",onClick:e[2]||(e[2]=c(s=>n.$emit("cancel"),["self"]))},[t("div",u,[t("p",x,r(o.title),1),t("p",p,r(o.message),1),t("div",b,[t("button",{type:"button",class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-foreground hover:text-foreground",onClick:e[0]||(e[0]=s=>n.$emit("cancel"))},r(o.cancelText),1),t("button",{type:"button",class:"rounded-full bg-primary px-4 py-2 text-sm text-primary-foreground transition-opacity hover:opacity-90",onClick:e[1]||(e[1]=s=>n.$emit("confirm"))},r(o.confirmText),1)])])])):m("",!0)]))}});export{y as _}; diff --git a/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-pFdqEtiD.js b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-pFdqEtiD.js new file mode 100644 index 0000000000000000000000000000000000000000..ff91ef01f23f64310b1b1b673f34bac1c5397ef7 --- /dev/null +++ b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-pFdqEtiD.js @@ -0,0 +1 @@ +import{d as a,y as d,c as l,b as c,w as m,a as t,t as r,T as f,e as i}from"./index-C9KL0lrc.js";const u={class:"w-full max-w-sm rounded-3xl border border-border bg-card p-6 shadow-2xl"},x={class:"text-sm font-semibold text-foreground"},p={class:"mt-2 text-sm text-muted-foreground"},b={class:"mt-6 flex items-center justify-end gap-2"},g=a({__name:"ConfirmDialog",props:{open:{type:Boolean},title:{},message:{},confirmText:{},cancelText:{}},emits:["confirm","cancel"],setup(o){return(n,e)=>(i(),d(f,{to:"body"},[o.open?(i(),l("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 px-4",onClick:e[2]||(e[2]=m(s=>n.$emit("cancel"),["self"]))},[t("div",u,[t("p",x,r(o.title),1),t("p",p,r(o.message),1),t("div",b,[t("button",{type:"button",class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-foreground hover:text-foreground",onClick:e[0]||(e[0]=s=>n.$emit("cancel"))},r(o.cancelText),1),t("button",{type:"button",class:"rounded-full bg-primary px-4 py-2 text-sm text-primary-foreground transition-opacity hover:opacity-90",onClick:e[1]||(e[1]=s=>n.$emit("confirm"))},r(o.confirmText),1)])])])):c("",!0)]))}});export{g as _}; diff --git a/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-szV8KRsH.js b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-szV8KRsH.js new file mode 100644 index 0000000000000000000000000000000000000000..c2b2900c29ac5124cf216678fcb555683835ca5e --- /dev/null +++ b/static/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-szV8KRsH.js @@ -0,0 +1 @@ +import{d as a,m as d,c as l,b as m,p as c,a as t,t as r,z as f,e as i}from"./index-CM73xqTK.js";const u={class:"w-full max-w-sm rounded-3xl border border-border bg-card p-6 shadow-2xl"},x={class:"text-sm font-semibold text-foreground"},p={class:"mt-2 text-sm text-muted-foreground"},b={class:"mt-6 flex items-center justify-end gap-2"},y=a({__name:"ConfirmDialog",props:{open:{type:Boolean},title:{},message:{},confirmText:{},cancelText:{}},emits:["confirm","cancel"],setup(o){return(n,e)=>(i(),d(f,{to:"body"},[o.open?(i(),l("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 px-4",onClick:e[2]||(e[2]=c(s=>n.$emit("cancel"),["self"]))},[t("div",u,[t("p",x,r(o.title),1),t("p",p,r(o.message),1),t("div",b,[t("button",{type:"button",class:"rounded-full border border-border px-4 py-2 text-sm text-muted-foreground transition-colors hover:border-foreground hover:text-foreground",onClick:e[0]||(e[0]=s=>n.$emit("cancel"))},r(o.cancelText),1),t("button",{type:"button",class:"rounded-full bg-primary px-4 py-2 text-sm text-primary-foreground transition-opacity hover:opacity-90",onClick:e[1]||(e[1]=s=>n.$emit("confirm"))},r(o.confirmText),1)])])])):m("",!0)]))}});export{y as _}; diff --git a/static/assets/Dashboard-B7PdOyI3.js b/static/assets/Dashboard-B7PdOyI3.js new file mode 100644 index 0000000000000000000000000000000000000000..ce984418f98530b658a2fe2e0088f2b95e191a68 --- /dev/null +++ b/static/assets/Dashboard-B7PdOyI3.js @@ -0,0 +1 @@ +import{g as B,d as E,h as i,i as F,o as j,j as $,c as m,a,F as M,r as k,t as b,f as U,m as V,b as W,k as G,n as H,e as c}from"./index-BYFRJmx0.js";import{_ as I}from"./HelpTip.vue_vue_type_script_setup_true_lang-sPivD74C.js";const J={overview(){return B.get("/admin/stats")}},K={class:"space-y-8"},P={class:"grid grid-cols-2 gap-4 md:grid-cols-2 xl:grid-cols-4"},Q={class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},X={class:"mt-4 text-3xl font-semibold text-foreground"},Y={class:"mt-2 text-xs text-muted-foreground"},Z={class:"dashboard-split flex w-full flex-col gap-6"},ee={class:"dashboard-main w-full min-w-0 rounded-3xl border border-border bg-card p-6 overflow-hidden"},te={class:"mt-4 border-t border-border pt-4"},ae={class:"dashboard-side w-full min-w-0 rounded-3xl border border-border bg-card p-6"},oe={class:"mt-6 space-y-4"},le={class:"flex items-center justify-between text-sm"},re={class:"flex items-center gap-2 text-muted-foreground"},se={class:"font-medium text-foreground"},ne={class:"h-2 w-full rounded-full bg-secondary"},ce=E({__name:"Dashboard",setup(ie){const s=i([{label:"账号总数",value:"0",caption:"账号池中已加载的总数量。"},{label:"活跃账号",value:"0",caption:"未过期、未禁用、未限流且可用。"},{label:"失败账号",value:"0",caption:"自动禁用或已过期,需要处理。"},{label:"限流账号",value:"0",caption:"触发 429 限流,冷却中。"}]),p=i([]),x=i([]),_=i([]),y=i([]),w=i({}),v=i(null),h=i(null);let r=null,n=null;const R=F(()=>{const e=Math.max(Number(s.value[0].value),1),t=Number(s.value[1].value),o=Number(s.value[2].value),d=Number(s.value[3].value),u=Math.max(e-t-o-d,0);return[{label:"活跃",value:t,percent:Math.round(t/e*100),barClass:"bg-emerald-500"},{label:"失败",value:o,percent:Math.round(o/e*100),barClass:"bg-destructive"},{label:"限流",value:d,percent:Math.round(d/e*100),barClass:"bg-amber-300"},{label:"空闲",tooltip:"未限流、未失败、未激活使用中的账号(主要是手动禁用)。",value:u,percent:Math.round(u/e*100),barClass:"bg-slate-300"}]});j(async()=>{await T(),q(),O(),window.addEventListener("resize",S)}),$(()=>{window.removeEventListener("resize",S),r&&(r.dispose(),r=null),n&&(n.dispose(),n=null)});function q(){const e=window.echarts;!e||!v.value||(r=e.init(v.value),C(),z())}function O(){const e=window.echarts;!e||!h.value||(n=e.init(h.value),g(),L())}function C(){if(!r)return;r.setOption({tooltip:{trigger:"axis"},legend:{data:["成功(总请求)","失败/限流"],right:0,top:0,textStyle:{color:"#6b6b6b",fontSize:11}},grid:{left:24,right:16,top:44,bottom:24,containLabel:!0},xAxis:{type:"category",data:y.value,boundaryGap:!1,axisLine:{lineStyle:{color:"#d4d4d4"}},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10},splitLine:{lineStyle:{color:"#e5e5e5"}}},series:[{name:"成功(总请求)",type:"line",data:_.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.25},itemStyle:{color:"#0ea5e9"},emphasis:{disabled:!0},z:1},{name:"失败/限流",type:"line",data:x.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.4},itemStyle:{color:"#ef4444"},emphasis:{disabled:!0},z:2}]}),z()}function g(){if(!n)return;const e=Object.entries(w.value).map(([l,f])=>({name:l,value:f.reduce((N,A)=>N+A,0),itemStyle:{color:D(l),borderRadius:8}})).filter(l=>l.value>0),t=window.innerWidth<768,o=t?{data:e.map(l=>l.name),left:"center",bottom:0,orient:"horizontal",textStyle:{color:"#6b6b6b",fontSize:11}}:{data:e.map(l=>l.name),left:0,top:"center",orient:"vertical",textStyle:{color:"#6b6b6b",fontSize:11}},d=t?["50%","38%"]:["66%","50%"],u=t?["40%","62%"]:["52%","78%"];n.setOption({animation:!0,animationDuration:600,animationEasing:"cubicOut",animationDurationUpdate:300,animationEasingUpdate:"cubicOut",tooltip:{trigger:"item",formatter:l=>`${l.name}: ${l.value} 次 (${l.percent}%)`},legend:o,series:[{type:"pie",radius:u,center:d,startAngle:90,animationType:"scale",animationEasing:"cubicOut",avoidLabelOverlap:!0,label:{show:!0,formatter:"{b}",fontSize:11,color:"#6b6b6b"},labelLine:{length:12,length2:10},itemStyle:{borderWidth:2,borderColor:"#fff",borderRadius:10},data:e}]}),L()}function S(){r&&r.resize(),n&&g()}async function T(){try{const e=await J.overview();s.value[0].value=(e.total_accounts??0).toString(),s.value[1].value=(e.active_accounts??0).toString(),s.value[2].value=(e.failed_accounts??0).toString(),s.value[3].value=(e.rate_limited_accounts??0).toString();const t=e.trend||{labels:[],total_requests:[],failed_requests:[],rate_limited_requests:[]};y.value=t.labels||[],p.value=t.total_requests||[];const o=t.failed_requests||[],d=t.rate_limited_requests||[],u=p.value.map((l,f)=>(o[f]||0)+(d[f]||0));x.value=u,_.value=p.value.map(l=>Math.max(l,0)),w.value=t.model_requests||{},C(),g()}catch(e){console.error("Failed to load overview:",e)}}function z(){r&&requestAnimationFrame(()=>{r?.resize()})}function L(){n&&requestAnimationFrame(()=>{n?.resize()})}function D(e){return{"gemini-3-pro-preview":"#0ea5e9","gemini-2.5-pro":"#22c55e","gemini-2.5-flash":"#f59e0b","gemini-3-flash-preview":"#ec4899","gemini-auto":"#64748b"}[e]||"#94a3b8"}return(e,t)=>(c(),m("div",K,[a("section",P,[(c(!0),m(M,null,k(s.value,o=>(c(),m("div",{key:o.label,class:"rounded-3xl border border-border bg-card p-6"},[a("p",Q,b(o.label),1),a("p",X,b(o.value),1),a("p",Y,b(o.caption),1)]))),128))]),a("section",Z,[a("div",ee,[t[1]||(t[1]=a("div",{class:"flex items-center justify-between"},[a("p",{class:"text-sm font-medium text-foreground"},"调用趋势(近12小时)")],-1)),a("div",{ref_key:"trendChartRef",ref:v,class:"mt-6 h-64 w-full max-w-full lg:h-72"},null,512),a("div",te,[t[0]||(t[0]=a("p",{class:"text-sm font-medium text-foreground"},"模型调用分布(近12小时)",-1)),a("div",{ref_key:"modelChartRef",ref:h,class:"mt-4 h-80 w-full max-w-full lg:h-64"},null,512)])]),a("div",ae,[t[2]||(t[2]=a("p",{class:"text-sm font-medium text-foreground"},"账号健康",-1)),a("div",oe,[(c(!0),m(M,null,k(R.value,o=>(c(),m("div",{key:o.label,class:"space-y-2"},[a("div",le,[a("span",re,[U(b(o.label)+" ",1),o.tooltip?(c(),V(I,{key:0,text:o.tooltip},null,8,["text"])):W("",!0)]),a("span",se,b(o.value),1)]),a("div",ne,[a("div",{class:H(["h-2 rounded-full",o.barClass]),style:G({width:o.percent+"%"})},null,6)])]))),128))]),t[3]||(t[3]=a("div",{class:"mt-6 rounded-2xl border border-border bg-secondary/50 p-4 text-xs text-muted-foreground"}," 建议及时处理失败或过期账号,避免影响轮询效率。 ",-1))])])]))}});export{ce as default}; diff --git a/static/assets/Dashboard-B8hpGkaM.js b/static/assets/Dashboard-B8hpGkaM.js new file mode 100644 index 0000000000000000000000000000000000000000..6df77c04988b7f9b65430ea09c57b33752b38c3f --- /dev/null +++ b/static/assets/Dashboard-B8hpGkaM.js @@ -0,0 +1 @@ +import{g as B,d as E,h as i,i as F,o as j,j as $,c as m,a,F as M,r as k,t as b,f as U,y as V,b as W,k as G,n as H,e as c}from"./index-DhxxzIOh.js";import{_ as I}from"./HelpTip.vue_vue_type_script_setup_true_lang-Dj0Fsuty.js";const J={overview(){return B.get("/admin/stats")}},K={class:"space-y-8"},P={class:"grid grid-cols-2 gap-4 md:grid-cols-2 xl:grid-cols-4"},Q={class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},X={class:"mt-4 text-3xl font-semibold text-foreground"},Y={class:"mt-2 text-xs text-muted-foreground"},Z={class:"dashboard-split flex w-full flex-col gap-6"},ee={class:"dashboard-main w-full min-w-0 rounded-3xl border border-border bg-card p-6 overflow-hidden"},te={class:"mt-4 border-t border-border pt-4"},ae={class:"dashboard-side w-full min-w-0 rounded-3xl border border-border bg-card p-6"},oe={class:"mt-6 space-y-4"},le={class:"flex items-center justify-between text-sm"},re={class:"flex items-center gap-2 text-muted-foreground"},se={class:"font-medium text-foreground"},ne={class:"h-2 w-full rounded-full bg-secondary"},ce=E({__name:"Dashboard",setup(ie){const s=i([{label:"账号总数",value:"0",caption:"账号池中已加载的总数量。"},{label:"活跃账号",value:"0",caption:"未过期、未禁用、未限流且可用。"},{label:"失败账号",value:"0",caption:"自动禁用或已过期,需要处理。"},{label:"限流账号",value:"0",caption:"触发 429 限流,冷却中。"}]),p=i([]),x=i([]),_=i([]),y=i([]),w=i({}),v=i(null),h=i(null);let r=null,n=null;const R=F(()=>{const e=Math.max(Number(s.value[0].value),1),t=Number(s.value[1].value),o=Number(s.value[2].value),d=Number(s.value[3].value),u=Math.max(e-t-o-d,0);return[{label:"活跃",value:t,percent:Math.round(t/e*100),barClass:"bg-emerald-500"},{label:"失败",value:o,percent:Math.round(o/e*100),barClass:"bg-destructive"},{label:"限流",value:d,percent:Math.round(d/e*100),barClass:"bg-amber-300"},{label:"空闲",tooltip:"未限流、未失败、未激活使用中的账号(主要是手动禁用)。",value:u,percent:Math.round(u/e*100),barClass:"bg-slate-300"}]});j(async()=>{await T(),q(),O(),window.addEventListener("resize",S)}),$(()=>{window.removeEventListener("resize",S),r&&(r.dispose(),r=null),n&&(n.dispose(),n=null)});function q(){const e=window.echarts;!e||!v.value||(r=e.init(v.value),C(),z())}function O(){const e=window.echarts;!e||!h.value||(n=e.init(h.value),g(),L())}function C(){if(!r)return;r.setOption({tooltip:{trigger:"axis"},legend:{data:["成功(总请求)","失败/限流"],right:0,top:0,textStyle:{color:"#6b6b6b",fontSize:11}},grid:{left:24,right:16,top:44,bottom:24,containLabel:!0},xAxis:{type:"category",data:y.value,boundaryGap:!1,axisLine:{lineStyle:{color:"#d4d4d4"}},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10},splitLine:{lineStyle:{color:"#e5e5e5"}}},series:[{name:"成功(总请求)",type:"line",data:_.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.25},itemStyle:{color:"#0ea5e9"},emphasis:{disabled:!0},z:1},{name:"失败/限流",type:"line",data:x.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.4},itemStyle:{color:"#ef4444"},emphasis:{disabled:!0},z:2}]}),z()}function g(){if(!n)return;const e=Object.entries(w.value).map(([l,f])=>({name:l,value:f.reduce((N,A)=>N+A,0),itemStyle:{color:D(l),borderRadius:8}})).filter(l=>l.value>0),t=window.innerWidth<768,o=t?{data:e.map(l=>l.name),left:"center",bottom:0,orient:"horizontal",textStyle:{color:"#6b6b6b",fontSize:11}}:{data:e.map(l=>l.name),left:0,top:"center",orient:"vertical",textStyle:{color:"#6b6b6b",fontSize:11}},d=t?["50%","38%"]:["66%","50%"],u=t?["40%","62%"]:["52%","78%"];n.setOption({animation:!0,animationDuration:600,animationEasing:"cubicOut",animationDurationUpdate:300,animationEasingUpdate:"cubicOut",tooltip:{trigger:"item",formatter:l=>`${l.name}: ${l.value} 次 (${l.percent}%)`},legend:o,series:[{type:"pie",radius:u,center:d,startAngle:90,animationType:"scale",animationEasing:"cubicOut",avoidLabelOverlap:!0,label:{show:!0,formatter:"{b}",fontSize:11,color:"#6b6b6b"},labelLine:{length:12,length2:10},itemStyle:{borderWidth:2,borderColor:"#fff",borderRadius:10},data:e}]}),L()}function S(){r&&r.resize(),n&&g()}async function T(){try{const e=await J.overview();s.value[0].value=(e.total_accounts??0).toString(),s.value[1].value=(e.active_accounts??0).toString(),s.value[2].value=(e.failed_accounts??0).toString(),s.value[3].value=(e.rate_limited_accounts??0).toString();const t=e.trend||{labels:[],total_requests:[],failed_requests:[],rate_limited_requests:[]};y.value=t.labels||[],p.value=t.total_requests||[];const o=t.failed_requests||[],d=t.rate_limited_requests||[],u=p.value.map((l,f)=>(o[f]||0)+(d[f]||0));x.value=u,_.value=p.value.map(l=>Math.max(l,0)),w.value=t.model_requests||{},C(),g()}catch(e){console.error("Failed to load overview:",e)}}function z(){r&&requestAnimationFrame(()=>{r?.resize()})}function L(){n&&requestAnimationFrame(()=>{n?.resize()})}function D(e){return{"gemini-3-pro-preview":"#0ea5e9","gemini-2.5-pro":"#22c55e","gemini-2.5-flash":"#f59e0b","gemini-3-flash-preview":"#ec4899","gemini-auto":"#64748b"}[e]||"#94a3b8"}return(e,t)=>(c(),m("div",K,[a("section",P,[(c(!0),m(M,null,k(s.value,o=>(c(),m("div",{key:o.label,class:"rounded-3xl border border-border bg-card p-6"},[a("p",Q,b(o.label),1),a("p",X,b(o.value),1),a("p",Y,b(o.caption),1)]))),128))]),a("section",Z,[a("div",ee,[t[1]||(t[1]=a("div",{class:"flex items-center justify-between"},[a("p",{class:"text-sm font-medium text-foreground"},"调用趋势(近12小时)")],-1)),a("div",{ref_key:"trendChartRef",ref:v,class:"mt-6 h-64 w-full max-w-full lg:h-72"},null,512),a("div",te,[t[0]||(t[0]=a("p",{class:"text-sm font-medium text-foreground"},"模型调用分布(近12小时)",-1)),a("div",{ref_key:"modelChartRef",ref:h,class:"mt-4 h-80 w-full max-w-full lg:h-64"},null,512)])]),a("div",ae,[t[2]||(t[2]=a("p",{class:"text-sm font-medium text-foreground"},"账号健康",-1)),a("div",oe,[(c(!0),m(M,null,k(R.value,o=>(c(),m("div",{key:o.label,class:"space-y-2"},[a("div",le,[a("span",re,[U(b(o.label)+" ",1),o.tooltip?(c(),V(I,{key:0,text:o.tooltip},null,8,["text"])):W("",!0)]),a("span",se,b(o.value),1)]),a("div",ne,[a("div",{class:H(["h-2 rounded-full",o.barClass]),style:G({width:o.percent+"%"})},null,6)])]))),128))]),t[3]||(t[3]=a("div",{class:"mt-6 rounded-2xl border border-border bg-secondary/50 p-4 text-xs text-muted-foreground"}," 建议及时处理失败或过期账号,避免影响轮询效率。 ",-1))])])]))}});export{ce as default}; diff --git a/static/assets/Dashboard-BZZ41xtW.js b/static/assets/Dashboard-BZZ41xtW.js new file mode 100644 index 0000000000000000000000000000000000000000..37b9c3b7bc5742ee2ccf280dc9c34dc6a60cceb9 --- /dev/null +++ b/static/assets/Dashboard-BZZ41xtW.js @@ -0,0 +1 @@ +import{g as B,d as E,h as i,i as F,o as j,j as $,c as m,a,F as M,r as k,t as b,f as U,y as V,b as W,k as G,n as H,e as c}from"./index-DMWZCTlx.js";import{_ as I}from"./HelpTip.vue_vue_type_script_setup_true_lang-BgxOFSZZ.js";const J={overview(){return B.get("/admin/stats")}},K={class:"space-y-8"},P={class:"grid grid-cols-2 gap-4 md:grid-cols-2 xl:grid-cols-4"},Q={class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},X={class:"mt-4 text-3xl font-semibold text-foreground"},Y={class:"mt-2 text-xs text-muted-foreground"},Z={class:"dashboard-split flex w-full flex-col gap-6"},ee={class:"dashboard-main w-full min-w-0 rounded-3xl border border-border bg-card p-6 overflow-hidden"},te={class:"mt-4 border-t border-border pt-4"},ae={class:"dashboard-side w-full min-w-0 rounded-3xl border border-border bg-card p-6"},oe={class:"mt-6 space-y-4"},le={class:"flex items-center justify-between text-sm"},re={class:"flex items-center gap-2 text-muted-foreground"},se={class:"font-medium text-foreground"},ne={class:"h-2 w-full rounded-full bg-secondary"},ce=E({__name:"Dashboard",setup(ie){const s=i([{label:"账号总数",value:"0",caption:"账号池中已加载的总数量。"},{label:"活跃账号",value:"0",caption:"未过期、未禁用、未限流且可用。"},{label:"失败账号",value:"0",caption:"自动禁用或已过期,需要处理。"},{label:"限流账号",value:"0",caption:"触发 429 限流,冷却中。"}]),p=i([]),x=i([]),_=i([]),y=i([]),w=i({}),v=i(null),h=i(null);let r=null,n=null;const R=F(()=>{const e=Math.max(Number(s.value[0].value),1),t=Number(s.value[1].value),o=Number(s.value[2].value),d=Number(s.value[3].value),u=Math.max(e-t-o-d,0);return[{label:"活跃",value:t,percent:Math.round(t/e*100),barClass:"bg-emerald-500"},{label:"失败",value:o,percent:Math.round(o/e*100),barClass:"bg-destructive"},{label:"限流",value:d,percent:Math.round(d/e*100),barClass:"bg-amber-300"},{label:"空闲",tooltip:"未限流、未失败、未激活使用中的账号(主要是手动禁用)。",value:u,percent:Math.round(u/e*100),barClass:"bg-slate-300"}]});j(async()=>{await T(),q(),O(),window.addEventListener("resize",S)}),$(()=>{window.removeEventListener("resize",S),r&&(r.dispose(),r=null),n&&(n.dispose(),n=null)});function q(){const e=window.echarts;!e||!v.value||(r=e.init(v.value),C(),z())}function O(){const e=window.echarts;!e||!h.value||(n=e.init(h.value),g(),L())}function C(){if(!r)return;r.setOption({tooltip:{trigger:"axis"},legend:{data:["成功(总请求)","失败/限流"],right:0,top:0,textStyle:{color:"#6b6b6b",fontSize:11}},grid:{left:24,right:16,top:44,bottom:24,containLabel:!0},xAxis:{type:"category",data:y.value,boundaryGap:!1,axisLine:{lineStyle:{color:"#d4d4d4"}},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10},splitLine:{lineStyle:{color:"#e5e5e5"}}},series:[{name:"成功(总请求)",type:"line",data:_.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.25},itemStyle:{color:"#0ea5e9"},emphasis:{disabled:!0},z:1},{name:"失败/限流",type:"line",data:x.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.4},itemStyle:{color:"#ef4444"},emphasis:{disabled:!0},z:2}]}),z()}function g(){if(!n)return;const e=Object.entries(w.value).map(([l,f])=>({name:l,value:f.reduce((N,A)=>N+A,0),itemStyle:{color:D(l),borderRadius:8}})).filter(l=>l.value>0),t=window.innerWidth<768,o=t?{data:e.map(l=>l.name),left:"center",bottom:0,orient:"horizontal",textStyle:{color:"#6b6b6b",fontSize:11}}:{data:e.map(l=>l.name),left:0,top:"center",orient:"vertical",textStyle:{color:"#6b6b6b",fontSize:11}},d=t?["50%","38%"]:["66%","50%"],u=t?["40%","62%"]:["52%","78%"];n.setOption({animation:!0,animationDuration:600,animationEasing:"cubicOut",animationDurationUpdate:300,animationEasingUpdate:"cubicOut",tooltip:{trigger:"item",formatter:l=>`${l.name}: ${l.value} 次 (${l.percent}%)`},legend:o,series:[{type:"pie",radius:u,center:d,startAngle:90,animationType:"scale",animationEasing:"cubicOut",avoidLabelOverlap:!0,label:{show:!0,formatter:"{b}",fontSize:11,color:"#6b6b6b"},labelLine:{length:12,length2:10},itemStyle:{borderWidth:2,borderColor:"#fff",borderRadius:10},data:e}]}),L()}function S(){r&&r.resize(),n&&g()}async function T(){try{const e=await J.overview();s.value[0].value=(e.total_accounts??0).toString(),s.value[1].value=(e.active_accounts??0).toString(),s.value[2].value=(e.failed_accounts??0).toString(),s.value[3].value=(e.rate_limited_accounts??0).toString();const t=e.trend||{labels:[],total_requests:[],failed_requests:[],rate_limited_requests:[]};y.value=t.labels||[],p.value=t.total_requests||[];const o=t.failed_requests||[],d=t.rate_limited_requests||[],u=p.value.map((l,f)=>(o[f]||0)+(d[f]||0));x.value=u,_.value=p.value.map(l=>Math.max(l,0)),w.value=t.model_requests||{},C(),g()}catch(e){console.error("Failed to load overview:",e)}}function z(){r&&requestAnimationFrame(()=>{r?.resize()})}function L(){n&&requestAnimationFrame(()=>{n?.resize()})}function D(e){return{"gemini-3-pro-preview":"#0ea5e9","gemini-2.5-pro":"#22c55e","gemini-2.5-flash":"#f59e0b","gemini-3-flash-preview":"#ec4899","gemini-auto":"#64748b"}[e]||"#94a3b8"}return(e,t)=>(c(),m("div",K,[a("section",P,[(c(!0),m(M,null,k(s.value,o=>(c(),m("div",{key:o.label,class:"rounded-3xl border border-border bg-card p-6"},[a("p",Q,b(o.label),1),a("p",X,b(o.value),1),a("p",Y,b(o.caption),1)]))),128))]),a("section",Z,[a("div",ee,[t[1]||(t[1]=a("div",{class:"flex items-center justify-between"},[a("p",{class:"text-sm font-medium text-foreground"},"调用趋势(近12小时)")],-1)),a("div",{ref_key:"trendChartRef",ref:v,class:"mt-6 h-64 w-full max-w-full lg:h-72"},null,512),a("div",te,[t[0]||(t[0]=a("p",{class:"text-sm font-medium text-foreground"},"模型调用分布(近12小时)",-1)),a("div",{ref_key:"modelChartRef",ref:h,class:"mt-4 h-80 w-full max-w-full lg:h-64"},null,512)])]),a("div",ae,[t[2]||(t[2]=a("p",{class:"text-sm font-medium text-foreground"},"账号健康",-1)),a("div",oe,[(c(!0),m(M,null,k(R.value,o=>(c(),m("div",{key:o.label,class:"space-y-2"},[a("div",le,[a("span",re,[U(b(o.label)+" ",1),o.tooltip?(c(),V(I,{key:0,text:o.tooltip},null,8,["text"])):W("",!0)]),a("span",se,b(o.value),1)]),a("div",ne,[a("div",{class:H(["h-2 rounded-full",o.barClass]),style:G({width:o.percent+"%"})},null,6)])]))),128))]),t[3]||(t[3]=a("div",{class:"mt-6 rounded-2xl border border-border bg-secondary/50 p-4 text-xs text-muted-foreground"}," 建议及时处理失败或过期账号,避免影响轮询效率。 ",-1))])])]))}});export{ce as default}; diff --git a/static/assets/Dashboard-BfvhDjhc.js b/static/assets/Dashboard-BfvhDjhc.js new file mode 100644 index 0000000000000000000000000000000000000000..874006929a8be427c5ce6bfffbb7b25726b77423 --- /dev/null +++ b/static/assets/Dashboard-BfvhDjhc.js @@ -0,0 +1 @@ +import{g as B,d as E,h as i,i as F,o as j,j as $,c as m,a,F as M,r as k,t as b,f as U,y as V,b as W,k as G,n as H,e as c}from"./index-BIHSVHyU.js";import{_ as I}from"./HelpTip.vue_vue_type_script_setup_true_lang-BYvP2-eE.js";const J={overview(){return B.get("/admin/stats")}},K={class:"space-y-8"},P={class:"grid grid-cols-2 gap-4 md:grid-cols-2 xl:grid-cols-4"},Q={class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},X={class:"mt-4 text-3xl font-semibold text-foreground"},Y={class:"mt-2 text-xs text-muted-foreground"},Z={class:"dashboard-split flex w-full flex-col gap-6"},ee={class:"dashboard-main w-full min-w-0 rounded-3xl border border-border bg-card p-6 overflow-hidden"},te={class:"mt-4 border-t border-border pt-4"},ae={class:"dashboard-side w-full min-w-0 rounded-3xl border border-border bg-card p-6"},oe={class:"mt-6 space-y-4"},le={class:"flex items-center justify-between text-sm"},re={class:"flex items-center gap-2 text-muted-foreground"},se={class:"font-medium text-foreground"},ne={class:"h-2 w-full rounded-full bg-secondary"},ce=E({__name:"Dashboard",setup(ie){const s=i([{label:"账号总数",value:"0",caption:"账号池中已加载的总数量。"},{label:"活跃账号",value:"0",caption:"未过期、未禁用、未限流且可用。"},{label:"失败账号",value:"0",caption:"自动禁用或已过期,需要处理。"},{label:"限流账号",value:"0",caption:"触发 429 限流,冷却中。"}]),p=i([]),x=i([]),_=i([]),y=i([]),w=i({}),v=i(null),h=i(null);let r=null,n=null;const R=F(()=>{const e=Math.max(Number(s.value[0].value),1),t=Number(s.value[1].value),o=Number(s.value[2].value),d=Number(s.value[3].value),u=Math.max(e-t-o-d,0);return[{label:"活跃",value:t,percent:Math.round(t/e*100),barClass:"bg-emerald-500"},{label:"失败",value:o,percent:Math.round(o/e*100),barClass:"bg-destructive"},{label:"限流",value:d,percent:Math.round(d/e*100),barClass:"bg-amber-300"},{label:"空闲",tooltip:"未限流、未失败、未激活使用中的账号(主要是手动禁用)。",value:u,percent:Math.round(u/e*100),barClass:"bg-slate-300"}]});j(async()=>{await T(),q(),O(),window.addEventListener("resize",S)}),$(()=>{window.removeEventListener("resize",S),r&&(r.dispose(),r=null),n&&(n.dispose(),n=null)});function q(){const e=window.echarts;!e||!v.value||(r=e.init(v.value),C(),z())}function O(){const e=window.echarts;!e||!h.value||(n=e.init(h.value),g(),L())}function C(){if(!r)return;r.setOption({tooltip:{trigger:"axis"},legend:{data:["成功(总请求)","失败/限流"],right:0,top:0,textStyle:{color:"#6b6b6b",fontSize:11}},grid:{left:24,right:16,top:44,bottom:24,containLabel:!0},xAxis:{type:"category",data:y.value,boundaryGap:!1,axisLine:{lineStyle:{color:"#d4d4d4"}},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10},splitLine:{lineStyle:{color:"#e5e5e5"}}},series:[{name:"成功(总请求)",type:"line",data:_.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.25},itemStyle:{color:"#0ea5e9"},emphasis:{disabled:!0},z:1},{name:"失败/限流",type:"line",data:x.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.4},itemStyle:{color:"#ef4444"},emphasis:{disabled:!0},z:2}]}),z()}function g(){if(!n)return;const e=Object.entries(w.value).map(([l,f])=>({name:l,value:f.reduce((N,A)=>N+A,0),itemStyle:{color:D(l),borderRadius:8}})).filter(l=>l.value>0),t=window.innerWidth<768,o=t?{data:e.map(l=>l.name),left:"center",bottom:0,orient:"horizontal",textStyle:{color:"#6b6b6b",fontSize:11}}:{data:e.map(l=>l.name),left:0,top:"center",orient:"vertical",textStyle:{color:"#6b6b6b",fontSize:11}},d=t?["50%","38%"]:["66%","50%"],u=t?["40%","62%"]:["52%","78%"];n.setOption({animation:!0,animationDuration:600,animationEasing:"cubicOut",animationDurationUpdate:300,animationEasingUpdate:"cubicOut",tooltip:{trigger:"item",formatter:l=>`${l.name}: ${l.value} 次 (${l.percent}%)`},legend:o,series:[{type:"pie",radius:u,center:d,startAngle:90,animationType:"scale",animationEasing:"cubicOut",avoidLabelOverlap:!0,label:{show:!0,formatter:"{b}",fontSize:11,color:"#6b6b6b"},labelLine:{length:12,length2:10},itemStyle:{borderWidth:2,borderColor:"#fff",borderRadius:10},data:e}]}),L()}function S(){r&&r.resize(),n&&g()}async function T(){try{const e=await J.overview();s.value[0].value=(e.total_accounts??0).toString(),s.value[1].value=(e.active_accounts??0).toString(),s.value[2].value=(e.failed_accounts??0).toString(),s.value[3].value=(e.rate_limited_accounts??0).toString();const t=e.trend||{labels:[],total_requests:[],failed_requests:[],rate_limited_requests:[]};y.value=t.labels||[],p.value=t.total_requests||[];const o=t.failed_requests||[],d=t.rate_limited_requests||[],u=p.value.map((l,f)=>(o[f]||0)+(d[f]||0));x.value=u,_.value=p.value.map(l=>Math.max(l,0)),w.value=t.model_requests||{},C(),g()}catch(e){console.error("Failed to load overview:",e)}}function z(){r&&requestAnimationFrame(()=>{r?.resize()})}function L(){n&&requestAnimationFrame(()=>{n?.resize()})}function D(e){return{"gemini-3-pro-preview":"#0ea5e9","gemini-2.5-pro":"#22c55e","gemini-2.5-flash":"#f59e0b","gemini-3-flash-preview":"#ec4899","gemini-auto":"#64748b"}[e]||"#94a3b8"}return(e,t)=>(c(),m("div",K,[a("section",P,[(c(!0),m(M,null,k(s.value,o=>(c(),m("div",{key:o.label,class:"rounded-3xl border border-border bg-card p-6"},[a("p",Q,b(o.label),1),a("p",X,b(o.value),1),a("p",Y,b(o.caption),1)]))),128))]),a("section",Z,[a("div",ee,[t[1]||(t[1]=a("div",{class:"flex items-center justify-between"},[a("p",{class:"text-sm font-medium text-foreground"},"调用趋势(近12小时)")],-1)),a("div",{ref_key:"trendChartRef",ref:v,class:"mt-6 h-64 w-full max-w-full lg:h-72"},null,512),a("div",te,[t[0]||(t[0]=a("p",{class:"text-sm font-medium text-foreground"},"模型调用分布(近12小时)",-1)),a("div",{ref_key:"modelChartRef",ref:h,class:"mt-4 h-80 w-full max-w-full lg:h-64"},null,512)])]),a("div",ae,[t[2]||(t[2]=a("p",{class:"text-sm font-medium text-foreground"},"账号健康",-1)),a("div",oe,[(c(!0),m(M,null,k(R.value,o=>(c(),m("div",{key:o.label,class:"space-y-2"},[a("div",le,[a("span",re,[U(b(o.label)+" ",1),o.tooltip?(c(),V(I,{key:0,text:o.tooltip},null,8,["text"])):W("",!0)]),a("span",se,b(o.value),1)]),a("div",ne,[a("div",{class:H(["h-2 rounded-full",o.barClass]),style:G({width:o.percent+"%"})},null,6)])]))),128))]),t[3]||(t[3]=a("div",{class:"mt-6 rounded-2xl border border-border bg-secondary/50 p-4 text-xs text-muted-foreground"}," 建议及时处理失败或过期账号,避免影响轮询效率。 ",-1))])])]))}});export{ce as default}; diff --git a/static/assets/Dashboard-BhMzfqb7.js b/static/assets/Dashboard-BhMzfqb7.js new file mode 100644 index 0000000000000000000000000000000000000000..bdc8a494f72c3a2ed03cf6ce7af1e4ed1a1b0f32 --- /dev/null +++ b/static/assets/Dashboard-BhMzfqb7.js @@ -0,0 +1 @@ +import{g as B,d as E,h as i,i as F,o as j,j as $,c as m,a,F as M,r as k,t as b,f as U,y as V,b as W,k as G,n as H,e as c}from"./index-C9KL0lrc.js";import{_ as I}from"./HelpTip.vue_vue_type_script_setup_true_lang-q6qcDogV.js";const J={overview(){return B.get("/admin/stats")}},K={class:"space-y-8"},P={class:"grid grid-cols-2 gap-4 md:grid-cols-2 xl:grid-cols-4"},Q={class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},X={class:"mt-4 text-3xl font-semibold text-foreground"},Y={class:"mt-2 text-xs text-muted-foreground"},Z={class:"dashboard-split flex w-full flex-col gap-6"},ee={class:"dashboard-main w-full min-w-0 rounded-3xl border border-border bg-card p-6 overflow-hidden"},te={class:"mt-4 border-t border-border pt-4"},ae={class:"dashboard-side w-full min-w-0 rounded-3xl border border-border bg-card p-6"},oe={class:"mt-6 space-y-4"},le={class:"flex items-center justify-between text-sm"},re={class:"flex items-center gap-2 text-muted-foreground"},se={class:"font-medium text-foreground"},ne={class:"h-2 w-full rounded-full bg-secondary"},ce=E({__name:"Dashboard",setup(ie){const s=i([{label:"账号总数",value:"0",caption:"账号池中已加载的总数量。"},{label:"活跃账号",value:"0",caption:"未过期、未禁用、未限流且可用。"},{label:"失败账号",value:"0",caption:"自动禁用或已过期,需要处理。"},{label:"限流账号",value:"0",caption:"触发 429 限流,冷却中。"}]),p=i([]),x=i([]),_=i([]),y=i([]),w=i({}),v=i(null),h=i(null);let r=null,n=null;const R=F(()=>{const e=Math.max(Number(s.value[0].value),1),t=Number(s.value[1].value),o=Number(s.value[2].value),d=Number(s.value[3].value),u=Math.max(e-t-o-d,0);return[{label:"活跃",value:t,percent:Math.round(t/e*100),barClass:"bg-emerald-500"},{label:"失败",value:o,percent:Math.round(o/e*100),barClass:"bg-destructive"},{label:"限流",value:d,percent:Math.round(d/e*100),barClass:"bg-amber-300"},{label:"空闲",tooltip:"未限流、未失败、未激活使用中的账号(主要是手动禁用)。",value:u,percent:Math.round(u/e*100),barClass:"bg-slate-300"}]});j(async()=>{await T(),q(),O(),window.addEventListener("resize",S)}),$(()=>{window.removeEventListener("resize",S),r&&(r.dispose(),r=null),n&&(n.dispose(),n=null)});function q(){const e=window.echarts;!e||!v.value||(r=e.init(v.value),C(),z())}function O(){const e=window.echarts;!e||!h.value||(n=e.init(h.value),g(),L())}function C(){if(!r)return;r.setOption({tooltip:{trigger:"axis"},legend:{data:["成功(总请求)","失败/限流"],right:0,top:0,textStyle:{color:"#6b6b6b",fontSize:11}},grid:{left:24,right:16,top:44,bottom:24,containLabel:!0},xAxis:{type:"category",data:y.value,boundaryGap:!1,axisLine:{lineStyle:{color:"#d4d4d4"}},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10},splitLine:{lineStyle:{color:"#e5e5e5"}}},series:[{name:"成功(总请求)",type:"line",data:_.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.25},itemStyle:{color:"#0ea5e9"},emphasis:{disabled:!0},z:1},{name:"失败/限流",type:"line",data:x.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.4},itemStyle:{color:"#ef4444"},emphasis:{disabled:!0},z:2}]}),z()}function g(){if(!n)return;const e=Object.entries(w.value).map(([l,f])=>({name:l,value:f.reduce((N,A)=>N+A,0),itemStyle:{color:D(l),borderRadius:8}})).filter(l=>l.value>0),t=window.innerWidth<768,o=t?{data:e.map(l=>l.name),left:"center",bottom:0,orient:"horizontal",textStyle:{color:"#6b6b6b",fontSize:11}}:{data:e.map(l=>l.name),left:0,top:"center",orient:"vertical",textStyle:{color:"#6b6b6b",fontSize:11}},d=t?["50%","38%"]:["66%","50%"],u=t?["40%","62%"]:["52%","78%"];n.setOption({animation:!0,animationDuration:600,animationEasing:"cubicOut",animationDurationUpdate:300,animationEasingUpdate:"cubicOut",tooltip:{trigger:"item",formatter:l=>`${l.name}: ${l.value} 次 (${l.percent}%)`},legend:o,series:[{type:"pie",radius:u,center:d,startAngle:90,animationType:"scale",animationEasing:"cubicOut",avoidLabelOverlap:!0,label:{show:!0,formatter:"{b}",fontSize:11,color:"#6b6b6b"},labelLine:{length:12,length2:10},itemStyle:{borderWidth:2,borderColor:"#fff",borderRadius:10},data:e}]}),L()}function S(){r&&r.resize(),n&&g()}async function T(){try{const e=await J.overview();s.value[0].value=(e.total_accounts??0).toString(),s.value[1].value=(e.active_accounts??0).toString(),s.value[2].value=(e.failed_accounts??0).toString(),s.value[3].value=(e.rate_limited_accounts??0).toString();const t=e.trend||{labels:[],total_requests:[],failed_requests:[],rate_limited_requests:[]};y.value=t.labels||[],p.value=t.total_requests||[];const o=t.failed_requests||[],d=t.rate_limited_requests||[],u=p.value.map((l,f)=>(o[f]||0)+(d[f]||0));x.value=u,_.value=p.value.map(l=>Math.max(l,0)),w.value=t.model_requests||{},C(),g()}catch(e){console.error("Failed to load overview:",e)}}function z(){r&&requestAnimationFrame(()=>{r?.resize()})}function L(){n&&requestAnimationFrame(()=>{n?.resize()})}function D(e){return{"gemini-3-pro-preview":"#0ea5e9","gemini-2.5-pro":"#22c55e","gemini-2.5-flash":"#f59e0b","gemini-3-flash-preview":"#ec4899","gemini-auto":"#64748b"}[e]||"#94a3b8"}return(e,t)=>(c(),m("div",K,[a("section",P,[(c(!0),m(M,null,k(s.value,o=>(c(),m("div",{key:o.label,class:"rounded-3xl border border-border bg-card p-6"},[a("p",Q,b(o.label),1),a("p",X,b(o.value),1),a("p",Y,b(o.caption),1)]))),128))]),a("section",Z,[a("div",ee,[t[1]||(t[1]=a("div",{class:"flex items-center justify-between"},[a("p",{class:"text-sm font-medium text-foreground"},"调用趋势(近12小时)")],-1)),a("div",{ref_key:"trendChartRef",ref:v,class:"mt-6 h-64 w-full max-w-full lg:h-72"},null,512),a("div",te,[t[0]||(t[0]=a("p",{class:"text-sm font-medium text-foreground"},"模型调用分布(近12小时)",-1)),a("div",{ref_key:"modelChartRef",ref:h,class:"mt-4 h-80 w-full max-w-full lg:h-64"},null,512)])]),a("div",ae,[t[2]||(t[2]=a("p",{class:"text-sm font-medium text-foreground"},"账号健康",-1)),a("div",oe,[(c(!0),m(M,null,k(R.value,o=>(c(),m("div",{key:o.label,class:"space-y-2"},[a("div",le,[a("span",re,[U(b(o.label)+" ",1),o.tooltip?(c(),V(I,{key:0,text:o.tooltip},null,8,["text"])):W("",!0)]),a("span",se,b(o.value),1)]),a("div",ne,[a("div",{class:H(["h-2 rounded-full",o.barClass]),style:G({width:o.percent+"%"})},null,6)])]))),128))]),t[3]||(t[3]=a("div",{class:"mt-6 rounded-2xl border border-border bg-secondary/50 p-4 text-xs text-muted-foreground"}," 建议及时处理失败或过期账号,避免影响轮询效率。 ",-1))])])]))}});export{ce as default}; diff --git a/static/assets/Dashboard-BvLH4lOG.js b/static/assets/Dashboard-BvLH4lOG.js new file mode 100644 index 0000000000000000000000000000000000000000..97fa8d922ec17f565d5c28506c9813fad4d35834 --- /dev/null +++ b/static/assets/Dashboard-BvLH4lOG.js @@ -0,0 +1 @@ +import{g as B,d as E,h as i,i as F,o as j,j as $,c as m,a,F as M,r as k,t as b,f as U,y as V,b as W,k as G,n as H,e as c}from"./index-C7QtVLks.js";import{_ as I}from"./HelpTip.vue_vue_type_script_setup_true_lang-C9YlQcyS.js";const J={overview(){return B.get("/admin/stats")}},K={class:"space-y-8"},P={class:"grid grid-cols-2 gap-4 md:grid-cols-2 xl:grid-cols-4"},Q={class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},X={class:"mt-4 text-3xl font-semibold text-foreground"},Y={class:"mt-2 text-xs text-muted-foreground"},Z={class:"dashboard-split flex w-full flex-col gap-6"},ee={class:"dashboard-main w-full min-w-0 rounded-3xl border border-border bg-card p-6 overflow-hidden"},te={class:"mt-4 border-t border-border pt-4"},ae={class:"dashboard-side w-full min-w-0 rounded-3xl border border-border bg-card p-6"},oe={class:"mt-6 space-y-4"},le={class:"flex items-center justify-between text-sm"},re={class:"flex items-center gap-2 text-muted-foreground"},se={class:"font-medium text-foreground"},ne={class:"h-2 w-full rounded-full bg-secondary"},ce=E({__name:"Dashboard",setup(ie){const s=i([{label:"账号总数",value:"0",caption:"账号池中已加载的总数量。"},{label:"活跃账号",value:"0",caption:"未过期、未禁用、未限流且可用。"},{label:"失败账号",value:"0",caption:"自动禁用或已过期,需要处理。"},{label:"限流账号",value:"0",caption:"触发 429 限流,冷却中。"}]),p=i([]),x=i([]),_=i([]),y=i([]),w=i({}),v=i(null),h=i(null);let r=null,n=null;const R=F(()=>{const e=Math.max(Number(s.value[0].value),1),t=Number(s.value[1].value),o=Number(s.value[2].value),d=Number(s.value[3].value),u=Math.max(e-t-o-d,0);return[{label:"活跃",value:t,percent:Math.round(t/e*100),barClass:"bg-emerald-500"},{label:"失败",value:o,percent:Math.round(o/e*100),barClass:"bg-destructive"},{label:"限流",value:d,percent:Math.round(d/e*100),barClass:"bg-amber-300"},{label:"空闲",tooltip:"未限流、未失败、未激活使用中的账号(主要是手动禁用)。",value:u,percent:Math.round(u/e*100),barClass:"bg-slate-300"}]});j(async()=>{await T(),q(),O(),window.addEventListener("resize",S)}),$(()=>{window.removeEventListener("resize",S),r&&(r.dispose(),r=null),n&&(n.dispose(),n=null)});function q(){const e=window.echarts;!e||!v.value||(r=e.init(v.value),C(),z())}function O(){const e=window.echarts;!e||!h.value||(n=e.init(h.value),g(),L())}function C(){if(!r)return;r.setOption({tooltip:{trigger:"axis"},legend:{data:["成功(总请求)","失败/限流"],right:0,top:0,textStyle:{color:"#6b6b6b",fontSize:11}},grid:{left:24,right:16,top:44,bottom:24,containLabel:!0},xAxis:{type:"category",data:y.value,boundaryGap:!1,axisLine:{lineStyle:{color:"#d4d4d4"}},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10},splitLine:{lineStyle:{color:"#e5e5e5"}}},series:[{name:"成功(总请求)",type:"line",data:_.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.25},itemStyle:{color:"#0ea5e9"},emphasis:{disabled:!0},z:1},{name:"失败/限流",type:"line",data:x.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.4},itemStyle:{color:"#ef4444"},emphasis:{disabled:!0},z:2}]}),z()}function g(){if(!n)return;const e=Object.entries(w.value).map(([l,f])=>({name:l,value:f.reduce((N,A)=>N+A,0),itemStyle:{color:D(l),borderRadius:8}})).filter(l=>l.value>0),t=window.innerWidth<768,o=t?{data:e.map(l=>l.name),left:"center",bottom:0,orient:"horizontal",textStyle:{color:"#6b6b6b",fontSize:11}}:{data:e.map(l=>l.name),left:0,top:"center",orient:"vertical",textStyle:{color:"#6b6b6b",fontSize:11}},d=t?["50%","38%"]:["66%","50%"],u=t?["40%","62%"]:["52%","78%"];n.setOption({animation:!0,animationDuration:600,animationEasing:"cubicOut",animationDurationUpdate:300,animationEasingUpdate:"cubicOut",tooltip:{trigger:"item",formatter:l=>`${l.name}: ${l.value} 次 (${l.percent}%)`},legend:o,series:[{type:"pie",radius:u,center:d,startAngle:90,animationType:"scale",animationEasing:"cubicOut",avoidLabelOverlap:!0,label:{show:!0,formatter:"{b}",fontSize:11,color:"#6b6b6b"},labelLine:{length:12,length2:10},itemStyle:{borderWidth:2,borderColor:"#fff",borderRadius:10},data:e}]}),L()}function S(){r&&r.resize(),n&&g()}async function T(){try{const e=await J.overview();s.value[0].value=(e.total_accounts??0).toString(),s.value[1].value=(e.active_accounts??0).toString(),s.value[2].value=(e.failed_accounts??0).toString(),s.value[3].value=(e.rate_limited_accounts??0).toString();const t=e.trend||{labels:[],total_requests:[],failed_requests:[],rate_limited_requests:[]};y.value=t.labels||[],p.value=t.total_requests||[];const o=t.failed_requests||[],d=t.rate_limited_requests||[],u=p.value.map((l,f)=>(o[f]||0)+(d[f]||0));x.value=u,_.value=p.value.map(l=>Math.max(l,0)),w.value=t.model_requests||{},C(),g()}catch(e){console.error("Failed to load overview:",e)}}function z(){r&&requestAnimationFrame(()=>{r?.resize()})}function L(){n&&requestAnimationFrame(()=>{n?.resize()})}function D(e){return{"gemini-3-pro-preview":"#0ea5e9","gemini-2.5-pro":"#22c55e","gemini-2.5-flash":"#f59e0b","gemini-3-flash-preview":"#ec4899","gemini-auto":"#64748b"}[e]||"#94a3b8"}return(e,t)=>(c(),m("div",K,[a("section",P,[(c(!0),m(M,null,k(s.value,o=>(c(),m("div",{key:o.label,class:"rounded-3xl border border-border bg-card p-6"},[a("p",Q,b(o.label),1),a("p",X,b(o.value),1),a("p",Y,b(o.caption),1)]))),128))]),a("section",Z,[a("div",ee,[t[1]||(t[1]=a("div",{class:"flex items-center justify-between"},[a("p",{class:"text-sm font-medium text-foreground"},"调用趋势(近12小时)")],-1)),a("div",{ref_key:"trendChartRef",ref:v,class:"mt-6 h-64 w-full max-w-full lg:h-72"},null,512),a("div",te,[t[0]||(t[0]=a("p",{class:"text-sm font-medium text-foreground"},"模型调用分布(近12小时)",-1)),a("div",{ref_key:"modelChartRef",ref:h,class:"mt-4 h-80 w-full max-w-full lg:h-64"},null,512)])]),a("div",ae,[t[2]||(t[2]=a("p",{class:"text-sm font-medium text-foreground"},"账号健康",-1)),a("div",oe,[(c(!0),m(M,null,k(R.value,o=>(c(),m("div",{key:o.label,class:"space-y-2"},[a("div",le,[a("span",re,[U(b(o.label)+" ",1),o.tooltip?(c(),V(I,{key:0,text:o.tooltip},null,8,["text"])):W("",!0)]),a("span",se,b(o.value),1)]),a("div",ne,[a("div",{class:H(["h-2 rounded-full",o.barClass]),style:G({width:o.percent+"%"})},null,6)])]))),128))]),t[3]||(t[3]=a("div",{class:"mt-6 rounded-2xl border border-border bg-secondary/50 p-4 text-xs text-muted-foreground"}," 建议及时处理失败或过期账号,避免影响轮询效率。 ",-1))])])]))}});export{ce as default}; diff --git a/static/assets/Dashboard-C7wgWPRX.js b/static/assets/Dashboard-C7wgWPRX.js new file mode 100644 index 0000000000000000000000000000000000000000..7bca6b775a9e95f4cfaed584cb75d678eae14b54 --- /dev/null +++ b/static/assets/Dashboard-C7wgWPRX.js @@ -0,0 +1 @@ +import{g as B,d as E,h as i,i as F,o as j,j as $,c as m,a,F as M,r as k,t as b,f as U,y as V,b as W,k as G,n as H,e as c}from"./index-B0A0-QFY.js";import{_ as I}from"./HelpTip.vue_vue_type_script_setup_true_lang-BwK5Fa3C.js";const J={overview(){return B.get("/admin/stats")}},K={class:"space-y-8"},P={class:"grid grid-cols-2 gap-4 md:grid-cols-2 xl:grid-cols-4"},Q={class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},X={class:"mt-4 text-3xl font-semibold text-foreground"},Y={class:"mt-2 text-xs text-muted-foreground"},Z={class:"dashboard-split flex w-full flex-col gap-6"},ee={class:"dashboard-main w-full min-w-0 rounded-3xl border border-border bg-card p-6 overflow-hidden"},te={class:"mt-4 border-t border-border pt-4"},ae={class:"dashboard-side w-full min-w-0 rounded-3xl border border-border bg-card p-6"},oe={class:"mt-6 space-y-4"},le={class:"flex items-center justify-between text-sm"},re={class:"flex items-center gap-2 text-muted-foreground"},se={class:"font-medium text-foreground"},ne={class:"h-2 w-full rounded-full bg-secondary"},ce=E({__name:"Dashboard",setup(ie){const s=i([{label:"账号总数",value:"0",caption:"账号池中已加载的总数量。"},{label:"活跃账号",value:"0",caption:"未过期、未禁用、未限流且可用。"},{label:"失败账号",value:"0",caption:"自动禁用或已过期,需要处理。"},{label:"限流账号",value:"0",caption:"触发 429 限流,冷却中。"}]),p=i([]),x=i([]),_=i([]),y=i([]),w=i({}),v=i(null),h=i(null);let r=null,n=null;const R=F(()=>{const e=Math.max(Number(s.value[0].value),1),t=Number(s.value[1].value),o=Number(s.value[2].value),d=Number(s.value[3].value),u=Math.max(e-t-o-d,0);return[{label:"活跃",value:t,percent:Math.round(t/e*100),barClass:"bg-emerald-500"},{label:"失败",value:o,percent:Math.round(o/e*100),barClass:"bg-destructive"},{label:"限流",value:d,percent:Math.round(d/e*100),barClass:"bg-amber-300"},{label:"空闲",tooltip:"未限流、未失败、未激活使用中的账号(主要是手动禁用)。",value:u,percent:Math.round(u/e*100),barClass:"bg-slate-300"}]});j(async()=>{await T(),q(),O(),window.addEventListener("resize",S)}),$(()=>{window.removeEventListener("resize",S),r&&(r.dispose(),r=null),n&&(n.dispose(),n=null)});function q(){const e=window.echarts;!e||!v.value||(r=e.init(v.value),C(),z())}function O(){const e=window.echarts;!e||!h.value||(n=e.init(h.value),g(),L())}function C(){if(!r)return;r.setOption({tooltip:{trigger:"axis"},legend:{data:["成功(总请求)","失败/限流"],right:0,top:0,textStyle:{color:"#6b6b6b",fontSize:11}},grid:{left:24,right:16,top:44,bottom:24,containLabel:!0},xAxis:{type:"category",data:y.value,boundaryGap:!1,axisLine:{lineStyle:{color:"#d4d4d4"}},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10},splitLine:{lineStyle:{color:"#e5e5e5"}}},series:[{name:"成功(总请求)",type:"line",data:_.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.25},itemStyle:{color:"#0ea5e9"},emphasis:{disabled:!0},z:1},{name:"失败/限流",type:"line",data:x.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.4},itemStyle:{color:"#ef4444"},emphasis:{disabled:!0},z:2}]}),z()}function g(){if(!n)return;const e=Object.entries(w.value).map(([l,f])=>({name:l,value:f.reduce((N,A)=>N+A,0),itemStyle:{color:D(l),borderRadius:8}})).filter(l=>l.value>0),t=window.innerWidth<768,o=t?{data:e.map(l=>l.name),left:"center",bottom:0,orient:"horizontal",textStyle:{color:"#6b6b6b",fontSize:11}}:{data:e.map(l=>l.name),left:0,top:"center",orient:"vertical",textStyle:{color:"#6b6b6b",fontSize:11}},d=t?["50%","38%"]:["66%","50%"],u=t?["40%","62%"]:["52%","78%"];n.setOption({animation:!0,animationDuration:600,animationEasing:"cubicOut",animationDurationUpdate:300,animationEasingUpdate:"cubicOut",tooltip:{trigger:"item",formatter:l=>`${l.name}: ${l.value} 次 (${l.percent}%)`},legend:o,series:[{type:"pie",radius:u,center:d,startAngle:90,animationType:"scale",animationEasing:"cubicOut",avoidLabelOverlap:!0,label:{show:!0,formatter:"{b}",fontSize:11,color:"#6b6b6b"},labelLine:{length:12,length2:10},itemStyle:{borderWidth:2,borderColor:"#fff",borderRadius:10},data:e}]}),L()}function S(){r&&r.resize(),n&&g()}async function T(){try{const e=await J.overview();s.value[0].value=(e.total_accounts??0).toString(),s.value[1].value=(e.active_accounts??0).toString(),s.value[2].value=(e.failed_accounts??0).toString(),s.value[3].value=(e.rate_limited_accounts??0).toString();const t=e.trend||{labels:[],total_requests:[],failed_requests:[],rate_limited_requests:[]};y.value=t.labels||[],p.value=t.total_requests||[];const o=t.failed_requests||[],d=t.rate_limited_requests||[],u=p.value.map((l,f)=>(o[f]||0)+(d[f]||0));x.value=u,_.value=p.value.map(l=>Math.max(l,0)),w.value=t.model_requests||{},C(),g()}catch(e){console.error("Failed to load overview:",e)}}function z(){r&&requestAnimationFrame(()=>{r?.resize()})}function L(){n&&requestAnimationFrame(()=>{n?.resize()})}function D(e){return{"gemini-3-pro-preview":"#0ea5e9","gemini-2.5-pro":"#22c55e","gemini-2.5-flash":"#f59e0b","gemini-3-flash-preview":"#ec4899","gemini-auto":"#64748b"}[e]||"#94a3b8"}return(e,t)=>(c(),m("div",K,[a("section",P,[(c(!0),m(M,null,k(s.value,o=>(c(),m("div",{key:o.label,class:"rounded-3xl border border-border bg-card p-6"},[a("p",Q,b(o.label),1),a("p",X,b(o.value),1),a("p",Y,b(o.caption),1)]))),128))]),a("section",Z,[a("div",ee,[t[1]||(t[1]=a("div",{class:"flex items-center justify-between"},[a("p",{class:"text-sm font-medium text-foreground"},"调用趋势(近12小时)")],-1)),a("div",{ref_key:"trendChartRef",ref:v,class:"mt-6 h-64 w-full max-w-full lg:h-72"},null,512),a("div",te,[t[0]||(t[0]=a("p",{class:"text-sm font-medium text-foreground"},"模型调用分布(近12小时)",-1)),a("div",{ref_key:"modelChartRef",ref:h,class:"mt-4 h-80 w-full max-w-full lg:h-64"},null,512)])]),a("div",ae,[t[2]||(t[2]=a("p",{class:"text-sm font-medium text-foreground"},"账号健康",-1)),a("div",oe,[(c(!0),m(M,null,k(R.value,o=>(c(),m("div",{key:o.label,class:"space-y-2"},[a("div",le,[a("span",re,[U(b(o.label)+" ",1),o.tooltip?(c(),V(I,{key:0,text:o.tooltip},null,8,["text"])):W("",!0)]),a("span",se,b(o.value),1)]),a("div",ne,[a("div",{class:H(["h-2 rounded-full",o.barClass]),style:G({width:o.percent+"%"})},null,6)])]))),128))]),t[3]||(t[3]=a("div",{class:"mt-6 rounded-2xl border border-border bg-secondary/50 p-4 text-xs text-muted-foreground"}," 建议及时处理失败或过期账号,避免影响轮询效率。 ",-1))])])]))}});export{ce as default}; diff --git a/static/assets/Dashboard-CHnH24wI.js b/static/assets/Dashboard-CHnH24wI.js new file mode 100644 index 0000000000000000000000000000000000000000..5542f94f5132229a900d4aaef2eeb674999c69dc --- /dev/null +++ b/static/assets/Dashboard-CHnH24wI.js @@ -0,0 +1 @@ +import{g as B,d as E,h as i,i as F,o as j,j as $,c as m,a,F as M,r as k,t as b,f as U,m as V,b as W,k as G,n as H,e as c}from"./index-OP3F9IRB.js";import{_ as I}from"./HelpTip.vue_vue_type_script_setup_true_lang-CpmAUbfQ.js";const J={overview(){return B.get("/admin/stats")}},K={class:"space-y-8"},P={class:"grid grid-cols-2 gap-4 md:grid-cols-2 xl:grid-cols-4"},Q={class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},X={class:"mt-4 text-3xl font-semibold text-foreground"},Y={class:"mt-2 text-xs text-muted-foreground"},Z={class:"dashboard-split flex w-full flex-col gap-6"},ee={class:"dashboard-main w-full min-w-0 rounded-3xl border border-border bg-card p-6 overflow-hidden"},te={class:"mt-4 border-t border-border pt-4"},ae={class:"dashboard-side w-full min-w-0 rounded-3xl border border-border bg-card p-6"},oe={class:"mt-6 space-y-4"},le={class:"flex items-center justify-between text-sm"},re={class:"flex items-center gap-2 text-muted-foreground"},se={class:"font-medium text-foreground"},ne={class:"h-2 w-full rounded-full bg-secondary"},ce=E({__name:"Dashboard",setup(ie){const s=i([{label:"账号总数",value:"0",caption:"账号池中已加载的总数量。"},{label:"活跃账号",value:"0",caption:"未过期、未禁用、未限流且可用。"},{label:"失败账号",value:"0",caption:"自动禁用或已过期,需要处理。"},{label:"限流账号",value:"0",caption:"触发 429 限流,冷却中。"}]),p=i([]),x=i([]),_=i([]),y=i([]),w=i({}),v=i(null),h=i(null);let r=null,n=null;const R=F(()=>{const e=Math.max(Number(s.value[0].value),1),t=Number(s.value[1].value),o=Number(s.value[2].value),d=Number(s.value[3].value),u=Math.max(e-t-o-d,0);return[{label:"活跃",value:t,percent:Math.round(t/e*100),barClass:"bg-emerald-500"},{label:"失败",value:o,percent:Math.round(o/e*100),barClass:"bg-destructive"},{label:"限流",value:d,percent:Math.round(d/e*100),barClass:"bg-amber-300"},{label:"空闲",tooltip:"未限流、未失败、未激活使用中的账号(主要是手动禁用)。",value:u,percent:Math.round(u/e*100),barClass:"bg-slate-300"}]});j(async()=>{await T(),q(),O(),window.addEventListener("resize",S)}),$(()=>{window.removeEventListener("resize",S),r&&(r.dispose(),r=null),n&&(n.dispose(),n=null)});function q(){const e=window.echarts;!e||!v.value||(r=e.init(v.value),C(),z())}function O(){const e=window.echarts;!e||!h.value||(n=e.init(h.value),g(),L())}function C(){if(!r)return;r.setOption({tooltip:{trigger:"axis"},legend:{data:["成功(总请求)","失败/限流"],right:0,top:0,textStyle:{color:"#6b6b6b",fontSize:11}},grid:{left:24,right:16,top:44,bottom:24,containLabel:!0},xAxis:{type:"category",data:y.value,boundaryGap:!1,axisLine:{lineStyle:{color:"#d4d4d4"}},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10},splitLine:{lineStyle:{color:"#e5e5e5"}}},series:[{name:"成功(总请求)",type:"line",data:_.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.25},itemStyle:{color:"#0ea5e9"},emphasis:{disabled:!0},z:1},{name:"失败/限流",type:"line",data:x.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.4},itemStyle:{color:"#ef4444"},emphasis:{disabled:!0},z:2}]}),z()}function g(){if(!n)return;const e=Object.entries(w.value).map(([l,f])=>({name:l,value:f.reduce((N,A)=>N+A,0),itemStyle:{color:D(l),borderRadius:8}})).filter(l=>l.value>0),t=window.innerWidth<768,o=t?{data:e.map(l=>l.name),left:"center",bottom:0,orient:"horizontal",textStyle:{color:"#6b6b6b",fontSize:11}}:{data:e.map(l=>l.name),left:0,top:"center",orient:"vertical",textStyle:{color:"#6b6b6b",fontSize:11}},d=t?["50%","38%"]:["66%","50%"],u=t?["40%","62%"]:["52%","78%"];n.setOption({animation:!0,animationDuration:600,animationEasing:"cubicOut",animationDurationUpdate:300,animationEasingUpdate:"cubicOut",tooltip:{trigger:"item",formatter:l=>`${l.name}: ${l.value} 次 (${l.percent}%)`},legend:o,series:[{type:"pie",radius:u,center:d,startAngle:90,animationType:"scale",animationEasing:"cubicOut",avoidLabelOverlap:!0,label:{show:!0,formatter:"{b}",fontSize:11,color:"#6b6b6b"},labelLine:{length:12,length2:10},itemStyle:{borderWidth:2,borderColor:"#fff",borderRadius:10},data:e}]}),L()}function S(){r&&r.resize(),n&&g()}async function T(){try{const e=await J.overview();s.value[0].value=(e.total_accounts??0).toString(),s.value[1].value=(e.active_accounts??0).toString(),s.value[2].value=(e.failed_accounts??0).toString(),s.value[3].value=(e.rate_limited_accounts??0).toString();const t=e.trend||{labels:[],total_requests:[],failed_requests:[],rate_limited_requests:[]};y.value=t.labels||[],p.value=t.total_requests||[];const o=t.failed_requests||[],d=t.rate_limited_requests||[],u=p.value.map((l,f)=>(o[f]||0)+(d[f]||0));x.value=u,_.value=p.value.map(l=>Math.max(l,0)),w.value=t.model_requests||{},C(),g()}catch(e){console.error("Failed to load overview:",e)}}function z(){r&&requestAnimationFrame(()=>{r?.resize()})}function L(){n&&requestAnimationFrame(()=>{n?.resize()})}function D(e){return{"gemini-3-pro-preview":"#0ea5e9","gemini-2.5-pro":"#22c55e","gemini-2.5-flash":"#f59e0b","gemini-3-flash-preview":"#ec4899","gemini-auto":"#64748b"}[e]||"#94a3b8"}return(e,t)=>(c(),m("div",K,[a("section",P,[(c(!0),m(M,null,k(s.value,o=>(c(),m("div",{key:o.label,class:"rounded-3xl border border-border bg-card p-6"},[a("p",Q,b(o.label),1),a("p",X,b(o.value),1),a("p",Y,b(o.caption),1)]))),128))]),a("section",Z,[a("div",ee,[t[1]||(t[1]=a("div",{class:"flex items-center justify-between"},[a("p",{class:"text-sm font-medium text-foreground"},"调用趋势(近12小时)")],-1)),a("div",{ref_key:"trendChartRef",ref:v,class:"mt-6 h-64 w-full max-w-full lg:h-72"},null,512),a("div",te,[t[0]||(t[0]=a("p",{class:"text-sm font-medium text-foreground"},"模型调用分布(近12小时)",-1)),a("div",{ref_key:"modelChartRef",ref:h,class:"mt-4 h-80 w-full max-w-full lg:h-64"},null,512)])]),a("div",ae,[t[2]||(t[2]=a("p",{class:"text-sm font-medium text-foreground"},"账号健康",-1)),a("div",oe,[(c(!0),m(M,null,k(R.value,o=>(c(),m("div",{key:o.label,class:"space-y-2"},[a("div",le,[a("span",re,[U(b(o.label)+" ",1),o.tooltip?(c(),V(I,{key:0,text:o.tooltip},null,8,["text"])):W("",!0)]),a("span",se,b(o.value),1)]),a("div",ne,[a("div",{class:H(["h-2 rounded-full",o.barClass]),style:G({width:o.percent+"%"})},null,6)])]))),128))]),t[3]||(t[3]=a("div",{class:"mt-6 rounded-2xl border border-border bg-secondary/50 p-4 text-xs text-muted-foreground"}," 建议及时处理失败或过期账号,避免影响轮询效率。 ",-1))])])]))}});export{ce as default}; diff --git a/static/assets/Dashboard-CMSCYbdT.js b/static/assets/Dashboard-CMSCYbdT.js new file mode 100644 index 0000000000000000000000000000000000000000..ba6695811da2959528d38d3946e4f3614da2875f --- /dev/null +++ b/static/assets/Dashboard-CMSCYbdT.js @@ -0,0 +1 @@ +import{g as B,d as E,h as i,i as F,o as j,j as $,c as m,a,F as M,r as k,t as b,f as U,m as V,b as W,k as G,n as H,e as c}from"./index-Dt-VnrHx.js";import{_ as I}from"./HelpTip.vue_vue_type_script_setup_true_lang-DV7kZRSO.js";const J={overview(){return B.get("/admin/stats")}},K={class:"space-y-8"},P={class:"grid grid-cols-2 gap-4 md:grid-cols-2 xl:grid-cols-4"},Q={class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},X={class:"mt-4 text-3xl font-semibold text-foreground"},Y={class:"mt-2 text-xs text-muted-foreground"},Z={class:"dashboard-split flex w-full flex-col gap-6"},ee={class:"dashboard-main w-full min-w-0 rounded-3xl border border-border bg-card p-6 overflow-hidden"},te={class:"mt-4 border-t border-border pt-4"},ae={class:"dashboard-side w-full min-w-0 rounded-3xl border border-border bg-card p-6"},oe={class:"mt-6 space-y-4"},le={class:"flex items-center justify-between text-sm"},re={class:"flex items-center gap-2 text-muted-foreground"},se={class:"font-medium text-foreground"},ne={class:"h-2 w-full rounded-full bg-secondary"},ce=E({__name:"Dashboard",setup(ie){const s=i([{label:"账号总数",value:"0",caption:"账号池中已加载的总数量。"},{label:"活跃账号",value:"0",caption:"未过期、未禁用、未限流且可用。"},{label:"失败账号",value:"0",caption:"自动禁用或已过期,需要处理。"},{label:"限流账号",value:"0",caption:"触发 429 限流,冷却中。"}]),p=i([]),x=i([]),_=i([]),y=i([]),w=i({}),v=i(null),h=i(null);let r=null,n=null;const R=F(()=>{const e=Math.max(Number(s.value[0].value),1),t=Number(s.value[1].value),o=Number(s.value[2].value),d=Number(s.value[3].value),u=Math.max(e-t-o-d,0);return[{label:"活跃",value:t,percent:Math.round(t/e*100),barClass:"bg-emerald-500"},{label:"失败",value:o,percent:Math.round(o/e*100),barClass:"bg-destructive"},{label:"限流",value:d,percent:Math.round(d/e*100),barClass:"bg-amber-300"},{label:"空闲",tooltip:"未限流、未失败、未激活使用中的账号(主要是手动禁用)。",value:u,percent:Math.round(u/e*100),barClass:"bg-slate-300"}]});j(async()=>{await T(),q(),O(),window.addEventListener("resize",S)}),$(()=>{window.removeEventListener("resize",S),r&&(r.dispose(),r=null),n&&(n.dispose(),n=null)});function q(){const e=window.echarts;!e||!v.value||(r=e.init(v.value),C(),z())}function O(){const e=window.echarts;!e||!h.value||(n=e.init(h.value),g(),L())}function C(){if(!r)return;r.setOption({tooltip:{trigger:"axis"},legend:{data:["成功(总请求)","失败/限流"],right:0,top:0,textStyle:{color:"#6b6b6b",fontSize:11}},grid:{left:24,right:16,top:44,bottom:24,containLabel:!0},xAxis:{type:"category",data:y.value,boundaryGap:!1,axisLine:{lineStyle:{color:"#d4d4d4"}},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10},splitLine:{lineStyle:{color:"#e5e5e5"}}},series:[{name:"成功(总请求)",type:"line",data:_.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.25},itemStyle:{color:"#0ea5e9"},emphasis:{disabled:!0},z:1},{name:"失败/限流",type:"line",data:x.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.4},itemStyle:{color:"#ef4444"},emphasis:{disabled:!0},z:2}]}),z()}function g(){if(!n)return;const e=Object.entries(w.value).map(([l,f])=>({name:l,value:f.reduce((N,A)=>N+A,0),itemStyle:{color:D(l),borderRadius:8}})).filter(l=>l.value>0),t=window.innerWidth<768,o=t?{data:e.map(l=>l.name),left:"center",bottom:0,orient:"horizontal",textStyle:{color:"#6b6b6b",fontSize:11}}:{data:e.map(l=>l.name),left:0,top:"center",orient:"vertical",textStyle:{color:"#6b6b6b",fontSize:11}},d=t?["50%","38%"]:["66%","50%"],u=t?["40%","62%"]:["52%","78%"];n.setOption({animation:!0,animationDuration:600,animationEasing:"cubicOut",animationDurationUpdate:300,animationEasingUpdate:"cubicOut",tooltip:{trigger:"item",formatter:l=>`${l.name}: ${l.value} 次 (${l.percent}%)`},legend:o,series:[{type:"pie",radius:u,center:d,startAngle:90,animationType:"scale",animationEasing:"cubicOut",avoidLabelOverlap:!0,label:{show:!0,formatter:"{b}",fontSize:11,color:"#6b6b6b"},labelLine:{length:12,length2:10},itemStyle:{borderWidth:2,borderColor:"#fff",borderRadius:10},data:e}]}),L()}function S(){r&&r.resize(),n&&g()}async function T(){try{const e=await J.overview();s.value[0].value=(e.total_accounts??0).toString(),s.value[1].value=(e.active_accounts??0).toString(),s.value[2].value=(e.failed_accounts??0).toString(),s.value[3].value=(e.rate_limited_accounts??0).toString();const t=e.trend||{labels:[],total_requests:[],failed_requests:[],rate_limited_requests:[]};y.value=t.labels||[],p.value=t.total_requests||[];const o=t.failed_requests||[],d=t.rate_limited_requests||[],u=p.value.map((l,f)=>(o[f]||0)+(d[f]||0));x.value=u,_.value=p.value.map(l=>Math.max(l,0)),w.value=t.model_requests||{},C(),g()}catch(e){console.error("Failed to load overview:",e)}}function z(){r&&requestAnimationFrame(()=>{r?.resize()})}function L(){n&&requestAnimationFrame(()=>{n?.resize()})}function D(e){return{"gemini-3-pro-preview":"#0ea5e9","gemini-2.5-pro":"#22c55e","gemini-2.5-flash":"#f59e0b","gemini-3-flash-preview":"#ec4899","gemini-auto":"#64748b"}[e]||"#94a3b8"}return(e,t)=>(c(),m("div",K,[a("section",P,[(c(!0),m(M,null,k(s.value,o=>(c(),m("div",{key:o.label,class:"rounded-3xl border border-border bg-card p-6"},[a("p",Q,b(o.label),1),a("p",X,b(o.value),1),a("p",Y,b(o.caption),1)]))),128))]),a("section",Z,[a("div",ee,[t[1]||(t[1]=a("div",{class:"flex items-center justify-between"},[a("p",{class:"text-sm font-medium text-foreground"},"调用趋势(近12小时)")],-1)),a("div",{ref_key:"trendChartRef",ref:v,class:"mt-6 h-64 w-full max-w-full lg:h-72"},null,512),a("div",te,[t[0]||(t[0]=a("p",{class:"text-sm font-medium text-foreground"},"模型调用分布(近12小时)",-1)),a("div",{ref_key:"modelChartRef",ref:h,class:"mt-4 h-80 w-full max-w-full lg:h-64"},null,512)])]),a("div",ae,[t[2]||(t[2]=a("p",{class:"text-sm font-medium text-foreground"},"账号健康",-1)),a("div",oe,[(c(!0),m(M,null,k(R.value,o=>(c(),m("div",{key:o.label,class:"space-y-2"},[a("div",le,[a("span",re,[U(b(o.label)+" ",1),o.tooltip?(c(),V(I,{key:0,text:o.tooltip},null,8,["text"])):W("",!0)]),a("span",se,b(o.value),1)]),a("div",ne,[a("div",{class:H(["h-2 rounded-full",o.barClass]),style:G({width:o.percent+"%"})},null,6)])]))),128))]),t[3]||(t[3]=a("div",{class:"mt-6 rounded-2xl border border-border bg-secondary/50 p-4 text-xs text-muted-foreground"}," 建议及时处理失败或过期账号,避免影响轮询效率。 ",-1))])])]))}});export{ce as default}; diff --git a/static/assets/Dashboard-CSXehn29.js b/static/assets/Dashboard-CSXehn29.js new file mode 100644 index 0000000000000000000000000000000000000000..327698d1c2333465662b19622634d931941c98ae --- /dev/null +++ b/static/assets/Dashboard-CSXehn29.js @@ -0,0 +1 @@ +import{g as B,d as E,h as i,i as F,o as j,j as $,c as m,a,F as M,r as k,t as b,f as U,m as V,b as W,k as G,n as H,e as c}from"./index-JaBfp01b.js";import{_ as I}from"./HelpTip.vue_vue_type_script_setup_true_lang-DO1J64wx.js";const J={overview(){return B.get("/admin/stats")}},K={class:"space-y-8"},P={class:"grid grid-cols-2 gap-4 md:grid-cols-2 xl:grid-cols-4"},Q={class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},X={class:"mt-4 text-3xl font-semibold text-foreground"},Y={class:"mt-2 text-xs text-muted-foreground"},Z={class:"dashboard-split flex w-full flex-col gap-6"},ee={class:"dashboard-main w-full min-w-0 rounded-3xl border border-border bg-card p-6 overflow-hidden"},te={class:"mt-4 border-t border-border pt-4"},ae={class:"dashboard-side w-full min-w-0 rounded-3xl border border-border bg-card p-6"},oe={class:"mt-6 space-y-4"},le={class:"flex items-center justify-between text-sm"},re={class:"flex items-center gap-2 text-muted-foreground"},se={class:"font-medium text-foreground"},ne={class:"h-2 w-full rounded-full bg-secondary"},ce=E({__name:"Dashboard",setup(ie){const s=i([{label:"账号总数",value:"0",caption:"账号池中已加载的总数量。"},{label:"活跃账号",value:"0",caption:"未过期、未禁用、未限流且可用。"},{label:"失败账号",value:"0",caption:"自动禁用或已过期,需要处理。"},{label:"限流账号",value:"0",caption:"触发 429 限流,冷却中。"}]),p=i([]),x=i([]),_=i([]),y=i([]),w=i({}),v=i(null),h=i(null);let r=null,n=null;const R=F(()=>{const e=Math.max(Number(s.value[0].value),1),t=Number(s.value[1].value),o=Number(s.value[2].value),d=Number(s.value[3].value),u=Math.max(e-t-o-d,0);return[{label:"活跃",value:t,percent:Math.round(t/e*100),barClass:"bg-emerald-500"},{label:"失败",value:o,percent:Math.round(o/e*100),barClass:"bg-destructive"},{label:"限流",value:d,percent:Math.round(d/e*100),barClass:"bg-amber-300"},{label:"空闲",tooltip:"未限流、未失败、未激活使用中的账号(主要是手动禁用)。",value:u,percent:Math.round(u/e*100),barClass:"bg-slate-300"}]});j(async()=>{await T(),q(),O(),window.addEventListener("resize",S)}),$(()=>{window.removeEventListener("resize",S),r&&(r.dispose(),r=null),n&&(n.dispose(),n=null)});function q(){const e=window.echarts;!e||!v.value||(r=e.init(v.value),C(),z())}function O(){const e=window.echarts;!e||!h.value||(n=e.init(h.value),g(),L())}function C(){if(!r)return;r.setOption({tooltip:{trigger:"axis"},legend:{data:["成功(总请求)","失败/限流"],right:0,top:0,textStyle:{color:"#6b6b6b",fontSize:11}},grid:{left:24,right:16,top:44,bottom:24,containLabel:!0},xAxis:{type:"category",data:y.value,boundaryGap:!1,axisLine:{lineStyle:{color:"#d4d4d4"}},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10},splitLine:{lineStyle:{color:"#e5e5e5"}}},series:[{name:"成功(总请求)",type:"line",data:_.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.25},itemStyle:{color:"#0ea5e9"},emphasis:{disabled:!0},z:1},{name:"失败/限流",type:"line",data:x.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.4},itemStyle:{color:"#ef4444"},emphasis:{disabled:!0},z:2}]}),z()}function g(){if(!n)return;const e=Object.entries(w.value).map(([l,f])=>({name:l,value:f.reduce((N,A)=>N+A,0),itemStyle:{color:D(l),borderRadius:8}})).filter(l=>l.value>0),t=window.innerWidth<768,o=t?{data:e.map(l=>l.name),left:"center",bottom:0,orient:"horizontal",textStyle:{color:"#6b6b6b",fontSize:11}}:{data:e.map(l=>l.name),left:0,top:"center",orient:"vertical",textStyle:{color:"#6b6b6b",fontSize:11}},d=t?["50%","38%"]:["66%","50%"],u=t?["40%","62%"]:["52%","78%"];n.setOption({animation:!0,animationDuration:600,animationEasing:"cubicOut",animationDurationUpdate:300,animationEasingUpdate:"cubicOut",tooltip:{trigger:"item",formatter:l=>`${l.name}: ${l.value} 次 (${l.percent}%)`},legend:o,series:[{type:"pie",radius:u,center:d,startAngle:90,animationType:"scale",animationEasing:"cubicOut",avoidLabelOverlap:!0,label:{show:!0,formatter:"{b}",fontSize:11,color:"#6b6b6b"},labelLine:{length:12,length2:10},itemStyle:{borderWidth:2,borderColor:"#fff",borderRadius:10},data:e}]}),L()}function S(){r&&r.resize(),n&&g()}async function T(){try{const e=await J.overview();s.value[0].value=(e.total_accounts??0).toString(),s.value[1].value=(e.active_accounts??0).toString(),s.value[2].value=(e.failed_accounts??0).toString(),s.value[3].value=(e.rate_limited_accounts??0).toString();const t=e.trend||{labels:[],total_requests:[],failed_requests:[],rate_limited_requests:[]};y.value=t.labels||[],p.value=t.total_requests||[];const o=t.failed_requests||[],d=t.rate_limited_requests||[],u=p.value.map((l,f)=>(o[f]||0)+(d[f]||0));x.value=u,_.value=p.value.map(l=>Math.max(l,0)),w.value=t.model_requests||{},C(),g()}catch(e){console.error("Failed to load overview:",e)}}function z(){r&&requestAnimationFrame(()=>{r?.resize()})}function L(){n&&requestAnimationFrame(()=>{n?.resize()})}function D(e){return{"gemini-3-pro-preview":"#0ea5e9","gemini-2.5-pro":"#22c55e","gemini-2.5-flash":"#f59e0b","gemini-3-flash-preview":"#ec4899","gemini-auto":"#64748b"}[e]||"#94a3b8"}return(e,t)=>(c(),m("div",K,[a("section",P,[(c(!0),m(M,null,k(s.value,o=>(c(),m("div",{key:o.label,class:"rounded-3xl border border-border bg-card p-6"},[a("p",Q,b(o.label),1),a("p",X,b(o.value),1),a("p",Y,b(o.caption),1)]))),128))]),a("section",Z,[a("div",ee,[t[1]||(t[1]=a("div",{class:"flex items-center justify-between"},[a("p",{class:"text-sm font-medium text-foreground"},"调用趋势(近12小时)")],-1)),a("div",{ref_key:"trendChartRef",ref:v,class:"mt-6 h-64 w-full max-w-full lg:h-72"},null,512),a("div",te,[t[0]||(t[0]=a("p",{class:"text-sm font-medium text-foreground"},"模型调用分布(近12小时)",-1)),a("div",{ref_key:"modelChartRef",ref:h,class:"mt-4 h-80 w-full max-w-full lg:h-64"},null,512)])]),a("div",ae,[t[2]||(t[2]=a("p",{class:"text-sm font-medium text-foreground"},"账号健康",-1)),a("div",oe,[(c(!0),m(M,null,k(R.value,o=>(c(),m("div",{key:o.label,class:"space-y-2"},[a("div",le,[a("span",re,[U(b(o.label)+" ",1),o.tooltip?(c(),V(I,{key:0,text:o.tooltip},null,8,["text"])):W("",!0)]),a("span",se,b(o.value),1)]),a("div",ne,[a("div",{class:H(["h-2 rounded-full",o.barClass]),style:G({width:o.percent+"%"})},null,6)])]))),128))]),t[3]||(t[3]=a("div",{class:"mt-6 rounded-2xl border border-border bg-secondary/50 p-4 text-xs text-muted-foreground"}," 建议及时处理失败或过期账号,避免影响轮询效率。 ",-1))])])]))}});export{ce as default}; diff --git a/static/assets/Dashboard-CWAyHCd_.js b/static/assets/Dashboard-CWAyHCd_.js new file mode 100644 index 0000000000000000000000000000000000000000..965dcc7ede61cfef370555d375f5284a08413c85 --- /dev/null +++ b/static/assets/Dashboard-CWAyHCd_.js @@ -0,0 +1 @@ +import{g as B,d as E,h as i,i as F,o as j,j as $,c as m,a,F as M,r as k,t as b,f as U,y as V,b as W,k as G,n as H,e as c}from"./index-Babp7OwB.js";import{_ as I}from"./HelpTip.vue_vue_type_script_setup_true_lang-Cx7pOr6m.js";const J={overview(){return B.get("/admin/stats")}},K={class:"space-y-8"},P={class:"grid grid-cols-2 gap-4 md:grid-cols-2 xl:grid-cols-4"},Q={class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},X={class:"mt-4 text-3xl font-semibold text-foreground"},Y={class:"mt-2 text-xs text-muted-foreground"},Z={class:"dashboard-split flex w-full flex-col gap-6"},ee={class:"dashboard-main w-full min-w-0 rounded-3xl border border-border bg-card p-6 overflow-hidden"},te={class:"mt-4 border-t border-border pt-4"},ae={class:"dashboard-side w-full min-w-0 rounded-3xl border border-border bg-card p-6"},oe={class:"mt-6 space-y-4"},le={class:"flex items-center justify-between text-sm"},re={class:"flex items-center gap-2 text-muted-foreground"},se={class:"font-medium text-foreground"},ne={class:"h-2 w-full rounded-full bg-secondary"},ce=E({__name:"Dashboard",setup(ie){const s=i([{label:"账号总数",value:"0",caption:"账号池中已加载的总数量。"},{label:"活跃账号",value:"0",caption:"未过期、未禁用、未限流且可用。"},{label:"失败账号",value:"0",caption:"自动禁用或已过期,需要处理。"},{label:"限流账号",value:"0",caption:"触发 429 限流,冷却中。"}]),p=i([]),x=i([]),_=i([]),y=i([]),w=i({}),v=i(null),h=i(null);let r=null,n=null;const R=F(()=>{const e=Math.max(Number(s.value[0].value),1),t=Number(s.value[1].value),o=Number(s.value[2].value),d=Number(s.value[3].value),u=Math.max(e-t-o-d,0);return[{label:"活跃",value:t,percent:Math.round(t/e*100),barClass:"bg-emerald-500"},{label:"失败",value:o,percent:Math.round(o/e*100),barClass:"bg-destructive"},{label:"限流",value:d,percent:Math.round(d/e*100),barClass:"bg-amber-300"},{label:"空闲",tooltip:"未限流、未失败、未激活使用中的账号(主要是手动禁用)。",value:u,percent:Math.round(u/e*100),barClass:"bg-slate-300"}]});j(async()=>{await T(),q(),O(),window.addEventListener("resize",S)}),$(()=>{window.removeEventListener("resize",S),r&&(r.dispose(),r=null),n&&(n.dispose(),n=null)});function q(){const e=window.echarts;!e||!v.value||(r=e.init(v.value),C(),z())}function O(){const e=window.echarts;!e||!h.value||(n=e.init(h.value),g(),L())}function C(){if(!r)return;r.setOption({tooltip:{trigger:"axis"},legend:{data:["成功(总请求)","失败/限流"],right:0,top:0,textStyle:{color:"#6b6b6b",fontSize:11}},grid:{left:24,right:16,top:44,bottom:24,containLabel:!0},xAxis:{type:"category",data:y.value,boundaryGap:!1,axisLine:{lineStyle:{color:"#d4d4d4"}},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10},splitLine:{lineStyle:{color:"#e5e5e5"}}},series:[{name:"成功(总请求)",type:"line",data:_.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.25},itemStyle:{color:"#0ea5e9"},emphasis:{disabled:!0},z:1},{name:"失败/限流",type:"line",data:x.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.4},itemStyle:{color:"#ef4444"},emphasis:{disabled:!0},z:2}]}),z()}function g(){if(!n)return;const e=Object.entries(w.value).map(([l,f])=>({name:l,value:f.reduce((N,A)=>N+A,0),itemStyle:{color:D(l),borderRadius:8}})).filter(l=>l.value>0),t=window.innerWidth<768,o=t?{data:e.map(l=>l.name),left:"center",bottom:0,orient:"horizontal",textStyle:{color:"#6b6b6b",fontSize:11}}:{data:e.map(l=>l.name),left:0,top:"center",orient:"vertical",textStyle:{color:"#6b6b6b",fontSize:11}},d=t?["50%","38%"]:["66%","50%"],u=t?["40%","62%"]:["52%","78%"];n.setOption({animation:!0,animationDuration:600,animationEasing:"cubicOut",animationDurationUpdate:300,animationEasingUpdate:"cubicOut",tooltip:{trigger:"item",formatter:l=>`${l.name}: ${l.value} 次 (${l.percent}%)`},legend:o,series:[{type:"pie",radius:u,center:d,startAngle:90,animationType:"scale",animationEasing:"cubicOut",avoidLabelOverlap:!0,label:{show:!0,formatter:"{b}",fontSize:11,color:"#6b6b6b"},labelLine:{length:12,length2:10},itemStyle:{borderWidth:2,borderColor:"#fff",borderRadius:10},data:e}]}),L()}function S(){r&&r.resize(),n&&g()}async function T(){try{const e=await J.overview();s.value[0].value=(e.total_accounts??0).toString(),s.value[1].value=(e.active_accounts??0).toString(),s.value[2].value=(e.failed_accounts??0).toString(),s.value[3].value=(e.rate_limited_accounts??0).toString();const t=e.trend||{labels:[],total_requests:[],failed_requests:[],rate_limited_requests:[]};y.value=t.labels||[],p.value=t.total_requests||[];const o=t.failed_requests||[],d=t.rate_limited_requests||[],u=p.value.map((l,f)=>(o[f]||0)+(d[f]||0));x.value=u,_.value=p.value.map(l=>Math.max(l,0)),w.value=t.model_requests||{},C(),g()}catch(e){console.error("Failed to load overview:",e)}}function z(){r&&requestAnimationFrame(()=>{r?.resize()})}function L(){n&&requestAnimationFrame(()=>{n?.resize()})}function D(e){return{"gemini-3-pro-preview":"#0ea5e9","gemini-2.5-pro":"#22c55e","gemini-2.5-flash":"#f59e0b","gemini-3-flash-preview":"#ec4899","gemini-auto":"#64748b"}[e]||"#94a3b8"}return(e,t)=>(c(),m("div",K,[a("section",P,[(c(!0),m(M,null,k(s.value,o=>(c(),m("div",{key:o.label,class:"rounded-3xl border border-border bg-card p-6"},[a("p",Q,b(o.label),1),a("p",X,b(o.value),1),a("p",Y,b(o.caption),1)]))),128))]),a("section",Z,[a("div",ee,[t[1]||(t[1]=a("div",{class:"flex items-center justify-between"},[a("p",{class:"text-sm font-medium text-foreground"},"调用趋势(近12小时)")],-1)),a("div",{ref_key:"trendChartRef",ref:v,class:"mt-6 h-64 w-full max-w-full lg:h-72"},null,512),a("div",te,[t[0]||(t[0]=a("p",{class:"text-sm font-medium text-foreground"},"模型调用分布(近12小时)",-1)),a("div",{ref_key:"modelChartRef",ref:h,class:"mt-4 h-80 w-full max-w-full lg:h-64"},null,512)])]),a("div",ae,[t[2]||(t[2]=a("p",{class:"text-sm font-medium text-foreground"},"账号健康",-1)),a("div",oe,[(c(!0),m(M,null,k(R.value,o=>(c(),m("div",{key:o.label,class:"space-y-2"},[a("div",le,[a("span",re,[U(b(o.label)+" ",1),o.tooltip?(c(),V(I,{key:0,text:o.tooltip},null,8,["text"])):W("",!0)]),a("span",se,b(o.value),1)]),a("div",ne,[a("div",{class:H(["h-2 rounded-full",o.barClass]),style:G({width:o.percent+"%"})},null,6)])]))),128))]),t[3]||(t[3]=a("div",{class:"mt-6 rounded-2xl border border-border bg-secondary/50 p-4 text-xs text-muted-foreground"}," 建议及时处理失败或过期账号,避免影响轮询效率。 ",-1))])])]))}});export{ce as default}; diff --git a/static/assets/Dashboard-CcTQaln-.js b/static/assets/Dashboard-CcTQaln-.js new file mode 100644 index 0000000000000000000000000000000000000000..d8efb5c5c7e663e42de0a32aed7e7b0c1fc9b489 --- /dev/null +++ b/static/assets/Dashboard-CcTQaln-.js @@ -0,0 +1 @@ +import{g as B,d as E,h as i,i as F,o as j,j as $,c as m,a,F as M,r as k,t as b,f as U,z as V,b as W,k as G,n as H,e as c}from"./index-Bx7qSams.js";import{_ as I}from"./HelpTip.vue_vue_type_script_setup_true_lang-BaMbEJhq.js";const J={overview(){return B.get("/admin/stats")}},K={class:"space-y-8"},P={class:"grid grid-cols-2 gap-4 md:grid-cols-2 xl:grid-cols-4"},Q={class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},X={class:"mt-4 text-3xl font-semibold text-foreground"},Y={class:"mt-2 text-xs text-muted-foreground"},Z={class:"dashboard-split flex w-full flex-col gap-6"},ee={class:"dashboard-main w-full min-w-0 rounded-3xl border border-border bg-card p-6 overflow-hidden"},te={class:"mt-4 border-t border-border pt-4"},ae={class:"dashboard-side w-full min-w-0 rounded-3xl border border-border bg-card p-6"},oe={class:"mt-6 space-y-4"},le={class:"flex items-center justify-between text-sm"},re={class:"flex items-center gap-2 text-muted-foreground"},se={class:"font-medium text-foreground"},ne={class:"h-2 w-full rounded-full bg-secondary"},ce=E({__name:"Dashboard",setup(ie){const s=i([{label:"账号总数",value:"0",caption:"账号池中已加载的总数量。"},{label:"活跃账号",value:"0",caption:"未过期、未禁用、未限流且可用。"},{label:"失败账号",value:"0",caption:"自动禁用或已过期,需要处理。"},{label:"限流账号",value:"0",caption:"触发 429 限流,冷却中。"}]),p=i([]),x=i([]),_=i([]),y=i([]),w=i({}),v=i(null),h=i(null);let r=null,n=null;const R=F(()=>{const e=Math.max(Number(s.value[0].value),1),t=Number(s.value[1].value),o=Number(s.value[2].value),d=Number(s.value[3].value),u=Math.max(e-t-o-d,0);return[{label:"活跃",value:t,percent:Math.round(t/e*100),barClass:"bg-emerald-500"},{label:"失败",value:o,percent:Math.round(o/e*100),barClass:"bg-destructive"},{label:"限流",value:d,percent:Math.round(d/e*100),barClass:"bg-amber-300"},{label:"空闲",tooltip:"未限流、未失败、未激活使用中的账号(主要是手动禁用)。",value:u,percent:Math.round(u/e*100),barClass:"bg-slate-300"}]});j(async()=>{await T(),q(),O(),window.addEventListener("resize",S)}),$(()=>{window.removeEventListener("resize",S),r&&(r.dispose(),r=null),n&&(n.dispose(),n=null)});function q(){const e=window.echarts;!e||!v.value||(r=e.init(v.value),C(),z())}function O(){const e=window.echarts;!e||!h.value||(n=e.init(h.value),g(),L())}function C(){if(!r)return;r.setOption({tooltip:{trigger:"axis"},legend:{data:["成功(总请求)","失败/限流"],right:0,top:0,textStyle:{color:"#6b6b6b",fontSize:11}},grid:{left:24,right:16,top:44,bottom:24,containLabel:!0},xAxis:{type:"category",data:y.value,boundaryGap:!1,axisLine:{lineStyle:{color:"#d4d4d4"}},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10},splitLine:{lineStyle:{color:"#e5e5e5"}}},series:[{name:"成功(总请求)",type:"line",data:_.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.25},itemStyle:{color:"#0ea5e9"},emphasis:{disabled:!0},z:1},{name:"失败/限流",type:"line",data:x.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.4},itemStyle:{color:"#ef4444"},emphasis:{disabled:!0},z:2}]}),z()}function g(){if(!n)return;const e=Object.entries(w.value).map(([l,f])=>({name:l,value:f.reduce((N,A)=>N+A,0),itemStyle:{color:D(l),borderRadius:8}})).filter(l=>l.value>0),t=window.innerWidth<768,o=t?{data:e.map(l=>l.name),left:"center",bottom:0,orient:"horizontal",textStyle:{color:"#6b6b6b",fontSize:11}}:{data:e.map(l=>l.name),left:0,top:"center",orient:"vertical",textStyle:{color:"#6b6b6b",fontSize:11}},d=t?["50%","38%"]:["66%","50%"],u=t?["40%","62%"]:["52%","78%"];n.setOption({animation:!0,animationDuration:600,animationEasing:"cubicOut",animationDurationUpdate:300,animationEasingUpdate:"cubicOut",tooltip:{trigger:"item",formatter:l=>`${l.name}: ${l.value} 次 (${l.percent}%)`},legend:o,series:[{type:"pie",radius:u,center:d,startAngle:90,animationType:"scale",animationEasing:"cubicOut",avoidLabelOverlap:!0,label:{show:!0,formatter:"{b}",fontSize:11,color:"#6b6b6b"},labelLine:{length:12,length2:10},itemStyle:{borderWidth:2,borderColor:"#fff",borderRadius:10},data:e}]}),L()}function S(){r&&r.resize(),n&&g()}async function T(){try{const e=await J.overview();s.value[0].value=(e.total_accounts??0).toString(),s.value[1].value=(e.active_accounts??0).toString(),s.value[2].value=(e.failed_accounts??0).toString(),s.value[3].value=(e.rate_limited_accounts??0).toString();const t=e.trend||{labels:[],total_requests:[],failed_requests:[],rate_limited_requests:[]};y.value=t.labels||[],p.value=t.total_requests||[];const o=t.failed_requests||[],d=t.rate_limited_requests||[],u=p.value.map((l,f)=>(o[f]||0)+(d[f]||0));x.value=u,_.value=p.value.map(l=>Math.max(l,0)),w.value=t.model_requests||{},C(),g()}catch(e){console.error("Failed to load overview:",e)}}function z(){r&&requestAnimationFrame(()=>{r?.resize()})}function L(){n&&requestAnimationFrame(()=>{n?.resize()})}function D(e){return{"gemini-3-pro-preview":"#0ea5e9","gemini-2.5-pro":"#22c55e","gemini-2.5-flash":"#f59e0b","gemini-3-flash-preview":"#ec4899","gemini-auto":"#64748b"}[e]||"#94a3b8"}return(e,t)=>(c(),m("div",K,[a("section",P,[(c(!0),m(M,null,k(s.value,o=>(c(),m("div",{key:o.label,class:"rounded-3xl border border-border bg-card p-6"},[a("p",Q,b(o.label),1),a("p",X,b(o.value),1),a("p",Y,b(o.caption),1)]))),128))]),a("section",Z,[a("div",ee,[t[1]||(t[1]=a("div",{class:"flex items-center justify-between"},[a("p",{class:"text-sm font-medium text-foreground"},"调用趋势(近12小时)")],-1)),a("div",{ref_key:"trendChartRef",ref:v,class:"mt-6 h-64 w-full max-w-full lg:h-72"},null,512),a("div",te,[t[0]||(t[0]=a("p",{class:"text-sm font-medium text-foreground"},"模型调用分布(近12小时)",-1)),a("div",{ref_key:"modelChartRef",ref:h,class:"mt-4 h-80 w-full max-w-full lg:h-64"},null,512)])]),a("div",ae,[t[2]||(t[2]=a("p",{class:"text-sm font-medium text-foreground"},"账号健康",-1)),a("div",oe,[(c(!0),m(M,null,k(R.value,o=>(c(),m("div",{key:o.label,class:"space-y-2"},[a("div",le,[a("span",re,[U(b(o.label)+" ",1),o.tooltip?(c(),V(I,{key:0,text:o.tooltip},null,8,["text"])):W("",!0)]),a("span",se,b(o.value),1)]),a("div",ne,[a("div",{class:H(["h-2 rounded-full",o.barClass]),style:G({width:o.percent+"%"})},null,6)])]))),128))]),t[3]||(t[3]=a("div",{class:"mt-6 rounded-2xl border border-border bg-secondary/50 p-4 text-xs text-muted-foreground"}," 建议及时处理失败或过期账号,避免影响轮询效率。 ",-1))])])]))}});export{ce as default}; diff --git a/static/assets/Dashboard-Cj32OD7s.js b/static/assets/Dashboard-Cj32OD7s.js new file mode 100644 index 0000000000000000000000000000000000000000..58a97a24b064b85ec278ec1ecfe6ff2cae2fd1c0 --- /dev/null +++ b/static/assets/Dashboard-Cj32OD7s.js @@ -0,0 +1 @@ +import{g as B,d as E,h as i,i as F,o as j,j as $,c as m,a,F as M,r as k,t as b,f as U,y as V,b as W,k as G,n as H,e as c}from"./index-gD6QQiOu.js";import{_ as I}from"./HelpTip.vue_vue_type_script_setup_true_lang-Cur056hv.js";const J={overview(){return B.get("/admin/stats")}},K={class:"space-y-8"},P={class:"grid grid-cols-2 gap-4 md:grid-cols-2 xl:grid-cols-4"},Q={class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},X={class:"mt-4 text-3xl font-semibold text-foreground"},Y={class:"mt-2 text-xs text-muted-foreground"},Z={class:"dashboard-split flex w-full flex-col gap-6"},ee={class:"dashboard-main w-full min-w-0 rounded-3xl border border-border bg-card p-6 overflow-hidden"},te={class:"mt-4 border-t border-border pt-4"},ae={class:"dashboard-side w-full min-w-0 rounded-3xl border border-border bg-card p-6"},oe={class:"mt-6 space-y-4"},le={class:"flex items-center justify-between text-sm"},re={class:"flex items-center gap-2 text-muted-foreground"},se={class:"font-medium text-foreground"},ne={class:"h-2 w-full rounded-full bg-secondary"},ce=E({__name:"Dashboard",setup(ie){const s=i([{label:"账号总数",value:"0",caption:"账号池中已加载的总数量。"},{label:"活跃账号",value:"0",caption:"未过期、未禁用、未限流且可用。"},{label:"失败账号",value:"0",caption:"自动禁用或已过期,需要处理。"},{label:"限流账号",value:"0",caption:"触发 429 限流,冷却中。"}]),p=i([]),x=i([]),_=i([]),y=i([]),w=i({}),v=i(null),h=i(null);let r=null,n=null;const R=F(()=>{const e=Math.max(Number(s.value[0].value),1),t=Number(s.value[1].value),o=Number(s.value[2].value),d=Number(s.value[3].value),u=Math.max(e-t-o-d,0);return[{label:"活跃",value:t,percent:Math.round(t/e*100),barClass:"bg-emerald-500"},{label:"失败",value:o,percent:Math.round(o/e*100),barClass:"bg-destructive"},{label:"限流",value:d,percent:Math.round(d/e*100),barClass:"bg-amber-300"},{label:"空闲",tooltip:"未限流、未失败、未激活使用中的账号(主要是手动禁用)。",value:u,percent:Math.round(u/e*100),barClass:"bg-slate-300"}]});j(async()=>{await T(),q(),O(),window.addEventListener("resize",S)}),$(()=>{window.removeEventListener("resize",S),r&&(r.dispose(),r=null),n&&(n.dispose(),n=null)});function q(){const e=window.echarts;!e||!v.value||(r=e.init(v.value),C(),z())}function O(){const e=window.echarts;!e||!h.value||(n=e.init(h.value),g(),L())}function C(){if(!r)return;r.setOption({tooltip:{trigger:"axis"},legend:{data:["成功(总请求)","失败/限流"],right:0,top:0,textStyle:{color:"#6b6b6b",fontSize:11}},grid:{left:24,right:16,top:44,bottom:24,containLabel:!0},xAxis:{type:"category",data:y.value,boundaryGap:!1,axisLine:{lineStyle:{color:"#d4d4d4"}},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10},splitLine:{lineStyle:{color:"#e5e5e5"}}},series:[{name:"成功(总请求)",type:"line",data:_.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.25},itemStyle:{color:"#0ea5e9"},emphasis:{disabled:!0},z:1},{name:"失败/限流",type:"line",data:x.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.4},itemStyle:{color:"#ef4444"},emphasis:{disabled:!0},z:2}]}),z()}function g(){if(!n)return;const e=Object.entries(w.value).map(([l,f])=>({name:l,value:f.reduce((N,A)=>N+A,0),itemStyle:{color:D(l),borderRadius:8}})).filter(l=>l.value>0),t=window.innerWidth<768,o=t?{data:e.map(l=>l.name),left:"center",bottom:0,orient:"horizontal",textStyle:{color:"#6b6b6b",fontSize:11}}:{data:e.map(l=>l.name),left:0,top:"center",orient:"vertical",textStyle:{color:"#6b6b6b",fontSize:11}},d=t?["50%","38%"]:["66%","50%"],u=t?["40%","62%"]:["52%","78%"];n.setOption({animation:!0,animationDuration:600,animationEasing:"cubicOut",animationDurationUpdate:300,animationEasingUpdate:"cubicOut",tooltip:{trigger:"item",formatter:l=>`${l.name}: ${l.value} 次 (${l.percent}%)`},legend:o,series:[{type:"pie",radius:u,center:d,startAngle:90,animationType:"scale",animationEasing:"cubicOut",avoidLabelOverlap:!0,label:{show:!0,formatter:"{b}",fontSize:11,color:"#6b6b6b"},labelLine:{length:12,length2:10},itemStyle:{borderWidth:2,borderColor:"#fff",borderRadius:10},data:e}]}),L()}function S(){r&&r.resize(),n&&g()}async function T(){try{const e=await J.overview();s.value[0].value=(e.total_accounts??0).toString(),s.value[1].value=(e.active_accounts??0).toString(),s.value[2].value=(e.failed_accounts??0).toString(),s.value[3].value=(e.rate_limited_accounts??0).toString();const t=e.trend||{labels:[],total_requests:[],failed_requests:[],rate_limited_requests:[]};y.value=t.labels||[],p.value=t.total_requests||[];const o=t.failed_requests||[],d=t.rate_limited_requests||[],u=p.value.map((l,f)=>(o[f]||0)+(d[f]||0));x.value=u,_.value=p.value.map(l=>Math.max(l,0)),w.value=t.model_requests||{},C(),g()}catch(e){console.error("Failed to load overview:",e)}}function z(){r&&requestAnimationFrame(()=>{r?.resize()})}function L(){n&&requestAnimationFrame(()=>{n?.resize()})}function D(e){return{"gemini-3-pro-preview":"#0ea5e9","gemini-2.5-pro":"#22c55e","gemini-2.5-flash":"#f59e0b","gemini-3-flash-preview":"#ec4899","gemini-auto":"#64748b"}[e]||"#94a3b8"}return(e,t)=>(c(),m("div",K,[a("section",P,[(c(!0),m(M,null,k(s.value,o=>(c(),m("div",{key:o.label,class:"rounded-3xl border border-border bg-card p-6"},[a("p",Q,b(o.label),1),a("p",X,b(o.value),1),a("p",Y,b(o.caption),1)]))),128))]),a("section",Z,[a("div",ee,[t[1]||(t[1]=a("div",{class:"flex items-center justify-between"},[a("p",{class:"text-sm font-medium text-foreground"},"调用趋势(近12小时)")],-1)),a("div",{ref_key:"trendChartRef",ref:v,class:"mt-6 h-64 w-full max-w-full lg:h-72"},null,512),a("div",te,[t[0]||(t[0]=a("p",{class:"text-sm font-medium text-foreground"},"模型调用分布(近12小时)",-1)),a("div",{ref_key:"modelChartRef",ref:h,class:"mt-4 h-80 w-full max-w-full lg:h-64"},null,512)])]),a("div",ae,[t[2]||(t[2]=a("p",{class:"text-sm font-medium text-foreground"},"账号健康",-1)),a("div",oe,[(c(!0),m(M,null,k(R.value,o=>(c(),m("div",{key:o.label,class:"space-y-2"},[a("div",le,[a("span",re,[U(b(o.label)+" ",1),o.tooltip?(c(),V(I,{key:0,text:o.tooltip},null,8,["text"])):W("",!0)]),a("span",se,b(o.value),1)]),a("div",ne,[a("div",{class:H(["h-2 rounded-full",o.barClass]),style:G({width:o.percent+"%"})},null,6)])]))),128))]),t[3]||(t[3]=a("div",{class:"mt-6 rounded-2xl border border-border bg-secondary/50 p-4 text-xs text-muted-foreground"}," 建议及时处理失败或过期账号,避免影响轮询效率。 ",-1))])])]))}});export{ce as default}; diff --git a/static/assets/Dashboard-CpaJFO-h.js b/static/assets/Dashboard-CpaJFO-h.js new file mode 100644 index 0000000000000000000000000000000000000000..107af82696f2dfbd613df2aa13f3b3fc17b3f93c --- /dev/null +++ b/static/assets/Dashboard-CpaJFO-h.js @@ -0,0 +1 @@ +import{g as B,d as E,h as i,i as F,o as j,j as $,c as m,a,F as M,r as k,t as b,f as U,m as V,b as W,k as G,n as H,e as c}from"./index-BCQxBeUo.js";import{_ as I}from"./HelpTip.vue_vue_type_script_setup_true_lang-32PHHvO_.js";const J={overview(){return B.get("/admin/stats")}},K={class:"space-y-8"},P={class:"grid grid-cols-2 gap-4 md:grid-cols-2 xl:grid-cols-4"},Q={class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},X={class:"mt-4 text-3xl font-semibold text-foreground"},Y={class:"mt-2 text-xs text-muted-foreground"},Z={class:"dashboard-split flex w-full flex-col gap-6"},ee={class:"dashboard-main w-full min-w-0 rounded-3xl border border-border bg-card p-6 overflow-hidden"},te={class:"mt-4 border-t border-border pt-4"},ae={class:"dashboard-side w-full min-w-0 rounded-3xl border border-border bg-card p-6"},oe={class:"mt-6 space-y-4"},le={class:"flex items-center justify-between text-sm"},re={class:"flex items-center gap-2 text-muted-foreground"},se={class:"font-medium text-foreground"},ne={class:"h-2 w-full rounded-full bg-secondary"},ce=E({__name:"Dashboard",setup(ie){const s=i([{label:"账号总数",value:"0",caption:"账号池中已加载的总数量。"},{label:"活跃账号",value:"0",caption:"未过期、未禁用、未限流且可用。"},{label:"失败账号",value:"0",caption:"自动禁用或已过期,需要处理。"},{label:"限流账号",value:"0",caption:"触发 429 限流,冷却中。"}]),p=i([]),x=i([]),_=i([]),y=i([]),w=i({}),v=i(null),h=i(null);let r=null,n=null;const R=F(()=>{const e=Math.max(Number(s.value[0].value),1),t=Number(s.value[1].value),o=Number(s.value[2].value),d=Number(s.value[3].value),u=Math.max(e-t-o-d,0);return[{label:"活跃",value:t,percent:Math.round(t/e*100),barClass:"bg-emerald-500"},{label:"失败",value:o,percent:Math.round(o/e*100),barClass:"bg-destructive"},{label:"限流",value:d,percent:Math.round(d/e*100),barClass:"bg-amber-300"},{label:"空闲",tooltip:"未限流、未失败、未激活使用中的账号(主要是手动禁用)。",value:u,percent:Math.round(u/e*100),barClass:"bg-slate-300"}]});j(async()=>{await T(),q(),O(),window.addEventListener("resize",S)}),$(()=>{window.removeEventListener("resize",S),r&&(r.dispose(),r=null),n&&(n.dispose(),n=null)});function q(){const e=window.echarts;!e||!v.value||(r=e.init(v.value),C(),z())}function O(){const e=window.echarts;!e||!h.value||(n=e.init(h.value),g(),L())}function C(){if(!r)return;r.setOption({tooltip:{trigger:"axis"},legend:{data:["成功(总请求)","失败/限流"],right:0,top:0,textStyle:{color:"#6b6b6b",fontSize:11}},grid:{left:24,right:16,top:44,bottom:24,containLabel:!0},xAxis:{type:"category",data:y.value,boundaryGap:!1,axisLine:{lineStyle:{color:"#d4d4d4"}},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10},splitLine:{lineStyle:{color:"#e5e5e5"}}},series:[{name:"成功(总请求)",type:"line",data:_.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.25},itemStyle:{color:"#0ea5e9"},emphasis:{disabled:!0},z:1},{name:"失败/限流",type:"line",data:x.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.4},itemStyle:{color:"#ef4444"},emphasis:{disabled:!0},z:2}]}),z()}function g(){if(!n)return;const e=Object.entries(w.value).map(([l,f])=>({name:l,value:f.reduce((N,A)=>N+A,0),itemStyle:{color:D(l),borderRadius:8}})).filter(l=>l.value>0),t=window.innerWidth<768,o=t?{data:e.map(l=>l.name),left:"center",bottom:0,orient:"horizontal",textStyle:{color:"#6b6b6b",fontSize:11}}:{data:e.map(l=>l.name),left:0,top:"center",orient:"vertical",textStyle:{color:"#6b6b6b",fontSize:11}},d=t?["50%","38%"]:["66%","50%"],u=t?["40%","62%"]:["52%","78%"];n.setOption({animation:!0,animationDuration:600,animationEasing:"cubicOut",animationDurationUpdate:300,animationEasingUpdate:"cubicOut",tooltip:{trigger:"item",formatter:l=>`${l.name}: ${l.value} 次 (${l.percent}%)`},legend:o,series:[{type:"pie",radius:u,center:d,startAngle:90,animationType:"scale",animationEasing:"cubicOut",avoidLabelOverlap:!0,label:{show:!0,formatter:"{b}",fontSize:11,color:"#6b6b6b"},labelLine:{length:12,length2:10},itemStyle:{borderWidth:2,borderColor:"#fff",borderRadius:10},data:e}]}),L()}function S(){r&&r.resize(),n&&g()}async function T(){try{const e=await J.overview();s.value[0].value=(e.total_accounts??0).toString(),s.value[1].value=(e.active_accounts??0).toString(),s.value[2].value=(e.failed_accounts??0).toString(),s.value[3].value=(e.rate_limited_accounts??0).toString();const t=e.trend||{labels:[],total_requests:[],failed_requests:[],rate_limited_requests:[]};y.value=t.labels||[],p.value=t.total_requests||[];const o=t.failed_requests||[],d=t.rate_limited_requests||[],u=p.value.map((l,f)=>(o[f]||0)+(d[f]||0));x.value=u,_.value=p.value.map(l=>Math.max(l,0)),w.value=t.model_requests||{},C(),g()}catch(e){console.error("Failed to load overview:",e)}}function z(){r&&requestAnimationFrame(()=>{r?.resize()})}function L(){n&&requestAnimationFrame(()=>{n?.resize()})}function D(e){return{"gemini-3-pro-preview":"#0ea5e9","gemini-2.5-pro":"#22c55e","gemini-2.5-flash":"#f59e0b","gemini-3-flash-preview":"#ec4899","gemini-auto":"#64748b"}[e]||"#94a3b8"}return(e,t)=>(c(),m("div",K,[a("section",P,[(c(!0),m(M,null,k(s.value,o=>(c(),m("div",{key:o.label,class:"rounded-3xl border border-border bg-card p-6"},[a("p",Q,b(o.label),1),a("p",X,b(o.value),1),a("p",Y,b(o.caption),1)]))),128))]),a("section",Z,[a("div",ee,[t[1]||(t[1]=a("div",{class:"flex items-center justify-between"},[a("p",{class:"text-sm font-medium text-foreground"},"调用趋势(近12小时)")],-1)),a("div",{ref_key:"trendChartRef",ref:v,class:"mt-6 h-64 w-full max-w-full lg:h-72"},null,512),a("div",te,[t[0]||(t[0]=a("p",{class:"text-sm font-medium text-foreground"},"模型调用分布(近12小时)",-1)),a("div",{ref_key:"modelChartRef",ref:h,class:"mt-4 h-80 w-full max-w-full lg:h-64"},null,512)])]),a("div",ae,[t[2]||(t[2]=a("p",{class:"text-sm font-medium text-foreground"},"账号健康",-1)),a("div",oe,[(c(!0),m(M,null,k(R.value,o=>(c(),m("div",{key:o.label,class:"space-y-2"},[a("div",le,[a("span",re,[U(b(o.label)+" ",1),o.tooltip?(c(),V(I,{key:0,text:o.tooltip},null,8,["text"])):W("",!0)]),a("span",se,b(o.value),1)]),a("div",ne,[a("div",{class:H(["h-2 rounded-full",o.barClass]),style:G({width:o.percent+"%"})},null,6)])]))),128))]),t[3]||(t[3]=a("div",{class:"mt-6 rounded-2xl border border-border bg-secondary/50 p-4 text-xs text-muted-foreground"}," 建议及时处理失败或过期账号,避免影响轮询效率。 ",-1))])])]))}});export{ce as default}; diff --git a/static/assets/Dashboard-DET2X3uX.js b/static/assets/Dashboard-DET2X3uX.js new file mode 100644 index 0000000000000000000000000000000000000000..ec109476df565480d9d5b8f8dc928a7b64321411 --- /dev/null +++ b/static/assets/Dashboard-DET2X3uX.js @@ -0,0 +1 @@ +import{g as B,d as E,h as i,i as F,o as j,j as $,c as m,a,F as M,r as k,t as b,f as U,y as V,b as W,k as G,n as H,e as c}from"./index-4tSmcUDY.js";import{_ as I}from"./HelpTip.vue_vue_type_script_setup_true_lang-BNcd5Xum.js";const J={overview(){return B.get("/admin/stats")}},K={class:"space-y-8"},P={class:"grid grid-cols-2 gap-4 md:grid-cols-2 xl:grid-cols-4"},Q={class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},X={class:"mt-4 text-3xl font-semibold text-foreground"},Y={class:"mt-2 text-xs text-muted-foreground"},Z={class:"dashboard-split flex w-full flex-col gap-6"},ee={class:"dashboard-main w-full min-w-0 rounded-3xl border border-border bg-card p-6 overflow-hidden"},te={class:"mt-4 border-t border-border pt-4"},ae={class:"dashboard-side w-full min-w-0 rounded-3xl border border-border bg-card p-6"},oe={class:"mt-6 space-y-4"},le={class:"flex items-center justify-between text-sm"},re={class:"flex items-center gap-2 text-muted-foreground"},se={class:"font-medium text-foreground"},ne={class:"h-2 w-full rounded-full bg-secondary"},ce=E({__name:"Dashboard",setup(ie){const s=i([{label:"账号总数",value:"0",caption:"账号池中已加载的总数量。"},{label:"活跃账号",value:"0",caption:"未过期、未禁用、未限流且可用。"},{label:"失败账号",value:"0",caption:"自动禁用或已过期,需要处理。"},{label:"限流账号",value:"0",caption:"触发 429 限流,冷却中。"}]),p=i([]),x=i([]),_=i([]),y=i([]),w=i({}),v=i(null),h=i(null);let r=null,n=null;const R=F(()=>{const e=Math.max(Number(s.value[0].value),1),t=Number(s.value[1].value),o=Number(s.value[2].value),d=Number(s.value[3].value),u=Math.max(e-t-o-d,0);return[{label:"活跃",value:t,percent:Math.round(t/e*100),barClass:"bg-emerald-500"},{label:"失败",value:o,percent:Math.round(o/e*100),barClass:"bg-destructive"},{label:"限流",value:d,percent:Math.round(d/e*100),barClass:"bg-amber-300"},{label:"空闲",tooltip:"未限流、未失败、未激活使用中的账号(主要是手动禁用)。",value:u,percent:Math.round(u/e*100),barClass:"bg-slate-300"}]});j(async()=>{await T(),q(),O(),window.addEventListener("resize",S)}),$(()=>{window.removeEventListener("resize",S),r&&(r.dispose(),r=null),n&&(n.dispose(),n=null)});function q(){const e=window.echarts;!e||!v.value||(r=e.init(v.value),C(),z())}function O(){const e=window.echarts;!e||!h.value||(n=e.init(h.value),g(),L())}function C(){if(!r)return;r.setOption({tooltip:{trigger:"axis"},legend:{data:["成功(总请求)","失败/限流"],right:0,top:0,textStyle:{color:"#6b6b6b",fontSize:11}},grid:{left:24,right:16,top:44,bottom:24,containLabel:!0},xAxis:{type:"category",data:y.value,boundaryGap:!1,axisLine:{lineStyle:{color:"#d4d4d4"}},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10},splitLine:{lineStyle:{color:"#e5e5e5"}}},series:[{name:"成功(总请求)",type:"line",data:_.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.25},itemStyle:{color:"#0ea5e9"},emphasis:{disabled:!0},z:1},{name:"失败/限流",type:"line",data:x.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.4},itemStyle:{color:"#ef4444"},emphasis:{disabled:!0},z:2}]}),z()}function g(){if(!n)return;const e=Object.entries(w.value).map(([l,f])=>({name:l,value:f.reduce((N,A)=>N+A,0),itemStyle:{color:D(l),borderRadius:8}})).filter(l=>l.value>0),t=window.innerWidth<768,o=t?{data:e.map(l=>l.name),left:"center",bottom:0,orient:"horizontal",textStyle:{color:"#6b6b6b",fontSize:11}}:{data:e.map(l=>l.name),left:0,top:"center",orient:"vertical",textStyle:{color:"#6b6b6b",fontSize:11}},d=t?["50%","38%"]:["66%","50%"],u=t?["40%","62%"]:["52%","78%"];n.setOption({animation:!0,animationDuration:600,animationEasing:"cubicOut",animationDurationUpdate:300,animationEasingUpdate:"cubicOut",tooltip:{trigger:"item",formatter:l=>`${l.name}: ${l.value} 次 (${l.percent}%)`},legend:o,series:[{type:"pie",radius:u,center:d,startAngle:90,animationType:"scale",animationEasing:"cubicOut",avoidLabelOverlap:!0,label:{show:!0,formatter:"{b}",fontSize:11,color:"#6b6b6b"},labelLine:{length:12,length2:10},itemStyle:{borderWidth:2,borderColor:"#fff",borderRadius:10},data:e}]}),L()}function S(){r&&r.resize(),n&&g()}async function T(){try{const e=await J.overview();s.value[0].value=(e.total_accounts??0).toString(),s.value[1].value=(e.active_accounts??0).toString(),s.value[2].value=(e.failed_accounts??0).toString(),s.value[3].value=(e.rate_limited_accounts??0).toString();const t=e.trend||{labels:[],total_requests:[],failed_requests:[],rate_limited_requests:[]};y.value=t.labels||[],p.value=t.total_requests||[];const o=t.failed_requests||[],d=t.rate_limited_requests||[],u=p.value.map((l,f)=>(o[f]||0)+(d[f]||0));x.value=u,_.value=p.value.map(l=>Math.max(l,0)),w.value=t.model_requests||{},C(),g()}catch(e){console.error("Failed to load overview:",e)}}function z(){r&&requestAnimationFrame(()=>{r?.resize()})}function L(){n&&requestAnimationFrame(()=>{n?.resize()})}function D(e){return{"gemini-3-pro-preview":"#0ea5e9","gemini-2.5-pro":"#22c55e","gemini-2.5-flash":"#f59e0b","gemini-3-flash-preview":"#ec4899","gemini-auto":"#64748b"}[e]||"#94a3b8"}return(e,t)=>(c(),m("div",K,[a("section",P,[(c(!0),m(M,null,k(s.value,o=>(c(),m("div",{key:o.label,class:"rounded-3xl border border-border bg-card p-6"},[a("p",Q,b(o.label),1),a("p",X,b(o.value),1),a("p",Y,b(o.caption),1)]))),128))]),a("section",Z,[a("div",ee,[t[1]||(t[1]=a("div",{class:"flex items-center justify-between"},[a("p",{class:"text-sm font-medium text-foreground"},"调用趋势(近12小时)")],-1)),a("div",{ref_key:"trendChartRef",ref:v,class:"mt-6 h-64 w-full max-w-full lg:h-72"},null,512),a("div",te,[t[0]||(t[0]=a("p",{class:"text-sm font-medium text-foreground"},"模型调用分布(近12小时)",-1)),a("div",{ref_key:"modelChartRef",ref:h,class:"mt-4 h-80 w-full max-w-full lg:h-64"},null,512)])]),a("div",ae,[t[2]||(t[2]=a("p",{class:"text-sm font-medium text-foreground"},"账号健康",-1)),a("div",oe,[(c(!0),m(M,null,k(R.value,o=>(c(),m("div",{key:o.label,class:"space-y-2"},[a("div",le,[a("span",re,[U(b(o.label)+" ",1),o.tooltip?(c(),V(I,{key:0,text:o.tooltip},null,8,["text"])):W("",!0)]),a("span",se,b(o.value),1)]),a("div",ne,[a("div",{class:H(["h-2 rounded-full",o.barClass]),style:G({width:o.percent+"%"})},null,6)])]))),128))]),t[3]||(t[3]=a("div",{class:"mt-6 rounded-2xl border border-border bg-secondary/50 p-4 text-xs text-muted-foreground"}," 建议及时处理失败或过期账号,避免影响轮询效率。 ",-1))])])]))}});export{ce as default}; diff --git a/static/assets/Dashboard-DEboHVHw.js b/static/assets/Dashboard-DEboHVHw.js new file mode 100644 index 0000000000000000000000000000000000000000..e6e90cb5139617ed37addc1504f5eaa9c72dafba --- /dev/null +++ b/static/assets/Dashboard-DEboHVHw.js @@ -0,0 +1 @@ +import{g as B,d as E,h as i,i as F,o as j,j as $,c as m,a,F as M,r as k,t as b,f as U,m as V,b as W,k as G,n as H,e as c}from"./index-C4edAQLF.js";import{_ as I}from"./HelpTip.vue_vue_type_script_setup_true_lang-CWJidBqq.js";const J={overview(){return B.get("/admin/stats")}},K={class:"space-y-8"},P={class:"grid grid-cols-2 gap-4 md:grid-cols-2 xl:grid-cols-4"},Q={class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},X={class:"mt-4 text-3xl font-semibold text-foreground"},Y={class:"mt-2 text-xs text-muted-foreground"},Z={class:"dashboard-split flex w-full flex-col gap-6"},ee={class:"dashboard-main w-full min-w-0 rounded-3xl border border-border bg-card p-6 overflow-hidden"},te={class:"mt-4 border-t border-border pt-4"},ae={class:"dashboard-side w-full min-w-0 rounded-3xl border border-border bg-card p-6"},oe={class:"mt-6 space-y-4"},le={class:"flex items-center justify-between text-sm"},re={class:"flex items-center gap-2 text-muted-foreground"},se={class:"font-medium text-foreground"},ne={class:"h-2 w-full rounded-full bg-secondary"},ce=E({__name:"Dashboard",setup(ie){const s=i([{label:"账号总数",value:"0",caption:"账号池中已加载的总数量。"},{label:"活跃账号",value:"0",caption:"未过期、未禁用、未限流且可用。"},{label:"失败账号",value:"0",caption:"自动禁用或已过期,需要处理。"},{label:"限流账号",value:"0",caption:"触发 429 限流,冷却中。"}]),p=i([]),x=i([]),_=i([]),y=i([]),w=i({}),v=i(null),h=i(null);let r=null,n=null;const R=F(()=>{const e=Math.max(Number(s.value[0].value),1),t=Number(s.value[1].value),o=Number(s.value[2].value),d=Number(s.value[3].value),u=Math.max(e-t-o-d,0);return[{label:"活跃",value:t,percent:Math.round(t/e*100),barClass:"bg-emerald-500"},{label:"失败",value:o,percent:Math.round(o/e*100),barClass:"bg-destructive"},{label:"限流",value:d,percent:Math.round(d/e*100),barClass:"bg-amber-300"},{label:"空闲",tooltip:"未限流、未失败、未激活使用中的账号(主要是手动禁用)。",value:u,percent:Math.round(u/e*100),barClass:"bg-slate-300"}]});j(async()=>{await T(),q(),O(),window.addEventListener("resize",S)}),$(()=>{window.removeEventListener("resize",S),r&&(r.dispose(),r=null),n&&(n.dispose(),n=null)});function q(){const e=window.echarts;!e||!v.value||(r=e.init(v.value),C(),z())}function O(){const e=window.echarts;!e||!h.value||(n=e.init(h.value),g(),L())}function C(){if(!r)return;r.setOption({tooltip:{trigger:"axis"},legend:{data:["成功(总请求)","失败/限流"],right:0,top:0,textStyle:{color:"#6b6b6b",fontSize:11}},grid:{left:24,right:16,top:44,bottom:24,containLabel:!0},xAxis:{type:"category",data:y.value,boundaryGap:!1,axisLine:{lineStyle:{color:"#d4d4d4"}},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10},splitLine:{lineStyle:{color:"#e5e5e5"}}},series:[{name:"成功(总请求)",type:"line",data:_.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.25},itemStyle:{color:"#0ea5e9"},emphasis:{disabled:!0},z:1},{name:"失败/限流",type:"line",data:x.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.4},itemStyle:{color:"#ef4444"},emphasis:{disabled:!0},z:2}]}),z()}function g(){if(!n)return;const e=Object.entries(w.value).map(([l,f])=>({name:l,value:f.reduce((N,A)=>N+A,0),itemStyle:{color:D(l),borderRadius:8}})).filter(l=>l.value>0),t=window.innerWidth<768,o=t?{data:e.map(l=>l.name),left:"center",bottom:0,orient:"horizontal",textStyle:{color:"#6b6b6b",fontSize:11}}:{data:e.map(l=>l.name),left:0,top:"center",orient:"vertical",textStyle:{color:"#6b6b6b",fontSize:11}},d=t?["50%","38%"]:["66%","50%"],u=t?["40%","62%"]:["52%","78%"];n.setOption({animation:!0,animationDuration:600,animationEasing:"cubicOut",animationDurationUpdate:300,animationEasingUpdate:"cubicOut",tooltip:{trigger:"item",formatter:l=>`${l.name}: ${l.value} 次 (${l.percent}%)`},legend:o,series:[{type:"pie",radius:u,center:d,startAngle:90,animationType:"scale",animationEasing:"cubicOut",avoidLabelOverlap:!0,label:{show:!0,formatter:"{b}",fontSize:11,color:"#6b6b6b"},labelLine:{length:12,length2:10},itemStyle:{borderWidth:2,borderColor:"#fff",borderRadius:10},data:e}]}),L()}function S(){r&&r.resize(),n&&g()}async function T(){try{const e=await J.overview();s.value[0].value=(e.total_accounts??0).toString(),s.value[1].value=(e.active_accounts??0).toString(),s.value[2].value=(e.failed_accounts??0).toString(),s.value[3].value=(e.rate_limited_accounts??0).toString();const t=e.trend||{labels:[],total_requests:[],failed_requests:[],rate_limited_requests:[]};y.value=t.labels||[],p.value=t.total_requests||[];const o=t.failed_requests||[],d=t.rate_limited_requests||[],u=p.value.map((l,f)=>(o[f]||0)+(d[f]||0));x.value=u,_.value=p.value.map(l=>Math.max(l,0)),w.value=t.model_requests||{},C(),g()}catch(e){console.error("Failed to load overview:",e)}}function z(){r&&requestAnimationFrame(()=>{r?.resize()})}function L(){n&&requestAnimationFrame(()=>{n?.resize()})}function D(e){return{"gemini-3-pro-preview":"#0ea5e9","gemini-2.5-pro":"#22c55e","gemini-2.5-flash":"#f59e0b","gemini-3-flash-preview":"#ec4899","gemini-auto":"#64748b"}[e]||"#94a3b8"}return(e,t)=>(c(),m("div",K,[a("section",P,[(c(!0),m(M,null,k(s.value,o=>(c(),m("div",{key:o.label,class:"rounded-3xl border border-border bg-card p-6"},[a("p",Q,b(o.label),1),a("p",X,b(o.value),1),a("p",Y,b(o.caption),1)]))),128))]),a("section",Z,[a("div",ee,[t[1]||(t[1]=a("div",{class:"flex items-center justify-between"},[a("p",{class:"text-sm font-medium text-foreground"},"调用趋势(近12小时)")],-1)),a("div",{ref_key:"trendChartRef",ref:v,class:"mt-6 h-64 w-full max-w-full lg:h-72"},null,512),a("div",te,[t[0]||(t[0]=a("p",{class:"text-sm font-medium text-foreground"},"模型调用分布(近12小时)",-1)),a("div",{ref_key:"modelChartRef",ref:h,class:"mt-4 h-80 w-full max-w-full lg:h-64"},null,512)])]),a("div",ae,[t[2]||(t[2]=a("p",{class:"text-sm font-medium text-foreground"},"账号健康",-1)),a("div",oe,[(c(!0),m(M,null,k(R.value,o=>(c(),m("div",{key:o.label,class:"space-y-2"},[a("div",le,[a("span",re,[U(b(o.label)+" ",1),o.tooltip?(c(),V(I,{key:0,text:o.tooltip},null,8,["text"])):W("",!0)]),a("span",se,b(o.value),1)]),a("div",ne,[a("div",{class:H(["h-2 rounded-full",o.barClass]),style:G({width:o.percent+"%"})},null,6)])]))),128))]),t[3]||(t[3]=a("div",{class:"mt-6 rounded-2xl border border-border bg-secondary/50 p-4 text-xs text-muted-foreground"}," 建议及时处理失败或过期账号,避免影响轮询效率。 ",-1))])])]))}});export{ce as default}; diff --git a/static/assets/Dashboard-DJFtL9nA.js b/static/assets/Dashboard-DJFtL9nA.js new file mode 100644 index 0000000000000000000000000000000000000000..44cdd03d5cbfc18e689e51a42fc1cbfb40a828fd --- /dev/null +++ b/static/assets/Dashboard-DJFtL9nA.js @@ -0,0 +1 @@ +import{g as B,d as E,h as i,i as F,o as j,j as $,c as m,a,F as M,r as k,t as b,f as U,y as V,b as W,k as G,n as H,e as c}from"./index-DrM07qAY.js";import{_ as I}from"./HelpTip.vue_vue_type_script_setup_true_lang-DLBrB24x.js";const J={overview(){return B.get("/admin/stats")}},K={class:"space-y-8"},P={class:"grid grid-cols-2 gap-4 md:grid-cols-2 xl:grid-cols-4"},Q={class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},X={class:"mt-4 text-3xl font-semibold text-foreground"},Y={class:"mt-2 text-xs text-muted-foreground"},Z={class:"dashboard-split flex w-full flex-col gap-6"},ee={class:"dashboard-main w-full min-w-0 rounded-3xl border border-border bg-card p-6 overflow-hidden"},te={class:"mt-4 border-t border-border pt-4"},ae={class:"dashboard-side w-full min-w-0 rounded-3xl border border-border bg-card p-6"},oe={class:"mt-6 space-y-4"},le={class:"flex items-center justify-between text-sm"},re={class:"flex items-center gap-2 text-muted-foreground"},se={class:"font-medium text-foreground"},ne={class:"h-2 w-full rounded-full bg-secondary"},ce=E({__name:"Dashboard",setup(ie){const s=i([{label:"账号总数",value:"0",caption:"账号池中已加载的总数量。"},{label:"活跃账号",value:"0",caption:"未过期、未禁用、未限流且可用。"},{label:"失败账号",value:"0",caption:"自动禁用或已过期,需要处理。"},{label:"限流账号",value:"0",caption:"触发 429 限流,冷却中。"}]),p=i([]),x=i([]),_=i([]),y=i([]),w=i({}),v=i(null),h=i(null);let r=null,n=null;const R=F(()=>{const e=Math.max(Number(s.value[0].value),1),t=Number(s.value[1].value),o=Number(s.value[2].value),d=Number(s.value[3].value),u=Math.max(e-t-o-d,0);return[{label:"活跃",value:t,percent:Math.round(t/e*100),barClass:"bg-emerald-500"},{label:"失败",value:o,percent:Math.round(o/e*100),barClass:"bg-destructive"},{label:"限流",value:d,percent:Math.round(d/e*100),barClass:"bg-amber-300"},{label:"空闲",tooltip:"未限流、未失败、未激活使用中的账号(主要是手动禁用)。",value:u,percent:Math.round(u/e*100),barClass:"bg-slate-300"}]});j(async()=>{await T(),q(),O(),window.addEventListener("resize",S)}),$(()=>{window.removeEventListener("resize",S),r&&(r.dispose(),r=null),n&&(n.dispose(),n=null)});function q(){const e=window.echarts;!e||!v.value||(r=e.init(v.value),C(),z())}function O(){const e=window.echarts;!e||!h.value||(n=e.init(h.value),g(),L())}function C(){if(!r)return;r.setOption({tooltip:{trigger:"axis"},legend:{data:["成功(总请求)","失败/限流"],right:0,top:0,textStyle:{color:"#6b6b6b",fontSize:11}},grid:{left:24,right:16,top:44,bottom:24,containLabel:!0},xAxis:{type:"category",data:y.value,boundaryGap:!1,axisLine:{lineStyle:{color:"#d4d4d4"}},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10},splitLine:{lineStyle:{color:"#e5e5e5"}}},series:[{name:"成功(总请求)",type:"line",data:_.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.25},itemStyle:{color:"#0ea5e9"},emphasis:{disabled:!0},z:1},{name:"失败/限流",type:"line",data:x.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.4},itemStyle:{color:"#ef4444"},emphasis:{disabled:!0},z:2}]}),z()}function g(){if(!n)return;const e=Object.entries(w.value).map(([l,f])=>({name:l,value:f.reduce((N,A)=>N+A,0),itemStyle:{color:D(l),borderRadius:8}})).filter(l=>l.value>0),t=window.innerWidth<768,o=t?{data:e.map(l=>l.name),left:"center",bottom:0,orient:"horizontal",textStyle:{color:"#6b6b6b",fontSize:11}}:{data:e.map(l=>l.name),left:0,top:"center",orient:"vertical",textStyle:{color:"#6b6b6b",fontSize:11}},d=t?["50%","38%"]:["66%","50%"],u=t?["40%","62%"]:["52%","78%"];n.setOption({animation:!0,animationDuration:600,animationEasing:"cubicOut",animationDurationUpdate:300,animationEasingUpdate:"cubicOut",tooltip:{trigger:"item",formatter:l=>`${l.name}: ${l.value} 次 (${l.percent}%)`},legend:o,series:[{type:"pie",radius:u,center:d,startAngle:90,animationType:"scale",animationEasing:"cubicOut",avoidLabelOverlap:!0,label:{show:!0,formatter:"{b}",fontSize:11,color:"#6b6b6b"},labelLine:{length:12,length2:10},itemStyle:{borderWidth:2,borderColor:"#fff",borderRadius:10},data:e}]}),L()}function S(){r&&r.resize(),n&&g()}async function T(){try{const e=await J.overview();s.value[0].value=(e.total_accounts??0).toString(),s.value[1].value=(e.active_accounts??0).toString(),s.value[2].value=(e.failed_accounts??0).toString(),s.value[3].value=(e.rate_limited_accounts??0).toString();const t=e.trend||{labels:[],total_requests:[],failed_requests:[],rate_limited_requests:[]};y.value=t.labels||[],p.value=t.total_requests||[];const o=t.failed_requests||[],d=t.rate_limited_requests||[],u=p.value.map((l,f)=>(o[f]||0)+(d[f]||0));x.value=u,_.value=p.value.map(l=>Math.max(l,0)),w.value=t.model_requests||{},C(),g()}catch(e){console.error("Failed to load overview:",e)}}function z(){r&&requestAnimationFrame(()=>{r?.resize()})}function L(){n&&requestAnimationFrame(()=>{n?.resize()})}function D(e){return{"gemini-3-pro-preview":"#0ea5e9","gemini-2.5-pro":"#22c55e","gemini-2.5-flash":"#f59e0b","gemini-3-flash-preview":"#ec4899","gemini-auto":"#64748b"}[e]||"#94a3b8"}return(e,t)=>(c(),m("div",K,[a("section",P,[(c(!0),m(M,null,k(s.value,o=>(c(),m("div",{key:o.label,class:"rounded-3xl border border-border bg-card p-6"},[a("p",Q,b(o.label),1),a("p",X,b(o.value),1),a("p",Y,b(o.caption),1)]))),128))]),a("section",Z,[a("div",ee,[t[1]||(t[1]=a("div",{class:"flex items-center justify-between"},[a("p",{class:"text-sm font-medium text-foreground"},"调用趋势(近12小时)")],-1)),a("div",{ref_key:"trendChartRef",ref:v,class:"mt-6 h-64 w-full max-w-full lg:h-72"},null,512),a("div",te,[t[0]||(t[0]=a("p",{class:"text-sm font-medium text-foreground"},"模型调用分布(近12小时)",-1)),a("div",{ref_key:"modelChartRef",ref:h,class:"mt-4 h-80 w-full max-w-full lg:h-64"},null,512)])]),a("div",ae,[t[2]||(t[2]=a("p",{class:"text-sm font-medium text-foreground"},"账号健康",-1)),a("div",oe,[(c(!0),m(M,null,k(R.value,o=>(c(),m("div",{key:o.label,class:"space-y-2"},[a("div",le,[a("span",re,[U(b(o.label)+" ",1),o.tooltip?(c(),V(I,{key:0,text:o.tooltip},null,8,["text"])):W("",!0)]),a("span",se,b(o.value),1)]),a("div",ne,[a("div",{class:H(["h-2 rounded-full",o.barClass]),style:G({width:o.percent+"%"})},null,6)])]))),128))]),t[3]||(t[3]=a("div",{class:"mt-6 rounded-2xl border border-border bg-secondary/50 p-4 text-xs text-muted-foreground"}," 建议及时处理失败或过期账号,避免影响轮询效率。 ",-1))])])]))}});export{ce as default}; diff --git a/static/assets/Dashboard-DYON8fDZ.js b/static/assets/Dashboard-DYON8fDZ.js new file mode 100644 index 0000000000000000000000000000000000000000..bf3ed5ec5491b5c3a58a3d3b25af9162430ea11d --- /dev/null +++ b/static/assets/Dashboard-DYON8fDZ.js @@ -0,0 +1 @@ +import{g as B,d as E,h as i,i as F,o as j,j as $,c as m,a,F as M,r as k,t as b,f as U,m as V,b as W,k as G,n as H,e as c}from"./index-CQv2QMzB.js";import{_ as I}from"./HelpTip.vue_vue_type_script_setup_true_lang-Dt22lg9h.js";const J={overview(){return B.get("/admin/stats")}},K={class:"space-y-8"},P={class:"grid grid-cols-2 gap-4 md:grid-cols-2 xl:grid-cols-4"},Q={class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},X={class:"mt-4 text-3xl font-semibold text-foreground"},Y={class:"mt-2 text-xs text-muted-foreground"},Z={class:"dashboard-split flex w-full flex-col gap-6"},ee={class:"dashboard-main w-full min-w-0 rounded-3xl border border-border bg-card p-6 overflow-hidden"},te={class:"mt-4 border-t border-border pt-4"},ae={class:"dashboard-side w-full min-w-0 rounded-3xl border border-border bg-card p-6"},oe={class:"mt-6 space-y-4"},le={class:"flex items-center justify-between text-sm"},re={class:"flex items-center gap-2 text-muted-foreground"},se={class:"font-medium text-foreground"},ne={class:"h-2 w-full rounded-full bg-secondary"},ce=E({__name:"Dashboard",setup(ie){const s=i([{label:"账号总数",value:"0",caption:"账号池中已加载的总数量。"},{label:"活跃账号",value:"0",caption:"未过期、未禁用、未限流且可用。"},{label:"失败账号",value:"0",caption:"自动禁用或已过期,需要处理。"},{label:"限流账号",value:"0",caption:"触发 429 限流,冷却中。"}]),p=i([]),x=i([]),_=i([]),y=i([]),w=i({}),v=i(null),h=i(null);let r=null,n=null;const R=F(()=>{const e=Math.max(Number(s.value[0].value),1),t=Number(s.value[1].value),o=Number(s.value[2].value),d=Number(s.value[3].value),u=Math.max(e-t-o-d,0);return[{label:"活跃",value:t,percent:Math.round(t/e*100),barClass:"bg-emerald-500"},{label:"失败",value:o,percent:Math.round(o/e*100),barClass:"bg-destructive"},{label:"限流",value:d,percent:Math.round(d/e*100),barClass:"bg-amber-300"},{label:"空闲",tooltip:"未限流、未失败、未激活使用中的账号(主要是手动禁用)。",value:u,percent:Math.round(u/e*100),barClass:"bg-slate-300"}]});j(async()=>{await T(),q(),O(),window.addEventListener("resize",S)}),$(()=>{window.removeEventListener("resize",S),r&&(r.dispose(),r=null),n&&(n.dispose(),n=null)});function q(){const e=window.echarts;!e||!v.value||(r=e.init(v.value),C(),z())}function O(){const e=window.echarts;!e||!h.value||(n=e.init(h.value),g(),L())}function C(){if(!r)return;r.setOption({tooltip:{trigger:"axis"},legend:{data:["成功(总请求)","失败/限流"],right:0,top:0,textStyle:{color:"#6b6b6b",fontSize:11}},grid:{left:24,right:16,top:44,bottom:24,containLabel:!0},xAxis:{type:"category",data:y.value,boundaryGap:!1,axisLine:{lineStyle:{color:"#d4d4d4"}},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10},splitLine:{lineStyle:{color:"#e5e5e5"}}},series:[{name:"成功(总请求)",type:"line",data:_.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.25},itemStyle:{color:"#0ea5e9"},emphasis:{disabled:!0},z:1},{name:"失败/限流",type:"line",data:x.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.4},itemStyle:{color:"#ef4444"},emphasis:{disabled:!0},z:2}]}),z()}function g(){if(!n)return;const e=Object.entries(w.value).map(([l,f])=>({name:l,value:f.reduce((N,A)=>N+A,0),itemStyle:{color:D(l),borderRadius:8}})).filter(l=>l.value>0),t=window.innerWidth<768,o=t?{data:e.map(l=>l.name),left:"center",bottom:0,orient:"horizontal",textStyle:{color:"#6b6b6b",fontSize:11}}:{data:e.map(l=>l.name),left:0,top:"center",orient:"vertical",textStyle:{color:"#6b6b6b",fontSize:11}},d=t?["50%","38%"]:["66%","50%"],u=t?["40%","62%"]:["52%","78%"];n.setOption({animation:!0,animationDuration:600,animationEasing:"cubicOut",animationDurationUpdate:300,animationEasingUpdate:"cubicOut",tooltip:{trigger:"item",formatter:l=>`${l.name}: ${l.value} 次 (${l.percent}%)`},legend:o,series:[{type:"pie",radius:u,center:d,startAngle:90,animationType:"scale",animationEasing:"cubicOut",avoidLabelOverlap:!0,label:{show:!0,formatter:"{b}",fontSize:11,color:"#6b6b6b"},labelLine:{length:12,length2:10},itemStyle:{borderWidth:2,borderColor:"#fff",borderRadius:10},data:e}]}),L()}function S(){r&&r.resize(),n&&g()}async function T(){try{const e=await J.overview();s.value[0].value=(e.total_accounts??0).toString(),s.value[1].value=(e.active_accounts??0).toString(),s.value[2].value=(e.failed_accounts??0).toString(),s.value[3].value=(e.rate_limited_accounts??0).toString();const t=e.trend||{labels:[],total_requests:[],failed_requests:[],rate_limited_requests:[]};y.value=t.labels||[],p.value=t.total_requests||[];const o=t.failed_requests||[],d=t.rate_limited_requests||[],u=p.value.map((l,f)=>(o[f]||0)+(d[f]||0));x.value=u,_.value=p.value.map(l=>Math.max(l,0)),w.value=t.model_requests||{},C(),g()}catch(e){console.error("Failed to load overview:",e)}}function z(){r&&requestAnimationFrame(()=>{r?.resize()})}function L(){n&&requestAnimationFrame(()=>{n?.resize()})}function D(e){return{"gemini-3-pro-preview":"#0ea5e9","gemini-2.5-pro":"#22c55e","gemini-2.5-flash":"#f59e0b","gemini-3-flash-preview":"#ec4899","gemini-auto":"#64748b"}[e]||"#94a3b8"}return(e,t)=>(c(),m("div",K,[a("section",P,[(c(!0),m(M,null,k(s.value,o=>(c(),m("div",{key:o.label,class:"rounded-3xl border border-border bg-card p-6"},[a("p",Q,b(o.label),1),a("p",X,b(o.value),1),a("p",Y,b(o.caption),1)]))),128))]),a("section",Z,[a("div",ee,[t[1]||(t[1]=a("div",{class:"flex items-center justify-between"},[a("p",{class:"text-sm font-medium text-foreground"},"调用趋势(近12小时)")],-1)),a("div",{ref_key:"trendChartRef",ref:v,class:"mt-6 h-64 w-full max-w-full lg:h-72"},null,512),a("div",te,[t[0]||(t[0]=a("p",{class:"text-sm font-medium text-foreground"},"模型调用分布(近12小时)",-1)),a("div",{ref_key:"modelChartRef",ref:h,class:"mt-4 h-80 w-full max-w-full lg:h-64"},null,512)])]),a("div",ae,[t[2]||(t[2]=a("p",{class:"text-sm font-medium text-foreground"},"账号健康",-1)),a("div",oe,[(c(!0),m(M,null,k(R.value,o=>(c(),m("div",{key:o.label,class:"space-y-2"},[a("div",le,[a("span",re,[U(b(o.label)+" ",1),o.tooltip?(c(),V(I,{key:0,text:o.tooltip},null,8,["text"])):W("",!0)]),a("span",se,b(o.value),1)]),a("div",ne,[a("div",{class:H(["h-2 rounded-full",o.barClass]),style:G({width:o.percent+"%"})},null,6)])]))),128))]),t[3]||(t[3]=a("div",{class:"mt-6 rounded-2xl border border-border bg-secondary/50 p-4 text-xs text-muted-foreground"}," 建议及时处理失败或过期账号,避免影响轮询效率。 ",-1))])])]))}});export{ce as default}; diff --git a/static/assets/Dashboard-DaZ0njmu.js b/static/assets/Dashboard-DaZ0njmu.js new file mode 100644 index 0000000000000000000000000000000000000000..009cc3dda2c5e94d4c4f3647ce620a79c7715971 --- /dev/null +++ b/static/assets/Dashboard-DaZ0njmu.js @@ -0,0 +1 @@ +import{g as B,d as E,h as i,i as F,o as j,j as $,c as m,a,F as M,r as k,t as b,f as U,m as V,b as W,k as G,n as H,e as c}from"./index-B38eA7T4.js";import{_ as I}from"./HelpTip.vue_vue_type_script_setup_true_lang-P0lttIQ0.js";const J={overview(){return B.get("/admin/stats")}},K={class:"space-y-8"},P={class:"grid grid-cols-2 gap-4 md:grid-cols-2 xl:grid-cols-4"},Q={class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},X={class:"mt-4 text-3xl font-semibold text-foreground"},Y={class:"mt-2 text-xs text-muted-foreground"},Z={class:"dashboard-split flex w-full flex-col gap-6"},ee={class:"dashboard-main w-full min-w-0 rounded-3xl border border-border bg-card p-6 overflow-hidden"},te={class:"mt-4 border-t border-border pt-4"},ae={class:"dashboard-side w-full min-w-0 rounded-3xl border border-border bg-card p-6"},oe={class:"mt-6 space-y-4"},le={class:"flex items-center justify-between text-sm"},re={class:"flex items-center gap-2 text-muted-foreground"},se={class:"font-medium text-foreground"},ne={class:"h-2 w-full rounded-full bg-secondary"},ce=E({__name:"Dashboard",setup(ie){const s=i([{label:"账号总数",value:"0",caption:"账号池中已加载的总数量。"},{label:"活跃账号",value:"0",caption:"未过期、未禁用、未限流且可用。"},{label:"失败账号",value:"0",caption:"自动禁用或已过期,需要处理。"},{label:"限流账号",value:"0",caption:"触发 429 限流,冷却中。"}]),p=i([]),x=i([]),_=i([]),y=i([]),w=i({}),v=i(null),h=i(null);let r=null,n=null;const R=F(()=>{const e=Math.max(Number(s.value[0].value),1),t=Number(s.value[1].value),o=Number(s.value[2].value),d=Number(s.value[3].value),u=Math.max(e-t-o-d,0);return[{label:"活跃",value:t,percent:Math.round(t/e*100),barClass:"bg-emerald-500"},{label:"失败",value:o,percent:Math.round(o/e*100),barClass:"bg-destructive"},{label:"限流",value:d,percent:Math.round(d/e*100),barClass:"bg-amber-300"},{label:"空闲",tooltip:"未限流、未失败、未激活使用中的账号(主要是手动禁用)。",value:u,percent:Math.round(u/e*100),barClass:"bg-slate-300"}]});j(async()=>{await T(),q(),O(),window.addEventListener("resize",S)}),$(()=>{window.removeEventListener("resize",S),r&&(r.dispose(),r=null),n&&(n.dispose(),n=null)});function q(){const e=window.echarts;!e||!v.value||(r=e.init(v.value),C(),z())}function O(){const e=window.echarts;!e||!h.value||(n=e.init(h.value),g(),L())}function C(){if(!r)return;r.setOption({tooltip:{trigger:"axis"},legend:{data:["成功(总请求)","失败/限流"],right:0,top:0,textStyle:{color:"#6b6b6b",fontSize:11}},grid:{left:24,right:16,top:44,bottom:24,containLabel:!0},xAxis:{type:"category",data:y.value,boundaryGap:!1,axisLine:{lineStyle:{color:"#d4d4d4"}},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10},splitLine:{lineStyle:{color:"#e5e5e5"}}},series:[{name:"成功(总请求)",type:"line",data:_.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.25},itemStyle:{color:"#0ea5e9"},emphasis:{disabled:!0},z:1},{name:"失败/限流",type:"line",data:x.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.4},itemStyle:{color:"#ef4444"},emphasis:{disabled:!0},z:2}]}),z()}function g(){if(!n)return;const e=Object.entries(w.value).map(([l,f])=>({name:l,value:f.reduce((N,A)=>N+A,0),itemStyle:{color:D(l),borderRadius:8}})).filter(l=>l.value>0),t=window.innerWidth<768,o=t?{data:e.map(l=>l.name),left:"center",bottom:0,orient:"horizontal",textStyle:{color:"#6b6b6b",fontSize:11}}:{data:e.map(l=>l.name),left:0,top:"center",orient:"vertical",textStyle:{color:"#6b6b6b",fontSize:11}},d=t?["50%","38%"]:["66%","50%"],u=t?["40%","62%"]:["52%","78%"];n.setOption({animation:!0,animationDuration:600,animationEasing:"cubicOut",animationDurationUpdate:300,animationEasingUpdate:"cubicOut",tooltip:{trigger:"item",formatter:l=>`${l.name}: ${l.value} 次 (${l.percent}%)`},legend:o,series:[{type:"pie",radius:u,center:d,startAngle:90,animationType:"scale",animationEasing:"cubicOut",avoidLabelOverlap:!0,label:{show:!0,formatter:"{b}",fontSize:11,color:"#6b6b6b"},labelLine:{length:12,length2:10},itemStyle:{borderWidth:2,borderColor:"#fff",borderRadius:10},data:e}]}),L()}function S(){r&&r.resize(),n&&g()}async function T(){try{const e=await J.overview();s.value[0].value=(e.total_accounts??0).toString(),s.value[1].value=(e.active_accounts??0).toString(),s.value[2].value=(e.failed_accounts??0).toString(),s.value[3].value=(e.rate_limited_accounts??0).toString();const t=e.trend||{labels:[],total_requests:[],failed_requests:[],rate_limited_requests:[]};y.value=t.labels||[],p.value=t.total_requests||[];const o=t.failed_requests||[],d=t.rate_limited_requests||[],u=p.value.map((l,f)=>(o[f]||0)+(d[f]||0));x.value=u,_.value=p.value.map(l=>Math.max(l,0)),w.value=t.model_requests||{},C(),g()}catch(e){console.error("Failed to load overview:",e)}}function z(){r&&requestAnimationFrame(()=>{r?.resize()})}function L(){n&&requestAnimationFrame(()=>{n?.resize()})}function D(e){return{"gemini-3-pro-preview":"#0ea5e9","gemini-2.5-pro":"#22c55e","gemini-2.5-flash":"#f59e0b","gemini-3-flash-preview":"#ec4899","gemini-auto":"#64748b"}[e]||"#94a3b8"}return(e,t)=>(c(),m("div",K,[a("section",P,[(c(!0),m(M,null,k(s.value,o=>(c(),m("div",{key:o.label,class:"rounded-3xl border border-border bg-card p-6"},[a("p",Q,b(o.label),1),a("p",X,b(o.value),1),a("p",Y,b(o.caption),1)]))),128))]),a("section",Z,[a("div",ee,[t[1]||(t[1]=a("div",{class:"flex items-center justify-between"},[a("p",{class:"text-sm font-medium text-foreground"},"调用趋势(近12小时)")],-1)),a("div",{ref_key:"trendChartRef",ref:v,class:"mt-6 h-64 w-full max-w-full lg:h-72"},null,512),a("div",te,[t[0]||(t[0]=a("p",{class:"text-sm font-medium text-foreground"},"模型调用分布(近12小时)",-1)),a("div",{ref_key:"modelChartRef",ref:h,class:"mt-4 h-80 w-full max-w-full lg:h-64"},null,512)])]),a("div",ae,[t[2]||(t[2]=a("p",{class:"text-sm font-medium text-foreground"},"账号健康",-1)),a("div",oe,[(c(!0),m(M,null,k(R.value,o=>(c(),m("div",{key:o.label,class:"space-y-2"},[a("div",le,[a("span",re,[U(b(o.label)+" ",1),o.tooltip?(c(),V(I,{key:0,text:o.tooltip},null,8,["text"])):W("",!0)]),a("span",se,b(o.value),1)]),a("div",ne,[a("div",{class:H(["h-2 rounded-full",o.barClass]),style:G({width:o.percent+"%"})},null,6)])]))),128))]),t[3]||(t[3]=a("div",{class:"mt-6 rounded-2xl border border-border bg-secondary/50 p-4 text-xs text-muted-foreground"}," 建议及时处理失败或过期账号,避免影响轮询效率。 ",-1))])])]))}});export{ce as default}; diff --git a/static/assets/Dashboard-DgbmuyTS.js b/static/assets/Dashboard-DgbmuyTS.js new file mode 100644 index 0000000000000000000000000000000000000000..6b66c5461bcf54018ff8cf63e9d9e7300e63a703 --- /dev/null +++ b/static/assets/Dashboard-DgbmuyTS.js @@ -0,0 +1 @@ +import{g as B,d as E,h as i,i as F,o as j,j as $,c as m,a,F as M,r as k,t as b,f as U,y as V,b as W,k as G,n as H,e as c}from"./index-BRg_yWJl.js";import{_ as I}from"./HelpTip.vue_vue_type_script_setup_true_lang-D8gzoJNA.js";const J={overview(){return B.get("/admin/stats")}},K={class:"space-y-8"},P={class:"grid grid-cols-2 gap-4 md:grid-cols-2 xl:grid-cols-4"},Q={class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},X={class:"mt-4 text-3xl font-semibold text-foreground"},Y={class:"mt-2 text-xs text-muted-foreground"},Z={class:"dashboard-split flex w-full flex-col gap-6"},ee={class:"dashboard-main w-full min-w-0 rounded-3xl border border-border bg-card p-6 overflow-hidden"},te={class:"mt-4 border-t border-border pt-4"},ae={class:"dashboard-side w-full min-w-0 rounded-3xl border border-border bg-card p-6"},oe={class:"mt-6 space-y-4"},le={class:"flex items-center justify-between text-sm"},re={class:"flex items-center gap-2 text-muted-foreground"},se={class:"font-medium text-foreground"},ne={class:"h-2 w-full rounded-full bg-secondary"},ce=E({__name:"Dashboard",setup(ie){const s=i([{label:"账号总数",value:"0",caption:"账号池中已加载的总数量。"},{label:"活跃账号",value:"0",caption:"未过期、未禁用、未限流且可用。"},{label:"失败账号",value:"0",caption:"自动禁用或已过期,需要处理。"},{label:"限流账号",value:"0",caption:"触发 429 限流,冷却中。"}]),p=i([]),x=i([]),_=i([]),y=i([]),w=i({}),v=i(null),h=i(null);let r=null,n=null;const R=F(()=>{const e=Math.max(Number(s.value[0].value),1),t=Number(s.value[1].value),o=Number(s.value[2].value),d=Number(s.value[3].value),u=Math.max(e-t-o-d,0);return[{label:"活跃",value:t,percent:Math.round(t/e*100),barClass:"bg-emerald-500"},{label:"失败",value:o,percent:Math.round(o/e*100),barClass:"bg-destructive"},{label:"限流",value:d,percent:Math.round(d/e*100),barClass:"bg-amber-300"},{label:"空闲",tooltip:"未限流、未失败、未激活使用中的账号(主要是手动禁用)。",value:u,percent:Math.round(u/e*100),barClass:"bg-slate-300"}]});j(async()=>{await T(),q(),O(),window.addEventListener("resize",S)}),$(()=>{window.removeEventListener("resize",S),r&&(r.dispose(),r=null),n&&(n.dispose(),n=null)});function q(){const e=window.echarts;!e||!v.value||(r=e.init(v.value),C(),z())}function O(){const e=window.echarts;!e||!h.value||(n=e.init(h.value),g(),L())}function C(){if(!r)return;r.setOption({tooltip:{trigger:"axis"},legend:{data:["成功(总请求)","失败/限流"],right:0,top:0,textStyle:{color:"#6b6b6b",fontSize:11}},grid:{left:24,right:16,top:44,bottom:24,containLabel:!0},xAxis:{type:"category",data:y.value,boundaryGap:!1,axisLine:{lineStyle:{color:"#d4d4d4"}},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10},splitLine:{lineStyle:{color:"#e5e5e5"}}},series:[{name:"成功(总请求)",type:"line",data:_.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.25},itemStyle:{color:"#0ea5e9"},emphasis:{disabled:!0},z:1},{name:"失败/限流",type:"line",data:x.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.4},itemStyle:{color:"#ef4444"},emphasis:{disabled:!0},z:2}]}),z()}function g(){if(!n)return;const e=Object.entries(w.value).map(([l,f])=>({name:l,value:f.reduce((N,A)=>N+A,0),itemStyle:{color:D(l),borderRadius:8}})).filter(l=>l.value>0),t=window.innerWidth<768,o=t?{data:e.map(l=>l.name),left:"center",bottom:0,orient:"horizontal",textStyle:{color:"#6b6b6b",fontSize:11}}:{data:e.map(l=>l.name),left:0,top:"center",orient:"vertical",textStyle:{color:"#6b6b6b",fontSize:11}},d=t?["50%","38%"]:["66%","50%"],u=t?["40%","62%"]:["52%","78%"];n.setOption({animation:!0,animationDuration:600,animationEasing:"cubicOut",animationDurationUpdate:300,animationEasingUpdate:"cubicOut",tooltip:{trigger:"item",formatter:l=>`${l.name}: ${l.value} 次 (${l.percent}%)`},legend:o,series:[{type:"pie",radius:u,center:d,startAngle:90,animationType:"scale",animationEasing:"cubicOut",avoidLabelOverlap:!0,label:{show:!0,formatter:"{b}",fontSize:11,color:"#6b6b6b"},labelLine:{length:12,length2:10},itemStyle:{borderWidth:2,borderColor:"#fff",borderRadius:10},data:e}]}),L()}function S(){r&&r.resize(),n&&g()}async function T(){try{const e=await J.overview();s.value[0].value=(e.total_accounts??0).toString(),s.value[1].value=(e.active_accounts??0).toString(),s.value[2].value=(e.failed_accounts??0).toString(),s.value[3].value=(e.rate_limited_accounts??0).toString();const t=e.trend||{labels:[],total_requests:[],failed_requests:[],rate_limited_requests:[]};y.value=t.labels||[],p.value=t.total_requests||[];const o=t.failed_requests||[],d=t.rate_limited_requests||[],u=p.value.map((l,f)=>(o[f]||0)+(d[f]||0));x.value=u,_.value=p.value.map(l=>Math.max(l,0)),w.value=t.model_requests||{},C(),g()}catch(e){console.error("Failed to load overview:",e)}}function z(){r&&requestAnimationFrame(()=>{r?.resize()})}function L(){n&&requestAnimationFrame(()=>{n?.resize()})}function D(e){return{"gemini-3-pro-preview":"#0ea5e9","gemini-2.5-pro":"#22c55e","gemini-2.5-flash":"#f59e0b","gemini-3-flash-preview":"#ec4899","gemini-auto":"#64748b"}[e]||"#94a3b8"}return(e,t)=>(c(),m("div",K,[a("section",P,[(c(!0),m(M,null,k(s.value,o=>(c(),m("div",{key:o.label,class:"rounded-3xl border border-border bg-card p-6"},[a("p",Q,b(o.label),1),a("p",X,b(o.value),1),a("p",Y,b(o.caption),1)]))),128))]),a("section",Z,[a("div",ee,[t[1]||(t[1]=a("div",{class:"flex items-center justify-between"},[a("p",{class:"text-sm font-medium text-foreground"},"调用趋势(近12小时)")],-1)),a("div",{ref_key:"trendChartRef",ref:v,class:"mt-6 h-64 w-full max-w-full lg:h-72"},null,512),a("div",te,[t[0]||(t[0]=a("p",{class:"text-sm font-medium text-foreground"},"模型调用分布(近12小时)",-1)),a("div",{ref_key:"modelChartRef",ref:h,class:"mt-4 h-80 w-full max-w-full lg:h-64"},null,512)])]),a("div",ae,[t[2]||(t[2]=a("p",{class:"text-sm font-medium text-foreground"},"账号健康",-1)),a("div",oe,[(c(!0),m(M,null,k(R.value,o=>(c(),m("div",{key:o.label,class:"space-y-2"},[a("div",le,[a("span",re,[U(b(o.label)+" ",1),o.tooltip?(c(),V(I,{key:0,text:o.tooltip},null,8,["text"])):W("",!0)]),a("span",se,b(o.value),1)]),a("div",ne,[a("div",{class:H(["h-2 rounded-full",o.barClass]),style:G({width:o.percent+"%"})},null,6)])]))),128))]),t[3]||(t[3]=a("div",{class:"mt-6 rounded-2xl border border-border bg-secondary/50 p-4 text-xs text-muted-foreground"}," 建议及时处理失败或过期账号,避免影响轮询效率。 ",-1))])])]))}});export{ce as default}; diff --git a/static/assets/Dashboard-Dj9ZvQRR.js b/static/assets/Dashboard-Dj9ZvQRR.js new file mode 100644 index 0000000000000000000000000000000000000000..49dde3ef4fcd443995eff24bfe6a707f2a3dcce0 --- /dev/null +++ b/static/assets/Dashboard-Dj9ZvQRR.js @@ -0,0 +1 @@ +import{g as B,d as E,h as i,i as F,o as j,j as $,c as m,a,F as M,r as k,t as b,f as U,y as V,b as W,k as G,n as H,e as c}from"./index-CkXB0iyt.js";import{_ as I}from"./HelpTip.vue_vue_type_script_setup_true_lang-PWvzGrPg.js";const J={overview(){return B.get("/admin/stats")}},K={class:"space-y-8"},P={class:"grid grid-cols-2 gap-4 md:grid-cols-2 xl:grid-cols-4"},Q={class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},X={class:"mt-4 text-3xl font-semibold text-foreground"},Y={class:"mt-2 text-xs text-muted-foreground"},Z={class:"dashboard-split flex w-full flex-col gap-6"},ee={class:"dashboard-main w-full min-w-0 rounded-3xl border border-border bg-card p-6 overflow-hidden"},te={class:"mt-4 border-t border-border pt-4"},ae={class:"dashboard-side w-full min-w-0 rounded-3xl border border-border bg-card p-6"},oe={class:"mt-6 space-y-4"},le={class:"flex items-center justify-between text-sm"},re={class:"flex items-center gap-2 text-muted-foreground"},se={class:"font-medium text-foreground"},ne={class:"h-2 w-full rounded-full bg-secondary"},ce=E({__name:"Dashboard",setup(ie){const s=i([{label:"账号总数",value:"0",caption:"账号池中已加载的总数量。"},{label:"活跃账号",value:"0",caption:"未过期、未禁用、未限流且可用。"},{label:"失败账号",value:"0",caption:"自动禁用或已过期,需要处理。"},{label:"限流账号",value:"0",caption:"触发 429 限流,冷却中。"}]),p=i([]),x=i([]),_=i([]),y=i([]),w=i({}),v=i(null),h=i(null);let r=null,n=null;const R=F(()=>{const e=Math.max(Number(s.value[0].value),1),t=Number(s.value[1].value),o=Number(s.value[2].value),d=Number(s.value[3].value),u=Math.max(e-t-o-d,0);return[{label:"活跃",value:t,percent:Math.round(t/e*100),barClass:"bg-emerald-500"},{label:"失败",value:o,percent:Math.round(o/e*100),barClass:"bg-destructive"},{label:"限流",value:d,percent:Math.round(d/e*100),barClass:"bg-amber-300"},{label:"空闲",tooltip:"未限流、未失败、未激活使用中的账号(主要是手动禁用)。",value:u,percent:Math.round(u/e*100),barClass:"bg-slate-300"}]});j(async()=>{await T(),q(),O(),window.addEventListener("resize",S)}),$(()=>{window.removeEventListener("resize",S),r&&(r.dispose(),r=null),n&&(n.dispose(),n=null)});function q(){const e=window.echarts;!e||!v.value||(r=e.init(v.value),C(),z())}function O(){const e=window.echarts;!e||!h.value||(n=e.init(h.value),g(),L())}function C(){if(!r)return;r.setOption({tooltip:{trigger:"axis"},legend:{data:["成功(总请求)","失败/限流"],right:0,top:0,textStyle:{color:"#6b6b6b",fontSize:11}},grid:{left:24,right:16,top:44,bottom:24,containLabel:!0},xAxis:{type:"category",data:y.value,boundaryGap:!1,axisLine:{lineStyle:{color:"#d4d4d4"}},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10},splitLine:{lineStyle:{color:"#e5e5e5"}}},series:[{name:"成功(总请求)",type:"line",data:_.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.25},itemStyle:{color:"#0ea5e9"},emphasis:{disabled:!0},z:1},{name:"失败/限流",type:"line",data:x.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.4},itemStyle:{color:"#ef4444"},emphasis:{disabled:!0},z:2}]}),z()}function g(){if(!n)return;const e=Object.entries(w.value).map(([l,f])=>({name:l,value:f.reduce((N,A)=>N+A,0),itemStyle:{color:D(l),borderRadius:8}})).filter(l=>l.value>0),t=window.innerWidth<768,o=t?{data:e.map(l=>l.name),left:"center",bottom:0,orient:"horizontal",textStyle:{color:"#6b6b6b",fontSize:11}}:{data:e.map(l=>l.name),left:0,top:"center",orient:"vertical",textStyle:{color:"#6b6b6b",fontSize:11}},d=t?["50%","38%"]:["66%","50%"],u=t?["40%","62%"]:["52%","78%"];n.setOption({animation:!0,animationDuration:600,animationEasing:"cubicOut",animationDurationUpdate:300,animationEasingUpdate:"cubicOut",tooltip:{trigger:"item",formatter:l=>`${l.name}: ${l.value} 次 (${l.percent}%)`},legend:o,series:[{type:"pie",radius:u,center:d,startAngle:90,animationType:"scale",animationEasing:"cubicOut",avoidLabelOverlap:!0,label:{show:!0,formatter:"{b}",fontSize:11,color:"#6b6b6b"},labelLine:{length:12,length2:10},itemStyle:{borderWidth:2,borderColor:"#fff",borderRadius:10},data:e}]}),L()}function S(){r&&r.resize(),n&&g()}async function T(){try{const e=await J.overview();s.value[0].value=(e.total_accounts??0).toString(),s.value[1].value=(e.active_accounts??0).toString(),s.value[2].value=(e.failed_accounts??0).toString(),s.value[3].value=(e.rate_limited_accounts??0).toString();const t=e.trend||{labels:[],total_requests:[],failed_requests:[],rate_limited_requests:[]};y.value=t.labels||[],p.value=t.total_requests||[];const o=t.failed_requests||[],d=t.rate_limited_requests||[],u=p.value.map((l,f)=>(o[f]||0)+(d[f]||0));x.value=u,_.value=p.value.map(l=>Math.max(l,0)),w.value=t.model_requests||{},C(),g()}catch(e){console.error("Failed to load overview:",e)}}function z(){r&&requestAnimationFrame(()=>{r?.resize()})}function L(){n&&requestAnimationFrame(()=>{n?.resize()})}function D(e){return{"gemini-3-pro-preview":"#0ea5e9","gemini-2.5-pro":"#22c55e","gemini-2.5-flash":"#f59e0b","gemini-3-flash-preview":"#ec4899","gemini-auto":"#64748b"}[e]||"#94a3b8"}return(e,t)=>(c(),m("div",K,[a("section",P,[(c(!0),m(M,null,k(s.value,o=>(c(),m("div",{key:o.label,class:"rounded-3xl border border-border bg-card p-6"},[a("p",Q,b(o.label),1),a("p",X,b(o.value),1),a("p",Y,b(o.caption),1)]))),128))]),a("section",Z,[a("div",ee,[t[1]||(t[1]=a("div",{class:"flex items-center justify-between"},[a("p",{class:"text-sm font-medium text-foreground"},"调用趋势(近12小时)")],-1)),a("div",{ref_key:"trendChartRef",ref:v,class:"mt-6 h-64 w-full max-w-full lg:h-72"},null,512),a("div",te,[t[0]||(t[0]=a("p",{class:"text-sm font-medium text-foreground"},"模型调用分布(近12小时)",-1)),a("div",{ref_key:"modelChartRef",ref:h,class:"mt-4 h-80 w-full max-w-full lg:h-64"},null,512)])]),a("div",ae,[t[2]||(t[2]=a("p",{class:"text-sm font-medium text-foreground"},"账号健康",-1)),a("div",oe,[(c(!0),m(M,null,k(R.value,o=>(c(),m("div",{key:o.label,class:"space-y-2"},[a("div",le,[a("span",re,[U(b(o.label)+" ",1),o.tooltip?(c(),V(I,{key:0,text:o.tooltip},null,8,["text"])):W("",!0)]),a("span",se,b(o.value),1)]),a("div",ne,[a("div",{class:H(["h-2 rounded-full",o.barClass]),style:G({width:o.percent+"%"})},null,6)])]))),128))]),t[3]||(t[3]=a("div",{class:"mt-6 rounded-2xl border border-border bg-secondary/50 p-4 text-xs text-muted-foreground"}," 建议及时处理失败或过期账号,避免影响轮询效率。 ",-1))])])]))}});export{ce as default}; diff --git a/static/assets/Dashboard-DmuyjUdf.js b/static/assets/Dashboard-DmuyjUdf.js new file mode 100644 index 0000000000000000000000000000000000000000..72b74e070461e8a5771780f537d22d7937b02178 --- /dev/null +++ b/static/assets/Dashboard-DmuyjUdf.js @@ -0,0 +1 @@ +import{g as B,d as E,h as i,i as F,o as j,j as $,c as m,a,F as M,r as k,t as b,f as U,y as V,b as W,k as G,n as H,e as c}from"./index-CDbQWWUi.js";import{_ as I}from"./HelpTip.vue_vue_type_script_setup_true_lang-Cw2hnECN.js";const J={overview(){return B.get("/admin/stats")}},K={class:"space-y-8"},P={class:"grid grid-cols-2 gap-4 md:grid-cols-2 xl:grid-cols-4"},Q={class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},X={class:"mt-4 text-3xl font-semibold text-foreground"},Y={class:"mt-2 text-xs text-muted-foreground"},Z={class:"dashboard-split flex w-full flex-col gap-6"},ee={class:"dashboard-main w-full min-w-0 rounded-3xl border border-border bg-card p-6 overflow-hidden"},te={class:"mt-4 border-t border-border pt-4"},ae={class:"dashboard-side w-full min-w-0 rounded-3xl border border-border bg-card p-6"},oe={class:"mt-6 space-y-4"},le={class:"flex items-center justify-between text-sm"},re={class:"flex items-center gap-2 text-muted-foreground"},se={class:"font-medium text-foreground"},ne={class:"h-2 w-full rounded-full bg-secondary"},ce=E({__name:"Dashboard",setup(ie){const s=i([{label:"账号总数",value:"0",caption:"账号池中已加载的总数量。"},{label:"活跃账号",value:"0",caption:"未过期、未禁用、未限流且可用。"},{label:"失败账号",value:"0",caption:"自动禁用或已过期,需要处理。"},{label:"限流账号",value:"0",caption:"触发 429 限流,冷却中。"}]),p=i([]),x=i([]),_=i([]),y=i([]),w=i({}),v=i(null),h=i(null);let r=null,n=null;const R=F(()=>{const e=Math.max(Number(s.value[0].value),1),t=Number(s.value[1].value),o=Number(s.value[2].value),d=Number(s.value[3].value),u=Math.max(e-t-o-d,0);return[{label:"活跃",value:t,percent:Math.round(t/e*100),barClass:"bg-emerald-500"},{label:"失败",value:o,percent:Math.round(o/e*100),barClass:"bg-destructive"},{label:"限流",value:d,percent:Math.round(d/e*100),barClass:"bg-amber-300"},{label:"空闲",tooltip:"未限流、未失败、未激活使用中的账号(主要是手动禁用)。",value:u,percent:Math.round(u/e*100),barClass:"bg-slate-300"}]});j(async()=>{await T(),q(),O(),window.addEventListener("resize",S)}),$(()=>{window.removeEventListener("resize",S),r&&(r.dispose(),r=null),n&&(n.dispose(),n=null)});function q(){const e=window.echarts;!e||!v.value||(r=e.init(v.value),C(),z())}function O(){const e=window.echarts;!e||!h.value||(n=e.init(h.value),g(),L())}function C(){if(!r)return;r.setOption({tooltip:{trigger:"axis"},legend:{data:["成功(总请求)","失败/限流"],right:0,top:0,textStyle:{color:"#6b6b6b",fontSize:11}},grid:{left:24,right:16,top:44,bottom:24,containLabel:!0},xAxis:{type:"category",data:y.value,boundaryGap:!1,axisLine:{lineStyle:{color:"#d4d4d4"}},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10},splitLine:{lineStyle:{color:"#e5e5e5"}}},series:[{name:"成功(总请求)",type:"line",data:_.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.25},itemStyle:{color:"#0ea5e9"},emphasis:{disabled:!0},z:1},{name:"失败/限流",type:"line",data:x.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.4},itemStyle:{color:"#ef4444"},emphasis:{disabled:!0},z:2}]}),z()}function g(){if(!n)return;const e=Object.entries(w.value).map(([l,f])=>({name:l,value:f.reduce((N,A)=>N+A,0),itemStyle:{color:D(l),borderRadius:8}})).filter(l=>l.value>0),t=window.innerWidth<768,o=t?{data:e.map(l=>l.name),left:"center",bottom:0,orient:"horizontal",textStyle:{color:"#6b6b6b",fontSize:11}}:{data:e.map(l=>l.name),left:0,top:"center",orient:"vertical",textStyle:{color:"#6b6b6b",fontSize:11}},d=t?["50%","38%"]:["66%","50%"],u=t?["40%","62%"]:["52%","78%"];n.setOption({animation:!0,animationDuration:600,animationEasing:"cubicOut",animationDurationUpdate:300,animationEasingUpdate:"cubicOut",tooltip:{trigger:"item",formatter:l=>`${l.name}: ${l.value} 次 (${l.percent}%)`},legend:o,series:[{type:"pie",radius:u,center:d,startAngle:90,animationType:"scale",animationEasing:"cubicOut",avoidLabelOverlap:!0,label:{show:!0,formatter:"{b}",fontSize:11,color:"#6b6b6b"},labelLine:{length:12,length2:10},itemStyle:{borderWidth:2,borderColor:"#fff",borderRadius:10},data:e}]}),L()}function S(){r&&r.resize(),n&&g()}async function T(){try{const e=await J.overview();s.value[0].value=(e.total_accounts??0).toString(),s.value[1].value=(e.active_accounts??0).toString(),s.value[2].value=(e.failed_accounts??0).toString(),s.value[3].value=(e.rate_limited_accounts??0).toString();const t=e.trend||{labels:[],total_requests:[],failed_requests:[],rate_limited_requests:[]};y.value=t.labels||[],p.value=t.total_requests||[];const o=t.failed_requests||[],d=t.rate_limited_requests||[],u=p.value.map((l,f)=>(o[f]||0)+(d[f]||0));x.value=u,_.value=p.value.map(l=>Math.max(l,0)),w.value=t.model_requests||{},C(),g()}catch(e){console.error("Failed to load overview:",e)}}function z(){r&&requestAnimationFrame(()=>{r?.resize()})}function L(){n&&requestAnimationFrame(()=>{n?.resize()})}function D(e){return{"gemini-3-pro-preview":"#0ea5e9","gemini-2.5-pro":"#22c55e","gemini-2.5-flash":"#f59e0b","gemini-3-flash-preview":"#ec4899","gemini-auto":"#64748b"}[e]||"#94a3b8"}return(e,t)=>(c(),m("div",K,[a("section",P,[(c(!0),m(M,null,k(s.value,o=>(c(),m("div",{key:o.label,class:"rounded-3xl border border-border bg-card p-6"},[a("p",Q,b(o.label),1),a("p",X,b(o.value),1),a("p",Y,b(o.caption),1)]))),128))]),a("section",Z,[a("div",ee,[t[1]||(t[1]=a("div",{class:"flex items-center justify-between"},[a("p",{class:"text-sm font-medium text-foreground"},"调用趋势(近12小时)")],-1)),a("div",{ref_key:"trendChartRef",ref:v,class:"mt-6 h-64 w-full max-w-full lg:h-72"},null,512),a("div",te,[t[0]||(t[0]=a("p",{class:"text-sm font-medium text-foreground"},"模型调用分布(近12小时)",-1)),a("div",{ref_key:"modelChartRef",ref:h,class:"mt-4 h-80 w-full max-w-full lg:h-64"},null,512)])]),a("div",ae,[t[2]||(t[2]=a("p",{class:"text-sm font-medium text-foreground"},"账号健康",-1)),a("div",oe,[(c(!0),m(M,null,k(R.value,o=>(c(),m("div",{key:o.label,class:"space-y-2"},[a("div",le,[a("span",re,[U(b(o.label)+" ",1),o.tooltip?(c(),V(I,{key:0,text:o.tooltip},null,8,["text"])):W("",!0)]),a("span",se,b(o.value),1)]),a("div",ne,[a("div",{class:H(["h-2 rounded-full",o.barClass]),style:G({width:o.percent+"%"})},null,6)])]))),128))]),t[3]||(t[3]=a("div",{class:"mt-6 rounded-2xl border border-border bg-secondary/50 p-4 text-xs text-muted-foreground"}," 建议及时处理失败或过期账号,避免影响轮询效率。 ",-1))])])]))}});export{ce as default}; diff --git a/static/assets/Dashboard-DxzMNPjd.js b/static/assets/Dashboard-DxzMNPjd.js new file mode 100644 index 0000000000000000000000000000000000000000..107eb6730ce435843deb53ae844882b886ac507b --- /dev/null +++ b/static/assets/Dashboard-DxzMNPjd.js @@ -0,0 +1 @@ +import{g as B,d as E,h as i,i as F,o as j,j as $,c as m,a,F as M,r as k,t as b,f as U,m as V,b as W,k as G,n as H,e as c}from"./index-Dul9zA0O.js";import{_ as I}from"./HelpTip.vue_vue_type_script_setup_true_lang-ZZDQpvjn.js";const J={overview(){return B.get("/admin/stats")}},K={class:"space-y-8"},P={class:"grid grid-cols-2 gap-4 md:grid-cols-2 xl:grid-cols-4"},Q={class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},X={class:"mt-4 text-3xl font-semibold text-foreground"},Y={class:"mt-2 text-xs text-muted-foreground"},Z={class:"dashboard-split flex w-full flex-col gap-6"},ee={class:"dashboard-main w-full min-w-0 rounded-3xl border border-border bg-card p-6 overflow-hidden"},te={class:"mt-4 border-t border-border pt-4"},ae={class:"dashboard-side w-full min-w-0 rounded-3xl border border-border bg-card p-6"},oe={class:"mt-6 space-y-4"},le={class:"flex items-center justify-between text-sm"},re={class:"flex items-center gap-2 text-muted-foreground"},se={class:"font-medium text-foreground"},ne={class:"h-2 w-full rounded-full bg-secondary"},ce=E({__name:"Dashboard",setup(ie){const s=i([{label:"账号总数",value:"0",caption:"账号池中已加载的总数量。"},{label:"活跃账号",value:"0",caption:"未过期、未禁用、未限流且可用。"},{label:"失败账号",value:"0",caption:"自动禁用或已过期,需要处理。"},{label:"限流账号",value:"0",caption:"触发 429 限流,冷却中。"}]),p=i([]),x=i([]),_=i([]),y=i([]),w=i({}),v=i(null),h=i(null);let r=null,n=null;const R=F(()=>{const e=Math.max(Number(s.value[0].value),1),t=Number(s.value[1].value),o=Number(s.value[2].value),d=Number(s.value[3].value),u=Math.max(e-t-o-d,0);return[{label:"活跃",value:t,percent:Math.round(t/e*100),barClass:"bg-emerald-500"},{label:"失败",value:o,percent:Math.round(o/e*100),barClass:"bg-destructive"},{label:"限流",value:d,percent:Math.round(d/e*100),barClass:"bg-amber-300"},{label:"空闲",tooltip:"未限流、未失败、未激活使用中的账号(主要是手动禁用)。",value:u,percent:Math.round(u/e*100),barClass:"bg-slate-300"}]});j(async()=>{await T(),q(),O(),window.addEventListener("resize",S)}),$(()=>{window.removeEventListener("resize",S),r&&(r.dispose(),r=null),n&&(n.dispose(),n=null)});function q(){const e=window.echarts;!e||!v.value||(r=e.init(v.value),C(),z())}function O(){const e=window.echarts;!e||!h.value||(n=e.init(h.value),g(),L())}function C(){if(!r)return;r.setOption({tooltip:{trigger:"axis"},legend:{data:["成功(总请求)","失败/限流"],right:0,top:0,textStyle:{color:"#6b6b6b",fontSize:11}},grid:{left:24,right:16,top:44,bottom:24,containLabel:!0},xAxis:{type:"category",data:y.value,boundaryGap:!1,axisLine:{lineStyle:{color:"#d4d4d4"}},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10},splitLine:{lineStyle:{color:"#e5e5e5"}}},series:[{name:"成功(总请求)",type:"line",data:_.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.25},itemStyle:{color:"#0ea5e9"},emphasis:{disabled:!0},z:1},{name:"失败/限流",type:"line",data:x.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.4},itemStyle:{color:"#ef4444"},emphasis:{disabled:!0},z:2}]}),z()}function g(){if(!n)return;const e=Object.entries(w.value).map(([l,f])=>({name:l,value:f.reduce((N,A)=>N+A,0),itemStyle:{color:D(l),borderRadius:8}})).filter(l=>l.value>0),t=window.innerWidth<768,o=t?{data:e.map(l=>l.name),left:"center",bottom:0,orient:"horizontal",textStyle:{color:"#6b6b6b",fontSize:11}}:{data:e.map(l=>l.name),left:0,top:"center",orient:"vertical",textStyle:{color:"#6b6b6b",fontSize:11}},d=t?["50%","38%"]:["66%","50%"],u=t?["40%","62%"]:["52%","78%"];n.setOption({animation:!0,animationDuration:600,animationEasing:"cubicOut",animationDurationUpdate:300,animationEasingUpdate:"cubicOut",tooltip:{trigger:"item",formatter:l=>`${l.name}: ${l.value} 次 (${l.percent}%)`},legend:o,series:[{type:"pie",radius:u,center:d,startAngle:90,animationType:"scale",animationEasing:"cubicOut",avoidLabelOverlap:!0,label:{show:!0,formatter:"{b}",fontSize:11,color:"#6b6b6b"},labelLine:{length:12,length2:10},itemStyle:{borderWidth:2,borderColor:"#fff",borderRadius:10},data:e}]}),L()}function S(){r&&r.resize(),n&&g()}async function T(){try{const e=await J.overview();s.value[0].value=(e.total_accounts??0).toString(),s.value[1].value=(e.active_accounts??0).toString(),s.value[2].value=(e.failed_accounts??0).toString(),s.value[3].value=(e.rate_limited_accounts??0).toString();const t=e.trend||{labels:[],total_requests:[],failed_requests:[],rate_limited_requests:[]};y.value=t.labels||[],p.value=t.total_requests||[];const o=t.failed_requests||[],d=t.rate_limited_requests||[],u=p.value.map((l,f)=>(o[f]||0)+(d[f]||0));x.value=u,_.value=p.value.map(l=>Math.max(l,0)),w.value=t.model_requests||{},C(),g()}catch(e){console.error("Failed to load overview:",e)}}function z(){r&&requestAnimationFrame(()=>{r?.resize()})}function L(){n&&requestAnimationFrame(()=>{n?.resize()})}function D(e){return{"gemini-3-pro-preview":"#0ea5e9","gemini-2.5-pro":"#22c55e","gemini-2.5-flash":"#f59e0b","gemini-3-flash-preview":"#ec4899","gemini-auto":"#64748b"}[e]||"#94a3b8"}return(e,t)=>(c(),m("div",K,[a("section",P,[(c(!0),m(M,null,k(s.value,o=>(c(),m("div",{key:o.label,class:"rounded-3xl border border-border bg-card p-6"},[a("p",Q,b(o.label),1),a("p",X,b(o.value),1),a("p",Y,b(o.caption),1)]))),128))]),a("section",Z,[a("div",ee,[t[1]||(t[1]=a("div",{class:"flex items-center justify-between"},[a("p",{class:"text-sm font-medium text-foreground"},"调用趋势(近12小时)")],-1)),a("div",{ref_key:"trendChartRef",ref:v,class:"mt-6 h-64 w-full max-w-full lg:h-72"},null,512),a("div",te,[t[0]||(t[0]=a("p",{class:"text-sm font-medium text-foreground"},"模型调用分布(近12小时)",-1)),a("div",{ref_key:"modelChartRef",ref:h,class:"mt-4 h-80 w-full max-w-full lg:h-64"},null,512)])]),a("div",ae,[t[2]||(t[2]=a("p",{class:"text-sm font-medium text-foreground"},"账号健康",-1)),a("div",oe,[(c(!0),m(M,null,k(R.value,o=>(c(),m("div",{key:o.label,class:"space-y-2"},[a("div",le,[a("span",re,[U(b(o.label)+" ",1),o.tooltip?(c(),V(I,{key:0,text:o.tooltip},null,8,["text"])):W("",!0)]),a("span",se,b(o.value),1)]),a("div",ne,[a("div",{class:H(["h-2 rounded-full",o.barClass]),style:G({width:o.percent+"%"})},null,6)])]))),128))]),t[3]||(t[3]=a("div",{class:"mt-6 rounded-2xl border border-border bg-secondary/50 p-4 text-xs text-muted-foreground"}," 建议及时处理失败或过期账号,避免影响轮询效率。 ",-1))])])]))}});export{ce as default}; diff --git a/static/assets/Dashboard-GAFTK7sS.js b/static/assets/Dashboard-GAFTK7sS.js new file mode 100644 index 0000000000000000000000000000000000000000..0a1391f5e6bd4ef6abd9190bb5a37158bcf8bb16 --- /dev/null +++ b/static/assets/Dashboard-GAFTK7sS.js @@ -0,0 +1 @@ +import{g as B,d as E,h as i,i as F,o as j,j as $,c as m,a,F as M,r as k,t as b,f as U,m as V,b as W,k as G,n as H,e as c}from"./index-CM73xqTK.js";import{_ as I}from"./HelpTip.vue_vue_type_script_setup_true_lang-D0920Okk.js";const J={overview(){return B.get("/admin/stats")}},K={class:"space-y-8"},P={class:"grid grid-cols-2 gap-4 md:grid-cols-2 xl:grid-cols-4"},Q={class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},X={class:"mt-4 text-3xl font-semibold text-foreground"},Y={class:"mt-2 text-xs text-muted-foreground"},Z={class:"dashboard-split flex w-full flex-col gap-6"},ee={class:"dashboard-main w-full min-w-0 rounded-3xl border border-border bg-card p-6 overflow-hidden"},te={class:"mt-4 border-t border-border pt-4"},ae={class:"dashboard-side w-full min-w-0 rounded-3xl border border-border bg-card p-6"},oe={class:"mt-6 space-y-4"},le={class:"flex items-center justify-between text-sm"},re={class:"flex items-center gap-2 text-muted-foreground"},se={class:"font-medium text-foreground"},ne={class:"h-2 w-full rounded-full bg-secondary"},ce=E({__name:"Dashboard",setup(ie){const s=i([{label:"账号总数",value:"0",caption:"账号池中已加载的总数量。"},{label:"活跃账号",value:"0",caption:"未过期、未禁用、未限流且可用。"},{label:"失败账号",value:"0",caption:"自动禁用或已过期,需要处理。"},{label:"限流账号",value:"0",caption:"触发 429 限流,冷却中。"}]),p=i([]),x=i([]),_=i([]),y=i([]),w=i({}),v=i(null),h=i(null);let r=null,n=null;const R=F(()=>{const e=Math.max(Number(s.value[0].value),1),t=Number(s.value[1].value),o=Number(s.value[2].value),d=Number(s.value[3].value),u=Math.max(e-t-o-d,0);return[{label:"活跃",value:t,percent:Math.round(t/e*100),barClass:"bg-emerald-500"},{label:"失败",value:o,percent:Math.round(o/e*100),barClass:"bg-destructive"},{label:"限流",value:d,percent:Math.round(d/e*100),barClass:"bg-amber-300"},{label:"空闲",tooltip:"未限流、未失败、未激活使用中的账号(主要是手动禁用)。",value:u,percent:Math.round(u/e*100),barClass:"bg-slate-300"}]});j(async()=>{await T(),q(),O(),window.addEventListener("resize",S)}),$(()=>{window.removeEventListener("resize",S),r&&(r.dispose(),r=null),n&&(n.dispose(),n=null)});function q(){const e=window.echarts;!e||!v.value||(r=e.init(v.value),C(),z())}function O(){const e=window.echarts;!e||!h.value||(n=e.init(h.value),g(),L())}function C(){if(!r)return;r.setOption({tooltip:{trigger:"axis"},legend:{data:["成功(总请求)","失败/限流"],right:0,top:0,textStyle:{color:"#6b6b6b",fontSize:11}},grid:{left:24,right:16,top:44,bottom:24,containLabel:!0},xAxis:{type:"category",data:y.value,boundaryGap:!1,axisLine:{lineStyle:{color:"#d4d4d4"}},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10},splitLine:{lineStyle:{color:"#e5e5e5"}}},series:[{name:"成功(总请求)",type:"line",data:_.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.25},itemStyle:{color:"#0ea5e9"},emphasis:{disabled:!0},z:1},{name:"失败/限流",type:"line",data:x.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.4},itemStyle:{color:"#ef4444"},emphasis:{disabled:!0},z:2}]}),z()}function g(){if(!n)return;const e=Object.entries(w.value).map(([l,f])=>({name:l,value:f.reduce((N,A)=>N+A,0),itemStyle:{color:D(l),borderRadius:8}})).filter(l=>l.value>0),t=window.innerWidth<768,o=t?{data:e.map(l=>l.name),left:"center",bottom:0,orient:"horizontal",textStyle:{color:"#6b6b6b",fontSize:11}}:{data:e.map(l=>l.name),left:0,top:"center",orient:"vertical",textStyle:{color:"#6b6b6b",fontSize:11}},d=t?["50%","38%"]:["66%","50%"],u=t?["40%","62%"]:["52%","78%"];n.setOption({animation:!0,animationDuration:600,animationEasing:"cubicOut",animationDurationUpdate:300,animationEasingUpdate:"cubicOut",tooltip:{trigger:"item",formatter:l=>`${l.name}: ${l.value} 次 (${l.percent}%)`},legend:o,series:[{type:"pie",radius:u,center:d,startAngle:90,animationType:"scale",animationEasing:"cubicOut",avoidLabelOverlap:!0,label:{show:!0,formatter:"{b}",fontSize:11,color:"#6b6b6b"},labelLine:{length:12,length2:10},itemStyle:{borderWidth:2,borderColor:"#fff",borderRadius:10},data:e}]}),L()}function S(){r&&r.resize(),n&&g()}async function T(){try{const e=await J.overview();s.value[0].value=(e.total_accounts??0).toString(),s.value[1].value=(e.active_accounts??0).toString(),s.value[2].value=(e.failed_accounts??0).toString(),s.value[3].value=(e.rate_limited_accounts??0).toString();const t=e.trend||{labels:[],total_requests:[],failed_requests:[],rate_limited_requests:[]};y.value=t.labels||[],p.value=t.total_requests||[];const o=t.failed_requests||[],d=t.rate_limited_requests||[],u=p.value.map((l,f)=>(o[f]||0)+(d[f]||0));x.value=u,_.value=p.value.map(l=>Math.max(l,0)),w.value=t.model_requests||{},C(),g()}catch(e){console.error("Failed to load overview:",e)}}function z(){r&&requestAnimationFrame(()=>{r?.resize()})}function L(){n&&requestAnimationFrame(()=>{n?.resize()})}function D(e){return{"gemini-3-pro-preview":"#0ea5e9","gemini-2.5-pro":"#22c55e","gemini-2.5-flash":"#f59e0b","gemini-3-flash-preview":"#ec4899","gemini-auto":"#64748b"}[e]||"#94a3b8"}return(e,t)=>(c(),m("div",K,[a("section",P,[(c(!0),m(M,null,k(s.value,o=>(c(),m("div",{key:o.label,class:"rounded-3xl border border-border bg-card p-6"},[a("p",Q,b(o.label),1),a("p",X,b(o.value),1),a("p",Y,b(o.caption),1)]))),128))]),a("section",Z,[a("div",ee,[t[1]||(t[1]=a("div",{class:"flex items-center justify-between"},[a("p",{class:"text-sm font-medium text-foreground"},"调用趋势(近12小时)")],-1)),a("div",{ref_key:"trendChartRef",ref:v,class:"mt-6 h-64 w-full max-w-full lg:h-72"},null,512),a("div",te,[t[0]||(t[0]=a("p",{class:"text-sm font-medium text-foreground"},"模型调用分布(近12小时)",-1)),a("div",{ref_key:"modelChartRef",ref:h,class:"mt-4 h-80 w-full max-w-full lg:h-64"},null,512)])]),a("div",ae,[t[2]||(t[2]=a("p",{class:"text-sm font-medium text-foreground"},"账号健康",-1)),a("div",oe,[(c(!0),m(M,null,k(R.value,o=>(c(),m("div",{key:o.label,class:"space-y-2"},[a("div",le,[a("span",re,[U(b(o.label)+" ",1),o.tooltip?(c(),V(I,{key:0,text:o.tooltip},null,8,["text"])):W("",!0)]),a("span",se,b(o.value),1)]),a("div",ne,[a("div",{class:H(["h-2 rounded-full",o.barClass]),style:G({width:o.percent+"%"})},null,6)])]))),128))]),t[3]||(t[3]=a("div",{class:"mt-6 rounded-2xl border border-border bg-secondary/50 p-4 text-xs text-muted-foreground"}," 建议及时处理失败或过期账号,避免影响轮询效率。 ",-1))])])]))}});export{ce as default}; diff --git a/static/assets/Dashboard-H0mqzeAx.js b/static/assets/Dashboard-H0mqzeAx.js new file mode 100644 index 0000000000000000000000000000000000000000..d160c9edb5d27a289fcd094f249f21f368cf849d --- /dev/null +++ b/static/assets/Dashboard-H0mqzeAx.js @@ -0,0 +1 @@ +import{g as B,d as E,h as i,i as F,o as j,j as $,c as m,a,F as M,r as k,t as b,f as U,y as V,b as W,k as G,n as H,e as c}from"./index-DDWWwh2l.js";import{_ as I}from"./HelpTip.vue_vue_type_script_setup_true_lang-C7-LVvI-.js";const J={overview(){return B.get("/admin/stats")}},K={class:"space-y-8"},P={class:"grid grid-cols-2 gap-4 md:grid-cols-2 xl:grid-cols-4"},Q={class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},X={class:"mt-4 text-3xl font-semibold text-foreground"},Y={class:"mt-2 text-xs text-muted-foreground"},Z={class:"dashboard-split flex w-full flex-col gap-6"},ee={class:"dashboard-main w-full min-w-0 rounded-3xl border border-border bg-card p-6 overflow-hidden"},te={class:"mt-4 border-t border-border pt-4"},ae={class:"dashboard-side w-full min-w-0 rounded-3xl border border-border bg-card p-6"},oe={class:"mt-6 space-y-4"},le={class:"flex items-center justify-between text-sm"},re={class:"flex items-center gap-2 text-muted-foreground"},se={class:"font-medium text-foreground"},ne={class:"h-2 w-full rounded-full bg-secondary"},ce=E({__name:"Dashboard",setup(ie){const s=i([{label:"账号总数",value:"0",caption:"账号池中已加载的总数量。"},{label:"活跃账号",value:"0",caption:"未过期、未禁用、未限流且可用。"},{label:"失败账号",value:"0",caption:"自动禁用或已过期,需要处理。"},{label:"限流账号",value:"0",caption:"触发 429 限流,冷却中。"}]),p=i([]),x=i([]),_=i([]),y=i([]),w=i({}),v=i(null),h=i(null);let r=null,n=null;const R=F(()=>{const e=Math.max(Number(s.value[0].value),1),t=Number(s.value[1].value),o=Number(s.value[2].value),d=Number(s.value[3].value),u=Math.max(e-t-o-d,0);return[{label:"活跃",value:t,percent:Math.round(t/e*100),barClass:"bg-emerald-500"},{label:"失败",value:o,percent:Math.round(o/e*100),barClass:"bg-destructive"},{label:"限流",value:d,percent:Math.round(d/e*100),barClass:"bg-amber-300"},{label:"空闲",tooltip:"未限流、未失败、未激活使用中的账号(主要是手动禁用)。",value:u,percent:Math.round(u/e*100),barClass:"bg-slate-300"}]});j(async()=>{await T(),q(),O(),window.addEventListener("resize",S)}),$(()=>{window.removeEventListener("resize",S),r&&(r.dispose(),r=null),n&&(n.dispose(),n=null)});function q(){const e=window.echarts;!e||!v.value||(r=e.init(v.value),C(),z())}function O(){const e=window.echarts;!e||!h.value||(n=e.init(h.value),g(),L())}function C(){if(!r)return;r.setOption({tooltip:{trigger:"axis"},legend:{data:["成功(总请求)","失败/限流"],right:0,top:0,textStyle:{color:"#6b6b6b",fontSize:11}},grid:{left:24,right:16,top:44,bottom:24,containLabel:!0},xAxis:{type:"category",data:y.value,boundaryGap:!1,axisLine:{lineStyle:{color:"#d4d4d4"}},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10},splitLine:{lineStyle:{color:"#e5e5e5"}}},series:[{name:"成功(总请求)",type:"line",data:_.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.25},itemStyle:{color:"#0ea5e9"},emphasis:{disabled:!0},z:1},{name:"失败/限流",type:"line",data:x.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.4},itemStyle:{color:"#ef4444"},emphasis:{disabled:!0},z:2}]}),z()}function g(){if(!n)return;const e=Object.entries(w.value).map(([l,f])=>({name:l,value:f.reduce((N,A)=>N+A,0),itemStyle:{color:D(l),borderRadius:8}})).filter(l=>l.value>0),t=window.innerWidth<768,o=t?{data:e.map(l=>l.name),left:"center",bottom:0,orient:"horizontal",textStyle:{color:"#6b6b6b",fontSize:11}}:{data:e.map(l=>l.name),left:0,top:"center",orient:"vertical",textStyle:{color:"#6b6b6b",fontSize:11}},d=t?["50%","38%"]:["66%","50%"],u=t?["40%","62%"]:["52%","78%"];n.setOption({animation:!0,animationDuration:600,animationEasing:"cubicOut",animationDurationUpdate:300,animationEasingUpdate:"cubicOut",tooltip:{trigger:"item",formatter:l=>`${l.name}: ${l.value} 次 (${l.percent}%)`},legend:o,series:[{type:"pie",radius:u,center:d,startAngle:90,animationType:"scale",animationEasing:"cubicOut",avoidLabelOverlap:!0,label:{show:!0,formatter:"{b}",fontSize:11,color:"#6b6b6b"},labelLine:{length:12,length2:10},itemStyle:{borderWidth:2,borderColor:"#fff",borderRadius:10},data:e}]}),L()}function S(){r&&r.resize(),n&&g()}async function T(){try{const e=await J.overview();s.value[0].value=(e.total_accounts??0).toString(),s.value[1].value=(e.active_accounts??0).toString(),s.value[2].value=(e.failed_accounts??0).toString(),s.value[3].value=(e.rate_limited_accounts??0).toString();const t=e.trend||{labels:[],total_requests:[],failed_requests:[],rate_limited_requests:[]};y.value=t.labels||[],p.value=t.total_requests||[];const o=t.failed_requests||[],d=t.rate_limited_requests||[],u=p.value.map((l,f)=>(o[f]||0)+(d[f]||0));x.value=u,_.value=p.value.map(l=>Math.max(l,0)),w.value=t.model_requests||{},C(),g()}catch(e){console.error("Failed to load overview:",e)}}function z(){r&&requestAnimationFrame(()=>{r?.resize()})}function L(){n&&requestAnimationFrame(()=>{n?.resize()})}function D(e){return{"gemini-3-pro-preview":"#0ea5e9","gemini-2.5-pro":"#22c55e","gemini-2.5-flash":"#f59e0b","gemini-3-flash-preview":"#ec4899","gemini-auto":"#64748b"}[e]||"#94a3b8"}return(e,t)=>(c(),m("div",K,[a("section",P,[(c(!0),m(M,null,k(s.value,o=>(c(),m("div",{key:o.label,class:"rounded-3xl border border-border bg-card p-6"},[a("p",Q,b(o.label),1),a("p",X,b(o.value),1),a("p",Y,b(o.caption),1)]))),128))]),a("section",Z,[a("div",ee,[t[1]||(t[1]=a("div",{class:"flex items-center justify-between"},[a("p",{class:"text-sm font-medium text-foreground"},"调用趋势(近12小时)")],-1)),a("div",{ref_key:"trendChartRef",ref:v,class:"mt-6 h-64 w-full max-w-full lg:h-72"},null,512),a("div",te,[t[0]||(t[0]=a("p",{class:"text-sm font-medium text-foreground"},"模型调用分布(近12小时)",-1)),a("div",{ref_key:"modelChartRef",ref:h,class:"mt-4 h-80 w-full max-w-full lg:h-64"},null,512)])]),a("div",ae,[t[2]||(t[2]=a("p",{class:"text-sm font-medium text-foreground"},"账号健康",-1)),a("div",oe,[(c(!0),m(M,null,k(R.value,o=>(c(),m("div",{key:o.label,class:"space-y-2"},[a("div",le,[a("span",re,[U(b(o.label)+" ",1),o.tooltip?(c(),V(I,{key:0,text:o.tooltip},null,8,["text"])):W("",!0)]),a("span",se,b(o.value),1)]),a("div",ne,[a("div",{class:H(["h-2 rounded-full",o.barClass]),style:G({width:o.percent+"%"})},null,6)])]))),128))]),t[3]||(t[3]=a("div",{class:"mt-6 rounded-2xl border border-border bg-secondary/50 p-4 text-xs text-muted-foreground"}," 建议及时处理失败或过期账号,避免影响轮询效率。 ",-1))])])]))}});export{ce as default}; diff --git a/static/assets/Dashboard-VSjcqlN8.js b/static/assets/Dashboard-VSjcqlN8.js new file mode 100644 index 0000000000000000000000000000000000000000..fba8d0da55b4d849115b5992ba10d2648b75bf94 --- /dev/null +++ b/static/assets/Dashboard-VSjcqlN8.js @@ -0,0 +1 @@ +import{g as B,d as E,h as i,i as F,o as j,j as $,c as m,a,F as M,r as k,t as b,f as U,m as V,b as W,k as G,n as H,e as c}from"./index-Bjh6Z8Zq.js";import{_ as I}from"./HelpTip.vue_vue_type_script_setup_true_lang-D_8sK7BY.js";const J={overview(){return B.get("/admin/stats")}},K={class:"space-y-8"},P={class:"grid grid-cols-2 gap-4 md:grid-cols-2 xl:grid-cols-4"},Q={class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},X={class:"mt-4 text-3xl font-semibold text-foreground"},Y={class:"mt-2 text-xs text-muted-foreground"},Z={class:"dashboard-split flex w-full flex-col gap-6"},ee={class:"dashboard-main w-full min-w-0 rounded-3xl border border-border bg-card p-6 overflow-hidden"},te={class:"mt-4 border-t border-border pt-4"},ae={class:"dashboard-side w-full min-w-0 rounded-3xl border border-border bg-card p-6"},oe={class:"mt-6 space-y-4"},le={class:"flex items-center justify-between text-sm"},re={class:"flex items-center gap-2 text-muted-foreground"},se={class:"font-medium text-foreground"},ne={class:"h-2 w-full rounded-full bg-secondary"},ce=E({__name:"Dashboard",setup(ie){const s=i([{label:"账号总数",value:"0",caption:"账号池中已加载的总数量。"},{label:"活跃账号",value:"0",caption:"未过期、未禁用、未限流且可用。"},{label:"失败账号",value:"0",caption:"自动禁用或已过期,需要处理。"},{label:"限流账号",value:"0",caption:"触发 429 限流,冷却中。"}]),p=i([]),x=i([]),_=i([]),y=i([]),w=i({}),v=i(null),h=i(null);let r=null,n=null;const R=F(()=>{const e=Math.max(Number(s.value[0].value),1),t=Number(s.value[1].value),o=Number(s.value[2].value),d=Number(s.value[3].value),u=Math.max(e-t-o-d,0);return[{label:"活跃",value:t,percent:Math.round(t/e*100),barClass:"bg-emerald-500"},{label:"失败",value:o,percent:Math.round(o/e*100),barClass:"bg-destructive"},{label:"限流",value:d,percent:Math.round(d/e*100),barClass:"bg-amber-300"},{label:"空闲",tooltip:"未限流、未失败、未激活使用中的账号(主要是手动禁用)。",value:u,percent:Math.round(u/e*100),barClass:"bg-slate-300"}]});j(async()=>{await T(),q(),O(),window.addEventListener("resize",S)}),$(()=>{window.removeEventListener("resize",S),r&&(r.dispose(),r=null),n&&(n.dispose(),n=null)});function q(){const e=window.echarts;!e||!v.value||(r=e.init(v.value),C(),z())}function O(){const e=window.echarts;!e||!h.value||(n=e.init(h.value),g(),L())}function C(){if(!r)return;r.setOption({tooltip:{trigger:"axis"},legend:{data:["成功(总请求)","失败/限流"],right:0,top:0,textStyle:{color:"#6b6b6b",fontSize:11}},grid:{left:24,right:16,top:44,bottom:24,containLabel:!0},xAxis:{type:"category",data:y.value,boundaryGap:!1,axisLine:{lineStyle:{color:"#d4d4d4"}},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10},splitLine:{lineStyle:{color:"#e5e5e5"}}},series:[{name:"成功(总请求)",type:"line",data:_.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.25},itemStyle:{color:"#0ea5e9"},emphasis:{disabled:!0},z:1},{name:"失败/限流",type:"line",data:x.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.4},itemStyle:{color:"#ef4444"},emphasis:{disabled:!0},z:2}]}),z()}function g(){if(!n)return;const e=Object.entries(w.value).map(([l,f])=>({name:l,value:f.reduce((N,A)=>N+A,0),itemStyle:{color:D(l),borderRadius:8}})).filter(l=>l.value>0),t=window.innerWidth<768,o=t?{data:e.map(l=>l.name),left:"center",bottom:0,orient:"horizontal",textStyle:{color:"#6b6b6b",fontSize:11}}:{data:e.map(l=>l.name),left:0,top:"center",orient:"vertical",textStyle:{color:"#6b6b6b",fontSize:11}},d=t?["50%","38%"]:["66%","50%"],u=t?["40%","62%"]:["52%","78%"];n.setOption({animation:!0,animationDuration:600,animationEasing:"cubicOut",animationDurationUpdate:300,animationEasingUpdate:"cubicOut",tooltip:{trigger:"item",formatter:l=>`${l.name}: ${l.value} 次 (${l.percent}%)`},legend:o,series:[{type:"pie",radius:u,center:d,startAngle:90,animationType:"scale",animationEasing:"cubicOut",avoidLabelOverlap:!0,label:{show:!0,formatter:"{b}",fontSize:11,color:"#6b6b6b"},labelLine:{length:12,length2:10},itemStyle:{borderWidth:2,borderColor:"#fff",borderRadius:10},data:e}]}),L()}function S(){r&&r.resize(),n&&g()}async function T(){try{const e=await J.overview();s.value[0].value=(e.total_accounts??0).toString(),s.value[1].value=(e.active_accounts??0).toString(),s.value[2].value=(e.failed_accounts??0).toString(),s.value[3].value=(e.rate_limited_accounts??0).toString();const t=e.trend||{labels:[],total_requests:[],failed_requests:[],rate_limited_requests:[]};y.value=t.labels||[],p.value=t.total_requests||[];const o=t.failed_requests||[],d=t.rate_limited_requests||[],u=p.value.map((l,f)=>(o[f]||0)+(d[f]||0));x.value=u,_.value=p.value.map(l=>Math.max(l,0)),w.value=t.model_requests||{},C(),g()}catch(e){console.error("Failed to load overview:",e)}}function z(){r&&requestAnimationFrame(()=>{r?.resize()})}function L(){n&&requestAnimationFrame(()=>{n?.resize()})}function D(e){return{"gemini-3-pro-preview":"#0ea5e9","gemini-2.5-pro":"#22c55e","gemini-2.5-flash":"#f59e0b","gemini-3-flash-preview":"#ec4899","gemini-auto":"#64748b"}[e]||"#94a3b8"}return(e,t)=>(c(),m("div",K,[a("section",P,[(c(!0),m(M,null,k(s.value,o=>(c(),m("div",{key:o.label,class:"rounded-3xl border border-border bg-card p-6"},[a("p",Q,b(o.label),1),a("p",X,b(o.value),1),a("p",Y,b(o.caption),1)]))),128))]),a("section",Z,[a("div",ee,[t[1]||(t[1]=a("div",{class:"flex items-center justify-between"},[a("p",{class:"text-sm font-medium text-foreground"},"调用趋势(近12小时)")],-1)),a("div",{ref_key:"trendChartRef",ref:v,class:"mt-6 h-64 w-full max-w-full lg:h-72"},null,512),a("div",te,[t[0]||(t[0]=a("p",{class:"text-sm font-medium text-foreground"},"模型调用分布(近12小时)",-1)),a("div",{ref_key:"modelChartRef",ref:h,class:"mt-4 h-80 w-full max-w-full lg:h-64"},null,512)])]),a("div",ae,[t[2]||(t[2]=a("p",{class:"text-sm font-medium text-foreground"},"账号健康",-1)),a("div",oe,[(c(!0),m(M,null,k(R.value,o=>(c(),m("div",{key:o.label,class:"space-y-2"},[a("div",le,[a("span",re,[U(b(o.label)+" ",1),o.tooltip?(c(),V(I,{key:0,text:o.tooltip},null,8,["text"])):W("",!0)]),a("span",se,b(o.value),1)]),a("div",ne,[a("div",{class:H(["h-2 rounded-full",o.barClass]),style:G({width:o.percent+"%"})},null,6)])]))),128))]),t[3]||(t[3]=a("div",{class:"mt-6 rounded-2xl border border-border bg-secondary/50 p-4 text-xs text-muted-foreground"}," 建议及时处理失败或过期账号,避免影响轮询效率。 ",-1))])])]))}});export{ce as default}; diff --git a/static/assets/Dashboard-XppL6qxe.js b/static/assets/Dashboard-XppL6qxe.js new file mode 100644 index 0000000000000000000000000000000000000000..fd8a2793b0ac6bac06a01b16495a39bd3f556acf --- /dev/null +++ b/static/assets/Dashboard-XppL6qxe.js @@ -0,0 +1 @@ +import{g as B,d as E,h as i,i as F,o as j,j as $,c as m,a,F as M,r as k,t as b,f as U,m as V,b as W,k as G,n as H,e as c}from"./index-DL4Fp3an.js";import{_ as I}from"./HelpTip.vue_vue_type_script_setup_true_lang-CAICIbTF.js";const J={overview(){return B.get("/admin/stats")}},K={class:"space-y-8"},P={class:"grid grid-cols-2 gap-4 md:grid-cols-2 xl:grid-cols-4"},Q={class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},X={class:"mt-4 text-3xl font-semibold text-foreground"},Y={class:"mt-2 text-xs text-muted-foreground"},Z={class:"dashboard-split flex w-full flex-col gap-6"},ee={class:"dashboard-main w-full min-w-0 rounded-3xl border border-border bg-card p-6 overflow-hidden"},te={class:"mt-4 border-t border-border pt-4"},ae={class:"dashboard-side w-full min-w-0 rounded-3xl border border-border bg-card p-6"},oe={class:"mt-6 space-y-4"},le={class:"flex items-center justify-between text-sm"},re={class:"flex items-center gap-2 text-muted-foreground"},se={class:"font-medium text-foreground"},ne={class:"h-2 w-full rounded-full bg-secondary"},ce=E({__name:"Dashboard",setup(ie){const s=i([{label:"账号总数",value:"0",caption:"账号池中已加载的总数量。"},{label:"活跃账号",value:"0",caption:"未过期、未禁用、未限流且可用。"},{label:"失败账号",value:"0",caption:"自动禁用或已过期,需要处理。"},{label:"限流账号",value:"0",caption:"触发 429 限流,冷却中。"}]),p=i([]),x=i([]),_=i([]),y=i([]),w=i({}),v=i(null),h=i(null);let r=null,n=null;const R=F(()=>{const e=Math.max(Number(s.value[0].value),1),t=Number(s.value[1].value),o=Number(s.value[2].value),d=Number(s.value[3].value),u=Math.max(e-t-o-d,0);return[{label:"活跃",value:t,percent:Math.round(t/e*100),barClass:"bg-emerald-500"},{label:"失败",value:o,percent:Math.round(o/e*100),barClass:"bg-destructive"},{label:"限流",value:d,percent:Math.round(d/e*100),barClass:"bg-amber-300"},{label:"空闲",tooltip:"未限流、未失败、未激活使用中的账号(主要是手动禁用)。",value:u,percent:Math.round(u/e*100),barClass:"bg-slate-300"}]});j(async()=>{await T(),q(),O(),window.addEventListener("resize",S)}),$(()=>{window.removeEventListener("resize",S),r&&(r.dispose(),r=null),n&&(n.dispose(),n=null)});function q(){const e=window.echarts;!e||!v.value||(r=e.init(v.value),C(),z())}function O(){const e=window.echarts;!e||!h.value||(n=e.init(h.value),g(),L())}function C(){if(!r)return;r.setOption({tooltip:{trigger:"axis"},legend:{data:["成功(总请求)","失败/限流"],right:0,top:0,textStyle:{color:"#6b6b6b",fontSize:11}},grid:{left:24,right:16,top:44,bottom:24,containLabel:!0},xAxis:{type:"category",data:y.value,boundaryGap:!1,axisLine:{lineStyle:{color:"#d4d4d4"}},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10},splitLine:{lineStyle:{color:"#e5e5e5"}}},series:[{name:"成功(总请求)",type:"line",data:_.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.25},itemStyle:{color:"#0ea5e9"},emphasis:{disabled:!0},z:1},{name:"失败/限流",type:"line",data:x.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.4},itemStyle:{color:"#ef4444"},emphasis:{disabled:!0},z:2}]}),z()}function g(){if(!n)return;const e=Object.entries(w.value).map(([l,f])=>({name:l,value:f.reduce((N,A)=>N+A,0),itemStyle:{color:D(l),borderRadius:8}})).filter(l=>l.value>0),t=window.innerWidth<768,o=t?{data:e.map(l=>l.name),left:"center",bottom:0,orient:"horizontal",textStyle:{color:"#6b6b6b",fontSize:11}}:{data:e.map(l=>l.name),left:0,top:"center",orient:"vertical",textStyle:{color:"#6b6b6b",fontSize:11}},d=t?["50%","38%"]:["66%","50%"],u=t?["40%","62%"]:["52%","78%"];n.setOption({animation:!0,animationDuration:600,animationEasing:"cubicOut",animationDurationUpdate:300,animationEasingUpdate:"cubicOut",tooltip:{trigger:"item",formatter:l=>`${l.name}: ${l.value} 次 (${l.percent}%)`},legend:o,series:[{type:"pie",radius:u,center:d,startAngle:90,animationType:"scale",animationEasing:"cubicOut",avoidLabelOverlap:!0,label:{show:!0,formatter:"{b}",fontSize:11,color:"#6b6b6b"},labelLine:{length:12,length2:10},itemStyle:{borderWidth:2,borderColor:"#fff",borderRadius:10},data:e}]}),L()}function S(){r&&r.resize(),n&&g()}async function T(){try{const e=await J.overview();s.value[0].value=(e.total_accounts??0).toString(),s.value[1].value=(e.active_accounts??0).toString(),s.value[2].value=(e.failed_accounts??0).toString(),s.value[3].value=(e.rate_limited_accounts??0).toString();const t=e.trend||{labels:[],total_requests:[],failed_requests:[],rate_limited_requests:[]};y.value=t.labels||[],p.value=t.total_requests||[];const o=t.failed_requests||[],d=t.rate_limited_requests||[],u=p.value.map((l,f)=>(o[f]||0)+(d[f]||0));x.value=u,_.value=p.value.map(l=>Math.max(l,0)),w.value=t.model_requests||{},C(),g()}catch(e){console.error("Failed to load overview:",e)}}function z(){r&&requestAnimationFrame(()=>{r?.resize()})}function L(){n&&requestAnimationFrame(()=>{n?.resize()})}function D(e){return{"gemini-3-pro-preview":"#0ea5e9","gemini-2.5-pro":"#22c55e","gemini-2.5-flash":"#f59e0b","gemini-3-flash-preview":"#ec4899","gemini-auto":"#64748b"}[e]||"#94a3b8"}return(e,t)=>(c(),m("div",K,[a("section",P,[(c(!0),m(M,null,k(s.value,o=>(c(),m("div",{key:o.label,class:"rounded-3xl border border-border bg-card p-6"},[a("p",Q,b(o.label),1),a("p",X,b(o.value),1),a("p",Y,b(o.caption),1)]))),128))]),a("section",Z,[a("div",ee,[t[1]||(t[1]=a("div",{class:"flex items-center justify-between"},[a("p",{class:"text-sm font-medium text-foreground"},"调用趋势(近12小时)")],-1)),a("div",{ref_key:"trendChartRef",ref:v,class:"mt-6 h-64 w-full max-w-full lg:h-72"},null,512),a("div",te,[t[0]||(t[0]=a("p",{class:"text-sm font-medium text-foreground"},"模型调用分布(近12小时)",-1)),a("div",{ref_key:"modelChartRef",ref:h,class:"mt-4 h-80 w-full max-w-full lg:h-64"},null,512)])]),a("div",ae,[t[2]||(t[2]=a("p",{class:"text-sm font-medium text-foreground"},"账号健康",-1)),a("div",oe,[(c(!0),m(M,null,k(R.value,o=>(c(),m("div",{key:o.label,class:"space-y-2"},[a("div",le,[a("span",re,[U(b(o.label)+" ",1),o.tooltip?(c(),V(I,{key:0,text:o.tooltip},null,8,["text"])):W("",!0)]),a("span",se,b(o.value),1)]),a("div",ne,[a("div",{class:H(["h-2 rounded-full",o.barClass]),style:G({width:o.percent+"%"})},null,6)])]))),128))]),t[3]||(t[3]=a("div",{class:"mt-6 rounded-2xl border border-border bg-secondary/50 p-4 text-xs text-muted-foreground"}," 建议及时处理失败或过期账号,避免影响轮询效率。 ",-1))])])]))}});export{ce as default}; diff --git a/static/assets/Dashboard-XyMK6wF9.js b/static/assets/Dashboard-XyMK6wF9.js new file mode 100644 index 0000000000000000000000000000000000000000..7d72bf46ba821e2782a374a525eb1d6ed1ae1074 --- /dev/null +++ b/static/assets/Dashboard-XyMK6wF9.js @@ -0,0 +1 @@ +import{g as B,d as E,h as i,i as F,o as j,j as $,c as m,a,F as M,r as k,t as b,f as U,y as V,b as W,k as G,n as H,e as c}from"./index-Bh_hLcqi.js";import{_ as I}from"./HelpTip.vue_vue_type_script_setup_true_lang-Be-NxYdK.js";const J={overview(){return B.get("/admin/stats")}},K={class:"space-y-8"},P={class:"grid grid-cols-2 gap-4 md:grid-cols-2 xl:grid-cols-4"},Q={class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},X={class:"mt-4 text-3xl font-semibold text-foreground"},Y={class:"mt-2 text-xs text-muted-foreground"},Z={class:"dashboard-split flex w-full flex-col gap-6"},ee={class:"dashboard-main w-full min-w-0 rounded-3xl border border-border bg-card p-6 overflow-hidden"},te={class:"mt-4 border-t border-border pt-4"},ae={class:"dashboard-side w-full min-w-0 rounded-3xl border border-border bg-card p-6"},oe={class:"mt-6 space-y-4"},le={class:"flex items-center justify-between text-sm"},re={class:"flex items-center gap-2 text-muted-foreground"},se={class:"font-medium text-foreground"},ne={class:"h-2 w-full rounded-full bg-secondary"},ce=E({__name:"Dashboard",setup(ie){const s=i([{label:"账号总数",value:"0",caption:"账号池中已加载的总数量。"},{label:"活跃账号",value:"0",caption:"未过期、未禁用、未限流且可用。"},{label:"失败账号",value:"0",caption:"自动禁用或已过期,需要处理。"},{label:"限流账号",value:"0",caption:"触发 429 限流,冷却中。"}]),p=i([]),x=i([]),_=i([]),y=i([]),w=i({}),v=i(null),h=i(null);let r=null,n=null;const R=F(()=>{const e=Math.max(Number(s.value[0].value),1),t=Number(s.value[1].value),o=Number(s.value[2].value),d=Number(s.value[3].value),u=Math.max(e-t-o-d,0);return[{label:"活跃",value:t,percent:Math.round(t/e*100),barClass:"bg-emerald-500"},{label:"失败",value:o,percent:Math.round(o/e*100),barClass:"bg-destructive"},{label:"限流",value:d,percent:Math.round(d/e*100),barClass:"bg-amber-300"},{label:"空闲",tooltip:"未限流、未失败、未激活使用中的账号(主要是手动禁用)。",value:u,percent:Math.round(u/e*100),barClass:"bg-slate-300"}]});j(async()=>{await T(),q(),O(),window.addEventListener("resize",S)}),$(()=>{window.removeEventListener("resize",S),r&&(r.dispose(),r=null),n&&(n.dispose(),n=null)});function q(){const e=window.echarts;!e||!v.value||(r=e.init(v.value),C(),z())}function O(){const e=window.echarts;!e||!h.value||(n=e.init(h.value),g(),L())}function C(){if(!r)return;r.setOption({tooltip:{trigger:"axis"},legend:{data:["成功(总请求)","失败/限流"],right:0,top:0,textStyle:{color:"#6b6b6b",fontSize:11}},grid:{left:24,right:16,top:44,bottom:24,containLabel:!0},xAxis:{type:"category",data:y.value,boundaryGap:!1,axisLine:{lineStyle:{color:"#d4d4d4"}},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10},splitLine:{lineStyle:{color:"#e5e5e5"}}},series:[{name:"成功(总请求)",type:"line",data:_.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.25},itemStyle:{color:"#0ea5e9"},emphasis:{disabled:!0},z:1},{name:"失败/限流",type:"line",data:x.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.4},itemStyle:{color:"#ef4444"},emphasis:{disabled:!0},z:2}]}),z()}function g(){if(!n)return;const e=Object.entries(w.value).map(([l,f])=>({name:l,value:f.reduce((N,A)=>N+A,0),itemStyle:{color:D(l),borderRadius:8}})).filter(l=>l.value>0),t=window.innerWidth<768,o=t?{data:e.map(l=>l.name),left:"center",bottom:0,orient:"horizontal",textStyle:{color:"#6b6b6b",fontSize:11}}:{data:e.map(l=>l.name),left:0,top:"center",orient:"vertical",textStyle:{color:"#6b6b6b",fontSize:11}},d=t?["50%","38%"]:["66%","50%"],u=t?["40%","62%"]:["52%","78%"];n.setOption({animation:!0,animationDuration:600,animationEasing:"cubicOut",animationDurationUpdate:300,animationEasingUpdate:"cubicOut",tooltip:{trigger:"item",formatter:l=>`${l.name}: ${l.value} 次 (${l.percent}%)`},legend:o,series:[{type:"pie",radius:u,center:d,startAngle:90,animationType:"scale",animationEasing:"cubicOut",avoidLabelOverlap:!0,label:{show:!0,formatter:"{b}",fontSize:11,color:"#6b6b6b"},labelLine:{length:12,length2:10},itemStyle:{borderWidth:2,borderColor:"#fff",borderRadius:10},data:e}]}),L()}function S(){r&&r.resize(),n&&g()}async function T(){try{const e=await J.overview();s.value[0].value=(e.total_accounts??0).toString(),s.value[1].value=(e.active_accounts??0).toString(),s.value[2].value=(e.failed_accounts??0).toString(),s.value[3].value=(e.rate_limited_accounts??0).toString();const t=e.trend||{labels:[],total_requests:[],failed_requests:[],rate_limited_requests:[]};y.value=t.labels||[],p.value=t.total_requests||[];const o=t.failed_requests||[],d=t.rate_limited_requests||[],u=p.value.map((l,f)=>(o[f]||0)+(d[f]||0));x.value=u,_.value=p.value.map(l=>Math.max(l,0)),w.value=t.model_requests||{},C(),g()}catch(e){console.error("Failed to load overview:",e)}}function z(){r&&requestAnimationFrame(()=>{r?.resize()})}function L(){n&&requestAnimationFrame(()=>{n?.resize()})}function D(e){return{"gemini-3-pro-preview":"#0ea5e9","gemini-2.5-pro":"#22c55e","gemini-2.5-flash":"#f59e0b","gemini-3-flash-preview":"#ec4899","gemini-auto":"#64748b"}[e]||"#94a3b8"}return(e,t)=>(c(),m("div",K,[a("section",P,[(c(!0),m(M,null,k(s.value,o=>(c(),m("div",{key:o.label,class:"rounded-3xl border border-border bg-card p-6"},[a("p",Q,b(o.label),1),a("p",X,b(o.value),1),a("p",Y,b(o.caption),1)]))),128))]),a("section",Z,[a("div",ee,[t[1]||(t[1]=a("div",{class:"flex items-center justify-between"},[a("p",{class:"text-sm font-medium text-foreground"},"调用趋势(近12小时)")],-1)),a("div",{ref_key:"trendChartRef",ref:v,class:"mt-6 h-64 w-full max-w-full lg:h-72"},null,512),a("div",te,[t[0]||(t[0]=a("p",{class:"text-sm font-medium text-foreground"},"模型调用分布(近12小时)",-1)),a("div",{ref_key:"modelChartRef",ref:h,class:"mt-4 h-80 w-full max-w-full lg:h-64"},null,512)])]),a("div",ae,[t[2]||(t[2]=a("p",{class:"text-sm font-medium text-foreground"},"账号健康",-1)),a("div",oe,[(c(!0),m(M,null,k(R.value,o=>(c(),m("div",{key:o.label,class:"space-y-2"},[a("div",le,[a("span",re,[U(b(o.label)+" ",1),o.tooltip?(c(),V(I,{key:0,text:o.tooltip},null,8,["text"])):W("",!0)]),a("span",se,b(o.value),1)]),a("div",ne,[a("div",{class:H(["h-2 rounded-full",o.barClass]),style:G({width:o.percent+"%"})},null,6)])]))),128))]),t[3]||(t[3]=a("div",{class:"mt-6 rounded-2xl border border-border bg-secondary/50 p-4 text-xs text-muted-foreground"}," 建议及时处理失败或过期账号,避免影响轮询效率。 ",-1))])])]))}});export{ce as default}; diff --git a/static/assets/Dashboard-nS2AdtwZ.js b/static/assets/Dashboard-nS2AdtwZ.js new file mode 100644 index 0000000000000000000000000000000000000000..602bbc9b1d3d9e7a47664b06244f6f65dd08f5ad --- /dev/null +++ b/static/assets/Dashboard-nS2AdtwZ.js @@ -0,0 +1 @@ +import{g as B,d as E,h as i,i as F,o as j,j as $,c as m,a,F as M,r as k,t as b,f as U,m as V,b as W,k as G,n as H,e as c}from"./index-BRM37S6x.js";import{_ as I}from"./HelpTip.vue_vue_type_script_setup_true_lang-DJyeZS9P.js";const J={overview(){return B.get("/admin/stats")}},K={class:"space-y-8"},P={class:"grid grid-cols-2 gap-4 md:grid-cols-2 xl:grid-cols-4"},Q={class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},X={class:"mt-4 text-3xl font-semibold text-foreground"},Y={class:"mt-2 text-xs text-muted-foreground"},Z={class:"dashboard-split flex w-full flex-col gap-6"},ee={class:"dashboard-main w-full min-w-0 rounded-3xl border border-border bg-card p-6 overflow-hidden"},te={class:"mt-4 border-t border-border pt-4"},ae={class:"dashboard-side w-full min-w-0 rounded-3xl border border-border bg-card p-6"},oe={class:"mt-6 space-y-4"},le={class:"flex items-center justify-between text-sm"},re={class:"flex items-center gap-2 text-muted-foreground"},se={class:"font-medium text-foreground"},ne={class:"h-2 w-full rounded-full bg-secondary"},ce=E({__name:"Dashboard",setup(ie){const s=i([{label:"账号总数",value:"0",caption:"账号池中已加载的总数量。"},{label:"活跃账号",value:"0",caption:"未过期、未禁用、未限流且可用。"},{label:"失败账号",value:"0",caption:"自动禁用或已过期,需要处理。"},{label:"限流账号",value:"0",caption:"触发 429 限流,冷却中。"}]),p=i([]),x=i([]),_=i([]),y=i([]),w=i({}),v=i(null),h=i(null);let r=null,n=null;const R=F(()=>{const e=Math.max(Number(s.value[0].value),1),t=Number(s.value[1].value),o=Number(s.value[2].value),d=Number(s.value[3].value),u=Math.max(e-t-o-d,0);return[{label:"活跃",value:t,percent:Math.round(t/e*100),barClass:"bg-emerald-500"},{label:"失败",value:o,percent:Math.round(o/e*100),barClass:"bg-destructive"},{label:"限流",value:d,percent:Math.round(d/e*100),barClass:"bg-amber-300"},{label:"空闲",tooltip:"未限流、未失败、未激活使用中的账号(主要是手动禁用)。",value:u,percent:Math.round(u/e*100),barClass:"bg-slate-300"}]});j(async()=>{await T(),q(),O(),window.addEventListener("resize",S)}),$(()=>{window.removeEventListener("resize",S),r&&(r.dispose(),r=null),n&&(n.dispose(),n=null)});function q(){const e=window.echarts;!e||!v.value||(r=e.init(v.value),C(),z())}function O(){const e=window.echarts;!e||!h.value||(n=e.init(h.value),g(),L())}function C(){if(!r)return;r.setOption({tooltip:{trigger:"axis"},legend:{data:["成功(总请求)","失败/限流"],right:0,top:0,textStyle:{color:"#6b6b6b",fontSize:11}},grid:{left:24,right:16,top:44,bottom:24,containLabel:!0},xAxis:{type:"category",data:y.value,boundaryGap:!1,axisLine:{lineStyle:{color:"#d4d4d4"}},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6b6b6b",fontSize:10},splitLine:{lineStyle:{color:"#e5e5e5"}}},series:[{name:"成功(总请求)",type:"line",data:_.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.25},itemStyle:{color:"#0ea5e9"},emphasis:{disabled:!0},z:1},{name:"失败/限流",type:"line",data:x.value,smooth:!0,showSymbol:!1,lineStyle:{width:2},areaStyle:{opacity:.4},itemStyle:{color:"#ef4444"},emphasis:{disabled:!0},z:2}]}),z()}function g(){if(!n)return;const e=Object.entries(w.value).map(([l,f])=>({name:l,value:f.reduce((N,A)=>N+A,0),itemStyle:{color:D(l),borderRadius:8}})).filter(l=>l.value>0),t=window.innerWidth<768,o=t?{data:e.map(l=>l.name),left:"center",bottom:0,orient:"horizontal",textStyle:{color:"#6b6b6b",fontSize:11}}:{data:e.map(l=>l.name),left:0,top:"center",orient:"vertical",textStyle:{color:"#6b6b6b",fontSize:11}},d=t?["50%","38%"]:["66%","50%"],u=t?["40%","62%"]:["52%","78%"];n.setOption({animation:!0,animationDuration:600,animationEasing:"cubicOut",animationDurationUpdate:300,animationEasingUpdate:"cubicOut",tooltip:{trigger:"item",formatter:l=>`${l.name}: ${l.value} 次 (${l.percent}%)`},legend:o,series:[{type:"pie",radius:u,center:d,startAngle:90,animationType:"scale",animationEasing:"cubicOut",avoidLabelOverlap:!0,label:{show:!0,formatter:"{b}",fontSize:11,color:"#6b6b6b"},labelLine:{length:12,length2:10},itemStyle:{borderWidth:2,borderColor:"#fff",borderRadius:10},data:e}]}),L()}function S(){r&&r.resize(),n&&g()}async function T(){try{const e=await J.overview();s.value[0].value=(e.total_accounts??0).toString(),s.value[1].value=(e.active_accounts??0).toString(),s.value[2].value=(e.failed_accounts??0).toString(),s.value[3].value=(e.rate_limited_accounts??0).toString();const t=e.trend||{labels:[],total_requests:[],failed_requests:[],rate_limited_requests:[]};y.value=t.labels||[],p.value=t.total_requests||[];const o=t.failed_requests||[],d=t.rate_limited_requests||[],u=p.value.map((l,f)=>(o[f]||0)+(d[f]||0));x.value=u,_.value=p.value.map(l=>Math.max(l,0)),w.value=t.model_requests||{},C(),g()}catch(e){console.error("Failed to load overview:",e)}}function z(){r&&requestAnimationFrame(()=>{r?.resize()})}function L(){n&&requestAnimationFrame(()=>{n?.resize()})}function D(e){return{"gemini-3-pro-preview":"#0ea5e9","gemini-2.5-pro":"#22c55e","gemini-2.5-flash":"#f59e0b","gemini-3-flash-preview":"#ec4899","gemini-auto":"#64748b"}[e]||"#94a3b8"}return(e,t)=>(c(),m("div",K,[a("section",P,[(c(!0),m(M,null,k(s.value,o=>(c(),m("div",{key:o.label,class:"rounded-3xl border border-border bg-card p-6"},[a("p",Q,b(o.label),1),a("p",X,b(o.value),1),a("p",Y,b(o.caption),1)]))),128))]),a("section",Z,[a("div",ee,[t[1]||(t[1]=a("div",{class:"flex items-center justify-between"},[a("p",{class:"text-sm font-medium text-foreground"},"调用趋势(近12小时)")],-1)),a("div",{ref_key:"trendChartRef",ref:v,class:"mt-6 h-64 w-full max-w-full lg:h-72"},null,512),a("div",te,[t[0]||(t[0]=a("p",{class:"text-sm font-medium text-foreground"},"模型调用分布(近12小时)",-1)),a("div",{ref_key:"modelChartRef",ref:h,class:"mt-4 h-80 w-full max-w-full lg:h-64"},null,512)])]),a("div",ae,[t[2]||(t[2]=a("p",{class:"text-sm font-medium text-foreground"},"账号健康",-1)),a("div",oe,[(c(!0),m(M,null,k(R.value,o=>(c(),m("div",{key:o.label,class:"space-y-2"},[a("div",le,[a("span",re,[U(b(o.label)+" ",1),o.tooltip?(c(),V(I,{key:0,text:o.tooltip},null,8,["text"])):W("",!0)]),a("span",se,b(o.value),1)]),a("div",ne,[a("div",{class:H(["h-2 rounded-full",o.barClass]),style:G({width:o.percent+"%"})},null,6)])]))),128))]),t[3]||(t[3]=a("div",{class:"mt-6 rounded-2xl border border-border bg-secondary/50 p-4 text-xs text-muted-foreground"}," 建议及时处理失败或过期账号,避免影响轮询效率。 ",-1))])])]))}});export{ce as default}; diff --git a/static/assets/Docs-07xuh_jo.js b/static/assets/Docs-07xuh_jo.js new file mode 100644 index 0000000000000000000000000000000000000000..cffebd1d3c572c8fbd595304d3e5d3a3ae736c9b --- /dev/null +++ b/static/assets/Docs-07xuh_jo.js @@ -0,0 +1,103 @@ +import{d as i,h as d,c as r,a as o,F as p,r as q,b as l,A as a,n as c,t as m,e as u}from"./index-Bjh6Z8Zq.js";const x={class:"space-y-6"},b={class:"rounded-3xl border border-border bg-card p-6"},g={class:"mt-6 flex rounded-full border border-border bg-muted/30 p-1 text-xs"},f=["onClick"],v={class:"mt-6 space-y-6 text-sm text-foreground"},y={key:0,class:"space-y-6"},h={key:1,class:"space-y-6"},_={key:2,class:"space-y-6"},T=i({__name:"Docs",setup(w){const e=d("tutorials"),n=[{id:"tutorials",label:"使用教程"},{id:"api",label:"API 文档"},{id:"disclaimer",label:"使用声明"}];return(A,t)=>(u(),r("div",x,[o("section",b,[t[3]||(t[3]=o("div",{class:"flex flex-wrap items-center justify-between gap-3"},[o("div",null,[o("p",{class:"text-base font-semibold text-foreground"},"帮助中心"),o("p",{class:"mt-1 text-xs text-muted-foreground"}," 快速上手与常见问题 ")])],-1)),o("div",g,[(u(),r(p,null,q(n,s=>o("button",{key:s.id,class:c(["flex-1 rounded-full px-4 py-2 font-medium transition-colors",e.value===s.id?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:P=>e.value=s.id},m(s.label),11,f)),64))]),o("div",v,[e.value==="api"?(u(),r("div",y,[...t[0]||(t[0]=[a(`

账户配置格式

accounts.json 或环境变量 ACCOUNTS_CONFIG 使用的 JSON 数组

[
+  {
+    "id": "account_1",
+    "secure_c_ses": "CSE.Ad...",
+    "csesidx": "498...",
+    "config_id": "0cd...",
+    "host_c_oses": "",
+    "expires_at": "2026-12-31 23:59:59"
+  }
+]

必填:secure_c_ses / csesidx / config_id。id、host_c_oses、expires_at 可选。

API 对话 curl 格式

标准的 OpenAI 兼容格式,支持流式和非流式输出。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-flash",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "system", "content": "你是一个简洁的助手" },
+      { "role": "user", "content": "你好,介绍一下这个项目" }
+    ]
+  }'

如果未设置 API Key,可省略 Authorization。

文生图格式(Base64 / URL 输出)

使用支持文生图的模型,直接给文本提示即可;输出格式由系统设置决定(base64 或 url)。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-pro-preview",
+    "stream": true,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "user", "content": "生成一只戴着头盔的猫,赛博风格" }
+    ]
+  }'

图生图格式(Base64 / URL 输入)

content 使用多模态数组,image_url 可填 URL 或 data:base64。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "把图片改成插画风格" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/cat.png" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "增强画面细节" },
+          { "type": "image_url", "image_url": { "url": "data:image/png;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'

读文件格式(URL / Base64)

适用于 PDF/图片/文本等可读文件,Word/PPT 等可能不支持会被提示转换。大部分文件都可能支持,建议自行测试。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并总结这个文件" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/doc.pdf" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并摘要" },
+          { "type": "image_url", "image_url": { "url": "data:application/pdf;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'
`,5)])])):l("",!0),e.value==="tutorials"?(u(),r("div",h,[...t[1]||(t[1]=[a(`

DuckMail 自动注册教程

DuckMail 是一个临时邮箱服务,可用于自动注册 Google 账号。

步骤 1:配置 DuckMail

访问 https://domain.duckmail.sbs/,登录注册后:

  • • 添加域名,按照提示进行 DNS 解析
  • • 创建自己的密钥(API Key)
  • • 前往本系统"配置面板",找到"DuckMail 配置"部分
  • • 填写 DuckMail API Key
  • 推荐:在"默认注册域名"中填入自己的域名(DuckMail 可能会出现密码错误情况,建议使用自己的域名)

步骤 2:开始注册

前往"账户管理"页面:

  • • 点击"添加账户"按钮
  • • 选择"自动注册"标签
  • • 设置注册数量
  • • 勾选同意声明
  • • 点击"开始注册"

步骤 3:查看进度

注册过程会自动进行:

  • • 系统会自动打开"任务状态"弹窗
  • • 可以查看实时日志和进度
  • • 注册完成后会显示成功/失败数量
  • • 成功的账号会自动添加到账户列表

常见问题

❓ 自动注册/刷新失败怎么办?

关闭无头浏览器可以直接看到问题所在:

  • • 前往"配置面板",找到"自动化配置"部分
  • • 取消勾选"无头模式"
  • • 重新执行注册/刷新操作,观察浏览器窗口

可能的原因:

  • IP 被检测拦截:同一 IP 多次注册有风控,建议更换合适的 IP
  • 验证码问题:Google 可能要求人机验证
  • 网络问题:检查网络连接是否稳定

❓ 503 Service Unavailable 错误

如果后台日志出现以下错误:

INFO:     127.0.0.1:7860 - "GET /admin/register/current HTTP/1.1" 503 Service Unavailable
+INFO:     127.0.0.1:7860 - "GET /admin/login/current HTTP/1.1" 503 Service Unavailable
+INFO:     127.0.0.1:7860 - "POST /admin/register/start HTTP/1.1" 503 Service Unavailable

解决方法:

  • • 这是 undetected-chromedriver 没有正常启动导致的
  • • 在虚拟环境内重新安装依赖:pip install -r requirements.txt
  • • 删除之前的进程(检查是否有残留的 Chrome 进程)
  • • 重新启动服务
`,2)])])):l("",!0),e.value==="disclaimer"?(u(),r("div",_,[...t[2]||(t[2]=[a('

使用声明与免责条款

⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)

本工具严禁用于以下行为:

  • • 商业用途或盈利性使用
  • • 任何形式的批量操作或自动化滥用(无论规模大小)
  • • 破坏市场秩序或恶意竞争
  • • 违反 Google 服务条款的任何行为
  • • 违反 Microsoft 服务条款的任何行为

违规后果

滥用行为可能导致账号永久封禁、法律追责,一切后果由使用者自行承担。

📖 合法用途

本项目仅限于以下场景:

  • • 个人学习与技术研究
  • • 浏览器自动化技术探索
  • • 非商业性技术交流

⚖️ 法律责任

  • 使用者责任:使用本工具产生的一切后果(包括但不限于账号封禁、数据损失、法律纠纷)由使用者完全承担
  • 合规义务:使用者必须遵守所在地法律法规及第三方服务条款(包括但不限于 Google Workspace、Microsoft 365 等服务条款)
  • 作者免责:作者不对任何违规使用、滥用行为或由此产生的后果承担责任

📋 技术声明

  • 无担保:本项目按"现状"提供,不提供任何形式的担保
  • 第三方依赖:依赖的第三方服务(如 DuckMail API、Microsoft Graph API 等)可用性不受作者控制
  • 维护权利:作者保留随时停止维护、变更功能或关闭项目的权利

🔗 相关服务条款

使用本工具时,您必须同时遵守以下第三方服务的条款:

使用本工具即表示您已阅读、理解并同意遵守以上所有条款。

',1)])])):l("",!0)])])]))}});export{T as default}; diff --git a/static/assets/Docs-BWCJuELR.js b/static/assets/Docs-BWCJuELR.js new file mode 100644 index 0000000000000000000000000000000000000000..e3915608223d49ced4e46cb778f9bb11d3fd076e --- /dev/null +++ b/static/assets/Docs-BWCJuELR.js @@ -0,0 +1,101 @@ +import{c as r,z as s,e as n}from"./index-BIHSVHyU.js";const a=(o,t)=>{const u=o.__vccOpts||o;for(const[e,q]of t)u[e]=q;return u},p={},l={class:"space-y-6"};function c(o,t){return n(),r("div",l,[...t[0]||(t[0]=[s(`

文档中心

常用格式说明与示例,复制即可使用

账户配置格式

accounts.json 或环境变量 ACCOUNTS_CONFIG 使用的 JSON 数组

[
+  {
+    "id": "account_1",
+    "secure_c_ses": "CSE.Ad...",
+    "csesidx": "498...",
+    "config_id": "0cd...",
+    "host_c_oses": "",
+    "expires_at": "2026-12-31 23:59:59"
+  }
+]

必填:secure_c_ses / csesidx / config_id。id、host_c_oses、expires_at 可选。

API 对话 curl 格式

标准的 OpenAI 兼容格式,支持流式和非流式输出。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-flash",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "system", "content": "你是一个简洁的助手" },
+      { "role": "user", "content": "你好,介绍一下这个项目" }
+    ]
+  }'

如果未设置 API Key,可省略 Authorization。

文生图格式(Base64 / URL 输出)

使用支持文生图的模型,直接给文本提示即可;输出格式由系统设置决定(base64 或 url)。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-pro-preview",
+    "stream": true,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "user", "content": "生成一只戴着头盔的猫,赛博风格" }
+    ]
+  }'

图生图格式(Base64 / URL 输入)

content 使用多模态数组,image_url 可填 URL 或 data:base64。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "把图片改成插画风格" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/cat.png" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "增强画面细节" },
+          { "type": "image_url", "image_url": { "url": "data:image/png;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'

读文件格式(URL / Base64)

适用于 PDF/图片/文本等可读文件,Word/PPT 等可能不支持会被提示转换。大部分文件都可能支持,建议自行测试。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并总结这个文件" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/doc.pdf" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并摘要" },
+          { "type": "image_url", "image_url": { "url": "data:application/pdf;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'
`,1)])])}const i=a(p,[["render",c]]);export{i as default}; diff --git a/static/assets/Docs-BdBf00gk.js b/static/assets/Docs-BdBf00gk.js new file mode 100644 index 0000000000000000000000000000000000000000..8501cb43b3e552266e199abe91dfdfe764ad4e12 --- /dev/null +++ b/static/assets/Docs-BdBf00gk.js @@ -0,0 +1,101 @@ +import{d as i,h as d,c as u,a as o,F as q,r as p,b as l,B as a,n as c,t as m,e as s}from"./index-BRM37S6x.js";const x={class:"space-y-6"},b={class:"rounded-3xl border border-border bg-card p-6"},g={class:"mt-6 flex rounded-full border border-border bg-muted/30 p-1 text-xs"},f=["onClick"],v={class:"mt-6 space-y-6 text-sm text-foreground"},_={key:0,class:"space-y-6"},h={key:1,class:"space-y-6"},y={key:2,class:"space-y-6"},O=i({__name:"Docs",setup(w){const e=d("tutorials"),n=[{id:"tutorials",label:"使用教程"},{id:"api",label:"API 文档"},{id:"disclaimer",label:"使用声明"}];return(A,t)=>(s(),u("div",x,[o("section",b,[t[3]||(t[3]=o("div",{class:"flex flex-wrap items-center justify-between gap-3"},[o("div",null,[o("p",{class:"text-base font-semibold text-foreground"},"帮助中心"),o("p",{class:"mt-1 text-xs text-muted-foreground"}," 快速上手与常见问题 ")])],-1)),o("div",g,[(s(),u(q,null,p(n,r=>o("button",{key:r.id,class:c(["flex-1 rounded-full px-4 py-2 font-medium transition-colors",e.value===r.id?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:k=>e.value=r.id},m(r.label),11,f)),64))]),o("div",v,[e.value==="api"?(s(),u("div",_,[...t[0]||(t[0]=[a(`

账户配置格式

accounts.json 或环境变量 ACCOUNTS_CONFIG 使用的 JSON 数组

[
+  {
+    "id": "account_1",
+    "secure_c_ses": "CSE.Ad...",
+    "csesidx": "498...",
+    "config_id": "0cd...",
+    "host_c_oses": "",
+    "expires_at": "2026-12-31 23:59:59"
+  }
+]

必填:secure_c_ses / csesidx / config_id。id、host_c_oses、expires_at 可选。

API 对话 curl 格式

标准的 OpenAI 兼容格式,支持流式和非流式输出。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-flash",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "system", "content": "你是一个简洁的助手" },
+      { "role": "user", "content": "你好,介绍一下这个项目" }
+    ]
+  }'

如果未设置 API Key,可省略 Authorization。

文生图格式(Base64 / URL 输出)

使用支持文生图的模型,直接给文本提示即可;输出格式由系统设置决定(base64 或 url)。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-pro-preview",
+    "stream": true,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "user", "content": "生成一只戴着头盔的猫,赛博风格" }
+    ]
+  }'

图生图格式(Base64 / URL 输入)

content 使用多模态数组,image_url 可填 URL 或 data:base64。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "把图片改成插画风格" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/cat.png" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "增强画面细节" },
+          { "type": "image_url", "image_url": { "url": "data:image/png;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'

读文件格式(URL / Base64)

适用于 PDF/图片/文本等可读文件,Word/PPT 等可能不支持会被提示转换。大部分文件都可能支持,建议自行测试。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并总结这个文件" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/doc.pdf" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并摘要" },
+          { "type": "image_url", "image_url": { "url": "data:application/pdf;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'
`,5)])])):l("",!0),e.value==="tutorials"?(s(),u("div",h,[...t[1]||(t[1]=[a('

DuckMail 自动注册教程

DuckMail 是一个临时邮箱服务,可用于自动注册 Google 账号。

步骤 1:配置 DuckMail

访问 https://domain.duckmail.sbs/,登录注册后:

  • • 添加域名,按照提示进行 DNS 解析
  • • 创建自己的密钥(API Key)
  • • 前往本系统"配置面板",找到"DuckMail 配置"部分
  • • 填写 DuckMail API Key
  • 推荐:在"默认注册域名"中填入自己的域名(DuckMail 可能会出现密码错误情况,建议使用自己的域名)

步骤 2:开始注册

前往"账户管理"页面:

  • • 点击"添加账户"按钮
  • • 选择"自动注册"标签
  • • 设置注册数量
  • • 勾选同意声明
  • • 点击"开始注册"

步骤 3:查看进度

注册过程会自动进行:

  • • 系统会自动打开"任务状态"弹窗
  • • 可以查看实时日志和进度
  • • 注册完成后会显示成功/失败数量
  • • 成功的账号会自动添加到账户列表
',1)])])):l("",!0),e.value==="disclaimer"?(s(),u("div",y,[...t[2]||(t[2]=[a('

使用声明与免责条款

⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)

本工具严禁用于以下行为:

  • • 商业用途或盈利性使用
  • • 任何形式的批量操作或自动化滥用(无论规模大小)
  • • 破坏市场秩序或恶意竞争
  • • 违反 Google 服务条款的任何行为
  • • 违反 Microsoft 服务条款的任何行为

违规后果

滥用行为可能导致账号永久封禁、法律追责,一切后果由使用者自行承担。

📖 合法用途

本项目仅限于以下场景:

  • • 个人学习与技术研究
  • • 浏览器自动化技术探索
  • • 非商业性技术交流

⚖️ 法律责任

  • 使用者责任:使用本工具产生的一切后果(包括但不限于账号封禁、数据损失、法律纠纷)由使用者完全承担
  • 合规义务:使用者必须遵守所在地法律法规及第三方服务条款(包括但不限于 Google Workspace、Microsoft 365 等服务条款)
  • 作者免责:作者不对任何违规使用、滥用行为或由此产生的后果承担责任

📋 技术声明

  • 无担保:本项目按"现状"提供,不提供任何形式的担保
  • 第三方依赖:依赖的第三方服务(如 DuckMail API、Microsoft Graph API 等)可用性不受作者控制
  • 维护权利:作者保留随时停止维护、变更功能或关闭项目的权利

🔗 相关服务条款

使用本工具时,您必须同时遵守以下第三方服务的条款:

使用本工具即表示您已阅读、理解并同意遵守以上所有条款。

',1)])])):l("",!0)])])]))}});export{O as default}; diff --git a/static/assets/Docs-BlNbnnVo.js b/static/assets/Docs-BlNbnnVo.js new file mode 100644 index 0000000000000000000000000000000000000000..a1a0ad06f077a4486d6a52bee010046b9460255f --- /dev/null +++ b/static/assets/Docs-BlNbnnVo.js @@ -0,0 +1,101 @@ +import{c as r,z as s,e as n}from"./index-C7QtVLks.js";const a=(o,t)=>{const u=o.__vccOpts||o;for(const[e,q]of t)u[e]=q;return u},p={},l={class:"space-y-6"};function c(o,t){return n(),r("div",l,[...t[0]||(t[0]=[s(`

文档中心

常用格式说明与示例,复制即可使用

账户配置格式

accounts.json 或环境变量 ACCOUNTS_CONFIG 使用的 JSON 数组

[
+  {
+    "id": "account_1",
+    "secure_c_ses": "CSE.Ad...",
+    "csesidx": "498...",
+    "config_id": "0cd...",
+    "host_c_oses": "",
+    "expires_at": "2026-12-31 23:59:59"
+  }
+]

必填:secure_c_ses / csesidx / config_id。id、host_c_oses、expires_at 可选。

API 对话 curl 格式

标准的 OpenAI 兼容格式,支持流式和非流式输出。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-flash",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "system", "content": "你是一个简洁的助手" },
+      { "role": "user", "content": "你好,介绍一下这个项目" }
+    ]
+  }'

如果未设置 API Key,可省略 Authorization。

文生图格式(Base64 / URL 输出)

使用支持文生图的模型,直接给文本提示即可;输出格式由系统设置决定(base64 或 url)。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-pro-preview",
+    "stream": true,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "user", "content": "生成一只戴着头盔的猫,赛博风格" }
+    ]
+  }'

图生图格式(Base64 / URL 输入)

content 使用多模态数组,image_url 可填 URL 或 data:base64。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "把图片改成插画风格" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/cat.png" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "增强画面细节" },
+          { "type": "image_url", "image_url": { "url": "data:image/png;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'

读文件格式(URL / Base64)

适用于 PDF/图片/文本等可读文件,Word/PPT 等可能不支持会被提示转换。大部分文件都可能支持,建议自行测试。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并总结这个文件" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/doc.pdf" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并摘要" },
+          { "type": "image_url", "image_url": { "url": "data:application/pdf;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'
`,1)])])}const i=a(p,[["render",c]]);export{i as default}; diff --git a/static/assets/Docs-BrqNIY4a.js b/static/assets/Docs-BrqNIY4a.js new file mode 100644 index 0000000000000000000000000000000000000000..a8159d0cefbf65530acaf36ec42aed4bb710b811 --- /dev/null +++ b/static/assets/Docs-BrqNIY4a.js @@ -0,0 +1,101 @@ +import{c as r,z as s,e as n}from"./index-DhxxzIOh.js";const a=(o,t)=>{const u=o.__vccOpts||o;for(const[e,q]of t)u[e]=q;return u},p={},l={class:"space-y-6"};function c(o,t){return n(),r("div",l,[...t[0]||(t[0]=[s(`

文档中心

常用格式说明与示例,复制即可使用

账户配置格式

accounts.json 或环境变量 ACCOUNTS_CONFIG 使用的 JSON 数组

[
+  {
+    "id": "account_1",
+    "secure_c_ses": "CSE.Ad...",
+    "csesidx": "498...",
+    "config_id": "0cd...",
+    "host_c_oses": "",
+    "expires_at": "2026-12-31 23:59:59"
+  }
+]

必填:secure_c_ses / csesidx / config_id。id、host_c_oses、expires_at 可选。

API 对话 curl 格式

标准的 OpenAI 兼容格式,支持流式和非流式输出。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-flash",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "system", "content": "你是一个简洁的助手" },
+      { "role": "user", "content": "你好,介绍一下这个项目" }
+    ]
+  }'

如果未设置 API Key,可省略 Authorization。

文生图格式(Base64 / URL 输出)

使用支持文生图的模型,直接给文本提示即可;输出格式由系统设置决定(base64 或 url)。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-pro-preview",
+    "stream": true,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "user", "content": "生成一只戴着头盔的猫,赛博风格" }
+    ]
+  }'

图生图格式(Base64 / URL 输入)

content 使用多模态数组,image_url 可填 URL 或 data:base64。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "把图片改成插画风格" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/cat.png" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "增强画面细节" },
+          { "type": "image_url", "image_url": { "url": "data:image/png;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'

读文件格式(URL / Base64)

适用于 PDF/图片/文本等可读文件,Word/PPT 等可能不支持会被提示转换。大部分文件都可能支持,建议自行测试。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并总结这个文件" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/doc.pdf" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并摘要" },
+          { "type": "image_url", "image_url": { "url": "data:application/pdf;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'
`,1)])])}const i=a(p,[["render",c]]);export{i as default}; diff --git a/static/assets/Docs-BxhwQs_N.js b/static/assets/Docs-BxhwQs_N.js new file mode 100644 index 0000000000000000000000000000000000000000..398a8f90cedeaeff3fd43ab8cb0a457abf11fc2c --- /dev/null +++ b/static/assets/Docs-BxhwQs_N.js @@ -0,0 +1,101 @@ +import{c as r,z as s,e as n}from"./index-CDbQWWUi.js";const a=(o,t)=>{const u=o.__vccOpts||o;for(const[e,q]of t)u[e]=q;return u},p={},l={class:"space-y-6"};function c(o,t){return n(),r("div",l,[...t[0]||(t[0]=[s(`

文档中心

常用格式说明与示例,复制即可使用

账户配置格式

accounts.json 或环境变量 ACCOUNTS_CONFIG 使用的 JSON 数组

[
+  {
+    "id": "account_1",
+    "secure_c_ses": "CSE.Ad...",
+    "csesidx": "498...",
+    "config_id": "0cd...",
+    "host_c_oses": "",
+    "expires_at": "2026-12-31 23:59:59"
+  }
+]

必填:secure_c_ses / csesidx / config_id。id、host_c_oses、expires_at 可选。

API 对话 curl 格式

标准的 OpenAI 兼容格式,支持流式和非流式输出。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-flash",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "system", "content": "你是一个简洁的助手" },
+      { "role": "user", "content": "你好,介绍一下这个项目" }
+    ]
+  }'

如果未设置 API Key,可省略 Authorization。

文生图格式(Base64 / URL 输出)

使用支持文生图的模型,直接给文本提示即可;输出格式由系统设置决定(base64 或 url)。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-pro-preview",
+    "stream": true,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "user", "content": "生成一只戴着头盔的猫,赛博风格" }
+    ]
+  }'

图生图格式(Base64 / URL 输入)

content 使用多模态数组,image_url 可填 URL 或 data:base64。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "把图片改成插画风格" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/cat.png" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "增强画面细节" },
+          { "type": "image_url", "image_url": { "url": "data:image/png;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'

读文件格式(URL / Base64)

适用于 PDF/图片/文本等可读文件,Word/PPT 等可能不支持会被提示转换。大部分文件都可能支持,建议自行测试。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并总结这个文件" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/doc.pdf" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并摘要" },
+          { "type": "image_url", "image_url": { "url": "data:application/pdf;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'
`,1)])])}const i=a(p,[["render",c]]);export{i as default}; diff --git a/static/assets/Docs-C6C5tlAV.js b/static/assets/Docs-C6C5tlAV.js new file mode 100644 index 0000000000000000000000000000000000000000..93abb2d3574472fb4c595b7ac2ac7feb7119b8b9 --- /dev/null +++ b/static/assets/Docs-C6C5tlAV.js @@ -0,0 +1,103 @@ +import{d as i,h as d,c as r,a as o,F as p,r as q,b as l,A as a,n as c,t as m,e as u}from"./index-BCQxBeUo.js";const x={class:"space-y-6"},b={class:"rounded-3xl border border-border bg-card p-6"},g={class:"mt-6 flex rounded-full border border-border bg-muted/30 p-1 text-xs"},f=["onClick"],v={class:"mt-6 space-y-6 text-sm text-foreground"},y={key:0,class:"space-y-6"},h={key:1,class:"space-y-6"},_={key:2,class:"space-y-6"},T=i({__name:"Docs",setup(w){const e=d("tutorials"),n=[{id:"tutorials",label:"使用教程"},{id:"api",label:"API 文档"},{id:"disclaimer",label:"使用声明"}];return(A,t)=>(u(),r("div",x,[o("section",b,[t[3]||(t[3]=o("div",{class:"flex flex-wrap items-center justify-between gap-3"},[o("div",null,[o("p",{class:"text-base font-semibold text-foreground"},"帮助中心"),o("p",{class:"mt-1 text-xs text-muted-foreground"}," 快速上手与常见问题 ")])],-1)),o("div",g,[(u(),r(p,null,q(n,s=>o("button",{key:s.id,class:c(["flex-1 rounded-full px-4 py-2 font-medium transition-colors",e.value===s.id?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:P=>e.value=s.id},m(s.label),11,f)),64))]),o("div",v,[e.value==="api"?(u(),r("div",y,[...t[0]||(t[0]=[a(`

账户配置格式

accounts.json 或环境变量 ACCOUNTS_CONFIG 使用的 JSON 数组

[
+  {
+    "id": "account_1",
+    "secure_c_ses": "CSE.Ad...",
+    "csesidx": "498...",
+    "config_id": "0cd...",
+    "host_c_oses": "",
+    "expires_at": "2026-12-31 23:59:59"
+  }
+]

必填:secure_c_ses / csesidx / config_id。id、host_c_oses、expires_at 可选。

API 对话 curl 格式

标准的 OpenAI 兼容格式,支持流式和非流式输出。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-flash",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "system", "content": "你是一个简洁的助手" },
+      { "role": "user", "content": "你好,介绍一下这个项目" }
+    ]
+  }'

如果未设置 API Key,可省略 Authorization。

文生图格式(Base64 / URL 输出)

使用支持文生图的模型,直接给文本提示即可;输出格式由系统设置决定(base64 或 url)。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-pro-preview",
+    "stream": true,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "user", "content": "生成一只戴着头盔的猫,赛博风格" }
+    ]
+  }'

图生图格式(Base64 / URL 输入)

content 使用多模态数组,image_url 可填 URL 或 data:base64。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "把图片改成插画风格" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/cat.png" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "增强画面细节" },
+          { "type": "image_url", "image_url": { "url": "data:image/png;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'

读文件格式(URL / Base64)

适用于 PDF/图片/文本等可读文件,Word/PPT 等可能不支持会被提示转换。大部分文件都可能支持,建议自行测试。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并总结这个文件" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/doc.pdf" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并摘要" },
+          { "type": "image_url", "image_url": { "url": "data:application/pdf;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'
`,5)])])):l("",!0),e.value==="tutorials"?(u(),r("div",h,[...t[1]||(t[1]=[a(`

DuckMail 自动注册教程

DuckMail 是一个临时邮箱服务,可用于自动注册 Google 账号。

步骤 1:配置 DuckMail

访问 https://domain.duckmail.sbs/,登录注册后:

  • • 添加域名,按照提示进行 DNS 解析
  • • 创建自己的密钥(API Key)
  • • 前往本系统"配置面板",找到"DuckMail 配置"部分
  • • 填写 DuckMail API Key
  • 推荐:在"默认注册域名"中填入自己的域名(DuckMail 可能会出现密码错误情况,建议使用自己的域名)

步骤 2:开始注册

前往"账户管理"页面:

  • • 点击"添加账户"按钮
  • • 选择"自动注册"标签
  • • 设置注册数量
  • • 勾选同意声明
  • • 点击"开始注册"

步骤 3:查看进度

注册过程会自动进行:

  • • 系统会自动打开"任务状态"弹窗
  • • 可以查看实时日志和进度
  • • 注册完成后会显示成功/失败数量
  • • 成功的账号会自动添加到账户列表

常见问题

❓ 自动注册/刷新失败怎么办?

关闭无头浏览器可以直接看到问题所在:

  • • 前往"配置面板",找到"自动化配置"部分
  • • 取消勾选"无头模式"
  • • 重新执行注册/刷新操作,观察浏览器窗口

可能的原因:

  • IP 被检测拦截:同一 IP 多次注册有风控,建议更换合适的 IP
  • 验证码问题:Google 可能要求人机验证
  • 网络问题:检查网络连接是否稳定

❓ 503 Service Unavailable 错误

如果后台日志出现以下错误:

INFO:     127.0.0.1:7860 - "GET /admin/register/current HTTP/1.1" 503 Service Unavailable
+INFO:     127.0.0.1:7860 - "GET /admin/login/current HTTP/1.1" 503 Service Unavailable
+INFO:     127.0.0.1:7860 - "POST /admin/register/start HTTP/1.1" 503 Service Unavailable

解决方法:

  • • 这是 undetected-chromedriver 没有正常启动导致的
  • • 在虚拟环境内重新安装依赖:pip install -r requirements.txt
  • • 删除之前的进程(检查是否有残留的 Chrome 进程)
  • • 重新启动服务
`,2)])])):l("",!0),e.value==="disclaimer"?(u(),r("div",_,[...t[2]||(t[2]=[a('

使用声明与免责条款

⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)

本工具严禁用于以下行为:

  • • 商业用途或盈利性使用
  • • 任何形式的批量操作或自动化滥用(无论规模大小)
  • • 破坏市场秩序或恶意竞争
  • • 违反 Google 服务条款的任何行为
  • • 违反 Microsoft 服务条款的任何行为

违规后果

滥用行为可能导致账号永久封禁、法律追责,一切后果由使用者自行承担。

📖 合法用途

本项目仅限于以下场景:

  • • 个人学习与技术研究
  • • 浏览器自动化技术探索
  • • 非商业性技术交流

⚖️ 法律责任

  • 使用者责任:使用本工具产生的一切后果(包括但不限于账号封禁、数据损失、法律纠纷)由使用者完全承担
  • 合规义务:使用者必须遵守所在地法律法规及第三方服务条款(包括但不限于 Google Workspace、Microsoft 365 等服务条款)
  • 作者免责:作者不对任何违规使用、滥用行为或由此产生的后果承担责任

📋 技术声明

  • 无担保:本项目按"现状"提供,不提供任何形式的担保
  • 第三方依赖:依赖的第三方服务(如 DuckMail API、Microsoft Graph API 等)可用性不受作者控制
  • 维护权利:作者保留随时停止维护、变更功能或关闭项目的权利

🔗 相关服务条款

使用本工具时,您必须同时遵守以下第三方服务的条款:

使用本工具即表示您已阅读、理解并同意遵守以上所有条款。

',1)])])):l("",!0)])])]))}});export{T as default}; diff --git a/static/assets/Docs-C8WEJJNJ.js b/static/assets/Docs-C8WEJJNJ.js new file mode 100644 index 0000000000000000000000000000000000000000..ea805c1323d3b766af16b980ef979eb2430cb569 --- /dev/null +++ b/static/assets/Docs-C8WEJJNJ.js @@ -0,0 +1,103 @@ +import{d as i,h as d,c as r,a as o,F as p,r as q,b as l,A as a,n as c,t as m,e as u}from"./index-CQv2QMzB.js";const x={class:"space-y-6"},b={class:"rounded-3xl border border-border bg-card p-6"},g={class:"mt-6 flex rounded-full border border-border bg-muted/30 p-1 text-xs"},f=["onClick"],v={class:"mt-6 space-y-6 text-sm text-foreground"},y={key:0,class:"space-y-6"},h={key:1,class:"space-y-6"},_={key:2,class:"space-y-6"},T=i({__name:"Docs",setup(w){const e=d("tutorials"),n=[{id:"tutorials",label:"使用教程"},{id:"api",label:"API 文档"},{id:"disclaimer",label:"使用声明"}];return(A,t)=>(u(),r("div",x,[o("section",b,[t[3]||(t[3]=o("div",{class:"flex flex-wrap items-center justify-between gap-3"},[o("div",null,[o("p",{class:"text-base font-semibold text-foreground"},"帮助中心"),o("p",{class:"mt-1 text-xs text-muted-foreground"}," 快速上手与常见问题 ")])],-1)),o("div",g,[(u(),r(p,null,q(n,s=>o("button",{key:s.id,class:c(["flex-1 rounded-full px-4 py-2 font-medium transition-colors",e.value===s.id?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:P=>e.value=s.id},m(s.label),11,f)),64))]),o("div",v,[e.value==="api"?(u(),r("div",y,[...t[0]||(t[0]=[a(`

账户配置格式

accounts.json 或环境变量 ACCOUNTS_CONFIG 使用的 JSON 数组

[
+  {
+    "id": "account_1",
+    "secure_c_ses": "CSE.Ad...",
+    "csesidx": "498...",
+    "config_id": "0cd...",
+    "host_c_oses": "",
+    "expires_at": "2026-12-31 23:59:59"
+  }
+]

必填:secure_c_ses / csesidx / config_id。id、host_c_oses、expires_at 可选。

API 对话 curl 格式

标准的 OpenAI 兼容格式,支持流式和非流式输出。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-flash",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "system", "content": "你是一个简洁的助手" },
+      { "role": "user", "content": "你好,介绍一下这个项目" }
+    ]
+  }'

如果未设置 API Key,可省略 Authorization。

文生图格式(Base64 / URL 输出)

使用支持文生图的模型,直接给文本提示即可;输出格式由系统设置决定(base64 或 url)。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-pro-preview",
+    "stream": true,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "user", "content": "生成一只戴着头盔的猫,赛博风格" }
+    ]
+  }'

图生图格式(Base64 / URL 输入)

content 使用多模态数组,image_url 可填 URL 或 data:base64。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "把图片改成插画风格" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/cat.png" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "增强画面细节" },
+          { "type": "image_url", "image_url": { "url": "data:image/png;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'

读文件格式(URL / Base64)

适用于 PDF/图片/文本等可读文件,Word/PPT 等可能不支持会被提示转换。大部分文件都可能支持,建议自行测试。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并总结这个文件" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/doc.pdf" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并摘要" },
+          { "type": "image_url", "image_url": { "url": "data:application/pdf;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'
`,5)])])):l("",!0),e.value==="tutorials"?(u(),r("div",h,[...t[1]||(t[1]=[a(`

DuckMail 自动注册教程

DuckMail 是一个临时邮箱服务,可用于自动注册 Google 账号。

步骤 1:配置 DuckMail

访问 https://domain.duckmail.sbs/,登录注册后:

  • • 添加域名,按照提示进行 DNS 解析
  • • 创建自己的密钥(API Key)
  • • 前往本系统"配置面板",找到"DuckMail 配置"部分
  • • 填写 DuckMail API Key
  • 推荐:在"默认注册域名"中填入自己的域名(DuckMail 可能会出现密码错误情况,建议使用自己的域名)

步骤 2:开始注册

前往"账户管理"页面:

  • • 点击"添加账户"按钮
  • • 选择"自动注册"标签
  • • 设置注册数量
  • • 勾选同意声明
  • • 点击"开始注册"

步骤 3:查看进度

注册过程会自动进行:

  • • 系统会自动打开"任务状态"弹窗
  • • 可以查看实时日志和进度
  • • 注册完成后会显示成功/失败数量
  • • 成功的账号会自动添加到账户列表

常见问题

❓ 自动注册/刷新失败怎么办?

关闭无头浏览器可以直接看到问题所在:

  • • 前往"配置面板",找到"自动化配置"部分
  • • 取消勾选"无头模式"
  • • 重新执行注册/刷新操作,观察浏览器窗口

可能的原因:

  • IP 被检测拦截:同一 IP 多次注册有风控,建议更换合适的 IP
  • 验证码问题:Google 可能要求人机验证
  • 网络问题:检查网络连接是否稳定

❓ 503 Service Unavailable 错误

如果后台日志出现以下错误:

INFO:     127.0.0.1:7860 - "GET /admin/register/current HTTP/1.1" 503 Service Unavailable
+INFO:     127.0.0.1:7860 - "GET /admin/login/current HTTP/1.1" 503 Service Unavailable
+INFO:     127.0.0.1:7860 - "POST /admin/register/start HTTP/1.1" 503 Service Unavailable

解决方法:

  • • 这是 undetected-chromedriver 没有正常启动导致的
  • • 在虚拟环境内重新安装依赖:pip install -r requirements.txt
  • • 删除之前的进程(检查是否有残留的 Chrome 进程)
  • • 重新启动服务
`,2)])])):l("",!0),e.value==="disclaimer"?(u(),r("div",_,[...t[2]||(t[2]=[a('

使用声明与免责条款

⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)

本工具严禁用于以下行为:

  • • 商业用途或盈利性使用
  • • 任何形式的批量操作或自动化滥用(无论规模大小)
  • • 破坏市场秩序或恶意竞争
  • • 违反 Google 服务条款的任何行为
  • • 违反 Microsoft 服务条款的任何行为

违规后果

滥用行为可能导致账号永久封禁、法律追责,一切后果由使用者自行承担。

📖 合法用途

本项目仅限于以下场景:

  • • 个人学习与技术研究
  • • 浏览器自动化技术探索
  • • 非商业性技术交流

⚖️ 法律责任

  • 使用者责任:使用本工具产生的一切后果(包括但不限于账号封禁、数据损失、法律纠纷)由使用者完全承担
  • 合规义务:使用者必须遵守所在地法律法规及第三方服务条款(包括但不限于 Google Workspace、Microsoft 365 等服务条款)
  • 作者免责:作者不对任何违规使用、滥用行为或由此产生的后果承担责任

📋 技术声明

  • 无担保:本项目按"现状"提供,不提供任何形式的担保
  • 第三方依赖:依赖的第三方服务(如 DuckMail API、Microsoft Graph API 等)可用性不受作者控制
  • 维护权利:作者保留随时停止维护、变更功能或关闭项目的权利

🔗 相关服务条款

使用本工具时,您必须同时遵守以下第三方服务的条款:

使用本工具即表示您已阅读、理解并同意遵守以上所有条款。

',1)])])):l("",!0)])])]))}});export{T as default}; diff --git a/static/assets/Docs-CIarDU0f.js b/static/assets/Docs-CIarDU0f.js new file mode 100644 index 0000000000000000000000000000000000000000..551d57abdae127a5f99e2f59ac44cac1556fcc36 --- /dev/null +++ b/static/assets/Docs-CIarDU0f.js @@ -0,0 +1,101 @@ +import{c as r,z as s,e as n}from"./index-C9KL0lrc.js";const a=(o,t)=>{const u=o.__vccOpts||o;for(const[e,q]of t)u[e]=q;return u},p={},l={class:"space-y-6"};function c(o,t){return n(),r("div",l,[...t[0]||(t[0]=[s(`

文档中心

常用格式说明与示例,复制即可使用

账户配置格式

accounts.json 或环境变量 ACCOUNTS_CONFIG 使用的 JSON 数组

[
+  {
+    "id": "account_1",
+    "secure_c_ses": "CSE.Ad...",
+    "csesidx": "498...",
+    "config_id": "0cd...",
+    "host_c_oses": "",
+    "expires_at": "2026-12-31 23:59:59"
+  }
+]

必填:secure_c_ses / csesidx / config_id。id、host_c_oses、expires_at 可选。

API 对话 curl 格式

标准的 OpenAI 兼容格式,支持流式和非流式输出。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-flash",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "system", "content": "你是一个简洁的助手" },
+      { "role": "user", "content": "你好,介绍一下这个项目" }
+    ]
+  }'

如果未设置 API Key,可省略 Authorization。

文生图格式(Base64 / URL 输出)

使用支持文生图的模型,直接给文本提示即可;输出格式由系统设置决定(base64 或 url)。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-pro-preview",
+    "stream": true,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "user", "content": "生成一只戴着头盔的猫,赛博风格" }
+    ]
+  }'

图生图格式(Base64 / URL 输入)

content 使用多模态数组,image_url 可填 URL 或 data:base64。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "把图片改成插画风格" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/cat.png" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "增强画面细节" },
+          { "type": "image_url", "image_url": { "url": "data:image/png;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'

读文件格式(URL / Base64)

适用于 PDF/图片/文本等可读文件,Word/PPT 等可能不支持会被提示转换。大部分文件都可能支持,建议自行测试。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并总结这个文件" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/doc.pdf" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并摘要" },
+          { "type": "image_url", "image_url": { "url": "data:application/pdf;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'
`,1)])])}const i=a(p,[["render",c]]);export{i as default}; diff --git a/static/assets/Docs-CPrjfLKM.js b/static/assets/Docs-CPrjfLKM.js new file mode 100644 index 0000000000000000000000000000000000000000..003c5d0e40d74763e047283eec05e6a9554e9eba --- /dev/null +++ b/static/assets/Docs-CPrjfLKM.js @@ -0,0 +1,101 @@ +import{c as r,z as s,e as n}from"./index-CkXB0iyt.js";const a=(o,t)=>{const u=o.__vccOpts||o;for(const[e,q]of t)u[e]=q;return u},p={},l={class:"space-y-6"};function c(o,t){return n(),r("div",l,[...t[0]||(t[0]=[s(`

文档中心

常用格式说明与示例,复制即可使用

账户配置格式

accounts.json 或环境变量 ACCOUNTS_CONFIG 使用的 JSON 数组

[
+  {
+    "id": "account_1",
+    "secure_c_ses": "CSE.Ad...",
+    "csesidx": "498...",
+    "config_id": "0cd...",
+    "host_c_oses": "",
+    "expires_at": "2026-12-31 23:59:59"
+  }
+]

必填:secure_c_ses / csesidx / config_id。id、host_c_oses、expires_at 可选。

API 对话 curl 格式

标准的 OpenAI 兼容格式,支持流式和非流式输出。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-flash",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "system", "content": "你是一个简洁的助手" },
+      { "role": "user", "content": "你好,介绍一下这个项目" }
+    ]
+  }'

如果未设置 API Key,可省略 Authorization。

文生图格式(Base64 / URL 输出)

使用支持文生图的模型,直接给文本提示即可;输出格式由系统设置决定(base64 或 url)。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-pro-preview",
+    "stream": true,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "user", "content": "生成一只戴着头盔的猫,赛博风格" }
+    ]
+  }'

图生图格式(Base64 / URL 输入)

content 使用多模态数组,image_url 可填 URL 或 data:base64。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "把图片改成插画风格" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/cat.png" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "增强画面细节" },
+          { "type": "image_url", "image_url": { "url": "data:image/png;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'

读文件格式(URL / Base64)

适用于 PDF/图片/文本等可读文件,Word/PPT 等可能不支持会被提示转换。大部分文件都可能支持,建议自行测试。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并总结这个文件" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/doc.pdf" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并摘要" },
+          { "type": "image_url", "image_url": { "url": "data:application/pdf;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'
`,1)])])}const i=a(p,[["render",c]]);export{i as default}; diff --git a/static/assets/Docs-CSE-oDMg.js b/static/assets/Docs-CSE-oDMg.js new file mode 100644 index 0000000000000000000000000000000000000000..5b77d6ed3725fba3a0c805e56bc5db4a2bf7daa1 --- /dev/null +++ b/static/assets/Docs-CSE-oDMg.js @@ -0,0 +1,101 @@ +import{c as r,m as s,e as n}from"./index-Bx7qSams.js";const a=(o,t)=>{const u=o.__vccOpts||o;for(const[e,q]of t)u[e]=q;return u},p={},l={class:"space-y-6"};function c(o,t){return n(),r("div",l,[...t[0]||(t[0]=[s(`

文档中心

常用格式说明与示例,复制即可使用

账户配置格式

accounts.json 或环境变量 ACCOUNTS_CONFIG 使用的 JSON 数组

[
+  {
+    "id": "account_1",
+    "secure_c_ses": "CSE.Ad...",
+    "csesidx": "498...",
+    "config_id": "0cd...",
+    "host_c_oses": "",
+    "expires_at": "2026-12-31 23:59:59"
+  }
+]

必填:secure_c_ses / csesidx / config_id。id、host_c_oses、expires_at 可选。

API 对话 curl 格式

标准的 OpenAI 兼容格式,支持流式和非流式输出。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-flash",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "system", "content": "你是一个简洁的助手" },
+      { "role": "user", "content": "你好,介绍一下这个项目" }
+    ]
+  }'

如果未设置 API Key,可省略 Authorization。

文生图格式(Base64 / URL 输出)

使用支持文生图的模型,直接给文本提示即可;输出格式由系统设置决定(base64 或 url)。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-pro-preview",
+    "stream": true,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "user", "content": "生成一只戴着头盔的猫,赛博风格" }
+    ]
+  }'

图生图格式(Base64 / URL 输入)

content 使用多模态数组,image_url 可填 URL 或 data:base64。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "把图片改成插画风格" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/cat.png" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "增强画面细节" },
+          { "type": "image_url", "image_url": { "url": "data:image/png;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'

读文件格式(URL / Base64)

适用于 PDF/图片/文本等可读文件,Word/PPT 等可能不支持会被提示转换。大部分文件都可能支持,建议自行测试。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并总结这个文件" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/doc.pdf" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并摘要" },
+          { "type": "image_url", "image_url": { "url": "data:application/pdf;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'
`,1)])])}const i=a(p,[["render",c]]);export{i as default}; diff --git a/static/assets/Docs-CUxRAKUD.js b/static/assets/Docs-CUxRAKUD.js new file mode 100644 index 0000000000000000000000000000000000000000..4a77b7f741bde88db2b15f6d7e048cca2f0cde37 --- /dev/null +++ b/static/assets/Docs-CUxRAKUD.js @@ -0,0 +1,101 @@ +import{c as r,B as s,e as n}from"./index-B38eA7T4.js";const a=(o,t)=>{const u=o.__vccOpts||o;for(const[e,q]of t)u[e]=q;return u},p={},l={class:"space-y-6"};function c(o,t){return n(),r("div",l,[...t[0]||(t[0]=[s(`

文档中心

常用格式说明与示例,复制即可使用

账户配置格式

accounts.json 或环境变量 ACCOUNTS_CONFIG 使用的 JSON 数组

[
+  {
+    "id": "account_1",
+    "secure_c_ses": "CSE.Ad...",
+    "csesidx": "498...",
+    "config_id": "0cd...",
+    "host_c_oses": "",
+    "expires_at": "2026-12-31 23:59:59"
+  }
+]

必填:secure_c_ses / csesidx / config_id。id、host_c_oses、expires_at 可选。

API 对话 curl 格式

标准的 OpenAI 兼容格式,支持流式和非流式输出。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-flash",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "system", "content": "你是一个简洁的助手" },
+      { "role": "user", "content": "你好,介绍一下这个项目" }
+    ]
+  }'

如果未设置 API Key,可省略 Authorization。

文生图格式(Base64 / URL 输出)

使用支持文生图的模型,直接给文本提示即可;输出格式由系统设置决定(base64 或 url)。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-pro-preview",
+    "stream": true,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "user", "content": "生成一只戴着头盔的猫,赛博风格" }
+    ]
+  }'

图生图格式(Base64 / URL 输入)

content 使用多模态数组,image_url 可填 URL 或 data:base64。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "把图片改成插画风格" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/cat.png" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "增强画面细节" },
+          { "type": "image_url", "image_url": { "url": "data:image/png;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'

读文件格式(URL / Base64)

适用于 PDF/图片/文本等可读文件,Word/PPT 等可能不支持会被提示转换。大部分文件都可能支持,建议自行测试。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并总结这个文件" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/doc.pdf" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并摘要" },
+          { "type": "image_url", "image_url": { "url": "data:application/pdf;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'
`,1)])])}const i=a(p,[["render",c]]);export{i as default}; diff --git a/static/assets/Docs-CXRRai6U.js b/static/assets/Docs-CXRRai6U.js new file mode 100644 index 0000000000000000000000000000000000000000..ca886cee77db62c2606e3458831140cb8c704a4b --- /dev/null +++ b/static/assets/Docs-CXRRai6U.js @@ -0,0 +1,101 @@ +import{c as r,z as s,e as n}from"./index-BRg_yWJl.js";const a=(o,t)=>{const u=o.__vccOpts||o;for(const[e,q]of t)u[e]=q;return u},p={},l={class:"space-y-6"};function c(o,t){return n(),r("div",l,[...t[0]||(t[0]=[s(`

文档中心

常用格式说明与示例,复制即可使用

账户配置格式

accounts.json 或环境变量 ACCOUNTS_CONFIG 使用的 JSON 数组

[
+  {
+    "id": "account_1",
+    "secure_c_ses": "CSE.Ad...",
+    "csesidx": "498...",
+    "config_id": "0cd...",
+    "host_c_oses": "",
+    "expires_at": "2026-12-31 23:59:59"
+  }
+]

必填:secure_c_ses / csesidx / config_id。id、host_c_oses、expires_at 可选。

API 对话 curl 格式

标准的 OpenAI 兼容格式,支持流式和非流式输出。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-flash",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "system", "content": "你是一个简洁的助手" },
+      { "role": "user", "content": "你好,介绍一下这个项目" }
+    ]
+  }'

如果未设置 API Key,可省略 Authorization。

文生图格式(Base64 / URL 输出)

使用支持文生图的模型,直接给文本提示即可;输出格式由系统设置决定(base64 或 url)。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-pro-preview",
+    "stream": true,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "user", "content": "生成一只戴着头盔的猫,赛博风格" }
+    ]
+  }'

图生图格式(Base64 / URL 输入)

content 使用多模态数组,image_url 可填 URL 或 data:base64。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "把图片改成插画风格" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/cat.png" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "增强画面细节" },
+          { "type": "image_url", "image_url": { "url": "data:image/png;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'

读文件格式(URL / Base64)

适用于 PDF/图片/文本等可读文件,Word/PPT 等可能不支持会被提示转换。大部分文件都可能支持,建议自行测试。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并总结这个文件" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/doc.pdf" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并摘要" },
+          { "type": "image_url", "image_url": { "url": "data:application/pdf;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'
`,1)])])}const i=a(p,[["render",c]]);export{i as default}; diff --git a/static/assets/Docs-CyZb5Il2.js b/static/assets/Docs-CyZb5Il2.js new file mode 100644 index 0000000000000000000000000000000000000000..c5b7171af1370c07bf404d927bc1f1ee0c5009c6 --- /dev/null +++ b/static/assets/Docs-CyZb5Il2.js @@ -0,0 +1,101 @@ +import{c as r,z as s,e as n}from"./index-DDWWwh2l.js";const a=(o,t)=>{const u=o.__vccOpts||o;for(const[e,q]of t)u[e]=q;return u},p={},l={class:"space-y-6"};function c(o,t){return n(),r("div",l,[...t[0]||(t[0]=[s(`

文档中心

常用格式说明与示例,复制即可使用

账户配置格式

accounts.json 或环境变量 ACCOUNTS_CONFIG 使用的 JSON 数组

[
+  {
+    "id": "account_1",
+    "secure_c_ses": "CSE.Ad...",
+    "csesidx": "498...",
+    "config_id": "0cd...",
+    "host_c_oses": "",
+    "expires_at": "2026-12-31 23:59:59"
+  }
+]

必填:secure_c_ses / csesidx / config_id。id、host_c_oses、expires_at 可选。

API 对话 curl 格式

标准的 OpenAI 兼容格式,支持流式和非流式输出。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-flash",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "system", "content": "你是一个简洁的助手" },
+      { "role": "user", "content": "你好,介绍一下这个项目" }
+    ]
+  }'

如果未设置 API Key,可省略 Authorization。

文生图格式(Base64 / URL 输出)

使用支持文生图的模型,直接给文本提示即可;输出格式由系统设置决定(base64 或 url)。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-pro-preview",
+    "stream": true,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "user", "content": "生成一只戴着头盔的猫,赛博风格" }
+    ]
+  }'

图生图格式(Base64 / URL 输入)

content 使用多模态数组,image_url 可填 URL 或 data:base64。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "把图片改成插画风格" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/cat.png" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "增强画面细节" },
+          { "type": "image_url", "image_url": { "url": "data:image/png;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'

读文件格式(URL / Base64)

适用于 PDF/图片/文本等可读文件,Word/PPT 等可能不支持会被提示转换。大部分文件都可能支持,建议自行测试。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并总结这个文件" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/doc.pdf" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并摘要" },
+          { "type": "image_url", "image_url": { "url": "data:application/pdf;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'
`,1)])])}const i=a(p,[["render",c]]);export{i as default}; diff --git a/static/assets/Docs-D2AnDPF1.js b/static/assets/Docs-D2AnDPF1.js new file mode 100644 index 0000000000000000000000000000000000000000..f974291c330792084f861f8f6f12fedba1dfde7c --- /dev/null +++ b/static/assets/Docs-D2AnDPF1.js @@ -0,0 +1,101 @@ +import{c as r,z as s,e as n}from"./index-DrM07qAY.js";const a=(o,t)=>{const u=o.__vccOpts||o;for(const[e,q]of t)u[e]=q;return u},p={},l={class:"space-y-6"};function c(o,t){return n(),r("div",l,[...t[0]||(t[0]=[s(`

文档中心

常用格式说明与示例,复制即可使用

账户配置格式

accounts.json 或环境变量 ACCOUNTS_CONFIG 使用的 JSON 数组

[
+  {
+    "id": "account_1",
+    "secure_c_ses": "CSE.Ad...",
+    "csesidx": "498...",
+    "config_id": "0cd...",
+    "host_c_oses": "",
+    "expires_at": "2026-12-31 23:59:59"
+  }
+]

必填:secure_c_ses / csesidx / config_id。id、host_c_oses、expires_at 可选。

API 对话 curl 格式

标准的 OpenAI 兼容格式,支持流式和非流式输出。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-flash",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "system", "content": "你是一个简洁的助手" },
+      { "role": "user", "content": "你好,介绍一下这个项目" }
+    ]
+  }'

如果未设置 API Key,可省略 Authorization。

文生图格式(Base64 / URL 输出)

使用支持文生图的模型,直接给文本提示即可;输出格式由系统设置决定(base64 或 url)。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-pro-preview",
+    "stream": true,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "user", "content": "生成一只戴着头盔的猫,赛博风格" }
+    ]
+  }'

图生图格式(Base64 / URL 输入)

content 使用多模态数组,image_url 可填 URL 或 data:base64。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "把图片改成插画风格" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/cat.png" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "增强画面细节" },
+          { "type": "image_url", "image_url": { "url": "data:image/png;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'

读文件格式(URL / Base64)

适用于 PDF/图片/文本等可读文件,Word/PPT 等可能不支持会被提示转换。大部分文件都可能支持,建议自行测试。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并总结这个文件" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/doc.pdf" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并摘要" },
+          { "type": "image_url", "image_url": { "url": "data:application/pdf;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'
`,1)])])}const i=a(p,[["render",c]]);export{i as default}; diff --git a/static/assets/Docs-D2PAitVC.js b/static/assets/Docs-D2PAitVC.js new file mode 100644 index 0000000000000000000000000000000000000000..33bbb6e69b39ed0b371921309fbb0e5103dd0228 --- /dev/null +++ b/static/assets/Docs-D2PAitVC.js @@ -0,0 +1,103 @@ +import{d as i,h as d,c as r,a as o,F as p,r as q,b as l,A as a,n as c,t as m,e as u}from"./index-Dul9zA0O.js";const x={class:"space-y-6"},b={class:"rounded-3xl border border-border bg-card p-6"},g={class:"mt-6 flex rounded-full border border-border bg-muted/30 p-1 text-xs"},f=["onClick"],v={class:"mt-6 space-y-6 text-sm text-foreground"},y={key:0,class:"space-y-6"},h={key:1,class:"space-y-6"},_={key:2,class:"space-y-6"},T=i({__name:"Docs",setup(w){const e=d("tutorials"),n=[{id:"tutorials",label:"使用教程"},{id:"api",label:"API 文档"},{id:"disclaimer",label:"使用声明"}];return(A,t)=>(u(),r("div",x,[o("section",b,[t[3]||(t[3]=o("div",{class:"flex flex-wrap items-center justify-between gap-3"},[o("div",null,[o("p",{class:"text-base font-semibold text-foreground"},"帮助中心"),o("p",{class:"mt-1 text-xs text-muted-foreground"}," 快速上手与常见问题 ")])],-1)),o("div",g,[(u(),r(p,null,q(n,s=>o("button",{key:s.id,class:c(["flex-1 rounded-full px-4 py-2 font-medium transition-colors",e.value===s.id?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:P=>e.value=s.id},m(s.label),11,f)),64))]),o("div",v,[e.value==="api"?(u(),r("div",y,[...t[0]||(t[0]=[a(`

账户配置格式

accounts.json 或环境变量 ACCOUNTS_CONFIG 使用的 JSON 数组

[
+  {
+    "id": "account_1",
+    "secure_c_ses": "CSE.Ad...",
+    "csesidx": "498...",
+    "config_id": "0cd...",
+    "host_c_oses": "",
+    "expires_at": "2026-12-31 23:59:59"
+  }
+]

必填:secure_c_ses / csesidx / config_id。id、host_c_oses、expires_at 可选。

API 对话 curl 格式

标准的 OpenAI 兼容格式,支持流式和非流式输出。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-flash",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "system", "content": "你是一个简洁的助手" },
+      { "role": "user", "content": "你好,介绍一下这个项目" }
+    ]
+  }'

如果未设置 API Key,可省略 Authorization。

文生图格式(Base64 / URL 输出)

使用支持文生图的模型,直接给文本提示即可;输出格式由系统设置决定(base64 或 url)。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-pro-preview",
+    "stream": true,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "user", "content": "生成一只戴着头盔的猫,赛博风格" }
+    ]
+  }'

图生图格式(Base64 / URL 输入)

content 使用多模态数组,image_url 可填 URL 或 data:base64。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "把图片改成插画风格" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/cat.png" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "增强画面细节" },
+          { "type": "image_url", "image_url": { "url": "data:image/png;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'

读文件格式(URL / Base64)

适用于 PDF/图片/文本等可读文件,Word/PPT 等可能不支持会被提示转换。大部分文件都可能支持,建议自行测试。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并总结这个文件" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/doc.pdf" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并摘要" },
+          { "type": "image_url", "image_url": { "url": "data:application/pdf;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'
`,5)])])):l("",!0),e.value==="tutorials"?(u(),r("div",h,[...t[1]||(t[1]=[a(`

DuckMail 自动注册教程

DuckMail 是一个临时邮箱服务,可用于自动注册 Google 账号。

步骤 1:配置 DuckMail

访问 https://domain.duckmail.sbs/,登录注册后:

  • • 添加域名,按照提示进行 DNS 解析
  • • 创建自己的密钥(API Key)
  • • 前往本系统"配置面板",找到"DuckMail 配置"部分
  • • 填写 DuckMail API Key
  • 推荐:在"默认注册域名"中填入自己的域名(DuckMail 可能会出现密码错误情况,建议使用自己的域名)

步骤 2:开始注册

前往"账户管理"页面:

  • • 点击"添加账户"按钮
  • • 选择"自动注册"标签
  • • 设置注册数量
  • • 勾选同意声明
  • • 点击"开始注册"

步骤 3:查看进度

注册过程会自动进行:

  • • 系统会自动打开"任务状态"弹窗
  • • 可以查看实时日志和进度
  • • 注册完成后会显示成功/失败数量
  • • 成功的账号会自动添加到账户列表

常见问题

❓ 自动注册/刷新失败怎么办?

关闭无头浏览器可以直接看到问题所在:

  • • 前往"配置面板",找到"自动化配置"部分
  • • 取消勾选"无头模式"
  • • 重新执行注册/刷新操作,观察浏览器窗口

可能的原因:

  • IP 被检测拦截:同一 IP 多次注册有风控,建议更换合适的 IP
  • 验证码问题:Google 可能要求人机验证
  • 网络问题:检查网络连接是否稳定

❓ 503 Service Unavailable 错误

如果后台日志出现以下错误:

INFO:     127.0.0.1:7860 - "GET /admin/register/current HTTP/1.1" 503 Service Unavailable
+INFO:     127.0.0.1:7860 - "GET /admin/login/current HTTP/1.1" 503 Service Unavailable
+INFO:     127.0.0.1:7860 - "POST /admin/register/start HTTP/1.1" 503 Service Unavailable

解决方法:

  • • 这是 undetected-chromedriver 没有正常启动导致的
  • • 在虚拟环境内重新安装依赖:pip install -r requirements.txt
  • • 删除之前的进程(检查是否有残留的 Chrome 进程)
  • • 重新启动服务
`,2)])])):l("",!0),e.value==="disclaimer"?(u(),r("div",_,[...t[2]||(t[2]=[a('

使用声明与免责条款

⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)

本工具严禁用于以下行为:

  • • 商业用途或盈利性使用
  • • 任何形式的批量操作或自动化滥用(无论规模大小)
  • • 破坏市场秩序或恶意竞争
  • • 违反 Google 服务条款的任何行为
  • • 违反 Microsoft 服务条款的任何行为

违规后果

滥用行为可能导致账号永久封禁、法律追责,一切后果由使用者自行承担。

📖 合法用途

本项目仅限于以下场景:

  • • 个人学习与技术研究
  • • 浏览器自动化技术探索
  • • 非商业性技术交流

⚖️ 法律责任

  • 使用者责任:使用本工具产生的一切后果(包括但不限于账号封禁、数据损失、法律纠纷)由使用者完全承担
  • 合规义务:使用者必须遵守所在地法律法规及第三方服务条款(包括但不限于 Google Workspace、Microsoft 365 等服务条款)
  • 作者免责:作者不对任何违规使用、滥用行为或由此产生的后果承担责任

📋 技术声明

  • 无担保:本项目按"现状"提供,不提供任何形式的担保
  • 第三方依赖:依赖的第三方服务(如 DuckMail API、Microsoft Graph API 等)可用性不受作者控制
  • 维护权利:作者保留随时停止维护、变更功能或关闭项目的权利

🔗 相关服务条款

使用本工具时,您必须同时遵守以下第三方服务的条款:

使用本工具即表示您已阅读、理解并同意遵守以上所有条款。

',1)])])):l("",!0)])])]))}});export{T as default}; diff --git a/static/assets/Docs-DIGqcqIE.js b/static/assets/Docs-DIGqcqIE.js new file mode 100644 index 0000000000000000000000000000000000000000..688cb7f1d7f835124a8973c896a6b1d2afd5976b --- /dev/null +++ b/static/assets/Docs-DIGqcqIE.js @@ -0,0 +1,101 @@ +import{c as r,z as s,e as n}from"./index-Bh_hLcqi.js";const a=(o,t)=>{const u=o.__vccOpts||o;for(const[e,q]of t)u[e]=q;return u},p={},l={class:"space-y-6"};function c(o,t){return n(),r("div",l,[...t[0]||(t[0]=[s(`

文档中心

常用格式说明与示例,复制即可使用

账户配置格式

accounts.json 或环境变量 ACCOUNTS_CONFIG 使用的 JSON 数组

[
+  {
+    "id": "account_1",
+    "secure_c_ses": "CSE.Ad...",
+    "csesidx": "498...",
+    "config_id": "0cd...",
+    "host_c_oses": "",
+    "expires_at": "2026-12-31 23:59:59"
+  }
+]

必填:secure_c_ses / csesidx / config_id。id、host_c_oses、expires_at 可选。

API 对话 curl 格式

标准的 OpenAI 兼容格式,支持流式和非流式输出。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-flash",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "system", "content": "你是一个简洁的助手" },
+      { "role": "user", "content": "你好,介绍一下这个项目" }
+    ]
+  }'

如果未设置 API Key,可省略 Authorization。

文生图格式(Base64 / URL 输出)

使用支持文生图的模型,直接给文本提示即可;输出格式由系统设置决定(base64 或 url)。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-pro-preview",
+    "stream": true,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "user", "content": "生成一只戴着头盔的猫,赛博风格" }
+    ]
+  }'

图生图格式(Base64 / URL 输入)

content 使用多模态数组,image_url 可填 URL 或 data:base64。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "把图片改成插画风格" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/cat.png" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "增强画面细节" },
+          { "type": "image_url", "image_url": { "url": "data:image/png;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'

读文件格式(URL / Base64)

适用于 PDF/图片/文本等可读文件,Word/PPT 等可能不支持会被提示转换。大部分文件都可能支持,建议自行测试。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并总结这个文件" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/doc.pdf" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并摘要" },
+          { "type": "image_url", "image_url": { "url": "data:application/pdf;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'
`,1)])])}const i=a(p,[["render",c]]);export{i as default}; diff --git a/static/assets/Docs-D_79t2cc.js b/static/assets/Docs-D_79t2cc.js new file mode 100644 index 0000000000000000000000000000000000000000..7328793a8e060b616afb48c201f561230e3f2887 --- /dev/null +++ b/static/assets/Docs-D_79t2cc.js @@ -0,0 +1,101 @@ +import{c as r,z as s,e as n}from"./index-Babp7OwB.js";const a=(o,t)=>{const u=o.__vccOpts||o;for(const[e,q]of t)u[e]=q;return u},p={},l={class:"space-y-6"};function c(o,t){return n(),r("div",l,[...t[0]||(t[0]=[s(`

文档中心

常用格式说明与示例,复制即可使用

账户配置格式

accounts.json 或环境变量 ACCOUNTS_CONFIG 使用的 JSON 数组

[
+  {
+    "id": "account_1",
+    "secure_c_ses": "CSE.Ad...",
+    "csesidx": "498...",
+    "config_id": "0cd...",
+    "host_c_oses": "",
+    "expires_at": "2026-12-31 23:59:59"
+  }
+]

必填:secure_c_ses / csesidx / config_id。id、host_c_oses、expires_at 可选。

API 对话 curl 格式

标准的 OpenAI 兼容格式,支持流式和非流式输出。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-flash",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "system", "content": "你是一个简洁的助手" },
+      { "role": "user", "content": "你好,介绍一下这个项目" }
+    ]
+  }'

如果未设置 API Key,可省略 Authorization。

文生图格式(Base64 / URL 输出)

使用支持文生图的模型,直接给文本提示即可;输出格式由系统设置决定(base64 或 url)。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-pro-preview",
+    "stream": true,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "user", "content": "生成一只戴着头盔的猫,赛博风格" }
+    ]
+  }'

图生图格式(Base64 / URL 输入)

content 使用多模态数组,image_url 可填 URL 或 data:base64。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "把图片改成插画风格" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/cat.png" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "增强画面细节" },
+          { "type": "image_url", "image_url": { "url": "data:image/png;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'

读文件格式(URL / Base64)

适用于 PDF/图片/文本等可读文件,Word/PPT 等可能不支持会被提示转换。大部分文件都可能支持,建议自行测试。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并总结这个文件" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/doc.pdf" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并摘要" },
+          { "type": "image_url", "image_url": { "url": "data:application/pdf;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'
`,1)])])}const i=a(p,[["render",c]]);export{i as default}; diff --git a/static/assets/Docs-Dkbv5Kw3.js b/static/assets/Docs-Dkbv5Kw3.js new file mode 100644 index 0000000000000000000000000000000000000000..f55027b77afc41ee37b5df5060dbd0600c6eaaf7 --- /dev/null +++ b/static/assets/Docs-Dkbv5Kw3.js @@ -0,0 +1,101 @@ +import{c as r,z as s,e as n}from"./index-gD6QQiOu.js";const a=(o,t)=>{const u=o.__vccOpts||o;for(const[e,q]of t)u[e]=q;return u},p={},l={class:"space-y-6"};function c(o,t){return n(),r("div",l,[...t[0]||(t[0]=[s(`

文档中心

常用格式说明与示例,复制即可使用

账户配置格式

accounts.json 或环境变量 ACCOUNTS_CONFIG 使用的 JSON 数组

[
+  {
+    "id": "account_1",
+    "secure_c_ses": "CSE.Ad...",
+    "csesidx": "498...",
+    "config_id": "0cd...",
+    "host_c_oses": "",
+    "expires_at": "2026-12-31 23:59:59"
+  }
+]

必填:secure_c_ses / csesidx / config_id。id、host_c_oses、expires_at 可选。

API 对话 curl 格式

标准的 OpenAI 兼容格式,支持流式和非流式输出。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-flash",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "system", "content": "你是一个简洁的助手" },
+      { "role": "user", "content": "你好,介绍一下这个项目" }
+    ]
+  }'

如果未设置 API Key,可省略 Authorization。

文生图格式(Base64 / URL 输出)

使用支持文生图的模型,直接给文本提示即可;输出格式由系统设置决定(base64 或 url)。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-pro-preview",
+    "stream": true,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "user", "content": "生成一只戴着头盔的猫,赛博风格" }
+    ]
+  }'

图生图格式(Base64 / URL 输入)

content 使用多模态数组,image_url 可填 URL 或 data:base64。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "把图片改成插画风格" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/cat.png" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "增强画面细节" },
+          { "type": "image_url", "image_url": { "url": "data:image/png;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'

读文件格式(URL / Base64)

适用于 PDF/图片/文本等可读文件,Word/PPT 等可能不支持会被提示转换。大部分文件都可能支持,建议自行测试。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并总结这个文件" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/doc.pdf" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并摘要" },
+          { "type": "image_url", "image_url": { "url": "data:application/pdf;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'
`,1)])])}const i=a(p,[["render",c]]);export{i as default}; diff --git a/static/assets/Docs-DprmgrMq.js b/static/assets/Docs-DprmgrMq.js new file mode 100644 index 0000000000000000000000000000000000000000..8f4ed7958857063ca44b5ffb3dbf84a73f0b8359 --- /dev/null +++ b/static/assets/Docs-DprmgrMq.js @@ -0,0 +1,101 @@ +import{c as r,B as s,e as n}from"./index-DL4Fp3an.js";const a=(o,t)=>{const u=o.__vccOpts||o;for(const[e,q]of t)u[e]=q;return u},p={},l={class:"space-y-6"};function c(o,t){return n(),r("div",l,[...t[0]||(t[0]=[s(`

文档中心

常用格式说明与示例,复制即可使用

账户配置格式

accounts.json 或环境变量 ACCOUNTS_CONFIG 使用的 JSON 数组

[
+  {
+    "id": "account_1",
+    "secure_c_ses": "CSE.Ad...",
+    "csesidx": "498...",
+    "config_id": "0cd...",
+    "host_c_oses": "",
+    "expires_at": "2026-12-31 23:59:59"
+  }
+]

必填:secure_c_ses / csesidx / config_id。id、host_c_oses、expires_at 可选。

API 对话 curl 格式

标准的 OpenAI 兼容格式,支持流式和非流式输出。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-flash",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "system", "content": "你是一个简洁的助手" },
+      { "role": "user", "content": "你好,介绍一下这个项目" }
+    ]
+  }'

如果未设置 API Key,可省略 Authorization。

文生图格式(Base64 / URL 输出)

使用支持文生图的模型,直接给文本提示即可;输出格式由系统设置决定(base64 或 url)。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-pro-preview",
+    "stream": true,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "user", "content": "生成一只戴着头盔的猫,赛博风格" }
+    ]
+  }'

图生图格式(Base64 / URL 输入)

content 使用多模态数组,image_url 可填 URL 或 data:base64。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "把图片改成插画风格" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/cat.png" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "增强画面细节" },
+          { "type": "image_url", "image_url": { "url": "data:image/png;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'

读文件格式(URL / Base64)

适用于 PDF/图片/文本等可读文件,Word/PPT 等可能不支持会被提示转换。大部分文件都可能支持,建议自行测试。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并总结这个文件" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/doc.pdf" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并摘要" },
+          { "type": "image_url", "image_url": { "url": "data:application/pdf;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'
`,1)])])}const i=a(p,[["render",c]]);export{i as default}; diff --git a/static/assets/Docs-DrYn7Aa0.js b/static/assets/Docs-DrYn7Aa0.js new file mode 100644 index 0000000000000000000000000000000000000000..b58bd9129ea72193772f959d293c57392bcae65a --- /dev/null +++ b/static/assets/Docs-DrYn7Aa0.js @@ -0,0 +1,101 @@ +import{c as r,B as s,e as n}from"./index-JaBfp01b.js";const a=(o,t)=>{const u=o.__vccOpts||o;for(const[e,q]of t)u[e]=q;return u},p={},l={class:"space-y-6"};function c(o,t){return n(),r("div",l,[...t[0]||(t[0]=[s(`

文档中心

常用格式说明与示例,复制即可使用

账户配置格式

accounts.json 或环境变量 ACCOUNTS_CONFIG 使用的 JSON 数组

[
+  {
+    "id": "account_1",
+    "secure_c_ses": "CSE.Ad...",
+    "csesidx": "498...",
+    "config_id": "0cd...",
+    "host_c_oses": "",
+    "expires_at": "2026-12-31 23:59:59"
+  }
+]

必填:secure_c_ses / csesidx / config_id。id、host_c_oses、expires_at 可选。

API 对话 curl 格式

标准的 OpenAI 兼容格式,支持流式和非流式输出。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-flash",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "system", "content": "你是一个简洁的助手" },
+      { "role": "user", "content": "你好,介绍一下这个项目" }
+    ]
+  }'

如果未设置 API Key,可省略 Authorization。

文生图格式(Base64 / URL 输出)

使用支持文生图的模型,直接给文本提示即可;输出格式由系统设置决定(base64 或 url)。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-pro-preview",
+    "stream": true,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "user", "content": "生成一只戴着头盔的猫,赛博风格" }
+    ]
+  }'

图生图格式(Base64 / URL 输入)

content 使用多模态数组,image_url 可填 URL 或 data:base64。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "把图片改成插画风格" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/cat.png" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "增强画面细节" },
+          { "type": "image_url", "image_url": { "url": "data:image/png;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'

读文件格式(URL / Base64)

适用于 PDF/图片/文本等可读文件,Word/PPT 等可能不支持会被提示转换。大部分文件都可能支持,建议自行测试。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并总结这个文件" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/doc.pdf" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并摘要" },
+          { "type": "image_url", "image_url": { "url": "data:application/pdf;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'
`,1)])])}const i=a(p,[["render",c]]);export{i as default}; diff --git a/static/assets/Docs-F9vFefbz.js b/static/assets/Docs-F9vFefbz.js new file mode 100644 index 0000000000000000000000000000000000000000..3f69ef587c45832cd0d453e4c528d87a51be386d --- /dev/null +++ b/static/assets/Docs-F9vFefbz.js @@ -0,0 +1,101 @@ +import{d as i,h as d,c as u,a as o,F as q,r as p,b as l,A as a,n as c,t as m,e as s}from"./index-Dt-VnrHx.js";const x={class:"space-y-6"},b={class:"rounded-3xl border border-border bg-card p-6"},g={class:"mt-6 flex rounded-full border border-border bg-muted/30 p-1 text-xs"},f=["onClick"],v={class:"mt-6 space-y-6 text-sm text-foreground"},_={key:0,class:"space-y-6"},h={key:1,class:"space-y-6"},y={key:2,class:"space-y-6"},O=i({__name:"Docs",setup(w){const e=d("tutorials"),n=[{id:"tutorials",label:"使用教程"},{id:"api",label:"API 文档"},{id:"disclaimer",label:"使用声明"}];return(A,t)=>(s(),u("div",x,[o("section",b,[t[3]||(t[3]=o("div",{class:"flex flex-wrap items-center justify-between gap-3"},[o("div",null,[o("p",{class:"text-base font-semibold text-foreground"},"帮助中心"),o("p",{class:"mt-1 text-xs text-muted-foreground"}," 快速上手与常见问题 ")])],-1)),o("div",g,[(s(),u(q,null,p(n,r=>o("button",{key:r.id,class:c(["flex-1 rounded-full px-4 py-2 font-medium transition-colors",e.value===r.id?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:k=>e.value=r.id},m(r.label),11,f)),64))]),o("div",v,[e.value==="api"?(s(),u("div",_,[...t[0]||(t[0]=[a(`

账户配置格式

accounts.json 或环境变量 ACCOUNTS_CONFIG 使用的 JSON 数组

[
+  {
+    "id": "account_1",
+    "secure_c_ses": "CSE.Ad...",
+    "csesidx": "498...",
+    "config_id": "0cd...",
+    "host_c_oses": "",
+    "expires_at": "2026-12-31 23:59:59"
+  }
+]

必填:secure_c_ses / csesidx / config_id。id、host_c_oses、expires_at 可选。

API 对话 curl 格式

标准的 OpenAI 兼容格式,支持流式和非流式输出。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-flash",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "system", "content": "你是一个简洁的助手" },
+      { "role": "user", "content": "你好,介绍一下这个项目" }
+    ]
+  }'

如果未设置 API Key,可省略 Authorization。

文生图格式(Base64 / URL 输出)

使用支持文生图的模型,直接给文本提示即可;输出格式由系统设置决定(base64 或 url)。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-pro-preview",
+    "stream": true,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "user", "content": "生成一只戴着头盔的猫,赛博风格" }
+    ]
+  }'

图生图格式(Base64 / URL 输入)

content 使用多模态数组,image_url 可填 URL 或 data:base64。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "把图片改成插画风格" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/cat.png" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "增强画面细节" },
+          { "type": "image_url", "image_url": { "url": "data:image/png;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'

读文件格式(URL / Base64)

适用于 PDF/图片/文本等可读文件,Word/PPT 等可能不支持会被提示转换。大部分文件都可能支持,建议自行测试。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并总结这个文件" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/doc.pdf" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并摘要" },
+          { "type": "image_url", "image_url": { "url": "data:application/pdf;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'
`,5)])])):l("",!0),e.value==="tutorials"?(s(),u("div",h,[...t[1]||(t[1]=[a('

DuckMail 自动注册教程

DuckMail 是一个临时邮箱服务,可用于自动注册 Google 账号。

步骤 1:配置 DuckMail

访问 https://domain.duckmail.sbs/,登录注册后:

  • • 添加域名,按照提示进行 DNS 解析
  • • 创建自己的密钥(API Key)
  • • 前往本系统"配置面板",找到"DuckMail 配置"部分
  • • 填写 DuckMail API Key
  • 推荐:在"默认注册域名"中填入自己的域名(DuckMail 可能会出现密码错误情况,建议使用自己的域名)

步骤 2:开始注册

前往"账户管理"页面:

  • • 点击"添加账户"按钮
  • • 选择"自动注册"标签
  • • 设置注册数量
  • • 勾选同意声明
  • • 点击"开始注册"

步骤 3:查看进度

注册过程会自动进行:

  • • 系统会自动打开"任务状态"弹窗
  • • 可以查看实时日志和进度
  • • 注册完成后会显示成功/失败数量
  • • 成功的账号会自动添加到账户列表
',1)])])):l("",!0),e.value==="disclaimer"?(s(),u("div",y,[...t[2]||(t[2]=[a('

使用声明与免责条款

⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)

本工具严禁用于以下行为:

  • • 商业用途或盈利性使用
  • • 任何形式的批量操作或自动化滥用(无论规模大小)
  • • 破坏市场秩序或恶意竞争
  • • 违反 Google 服务条款的任何行为
  • • 违反 Microsoft 服务条款的任何行为

违规后果

滥用行为可能导致账号永久封禁、法律追责,一切后果由使用者自行承担。

📖 合法用途

本项目仅限于以下场景:

  • • 个人学习与技术研究
  • • 浏览器自动化技术探索
  • • 非商业性技术交流

⚖️ 法律责任

  • 使用者责任:使用本工具产生的一切后果(包括但不限于账号封禁、数据损失、法律纠纷)由使用者完全承担
  • 合规义务:使用者必须遵守所在地法律法规及第三方服务条款(包括但不限于 Google Workspace、Microsoft 365 等服务条款)
  • 作者免责:作者不对任何违规使用、滥用行为或由此产生的后果承担责任

📋 技术声明

  • 无担保:本项目按"现状"提供,不提供任何形式的担保
  • 第三方依赖:依赖的第三方服务(如 DuckMail API、Microsoft Graph API 等)可用性不受作者控制
  • 维护权利:作者保留随时停止维护、变更功能或关闭项目的权利

🔗 相关服务条款

使用本工具时,您必须同时遵守以下第三方服务的条款:

使用本工具即表示您已阅读、理解并同意遵守以上所有条款。

',1)])])):l("",!0)])])]))}});export{O as default}; diff --git a/static/assets/Docs-IW2JYiXJ.js b/static/assets/Docs-IW2JYiXJ.js new file mode 100644 index 0000000000000000000000000000000000000000..7d2d60c508b89ae5ab51630851b753608560ca84 --- /dev/null +++ b/static/assets/Docs-IW2JYiXJ.js @@ -0,0 +1,101 @@ +import{c as r,z as s,e as n}from"./index-4tSmcUDY.js";const a=(o,t)=>{const u=o.__vccOpts||o;for(const[e,q]of t)u[e]=q;return u},p={},l={class:"space-y-6"};function c(o,t){return n(),r("div",l,[...t[0]||(t[0]=[s(`

文档中心

常用格式说明与示例,复制即可使用

账户配置格式

accounts.json 或环境变量 ACCOUNTS_CONFIG 使用的 JSON 数组

[
+  {
+    "id": "account_1",
+    "secure_c_ses": "CSE.Ad...",
+    "csesidx": "498...",
+    "config_id": "0cd...",
+    "host_c_oses": "",
+    "expires_at": "2026-12-31 23:59:59"
+  }
+]

必填:secure_c_ses / csesidx / config_id。id、host_c_oses、expires_at 可选。

API 对话 curl 格式

标准的 OpenAI 兼容格式,支持流式和非流式输出。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-flash",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "system", "content": "你是一个简洁的助手" },
+      { "role": "user", "content": "你好,介绍一下这个项目" }
+    ]
+  }'

如果未设置 API Key,可省略 Authorization。

文生图格式(Base64 / URL 输出)

使用支持文生图的模型,直接给文本提示即可;输出格式由系统设置决定(base64 或 url)。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-pro-preview",
+    "stream": true,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "user", "content": "生成一只戴着头盔的猫,赛博风格" }
+    ]
+  }'

图生图格式(Base64 / URL 输入)

content 使用多模态数组,image_url 可填 URL 或 data:base64。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "把图片改成插画风格" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/cat.png" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "增强画面细节" },
+          { "type": "image_url", "image_url": { "url": "data:image/png;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'

读文件格式(URL / Base64)

适用于 PDF/图片/文本等可读文件,Word/PPT 等可能不支持会被提示转换。大部分文件都可能支持,建议自行测试。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并总结这个文件" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/doc.pdf" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并摘要" },
+          { "type": "image_url", "image_url": { "url": "data:application/pdf;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'
`,1)])])}const i=a(p,[["render",c]]);export{i as default}; diff --git a/static/assets/Docs-QnQDmoUp.js b/static/assets/Docs-QnQDmoUp.js new file mode 100644 index 0000000000000000000000000000000000000000..4cf8a4b2e173cbbf3b6d7d2dd30427f8f1cc538e --- /dev/null +++ b/static/assets/Docs-QnQDmoUp.js @@ -0,0 +1,101 @@ +import{c as r,C as s,e as n}from"./index-CM73xqTK.js";const a=(o,t)=>{const u=o.__vccOpts||o;for(const[e,q]of t)u[e]=q;return u},p={},l={class:"space-y-6"};function c(o,t){return n(),r("div",l,[...t[0]||(t[0]=[s(`

文档中心

常用格式说明与示例,复制即可使用

账户配置格式

accounts.json 或环境变量 ACCOUNTS_CONFIG 使用的 JSON 数组

[
+  {
+    "id": "account_1",
+    "secure_c_ses": "CSE.Ad...",
+    "csesidx": "498...",
+    "config_id": "0cd...",
+    "host_c_oses": "",
+    "expires_at": "2026-12-31 23:59:59"
+  }
+]

必填:secure_c_ses / csesidx / config_id。id、host_c_oses、expires_at 可选。

API 对话 curl 格式

标准的 OpenAI 兼容格式,支持流式和非流式输出。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-flash",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "system", "content": "你是一个简洁的助手" },
+      { "role": "user", "content": "你好,介绍一下这个项目" }
+    ]
+  }'

如果未设置 API Key,可省略 Authorization。

文生图格式(Base64 / URL 输出)

使用支持文生图的模型,直接给文本提示即可;输出格式由系统设置决定(base64 或 url)。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-pro-preview",
+    "stream": true,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "user", "content": "生成一只戴着头盔的猫,赛博风格" }
+    ]
+  }'

图生图格式(Base64 / URL 输入)

content 使用多模态数组,image_url 可填 URL 或 data:base64。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "把图片改成插画风格" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/cat.png" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "增强画面细节" },
+          { "type": "image_url", "image_url": { "url": "data:image/png;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'

读文件格式(URL / Base64)

适用于 PDF/图片/文本等可读文件,Word/PPT 等可能不支持会被提示转换。大部分文件都可能支持,建议自行测试。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并总结这个文件" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/doc.pdf" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并摘要" },
+          { "type": "image_url", "image_url": { "url": "data:application/pdf;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'
`,1)])])}const i=a(p,[["render",c]]);export{i as default}; diff --git a/static/assets/Docs-W2jIndAr.js b/static/assets/Docs-W2jIndAr.js new file mode 100644 index 0000000000000000000000000000000000000000..19d85ffc8efbdc199e3367b52bf3a591a5f52ce0 --- /dev/null +++ b/static/assets/Docs-W2jIndAr.js @@ -0,0 +1,101 @@ +import{c as r,B as s,e as n}from"./index-OP3F9IRB.js";const a=(o,t)=>{const u=o.__vccOpts||o;for(const[e,q]of t)u[e]=q;return u},p={},l={class:"space-y-6"};function c(o,t){return n(),r("div",l,[...t[0]||(t[0]=[s(`

文档中心

常用格式说明与示例,复制即可使用

账户配置格式

accounts.json 或环境变量 ACCOUNTS_CONFIG 使用的 JSON 数组

[
+  {
+    "id": "account_1",
+    "secure_c_ses": "CSE.Ad...",
+    "csesidx": "498...",
+    "config_id": "0cd...",
+    "host_c_oses": "",
+    "expires_at": "2026-12-31 23:59:59"
+  }
+]

必填:secure_c_ses / csesidx / config_id。id、host_c_oses、expires_at 可选。

API 对话 curl 格式

标准的 OpenAI 兼容格式,支持流式和非流式输出。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-flash",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "system", "content": "你是一个简洁的助手" },
+      { "role": "user", "content": "你好,介绍一下这个项目" }
+    ]
+  }'

如果未设置 API Key,可省略 Authorization。

文生图格式(Base64 / URL 输出)

使用支持文生图的模型,直接给文本提示即可;输出格式由系统设置决定(base64 或 url)。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-pro-preview",
+    "stream": true,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "user", "content": "生成一只戴着头盔的猫,赛博风格" }
+    ]
+  }'

图生图格式(Base64 / URL 输入)

content 使用多模态数组,image_url 可填 URL 或 data:base64。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "把图片改成插画风格" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/cat.png" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "增强画面细节" },
+          { "type": "image_url", "image_url": { "url": "data:image/png;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'

读文件格式(URL / Base64)

适用于 PDF/图片/文本等可读文件,Word/PPT 等可能不支持会被提示转换。大部分文件都可能支持,建议自行测试。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并总结这个文件" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/doc.pdf" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并摘要" },
+          { "type": "image_url", "image_url": { "url": "data:application/pdf;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'
`,1)])])}const i=a(p,[["render",c]]);export{i as default}; diff --git a/static/assets/Docs-WMoQZyIh.js b/static/assets/Docs-WMoQZyIh.js new file mode 100644 index 0000000000000000000000000000000000000000..67abdf9d22e829c3d9ff3752448aedb66734cc9c --- /dev/null +++ b/static/assets/Docs-WMoQZyIh.js @@ -0,0 +1,103 @@ +import{d as i,h as d,c as r,a as o,F as p,r as q,b as l,A as a,n as c,t as m,e as u}from"./index-BYFRJmx0.js";const x={class:"space-y-6"},b={class:"rounded-3xl border border-border bg-card p-6"},g={class:"mt-6 flex rounded-full border border-border bg-muted/30 p-1 text-xs"},f=["onClick"],v={class:"mt-6 space-y-6 text-sm text-foreground"},y={key:0,class:"space-y-6"},h={key:1,class:"space-y-6"},_={key:2,class:"space-y-6"},T=i({__name:"Docs",setup(w){const e=d("tutorials"),n=[{id:"tutorials",label:"使用教程"},{id:"api",label:"API 文档"},{id:"disclaimer",label:"使用声明"}];return(A,t)=>(u(),r("div",x,[o("section",b,[t[3]||(t[3]=o("div",{class:"flex flex-wrap items-center justify-between gap-3"},[o("div",null,[o("p",{class:"text-base font-semibold text-foreground"},"帮助中心"),o("p",{class:"mt-1 text-xs text-muted-foreground"}," 快速上手与常见问题 ")])],-1)),o("div",g,[(u(),r(p,null,q(n,s=>o("button",{key:s.id,class:c(["flex-1 rounded-full px-4 py-2 font-medium transition-colors",e.value===s.id?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:P=>e.value=s.id},m(s.label),11,f)),64))]),o("div",v,[e.value==="api"?(u(),r("div",y,[...t[0]||(t[0]=[a(`

账户配置格式

accounts.json 或环境变量 ACCOUNTS_CONFIG 使用的 JSON 数组

[
+  {
+    "id": "account_1",
+    "secure_c_ses": "CSE.Ad...",
+    "csesidx": "498...",
+    "config_id": "0cd...",
+    "host_c_oses": "",
+    "expires_at": "2026-12-31 23:59:59"
+  }
+]

必填:secure_c_ses / csesidx / config_id。id、host_c_oses、expires_at 可选。

API 对话 curl 格式

标准的 OpenAI 兼容格式,支持流式和非流式输出。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-flash",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "system", "content": "你是一个简洁的助手" },
+      { "role": "user", "content": "你好,介绍一下这个项目" }
+    ]
+  }'

如果未设置 API Key,可省略 Authorization。

文生图格式(Base64 / URL 输出)

使用支持文生图的模型,直接给文本提示即可;输出格式由系统设置决定(base64 或 url)。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-pro-preview",
+    "stream": true,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "user", "content": "生成一只戴着头盔的猫,赛博风格" }
+    ]
+  }'

图生图格式(Base64 / URL 输入)

content 使用多模态数组,image_url 可填 URL 或 data:base64。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "把图片改成插画风格" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/cat.png" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "增强画面细节" },
+          { "type": "image_url", "image_url": { "url": "data:image/png;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'

读文件格式(URL / Base64)

适用于 PDF/图片/文本等可读文件,Word/PPT 等可能不支持会被提示转换。大部分文件都可能支持,建议自行测试。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并总结这个文件" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/doc.pdf" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并摘要" },
+          { "type": "image_url", "image_url": { "url": "data:application/pdf;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'
`,5)])])):l("",!0),e.value==="tutorials"?(u(),r("div",h,[...t[1]||(t[1]=[a(`

DuckMail 自动注册教程

DuckMail 是一个临时邮箱服务,可用于自动注册 Google 账号。

步骤 1:配置 DuckMail

访问 https://domain.duckmail.sbs/,登录注册后:

  • • 添加域名,按照提示进行 DNS 解析
  • • 创建自己的密钥(API Key)
  • • 前往本系统"配置面板",找到"DuckMail 配置"部分
  • • 填写 DuckMail API Key
  • 推荐:在"默认注册域名"中填入自己的域名(DuckMail 可能会出现密码错误情况,建议使用自己的域名)

步骤 2:开始注册

前往"账户管理"页面:

  • • 点击"添加账户"按钮
  • • 选择"自动注册"标签
  • • 设置注册数量
  • • 勾选同意声明
  • • 点击"开始注册"

步骤 3:查看进度

注册过程会自动进行:

  • • 系统会自动打开"任务状态"弹窗
  • • 可以查看实时日志和进度
  • • 注册完成后会显示成功/失败数量
  • • 成功的账号会自动添加到账户列表

常见问题

❓ 自动注册/刷新失败怎么办?

关闭无头浏览器可以直接看到问题所在:

  • • 前往"配置面板",找到"自动化配置"部分
  • • 取消勾选"无头模式"
  • • 重新执行注册/刷新操作,观察浏览器窗口

可能的原因:

  • IP 被检测拦截:同一 IP 多次注册有风控,建议更换合适的 IP
  • 验证码问题:Google 可能要求人机验证
  • 网络问题:检查网络连接是否稳定

❓ 503 Service Unavailable 错误

如果后台日志出现以下错误:

INFO:     127.0.0.1:7860 - "GET /admin/register/current HTTP/1.1" 503 Service Unavailable
+INFO:     127.0.0.1:7860 - "GET /admin/login/current HTTP/1.1" 503 Service Unavailable
+INFO:     127.0.0.1:7860 - "POST /admin/register/start HTTP/1.1" 503 Service Unavailable

解决方法:

  • • 这是 undetected-chromedriver 没有正常启动导致的
  • • 在虚拟环境内重新安装依赖:pip install -r requirements.txt
  • • 删除之前的进程(检查是否有残留的 Chrome 进程)
  • • 重新启动服务
`,2)])])):l("",!0),e.value==="disclaimer"?(u(),r("div",_,[...t[2]||(t[2]=[a('

使用声明与免责条款

⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)

本工具严禁用于以下行为:

  • • 商业用途或盈利性使用
  • • 任何形式的批量操作或自动化滥用(无论规模大小)
  • • 破坏市场秩序或恶意竞争
  • • 违反 Google 服务条款的任何行为
  • • 违反 Microsoft 服务条款的任何行为

违规后果

滥用行为可能导致账号永久封禁、法律追责,一切后果由使用者自行承担。

📖 合法用途

本项目仅限于以下场景:

  • • 个人学习与技术研究
  • • 浏览器自动化技术探索
  • • 非商业性技术交流

⚖️ 法律责任

  • 使用者责任:使用本工具产生的一切后果(包括但不限于账号封禁、数据损失、法律纠纷)由使用者完全承担
  • 合规义务:使用者必须遵守所在地法律法规及第三方服务条款(包括但不限于 Google Workspace、Microsoft 365 等服务条款)
  • 作者免责:作者不对任何违规使用、滥用行为或由此产生的后果承担责任

📋 技术声明

  • 无担保:本项目按"现状"提供,不提供任何形式的担保
  • 第三方依赖:依赖的第三方服务(如 DuckMail API、Microsoft Graph API 等)可用性不受作者控制
  • 维护权利:作者保留随时停止维护、变更功能或关闭项目的权利

🔗 相关服务条款

使用本工具时,您必须同时遵守以下第三方服务的条款:

使用本工具即表示您已阅读、理解并同意遵守以上所有条款。

',1)])])):l("",!0)])])]))}});export{T as default}; diff --git a/static/assets/Docs-WfTxP6YO.js b/static/assets/Docs-WfTxP6YO.js new file mode 100644 index 0000000000000000000000000000000000000000..ababa4dbaf1de1fd469ff5d4355b52b0742e41bf --- /dev/null +++ b/static/assets/Docs-WfTxP6YO.js @@ -0,0 +1,103 @@ +import{d as i,h as d,c as r,a as o,F as p,r as q,b as l,A as a,n as c,t as m,e as u}from"./index-C4edAQLF.js";const x={class:"space-y-6"},b={class:"rounded-3xl border border-border bg-card p-6"},g={class:"mt-6 flex rounded-full border border-border bg-muted/30 p-1 text-xs"},f=["onClick"],v={class:"mt-6 space-y-6 text-sm text-foreground"},y={key:0,class:"space-y-6"},h={key:1,class:"space-y-6"},_={key:2,class:"space-y-6"},T=i({__name:"Docs",setup(w){const e=d("tutorials"),n=[{id:"tutorials",label:"使用教程"},{id:"api",label:"API 文档"},{id:"disclaimer",label:"使用声明"}];return(A,t)=>(u(),r("div",x,[o("section",b,[t[3]||(t[3]=o("div",{class:"flex flex-wrap items-center justify-between gap-3"},[o("div",null,[o("p",{class:"text-base font-semibold text-foreground"},"帮助中心"),o("p",{class:"mt-1 text-xs text-muted-foreground"}," 快速上手与常见问题 ")])],-1)),o("div",g,[(u(),r(p,null,q(n,s=>o("button",{key:s.id,class:c(["flex-1 rounded-full px-4 py-2 font-medium transition-colors",e.value===s.id?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"]),onClick:P=>e.value=s.id},m(s.label),11,f)),64))]),o("div",v,[e.value==="api"?(u(),r("div",y,[...t[0]||(t[0]=[a(`

账户配置格式

accounts.json 或环境变量 ACCOUNTS_CONFIG 使用的 JSON 数组

[
+  {
+    "id": "account_1",
+    "secure_c_ses": "CSE.Ad...",
+    "csesidx": "498...",
+    "config_id": "0cd...",
+    "host_c_oses": "",
+    "expires_at": "2026-12-31 23:59:59"
+  }
+]

必填:secure_c_ses / csesidx / config_id。id、host_c_oses、expires_at 可选。

API 对话 curl 格式

标准的 OpenAI 兼容格式,支持流式和非流式输出。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-flash",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "system", "content": "你是一个简洁的助手" },
+      { "role": "user", "content": "你好,介绍一下这个项目" }
+    ]
+  }'

如果未设置 API Key,可省略 Authorization。

文生图格式(Base64 / URL 输出)

使用支持文生图的模型,直接给文本提示即可;输出格式由系统设置决定(base64 或 url)。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-pro-preview",
+    "stream": true,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "user", "content": "生成一只戴着头盔的猫,赛博风格" }
+    ]
+  }'

图生图格式(Base64 / URL 输入)

content 使用多模态数组,image_url 可填 URL 或 data:base64。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "把图片改成插画风格" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/cat.png" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "增强画面细节" },
+          { "type": "image_url", "image_url": { "url": "data:image/png;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'

读文件格式(URL / Base64)

适用于 PDF/图片/文本等可读文件,Word/PPT 等可能不支持会被提示转换。大部分文件都可能支持,建议自行测试。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并总结这个文件" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/doc.pdf" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并摘要" },
+          { "type": "image_url", "image_url": { "url": "data:application/pdf;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'
`,5)])])):l("",!0),e.value==="tutorials"?(u(),r("div",h,[...t[1]||(t[1]=[a(`

DuckMail 自动注册教程

DuckMail 是一个临时邮箱服务,可用于自动注册 Google 账号。

步骤 1:配置 DuckMail

访问 https://domain.duckmail.sbs/,登录注册后:

  • • 添加域名,按照提示进行 DNS 解析
  • • 创建自己的密钥(API Key)
  • • 前往本系统"配置面板",找到"DuckMail 配置"部分
  • • 填写 DuckMail API Key
  • 推荐:在"默认注册域名"中填入自己的域名(DuckMail 可能会出现密码错误情况,建议使用自己的域名)

步骤 2:开始注册

前往"账户管理"页面:

  • • 点击"添加账户"按钮
  • • 选择"自动注册"标签
  • • 设置注册数量
  • • 勾选同意声明
  • • 点击"开始注册"

步骤 3:查看进度

注册过程会自动进行:

  • • 系统会自动打开"任务状态"弹窗
  • • 可以查看实时日志和进度
  • • 注册完成后会显示成功/失败数量
  • • 成功的账号会自动添加到账户列表

常见问题

❓ 自动注册/刷新失败怎么办?

关闭无头浏览器可以直接看到问题所在:

  • • 前往"配置面板",找到"自动化配置"部分
  • • 取消勾选"无头模式"
  • • 重新执行注册/刷新操作,观察浏览器窗口

可能的原因:

  • IP 被检测拦截:同一 IP 多次注册有风控,建议更换合适的 IP
  • 验证码问题:Google 可能要求人机验证
  • 网络问题:检查网络连接是否稳定

❓ 503 Service Unavailable 错误

如果后台日志出现以下错误:

INFO:     127.0.0.1:7860 - "GET /admin/register/current HTTP/1.1" 503 Service Unavailable
+INFO:     127.0.0.1:7860 - "GET /admin/login/current HTTP/1.1" 503 Service Unavailable
+INFO:     127.0.0.1:7860 - "POST /admin/register/start HTTP/1.1" 503 Service Unavailable

解决方法:

  • • 这是 undetected-chromedriver 没有正常启动导致的
  • • 在虚拟环境内重新安装依赖:pip install -r requirements.txt
  • • 删除之前的进程(检查是否有残留的 Chrome 进程)
  • • 重新启动服务
`,2)])])):l("",!0),e.value==="disclaimer"?(u(),r("div",_,[...t[2]||(t[2]=[a('

使用声明与免责条款

⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)

本工具严禁用于以下行为:

  • • 商业用途或盈利性使用
  • • 任何形式的批量操作或自动化滥用(无论规模大小)
  • • 破坏市场秩序或恶意竞争
  • • 违反 Google 服务条款的任何行为
  • • 违反 Microsoft 服务条款的任何行为

违规后果

滥用行为可能导致账号永久封禁、法律追责,一切后果由使用者自行承担。

📖 合法用途

本项目仅限于以下场景:

  • • 个人学习与技术研究
  • • 浏览器自动化技术探索
  • • 非商业性技术交流

⚖️ 法律责任

  • 使用者责任:使用本工具产生的一切后果(包括但不限于账号封禁、数据损失、法律纠纷)由使用者完全承担
  • 合规义务:使用者必须遵守所在地法律法规及第三方服务条款(包括但不限于 Google Workspace、Microsoft 365 等服务条款)
  • 作者免责:作者不对任何违规使用、滥用行为或由此产生的后果承担责任

📋 技术声明

  • 无担保:本项目按"现状"提供,不提供任何形式的担保
  • 第三方依赖:依赖的第三方服务(如 DuckMail API、Microsoft Graph API 等)可用性不受作者控制
  • 维护权利:作者保留随时停止维护、变更功能或关闭项目的权利

🔗 相关服务条款

使用本工具时,您必须同时遵守以下第三方服务的条款:

使用本工具即表示您已阅读、理解并同意遵守以上所有条款。

',1)])])):l("",!0)])])]))}});export{T as default}; diff --git a/static/assets/Docs-k2T9Jai0.js b/static/assets/Docs-k2T9Jai0.js new file mode 100644 index 0000000000000000000000000000000000000000..a0edd6ddd64ead10971328417ef2d487a5dfbd2d --- /dev/null +++ b/static/assets/Docs-k2T9Jai0.js @@ -0,0 +1,101 @@ +import{c as r,z as s,e as n}from"./index-DMWZCTlx.js";const a=(o,t)=>{const u=o.__vccOpts||o;for(const[e,q]of t)u[e]=q;return u},p={},l={class:"space-y-6"};function c(o,t){return n(),r("div",l,[...t[0]||(t[0]=[s(`

文档中心

常用格式说明与示例,复制即可使用

账户配置格式

accounts.json 或环境变量 ACCOUNTS_CONFIG 使用的 JSON 数组

[
+  {
+    "id": "account_1",
+    "secure_c_ses": "CSE.Ad...",
+    "csesidx": "498...",
+    "config_id": "0cd...",
+    "host_c_oses": "",
+    "expires_at": "2026-12-31 23:59:59"
+  }
+]

必填:secure_c_ses / csesidx / config_id。id、host_c_oses、expires_at 可选。

API 对话 curl 格式

标准的 OpenAI 兼容格式,支持流式和非流式输出。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-flash",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "system", "content": "你是一个简洁的助手" },
+      { "role": "user", "content": "你好,介绍一下这个项目" }
+    ]
+  }'

如果未设置 API Key,可省略 Authorization。

文生图格式(Base64 / URL 输出)

使用支持文生图的模型,直接给文本提示即可;输出格式由系统设置决定(base64 或 url)。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-pro-preview",
+    "stream": true,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "user", "content": "生成一只戴着头盔的猫,赛博风格" }
+    ]
+  }'

图生图格式(Base64 / URL 输入)

content 使用多模态数组,image_url 可填 URL 或 data:base64。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "把图片改成插画风格" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/cat.png" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "增强画面细节" },
+          { "type": "image_url", "image_url": { "url": "data:image/png;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'

读文件格式(URL / Base64)

适用于 PDF/图片/文本等可读文件,Word/PPT 等可能不支持会被提示转换。大部分文件都可能支持,建议自行测试。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并总结这个文件" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/doc.pdf" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并摘要" },
+          { "type": "image_url", "image_url": { "url": "data:application/pdf;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'
`,1)])])}const i=a(p,[["render",c]]);export{i as default}; diff --git a/static/assets/Docs-mpFHVt06.js b/static/assets/Docs-mpFHVt06.js new file mode 100644 index 0000000000000000000000000000000000000000..e7906f40ee9371d54137fbfadd48941d5e271963 --- /dev/null +++ b/static/assets/Docs-mpFHVt06.js @@ -0,0 +1,101 @@ +import{c as r,z as s,e as n}from"./index-B0A0-QFY.js";const a=(o,t)=>{const u=o.__vccOpts||o;for(const[e,q]of t)u[e]=q;return u},p={},l={class:"space-y-6"};function c(o,t){return n(),r("div",l,[...t[0]||(t[0]=[s(`

文档中心

常用格式说明与示例,复制即可使用

账户配置格式

accounts.json 或环境变量 ACCOUNTS_CONFIG 使用的 JSON 数组

[
+  {
+    "id": "account_1",
+    "secure_c_ses": "CSE.Ad...",
+    "csesidx": "498...",
+    "config_id": "0cd...",
+    "host_c_oses": "",
+    "expires_at": "2026-12-31 23:59:59"
+  }
+]

必填:secure_c_ses / csesidx / config_id。id、host_c_oses、expires_at 可选。

API 对话 curl 格式

标准的 OpenAI 兼容格式,支持流式和非流式输出。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-flash",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "system", "content": "你是一个简洁的助手" },
+      { "role": "user", "content": "你好,介绍一下这个项目" }
+    ]
+  }'

如果未设置 API Key,可省略 Authorization。

文生图格式(Base64 / URL 输出)

使用支持文生图的模型,直接给文本提示即可;输出格式由系统设置决定(base64 或 url)。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-pro-preview",
+    "stream": true,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      { "role": "user", "content": "生成一只戴着头盔的猫,赛博风格" }
+    ]
+  }'

图生图格式(Base64 / URL 输入)

content 使用多模态数组,image_url 可填 URL 或 data:base64。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "把图片改成插画风格" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/cat.png" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-3-flash-preview",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "增强画面细节" },
+          { "type": "image_url", "image_url": { "url": "data:image/png;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'

读文件格式(URL / Base64)

适用于 PDF/图片/文本等可读文件,Word/PPT 等可能不支持会被提示转换。大部分文件都可能支持,建议自行测试。

curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并总结这个文件" },
+          { "type": "image_url", "image_url": { "url": "https://example.com/doc.pdf" } }
+        ]
+      }
+    ]
+  }'
curl -X POST "http://localhost:7860/v1/chat/completions" \\
+  -H "Content-Type: application/json" \\
+  -H "Authorization: Bearer YOUR_API_KEY" \\
+  -d '{
+    "model": "gemini-2.5-pro",
+    "stream": false,
+    "temperature": 0.7,
+    "top_p": 1,
+    "messages": [
+      {
+        "role": "user",
+        "content": [
+          { "type": "text", "text": "读取并摘要" },
+          { "type": "image_url", "image_url": { "url": "data:application/pdf;base64,AAA..." } }
+        ]
+      }
+    ]
+  }'
`,1)])])}const i=a(p,[["render",c]]);export{i as default}; diff --git a/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-32PHHvO_.js b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-32PHHvO_.js new file mode 100644 index 0000000000000000000000000000000000000000..84d4d0800b65a0d77120eb81d0e2635300584268 --- /dev/null +++ b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-32PHHvO_.js @@ -0,0 +1 @@ +import{d,h as n,c as i,F as m,a as r,m as x,H as g,T as b,b as v,k as y,f as k,t as T,G as _,e as a,s as h}from"./index-BCQxBeUo.js";const w=d({__name:"Tooltip",props:{text:{},offset:{}},setup(o){const u=o,e=n(null),l=n(!1),p=n({}),f=()=>{l.value=!0,_(()=>{if(!e.value)return;const t=e.value.getBoundingClientRect(),s=u.offset??8;p.value={left:`${t.left+t.width/2}px`,top:`${t.top-s}px`}})},c=()=>{l.value=!1};return(t,s)=>(a(),i(m,null,[r("span",{ref_key:"triggerRef",ref:e,class:"inline-flex",onMouseenter:f,onMouseleave:c,onFocusin:f,onFocusout:c},[g(t.$slots,"default")],544),(a(),x(b,{to:"body"},[l.value?(a(),i("div",{key:0,class:"fixed z-[9999] -translate-x-1/2 -translate-y-full rounded-md bg-foreground px-2 py-1 text-[10px] text-background shadow-lg",style:y(p.value)},[k(T(o.text)+" ",1),s[0]||(s[0]=r("span",{class:"absolute left-1/2 top-full h-0 w-0 -translate-x-1/2 border-x-4 border-t-4 border-x-transparent border-t-foreground"},null,-1))],4)):v("",!0)]))],64))}}),C=d({__name:"HelpTip",props:{text:{}},setup(o){return(u,e)=>(a(),x(w,{text:o.text},{default:h(()=>[...e[0]||(e[0]=[r("span",{class:"help-dot"},"?",-1)])]),_:1},8,["text"]))}});export{C as _}; diff --git a/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-BNcd5Xum.js b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-BNcd5Xum.js new file mode 100644 index 0000000000000000000000000000000000000000..987500ee89ed90314f8a68f6dcf9ddbde4b937c8 --- /dev/null +++ b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-BNcd5Xum.js @@ -0,0 +1 @@ +import{d,h as n,c as i,F as g,a as r,y as x,G as m,T as b,b as v,k as y,f as k,t as T,E as _,e as a,A as h}from"./index-4tSmcUDY.js";const w=d({__name:"Tooltip",props:{text:{},offset:{}},setup(o){const u=o,e=n(null),l=n(!1),p=n({}),f=()=>{l.value=!0,_(()=>{if(!e.value)return;const t=e.value.getBoundingClientRect(),s=u.offset??8;p.value={left:`${t.left+t.width/2}px`,top:`${t.top-s}px`}})},c=()=>{l.value=!1};return(t,s)=>(a(),i(g,null,[r("span",{ref_key:"triggerRef",ref:e,class:"inline-flex",onMouseenter:f,onMouseleave:c,onFocusin:f,onFocusout:c},[m(t.$slots,"default")],544),(a(),x(b,{to:"body"},[l.value?(a(),i("div",{key:0,class:"fixed z-[9999] -translate-x-1/2 -translate-y-full rounded-md bg-foreground px-2 py-1 text-[10px] text-background shadow-lg",style:y(p.value)},[k(T(o.text)+" ",1),s[0]||(s[0]=r("span",{class:"absolute left-1/2 top-full h-0 w-0 -translate-x-1/2 border-x-4 border-t-4 border-x-transparent border-t-foreground"},null,-1))],4)):v("",!0)]))],64))}}),C=d({__name:"HelpTip",props:{text:{}},setup(o){return(u,e)=>(a(),x(w,{text:o.text},{default:h(()=>[...e[0]||(e[0]=[r("span",{class:"help-dot"},"?",-1)])]),_:1},8,["text"]))}});export{C as _}; diff --git a/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-BYvP2-eE.js b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-BYvP2-eE.js new file mode 100644 index 0000000000000000000000000000000000000000..749f0a1dd65522a1749979ea5bbb34cb9536f6e8 --- /dev/null +++ b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-BYvP2-eE.js @@ -0,0 +1 @@ +import{d,h as n,c as i,F as g,a as r,y as x,G as m,T as b,b as v,k as y,f as k,t as T,E as _,e as a,A as h}from"./index-BIHSVHyU.js";const w=d({__name:"Tooltip",props:{text:{},offset:{}},setup(o){const u=o,e=n(null),l=n(!1),p=n({}),f=()=>{l.value=!0,_(()=>{if(!e.value)return;const t=e.value.getBoundingClientRect(),s=u.offset??8;p.value={left:`${t.left+t.width/2}px`,top:`${t.top-s}px`}})},c=()=>{l.value=!1};return(t,s)=>(a(),i(g,null,[r("span",{ref_key:"triggerRef",ref:e,class:"inline-flex",onMouseenter:f,onMouseleave:c,onFocusin:f,onFocusout:c},[m(t.$slots,"default")],544),(a(),x(b,{to:"body"},[l.value?(a(),i("div",{key:0,class:"fixed z-[9999] -translate-x-1/2 -translate-y-full rounded-md bg-foreground px-2 py-1 text-[10px] text-background shadow-lg",style:y(p.value)},[k(T(o.text)+" ",1),s[0]||(s[0]=r("span",{class:"absolute left-1/2 top-full h-0 w-0 -translate-x-1/2 border-x-4 border-t-4 border-x-transparent border-t-foreground"},null,-1))],4)):v("",!0)]))],64))}}),C=d({__name:"HelpTip",props:{text:{}},setup(o){return(u,e)=>(a(),x(w,{text:o.text},{default:h(()=>[...e[0]||(e[0]=[r("span",{class:"help-dot"},"?",-1)])]),_:1},8,["text"]))}});export{C as _}; diff --git a/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-BaMbEJhq.js b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-BaMbEJhq.js new file mode 100644 index 0000000000000000000000000000000000000000..598c341913b03a47908438aa09fe5d16229b3dbf --- /dev/null +++ b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-BaMbEJhq.js @@ -0,0 +1 @@ +import{d,h as n,c as i,F as g,a as r,z as x,G as m,T as b,b as v,k as y,f as k,t as T,E as _,e as a,A as h}from"./index-Bx7qSams.js";const w=d({__name:"Tooltip",props:{text:{},offset:{}},setup(o){const u=o,e=n(null),l=n(!1),p=n({}),f=()=>{l.value=!0,_(()=>{if(!e.value)return;const t=e.value.getBoundingClientRect(),s=u.offset??8;p.value={left:`${t.left+t.width/2}px`,top:`${t.top-s}px`}})},c=()=>{l.value=!1};return(t,s)=>(a(),i(g,null,[r("span",{ref_key:"triggerRef",ref:e,class:"inline-flex",onMouseenter:f,onMouseleave:c,onFocusin:f,onFocusout:c},[m(t.$slots,"default")],544),(a(),x(b,{to:"body"},[l.value?(a(),i("div",{key:0,class:"fixed z-[9999] -translate-x-1/2 -translate-y-full rounded-md bg-foreground px-2 py-1 text-[10px] text-background shadow-lg",style:y(p.value)},[k(T(o.text)+" ",1),s[0]||(s[0]=r("span",{class:"absolute left-1/2 top-full h-0 w-0 -translate-x-1/2 border-x-4 border-t-4 border-x-transparent border-t-foreground"},null,-1))],4)):v("",!0)]))],64))}}),C=d({__name:"HelpTip",props:{text:{}},setup(o){return(u,e)=>(a(),x(w,{text:o.text},{default:h(()=>[...e[0]||(e[0]=[r("span",{class:"help-dot"},"?",-1)])]),_:1},8,["text"]))}});export{C as _}; diff --git a/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-Be-NxYdK.js b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-Be-NxYdK.js new file mode 100644 index 0000000000000000000000000000000000000000..8828f2af8b8eb2c95126d6abd95c47d3a53f9dcb --- /dev/null +++ b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-Be-NxYdK.js @@ -0,0 +1 @@ +import{d,h as n,c as i,F as g,a as r,y as x,E as m,T as b,b as v,k as y,f as k,t as T,G as _,e as a,A as h}from"./index-Bh_hLcqi.js";const w=d({__name:"Tooltip",props:{text:{},offset:{}},setup(o){const u=o,e=n(null),l=n(!1),p=n({}),f=()=>{l.value=!0,_(()=>{if(!e.value)return;const t=e.value.getBoundingClientRect(),s=u.offset??8;p.value={left:`${t.left+t.width/2}px`,top:`${t.top-s}px`}})},c=()=>{l.value=!1};return(t,s)=>(a(),i(g,null,[r("span",{ref_key:"triggerRef",ref:e,class:"inline-flex",onMouseenter:f,onMouseleave:c,onFocusin:f,onFocusout:c},[m(t.$slots,"default")],544),(a(),x(b,{to:"body"},[l.value?(a(),i("div",{key:0,class:"fixed z-[9999] -translate-x-1/2 -translate-y-full rounded-md bg-foreground px-2 py-1 text-[10px] text-background shadow-lg",style:y(p.value)},[k(T(o.text)+" ",1),s[0]||(s[0]=r("span",{class:"absolute left-1/2 top-full h-0 w-0 -translate-x-1/2 border-x-4 border-t-4 border-x-transparent border-t-foreground"},null,-1))],4)):v("",!0)]))],64))}}),C=d({__name:"HelpTip",props:{text:{}},setup(o){return(u,e)=>(a(),x(w,{text:o.text},{default:h(()=>[...e[0]||(e[0]=[r("span",{class:"help-dot"},"?",-1)])]),_:1},8,["text"]))}});export{C as _}; diff --git a/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-BgxOFSZZ.js b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-BgxOFSZZ.js new file mode 100644 index 0000000000000000000000000000000000000000..209486a725c12c89fcf02a8a9d3240c8aa03a4e2 --- /dev/null +++ b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-BgxOFSZZ.js @@ -0,0 +1 @@ +import{d,h as n,c as i,F as g,a as r,y as x,G as m,T as b,b as v,k as y,f as k,t as T,E as _,e as a,A as h}from"./index-DMWZCTlx.js";const w=d({__name:"Tooltip",props:{text:{},offset:{}},setup(o){const u=o,e=n(null),l=n(!1),p=n({}),f=()=>{l.value=!0,_(()=>{if(!e.value)return;const t=e.value.getBoundingClientRect(),s=u.offset??8;p.value={left:`${t.left+t.width/2}px`,top:`${t.top-s}px`}})},c=()=>{l.value=!1};return(t,s)=>(a(),i(g,null,[r("span",{ref_key:"triggerRef",ref:e,class:"inline-flex",onMouseenter:f,onMouseleave:c,onFocusin:f,onFocusout:c},[m(t.$slots,"default")],544),(a(),x(b,{to:"body"},[l.value?(a(),i("div",{key:0,class:"fixed z-[9999] -translate-x-1/2 -translate-y-full rounded-md bg-foreground px-2 py-1 text-[10px] text-background shadow-lg",style:y(p.value)},[k(T(o.text)+" ",1),s[0]||(s[0]=r("span",{class:"absolute left-1/2 top-full h-0 w-0 -translate-x-1/2 border-x-4 border-t-4 border-x-transparent border-t-foreground"},null,-1))],4)):v("",!0)]))],64))}}),C=d({__name:"HelpTip",props:{text:{}},setup(o){return(u,e)=>(a(),x(w,{text:o.text},{default:h(()=>[...e[0]||(e[0]=[r("span",{class:"help-dot"},"?",-1)])]),_:1},8,["text"]))}});export{C as _}; diff --git a/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-BwK5Fa3C.js b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-BwK5Fa3C.js new file mode 100644 index 0000000000000000000000000000000000000000..88c58e4b36e36bf87b38e5dc4b7ca41b70318d7c --- /dev/null +++ b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-BwK5Fa3C.js @@ -0,0 +1 @@ +import{d,h as n,c as i,F as g,a as r,y as x,E as m,T as b,b as v,k as y,f as k,t as T,G as _,e as a,A as h}from"./index-B0A0-QFY.js";const w=d({__name:"Tooltip",props:{text:{},offset:{}},setup(o){const u=o,e=n(null),l=n(!1),p=n({}),f=()=>{l.value=!0,_(()=>{if(!e.value)return;const t=e.value.getBoundingClientRect(),s=u.offset??8;p.value={left:`${t.left+t.width/2}px`,top:`${t.top-s}px`}})},c=()=>{l.value=!1};return(t,s)=>(a(),i(g,null,[r("span",{ref_key:"triggerRef",ref:e,class:"inline-flex",onMouseenter:f,onMouseleave:c,onFocusin:f,onFocusout:c},[m(t.$slots,"default")],544),(a(),x(b,{to:"body"},[l.value?(a(),i("div",{key:0,class:"fixed z-[9999] -translate-x-1/2 -translate-y-full rounded-md bg-foreground px-2 py-1 text-[10px] text-background shadow-lg",style:y(p.value)},[k(T(o.text)+" ",1),s[0]||(s[0]=r("span",{class:"absolute left-1/2 top-full h-0 w-0 -translate-x-1/2 border-x-4 border-t-4 border-x-transparent border-t-foreground"},null,-1))],4)):v("",!0)]))],64))}}),C=d({__name:"HelpTip",props:{text:{}},setup(o){return(u,e)=>(a(),x(w,{text:o.text},{default:h(()=>[...e[0]||(e[0]=[r("span",{class:"help-dot"},"?",-1)])]),_:1},8,["text"]))}});export{C as _}; diff --git a/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-C7-LVvI-.js b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-C7-LVvI-.js new file mode 100644 index 0000000000000000000000000000000000000000..c95c77e500313cf66aefb010eb5469bf6be41aad --- /dev/null +++ b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-C7-LVvI-.js @@ -0,0 +1 @@ +import{d,h as n,c as i,F as g,a as r,y as x,G as m,T as b,b as v,k as y,f as k,t as T,E as _,e as a,A as h}from"./index-DDWWwh2l.js";const w=d({__name:"Tooltip",props:{text:{},offset:{}},setup(o){const u=o,e=n(null),l=n(!1),p=n({}),f=()=>{l.value=!0,_(()=>{if(!e.value)return;const t=e.value.getBoundingClientRect(),s=u.offset??8;p.value={left:`${t.left+t.width/2}px`,top:`${t.top-s}px`}})},c=()=>{l.value=!1};return(t,s)=>(a(),i(g,null,[r("span",{ref_key:"triggerRef",ref:e,class:"inline-flex",onMouseenter:f,onMouseleave:c,onFocusin:f,onFocusout:c},[m(t.$slots,"default")],544),(a(),x(b,{to:"body"},[l.value?(a(),i("div",{key:0,class:"fixed z-[9999] -translate-x-1/2 -translate-y-full rounded-md bg-foreground px-2 py-1 text-[10px] text-background shadow-lg",style:y(p.value)},[k(T(o.text)+" ",1),s[0]||(s[0]=r("span",{class:"absolute left-1/2 top-full h-0 w-0 -translate-x-1/2 border-x-4 border-t-4 border-x-transparent border-t-foreground"},null,-1))],4)):v("",!0)]))],64))}}),C=d({__name:"HelpTip",props:{text:{}},setup(o){return(u,e)=>(a(),x(w,{text:o.text},{default:h(()=>[...e[0]||(e[0]=[r("span",{class:"help-dot"},"?",-1)])]),_:1},8,["text"]))}});export{C as _}; diff --git a/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-C9YlQcyS.js b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-C9YlQcyS.js new file mode 100644 index 0000000000000000000000000000000000000000..5c130b72073f769ae16cf80e6715faa87a5195b0 --- /dev/null +++ b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-C9YlQcyS.js @@ -0,0 +1 @@ +import{d,h as n,c as i,F as g,a as r,y as x,G as m,T as b,b as v,k as y,f as k,t as T,E as _,e as a,A as h}from"./index-C7QtVLks.js";const w=d({__name:"Tooltip",props:{text:{},offset:{}},setup(o){const u=o,e=n(null),l=n(!1),p=n({}),f=()=>{l.value=!0,_(()=>{if(!e.value)return;const t=e.value.getBoundingClientRect(),s=u.offset??8;p.value={left:`${t.left+t.width/2}px`,top:`${t.top-s}px`}})},c=()=>{l.value=!1};return(t,s)=>(a(),i(g,null,[r("span",{ref_key:"triggerRef",ref:e,class:"inline-flex",onMouseenter:f,onMouseleave:c,onFocusin:f,onFocusout:c},[m(t.$slots,"default")],544),(a(),x(b,{to:"body"},[l.value?(a(),i("div",{key:0,class:"fixed z-[9999] -translate-x-1/2 -translate-y-full rounded-md bg-foreground px-2 py-1 text-[10px] text-background shadow-lg",style:y(p.value)},[k(T(o.text)+" ",1),s[0]||(s[0]=r("span",{class:"absolute left-1/2 top-full h-0 w-0 -translate-x-1/2 border-x-4 border-t-4 border-x-transparent border-t-foreground"},null,-1))],4)):v("",!0)]))],64))}}),C=d({__name:"HelpTip",props:{text:{}},setup(o){return(u,e)=>(a(),x(w,{text:o.text},{default:h(()=>[...e[0]||(e[0]=[r("span",{class:"help-dot"},"?",-1)])]),_:1},8,["text"]))}});export{C as _}; diff --git a/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-CAICIbTF.js b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-CAICIbTF.js new file mode 100644 index 0000000000000000000000000000000000000000..dfd4825bf2d990ae931bf700ae2cf5e53c6f258b --- /dev/null +++ b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-CAICIbTF.js @@ -0,0 +1 @@ +import{d,h as n,c as i,F as m,a as r,m as x,H as g,x as b,b as v,k as y,f as k,t as _,G as T,e as a,s as h}from"./index-DL4Fp3an.js";const w=d({__name:"Tooltip",props:{text:{},offset:{}},setup(o){const u=o,e=n(null),l=n(!1),p=n({}),f=()=>{l.value=!0,T(()=>{if(!e.value)return;const t=e.value.getBoundingClientRect(),s=u.offset??8;p.value={left:`${t.left+t.width/2}px`,top:`${t.top-s}px`}})},c=()=>{l.value=!1};return(t,s)=>(a(),i(m,null,[r("span",{ref_key:"triggerRef",ref:e,class:"inline-flex",onMouseenter:f,onMouseleave:c,onFocusin:f,onFocusout:c},[g(t.$slots,"default")],544),(a(),x(b,{to:"body"},[l.value?(a(),i("div",{key:0,class:"fixed z-[9999] -translate-x-1/2 -translate-y-full rounded-md bg-foreground px-2 py-1 text-[10px] text-background shadow-lg",style:y(p.value)},[k(_(o.text)+" ",1),s[0]||(s[0]=r("span",{class:"absolute left-1/2 top-full h-0 w-0 -translate-x-1/2 border-x-4 border-t-4 border-x-transparent border-t-foreground"},null,-1))],4)):v("",!0)]))],64))}}),C=d({__name:"HelpTip",props:{text:{}},setup(o){return(u,e)=>(a(),x(w,{text:o.text},{default:h(()=>[...e[0]||(e[0]=[r("span",{class:"help-dot"},"?",-1)])]),_:1},8,["text"]))}});export{C as _}; diff --git a/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-CWJidBqq.js b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-CWJidBqq.js new file mode 100644 index 0000000000000000000000000000000000000000..16af5ec3a31ea5d71d2f3e707bc4e20904b37621 --- /dev/null +++ b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-CWJidBqq.js @@ -0,0 +1 @@ +import{d,h as n,c as i,F as m,a as r,m as x,H as g,T as b,b as v,k as y,f as k,t as T,G as _,e as a,s as h}from"./index-C4edAQLF.js";const w=d({__name:"Tooltip",props:{text:{},offset:{}},setup(o){const u=o,e=n(null),l=n(!1),p=n({}),f=()=>{l.value=!0,_(()=>{if(!e.value)return;const t=e.value.getBoundingClientRect(),s=u.offset??8;p.value={left:`${t.left+t.width/2}px`,top:`${t.top-s}px`}})},c=()=>{l.value=!1};return(t,s)=>(a(),i(m,null,[r("span",{ref_key:"triggerRef",ref:e,class:"inline-flex",onMouseenter:f,onMouseleave:c,onFocusin:f,onFocusout:c},[g(t.$slots,"default")],544),(a(),x(b,{to:"body"},[l.value?(a(),i("div",{key:0,class:"fixed z-[9999] -translate-x-1/2 -translate-y-full rounded-md bg-foreground px-2 py-1 text-[10px] text-background shadow-lg",style:y(p.value)},[k(T(o.text)+" ",1),s[0]||(s[0]=r("span",{class:"absolute left-1/2 top-full h-0 w-0 -translate-x-1/2 border-x-4 border-t-4 border-x-transparent border-t-foreground"},null,-1))],4)):v("",!0)]))],64))}}),C=d({__name:"HelpTip",props:{text:{}},setup(o){return(u,e)=>(a(),x(w,{text:o.text},{default:h(()=>[...e[0]||(e[0]=[r("span",{class:"help-dot"},"?",-1)])]),_:1},8,["text"]))}});export{C as _}; diff --git a/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-CpmAUbfQ.js b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-CpmAUbfQ.js new file mode 100644 index 0000000000000000000000000000000000000000..32a55c252520e3511c7676e0239d9d988ff781fe --- /dev/null +++ b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-CpmAUbfQ.js @@ -0,0 +1 @@ +import{d,h as n,c as i,F as m,a as r,m as x,H as g,x as b,b as v,k as y,f as k,t as _,G as T,e as a,s as h}from"./index-OP3F9IRB.js";const w=d({__name:"Tooltip",props:{text:{},offset:{}},setup(o){const u=o,e=n(null),l=n(!1),p=n({}),f=()=>{l.value=!0,T(()=>{if(!e.value)return;const t=e.value.getBoundingClientRect(),s=u.offset??8;p.value={left:`${t.left+t.width/2}px`,top:`${t.top-s}px`}})},c=()=>{l.value=!1};return(t,s)=>(a(),i(m,null,[r("span",{ref_key:"triggerRef",ref:e,class:"inline-flex",onMouseenter:f,onMouseleave:c,onFocusin:f,onFocusout:c},[g(t.$slots,"default")],544),(a(),x(b,{to:"body"},[l.value?(a(),i("div",{key:0,class:"fixed z-[9999] -translate-x-1/2 -translate-y-full rounded-md bg-foreground px-2 py-1 text-[10px] text-background shadow-lg",style:y(p.value)},[k(_(o.text)+" ",1),s[0]||(s[0]=r("span",{class:"absolute left-1/2 top-full h-0 w-0 -translate-x-1/2 border-x-4 border-t-4 border-x-transparent border-t-foreground"},null,-1))],4)):v("",!0)]))],64))}}),C=d({__name:"HelpTip",props:{text:{}},setup(o){return(u,e)=>(a(),x(w,{text:o.text},{default:h(()=>[...e[0]||(e[0]=[r("span",{class:"help-dot"},"?",-1)])]),_:1},8,["text"]))}});export{C as _}; diff --git a/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-Cur056hv.js b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-Cur056hv.js new file mode 100644 index 0000000000000000000000000000000000000000..fb9713ad661badbe3fbf49f4d21c2ab93b0f9e51 --- /dev/null +++ b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-Cur056hv.js @@ -0,0 +1 @@ +import{d,h as n,c as i,F as g,a as r,y as x,E as m,T as b,b as v,k as y,f as k,t as T,G as _,e as a,A as h}from"./index-gD6QQiOu.js";const w=d({__name:"Tooltip",props:{text:{},offset:{}},setup(o){const u=o,e=n(null),l=n(!1),p=n({}),f=()=>{l.value=!0,_(()=>{if(!e.value)return;const t=e.value.getBoundingClientRect(),s=u.offset??8;p.value={left:`${t.left+t.width/2}px`,top:`${t.top-s}px`}})},c=()=>{l.value=!1};return(t,s)=>(a(),i(g,null,[r("span",{ref_key:"triggerRef",ref:e,class:"inline-flex",onMouseenter:f,onMouseleave:c,onFocusin:f,onFocusout:c},[m(t.$slots,"default")],544),(a(),x(b,{to:"body"},[l.value?(a(),i("div",{key:0,class:"fixed z-[9999] -translate-x-1/2 -translate-y-full rounded-md bg-foreground px-2 py-1 text-[10px] text-background shadow-lg",style:y(p.value)},[k(T(o.text)+" ",1),s[0]||(s[0]=r("span",{class:"absolute left-1/2 top-full h-0 w-0 -translate-x-1/2 border-x-4 border-t-4 border-x-transparent border-t-foreground"},null,-1))],4)):v("",!0)]))],64))}}),C=d({__name:"HelpTip",props:{text:{}},setup(o){return(u,e)=>(a(),x(w,{text:o.text},{default:h(()=>[...e[0]||(e[0]=[r("span",{class:"help-dot"},"?",-1)])]),_:1},8,["text"]))}});export{C as _}; diff --git a/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-Cw2hnECN.js b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-Cw2hnECN.js new file mode 100644 index 0000000000000000000000000000000000000000..414d0d7675e5658296c59432adc9fc520eb4d02b --- /dev/null +++ b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-Cw2hnECN.js @@ -0,0 +1 @@ +import{d,h as n,c as i,F as g,a as r,y as x,G as m,T as b,b as v,k as y,f as k,t as T,E as _,e as a,A as h}from"./index-CDbQWWUi.js";const w=d({__name:"Tooltip",props:{text:{},offset:{}},setup(o){const u=o,e=n(null),l=n(!1),p=n({}),f=()=>{l.value=!0,_(()=>{if(!e.value)return;const t=e.value.getBoundingClientRect(),s=u.offset??8;p.value={left:`${t.left+t.width/2}px`,top:`${t.top-s}px`}})},c=()=>{l.value=!1};return(t,s)=>(a(),i(g,null,[r("span",{ref_key:"triggerRef",ref:e,class:"inline-flex",onMouseenter:f,onMouseleave:c,onFocusin:f,onFocusout:c},[m(t.$slots,"default")],544),(a(),x(b,{to:"body"},[l.value?(a(),i("div",{key:0,class:"fixed z-[9999] -translate-x-1/2 -translate-y-full rounded-md bg-foreground px-2 py-1 text-[10px] text-background shadow-lg",style:y(p.value)},[k(T(o.text)+" ",1),s[0]||(s[0]=r("span",{class:"absolute left-1/2 top-full h-0 w-0 -translate-x-1/2 border-x-4 border-t-4 border-x-transparent border-t-foreground"},null,-1))],4)):v("",!0)]))],64))}}),C=d({__name:"HelpTip",props:{text:{}},setup(o){return(u,e)=>(a(),x(w,{text:o.text},{default:h(()=>[...e[0]||(e[0]=[r("span",{class:"help-dot"},"?",-1)])]),_:1},8,["text"]))}});export{C as _}; diff --git a/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-Cx7pOr6m.js b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-Cx7pOr6m.js new file mode 100644 index 0000000000000000000000000000000000000000..26f9688fbf6b56649b6a3c12804aacdaf4e7fa38 --- /dev/null +++ b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-Cx7pOr6m.js @@ -0,0 +1 @@ +import{d,h as n,c as i,F as g,a as r,y as x,G as m,T as b,b as v,k as y,f as k,t as T,E as _,e as a,A as h}from"./index-Babp7OwB.js";const w=d({__name:"Tooltip",props:{text:{},offset:{}},setup(o){const u=o,e=n(null),l=n(!1),p=n({}),f=()=>{l.value=!0,_(()=>{if(!e.value)return;const t=e.value.getBoundingClientRect(),s=u.offset??8;p.value={left:`${t.left+t.width/2}px`,top:`${t.top-s}px`}})},c=()=>{l.value=!1};return(t,s)=>(a(),i(g,null,[r("span",{ref_key:"triggerRef",ref:e,class:"inline-flex",onMouseenter:f,onMouseleave:c,onFocusin:f,onFocusout:c},[m(t.$slots,"default")],544),(a(),x(b,{to:"body"},[l.value?(a(),i("div",{key:0,class:"fixed z-[9999] -translate-x-1/2 -translate-y-full rounded-md bg-foreground px-2 py-1 text-[10px] text-background shadow-lg",style:y(p.value)},[k(T(o.text)+" ",1),s[0]||(s[0]=r("span",{class:"absolute left-1/2 top-full h-0 w-0 -translate-x-1/2 border-x-4 border-t-4 border-x-transparent border-t-foreground"},null,-1))],4)):v("",!0)]))],64))}}),C=d({__name:"HelpTip",props:{text:{}},setup(o){return(u,e)=>(a(),x(w,{text:o.text},{default:h(()=>[...e[0]||(e[0]=[r("span",{class:"help-dot"},"?",-1)])]),_:1},8,["text"]))}});export{C as _}; diff --git a/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-D0920Okk.js b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-D0920Okk.js new file mode 100644 index 0000000000000000000000000000000000000000..736b417b8271dcfd9dc0f4ab44950ef257b51208 --- /dev/null +++ b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-D0920Okk.js @@ -0,0 +1 @@ +import{d,h as n,c as i,F as m,a as r,m as x,I as g,z as b,b as v,k as y,f as k,t as _,H as T,e as a,y as h}from"./index-CM73xqTK.js";const w=d({__name:"Tooltip",props:{text:{},offset:{}},setup(o){const u=o,e=n(null),l=n(!1),p=n({}),f=()=>{l.value=!0,T(()=>{if(!e.value)return;const t=e.value.getBoundingClientRect(),s=u.offset??8;p.value={left:`${t.left+t.width/2}px`,top:`${t.top-s}px`}})},c=()=>{l.value=!1};return(t,s)=>(a(),i(m,null,[r("span",{ref_key:"triggerRef",ref:e,class:"inline-flex",onMouseenter:f,onMouseleave:c,onFocusin:f,onFocusout:c},[g(t.$slots,"default")],544),(a(),x(b,{to:"body"},[l.value?(a(),i("div",{key:0,class:"fixed z-[9999] -translate-x-1/2 -translate-y-full rounded-md bg-foreground px-2 py-1 text-[10px] text-background shadow-lg",style:y(p.value)},[k(_(o.text)+" ",1),s[0]||(s[0]=r("span",{class:"absolute left-1/2 top-full h-0 w-0 -translate-x-1/2 border-x-4 border-t-4 border-x-transparent border-t-foreground"},null,-1))],4)):v("",!0)]))],64))}}),C=d({__name:"HelpTip",props:{text:{}},setup(o){return(u,e)=>(a(),x(w,{text:o.text},{default:h(()=>[...e[0]||(e[0]=[r("span",{class:"help-dot"},"?",-1)])]),_:1},8,["text"]))}});export{C as _}; diff --git a/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-D8gzoJNA.js b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-D8gzoJNA.js new file mode 100644 index 0000000000000000000000000000000000000000..794fd4b71e8a7bd439cffe3d248861ee3e976fdc --- /dev/null +++ b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-D8gzoJNA.js @@ -0,0 +1 @@ +import{d,h as n,c as i,F as g,a as r,y as x,G as m,T as b,b as v,k as y,f as k,t as T,E as _,e as a,A as h}from"./index-BRg_yWJl.js";const w=d({__name:"Tooltip",props:{text:{},offset:{}},setup(o){const u=o,e=n(null),l=n(!1),p=n({}),f=()=>{l.value=!0,_(()=>{if(!e.value)return;const t=e.value.getBoundingClientRect(),s=u.offset??8;p.value={left:`${t.left+t.width/2}px`,top:`${t.top-s}px`}})},c=()=>{l.value=!1};return(t,s)=>(a(),i(g,null,[r("span",{ref_key:"triggerRef",ref:e,class:"inline-flex",onMouseenter:f,onMouseleave:c,onFocusin:f,onFocusout:c},[m(t.$slots,"default")],544),(a(),x(b,{to:"body"},[l.value?(a(),i("div",{key:0,class:"fixed z-[9999] -translate-x-1/2 -translate-y-full rounded-md bg-foreground px-2 py-1 text-[10px] text-background shadow-lg",style:y(p.value)},[k(T(o.text)+" ",1),s[0]||(s[0]=r("span",{class:"absolute left-1/2 top-full h-0 w-0 -translate-x-1/2 border-x-4 border-t-4 border-x-transparent border-t-foreground"},null,-1))],4)):v("",!0)]))],64))}}),C=d({__name:"HelpTip",props:{text:{}},setup(o){return(u,e)=>(a(),x(w,{text:o.text},{default:h(()=>[...e[0]||(e[0]=[r("span",{class:"help-dot"},"?",-1)])]),_:1},8,["text"]))}});export{C as _}; diff --git a/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-DJyeZS9P.js b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-DJyeZS9P.js new file mode 100644 index 0000000000000000000000000000000000000000..f0fe311475912c2cad8b0a79a697667e20f2438d --- /dev/null +++ b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-DJyeZS9P.js @@ -0,0 +1 @@ +import{d,h as n,c as i,F as m,a as r,m as x,I as g,x as b,b as v,k as y,f as k,t as _,H as T,e as a,s as h}from"./index-BRM37S6x.js";const w=d({__name:"Tooltip",props:{text:{},offset:{}},setup(o){const u=o,e=n(null),l=n(!1),p=n({}),f=()=>{l.value=!0,T(()=>{if(!e.value)return;const t=e.value.getBoundingClientRect(),s=u.offset??8;p.value={left:`${t.left+t.width/2}px`,top:`${t.top-s}px`}})},c=()=>{l.value=!1};return(t,s)=>(a(),i(m,null,[r("span",{ref_key:"triggerRef",ref:e,class:"inline-flex",onMouseenter:f,onMouseleave:c,onFocusin:f,onFocusout:c},[g(t.$slots,"default")],544),(a(),x(b,{to:"body"},[l.value?(a(),i("div",{key:0,class:"fixed z-[9999] -translate-x-1/2 -translate-y-full rounded-md bg-foreground px-2 py-1 text-[10px] text-background shadow-lg",style:y(p.value)},[k(_(o.text)+" ",1),s[0]||(s[0]=r("span",{class:"absolute left-1/2 top-full h-0 w-0 -translate-x-1/2 border-x-4 border-t-4 border-x-transparent border-t-foreground"},null,-1))],4)):v("",!0)]))],64))}}),C=d({__name:"HelpTip",props:{text:{}},setup(o){return(u,e)=>(a(),x(w,{text:o.text},{default:h(()=>[...e[0]||(e[0]=[r("span",{class:"help-dot"},"?",-1)])]),_:1},8,["text"]))}});export{C as _}; diff --git a/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-DLBrB24x.js b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-DLBrB24x.js new file mode 100644 index 0000000000000000000000000000000000000000..7455f2d49e1df01262fccfcd64de4d8046f90b5f --- /dev/null +++ b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-DLBrB24x.js @@ -0,0 +1 @@ +import{d,h as n,c as i,F as g,a as r,y as x,E as m,T as b,b as v,k as y,f as k,t as T,G as _,e as a,A as h}from"./index-DrM07qAY.js";const w=d({__name:"Tooltip",props:{text:{},offset:{}},setup(o){const u=o,e=n(null),l=n(!1),p=n({}),f=()=>{l.value=!0,_(()=>{if(!e.value)return;const t=e.value.getBoundingClientRect(),s=u.offset??8;p.value={left:`${t.left+t.width/2}px`,top:`${t.top-s}px`}})},c=()=>{l.value=!1};return(t,s)=>(a(),i(g,null,[r("span",{ref_key:"triggerRef",ref:e,class:"inline-flex",onMouseenter:f,onMouseleave:c,onFocusin:f,onFocusout:c},[m(t.$slots,"default")],544),(a(),x(b,{to:"body"},[l.value?(a(),i("div",{key:0,class:"fixed z-[9999] -translate-x-1/2 -translate-y-full rounded-md bg-foreground px-2 py-1 text-[10px] text-background shadow-lg",style:y(p.value)},[k(T(o.text)+" ",1),s[0]||(s[0]=r("span",{class:"absolute left-1/2 top-full h-0 w-0 -translate-x-1/2 border-x-4 border-t-4 border-x-transparent border-t-foreground"},null,-1))],4)):v("",!0)]))],64))}}),C=d({__name:"HelpTip",props:{text:{}},setup(o){return(u,e)=>(a(),x(w,{text:o.text},{default:h(()=>[...e[0]||(e[0]=[r("span",{class:"help-dot"},"?",-1)])]),_:1},8,["text"]))}});export{C as _}; diff --git a/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-DO1J64wx.js b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-DO1J64wx.js new file mode 100644 index 0000000000000000000000000000000000000000..47f2dcaac8577a3cd8828eff582423c13f88f0c0 --- /dev/null +++ b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-DO1J64wx.js @@ -0,0 +1 @@ +import{d,h as n,c as i,F as m,a as r,m as x,H as g,x as b,b as v,k as y,f as k,t as _,G as T,e as a,s as h}from"./index-JaBfp01b.js";const w=d({__name:"Tooltip",props:{text:{},offset:{}},setup(o){const u=o,e=n(null),l=n(!1),p=n({}),f=()=>{l.value=!0,T(()=>{if(!e.value)return;const t=e.value.getBoundingClientRect(),s=u.offset??8;p.value={left:`${t.left+t.width/2}px`,top:`${t.top-s}px`}})},c=()=>{l.value=!1};return(t,s)=>(a(),i(m,null,[r("span",{ref_key:"triggerRef",ref:e,class:"inline-flex",onMouseenter:f,onMouseleave:c,onFocusin:f,onFocusout:c},[g(t.$slots,"default")],544),(a(),x(b,{to:"body"},[l.value?(a(),i("div",{key:0,class:"fixed z-[9999] -translate-x-1/2 -translate-y-full rounded-md bg-foreground px-2 py-1 text-[10px] text-background shadow-lg",style:y(p.value)},[k(_(o.text)+" ",1),s[0]||(s[0]=r("span",{class:"absolute left-1/2 top-full h-0 w-0 -translate-x-1/2 border-x-4 border-t-4 border-x-transparent border-t-foreground"},null,-1))],4)):v("",!0)]))],64))}}),C=d({__name:"HelpTip",props:{text:{}},setup(o){return(u,e)=>(a(),x(w,{text:o.text},{default:h(()=>[...e[0]||(e[0]=[r("span",{class:"help-dot"},"?",-1)])]),_:1},8,["text"]))}});export{C as _}; diff --git a/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-DV7kZRSO.js b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-DV7kZRSO.js new file mode 100644 index 0000000000000000000000000000000000000000..c50937a1cebac7163b5d26be4c7e2b2099bc5d69 --- /dev/null +++ b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-DV7kZRSO.js @@ -0,0 +1 @@ +import{d,h as n,c as i,F as m,a as r,m as x,H as g,T as b,b as v,k as y,f as k,t as T,G as _,e as a,s as h}from"./index-Dt-VnrHx.js";const w=d({__name:"Tooltip",props:{text:{},offset:{}},setup(o){const u=o,e=n(null),l=n(!1),p=n({}),f=()=>{l.value=!0,_(()=>{if(!e.value)return;const t=e.value.getBoundingClientRect(),s=u.offset??8;p.value={left:`${t.left+t.width/2}px`,top:`${t.top-s}px`}})},c=()=>{l.value=!1};return(t,s)=>(a(),i(m,null,[r("span",{ref_key:"triggerRef",ref:e,class:"inline-flex",onMouseenter:f,onMouseleave:c,onFocusin:f,onFocusout:c},[g(t.$slots,"default")],544),(a(),x(b,{to:"body"},[l.value?(a(),i("div",{key:0,class:"fixed z-[9999] -translate-x-1/2 -translate-y-full rounded-md bg-foreground px-2 py-1 text-[10px] text-background shadow-lg",style:y(p.value)},[k(T(o.text)+" ",1),s[0]||(s[0]=r("span",{class:"absolute left-1/2 top-full h-0 w-0 -translate-x-1/2 border-x-4 border-t-4 border-x-transparent border-t-foreground"},null,-1))],4)):v("",!0)]))],64))}}),C=d({__name:"HelpTip",props:{text:{}},setup(o){return(u,e)=>(a(),x(w,{text:o.text},{default:h(()=>[...e[0]||(e[0]=[r("span",{class:"help-dot"},"?",-1)])]),_:1},8,["text"]))}});export{C as _}; diff --git a/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-D_8sK7BY.js b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-D_8sK7BY.js new file mode 100644 index 0000000000000000000000000000000000000000..70f74e5518a8f2821fa716604df25327dc7d21a0 --- /dev/null +++ b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-D_8sK7BY.js @@ -0,0 +1 @@ +import{d,h as n,c as i,F as m,a as r,m as x,H as g,T as b,b as v,k as y,f as k,t as T,G as _,e as a,s as h}from"./index-Bjh6Z8Zq.js";const w=d({__name:"Tooltip",props:{text:{},offset:{}},setup(o){const u=o,e=n(null),l=n(!1),p=n({}),f=()=>{l.value=!0,_(()=>{if(!e.value)return;const t=e.value.getBoundingClientRect(),s=u.offset??8;p.value={left:`${t.left+t.width/2}px`,top:`${t.top-s}px`}})},c=()=>{l.value=!1};return(t,s)=>(a(),i(m,null,[r("span",{ref_key:"triggerRef",ref:e,class:"inline-flex",onMouseenter:f,onMouseleave:c,onFocusin:f,onFocusout:c},[g(t.$slots,"default")],544),(a(),x(b,{to:"body"},[l.value?(a(),i("div",{key:0,class:"fixed z-[9999] -translate-x-1/2 -translate-y-full rounded-md bg-foreground px-2 py-1 text-[10px] text-background shadow-lg",style:y(p.value)},[k(T(o.text)+" ",1),s[0]||(s[0]=r("span",{class:"absolute left-1/2 top-full h-0 w-0 -translate-x-1/2 border-x-4 border-t-4 border-x-transparent border-t-foreground"},null,-1))],4)):v("",!0)]))],64))}}),C=d({__name:"HelpTip",props:{text:{}},setup(o){return(u,e)=>(a(),x(w,{text:o.text},{default:h(()=>[...e[0]||(e[0]=[r("span",{class:"help-dot"},"?",-1)])]),_:1},8,["text"]))}});export{C as _}; diff --git a/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-Dj0Fsuty.js b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-Dj0Fsuty.js new file mode 100644 index 0000000000000000000000000000000000000000..d438dca5899a59e61f36d8f52621cb92f49b372b --- /dev/null +++ b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-Dj0Fsuty.js @@ -0,0 +1 @@ +import{d,h as n,c as i,F as g,a as r,y as x,G as m,T as b,b as v,k as y,f as k,t as T,E as _,e as a,A as h}from"./index-DhxxzIOh.js";const w=d({__name:"Tooltip",props:{text:{},offset:{}},setup(o){const u=o,e=n(null),l=n(!1),p=n({}),f=()=>{l.value=!0,_(()=>{if(!e.value)return;const t=e.value.getBoundingClientRect(),s=u.offset??8;p.value={left:`${t.left+t.width/2}px`,top:`${t.top-s}px`}})},c=()=>{l.value=!1};return(t,s)=>(a(),i(g,null,[r("span",{ref_key:"triggerRef",ref:e,class:"inline-flex",onMouseenter:f,onMouseleave:c,onFocusin:f,onFocusout:c},[m(t.$slots,"default")],544),(a(),x(b,{to:"body"},[l.value?(a(),i("div",{key:0,class:"fixed z-[9999] -translate-x-1/2 -translate-y-full rounded-md bg-foreground px-2 py-1 text-[10px] text-background shadow-lg",style:y(p.value)},[k(T(o.text)+" ",1),s[0]||(s[0]=r("span",{class:"absolute left-1/2 top-full h-0 w-0 -translate-x-1/2 border-x-4 border-t-4 border-x-transparent border-t-foreground"},null,-1))],4)):v("",!0)]))],64))}}),C=d({__name:"HelpTip",props:{text:{}},setup(o){return(u,e)=>(a(),x(w,{text:o.text},{default:h(()=>[...e[0]||(e[0]=[r("span",{class:"help-dot"},"?",-1)])]),_:1},8,["text"]))}});export{C as _}; diff --git a/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-Dt22lg9h.js b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-Dt22lg9h.js new file mode 100644 index 0000000000000000000000000000000000000000..1e383f9304e48a5168eadbdc70a4f82a6e71f982 --- /dev/null +++ b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-Dt22lg9h.js @@ -0,0 +1 @@ +import{d,h as n,c as i,F as m,a as r,m as x,H as g,T as b,b as v,k as y,f as k,t as T,G as _,e as a,s as h}from"./index-CQv2QMzB.js";const w=d({__name:"Tooltip",props:{text:{},offset:{}},setup(o){const u=o,e=n(null),l=n(!1),p=n({}),f=()=>{l.value=!0,_(()=>{if(!e.value)return;const t=e.value.getBoundingClientRect(),s=u.offset??8;p.value={left:`${t.left+t.width/2}px`,top:`${t.top-s}px`}})},c=()=>{l.value=!1};return(t,s)=>(a(),i(m,null,[r("span",{ref_key:"triggerRef",ref:e,class:"inline-flex",onMouseenter:f,onMouseleave:c,onFocusin:f,onFocusout:c},[g(t.$slots,"default")],544),(a(),x(b,{to:"body"},[l.value?(a(),i("div",{key:0,class:"fixed z-[9999] -translate-x-1/2 -translate-y-full rounded-md bg-foreground px-2 py-1 text-[10px] text-background shadow-lg",style:y(p.value)},[k(T(o.text)+" ",1),s[0]||(s[0]=r("span",{class:"absolute left-1/2 top-full h-0 w-0 -translate-x-1/2 border-x-4 border-t-4 border-x-transparent border-t-foreground"},null,-1))],4)):v("",!0)]))],64))}}),C=d({__name:"HelpTip",props:{text:{}},setup(o){return(u,e)=>(a(),x(w,{text:o.text},{default:h(()=>[...e[0]||(e[0]=[r("span",{class:"help-dot"},"?",-1)])]),_:1},8,["text"]))}});export{C as _}; diff --git a/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-P0lttIQ0.js b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-P0lttIQ0.js new file mode 100644 index 0000000000000000000000000000000000000000..6b76065442f79faf570a81edb46b930604f34d35 --- /dev/null +++ b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-P0lttIQ0.js @@ -0,0 +1 @@ +import{d,h as n,c as i,F as m,a as r,m as x,H as g,x as b,b as v,k as y,f as k,t as _,G as T,e as a,s as h}from"./index-B38eA7T4.js";const w=d({__name:"Tooltip",props:{text:{},offset:{}},setup(o){const u=o,e=n(null),l=n(!1),p=n({}),f=()=>{l.value=!0,T(()=>{if(!e.value)return;const t=e.value.getBoundingClientRect(),s=u.offset??8;p.value={left:`${t.left+t.width/2}px`,top:`${t.top-s}px`}})},c=()=>{l.value=!1};return(t,s)=>(a(),i(m,null,[r("span",{ref_key:"triggerRef",ref:e,class:"inline-flex",onMouseenter:f,onMouseleave:c,onFocusin:f,onFocusout:c},[g(t.$slots,"default")],544),(a(),x(b,{to:"body"},[l.value?(a(),i("div",{key:0,class:"fixed z-[9999] -translate-x-1/2 -translate-y-full rounded-md bg-foreground px-2 py-1 text-[10px] text-background shadow-lg",style:y(p.value)},[k(_(o.text)+" ",1),s[0]||(s[0]=r("span",{class:"absolute left-1/2 top-full h-0 w-0 -translate-x-1/2 border-x-4 border-t-4 border-x-transparent border-t-foreground"},null,-1))],4)):v("",!0)]))],64))}}),C=d({__name:"HelpTip",props:{text:{}},setup(o){return(u,e)=>(a(),x(w,{text:o.text},{default:h(()=>[...e[0]||(e[0]=[r("span",{class:"help-dot"},"?",-1)])]),_:1},8,["text"]))}});export{C as _}; diff --git a/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-PWvzGrPg.js b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-PWvzGrPg.js new file mode 100644 index 0000000000000000000000000000000000000000..d36e56c1e54e7e668fbaab6f76e6ef51ea62d130 --- /dev/null +++ b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-PWvzGrPg.js @@ -0,0 +1 @@ +import{d,h as n,c as i,F as g,a as r,y as x,G as m,T as b,b as v,k as y,f as k,t as T,E as _,e as a,A as h}from"./index-CkXB0iyt.js";const w=d({__name:"Tooltip",props:{text:{},offset:{}},setup(o){const u=o,e=n(null),l=n(!1),p=n({}),f=()=>{l.value=!0,_(()=>{if(!e.value)return;const t=e.value.getBoundingClientRect(),s=u.offset??8;p.value={left:`${t.left+t.width/2}px`,top:`${t.top-s}px`}})},c=()=>{l.value=!1};return(t,s)=>(a(),i(g,null,[r("span",{ref_key:"triggerRef",ref:e,class:"inline-flex",onMouseenter:f,onMouseleave:c,onFocusin:f,onFocusout:c},[m(t.$slots,"default")],544),(a(),x(b,{to:"body"},[l.value?(a(),i("div",{key:0,class:"fixed z-[9999] -translate-x-1/2 -translate-y-full rounded-md bg-foreground px-2 py-1 text-[10px] text-background shadow-lg",style:y(p.value)},[k(T(o.text)+" ",1),s[0]||(s[0]=r("span",{class:"absolute left-1/2 top-full h-0 w-0 -translate-x-1/2 border-x-4 border-t-4 border-x-transparent border-t-foreground"},null,-1))],4)):v("",!0)]))],64))}}),C=d({__name:"HelpTip",props:{text:{}},setup(o){return(u,e)=>(a(),x(w,{text:o.text},{default:h(()=>[...e[0]||(e[0]=[r("span",{class:"help-dot"},"?",-1)])]),_:1},8,["text"]))}});export{C as _}; diff --git a/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-ZZDQpvjn.js b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-ZZDQpvjn.js new file mode 100644 index 0000000000000000000000000000000000000000..d2740a3f71d33f97762bbef365c7121ef4697d0d --- /dev/null +++ b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-ZZDQpvjn.js @@ -0,0 +1 @@ +import{d,h as n,c as i,F as m,a as r,m as x,H as g,T as b,b as v,k as y,f as k,t as T,G as _,e as a,s as h}from"./index-Dul9zA0O.js";const w=d({__name:"Tooltip",props:{text:{},offset:{}},setup(o){const u=o,e=n(null),l=n(!1),p=n({}),f=()=>{l.value=!0,_(()=>{if(!e.value)return;const t=e.value.getBoundingClientRect(),s=u.offset??8;p.value={left:`${t.left+t.width/2}px`,top:`${t.top-s}px`}})},c=()=>{l.value=!1};return(t,s)=>(a(),i(m,null,[r("span",{ref_key:"triggerRef",ref:e,class:"inline-flex",onMouseenter:f,onMouseleave:c,onFocusin:f,onFocusout:c},[g(t.$slots,"default")],544),(a(),x(b,{to:"body"},[l.value?(a(),i("div",{key:0,class:"fixed z-[9999] -translate-x-1/2 -translate-y-full rounded-md bg-foreground px-2 py-1 text-[10px] text-background shadow-lg",style:y(p.value)},[k(T(o.text)+" ",1),s[0]||(s[0]=r("span",{class:"absolute left-1/2 top-full h-0 w-0 -translate-x-1/2 border-x-4 border-t-4 border-x-transparent border-t-foreground"},null,-1))],4)):v("",!0)]))],64))}}),C=d({__name:"HelpTip",props:{text:{}},setup(o){return(u,e)=>(a(),x(w,{text:o.text},{default:h(()=>[...e[0]||(e[0]=[r("span",{class:"help-dot"},"?",-1)])]),_:1},8,["text"]))}});export{C as _}; diff --git a/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-q6qcDogV.js b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-q6qcDogV.js new file mode 100644 index 0000000000000000000000000000000000000000..ec32e8a54a706a3380a23c1df70890367ef4fcdf --- /dev/null +++ b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-q6qcDogV.js @@ -0,0 +1 @@ +import{d,h as n,c as i,F as g,a as r,y as x,E as m,T as b,b as v,k as y,f as k,t as T,G as _,e as a,A as h}from"./index-C9KL0lrc.js";const w=d({__name:"Tooltip",props:{text:{},offset:{}},setup(o){const u=o,e=n(null),l=n(!1),p=n({}),f=()=>{l.value=!0,_(()=>{if(!e.value)return;const t=e.value.getBoundingClientRect(),s=u.offset??8;p.value={left:`${t.left+t.width/2}px`,top:`${t.top-s}px`}})},c=()=>{l.value=!1};return(t,s)=>(a(),i(g,null,[r("span",{ref_key:"triggerRef",ref:e,class:"inline-flex",onMouseenter:f,onMouseleave:c,onFocusin:f,onFocusout:c},[m(t.$slots,"default")],544),(a(),x(b,{to:"body"},[l.value?(a(),i("div",{key:0,class:"fixed z-[9999] -translate-x-1/2 -translate-y-full rounded-md bg-foreground px-2 py-1 text-[10px] text-background shadow-lg",style:y(p.value)},[k(T(o.text)+" ",1),s[0]||(s[0]=r("span",{class:"absolute left-1/2 top-full h-0 w-0 -translate-x-1/2 border-x-4 border-t-4 border-x-transparent border-t-foreground"},null,-1))],4)):v("",!0)]))],64))}}),C=d({__name:"HelpTip",props:{text:{}},setup(o){return(u,e)=>(a(),x(w,{text:o.text},{default:h(()=>[...e[0]||(e[0]=[r("span",{class:"help-dot"},"?",-1)])]),_:1},8,["text"]))}});export{C as _}; diff --git a/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-sPivD74C.js b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-sPivD74C.js new file mode 100644 index 0000000000000000000000000000000000000000..cd7b0da42af070c8f642706d9dbc7fa567ccb22d --- /dev/null +++ b/static/assets/HelpTip.vue_vue_type_script_setup_true_lang-sPivD74C.js @@ -0,0 +1 @@ +import{d,h as n,c as i,F as m,a as r,m as x,H as g,T as b,b as v,k as y,f as k,t as T,G as _,e as a,s as h}from"./index-BYFRJmx0.js";const w=d({__name:"Tooltip",props:{text:{},offset:{}},setup(o){const u=o,e=n(null),l=n(!1),p=n({}),f=()=>{l.value=!0,_(()=>{if(!e.value)return;const t=e.value.getBoundingClientRect(),s=u.offset??8;p.value={left:`${t.left+t.width/2}px`,top:`${t.top-s}px`}})},c=()=>{l.value=!1};return(t,s)=>(a(),i(m,null,[r("span",{ref_key:"triggerRef",ref:e,class:"inline-flex",onMouseenter:f,onMouseleave:c,onFocusin:f,onFocusout:c},[g(t.$slots,"default")],544),(a(),x(b,{to:"body"},[l.value?(a(),i("div",{key:0,class:"fixed z-[9999] -translate-x-1/2 -translate-y-full rounded-md bg-foreground px-2 py-1 text-[10px] text-background shadow-lg",style:y(p.value)},[k(T(o.text)+" ",1),s[0]||(s[0]=r("span",{class:"absolute left-1/2 top-full h-0 w-0 -translate-x-1/2 border-x-4 border-t-4 border-x-transparent border-t-foreground"},null,-1))],4)):v("",!0)]))],64))}}),C=d({__name:"HelpTip",props:{text:{}},setup(o){return(u,e)=>(a(),x(w,{text:o.text},{default:h(()=>[...e[0]||(e[0]=[r("span",{class:"help-dot"},"?",-1)])]),_:1},8,["text"]))}});export{C as _}; diff --git a/static/assets/Login-A9QOlXQ8.js b/static/assets/Login-A9QOlXQ8.js new file mode 100644 index 0000000000000000000000000000000000000000..5387dc9aa35fe261d4227ba5a3307cbb5fad6d19 --- /dev/null +++ b/static/assets/Login-A9QOlXQ8.js @@ -0,0 +1 @@ +import{d as f,l as x,h as a,c as i,a as e,w as b,b as v,m as g,v as h,t as l,f as y,p as w,e as d}from"./index-BIHSVHyU.js";const _={class:"min-h-screen px-4"},k={class:"flex min-h-screen items-center justify-center"},B={class:"w-full max-w-md rounded-[2.5rem] border border-border bg-card p-10 shadow-2xl shadow-black/10"},A={class:"space-y-2"},C=["disabled"],M={key:0,class:"rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},S=["disabled"],G=f({__name:"Login",setup(V){const u=w(),c=x(),t=a(""),o=a(""),r=a(!1);async function m(){if(t.value){o.value="",r.value=!0;try{await c.login(t.value),u.push({name:"dashboard"})}catch(n){o.value=n.message||"登录失败,请检查密钥。"}finally{r.value=!1}}}return(n,s)=>(d(),i("div",_,[e("div",k,[e("div",B,[s[2]||(s[2]=e("div",{class:"text-center"},[e("h1",{class:"text-3xl font-semibold text-foreground"},"Gemini Business 2API"),e("p",{class:"mt-2 text-sm text-muted-foreground"},"管理员登录")],-1)),e("form",{onSubmit:b(m,["prevent"]),class:"mt-8 space-y-6"},[e("div",A,[s[1]||(s[1]=e("label",{for:"password",class:"block text-sm font-medium text-foreground"}," 管理员密钥 ",-1)),g(e("input",{id:"password","onUpdate:modelValue":s[0]||(s[0]=p=>t.value=p),type:"password",required:"",class:"w-full rounded-2xl border border-input bg-background px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-all",placeholder:"请输入管理员密钥",disabled:r.value},null,8,C),[[h,t.value]])]),o.value?(d(),i("div",M,l(o.value),1)):v("",!0),e("button",{type:"submit",disabled:r.value||!t.value,class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50"},l(r.value?"登录中...":"登录"),9,S)],32),s[3]||(s[3]=e("div",{class:"mt-8 flex items-center justify-center gap-4 text-xs text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-2 transition-colors hover:text-foreground"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})]),y(" GitHub ")]),e("span",null,"Powered by Gemini Business API")],-1))])])]))}});export{G as default}; diff --git a/static/assets/Login-B6Y55Nz7.js b/static/assets/Login-B6Y55Nz7.js new file mode 100644 index 0000000000000000000000000000000000000000..30eeefc3f852c3b751f5c654367f929a6635173f --- /dev/null +++ b/static/assets/Login-B6Y55Nz7.js @@ -0,0 +1 @@ +import{d as f,l as x,h as a,c as i,a as e,w as b,b as v,m as g,v as h,t as l,f as y,p as w,e as d}from"./index-DhxxzIOh.js";const _={class:"min-h-screen px-4"},k={class:"flex min-h-screen items-center justify-center"},B={class:"w-full max-w-md rounded-[2.5rem] border border-border bg-card p-10 shadow-2xl shadow-black/10"},A={class:"space-y-2"},C=["disabled"],M={key:0,class:"rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},S=["disabled"],G=f({__name:"Login",setup(V){const u=w(),c=x(),t=a(""),o=a(""),r=a(!1);async function m(){if(t.value){o.value="",r.value=!0;try{await c.login(t.value),u.push({name:"dashboard"})}catch(n){o.value=n.message||"登录失败,请检查密钥。"}finally{r.value=!1}}}return(n,s)=>(d(),i("div",_,[e("div",k,[e("div",B,[s[2]||(s[2]=e("div",{class:"text-center"},[e("h1",{class:"text-3xl font-semibold text-foreground"},"Gemini Business 2API"),e("p",{class:"mt-2 text-sm text-muted-foreground"},"管理员登录")],-1)),e("form",{onSubmit:b(m,["prevent"]),class:"mt-8 space-y-6"},[e("div",A,[s[1]||(s[1]=e("label",{for:"password",class:"block text-sm font-medium text-foreground"}," 管理员密钥 ",-1)),g(e("input",{id:"password","onUpdate:modelValue":s[0]||(s[0]=p=>t.value=p),type:"password",required:"",class:"w-full rounded-2xl border border-input bg-background px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-all",placeholder:"请输入管理员密钥",disabled:r.value},null,8,C),[[h,t.value]])]),o.value?(d(),i("div",M,l(o.value),1)):v("",!0),e("button",{type:"submit",disabled:r.value||!t.value,class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50"},l(r.value?"登录中...":"登录"),9,S)],32),s[3]||(s[3]=e("div",{class:"mt-8 flex items-center justify-center gap-4 text-xs text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-2 transition-colors hover:text-foreground"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})]),y(" GitHub ")]),e("span",null,"Powered by Gemini Business API")],-1))])])]))}});export{G as default}; diff --git a/static/assets/Login-BBfMy3ab.js b/static/assets/Login-BBfMy3ab.js new file mode 100644 index 0000000000000000000000000000000000000000..9fbfd9ab1976d4f5366b42519315a4337587ca34 --- /dev/null +++ b/static/assets/Login-BBfMy3ab.js @@ -0,0 +1 @@ +import{d as w,l as k,h as n,w as f,c as p,a as e,m as M,p as x,b as m,q as b,v as C,t as g,s as A,f as i,x as D,y as _,T as B,z as I,A as G,e as c}from"./index-CM73xqTK.js";const L={class:"min-h-screen px-4"},S={class:"flex min-h-screen items-center justify-center"},T={class:"w-full max-w-md rounded-[2.5rem] border border-border bg-card p-10 shadow-2xl shadow-black/10"},V={class:"space-y-2"},j=["disabled"],P={key:0,class:"rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},z=["disabled"],N={class:"mt-6 space-y-3"},E={class:"flex cursor-pointer items-start gap-2 text-xs text-muted-foreground"},R={class:"relative max-h-[90vh] w-full max-w-2xl overflow-hidden rounded-3xl border border-border bg-card shadow-2xl"},$={class:"sticky top-0 z-10 flex items-center justify-between border-b border-border bg-card px-6 py-4"},q={class:"sticky bottom-0 border-t border-border bg-card px-6 py-4"},W=w({__name:"Login",setup(U){const v=G(),y=k(),l=n(""),d=n(""),a=n(!1),s=n(!1),u=n(!1);f(u,o=>{o&&(s.value=!0)}),f(s,o=>{o||(u.value=!1)});async function h(){if(l.value){d.value="",a.value=!0;try{await y.login(l.value),v.push({name:"dashboard"})}catch(o){d.value=o.message||"登录失败,请检查密钥。"}finally{a.value=!1}}}return(o,t)=>(c(),p("div",L,[e("div",S,[e("div",T,[t[8]||(t[8]=e("div",{class:"text-center"},[e("h1",{class:"text-3xl font-semibold text-foreground"},"Gemini Business 2API"),e("p",{class:"mt-2 text-sm text-muted-foreground"},"管理员登录")],-1)),e("form",{onSubmit:x(h,["prevent"]),class:"mt-8 space-y-6"},[e("div",V,[t[5]||(t[5]=e("label",{for:"password",class:"block text-sm font-medium text-foreground"}," 管理员密钥 ",-1)),b(e("input",{id:"password","onUpdate:modelValue":t[0]||(t[0]=r=>l.value=r),type:"password",required:"",class:"w-full rounded-2xl border border-input bg-background px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-all",placeholder:"请输入管理员密钥",disabled:a.value},null,8,j),[[C,l.value]])]),d.value?(c(),p("div",P,g(d.value),1)):m("",!0),e("button",{type:"submit",disabled:a.value||!l.value,class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50"},g(a.value?"登录中...":"登录"),9,z)],32),e("div",N,[t[7]||(t[7]=e("div",{class:"rounded-2xl border border-rose-200 bg-rose-50 px-4 py-3 text-xs"},[e("p",{class:"font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)")],-1)),e("label",E,[b(e("input",{type:"checkbox","onUpdate:modelValue":t[1]||(t[1]=r=>u.value=r),class:"mt-0.5 h-4 w-4 cursor-pointer rounded border-input text-primary focus:ring-2 focus:ring-ring"},null,512),[[A,u.value]]),t[6]||(t[6]=e("span",null,"我已阅读并同意上述说明与限制",-1))])]),t[9]||(t[9]=e("div",{class:"mt-8 flex items-center justify-center gap-4 text-xs text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-2 transition-colors hover:text-foreground"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})]),i(" GitHub ")]),e("span",null,"Powered by Gemini Business API")],-1))])]),(c(),M(I,{to:"body"},[D(B,{"enter-active-class":"transition-opacity duration-200","leave-active-class":"transition-opacity duration-200","enter-from-class":"opacity-0","leave-to-class":"opacity-0"},{default:_(()=>[s.value?(c(),p("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",onClick:t[4]||(t[4]=x(r=>s.value=!1,["self"]))},[e("div",R,[e("div",$,[t[11]||(t[11]=e("h2",{class:"text-lg font-semibold text-foreground"},"使用声明与免责条款",-1)),e("button",{type:"button",onClick:t[2]||(t[2]=r=>s.value=!1),class:"rounded-full p-2 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground"},[...t[10]||(t[10]=[e("svg",{class:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])]),t[12]||(t[12]=e("div",{class:"overflow-y-auto p-6",style:{"max-height":"calc(90vh - 140px)"}},[e("div",{class:"space-y-4 text-sm leading-relaxed"},[e("div",{class:"rounded-2xl border border-rose-200 bg-rose-50 px-4 py-3"},[e("p",{class:"font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)")]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"本工具严禁用于以下行为:"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,"商业用途或盈利性使用"),e("li",null,"任何形式的批量操作或自动化滥用(无论规模大小)"),e("li",null,"破坏市场秩序或恶意竞争"),e("li",null,"违反 Google 服务条款的任何行为"),e("li",null,"违反 Microsoft 服务条款的任何行为")])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"违规后果"),e("p",{class:"text-muted-foreground"},"滥用行为可能导致账号永久封禁、法律追责,一切后果由使用者自行承担。")]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"📖 合法用途"),e("p",{class:"text-muted-foreground"},"本项目仅限于以下场景:"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,"个人学习与技术研究"),e("li",null,"浏览器自动化技术探索"),e("li",null,"非商业性技术交流")])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"⚖️ 法律责任"),e("p",{class:"text-muted-foreground"},[e("strong",{class:"text-foreground"},"使用者责任:"),i("使用本工具产生的一切后果(包括但不限于账号封禁、数据损失、法律纠纷)由使用者完全承担。")]),e("p",{class:"text-muted-foreground"},[e("strong",{class:"text-foreground"},"合规义务:"),i("使用者必须遵守所在地法律法规及第三方服务条款(包括但不限于 Google Workspace、Microsoft 365 等服务条款)。")]),e("p",{class:"text-muted-foreground"},[e("strong",{class:"text-foreground"},"作者免责:"),i("作者不对任何违规使用、滥用行为或由此产生的后果承担责任。")])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"📋 技术声明"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,'本项目按"现状"提供,不提供任何形式的担保'),e("li",null,"依赖的第三方服务(如 DuckMail API、Microsoft Graph API 等)可用性不受作者控制"),e("li",null,"作者保留随时停止维护、变更功能或关闭项目的权利")])]),e("div",{class:"rounded-2xl border border-border bg-muted/30 px-4 py-3 text-center text-xs text-muted-foreground"},[i(" 完整声明请查看 "),e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api/blob/main/docs/DISCLAIMER.md",target:"_blank",class:"text-primary hover:underline font-medium"},"DISCLAIMER.md")])])],-1)),e("div",q,[e("button",{type:"button",onClick:t[3]||(t[3]=r=>s.value=!1),class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90"}," 我已知晓 ")])])])):m("",!0)]),_:1})]))]))}});export{W as default}; diff --git a/static/assets/Login-BLaoqV5L.js b/static/assets/Login-BLaoqV5L.js new file mode 100644 index 0000000000000000000000000000000000000000..c286768c3edf5c922491251b1f09a8a53ab30122 --- /dev/null +++ b/static/assets/Login-BLaoqV5L.js @@ -0,0 +1 @@ +import{d as h,l as w,h as n,c as p,a as e,m as k,w as m,b as f,p as M,q as _,v as C,t as x,s as A,f as s,T as D,x as G,e as c}from"./index-C4edAQLF.js";import{_ as B}from"./Checkbox.vue_vue_type_script_setup_true_lang-41XRw3c5.js";const I={class:"min-h-screen px-4"},V={class:"flex min-h-screen items-center justify-center"},L={class:"w-full max-w-md rounded-[2.5rem] border border-border bg-card p-10 shadow-2xl shadow-black/10"},S={class:"space-y-2"},j=["disabled"],P={key:0,class:"rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},T=["disabled"],N={class:"relative max-h-[90vh] w-full max-w-2xl overflow-hidden rounded-3xl border border-border bg-card shadow-2xl"},$={class:"sticky top-0 z-10 flex items-center justify-between border-b border-border bg-card px-6 py-4"},z={class:"sticky bottom-0 border-t border-border bg-card px-6 py-4"},H=h({__name:"Login",setup(E){const g=G(),b=w(),r=n(""),i=n(""),l=n(!1),a=n(!1),d=n(!1);function v(u){u&&(a.value=!0)}async function y(){if(!(!r.value||!d.value)){i.value="",l.value=!0;try{await b.login(r.value),g.push({name:"dashboard"})}catch(u){i.value=u.message||"登录失败,请检查密钥。"}finally{l.value=!1}}}return(u,t)=>(c(),p("div",I,[e("div",V,[e("div",L,[t[7]||(t[7]=e("div",{class:"text-center"},[e("h1",{class:"text-3xl font-semibold text-foreground"},"Gemini Business 2API"),e("p",{class:"mt-2 text-sm text-muted-foreground"},"管理员登录")],-1)),e("form",{onSubmit:m(y,["prevent"]),class:"mt-8 space-y-6"},[e("div",S,[t[5]||(t[5]=e("label",{for:"password",class:"block text-sm font-medium text-foreground"}," 管理员密钥 ",-1)),_(e("input",{id:"password","onUpdate:modelValue":t[0]||(t[0]=o=>r.value=o),type:"password",required:"",class:"w-full rounded-2xl border border-input bg-background px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-all",placeholder:"请输入管理员密钥",disabled:l.value},null,8,j),[[C,r.value]])]),i.value?(c(),p("div",P,x(i.value),1)):f("",!0),M(B,{modelValue:d.value,"onUpdate:modelValue":[t[1]||(t[1]=o=>d.value=o),v]},{default:A(()=>[...t[6]||(t[6]=[s(" 我已阅读并同意使用声明与免责条款 ",-1)])]),_:1},8,["modelValue"]),e("button",{type:"submit",disabled:l.value||!r.value||!d.value,class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50"},x(l.value?"登录中...":"登录"),9,T)],32),t[8]||(t[8]=e("div",{class:"mt-8 flex items-center justify-center gap-4 text-xs text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-2 transition-colors hover:text-foreground"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})]),s(" GitHub ")]),e("span",null,"Powered by Gemini Business API")],-1))])]),(c(),k(D,{to:"body"},[a.value?(c(),p("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",onClick:t[4]||(t[4]=m(o=>a.value=!1,["self"]))},[e("div",N,[e("div",$,[t[10]||(t[10]=e("h2",{class:"text-lg font-semibold text-foreground"},"使用声明与免责条款",-1)),e("button",{type:"button",onClick:t[2]||(t[2]=o=>a.value=!1),class:"rounded-full p-2 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground"},[...t[9]||(t[9]=[e("svg",{class:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])]),t[11]||(t[11]=e("div",{class:"overflow-y-auto p-6",style:{"max-height":"calc(90vh - 140px)"}},[e("div",{class:"space-y-4 text-sm leading-relaxed"},[e("div",{class:"rounded-2xl border border-rose-200 bg-rose-50 px-4 py-3"},[e("p",{class:"font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)")]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"本工具严禁用于以下行为:"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,"商业用途或盈利性使用"),e("li",null,"任何形式的批量操作或自动化滥用(无论规模大小)"),e("li",null,"破坏市场秩序或恶意竞争"),e("li",null,"违反 Google 服务条款的任何行为"),e("li",null,"违反 Microsoft 服务条款的任何行为")]),e("p",{class:"mt-2 text-muted-foreground"},[e("strong",{class:"text-foreground"},"违规后果:"),s("滥用行为可能导致账号永久封禁、法律追责,一切后果由使用者自行承担。")])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"📖 合法用途"),e("p",{class:"text-muted-foreground"},"本项目仅限于以下场景:"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,"个人学习与技术研究"),e("li",null,"浏览器自动化技术探索"),e("li",null,"非商业性技术交流")])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"⚖️ 法律责任"),e("ol",{class:"list-decimal space-y-1 pl-6 text-muted-foreground"},[e("li",null,[e("strong",{class:"text-foreground"},"使用者责任:"),s("使用本工具产生的一切后果(包括但不限于账号封禁、数据损失、法律纠纷)由使用者完全承担")]),e("li",null,[e("strong",{class:"text-foreground"},"合规义务:"),s("使用者必须遵守所在地法律法规及第三方服务条款(包括但不限于 Google Workspace、Microsoft 365 等服务条款)")]),e("li",null,[e("strong",{class:"text-foreground"},"作者免责:"),s("作者不对任何违规使用、滥用行为或由此产生的后果承担责任")])])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"📋 技术声明"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,[e("strong",{class:"text-foreground"},"无担保:"),s('本项目按"现状"提供,不提供任何形式的担保')]),e("li",null,[e("strong",{class:"text-foreground"},"第三方依赖:"),s("依赖的第三方服务(如 DuckMail API、Microsoft Graph API 等)可用性不受作者控制")]),e("li",null,[e("strong",{class:"text-foreground"},"维护权利:"),s("作者保留随时停止维护、变更功能或关闭项目的权利")])])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"🔗 相关服务条款"),e("p",{class:"text-muted-foreground"},"使用本工具时,您必须同时遵守以下第三方服务的条款:"),e("ul",{class:"space-y-1 pl-6 text-muted-foreground"},[e("li",null,[s("• "),e("a",{href:"https://policies.google.com/terms",target:"_blank",class:"text-primary hover:underline"},"Google 服务条款")]),e("li",null,[s("• "),e("a",{href:"https://workspace.google.com/terms/service-terms.html",target:"_blank",class:"text-primary hover:underline"},"Google Workspace 附加条款")]),e("li",null,[s("• "),e("a",{href:"https://www.microsoft.com/servicesagreement",target:"_blank",class:"text-primary hover:underline"},"Microsoft 服务协议")]),e("li",null,[s("• "),e("a",{href:"https://www.microsoft.com/licensing/terms",target:"_blank",class:"text-primary hover:underline"},"Microsoft 365 使用条款")])])]),e("div",{class:"rounded-2xl border border-border bg-muted/30 px-4 py-3 text-center"},[e("p",{class:"text-xs text-muted-foreground mb-2"},"使用本工具即表示您已阅读、理解并同意遵守以上所有条款。"),e("p",{class:"text-xs text-muted-foreground"},[s("完整声明请查看 "),e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api/blob/main/docs/DISCLAIMER.md",target:"_blank",class:"text-primary hover:underline font-medium"},"GitHub - DISCLAIMER.md")])])])],-1)),e("div",z,[e("button",{type:"button",onClick:t[3]||(t[3]=o=>a.value=!1),class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90"}," 我已知晓 ")])])])):f("",!0)]))]))}});export{H as default}; diff --git a/static/assets/Login-BRj7Z9UO.js b/static/assets/Login-BRj7Z9UO.js new file mode 100644 index 0000000000000000000000000000000000000000..20dcbc1feefd16bee0249c363b13a8678dbf650c --- /dev/null +++ b/static/assets/Login-BRj7Z9UO.js @@ -0,0 +1 @@ +import{d as f,l as x,h as a,c as i,a as e,w as b,b as v,m as g,v as h,t as l,f as y,p as w,e as d}from"./index-BRg_yWJl.js";const _={class:"min-h-screen px-4"},k={class:"flex min-h-screen items-center justify-center"},B={class:"w-full max-w-md rounded-[2.5rem] border border-border bg-card p-10 shadow-2xl shadow-black/10"},A={class:"space-y-2"},C=["disabled"],M={key:0,class:"rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},S=["disabled"],G=f({__name:"Login",setup(V){const u=w(),c=x(),t=a(""),o=a(""),r=a(!1);async function m(){if(t.value){o.value="",r.value=!0;try{await c.login(t.value),u.push({name:"dashboard"})}catch(n){o.value=n.message||"登录失败,请检查密钥。"}finally{r.value=!1}}}return(n,s)=>(d(),i("div",_,[e("div",k,[e("div",B,[s[2]||(s[2]=e("div",{class:"text-center"},[e("h1",{class:"text-3xl font-semibold text-foreground"},"Gemini Business 2API"),e("p",{class:"mt-2 text-sm text-muted-foreground"},"管理员登录")],-1)),e("form",{onSubmit:b(m,["prevent"]),class:"mt-8 space-y-6"},[e("div",A,[s[1]||(s[1]=e("label",{for:"password",class:"block text-sm font-medium text-foreground"}," 管理员密钥 ",-1)),g(e("input",{id:"password","onUpdate:modelValue":s[0]||(s[0]=p=>t.value=p),type:"password",required:"",class:"w-full rounded-2xl border border-input bg-background px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-all",placeholder:"请输入管理员密钥",disabled:r.value},null,8,C),[[h,t.value]])]),o.value?(d(),i("div",M,l(o.value),1)):v("",!0),e("button",{type:"submit",disabled:r.value||!t.value,class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50"},l(r.value?"登录中...":"登录"),9,S)],32),s[3]||(s[3]=e("div",{class:"mt-8 flex items-center justify-center gap-4 text-xs text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-2 transition-colors hover:text-foreground"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})]),y(" GitHub ")]),e("span",null,"Powered by Gemini Business API")],-1))])])]))}});export{G as default}; diff --git a/static/assets/Login-BuxlvrlO.js b/static/assets/Login-BuxlvrlO.js new file mode 100644 index 0000000000000000000000000000000000000000..88b14af71851eba3bc10bf0f21fb74707ffa120f --- /dev/null +++ b/static/assets/Login-BuxlvrlO.js @@ -0,0 +1 @@ +import{d as f,l as g,h as a,c as n,a as e,m as x,w as v,b,p as y,v as h,t as d,q as w,e as i}from"./index-Bx7qSams.js";const _={class:"min-h-screen px-4"},k={class:"flex min-h-screen items-center justify-center"},M={class:"w-full max-w-md rounded-[2.5rem] border border-border bg-card p-10 shadow-2xl shadow-black/10"},A={class:"space-y-2"},I=["disabled"],D={key:0,class:"rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},S=["disabled"],G=f({__name:"Login",setup(B){const p=w(),c=g(),t=a(""),r=a(""),o=a(!1);async function u(){if(t.value){r.value="",o.value=!0;try{await c.login(t.value),p.push({name:"dashboard"})}catch(l){r.value=l.message||"登录失败,请检查密钥。"}finally{o.value=!1}}}return(l,s)=>(i(),n("div",_,[e("div",k,[e("div",M,[s[2]||(s[2]=e("div",{class:"text-center"},[e("h1",{class:"text-3xl font-semibold text-foreground"},"Gemini Business 2API"),e("p",{class:"mt-2 text-sm text-muted-foreground"},"管理员登录")],-1)),e("form",{onSubmit:v(u,["prevent"]),class:"mt-8 space-y-6"},[e("div",A,[s[1]||(s[1]=e("label",{for:"password",class:"block text-sm font-medium text-foreground"}," 管理员密钥 ",-1)),y(e("input",{id:"password","onUpdate:modelValue":s[0]||(s[0]=m=>t.value=m),type:"password",required:"",class:"w-full rounded-2xl border border-input bg-background px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-all",placeholder:"请输入管理员密钥",disabled:o.value},null,8,I),[[h,t.value]])]),r.value?(i(),n("div",D,d(r.value),1)):b("",!0),e("button",{type:"submit",disabled:o.value||!t.value,class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50"},d(o.value?"登录中...":"登录"),9,S)],32),s[3]||(s[3]=x('

⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)

本工具严禁用于以下行为:

• 商业用途或盈利性使用

• 任何形式的批量操作或自动化滥用(无论规模大小)

• 破坏市场秩序或恶意竞争

• 违反 Google 服务条款的任何行为

• 违反 Microsoft 服务条款的任何行为

违规后果:滥用行为可能导致账号永久封禁、法律追责,一切后果由使用者自行承担。

📖 合法用途

本项目仅限于以下场景:

• 个人学习与技术研究

• 浏览器自动化技术探索

• 非商业性技术交流

⚖️ 法律责任

使用者责任:使用本工具产生的一切后果(包括但不限于账号封禁、数据损失、法律纠纷)由使用者完全承担。

合规义务:使用者必须遵守所在地法律法规及第三方服务条款(包括但不限于 Google Workspace、Microsoft 365 等服务条款)。

作者免责:作者不对任何违规使用、滥用行为或由此产生的后果承担责任。

📋 技术声明

• 本项目按"现状"提供,不提供任何形式的担保

• 依赖的第三方服务(如 DuckMail API、Microsoft Graph API 等)可用性不受作者控制

• 作者保留随时停止维护、变更功能或关闭项目的权利

完整声明请查看 DISCLAIMER.md

GitHub Powered by Gemini Business API
',2))])])]))}});export{G as default}; diff --git a/static/assets/Login-C-o3VEDt.js b/static/assets/Login-C-o3VEDt.js new file mode 100644 index 0000000000000000000000000000000000000000..ab9486a4748869fe3db576b77e467c6fa1e739c3 --- /dev/null +++ b/static/assets/Login-C-o3VEDt.js @@ -0,0 +1 @@ +import{d as h,l as w,h as n,c as p,a as e,m as k,w as m,b as f,p as M,q as _,v as C,t as x,s as A,f as s,T as D,x as G,e as c}from"./index-Dul9zA0O.js";import{_ as B}from"./Checkbox.vue_vue_type_script_setup_true_lang-BzH_cd6M.js";const I={class:"min-h-screen px-4"},V={class:"flex min-h-screen items-center justify-center"},L={class:"w-full max-w-md rounded-[2.5rem] border border-border bg-card p-10 shadow-2xl shadow-black/10"},S={class:"space-y-2"},j=["disabled"],P={key:0,class:"rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},T=["disabled"],N={class:"relative max-h-[90vh] w-full max-w-2xl overflow-hidden rounded-3xl border border-border bg-card shadow-2xl"},$={class:"sticky top-0 z-10 flex items-center justify-between border-b border-border bg-card px-6 py-4"},z={class:"sticky bottom-0 border-t border-border bg-card px-6 py-4"},H=h({__name:"Login",setup(E){const g=G(),b=w(),r=n(""),i=n(""),l=n(!1),a=n(!1),d=n(!1);function v(u){u&&(a.value=!0)}async function y(){if(!(!r.value||!d.value)){i.value="",l.value=!0;try{await b.login(r.value),g.push({name:"dashboard"})}catch(u){i.value=u.message||"登录失败,请检查密钥。"}finally{l.value=!1}}}return(u,t)=>(c(),p("div",I,[e("div",V,[e("div",L,[t[7]||(t[7]=e("div",{class:"text-center"},[e("h1",{class:"text-3xl font-semibold text-foreground"},"Gemini Business 2API"),e("p",{class:"mt-2 text-sm text-muted-foreground"},"管理员登录")],-1)),e("form",{onSubmit:m(y,["prevent"]),class:"mt-8 space-y-6"},[e("div",S,[t[5]||(t[5]=e("label",{for:"password",class:"block text-sm font-medium text-foreground"}," 管理员密钥 ",-1)),_(e("input",{id:"password","onUpdate:modelValue":t[0]||(t[0]=o=>r.value=o),type:"password",required:"",class:"w-full rounded-2xl border border-input bg-background px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-all",placeholder:"请输入管理员密钥",disabled:l.value},null,8,j),[[C,r.value]])]),i.value?(c(),p("div",P,x(i.value),1)):f("",!0),M(B,{modelValue:d.value,"onUpdate:modelValue":[t[1]||(t[1]=o=>d.value=o),v]},{default:A(()=>[...t[6]||(t[6]=[s(" 我已阅读并同意使用声明与免责条款 ",-1)])]),_:1},8,["modelValue"]),e("button",{type:"submit",disabled:l.value||!r.value||!d.value,class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50"},x(l.value?"登录中...":"登录"),9,T)],32),t[8]||(t[8]=e("div",{class:"mt-8 flex items-center justify-center gap-4 text-xs text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-2 transition-colors hover:text-foreground"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})]),s(" GitHub ")]),e("span",null,"Powered by Gemini Business API")],-1))])]),(c(),k(D,{to:"body"},[a.value?(c(),p("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",onClick:t[4]||(t[4]=m(o=>a.value=!1,["self"]))},[e("div",N,[e("div",$,[t[10]||(t[10]=e("h2",{class:"text-lg font-semibold text-foreground"},"使用声明与免责条款",-1)),e("button",{type:"button",onClick:t[2]||(t[2]=o=>a.value=!1),class:"rounded-full p-2 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground"},[...t[9]||(t[9]=[e("svg",{class:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])]),t[11]||(t[11]=e("div",{class:"overflow-y-auto p-6",style:{"max-height":"calc(90vh - 140px)"}},[e("div",{class:"space-y-4 text-sm leading-relaxed"},[e("div",{class:"rounded-2xl border border-rose-200 bg-rose-50 px-4 py-3"},[e("p",{class:"font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)")]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"本工具严禁用于以下行为:"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,"商业用途或盈利性使用"),e("li",null,"任何形式的批量操作或自动化滥用(无论规模大小)"),e("li",null,"破坏市场秩序或恶意竞争"),e("li",null,"违反 Google 服务条款的任何行为"),e("li",null,"违反 Microsoft 服务条款的任何行为")]),e("p",{class:"mt-2 text-muted-foreground"},[e("strong",{class:"text-foreground"},"违规后果:"),s("滥用行为可能导致账号永久封禁、法律追责,一切后果由使用者自行承担。")])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"📖 合法用途"),e("p",{class:"text-muted-foreground"},"本项目仅限于以下场景:"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,"个人学习与技术研究"),e("li",null,"浏览器自动化技术探索"),e("li",null,"非商业性技术交流")])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"⚖️ 法律责任"),e("ol",{class:"list-decimal space-y-1 pl-6 text-muted-foreground"},[e("li",null,[e("strong",{class:"text-foreground"},"使用者责任:"),s("使用本工具产生的一切后果(包括但不限于账号封禁、数据损失、法律纠纷)由使用者完全承担")]),e("li",null,[e("strong",{class:"text-foreground"},"合规义务:"),s("使用者必须遵守所在地法律法规及第三方服务条款(包括但不限于 Google Workspace、Microsoft 365 等服务条款)")]),e("li",null,[e("strong",{class:"text-foreground"},"作者免责:"),s("作者不对任何违规使用、滥用行为或由此产生的后果承担责任")])])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"📋 技术声明"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,[e("strong",{class:"text-foreground"},"无担保:"),s('本项目按"现状"提供,不提供任何形式的担保')]),e("li",null,[e("strong",{class:"text-foreground"},"第三方依赖:"),s("依赖的第三方服务(如 DuckMail API、Microsoft Graph API 等)可用性不受作者控制")]),e("li",null,[e("strong",{class:"text-foreground"},"维护权利:"),s("作者保留随时停止维护、变更功能或关闭项目的权利")])])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"🔗 相关服务条款"),e("p",{class:"text-muted-foreground"},"使用本工具时,您必须同时遵守以下第三方服务的条款:"),e("ul",{class:"space-y-1 pl-6 text-muted-foreground"},[e("li",null,[s("• "),e("a",{href:"https://policies.google.com/terms",target:"_blank",class:"text-primary hover:underline"},"Google 服务条款")]),e("li",null,[s("• "),e("a",{href:"https://workspace.google.com/terms/service-terms.html",target:"_blank",class:"text-primary hover:underline"},"Google Workspace 附加条款")]),e("li",null,[s("• "),e("a",{href:"https://www.microsoft.com/servicesagreement",target:"_blank",class:"text-primary hover:underline"},"Microsoft 服务协议")]),e("li",null,[s("• "),e("a",{href:"https://www.microsoft.com/licensing/terms",target:"_blank",class:"text-primary hover:underline"},"Microsoft 365 使用条款")])])]),e("div",{class:"rounded-2xl border border-border bg-muted/30 px-4 py-3 text-center"},[e("p",{class:"text-xs text-muted-foreground mb-2"},"使用本工具即表示您已阅读、理解并同意遵守以上所有条款。"),e("p",{class:"text-xs text-muted-foreground"},[s("完整声明请查看 "),e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api/blob/main/docs/DISCLAIMER.md",target:"_blank",class:"text-primary hover:underline font-medium"},"GitHub - DISCLAIMER.md")])])])],-1)),e("div",z,[e("button",{type:"button",onClick:t[3]||(t[3]=o=>a.value=!1),class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90"}," 我已知晓 ")])])])):f("",!0)]))]))}});export{H as default}; diff --git a/static/assets/Login-C5mFe4VZ.js b/static/assets/Login-C5mFe4VZ.js new file mode 100644 index 0000000000000000000000000000000000000000..457b7ffecad04ac0fccd5edc6c620cc1940b7793 --- /dev/null +++ b/static/assets/Login-C5mFe4VZ.js @@ -0,0 +1 @@ +import{d as h,l as w,h as n,c as p,a as e,m as k,w as m,b as f,p as M,q as _,v as C,t as x,s as A,f as s,T as D,x as G,e as c}from"./index-CQv2QMzB.js";import{_ as B}from"./Checkbox.vue_vue_type_script_setup_true_lang-D9NLz7h-.js";const I={class:"min-h-screen px-4"},V={class:"flex min-h-screen items-center justify-center"},L={class:"w-full max-w-md rounded-[2.5rem] border border-border bg-card p-10 shadow-2xl shadow-black/10"},S={class:"space-y-2"},j=["disabled"],P={key:0,class:"rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},T=["disabled"],N={class:"relative max-h-[90vh] w-full max-w-2xl overflow-hidden rounded-3xl border border-border bg-card shadow-2xl"},$={class:"sticky top-0 z-10 flex items-center justify-between border-b border-border bg-card px-6 py-4"},z={class:"sticky bottom-0 border-t border-border bg-card px-6 py-4"},H=h({__name:"Login",setup(E){const g=G(),b=w(),r=n(""),i=n(""),l=n(!1),a=n(!1),d=n(!1);function v(u){u&&(a.value=!0)}async function y(){if(!(!r.value||!d.value)){i.value="",l.value=!0;try{await b.login(r.value),g.push({name:"dashboard"})}catch(u){i.value=u.message||"登录失败,请检查密钥。"}finally{l.value=!1}}}return(u,t)=>(c(),p("div",I,[e("div",V,[e("div",L,[t[7]||(t[7]=e("div",{class:"text-center"},[e("h1",{class:"text-3xl font-semibold text-foreground"},"Gemini Business 2API"),e("p",{class:"mt-2 text-sm text-muted-foreground"},"管理员登录")],-1)),e("form",{onSubmit:m(y,["prevent"]),class:"mt-8 space-y-6"},[e("div",S,[t[5]||(t[5]=e("label",{for:"password",class:"block text-sm font-medium text-foreground"}," 管理员密钥 ",-1)),_(e("input",{id:"password","onUpdate:modelValue":t[0]||(t[0]=o=>r.value=o),type:"password",required:"",class:"w-full rounded-2xl border border-input bg-background px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-all",placeholder:"请输入管理员密钥",disabled:l.value},null,8,j),[[C,r.value]])]),i.value?(c(),p("div",P,x(i.value),1)):f("",!0),M(B,{modelValue:d.value,"onUpdate:modelValue":[t[1]||(t[1]=o=>d.value=o),v]},{default:A(()=>[...t[6]||(t[6]=[s(" 我已阅读并同意使用声明与免责条款 ",-1)])]),_:1},8,["modelValue"]),e("button",{type:"submit",disabled:l.value||!r.value||!d.value,class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50"},x(l.value?"登录中...":"登录"),9,T)],32),t[8]||(t[8]=e("div",{class:"mt-8 flex items-center justify-center gap-4 text-xs text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-2 transition-colors hover:text-foreground"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})]),s(" GitHub ")]),e("span",null,"Powered by Gemini Business API")],-1))])]),(c(),k(D,{to:"body"},[a.value?(c(),p("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",onClick:t[4]||(t[4]=m(o=>a.value=!1,["self"]))},[e("div",N,[e("div",$,[t[10]||(t[10]=e("h2",{class:"text-lg font-semibold text-foreground"},"使用声明与免责条款",-1)),e("button",{type:"button",onClick:t[2]||(t[2]=o=>a.value=!1),class:"rounded-full p-2 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground"},[...t[9]||(t[9]=[e("svg",{class:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])]),t[11]||(t[11]=e("div",{class:"overflow-y-auto p-6",style:{"max-height":"calc(90vh - 140px)"}},[e("div",{class:"space-y-4 text-sm leading-relaxed"},[e("div",{class:"rounded-2xl border border-rose-200 bg-rose-50 px-4 py-3"},[e("p",{class:"font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)")]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"本工具严禁用于以下行为:"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,"商业用途或盈利性使用"),e("li",null,"任何形式的批量操作或自动化滥用(无论规模大小)"),e("li",null,"破坏市场秩序或恶意竞争"),e("li",null,"违反 Google 服务条款的任何行为"),e("li",null,"违反 Microsoft 服务条款的任何行为")]),e("p",{class:"mt-2 text-muted-foreground"},[e("strong",{class:"text-foreground"},"违规后果:"),s("滥用行为可能导致账号永久封禁、法律追责,一切后果由使用者自行承担。")])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"📖 合法用途"),e("p",{class:"text-muted-foreground"},"本项目仅限于以下场景:"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,"个人学习与技术研究"),e("li",null,"浏览器自动化技术探索"),e("li",null,"非商业性技术交流")])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"⚖️ 法律责任"),e("ol",{class:"list-decimal space-y-1 pl-6 text-muted-foreground"},[e("li",null,[e("strong",{class:"text-foreground"},"使用者责任:"),s("使用本工具产生的一切后果(包括但不限于账号封禁、数据损失、法律纠纷)由使用者完全承担")]),e("li",null,[e("strong",{class:"text-foreground"},"合规义务:"),s("使用者必须遵守所在地法律法规及第三方服务条款(包括但不限于 Google Workspace、Microsoft 365 等服务条款)")]),e("li",null,[e("strong",{class:"text-foreground"},"作者免责:"),s("作者不对任何违规使用、滥用行为或由此产生的后果承担责任")])])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"📋 技术声明"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,[e("strong",{class:"text-foreground"},"无担保:"),s('本项目按"现状"提供,不提供任何形式的担保')]),e("li",null,[e("strong",{class:"text-foreground"},"第三方依赖:"),s("依赖的第三方服务(如 DuckMail API、Microsoft Graph API 等)可用性不受作者控制")]),e("li",null,[e("strong",{class:"text-foreground"},"维护权利:"),s("作者保留随时停止维护、变更功能或关闭项目的权利")])])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"🔗 相关服务条款"),e("p",{class:"text-muted-foreground"},"使用本工具时,您必须同时遵守以下第三方服务的条款:"),e("ul",{class:"space-y-1 pl-6 text-muted-foreground"},[e("li",null,[s("• "),e("a",{href:"https://policies.google.com/terms",target:"_blank",class:"text-primary hover:underline"},"Google 服务条款")]),e("li",null,[s("• "),e("a",{href:"https://workspace.google.com/terms/service-terms.html",target:"_blank",class:"text-primary hover:underline"},"Google Workspace 附加条款")]),e("li",null,[s("• "),e("a",{href:"https://www.microsoft.com/servicesagreement",target:"_blank",class:"text-primary hover:underline"},"Microsoft 服务协议")]),e("li",null,[s("• "),e("a",{href:"https://www.microsoft.com/licensing/terms",target:"_blank",class:"text-primary hover:underline"},"Microsoft 365 使用条款")])])]),e("div",{class:"rounded-2xl border border-border bg-muted/30 px-4 py-3 text-center"},[e("p",{class:"text-xs text-muted-foreground mb-2"},"使用本工具即表示您已阅读、理解并同意遵守以上所有条款。"),e("p",{class:"text-xs text-muted-foreground"},[s("完整声明请查看 "),e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api/blob/main/docs/DISCLAIMER.md",target:"_blank",class:"text-primary hover:underline font-medium"},"GitHub - DISCLAIMER.md")])])])],-1)),e("div",z,[e("button",{type:"button",onClick:t[3]||(t[3]=o=>a.value=!1),class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90"}," 我已知晓 ")])])])):f("",!0)]))]))}});export{H as default}; diff --git a/static/assets/Login-C90rUWc3.js b/static/assets/Login-C90rUWc3.js new file mode 100644 index 0000000000000000000000000000000000000000..c44799510b704010be09757bebd3ea311cf9f732 --- /dev/null +++ b/static/assets/Login-C90rUWc3.js @@ -0,0 +1 @@ +import{d as k,l as _,h as n,c as p,a as e,m as M,w as m,b as f,p as x,q as C,v as A,t as g,s as b,f as s,T as D,x as G,y as B,e as c}from"./index-BRM37S6x.js";import{_ as I}from"./Checkbox.vue_vue_type_script_setup_true_lang-BBcv-AYv.js";const V={class:"min-h-screen px-4"},L={class:"flex min-h-screen items-center justify-center"},S={class:"w-full max-w-md rounded-[2.5rem] border border-border bg-card p-10 shadow-2xl shadow-black/10"},T={class:"space-y-2"},j=["disabled"],P={key:0,class:"rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},N=["disabled"],$={class:"relative max-h-[90vh] w-full max-w-2xl overflow-hidden rounded-3xl border border-border bg-card shadow-2xl"},z={class:"sticky top-0 z-10 flex items-center justify-between border-b border-border bg-card px-6 py-4"},E={class:"sticky bottom-0 border-t border-border bg-card px-6 py-4"},U=k({__name:"Login",setup(R){const v=B(),y=_(),r=n(""),i=n(""),l=n(!1),a=n(!1),d=n(!1);function h(u){u&&(a.value=!0)}async function w(){if(!(!r.value||!d.value)){i.value="",l.value=!0;try{await y.login(r.value),v.push({name:"dashboard"})}catch(u){i.value=u.message||"登录失败,请检查密钥。"}finally{l.value=!1}}}return(u,t)=>(c(),p("div",V,[e("div",L,[e("div",S,[t[7]||(t[7]=e("div",{class:"text-center"},[e("h1",{class:"text-3xl font-semibold text-foreground"},"Gemini Business 2API"),e("p",{class:"mt-2 text-sm text-muted-foreground"},"管理员登录")],-1)),e("form",{onSubmit:m(w,["prevent"]),class:"mt-8 space-y-6"},[e("div",T,[t[5]||(t[5]=e("label",{for:"password",class:"block text-sm font-medium text-foreground"}," 管理员密钥 ",-1)),C(e("input",{id:"password","onUpdate:modelValue":t[0]||(t[0]=o=>r.value=o),type:"password",required:"",class:"w-full rounded-2xl border border-input bg-background px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-all",placeholder:"请输入管理员密钥",disabled:l.value},null,8,j),[[A,r.value]])]),i.value?(c(),p("div",P,g(i.value),1)):f("",!0),x(I,{modelValue:d.value,"onUpdate:modelValue":[t[1]||(t[1]=o=>d.value=o),h]},{default:b(()=>[...t[6]||(t[6]=[s(" 我已阅读并同意使用声明与免责条款 ",-1)])]),_:1},8,["modelValue"]),e("button",{type:"submit",disabled:l.value||!r.value||!d.value,class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50"},g(l.value?"登录中...":"登录"),9,N)],32),t[8]||(t[8]=e("div",{class:"mt-8 flex items-center justify-center gap-4 text-xs text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-2 transition-colors hover:text-foreground"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})]),s(" GitHub ")]),e("span",null,"Powered by Gemini Business API")],-1))])]),(c(),M(G,{to:"body"},[x(D,{"enter-active-class":"transition-opacity duration-200","leave-active-class":"transition-opacity duration-200","enter-from-class":"opacity-0","leave-to-class":"opacity-0"},{default:b(()=>[a.value?(c(),p("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",onClick:t[4]||(t[4]=m(o=>a.value=!1,["self"]))},[e("div",$,[e("div",z,[t[10]||(t[10]=e("h2",{class:"text-lg font-semibold text-foreground"},"使用声明与免责条款",-1)),e("button",{type:"button",onClick:t[2]||(t[2]=o=>a.value=!1),class:"rounded-full p-2 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground"},[...t[9]||(t[9]=[e("svg",{class:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])]),t[11]||(t[11]=e("div",{class:"overflow-y-auto p-6",style:{"max-height":"calc(90vh - 140px)"}},[e("div",{class:"space-y-4 text-sm leading-relaxed"},[e("div",{class:"rounded-2xl border border-rose-200 bg-rose-50 px-4 py-3"},[e("p",{class:"font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)")]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"本工具严禁用于以下行为:"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,"商业用途或盈利性使用"),e("li",null,"任何形式的批量操作或自动化滥用(无论规模大小)"),e("li",null,"破坏市场秩序或恶意竞争"),e("li",null,"违反 Google 服务条款的任何行为"),e("li",null,"违反 Microsoft 服务条款的任何行为")]),e("p",{class:"mt-2 text-muted-foreground"},[e("strong",{class:"text-foreground"},"违规后果:"),s("滥用行为可能导致账号永久封禁、法律追责,一切后果由使用者自行承担。")])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"📖 合法用途"),e("p",{class:"text-muted-foreground"},"本项目仅限于以下场景:"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,"个人学习与技术研究"),e("li",null,"浏览器自动化技术探索"),e("li",null,"非商业性技术交流")])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"⚖️ 法律责任"),e("ol",{class:"list-decimal space-y-1 pl-6 text-muted-foreground"},[e("li",null,[e("strong",{class:"text-foreground"},"使用者责任:"),s("使用本工具产生的一切后果(包括但不限于账号封禁、数据损失、法律纠纷)由使用者完全承担")]),e("li",null,[e("strong",{class:"text-foreground"},"合规义务:"),s("使用者必须遵守所在地法律法规及第三方服务条款(包括但不限于 Google Workspace、Microsoft 365 等服务条款)")]),e("li",null,[e("strong",{class:"text-foreground"},"作者免责:"),s("作者不对任何违规使用、滥用行为或由此产生的后果承担责任")])])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"📋 技术声明"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,[e("strong",{class:"text-foreground"},"无担保:"),s('本项目按"现状"提供,不提供任何形式的担保')]),e("li",null,[e("strong",{class:"text-foreground"},"第三方依赖:"),s("依赖的第三方服务(如 DuckMail API、Microsoft Graph API 等)可用性不受作者控制")]),e("li",null,[e("strong",{class:"text-foreground"},"维护权利:"),s("作者保留随时停止维护、变更功能或关闭项目的权利")])])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"🔗 相关服务条款"),e("p",{class:"text-muted-foreground"},"使用本工具时,您必须同时遵守以下第三方服务的条款:"),e("ul",{class:"space-y-1 pl-6 text-muted-foreground"},[e("li",null,[s("• "),e("a",{href:"https://policies.google.com/terms",target:"_blank",class:"text-primary hover:underline"},"Google 服务条款")]),e("li",null,[s("• "),e("a",{href:"https://workspace.google.com/terms/service-terms.html",target:"_blank",class:"text-primary hover:underline"},"Google Workspace 附加条款")]),e("li",null,[s("• "),e("a",{href:"https://www.microsoft.com/servicesagreement",target:"_blank",class:"text-primary hover:underline"},"Microsoft 服务协议")]),e("li",null,[s("• "),e("a",{href:"https://www.microsoft.com/licensing/terms",target:"_blank",class:"text-primary hover:underline"},"Microsoft 365 使用条款")])])]),e("div",{class:"rounded-2xl border border-border bg-muted/30 px-4 py-3 text-center"},[e("p",{class:"text-xs text-muted-foreground mb-2"},"使用本工具即表示您已阅读、理解并同意遵守以上所有条款。"),e("p",{class:"text-xs text-muted-foreground"},[s("完整声明请查看 "),e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api/blob/main/docs/DISCLAIMER.md",target:"_blank",class:"text-primary hover:underline font-medium"},"GitHub - DISCLAIMER.md")])])])],-1)),e("div",E,[e("button",{type:"button",onClick:t[3]||(t[3]=o=>a.value=!1),class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90"}," 我已知晓 ")])])])):f("",!0)]),_:1})]))]))}});export{U as default}; diff --git a/static/assets/Login-CDlvpJj-.js b/static/assets/Login-CDlvpJj-.js new file mode 100644 index 0000000000000000000000000000000000000000..8c2d3e83a776f079aea7db40d2f6eea57bf8e2ca --- /dev/null +++ b/static/assets/Login-CDlvpJj-.js @@ -0,0 +1 @@ +import{d as f,l as x,h as a,c as i,a as e,w as b,b as v,m as g,v as h,t as l,f as y,p as w,e as d}from"./index-C9KL0lrc.js";const _={class:"min-h-screen px-4"},k={class:"flex min-h-screen items-center justify-center"},B={class:"w-full max-w-md rounded-[2.5rem] border border-border bg-card p-10 shadow-2xl shadow-black/10"},A={class:"space-y-2"},C=["disabled"],M={key:0,class:"rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},S=["disabled"],G=f({__name:"Login",setup(V){const u=w(),c=x(),t=a(""),o=a(""),r=a(!1);async function m(){if(t.value){o.value="",r.value=!0;try{await c.login(t.value),u.push({name:"dashboard"})}catch(n){o.value=n.message||"登录失败,请检查密钥。"}finally{r.value=!1}}}return(n,s)=>(d(),i("div",_,[e("div",k,[e("div",B,[s[2]||(s[2]=e("div",{class:"text-center"},[e("h1",{class:"text-3xl font-semibold text-foreground"},"Gemini Business 2API"),e("p",{class:"mt-2 text-sm text-muted-foreground"},"管理员登录")],-1)),e("form",{onSubmit:b(m,["prevent"]),class:"mt-8 space-y-6"},[e("div",A,[s[1]||(s[1]=e("label",{for:"password",class:"block text-sm font-medium text-foreground"}," 管理员密钥 ",-1)),g(e("input",{id:"password","onUpdate:modelValue":s[0]||(s[0]=p=>t.value=p),type:"password",required:"",class:"w-full rounded-2xl border border-input bg-background px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-all",placeholder:"请输入管理员密钥",disabled:r.value},null,8,C),[[h,t.value]])]),o.value?(d(),i("div",M,l(o.value),1)):v("",!0),e("button",{type:"submit",disabled:r.value||!t.value,class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50"},l(r.value?"登录中...":"登录"),9,S)],32),s[3]||(s[3]=e("div",{class:"mt-8 flex items-center justify-center gap-4 text-xs text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-2 transition-colors hover:text-foreground"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})]),y(" GitHub ")]),e("span",null,"Powered by Gemini Business API")],-1))])])]))}});export{G as default}; diff --git a/static/assets/Login-CFgdu0Lu.js b/static/assets/Login-CFgdu0Lu.js new file mode 100644 index 0000000000000000000000000000000000000000..e7dc0128574266b66cc335acb18c0a04845534eb --- /dev/null +++ b/static/assets/Login-CFgdu0Lu.js @@ -0,0 +1 @@ +import{d as f,l as x,h as a,c as i,a as e,w as b,b as v,m as g,v as h,t as l,f as y,p as w,e as d}from"./index-DrM07qAY.js";const _={class:"min-h-screen px-4"},k={class:"flex min-h-screen items-center justify-center"},B={class:"w-full max-w-md rounded-[2.5rem] border border-border bg-card p-10 shadow-2xl shadow-black/10"},A={class:"space-y-2"},C=["disabled"],M={key:0,class:"rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},S=["disabled"],G=f({__name:"Login",setup(V){const u=w(),c=x(),t=a(""),o=a(""),r=a(!1);async function m(){if(t.value){o.value="",r.value=!0;try{await c.login(t.value),u.push({name:"dashboard"})}catch(n){o.value=n.message||"登录失败,请检查密钥。"}finally{r.value=!1}}}return(n,s)=>(d(),i("div",_,[e("div",k,[e("div",B,[s[2]||(s[2]=e("div",{class:"text-center"},[e("h1",{class:"text-3xl font-semibold text-foreground"},"Gemini Business 2API"),e("p",{class:"mt-2 text-sm text-muted-foreground"},"管理员登录")],-1)),e("form",{onSubmit:b(m,["prevent"]),class:"mt-8 space-y-6"},[e("div",A,[s[1]||(s[1]=e("label",{for:"password",class:"block text-sm font-medium text-foreground"}," 管理员密钥 ",-1)),g(e("input",{id:"password","onUpdate:modelValue":s[0]||(s[0]=p=>t.value=p),type:"password",required:"",class:"w-full rounded-2xl border border-input bg-background px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-all",placeholder:"请输入管理员密钥",disabled:r.value},null,8,C),[[h,t.value]])]),o.value?(d(),i("div",M,l(o.value),1)):v("",!0),e("button",{type:"submit",disabled:r.value||!t.value,class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50"},l(r.value?"登录中...":"登录"),9,S)],32),s[3]||(s[3]=e("div",{class:"mt-8 flex items-center justify-center gap-4 text-xs text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-2 transition-colors hover:text-foreground"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})]),y(" GitHub ")]),e("span",null,"Powered by Gemini Business API")],-1))])])]))}});export{G as default}; diff --git a/static/assets/Login-CmwC2sUy.js b/static/assets/Login-CmwC2sUy.js new file mode 100644 index 0000000000000000000000000000000000000000..f625004d5699bf31bafa591901d0cabcb7c1a3da --- /dev/null +++ b/static/assets/Login-CmwC2sUy.js @@ -0,0 +1 @@ +import{d as f,l as x,h as a,c as i,a as e,w as b,b as v,m as g,v as h,t as l,f as y,p as w,e as d}from"./index-Babp7OwB.js";const _={class:"min-h-screen px-4"},k={class:"flex min-h-screen items-center justify-center"},B={class:"w-full max-w-md rounded-[2.5rem] border border-border bg-card p-10 shadow-2xl shadow-black/10"},A={class:"space-y-2"},C=["disabled"],M={key:0,class:"rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},S=["disabled"],G=f({__name:"Login",setup(V){const u=w(),c=x(),t=a(""),o=a(""),r=a(!1);async function m(){if(t.value){o.value="",r.value=!0;try{await c.login(t.value),u.push({name:"dashboard"})}catch(n){o.value=n.message||"登录失败,请检查密钥。"}finally{r.value=!1}}}return(n,s)=>(d(),i("div",_,[e("div",k,[e("div",B,[s[2]||(s[2]=e("div",{class:"text-center"},[e("h1",{class:"text-3xl font-semibold text-foreground"},"Gemini Business 2API"),e("p",{class:"mt-2 text-sm text-muted-foreground"},"管理员登录")],-1)),e("form",{onSubmit:b(m,["prevent"]),class:"mt-8 space-y-6"},[e("div",A,[s[1]||(s[1]=e("label",{for:"password",class:"block text-sm font-medium text-foreground"}," 管理员密钥 ",-1)),g(e("input",{id:"password","onUpdate:modelValue":s[0]||(s[0]=p=>t.value=p),type:"password",required:"",class:"w-full rounded-2xl border border-input bg-background px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-all",placeholder:"请输入管理员密钥",disabled:r.value},null,8,C),[[h,t.value]])]),o.value?(d(),i("div",M,l(o.value),1)):v("",!0),e("button",{type:"submit",disabled:r.value||!t.value,class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50"},l(r.value?"登录中...":"登录"),9,S)],32),s[3]||(s[3]=e("div",{class:"mt-8 flex items-center justify-center gap-4 text-xs text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-2 transition-colors hover:text-foreground"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})]),y(" GitHub ")]),e("span",null,"Powered by Gemini Business API")],-1))])])]))}});export{G as default}; diff --git a/static/assets/Login-D756Ktyu.js b/static/assets/Login-D756Ktyu.js new file mode 100644 index 0000000000000000000000000000000000000000..776c4569acaf884ec3bb4b4c10c9bf7a21a89007 --- /dev/null +++ b/static/assets/Login-D756Ktyu.js @@ -0,0 +1 @@ +import{d as f,l as x,h as a,c as i,a as e,w as b,b as v,m as g,v as h,t as l,f as y,p as w,e as d}from"./index-Bh_hLcqi.js";const _={class:"min-h-screen px-4"},k={class:"flex min-h-screen items-center justify-center"},B={class:"w-full max-w-md rounded-[2.5rem] border border-border bg-card p-10 shadow-2xl shadow-black/10"},A={class:"space-y-2"},C=["disabled"],M={key:0,class:"rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},S=["disabled"],G=f({__name:"Login",setup(V){const u=w(),c=x(),t=a(""),o=a(""),r=a(!1);async function m(){if(t.value){o.value="",r.value=!0;try{await c.login(t.value),u.push({name:"dashboard"})}catch(n){o.value=n.message||"登录失败,请检查密钥。"}finally{r.value=!1}}}return(n,s)=>(d(),i("div",_,[e("div",k,[e("div",B,[s[2]||(s[2]=e("div",{class:"text-center"},[e("h1",{class:"text-3xl font-semibold text-foreground"},"Gemini Business 2API"),e("p",{class:"mt-2 text-sm text-muted-foreground"},"管理员登录")],-1)),e("form",{onSubmit:b(m,["prevent"]),class:"mt-8 space-y-6"},[e("div",A,[s[1]||(s[1]=e("label",{for:"password",class:"block text-sm font-medium text-foreground"}," 管理员密钥 ",-1)),g(e("input",{id:"password","onUpdate:modelValue":s[0]||(s[0]=p=>t.value=p),type:"password",required:"",class:"w-full rounded-2xl border border-input bg-background px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-all",placeholder:"请输入管理员密钥",disabled:r.value},null,8,C),[[h,t.value]])]),o.value?(d(),i("div",M,l(o.value),1)):v("",!0),e("button",{type:"submit",disabled:r.value||!t.value,class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50"},l(r.value?"登录中...":"登录"),9,S)],32),s[3]||(s[3]=e("div",{class:"mt-8 flex items-center justify-center gap-4 text-xs text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-2 transition-colors hover:text-foreground"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})]),y(" GitHub ")]),e("span",null,"Powered by Gemini Business API")],-1))])])]))}});export{G as default}; diff --git a/static/assets/Login-DNudytkP.js b/static/assets/Login-DNudytkP.js new file mode 100644 index 0000000000000000000000000000000000000000..194613f3592cf4a1c335c06170ffcffc0b6b06a6 --- /dev/null +++ b/static/assets/Login-DNudytkP.js @@ -0,0 +1 @@ +import{d as f,l as x,h as a,c as i,a as e,w as b,b as v,m as g,v as h,t as l,f as y,p as w,e as d}from"./index-CkXB0iyt.js";const _={class:"min-h-screen px-4"},k={class:"flex min-h-screen items-center justify-center"},B={class:"w-full max-w-md rounded-[2.5rem] border border-border bg-card p-10 shadow-2xl shadow-black/10"},A={class:"space-y-2"},C=["disabled"],M={key:0,class:"rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},S=["disabled"],G=f({__name:"Login",setup(V){const u=w(),c=x(),t=a(""),o=a(""),r=a(!1);async function m(){if(t.value){o.value="",r.value=!0;try{await c.login(t.value),u.push({name:"dashboard"})}catch(n){o.value=n.message||"登录失败,请检查密钥。"}finally{r.value=!1}}}return(n,s)=>(d(),i("div",_,[e("div",k,[e("div",B,[s[2]||(s[2]=e("div",{class:"text-center"},[e("h1",{class:"text-3xl font-semibold text-foreground"},"Gemini Business 2API"),e("p",{class:"mt-2 text-sm text-muted-foreground"},"管理员登录")],-1)),e("form",{onSubmit:b(m,["prevent"]),class:"mt-8 space-y-6"},[e("div",A,[s[1]||(s[1]=e("label",{for:"password",class:"block text-sm font-medium text-foreground"}," 管理员密钥 ",-1)),g(e("input",{id:"password","onUpdate:modelValue":s[0]||(s[0]=p=>t.value=p),type:"password",required:"",class:"w-full rounded-2xl border border-input bg-background px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-all",placeholder:"请输入管理员密钥",disabled:r.value},null,8,C),[[h,t.value]])]),o.value?(d(),i("div",M,l(o.value),1)):v("",!0),e("button",{type:"submit",disabled:r.value||!t.value,class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50"},l(r.value?"登录中...":"登录"),9,S)],32),s[3]||(s[3]=e("div",{class:"mt-8 flex items-center justify-center gap-4 text-xs text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-2 transition-colors hover:text-foreground"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})]),y(" GitHub ")]),e("span",null,"Powered by Gemini Business API")],-1))])])]))}});export{G as default}; diff --git a/static/assets/Login-DQNPAp9n.js b/static/assets/Login-DQNPAp9n.js new file mode 100644 index 0000000000000000000000000000000000000000..59bc70328e3bdb8bdbcaab0b9e59acb6784ee216 --- /dev/null +++ b/static/assets/Login-DQNPAp9n.js @@ -0,0 +1 @@ +import{d as h,l as k,h as n,c,a as e,m as C,w as f,b as m,p as x,q as M,v as A,t as b,s as v,f as o,T as D,x as _,y as B,e as u}from"./index-OP3F9IRB.js";import{_ as I}from"./Checkbox.vue_vue_type_script_setup_true_lang-aBWvRhQv.js";const V={class:"min-h-screen px-4"},G={class:"flex min-h-screen items-center justify-center"},L={class:"w-full max-w-md rounded-[2.5rem] border border-border bg-card p-10 shadow-2xl shadow-black/10"},S={class:"space-y-2"},T=["disabled"],j={key:0,class:"rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},P={class:"rounded-2xl border border-rose-200 bg-rose-50 px-4 py-3"},$=["disabled"],N={class:"relative max-h-[90vh] w-full max-w-2xl overflow-hidden rounded-3xl border border-border bg-card shadow-2xl"},z={class:"sticky top-0 z-10 flex items-center justify-between border-b border-border bg-card px-6 py-4"},E={class:"sticky bottom-0 border-t border-border bg-card px-6 py-4"},H=h({__name:"Login",setup(R){const g=B(),y=k(),r=n(""),d=n(""),l=n(!1),a=n(!1),i=n(!1);async function w(){if(!(!r.value||!i.value)){d.value="",l.value=!0;try{await y.login(r.value),g.push({name:"dashboard"})}catch(p){d.value=p.message||"登录失败,请检查密钥。"}finally{l.value=!1}}}return(p,t)=>(u(),c("div",V,[e("div",G,[e("div",L,[t[9]||(t[9]=e("div",{class:"text-center"},[e("h1",{class:"text-3xl font-semibold text-foreground"},"Gemini Business 2API"),e("p",{class:"mt-2 text-sm text-muted-foreground"},"管理员登录")],-1)),e("form",{onSubmit:f(w,["prevent"]),class:"mt-8 space-y-6"},[e("div",S,[t[6]||(t[6]=e("label",{for:"password",class:"block text-sm font-medium text-foreground"}," 管理员密钥 ",-1)),M(e("input",{id:"password","onUpdate:modelValue":t[0]||(t[0]=s=>r.value=s),type:"password",required:"",class:"w-full rounded-2xl border border-input bg-background px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-all",placeholder:"请输入管理员密钥",disabled:l.value},null,8,T),[[A,r.value]])]),d.value?(u(),c("div",j,b(d.value),1)):m("",!0),e("div",P,[t[7]||(t[7]=e("p",{class:"text-xs font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)",-1)),e("button",{type:"button",onClick:t[1]||(t[1]=s=>a.value=!0),class:"mt-2 text-xs text-primary hover:underline font-medium"}," 查看完整使用声明 → ")]),x(I,{modelValue:i.value,"onUpdate:modelValue":t[2]||(t[2]=s=>i.value=s)},{default:v(()=>[...t[8]||(t[8]=[o(" 我已阅读并同意上述说明与限制 ",-1)])]),_:1},8,["modelValue"]),e("button",{type:"submit",disabled:l.value||!r.value||!i.value,class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50"},b(l.value?"登录中...":"登录"),9,$)],32),t[10]||(t[10]=e("div",{class:"mt-8 flex items-center justify-center gap-4 text-xs text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-2 transition-colors hover:text-foreground"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})]),o(" GitHub ")]),e("span",null,"Powered by Gemini Business API")],-1))])]),(u(),C(_,{to:"body"},[x(D,{"enter-active-class":"transition-opacity duration-200","leave-active-class":"transition-opacity duration-200","enter-from-class":"opacity-0","leave-to-class":"opacity-0"},{default:v(()=>[a.value?(u(),c("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",onClick:t[5]||(t[5]=f(s=>a.value=!1,["self"]))},[e("div",N,[e("div",z,[t[12]||(t[12]=e("h2",{class:"text-lg font-semibold text-foreground"},"使用声明与免责条款",-1)),e("button",{type:"button",onClick:t[3]||(t[3]=s=>a.value=!1),class:"rounded-full p-2 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground"},[...t[11]||(t[11]=[e("svg",{class:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])]),t[13]||(t[13]=e("div",{class:"overflow-y-auto p-6",style:{"max-height":"calc(90vh - 140px)"}},[e("div",{class:"space-y-4 text-sm leading-relaxed"},[e("div",{class:"rounded-2xl border border-rose-200 bg-rose-50 px-4 py-3"},[e("p",{class:"font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)")]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"本工具严禁用于以下行为:"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,"商业用途或盈利性使用"),e("li",null,"任何形式的批量操作或自动化滥用(无论规模大小)"),e("li",null,"破坏市场秩序或恶意竞争"),e("li",null,"违反 Google 服务条款的任何行为"),e("li",null,"违反 Microsoft 服务条款的任何行为")])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"违规后果"),e("p",{class:"text-muted-foreground"},"滥用行为可能导致账号永久封禁、法律追责,一切后果由使用者自行承担。")]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"📖 合法用途"),e("p",{class:"text-muted-foreground"},"本项目仅限于以下场景:"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,"个人学习与技术研究"),e("li",null,"浏览器自动化技术探索"),e("li",null,"非商业性技术交流")])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"⚖️ 法律责任"),e("p",{class:"text-muted-foreground"},[e("strong",{class:"text-foreground"},"使用者责任:"),o("使用本工具产生的一切后果(包括但不限于账号封禁、数据损失��法律纠纷)由使用者完全承担。")]),e("p",{class:"text-muted-foreground"},[e("strong",{class:"text-foreground"},"合规义务:"),o("使用者必须遵守所在地法律法规及第三方服务条款(包括但不限于 Google Workspace、Microsoft 365 等服务条款)。")]),e("p",{class:"text-muted-foreground"},[e("strong",{class:"text-foreground"},"作者免责:"),o("作者不对任何违规使用、滥用行为或由此产生的后果承担责任。")])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"📋 技术声明"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,'本项目按"现状"提供,不提供任何形式的担保'),e("li",null,"依赖的第三方服务(如 DuckMail API、Microsoft Graph API 等)可用性不受作者控制"),e("li",null,"作者保留随时停止维护、变更功能或关闭项目的权利")])]),e("div",{class:"rounded-2xl border border-border bg-muted/30 px-4 py-3 text-center text-xs text-muted-foreground"},[o(" 完整声明请查看 "),e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api/blob/main/docs/DISCLAIMER.md",target:"_blank",class:"text-primary hover:underline font-medium"},"DISCLAIMER.md")])])],-1)),e("div",E,[e("button",{type:"button",onClick:t[4]||(t[4]=s=>a.value=!1),class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90"}," 我已知晓 ")])])])):m("",!0)]),_:1})]))]))}});export{H as default}; diff --git a/static/assets/Login-DT_xIWD8.js b/static/assets/Login-DT_xIWD8.js new file mode 100644 index 0000000000000000000000000000000000000000..ed6f58cfba48e3683ad5ef22e0bd47cc08314fa5 --- /dev/null +++ b/static/assets/Login-DT_xIWD8.js @@ -0,0 +1 @@ +import{d as h,l as w,h as n,c as p,a as e,m as k,w as m,b as f,p as M,q as _,v as C,t as x,s as A,f as s,T as D,x as G,e as c}from"./index-BYFRJmx0.js";import{_ as B}from"./Checkbox.vue_vue_type_script_setup_true_lang-BQ4FJTZi.js";const I={class:"min-h-screen px-4"},V={class:"flex min-h-screen items-center justify-center"},L={class:"w-full max-w-md rounded-[2.5rem] border border-border bg-card p-10 shadow-2xl shadow-black/10"},S={class:"space-y-2"},j=["disabled"],P={key:0,class:"rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},T=["disabled"],N={class:"relative max-h-[90vh] w-full max-w-2xl overflow-hidden rounded-3xl border border-border bg-card shadow-2xl"},$={class:"sticky top-0 z-10 flex items-center justify-between border-b border-border bg-card px-6 py-4"},z={class:"sticky bottom-0 border-t border-border bg-card px-6 py-4"},H=h({__name:"Login",setup(E){const g=G(),b=w(),r=n(""),i=n(""),l=n(!1),a=n(!1),d=n(!1);function v(u){u&&(a.value=!0)}async function y(){if(!(!r.value||!d.value)){i.value="",l.value=!0;try{await b.login(r.value),g.push({name:"dashboard"})}catch(u){i.value=u.message||"登录失败,请检查密钥。"}finally{l.value=!1}}}return(u,t)=>(c(),p("div",I,[e("div",V,[e("div",L,[t[7]||(t[7]=e("div",{class:"text-center"},[e("h1",{class:"text-3xl font-semibold text-foreground"},"Gemini Business 2API"),e("p",{class:"mt-2 text-sm text-muted-foreground"},"管理员登录")],-1)),e("form",{onSubmit:m(y,["prevent"]),class:"mt-8 space-y-6"},[e("div",S,[t[5]||(t[5]=e("label",{for:"password",class:"block text-sm font-medium text-foreground"}," 管理员密钥 ",-1)),_(e("input",{id:"password","onUpdate:modelValue":t[0]||(t[0]=o=>r.value=o),type:"password",required:"",class:"w-full rounded-2xl border border-input bg-background px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-all",placeholder:"请输入管理员密钥",disabled:l.value},null,8,j),[[C,r.value]])]),i.value?(c(),p("div",P,x(i.value),1)):f("",!0),M(B,{modelValue:d.value,"onUpdate:modelValue":[t[1]||(t[1]=o=>d.value=o),v]},{default:A(()=>[...t[6]||(t[6]=[s(" 我已阅读并同意使用声明与免责条款 ",-1)])]),_:1},8,["modelValue"]),e("button",{type:"submit",disabled:l.value||!r.value||!d.value,class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50"},x(l.value?"登录中...":"登录"),9,T)],32),t[8]||(t[8]=e("div",{class:"mt-8 flex items-center justify-center gap-4 text-xs text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-2 transition-colors hover:text-foreground"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})]),s(" GitHub ")]),e("span",null,"Powered by Gemini Business API")],-1))])]),(c(),k(D,{to:"body"},[a.value?(c(),p("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",onClick:t[4]||(t[4]=m(o=>a.value=!1,["self"]))},[e("div",N,[e("div",$,[t[10]||(t[10]=e("h2",{class:"text-lg font-semibold text-foreground"},"使用声明与免责条款",-1)),e("button",{type:"button",onClick:t[2]||(t[2]=o=>a.value=!1),class:"rounded-full p-2 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground"},[...t[9]||(t[9]=[e("svg",{class:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])]),t[11]||(t[11]=e("div",{class:"overflow-y-auto p-6",style:{"max-height":"calc(90vh - 140px)"}},[e("div",{class:"space-y-4 text-sm leading-relaxed"},[e("div",{class:"rounded-2xl border border-rose-200 bg-rose-50 px-4 py-3"},[e("p",{class:"font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)")]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"本工具严禁用于以下行为:"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,"商业用途或盈利性使用"),e("li",null,"任何形式的批量操作或自动化滥用(无论规模大小)"),e("li",null,"破坏市场秩序或恶意竞争"),e("li",null,"违反 Google 服务条款的任何行为"),e("li",null,"违反 Microsoft 服务条款的任何行为")]),e("p",{class:"mt-2 text-muted-foreground"},[e("strong",{class:"text-foreground"},"违规后果:"),s("滥用行为可能导致账号永久封禁、法律追责,一切后果由使用者自行承担。")])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"📖 合法用途"),e("p",{class:"text-muted-foreground"},"本项目仅限于以下场景:"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,"个人学习与技术研究"),e("li",null,"浏览器自动化技术探索"),e("li",null,"非商业性技术交流")])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"⚖️ 法律责任"),e("ol",{class:"list-decimal space-y-1 pl-6 text-muted-foreground"},[e("li",null,[e("strong",{class:"text-foreground"},"使用者责任:"),s("使用本工具产生的一切后果(包括但不限于账号封禁、数据损失、法律纠纷)由使用者完全承担")]),e("li",null,[e("strong",{class:"text-foreground"},"合规义务:"),s("使用者必须遵守所在地法律法规及第三方服务条款(包括但不限于 Google Workspace、Microsoft 365 等服务条款)")]),e("li",null,[e("strong",{class:"text-foreground"},"作者免责:"),s("作者不对任何违规使用、滥用行为或由此产生的后果承担责任")])])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"📋 技术声明"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,[e("strong",{class:"text-foreground"},"无担保:"),s('本项目按"现状"提供,不提供任何形式的担保')]),e("li",null,[e("strong",{class:"text-foreground"},"第三方依赖:"),s("依赖的第三方服务(如 DuckMail API、Microsoft Graph API 等)可用性不受作者控制")]),e("li",null,[e("strong",{class:"text-foreground"},"维护权利:"),s("作者保留随时停止维护、变更功能或关闭项目的权利")])])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"🔗 相关服务条款"),e("p",{class:"text-muted-foreground"},"使用本工具时,您必须同时遵守以下第三方服务的条款:"),e("ul",{class:"space-y-1 pl-6 text-muted-foreground"},[e("li",null,[s("• "),e("a",{href:"https://policies.google.com/terms",target:"_blank",class:"text-primary hover:underline"},"Google 服务条款")]),e("li",null,[s("• "),e("a",{href:"https://workspace.google.com/terms/service-terms.html",target:"_blank",class:"text-primary hover:underline"},"Google Workspace 附加条款")]),e("li",null,[s("• "),e("a",{href:"https://www.microsoft.com/servicesagreement",target:"_blank",class:"text-primary hover:underline"},"Microsoft 服务协议")]),e("li",null,[s("• "),e("a",{href:"https://www.microsoft.com/licensing/terms",target:"_blank",class:"text-primary hover:underline"},"Microsoft 365 使用条款")])])]),e("div",{class:"rounded-2xl border border-border bg-muted/30 px-4 py-3 text-center"},[e("p",{class:"text-xs text-muted-foreground mb-2"},"使用本工具即表示您已阅读、理解并同意遵守以上所有条款。"),e("p",{class:"text-xs text-muted-foreground"},[s("完整声明请查看 "),e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api/blob/main/docs/DISCLAIMER.md",target:"_blank",class:"text-primary hover:underline font-medium"},"GitHub - DISCLAIMER.md")])])])],-1)),e("div",z,[e("button",{type:"button",onClick:t[3]||(t[3]=o=>a.value=!1),class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90"}," 我已知晓 ")])])])):f("",!0)]))]))}});export{H as default}; diff --git a/static/assets/Login-DXJamC1a.js b/static/assets/Login-DXJamC1a.js new file mode 100644 index 0000000000000000000000000000000000000000..3cab782507dcb371e4ada03c9cede6cd98ca1ad5 --- /dev/null +++ b/static/assets/Login-DXJamC1a.js @@ -0,0 +1 @@ +import{d as h,l as w,h as n,c as p,a as e,m as k,w as m,b as f,p as M,q as _,v as C,t as x,s as A,f as s,T as D,x as G,e as c}from"./index-BCQxBeUo.js";import{_ as B}from"./Checkbox.vue_vue_type_script_setup_true_lang-12Ygc6BR.js";const I={class:"min-h-screen px-4"},V={class:"flex min-h-screen items-center justify-center"},L={class:"w-full max-w-md rounded-[2.5rem] border border-border bg-card p-10 shadow-2xl shadow-black/10"},S={class:"space-y-2"},j=["disabled"],P={key:0,class:"rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},T=["disabled"],N={class:"relative max-h-[90vh] w-full max-w-2xl overflow-hidden rounded-3xl border border-border bg-card shadow-2xl"},$={class:"sticky top-0 z-10 flex items-center justify-between border-b border-border bg-card px-6 py-4"},z={class:"sticky bottom-0 border-t border-border bg-card px-6 py-4"},H=h({__name:"Login",setup(E){const g=G(),b=w(),r=n(""),i=n(""),l=n(!1),a=n(!1),d=n(!1);function v(u){u&&(a.value=!0)}async function y(){if(!(!r.value||!d.value)){i.value="",l.value=!0;try{await b.login(r.value),g.push({name:"dashboard"})}catch(u){i.value=u.message||"登录失败,请检查密钥。"}finally{l.value=!1}}}return(u,t)=>(c(),p("div",I,[e("div",V,[e("div",L,[t[7]||(t[7]=e("div",{class:"text-center"},[e("h1",{class:"text-3xl font-semibold text-foreground"},"Gemini Business 2API"),e("p",{class:"mt-2 text-sm text-muted-foreground"},"管理员登录")],-1)),e("form",{onSubmit:m(y,["prevent"]),class:"mt-8 space-y-6"},[e("div",S,[t[5]||(t[5]=e("label",{for:"password",class:"block text-sm font-medium text-foreground"}," 管理员密钥 ",-1)),_(e("input",{id:"password","onUpdate:modelValue":t[0]||(t[0]=o=>r.value=o),type:"password",required:"",class:"w-full rounded-2xl border border-input bg-background px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-all",placeholder:"请输入管理员密钥",disabled:l.value},null,8,j),[[C,r.value]])]),i.value?(c(),p("div",P,x(i.value),1)):f("",!0),M(B,{modelValue:d.value,"onUpdate:modelValue":[t[1]||(t[1]=o=>d.value=o),v]},{default:A(()=>[...t[6]||(t[6]=[s(" 我已阅读并同意使用声明与免责条款 ",-1)])]),_:1},8,["modelValue"]),e("button",{type:"submit",disabled:l.value||!r.value||!d.value,class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50"},x(l.value?"登录中...":"登录"),9,T)],32),t[8]||(t[8]=e("div",{class:"mt-8 flex items-center justify-center gap-4 text-xs text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-2 transition-colors hover:text-foreground"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})]),s(" GitHub ")]),e("span",null,"Powered by Gemini Business API")],-1))])]),(c(),k(D,{to:"body"},[a.value?(c(),p("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",onClick:t[4]||(t[4]=m(o=>a.value=!1,["self"]))},[e("div",N,[e("div",$,[t[10]||(t[10]=e("h2",{class:"text-lg font-semibold text-foreground"},"使用声明与免责条款",-1)),e("button",{type:"button",onClick:t[2]||(t[2]=o=>a.value=!1),class:"rounded-full p-2 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground"},[...t[9]||(t[9]=[e("svg",{class:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])]),t[11]||(t[11]=e("div",{class:"overflow-y-auto p-6",style:{"max-height":"calc(90vh - 140px)"}},[e("div",{class:"space-y-4 text-sm leading-relaxed"},[e("div",{class:"rounded-2xl border border-rose-200 bg-rose-50 px-4 py-3"},[e("p",{class:"font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)")]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"本工具严禁用于以下行为:"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,"商业用途或盈利性使用"),e("li",null,"任何形式的批量操作或自动化滥用(无论规模大小)"),e("li",null,"破坏市场秩序或恶意竞争"),e("li",null,"违反 Google 服务条款的任何行为"),e("li",null,"违反 Microsoft 服务条款的任何行为")]),e("p",{class:"mt-2 text-muted-foreground"},[e("strong",{class:"text-foreground"},"违规后果:"),s("滥用行为可能导致账号永久封禁、法律追责,一切后果由使用者自行承担。")])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"📖 合法用途"),e("p",{class:"text-muted-foreground"},"本项目仅限于以下场景:"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,"个人学习与技术研究"),e("li",null,"浏览器自动化技术探索"),e("li",null,"非商业性技术交流")])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"⚖️ 法律责任"),e("ol",{class:"list-decimal space-y-1 pl-6 text-muted-foreground"},[e("li",null,[e("strong",{class:"text-foreground"},"使用者责任:"),s("使用本工具产生的一切后果(包括但不限于账号封禁、数据损失、法律纠纷)由使用者完全承担")]),e("li",null,[e("strong",{class:"text-foreground"},"合规义务:"),s("使用者必须遵守所在地法律法规及第三方服务条款(包括但不限于 Google Workspace、Microsoft 365 等服务条款)")]),e("li",null,[e("strong",{class:"text-foreground"},"作者免责:"),s("作者不对任何违规使用、滥用行为或由此产生的后果承担责任")])])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"📋 技术声明"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,[e("strong",{class:"text-foreground"},"无担保:"),s('本项目按"现状"提供,不提供任何形式的担保')]),e("li",null,[e("strong",{class:"text-foreground"},"第三方依赖:"),s("依赖的第三方服务(如 DuckMail API、Microsoft Graph API 等)可用性不受作者控制")]),e("li",null,[e("strong",{class:"text-foreground"},"维护权利:"),s("作者保留随时停止维护、变更功能或关闭项目的权利")])])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"🔗 相关服务条款"),e("p",{class:"text-muted-foreground"},"使用本工具时,您必须同时遵守以下第三方服务的条款:"),e("ul",{class:"space-y-1 pl-6 text-muted-foreground"},[e("li",null,[s("• "),e("a",{href:"https://policies.google.com/terms",target:"_blank",class:"text-primary hover:underline"},"Google 服务条款")]),e("li",null,[s("• "),e("a",{href:"https://workspace.google.com/terms/service-terms.html",target:"_blank",class:"text-primary hover:underline"},"Google Workspace 附加条款")]),e("li",null,[s("• "),e("a",{href:"https://www.microsoft.com/servicesagreement",target:"_blank",class:"text-primary hover:underline"},"Microsoft 服务协议")]),e("li",null,[s("• "),e("a",{href:"https://www.microsoft.com/licensing/terms",target:"_blank",class:"text-primary hover:underline"},"Microsoft 365 使用条款")])])]),e("div",{class:"rounded-2xl border border-border bg-muted/30 px-4 py-3 text-center"},[e("p",{class:"text-xs text-muted-foreground mb-2"},"使用本工具即表示您已阅读、理解并同意遵守以上所有条款。"),e("p",{class:"text-xs text-muted-foreground"},[s("完整声明请查看 "),e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api/blob/main/docs/DISCLAIMER.md",target:"_blank",class:"text-primary hover:underline font-medium"},"GitHub - DISCLAIMER.md")])])])],-1)),e("div",z,[e("button",{type:"button",onClick:t[3]||(t[3]=o=>a.value=!1),class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90"}," 我已知晓 ")])])])):f("",!0)]))]))}});export{H as default}; diff --git a/static/assets/Login-De5OO3WM.js b/static/assets/Login-De5OO3WM.js new file mode 100644 index 0000000000000000000000000000000000000000..ef89fd03d1757bca5a666fababa8be061df0e8c7 --- /dev/null +++ b/static/assets/Login-De5OO3WM.js @@ -0,0 +1 @@ +import{d as k,l as C,h as n,c as p,a as e,m as M,w as f,b as m,p as x,q as _,v as A,t as b,s as v,f as o,T as D,x as B,y as I,e as c}from"./index-B38eA7T4.js";import{_ as V}from"./Checkbox.vue_vue_type_script_setup_true_lang-mPA_O7TM.js";const G={class:"min-h-screen px-4"},L={class:"flex min-h-screen items-center justify-center"},S={class:"w-full max-w-md rounded-[2.5rem] border border-border bg-card p-10 shadow-2xl shadow-black/10"},T={class:"space-y-2"},j=["disabled"],P={key:0,class:"rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},N=["disabled"],$={class:"relative max-h-[90vh] w-full max-w-2xl overflow-hidden rounded-3xl border border-border bg-card shadow-2xl"},z={class:"sticky top-0 z-10 flex items-center justify-between border-b border-border bg-card px-6 py-4"},E={class:"sticky bottom-0 border-t border-border bg-card px-6 py-4"},H=k({__name:"Login",setup(R){const g=I(),y=C(),r=n(""),i=n(""),l=n(!1),a=n(!1),d=n(!1);function h(u){u&&(a.value=!0)}async function w(){if(!(!r.value||!d.value)){i.value="",l.value=!0;try{await y.login(r.value),g.push({name:"dashboard"})}catch(u){i.value=u.message||"登录失败,请检查密钥。"}finally{l.value=!1}}}return(u,t)=>(c(),p("div",G,[e("div",L,[e("div",S,[t[7]||(t[7]=e("div",{class:"text-center"},[e("h1",{class:"text-3xl font-semibold text-foreground"},"Gemini Business 2API"),e("p",{class:"mt-2 text-sm text-muted-foreground"},"管理员登录")],-1)),e("form",{onSubmit:f(w,["prevent"]),class:"mt-8 space-y-6"},[e("div",T,[t[5]||(t[5]=e("label",{for:"password",class:"block text-sm font-medium text-foreground"}," 管理员密钥 ",-1)),_(e("input",{id:"password","onUpdate:modelValue":t[0]||(t[0]=s=>r.value=s),type:"password",required:"",class:"w-full rounded-2xl border border-input bg-background px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-all",placeholder:"请输入管理员密钥",disabled:l.value},null,8,j),[[A,r.value]])]),i.value?(c(),p("div",P,b(i.value),1)):m("",!0),x(V,{modelValue:d.value,"onUpdate:modelValue":[t[1]||(t[1]=s=>d.value=s),h]},{default:v(()=>[...t[6]||(t[6]=[o(" 我已阅读并同意使用声明与免责条款 ",-1)])]),_:1},8,["modelValue"]),e("button",{type:"submit",disabled:l.value||!r.value||!d.value,class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50"},b(l.value?"登录中...":"登录"),9,N)],32),t[8]||(t[8]=e("div",{class:"mt-8 flex items-center justify-center gap-4 text-xs text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-2 transition-colors hover:text-foreground"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})]),o(" GitHub ")]),e("span",null,"Powered by Gemini Business API")],-1))])]),(c(),M(B,{to:"body"},[x(D,{"enter-active-class":"transition-opacity duration-200","leave-active-class":"transition-opacity duration-200","enter-from-class":"opacity-0","leave-to-class":"opacity-0"},{default:v(()=>[a.value?(c(),p("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",onClick:t[4]||(t[4]=f(s=>a.value=!1,["self"]))},[e("div",$,[e("div",z,[t[10]||(t[10]=e("h2",{class:"text-lg font-semibold text-foreground"},"使用声明与免责条款",-1)),e("button",{type:"button",onClick:t[2]||(t[2]=s=>a.value=!1),class:"rounded-full p-2 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground"},[...t[9]||(t[9]=[e("svg",{class:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])]),t[11]||(t[11]=e("div",{class:"overflow-y-auto p-6",style:{"max-height":"calc(90vh - 140px)"}},[e("div",{class:"space-y-4 text-sm leading-relaxed"},[e("div",{class:"rounded-2xl border border-rose-200 bg-rose-50 px-4 py-3"},[e("p",{class:"font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)")]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"本工具严禁用于以下行为:"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,"商业用途或盈利性使用"),e("li",null,"任何形式的批量操作或自动化滥用(无论规模大小)"),e("li",null,"破坏市场秩序或恶意竞争"),e("li",null,"违反 Google 服务条款的任何行为"),e("li",null,"违反 Microsoft 服务条款的任何行为")])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"违规后果"),e("p",{class:"text-muted-foreground"},"滥用行为可能导致账号永久封禁、法律追责,一切后果由使用者自行承担。")]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"📖 合法用途"),e("p",{class:"text-muted-foreground"},"本项目仅限于以下场景:"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,"个人学习与技术研究"),e("li",null,"浏览器自动化技术探索"),e("li",null,"非商业性技术交流")])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"⚖️ 法律责任"),e("p",{class:"text-muted-foreground"},[e("strong",{class:"text-foreground"},"使用者责任:"),o("使用本工具产生的一切后果(包括但不限于账号封禁、数据损失��法律纠纷)由使用者完全承担。")]),e("p",{class:"text-muted-foreground"},[e("strong",{class:"text-foreground"},"合规义务:"),o("使用者必须遵守所在地法律法规及第三方服务条款(包括但不限于 Google Workspace、Microsoft 365 等服务条款)。")]),e("p",{class:"text-muted-foreground"},[e("strong",{class:"text-foreground"},"作者免责:"),o("作者不对任何违规使用、滥用行为或由此产生的后果承担责任。")])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"📋 技术声明"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,'本项目按"现状"提供,不提供任何形式的担保'),e("li",null,"依赖的第三方服务(如 DuckMail API、Microsoft Graph API 等)可用性不受作者控制"),e("li",null,"作者保留随时停止维护、变更功能或关闭项目的权利")])]),e("div",{class:"rounded-2xl border border-border bg-muted/30 px-4 py-3 text-center text-xs text-muted-foreground"},[o(" 完整声明请查看 "),e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api/blob/main/docs/DISCLAIMER.md",target:"_blank",class:"text-primary hover:underline font-medium"},"DISCLAIMER.md")])])],-1)),e("div",E,[e("button",{type:"button",onClick:t[3]||(t[3]=s=>a.value=!1),class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90"}," 我已知晓 ")])])])):m("",!0)]),_:1})]))]))}});export{H as default}; diff --git a/static/assets/Login-DfTg_BXb.js b/static/assets/Login-DfTg_BXb.js new file mode 100644 index 0000000000000000000000000000000000000000..23fe01ff328b25ca4120da8812523d2f5c2b99d2 --- /dev/null +++ b/static/assets/Login-DfTg_BXb.js @@ -0,0 +1 @@ +import{d as f,l as x,h as a,c as i,a as e,w as b,b as v,m as g,v as h,t as l,f as y,p as w,e as d}from"./index-C7QtVLks.js";const _={class:"min-h-screen px-4"},k={class:"flex min-h-screen items-center justify-center"},B={class:"w-full max-w-md rounded-[2.5rem] border border-border bg-card p-10 shadow-2xl shadow-black/10"},A={class:"space-y-2"},C=["disabled"],M={key:0,class:"rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},S=["disabled"],G=f({__name:"Login",setup(V){const u=w(),c=x(),t=a(""),o=a(""),r=a(!1);async function m(){if(t.value){o.value="",r.value=!0;try{await c.login(t.value),u.push({name:"dashboard"})}catch(n){o.value=n.message||"登录失败,请检查密钥。"}finally{r.value=!1}}}return(n,s)=>(d(),i("div",_,[e("div",k,[e("div",B,[s[2]||(s[2]=e("div",{class:"text-center"},[e("h1",{class:"text-3xl font-semibold text-foreground"},"Gemini Business 2API"),e("p",{class:"mt-2 text-sm text-muted-foreground"},"管理员登录")],-1)),e("form",{onSubmit:b(m,["prevent"]),class:"mt-8 space-y-6"},[e("div",A,[s[1]||(s[1]=e("label",{for:"password",class:"block text-sm font-medium text-foreground"}," 管理员密钥 ",-1)),g(e("input",{id:"password","onUpdate:modelValue":s[0]||(s[0]=p=>t.value=p),type:"password",required:"",class:"w-full rounded-2xl border border-input bg-background px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-all",placeholder:"请输入管理员密钥",disabled:r.value},null,8,C),[[h,t.value]])]),o.value?(d(),i("div",M,l(o.value),1)):v("",!0),e("button",{type:"submit",disabled:r.value||!t.value,class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50"},l(r.value?"登录中...":"登录"),9,S)],32),s[3]||(s[3]=e("div",{class:"mt-8 flex items-center justify-center gap-4 text-xs text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-2 transition-colors hover:text-foreground"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})]),y(" GitHub ")]),e("span",null,"Powered by Gemini Business API")],-1))])])]))}});export{G as default}; diff --git a/static/assets/Login-DmfEMRA7.js b/static/assets/Login-DmfEMRA7.js new file mode 100644 index 0000000000000000000000000000000000000000..73d964fa2020ac614d81289bba999839d3fc988e --- /dev/null +++ b/static/assets/Login-DmfEMRA7.js @@ -0,0 +1 @@ +import{d as k,l as _,h as n,c as p,a as e,m as M,w as m,b as f,p as x,q as C,v as A,t as g,s as b,f as s,T as D,x as G,y as B,e as c}from"./index-JaBfp01b.js";import{_ as I}from"./Checkbox.vue_vue_type_script_setup_true_lang-B33RCL2G.js";const V={class:"min-h-screen px-4"},L={class:"flex min-h-screen items-center justify-center"},S={class:"w-full max-w-md rounded-[2.5rem] border border-border bg-card p-10 shadow-2xl shadow-black/10"},T={class:"space-y-2"},j=["disabled"],P={key:0,class:"rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},N=["disabled"],$={class:"relative max-h-[90vh] w-full max-w-2xl overflow-hidden rounded-3xl border border-border bg-card shadow-2xl"},z={class:"sticky top-0 z-10 flex items-center justify-between border-b border-border bg-card px-6 py-4"},E={class:"sticky bottom-0 border-t border-border bg-card px-6 py-4"},U=k({__name:"Login",setup(R){const v=B(),y=_(),r=n(""),i=n(""),l=n(!1),a=n(!1),d=n(!1);function h(u){u&&(a.value=!0)}async function w(){if(!(!r.value||!d.value)){i.value="",l.value=!0;try{await y.login(r.value),v.push({name:"dashboard"})}catch(u){i.value=u.message||"登录失败,请检查密钥。"}finally{l.value=!1}}}return(u,t)=>(c(),p("div",V,[e("div",L,[e("div",S,[t[7]||(t[7]=e("div",{class:"text-center"},[e("h1",{class:"text-3xl font-semibold text-foreground"},"Gemini Business 2API"),e("p",{class:"mt-2 text-sm text-muted-foreground"},"管理员登录")],-1)),e("form",{onSubmit:m(w,["prevent"]),class:"mt-8 space-y-6"},[e("div",T,[t[5]||(t[5]=e("label",{for:"password",class:"block text-sm font-medium text-foreground"}," 管理员密钥 ",-1)),C(e("input",{id:"password","onUpdate:modelValue":t[0]||(t[0]=o=>r.value=o),type:"password",required:"",class:"w-full rounded-2xl border border-input bg-background px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-all",placeholder:"请输入管理员密钥",disabled:l.value},null,8,j),[[A,r.value]])]),i.value?(c(),p("div",P,g(i.value),1)):f("",!0),x(I,{modelValue:d.value,"onUpdate:modelValue":[t[1]||(t[1]=o=>d.value=o),h]},{default:b(()=>[...t[6]||(t[6]=[s(" 我已阅读并同意使用声明与免责条款 ",-1)])]),_:1},8,["modelValue"]),e("button",{type:"submit",disabled:l.value||!r.value||!d.value,class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50"},g(l.value?"登录中...":"登录"),9,N)],32),t[8]||(t[8]=e("div",{class:"mt-8 flex items-center justify-center gap-4 text-xs text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-2 transition-colors hover:text-foreground"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})]),s(" GitHub ")]),e("span",null,"Powered by Gemini Business API")],-1))])]),(c(),M(G,{to:"body"},[x(D,{"enter-active-class":"transition-opacity duration-200","leave-active-class":"transition-opacity duration-200","enter-from-class":"opacity-0","leave-to-class":"opacity-0"},{default:b(()=>[a.value?(c(),p("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",onClick:t[4]||(t[4]=m(o=>a.value=!1,["self"]))},[e("div",$,[e("div",z,[t[10]||(t[10]=e("h2",{class:"text-lg font-semibold text-foreground"},"使用声明与免责条款",-1)),e("button",{type:"button",onClick:t[2]||(t[2]=o=>a.value=!1),class:"rounded-full p-2 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground"},[...t[9]||(t[9]=[e("svg",{class:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])]),t[11]||(t[11]=e("div",{class:"overflow-y-auto p-6",style:{"max-height":"calc(90vh - 140px)"}},[e("div",{class:"space-y-4 text-sm leading-relaxed"},[e("div",{class:"rounded-2xl border border-rose-200 bg-rose-50 px-4 py-3"},[e("p",{class:"font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)")]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"本工具严禁用于以下行为:"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,"商业用途或盈利性使用"),e("li",null,"任何形式的批量操作或自动化滥用(无论规模大小)"),e("li",null,"破坏市场秩序或恶意竞争"),e("li",null,"违反 Google 服务条款的任何行为"),e("li",null,"违反 Microsoft 服务条款的任何行为")]),e("p",{class:"mt-2 text-muted-foreground"},[e("strong",{class:"text-foreground"},"违规后果:"),s("滥用行为可能导致账号永久封禁、法律追责,一切后果由使用者自行承担。")])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"📖 合法用途"),e("p",{class:"text-muted-foreground"},"本项目仅限于以下场景:"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,"个人学习与技术研究"),e("li",null,"浏览器自动化技术探索"),e("li",null,"非商业性技术交流")])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"⚖️ 法律责任"),e("ol",{class:"list-decimal space-y-1 pl-6 text-muted-foreground"},[e("li",null,[e("strong",{class:"text-foreground"},"使用者责任:"),s("使用本工具产生的一切后果(包括但不限于账号封禁、数据损失、法律纠纷)由使用者完全承担")]),e("li",null,[e("strong",{class:"text-foreground"},"合规义务:"),s("使用者必须遵守所在地法律法规及第三方服务条款(包括但不限于 Google Workspace、Microsoft 365 等服务条款)")]),e("li",null,[e("strong",{class:"text-foreground"},"作者免责:"),s("作者不对任何违规使用、滥用行为或由此产生的后果承担责任")])])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"📋 技术声明"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,[e("strong",{class:"text-foreground"},"无担保:"),s('本项目按"现状"提供,不提供任何形式的担保')]),e("li",null,[e("strong",{class:"text-foreground"},"第三方依赖:"),s("依赖的第三方服务(如 DuckMail API、Microsoft Graph API 等)可用性不受作者控制")]),e("li",null,[e("strong",{class:"text-foreground"},"维护权利:"),s("作者保留随时停止维护、变更功能或关闭项目的权利")])])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"🔗 相关服务条款"),e("p",{class:"text-muted-foreground"},"使用本工具时,您必须同时遵守以下第三方服务的条款:"),e("ul",{class:"space-y-1 pl-6 text-muted-foreground"},[e("li",null,[s("• "),e("a",{href:"https://policies.google.com/terms",target:"_blank",class:"text-primary hover:underline"},"Google 服务条款")]),e("li",null,[s("• "),e("a",{href:"https://workspace.google.com/terms/service-terms.html",target:"_blank",class:"text-primary hover:underline"},"Google Workspace 附加条款")]),e("li",null,[s("• "),e("a",{href:"https://www.microsoft.com/servicesagreement",target:"_blank",class:"text-primary hover:underline"},"Microsoft 服务协议")]),e("li",null,[s("• "),e("a",{href:"https://www.microsoft.com/licensing/terms",target:"_blank",class:"text-primary hover:underline"},"Microsoft 365 使用条款")])])]),e("div",{class:"rounded-2xl border border-border bg-muted/30 px-4 py-3 text-center"},[e("p",{class:"text-xs text-muted-foreground mb-2"},"使用本工具即表示您已阅读、理解并同意遵守以上所有条款。"),e("p",{class:"text-xs text-muted-foreground"},[s("完整声明请查看 "),e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api/blob/main/docs/DISCLAIMER.md",target:"_blank",class:"text-primary hover:underline font-medium"},"GitHub - DISCLAIMER.md")])])])],-1)),e("div",E,[e("button",{type:"button",onClick:t[3]||(t[3]=o=>a.value=!1),class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90"}," 我已知晓 ")])])])):f("",!0)]),_:1})]))]))}});export{U as default}; diff --git a/static/assets/Login-DoUZbRfy.js b/static/assets/Login-DoUZbRfy.js new file mode 100644 index 0000000000000000000000000000000000000000..e333397fdef212ec25c742291c3e993aad740215 --- /dev/null +++ b/static/assets/Login-DoUZbRfy.js @@ -0,0 +1 @@ +import{d as f,l as x,h as a,c as i,a as e,w as b,b as v,m as g,v as h,t as l,f as y,p as w,e as d}from"./index-gD6QQiOu.js";const _={class:"min-h-screen px-4"},k={class:"flex min-h-screen items-center justify-center"},B={class:"w-full max-w-md rounded-[2.5rem] border border-border bg-card p-10 shadow-2xl shadow-black/10"},A={class:"space-y-2"},C=["disabled"],M={key:0,class:"rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},S=["disabled"],G=f({__name:"Login",setup(V){const u=w(),c=x(),t=a(""),o=a(""),r=a(!1);async function m(){if(t.value){o.value="",r.value=!0;try{await c.login(t.value),u.push({name:"dashboard"})}catch(n){o.value=n.message||"登录失败,请检查密钥。"}finally{r.value=!1}}}return(n,s)=>(d(),i("div",_,[e("div",k,[e("div",B,[s[2]||(s[2]=e("div",{class:"text-center"},[e("h1",{class:"text-3xl font-semibold text-foreground"},"Gemini Business 2API"),e("p",{class:"mt-2 text-sm text-muted-foreground"},"管理员登录")],-1)),e("form",{onSubmit:b(m,["prevent"]),class:"mt-8 space-y-6"},[e("div",A,[s[1]||(s[1]=e("label",{for:"password",class:"block text-sm font-medium text-foreground"}," 管理员密钥 ",-1)),g(e("input",{id:"password","onUpdate:modelValue":s[0]||(s[0]=p=>t.value=p),type:"password",required:"",class:"w-full rounded-2xl border border-input bg-background px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-all",placeholder:"请输入管理员密钥",disabled:r.value},null,8,C),[[h,t.value]])]),o.value?(d(),i("div",M,l(o.value),1)):v("",!0),e("button",{type:"submit",disabled:r.value||!t.value,class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50"},l(r.value?"登录中...":"登录"),9,S)],32),s[3]||(s[3]=e("div",{class:"mt-8 flex items-center justify-center gap-4 text-xs text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-2 transition-colors hover:text-foreground"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})]),y(" GitHub ")]),e("span",null,"Powered by Gemini Business API")],-1))])])]))}});export{G as default}; diff --git a/static/assets/Login-QXFnWZFu.js b/static/assets/Login-QXFnWZFu.js new file mode 100644 index 0000000000000000000000000000000000000000..6a0120cc640151a5d78cdcf59b746cef5ad3f147 --- /dev/null +++ b/static/assets/Login-QXFnWZFu.js @@ -0,0 +1 @@ +import{d as g,l as y,h as d,c as u,a as e,m as h,w as p,b as f,p as w,v as k,t as m,f as n,q as C,s as M,T as A,x as _,y as B,e as i}from"./index-DL4Fp3an.js";const D={class:"min-h-screen px-4"},I={class:"flex min-h-screen items-center justify-center"},G={class:"w-full max-w-md rounded-[2.5rem] border border-border bg-card p-10 shadow-2xl shadow-black/10"},L={class:"space-y-2"},S=["disabled"],j={key:0,class:"rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},P=["disabled"],T={class:"mt-6 rounded-2xl border border-rose-200 bg-rose-50 px-4 py-3 text-xs"},V={class:"relative max-h-[90vh] w-full max-w-2xl overflow-hidden rounded-3xl border border-border bg-card shadow-2xl"},N={class:"sticky top-0 z-10 flex items-center justify-between border-b border-border bg-card px-6 py-4"},$={class:"sticky bottom-0 border-t border-border bg-card px-6 py-4"},R=g({__name:"Login",setup(z){const x=B(),b=y(),s=d(""),a=d(""),o=d(!1),r=d(!1);async function v(){if(s.value){a.value="",o.value=!0;try{await b.login(s.value),x.push({name:"dashboard"})}catch(c){a.value=c.message||"登录失败,请检查密钥。"}finally{o.value=!1}}}return(c,t)=>(i(),u("div",D,[e("div",I,[e("div",G,[t[7]||(t[7]=e("div",{class:"text-center"},[e("h1",{class:"text-3xl font-semibold text-foreground"},"Gemini Business 2API"),e("p",{class:"mt-2 text-sm text-muted-foreground"},"管理员登录")],-1)),e("form",{onSubmit:p(v,["prevent"]),class:"mt-8 space-y-6"},[e("div",L,[t[5]||(t[5]=e("label",{for:"password",class:"block text-sm font-medium text-foreground"}," 管理员密钥 ",-1)),w(e("input",{id:"password","onUpdate:modelValue":t[0]||(t[0]=l=>s.value=l),type:"password",required:"",class:"w-full rounded-2xl border border-input bg-background px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-all",placeholder:"请输入管理员密钥",disabled:o.value},null,8,S),[[k,s.value]])]),a.value?(i(),u("div",j,m(a.value),1)):f("",!0),e("button",{type:"submit",disabled:o.value||!s.value,class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50"},m(o.value?"登录中...":"登录"),9,P)],32),e("div",T,[t[6]||(t[6]=e("p",{class:"font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)",-1)),e("button",{type:"button",onClick:t[1]||(t[1]=l=>r.value=!0),class:"mt-2 text-primary hover:underline font-medium"}," 点击查看完整使用声明 → ")]),t[8]||(t[8]=e("div",{class:"mt-8 flex items-center justify-center gap-4 text-xs text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-2 transition-colors hover:text-foreground"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})]),n(" GitHub ")]),e("span",null,"Powered by Gemini Business API")],-1))])]),(i(),h(_,{to:"body"},[C(A,{"enter-active-class":"transition-opacity duration-200","leave-active-class":"transition-opacity duration-200","enter-from-class":"opacity-0","leave-to-class":"opacity-0"},{default:M(()=>[r.value?(i(),u("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",onClick:t[4]||(t[4]=p(l=>r.value=!1,["self"]))},[e("div",V,[e("div",N,[t[10]||(t[10]=e("h2",{class:"text-lg font-semibold text-foreground"},"使用声明与免责条款",-1)),e("button",{type:"button",onClick:t[2]||(t[2]=l=>r.value=!1),class:"rounded-full p-2 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground"},[...t[9]||(t[9]=[e("svg",{class:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])]),t[11]||(t[11]=e("div",{class:"overflow-y-auto p-6",style:{"max-height":"calc(90vh - 140px)"}},[e("div",{class:"space-y-4 text-sm leading-relaxed"},[e("div",{class:"rounded-2xl border border-rose-200 bg-rose-50 px-4 py-3"},[e("p",{class:"font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)")]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"本工具严禁用于以下行为:"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,"商业用途或盈利性使用"),e("li",null,"任何形式的批量操作或自动化滥用(无论规模大小)"),e("li",null,"破坏市场秩序或恶意竞争"),e("li",null,"违反 Google 服务条款的任何行为"),e("li",null,"违反 Microsoft 服务条款的任何行为")])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"违规后果"),e("p",{class:"text-muted-foreground"},"滥用行为可能导致账号永久封禁、法律追责,一切后果由使用者自行承担。")]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"📖 合法用途"),e("p",{class:"text-muted-foreground"},"本项目仅限于以下场景:"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,"个人学习与技术研究"),e("li",null,"浏览器自动化技术探索"),e("li",null,"非商业性技术交流")])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"⚖️ 法律责任"),e("p",{class:"text-muted-foreground"},[e("strong",{class:"text-foreground"},"使用者责任:"),n("使用本工具产生的一切后果(包括但不限于账号封禁、数据损失、法律纠纷)由使用者完全承担。")]),e("p",{class:"text-muted-foreground"},[e("strong",{class:"text-foreground"},"合规义务:"),n("使用者必须遵守所在地法律法规及第三方服务条款(包括但不限于 Google Workspace、Microsoft 365 等服务条款)。")]),e("p",{class:"text-muted-foreground"},[e("strong",{class:"text-foreground"},"作者免责:"),n("作者不对任何违规使用、滥用行为或由此产生的后果承担责任。")])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"📋 技术声明"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,'本项目按"现状"提供,不提供任何形式的担保'),e("li",null,"依赖的第三方服务(如 DuckMail API、Microsoft Graph API 等)可用性不受作者控制"),e("li",null,"作者保留随时停止维护、变更功能或关闭项目的权利")])]),e("div",{class:"rounded-2xl border border-border bg-muted/30 px-4 py-3 text-center text-xs text-muted-foreground"},[n(" 完整声明请查看 "),e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api/blob/main/docs/DISCLAIMER.md",target:"_blank",class:"text-primary hover:underline font-medium"},"DISCLAIMER.md")])])],-1)),e("div",$,[e("button",{type:"button",onClick:t[3]||(t[3]=l=>r.value=!1),class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90"}," 我已知晓 ")])])])):f("",!0)]),_:1})]))]))}});export{R as default}; diff --git a/static/assets/Login-Rntqxoya.js b/static/assets/Login-Rntqxoya.js new file mode 100644 index 0000000000000000000000000000000000000000..c1f1cdd03b6aab02b26ed3f83d85ce9bdd1adba3 --- /dev/null +++ b/static/assets/Login-Rntqxoya.js @@ -0,0 +1 @@ +import{d as f,l as x,h as a,c as i,a as e,w as b,b as v,m as g,v as h,t as l,f as y,p as w,e as d}from"./index-4tSmcUDY.js";const _={class:"min-h-screen px-4"},k={class:"flex min-h-screen items-center justify-center"},B={class:"w-full max-w-md rounded-[2.5rem] border border-border bg-card p-10 shadow-2xl shadow-black/10"},A={class:"space-y-2"},C=["disabled"],M={key:0,class:"rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},S=["disabled"],G=f({__name:"Login",setup(V){const u=w(),c=x(),t=a(""),o=a(""),r=a(!1);async function m(){if(t.value){o.value="",r.value=!0;try{await c.login(t.value),u.push({name:"dashboard"})}catch(n){o.value=n.message||"登录失败,请检查密钥。"}finally{r.value=!1}}}return(n,s)=>(d(),i("div",_,[e("div",k,[e("div",B,[s[2]||(s[2]=e("div",{class:"text-center"},[e("h1",{class:"text-3xl font-semibold text-foreground"},"Gemini Business 2API"),e("p",{class:"mt-2 text-sm text-muted-foreground"},"管理员登录")],-1)),e("form",{onSubmit:b(m,["prevent"]),class:"mt-8 space-y-6"},[e("div",A,[s[1]||(s[1]=e("label",{for:"password",class:"block text-sm font-medium text-foreground"}," 管理员密钥 ",-1)),g(e("input",{id:"password","onUpdate:modelValue":s[0]||(s[0]=p=>t.value=p),type:"password",required:"",class:"w-full rounded-2xl border border-input bg-background px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-all",placeholder:"请输入管理员密钥",disabled:r.value},null,8,C),[[h,t.value]])]),o.value?(d(),i("div",M,l(o.value),1)):v("",!0),e("button",{type:"submit",disabled:r.value||!t.value,class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50"},l(r.value?"登录中...":"登录"),9,S)],32),s[3]||(s[3]=e("div",{class:"mt-8 flex items-center justify-center gap-4 text-xs text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-2 transition-colors hover:text-foreground"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})]),y(" GitHub ")]),e("span",null,"Powered by Gemini Business API")],-1))])])]))}});export{G as default}; diff --git a/static/assets/Login-dgWlrXEY.js b/static/assets/Login-dgWlrXEY.js new file mode 100644 index 0000000000000000000000000000000000000000..466c19a6b9407066190fc6ecd7091f8b8d7da162 --- /dev/null +++ b/static/assets/Login-dgWlrXEY.js @@ -0,0 +1 @@ +import{d as f,l as x,h as a,c as i,a as e,w as b,b as v,m as g,v as h,t as l,f as y,p as w,e as d}from"./index-DMWZCTlx.js";const _={class:"min-h-screen px-4"},k={class:"flex min-h-screen items-center justify-center"},B={class:"w-full max-w-md rounded-[2.5rem] border border-border bg-card p-10 shadow-2xl shadow-black/10"},A={class:"space-y-2"},C=["disabled"],M={key:0,class:"rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},S=["disabled"],G=f({__name:"Login",setup(V){const u=w(),c=x(),t=a(""),o=a(""),r=a(!1);async function m(){if(t.value){o.value="",r.value=!0;try{await c.login(t.value),u.push({name:"dashboard"})}catch(n){o.value=n.message||"登录失败,请检查密钥。"}finally{r.value=!1}}}return(n,s)=>(d(),i("div",_,[e("div",k,[e("div",B,[s[2]||(s[2]=e("div",{class:"text-center"},[e("h1",{class:"text-3xl font-semibold text-foreground"},"Gemini Business 2API"),e("p",{class:"mt-2 text-sm text-muted-foreground"},"管理员登录")],-1)),e("form",{onSubmit:b(m,["prevent"]),class:"mt-8 space-y-6"},[e("div",A,[s[1]||(s[1]=e("label",{for:"password",class:"block text-sm font-medium text-foreground"}," 管理员密钥 ",-1)),g(e("input",{id:"password","onUpdate:modelValue":s[0]||(s[0]=p=>t.value=p),type:"password",required:"",class:"w-full rounded-2xl border border-input bg-background px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-all",placeholder:"请输入管理员密钥",disabled:r.value},null,8,C),[[h,t.value]])]),o.value?(d(),i("div",M,l(o.value),1)):v("",!0),e("button",{type:"submit",disabled:r.value||!t.value,class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50"},l(r.value?"登录中...":"登录"),9,S)],32),s[3]||(s[3]=e("div",{class:"mt-8 flex items-center justify-center gap-4 text-xs text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-2 transition-colors hover:text-foreground"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})]),y(" GitHub ")]),e("span",null,"Powered by Gemini Business API")],-1))])])]))}});export{G as default}; diff --git a/static/assets/Login-dw5Ee5N0.js b/static/assets/Login-dw5Ee5N0.js new file mode 100644 index 0000000000000000000000000000000000000000..9326d9a626a5b03c283d993b3e4eb181a9b34aa2 --- /dev/null +++ b/static/assets/Login-dw5Ee5N0.js @@ -0,0 +1 @@ +import{d as h,l as w,h as n,c as p,a as e,m as k,w as m,b as f,p as M,q as _,v as C,t as x,s as A,f as s,T as D,x as G,e as c}from"./index-Bjh6Z8Zq.js";import{_ as B}from"./Checkbox.vue_vue_type_script_setup_true_lang-zogPNTWE.js";const I={class:"min-h-screen px-4"},V={class:"flex min-h-screen items-center justify-center"},L={class:"w-full max-w-md rounded-[2.5rem] border border-border bg-card p-10 shadow-2xl shadow-black/10"},S={class:"space-y-2"},j=["disabled"],P={key:0,class:"rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},T=["disabled"],N={class:"relative max-h-[90vh] w-full max-w-2xl overflow-hidden rounded-3xl border border-border bg-card shadow-2xl"},$={class:"sticky top-0 z-10 flex items-center justify-between border-b border-border bg-card px-6 py-4"},z={class:"sticky bottom-0 border-t border-border bg-card px-6 py-4"},H=h({__name:"Login",setup(E){const g=G(),b=w(),r=n(""),i=n(""),l=n(!1),a=n(!1),d=n(!1);function v(u){u&&(a.value=!0)}async function y(){if(!(!r.value||!d.value)){i.value="",l.value=!0;try{await b.login(r.value),g.push({name:"dashboard"})}catch(u){i.value=u.message||"登录失败,请检查密钥。"}finally{l.value=!1}}}return(u,t)=>(c(),p("div",I,[e("div",V,[e("div",L,[t[7]||(t[7]=e("div",{class:"text-center"},[e("h1",{class:"text-3xl font-semibold text-foreground"},"Gemini Business 2API"),e("p",{class:"mt-2 text-sm text-muted-foreground"},"管理员登录")],-1)),e("form",{onSubmit:m(y,["prevent"]),class:"mt-8 space-y-6"},[e("div",S,[t[5]||(t[5]=e("label",{for:"password",class:"block text-sm font-medium text-foreground"}," 管理员密钥 ",-1)),_(e("input",{id:"password","onUpdate:modelValue":t[0]||(t[0]=o=>r.value=o),type:"password",required:"",class:"w-full rounded-2xl border border-input bg-background px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-all",placeholder:"请输入管理员密钥",disabled:l.value},null,8,j),[[C,r.value]])]),i.value?(c(),p("div",P,x(i.value),1)):f("",!0),M(B,{modelValue:d.value,"onUpdate:modelValue":[t[1]||(t[1]=o=>d.value=o),v]},{default:A(()=>[...t[6]||(t[6]=[s(" 我已阅读并同意使用声明与免责条款 ",-1)])]),_:1},8,["modelValue"]),e("button",{type:"submit",disabled:l.value||!r.value||!d.value,class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50"},x(l.value?"登录中...":"登录"),9,T)],32),t[8]||(t[8]=e("div",{class:"mt-8 flex items-center justify-center gap-4 text-xs text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-2 transition-colors hover:text-foreground"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})]),s(" GitHub ")]),e("span",null,"Powered by Gemini Business API")],-1))])]),(c(),k(D,{to:"body"},[a.value?(c(),p("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",onClick:t[4]||(t[4]=m(o=>a.value=!1,["self"]))},[e("div",N,[e("div",$,[t[10]||(t[10]=e("h2",{class:"text-lg font-semibold text-foreground"},"使用声明与免责条款",-1)),e("button",{type:"button",onClick:t[2]||(t[2]=o=>a.value=!1),class:"rounded-full p-2 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground"},[...t[9]||(t[9]=[e("svg",{class:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])]),t[11]||(t[11]=e("div",{class:"overflow-y-auto p-6",style:{"max-height":"calc(90vh - 140px)"}},[e("div",{class:"space-y-4 text-sm leading-relaxed"},[e("div",{class:"rounded-2xl border border-rose-200 bg-rose-50 px-4 py-3"},[e("p",{class:"font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)")]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"本工具严禁用于以下行为:"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,"商业用途或盈利性使用"),e("li",null,"任何形式的批量操作或自动化滥用(无论规模大小)"),e("li",null,"破坏市场秩序或恶意竞争"),e("li",null,"违反 Google 服务条款的任何行为"),e("li",null,"违反 Microsoft 服务条款的任何行为")]),e("p",{class:"mt-2 text-muted-foreground"},[e("strong",{class:"text-foreground"},"违规后果:"),s("滥用行为可能导致账号永久封禁、法律追责,一切后果由使用者自行承担。")])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"📖 合法用途"),e("p",{class:"text-muted-foreground"},"本项目仅限于以下场景:"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,"个人学习与技术研究"),e("li",null,"浏览器自动化技术探索"),e("li",null,"非商业性技术交流")])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"⚖️ 法律责任"),e("ol",{class:"list-decimal space-y-1 pl-6 text-muted-foreground"},[e("li",null,[e("strong",{class:"text-foreground"},"使用者责任:"),s("使用本工具产生的一切后果(包括但不限于账号封禁、数据损失、法律纠纷)由使用者完全承担")]),e("li",null,[e("strong",{class:"text-foreground"},"合规义务:"),s("使用者必须遵守所在地法律法规及第三方服务条款(包括但不限于 Google Workspace、Microsoft 365 等服务条款)")]),e("li",null,[e("strong",{class:"text-foreground"},"作者免责:"),s("作者不对任何违规使用、滥用行为或由此产生的后果承担责任")])])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"📋 技术声明"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,[e("strong",{class:"text-foreground"},"无担保:"),s('本项目按"现状"提供,不提供任何形式的担保')]),e("li",null,[e("strong",{class:"text-foreground"},"第三方依赖:"),s("依赖的第三方服务(如 DuckMail API、Microsoft Graph API 等)可用性不受作者控制")]),e("li",null,[e("strong",{class:"text-foreground"},"维护权利:"),s("作者保留随时停止维护、变更功能或关闭项目的权利")])])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"🔗 相关服务条款"),e("p",{class:"text-muted-foreground"},"使用本工具时,您必须同时遵守以下第三方服务的条款:"),e("ul",{class:"space-y-1 pl-6 text-muted-foreground"},[e("li",null,[s("• "),e("a",{href:"https://policies.google.com/terms",target:"_blank",class:"text-primary hover:underline"},"Google 服务条款")]),e("li",null,[s("• "),e("a",{href:"https://workspace.google.com/terms/service-terms.html",target:"_blank",class:"text-primary hover:underline"},"Google Workspace 附加条款")]),e("li",null,[s("• "),e("a",{href:"https://www.microsoft.com/servicesagreement",target:"_blank",class:"text-primary hover:underline"},"Microsoft 服务协议")]),e("li",null,[s("• "),e("a",{href:"https://www.microsoft.com/licensing/terms",target:"_blank",class:"text-primary hover:underline"},"Microsoft 365 使用条款")])])]),e("div",{class:"rounded-2xl border border-border bg-muted/30 px-4 py-3 text-center"},[e("p",{class:"text-xs text-muted-foreground mb-2"},"使用本工具即表示您已阅读、理解并同意遵守以上所有条款。"),e("p",{class:"text-xs text-muted-foreground"},[s("完整声明请查看 "),e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api/blob/main/docs/DISCLAIMER.md",target:"_blank",class:"text-primary hover:underline font-medium"},"GitHub - DISCLAIMER.md")])])])],-1)),e("div",z,[e("button",{type:"button",onClick:t[3]||(t[3]=o=>a.value=!1),class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90"}," 我已知晓 ")])])])):f("",!0)]))]))}});export{H as default}; diff --git a/static/assets/Login-e5EchLG9.js b/static/assets/Login-e5EchLG9.js new file mode 100644 index 0000000000000000000000000000000000000000..3654cf4194ce7f752414f5651e6b96b1bffad4f5 --- /dev/null +++ b/static/assets/Login-e5EchLG9.js @@ -0,0 +1 @@ +import{d as h,l as w,h as n,c as p,a as e,m as k,w as m,b as f,p as M,q as _,v as C,t as x,s as A,f as s,T as D,x as G,e as c}from"./index-Dt-VnrHx.js";import{_ as B}from"./Checkbox.vue_vue_type_script_setup_true_lang-D6uSa7ue.js";const I={class:"min-h-screen px-4"},V={class:"flex min-h-screen items-center justify-center"},L={class:"w-full max-w-md rounded-[2.5rem] border border-border bg-card p-10 shadow-2xl shadow-black/10"},S={class:"space-y-2"},j=["disabled"],P={key:0,class:"rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},T=["disabled"],N={class:"relative max-h-[90vh] w-full max-w-2xl overflow-hidden rounded-3xl border border-border bg-card shadow-2xl"},$={class:"sticky top-0 z-10 flex items-center justify-between border-b border-border bg-card px-6 py-4"},z={class:"sticky bottom-0 border-t border-border bg-card px-6 py-4"},H=h({__name:"Login",setup(E){const g=G(),b=w(),r=n(""),i=n(""),l=n(!1),a=n(!1),d=n(!1);function v(u){u&&(a.value=!0)}async function y(){if(!(!r.value||!d.value)){i.value="",l.value=!0;try{await b.login(r.value),g.push({name:"dashboard"})}catch(u){i.value=u.message||"登录失败,请检查密钥。"}finally{l.value=!1}}}return(u,t)=>(c(),p("div",I,[e("div",V,[e("div",L,[t[7]||(t[7]=e("div",{class:"text-center"},[e("h1",{class:"text-3xl font-semibold text-foreground"},"Gemini Business 2API"),e("p",{class:"mt-2 text-sm text-muted-foreground"},"管理员登录")],-1)),e("form",{onSubmit:m(y,["prevent"]),class:"mt-8 space-y-6"},[e("div",S,[t[5]||(t[5]=e("label",{for:"password",class:"block text-sm font-medium text-foreground"}," 管理员密钥 ",-1)),_(e("input",{id:"password","onUpdate:modelValue":t[0]||(t[0]=o=>r.value=o),type:"password",required:"",class:"w-full rounded-2xl border border-input bg-background px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-all",placeholder:"请输入管理员密钥",disabled:l.value},null,8,j),[[C,r.value]])]),i.value?(c(),p("div",P,x(i.value),1)):f("",!0),M(B,{modelValue:d.value,"onUpdate:modelValue":[t[1]||(t[1]=o=>d.value=o),v]},{default:A(()=>[...t[6]||(t[6]=[s(" 我已阅读并同意使用声明与免责条款 ",-1)])]),_:1},8,["modelValue"]),e("button",{type:"submit",disabled:l.value||!r.value||!d.value,class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50"},x(l.value?"登录中...":"登录"),9,T)],32),t[8]||(t[8]=e("div",{class:"mt-8 flex items-center justify-center gap-4 text-xs text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-2 transition-colors hover:text-foreground"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})]),s(" GitHub ")]),e("span",null,"Powered by Gemini Business API")],-1))])]),(c(),k(D,{to:"body"},[a.value?(c(),p("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",onClick:t[4]||(t[4]=m(o=>a.value=!1,["self"]))},[e("div",N,[e("div",$,[t[10]||(t[10]=e("h2",{class:"text-lg font-semibold text-foreground"},"使用声明与免责条款",-1)),e("button",{type:"button",onClick:t[2]||(t[2]=o=>a.value=!1),class:"rounded-full p-2 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground"},[...t[9]||(t[9]=[e("svg",{class:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])]),t[11]||(t[11]=e("div",{class:"overflow-y-auto p-6",style:{"max-height":"calc(90vh - 140px)"}},[e("div",{class:"space-y-4 text-sm leading-relaxed"},[e("div",{class:"rounded-2xl border border-rose-200 bg-rose-50 px-4 py-3"},[e("p",{class:"font-bold text-rose-600"},"⚠️ 严禁滥用:禁止将本工具用于商业用途或任何形式的滥用(无论规模大小)")]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"本工具严禁用于以下行为:"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,"商业用途或盈利性使用"),e("li",null,"任何形式的批量操作或自动化滥用(无论规模大小)"),e("li",null,"破坏市场秩序或恶意竞争"),e("li",null,"违反 Google 服务条款的任何行为"),e("li",null,"违反 Microsoft 服务条款的任何行为")]),e("p",{class:"mt-2 text-muted-foreground"},[e("strong",{class:"text-foreground"},"违规后果:"),s("滥用行为可能导致账号永久封禁、法律追责,一切后果由使用者自行承担。")])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"📖 合法用途"),e("p",{class:"text-muted-foreground"},"本项目仅限于以下场景:"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,"个人学习与技术研究"),e("li",null,"浏览器自动化技术探索"),e("li",null,"非商业性技术交流")])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"⚖️ 法律责任"),e("ol",{class:"list-decimal space-y-1 pl-6 text-muted-foreground"},[e("li",null,[e("strong",{class:"text-foreground"},"使用者责任:"),s("使用本工具产生的一切后果(包括但不限于账号封禁、数据损失、法律纠纷)由使用者完全承担")]),e("li",null,[e("strong",{class:"text-foreground"},"合规义务:"),s("使用者必须遵守所在地法律法规及第三方服务条款(包括但不限于 Google Workspace、Microsoft 365 等服务条款)")]),e("li",null,[e("strong",{class:"text-foreground"},"作者免责:"),s("作者不对任何违规使用、滥用行为或由此产生的后果承担责任")])])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"📋 技术声明"),e("ul",{class:"list-disc space-y-1 pl-6 text-muted-foreground"},[e("li",null,[e("strong",{class:"text-foreground"},"无担保:"),s('本项目按"现状"提供,不提供任何形式的担保')]),e("li",null,[e("strong",{class:"text-foreground"},"第三方依赖:"),s("依赖的第三方服务(如 DuckMail API、Microsoft Graph API 等)可用性不受作者控制")]),e("li",null,[e("strong",{class:"text-foreground"},"维护权利:"),s("作者保留随时停止维护、变更功能或关闭项目的权利")])])]),e("div",{class:"space-y-2"},[e("p",{class:"font-semibold text-foreground"},"🔗 相关服务条款"),e("p",{class:"text-muted-foreground"},"使用本工具时,您必须同时遵守以下第三方服务的条款:"),e("ul",{class:"space-y-1 pl-6 text-muted-foreground"},[e("li",null,[s("• "),e("a",{href:"https://policies.google.com/terms",target:"_blank",class:"text-primary hover:underline"},"Google 服务条款")]),e("li",null,[s("• "),e("a",{href:"https://workspace.google.com/terms/service-terms.html",target:"_blank",class:"text-primary hover:underline"},"Google Workspace 附加条款")]),e("li",null,[s("• "),e("a",{href:"https://www.microsoft.com/servicesagreement",target:"_blank",class:"text-primary hover:underline"},"Microsoft 服务协议")]),e("li",null,[s("• "),e("a",{href:"https://www.microsoft.com/licensing/terms",target:"_blank",class:"text-primary hover:underline"},"Microsoft 365 使用条款")])])]),e("div",{class:"rounded-2xl border border-border bg-muted/30 px-4 py-3 text-center"},[e("p",{class:"text-xs text-muted-foreground mb-2"},"使用本工具即表示您已阅读、理解并同意遵守以上所有条款。"),e("p",{class:"text-xs text-muted-foreground"},[s("完整声明请查看 "),e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api/blob/main/docs/DISCLAIMER.md",target:"_blank",class:"text-primary hover:underline font-medium"},"GitHub - DISCLAIMER.md")])])])],-1)),e("div",z,[e("button",{type:"button",onClick:t[3]||(t[3]=o=>a.value=!1),class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90"}," 我已知晓 ")])])])):f("",!0)]))]))}});export{H as default}; diff --git a/static/assets/Login-elrgSqQt.js b/static/assets/Login-elrgSqQt.js new file mode 100644 index 0000000000000000000000000000000000000000..1b7a7704368300105bb521afe14ca2b261a99dc6 --- /dev/null +++ b/static/assets/Login-elrgSqQt.js @@ -0,0 +1 @@ +import{d as f,l as x,h as a,c as i,a as e,w as b,b as v,m as g,v as h,t as l,f as y,p as w,e as d}from"./index-CDbQWWUi.js";const _={class:"min-h-screen px-4"},k={class:"flex min-h-screen items-center justify-center"},B={class:"w-full max-w-md rounded-[2.5rem] border border-border bg-card p-10 shadow-2xl shadow-black/10"},A={class:"space-y-2"},C=["disabled"],M={key:0,class:"rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},S=["disabled"],G=f({__name:"Login",setup(V){const u=w(),c=x(),t=a(""),o=a(""),r=a(!1);async function m(){if(t.value){o.value="",r.value=!0;try{await c.login(t.value),u.push({name:"dashboard"})}catch(n){o.value=n.message||"登录失败,请检查密钥。"}finally{r.value=!1}}}return(n,s)=>(d(),i("div",_,[e("div",k,[e("div",B,[s[2]||(s[2]=e("div",{class:"text-center"},[e("h1",{class:"text-3xl font-semibold text-foreground"},"Gemini Business 2API"),e("p",{class:"mt-2 text-sm text-muted-foreground"},"管理员登录")],-1)),e("form",{onSubmit:b(m,["prevent"]),class:"mt-8 space-y-6"},[e("div",A,[s[1]||(s[1]=e("label",{for:"password",class:"block text-sm font-medium text-foreground"}," 管理员密钥 ",-1)),g(e("input",{id:"password","onUpdate:modelValue":s[0]||(s[0]=p=>t.value=p),type:"password",required:"",class:"w-full rounded-2xl border border-input bg-background px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-all",placeholder:"请输入管理员密钥",disabled:r.value},null,8,C),[[h,t.value]])]),o.value?(d(),i("div",M,l(o.value),1)):v("",!0),e("button",{type:"submit",disabled:r.value||!t.value,class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50"},l(r.value?"登录中...":"登录"),9,S)],32),s[3]||(s[3]=e("div",{class:"mt-8 flex items-center justify-center gap-4 text-xs text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-2 transition-colors hover:text-foreground"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})]),y(" GitHub ")]),e("span",null,"Powered by Gemini Business API")],-1))])])]))}});export{G as default}; diff --git a/static/assets/Login-hY94o6Vs.js b/static/assets/Login-hY94o6Vs.js new file mode 100644 index 0000000000000000000000000000000000000000..8c9087da70db613141efab2c1eb5e52273f36daf --- /dev/null +++ b/static/assets/Login-hY94o6Vs.js @@ -0,0 +1 @@ +import{d as f,l as x,h as a,c as i,a as e,w as b,b as v,m as g,v as h,t as l,f as y,p as w,e as d}from"./index-B0A0-QFY.js";const _={class:"min-h-screen px-4"},k={class:"flex min-h-screen items-center justify-center"},B={class:"w-full max-w-md rounded-[2.5rem] border border-border bg-card p-10 shadow-2xl shadow-black/10"},A={class:"space-y-2"},C=["disabled"],M={key:0,class:"rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},S=["disabled"],G=f({__name:"Login",setup(V){const u=w(),c=x(),t=a(""),o=a(""),r=a(!1);async function m(){if(t.value){o.value="",r.value=!0;try{await c.login(t.value),u.push({name:"dashboard"})}catch(n){o.value=n.message||"登录失败,请检查密钥。"}finally{r.value=!1}}}return(n,s)=>(d(),i("div",_,[e("div",k,[e("div",B,[s[2]||(s[2]=e("div",{class:"text-center"},[e("h1",{class:"text-3xl font-semibold text-foreground"},"Gemini Business 2API"),e("p",{class:"mt-2 text-sm text-muted-foreground"},"管理员登录")],-1)),e("form",{onSubmit:b(m,["prevent"]),class:"mt-8 space-y-6"},[e("div",A,[s[1]||(s[1]=e("label",{for:"password",class:"block text-sm font-medium text-foreground"}," 管理员密钥 ",-1)),g(e("input",{id:"password","onUpdate:modelValue":s[0]||(s[0]=p=>t.value=p),type:"password",required:"",class:"w-full rounded-2xl border border-input bg-background px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-all",placeholder:"请输入管理员密钥",disabled:r.value},null,8,C),[[h,t.value]])]),o.value?(d(),i("div",M,l(o.value),1)):v("",!0),e("button",{type:"submit",disabled:r.value||!t.value,class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50"},l(r.value?"登录中...":"登录"),9,S)],32),s[3]||(s[3]=e("div",{class:"mt-8 flex items-center justify-center gap-4 text-xs text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-2 transition-colors hover:text-foreground"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})]),y(" GitHub ")]),e("span",null,"Powered by Gemini Business API")],-1))])])]))}});export{G as default}; diff --git a/static/assets/Login-zddoPEXQ.js b/static/assets/Login-zddoPEXQ.js new file mode 100644 index 0000000000000000000000000000000000000000..35db07f7540d86501172dc31d7ec1fdd017d0202 --- /dev/null +++ b/static/assets/Login-zddoPEXQ.js @@ -0,0 +1 @@ +import{d as f,l as x,h as a,c as i,a as e,w as b,b as v,m as g,v as h,t as l,f as y,p as w,e as d}from"./index-DDWWwh2l.js";const _={class:"min-h-screen px-4"},k={class:"flex min-h-screen items-center justify-center"},B={class:"w-full max-w-md rounded-[2.5rem] border border-border bg-card p-10 shadow-2xl shadow-black/10"},A={class:"space-y-2"},C=["disabled"],M={key:0,class:"rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},S=["disabled"],G=f({__name:"Login",setup(V){const u=w(),c=x(),t=a(""),o=a(""),r=a(!1);async function m(){if(t.value){o.value="",r.value=!0;try{await c.login(t.value),u.push({name:"dashboard"})}catch(n){o.value=n.message||"登录失败,请检查密钥。"}finally{r.value=!1}}}return(n,s)=>(d(),i("div",_,[e("div",k,[e("div",B,[s[2]||(s[2]=e("div",{class:"text-center"},[e("h1",{class:"text-3xl font-semibold text-foreground"},"Gemini Business 2API"),e("p",{class:"mt-2 text-sm text-muted-foreground"},"管理员登录")],-1)),e("form",{onSubmit:b(m,["prevent"]),class:"mt-8 space-y-6"},[e("div",A,[s[1]||(s[1]=e("label",{for:"password",class:"block text-sm font-medium text-foreground"}," 管理员密钥 ",-1)),g(e("input",{id:"password","onUpdate:modelValue":s[0]||(s[0]=p=>t.value=p),type:"password",required:"",class:"w-full rounded-2xl border border-input bg-background px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-all",placeholder:"请输入管理员密钥",disabled:r.value},null,8,C),[[h,t.value]])]),o.value?(d(),i("div",M,l(o.value),1)):v("",!0),e("button",{type:"submit",disabled:r.value||!t.value,class:"w-full rounded-2xl bg-primary py-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50"},l(r.value?"登录中...":"登录"),9,S)],32),s[3]||(s[3]=e("div",{class:"mt-8 flex items-center justify-center gap-4 text-xs text-muted-foreground"},[e("a",{href:"https://github.com/Dreamy-rain/gemini-business2api",target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-2 transition-colors hover:text-foreground"},[e("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",class:"h-4 w-4",fill:"currentColor"},[e("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.217.682-.483 0-.237-.009-.868-.014-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.004.071 1.532 1.031 1.532 1.031.892 1.529 2.341 1.087 2.91.832.091-.647.349-1.087.636-1.337-2.22-.253-4.555-1.11-4.555-4.944 0-1.092.39-1.987 1.029-2.687-.103-.253-.446-1.272.098-2.65 0 0 .84-.269 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.295 2.748-1.026 2.748-1.026.546 1.378.202 2.397.1 2.65.64.7 1.028 1.595 1.028 2.687 0 3.842-2.338 4.687-4.566 4.936.359.309.678.919.678 1.852 0 1.337-.012 2.418-.012 2.747 0 .268.18.577.688.479A10.002 10.002 0 0 0 22 12c0-5.523-4.477-10-10-10z"})]),y(" GitHub ")]),e("span",null,"Powered by Gemini Business API")],-1))])])]))}});export{G as default}; diff --git a/static/assets/Logs-3JdbrGpL.js b/static/assets/Logs-3JdbrGpL.js new file mode 100644 index 0000000000000000000000000000000000000000..eaae152f8b0b00280e9d8e990b7e7ab78019efe6 --- /dev/null +++ b/static/assets/Logs-3JdbrGpL.js @@ -0,0 +1,2 @@ +import{g as K,d as Re,h as c,I as Ie,i as D,o as Ce,j as Le,c as a,a as s,p as Q,b as m,t as n,n as v,q as X,v as ee,F as h,r as w,k as R,e as d}from"./index-Dt-VnrHx.js";import{_ as ke}from"./SelectMenu.vue_vue_type_script_setup_true_lang-r1ha8_PD.js";import{_ as Oe}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-jpm-Quh6.js";const B={list:j=>K.get("/admin/log",{params:j}),clear:()=>K.delete("/admin/log?confirm=yes")},Ne={class:"rounded-3xl border border-border bg-card p-6"},Te={class:"flex flex-wrap items-center justify-between gap-3"},Ae={class:"text-xs text-muted-foreground"},Se={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-6"},$e={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ee={class:"mt-1 text-lg font-semibold text-foreground"},Me={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ge={class:"mt-1 text-lg font-semibold text-foreground"},Ue={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},qe={class:"mt-1 text-lg font-semibold text-foreground"},Ve={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Fe={class:"mt-1 text-lg font-semibold text-foreground"},De={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Be={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},je={class:"mt-1 text-lg font-semibold text-foreground"},We={class:"mt-4 flex flex-wrap items-center gap-2 sm:flex-nowrap"},He={class:"w-44 shrink-0"},ze={key:1,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Je={class:"whitespace-pre font-mono leading-relaxed"},Ye={key:0,class:"text-xs text-muted-foreground"},Pe={class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},Ze={class:"flex flex-wrap items-center gap-2"},Ke={class:"text-muted-foreground"},Qe={class:"w-full text-foreground md:w-auto md:flex-1"},Xe=["onClick"],et={class:"text-muted-foreground"},tt={key:1,class:"text-muted-foreground"},ot={key:2,class:"text-[10px] text-muted-foreground"},st={class:"text-muted-foreground"},rt={key:0,class:"space-y-2 px-4 py-3"},nt={class:"flex flex-wrap items-center gap-2"},lt={class:"text-muted-foreground"},at={class:"w-full text-foreground md:w-auto md:flex-1"},E=1e3,te=1e3,M=200,dt=3e3,mt=Re({__name:"Logs",setup(j){const oe=c([]),I=c([]),G=c({ungrouped:[],groups:[]}),x=c(null),C=c(""),p=c(""),y=c("success"),L=c(!1),f=c(!0),_=c({}),b=c(!0),k=c(null),O=c(null);let N,U=!1;const i=Ie({level:"",search:"",limit:300}),se=[{label:"全部",value:""},{label:"INFO",value:"INFO"},{label:"WARNING",value:"WARNING"},{label:"ERROR",value:"ERROR"}],re={SYSTEM:"#9e9e9e",CONFIG:"#607d8b",LOG:"#9e9e9e",AUTH:"#4caf50",SESSION:"#00bcd4",FILE:"#ff9800",CHAT:"#2196f3",API:"#8bc34a",CACHE:"#9c27b0",ACCOUNT:"#f44336",MULTI:"#673ab7"},ne={account_1:"#9c27b0",account_2:"#e91e63",account_3:"#00bcd4",account_4:"#4caf50",account_5:"#ff9800"},le=D(()=>y.value==="error"?"text-destructive":"text-muted-foreground"),W=e=>re[e]||"#757575",q=e=>ne[e]||"#757575",H=e=>{const t="rounded px-2 py-0.5 text-[10px] font-semibold";return e==="INFO"?`${t} bg-blue-100 text-blue-700`:e==="WARNING"?`${t} bg-amber-100 text-amber-700`:e==="ERROR"||e==="CRITICAL"?`${t} bg-rose-100 text-rose-700`:`${t} bg-violet-100 text-violet-700`},ae=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},de=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",ie=e=>{let t=e;const o=[];let r="";const u=/^\[([A-Za-z0-9_]+)\]/;for(;;){const l=t.match(u);if(!l)break;const g=l[1];if(t=t.slice(l[0].length).trim(),!g.startsWith("req_")){if(g.startsWith("account_")){r=g;continue}o.push(g)}}return{tags:o,accountId:r,text:t}},ue=e=>{const t=ie(e.message),o=e.message.match(/\[req_([a-z0-9]+)\]/i);return{...e,...t,reqId:o?o[1]:""}},ce=e=>{if(/^\d{4}-\d{2}-\d{2}T/.test(e))return new Date(e);if(/^\d{4}-\d{2}-\d{2}/.test(e))return new Date(e.replace(" ","T"));if(/^\d{2}:\d{2}:\d{2}$/.test(e)){const t=new Date,[o,r,u]=e.split(":").map(Number),l=new Date(t);return l.setHours(o,r,u,0),l}return null},me=e=>{const t=e[e.length-1],o=t.message;if(o.includes("响应完成")||o.includes("非流式响应完成"))return"success";if(t.level==="ERROR"||o.includes("失败"))return"error";const r=ce(t.time);return r&&(Date.now()-r.getTime())/1e3/60>5?"timeout":"in_progress"},xe=e=>{const t=new Map,o=[],r=[];e.forEach(l=>{l.reqId?(t.has(l.reqId)||(t.set(l.reqId,[]),o.push(l.reqId)),t.get(l.reqId)?.push(l)):r.push(l)});const u=o.map(l=>{const g=t.get(l)||[],$=g[0],P=$?.message.match(/\[(account_[^\]]+)\]/i),Z=$?.message.match(/收到请求: ([^ |]+)/)||$?.message.match(/Received request: ([^ |]+)/);return{id:l,logs:g,status:me(g),accountId:$?.accountId||(P?P[1]:""),model:Z?Z[1]:""}});return{ungrouped:r,groups:u}},T=D(()=>{const e=G.value.ungrouped,t=G.value.groups,o=e.length>E?e.slice(-E):e,r=t.length>E?t.slice(-E):t;return{ungrouped:o,groups:r,limited:e.length>o.length||t.length>r.length,ungroupedTotal:e.length,groupsTotal:t.length,ungroupedShowing:o.length,groupsShowing:r.length}}),pe=D(()=>{const e=I.value.length,t=e>te?e-te:0,o=I.value.slice(t),r=o.map(l=>`${l.time} | ${l.level} | ${l.message}`).join(` +`),u=o.length;return{text:r,total:e,showing:u,limited:e>u}}),V=e=>_.value[e]===!0,ge=e=>{_.value[e]=!V(e),localStorage.setItem("log-fold-state",JSON.stringify(_.value))},fe=e=>e.logs.length>M,ve=e=>e.logs.length<=M?e.logs:e.logs.slice(-M),be=()=>{(!i.limit||Number.isNaN(i.limit))&&(i.limit=300),i.limit=Math.min(Math.max(i.limit,10),1e3)},A=async()=>{if(!U){U=!0,C.value="",p.value="",be();try{const e=await B.list({limit:i.limit,level:i.level||void 0,search:i.search||void 0});oe.value=e.logs,I.value=e.logs.map(ue),G.value=xe(I.value),x.value=e.stats}catch(e){C.value=e.message||"日志加载失败"}finally{U=!1,requestAnimationFrame(J)}}},he=async()=>{p.value="",y.value="success";try{const e=await B.list({limit:1e3,level:i.level||void 0,search:i.search||void 0}),t=new Blob([JSON.stringify({exported_at:new Date().toISOString(),logs:e.logs},null,2)],{type:"application/json"}),o=URL.createObjectURL(t),r=document.createElement("a");r.href=o,r.download=`logs_${new Date().toISOString().slice(0,19).replace(/:/g,"-")}.json`,r.click(),URL.revokeObjectURL(o),p.value="导出成功"}catch(e){y.value="error",p.value=e.message||"导出失败"}},ye=async()=>{L.value=!1;try{await B.clear(),y.value="success",p.value="已清空日志",await A()}catch(e){y.value="error",p.value=e.message||"清空失败"}},S=()=>{N&&(window.clearTimeout(N),N=void 0)},z=()=>{!f.value||document.hidden||(N=window.setTimeout(async()=>{await A(),z()},dt))},F=()=>{S(),z()},_e=()=>{f.value=!f.value,f.value?F():S()},we=()=>{b.value=!b.value,requestAnimationFrame(J)},J=()=>{b.value&&k.value&&(k.value.scrollTop=k.value.scrollHeight),!b.value&&O.value&&(O.value.scrollTop=O.value.scrollHeight)},Y=()=>{document.hidden?S():f.value&&F()};return Ce(()=>{const e=localStorage.getItem("log-fold-state");if(e)try{_.value=JSON.parse(e)}catch{_.value={}}A(),F(),document.addEventListener("visibilitychange",Y)}),Le(()=>{S(),document.removeEventListener("visibilitychange",Y)}),(e,t)=>(d(),a(h,null,[s("div",Ne,[s("div",Te,[t[5]||(t[5]=s("p",{class:"text-base font-semibold text-foreground"},"管理日志",-1)),s("div",Ae," 自动刷新:"+n(f.value?"开启":"关闭"),1)]),s("div",Se,[s("div",$e,[t[6]||(t[6]=s("div",{class:"text-[11px] text-muted-foreground"},"总数",-1)),s("div",Ee,n(x.value?.memory.total??0),1)]),s("div",Me,[t[7]||(t[7]=s("div",{class:"text-[11px] text-muted-foreground"},"对话",-1)),s("div",Ge,n(x.value?.chat_count??0),1)]),s("div",Ue,[t[8]||(t[8]=s("div",{class:"text-[11px] text-muted-foreground"},"INFO",-1)),s("div",qe,n(x.value?.memory.by_level.INFO??0),1)]),s("div",Ve,[t[9]||(t[9]=s("div",{class:"text-[11px] text-muted-foreground"},"WARNING",-1)),s("div",Fe,n(x.value?.memory.by_level.WARNING??0),1)]),s("div",De,[t[10]||(t[10]=s("div",{class:"text-[11px] text-muted-foreground"},"ERROR",-1)),s("div",{class:v(["mt-1 text-lg font-semibold",x.value?.memory.by_level.ERROR?"text-rose-600":"text-foreground"])},n(x.value?.memory.by_level.ERROR??0),3)]),s("div",Be,[t[11]||(t[11]=s("div",{class:"text-[11px] text-muted-foreground"},"缓存上限",-1)),s("div",je,n(x.value?.memory.capacity??0),1)])]),s("div",We,[s("div",He,[Q(ke,{modelValue:i.level,"onUpdate:modelValue":t[0]||(t[0]=o=>i.level=o),options:se},null,8,["modelValue"])]),X(s("input",{"onUpdate:modelValue":t[1]||(t[1]=o=>i.search=o),type:"text",placeholder:"搜索...",class:"min-w-[200px] flex-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground sm:min-w-0"},null,512),[[ee,i.search,void 0,{trim:!0}]]),X(s("input",{"onUpdate:modelValue":t[2]||(t[2]=o=>i.limit=o),type:"number",min:"10",max:"1000",step:"100",class:"w-24 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground"},null,512),[[ee,i.limit,void 0,{number:!0}]]),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A}," 查询 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:he}," 导出 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:we},n(b.value?"结构化视图":"原始视图"),1),s("button",{class:v(["rounded-full px-4 py-2 text-xs font-medium transition-colors",f.value?"bg-primary text-primary-foreground":"border border-border text-muted-foreground hover:text-foreground"]),onClick:_e}," 自动刷新 ",2),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-destructive transition-colors hover:border-destructive/60",onClick:t[3]||(t[3]=o=>L.value=!0)}," 清空 ")]),p.value?(d(),a("div",{key:0,class:v(["mt-3 text-xs",le.value])},n(p.value),3)):m("",!0),C.value?(d(),a("div",ze,n(C.value),1)):m("",!0),b.value?(d(),a("div",{key:2,ref_key:"rawLogContainer",ref:k,class:"scrollbar-slim mt-4 max-h-[60vh] overflow-x-auto overflow-y-auto rounded-2xl border border-border bg-muted/30 px-4 py-3 text-[11px] text-muted-foreground"},[s("pre",Je,n(pe.value.text),1)],512)):(d(),a("div",{key:3,ref_key:"structuredLogContainer",ref:O,class:"scrollbar-slim mt-4 max-h-[60vh] space-y-3 overflow-y-auto rounded-2xl border border-border bg-card px-4 py-3"},[T.value.ungrouped.length===0&&T.value.groups.length===0?(d(),a("div",Ye," 暂无日志 ")):m("",!0),(d(!0),a(h,null,w(T.value.ungrouped,(o,r)=>(d(),a("div",{key:`u-${r}`},[s("div",Pe,[s("div",Ze,[s("span",Ke,n(o.time),1),s("span",{class:v(H(o.level))},n(o.level),3),(d(!0),a(h,null,w(o.tags,u=>(d(),a("span",{key:u,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:W(u)})},n(u),5))),128)),o.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:q(o.accountId)})},n(o.accountId),5)):m("",!0)]),s("div",Qe,n(o.text),1)])]))),128)),(d(!0),a(h,null,w(T.value.groups,o=>(d(),a("div",{key:o.id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:r=>ge(o.id)},[s("span",{class:v(ae(o.status))},n(de(o.status)),3),s("span",et,"req_"+n(o.id),1),o.accountId?(d(),a("span",{key:0,class:"text-xs font-semibold",style:R({color:q(o.accountId)})},n(o.accountId),5)):m("",!0),o.model?(d(),a("span",tt,n(o.model),1)):m("",!0),fe(o)?(d(),a("span",ot," 仅显示最近 "+n(M)+" 条 ")):m("",!0),s("span",st,n(o.logs.length)+" 条日志",1),s("span",{class:v(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!V(o.id)}])}," ▸ ",2)],8,Xe),V(o.id)?m("",!0):(d(),a("div",rt,[(d(!0),a(h,null,w(ve(o),(r,u)=>(d(),a("div",{key:`${o.id}-${u}`,class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",nt,[s("span",lt,n(r.time),1),s("span",{class:v(H(r.level))},n(r.level),3),(d(!0),a(h,null,w(r.tags,l=>(d(),a("span",{key:l,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:W(l)})},n(l),5))),128)),r.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:q(r.accountId)})},n(r.accountId),5)):m("",!0)]),s("div",at,n(r.text),1)]))),128))]))]))),128))],512))]),Q(Oe,{open:L.value,title:"确认操作",message:"确定要清空所有运行日志吗?","confirm-text":"确认","cancel-text":"取消",onConfirm:ye,onCancel:t[4]||(t[4]=o=>L.value=!1)},null,8,["open"])],64))}});export{mt as default}; diff --git a/static/assets/Logs-B618ke8W.js b/static/assets/Logs-B618ke8W.js new file mode 100644 index 0000000000000000000000000000000000000000..210ae7b45641c00219e11032a3f6bb143cf8b213 --- /dev/null +++ b/static/assets/Logs-B618ke8W.js @@ -0,0 +1,2 @@ +import{g as K,d as Re,h as c,I as Ie,i as D,o as Ce,j as Le,c as a,a as s,p as Q,b as m,t as n,n as v,q as X,v as ee,F as h,r as w,k as R,e as d}from"./index-C4edAQLF.js";import{_ as ke}from"./SelectMenu.vue_vue_type_script_setup_true_lang-Cu_3WwPc.js";import{_ as Oe}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-DW0P4Bk8.js";const B={list:j=>K.get("/admin/log",{params:j}),clear:()=>K.delete("/admin/log?confirm=yes")},Ne={class:"rounded-3xl border border-border bg-card p-6"},Te={class:"flex flex-wrap items-center justify-between gap-3"},Ae={class:"text-xs text-muted-foreground"},Se={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-6"},$e={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ee={class:"mt-1 text-lg font-semibold text-foreground"},Me={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ge={class:"mt-1 text-lg font-semibold text-foreground"},Ue={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},qe={class:"mt-1 text-lg font-semibold text-foreground"},Ve={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Fe={class:"mt-1 text-lg font-semibold text-foreground"},De={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Be={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},je={class:"mt-1 text-lg font-semibold text-foreground"},We={class:"mt-4 flex flex-wrap items-center gap-2 sm:flex-nowrap"},He={class:"w-44 shrink-0"},ze={key:1,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Je={class:"whitespace-pre font-mono leading-relaxed"},Ye={key:0,class:"text-xs text-muted-foreground"},Pe={class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},Ze={class:"flex flex-wrap items-center gap-2"},Ke={class:"text-muted-foreground"},Qe={class:"w-full text-foreground md:w-auto md:flex-1"},Xe=["onClick"],et={class:"text-muted-foreground"},tt={key:1,class:"text-muted-foreground"},ot={key:2,class:"text-[10px] text-muted-foreground"},st={class:"text-muted-foreground"},rt={key:0,class:"space-y-2 px-4 py-3"},nt={class:"flex flex-wrap items-center gap-2"},lt={class:"text-muted-foreground"},at={class:"w-full text-foreground md:w-auto md:flex-1"},E=1e3,te=1e3,M=200,dt=3e3,mt=Re({__name:"Logs",setup(j){const oe=c([]),I=c([]),G=c({ungrouped:[],groups:[]}),x=c(null),C=c(""),p=c(""),y=c("success"),L=c(!1),f=c(!0),_=c({}),b=c(!0),k=c(null),O=c(null);let N,U=!1;const i=Ie({level:"",search:"",limit:300}),se=[{label:"全部",value:""},{label:"INFO",value:"INFO"},{label:"WARNING",value:"WARNING"},{label:"ERROR",value:"ERROR"}],re={SYSTEM:"#9e9e9e",CONFIG:"#607d8b",LOG:"#9e9e9e",AUTH:"#4caf50",SESSION:"#00bcd4",FILE:"#ff9800",CHAT:"#2196f3",API:"#8bc34a",CACHE:"#9c27b0",ACCOUNT:"#f44336",MULTI:"#673ab7"},ne={account_1:"#9c27b0",account_2:"#e91e63",account_3:"#00bcd4",account_4:"#4caf50",account_5:"#ff9800"},le=D(()=>y.value==="error"?"text-destructive":"text-muted-foreground"),W=e=>re[e]||"#757575",q=e=>ne[e]||"#757575",H=e=>{const t="rounded px-2 py-0.5 text-[10px] font-semibold";return e==="INFO"?`${t} bg-blue-100 text-blue-700`:e==="WARNING"?`${t} bg-amber-100 text-amber-700`:e==="ERROR"||e==="CRITICAL"?`${t} bg-rose-100 text-rose-700`:`${t} bg-violet-100 text-violet-700`},ae=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},de=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",ie=e=>{let t=e;const o=[];let r="";const u=/^\[([A-Za-z0-9_]+)\]/;for(;;){const l=t.match(u);if(!l)break;const g=l[1];if(t=t.slice(l[0].length).trim(),!g.startsWith("req_")){if(g.startsWith("account_")){r=g;continue}o.push(g)}}return{tags:o,accountId:r,text:t}},ue=e=>{const t=ie(e.message),o=e.message.match(/\[req_([a-z0-9]+)\]/i);return{...e,...t,reqId:o?o[1]:""}},ce=e=>{if(/^\d{4}-\d{2}-\d{2}T/.test(e))return new Date(e);if(/^\d{4}-\d{2}-\d{2}/.test(e))return new Date(e.replace(" ","T"));if(/^\d{2}:\d{2}:\d{2}$/.test(e)){const t=new Date,[o,r,u]=e.split(":").map(Number),l=new Date(t);return l.setHours(o,r,u,0),l}return null},me=e=>{const t=e[e.length-1],o=t.message;if(o.includes("响应完成")||o.includes("非流式响应完成"))return"success";if(t.level==="ERROR"||o.includes("失败"))return"error";const r=ce(t.time);return r&&(Date.now()-r.getTime())/1e3/60>5?"timeout":"in_progress"},xe=e=>{const t=new Map,o=[],r=[];e.forEach(l=>{l.reqId?(t.has(l.reqId)||(t.set(l.reqId,[]),o.push(l.reqId)),t.get(l.reqId)?.push(l)):r.push(l)});const u=o.map(l=>{const g=t.get(l)||[],$=g[0],P=$?.message.match(/\[(account_[^\]]+)\]/i),Z=$?.message.match(/收到请求: ([^ |]+)/)||$?.message.match(/Received request: ([^ |]+)/);return{id:l,logs:g,status:me(g),accountId:$?.accountId||(P?P[1]:""),model:Z?Z[1]:""}});return{ungrouped:r,groups:u}},T=D(()=>{const e=G.value.ungrouped,t=G.value.groups,o=e.length>E?e.slice(-E):e,r=t.length>E?t.slice(-E):t;return{ungrouped:o,groups:r,limited:e.length>o.length||t.length>r.length,ungroupedTotal:e.length,groupsTotal:t.length,ungroupedShowing:o.length,groupsShowing:r.length}}),pe=D(()=>{const e=I.value.length,t=e>te?e-te:0,o=I.value.slice(t),r=o.map(l=>`${l.time} | ${l.level} | ${l.message}`).join(` +`),u=o.length;return{text:r,total:e,showing:u,limited:e>u}}),V=e=>_.value[e]===!0,ge=e=>{_.value[e]=!V(e),localStorage.setItem("log-fold-state",JSON.stringify(_.value))},fe=e=>e.logs.length>M,ve=e=>e.logs.length<=M?e.logs:e.logs.slice(-M),be=()=>{(!i.limit||Number.isNaN(i.limit))&&(i.limit=300),i.limit=Math.min(Math.max(i.limit,10),1e3)},A=async()=>{if(!U){U=!0,C.value="",p.value="",be();try{const e=await B.list({limit:i.limit,level:i.level||void 0,search:i.search||void 0});oe.value=e.logs,I.value=e.logs.map(ue),G.value=xe(I.value),x.value=e.stats}catch(e){C.value=e.message||"日志加载失败"}finally{U=!1,requestAnimationFrame(J)}}},he=async()=>{p.value="",y.value="success";try{const e=await B.list({limit:1e3,level:i.level||void 0,search:i.search||void 0}),t=new Blob([JSON.stringify({exported_at:new Date().toISOString(),logs:e.logs},null,2)],{type:"application/json"}),o=URL.createObjectURL(t),r=document.createElement("a");r.href=o,r.download=`logs_${new Date().toISOString().slice(0,19).replace(/:/g,"-")}.json`,r.click(),URL.revokeObjectURL(o),p.value="导出成功"}catch(e){y.value="error",p.value=e.message||"导出失败"}},ye=async()=>{L.value=!1;try{await B.clear(),y.value="success",p.value="已清空日志",await A()}catch(e){y.value="error",p.value=e.message||"清空失败"}},S=()=>{N&&(window.clearTimeout(N),N=void 0)},z=()=>{!f.value||document.hidden||(N=window.setTimeout(async()=>{await A(),z()},dt))},F=()=>{S(),z()},_e=()=>{f.value=!f.value,f.value?F():S()},we=()=>{b.value=!b.value,requestAnimationFrame(J)},J=()=>{b.value&&k.value&&(k.value.scrollTop=k.value.scrollHeight),!b.value&&O.value&&(O.value.scrollTop=O.value.scrollHeight)},Y=()=>{document.hidden?S():f.value&&F()};return Ce(()=>{const e=localStorage.getItem("log-fold-state");if(e)try{_.value=JSON.parse(e)}catch{_.value={}}A(),F(),document.addEventListener("visibilitychange",Y)}),Le(()=>{S(),document.removeEventListener("visibilitychange",Y)}),(e,t)=>(d(),a(h,null,[s("div",Ne,[s("div",Te,[t[5]||(t[5]=s("p",{class:"text-base font-semibold text-foreground"},"管理日志",-1)),s("div",Ae," 自动刷新:"+n(f.value?"开启":"关闭"),1)]),s("div",Se,[s("div",$e,[t[6]||(t[6]=s("div",{class:"text-[11px] text-muted-foreground"},"总数",-1)),s("div",Ee,n(x.value?.memory.total??0),1)]),s("div",Me,[t[7]||(t[7]=s("div",{class:"text-[11px] text-muted-foreground"},"对话",-1)),s("div",Ge,n(x.value?.chat_count??0),1)]),s("div",Ue,[t[8]||(t[8]=s("div",{class:"text-[11px] text-muted-foreground"},"INFO",-1)),s("div",qe,n(x.value?.memory.by_level.INFO??0),1)]),s("div",Ve,[t[9]||(t[9]=s("div",{class:"text-[11px] text-muted-foreground"},"WARNING",-1)),s("div",Fe,n(x.value?.memory.by_level.WARNING??0),1)]),s("div",De,[t[10]||(t[10]=s("div",{class:"text-[11px] text-muted-foreground"},"ERROR",-1)),s("div",{class:v(["mt-1 text-lg font-semibold",x.value?.memory.by_level.ERROR?"text-rose-600":"text-foreground"])},n(x.value?.memory.by_level.ERROR??0),3)]),s("div",Be,[t[11]||(t[11]=s("div",{class:"text-[11px] text-muted-foreground"},"缓存上限",-1)),s("div",je,n(x.value?.memory.capacity??0),1)])]),s("div",We,[s("div",He,[Q(ke,{modelValue:i.level,"onUpdate:modelValue":t[0]||(t[0]=o=>i.level=o),options:se},null,8,["modelValue"])]),X(s("input",{"onUpdate:modelValue":t[1]||(t[1]=o=>i.search=o),type:"text",placeholder:"搜索...",class:"min-w-[200px] flex-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground sm:min-w-0"},null,512),[[ee,i.search,void 0,{trim:!0}]]),X(s("input",{"onUpdate:modelValue":t[2]||(t[2]=o=>i.limit=o),type:"number",min:"10",max:"1000",step:"100",class:"w-24 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground"},null,512),[[ee,i.limit,void 0,{number:!0}]]),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A}," 查询 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:he}," 导出 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:we},n(b.value?"结构化视图":"原始视图"),1),s("button",{class:v(["rounded-full px-4 py-2 text-xs font-medium transition-colors",f.value?"bg-primary text-primary-foreground":"border border-border text-muted-foreground hover:text-foreground"]),onClick:_e}," 自动刷新 ",2),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-destructive transition-colors hover:border-destructive/60",onClick:t[3]||(t[3]=o=>L.value=!0)}," 清空 ")]),p.value?(d(),a("div",{key:0,class:v(["mt-3 text-xs",le.value])},n(p.value),3)):m("",!0),C.value?(d(),a("div",ze,n(C.value),1)):m("",!0),b.value?(d(),a("div",{key:2,ref_key:"rawLogContainer",ref:k,class:"scrollbar-slim mt-4 max-h-[60vh] overflow-x-auto overflow-y-auto rounded-2xl border border-border bg-muted/30 px-4 py-3 text-[11px] text-muted-foreground"},[s("pre",Je,n(pe.value.text),1)],512)):(d(),a("div",{key:3,ref_key:"structuredLogContainer",ref:O,class:"scrollbar-slim mt-4 max-h-[60vh] space-y-3 overflow-y-auto rounded-2xl border border-border bg-card px-4 py-3"},[T.value.ungrouped.length===0&&T.value.groups.length===0?(d(),a("div",Ye," 暂无日志 ")):m("",!0),(d(!0),a(h,null,w(T.value.ungrouped,(o,r)=>(d(),a("div",{key:`u-${r}`},[s("div",Pe,[s("div",Ze,[s("span",Ke,n(o.time),1),s("span",{class:v(H(o.level))},n(o.level),3),(d(!0),a(h,null,w(o.tags,u=>(d(),a("span",{key:u,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:W(u)})},n(u),5))),128)),o.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:q(o.accountId)})},n(o.accountId),5)):m("",!0)]),s("div",Qe,n(o.text),1)])]))),128)),(d(!0),a(h,null,w(T.value.groups,o=>(d(),a("div",{key:o.id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:r=>ge(o.id)},[s("span",{class:v(ae(o.status))},n(de(o.status)),3),s("span",et,"req_"+n(o.id),1),o.accountId?(d(),a("span",{key:0,class:"text-xs font-semibold",style:R({color:q(o.accountId)})},n(o.accountId),5)):m("",!0),o.model?(d(),a("span",tt,n(o.model),1)):m("",!0),fe(o)?(d(),a("span",ot," 仅显示最近 "+n(M)+" 条 ")):m("",!0),s("span",st,n(o.logs.length)+" 条日志",1),s("span",{class:v(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!V(o.id)}])}," ▸ ",2)],8,Xe),V(o.id)?m("",!0):(d(),a("div",rt,[(d(!0),a(h,null,w(ve(o),(r,u)=>(d(),a("div",{key:`${o.id}-${u}`,class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",nt,[s("span",lt,n(r.time),1),s("span",{class:v(H(r.level))},n(r.level),3),(d(!0),a(h,null,w(r.tags,l=>(d(),a("span",{key:l,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:W(l)})},n(l),5))),128)),r.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:q(r.accountId)})},n(r.accountId),5)):m("",!0)]),s("div",at,n(r.text),1)]))),128))]))]))),128))],512))]),Q(Oe,{open:L.value,title:"确认操作",message:"确定要清空所有运行日志吗?","confirm-text":"确认","cancel-text":"取消",onConfirm:ye,onCancel:t[4]||(t[4]=o=>L.value=!1)},null,8,["open"])],64))}});export{mt as default}; diff --git a/static/assets/Logs-B98yvDJ_.js b/static/assets/Logs-B98yvDJ_.js new file mode 100644 index 0000000000000000000000000000000000000000..dad13b38f0ad865e5d9f6f60a432c7744ca4290d --- /dev/null +++ b/static/assets/Logs-B98yvDJ_.js @@ -0,0 +1,2 @@ +import{g as K,d as Re,h as c,H as Ce,i as D,o as Ie,j as Le,c as a,a as s,x as Q,b as m,t as n,n as v,m as X,v as ee,F as h,r as w,k as R,e as d}from"./index-Bh_hLcqi.js";import{_ as ke}from"./SelectMenu.vue_vue_type_script_setup_true_lang-8KWxq5-G.js";import{_ as Oe}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-B-fGXmXJ.js";const B={list:j=>K.get("/admin/log",{params:j}),clear:()=>K.delete("/admin/log?confirm=yes")},Ne={class:"rounded-3xl border border-border bg-card p-6"},Te={class:"flex flex-wrap items-center justify-between gap-3"},Ae={class:"text-xs text-muted-foreground"},Se={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-6"},$e={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ee={class:"mt-1 text-lg font-semibold text-foreground"},Me={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ge={class:"mt-1 text-lg font-semibold text-foreground"},Ue={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ve={class:"mt-1 text-lg font-semibold text-foreground"},qe={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Fe={class:"mt-1 text-lg font-semibold text-foreground"},De={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Be={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},je={class:"mt-1 text-lg font-semibold text-foreground"},He={class:"mt-4 flex flex-wrap items-center gap-2 sm:flex-nowrap"},We={class:"w-44 shrink-0"},ze={key:1,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Je={class:"whitespace-pre font-mono leading-relaxed"},Ye={key:0,class:"text-xs text-muted-foreground"},Pe={class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},Ze={class:"flex flex-wrap items-center gap-2"},Ke={class:"text-muted-foreground"},Qe={class:"w-full text-foreground md:w-auto md:flex-1"},Xe=["onClick"],et={class:"text-muted-foreground"},tt={key:1,class:"text-muted-foreground"},ot={key:2,class:"text-[10px] text-muted-foreground"},st={class:"text-muted-foreground"},rt={key:0,class:"space-y-2 px-4 py-3"},nt={class:"flex flex-wrap items-center gap-2"},lt={class:"text-muted-foreground"},at={class:"w-full text-foreground md:w-auto md:flex-1"},E=1e3,te=1e3,M=200,dt=3e3,mt=Re({__name:"Logs",setup(j){const oe=c([]),C=c([]),G=c({ungrouped:[],groups:[]}),x=c(null),I=c(""),p=c(""),y=c("success"),L=c(!1),f=c(!0),_=c({}),b=c(!0),k=c(null),O=c(null);let N,U=!1;const i=Ce({level:"",search:"",limit:300}),se=[{label:"全部",value:""},{label:"INFO",value:"INFO"},{label:"WARNING",value:"WARNING"},{label:"ERROR",value:"ERROR"}],re={SYSTEM:"#9e9e9e",CONFIG:"#607d8b",LOG:"#9e9e9e",AUTH:"#4caf50",SESSION:"#00bcd4",FILE:"#ff9800",CHAT:"#2196f3",API:"#8bc34a",CACHE:"#9c27b0",ACCOUNT:"#f44336",MULTI:"#673ab7"},ne={account_1:"#9c27b0",account_2:"#e91e63",account_3:"#00bcd4",account_4:"#4caf50",account_5:"#ff9800"},le=D(()=>y.value==="error"?"text-destructive":"text-muted-foreground"),H=e=>re[e]||"#757575",V=e=>ne[e]||"#757575",W=e=>{const t="rounded px-2 py-0.5 text-[10px] font-semibold";return e==="INFO"?`${t} bg-blue-100 text-blue-700`:e==="WARNING"?`${t} bg-amber-100 text-amber-700`:e==="ERROR"||e==="CRITICAL"?`${t} bg-rose-100 text-rose-700`:`${t} bg-violet-100 text-violet-700`},ae=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},de=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",ie=e=>{let t=e;const o=[];let r="";const u=/^\[([A-Za-z0-9_]+)\]/;for(;;){const l=t.match(u);if(!l)break;const g=l[1];if(t=t.slice(l[0].length).trim(),!g.startsWith("req_")){if(g.startsWith("account_")){r=g;continue}o.push(g)}}return{tags:o,accountId:r,text:t}},ue=e=>{const t=ie(e.message),o=e.message.match(/\[req_([a-z0-9]+)\]/i);return{...e,...t,reqId:o?o[1]:""}},ce=e=>{if(/^\d{4}-\d{2}-\d{2}T/.test(e))return new Date(e);if(/^\d{4}-\d{2}-\d{2}/.test(e))return new Date(e.replace(" ","T"));if(/^\d{2}:\d{2}:\d{2}$/.test(e)){const t=new Date,[o,r,u]=e.split(":").map(Number),l=new Date(t);return l.setHours(o,r,u,0),l}return null},me=e=>{const t=e[e.length-1],o=t.message;if(o.includes("响应完成")||o.includes("非流式响应完成"))return"success";if(t.level==="ERROR"||o.includes("失败"))return"error";const r=ce(t.time);return r&&(Date.now()-r.getTime())/1e3/60>5?"timeout":"in_progress"},xe=e=>{const t=new Map,o=[],r=[];e.forEach(l=>{l.reqId?(t.has(l.reqId)||(t.set(l.reqId,[]),o.push(l.reqId)),t.get(l.reqId)?.push(l)):r.push(l)});const u=o.map(l=>{const g=t.get(l)||[],$=g[0],P=$?.message.match(/\[(account_[^\]]+)\]/i),Z=$?.message.match(/收到请求: ([^ |]+)/)||$?.message.match(/Received request: ([^ |]+)/);return{id:l,logs:g,status:me(g),accountId:$?.accountId||(P?P[1]:""),model:Z?Z[1]:""}});return{ungrouped:r,groups:u}},T=D(()=>{const e=G.value.ungrouped,t=G.value.groups,o=e.length>E?e.slice(-E):e,r=t.length>E?t.slice(-E):t;return{ungrouped:o,groups:r,limited:e.length>o.length||t.length>r.length,ungroupedTotal:e.length,groupsTotal:t.length,ungroupedShowing:o.length,groupsShowing:r.length}}),pe=D(()=>{const e=C.value.length,t=e>te?e-te:0,o=C.value.slice(t),r=o.map(l=>`${l.time} | ${l.level} | ${l.message}`).join(` +`),u=o.length;return{text:r,total:e,showing:u,limited:e>u}}),q=e=>_.value[e]===!0,ge=e=>{_.value[e]=!q(e),localStorage.setItem("log-fold-state",JSON.stringify(_.value))},fe=e=>e.logs.length>M,ve=e=>e.logs.length<=M?e.logs:e.logs.slice(-M),be=()=>{(!i.limit||Number.isNaN(i.limit))&&(i.limit=300),i.limit=Math.min(Math.max(i.limit,10),1e3)},A=async()=>{if(!U){U=!0,I.value="",p.value="",be();try{const e=await B.list({limit:i.limit,level:i.level||void 0,search:i.search||void 0});oe.value=e.logs,C.value=e.logs.map(ue),G.value=xe(C.value),x.value=e.stats}catch(e){I.value=e.message||"日志加载失败"}finally{U=!1,requestAnimationFrame(J)}}},he=async()=>{p.value="",y.value="success";try{const e=await B.list({limit:1e3,level:i.level||void 0,search:i.search||void 0}),t=new Blob([JSON.stringify({exported_at:new Date().toISOString(),logs:e.logs},null,2)],{type:"application/json"}),o=URL.createObjectURL(t),r=document.createElement("a");r.href=o,r.download=`logs_${new Date().toISOString().slice(0,19).replace(/:/g,"-")}.json`,r.click(),URL.revokeObjectURL(o),p.value="导出成功"}catch(e){y.value="error",p.value=e.message||"导出失败"}},ye=async()=>{L.value=!1;try{await B.clear(),y.value="success",p.value="已清空日志",await A()}catch(e){y.value="error",p.value=e.message||"清空失败"}},S=()=>{N&&(window.clearTimeout(N),N=void 0)},z=()=>{!f.value||document.hidden||(N=window.setTimeout(async()=>{await A(),z()},dt))},F=()=>{S(),z()},_e=()=>{f.value=!f.value,f.value?F():S()},we=()=>{b.value=!b.value,requestAnimationFrame(J)},J=()=>{b.value&&k.value&&(k.value.scrollTop=k.value.scrollHeight),!b.value&&O.value&&(O.value.scrollTop=O.value.scrollHeight)},Y=()=>{document.hidden?S():f.value&&F()};return Ie(()=>{const e=localStorage.getItem("log-fold-state");if(e)try{_.value=JSON.parse(e)}catch{_.value={}}A(),F(),document.addEventListener("visibilitychange",Y)}),Le(()=>{S(),document.removeEventListener("visibilitychange",Y)}),(e,t)=>(d(),a(h,null,[s("div",Ne,[s("div",Te,[t[5]||(t[5]=s("p",{class:"text-base font-semibold text-foreground"},"管理日志",-1)),s("div",Ae," 自动刷新:"+n(f.value?"开启":"关闭"),1)]),s("div",Se,[s("div",$e,[t[6]||(t[6]=s("div",{class:"text-[11px] text-muted-foreground"},"总数",-1)),s("div",Ee,n(x.value?.memory.total??0),1)]),s("div",Me,[t[7]||(t[7]=s("div",{class:"text-[11px] text-muted-foreground"},"对话",-1)),s("div",Ge,n(x.value?.chat_count??0),1)]),s("div",Ue,[t[8]||(t[8]=s("div",{class:"text-[11px] text-muted-foreground"},"INFO",-1)),s("div",Ve,n(x.value?.memory.by_level.INFO??0),1)]),s("div",qe,[t[9]||(t[9]=s("div",{class:"text-[11px] text-muted-foreground"},"WARNING",-1)),s("div",Fe,n(x.value?.memory.by_level.WARNING??0),1)]),s("div",De,[t[10]||(t[10]=s("div",{class:"text-[11px] text-muted-foreground"},"ERROR",-1)),s("div",{class:v(["mt-1 text-lg font-semibold",x.value?.memory.by_level.ERROR?"text-rose-600":"text-foreground"])},n(x.value?.memory.by_level.ERROR??0),3)]),s("div",Be,[t[11]||(t[11]=s("div",{class:"text-[11px] text-muted-foreground"},"缓存上限",-1)),s("div",je,n(x.value?.memory.capacity??0),1)])]),s("div",He,[s("div",We,[Q(ke,{modelValue:i.level,"onUpdate:modelValue":t[0]||(t[0]=o=>i.level=o),options:se},null,8,["modelValue"])]),X(s("input",{"onUpdate:modelValue":t[1]||(t[1]=o=>i.search=o),type:"text",placeholder:"搜索...",class:"min-w-[200px] flex-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground sm:min-w-0"},null,512),[[ee,i.search,void 0,{trim:!0}]]),X(s("input",{"onUpdate:modelValue":t[2]||(t[2]=o=>i.limit=o),type:"number",min:"10",max:"1000",step:"100",class:"w-24 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground"},null,512),[[ee,i.limit,void 0,{number:!0}]]),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A}," 查询 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:he}," 导出 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:we},n(b.value?"结构化视图":"原始视图"),1),s("button",{class:v(["rounded-full px-4 py-2 text-xs font-medium transition-colors",f.value?"bg-primary text-primary-foreground":"border border-border text-muted-foreground hover:text-foreground"]),onClick:_e}," 自动刷新 ",2),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-destructive transition-colors hover:border-destructive/60",onClick:t[3]||(t[3]=o=>L.value=!0)}," 清空 ")]),p.value?(d(),a("div",{key:0,class:v(["mt-3 text-xs",le.value])},n(p.value),3)):m("",!0),I.value?(d(),a("div",ze,n(I.value),1)):m("",!0),b.value?(d(),a("div",{key:2,ref_key:"rawLogContainer",ref:k,class:"scrollbar-slim mt-4 max-h-[60vh] overflow-x-auto overflow-y-auto rounded-2xl border border-border bg-black px-4 py-3 text-xs text-green-200"},[s("pre",Je,n(pe.value.text),1)],512)):(d(),a("div",{key:3,ref_key:"structuredLogContainer",ref:O,class:"scrollbar-slim mt-4 max-h-[60vh] space-y-3 overflow-y-auto rounded-2xl border border-border bg-card px-4 py-3"},[T.value.ungrouped.length===0&&T.value.groups.length===0?(d(),a("div",Ye," 暂无日志 ")):m("",!0),(d(!0),a(h,null,w(T.value.ungrouped,(o,r)=>(d(),a("div",{key:`u-${r}`},[s("div",Pe,[s("div",Ze,[s("span",Ke,n(o.time),1),s("span",{class:v(W(o.level))},n(o.level),3),(d(!0),a(h,null,w(o.tags,u=>(d(),a("span",{key:u,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:H(u)})},n(u),5))),128)),o.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:V(o.accountId)})},n(o.accountId),5)):m("",!0)]),s("div",Qe,n(o.text),1)])]))),128)),(d(!0),a(h,null,w(T.value.groups,o=>(d(),a("div",{key:o.id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:r=>ge(o.id)},[s("span",{class:v(ae(o.status))},n(de(o.status)),3),s("span",et,"req_"+n(o.id),1),o.accountId?(d(),a("span",{key:0,class:"text-xs font-semibold",style:R({color:V(o.accountId)})},n(o.accountId),5)):m("",!0),o.model?(d(),a("span",tt,n(o.model),1)):m("",!0),fe(o)?(d(),a("span",ot," 仅显示最近 "+n(M)+" 条 ")):m("",!0),s("span",st,n(o.logs.length)+" 条日志",1),s("span",{class:v(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!q(o.id)}])}," ▸ ",2)],8,Xe),q(o.id)?m("",!0):(d(),a("div",rt,[(d(!0),a(h,null,w(ve(o),(r,u)=>(d(),a("div",{key:`${o.id}-${u}`,class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",nt,[s("span",lt,n(r.time),1),s("span",{class:v(W(r.level))},n(r.level),3),(d(!0),a(h,null,w(r.tags,l=>(d(),a("span",{key:l,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:H(l)})},n(l),5))),128)),r.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:V(r.accountId)})},n(r.accountId),5)):m("",!0)]),s("div",at,n(r.text),1)]))),128))]))]))),128))],512))]),Q(Oe,{open:L.value,title:"确认操作",message:"确定要清空所有运行日志吗?","confirm-text":"确认","cancel-text":"取消",onConfirm:ye,onCancel:t[4]||(t[4]=o=>L.value=!1)},null,8,["open"])],64))}});export{mt as default}; diff --git a/static/assets/Logs-B9cm-Qa5.js b/static/assets/Logs-B9cm-Qa5.js new file mode 100644 index 0000000000000000000000000000000000000000..6ab3a64ca837be21ff09b725cd8c9f7e96a52696 --- /dev/null +++ b/static/assets/Logs-B9cm-Qa5.js @@ -0,0 +1,2 @@ +import{g as K,d as Re,h as c,H as Ce,i as D,o as Ie,j as Le,c as a,a as s,x as Q,b as m,t as n,n as v,m as X,v as ee,F as h,r as w,k as R,e as d}from"./index-4tSmcUDY.js";import{_ as ke}from"./SelectMenu.vue_vue_type_script_setup_true_lang-DsnNWmZF.js";import{_ as Oe}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-TmgBmCy7.js";const B={list:j=>K.get("/admin/log",{params:j}),clear:()=>K.delete("/admin/log?confirm=yes")},Ne={class:"rounded-3xl border border-border bg-card p-6"},Te={class:"flex flex-wrap items-center justify-between gap-3"},Ae={class:"text-xs text-muted-foreground"},Se={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-6"},$e={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ee={class:"mt-1 text-lg font-semibold text-foreground"},Me={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ge={class:"mt-1 text-lg font-semibold text-foreground"},Ue={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ve={class:"mt-1 text-lg font-semibold text-foreground"},qe={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Fe={class:"mt-1 text-lg font-semibold text-foreground"},De={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Be={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},je={class:"mt-1 text-lg font-semibold text-foreground"},He={class:"mt-4 flex flex-wrap items-center gap-2 sm:flex-nowrap"},We={class:"w-44 shrink-0"},ze={key:1,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Je={class:"whitespace-pre font-mono leading-relaxed"},Ye={key:0,class:"text-xs text-muted-foreground"},Pe={class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},Ze={class:"flex flex-wrap items-center gap-2"},Ke={class:"text-muted-foreground"},Qe={class:"w-full text-foreground md:w-auto md:flex-1"},Xe=["onClick"],et={class:"text-muted-foreground"},tt={key:1,class:"text-muted-foreground"},ot={key:2,class:"text-[10px] text-muted-foreground"},st={class:"text-muted-foreground"},rt={key:0,class:"space-y-2 px-4 py-3"},nt={class:"flex flex-wrap items-center gap-2"},lt={class:"text-muted-foreground"},at={class:"w-full text-foreground md:w-auto md:flex-1"},E=1e3,te=1e3,M=200,dt=3e3,mt=Re({__name:"Logs",setup(j){const oe=c([]),C=c([]),G=c({ungrouped:[],groups:[]}),x=c(null),I=c(""),p=c(""),y=c("success"),L=c(!1),f=c(!0),_=c({}),b=c(!0),k=c(null),O=c(null);let N,U=!1;const i=Ce({level:"",search:"",limit:300}),se=[{label:"全部",value:""},{label:"INFO",value:"INFO"},{label:"WARNING",value:"WARNING"},{label:"ERROR",value:"ERROR"}],re={SYSTEM:"#9e9e9e",CONFIG:"#607d8b",LOG:"#9e9e9e",AUTH:"#4caf50",SESSION:"#00bcd4",FILE:"#ff9800",CHAT:"#2196f3",API:"#8bc34a",CACHE:"#9c27b0",ACCOUNT:"#f44336",MULTI:"#673ab7"},ne={account_1:"#9c27b0",account_2:"#e91e63",account_3:"#00bcd4",account_4:"#4caf50",account_5:"#ff9800"},le=D(()=>y.value==="error"?"text-destructive":"text-muted-foreground"),H=e=>re[e]||"#757575",V=e=>ne[e]||"#757575",W=e=>{const t="rounded px-2 py-0.5 text-[10px] font-semibold";return e==="INFO"?`${t} bg-blue-100 text-blue-700`:e==="WARNING"?`${t} bg-amber-100 text-amber-700`:e==="ERROR"||e==="CRITICAL"?`${t} bg-rose-100 text-rose-700`:`${t} bg-violet-100 text-violet-700`},ae=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},de=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",ie=e=>{let t=e;const o=[];let r="";const u=/^\[([A-Za-z0-9_]+)\]/;for(;;){const l=t.match(u);if(!l)break;const g=l[1];if(t=t.slice(l[0].length).trim(),!g.startsWith("req_")){if(g.startsWith("account_")){r=g;continue}o.push(g)}}return{tags:o,accountId:r,text:t}},ue=e=>{const t=ie(e.message),o=e.message.match(/\[req_([a-z0-9]+)\]/i);return{...e,...t,reqId:o?o[1]:""}},ce=e=>{if(/^\d{4}-\d{2}-\d{2}T/.test(e))return new Date(e);if(/^\d{4}-\d{2}-\d{2}/.test(e))return new Date(e.replace(" ","T"));if(/^\d{2}:\d{2}:\d{2}$/.test(e)){const t=new Date,[o,r,u]=e.split(":").map(Number),l=new Date(t);return l.setHours(o,r,u,0),l}return null},me=e=>{const t=e[e.length-1],o=t.message;if(o.includes("响应完成")||o.includes("非流式响应完成"))return"success";if(t.level==="ERROR"||o.includes("失败"))return"error";const r=ce(t.time);return r&&(Date.now()-r.getTime())/1e3/60>5?"timeout":"in_progress"},xe=e=>{const t=new Map,o=[],r=[];e.forEach(l=>{l.reqId?(t.has(l.reqId)||(t.set(l.reqId,[]),o.push(l.reqId)),t.get(l.reqId)?.push(l)):r.push(l)});const u=o.map(l=>{const g=t.get(l)||[],$=g[0],P=$?.message.match(/\[(account_[^\]]+)\]/i),Z=$?.message.match(/收到请求: ([^ |]+)/)||$?.message.match(/Received request: ([^ |]+)/);return{id:l,logs:g,status:me(g),accountId:$?.accountId||(P?P[1]:""),model:Z?Z[1]:""}});return{ungrouped:r,groups:u}},T=D(()=>{const e=G.value.ungrouped,t=G.value.groups,o=e.length>E?e.slice(-E):e,r=t.length>E?t.slice(-E):t;return{ungrouped:o,groups:r,limited:e.length>o.length||t.length>r.length,ungroupedTotal:e.length,groupsTotal:t.length,ungroupedShowing:o.length,groupsShowing:r.length}}),pe=D(()=>{const e=C.value.length,t=e>te?e-te:0,o=C.value.slice(t),r=o.map(l=>`${l.time} | ${l.level} | ${l.message}`).join(` +`),u=o.length;return{text:r,total:e,showing:u,limited:e>u}}),q=e=>_.value[e]===!0,ge=e=>{_.value[e]=!q(e),localStorage.setItem("log-fold-state",JSON.stringify(_.value))},fe=e=>e.logs.length>M,ve=e=>e.logs.length<=M?e.logs:e.logs.slice(-M),be=()=>{(!i.limit||Number.isNaN(i.limit))&&(i.limit=300),i.limit=Math.min(Math.max(i.limit,10),1e3)},A=async()=>{if(!U){U=!0,I.value="",p.value="",be();try{const e=await B.list({limit:i.limit,level:i.level||void 0,search:i.search||void 0});oe.value=e.logs,C.value=e.logs.map(ue),G.value=xe(C.value),x.value=e.stats}catch(e){I.value=e.message||"日志加载失败"}finally{U=!1,requestAnimationFrame(J)}}},he=async()=>{p.value="",y.value="success";try{const e=await B.list({limit:1e3,level:i.level||void 0,search:i.search||void 0}),t=new Blob([JSON.stringify({exported_at:new Date().toISOString(),logs:e.logs},null,2)],{type:"application/json"}),o=URL.createObjectURL(t),r=document.createElement("a");r.href=o,r.download=`logs_${new Date().toISOString().slice(0,19).replace(/:/g,"-")}.json`,r.click(),URL.revokeObjectURL(o),p.value="导出成功"}catch(e){y.value="error",p.value=e.message||"导出失败"}},ye=async()=>{L.value=!1;try{await B.clear(),y.value="success",p.value="已清空日志",await A()}catch(e){y.value="error",p.value=e.message||"清空失败"}},S=()=>{N&&(window.clearTimeout(N),N=void 0)},z=()=>{!f.value||document.hidden||(N=window.setTimeout(async()=>{await A(),z()},dt))},F=()=>{S(),z()},_e=()=>{f.value=!f.value,f.value?F():S()},we=()=>{b.value=!b.value,requestAnimationFrame(J)},J=()=>{b.value&&k.value&&(k.value.scrollTop=k.value.scrollHeight),!b.value&&O.value&&(O.value.scrollTop=O.value.scrollHeight)},Y=()=>{document.hidden?S():f.value&&F()};return Ie(()=>{const e=localStorage.getItem("log-fold-state");if(e)try{_.value=JSON.parse(e)}catch{_.value={}}A(),F(),document.addEventListener("visibilitychange",Y)}),Le(()=>{S(),document.removeEventListener("visibilitychange",Y)}),(e,t)=>(d(),a(h,null,[s("div",Ne,[s("div",Te,[t[5]||(t[5]=s("p",{class:"text-base font-semibold text-foreground"},"管理日志",-1)),s("div",Ae," 自动刷新:"+n(f.value?"开启":"关闭"),1)]),s("div",Se,[s("div",$e,[t[6]||(t[6]=s("div",{class:"text-[11px] text-muted-foreground"},"总数",-1)),s("div",Ee,n(x.value?.memory.total??0),1)]),s("div",Me,[t[7]||(t[7]=s("div",{class:"text-[11px] text-muted-foreground"},"对话",-1)),s("div",Ge,n(x.value?.chat_count??0),1)]),s("div",Ue,[t[8]||(t[8]=s("div",{class:"text-[11px] text-muted-foreground"},"INFO",-1)),s("div",Ve,n(x.value?.memory.by_level.INFO??0),1)]),s("div",qe,[t[9]||(t[9]=s("div",{class:"text-[11px] text-muted-foreground"},"WARNING",-1)),s("div",Fe,n(x.value?.memory.by_level.WARNING??0),1)]),s("div",De,[t[10]||(t[10]=s("div",{class:"text-[11px] text-muted-foreground"},"ERROR",-1)),s("div",{class:v(["mt-1 text-lg font-semibold",x.value?.memory.by_level.ERROR?"text-rose-600":"text-foreground"])},n(x.value?.memory.by_level.ERROR??0),3)]),s("div",Be,[t[11]||(t[11]=s("div",{class:"text-[11px] text-muted-foreground"},"缓存上限",-1)),s("div",je,n(x.value?.memory.capacity??0),1)])]),s("div",He,[s("div",We,[Q(ke,{modelValue:i.level,"onUpdate:modelValue":t[0]||(t[0]=o=>i.level=o),options:se},null,8,["modelValue"])]),X(s("input",{"onUpdate:modelValue":t[1]||(t[1]=o=>i.search=o),type:"text",placeholder:"搜索...",class:"min-w-[200px] flex-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground sm:min-w-0"},null,512),[[ee,i.search,void 0,{trim:!0}]]),X(s("input",{"onUpdate:modelValue":t[2]||(t[2]=o=>i.limit=o),type:"number",min:"10",max:"1000",step:"100",class:"w-24 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground"},null,512),[[ee,i.limit,void 0,{number:!0}]]),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A}," 查询 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:he}," 导出 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:we},n(b.value?"结构化视图":"原始视图"),1),s("button",{class:v(["rounded-full px-4 py-2 text-xs font-medium transition-colors",f.value?"bg-primary text-primary-foreground":"border border-border text-muted-foreground hover:text-foreground"]),onClick:_e}," 自动刷新 ",2),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-destructive transition-colors hover:border-destructive/60",onClick:t[3]||(t[3]=o=>L.value=!0)}," 清空 ")]),p.value?(d(),a("div",{key:0,class:v(["mt-3 text-xs",le.value])},n(p.value),3)):m("",!0),I.value?(d(),a("div",ze,n(I.value),1)):m("",!0),b.value?(d(),a("div",{key:2,ref_key:"rawLogContainer",ref:k,class:"scrollbar-slim mt-4 max-h-[60vh] overflow-x-auto overflow-y-auto rounded-2xl border border-border bg-muted/30 px-4 py-3 text-[11px] text-muted-foreground"},[s("pre",Je,n(pe.value.text),1)],512)):(d(),a("div",{key:3,ref_key:"structuredLogContainer",ref:O,class:"scrollbar-slim mt-4 max-h-[60vh] space-y-3 overflow-y-auto rounded-2xl border border-border bg-card px-4 py-3"},[T.value.ungrouped.length===0&&T.value.groups.length===0?(d(),a("div",Ye," 暂无日志 ")):m("",!0),(d(!0),a(h,null,w(T.value.ungrouped,(o,r)=>(d(),a("div",{key:`u-${r}`},[s("div",Pe,[s("div",Ze,[s("span",Ke,n(o.time),1),s("span",{class:v(W(o.level))},n(o.level),3),(d(!0),a(h,null,w(o.tags,u=>(d(),a("span",{key:u,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:H(u)})},n(u),5))),128)),o.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:V(o.accountId)})},n(o.accountId),5)):m("",!0)]),s("div",Qe,n(o.text),1)])]))),128)),(d(!0),a(h,null,w(T.value.groups,o=>(d(),a("div",{key:o.id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:r=>ge(o.id)},[s("span",{class:v(ae(o.status))},n(de(o.status)),3),s("span",et,"req_"+n(o.id),1),o.accountId?(d(),a("span",{key:0,class:"text-xs font-semibold",style:R({color:V(o.accountId)})},n(o.accountId),5)):m("",!0),o.model?(d(),a("span",tt,n(o.model),1)):m("",!0),fe(o)?(d(),a("span",ot," 仅显示最近 "+n(M)+" 条 ")):m("",!0),s("span",st,n(o.logs.length)+" 条日志",1),s("span",{class:v(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!q(o.id)}])}," ▸ ",2)],8,Xe),q(o.id)?m("",!0):(d(),a("div",rt,[(d(!0),a(h,null,w(ve(o),(r,u)=>(d(),a("div",{key:`${o.id}-${u}`,class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",nt,[s("span",lt,n(r.time),1),s("span",{class:v(W(r.level))},n(r.level),3),(d(!0),a(h,null,w(r.tags,l=>(d(),a("span",{key:l,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:H(l)})},n(l),5))),128)),r.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:V(r.accountId)})},n(r.accountId),5)):m("",!0)]),s("div",at,n(r.text),1)]))),128))]))]))),128))],512))]),Q(Oe,{open:L.value,title:"确认操作",message:"确定要清空所有运行日志吗?","confirm-text":"确认","cancel-text":"取消",onConfirm:ye,onCancel:t[4]||(t[4]=o=>L.value=!1)},null,8,["open"])],64))}});export{mt as default}; diff --git a/static/assets/Logs-BDiYR69g.js b/static/assets/Logs-BDiYR69g.js new file mode 100644 index 0000000000000000000000000000000000000000..0c6e8d877002577c141fae91c1df87721f591d6e --- /dev/null +++ b/static/assets/Logs-BDiYR69g.js @@ -0,0 +1,2 @@ +import{g as K,d as Re,h as c,I as Ie,i as D,o as Ce,j as Le,c as a,a as s,q as Q,b as m,t as n,n as v,p as X,v as ee,F as h,r as w,k as R,e as d}from"./index-DL4Fp3an.js";import{_ as ke}from"./SelectMenu.vue_vue_type_script_setup_true_lang-CmVUq-Y1.js";import{_ as Oe}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-CWs1-jf0.js";const B={list:j=>K.get("/admin/log",{params:j}),clear:()=>K.delete("/admin/log?confirm=yes")},Ne={class:"rounded-3xl border border-border bg-card p-6"},Te={class:"flex flex-wrap items-center justify-between gap-3"},Ae={class:"text-xs text-muted-foreground"},Se={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-6"},$e={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ee={class:"mt-1 text-lg font-semibold text-foreground"},Me={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ge={class:"mt-1 text-lg font-semibold text-foreground"},Ue={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},qe={class:"mt-1 text-lg font-semibold text-foreground"},Ve={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Fe={class:"mt-1 text-lg font-semibold text-foreground"},De={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Be={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},je={class:"mt-1 text-lg font-semibold text-foreground"},We={class:"mt-4 flex flex-wrap items-center gap-2 sm:flex-nowrap"},He={class:"w-44 shrink-0"},ze={key:1,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Je={class:"whitespace-pre font-mono leading-relaxed"},Ye={key:0,class:"text-xs text-muted-foreground"},Pe={class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},Ze={class:"flex flex-wrap items-center gap-2"},Ke={class:"text-muted-foreground"},Qe={class:"w-full text-foreground md:w-auto md:flex-1"},Xe=["onClick"],et={class:"text-muted-foreground"},tt={key:1,class:"text-muted-foreground"},ot={key:2,class:"text-[10px] text-muted-foreground"},st={class:"text-muted-foreground"},rt={key:0,class:"space-y-2 px-4 py-3"},nt={class:"flex flex-wrap items-center gap-2"},lt={class:"text-muted-foreground"},at={class:"w-full text-foreground md:w-auto md:flex-1"},E=1e3,te=1e3,M=200,dt=3e3,mt=Re({__name:"Logs",setup(j){const oe=c([]),I=c([]),G=c({ungrouped:[],groups:[]}),x=c(null),C=c(""),p=c(""),y=c("success"),L=c(!1),f=c(!0),_=c({}),b=c(!0),k=c(null),O=c(null);let N,U=!1;const i=Ie({level:"",search:"",limit:300}),se=[{label:"全部",value:""},{label:"INFO",value:"INFO"},{label:"WARNING",value:"WARNING"},{label:"ERROR",value:"ERROR"}],re={SYSTEM:"#9e9e9e",CONFIG:"#607d8b",LOG:"#9e9e9e",AUTH:"#4caf50",SESSION:"#00bcd4",FILE:"#ff9800",CHAT:"#2196f3",API:"#8bc34a",CACHE:"#9c27b0",ACCOUNT:"#f44336",MULTI:"#673ab7"},ne={account_1:"#9c27b0",account_2:"#e91e63",account_3:"#00bcd4",account_4:"#4caf50",account_5:"#ff9800"},le=D(()=>y.value==="error"?"text-destructive":"text-muted-foreground"),W=e=>re[e]||"#757575",q=e=>ne[e]||"#757575",H=e=>{const t="rounded px-2 py-0.5 text-[10px] font-semibold";return e==="INFO"?`${t} bg-blue-100 text-blue-700`:e==="WARNING"?`${t} bg-amber-100 text-amber-700`:e==="ERROR"||e==="CRITICAL"?`${t} bg-rose-100 text-rose-700`:`${t} bg-violet-100 text-violet-700`},ae=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},de=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",ie=e=>{let t=e;const o=[];let r="";const u=/^\[([A-Za-z0-9_]+)\]/;for(;;){const l=t.match(u);if(!l)break;const g=l[1];if(t=t.slice(l[0].length).trim(),!g.startsWith("req_")){if(g.startsWith("account_")){r=g;continue}o.push(g)}}return{tags:o,accountId:r,text:t}},ue=e=>{const t=ie(e.message),o=e.message.match(/\[req_([a-z0-9]+)\]/i);return{...e,...t,reqId:o?o[1]:""}},ce=e=>{if(/^\d{4}-\d{2}-\d{2}T/.test(e))return new Date(e);if(/^\d{4}-\d{2}-\d{2}/.test(e))return new Date(e.replace(" ","T"));if(/^\d{2}:\d{2}:\d{2}$/.test(e)){const t=new Date,[o,r,u]=e.split(":").map(Number),l=new Date(t);return l.setHours(o,r,u,0),l}return null},me=e=>{const t=e[e.length-1],o=t.message;if(o.includes("响应完成")||o.includes("非流式响应完成"))return"success";if(t.level==="ERROR"||o.includes("失败"))return"error";const r=ce(t.time);return r&&(Date.now()-r.getTime())/1e3/60>5?"timeout":"in_progress"},xe=e=>{const t=new Map,o=[],r=[];e.forEach(l=>{l.reqId?(t.has(l.reqId)||(t.set(l.reqId,[]),o.push(l.reqId)),t.get(l.reqId)?.push(l)):r.push(l)});const u=o.map(l=>{const g=t.get(l)||[],$=g[0],P=$?.message.match(/\[(account_[^\]]+)\]/i),Z=$?.message.match(/收到请求: ([^ |]+)/)||$?.message.match(/Received request: ([^ |]+)/);return{id:l,logs:g,status:me(g),accountId:$?.accountId||(P?P[1]:""),model:Z?Z[1]:""}});return{ungrouped:r,groups:u}},T=D(()=>{const e=G.value.ungrouped,t=G.value.groups,o=e.length>E?e.slice(-E):e,r=t.length>E?t.slice(-E):t;return{ungrouped:o,groups:r,limited:e.length>o.length||t.length>r.length,ungroupedTotal:e.length,groupsTotal:t.length,ungroupedShowing:o.length,groupsShowing:r.length}}),pe=D(()=>{const e=I.value.length,t=e>te?e-te:0,o=I.value.slice(t),r=o.map(l=>`${l.time} | ${l.level} | ${l.message}`).join(` +`),u=o.length;return{text:r,total:e,showing:u,limited:e>u}}),V=e=>_.value[e]===!0,ge=e=>{_.value[e]=!V(e),localStorage.setItem("log-fold-state",JSON.stringify(_.value))},fe=e=>e.logs.length>M,ve=e=>e.logs.length<=M?e.logs:e.logs.slice(-M),be=()=>{(!i.limit||Number.isNaN(i.limit))&&(i.limit=300),i.limit=Math.min(Math.max(i.limit,10),1e3)},A=async()=>{if(!U){U=!0,C.value="",p.value="",be();try{const e=await B.list({limit:i.limit,level:i.level||void 0,search:i.search||void 0});oe.value=e.logs,I.value=e.logs.map(ue),G.value=xe(I.value),x.value=e.stats}catch(e){C.value=e.message||"日志加载失败"}finally{U=!1,requestAnimationFrame(J)}}},he=async()=>{p.value="",y.value="success";try{const e=await B.list({limit:1e3,level:i.level||void 0,search:i.search||void 0}),t=new Blob([JSON.stringify({exported_at:new Date().toISOString(),logs:e.logs},null,2)],{type:"application/json"}),o=URL.createObjectURL(t),r=document.createElement("a");r.href=o,r.download=`logs_${new Date().toISOString().slice(0,19).replace(/:/g,"-")}.json`,r.click(),URL.revokeObjectURL(o),p.value="导出成功"}catch(e){y.value="error",p.value=e.message||"导出失败"}},ye=async()=>{L.value=!1;try{await B.clear(),y.value="success",p.value="已清空日志",await A()}catch(e){y.value="error",p.value=e.message||"清空失败"}},S=()=>{N&&(window.clearTimeout(N),N=void 0)},z=()=>{!f.value||document.hidden||(N=window.setTimeout(async()=>{await A(),z()},dt))},F=()=>{S(),z()},_e=()=>{f.value=!f.value,f.value?F():S()},we=()=>{b.value=!b.value,requestAnimationFrame(J)},J=()=>{b.value&&k.value&&(k.value.scrollTop=k.value.scrollHeight),!b.value&&O.value&&(O.value.scrollTop=O.value.scrollHeight)},Y=()=>{document.hidden?S():f.value&&F()};return Ce(()=>{const e=localStorage.getItem("log-fold-state");if(e)try{_.value=JSON.parse(e)}catch{_.value={}}A(),F(),document.addEventListener("visibilitychange",Y)}),Le(()=>{S(),document.removeEventListener("visibilitychange",Y)}),(e,t)=>(d(),a(h,null,[s("div",Ne,[s("div",Te,[t[5]||(t[5]=s("p",{class:"text-base font-semibold text-foreground"},"管理日志",-1)),s("div",Ae," 自动刷新:"+n(f.value?"开启":"关闭"),1)]),s("div",Se,[s("div",$e,[t[6]||(t[6]=s("div",{class:"text-[11px] text-muted-foreground"},"总数",-1)),s("div",Ee,n(x.value?.memory.total??0),1)]),s("div",Me,[t[7]||(t[7]=s("div",{class:"text-[11px] text-muted-foreground"},"对话",-1)),s("div",Ge,n(x.value?.chat_count??0),1)]),s("div",Ue,[t[8]||(t[8]=s("div",{class:"text-[11px] text-muted-foreground"},"INFO",-1)),s("div",qe,n(x.value?.memory.by_level.INFO??0),1)]),s("div",Ve,[t[9]||(t[9]=s("div",{class:"text-[11px] text-muted-foreground"},"WARNING",-1)),s("div",Fe,n(x.value?.memory.by_level.WARNING??0),1)]),s("div",De,[t[10]||(t[10]=s("div",{class:"text-[11px] text-muted-foreground"},"ERROR",-1)),s("div",{class:v(["mt-1 text-lg font-semibold",x.value?.memory.by_level.ERROR?"text-rose-600":"text-foreground"])},n(x.value?.memory.by_level.ERROR??0),3)]),s("div",Be,[t[11]||(t[11]=s("div",{class:"text-[11px] text-muted-foreground"},"缓存上限",-1)),s("div",je,n(x.value?.memory.capacity??0),1)])]),s("div",We,[s("div",He,[Q(ke,{modelValue:i.level,"onUpdate:modelValue":t[0]||(t[0]=o=>i.level=o),options:se},null,8,["modelValue"])]),X(s("input",{"onUpdate:modelValue":t[1]||(t[1]=o=>i.search=o),type:"text",placeholder:"搜索...",class:"min-w-[200px] flex-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground sm:min-w-0"},null,512),[[ee,i.search,void 0,{trim:!0}]]),X(s("input",{"onUpdate:modelValue":t[2]||(t[2]=o=>i.limit=o),type:"number",min:"10",max:"1000",step:"100",class:"w-24 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground"},null,512),[[ee,i.limit,void 0,{number:!0}]]),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A}," 查询 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:he}," 导出 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:we},n(b.value?"结构化视图":"原始视图"),1),s("button",{class:v(["rounded-full px-4 py-2 text-xs font-medium transition-colors",f.value?"bg-primary text-primary-foreground":"border border-border text-muted-foreground hover:text-foreground"]),onClick:_e}," 自动刷新 ",2),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-destructive transition-colors hover:border-destructive/60",onClick:t[3]||(t[3]=o=>L.value=!0)}," 清空 ")]),p.value?(d(),a("div",{key:0,class:v(["mt-3 text-xs",le.value])},n(p.value),3)):m("",!0),C.value?(d(),a("div",ze,n(C.value),1)):m("",!0),b.value?(d(),a("div",{key:2,ref_key:"rawLogContainer",ref:k,class:"scrollbar-slim mt-4 max-h-[60vh] overflow-x-auto overflow-y-auto rounded-2xl border border-border bg-muted/30 px-4 py-3 text-[11px] text-muted-foreground"},[s("pre",Je,n(pe.value.text),1)],512)):(d(),a("div",{key:3,ref_key:"structuredLogContainer",ref:O,class:"scrollbar-slim mt-4 max-h-[60vh] space-y-3 overflow-y-auto rounded-2xl border border-border bg-card px-4 py-3"},[T.value.ungrouped.length===0&&T.value.groups.length===0?(d(),a("div",Ye," 暂无日志 ")):m("",!0),(d(!0),a(h,null,w(T.value.ungrouped,(o,r)=>(d(),a("div",{key:`u-${r}`},[s("div",Pe,[s("div",Ze,[s("span",Ke,n(o.time),1),s("span",{class:v(H(o.level))},n(o.level),3),(d(!0),a(h,null,w(o.tags,u=>(d(),a("span",{key:u,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:W(u)})},n(u),5))),128)),o.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:q(o.accountId)})},n(o.accountId),5)):m("",!0)]),s("div",Qe,n(o.text),1)])]))),128)),(d(!0),a(h,null,w(T.value.groups,o=>(d(),a("div",{key:o.id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:r=>ge(o.id)},[s("span",{class:v(ae(o.status))},n(de(o.status)),3),s("span",et,"req_"+n(o.id),1),o.accountId?(d(),a("span",{key:0,class:"text-xs font-semibold",style:R({color:q(o.accountId)})},n(o.accountId),5)):m("",!0),o.model?(d(),a("span",tt,n(o.model),1)):m("",!0),fe(o)?(d(),a("span",ot," 仅显示最近 "+n(M)+" 条 ")):m("",!0),s("span",st,n(o.logs.length)+" 条日志",1),s("span",{class:v(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!V(o.id)}])}," ▸ ",2)],8,Xe),V(o.id)?m("",!0):(d(),a("div",rt,[(d(!0),a(h,null,w(ve(o),(r,u)=>(d(),a("div",{key:`${o.id}-${u}`,class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",nt,[s("span",lt,n(r.time),1),s("span",{class:v(H(r.level))},n(r.level),3),(d(!0),a(h,null,w(r.tags,l=>(d(),a("span",{key:l,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:W(l)})},n(l),5))),128)),r.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:q(r.accountId)})},n(r.accountId),5)):m("",!0)]),s("div",at,n(r.text),1)]))),128))]))]))),128))],512))]),Q(Oe,{open:L.value,title:"确认操作",message:"确定要清空所有运行日志吗?","confirm-text":"确认","cancel-text":"取消",onConfirm:ye,onCancel:t[4]||(t[4]=o=>L.value=!1)},null,8,["open"])],64))}});export{mt as default}; diff --git a/static/assets/Logs-BEIY_CjX.js b/static/assets/Logs-BEIY_CjX.js new file mode 100644 index 0000000000000000000000000000000000000000..c5243d97bc3447bc88426562df69e3cb98d830a8 --- /dev/null +++ b/static/assets/Logs-BEIY_CjX.js @@ -0,0 +1,2 @@ +import{g as K,d as Re,h as c,J as Ce,i as D,o as Ie,j as Le,c as a,a as s,p as Q,b as m,t as n,n as v,q as X,v as ee,F as h,r as w,k as R,e as d}from"./index-BRM37S6x.js";import{_ as ke}from"./SelectMenu.vue_vue_type_script_setup_true_lang-CeWkosco.js";import{_ as Oe}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-C9Wgr_sd.js";const B={list:j=>K.get("/admin/log",{params:j}),clear:()=>K.delete("/admin/log?confirm=yes")},Ne={class:"rounded-3xl border border-border bg-card p-6"},Te={class:"flex flex-wrap items-center justify-between gap-3"},Ae={class:"text-xs text-muted-foreground"},Se={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-6"},$e={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ee={class:"mt-1 text-lg font-semibold text-foreground"},Me={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ge={class:"mt-1 text-lg font-semibold text-foreground"},Ue={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},qe={class:"mt-1 text-lg font-semibold text-foreground"},Ve={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Fe={class:"mt-1 text-lg font-semibold text-foreground"},De={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Be={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},je={class:"mt-1 text-lg font-semibold text-foreground"},We={class:"mt-4 flex flex-wrap items-center gap-2 sm:flex-nowrap"},He={class:"w-44 shrink-0"},ze={key:1,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Je={class:"whitespace-pre font-mono leading-relaxed"},Ye={key:0,class:"text-xs text-muted-foreground"},Pe={class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},Ze={class:"flex flex-wrap items-center gap-2"},Ke={class:"text-muted-foreground"},Qe={class:"w-full text-foreground md:w-auto md:flex-1"},Xe=["onClick"],et={class:"text-muted-foreground"},tt={key:1,class:"text-muted-foreground"},ot={key:2,class:"text-[10px] text-muted-foreground"},st={class:"text-muted-foreground"},rt={key:0,class:"space-y-2 px-4 py-3"},nt={class:"flex flex-wrap items-center gap-2"},lt={class:"text-muted-foreground"},at={class:"w-full text-foreground md:w-auto md:flex-1"},E=1e3,te=1e3,M=200,dt=3e3,mt=Re({__name:"Logs",setup(j){const oe=c([]),C=c([]),G=c({ungrouped:[],groups:[]}),x=c(null),I=c(""),p=c(""),y=c("success"),L=c(!1),f=c(!0),_=c({}),b=c(!0),k=c(null),O=c(null);let N,U=!1;const i=Ce({level:"",search:"",limit:300}),se=[{label:"全部",value:""},{label:"INFO",value:"INFO"},{label:"WARNING",value:"WARNING"},{label:"ERROR",value:"ERROR"}],re={SYSTEM:"#9e9e9e",CONFIG:"#607d8b",LOG:"#9e9e9e",AUTH:"#4caf50",SESSION:"#00bcd4",FILE:"#ff9800",CHAT:"#2196f3",API:"#8bc34a",CACHE:"#9c27b0",ACCOUNT:"#f44336",MULTI:"#673ab7"},ne={account_1:"#9c27b0",account_2:"#e91e63",account_3:"#00bcd4",account_4:"#4caf50",account_5:"#ff9800"},le=D(()=>y.value==="error"?"text-destructive":"text-muted-foreground"),W=e=>re[e]||"#757575",q=e=>ne[e]||"#757575",H=e=>{const t="rounded px-2 py-0.5 text-[10px] font-semibold";return e==="INFO"?`${t} bg-blue-100 text-blue-700`:e==="WARNING"?`${t} bg-amber-100 text-amber-700`:e==="ERROR"||e==="CRITICAL"?`${t} bg-rose-100 text-rose-700`:`${t} bg-violet-100 text-violet-700`},ae=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},de=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",ie=e=>{let t=e;const o=[];let r="";const u=/^\[([A-Za-z0-9_]+)\]/;for(;;){const l=t.match(u);if(!l)break;const g=l[1];if(t=t.slice(l[0].length).trim(),!g.startsWith("req_")){if(g.startsWith("account_")){r=g;continue}o.push(g)}}return{tags:o,accountId:r,text:t}},ue=e=>{const t=ie(e.message),o=e.message.match(/\[req_([a-z0-9]+)\]/i);return{...e,...t,reqId:o?o[1]:""}},ce=e=>{if(/^\d{4}-\d{2}-\d{2}T/.test(e))return new Date(e);if(/^\d{4}-\d{2}-\d{2}/.test(e))return new Date(e.replace(" ","T"));if(/^\d{2}:\d{2}:\d{2}$/.test(e)){const t=new Date,[o,r,u]=e.split(":").map(Number),l=new Date(t);return l.setHours(o,r,u,0),l}return null},me=e=>{const t=e[e.length-1],o=t.message;if(o.includes("响应完成")||o.includes("非流式响应完成"))return"success";if(t.level==="ERROR"||o.includes("失败"))return"error";const r=ce(t.time);return r&&(Date.now()-r.getTime())/1e3/60>5?"timeout":"in_progress"},xe=e=>{const t=new Map,o=[],r=[];e.forEach(l=>{l.reqId?(t.has(l.reqId)||(t.set(l.reqId,[]),o.push(l.reqId)),t.get(l.reqId)?.push(l)):r.push(l)});const u=o.map(l=>{const g=t.get(l)||[],$=g[0],P=$?.message.match(/\[(account_[^\]]+)\]/i),Z=$?.message.match(/收到请求: ([^ |]+)/)||$?.message.match(/Received request: ([^ |]+)/);return{id:l,logs:g,status:me(g),accountId:$?.accountId||(P?P[1]:""),model:Z?Z[1]:""}});return{ungrouped:r,groups:u}},T=D(()=>{const e=G.value.ungrouped,t=G.value.groups,o=e.length>E?e.slice(-E):e,r=t.length>E?t.slice(-E):t;return{ungrouped:o,groups:r,limited:e.length>o.length||t.length>r.length,ungroupedTotal:e.length,groupsTotal:t.length,ungroupedShowing:o.length,groupsShowing:r.length}}),pe=D(()=>{const e=C.value.length,t=e>te?e-te:0,o=C.value.slice(t),r=o.map(l=>`${l.time} | ${l.level} | ${l.message}`).join(` +`),u=o.length;return{text:r,total:e,showing:u,limited:e>u}}),V=e=>_.value[e]===!0,ge=e=>{_.value[e]=!V(e),localStorage.setItem("log-fold-state",JSON.stringify(_.value))},fe=e=>e.logs.length>M,ve=e=>e.logs.length<=M?e.logs:e.logs.slice(-M),be=()=>{(!i.limit||Number.isNaN(i.limit))&&(i.limit=300),i.limit=Math.min(Math.max(i.limit,10),1e3)},A=async()=>{if(!U){U=!0,I.value="",p.value="",be();try{const e=await B.list({limit:i.limit,level:i.level||void 0,search:i.search||void 0});oe.value=e.logs,C.value=e.logs.map(ue),G.value=xe(C.value),x.value=e.stats}catch(e){I.value=e.message||"日志加载失败"}finally{U=!1,requestAnimationFrame(J)}}},he=async()=>{p.value="",y.value="success";try{const e=await B.list({limit:1e3,level:i.level||void 0,search:i.search||void 0}),t=new Blob([JSON.stringify({exported_at:new Date().toISOString(),logs:e.logs},null,2)],{type:"application/json"}),o=URL.createObjectURL(t),r=document.createElement("a");r.href=o,r.download=`logs_${new Date().toISOString().slice(0,19).replace(/:/g,"-")}.json`,r.click(),URL.revokeObjectURL(o),p.value="导出成功"}catch(e){y.value="error",p.value=e.message||"导出失败"}},ye=async()=>{L.value=!1;try{await B.clear(),y.value="success",p.value="已清空日志",await A()}catch(e){y.value="error",p.value=e.message||"清空失败"}},S=()=>{N&&(window.clearTimeout(N),N=void 0)},z=()=>{!f.value||document.hidden||(N=window.setTimeout(async()=>{await A(),z()},dt))},F=()=>{S(),z()},_e=()=>{f.value=!f.value,f.value?F():S()},we=()=>{b.value=!b.value,requestAnimationFrame(J)},J=()=>{b.value&&k.value&&(k.value.scrollTop=k.value.scrollHeight),!b.value&&O.value&&(O.value.scrollTop=O.value.scrollHeight)},Y=()=>{document.hidden?S():f.value&&F()};return Ie(()=>{const e=localStorage.getItem("log-fold-state");if(e)try{_.value=JSON.parse(e)}catch{_.value={}}A(),F(),document.addEventListener("visibilitychange",Y)}),Le(()=>{S(),document.removeEventListener("visibilitychange",Y)}),(e,t)=>(d(),a(h,null,[s("div",Ne,[s("div",Te,[t[5]||(t[5]=s("p",{class:"text-base font-semibold text-foreground"},"管理日志",-1)),s("div",Ae," 自动刷新:"+n(f.value?"开启":"关闭"),1)]),s("div",Se,[s("div",$e,[t[6]||(t[6]=s("div",{class:"text-[11px] text-muted-foreground"},"总数",-1)),s("div",Ee,n(x.value?.memory.total??0),1)]),s("div",Me,[t[7]||(t[7]=s("div",{class:"text-[11px] text-muted-foreground"},"对话",-1)),s("div",Ge,n(x.value?.chat_count??0),1)]),s("div",Ue,[t[8]||(t[8]=s("div",{class:"text-[11px] text-muted-foreground"},"INFO",-1)),s("div",qe,n(x.value?.memory.by_level.INFO??0),1)]),s("div",Ve,[t[9]||(t[9]=s("div",{class:"text-[11px] text-muted-foreground"},"WARNING",-1)),s("div",Fe,n(x.value?.memory.by_level.WARNING??0),1)]),s("div",De,[t[10]||(t[10]=s("div",{class:"text-[11px] text-muted-foreground"},"ERROR",-1)),s("div",{class:v(["mt-1 text-lg font-semibold",x.value?.memory.by_level.ERROR?"text-rose-600":"text-foreground"])},n(x.value?.memory.by_level.ERROR??0),3)]),s("div",Be,[t[11]||(t[11]=s("div",{class:"text-[11px] text-muted-foreground"},"缓存上限",-1)),s("div",je,n(x.value?.memory.capacity??0),1)])]),s("div",We,[s("div",He,[Q(ke,{modelValue:i.level,"onUpdate:modelValue":t[0]||(t[0]=o=>i.level=o),options:se},null,8,["modelValue"])]),X(s("input",{"onUpdate:modelValue":t[1]||(t[1]=o=>i.search=o),type:"text",placeholder:"搜索...",class:"min-w-[200px] flex-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground sm:min-w-0"},null,512),[[ee,i.search,void 0,{trim:!0}]]),X(s("input",{"onUpdate:modelValue":t[2]||(t[2]=o=>i.limit=o),type:"number",min:"10",max:"1000",step:"100",class:"w-24 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground"},null,512),[[ee,i.limit,void 0,{number:!0}]]),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A}," 查询 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:he}," 导出 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:we},n(b.value?"结构化视图":"原始视图"),1),s("button",{class:v(["rounded-full px-4 py-2 text-xs font-medium transition-colors",f.value?"bg-primary text-primary-foreground":"border border-border text-muted-foreground hover:text-foreground"]),onClick:_e}," 自动刷新 ",2),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-destructive transition-colors hover:border-destructive/60",onClick:t[3]||(t[3]=o=>L.value=!0)}," 清空 ")]),p.value?(d(),a("div",{key:0,class:v(["mt-3 text-xs",le.value])},n(p.value),3)):m("",!0),I.value?(d(),a("div",ze,n(I.value),1)):m("",!0),b.value?(d(),a("div",{key:2,ref_key:"rawLogContainer",ref:k,class:"scrollbar-slim mt-4 max-h-[60vh] overflow-x-auto overflow-y-auto rounded-2xl border border-border bg-muted/30 px-4 py-3 text-[11px] text-muted-foreground"},[s("pre",Je,n(pe.value.text),1)],512)):(d(),a("div",{key:3,ref_key:"structuredLogContainer",ref:O,class:"scrollbar-slim mt-4 max-h-[60vh] space-y-3 overflow-y-auto rounded-2xl border border-border bg-card px-4 py-3"},[T.value.ungrouped.length===0&&T.value.groups.length===0?(d(),a("div",Ye," 暂无日志 ")):m("",!0),(d(!0),a(h,null,w(T.value.ungrouped,(o,r)=>(d(),a("div",{key:`u-${r}`},[s("div",Pe,[s("div",Ze,[s("span",Ke,n(o.time),1),s("span",{class:v(H(o.level))},n(o.level),3),(d(!0),a(h,null,w(o.tags,u=>(d(),a("span",{key:u,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:W(u)})},n(u),5))),128)),o.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:q(o.accountId)})},n(o.accountId),5)):m("",!0)]),s("div",Qe,n(o.text),1)])]))),128)),(d(!0),a(h,null,w(T.value.groups,o=>(d(),a("div",{key:o.id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:r=>ge(o.id)},[s("span",{class:v(ae(o.status))},n(de(o.status)),3),s("span",et,"req_"+n(o.id),1),o.accountId?(d(),a("span",{key:0,class:"text-xs font-semibold",style:R({color:q(o.accountId)})},n(o.accountId),5)):m("",!0),o.model?(d(),a("span",tt,n(o.model),1)):m("",!0),fe(o)?(d(),a("span",ot," 仅显示最近 "+n(M)+" 条 ")):m("",!0),s("span",st,n(o.logs.length)+" 条日志",1),s("span",{class:v(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!V(o.id)}])}," ▸ ",2)],8,Xe),V(o.id)?m("",!0):(d(),a("div",rt,[(d(!0),a(h,null,w(ve(o),(r,u)=>(d(),a("div",{key:`${o.id}-${u}`,class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",nt,[s("span",lt,n(r.time),1),s("span",{class:v(H(r.level))},n(r.level),3),(d(!0),a(h,null,w(r.tags,l=>(d(),a("span",{key:l,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:W(l)})},n(l),5))),128)),r.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:q(r.accountId)})},n(r.accountId),5)):m("",!0)]),s("div",at,n(r.text),1)]))),128))]))]))),128))],512))]),Q(Oe,{open:L.value,title:"确认操作",message:"确定要清空所有运行日志吗?","confirm-text":"确认","cancel-text":"取消",onConfirm:ye,onCancel:t[4]||(t[4]=o=>L.value=!1)},null,8,["open"])],64))}});export{mt as default}; diff --git a/static/assets/Logs-BLNGC9VD.js b/static/assets/Logs-BLNGC9VD.js new file mode 100644 index 0000000000000000000000000000000000000000..33f357fb7203dc966a9f5ec23530de7d0d787ad6 --- /dev/null +++ b/static/assets/Logs-BLNGC9VD.js @@ -0,0 +1,2 @@ +import{g as K,d as Re,h as c,I as Ie,i as D,o as Ce,j as Le,c as a,a as s,p as Q,b as m,t as n,n as v,q as X,v as ee,F as h,r as w,k as R,e as d}from"./index-JaBfp01b.js";import{_ as ke}from"./SelectMenu.vue_vue_type_script_setup_true_lang-cSKw_kbn.js";import{_ as Oe}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-BuSWgV7j.js";const B={list:j=>K.get("/admin/log",{params:j}),clear:()=>K.delete("/admin/log?confirm=yes")},Ne={class:"rounded-3xl border border-border bg-card p-6"},Te={class:"flex flex-wrap items-center justify-between gap-3"},Ae={class:"text-xs text-muted-foreground"},Se={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-6"},$e={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ee={class:"mt-1 text-lg font-semibold text-foreground"},Me={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ge={class:"mt-1 text-lg font-semibold text-foreground"},Ue={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},qe={class:"mt-1 text-lg font-semibold text-foreground"},Ve={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Fe={class:"mt-1 text-lg font-semibold text-foreground"},De={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Be={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},je={class:"mt-1 text-lg font-semibold text-foreground"},We={class:"mt-4 flex flex-wrap items-center gap-2 sm:flex-nowrap"},He={class:"w-44 shrink-0"},ze={key:1,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Je={class:"whitespace-pre font-mono leading-relaxed"},Ye={key:0,class:"text-xs text-muted-foreground"},Pe={class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},Ze={class:"flex flex-wrap items-center gap-2"},Ke={class:"text-muted-foreground"},Qe={class:"w-full text-foreground md:w-auto md:flex-1"},Xe=["onClick"],et={class:"text-muted-foreground"},tt={key:1,class:"text-muted-foreground"},ot={key:2,class:"text-[10px] text-muted-foreground"},st={class:"text-muted-foreground"},rt={key:0,class:"space-y-2 px-4 py-3"},nt={class:"flex flex-wrap items-center gap-2"},lt={class:"text-muted-foreground"},at={class:"w-full text-foreground md:w-auto md:flex-1"},E=1e3,te=1e3,M=200,dt=3e3,mt=Re({__name:"Logs",setup(j){const oe=c([]),I=c([]),G=c({ungrouped:[],groups:[]}),x=c(null),C=c(""),p=c(""),y=c("success"),L=c(!1),f=c(!0),_=c({}),b=c(!0),k=c(null),O=c(null);let N,U=!1;const i=Ie({level:"",search:"",limit:300}),se=[{label:"全部",value:""},{label:"INFO",value:"INFO"},{label:"WARNING",value:"WARNING"},{label:"ERROR",value:"ERROR"}],re={SYSTEM:"#9e9e9e",CONFIG:"#607d8b",LOG:"#9e9e9e",AUTH:"#4caf50",SESSION:"#00bcd4",FILE:"#ff9800",CHAT:"#2196f3",API:"#8bc34a",CACHE:"#9c27b0",ACCOUNT:"#f44336",MULTI:"#673ab7"},ne={account_1:"#9c27b0",account_2:"#e91e63",account_3:"#00bcd4",account_4:"#4caf50",account_5:"#ff9800"},le=D(()=>y.value==="error"?"text-destructive":"text-muted-foreground"),W=e=>re[e]||"#757575",q=e=>ne[e]||"#757575",H=e=>{const t="rounded px-2 py-0.5 text-[10px] font-semibold";return e==="INFO"?`${t} bg-blue-100 text-blue-700`:e==="WARNING"?`${t} bg-amber-100 text-amber-700`:e==="ERROR"||e==="CRITICAL"?`${t} bg-rose-100 text-rose-700`:`${t} bg-violet-100 text-violet-700`},ae=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},de=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",ie=e=>{let t=e;const o=[];let r="";const u=/^\[([A-Za-z0-9_]+)\]/;for(;;){const l=t.match(u);if(!l)break;const g=l[1];if(t=t.slice(l[0].length).trim(),!g.startsWith("req_")){if(g.startsWith("account_")){r=g;continue}o.push(g)}}return{tags:o,accountId:r,text:t}},ue=e=>{const t=ie(e.message),o=e.message.match(/\[req_([a-z0-9]+)\]/i);return{...e,...t,reqId:o?o[1]:""}},ce=e=>{if(/^\d{4}-\d{2}-\d{2}T/.test(e))return new Date(e);if(/^\d{4}-\d{2}-\d{2}/.test(e))return new Date(e.replace(" ","T"));if(/^\d{2}:\d{2}:\d{2}$/.test(e)){const t=new Date,[o,r,u]=e.split(":").map(Number),l=new Date(t);return l.setHours(o,r,u,0),l}return null},me=e=>{const t=e[e.length-1],o=t.message;if(o.includes("响应完成")||o.includes("非流式响应完成"))return"success";if(t.level==="ERROR"||o.includes("失败"))return"error";const r=ce(t.time);return r&&(Date.now()-r.getTime())/1e3/60>5?"timeout":"in_progress"},xe=e=>{const t=new Map,o=[],r=[];e.forEach(l=>{l.reqId?(t.has(l.reqId)||(t.set(l.reqId,[]),o.push(l.reqId)),t.get(l.reqId)?.push(l)):r.push(l)});const u=o.map(l=>{const g=t.get(l)||[],$=g[0],P=$?.message.match(/\[(account_[^\]]+)\]/i),Z=$?.message.match(/收到请求: ([^ |]+)/)||$?.message.match(/Received request: ([^ |]+)/);return{id:l,logs:g,status:me(g),accountId:$?.accountId||(P?P[1]:""),model:Z?Z[1]:""}});return{ungrouped:r,groups:u}},T=D(()=>{const e=G.value.ungrouped,t=G.value.groups,o=e.length>E?e.slice(-E):e,r=t.length>E?t.slice(-E):t;return{ungrouped:o,groups:r,limited:e.length>o.length||t.length>r.length,ungroupedTotal:e.length,groupsTotal:t.length,ungroupedShowing:o.length,groupsShowing:r.length}}),pe=D(()=>{const e=I.value.length,t=e>te?e-te:0,o=I.value.slice(t),r=o.map(l=>`${l.time} | ${l.level} | ${l.message}`).join(` +`),u=o.length;return{text:r,total:e,showing:u,limited:e>u}}),V=e=>_.value[e]===!0,ge=e=>{_.value[e]=!V(e),localStorage.setItem("log-fold-state",JSON.stringify(_.value))},fe=e=>e.logs.length>M,ve=e=>e.logs.length<=M?e.logs:e.logs.slice(-M),be=()=>{(!i.limit||Number.isNaN(i.limit))&&(i.limit=300),i.limit=Math.min(Math.max(i.limit,10),1e3)},A=async()=>{if(!U){U=!0,C.value="",p.value="",be();try{const e=await B.list({limit:i.limit,level:i.level||void 0,search:i.search||void 0});oe.value=e.logs,I.value=e.logs.map(ue),G.value=xe(I.value),x.value=e.stats}catch(e){C.value=e.message||"日志加载失败"}finally{U=!1,requestAnimationFrame(J)}}},he=async()=>{p.value="",y.value="success";try{const e=await B.list({limit:1e3,level:i.level||void 0,search:i.search||void 0}),t=new Blob([JSON.stringify({exported_at:new Date().toISOString(),logs:e.logs},null,2)],{type:"application/json"}),o=URL.createObjectURL(t),r=document.createElement("a");r.href=o,r.download=`logs_${new Date().toISOString().slice(0,19).replace(/:/g,"-")}.json`,r.click(),URL.revokeObjectURL(o),p.value="导出成功"}catch(e){y.value="error",p.value=e.message||"导出失败"}},ye=async()=>{L.value=!1;try{await B.clear(),y.value="success",p.value="已清空日志",await A()}catch(e){y.value="error",p.value=e.message||"清空失败"}},S=()=>{N&&(window.clearTimeout(N),N=void 0)},z=()=>{!f.value||document.hidden||(N=window.setTimeout(async()=>{await A(),z()},dt))},F=()=>{S(),z()},_e=()=>{f.value=!f.value,f.value?F():S()},we=()=>{b.value=!b.value,requestAnimationFrame(J)},J=()=>{b.value&&k.value&&(k.value.scrollTop=k.value.scrollHeight),!b.value&&O.value&&(O.value.scrollTop=O.value.scrollHeight)},Y=()=>{document.hidden?S():f.value&&F()};return Ce(()=>{const e=localStorage.getItem("log-fold-state");if(e)try{_.value=JSON.parse(e)}catch{_.value={}}A(),F(),document.addEventListener("visibilitychange",Y)}),Le(()=>{S(),document.removeEventListener("visibilitychange",Y)}),(e,t)=>(d(),a(h,null,[s("div",Ne,[s("div",Te,[t[5]||(t[5]=s("p",{class:"text-base font-semibold text-foreground"},"管理日志",-1)),s("div",Ae," 自动刷新:"+n(f.value?"开启":"关闭"),1)]),s("div",Se,[s("div",$e,[t[6]||(t[6]=s("div",{class:"text-[11px] text-muted-foreground"},"总数",-1)),s("div",Ee,n(x.value?.memory.total??0),1)]),s("div",Me,[t[7]||(t[7]=s("div",{class:"text-[11px] text-muted-foreground"},"对话",-1)),s("div",Ge,n(x.value?.chat_count??0),1)]),s("div",Ue,[t[8]||(t[8]=s("div",{class:"text-[11px] text-muted-foreground"},"INFO",-1)),s("div",qe,n(x.value?.memory.by_level.INFO??0),1)]),s("div",Ve,[t[9]||(t[9]=s("div",{class:"text-[11px] text-muted-foreground"},"WARNING",-1)),s("div",Fe,n(x.value?.memory.by_level.WARNING??0),1)]),s("div",De,[t[10]||(t[10]=s("div",{class:"text-[11px] text-muted-foreground"},"ERROR",-1)),s("div",{class:v(["mt-1 text-lg font-semibold",x.value?.memory.by_level.ERROR?"text-rose-600":"text-foreground"])},n(x.value?.memory.by_level.ERROR??0),3)]),s("div",Be,[t[11]||(t[11]=s("div",{class:"text-[11px] text-muted-foreground"},"缓存上限",-1)),s("div",je,n(x.value?.memory.capacity??0),1)])]),s("div",We,[s("div",He,[Q(ke,{modelValue:i.level,"onUpdate:modelValue":t[0]||(t[0]=o=>i.level=o),options:se},null,8,["modelValue"])]),X(s("input",{"onUpdate:modelValue":t[1]||(t[1]=o=>i.search=o),type:"text",placeholder:"搜索...",class:"min-w-[200px] flex-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground sm:min-w-0"},null,512),[[ee,i.search,void 0,{trim:!0}]]),X(s("input",{"onUpdate:modelValue":t[2]||(t[2]=o=>i.limit=o),type:"number",min:"10",max:"1000",step:"100",class:"w-24 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground"},null,512),[[ee,i.limit,void 0,{number:!0}]]),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A}," 查询 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:he}," 导出 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:we},n(b.value?"结构化视图":"原始视图"),1),s("button",{class:v(["rounded-full px-4 py-2 text-xs font-medium transition-colors",f.value?"bg-primary text-primary-foreground":"border border-border text-muted-foreground hover:text-foreground"]),onClick:_e}," 自动刷新 ",2),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-destructive transition-colors hover:border-destructive/60",onClick:t[3]||(t[3]=o=>L.value=!0)}," 清空 ")]),p.value?(d(),a("div",{key:0,class:v(["mt-3 text-xs",le.value])},n(p.value),3)):m("",!0),C.value?(d(),a("div",ze,n(C.value),1)):m("",!0),b.value?(d(),a("div",{key:2,ref_key:"rawLogContainer",ref:k,class:"scrollbar-slim mt-4 max-h-[60vh] overflow-x-auto overflow-y-auto rounded-2xl border border-border bg-muted/30 px-4 py-3 text-[11px] text-muted-foreground"},[s("pre",Je,n(pe.value.text),1)],512)):(d(),a("div",{key:3,ref_key:"structuredLogContainer",ref:O,class:"scrollbar-slim mt-4 max-h-[60vh] space-y-3 overflow-y-auto rounded-2xl border border-border bg-card px-4 py-3"},[T.value.ungrouped.length===0&&T.value.groups.length===0?(d(),a("div",Ye," 暂无日志 ")):m("",!0),(d(!0),a(h,null,w(T.value.ungrouped,(o,r)=>(d(),a("div",{key:`u-${r}`},[s("div",Pe,[s("div",Ze,[s("span",Ke,n(o.time),1),s("span",{class:v(H(o.level))},n(o.level),3),(d(!0),a(h,null,w(o.tags,u=>(d(),a("span",{key:u,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:W(u)})},n(u),5))),128)),o.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:q(o.accountId)})},n(o.accountId),5)):m("",!0)]),s("div",Qe,n(o.text),1)])]))),128)),(d(!0),a(h,null,w(T.value.groups,o=>(d(),a("div",{key:o.id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:r=>ge(o.id)},[s("span",{class:v(ae(o.status))},n(de(o.status)),3),s("span",et,"req_"+n(o.id),1),o.accountId?(d(),a("span",{key:0,class:"text-xs font-semibold",style:R({color:q(o.accountId)})},n(o.accountId),5)):m("",!0),o.model?(d(),a("span",tt,n(o.model),1)):m("",!0),fe(o)?(d(),a("span",ot," 仅显示最近 "+n(M)+" 条 ")):m("",!0),s("span",st,n(o.logs.length)+" 条日志",1),s("span",{class:v(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!V(o.id)}])}," ▸ ",2)],8,Xe),V(o.id)?m("",!0):(d(),a("div",rt,[(d(!0),a(h,null,w(ve(o),(r,u)=>(d(),a("div",{key:`${o.id}-${u}`,class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",nt,[s("span",lt,n(r.time),1),s("span",{class:v(H(r.level))},n(r.level),3),(d(!0),a(h,null,w(r.tags,l=>(d(),a("span",{key:l,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:W(l)})},n(l),5))),128)),r.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:q(r.accountId)})},n(r.accountId),5)):m("",!0)]),s("div",at,n(r.text),1)]))),128))]))]))),128))],512))]),Q(Oe,{open:L.value,title:"确认操作",message:"确定要清空所有运行日志吗?","confirm-text":"确认","cancel-text":"取消",onConfirm:ye,onCancel:t[4]||(t[4]=o=>L.value=!1)},null,8,["open"])],64))}});export{mt as default}; diff --git a/static/assets/Logs-BQzipIMY.js b/static/assets/Logs-BQzipIMY.js new file mode 100644 index 0000000000000000000000000000000000000000..6be5a6427ee74d07fbee3dedf8bee7df00bee9eb --- /dev/null +++ b/static/assets/Logs-BQzipIMY.js @@ -0,0 +1,2 @@ +import{g as K,d as Re,h as c,H as Ce,i as D,o as Ie,j as Le,c as a,a as s,x as Q,b as m,t as n,n as v,m as X,v as ee,F as h,r as w,k as R,e as d}from"./index-gD6QQiOu.js";import{_ as ke}from"./SelectMenu.vue_vue_type_script_setup_true_lang-B2Zu3W0l.js";import{_ as Oe}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-D2ZZ5gFD.js";const B={list:j=>K.get("/admin/log",{params:j}),clear:()=>K.delete("/admin/log?confirm=yes")},Ne={class:"rounded-3xl border border-border bg-card p-6"},Te={class:"flex flex-wrap items-center justify-between gap-3"},Ae={class:"text-xs text-muted-foreground"},Se={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-6"},$e={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ee={class:"mt-1 text-lg font-semibold text-foreground"},Me={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ge={class:"mt-1 text-lg font-semibold text-foreground"},Ue={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ve={class:"mt-1 text-lg font-semibold text-foreground"},qe={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Fe={class:"mt-1 text-lg font-semibold text-foreground"},De={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Be={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},je={class:"mt-1 text-lg font-semibold text-foreground"},He={class:"mt-4 flex flex-wrap items-center gap-2 sm:flex-nowrap"},We={class:"w-44 shrink-0"},ze={key:1,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Je={class:"whitespace-pre font-mono leading-relaxed"},Ye={key:0,class:"text-xs text-muted-foreground"},Pe={class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},Ze={class:"flex flex-wrap items-center gap-2"},Ke={class:"text-muted-foreground"},Qe={class:"w-full text-foreground md:w-auto md:flex-1"},Xe=["onClick"],et={class:"text-muted-foreground"},tt={key:1,class:"text-muted-foreground"},ot={key:2,class:"text-[10px] text-muted-foreground"},st={class:"text-muted-foreground"},rt={key:0,class:"space-y-2 px-4 py-3"},nt={class:"flex flex-wrap items-center gap-2"},lt={class:"text-muted-foreground"},at={class:"w-full text-foreground md:w-auto md:flex-1"},E=1e3,te=1e3,M=200,dt=3e3,mt=Re({__name:"Logs",setup(j){const oe=c([]),C=c([]),G=c({ungrouped:[],groups:[]}),x=c(null),I=c(""),p=c(""),y=c("success"),L=c(!1),f=c(!0),_=c({}),b=c(!0),k=c(null),O=c(null);let N,U=!1;const i=Ce({level:"",search:"",limit:300}),se=[{label:"全部",value:""},{label:"INFO",value:"INFO"},{label:"WARNING",value:"WARNING"},{label:"ERROR",value:"ERROR"}],re={SYSTEM:"#9e9e9e",CONFIG:"#607d8b",LOG:"#9e9e9e",AUTH:"#4caf50",SESSION:"#00bcd4",FILE:"#ff9800",CHAT:"#2196f3",API:"#8bc34a",CACHE:"#9c27b0",ACCOUNT:"#f44336",MULTI:"#673ab7"},ne={account_1:"#9c27b0",account_2:"#e91e63",account_3:"#00bcd4",account_4:"#4caf50",account_5:"#ff9800"},le=D(()=>y.value==="error"?"text-destructive":"text-muted-foreground"),H=e=>re[e]||"#757575",V=e=>ne[e]||"#757575",W=e=>{const t="rounded px-2 py-0.5 text-[10px] font-semibold";return e==="INFO"?`${t} bg-blue-100 text-blue-700`:e==="WARNING"?`${t} bg-amber-100 text-amber-700`:e==="ERROR"||e==="CRITICAL"?`${t} bg-rose-100 text-rose-700`:`${t} bg-violet-100 text-violet-700`},ae=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},de=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",ie=e=>{let t=e;const o=[];let r="";const u=/^\[([A-Za-z0-9_]+)\]/;for(;;){const l=t.match(u);if(!l)break;const g=l[1];if(t=t.slice(l[0].length).trim(),!g.startsWith("req_")){if(g.startsWith("account_")){r=g;continue}o.push(g)}}return{tags:o,accountId:r,text:t}},ue=e=>{const t=ie(e.message),o=e.message.match(/\[req_([a-z0-9]+)\]/i);return{...e,...t,reqId:o?o[1]:""}},ce=e=>{if(/^\d{4}-\d{2}-\d{2}T/.test(e))return new Date(e);if(/^\d{4}-\d{2}-\d{2}/.test(e))return new Date(e.replace(" ","T"));if(/^\d{2}:\d{2}:\d{2}$/.test(e)){const t=new Date,[o,r,u]=e.split(":").map(Number),l=new Date(t);return l.setHours(o,r,u,0),l}return null},me=e=>{const t=e[e.length-1],o=t.message;if(o.includes("响应完成")||o.includes("非流式响应完成"))return"success";if(t.level==="ERROR"||o.includes("失败"))return"error";const r=ce(t.time);return r&&(Date.now()-r.getTime())/1e3/60>5?"timeout":"in_progress"},xe=e=>{const t=new Map,o=[],r=[];e.forEach(l=>{l.reqId?(t.has(l.reqId)||(t.set(l.reqId,[]),o.push(l.reqId)),t.get(l.reqId)?.push(l)):r.push(l)});const u=o.map(l=>{const g=t.get(l)||[],$=g[0],P=$?.message.match(/\[(account_[^\]]+)\]/i),Z=$?.message.match(/收到请求: ([^ |]+)/)||$?.message.match(/Received request: ([^ |]+)/);return{id:l,logs:g,status:me(g),accountId:$?.accountId||(P?P[1]:""),model:Z?Z[1]:""}});return{ungrouped:r,groups:u}},T=D(()=>{const e=G.value.ungrouped,t=G.value.groups,o=e.length>E?e.slice(-E):e,r=t.length>E?t.slice(-E):t;return{ungrouped:o,groups:r,limited:e.length>o.length||t.length>r.length,ungroupedTotal:e.length,groupsTotal:t.length,ungroupedShowing:o.length,groupsShowing:r.length}}),pe=D(()=>{const e=C.value.length,t=e>te?e-te:0,o=C.value.slice(t),r=o.map(l=>`${l.time} | ${l.level} | ${l.message}`).join(` +`),u=o.length;return{text:r,total:e,showing:u,limited:e>u}}),q=e=>_.value[e]===!0,ge=e=>{_.value[e]=!q(e),localStorage.setItem("log-fold-state",JSON.stringify(_.value))},fe=e=>e.logs.length>M,ve=e=>e.logs.length<=M?e.logs:e.logs.slice(-M),be=()=>{(!i.limit||Number.isNaN(i.limit))&&(i.limit=300),i.limit=Math.min(Math.max(i.limit,10),1e3)},A=async()=>{if(!U){U=!0,I.value="",p.value="",be();try{const e=await B.list({limit:i.limit,level:i.level||void 0,search:i.search||void 0});oe.value=e.logs,C.value=e.logs.map(ue),G.value=xe(C.value),x.value=e.stats}catch(e){I.value=e.message||"日志加载失败"}finally{U=!1,requestAnimationFrame(J)}}},he=async()=>{p.value="",y.value="success";try{const e=await B.list({limit:1e3,level:i.level||void 0,search:i.search||void 0}),t=new Blob([JSON.stringify({exported_at:new Date().toISOString(),logs:e.logs},null,2)],{type:"application/json"}),o=URL.createObjectURL(t),r=document.createElement("a");r.href=o,r.download=`logs_${new Date().toISOString().slice(0,19).replace(/:/g,"-")}.json`,r.click(),URL.revokeObjectURL(o),p.value="导出成功"}catch(e){y.value="error",p.value=e.message||"导出失败"}},ye=async()=>{L.value=!1;try{await B.clear(),y.value="success",p.value="已清空日志",await A()}catch(e){y.value="error",p.value=e.message||"清空失败"}},S=()=>{N&&(window.clearTimeout(N),N=void 0)},z=()=>{!f.value||document.hidden||(N=window.setTimeout(async()=>{await A(),z()},dt))},F=()=>{S(),z()},_e=()=>{f.value=!f.value,f.value?F():S()},we=()=>{b.value=!b.value,requestAnimationFrame(J)},J=()=>{b.value&&k.value&&(k.value.scrollTop=k.value.scrollHeight),!b.value&&O.value&&(O.value.scrollTop=O.value.scrollHeight)},Y=()=>{document.hidden?S():f.value&&F()};return Ie(()=>{const e=localStorage.getItem("log-fold-state");if(e)try{_.value=JSON.parse(e)}catch{_.value={}}A(),F(),document.addEventListener("visibilitychange",Y)}),Le(()=>{S(),document.removeEventListener("visibilitychange",Y)}),(e,t)=>(d(),a(h,null,[s("div",Ne,[s("div",Te,[t[5]||(t[5]=s("p",{class:"text-base font-semibold text-foreground"},"管理日志",-1)),s("div",Ae," 自动刷新:"+n(f.value?"开启":"关闭"),1)]),s("div",Se,[s("div",$e,[t[6]||(t[6]=s("div",{class:"text-[11px] text-muted-foreground"},"总数",-1)),s("div",Ee,n(x.value?.memory.total??0),1)]),s("div",Me,[t[7]||(t[7]=s("div",{class:"text-[11px] text-muted-foreground"},"对话",-1)),s("div",Ge,n(x.value?.chat_count??0),1)]),s("div",Ue,[t[8]||(t[8]=s("div",{class:"text-[11px] text-muted-foreground"},"INFO",-1)),s("div",Ve,n(x.value?.memory.by_level.INFO??0),1)]),s("div",qe,[t[9]||(t[9]=s("div",{class:"text-[11px] text-muted-foreground"},"WARNING",-1)),s("div",Fe,n(x.value?.memory.by_level.WARNING??0),1)]),s("div",De,[t[10]||(t[10]=s("div",{class:"text-[11px] text-muted-foreground"},"ERROR",-1)),s("div",{class:v(["mt-1 text-lg font-semibold",x.value?.memory.by_level.ERROR?"text-rose-600":"text-foreground"])},n(x.value?.memory.by_level.ERROR??0),3)]),s("div",Be,[t[11]||(t[11]=s("div",{class:"text-[11px] text-muted-foreground"},"缓存上限",-1)),s("div",je,n(x.value?.memory.capacity??0),1)])]),s("div",He,[s("div",We,[Q(ke,{modelValue:i.level,"onUpdate:modelValue":t[0]||(t[0]=o=>i.level=o),options:se},null,8,["modelValue"])]),X(s("input",{"onUpdate:modelValue":t[1]||(t[1]=o=>i.search=o),type:"text",placeholder:"搜索...",class:"min-w-[200px] flex-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground sm:min-w-0"},null,512),[[ee,i.search,void 0,{trim:!0}]]),X(s("input",{"onUpdate:modelValue":t[2]||(t[2]=o=>i.limit=o),type:"number",min:"10",max:"1000",step:"100",class:"w-24 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground"},null,512),[[ee,i.limit,void 0,{number:!0}]]),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A}," 查询 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:he}," 导出 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:we},n(b.value?"结构化视图":"原始视图"),1),s("button",{class:v(["rounded-full px-4 py-2 text-xs font-medium transition-colors",f.value?"bg-primary text-primary-foreground":"border border-border text-muted-foreground hover:text-foreground"]),onClick:_e}," 自动刷新 ",2),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-destructive transition-colors hover:border-destructive/60",onClick:t[3]||(t[3]=o=>L.value=!0)}," 清空 ")]),p.value?(d(),a("div",{key:0,class:v(["mt-3 text-xs",le.value])},n(p.value),3)):m("",!0),I.value?(d(),a("div",ze,n(I.value),1)):m("",!0),b.value?(d(),a("div",{key:2,ref_key:"rawLogContainer",ref:k,class:"scrollbar-slim mt-4 max-h-[60vh] overflow-x-auto overflow-y-auto rounded-2xl border border-border bg-black px-4 py-3 text-xs text-green-200"},[s("pre",Je,n(pe.value.text),1)],512)):(d(),a("div",{key:3,ref_key:"structuredLogContainer",ref:O,class:"scrollbar-slim mt-4 max-h-[60vh] space-y-3 overflow-y-auto rounded-2xl border border-border bg-card px-4 py-3"},[T.value.ungrouped.length===0&&T.value.groups.length===0?(d(),a("div",Ye," 暂无日志 ")):m("",!0),(d(!0),a(h,null,w(T.value.ungrouped,(o,r)=>(d(),a("div",{key:`u-${r}`},[s("div",Pe,[s("div",Ze,[s("span",Ke,n(o.time),1),s("span",{class:v(W(o.level))},n(o.level),3),(d(!0),a(h,null,w(o.tags,u=>(d(),a("span",{key:u,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:H(u)})},n(u),5))),128)),o.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:V(o.accountId)})},n(o.accountId),5)):m("",!0)]),s("div",Qe,n(o.text),1)])]))),128)),(d(!0),a(h,null,w(T.value.groups,o=>(d(),a("div",{key:o.id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:r=>ge(o.id)},[s("span",{class:v(ae(o.status))},n(de(o.status)),3),s("span",et,"req_"+n(o.id),1),o.accountId?(d(),a("span",{key:0,class:"text-xs font-semibold",style:R({color:V(o.accountId)})},n(o.accountId),5)):m("",!0),o.model?(d(),a("span",tt,n(o.model),1)):m("",!0),fe(o)?(d(),a("span",ot," 仅显示最近 "+n(M)+" 条 ")):m("",!0),s("span",st,n(o.logs.length)+" 条日志",1),s("span",{class:v(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!q(o.id)}])}," ▸ ",2)],8,Xe),q(o.id)?m("",!0):(d(),a("div",rt,[(d(!0),a(h,null,w(ve(o),(r,u)=>(d(),a("div",{key:`${o.id}-${u}`,class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",nt,[s("span",lt,n(r.time),1),s("span",{class:v(W(r.level))},n(r.level),3),(d(!0),a(h,null,w(r.tags,l=>(d(),a("span",{key:l,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:H(l)})},n(l),5))),128)),r.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:V(r.accountId)})},n(r.accountId),5)):m("",!0)]),s("div",at,n(r.text),1)]))),128))]))]))),128))],512))]),Q(Oe,{open:L.value,title:"确认操作",message:"确定要清空所有运行日志吗?","confirm-text":"确认","cancel-text":"取消",onConfirm:ye,onCancel:t[4]||(t[4]=o=>L.value=!1)},null,8,["open"])],64))}});export{mt as default}; diff --git a/static/assets/Logs-Bm_tHokg.js b/static/assets/Logs-Bm_tHokg.js new file mode 100644 index 0000000000000000000000000000000000000000..ebea198971882f2d0133818cf6564f92e1938444 --- /dev/null +++ b/static/assets/Logs-Bm_tHokg.js @@ -0,0 +1,2 @@ +import{g as K,d as Re,h as c,H as Ce,i as D,o as Ie,j as Le,c as a,a as s,x as Q,b as m,t as n,n as v,m as X,v as ee,F as h,r as w,k as R,e as d}from"./index-CkXB0iyt.js";import{_ as ke}from"./SelectMenu.vue_vue_type_script_setup_true_lang-DEvRak0a.js";import{_ as Oe}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-87LA-h3c.js";const B={list:j=>K.get("/admin/log",{params:j}),clear:()=>K.delete("/admin/log?confirm=yes")},Ne={class:"rounded-3xl border border-border bg-card p-6"},Te={class:"flex flex-wrap items-center justify-between gap-3"},Ae={class:"text-xs text-muted-foreground"},Se={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-6"},$e={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ee={class:"mt-1 text-lg font-semibold text-foreground"},Me={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ge={class:"mt-1 text-lg font-semibold text-foreground"},Ue={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ve={class:"mt-1 text-lg font-semibold text-foreground"},qe={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Fe={class:"mt-1 text-lg font-semibold text-foreground"},De={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Be={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},je={class:"mt-1 text-lg font-semibold text-foreground"},He={class:"mt-4 flex flex-wrap items-center gap-2 sm:flex-nowrap"},We={class:"w-44 shrink-0"},ze={key:1,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Je={class:"whitespace-pre font-mono leading-relaxed"},Ye={key:0,class:"text-xs text-muted-foreground"},Pe={class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},Ze={class:"flex flex-wrap items-center gap-2"},Ke={class:"text-muted-foreground"},Qe={class:"w-full text-foreground md:w-auto md:flex-1"},Xe=["onClick"],et={class:"text-muted-foreground"},tt={key:1,class:"text-muted-foreground"},ot={key:2,class:"text-[10px] text-muted-foreground"},st={class:"text-muted-foreground"},rt={key:0,class:"space-y-2 px-4 py-3"},nt={class:"flex flex-wrap items-center gap-2"},lt={class:"text-muted-foreground"},at={class:"w-full text-foreground md:w-auto md:flex-1"},E=1e3,te=1e3,M=200,dt=3e3,mt=Re({__name:"Logs",setup(j){const oe=c([]),C=c([]),G=c({ungrouped:[],groups:[]}),x=c(null),I=c(""),p=c(""),y=c("success"),L=c(!1),f=c(!0),_=c({}),b=c(!0),k=c(null),O=c(null);let N,U=!1;const i=Ce({level:"",search:"",limit:300}),se=[{label:"全部",value:""},{label:"INFO",value:"INFO"},{label:"WARNING",value:"WARNING"},{label:"ERROR",value:"ERROR"}],re={SYSTEM:"#9e9e9e",CONFIG:"#607d8b",LOG:"#9e9e9e",AUTH:"#4caf50",SESSION:"#00bcd4",FILE:"#ff9800",CHAT:"#2196f3",API:"#8bc34a",CACHE:"#9c27b0",ACCOUNT:"#f44336",MULTI:"#673ab7"},ne={account_1:"#9c27b0",account_2:"#e91e63",account_3:"#00bcd4",account_4:"#4caf50",account_5:"#ff9800"},le=D(()=>y.value==="error"?"text-destructive":"text-muted-foreground"),H=e=>re[e]||"#757575",V=e=>ne[e]||"#757575",W=e=>{const t="rounded px-2 py-0.5 text-[10px] font-semibold";return e==="INFO"?`${t} bg-blue-100 text-blue-700`:e==="WARNING"?`${t} bg-amber-100 text-amber-700`:e==="ERROR"||e==="CRITICAL"?`${t} bg-rose-100 text-rose-700`:`${t} bg-violet-100 text-violet-700`},ae=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},de=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",ie=e=>{let t=e;const o=[];let r="";const u=/^\[([A-Za-z0-9_]+)\]/;for(;;){const l=t.match(u);if(!l)break;const g=l[1];if(t=t.slice(l[0].length).trim(),!g.startsWith("req_")){if(g.startsWith("account_")){r=g;continue}o.push(g)}}return{tags:o,accountId:r,text:t}},ue=e=>{const t=ie(e.message),o=e.message.match(/\[req_([a-z0-9]+)\]/i);return{...e,...t,reqId:o?o[1]:""}},ce=e=>{if(/^\d{4}-\d{2}-\d{2}T/.test(e))return new Date(e);if(/^\d{4}-\d{2}-\d{2}/.test(e))return new Date(e.replace(" ","T"));if(/^\d{2}:\d{2}:\d{2}$/.test(e)){const t=new Date,[o,r,u]=e.split(":").map(Number),l=new Date(t);return l.setHours(o,r,u,0),l}return null},me=e=>{const t=e[e.length-1],o=t.message;if(o.includes("响应完成")||o.includes("非流式响应完成"))return"success";if(t.level==="ERROR"||o.includes("失败"))return"error";const r=ce(t.time);return r&&(Date.now()-r.getTime())/1e3/60>5?"timeout":"in_progress"},xe=e=>{const t=new Map,o=[],r=[];e.forEach(l=>{l.reqId?(t.has(l.reqId)||(t.set(l.reqId,[]),o.push(l.reqId)),t.get(l.reqId)?.push(l)):r.push(l)});const u=o.map(l=>{const g=t.get(l)||[],$=g[0],P=$?.message.match(/\[(account_[^\]]+)\]/i),Z=$?.message.match(/收到请求: ([^ |]+)/)||$?.message.match(/Received request: ([^ |]+)/);return{id:l,logs:g,status:me(g),accountId:$?.accountId||(P?P[1]:""),model:Z?Z[1]:""}});return{ungrouped:r,groups:u}},T=D(()=>{const e=G.value.ungrouped,t=G.value.groups,o=e.length>E?e.slice(-E):e,r=t.length>E?t.slice(-E):t;return{ungrouped:o,groups:r,limited:e.length>o.length||t.length>r.length,ungroupedTotal:e.length,groupsTotal:t.length,ungroupedShowing:o.length,groupsShowing:r.length}}),pe=D(()=>{const e=C.value.length,t=e>te?e-te:0,o=C.value.slice(t),r=o.map(l=>`${l.time} | ${l.level} | ${l.message}`).join(` +`),u=o.length;return{text:r,total:e,showing:u,limited:e>u}}),q=e=>_.value[e]===!0,ge=e=>{_.value[e]=!q(e),localStorage.setItem("log-fold-state",JSON.stringify(_.value))},fe=e=>e.logs.length>M,ve=e=>e.logs.length<=M?e.logs:e.logs.slice(-M),be=()=>{(!i.limit||Number.isNaN(i.limit))&&(i.limit=300),i.limit=Math.min(Math.max(i.limit,10),1e3)},A=async()=>{if(!U){U=!0,I.value="",p.value="",be();try{const e=await B.list({limit:i.limit,level:i.level||void 0,search:i.search||void 0});oe.value=e.logs,C.value=e.logs.map(ue),G.value=xe(C.value),x.value=e.stats}catch(e){I.value=e.message||"日志加载失败"}finally{U=!1,requestAnimationFrame(J)}}},he=async()=>{p.value="",y.value="success";try{const e=await B.list({limit:1e3,level:i.level||void 0,search:i.search||void 0}),t=new Blob([JSON.stringify({exported_at:new Date().toISOString(),logs:e.logs},null,2)],{type:"application/json"}),o=URL.createObjectURL(t),r=document.createElement("a");r.href=o,r.download=`logs_${new Date().toISOString().slice(0,19).replace(/:/g,"-")}.json`,r.click(),URL.revokeObjectURL(o),p.value="导出成功"}catch(e){y.value="error",p.value=e.message||"导出失败"}},ye=async()=>{L.value=!1;try{await B.clear(),y.value="success",p.value="已清空日志",await A()}catch(e){y.value="error",p.value=e.message||"清空失败"}},S=()=>{N&&(window.clearTimeout(N),N=void 0)},z=()=>{!f.value||document.hidden||(N=window.setTimeout(async()=>{await A(),z()},dt))},F=()=>{S(),z()},_e=()=>{f.value=!f.value,f.value?F():S()},we=()=>{b.value=!b.value,requestAnimationFrame(J)},J=()=>{b.value&&k.value&&(k.value.scrollTop=k.value.scrollHeight),!b.value&&O.value&&(O.value.scrollTop=O.value.scrollHeight)},Y=()=>{document.hidden?S():f.value&&F()};return Ie(()=>{const e=localStorage.getItem("log-fold-state");if(e)try{_.value=JSON.parse(e)}catch{_.value={}}A(),F(),document.addEventListener("visibilitychange",Y)}),Le(()=>{S(),document.removeEventListener("visibilitychange",Y)}),(e,t)=>(d(),a(h,null,[s("div",Ne,[s("div",Te,[t[5]||(t[5]=s("p",{class:"text-base font-semibold text-foreground"},"管理日志",-1)),s("div",Ae," 自动刷新:"+n(f.value?"开启":"关闭"),1)]),s("div",Se,[s("div",$e,[t[6]||(t[6]=s("div",{class:"text-[11px] text-muted-foreground"},"总数",-1)),s("div",Ee,n(x.value?.memory.total??0),1)]),s("div",Me,[t[7]||(t[7]=s("div",{class:"text-[11px] text-muted-foreground"},"对话",-1)),s("div",Ge,n(x.value?.chat_count??0),1)]),s("div",Ue,[t[8]||(t[8]=s("div",{class:"text-[11px] text-muted-foreground"},"INFO",-1)),s("div",Ve,n(x.value?.memory.by_level.INFO??0),1)]),s("div",qe,[t[9]||(t[9]=s("div",{class:"text-[11px] text-muted-foreground"},"WARNING",-1)),s("div",Fe,n(x.value?.memory.by_level.WARNING??0),1)]),s("div",De,[t[10]||(t[10]=s("div",{class:"text-[11px] text-muted-foreground"},"ERROR",-1)),s("div",{class:v(["mt-1 text-lg font-semibold",x.value?.memory.by_level.ERROR?"text-rose-600":"text-foreground"])},n(x.value?.memory.by_level.ERROR??0),3)]),s("div",Be,[t[11]||(t[11]=s("div",{class:"text-[11px] text-muted-foreground"},"缓存上限",-1)),s("div",je,n(x.value?.memory.capacity??0),1)])]),s("div",He,[s("div",We,[Q(ke,{modelValue:i.level,"onUpdate:modelValue":t[0]||(t[0]=o=>i.level=o),options:se},null,8,["modelValue"])]),X(s("input",{"onUpdate:modelValue":t[1]||(t[1]=o=>i.search=o),type:"text",placeholder:"搜索...",class:"min-w-[200px] flex-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground sm:min-w-0"},null,512),[[ee,i.search,void 0,{trim:!0}]]),X(s("input",{"onUpdate:modelValue":t[2]||(t[2]=o=>i.limit=o),type:"number",min:"10",max:"1000",step:"100",class:"w-24 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground"},null,512),[[ee,i.limit,void 0,{number:!0}]]),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A}," 查询 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:he}," 导出 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:we},n(b.value?"结构化视图":"原始视图"),1),s("button",{class:v(["rounded-full px-4 py-2 text-xs font-medium transition-colors",f.value?"bg-primary text-primary-foreground":"border border-border text-muted-foreground hover:text-foreground"]),onClick:_e}," 自动刷新 ",2),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-destructive transition-colors hover:border-destructive/60",onClick:t[3]||(t[3]=o=>L.value=!0)}," 清空 ")]),p.value?(d(),a("div",{key:0,class:v(["mt-3 text-xs",le.value])},n(p.value),3)):m("",!0),I.value?(d(),a("div",ze,n(I.value),1)):m("",!0),b.value?(d(),a("div",{key:2,ref_key:"rawLogContainer",ref:k,class:"scrollbar-slim mt-4 max-h-[60vh] overflow-x-auto overflow-y-auto rounded-2xl border border-border bg-muted/30 px-4 py-3 text-[11px] text-muted-foreground"},[s("pre",Je,n(pe.value.text),1)],512)):(d(),a("div",{key:3,ref_key:"structuredLogContainer",ref:O,class:"scrollbar-slim mt-4 max-h-[60vh] space-y-3 overflow-y-auto rounded-2xl border border-border bg-card px-4 py-3"},[T.value.ungrouped.length===0&&T.value.groups.length===0?(d(),a("div",Ye," 暂无日志 ")):m("",!0),(d(!0),a(h,null,w(T.value.ungrouped,(o,r)=>(d(),a("div",{key:`u-${r}`},[s("div",Pe,[s("div",Ze,[s("span",Ke,n(o.time),1),s("span",{class:v(W(o.level))},n(o.level),3),(d(!0),a(h,null,w(o.tags,u=>(d(),a("span",{key:u,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:H(u)})},n(u),5))),128)),o.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:V(o.accountId)})},n(o.accountId),5)):m("",!0)]),s("div",Qe,n(o.text),1)])]))),128)),(d(!0),a(h,null,w(T.value.groups,o=>(d(),a("div",{key:o.id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:r=>ge(o.id)},[s("span",{class:v(ae(o.status))},n(de(o.status)),3),s("span",et,"req_"+n(o.id),1),o.accountId?(d(),a("span",{key:0,class:"text-xs font-semibold",style:R({color:V(o.accountId)})},n(o.accountId),5)):m("",!0),o.model?(d(),a("span",tt,n(o.model),1)):m("",!0),fe(o)?(d(),a("span",ot," 仅显示最近 "+n(M)+" 条 ")):m("",!0),s("span",st,n(o.logs.length)+" 条日志",1),s("span",{class:v(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!q(o.id)}])}," ▸ ",2)],8,Xe),q(o.id)?m("",!0):(d(),a("div",rt,[(d(!0),a(h,null,w(ve(o),(r,u)=>(d(),a("div",{key:`${o.id}-${u}`,class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",nt,[s("span",lt,n(r.time),1),s("span",{class:v(W(r.level))},n(r.level),3),(d(!0),a(h,null,w(r.tags,l=>(d(),a("span",{key:l,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:H(l)})},n(l),5))),128)),r.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:V(r.accountId)})},n(r.accountId),5)):m("",!0)]),s("div",at,n(r.text),1)]))),128))]))]))),128))],512))]),Q(Oe,{open:L.value,title:"确认操作",message:"确定要清空所有运行日志吗?","confirm-text":"确认","cancel-text":"取消",onConfirm:ye,onCancel:t[4]||(t[4]=o=>L.value=!1)},null,8,["open"])],64))}});export{mt as default}; diff --git a/static/assets/Logs-BqF5MQSG.js b/static/assets/Logs-BqF5MQSG.js new file mode 100644 index 0000000000000000000000000000000000000000..79d8b4c8d199802be6548cb45b2a1b0c510cc4c6 --- /dev/null +++ b/static/assets/Logs-BqF5MQSG.js @@ -0,0 +1,2 @@ +import{g as K,d as Re,h as c,H as Ce,i as D,o as Ie,j as Le,c as a,a as s,x as Q,b as m,t as n,n as v,m as X,v as ee,F as h,r as w,k as R,e as d}from"./index-DhxxzIOh.js";import{_ as ke}from"./SelectMenu.vue_vue_type_script_setup_true_lang-Vv-llkmB.js";import{_ as Oe}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-C_ZbANx_.js";const B={list:j=>K.get("/admin/log",{params:j}),clear:()=>K.delete("/admin/log?confirm=yes")},Ne={class:"rounded-3xl border border-border bg-card p-6"},Te={class:"flex flex-wrap items-center justify-between gap-3"},Ae={class:"text-xs text-muted-foreground"},Se={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-6"},$e={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ee={class:"mt-1 text-lg font-semibold text-foreground"},Me={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ge={class:"mt-1 text-lg font-semibold text-foreground"},Ue={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ve={class:"mt-1 text-lg font-semibold text-foreground"},qe={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Fe={class:"mt-1 text-lg font-semibold text-foreground"},De={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Be={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},je={class:"mt-1 text-lg font-semibold text-foreground"},He={class:"mt-4 flex flex-wrap items-center gap-2 sm:flex-nowrap"},We={class:"w-44 shrink-0"},ze={key:1,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Je={class:"whitespace-pre font-mono leading-relaxed"},Ye={key:0,class:"text-xs text-muted-foreground"},Pe={class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},Ze={class:"flex flex-wrap items-center gap-2"},Ke={class:"text-muted-foreground"},Qe={class:"w-full text-foreground md:w-auto md:flex-1"},Xe=["onClick"],et={class:"text-muted-foreground"},tt={key:1,class:"text-muted-foreground"},ot={key:2,class:"text-[10px] text-muted-foreground"},st={class:"text-muted-foreground"},rt={key:0,class:"space-y-2 px-4 py-3"},nt={class:"flex flex-wrap items-center gap-2"},lt={class:"text-muted-foreground"},at={class:"w-full text-foreground md:w-auto md:flex-1"},E=1e3,te=1e3,M=200,dt=3e3,mt=Re({__name:"Logs",setup(j){const oe=c([]),C=c([]),G=c({ungrouped:[],groups:[]}),x=c(null),I=c(""),p=c(""),y=c("success"),L=c(!1),f=c(!0),_=c({}),b=c(!0),k=c(null),O=c(null);let N,U=!1;const i=Ce({level:"",search:"",limit:300}),se=[{label:"全部",value:""},{label:"INFO",value:"INFO"},{label:"WARNING",value:"WARNING"},{label:"ERROR",value:"ERROR"}],re={SYSTEM:"#9e9e9e",CONFIG:"#607d8b",LOG:"#9e9e9e",AUTH:"#4caf50",SESSION:"#00bcd4",FILE:"#ff9800",CHAT:"#2196f3",API:"#8bc34a",CACHE:"#9c27b0",ACCOUNT:"#f44336",MULTI:"#673ab7"},ne={account_1:"#9c27b0",account_2:"#e91e63",account_3:"#00bcd4",account_4:"#4caf50",account_5:"#ff9800"},le=D(()=>y.value==="error"?"text-destructive":"text-muted-foreground"),H=e=>re[e]||"#757575",V=e=>ne[e]||"#757575",W=e=>{const t="rounded px-2 py-0.5 text-[10px] font-semibold";return e==="INFO"?`${t} bg-blue-100 text-blue-700`:e==="WARNING"?`${t} bg-amber-100 text-amber-700`:e==="ERROR"||e==="CRITICAL"?`${t} bg-rose-100 text-rose-700`:`${t} bg-violet-100 text-violet-700`},ae=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},de=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",ie=e=>{let t=e;const o=[];let r="";const u=/^\[([A-Za-z0-9_]+)\]/;for(;;){const l=t.match(u);if(!l)break;const g=l[1];if(t=t.slice(l[0].length).trim(),!g.startsWith("req_")){if(g.startsWith("account_")){r=g;continue}o.push(g)}}return{tags:o,accountId:r,text:t}},ue=e=>{const t=ie(e.message),o=e.message.match(/\[req_([a-z0-9]+)\]/i);return{...e,...t,reqId:o?o[1]:""}},ce=e=>{if(/^\d{4}-\d{2}-\d{2}T/.test(e))return new Date(e);if(/^\d{4}-\d{2}-\d{2}/.test(e))return new Date(e.replace(" ","T"));if(/^\d{2}:\d{2}:\d{2}$/.test(e)){const t=new Date,[o,r,u]=e.split(":").map(Number),l=new Date(t);return l.setHours(o,r,u,0),l}return null},me=e=>{const t=e[e.length-1],o=t.message;if(o.includes("响应完成")||o.includes("非流式响应完成"))return"success";if(t.level==="ERROR"||o.includes("失败"))return"error";const r=ce(t.time);return r&&(Date.now()-r.getTime())/1e3/60>5?"timeout":"in_progress"},xe=e=>{const t=new Map,o=[],r=[];e.forEach(l=>{l.reqId?(t.has(l.reqId)||(t.set(l.reqId,[]),o.push(l.reqId)),t.get(l.reqId)?.push(l)):r.push(l)});const u=o.map(l=>{const g=t.get(l)||[],$=g[0],P=$?.message.match(/\[(account_[^\]]+)\]/i),Z=$?.message.match(/收到请求: ([^ |]+)/)||$?.message.match(/Received request: ([^ |]+)/);return{id:l,logs:g,status:me(g),accountId:$?.accountId||(P?P[1]:""),model:Z?Z[1]:""}});return{ungrouped:r,groups:u}},T=D(()=>{const e=G.value.ungrouped,t=G.value.groups,o=e.length>E?e.slice(-E):e,r=t.length>E?t.slice(-E):t;return{ungrouped:o,groups:r,limited:e.length>o.length||t.length>r.length,ungroupedTotal:e.length,groupsTotal:t.length,ungroupedShowing:o.length,groupsShowing:r.length}}),pe=D(()=>{const e=C.value.length,t=e>te?e-te:0,o=C.value.slice(t),r=o.map(l=>`${l.time} | ${l.level} | ${l.message}`).join(` +`),u=o.length;return{text:r,total:e,showing:u,limited:e>u}}),q=e=>_.value[e]===!0,ge=e=>{_.value[e]=!q(e),localStorage.setItem("log-fold-state",JSON.stringify(_.value))},fe=e=>e.logs.length>M,ve=e=>e.logs.length<=M?e.logs:e.logs.slice(-M),be=()=>{(!i.limit||Number.isNaN(i.limit))&&(i.limit=300),i.limit=Math.min(Math.max(i.limit,10),1e3)},A=async()=>{if(!U){U=!0,I.value="",p.value="",be();try{const e=await B.list({limit:i.limit,level:i.level||void 0,search:i.search||void 0});oe.value=e.logs,C.value=e.logs.map(ue),G.value=xe(C.value),x.value=e.stats}catch(e){I.value=e.message||"日志加载失败"}finally{U=!1,requestAnimationFrame(J)}}},he=async()=>{p.value="",y.value="success";try{const e=await B.list({limit:1e3,level:i.level||void 0,search:i.search||void 0}),t=new Blob([JSON.stringify({exported_at:new Date().toISOString(),logs:e.logs},null,2)],{type:"application/json"}),o=URL.createObjectURL(t),r=document.createElement("a");r.href=o,r.download=`logs_${new Date().toISOString().slice(0,19).replace(/:/g,"-")}.json`,r.click(),URL.revokeObjectURL(o),p.value="导出成功"}catch(e){y.value="error",p.value=e.message||"导出失败"}},ye=async()=>{L.value=!1;try{await B.clear(),y.value="success",p.value="已清空日志",await A()}catch(e){y.value="error",p.value=e.message||"清空失败"}},S=()=>{N&&(window.clearTimeout(N),N=void 0)},z=()=>{!f.value||document.hidden||(N=window.setTimeout(async()=>{await A(),z()},dt))},F=()=>{S(),z()},_e=()=>{f.value=!f.value,f.value?F():S()},we=()=>{b.value=!b.value,requestAnimationFrame(J)},J=()=>{b.value&&k.value&&(k.value.scrollTop=k.value.scrollHeight),!b.value&&O.value&&(O.value.scrollTop=O.value.scrollHeight)},Y=()=>{document.hidden?S():f.value&&F()};return Ie(()=>{const e=localStorage.getItem("log-fold-state");if(e)try{_.value=JSON.parse(e)}catch{_.value={}}A(),F(),document.addEventListener("visibilitychange",Y)}),Le(()=>{S(),document.removeEventListener("visibilitychange",Y)}),(e,t)=>(d(),a(h,null,[s("div",Ne,[s("div",Te,[t[5]||(t[5]=s("p",{class:"text-base font-semibold text-foreground"},"管理日志",-1)),s("div",Ae," 自动刷新:"+n(f.value?"开启":"关闭"),1)]),s("div",Se,[s("div",$e,[t[6]||(t[6]=s("div",{class:"text-[11px] text-muted-foreground"},"总数",-1)),s("div",Ee,n(x.value?.memory.total??0),1)]),s("div",Me,[t[7]||(t[7]=s("div",{class:"text-[11px] text-muted-foreground"},"对话",-1)),s("div",Ge,n(x.value?.chat_count??0),1)]),s("div",Ue,[t[8]||(t[8]=s("div",{class:"text-[11px] text-muted-foreground"},"INFO",-1)),s("div",Ve,n(x.value?.memory.by_level.INFO??0),1)]),s("div",qe,[t[9]||(t[9]=s("div",{class:"text-[11px] text-muted-foreground"},"WARNING",-1)),s("div",Fe,n(x.value?.memory.by_level.WARNING??0),1)]),s("div",De,[t[10]||(t[10]=s("div",{class:"text-[11px] text-muted-foreground"},"ERROR",-1)),s("div",{class:v(["mt-1 text-lg font-semibold",x.value?.memory.by_level.ERROR?"text-rose-600":"text-foreground"])},n(x.value?.memory.by_level.ERROR??0),3)]),s("div",Be,[t[11]||(t[11]=s("div",{class:"text-[11px] text-muted-foreground"},"缓存上限",-1)),s("div",je,n(x.value?.memory.capacity??0),1)])]),s("div",He,[s("div",We,[Q(ke,{modelValue:i.level,"onUpdate:modelValue":t[0]||(t[0]=o=>i.level=o),options:se},null,8,["modelValue"])]),X(s("input",{"onUpdate:modelValue":t[1]||(t[1]=o=>i.search=o),type:"text",placeholder:"搜索...",class:"min-w-[200px] flex-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground sm:min-w-0"},null,512),[[ee,i.search,void 0,{trim:!0}]]),X(s("input",{"onUpdate:modelValue":t[2]||(t[2]=o=>i.limit=o),type:"number",min:"10",max:"1000",step:"100",class:"w-24 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground"},null,512),[[ee,i.limit,void 0,{number:!0}]]),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A}," 查询 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:he}," 导出 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:we},n(b.value?"结构化视图":"原始视图"),1),s("button",{class:v(["rounded-full px-4 py-2 text-xs font-medium transition-colors",f.value?"bg-primary text-primary-foreground":"border border-border text-muted-foreground hover:text-foreground"]),onClick:_e}," 自动刷新 ",2),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-destructive transition-colors hover:border-destructive/60",onClick:t[3]||(t[3]=o=>L.value=!0)}," 清空 ")]),p.value?(d(),a("div",{key:0,class:v(["mt-3 text-xs",le.value])},n(p.value),3)):m("",!0),I.value?(d(),a("div",ze,n(I.value),1)):m("",!0),b.value?(d(),a("div",{key:2,ref_key:"rawLogContainer",ref:k,class:"scrollbar-slim mt-4 max-h-[60vh] overflow-x-auto overflow-y-auto rounded-2xl border border-border bg-muted/30 px-4 py-3 text-[11px] text-muted-foreground"},[s("pre",Je,n(pe.value.text),1)],512)):(d(),a("div",{key:3,ref_key:"structuredLogContainer",ref:O,class:"scrollbar-slim mt-4 max-h-[60vh] space-y-3 overflow-y-auto rounded-2xl border border-border bg-card px-4 py-3"},[T.value.ungrouped.length===0&&T.value.groups.length===0?(d(),a("div",Ye," 暂无日志 ")):m("",!0),(d(!0),a(h,null,w(T.value.ungrouped,(o,r)=>(d(),a("div",{key:`u-${r}`},[s("div",Pe,[s("div",Ze,[s("span",Ke,n(o.time),1),s("span",{class:v(W(o.level))},n(o.level),3),(d(!0),a(h,null,w(o.tags,u=>(d(),a("span",{key:u,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:H(u)})},n(u),5))),128)),o.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:V(o.accountId)})},n(o.accountId),5)):m("",!0)]),s("div",Qe,n(o.text),1)])]))),128)),(d(!0),a(h,null,w(T.value.groups,o=>(d(),a("div",{key:o.id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:r=>ge(o.id)},[s("span",{class:v(ae(o.status))},n(de(o.status)),3),s("span",et,"req_"+n(o.id),1),o.accountId?(d(),a("span",{key:0,class:"text-xs font-semibold",style:R({color:V(o.accountId)})},n(o.accountId),5)):m("",!0),o.model?(d(),a("span",tt,n(o.model),1)):m("",!0),fe(o)?(d(),a("span",ot," 仅显示最近 "+n(M)+" 条 ")):m("",!0),s("span",st,n(o.logs.length)+" 条日志",1),s("span",{class:v(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!q(o.id)}])}," ▸ ",2)],8,Xe),q(o.id)?m("",!0):(d(),a("div",rt,[(d(!0),a(h,null,w(ve(o),(r,u)=>(d(),a("div",{key:`${o.id}-${u}`,class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",nt,[s("span",lt,n(r.time),1),s("span",{class:v(W(r.level))},n(r.level),3),(d(!0),a(h,null,w(r.tags,l=>(d(),a("span",{key:l,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:H(l)})},n(l),5))),128)),r.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:V(r.accountId)})},n(r.accountId),5)):m("",!0)]),s("div",at,n(r.text),1)]))),128))]))]))),128))],512))]),Q(Oe,{open:L.value,title:"确认操作",message:"确定要清空所有运行日志吗?","confirm-text":"确认","cancel-text":"取消",onConfirm:ye,onCancel:t[4]||(t[4]=o=>L.value=!1)},null,8,["open"])],64))}});export{mt as default}; diff --git a/static/assets/Logs-C0AYmMGH.js b/static/assets/Logs-C0AYmMGH.js new file mode 100644 index 0000000000000000000000000000000000000000..2a8a75c6f3d9e7ef6fab8c45638b99715046ade1 --- /dev/null +++ b/static/assets/Logs-C0AYmMGH.js @@ -0,0 +1,2 @@ +import{g as K,d as Re,h as c,I as Ie,i as D,o as Ce,j as Le,c as a,a as s,p as Q,b as m,t as n,n as v,q as X,v as ee,F as h,r as w,k as R,e as d}from"./index-OP3F9IRB.js";import{_ as ke}from"./SelectMenu.vue_vue_type_script_setup_true_lang-BN7xX40H.js";import{_ as Oe}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-CPmtaJk8.js";const B={list:j=>K.get("/admin/log",{params:j}),clear:()=>K.delete("/admin/log?confirm=yes")},Ne={class:"rounded-3xl border border-border bg-card p-6"},Te={class:"flex flex-wrap items-center justify-between gap-3"},Ae={class:"text-xs text-muted-foreground"},Se={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-6"},$e={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ee={class:"mt-1 text-lg font-semibold text-foreground"},Me={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ge={class:"mt-1 text-lg font-semibold text-foreground"},Ue={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},qe={class:"mt-1 text-lg font-semibold text-foreground"},Ve={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Fe={class:"mt-1 text-lg font-semibold text-foreground"},De={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Be={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},je={class:"mt-1 text-lg font-semibold text-foreground"},We={class:"mt-4 flex flex-wrap items-center gap-2 sm:flex-nowrap"},He={class:"w-44 shrink-0"},ze={key:1,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Je={class:"whitespace-pre font-mono leading-relaxed"},Ye={key:0,class:"text-xs text-muted-foreground"},Pe={class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},Ze={class:"flex flex-wrap items-center gap-2"},Ke={class:"text-muted-foreground"},Qe={class:"w-full text-foreground md:w-auto md:flex-1"},Xe=["onClick"],et={class:"text-muted-foreground"},tt={key:1,class:"text-muted-foreground"},ot={key:2,class:"text-[10px] text-muted-foreground"},st={class:"text-muted-foreground"},rt={key:0,class:"space-y-2 px-4 py-3"},nt={class:"flex flex-wrap items-center gap-2"},lt={class:"text-muted-foreground"},at={class:"w-full text-foreground md:w-auto md:flex-1"},E=1e3,te=1e3,M=200,dt=3e3,mt=Re({__name:"Logs",setup(j){const oe=c([]),I=c([]),G=c({ungrouped:[],groups:[]}),x=c(null),C=c(""),p=c(""),y=c("success"),L=c(!1),f=c(!0),_=c({}),b=c(!0),k=c(null),O=c(null);let N,U=!1;const i=Ie({level:"",search:"",limit:300}),se=[{label:"全部",value:""},{label:"INFO",value:"INFO"},{label:"WARNING",value:"WARNING"},{label:"ERROR",value:"ERROR"}],re={SYSTEM:"#9e9e9e",CONFIG:"#607d8b",LOG:"#9e9e9e",AUTH:"#4caf50",SESSION:"#00bcd4",FILE:"#ff9800",CHAT:"#2196f3",API:"#8bc34a",CACHE:"#9c27b0",ACCOUNT:"#f44336",MULTI:"#673ab7"},ne={account_1:"#9c27b0",account_2:"#e91e63",account_3:"#00bcd4",account_4:"#4caf50",account_5:"#ff9800"},le=D(()=>y.value==="error"?"text-destructive":"text-muted-foreground"),W=e=>re[e]||"#757575",q=e=>ne[e]||"#757575",H=e=>{const t="rounded px-2 py-0.5 text-[10px] font-semibold";return e==="INFO"?`${t} bg-blue-100 text-blue-700`:e==="WARNING"?`${t} bg-amber-100 text-amber-700`:e==="ERROR"||e==="CRITICAL"?`${t} bg-rose-100 text-rose-700`:`${t} bg-violet-100 text-violet-700`},ae=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},de=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",ie=e=>{let t=e;const o=[];let r="";const u=/^\[([A-Za-z0-9_]+)\]/;for(;;){const l=t.match(u);if(!l)break;const g=l[1];if(t=t.slice(l[0].length).trim(),!g.startsWith("req_")){if(g.startsWith("account_")){r=g;continue}o.push(g)}}return{tags:o,accountId:r,text:t}},ue=e=>{const t=ie(e.message),o=e.message.match(/\[req_([a-z0-9]+)\]/i);return{...e,...t,reqId:o?o[1]:""}},ce=e=>{if(/^\d{4}-\d{2}-\d{2}T/.test(e))return new Date(e);if(/^\d{4}-\d{2}-\d{2}/.test(e))return new Date(e.replace(" ","T"));if(/^\d{2}:\d{2}:\d{2}$/.test(e)){const t=new Date,[o,r,u]=e.split(":").map(Number),l=new Date(t);return l.setHours(o,r,u,0),l}return null},me=e=>{const t=e[e.length-1],o=t.message;if(o.includes("响应完成")||o.includes("非流式响应完成"))return"success";if(t.level==="ERROR"||o.includes("失败"))return"error";const r=ce(t.time);return r&&(Date.now()-r.getTime())/1e3/60>5?"timeout":"in_progress"},xe=e=>{const t=new Map,o=[],r=[];e.forEach(l=>{l.reqId?(t.has(l.reqId)||(t.set(l.reqId,[]),o.push(l.reqId)),t.get(l.reqId)?.push(l)):r.push(l)});const u=o.map(l=>{const g=t.get(l)||[],$=g[0],P=$?.message.match(/\[(account_[^\]]+)\]/i),Z=$?.message.match(/收到请求: ([^ |]+)/)||$?.message.match(/Received request: ([^ |]+)/);return{id:l,logs:g,status:me(g),accountId:$?.accountId||(P?P[1]:""),model:Z?Z[1]:""}});return{ungrouped:r,groups:u}},T=D(()=>{const e=G.value.ungrouped,t=G.value.groups,o=e.length>E?e.slice(-E):e,r=t.length>E?t.slice(-E):t;return{ungrouped:o,groups:r,limited:e.length>o.length||t.length>r.length,ungroupedTotal:e.length,groupsTotal:t.length,ungroupedShowing:o.length,groupsShowing:r.length}}),pe=D(()=>{const e=I.value.length,t=e>te?e-te:0,o=I.value.slice(t),r=o.map(l=>`${l.time} | ${l.level} | ${l.message}`).join(` +`),u=o.length;return{text:r,total:e,showing:u,limited:e>u}}),V=e=>_.value[e]===!0,ge=e=>{_.value[e]=!V(e),localStorage.setItem("log-fold-state",JSON.stringify(_.value))},fe=e=>e.logs.length>M,ve=e=>e.logs.length<=M?e.logs:e.logs.slice(-M),be=()=>{(!i.limit||Number.isNaN(i.limit))&&(i.limit=300),i.limit=Math.min(Math.max(i.limit,10),1e3)},A=async()=>{if(!U){U=!0,C.value="",p.value="",be();try{const e=await B.list({limit:i.limit,level:i.level||void 0,search:i.search||void 0});oe.value=e.logs,I.value=e.logs.map(ue),G.value=xe(I.value),x.value=e.stats}catch(e){C.value=e.message||"日志加载失败"}finally{U=!1,requestAnimationFrame(J)}}},he=async()=>{p.value="",y.value="success";try{const e=await B.list({limit:1e3,level:i.level||void 0,search:i.search||void 0}),t=new Blob([JSON.stringify({exported_at:new Date().toISOString(),logs:e.logs},null,2)],{type:"application/json"}),o=URL.createObjectURL(t),r=document.createElement("a");r.href=o,r.download=`logs_${new Date().toISOString().slice(0,19).replace(/:/g,"-")}.json`,r.click(),URL.revokeObjectURL(o),p.value="导出成功"}catch(e){y.value="error",p.value=e.message||"导出失败"}},ye=async()=>{L.value=!1;try{await B.clear(),y.value="success",p.value="已清空日志",await A()}catch(e){y.value="error",p.value=e.message||"清空失败"}},S=()=>{N&&(window.clearTimeout(N),N=void 0)},z=()=>{!f.value||document.hidden||(N=window.setTimeout(async()=>{await A(),z()},dt))},F=()=>{S(),z()},_e=()=>{f.value=!f.value,f.value?F():S()},we=()=>{b.value=!b.value,requestAnimationFrame(J)},J=()=>{b.value&&k.value&&(k.value.scrollTop=k.value.scrollHeight),!b.value&&O.value&&(O.value.scrollTop=O.value.scrollHeight)},Y=()=>{document.hidden?S():f.value&&F()};return Ce(()=>{const e=localStorage.getItem("log-fold-state");if(e)try{_.value=JSON.parse(e)}catch{_.value={}}A(),F(),document.addEventListener("visibilitychange",Y)}),Le(()=>{S(),document.removeEventListener("visibilitychange",Y)}),(e,t)=>(d(),a(h,null,[s("div",Ne,[s("div",Te,[t[5]||(t[5]=s("p",{class:"text-base font-semibold text-foreground"},"管理日志",-1)),s("div",Ae," 自动刷新:"+n(f.value?"开启":"关闭"),1)]),s("div",Se,[s("div",$e,[t[6]||(t[6]=s("div",{class:"text-[11px] text-muted-foreground"},"总数",-1)),s("div",Ee,n(x.value?.memory.total??0),1)]),s("div",Me,[t[7]||(t[7]=s("div",{class:"text-[11px] text-muted-foreground"},"对话",-1)),s("div",Ge,n(x.value?.chat_count??0),1)]),s("div",Ue,[t[8]||(t[8]=s("div",{class:"text-[11px] text-muted-foreground"},"INFO",-1)),s("div",qe,n(x.value?.memory.by_level.INFO??0),1)]),s("div",Ve,[t[9]||(t[9]=s("div",{class:"text-[11px] text-muted-foreground"},"WARNING",-1)),s("div",Fe,n(x.value?.memory.by_level.WARNING??0),1)]),s("div",De,[t[10]||(t[10]=s("div",{class:"text-[11px] text-muted-foreground"},"ERROR",-1)),s("div",{class:v(["mt-1 text-lg font-semibold",x.value?.memory.by_level.ERROR?"text-rose-600":"text-foreground"])},n(x.value?.memory.by_level.ERROR??0),3)]),s("div",Be,[t[11]||(t[11]=s("div",{class:"text-[11px] text-muted-foreground"},"缓存上限",-1)),s("div",je,n(x.value?.memory.capacity??0),1)])]),s("div",We,[s("div",He,[Q(ke,{modelValue:i.level,"onUpdate:modelValue":t[0]||(t[0]=o=>i.level=o),options:se},null,8,["modelValue"])]),X(s("input",{"onUpdate:modelValue":t[1]||(t[1]=o=>i.search=o),type:"text",placeholder:"搜索...",class:"min-w-[200px] flex-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground sm:min-w-0"},null,512),[[ee,i.search,void 0,{trim:!0}]]),X(s("input",{"onUpdate:modelValue":t[2]||(t[2]=o=>i.limit=o),type:"number",min:"10",max:"1000",step:"100",class:"w-24 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground"},null,512),[[ee,i.limit,void 0,{number:!0}]]),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A}," 查询 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:he}," 导出 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:we},n(b.value?"结构化视图":"原始视图"),1),s("button",{class:v(["rounded-full px-4 py-2 text-xs font-medium transition-colors",f.value?"bg-primary text-primary-foreground":"border border-border text-muted-foreground hover:text-foreground"]),onClick:_e}," 自动刷新 ",2),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-destructive transition-colors hover:border-destructive/60",onClick:t[3]||(t[3]=o=>L.value=!0)}," 清空 ")]),p.value?(d(),a("div",{key:0,class:v(["mt-3 text-xs",le.value])},n(p.value),3)):m("",!0),C.value?(d(),a("div",ze,n(C.value),1)):m("",!0),b.value?(d(),a("div",{key:2,ref_key:"rawLogContainer",ref:k,class:"scrollbar-slim mt-4 max-h-[60vh] overflow-x-auto overflow-y-auto rounded-2xl border border-border bg-muted/30 px-4 py-3 text-[11px] text-muted-foreground"},[s("pre",Je,n(pe.value.text),1)],512)):(d(),a("div",{key:3,ref_key:"structuredLogContainer",ref:O,class:"scrollbar-slim mt-4 max-h-[60vh] space-y-3 overflow-y-auto rounded-2xl border border-border bg-card px-4 py-3"},[T.value.ungrouped.length===0&&T.value.groups.length===0?(d(),a("div",Ye," 暂无日志 ")):m("",!0),(d(!0),a(h,null,w(T.value.ungrouped,(o,r)=>(d(),a("div",{key:`u-${r}`},[s("div",Pe,[s("div",Ze,[s("span",Ke,n(o.time),1),s("span",{class:v(H(o.level))},n(o.level),3),(d(!0),a(h,null,w(o.tags,u=>(d(),a("span",{key:u,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:W(u)})},n(u),5))),128)),o.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:q(o.accountId)})},n(o.accountId),5)):m("",!0)]),s("div",Qe,n(o.text),1)])]))),128)),(d(!0),a(h,null,w(T.value.groups,o=>(d(),a("div",{key:o.id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:r=>ge(o.id)},[s("span",{class:v(ae(o.status))},n(de(o.status)),3),s("span",et,"req_"+n(o.id),1),o.accountId?(d(),a("span",{key:0,class:"text-xs font-semibold",style:R({color:q(o.accountId)})},n(o.accountId),5)):m("",!0),o.model?(d(),a("span",tt,n(o.model),1)):m("",!0),fe(o)?(d(),a("span",ot," 仅显示最近 "+n(M)+" 条 ")):m("",!0),s("span",st,n(o.logs.length)+" 条日志",1),s("span",{class:v(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!V(o.id)}])}," ▸ ",2)],8,Xe),V(o.id)?m("",!0):(d(),a("div",rt,[(d(!0),a(h,null,w(ve(o),(r,u)=>(d(),a("div",{key:`${o.id}-${u}`,class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",nt,[s("span",lt,n(r.time),1),s("span",{class:v(H(r.level))},n(r.level),3),(d(!0),a(h,null,w(r.tags,l=>(d(),a("span",{key:l,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:W(l)})},n(l),5))),128)),r.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:q(r.accountId)})},n(r.accountId),5)):m("",!0)]),s("div",at,n(r.text),1)]))),128))]))]))),128))],512))]),Q(Oe,{open:L.value,title:"确认操作",message:"确定要清空所有运行日志吗?","confirm-text":"确认","cancel-text":"取消",onConfirm:ye,onCancel:t[4]||(t[4]=o=>L.value=!1)},null,8,["open"])],64))}});export{mt as default}; diff --git a/static/assets/Logs-CECdzzbe.js b/static/assets/Logs-CECdzzbe.js new file mode 100644 index 0000000000000000000000000000000000000000..1c18f85749397aba33756b80f08d9ae7577c5f8c --- /dev/null +++ b/static/assets/Logs-CECdzzbe.js @@ -0,0 +1,2 @@ +import{g as K,d as Re,h as c,H as Ce,i as D,o as Ie,j as Le,c as a,a as s,y as Q,b as m,t as n,n as v,p as X,v as ee,F as h,r as w,k as R,e as d}from"./index-Bx7qSams.js";import{_ as ke}from"./SelectMenu.vue_vue_type_script_setup_true_lang-CJjLLYhZ.js";import{_ as Oe}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-CLzCrpfO.js";const B={list:j=>K.get("/admin/log",{params:j}),clear:()=>K.delete("/admin/log?confirm=yes")},Ne={class:"rounded-3xl border border-border bg-card p-6"},Te={class:"flex flex-wrap items-center justify-between gap-3"},Ae={class:"text-xs text-muted-foreground"},Se={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-6"},$e={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ee={class:"mt-1 text-lg font-semibold text-foreground"},Me={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ge={class:"mt-1 text-lg font-semibold text-foreground"},Ue={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ve={class:"mt-1 text-lg font-semibold text-foreground"},qe={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Fe={class:"mt-1 text-lg font-semibold text-foreground"},De={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Be={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},je={class:"mt-1 text-lg font-semibold text-foreground"},He={class:"mt-4 flex flex-wrap items-center gap-2 sm:flex-nowrap"},We={class:"w-44 shrink-0"},ze={key:1,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Je={class:"whitespace-pre font-mono leading-relaxed"},Ye={key:0,class:"text-xs text-muted-foreground"},Pe={class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},Ze={class:"flex flex-wrap items-center gap-2"},Ke={class:"text-muted-foreground"},Qe={class:"w-full text-foreground md:w-auto md:flex-1"},Xe=["onClick"],et={class:"text-muted-foreground"},tt={key:1,class:"text-muted-foreground"},ot={key:2,class:"text-[10px] text-muted-foreground"},st={class:"text-muted-foreground"},rt={key:0,class:"space-y-2 px-4 py-3"},nt={class:"flex flex-wrap items-center gap-2"},lt={class:"text-muted-foreground"},at={class:"w-full text-foreground md:w-auto md:flex-1"},E=1e3,te=1e3,M=200,dt=3e3,mt=Re({__name:"Logs",setup(j){const oe=c([]),C=c([]),G=c({ungrouped:[],groups:[]}),x=c(null),I=c(""),p=c(""),y=c("success"),L=c(!1),f=c(!0),_=c({}),b=c(!0),k=c(null),O=c(null);let N,U=!1;const i=Ce({level:"",search:"",limit:300}),se=[{label:"全部",value:""},{label:"INFO",value:"INFO"},{label:"WARNING",value:"WARNING"},{label:"ERROR",value:"ERROR"}],re={SYSTEM:"#9e9e9e",CONFIG:"#607d8b",LOG:"#9e9e9e",AUTH:"#4caf50",SESSION:"#00bcd4",FILE:"#ff9800",CHAT:"#2196f3",API:"#8bc34a",CACHE:"#9c27b0",ACCOUNT:"#f44336",MULTI:"#673ab7"},ne={account_1:"#9c27b0",account_2:"#e91e63",account_3:"#00bcd4",account_4:"#4caf50",account_5:"#ff9800"},le=D(()=>y.value==="error"?"text-destructive":"text-muted-foreground"),H=e=>re[e]||"#757575",V=e=>ne[e]||"#757575",W=e=>{const t="rounded px-2 py-0.5 text-[10px] font-semibold";return e==="INFO"?`${t} bg-blue-100 text-blue-700`:e==="WARNING"?`${t} bg-amber-100 text-amber-700`:e==="ERROR"||e==="CRITICAL"?`${t} bg-rose-100 text-rose-700`:`${t} bg-violet-100 text-violet-700`},ae=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},de=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",ie=e=>{let t=e;const o=[];let r="";const u=/^\[([A-Za-z0-9_]+)\]/;for(;;){const l=t.match(u);if(!l)break;const g=l[1];if(t=t.slice(l[0].length).trim(),!g.startsWith("req_")){if(g.startsWith("account_")){r=g;continue}o.push(g)}}return{tags:o,accountId:r,text:t}},ue=e=>{const t=ie(e.message),o=e.message.match(/\[req_([a-z0-9]+)\]/i);return{...e,...t,reqId:o?o[1]:""}},ce=e=>{if(/^\d{4}-\d{2}-\d{2}T/.test(e))return new Date(e);if(/^\d{4}-\d{2}-\d{2}/.test(e))return new Date(e.replace(" ","T"));if(/^\d{2}:\d{2}:\d{2}$/.test(e)){const t=new Date,[o,r,u]=e.split(":").map(Number),l=new Date(t);return l.setHours(o,r,u,0),l}return null},me=e=>{const t=e[e.length-1],o=t.message;if(o.includes("响应完成")||o.includes("非流式响应完成"))return"success";if(t.level==="ERROR"||o.includes("失败"))return"error";const r=ce(t.time);return r&&(Date.now()-r.getTime())/1e3/60>5?"timeout":"in_progress"},xe=e=>{const t=new Map,o=[],r=[];e.forEach(l=>{l.reqId?(t.has(l.reqId)||(t.set(l.reqId,[]),o.push(l.reqId)),t.get(l.reqId)?.push(l)):r.push(l)});const u=o.map(l=>{const g=t.get(l)||[],$=g[0],P=$?.message.match(/\[(account_[^\]]+)\]/i),Z=$?.message.match(/收到请求: ([^ |]+)/)||$?.message.match(/Received request: ([^ |]+)/);return{id:l,logs:g,status:me(g),accountId:$?.accountId||(P?P[1]:""),model:Z?Z[1]:""}});return{ungrouped:r,groups:u}},T=D(()=>{const e=G.value.ungrouped,t=G.value.groups,o=e.length>E?e.slice(-E):e,r=t.length>E?t.slice(-E):t;return{ungrouped:o,groups:r,limited:e.length>o.length||t.length>r.length,ungroupedTotal:e.length,groupsTotal:t.length,ungroupedShowing:o.length,groupsShowing:r.length}}),pe=D(()=>{const e=C.value.length,t=e>te?e-te:0,o=C.value.slice(t),r=o.map(l=>`${l.time} | ${l.level} | ${l.message}`).join(` +`),u=o.length;return{text:r,total:e,showing:u,limited:e>u}}),q=e=>_.value[e]===!0,ge=e=>{_.value[e]=!q(e),localStorage.setItem("log-fold-state",JSON.stringify(_.value))},fe=e=>e.logs.length>M,ve=e=>e.logs.length<=M?e.logs:e.logs.slice(-M),be=()=>{(!i.limit||Number.isNaN(i.limit))&&(i.limit=300),i.limit=Math.min(Math.max(i.limit,10),1e3)},A=async()=>{if(!U){U=!0,I.value="",p.value="",be();try{const e=await B.list({limit:i.limit,level:i.level||void 0,search:i.search||void 0});oe.value=e.logs,C.value=e.logs.map(ue),G.value=xe(C.value),x.value=e.stats}catch(e){I.value=e.message||"日志加载失败"}finally{U=!1,requestAnimationFrame(J)}}},he=async()=>{p.value="",y.value="success";try{const e=await B.list({limit:1e3,level:i.level||void 0,search:i.search||void 0}),t=new Blob([JSON.stringify({exported_at:new Date().toISOString(),logs:e.logs},null,2)],{type:"application/json"}),o=URL.createObjectURL(t),r=document.createElement("a");r.href=o,r.download=`logs_${new Date().toISOString().slice(0,19).replace(/:/g,"-")}.json`,r.click(),URL.revokeObjectURL(o),p.value="导出成功"}catch(e){y.value="error",p.value=e.message||"导出失败"}},ye=async()=>{L.value=!1;try{await B.clear(),y.value="success",p.value="已清空日志",await A()}catch(e){y.value="error",p.value=e.message||"清空失败"}},S=()=>{N&&(window.clearTimeout(N),N=void 0)},z=()=>{!f.value||document.hidden||(N=window.setTimeout(async()=>{await A(),z()},dt))},F=()=>{S(),z()},_e=()=>{f.value=!f.value,f.value?F():S()},we=()=>{b.value=!b.value,requestAnimationFrame(J)},J=()=>{b.value&&k.value&&(k.value.scrollTop=k.value.scrollHeight),!b.value&&O.value&&(O.value.scrollTop=O.value.scrollHeight)},Y=()=>{document.hidden?S():f.value&&F()};return Ie(()=>{const e=localStorage.getItem("log-fold-state");if(e)try{_.value=JSON.parse(e)}catch{_.value={}}A(),F(),document.addEventListener("visibilitychange",Y)}),Le(()=>{S(),document.removeEventListener("visibilitychange",Y)}),(e,t)=>(d(),a(h,null,[s("div",Ne,[s("div",Te,[t[5]||(t[5]=s("p",{class:"text-base font-semibold text-foreground"},"管理日志",-1)),s("div",Ae," 自动刷新:"+n(f.value?"开启":"关闭"),1)]),s("div",Se,[s("div",$e,[t[6]||(t[6]=s("div",{class:"text-[11px] text-muted-foreground"},"总数",-1)),s("div",Ee,n(x.value?.memory.total??0),1)]),s("div",Me,[t[7]||(t[7]=s("div",{class:"text-[11px] text-muted-foreground"},"对话",-1)),s("div",Ge,n(x.value?.chat_count??0),1)]),s("div",Ue,[t[8]||(t[8]=s("div",{class:"text-[11px] text-muted-foreground"},"INFO",-1)),s("div",Ve,n(x.value?.memory.by_level.INFO??0),1)]),s("div",qe,[t[9]||(t[9]=s("div",{class:"text-[11px] text-muted-foreground"},"WARNING",-1)),s("div",Fe,n(x.value?.memory.by_level.WARNING??0),1)]),s("div",De,[t[10]||(t[10]=s("div",{class:"text-[11px] text-muted-foreground"},"ERROR",-1)),s("div",{class:v(["mt-1 text-lg font-semibold",x.value?.memory.by_level.ERROR?"text-rose-600":"text-foreground"])},n(x.value?.memory.by_level.ERROR??0),3)]),s("div",Be,[t[11]||(t[11]=s("div",{class:"text-[11px] text-muted-foreground"},"缓存上限",-1)),s("div",je,n(x.value?.memory.capacity??0),1)])]),s("div",He,[s("div",We,[Q(ke,{modelValue:i.level,"onUpdate:modelValue":t[0]||(t[0]=o=>i.level=o),options:se},null,8,["modelValue"])]),X(s("input",{"onUpdate:modelValue":t[1]||(t[1]=o=>i.search=o),type:"text",placeholder:"搜索...",class:"min-w-[200px] flex-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground sm:min-w-0"},null,512),[[ee,i.search,void 0,{trim:!0}]]),X(s("input",{"onUpdate:modelValue":t[2]||(t[2]=o=>i.limit=o),type:"number",min:"10",max:"1000",step:"100",class:"w-24 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground"},null,512),[[ee,i.limit,void 0,{number:!0}]]),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A}," 查询 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:he}," 导出 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:we},n(b.value?"结构化视图":"原始视图"),1),s("button",{class:v(["rounded-full px-4 py-2 text-xs font-medium transition-colors",f.value?"bg-primary text-primary-foreground":"border border-border text-muted-foreground hover:text-foreground"]),onClick:_e}," 自动刷新 ",2),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-destructive transition-colors hover:border-destructive/60",onClick:t[3]||(t[3]=o=>L.value=!0)}," 清空 ")]),p.value?(d(),a("div",{key:0,class:v(["mt-3 text-xs",le.value])},n(p.value),3)):m("",!0),I.value?(d(),a("div",ze,n(I.value),1)):m("",!0),b.value?(d(),a("div",{key:2,ref_key:"rawLogContainer",ref:k,class:"scrollbar-slim mt-4 max-h-[60vh] overflow-x-auto overflow-y-auto rounded-2xl border border-border bg-muted/30 px-4 py-3 text-[11px] text-muted-foreground"},[s("pre",Je,n(pe.value.text),1)],512)):(d(),a("div",{key:3,ref_key:"structuredLogContainer",ref:O,class:"scrollbar-slim mt-4 max-h-[60vh] space-y-3 overflow-y-auto rounded-2xl border border-border bg-card px-4 py-3"},[T.value.ungrouped.length===0&&T.value.groups.length===0?(d(),a("div",Ye," 暂无日志 ")):m("",!0),(d(!0),a(h,null,w(T.value.ungrouped,(o,r)=>(d(),a("div",{key:`u-${r}`},[s("div",Pe,[s("div",Ze,[s("span",Ke,n(o.time),1),s("span",{class:v(W(o.level))},n(o.level),3),(d(!0),a(h,null,w(o.tags,u=>(d(),a("span",{key:u,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:H(u)})},n(u),5))),128)),o.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:V(o.accountId)})},n(o.accountId),5)):m("",!0)]),s("div",Qe,n(o.text),1)])]))),128)),(d(!0),a(h,null,w(T.value.groups,o=>(d(),a("div",{key:o.id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:r=>ge(o.id)},[s("span",{class:v(ae(o.status))},n(de(o.status)),3),s("span",et,"req_"+n(o.id),1),o.accountId?(d(),a("span",{key:0,class:"text-xs font-semibold",style:R({color:V(o.accountId)})},n(o.accountId),5)):m("",!0),o.model?(d(),a("span",tt,n(o.model),1)):m("",!0),fe(o)?(d(),a("span",ot," 仅显示最近 "+n(M)+" 条 ")):m("",!0),s("span",st,n(o.logs.length)+" 条日志",1),s("span",{class:v(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!q(o.id)}])}," ▸ ",2)],8,Xe),q(o.id)?m("",!0):(d(),a("div",rt,[(d(!0),a(h,null,w(ve(o),(r,u)=>(d(),a("div",{key:`${o.id}-${u}`,class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",nt,[s("span",lt,n(r.time),1),s("span",{class:v(W(r.level))},n(r.level),3),(d(!0),a(h,null,w(r.tags,l=>(d(),a("span",{key:l,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:H(l)})},n(l),5))),128)),r.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:V(r.accountId)})},n(r.accountId),5)):m("",!0)]),s("div",at,n(r.text),1)]))),128))]))]))),128))],512))]),Q(Oe,{open:L.value,title:"确认操作",message:"确定要清空所有运行日志吗?","confirm-text":"确认","cancel-text":"取消",onConfirm:ye,onCancel:t[4]||(t[4]=o=>L.value=!1)},null,8,["open"])],64))}});export{mt as default}; diff --git a/static/assets/Logs-CEP1TB7c.js b/static/assets/Logs-CEP1TB7c.js new file mode 100644 index 0000000000000000000000000000000000000000..719bf84bad0f118f063cd36dfff8cb86e319ab79 --- /dev/null +++ b/static/assets/Logs-CEP1TB7c.js @@ -0,0 +1,2 @@ +import{g as K,d as Re,h as c,H as Ce,i as D,o as Ie,j as Le,c as a,a as s,x as Q,b as m,t as n,n as v,m as X,v as ee,F as h,r as w,k as R,e as d}from"./index-B0A0-QFY.js";import{_ as ke}from"./SelectMenu.vue_vue_type_script_setup_true_lang-Bb3w9pba.js";import{_ as Oe}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-Bkr0tSJw.js";const B={list:j=>K.get("/admin/log",{params:j}),clear:()=>K.delete("/admin/log?confirm=yes")},Ne={class:"rounded-3xl border border-border bg-card p-6"},Te={class:"flex flex-wrap items-center justify-between gap-3"},Ae={class:"text-xs text-muted-foreground"},Se={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-6"},$e={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ee={class:"mt-1 text-lg font-semibold text-foreground"},Me={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ge={class:"mt-1 text-lg font-semibold text-foreground"},Ue={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ve={class:"mt-1 text-lg font-semibold text-foreground"},qe={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Fe={class:"mt-1 text-lg font-semibold text-foreground"},De={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Be={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},je={class:"mt-1 text-lg font-semibold text-foreground"},He={class:"mt-4 flex flex-wrap items-center gap-2 sm:flex-nowrap"},We={class:"w-44 shrink-0"},ze={key:1,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Je={class:"whitespace-pre font-mono leading-relaxed"},Ye={key:0,class:"text-xs text-muted-foreground"},Pe={class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},Ze={class:"flex flex-wrap items-center gap-2"},Ke={class:"text-muted-foreground"},Qe={class:"w-full text-foreground md:w-auto md:flex-1"},Xe=["onClick"],et={class:"text-muted-foreground"},tt={key:1,class:"text-muted-foreground"},ot={key:2,class:"text-[10px] text-muted-foreground"},st={class:"text-muted-foreground"},rt={key:0,class:"space-y-2 px-4 py-3"},nt={class:"flex flex-wrap items-center gap-2"},lt={class:"text-muted-foreground"},at={class:"w-full text-foreground md:w-auto md:flex-1"},E=1e3,te=1e3,M=200,dt=3e3,mt=Re({__name:"Logs",setup(j){const oe=c([]),C=c([]),G=c({ungrouped:[],groups:[]}),x=c(null),I=c(""),p=c(""),y=c("success"),L=c(!1),f=c(!0),_=c({}),b=c(!0),k=c(null),O=c(null);let N,U=!1;const i=Ce({level:"",search:"",limit:300}),se=[{label:"全部",value:""},{label:"INFO",value:"INFO"},{label:"WARNING",value:"WARNING"},{label:"ERROR",value:"ERROR"}],re={SYSTEM:"#9e9e9e",CONFIG:"#607d8b",LOG:"#9e9e9e",AUTH:"#4caf50",SESSION:"#00bcd4",FILE:"#ff9800",CHAT:"#2196f3",API:"#8bc34a",CACHE:"#9c27b0",ACCOUNT:"#f44336",MULTI:"#673ab7"},ne={account_1:"#9c27b0",account_2:"#e91e63",account_3:"#00bcd4",account_4:"#4caf50",account_5:"#ff9800"},le=D(()=>y.value==="error"?"text-destructive":"text-muted-foreground"),H=e=>re[e]||"#757575",V=e=>ne[e]||"#757575",W=e=>{const t="rounded px-2 py-0.5 text-[10px] font-semibold";return e==="INFO"?`${t} bg-blue-100 text-blue-700`:e==="WARNING"?`${t} bg-amber-100 text-amber-700`:e==="ERROR"||e==="CRITICAL"?`${t} bg-rose-100 text-rose-700`:`${t} bg-violet-100 text-violet-700`},ae=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},de=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",ie=e=>{let t=e;const o=[];let r="";const u=/^\[([A-Za-z0-9_]+)\]/;for(;;){const l=t.match(u);if(!l)break;const g=l[1];if(t=t.slice(l[0].length).trim(),!g.startsWith("req_")){if(g.startsWith("account_")){r=g;continue}o.push(g)}}return{tags:o,accountId:r,text:t}},ue=e=>{const t=ie(e.message),o=e.message.match(/\[req_([a-z0-9]+)\]/i);return{...e,...t,reqId:o?o[1]:""}},ce=e=>{if(/^\d{4}-\d{2}-\d{2}T/.test(e))return new Date(e);if(/^\d{4}-\d{2}-\d{2}/.test(e))return new Date(e.replace(" ","T"));if(/^\d{2}:\d{2}:\d{2}$/.test(e)){const t=new Date,[o,r,u]=e.split(":").map(Number),l=new Date(t);return l.setHours(o,r,u,0),l}return null},me=e=>{const t=e[e.length-1],o=t.message;if(o.includes("响应完成")||o.includes("非流式响应完成"))return"success";if(t.level==="ERROR"||o.includes("失败"))return"error";const r=ce(t.time);return r&&(Date.now()-r.getTime())/1e3/60>5?"timeout":"in_progress"},xe=e=>{const t=new Map,o=[],r=[];e.forEach(l=>{l.reqId?(t.has(l.reqId)||(t.set(l.reqId,[]),o.push(l.reqId)),t.get(l.reqId)?.push(l)):r.push(l)});const u=o.map(l=>{const g=t.get(l)||[],$=g[0],P=$?.message.match(/\[(account_[^\]]+)\]/i),Z=$?.message.match(/收到请求: ([^ |]+)/)||$?.message.match(/Received request: ([^ |]+)/);return{id:l,logs:g,status:me(g),accountId:$?.accountId||(P?P[1]:""),model:Z?Z[1]:""}});return{ungrouped:r,groups:u}},T=D(()=>{const e=G.value.ungrouped,t=G.value.groups,o=e.length>E?e.slice(-E):e,r=t.length>E?t.slice(-E):t;return{ungrouped:o,groups:r,limited:e.length>o.length||t.length>r.length,ungroupedTotal:e.length,groupsTotal:t.length,ungroupedShowing:o.length,groupsShowing:r.length}}),pe=D(()=>{const e=C.value.length,t=e>te?e-te:0,o=C.value.slice(t),r=o.map(l=>`${l.time} | ${l.level} | ${l.message}`).join(` +`),u=o.length;return{text:r,total:e,showing:u,limited:e>u}}),q=e=>_.value[e]===!0,ge=e=>{_.value[e]=!q(e),localStorage.setItem("log-fold-state",JSON.stringify(_.value))},fe=e=>e.logs.length>M,ve=e=>e.logs.length<=M?e.logs:e.logs.slice(-M),be=()=>{(!i.limit||Number.isNaN(i.limit))&&(i.limit=300),i.limit=Math.min(Math.max(i.limit,10),1e3)},A=async()=>{if(!U){U=!0,I.value="",p.value="",be();try{const e=await B.list({limit:i.limit,level:i.level||void 0,search:i.search||void 0});oe.value=e.logs,C.value=e.logs.map(ue),G.value=xe(C.value),x.value=e.stats}catch(e){I.value=e.message||"日志加载失败"}finally{U=!1,requestAnimationFrame(J)}}},he=async()=>{p.value="",y.value="success";try{const e=await B.list({limit:1e3,level:i.level||void 0,search:i.search||void 0}),t=new Blob([JSON.stringify({exported_at:new Date().toISOString(),logs:e.logs},null,2)],{type:"application/json"}),o=URL.createObjectURL(t),r=document.createElement("a");r.href=o,r.download=`logs_${new Date().toISOString().slice(0,19).replace(/:/g,"-")}.json`,r.click(),URL.revokeObjectURL(o),p.value="导出成功"}catch(e){y.value="error",p.value=e.message||"导出失败"}},ye=async()=>{L.value=!1;try{await B.clear(),y.value="success",p.value="已清空日志",await A()}catch(e){y.value="error",p.value=e.message||"清空失败"}},S=()=>{N&&(window.clearTimeout(N),N=void 0)},z=()=>{!f.value||document.hidden||(N=window.setTimeout(async()=>{await A(),z()},dt))},F=()=>{S(),z()},_e=()=>{f.value=!f.value,f.value?F():S()},we=()=>{b.value=!b.value,requestAnimationFrame(J)},J=()=>{b.value&&k.value&&(k.value.scrollTop=k.value.scrollHeight),!b.value&&O.value&&(O.value.scrollTop=O.value.scrollHeight)},Y=()=>{document.hidden?S():f.value&&F()};return Ie(()=>{const e=localStorage.getItem("log-fold-state");if(e)try{_.value=JSON.parse(e)}catch{_.value={}}A(),F(),document.addEventListener("visibilitychange",Y)}),Le(()=>{S(),document.removeEventListener("visibilitychange",Y)}),(e,t)=>(d(),a(h,null,[s("div",Ne,[s("div",Te,[t[5]||(t[5]=s("p",{class:"text-base font-semibold text-foreground"},"管理日志",-1)),s("div",Ae," 自动刷新:"+n(f.value?"开启":"关闭"),1)]),s("div",Se,[s("div",$e,[t[6]||(t[6]=s("div",{class:"text-[11px] text-muted-foreground"},"总数",-1)),s("div",Ee,n(x.value?.memory.total??0),1)]),s("div",Me,[t[7]||(t[7]=s("div",{class:"text-[11px] text-muted-foreground"},"对话",-1)),s("div",Ge,n(x.value?.chat_count??0),1)]),s("div",Ue,[t[8]||(t[8]=s("div",{class:"text-[11px] text-muted-foreground"},"INFO",-1)),s("div",Ve,n(x.value?.memory.by_level.INFO??0),1)]),s("div",qe,[t[9]||(t[9]=s("div",{class:"text-[11px] text-muted-foreground"},"WARNING",-1)),s("div",Fe,n(x.value?.memory.by_level.WARNING??0),1)]),s("div",De,[t[10]||(t[10]=s("div",{class:"text-[11px] text-muted-foreground"},"ERROR",-1)),s("div",{class:v(["mt-1 text-lg font-semibold",x.value?.memory.by_level.ERROR?"text-rose-600":"text-foreground"])},n(x.value?.memory.by_level.ERROR??0),3)]),s("div",Be,[t[11]||(t[11]=s("div",{class:"text-[11px] text-muted-foreground"},"缓存上限",-1)),s("div",je,n(x.value?.memory.capacity??0),1)])]),s("div",He,[s("div",We,[Q(ke,{modelValue:i.level,"onUpdate:modelValue":t[0]||(t[0]=o=>i.level=o),options:se},null,8,["modelValue"])]),X(s("input",{"onUpdate:modelValue":t[1]||(t[1]=o=>i.search=o),type:"text",placeholder:"搜索...",class:"min-w-[200px] flex-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground sm:min-w-0"},null,512),[[ee,i.search,void 0,{trim:!0}]]),X(s("input",{"onUpdate:modelValue":t[2]||(t[2]=o=>i.limit=o),type:"number",min:"10",max:"1000",step:"100",class:"w-24 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground"},null,512),[[ee,i.limit,void 0,{number:!0}]]),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A}," 查询 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:he}," 导出 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:we},n(b.value?"结构化视图":"原始视图"),1),s("button",{class:v(["rounded-full px-4 py-2 text-xs font-medium transition-colors",f.value?"bg-primary text-primary-foreground":"border border-border text-muted-foreground hover:text-foreground"]),onClick:_e}," 自动刷新 ",2),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-destructive transition-colors hover:border-destructive/60",onClick:t[3]||(t[3]=o=>L.value=!0)}," 清空 ")]),p.value?(d(),a("div",{key:0,class:v(["mt-3 text-xs",le.value])},n(p.value),3)):m("",!0),I.value?(d(),a("div",ze,n(I.value),1)):m("",!0),b.value?(d(),a("div",{key:2,ref_key:"rawLogContainer",ref:k,class:"scrollbar-slim mt-4 max-h-[60vh] overflow-x-auto overflow-y-auto rounded-2xl border border-border bg-black px-4 py-3 text-xs text-green-200"},[s("pre",Je,n(pe.value.text),1)],512)):(d(),a("div",{key:3,ref_key:"structuredLogContainer",ref:O,class:"scrollbar-slim mt-4 max-h-[60vh] space-y-3 overflow-y-auto rounded-2xl border border-border bg-card px-4 py-3"},[T.value.ungrouped.length===0&&T.value.groups.length===0?(d(),a("div",Ye," 暂无日志 ")):m("",!0),(d(!0),a(h,null,w(T.value.ungrouped,(o,r)=>(d(),a("div",{key:`u-${r}`},[s("div",Pe,[s("div",Ze,[s("span",Ke,n(o.time),1),s("span",{class:v(W(o.level))},n(o.level),3),(d(!0),a(h,null,w(o.tags,u=>(d(),a("span",{key:u,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:H(u)})},n(u),5))),128)),o.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:V(o.accountId)})},n(o.accountId),5)):m("",!0)]),s("div",Qe,n(o.text),1)])]))),128)),(d(!0),a(h,null,w(T.value.groups,o=>(d(),a("div",{key:o.id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:r=>ge(o.id)},[s("span",{class:v(ae(o.status))},n(de(o.status)),3),s("span",et,"req_"+n(o.id),1),o.accountId?(d(),a("span",{key:0,class:"text-xs font-semibold",style:R({color:V(o.accountId)})},n(o.accountId),5)):m("",!0),o.model?(d(),a("span",tt,n(o.model),1)):m("",!0),fe(o)?(d(),a("span",ot," 仅显示最近 "+n(M)+" 条 ")):m("",!0),s("span",st,n(o.logs.length)+" 条日志",1),s("span",{class:v(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!q(o.id)}])}," ▸ ",2)],8,Xe),q(o.id)?m("",!0):(d(),a("div",rt,[(d(!0),a(h,null,w(ve(o),(r,u)=>(d(),a("div",{key:`${o.id}-${u}`,class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",nt,[s("span",lt,n(r.time),1),s("span",{class:v(W(r.level))},n(r.level),3),(d(!0),a(h,null,w(r.tags,l=>(d(),a("span",{key:l,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:H(l)})},n(l),5))),128)),r.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:V(r.accountId)})},n(r.accountId),5)):m("",!0)]),s("div",at,n(r.text),1)]))),128))]))]))),128))],512))]),Q(Oe,{open:L.value,title:"确认操作",message:"确定要清空所有运行日志吗?","confirm-text":"确认","cancel-text":"取消",onConfirm:ye,onCancel:t[4]||(t[4]=o=>L.value=!1)},null,8,["open"])],64))}});export{mt as default}; diff --git a/static/assets/Logs-CFYEPpBU.js b/static/assets/Logs-CFYEPpBU.js new file mode 100644 index 0000000000000000000000000000000000000000..98ecf1dc5f366249bb83e4580fea610da64cd69c --- /dev/null +++ b/static/assets/Logs-CFYEPpBU.js @@ -0,0 +1,2 @@ +import{g as K,d as Re,h as c,H as Ce,i as D,o as Ie,j as Le,c as a,a as s,x as Q,b as m,t as n,n as v,m as X,v as ee,F as h,r as w,k as R,e as d}from"./index-DrM07qAY.js";import{_ as ke}from"./SelectMenu.vue_vue_type_script_setup_true_lang-BOyWonLr.js";import{_ as Oe}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-2Xqtgrin.js";const B={list:j=>K.get("/admin/log",{params:j}),clear:()=>K.delete("/admin/log?confirm=yes")},Ne={class:"rounded-3xl border border-border bg-card p-6"},Te={class:"flex flex-wrap items-center justify-between gap-3"},Ae={class:"text-xs text-muted-foreground"},Se={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-6"},$e={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ee={class:"mt-1 text-lg font-semibold text-foreground"},Me={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ge={class:"mt-1 text-lg font-semibold text-foreground"},Ue={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ve={class:"mt-1 text-lg font-semibold text-foreground"},qe={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Fe={class:"mt-1 text-lg font-semibold text-foreground"},De={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Be={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},je={class:"mt-1 text-lg font-semibold text-foreground"},He={class:"mt-4 flex flex-wrap items-center gap-2 sm:flex-nowrap"},We={class:"w-44 shrink-0"},ze={key:1,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Je={class:"whitespace-pre font-mono leading-relaxed"},Ye={key:0,class:"text-xs text-muted-foreground"},Pe={class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},Ze={class:"flex flex-wrap items-center gap-2"},Ke={class:"text-muted-foreground"},Qe={class:"w-full text-foreground md:w-auto md:flex-1"},Xe=["onClick"],et={class:"text-muted-foreground"},tt={key:1,class:"text-muted-foreground"},ot={key:2,class:"text-[10px] text-muted-foreground"},st={class:"text-muted-foreground"},rt={key:0,class:"space-y-2 px-4 py-3"},nt={class:"flex flex-wrap items-center gap-2"},lt={class:"text-muted-foreground"},at={class:"w-full text-foreground md:w-auto md:flex-1"},E=1e3,te=1e3,M=200,dt=3e3,mt=Re({__name:"Logs",setup(j){const oe=c([]),C=c([]),G=c({ungrouped:[],groups:[]}),x=c(null),I=c(""),p=c(""),y=c("success"),L=c(!1),f=c(!0),_=c({}),b=c(!0),k=c(null),O=c(null);let N,U=!1;const i=Ce({level:"",search:"",limit:300}),se=[{label:"全部",value:""},{label:"INFO",value:"INFO"},{label:"WARNING",value:"WARNING"},{label:"ERROR",value:"ERROR"}],re={SYSTEM:"#9e9e9e",CONFIG:"#607d8b",LOG:"#9e9e9e",AUTH:"#4caf50",SESSION:"#00bcd4",FILE:"#ff9800",CHAT:"#2196f3",API:"#8bc34a",CACHE:"#9c27b0",ACCOUNT:"#f44336",MULTI:"#673ab7"},ne={account_1:"#9c27b0",account_2:"#e91e63",account_3:"#00bcd4",account_4:"#4caf50",account_5:"#ff9800"},le=D(()=>y.value==="error"?"text-destructive":"text-muted-foreground"),H=e=>re[e]||"#757575",V=e=>ne[e]||"#757575",W=e=>{const t="rounded px-2 py-0.5 text-[10px] font-semibold";return e==="INFO"?`${t} bg-blue-100 text-blue-700`:e==="WARNING"?`${t} bg-amber-100 text-amber-700`:e==="ERROR"||e==="CRITICAL"?`${t} bg-rose-100 text-rose-700`:`${t} bg-violet-100 text-violet-700`},ae=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},de=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",ie=e=>{let t=e;const o=[];let r="";const u=/^\[([A-Za-z0-9_]+)\]/;for(;;){const l=t.match(u);if(!l)break;const g=l[1];if(t=t.slice(l[0].length).trim(),!g.startsWith("req_")){if(g.startsWith("account_")){r=g;continue}o.push(g)}}return{tags:o,accountId:r,text:t}},ue=e=>{const t=ie(e.message),o=e.message.match(/\[req_([a-z0-9]+)\]/i);return{...e,...t,reqId:o?o[1]:""}},ce=e=>{if(/^\d{4}-\d{2}-\d{2}T/.test(e))return new Date(e);if(/^\d{4}-\d{2}-\d{2}/.test(e))return new Date(e.replace(" ","T"));if(/^\d{2}:\d{2}:\d{2}$/.test(e)){const t=new Date,[o,r,u]=e.split(":").map(Number),l=new Date(t);return l.setHours(o,r,u,0),l}return null},me=e=>{const t=e[e.length-1],o=t.message;if(o.includes("响应完成")||o.includes("非流式响应完成"))return"success";if(t.level==="ERROR"||o.includes("失败"))return"error";const r=ce(t.time);return r&&(Date.now()-r.getTime())/1e3/60>5?"timeout":"in_progress"},xe=e=>{const t=new Map,o=[],r=[];e.forEach(l=>{l.reqId?(t.has(l.reqId)||(t.set(l.reqId,[]),o.push(l.reqId)),t.get(l.reqId)?.push(l)):r.push(l)});const u=o.map(l=>{const g=t.get(l)||[],$=g[0],P=$?.message.match(/\[(account_[^\]]+)\]/i),Z=$?.message.match(/收到请求: ([^ |]+)/)||$?.message.match(/Received request: ([^ |]+)/);return{id:l,logs:g,status:me(g),accountId:$?.accountId||(P?P[1]:""),model:Z?Z[1]:""}});return{ungrouped:r,groups:u}},T=D(()=>{const e=G.value.ungrouped,t=G.value.groups,o=e.length>E?e.slice(-E):e,r=t.length>E?t.slice(-E):t;return{ungrouped:o,groups:r,limited:e.length>o.length||t.length>r.length,ungroupedTotal:e.length,groupsTotal:t.length,ungroupedShowing:o.length,groupsShowing:r.length}}),pe=D(()=>{const e=C.value.length,t=e>te?e-te:0,o=C.value.slice(t),r=o.map(l=>`${l.time} | ${l.level} | ${l.message}`).join(` +`),u=o.length;return{text:r,total:e,showing:u,limited:e>u}}),q=e=>_.value[e]===!0,ge=e=>{_.value[e]=!q(e),localStorage.setItem("log-fold-state",JSON.stringify(_.value))},fe=e=>e.logs.length>M,ve=e=>e.logs.length<=M?e.logs:e.logs.slice(-M),be=()=>{(!i.limit||Number.isNaN(i.limit))&&(i.limit=300),i.limit=Math.min(Math.max(i.limit,10),1e3)},A=async()=>{if(!U){U=!0,I.value="",p.value="",be();try{const e=await B.list({limit:i.limit,level:i.level||void 0,search:i.search||void 0});oe.value=e.logs,C.value=e.logs.map(ue),G.value=xe(C.value),x.value=e.stats}catch(e){I.value=e.message||"日志加载失败"}finally{U=!1,requestAnimationFrame(J)}}},he=async()=>{p.value="",y.value="success";try{const e=await B.list({limit:1e3,level:i.level||void 0,search:i.search||void 0}),t=new Blob([JSON.stringify({exported_at:new Date().toISOString(),logs:e.logs},null,2)],{type:"application/json"}),o=URL.createObjectURL(t),r=document.createElement("a");r.href=o,r.download=`logs_${new Date().toISOString().slice(0,19).replace(/:/g,"-")}.json`,r.click(),URL.revokeObjectURL(o),p.value="导出成功"}catch(e){y.value="error",p.value=e.message||"导出失败"}},ye=async()=>{L.value=!1;try{await B.clear(),y.value="success",p.value="已清空日志",await A()}catch(e){y.value="error",p.value=e.message||"清空失败"}},S=()=>{N&&(window.clearTimeout(N),N=void 0)},z=()=>{!f.value||document.hidden||(N=window.setTimeout(async()=>{await A(),z()},dt))},F=()=>{S(),z()},_e=()=>{f.value=!f.value,f.value?F():S()},we=()=>{b.value=!b.value,requestAnimationFrame(J)},J=()=>{b.value&&k.value&&(k.value.scrollTop=k.value.scrollHeight),!b.value&&O.value&&(O.value.scrollTop=O.value.scrollHeight)},Y=()=>{document.hidden?S():f.value&&F()};return Ie(()=>{const e=localStorage.getItem("log-fold-state");if(e)try{_.value=JSON.parse(e)}catch{_.value={}}A(),F(),document.addEventListener("visibilitychange",Y)}),Le(()=>{S(),document.removeEventListener("visibilitychange",Y)}),(e,t)=>(d(),a(h,null,[s("div",Ne,[s("div",Te,[t[5]||(t[5]=s("p",{class:"text-base font-semibold text-foreground"},"管理日志",-1)),s("div",Ae," 自动刷新:"+n(f.value?"开启":"关闭"),1)]),s("div",Se,[s("div",$e,[t[6]||(t[6]=s("div",{class:"text-[11px] text-muted-foreground"},"总数",-1)),s("div",Ee,n(x.value?.memory.total??0),1)]),s("div",Me,[t[7]||(t[7]=s("div",{class:"text-[11px] text-muted-foreground"},"对话",-1)),s("div",Ge,n(x.value?.chat_count??0),1)]),s("div",Ue,[t[8]||(t[8]=s("div",{class:"text-[11px] text-muted-foreground"},"INFO",-1)),s("div",Ve,n(x.value?.memory.by_level.INFO??0),1)]),s("div",qe,[t[9]||(t[9]=s("div",{class:"text-[11px] text-muted-foreground"},"WARNING",-1)),s("div",Fe,n(x.value?.memory.by_level.WARNING??0),1)]),s("div",De,[t[10]||(t[10]=s("div",{class:"text-[11px] text-muted-foreground"},"ERROR",-1)),s("div",{class:v(["mt-1 text-lg font-semibold",x.value?.memory.by_level.ERROR?"text-rose-600":"text-foreground"])},n(x.value?.memory.by_level.ERROR??0),3)]),s("div",Be,[t[11]||(t[11]=s("div",{class:"text-[11px] text-muted-foreground"},"缓存上限",-1)),s("div",je,n(x.value?.memory.capacity??0),1)])]),s("div",He,[s("div",We,[Q(ke,{modelValue:i.level,"onUpdate:modelValue":t[0]||(t[0]=o=>i.level=o),options:se},null,8,["modelValue"])]),X(s("input",{"onUpdate:modelValue":t[1]||(t[1]=o=>i.search=o),type:"text",placeholder:"搜索...",class:"min-w-[200px] flex-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground sm:min-w-0"},null,512),[[ee,i.search,void 0,{trim:!0}]]),X(s("input",{"onUpdate:modelValue":t[2]||(t[2]=o=>i.limit=o),type:"number",min:"10",max:"1000",step:"100",class:"w-24 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground"},null,512),[[ee,i.limit,void 0,{number:!0}]]),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A}," 查询 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:he}," 导出 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:we},n(b.value?"结构化视图":"原始视图"),1),s("button",{class:v(["rounded-full px-4 py-2 text-xs font-medium transition-colors",f.value?"bg-primary text-primary-foreground":"border border-border text-muted-foreground hover:text-foreground"]),onClick:_e}," 自动刷新 ",2),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-destructive transition-colors hover:border-destructive/60",onClick:t[3]||(t[3]=o=>L.value=!0)}," 清空 ")]),p.value?(d(),a("div",{key:0,class:v(["mt-3 text-xs",le.value])},n(p.value),3)):m("",!0),I.value?(d(),a("div",ze,n(I.value),1)):m("",!0),b.value?(d(),a("div",{key:2,ref_key:"rawLogContainer",ref:k,class:"scrollbar-slim mt-4 max-h-[60vh] overflow-x-auto overflow-y-auto rounded-2xl border border-border bg-muted/30 px-4 py-3 text-[11px] text-muted-foreground"},[s("pre",Je,n(pe.value.text),1)],512)):(d(),a("div",{key:3,ref_key:"structuredLogContainer",ref:O,class:"scrollbar-slim mt-4 max-h-[60vh] space-y-3 overflow-y-auto rounded-2xl border border-border bg-card px-4 py-3"},[T.value.ungrouped.length===0&&T.value.groups.length===0?(d(),a("div",Ye," 暂无日志 ")):m("",!0),(d(!0),a(h,null,w(T.value.ungrouped,(o,r)=>(d(),a("div",{key:`u-${r}`},[s("div",Pe,[s("div",Ze,[s("span",Ke,n(o.time),1),s("span",{class:v(W(o.level))},n(o.level),3),(d(!0),a(h,null,w(o.tags,u=>(d(),a("span",{key:u,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:H(u)})},n(u),5))),128)),o.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:V(o.accountId)})},n(o.accountId),5)):m("",!0)]),s("div",Qe,n(o.text),1)])]))),128)),(d(!0),a(h,null,w(T.value.groups,o=>(d(),a("div",{key:o.id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:r=>ge(o.id)},[s("span",{class:v(ae(o.status))},n(de(o.status)),3),s("span",et,"req_"+n(o.id),1),o.accountId?(d(),a("span",{key:0,class:"text-xs font-semibold",style:R({color:V(o.accountId)})},n(o.accountId),5)):m("",!0),o.model?(d(),a("span",tt,n(o.model),1)):m("",!0),fe(o)?(d(),a("span",ot," 仅显示最近 "+n(M)+" 条 ")):m("",!0),s("span",st,n(o.logs.length)+" 条日志",1),s("span",{class:v(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!q(o.id)}])}," ▸ ",2)],8,Xe),q(o.id)?m("",!0):(d(),a("div",rt,[(d(!0),a(h,null,w(ve(o),(r,u)=>(d(),a("div",{key:`${o.id}-${u}`,class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",nt,[s("span",lt,n(r.time),1),s("span",{class:v(W(r.level))},n(r.level),3),(d(!0),a(h,null,w(r.tags,l=>(d(),a("span",{key:l,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:H(l)})},n(l),5))),128)),r.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:V(r.accountId)})},n(r.accountId),5)):m("",!0)]),s("div",at,n(r.text),1)]))),128))]))]))),128))],512))]),Q(Oe,{open:L.value,title:"确认操作",message:"确定要清空所有运行日志吗?","confirm-text":"确认","cancel-text":"取消",onConfirm:ye,onCancel:t[4]||(t[4]=o=>L.value=!1)},null,8,["open"])],64))}});export{mt as default}; diff --git a/static/assets/Logs-CMgCLVvO.js b/static/assets/Logs-CMgCLVvO.js new file mode 100644 index 0000000000000000000000000000000000000000..dec8d61311f810e451f0cc65c9ed1e8b6f3b5e38 --- /dev/null +++ b/static/assets/Logs-CMgCLVvO.js @@ -0,0 +1,2 @@ +import{g as K,d as Re,h as c,I as Ie,i as D,o as Ce,j as Le,c as a,a as s,p as Q,b as m,t as n,n as v,q as X,v as ee,F as h,r as w,k as R,e as d}from"./index-Bjh6Z8Zq.js";import{_ as ke}from"./SelectMenu.vue_vue_type_script_setup_true_lang-DG1nunQt.js";import{_ as Oe}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-NECRqKOO.js";const B={list:j=>K.get("/admin/log",{params:j}),clear:()=>K.delete("/admin/log?confirm=yes")},Ne={class:"rounded-3xl border border-border bg-card p-6"},Te={class:"flex flex-wrap items-center justify-between gap-3"},Ae={class:"text-xs text-muted-foreground"},Se={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-6"},$e={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ee={class:"mt-1 text-lg font-semibold text-foreground"},Me={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ge={class:"mt-1 text-lg font-semibold text-foreground"},Ue={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},qe={class:"mt-1 text-lg font-semibold text-foreground"},Ve={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Fe={class:"mt-1 text-lg font-semibold text-foreground"},De={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Be={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},je={class:"mt-1 text-lg font-semibold text-foreground"},We={class:"mt-4 flex flex-wrap items-center gap-2 sm:flex-nowrap"},He={class:"w-44 shrink-0"},ze={key:1,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Je={class:"whitespace-pre font-mono leading-relaxed"},Ye={key:0,class:"text-xs text-muted-foreground"},Pe={class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},Ze={class:"flex flex-wrap items-center gap-2"},Ke={class:"text-muted-foreground"},Qe={class:"w-full text-foreground md:w-auto md:flex-1"},Xe=["onClick"],et={class:"text-muted-foreground"},tt={key:1,class:"text-muted-foreground"},ot={key:2,class:"text-[10px] text-muted-foreground"},st={class:"text-muted-foreground"},rt={key:0,class:"space-y-2 px-4 py-3"},nt={class:"flex flex-wrap items-center gap-2"},lt={class:"text-muted-foreground"},at={class:"w-full text-foreground md:w-auto md:flex-1"},E=1e3,te=1e3,M=200,dt=3e3,mt=Re({__name:"Logs",setup(j){const oe=c([]),I=c([]),G=c({ungrouped:[],groups:[]}),x=c(null),C=c(""),p=c(""),y=c("success"),L=c(!1),f=c(!0),_=c({}),b=c(!0),k=c(null),O=c(null);let N,U=!1;const i=Ie({level:"",search:"",limit:300}),se=[{label:"全部",value:""},{label:"INFO",value:"INFO"},{label:"WARNING",value:"WARNING"},{label:"ERROR",value:"ERROR"}],re={SYSTEM:"#9e9e9e",CONFIG:"#607d8b",LOG:"#9e9e9e",AUTH:"#4caf50",SESSION:"#00bcd4",FILE:"#ff9800",CHAT:"#2196f3",API:"#8bc34a",CACHE:"#9c27b0",ACCOUNT:"#f44336",MULTI:"#673ab7"},ne={account_1:"#9c27b0",account_2:"#e91e63",account_3:"#00bcd4",account_4:"#4caf50",account_5:"#ff9800"},le=D(()=>y.value==="error"?"text-destructive":"text-muted-foreground"),W=e=>re[e]||"#757575",q=e=>ne[e]||"#757575",H=e=>{const t="rounded px-2 py-0.5 text-[10px] font-semibold";return e==="INFO"?`${t} bg-blue-100 text-blue-700`:e==="WARNING"?`${t} bg-amber-100 text-amber-700`:e==="ERROR"||e==="CRITICAL"?`${t} bg-rose-100 text-rose-700`:`${t} bg-violet-100 text-violet-700`},ae=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},de=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",ie=e=>{let t=e;const o=[];let r="";const u=/^\[([A-Za-z0-9_]+)\]/;for(;;){const l=t.match(u);if(!l)break;const g=l[1];if(t=t.slice(l[0].length).trim(),!g.startsWith("req_")){if(g.startsWith("account_")){r=g;continue}o.push(g)}}return{tags:o,accountId:r,text:t}},ue=e=>{const t=ie(e.message),o=e.message.match(/\[req_([a-z0-9]+)\]/i);return{...e,...t,reqId:o?o[1]:""}},ce=e=>{if(/^\d{4}-\d{2}-\d{2}T/.test(e))return new Date(e);if(/^\d{4}-\d{2}-\d{2}/.test(e))return new Date(e.replace(" ","T"));if(/^\d{2}:\d{2}:\d{2}$/.test(e)){const t=new Date,[o,r,u]=e.split(":").map(Number),l=new Date(t);return l.setHours(o,r,u,0),l}return null},me=e=>{const t=e[e.length-1],o=t.message;if(o.includes("响应完成")||o.includes("非流式响应完成"))return"success";if(t.level==="ERROR"||o.includes("失败"))return"error";const r=ce(t.time);return r&&(Date.now()-r.getTime())/1e3/60>5?"timeout":"in_progress"},xe=e=>{const t=new Map,o=[],r=[];e.forEach(l=>{l.reqId?(t.has(l.reqId)||(t.set(l.reqId,[]),o.push(l.reqId)),t.get(l.reqId)?.push(l)):r.push(l)});const u=o.map(l=>{const g=t.get(l)||[],$=g[0],P=$?.message.match(/\[(account_[^\]]+)\]/i),Z=$?.message.match(/收到请求: ([^ |]+)/)||$?.message.match(/Received request: ([^ |]+)/);return{id:l,logs:g,status:me(g),accountId:$?.accountId||(P?P[1]:""),model:Z?Z[1]:""}});return{ungrouped:r,groups:u}},T=D(()=>{const e=G.value.ungrouped,t=G.value.groups,o=e.length>E?e.slice(-E):e,r=t.length>E?t.slice(-E):t;return{ungrouped:o,groups:r,limited:e.length>o.length||t.length>r.length,ungroupedTotal:e.length,groupsTotal:t.length,ungroupedShowing:o.length,groupsShowing:r.length}}),pe=D(()=>{const e=I.value.length,t=e>te?e-te:0,o=I.value.slice(t),r=o.map(l=>`${l.time} | ${l.level} | ${l.message}`).join(` +`),u=o.length;return{text:r,total:e,showing:u,limited:e>u}}),V=e=>_.value[e]===!0,ge=e=>{_.value[e]=!V(e),localStorage.setItem("log-fold-state",JSON.stringify(_.value))},fe=e=>e.logs.length>M,ve=e=>e.logs.length<=M?e.logs:e.logs.slice(-M),be=()=>{(!i.limit||Number.isNaN(i.limit))&&(i.limit=300),i.limit=Math.min(Math.max(i.limit,10),1e3)},A=async()=>{if(!U){U=!0,C.value="",p.value="",be();try{const e=await B.list({limit:i.limit,level:i.level||void 0,search:i.search||void 0});oe.value=e.logs,I.value=e.logs.map(ue),G.value=xe(I.value),x.value=e.stats}catch(e){C.value=e.message||"日志加载失败"}finally{U=!1,requestAnimationFrame(J)}}},he=async()=>{p.value="",y.value="success";try{const e=await B.list({limit:1e3,level:i.level||void 0,search:i.search||void 0}),t=new Blob([JSON.stringify({exported_at:new Date().toISOString(),logs:e.logs},null,2)],{type:"application/json"}),o=URL.createObjectURL(t),r=document.createElement("a");r.href=o,r.download=`logs_${new Date().toISOString().slice(0,19).replace(/:/g,"-")}.json`,r.click(),URL.revokeObjectURL(o),p.value="导出成功"}catch(e){y.value="error",p.value=e.message||"导出失败"}},ye=async()=>{L.value=!1;try{await B.clear(),y.value="success",p.value="已清空日志",await A()}catch(e){y.value="error",p.value=e.message||"清空失败"}},S=()=>{N&&(window.clearTimeout(N),N=void 0)},z=()=>{!f.value||document.hidden||(N=window.setTimeout(async()=>{await A(),z()},dt))},F=()=>{S(),z()},_e=()=>{f.value=!f.value,f.value?F():S()},we=()=>{b.value=!b.value,requestAnimationFrame(J)},J=()=>{b.value&&k.value&&(k.value.scrollTop=k.value.scrollHeight),!b.value&&O.value&&(O.value.scrollTop=O.value.scrollHeight)},Y=()=>{document.hidden?S():f.value&&F()};return Ce(()=>{const e=localStorage.getItem("log-fold-state");if(e)try{_.value=JSON.parse(e)}catch{_.value={}}A(),F(),document.addEventListener("visibilitychange",Y)}),Le(()=>{S(),document.removeEventListener("visibilitychange",Y)}),(e,t)=>(d(),a(h,null,[s("div",Ne,[s("div",Te,[t[5]||(t[5]=s("p",{class:"text-base font-semibold text-foreground"},"管理日志",-1)),s("div",Ae," 自动刷新:"+n(f.value?"开启":"关闭"),1)]),s("div",Se,[s("div",$e,[t[6]||(t[6]=s("div",{class:"text-[11px] text-muted-foreground"},"总数",-1)),s("div",Ee,n(x.value?.memory.total??0),1)]),s("div",Me,[t[7]||(t[7]=s("div",{class:"text-[11px] text-muted-foreground"},"对话",-1)),s("div",Ge,n(x.value?.chat_count??0),1)]),s("div",Ue,[t[8]||(t[8]=s("div",{class:"text-[11px] text-muted-foreground"},"INFO",-1)),s("div",qe,n(x.value?.memory.by_level.INFO??0),1)]),s("div",Ve,[t[9]||(t[9]=s("div",{class:"text-[11px] text-muted-foreground"},"WARNING",-1)),s("div",Fe,n(x.value?.memory.by_level.WARNING??0),1)]),s("div",De,[t[10]||(t[10]=s("div",{class:"text-[11px] text-muted-foreground"},"ERROR",-1)),s("div",{class:v(["mt-1 text-lg font-semibold",x.value?.memory.by_level.ERROR?"text-rose-600":"text-foreground"])},n(x.value?.memory.by_level.ERROR??0),3)]),s("div",Be,[t[11]||(t[11]=s("div",{class:"text-[11px] text-muted-foreground"},"缓存上限",-1)),s("div",je,n(x.value?.memory.capacity??0),1)])]),s("div",We,[s("div",He,[Q(ke,{modelValue:i.level,"onUpdate:modelValue":t[0]||(t[0]=o=>i.level=o),options:se},null,8,["modelValue"])]),X(s("input",{"onUpdate:modelValue":t[1]||(t[1]=o=>i.search=o),type:"text",placeholder:"搜索...",class:"min-w-[200px] flex-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground sm:min-w-0"},null,512),[[ee,i.search,void 0,{trim:!0}]]),X(s("input",{"onUpdate:modelValue":t[2]||(t[2]=o=>i.limit=o),type:"number",min:"10",max:"1000",step:"100",class:"w-24 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground"},null,512),[[ee,i.limit,void 0,{number:!0}]]),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A}," 查询 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:he}," 导出 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:we},n(b.value?"结构化视图":"原始视图"),1),s("button",{class:v(["rounded-full px-4 py-2 text-xs font-medium transition-colors",f.value?"bg-primary text-primary-foreground":"border border-border text-muted-foreground hover:text-foreground"]),onClick:_e}," 自动刷新 ",2),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-destructive transition-colors hover:border-destructive/60",onClick:t[3]||(t[3]=o=>L.value=!0)}," 清空 ")]),p.value?(d(),a("div",{key:0,class:v(["mt-3 text-xs",le.value])},n(p.value),3)):m("",!0),C.value?(d(),a("div",ze,n(C.value),1)):m("",!0),b.value?(d(),a("div",{key:2,ref_key:"rawLogContainer",ref:k,class:"scrollbar-slim mt-4 max-h-[60vh] overflow-x-auto overflow-y-auto rounded-2xl border border-border bg-muted/30 px-4 py-3 text-[11px] text-muted-foreground"},[s("pre",Je,n(pe.value.text),1)],512)):(d(),a("div",{key:3,ref_key:"structuredLogContainer",ref:O,class:"scrollbar-slim mt-4 max-h-[60vh] space-y-3 overflow-y-auto rounded-2xl border border-border bg-card px-4 py-3"},[T.value.ungrouped.length===0&&T.value.groups.length===0?(d(),a("div",Ye," 暂无日志 ")):m("",!0),(d(!0),a(h,null,w(T.value.ungrouped,(o,r)=>(d(),a("div",{key:`u-${r}`},[s("div",Pe,[s("div",Ze,[s("span",Ke,n(o.time),1),s("span",{class:v(H(o.level))},n(o.level),3),(d(!0),a(h,null,w(o.tags,u=>(d(),a("span",{key:u,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:W(u)})},n(u),5))),128)),o.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:q(o.accountId)})},n(o.accountId),5)):m("",!0)]),s("div",Qe,n(o.text),1)])]))),128)),(d(!0),a(h,null,w(T.value.groups,o=>(d(),a("div",{key:o.id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:r=>ge(o.id)},[s("span",{class:v(ae(o.status))},n(de(o.status)),3),s("span",et,"req_"+n(o.id),1),o.accountId?(d(),a("span",{key:0,class:"text-xs font-semibold",style:R({color:q(o.accountId)})},n(o.accountId),5)):m("",!0),o.model?(d(),a("span",tt,n(o.model),1)):m("",!0),fe(o)?(d(),a("span",ot," 仅显示最近 "+n(M)+" 条 ")):m("",!0),s("span",st,n(o.logs.length)+" 条日志",1),s("span",{class:v(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!V(o.id)}])}," ▸ ",2)],8,Xe),V(o.id)?m("",!0):(d(),a("div",rt,[(d(!0),a(h,null,w(ve(o),(r,u)=>(d(),a("div",{key:`${o.id}-${u}`,class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",nt,[s("span",lt,n(r.time),1),s("span",{class:v(H(r.level))},n(r.level),3),(d(!0),a(h,null,w(r.tags,l=>(d(),a("span",{key:l,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:W(l)})},n(l),5))),128)),r.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:q(r.accountId)})},n(r.accountId),5)):m("",!0)]),s("div",at,n(r.text),1)]))),128))]))]))),128))],512))]),Q(Oe,{open:L.value,title:"确认操作",message:"确定要清空所有运行日志吗?","confirm-text":"确认","cancel-text":"取消",onConfirm:ye,onCancel:t[4]||(t[4]=o=>L.value=!1)},null,8,["open"])],64))}});export{mt as default}; diff --git a/static/assets/Logs-CnQ-Y30L.js b/static/assets/Logs-CnQ-Y30L.js new file mode 100644 index 0000000000000000000000000000000000000000..a1f1a4a2474e874479fa3dff88e6133f207a2c25 --- /dev/null +++ b/static/assets/Logs-CnQ-Y30L.js @@ -0,0 +1,2 @@ +import{g as K,d as Re,h as c,H as Ce,i as D,o as Ie,j as Le,c as a,a as s,x as Q,b as m,t as n,n as v,m as X,v as ee,F as h,r as w,k as R,e as d}from"./index-Babp7OwB.js";import{_ as ke}from"./SelectMenu.vue_vue_type_script_setup_true_lang-BVzlIq4n.js";import{_ as Oe}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-LOlIelGk.js";const B={list:j=>K.get("/admin/log",{params:j}),clear:()=>K.delete("/admin/log?confirm=yes")},Ne={class:"rounded-3xl border border-border bg-card p-6"},Te={class:"flex flex-wrap items-center justify-between gap-3"},Ae={class:"text-xs text-muted-foreground"},Se={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-6"},$e={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ee={class:"mt-1 text-lg font-semibold text-foreground"},Me={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ge={class:"mt-1 text-lg font-semibold text-foreground"},Ue={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ve={class:"mt-1 text-lg font-semibold text-foreground"},qe={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Fe={class:"mt-1 text-lg font-semibold text-foreground"},De={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Be={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},je={class:"mt-1 text-lg font-semibold text-foreground"},He={class:"mt-4 flex flex-wrap items-center gap-2 sm:flex-nowrap"},We={class:"w-44 shrink-0"},ze={key:1,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Je={class:"whitespace-pre font-mono leading-relaxed"},Ye={key:0,class:"text-xs text-muted-foreground"},Pe={class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},Ze={class:"flex flex-wrap items-center gap-2"},Ke={class:"text-muted-foreground"},Qe={class:"w-full text-foreground md:w-auto md:flex-1"},Xe=["onClick"],et={class:"text-muted-foreground"},tt={key:1,class:"text-muted-foreground"},ot={key:2,class:"text-[10px] text-muted-foreground"},st={class:"text-muted-foreground"},rt={key:0,class:"space-y-2 px-4 py-3"},nt={class:"flex flex-wrap items-center gap-2"},lt={class:"text-muted-foreground"},at={class:"w-full text-foreground md:w-auto md:flex-1"},E=1e3,te=1e3,M=200,dt=3e3,mt=Re({__name:"Logs",setup(j){const oe=c([]),C=c([]),G=c({ungrouped:[],groups:[]}),x=c(null),I=c(""),p=c(""),y=c("success"),L=c(!1),f=c(!0),_=c({}),b=c(!0),k=c(null),O=c(null);let N,U=!1;const i=Ce({level:"",search:"",limit:300}),se=[{label:"全部",value:""},{label:"INFO",value:"INFO"},{label:"WARNING",value:"WARNING"},{label:"ERROR",value:"ERROR"}],re={SYSTEM:"#9e9e9e",CONFIG:"#607d8b",LOG:"#9e9e9e",AUTH:"#4caf50",SESSION:"#00bcd4",FILE:"#ff9800",CHAT:"#2196f3",API:"#8bc34a",CACHE:"#9c27b0",ACCOUNT:"#f44336",MULTI:"#673ab7"},ne={account_1:"#9c27b0",account_2:"#e91e63",account_3:"#00bcd4",account_4:"#4caf50",account_5:"#ff9800"},le=D(()=>y.value==="error"?"text-destructive":"text-muted-foreground"),H=e=>re[e]||"#757575",V=e=>ne[e]||"#757575",W=e=>{const t="rounded px-2 py-0.5 text-[10px] font-semibold";return e==="INFO"?`${t} bg-blue-100 text-blue-700`:e==="WARNING"?`${t} bg-amber-100 text-amber-700`:e==="ERROR"||e==="CRITICAL"?`${t} bg-rose-100 text-rose-700`:`${t} bg-violet-100 text-violet-700`},ae=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},de=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",ie=e=>{let t=e;const o=[];let r="";const u=/^\[([A-Za-z0-9_]+)\]/;for(;;){const l=t.match(u);if(!l)break;const g=l[1];if(t=t.slice(l[0].length).trim(),!g.startsWith("req_")){if(g.startsWith("account_")){r=g;continue}o.push(g)}}return{tags:o,accountId:r,text:t}},ue=e=>{const t=ie(e.message),o=e.message.match(/\[req_([a-z0-9]+)\]/i);return{...e,...t,reqId:o?o[1]:""}},ce=e=>{if(/^\d{4}-\d{2}-\d{2}T/.test(e))return new Date(e);if(/^\d{4}-\d{2}-\d{2}/.test(e))return new Date(e.replace(" ","T"));if(/^\d{2}:\d{2}:\d{2}$/.test(e)){const t=new Date,[o,r,u]=e.split(":").map(Number),l=new Date(t);return l.setHours(o,r,u,0),l}return null},me=e=>{const t=e[e.length-1],o=t.message;if(o.includes("响应完成")||o.includes("非流式响应完成"))return"success";if(t.level==="ERROR"||o.includes("失败"))return"error";const r=ce(t.time);return r&&(Date.now()-r.getTime())/1e3/60>5?"timeout":"in_progress"},xe=e=>{const t=new Map,o=[],r=[];e.forEach(l=>{l.reqId?(t.has(l.reqId)||(t.set(l.reqId,[]),o.push(l.reqId)),t.get(l.reqId)?.push(l)):r.push(l)});const u=o.map(l=>{const g=t.get(l)||[],$=g[0],P=$?.message.match(/\[(account_[^\]]+)\]/i),Z=$?.message.match(/收到请求: ([^ |]+)/)||$?.message.match(/Received request: ([^ |]+)/);return{id:l,logs:g,status:me(g),accountId:$?.accountId||(P?P[1]:""),model:Z?Z[1]:""}});return{ungrouped:r,groups:u}},T=D(()=>{const e=G.value.ungrouped,t=G.value.groups,o=e.length>E?e.slice(-E):e,r=t.length>E?t.slice(-E):t;return{ungrouped:o,groups:r,limited:e.length>o.length||t.length>r.length,ungroupedTotal:e.length,groupsTotal:t.length,ungroupedShowing:o.length,groupsShowing:r.length}}),pe=D(()=>{const e=C.value.length,t=e>te?e-te:0,o=C.value.slice(t),r=o.map(l=>`${l.time} | ${l.level} | ${l.message}`).join(` +`),u=o.length;return{text:r,total:e,showing:u,limited:e>u}}),q=e=>_.value[e]===!0,ge=e=>{_.value[e]=!q(e),localStorage.setItem("log-fold-state",JSON.stringify(_.value))},fe=e=>e.logs.length>M,ve=e=>e.logs.length<=M?e.logs:e.logs.slice(-M),be=()=>{(!i.limit||Number.isNaN(i.limit))&&(i.limit=300),i.limit=Math.min(Math.max(i.limit,10),1e3)},A=async()=>{if(!U){U=!0,I.value="",p.value="",be();try{const e=await B.list({limit:i.limit,level:i.level||void 0,search:i.search||void 0});oe.value=e.logs,C.value=e.logs.map(ue),G.value=xe(C.value),x.value=e.stats}catch(e){I.value=e.message||"日志加载失败"}finally{U=!1,requestAnimationFrame(J)}}},he=async()=>{p.value="",y.value="success";try{const e=await B.list({limit:1e3,level:i.level||void 0,search:i.search||void 0}),t=new Blob([JSON.stringify({exported_at:new Date().toISOString(),logs:e.logs},null,2)],{type:"application/json"}),o=URL.createObjectURL(t),r=document.createElement("a");r.href=o,r.download=`logs_${new Date().toISOString().slice(0,19).replace(/:/g,"-")}.json`,r.click(),URL.revokeObjectURL(o),p.value="导出成功"}catch(e){y.value="error",p.value=e.message||"导出失败"}},ye=async()=>{L.value=!1;try{await B.clear(),y.value="success",p.value="已清空日志",await A()}catch(e){y.value="error",p.value=e.message||"清空失败"}},S=()=>{N&&(window.clearTimeout(N),N=void 0)},z=()=>{!f.value||document.hidden||(N=window.setTimeout(async()=>{await A(),z()},dt))},F=()=>{S(),z()},_e=()=>{f.value=!f.value,f.value?F():S()},we=()=>{b.value=!b.value,requestAnimationFrame(J)},J=()=>{b.value&&k.value&&(k.value.scrollTop=k.value.scrollHeight),!b.value&&O.value&&(O.value.scrollTop=O.value.scrollHeight)},Y=()=>{document.hidden?S():f.value&&F()};return Ie(()=>{const e=localStorage.getItem("log-fold-state");if(e)try{_.value=JSON.parse(e)}catch{_.value={}}A(),F(),document.addEventListener("visibilitychange",Y)}),Le(()=>{S(),document.removeEventListener("visibilitychange",Y)}),(e,t)=>(d(),a(h,null,[s("div",Ne,[s("div",Te,[t[5]||(t[5]=s("p",{class:"text-base font-semibold text-foreground"},"管理日志",-1)),s("div",Ae," 自动刷新:"+n(f.value?"开启":"关闭"),1)]),s("div",Se,[s("div",$e,[t[6]||(t[6]=s("div",{class:"text-[11px] text-muted-foreground"},"总数",-1)),s("div",Ee,n(x.value?.memory.total??0),1)]),s("div",Me,[t[7]||(t[7]=s("div",{class:"text-[11px] text-muted-foreground"},"对话",-1)),s("div",Ge,n(x.value?.chat_count??0),1)]),s("div",Ue,[t[8]||(t[8]=s("div",{class:"text-[11px] text-muted-foreground"},"INFO",-1)),s("div",Ve,n(x.value?.memory.by_level.INFO??0),1)]),s("div",qe,[t[9]||(t[9]=s("div",{class:"text-[11px] text-muted-foreground"},"WARNING",-1)),s("div",Fe,n(x.value?.memory.by_level.WARNING??0),1)]),s("div",De,[t[10]||(t[10]=s("div",{class:"text-[11px] text-muted-foreground"},"ERROR",-1)),s("div",{class:v(["mt-1 text-lg font-semibold",x.value?.memory.by_level.ERROR?"text-rose-600":"text-foreground"])},n(x.value?.memory.by_level.ERROR??0),3)]),s("div",Be,[t[11]||(t[11]=s("div",{class:"text-[11px] text-muted-foreground"},"缓存上限",-1)),s("div",je,n(x.value?.memory.capacity??0),1)])]),s("div",He,[s("div",We,[Q(ke,{modelValue:i.level,"onUpdate:modelValue":t[0]||(t[0]=o=>i.level=o),options:se},null,8,["modelValue"])]),X(s("input",{"onUpdate:modelValue":t[1]||(t[1]=o=>i.search=o),type:"text",placeholder:"搜索...",class:"min-w-[200px] flex-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground sm:min-w-0"},null,512),[[ee,i.search,void 0,{trim:!0}]]),X(s("input",{"onUpdate:modelValue":t[2]||(t[2]=o=>i.limit=o),type:"number",min:"10",max:"1000",step:"100",class:"w-24 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground"},null,512),[[ee,i.limit,void 0,{number:!0}]]),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A}," 查询 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:he}," 导出 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:we},n(b.value?"结构化视图":"原始视图"),1),s("button",{class:v(["rounded-full px-4 py-2 text-xs font-medium transition-colors",f.value?"bg-primary text-primary-foreground":"border border-border text-muted-foreground hover:text-foreground"]),onClick:_e}," 自动刷新 ",2),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-destructive transition-colors hover:border-destructive/60",onClick:t[3]||(t[3]=o=>L.value=!0)}," 清空 ")]),p.value?(d(),a("div",{key:0,class:v(["mt-3 text-xs",le.value])},n(p.value),3)):m("",!0),I.value?(d(),a("div",ze,n(I.value),1)):m("",!0),b.value?(d(),a("div",{key:2,ref_key:"rawLogContainer",ref:k,class:"scrollbar-slim mt-4 max-h-[60vh] overflow-x-auto overflow-y-auto rounded-2xl border border-border bg-muted/30 px-4 py-3 text-[11px] text-muted-foreground"},[s("pre",Je,n(pe.value.text),1)],512)):(d(),a("div",{key:3,ref_key:"structuredLogContainer",ref:O,class:"scrollbar-slim mt-4 max-h-[60vh] space-y-3 overflow-y-auto rounded-2xl border border-border bg-card px-4 py-3"},[T.value.ungrouped.length===0&&T.value.groups.length===0?(d(),a("div",Ye," 暂无日志 ")):m("",!0),(d(!0),a(h,null,w(T.value.ungrouped,(o,r)=>(d(),a("div",{key:`u-${r}`},[s("div",Pe,[s("div",Ze,[s("span",Ke,n(o.time),1),s("span",{class:v(W(o.level))},n(o.level),3),(d(!0),a(h,null,w(o.tags,u=>(d(),a("span",{key:u,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:H(u)})},n(u),5))),128)),o.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:V(o.accountId)})},n(o.accountId),5)):m("",!0)]),s("div",Qe,n(o.text),1)])]))),128)),(d(!0),a(h,null,w(T.value.groups,o=>(d(),a("div",{key:o.id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:r=>ge(o.id)},[s("span",{class:v(ae(o.status))},n(de(o.status)),3),s("span",et,"req_"+n(o.id),1),o.accountId?(d(),a("span",{key:0,class:"text-xs font-semibold",style:R({color:V(o.accountId)})},n(o.accountId),5)):m("",!0),o.model?(d(),a("span",tt,n(o.model),1)):m("",!0),fe(o)?(d(),a("span",ot," 仅显示最近 "+n(M)+" 条 ")):m("",!0),s("span",st,n(o.logs.length)+" 条日志",1),s("span",{class:v(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!q(o.id)}])}," ▸ ",2)],8,Xe),q(o.id)?m("",!0):(d(),a("div",rt,[(d(!0),a(h,null,w(ve(o),(r,u)=>(d(),a("div",{key:`${o.id}-${u}`,class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",nt,[s("span",lt,n(r.time),1),s("span",{class:v(W(r.level))},n(r.level),3),(d(!0),a(h,null,w(r.tags,l=>(d(),a("span",{key:l,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:H(l)})},n(l),5))),128)),r.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:V(r.accountId)})},n(r.accountId),5)):m("",!0)]),s("div",at,n(r.text),1)]))),128))]))]))),128))],512))]),Q(Oe,{open:L.value,title:"确认操作",message:"确定要清空所有运行日志吗?","confirm-text":"确认","cancel-text":"取消",onConfirm:ye,onCancel:t[4]||(t[4]=o=>L.value=!1)},null,8,["open"])],64))}});export{mt as default}; diff --git a/static/assets/Logs-Cvle7lXJ.js b/static/assets/Logs-Cvle7lXJ.js new file mode 100644 index 0000000000000000000000000000000000000000..572a5d53f21cdd663cba74e52bc3a4438b4016e0 --- /dev/null +++ b/static/assets/Logs-Cvle7lXJ.js @@ -0,0 +1,2 @@ +import{g as K,d as Re,h as c,I as Ie,i as D,o as Ce,j as Le,c as a,a as s,p as Q,b as m,t as n,n as v,q as X,v as ee,F as h,r as w,k as R,e as d}from"./index-CQv2QMzB.js";import{_ as ke}from"./SelectMenu.vue_vue_type_script_setup_true_lang-BVovBIaU.js";import{_ as Oe}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-BRmG52AD.js";const B={list:j=>K.get("/admin/log",{params:j}),clear:()=>K.delete("/admin/log?confirm=yes")},Ne={class:"rounded-3xl border border-border bg-card p-6"},Te={class:"flex flex-wrap items-center justify-between gap-3"},Ae={class:"text-xs text-muted-foreground"},Se={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-6"},$e={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ee={class:"mt-1 text-lg font-semibold text-foreground"},Me={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ge={class:"mt-1 text-lg font-semibold text-foreground"},Ue={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},qe={class:"mt-1 text-lg font-semibold text-foreground"},Ve={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Fe={class:"mt-1 text-lg font-semibold text-foreground"},De={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Be={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},je={class:"mt-1 text-lg font-semibold text-foreground"},We={class:"mt-4 flex flex-wrap items-center gap-2 sm:flex-nowrap"},He={class:"w-44 shrink-0"},ze={key:1,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Je={class:"whitespace-pre font-mono leading-relaxed"},Ye={key:0,class:"text-xs text-muted-foreground"},Pe={class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},Ze={class:"flex flex-wrap items-center gap-2"},Ke={class:"text-muted-foreground"},Qe={class:"w-full text-foreground md:w-auto md:flex-1"},Xe=["onClick"],et={class:"text-muted-foreground"},tt={key:1,class:"text-muted-foreground"},ot={key:2,class:"text-[10px] text-muted-foreground"},st={class:"text-muted-foreground"},rt={key:0,class:"space-y-2 px-4 py-3"},nt={class:"flex flex-wrap items-center gap-2"},lt={class:"text-muted-foreground"},at={class:"w-full text-foreground md:w-auto md:flex-1"},E=1e3,te=1e3,M=200,dt=3e3,mt=Re({__name:"Logs",setup(j){const oe=c([]),I=c([]),G=c({ungrouped:[],groups:[]}),x=c(null),C=c(""),p=c(""),y=c("success"),L=c(!1),f=c(!0),_=c({}),b=c(!0),k=c(null),O=c(null);let N,U=!1;const i=Ie({level:"",search:"",limit:300}),se=[{label:"全部",value:""},{label:"INFO",value:"INFO"},{label:"WARNING",value:"WARNING"},{label:"ERROR",value:"ERROR"}],re={SYSTEM:"#9e9e9e",CONFIG:"#607d8b",LOG:"#9e9e9e",AUTH:"#4caf50",SESSION:"#00bcd4",FILE:"#ff9800",CHAT:"#2196f3",API:"#8bc34a",CACHE:"#9c27b0",ACCOUNT:"#f44336",MULTI:"#673ab7"},ne={account_1:"#9c27b0",account_2:"#e91e63",account_3:"#00bcd4",account_4:"#4caf50",account_5:"#ff9800"},le=D(()=>y.value==="error"?"text-destructive":"text-muted-foreground"),W=e=>re[e]||"#757575",q=e=>ne[e]||"#757575",H=e=>{const t="rounded px-2 py-0.5 text-[10px] font-semibold";return e==="INFO"?`${t} bg-blue-100 text-blue-700`:e==="WARNING"?`${t} bg-amber-100 text-amber-700`:e==="ERROR"||e==="CRITICAL"?`${t} bg-rose-100 text-rose-700`:`${t} bg-violet-100 text-violet-700`},ae=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},de=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",ie=e=>{let t=e;const o=[];let r="";const u=/^\[([A-Za-z0-9_]+)\]/;for(;;){const l=t.match(u);if(!l)break;const g=l[1];if(t=t.slice(l[0].length).trim(),!g.startsWith("req_")){if(g.startsWith("account_")){r=g;continue}o.push(g)}}return{tags:o,accountId:r,text:t}},ue=e=>{const t=ie(e.message),o=e.message.match(/\[req_([a-z0-9]+)\]/i);return{...e,...t,reqId:o?o[1]:""}},ce=e=>{if(/^\d{4}-\d{2}-\d{2}T/.test(e))return new Date(e);if(/^\d{4}-\d{2}-\d{2}/.test(e))return new Date(e.replace(" ","T"));if(/^\d{2}:\d{2}:\d{2}$/.test(e)){const t=new Date,[o,r,u]=e.split(":").map(Number),l=new Date(t);return l.setHours(o,r,u,0),l}return null},me=e=>{const t=e[e.length-1],o=t.message;if(o.includes("响应完成")||o.includes("非流式响应完成"))return"success";if(t.level==="ERROR"||o.includes("失败"))return"error";const r=ce(t.time);return r&&(Date.now()-r.getTime())/1e3/60>5?"timeout":"in_progress"},xe=e=>{const t=new Map,o=[],r=[];e.forEach(l=>{l.reqId?(t.has(l.reqId)||(t.set(l.reqId,[]),o.push(l.reqId)),t.get(l.reqId)?.push(l)):r.push(l)});const u=o.map(l=>{const g=t.get(l)||[],$=g[0],P=$?.message.match(/\[(account_[^\]]+)\]/i),Z=$?.message.match(/收到请求: ([^ |]+)/)||$?.message.match(/Received request: ([^ |]+)/);return{id:l,logs:g,status:me(g),accountId:$?.accountId||(P?P[1]:""),model:Z?Z[1]:""}});return{ungrouped:r,groups:u}},T=D(()=>{const e=G.value.ungrouped,t=G.value.groups,o=e.length>E?e.slice(-E):e,r=t.length>E?t.slice(-E):t;return{ungrouped:o,groups:r,limited:e.length>o.length||t.length>r.length,ungroupedTotal:e.length,groupsTotal:t.length,ungroupedShowing:o.length,groupsShowing:r.length}}),pe=D(()=>{const e=I.value.length,t=e>te?e-te:0,o=I.value.slice(t),r=o.map(l=>`${l.time} | ${l.level} | ${l.message}`).join(` +`),u=o.length;return{text:r,total:e,showing:u,limited:e>u}}),V=e=>_.value[e]===!0,ge=e=>{_.value[e]=!V(e),localStorage.setItem("log-fold-state",JSON.stringify(_.value))},fe=e=>e.logs.length>M,ve=e=>e.logs.length<=M?e.logs:e.logs.slice(-M),be=()=>{(!i.limit||Number.isNaN(i.limit))&&(i.limit=300),i.limit=Math.min(Math.max(i.limit,10),1e3)},A=async()=>{if(!U){U=!0,C.value="",p.value="",be();try{const e=await B.list({limit:i.limit,level:i.level||void 0,search:i.search||void 0});oe.value=e.logs,I.value=e.logs.map(ue),G.value=xe(I.value),x.value=e.stats}catch(e){C.value=e.message||"日志加载失败"}finally{U=!1,requestAnimationFrame(J)}}},he=async()=>{p.value="",y.value="success";try{const e=await B.list({limit:1e3,level:i.level||void 0,search:i.search||void 0}),t=new Blob([JSON.stringify({exported_at:new Date().toISOString(),logs:e.logs},null,2)],{type:"application/json"}),o=URL.createObjectURL(t),r=document.createElement("a");r.href=o,r.download=`logs_${new Date().toISOString().slice(0,19).replace(/:/g,"-")}.json`,r.click(),URL.revokeObjectURL(o),p.value="导出成功"}catch(e){y.value="error",p.value=e.message||"导出失败"}},ye=async()=>{L.value=!1;try{await B.clear(),y.value="success",p.value="已清空日志",await A()}catch(e){y.value="error",p.value=e.message||"清空失败"}},S=()=>{N&&(window.clearTimeout(N),N=void 0)},z=()=>{!f.value||document.hidden||(N=window.setTimeout(async()=>{await A(),z()},dt))},F=()=>{S(),z()},_e=()=>{f.value=!f.value,f.value?F():S()},we=()=>{b.value=!b.value,requestAnimationFrame(J)},J=()=>{b.value&&k.value&&(k.value.scrollTop=k.value.scrollHeight),!b.value&&O.value&&(O.value.scrollTop=O.value.scrollHeight)},Y=()=>{document.hidden?S():f.value&&F()};return Ce(()=>{const e=localStorage.getItem("log-fold-state");if(e)try{_.value=JSON.parse(e)}catch{_.value={}}A(),F(),document.addEventListener("visibilitychange",Y)}),Le(()=>{S(),document.removeEventListener("visibilitychange",Y)}),(e,t)=>(d(),a(h,null,[s("div",Ne,[s("div",Te,[t[5]||(t[5]=s("p",{class:"text-base font-semibold text-foreground"},"管理日志",-1)),s("div",Ae," 自动刷新:"+n(f.value?"开启":"关闭"),1)]),s("div",Se,[s("div",$e,[t[6]||(t[6]=s("div",{class:"text-[11px] text-muted-foreground"},"总数",-1)),s("div",Ee,n(x.value?.memory.total??0),1)]),s("div",Me,[t[7]||(t[7]=s("div",{class:"text-[11px] text-muted-foreground"},"对话",-1)),s("div",Ge,n(x.value?.chat_count??0),1)]),s("div",Ue,[t[8]||(t[8]=s("div",{class:"text-[11px] text-muted-foreground"},"INFO",-1)),s("div",qe,n(x.value?.memory.by_level.INFO??0),1)]),s("div",Ve,[t[9]||(t[9]=s("div",{class:"text-[11px] text-muted-foreground"},"WARNING",-1)),s("div",Fe,n(x.value?.memory.by_level.WARNING??0),1)]),s("div",De,[t[10]||(t[10]=s("div",{class:"text-[11px] text-muted-foreground"},"ERROR",-1)),s("div",{class:v(["mt-1 text-lg font-semibold",x.value?.memory.by_level.ERROR?"text-rose-600":"text-foreground"])},n(x.value?.memory.by_level.ERROR??0),3)]),s("div",Be,[t[11]||(t[11]=s("div",{class:"text-[11px] text-muted-foreground"},"缓存上限",-1)),s("div",je,n(x.value?.memory.capacity??0),1)])]),s("div",We,[s("div",He,[Q(ke,{modelValue:i.level,"onUpdate:modelValue":t[0]||(t[0]=o=>i.level=o),options:se},null,8,["modelValue"])]),X(s("input",{"onUpdate:modelValue":t[1]||(t[1]=o=>i.search=o),type:"text",placeholder:"搜索...",class:"min-w-[200px] flex-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground sm:min-w-0"},null,512),[[ee,i.search,void 0,{trim:!0}]]),X(s("input",{"onUpdate:modelValue":t[2]||(t[2]=o=>i.limit=o),type:"number",min:"10",max:"1000",step:"100",class:"w-24 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground"},null,512),[[ee,i.limit,void 0,{number:!0}]]),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A}," 查询 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:he}," 导出 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:we},n(b.value?"结构化视图":"原始视图"),1),s("button",{class:v(["rounded-full px-4 py-2 text-xs font-medium transition-colors",f.value?"bg-primary text-primary-foreground":"border border-border text-muted-foreground hover:text-foreground"]),onClick:_e}," 自动刷新 ",2),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-destructive transition-colors hover:border-destructive/60",onClick:t[3]||(t[3]=o=>L.value=!0)}," 清空 ")]),p.value?(d(),a("div",{key:0,class:v(["mt-3 text-xs",le.value])},n(p.value),3)):m("",!0),C.value?(d(),a("div",ze,n(C.value),1)):m("",!0),b.value?(d(),a("div",{key:2,ref_key:"rawLogContainer",ref:k,class:"scrollbar-slim mt-4 max-h-[60vh] overflow-x-auto overflow-y-auto rounded-2xl border border-border bg-muted/30 px-4 py-3 text-[11px] text-muted-foreground"},[s("pre",Je,n(pe.value.text),1)],512)):(d(),a("div",{key:3,ref_key:"structuredLogContainer",ref:O,class:"scrollbar-slim mt-4 max-h-[60vh] space-y-3 overflow-y-auto rounded-2xl border border-border bg-card px-4 py-3"},[T.value.ungrouped.length===0&&T.value.groups.length===0?(d(),a("div",Ye," 暂无日志 ")):m("",!0),(d(!0),a(h,null,w(T.value.ungrouped,(o,r)=>(d(),a("div",{key:`u-${r}`},[s("div",Pe,[s("div",Ze,[s("span",Ke,n(o.time),1),s("span",{class:v(H(o.level))},n(o.level),3),(d(!0),a(h,null,w(o.tags,u=>(d(),a("span",{key:u,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:W(u)})},n(u),5))),128)),o.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:q(o.accountId)})},n(o.accountId),5)):m("",!0)]),s("div",Qe,n(o.text),1)])]))),128)),(d(!0),a(h,null,w(T.value.groups,o=>(d(),a("div",{key:o.id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:r=>ge(o.id)},[s("span",{class:v(ae(o.status))},n(de(o.status)),3),s("span",et,"req_"+n(o.id),1),o.accountId?(d(),a("span",{key:0,class:"text-xs font-semibold",style:R({color:q(o.accountId)})},n(o.accountId),5)):m("",!0),o.model?(d(),a("span",tt,n(o.model),1)):m("",!0),fe(o)?(d(),a("span",ot," 仅显示最近 "+n(M)+" 条 ")):m("",!0),s("span",st,n(o.logs.length)+" 条日志",1),s("span",{class:v(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!V(o.id)}])}," ▸ ",2)],8,Xe),V(o.id)?m("",!0):(d(),a("div",rt,[(d(!0),a(h,null,w(ve(o),(r,u)=>(d(),a("div",{key:`${o.id}-${u}`,class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",nt,[s("span",lt,n(r.time),1),s("span",{class:v(H(r.level))},n(r.level),3),(d(!0),a(h,null,w(r.tags,l=>(d(),a("span",{key:l,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:W(l)})},n(l),5))),128)),r.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:q(r.accountId)})},n(r.accountId),5)):m("",!0)]),s("div",at,n(r.text),1)]))),128))]))]))),128))],512))]),Q(Oe,{open:L.value,title:"确认操作",message:"确定要清空所有运行日志吗?","confirm-text":"确认","cancel-text":"取消",onConfirm:ye,onCancel:t[4]||(t[4]=o=>L.value=!1)},null,8,["open"])],64))}});export{mt as default}; diff --git a/static/assets/Logs-D2rRedU6.js b/static/assets/Logs-D2rRedU6.js new file mode 100644 index 0000000000000000000000000000000000000000..3aaeb3166a5b56f08c6094e7462cf3967976221a --- /dev/null +++ b/static/assets/Logs-D2rRedU6.js @@ -0,0 +1,2 @@ +import{g as K,d as Re,h as c,I as Ie,i as D,o as Ce,j as Le,c as a,a as s,p as Q,b as m,t as n,n as v,q as X,v as ee,F as h,r as w,k as R,e as d}from"./index-Dul9zA0O.js";import{_ as ke}from"./SelectMenu.vue_vue_type_script_setup_true_lang-B6K28QJL.js";import{_ as Oe}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-Dx9N8w52.js";const B={list:j=>K.get("/admin/log",{params:j}),clear:()=>K.delete("/admin/log?confirm=yes")},Ne={class:"rounded-3xl border border-border bg-card p-6"},Te={class:"flex flex-wrap items-center justify-between gap-3"},Ae={class:"text-xs text-muted-foreground"},Se={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-6"},$e={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ee={class:"mt-1 text-lg font-semibold text-foreground"},Me={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ge={class:"mt-1 text-lg font-semibold text-foreground"},Ue={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},qe={class:"mt-1 text-lg font-semibold text-foreground"},Ve={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Fe={class:"mt-1 text-lg font-semibold text-foreground"},De={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Be={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},je={class:"mt-1 text-lg font-semibold text-foreground"},We={class:"mt-4 flex flex-wrap items-center gap-2 sm:flex-nowrap"},He={class:"w-44 shrink-0"},ze={key:1,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Je={class:"whitespace-pre font-mono leading-relaxed"},Ye={key:0,class:"text-xs text-muted-foreground"},Pe={class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},Ze={class:"flex flex-wrap items-center gap-2"},Ke={class:"text-muted-foreground"},Qe={class:"w-full text-foreground md:w-auto md:flex-1"},Xe=["onClick"],et={class:"text-muted-foreground"},tt={key:1,class:"text-muted-foreground"},ot={key:2,class:"text-[10px] text-muted-foreground"},st={class:"text-muted-foreground"},rt={key:0,class:"space-y-2 px-4 py-3"},nt={class:"flex flex-wrap items-center gap-2"},lt={class:"text-muted-foreground"},at={class:"w-full text-foreground md:w-auto md:flex-1"},E=1e3,te=1e3,M=200,dt=3e3,mt=Re({__name:"Logs",setup(j){const oe=c([]),I=c([]),G=c({ungrouped:[],groups:[]}),x=c(null),C=c(""),p=c(""),y=c("success"),L=c(!1),f=c(!0),_=c({}),b=c(!0),k=c(null),O=c(null);let N,U=!1;const i=Ie({level:"",search:"",limit:300}),se=[{label:"全部",value:""},{label:"INFO",value:"INFO"},{label:"WARNING",value:"WARNING"},{label:"ERROR",value:"ERROR"}],re={SYSTEM:"#9e9e9e",CONFIG:"#607d8b",LOG:"#9e9e9e",AUTH:"#4caf50",SESSION:"#00bcd4",FILE:"#ff9800",CHAT:"#2196f3",API:"#8bc34a",CACHE:"#9c27b0",ACCOUNT:"#f44336",MULTI:"#673ab7"},ne={account_1:"#9c27b0",account_2:"#e91e63",account_3:"#00bcd4",account_4:"#4caf50",account_5:"#ff9800"},le=D(()=>y.value==="error"?"text-destructive":"text-muted-foreground"),W=e=>re[e]||"#757575",q=e=>ne[e]||"#757575",H=e=>{const t="rounded px-2 py-0.5 text-[10px] font-semibold";return e==="INFO"?`${t} bg-blue-100 text-blue-700`:e==="WARNING"?`${t} bg-amber-100 text-amber-700`:e==="ERROR"||e==="CRITICAL"?`${t} bg-rose-100 text-rose-700`:`${t} bg-violet-100 text-violet-700`},ae=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},de=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",ie=e=>{let t=e;const o=[];let r="";const u=/^\[([A-Za-z0-9_]+)\]/;for(;;){const l=t.match(u);if(!l)break;const g=l[1];if(t=t.slice(l[0].length).trim(),!g.startsWith("req_")){if(g.startsWith("account_")){r=g;continue}o.push(g)}}return{tags:o,accountId:r,text:t}},ue=e=>{const t=ie(e.message),o=e.message.match(/\[req_([a-z0-9]+)\]/i);return{...e,...t,reqId:o?o[1]:""}},ce=e=>{if(/^\d{4}-\d{2}-\d{2}T/.test(e))return new Date(e);if(/^\d{4}-\d{2}-\d{2}/.test(e))return new Date(e.replace(" ","T"));if(/^\d{2}:\d{2}:\d{2}$/.test(e)){const t=new Date,[o,r,u]=e.split(":").map(Number),l=new Date(t);return l.setHours(o,r,u,0),l}return null},me=e=>{const t=e[e.length-1],o=t.message;if(o.includes("响应完成")||o.includes("非流式响应完成"))return"success";if(t.level==="ERROR"||o.includes("失败"))return"error";const r=ce(t.time);return r&&(Date.now()-r.getTime())/1e3/60>5?"timeout":"in_progress"},xe=e=>{const t=new Map,o=[],r=[];e.forEach(l=>{l.reqId?(t.has(l.reqId)||(t.set(l.reqId,[]),o.push(l.reqId)),t.get(l.reqId)?.push(l)):r.push(l)});const u=o.map(l=>{const g=t.get(l)||[],$=g[0],P=$?.message.match(/\[(account_[^\]]+)\]/i),Z=$?.message.match(/收到请求: ([^ |]+)/)||$?.message.match(/Received request: ([^ |]+)/);return{id:l,logs:g,status:me(g),accountId:$?.accountId||(P?P[1]:""),model:Z?Z[1]:""}});return{ungrouped:r,groups:u}},T=D(()=>{const e=G.value.ungrouped,t=G.value.groups,o=e.length>E?e.slice(-E):e,r=t.length>E?t.slice(-E):t;return{ungrouped:o,groups:r,limited:e.length>o.length||t.length>r.length,ungroupedTotal:e.length,groupsTotal:t.length,ungroupedShowing:o.length,groupsShowing:r.length}}),pe=D(()=>{const e=I.value.length,t=e>te?e-te:0,o=I.value.slice(t),r=o.map(l=>`${l.time} | ${l.level} | ${l.message}`).join(` +`),u=o.length;return{text:r,total:e,showing:u,limited:e>u}}),V=e=>_.value[e]===!0,ge=e=>{_.value[e]=!V(e),localStorage.setItem("log-fold-state",JSON.stringify(_.value))},fe=e=>e.logs.length>M,ve=e=>e.logs.length<=M?e.logs:e.logs.slice(-M),be=()=>{(!i.limit||Number.isNaN(i.limit))&&(i.limit=300),i.limit=Math.min(Math.max(i.limit,10),1e3)},A=async()=>{if(!U){U=!0,C.value="",p.value="",be();try{const e=await B.list({limit:i.limit,level:i.level||void 0,search:i.search||void 0});oe.value=e.logs,I.value=e.logs.map(ue),G.value=xe(I.value),x.value=e.stats}catch(e){C.value=e.message||"日志加载失败"}finally{U=!1,requestAnimationFrame(J)}}},he=async()=>{p.value="",y.value="success";try{const e=await B.list({limit:1e3,level:i.level||void 0,search:i.search||void 0}),t=new Blob([JSON.stringify({exported_at:new Date().toISOString(),logs:e.logs},null,2)],{type:"application/json"}),o=URL.createObjectURL(t),r=document.createElement("a");r.href=o,r.download=`logs_${new Date().toISOString().slice(0,19).replace(/:/g,"-")}.json`,r.click(),URL.revokeObjectURL(o),p.value="导出成功"}catch(e){y.value="error",p.value=e.message||"导出失败"}},ye=async()=>{L.value=!1;try{await B.clear(),y.value="success",p.value="已清空日志",await A()}catch(e){y.value="error",p.value=e.message||"清空失败"}},S=()=>{N&&(window.clearTimeout(N),N=void 0)},z=()=>{!f.value||document.hidden||(N=window.setTimeout(async()=>{await A(),z()},dt))},F=()=>{S(),z()},_e=()=>{f.value=!f.value,f.value?F():S()},we=()=>{b.value=!b.value,requestAnimationFrame(J)},J=()=>{b.value&&k.value&&(k.value.scrollTop=k.value.scrollHeight),!b.value&&O.value&&(O.value.scrollTop=O.value.scrollHeight)},Y=()=>{document.hidden?S():f.value&&F()};return Ce(()=>{const e=localStorage.getItem("log-fold-state");if(e)try{_.value=JSON.parse(e)}catch{_.value={}}A(),F(),document.addEventListener("visibilitychange",Y)}),Le(()=>{S(),document.removeEventListener("visibilitychange",Y)}),(e,t)=>(d(),a(h,null,[s("div",Ne,[s("div",Te,[t[5]||(t[5]=s("p",{class:"text-base font-semibold text-foreground"},"管理日志",-1)),s("div",Ae," 自动刷新:"+n(f.value?"开启":"关闭"),1)]),s("div",Se,[s("div",$e,[t[6]||(t[6]=s("div",{class:"text-[11px] text-muted-foreground"},"总数",-1)),s("div",Ee,n(x.value?.memory.total??0),1)]),s("div",Me,[t[7]||(t[7]=s("div",{class:"text-[11px] text-muted-foreground"},"对话",-1)),s("div",Ge,n(x.value?.chat_count??0),1)]),s("div",Ue,[t[8]||(t[8]=s("div",{class:"text-[11px] text-muted-foreground"},"INFO",-1)),s("div",qe,n(x.value?.memory.by_level.INFO??0),1)]),s("div",Ve,[t[9]||(t[9]=s("div",{class:"text-[11px] text-muted-foreground"},"WARNING",-1)),s("div",Fe,n(x.value?.memory.by_level.WARNING??0),1)]),s("div",De,[t[10]||(t[10]=s("div",{class:"text-[11px] text-muted-foreground"},"ERROR",-1)),s("div",{class:v(["mt-1 text-lg font-semibold",x.value?.memory.by_level.ERROR?"text-rose-600":"text-foreground"])},n(x.value?.memory.by_level.ERROR??0),3)]),s("div",Be,[t[11]||(t[11]=s("div",{class:"text-[11px] text-muted-foreground"},"缓存上限",-1)),s("div",je,n(x.value?.memory.capacity??0),1)])]),s("div",We,[s("div",He,[Q(ke,{modelValue:i.level,"onUpdate:modelValue":t[0]||(t[0]=o=>i.level=o),options:se},null,8,["modelValue"])]),X(s("input",{"onUpdate:modelValue":t[1]||(t[1]=o=>i.search=o),type:"text",placeholder:"搜索...",class:"min-w-[200px] flex-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground sm:min-w-0"},null,512),[[ee,i.search,void 0,{trim:!0}]]),X(s("input",{"onUpdate:modelValue":t[2]||(t[2]=o=>i.limit=o),type:"number",min:"10",max:"1000",step:"100",class:"w-24 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground"},null,512),[[ee,i.limit,void 0,{number:!0}]]),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A}," 查询 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:he}," 导出 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:we},n(b.value?"结构化视图":"原始视图"),1),s("button",{class:v(["rounded-full px-4 py-2 text-xs font-medium transition-colors",f.value?"bg-primary text-primary-foreground":"border border-border text-muted-foreground hover:text-foreground"]),onClick:_e}," 自动刷新 ",2),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-destructive transition-colors hover:border-destructive/60",onClick:t[3]||(t[3]=o=>L.value=!0)}," 清空 ")]),p.value?(d(),a("div",{key:0,class:v(["mt-3 text-xs",le.value])},n(p.value),3)):m("",!0),C.value?(d(),a("div",ze,n(C.value),1)):m("",!0),b.value?(d(),a("div",{key:2,ref_key:"rawLogContainer",ref:k,class:"scrollbar-slim mt-4 max-h-[60vh] overflow-x-auto overflow-y-auto rounded-2xl border border-border bg-muted/30 px-4 py-3 text-[11px] text-muted-foreground"},[s("pre",Je,n(pe.value.text),1)],512)):(d(),a("div",{key:3,ref_key:"structuredLogContainer",ref:O,class:"scrollbar-slim mt-4 max-h-[60vh] space-y-3 overflow-y-auto rounded-2xl border border-border bg-card px-4 py-3"},[T.value.ungrouped.length===0&&T.value.groups.length===0?(d(),a("div",Ye," 暂无日志 ")):m("",!0),(d(!0),a(h,null,w(T.value.ungrouped,(o,r)=>(d(),a("div",{key:`u-${r}`},[s("div",Pe,[s("div",Ze,[s("span",Ke,n(o.time),1),s("span",{class:v(H(o.level))},n(o.level),3),(d(!0),a(h,null,w(o.tags,u=>(d(),a("span",{key:u,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:W(u)})},n(u),5))),128)),o.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:q(o.accountId)})},n(o.accountId),5)):m("",!0)]),s("div",Qe,n(o.text),1)])]))),128)),(d(!0),a(h,null,w(T.value.groups,o=>(d(),a("div",{key:o.id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:r=>ge(o.id)},[s("span",{class:v(ae(o.status))},n(de(o.status)),3),s("span",et,"req_"+n(o.id),1),o.accountId?(d(),a("span",{key:0,class:"text-xs font-semibold",style:R({color:q(o.accountId)})},n(o.accountId),5)):m("",!0),o.model?(d(),a("span",tt,n(o.model),1)):m("",!0),fe(o)?(d(),a("span",ot," 仅显示最近 "+n(M)+" 条 ")):m("",!0),s("span",st,n(o.logs.length)+" 条日志",1),s("span",{class:v(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!V(o.id)}])}," ▸ ",2)],8,Xe),V(o.id)?m("",!0):(d(),a("div",rt,[(d(!0),a(h,null,w(ve(o),(r,u)=>(d(),a("div",{key:`${o.id}-${u}`,class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",nt,[s("span",lt,n(r.time),1),s("span",{class:v(H(r.level))},n(r.level),3),(d(!0),a(h,null,w(r.tags,l=>(d(),a("span",{key:l,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:W(l)})},n(l),5))),128)),r.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:q(r.accountId)})},n(r.accountId),5)):m("",!0)]),s("div",at,n(r.text),1)]))),128))]))]))),128))],512))]),Q(Oe,{open:L.value,title:"确认操作",message:"确定要清空所有运行日志吗?","confirm-text":"确认","cancel-text":"取消",onConfirm:ye,onCancel:t[4]||(t[4]=o=>L.value=!1)},null,8,["open"])],64))}});export{mt as default}; diff --git a/static/assets/Logs-D799eTMz.js b/static/assets/Logs-D799eTMz.js new file mode 100644 index 0000000000000000000000000000000000000000..c27a80d6ef700448c7b17336dee3c0192ed19703 --- /dev/null +++ b/static/assets/Logs-D799eTMz.js @@ -0,0 +1,2 @@ +import{g as K,d as Re,h as c,I as Ie,i as D,o as Ce,j as Le,c as a,a as s,p as Q,b as m,t as n,n as v,q as X,v as ee,F as h,r as w,k as R,e as d}from"./index-BYFRJmx0.js";import{_ as ke}from"./SelectMenu.vue_vue_type_script_setup_true_lang-D8K-xqMi.js";import{_ as Oe}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-BElgd3uY.js";const B={list:j=>K.get("/admin/log",{params:j}),clear:()=>K.delete("/admin/log?confirm=yes")},Ne={class:"rounded-3xl border border-border bg-card p-6"},Te={class:"flex flex-wrap items-center justify-between gap-3"},Ae={class:"text-xs text-muted-foreground"},Se={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-6"},$e={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ee={class:"mt-1 text-lg font-semibold text-foreground"},Me={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ge={class:"mt-1 text-lg font-semibold text-foreground"},Ue={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},qe={class:"mt-1 text-lg font-semibold text-foreground"},Ve={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Fe={class:"mt-1 text-lg font-semibold text-foreground"},De={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Be={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},je={class:"mt-1 text-lg font-semibold text-foreground"},We={class:"mt-4 flex flex-wrap items-center gap-2 sm:flex-nowrap"},He={class:"w-44 shrink-0"},ze={key:1,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Je={class:"whitespace-pre font-mono leading-relaxed"},Ye={key:0,class:"text-xs text-muted-foreground"},Pe={class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},Ze={class:"flex flex-wrap items-center gap-2"},Ke={class:"text-muted-foreground"},Qe={class:"w-full text-foreground md:w-auto md:flex-1"},Xe=["onClick"],et={class:"text-muted-foreground"},tt={key:1,class:"text-muted-foreground"},ot={key:2,class:"text-[10px] text-muted-foreground"},st={class:"text-muted-foreground"},rt={key:0,class:"space-y-2 px-4 py-3"},nt={class:"flex flex-wrap items-center gap-2"},lt={class:"text-muted-foreground"},at={class:"w-full text-foreground md:w-auto md:flex-1"},E=1e3,te=1e3,M=200,dt=3e3,mt=Re({__name:"Logs",setup(j){const oe=c([]),I=c([]),G=c({ungrouped:[],groups:[]}),x=c(null),C=c(""),p=c(""),y=c("success"),L=c(!1),f=c(!0),_=c({}),b=c(!0),k=c(null),O=c(null);let N,U=!1;const i=Ie({level:"",search:"",limit:300}),se=[{label:"全部",value:""},{label:"INFO",value:"INFO"},{label:"WARNING",value:"WARNING"},{label:"ERROR",value:"ERROR"}],re={SYSTEM:"#9e9e9e",CONFIG:"#607d8b",LOG:"#9e9e9e",AUTH:"#4caf50",SESSION:"#00bcd4",FILE:"#ff9800",CHAT:"#2196f3",API:"#8bc34a",CACHE:"#9c27b0",ACCOUNT:"#f44336",MULTI:"#673ab7"},ne={account_1:"#9c27b0",account_2:"#e91e63",account_3:"#00bcd4",account_4:"#4caf50",account_5:"#ff9800"},le=D(()=>y.value==="error"?"text-destructive":"text-muted-foreground"),W=e=>re[e]||"#757575",q=e=>ne[e]||"#757575",H=e=>{const t="rounded px-2 py-0.5 text-[10px] font-semibold";return e==="INFO"?`${t} bg-blue-100 text-blue-700`:e==="WARNING"?`${t} bg-amber-100 text-amber-700`:e==="ERROR"||e==="CRITICAL"?`${t} bg-rose-100 text-rose-700`:`${t} bg-violet-100 text-violet-700`},ae=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},de=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",ie=e=>{let t=e;const o=[];let r="";const u=/^\[([A-Za-z0-9_]+)\]/;for(;;){const l=t.match(u);if(!l)break;const g=l[1];if(t=t.slice(l[0].length).trim(),!g.startsWith("req_")){if(g.startsWith("account_")){r=g;continue}o.push(g)}}return{tags:o,accountId:r,text:t}},ue=e=>{const t=ie(e.message),o=e.message.match(/\[req_([a-z0-9]+)\]/i);return{...e,...t,reqId:o?o[1]:""}},ce=e=>{if(/^\d{4}-\d{2}-\d{2}T/.test(e))return new Date(e);if(/^\d{4}-\d{2}-\d{2}/.test(e))return new Date(e.replace(" ","T"));if(/^\d{2}:\d{2}:\d{2}$/.test(e)){const t=new Date,[o,r,u]=e.split(":").map(Number),l=new Date(t);return l.setHours(o,r,u,0),l}return null},me=e=>{const t=e[e.length-1],o=t.message;if(o.includes("响应完成")||o.includes("非流式响应完成"))return"success";if(t.level==="ERROR"||o.includes("失败"))return"error";const r=ce(t.time);return r&&(Date.now()-r.getTime())/1e3/60>5?"timeout":"in_progress"},xe=e=>{const t=new Map,o=[],r=[];e.forEach(l=>{l.reqId?(t.has(l.reqId)||(t.set(l.reqId,[]),o.push(l.reqId)),t.get(l.reqId)?.push(l)):r.push(l)});const u=o.map(l=>{const g=t.get(l)||[],$=g[0],P=$?.message.match(/\[(account_[^\]]+)\]/i),Z=$?.message.match(/收到请求: ([^ |]+)/)||$?.message.match(/Received request: ([^ |]+)/);return{id:l,logs:g,status:me(g),accountId:$?.accountId||(P?P[1]:""),model:Z?Z[1]:""}});return{ungrouped:r,groups:u}},T=D(()=>{const e=G.value.ungrouped,t=G.value.groups,o=e.length>E?e.slice(-E):e,r=t.length>E?t.slice(-E):t;return{ungrouped:o,groups:r,limited:e.length>o.length||t.length>r.length,ungroupedTotal:e.length,groupsTotal:t.length,ungroupedShowing:o.length,groupsShowing:r.length}}),pe=D(()=>{const e=I.value.length,t=e>te?e-te:0,o=I.value.slice(t),r=o.map(l=>`${l.time} | ${l.level} | ${l.message}`).join(` +`),u=o.length;return{text:r,total:e,showing:u,limited:e>u}}),V=e=>_.value[e]===!0,ge=e=>{_.value[e]=!V(e),localStorage.setItem("log-fold-state",JSON.stringify(_.value))},fe=e=>e.logs.length>M,ve=e=>e.logs.length<=M?e.logs:e.logs.slice(-M),be=()=>{(!i.limit||Number.isNaN(i.limit))&&(i.limit=300),i.limit=Math.min(Math.max(i.limit,10),1e3)},A=async()=>{if(!U){U=!0,C.value="",p.value="",be();try{const e=await B.list({limit:i.limit,level:i.level||void 0,search:i.search||void 0});oe.value=e.logs,I.value=e.logs.map(ue),G.value=xe(I.value),x.value=e.stats}catch(e){C.value=e.message||"日志加载失败"}finally{U=!1,requestAnimationFrame(J)}}},he=async()=>{p.value="",y.value="success";try{const e=await B.list({limit:1e3,level:i.level||void 0,search:i.search||void 0}),t=new Blob([JSON.stringify({exported_at:new Date().toISOString(),logs:e.logs},null,2)],{type:"application/json"}),o=URL.createObjectURL(t),r=document.createElement("a");r.href=o,r.download=`logs_${new Date().toISOString().slice(0,19).replace(/:/g,"-")}.json`,r.click(),URL.revokeObjectURL(o),p.value="导出成功"}catch(e){y.value="error",p.value=e.message||"导出失败"}},ye=async()=>{L.value=!1;try{await B.clear(),y.value="success",p.value="已清空日志",await A()}catch(e){y.value="error",p.value=e.message||"清空失败"}},S=()=>{N&&(window.clearTimeout(N),N=void 0)},z=()=>{!f.value||document.hidden||(N=window.setTimeout(async()=>{await A(),z()},dt))},F=()=>{S(),z()},_e=()=>{f.value=!f.value,f.value?F():S()},we=()=>{b.value=!b.value,requestAnimationFrame(J)},J=()=>{b.value&&k.value&&(k.value.scrollTop=k.value.scrollHeight),!b.value&&O.value&&(O.value.scrollTop=O.value.scrollHeight)},Y=()=>{document.hidden?S():f.value&&F()};return Ce(()=>{const e=localStorage.getItem("log-fold-state");if(e)try{_.value=JSON.parse(e)}catch{_.value={}}A(),F(),document.addEventListener("visibilitychange",Y)}),Le(()=>{S(),document.removeEventListener("visibilitychange",Y)}),(e,t)=>(d(),a(h,null,[s("div",Ne,[s("div",Te,[t[5]||(t[5]=s("p",{class:"text-base font-semibold text-foreground"},"管理日志",-1)),s("div",Ae," 自动刷新:"+n(f.value?"开启":"关闭"),1)]),s("div",Se,[s("div",$e,[t[6]||(t[6]=s("div",{class:"text-[11px] text-muted-foreground"},"总数",-1)),s("div",Ee,n(x.value?.memory.total??0),1)]),s("div",Me,[t[7]||(t[7]=s("div",{class:"text-[11px] text-muted-foreground"},"对话",-1)),s("div",Ge,n(x.value?.chat_count??0),1)]),s("div",Ue,[t[8]||(t[8]=s("div",{class:"text-[11px] text-muted-foreground"},"INFO",-1)),s("div",qe,n(x.value?.memory.by_level.INFO??0),1)]),s("div",Ve,[t[9]||(t[9]=s("div",{class:"text-[11px] text-muted-foreground"},"WARNING",-1)),s("div",Fe,n(x.value?.memory.by_level.WARNING??0),1)]),s("div",De,[t[10]||(t[10]=s("div",{class:"text-[11px] text-muted-foreground"},"ERROR",-1)),s("div",{class:v(["mt-1 text-lg font-semibold",x.value?.memory.by_level.ERROR?"text-rose-600":"text-foreground"])},n(x.value?.memory.by_level.ERROR??0),3)]),s("div",Be,[t[11]||(t[11]=s("div",{class:"text-[11px] text-muted-foreground"},"缓存上限",-1)),s("div",je,n(x.value?.memory.capacity??0),1)])]),s("div",We,[s("div",He,[Q(ke,{modelValue:i.level,"onUpdate:modelValue":t[0]||(t[0]=o=>i.level=o),options:se},null,8,["modelValue"])]),X(s("input",{"onUpdate:modelValue":t[1]||(t[1]=o=>i.search=o),type:"text",placeholder:"搜索...",class:"min-w-[200px] flex-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground sm:min-w-0"},null,512),[[ee,i.search,void 0,{trim:!0}]]),X(s("input",{"onUpdate:modelValue":t[2]||(t[2]=o=>i.limit=o),type:"number",min:"10",max:"1000",step:"100",class:"w-24 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground"},null,512),[[ee,i.limit,void 0,{number:!0}]]),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A}," 查询 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:he}," 导出 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:we},n(b.value?"结构化视图":"原始视图"),1),s("button",{class:v(["rounded-full px-4 py-2 text-xs font-medium transition-colors",f.value?"bg-primary text-primary-foreground":"border border-border text-muted-foreground hover:text-foreground"]),onClick:_e}," 自动刷新 ",2),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-destructive transition-colors hover:border-destructive/60",onClick:t[3]||(t[3]=o=>L.value=!0)}," 清空 ")]),p.value?(d(),a("div",{key:0,class:v(["mt-3 text-xs",le.value])},n(p.value),3)):m("",!0),C.value?(d(),a("div",ze,n(C.value),1)):m("",!0),b.value?(d(),a("div",{key:2,ref_key:"rawLogContainer",ref:k,class:"scrollbar-slim mt-4 max-h-[60vh] overflow-x-auto overflow-y-auto rounded-2xl border border-border bg-muted/30 px-4 py-3 text-[11px] text-muted-foreground"},[s("pre",Je,n(pe.value.text),1)],512)):(d(),a("div",{key:3,ref_key:"structuredLogContainer",ref:O,class:"scrollbar-slim mt-4 max-h-[60vh] space-y-3 overflow-y-auto rounded-2xl border border-border bg-card px-4 py-3"},[T.value.ungrouped.length===0&&T.value.groups.length===0?(d(),a("div",Ye," 暂无日志 ")):m("",!0),(d(!0),a(h,null,w(T.value.ungrouped,(o,r)=>(d(),a("div",{key:`u-${r}`},[s("div",Pe,[s("div",Ze,[s("span",Ke,n(o.time),1),s("span",{class:v(H(o.level))},n(o.level),3),(d(!0),a(h,null,w(o.tags,u=>(d(),a("span",{key:u,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:W(u)})},n(u),5))),128)),o.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:q(o.accountId)})},n(o.accountId),5)):m("",!0)]),s("div",Qe,n(o.text),1)])]))),128)),(d(!0),a(h,null,w(T.value.groups,o=>(d(),a("div",{key:o.id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:r=>ge(o.id)},[s("span",{class:v(ae(o.status))},n(de(o.status)),3),s("span",et,"req_"+n(o.id),1),o.accountId?(d(),a("span",{key:0,class:"text-xs font-semibold",style:R({color:q(o.accountId)})},n(o.accountId),5)):m("",!0),o.model?(d(),a("span",tt,n(o.model),1)):m("",!0),fe(o)?(d(),a("span",ot," 仅显示最近 "+n(M)+" 条 ")):m("",!0),s("span",st,n(o.logs.length)+" 条日志",1),s("span",{class:v(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!V(o.id)}])}," ▸ ",2)],8,Xe),V(o.id)?m("",!0):(d(),a("div",rt,[(d(!0),a(h,null,w(ve(o),(r,u)=>(d(),a("div",{key:`${o.id}-${u}`,class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",nt,[s("span",lt,n(r.time),1),s("span",{class:v(H(r.level))},n(r.level),3),(d(!0),a(h,null,w(r.tags,l=>(d(),a("span",{key:l,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:W(l)})},n(l),5))),128)),r.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:q(r.accountId)})},n(r.accountId),5)):m("",!0)]),s("div",at,n(r.text),1)]))),128))]))]))),128))],512))]),Q(Oe,{open:L.value,title:"确认操作",message:"确定要清空所有运行日志吗?","confirm-text":"确认","cancel-text":"取消",onConfirm:ye,onCancel:t[4]||(t[4]=o=>L.value=!1)},null,8,["open"])],64))}});export{mt as default}; diff --git a/static/assets/Logs-D7O4Ew0p.js b/static/assets/Logs-D7O4Ew0p.js new file mode 100644 index 0000000000000000000000000000000000000000..5ba23ef71ca944a90b942b27bbb8ef175c88c76e --- /dev/null +++ b/static/assets/Logs-D7O4Ew0p.js @@ -0,0 +1,2 @@ +import{g as K,d as Re,h as c,H as Ce,i as D,o as Ie,j as Le,c as a,a as s,x as Q,b as m,t as n,n as v,m as X,v as ee,F as h,r as w,k as R,e as d}from"./index-BIHSVHyU.js";import{_ as ke}from"./SelectMenu.vue_vue_type_script_setup_true_lang-Cdct4OHH.js";import{_ as Oe}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-fISQukFW.js";const B={list:j=>K.get("/admin/log",{params:j}),clear:()=>K.delete("/admin/log?confirm=yes")},Ne={class:"rounded-3xl border border-border bg-card p-6"},Te={class:"flex flex-wrap items-center justify-between gap-3"},Ae={class:"text-xs text-muted-foreground"},Se={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-6"},$e={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ee={class:"mt-1 text-lg font-semibold text-foreground"},Me={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ge={class:"mt-1 text-lg font-semibold text-foreground"},Ue={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ve={class:"mt-1 text-lg font-semibold text-foreground"},qe={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Fe={class:"mt-1 text-lg font-semibold text-foreground"},De={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Be={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},je={class:"mt-1 text-lg font-semibold text-foreground"},He={class:"mt-4 flex flex-wrap items-center gap-2 sm:flex-nowrap"},We={class:"w-44 shrink-0"},ze={key:1,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Je={class:"whitespace-pre font-mono leading-relaxed"},Ye={key:0,class:"text-xs text-muted-foreground"},Pe={class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},Ze={class:"flex flex-wrap items-center gap-2"},Ke={class:"text-muted-foreground"},Qe={class:"w-full text-foreground md:w-auto md:flex-1"},Xe=["onClick"],et={class:"text-muted-foreground"},tt={key:1,class:"text-muted-foreground"},ot={key:2,class:"text-[10px] text-muted-foreground"},st={class:"text-muted-foreground"},rt={key:0,class:"space-y-2 px-4 py-3"},nt={class:"flex flex-wrap items-center gap-2"},lt={class:"text-muted-foreground"},at={class:"w-full text-foreground md:w-auto md:flex-1"},E=1e3,te=1e3,M=200,dt=3e3,mt=Re({__name:"Logs",setup(j){const oe=c([]),C=c([]),G=c({ungrouped:[],groups:[]}),x=c(null),I=c(""),p=c(""),y=c("success"),L=c(!1),f=c(!0),_=c({}),b=c(!0),k=c(null),O=c(null);let N,U=!1;const i=Ce({level:"",search:"",limit:300}),se=[{label:"全部",value:""},{label:"INFO",value:"INFO"},{label:"WARNING",value:"WARNING"},{label:"ERROR",value:"ERROR"}],re={SYSTEM:"#9e9e9e",CONFIG:"#607d8b",LOG:"#9e9e9e",AUTH:"#4caf50",SESSION:"#00bcd4",FILE:"#ff9800",CHAT:"#2196f3",API:"#8bc34a",CACHE:"#9c27b0",ACCOUNT:"#f44336",MULTI:"#673ab7"},ne={account_1:"#9c27b0",account_2:"#e91e63",account_3:"#00bcd4",account_4:"#4caf50",account_5:"#ff9800"},le=D(()=>y.value==="error"?"text-destructive":"text-muted-foreground"),H=e=>re[e]||"#757575",V=e=>ne[e]||"#757575",W=e=>{const t="rounded px-2 py-0.5 text-[10px] font-semibold";return e==="INFO"?`${t} bg-blue-100 text-blue-700`:e==="WARNING"?`${t} bg-amber-100 text-amber-700`:e==="ERROR"||e==="CRITICAL"?`${t} bg-rose-100 text-rose-700`:`${t} bg-violet-100 text-violet-700`},ae=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},de=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",ie=e=>{let t=e;const o=[];let r="";const u=/^\[([A-Za-z0-9_]+)\]/;for(;;){const l=t.match(u);if(!l)break;const g=l[1];if(t=t.slice(l[0].length).trim(),!g.startsWith("req_")){if(g.startsWith("account_")){r=g;continue}o.push(g)}}return{tags:o,accountId:r,text:t}},ue=e=>{const t=ie(e.message),o=e.message.match(/\[req_([a-z0-9]+)\]/i);return{...e,...t,reqId:o?o[1]:""}},ce=e=>{if(/^\d{4}-\d{2}-\d{2}T/.test(e))return new Date(e);if(/^\d{4}-\d{2}-\d{2}/.test(e))return new Date(e.replace(" ","T"));if(/^\d{2}:\d{2}:\d{2}$/.test(e)){const t=new Date,[o,r,u]=e.split(":").map(Number),l=new Date(t);return l.setHours(o,r,u,0),l}return null},me=e=>{const t=e[e.length-1],o=t.message;if(o.includes("响应完成")||o.includes("非流式响应完成"))return"success";if(t.level==="ERROR"||o.includes("失败"))return"error";const r=ce(t.time);return r&&(Date.now()-r.getTime())/1e3/60>5?"timeout":"in_progress"},xe=e=>{const t=new Map,o=[],r=[];e.forEach(l=>{l.reqId?(t.has(l.reqId)||(t.set(l.reqId,[]),o.push(l.reqId)),t.get(l.reqId)?.push(l)):r.push(l)});const u=o.map(l=>{const g=t.get(l)||[],$=g[0],P=$?.message.match(/\[(account_[^\]]+)\]/i),Z=$?.message.match(/收到请求: ([^ |]+)/)||$?.message.match(/Received request: ([^ |]+)/);return{id:l,logs:g,status:me(g),accountId:$?.accountId||(P?P[1]:""),model:Z?Z[1]:""}});return{ungrouped:r,groups:u}},T=D(()=>{const e=G.value.ungrouped,t=G.value.groups,o=e.length>E?e.slice(-E):e,r=t.length>E?t.slice(-E):t;return{ungrouped:o,groups:r,limited:e.length>o.length||t.length>r.length,ungroupedTotal:e.length,groupsTotal:t.length,ungroupedShowing:o.length,groupsShowing:r.length}}),pe=D(()=>{const e=C.value.length,t=e>te?e-te:0,o=C.value.slice(t),r=o.map(l=>`${l.time} | ${l.level} | ${l.message}`).join(` +`),u=o.length;return{text:r,total:e,showing:u,limited:e>u}}),q=e=>_.value[e]===!0,ge=e=>{_.value[e]=!q(e),localStorage.setItem("log-fold-state",JSON.stringify(_.value))},fe=e=>e.logs.length>M,ve=e=>e.logs.length<=M?e.logs:e.logs.slice(-M),be=()=>{(!i.limit||Number.isNaN(i.limit))&&(i.limit=300),i.limit=Math.min(Math.max(i.limit,10),1e3)},A=async()=>{if(!U){U=!0,I.value="",p.value="",be();try{const e=await B.list({limit:i.limit,level:i.level||void 0,search:i.search||void 0});oe.value=e.logs,C.value=e.logs.map(ue),G.value=xe(C.value),x.value=e.stats}catch(e){I.value=e.message||"日志加载失败"}finally{U=!1,requestAnimationFrame(J)}}},he=async()=>{p.value="",y.value="success";try{const e=await B.list({limit:1e3,level:i.level||void 0,search:i.search||void 0}),t=new Blob([JSON.stringify({exported_at:new Date().toISOString(),logs:e.logs},null,2)],{type:"application/json"}),o=URL.createObjectURL(t),r=document.createElement("a");r.href=o,r.download=`logs_${new Date().toISOString().slice(0,19).replace(/:/g,"-")}.json`,r.click(),URL.revokeObjectURL(o),p.value="导出成功"}catch(e){y.value="error",p.value=e.message||"导出失败"}},ye=async()=>{L.value=!1;try{await B.clear(),y.value="success",p.value="已清空日志",await A()}catch(e){y.value="error",p.value=e.message||"清空失败"}},S=()=>{N&&(window.clearTimeout(N),N=void 0)},z=()=>{!f.value||document.hidden||(N=window.setTimeout(async()=>{await A(),z()},dt))},F=()=>{S(),z()},_e=()=>{f.value=!f.value,f.value?F():S()},we=()=>{b.value=!b.value,requestAnimationFrame(J)},J=()=>{b.value&&k.value&&(k.value.scrollTop=k.value.scrollHeight),!b.value&&O.value&&(O.value.scrollTop=O.value.scrollHeight)},Y=()=>{document.hidden?S():f.value&&F()};return Ie(()=>{const e=localStorage.getItem("log-fold-state");if(e)try{_.value=JSON.parse(e)}catch{_.value={}}A(),F(),document.addEventListener("visibilitychange",Y)}),Le(()=>{S(),document.removeEventListener("visibilitychange",Y)}),(e,t)=>(d(),a(h,null,[s("div",Ne,[s("div",Te,[t[5]||(t[5]=s("p",{class:"text-base font-semibold text-foreground"},"管理日志",-1)),s("div",Ae," 自动刷新:"+n(f.value?"开启":"关闭"),1)]),s("div",Se,[s("div",$e,[t[6]||(t[6]=s("div",{class:"text-[11px] text-muted-foreground"},"总数",-1)),s("div",Ee,n(x.value?.memory.total??0),1)]),s("div",Me,[t[7]||(t[7]=s("div",{class:"text-[11px] text-muted-foreground"},"对话",-1)),s("div",Ge,n(x.value?.chat_count??0),1)]),s("div",Ue,[t[8]||(t[8]=s("div",{class:"text-[11px] text-muted-foreground"},"INFO",-1)),s("div",Ve,n(x.value?.memory.by_level.INFO??0),1)]),s("div",qe,[t[9]||(t[9]=s("div",{class:"text-[11px] text-muted-foreground"},"WARNING",-1)),s("div",Fe,n(x.value?.memory.by_level.WARNING??0),1)]),s("div",De,[t[10]||(t[10]=s("div",{class:"text-[11px] text-muted-foreground"},"ERROR",-1)),s("div",{class:v(["mt-1 text-lg font-semibold",x.value?.memory.by_level.ERROR?"text-rose-600":"text-foreground"])},n(x.value?.memory.by_level.ERROR??0),3)]),s("div",Be,[t[11]||(t[11]=s("div",{class:"text-[11px] text-muted-foreground"},"缓存上限",-1)),s("div",je,n(x.value?.memory.capacity??0),1)])]),s("div",He,[s("div",We,[Q(ke,{modelValue:i.level,"onUpdate:modelValue":t[0]||(t[0]=o=>i.level=o),options:se},null,8,["modelValue"])]),X(s("input",{"onUpdate:modelValue":t[1]||(t[1]=o=>i.search=o),type:"text",placeholder:"搜索...",class:"min-w-[200px] flex-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground sm:min-w-0"},null,512),[[ee,i.search,void 0,{trim:!0}]]),X(s("input",{"onUpdate:modelValue":t[2]||(t[2]=o=>i.limit=o),type:"number",min:"10",max:"1000",step:"100",class:"w-24 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground"},null,512),[[ee,i.limit,void 0,{number:!0}]]),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A}," 查询 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:he}," 导出 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:we},n(b.value?"结构化视图":"原始视图"),1),s("button",{class:v(["rounded-full px-4 py-2 text-xs font-medium transition-colors",f.value?"bg-primary text-primary-foreground":"border border-border text-muted-foreground hover:text-foreground"]),onClick:_e}," 自动刷新 ",2),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-destructive transition-colors hover:border-destructive/60",onClick:t[3]||(t[3]=o=>L.value=!0)}," 清空 ")]),p.value?(d(),a("div",{key:0,class:v(["mt-3 text-xs",le.value])},n(p.value),3)):m("",!0),I.value?(d(),a("div",ze,n(I.value),1)):m("",!0),b.value?(d(),a("div",{key:2,ref_key:"rawLogContainer",ref:k,class:"scrollbar-slim mt-4 max-h-[60vh] overflow-x-auto overflow-y-auto rounded-2xl border border-border bg-muted/30 px-4 py-3 text-[11px] text-muted-foreground"},[s("pre",Je,n(pe.value.text),1)],512)):(d(),a("div",{key:3,ref_key:"structuredLogContainer",ref:O,class:"scrollbar-slim mt-4 max-h-[60vh] space-y-3 overflow-y-auto rounded-2xl border border-border bg-card px-4 py-3"},[T.value.ungrouped.length===0&&T.value.groups.length===0?(d(),a("div",Ye," 暂无日志 ")):m("",!0),(d(!0),a(h,null,w(T.value.ungrouped,(o,r)=>(d(),a("div",{key:`u-${r}`},[s("div",Pe,[s("div",Ze,[s("span",Ke,n(o.time),1),s("span",{class:v(W(o.level))},n(o.level),3),(d(!0),a(h,null,w(o.tags,u=>(d(),a("span",{key:u,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:H(u)})},n(u),5))),128)),o.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:V(o.accountId)})},n(o.accountId),5)):m("",!0)]),s("div",Qe,n(o.text),1)])]))),128)),(d(!0),a(h,null,w(T.value.groups,o=>(d(),a("div",{key:o.id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:r=>ge(o.id)},[s("span",{class:v(ae(o.status))},n(de(o.status)),3),s("span",et,"req_"+n(o.id),1),o.accountId?(d(),a("span",{key:0,class:"text-xs font-semibold",style:R({color:V(o.accountId)})},n(o.accountId),5)):m("",!0),o.model?(d(),a("span",tt,n(o.model),1)):m("",!0),fe(o)?(d(),a("span",ot," 仅显示最近 "+n(M)+" 条 ")):m("",!0),s("span",st,n(o.logs.length)+" 条日志",1),s("span",{class:v(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!q(o.id)}])}," ▸ ",2)],8,Xe),q(o.id)?m("",!0):(d(),a("div",rt,[(d(!0),a(h,null,w(ve(o),(r,u)=>(d(),a("div",{key:`${o.id}-${u}`,class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",nt,[s("span",lt,n(r.time),1),s("span",{class:v(W(r.level))},n(r.level),3),(d(!0),a(h,null,w(r.tags,l=>(d(),a("span",{key:l,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:H(l)})},n(l),5))),128)),r.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:V(r.accountId)})},n(r.accountId),5)):m("",!0)]),s("div",at,n(r.text),1)]))),128))]))]))),128))],512))]),Q(Oe,{open:L.value,title:"确认操作",message:"确定要清空所有运行日志吗?","confirm-text":"确认","cancel-text":"取消",onConfirm:ye,onCancel:t[4]||(t[4]=o=>L.value=!1)},null,8,["open"])],64))}});export{mt as default}; diff --git a/static/assets/Logs-DHB6fZHX.js b/static/assets/Logs-DHB6fZHX.js new file mode 100644 index 0000000000000000000000000000000000000000..694d6e0c14fd4d7511f79bccbeb51e0ce2f03378 --- /dev/null +++ b/static/assets/Logs-DHB6fZHX.js @@ -0,0 +1,2 @@ +import{g as K,d as Re,h as c,H as Ce,i as D,o as Ie,j as Le,c as a,a as s,x as Q,b as m,t as n,n as v,m as X,v as ee,F as h,r as w,k as R,e as d}from"./index-C7QtVLks.js";import{_ as ke}from"./SelectMenu.vue_vue_type_script_setup_true_lang-bF-MPrxc.js";import{_ as Oe}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-Cf0ef7-g.js";const B={list:j=>K.get("/admin/log",{params:j}),clear:()=>K.delete("/admin/log?confirm=yes")},Ne={class:"rounded-3xl border border-border bg-card p-6"},Te={class:"flex flex-wrap items-center justify-between gap-3"},Ae={class:"text-xs text-muted-foreground"},Se={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-6"},$e={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ee={class:"mt-1 text-lg font-semibold text-foreground"},Me={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ge={class:"mt-1 text-lg font-semibold text-foreground"},Ue={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ve={class:"mt-1 text-lg font-semibold text-foreground"},qe={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Fe={class:"mt-1 text-lg font-semibold text-foreground"},De={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Be={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},je={class:"mt-1 text-lg font-semibold text-foreground"},He={class:"mt-4 flex flex-wrap items-center gap-2 sm:flex-nowrap"},We={class:"w-44 shrink-0"},ze={key:1,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Je={class:"whitespace-pre font-mono leading-relaxed"},Ye={key:0,class:"text-xs text-muted-foreground"},Pe={class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},Ze={class:"flex flex-wrap items-center gap-2"},Ke={class:"text-muted-foreground"},Qe={class:"w-full text-foreground md:w-auto md:flex-1"},Xe=["onClick"],et={class:"text-muted-foreground"},tt={key:1,class:"text-muted-foreground"},ot={key:2,class:"text-[10px] text-muted-foreground"},st={class:"text-muted-foreground"},rt={key:0,class:"space-y-2 px-4 py-3"},nt={class:"flex flex-wrap items-center gap-2"},lt={class:"text-muted-foreground"},at={class:"w-full text-foreground md:w-auto md:flex-1"},E=1e3,te=1e3,M=200,dt=3e3,mt=Re({__name:"Logs",setup(j){const oe=c([]),C=c([]),G=c({ungrouped:[],groups:[]}),x=c(null),I=c(""),p=c(""),y=c("success"),L=c(!1),f=c(!0),_=c({}),b=c(!0),k=c(null),O=c(null);let N,U=!1;const i=Ce({level:"",search:"",limit:300}),se=[{label:"全部",value:""},{label:"INFO",value:"INFO"},{label:"WARNING",value:"WARNING"},{label:"ERROR",value:"ERROR"}],re={SYSTEM:"#9e9e9e",CONFIG:"#607d8b",LOG:"#9e9e9e",AUTH:"#4caf50",SESSION:"#00bcd4",FILE:"#ff9800",CHAT:"#2196f3",API:"#8bc34a",CACHE:"#9c27b0",ACCOUNT:"#f44336",MULTI:"#673ab7"},ne={account_1:"#9c27b0",account_2:"#e91e63",account_3:"#00bcd4",account_4:"#4caf50",account_5:"#ff9800"},le=D(()=>y.value==="error"?"text-destructive":"text-muted-foreground"),H=e=>re[e]||"#757575",V=e=>ne[e]||"#757575",W=e=>{const t="rounded px-2 py-0.5 text-[10px] font-semibold";return e==="INFO"?`${t} bg-blue-100 text-blue-700`:e==="WARNING"?`${t} bg-amber-100 text-amber-700`:e==="ERROR"||e==="CRITICAL"?`${t} bg-rose-100 text-rose-700`:`${t} bg-violet-100 text-violet-700`},ae=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},de=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",ie=e=>{let t=e;const o=[];let r="";const u=/^\[([A-Za-z0-9_]+)\]/;for(;;){const l=t.match(u);if(!l)break;const g=l[1];if(t=t.slice(l[0].length).trim(),!g.startsWith("req_")){if(g.startsWith("account_")){r=g;continue}o.push(g)}}return{tags:o,accountId:r,text:t}},ue=e=>{const t=ie(e.message),o=e.message.match(/\[req_([a-z0-9]+)\]/i);return{...e,...t,reqId:o?o[1]:""}},ce=e=>{if(/^\d{4}-\d{2}-\d{2}T/.test(e))return new Date(e);if(/^\d{4}-\d{2}-\d{2}/.test(e))return new Date(e.replace(" ","T"));if(/^\d{2}:\d{2}:\d{2}$/.test(e)){const t=new Date,[o,r,u]=e.split(":").map(Number),l=new Date(t);return l.setHours(o,r,u,0),l}return null},me=e=>{const t=e[e.length-1],o=t.message;if(o.includes("响应完成")||o.includes("非流式响应完成"))return"success";if(t.level==="ERROR"||o.includes("失败"))return"error";const r=ce(t.time);return r&&(Date.now()-r.getTime())/1e3/60>5?"timeout":"in_progress"},xe=e=>{const t=new Map,o=[],r=[];e.forEach(l=>{l.reqId?(t.has(l.reqId)||(t.set(l.reqId,[]),o.push(l.reqId)),t.get(l.reqId)?.push(l)):r.push(l)});const u=o.map(l=>{const g=t.get(l)||[],$=g[0],P=$?.message.match(/\[(account_[^\]]+)\]/i),Z=$?.message.match(/收到请求: ([^ |]+)/)||$?.message.match(/Received request: ([^ |]+)/);return{id:l,logs:g,status:me(g),accountId:$?.accountId||(P?P[1]:""),model:Z?Z[1]:""}});return{ungrouped:r,groups:u}},T=D(()=>{const e=G.value.ungrouped,t=G.value.groups,o=e.length>E?e.slice(-E):e,r=t.length>E?t.slice(-E):t;return{ungrouped:o,groups:r,limited:e.length>o.length||t.length>r.length,ungroupedTotal:e.length,groupsTotal:t.length,ungroupedShowing:o.length,groupsShowing:r.length}}),pe=D(()=>{const e=C.value.length,t=e>te?e-te:0,o=C.value.slice(t),r=o.map(l=>`${l.time} | ${l.level} | ${l.message}`).join(` +`),u=o.length;return{text:r,total:e,showing:u,limited:e>u}}),q=e=>_.value[e]===!0,ge=e=>{_.value[e]=!q(e),localStorage.setItem("log-fold-state",JSON.stringify(_.value))},fe=e=>e.logs.length>M,ve=e=>e.logs.length<=M?e.logs:e.logs.slice(-M),be=()=>{(!i.limit||Number.isNaN(i.limit))&&(i.limit=300),i.limit=Math.min(Math.max(i.limit,10),1e3)},A=async()=>{if(!U){U=!0,I.value="",p.value="",be();try{const e=await B.list({limit:i.limit,level:i.level||void 0,search:i.search||void 0});oe.value=e.logs,C.value=e.logs.map(ue),G.value=xe(C.value),x.value=e.stats}catch(e){I.value=e.message||"日志加载失败"}finally{U=!1,requestAnimationFrame(J)}}},he=async()=>{p.value="",y.value="success";try{const e=await B.list({limit:1e3,level:i.level||void 0,search:i.search||void 0}),t=new Blob([JSON.stringify({exported_at:new Date().toISOString(),logs:e.logs},null,2)],{type:"application/json"}),o=URL.createObjectURL(t),r=document.createElement("a");r.href=o,r.download=`logs_${new Date().toISOString().slice(0,19).replace(/:/g,"-")}.json`,r.click(),URL.revokeObjectURL(o),p.value="导出成功"}catch(e){y.value="error",p.value=e.message||"导出失败"}},ye=async()=>{L.value=!1;try{await B.clear(),y.value="success",p.value="已清空日志",await A()}catch(e){y.value="error",p.value=e.message||"清空失败"}},S=()=>{N&&(window.clearTimeout(N),N=void 0)},z=()=>{!f.value||document.hidden||(N=window.setTimeout(async()=>{await A(),z()},dt))},F=()=>{S(),z()},_e=()=>{f.value=!f.value,f.value?F():S()},we=()=>{b.value=!b.value,requestAnimationFrame(J)},J=()=>{b.value&&k.value&&(k.value.scrollTop=k.value.scrollHeight),!b.value&&O.value&&(O.value.scrollTop=O.value.scrollHeight)},Y=()=>{document.hidden?S():f.value&&F()};return Ie(()=>{const e=localStorage.getItem("log-fold-state");if(e)try{_.value=JSON.parse(e)}catch{_.value={}}A(),F(),document.addEventListener("visibilitychange",Y)}),Le(()=>{S(),document.removeEventListener("visibilitychange",Y)}),(e,t)=>(d(),a(h,null,[s("div",Ne,[s("div",Te,[t[5]||(t[5]=s("p",{class:"text-base font-semibold text-foreground"},"管理日志",-1)),s("div",Ae," 自动刷新:"+n(f.value?"开启":"关闭"),1)]),s("div",Se,[s("div",$e,[t[6]||(t[6]=s("div",{class:"text-[11px] text-muted-foreground"},"总数",-1)),s("div",Ee,n(x.value?.memory.total??0),1)]),s("div",Me,[t[7]||(t[7]=s("div",{class:"text-[11px] text-muted-foreground"},"对话",-1)),s("div",Ge,n(x.value?.chat_count??0),1)]),s("div",Ue,[t[8]||(t[8]=s("div",{class:"text-[11px] text-muted-foreground"},"INFO",-1)),s("div",Ve,n(x.value?.memory.by_level.INFO??0),1)]),s("div",qe,[t[9]||(t[9]=s("div",{class:"text-[11px] text-muted-foreground"},"WARNING",-1)),s("div",Fe,n(x.value?.memory.by_level.WARNING??0),1)]),s("div",De,[t[10]||(t[10]=s("div",{class:"text-[11px] text-muted-foreground"},"ERROR",-1)),s("div",{class:v(["mt-1 text-lg font-semibold",x.value?.memory.by_level.ERROR?"text-rose-600":"text-foreground"])},n(x.value?.memory.by_level.ERROR??0),3)]),s("div",Be,[t[11]||(t[11]=s("div",{class:"text-[11px] text-muted-foreground"},"缓存上限",-1)),s("div",je,n(x.value?.memory.capacity??0),1)])]),s("div",He,[s("div",We,[Q(ke,{modelValue:i.level,"onUpdate:modelValue":t[0]||(t[0]=o=>i.level=o),options:se},null,8,["modelValue"])]),X(s("input",{"onUpdate:modelValue":t[1]||(t[1]=o=>i.search=o),type:"text",placeholder:"搜索...",class:"min-w-[200px] flex-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground sm:min-w-0"},null,512),[[ee,i.search,void 0,{trim:!0}]]),X(s("input",{"onUpdate:modelValue":t[2]||(t[2]=o=>i.limit=o),type:"number",min:"10",max:"1000",step:"100",class:"w-24 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground"},null,512),[[ee,i.limit,void 0,{number:!0}]]),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A}," 查询 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:he}," 导出 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:we},n(b.value?"结构化视图":"原始视图"),1),s("button",{class:v(["rounded-full px-4 py-2 text-xs font-medium transition-colors",f.value?"bg-primary text-primary-foreground":"border border-border text-muted-foreground hover:text-foreground"]),onClick:_e}," 自动刷新 ",2),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-destructive transition-colors hover:border-destructive/60",onClick:t[3]||(t[3]=o=>L.value=!0)}," 清空 ")]),p.value?(d(),a("div",{key:0,class:v(["mt-3 text-xs",le.value])},n(p.value),3)):m("",!0),I.value?(d(),a("div",ze,n(I.value),1)):m("",!0),b.value?(d(),a("div",{key:2,ref_key:"rawLogContainer",ref:k,class:"scrollbar-slim mt-4 max-h-[60vh] overflow-x-auto overflow-y-auto rounded-2xl border border-border bg-muted/30 px-4 py-3 text-[11px] text-muted-foreground"},[s("pre",Je,n(pe.value.text),1)],512)):(d(),a("div",{key:3,ref_key:"structuredLogContainer",ref:O,class:"scrollbar-slim mt-4 max-h-[60vh] space-y-3 overflow-y-auto rounded-2xl border border-border bg-card px-4 py-3"},[T.value.ungrouped.length===0&&T.value.groups.length===0?(d(),a("div",Ye," 暂无日志 ")):m("",!0),(d(!0),a(h,null,w(T.value.ungrouped,(o,r)=>(d(),a("div",{key:`u-${r}`},[s("div",Pe,[s("div",Ze,[s("span",Ke,n(o.time),1),s("span",{class:v(W(o.level))},n(o.level),3),(d(!0),a(h,null,w(o.tags,u=>(d(),a("span",{key:u,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:H(u)})},n(u),5))),128)),o.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:V(o.accountId)})},n(o.accountId),5)):m("",!0)]),s("div",Qe,n(o.text),1)])]))),128)),(d(!0),a(h,null,w(T.value.groups,o=>(d(),a("div",{key:o.id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:r=>ge(o.id)},[s("span",{class:v(ae(o.status))},n(de(o.status)),3),s("span",et,"req_"+n(o.id),1),o.accountId?(d(),a("span",{key:0,class:"text-xs font-semibold",style:R({color:V(o.accountId)})},n(o.accountId),5)):m("",!0),o.model?(d(),a("span",tt,n(o.model),1)):m("",!0),fe(o)?(d(),a("span",ot," 仅显示最近 "+n(M)+" 条 ")):m("",!0),s("span",st,n(o.logs.length)+" 条日志",1),s("span",{class:v(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!q(o.id)}])}," ▸ ",2)],8,Xe),q(o.id)?m("",!0):(d(),a("div",rt,[(d(!0),a(h,null,w(ve(o),(r,u)=>(d(),a("div",{key:`${o.id}-${u}`,class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",nt,[s("span",lt,n(r.time),1),s("span",{class:v(W(r.level))},n(r.level),3),(d(!0),a(h,null,w(r.tags,l=>(d(),a("span",{key:l,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:H(l)})},n(l),5))),128)),r.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:V(r.accountId)})},n(r.accountId),5)):m("",!0)]),s("div",at,n(r.text),1)]))),128))]))]))),128))],512))]),Q(Oe,{open:L.value,title:"确认操作",message:"确定要清空所有运行日志吗?","confirm-text":"确认","cancel-text":"取消",onConfirm:ye,onCancel:t[4]||(t[4]=o=>L.value=!1)},null,8,["open"])],64))}});export{mt as default}; diff --git a/static/assets/Logs-DOuqT7BC.js b/static/assets/Logs-DOuqT7BC.js new file mode 100644 index 0000000000000000000000000000000000000000..2008623ea60e02e1fe7136ed6a2743d75a57ef57 --- /dev/null +++ b/static/assets/Logs-DOuqT7BC.js @@ -0,0 +1,2 @@ +import{g as K,d as Re,h as c,H as Ce,i as D,o as Ie,j as Le,c as a,a as s,x as Q,b as m,t as n,n as v,m as X,v as ee,F as h,r as w,k as R,e as d}from"./index-C9KL0lrc.js";import{_ as ke}from"./SelectMenu.vue_vue_type_script_setup_true_lang-gwg2tONM.js";import{_ as Oe}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-pFdqEtiD.js";const B={list:j=>K.get("/admin/log",{params:j}),clear:()=>K.delete("/admin/log?confirm=yes")},Ne={class:"rounded-3xl border border-border bg-card p-6"},Te={class:"flex flex-wrap items-center justify-between gap-3"},Ae={class:"text-xs text-muted-foreground"},Se={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-6"},$e={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ee={class:"mt-1 text-lg font-semibold text-foreground"},Me={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ge={class:"mt-1 text-lg font-semibold text-foreground"},Ue={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ve={class:"mt-1 text-lg font-semibold text-foreground"},qe={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Fe={class:"mt-1 text-lg font-semibold text-foreground"},De={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Be={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},je={class:"mt-1 text-lg font-semibold text-foreground"},He={class:"mt-4 flex flex-wrap items-center gap-2 sm:flex-nowrap"},We={class:"w-44 shrink-0"},ze={key:1,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Je={class:"whitespace-pre font-mono leading-relaxed"},Ye={key:0,class:"text-xs text-muted-foreground"},Pe={class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},Ze={class:"flex flex-wrap items-center gap-2"},Ke={class:"text-muted-foreground"},Qe={class:"w-full text-foreground md:w-auto md:flex-1"},Xe=["onClick"],et={class:"text-muted-foreground"},tt={key:1,class:"text-muted-foreground"},ot={key:2,class:"text-[10px] text-muted-foreground"},st={class:"text-muted-foreground"},rt={key:0,class:"space-y-2 px-4 py-3"},nt={class:"flex flex-wrap items-center gap-2"},lt={class:"text-muted-foreground"},at={class:"w-full text-foreground md:w-auto md:flex-1"},E=1e3,te=1e3,M=200,dt=3e3,mt=Re({__name:"Logs",setup(j){const oe=c([]),C=c([]),G=c({ungrouped:[],groups:[]}),x=c(null),I=c(""),p=c(""),y=c("success"),L=c(!1),f=c(!0),_=c({}),b=c(!0),k=c(null),O=c(null);let N,U=!1;const i=Ce({level:"",search:"",limit:300}),se=[{label:"全部",value:""},{label:"INFO",value:"INFO"},{label:"WARNING",value:"WARNING"},{label:"ERROR",value:"ERROR"}],re={SYSTEM:"#9e9e9e",CONFIG:"#607d8b",LOG:"#9e9e9e",AUTH:"#4caf50",SESSION:"#00bcd4",FILE:"#ff9800",CHAT:"#2196f3",API:"#8bc34a",CACHE:"#9c27b0",ACCOUNT:"#f44336",MULTI:"#673ab7"},ne={account_1:"#9c27b0",account_2:"#e91e63",account_3:"#00bcd4",account_4:"#4caf50",account_5:"#ff9800"},le=D(()=>y.value==="error"?"text-destructive":"text-muted-foreground"),H=e=>re[e]||"#757575",V=e=>ne[e]||"#757575",W=e=>{const t="rounded px-2 py-0.5 text-[10px] font-semibold";return e==="INFO"?`${t} bg-blue-100 text-blue-700`:e==="WARNING"?`${t} bg-amber-100 text-amber-700`:e==="ERROR"||e==="CRITICAL"?`${t} bg-rose-100 text-rose-700`:`${t} bg-violet-100 text-violet-700`},ae=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},de=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",ie=e=>{let t=e;const o=[];let r="";const u=/^\[([A-Za-z0-9_]+)\]/;for(;;){const l=t.match(u);if(!l)break;const g=l[1];if(t=t.slice(l[0].length).trim(),!g.startsWith("req_")){if(g.startsWith("account_")){r=g;continue}o.push(g)}}return{tags:o,accountId:r,text:t}},ue=e=>{const t=ie(e.message),o=e.message.match(/\[req_([a-z0-9]+)\]/i);return{...e,...t,reqId:o?o[1]:""}},ce=e=>{if(/^\d{4}-\d{2}-\d{2}T/.test(e))return new Date(e);if(/^\d{4}-\d{2}-\d{2}/.test(e))return new Date(e.replace(" ","T"));if(/^\d{2}:\d{2}:\d{2}$/.test(e)){const t=new Date,[o,r,u]=e.split(":").map(Number),l=new Date(t);return l.setHours(o,r,u,0),l}return null},me=e=>{const t=e[e.length-1],o=t.message;if(o.includes("响应完成")||o.includes("非流式响应完成"))return"success";if(t.level==="ERROR"||o.includes("失败"))return"error";const r=ce(t.time);return r&&(Date.now()-r.getTime())/1e3/60>5?"timeout":"in_progress"},xe=e=>{const t=new Map,o=[],r=[];e.forEach(l=>{l.reqId?(t.has(l.reqId)||(t.set(l.reqId,[]),o.push(l.reqId)),t.get(l.reqId)?.push(l)):r.push(l)});const u=o.map(l=>{const g=t.get(l)||[],$=g[0],P=$?.message.match(/\[(account_[^\]]+)\]/i),Z=$?.message.match(/收到请求: ([^ |]+)/)||$?.message.match(/Received request: ([^ |]+)/);return{id:l,logs:g,status:me(g),accountId:$?.accountId||(P?P[1]:""),model:Z?Z[1]:""}});return{ungrouped:r,groups:u}},T=D(()=>{const e=G.value.ungrouped,t=G.value.groups,o=e.length>E?e.slice(-E):e,r=t.length>E?t.slice(-E):t;return{ungrouped:o,groups:r,limited:e.length>o.length||t.length>r.length,ungroupedTotal:e.length,groupsTotal:t.length,ungroupedShowing:o.length,groupsShowing:r.length}}),pe=D(()=>{const e=C.value.length,t=e>te?e-te:0,o=C.value.slice(t),r=o.map(l=>`${l.time} | ${l.level} | ${l.message}`).join(` +`),u=o.length;return{text:r,total:e,showing:u,limited:e>u}}),q=e=>_.value[e]===!0,ge=e=>{_.value[e]=!q(e),localStorage.setItem("log-fold-state",JSON.stringify(_.value))},fe=e=>e.logs.length>M,ve=e=>e.logs.length<=M?e.logs:e.logs.slice(-M),be=()=>{(!i.limit||Number.isNaN(i.limit))&&(i.limit=300),i.limit=Math.min(Math.max(i.limit,10),1e3)},A=async()=>{if(!U){U=!0,I.value="",p.value="",be();try{const e=await B.list({limit:i.limit,level:i.level||void 0,search:i.search||void 0});oe.value=e.logs,C.value=e.logs.map(ue),G.value=xe(C.value),x.value=e.stats}catch(e){I.value=e.message||"日志加载失败"}finally{U=!1,requestAnimationFrame(J)}}},he=async()=>{p.value="",y.value="success";try{const e=await B.list({limit:1e3,level:i.level||void 0,search:i.search||void 0}),t=new Blob([JSON.stringify({exported_at:new Date().toISOString(),logs:e.logs},null,2)],{type:"application/json"}),o=URL.createObjectURL(t),r=document.createElement("a");r.href=o,r.download=`logs_${new Date().toISOString().slice(0,19).replace(/:/g,"-")}.json`,r.click(),URL.revokeObjectURL(o),p.value="导出成功"}catch(e){y.value="error",p.value=e.message||"导出失败"}},ye=async()=>{L.value=!1;try{await B.clear(),y.value="success",p.value="已清空日志",await A()}catch(e){y.value="error",p.value=e.message||"清空失败"}},S=()=>{N&&(window.clearTimeout(N),N=void 0)},z=()=>{!f.value||document.hidden||(N=window.setTimeout(async()=>{await A(),z()},dt))},F=()=>{S(),z()},_e=()=>{f.value=!f.value,f.value?F():S()},we=()=>{b.value=!b.value,requestAnimationFrame(J)},J=()=>{b.value&&k.value&&(k.value.scrollTop=k.value.scrollHeight),!b.value&&O.value&&(O.value.scrollTop=O.value.scrollHeight)},Y=()=>{document.hidden?S():f.value&&F()};return Ie(()=>{const e=localStorage.getItem("log-fold-state");if(e)try{_.value=JSON.parse(e)}catch{_.value={}}A(),F(),document.addEventListener("visibilitychange",Y)}),Le(()=>{S(),document.removeEventListener("visibilitychange",Y)}),(e,t)=>(d(),a(h,null,[s("div",Ne,[s("div",Te,[t[5]||(t[5]=s("p",{class:"text-base font-semibold text-foreground"},"管理日志",-1)),s("div",Ae," 自动刷新:"+n(f.value?"开启":"关闭"),1)]),s("div",Se,[s("div",$e,[t[6]||(t[6]=s("div",{class:"text-[11px] text-muted-foreground"},"总数",-1)),s("div",Ee,n(x.value?.memory.total??0),1)]),s("div",Me,[t[7]||(t[7]=s("div",{class:"text-[11px] text-muted-foreground"},"对话",-1)),s("div",Ge,n(x.value?.chat_count??0),1)]),s("div",Ue,[t[8]||(t[8]=s("div",{class:"text-[11px] text-muted-foreground"},"INFO",-1)),s("div",Ve,n(x.value?.memory.by_level.INFO??0),1)]),s("div",qe,[t[9]||(t[9]=s("div",{class:"text-[11px] text-muted-foreground"},"WARNING",-1)),s("div",Fe,n(x.value?.memory.by_level.WARNING??0),1)]),s("div",De,[t[10]||(t[10]=s("div",{class:"text-[11px] text-muted-foreground"},"ERROR",-1)),s("div",{class:v(["mt-1 text-lg font-semibold",x.value?.memory.by_level.ERROR?"text-rose-600":"text-foreground"])},n(x.value?.memory.by_level.ERROR??0),3)]),s("div",Be,[t[11]||(t[11]=s("div",{class:"text-[11px] text-muted-foreground"},"缓存上限",-1)),s("div",je,n(x.value?.memory.capacity??0),1)])]),s("div",He,[s("div",We,[Q(ke,{modelValue:i.level,"onUpdate:modelValue":t[0]||(t[0]=o=>i.level=o),options:se},null,8,["modelValue"])]),X(s("input",{"onUpdate:modelValue":t[1]||(t[1]=o=>i.search=o),type:"text",placeholder:"搜索...",class:"min-w-[200px] flex-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground sm:min-w-0"},null,512),[[ee,i.search,void 0,{trim:!0}]]),X(s("input",{"onUpdate:modelValue":t[2]||(t[2]=o=>i.limit=o),type:"number",min:"10",max:"1000",step:"100",class:"w-24 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground"},null,512),[[ee,i.limit,void 0,{number:!0}]]),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A}," 查询 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:he}," 导出 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:we},n(b.value?"结构化视图":"原始视图"),1),s("button",{class:v(["rounded-full px-4 py-2 text-xs font-medium transition-colors",f.value?"bg-primary text-primary-foreground":"border border-border text-muted-foreground hover:text-foreground"]),onClick:_e}," 自动刷新 ",2),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-destructive transition-colors hover:border-destructive/60",onClick:t[3]||(t[3]=o=>L.value=!0)}," 清空 ")]),p.value?(d(),a("div",{key:0,class:v(["mt-3 text-xs",le.value])},n(p.value),3)):m("",!0),I.value?(d(),a("div",ze,n(I.value),1)):m("",!0),b.value?(d(),a("div",{key:2,ref_key:"rawLogContainer",ref:k,class:"scrollbar-slim mt-4 max-h-[60vh] overflow-x-auto overflow-y-auto rounded-2xl border border-border bg-muted/30 px-4 py-3 text-[11px] text-muted-foreground"},[s("pre",Je,n(pe.value.text),1)],512)):(d(),a("div",{key:3,ref_key:"structuredLogContainer",ref:O,class:"scrollbar-slim mt-4 max-h-[60vh] space-y-3 overflow-y-auto rounded-2xl border border-border bg-card px-4 py-3"},[T.value.ungrouped.length===0&&T.value.groups.length===0?(d(),a("div",Ye," 暂无日志 ")):m("",!0),(d(!0),a(h,null,w(T.value.ungrouped,(o,r)=>(d(),a("div",{key:`u-${r}`},[s("div",Pe,[s("div",Ze,[s("span",Ke,n(o.time),1),s("span",{class:v(W(o.level))},n(o.level),3),(d(!0),a(h,null,w(o.tags,u=>(d(),a("span",{key:u,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:H(u)})},n(u),5))),128)),o.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:V(o.accountId)})},n(o.accountId),5)):m("",!0)]),s("div",Qe,n(o.text),1)])]))),128)),(d(!0),a(h,null,w(T.value.groups,o=>(d(),a("div",{key:o.id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:r=>ge(o.id)},[s("span",{class:v(ae(o.status))},n(de(o.status)),3),s("span",et,"req_"+n(o.id),1),o.accountId?(d(),a("span",{key:0,class:"text-xs font-semibold",style:R({color:V(o.accountId)})},n(o.accountId),5)):m("",!0),o.model?(d(),a("span",tt,n(o.model),1)):m("",!0),fe(o)?(d(),a("span",ot," 仅显示最近 "+n(M)+" 条 ")):m("",!0),s("span",st,n(o.logs.length)+" 条日志",1),s("span",{class:v(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!q(o.id)}])}," ▸ ",2)],8,Xe),q(o.id)?m("",!0):(d(),a("div",rt,[(d(!0),a(h,null,w(ve(o),(r,u)=>(d(),a("div",{key:`${o.id}-${u}`,class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",nt,[s("span",lt,n(r.time),1),s("span",{class:v(W(r.level))},n(r.level),3),(d(!0),a(h,null,w(r.tags,l=>(d(),a("span",{key:l,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:H(l)})},n(l),5))),128)),r.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:V(r.accountId)})},n(r.accountId),5)):m("",!0)]),s("div",at,n(r.text),1)]))),128))]))]))),128))],512))]),Q(Oe,{open:L.value,title:"确认操作",message:"确定要清空所有运行日志吗?","confirm-text":"确认","cancel-text":"取消",onConfirm:ye,onCancel:t[4]||(t[4]=o=>L.value=!1)},null,8,["open"])],64))}});export{mt as default}; diff --git a/static/assets/Logs-DmJ1nuVv.js b/static/assets/Logs-DmJ1nuVv.js new file mode 100644 index 0000000000000000000000000000000000000000..dd773758ed5b0e433932fcc547fd00b621968e81 --- /dev/null +++ b/static/assets/Logs-DmJ1nuVv.js @@ -0,0 +1,2 @@ +import{g as K,d as Re,h as c,J as Ce,i as D,o as Ie,j as Le,c as a,a as s,x as Q,b as m,t as n,n as v,q as X,v as ee,F as h,r as w,k as R,e as d}from"./index-CM73xqTK.js";import{_ as ke}from"./SelectMenu.vue_vue_type_script_setup_true_lang-CmlylKNl.js";import{_ as Oe}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-szV8KRsH.js";const B={list:j=>K.get("/admin/log",{params:j}),clear:()=>K.delete("/admin/log?confirm=yes")},Ne={class:"rounded-3xl border border-border bg-card p-6"},Te={class:"flex flex-wrap items-center justify-between gap-3"},Ae={class:"text-xs text-muted-foreground"},Se={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-6"},$e={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ee={class:"mt-1 text-lg font-semibold text-foreground"},Me={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ge={class:"mt-1 text-lg font-semibold text-foreground"},Ue={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},qe={class:"mt-1 text-lg font-semibold text-foreground"},Ve={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Fe={class:"mt-1 text-lg font-semibold text-foreground"},De={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Be={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},je={class:"mt-1 text-lg font-semibold text-foreground"},We={class:"mt-4 flex flex-wrap items-center gap-2 sm:flex-nowrap"},He={class:"w-44 shrink-0"},ze={key:1,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Je={class:"whitespace-pre font-mono leading-relaxed"},Ye={key:0,class:"text-xs text-muted-foreground"},Pe={class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},Ze={class:"flex flex-wrap items-center gap-2"},Ke={class:"text-muted-foreground"},Qe={class:"w-full text-foreground md:w-auto md:flex-1"},Xe=["onClick"],et={class:"text-muted-foreground"},tt={key:1,class:"text-muted-foreground"},ot={key:2,class:"text-[10px] text-muted-foreground"},st={class:"text-muted-foreground"},rt={key:0,class:"space-y-2 px-4 py-3"},nt={class:"flex flex-wrap items-center gap-2"},lt={class:"text-muted-foreground"},at={class:"w-full text-foreground md:w-auto md:flex-1"},E=1e3,te=1e3,M=200,dt=3e3,mt=Re({__name:"Logs",setup(j){const oe=c([]),C=c([]),G=c({ungrouped:[],groups:[]}),x=c(null),I=c(""),p=c(""),y=c("success"),L=c(!1),f=c(!0),_=c({}),b=c(!0),k=c(null),O=c(null);let N,U=!1;const i=Ce({level:"",search:"",limit:300}),se=[{label:"全部",value:""},{label:"INFO",value:"INFO"},{label:"WARNING",value:"WARNING"},{label:"ERROR",value:"ERROR"}],re={SYSTEM:"#9e9e9e",CONFIG:"#607d8b",LOG:"#9e9e9e",AUTH:"#4caf50",SESSION:"#00bcd4",FILE:"#ff9800",CHAT:"#2196f3",API:"#8bc34a",CACHE:"#9c27b0",ACCOUNT:"#f44336",MULTI:"#673ab7"},ne={account_1:"#9c27b0",account_2:"#e91e63",account_3:"#00bcd4",account_4:"#4caf50",account_5:"#ff9800"},le=D(()=>y.value==="error"?"text-destructive":"text-muted-foreground"),W=e=>re[e]||"#757575",q=e=>ne[e]||"#757575",H=e=>{const t="rounded px-2 py-0.5 text-[10px] font-semibold";return e==="INFO"?`${t} bg-blue-100 text-blue-700`:e==="WARNING"?`${t} bg-amber-100 text-amber-700`:e==="ERROR"||e==="CRITICAL"?`${t} bg-rose-100 text-rose-700`:`${t} bg-violet-100 text-violet-700`},ae=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},de=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",ie=e=>{let t=e;const o=[];let r="";const u=/^\[([A-Za-z0-9_]+)\]/;for(;;){const l=t.match(u);if(!l)break;const g=l[1];if(t=t.slice(l[0].length).trim(),!g.startsWith("req_")){if(g.startsWith("account_")){r=g;continue}o.push(g)}}return{tags:o,accountId:r,text:t}},ue=e=>{const t=ie(e.message),o=e.message.match(/\[req_([a-z0-9]+)\]/i);return{...e,...t,reqId:o?o[1]:""}},ce=e=>{if(/^\d{4}-\d{2}-\d{2}T/.test(e))return new Date(e);if(/^\d{4}-\d{2}-\d{2}/.test(e))return new Date(e.replace(" ","T"));if(/^\d{2}:\d{2}:\d{2}$/.test(e)){const t=new Date,[o,r,u]=e.split(":").map(Number),l=new Date(t);return l.setHours(o,r,u,0),l}return null},me=e=>{const t=e[e.length-1],o=t.message;if(o.includes("响应完成")||o.includes("非流式响应完成"))return"success";if(t.level==="ERROR"||o.includes("失败"))return"error";const r=ce(t.time);return r&&(Date.now()-r.getTime())/1e3/60>5?"timeout":"in_progress"},xe=e=>{const t=new Map,o=[],r=[];e.forEach(l=>{l.reqId?(t.has(l.reqId)||(t.set(l.reqId,[]),o.push(l.reqId)),t.get(l.reqId)?.push(l)):r.push(l)});const u=o.map(l=>{const g=t.get(l)||[],$=g[0],P=$?.message.match(/\[(account_[^\]]+)\]/i),Z=$?.message.match(/收到请求: ([^ |]+)/)||$?.message.match(/Received request: ([^ |]+)/);return{id:l,logs:g,status:me(g),accountId:$?.accountId||(P?P[1]:""),model:Z?Z[1]:""}});return{ungrouped:r,groups:u}},T=D(()=>{const e=G.value.ungrouped,t=G.value.groups,o=e.length>E?e.slice(-E):e,r=t.length>E?t.slice(-E):t;return{ungrouped:o,groups:r,limited:e.length>o.length||t.length>r.length,ungroupedTotal:e.length,groupsTotal:t.length,ungroupedShowing:o.length,groupsShowing:r.length}}),pe=D(()=>{const e=C.value.length,t=e>te?e-te:0,o=C.value.slice(t),r=o.map(l=>`${l.time} | ${l.level} | ${l.message}`).join(` +`),u=o.length;return{text:r,total:e,showing:u,limited:e>u}}),V=e=>_.value[e]===!0,ge=e=>{_.value[e]=!V(e),localStorage.setItem("log-fold-state",JSON.stringify(_.value))},fe=e=>e.logs.length>M,ve=e=>e.logs.length<=M?e.logs:e.logs.slice(-M),be=()=>{(!i.limit||Number.isNaN(i.limit))&&(i.limit=300),i.limit=Math.min(Math.max(i.limit,10),1e3)},A=async()=>{if(!U){U=!0,I.value="",p.value="",be();try{const e=await B.list({limit:i.limit,level:i.level||void 0,search:i.search||void 0});oe.value=e.logs,C.value=e.logs.map(ue),G.value=xe(C.value),x.value=e.stats}catch(e){I.value=e.message||"日志加载失败"}finally{U=!1,requestAnimationFrame(J)}}},he=async()=>{p.value="",y.value="success";try{const e=await B.list({limit:1e3,level:i.level||void 0,search:i.search||void 0}),t=new Blob([JSON.stringify({exported_at:new Date().toISOString(),logs:e.logs},null,2)],{type:"application/json"}),o=URL.createObjectURL(t),r=document.createElement("a");r.href=o,r.download=`logs_${new Date().toISOString().slice(0,19).replace(/:/g,"-")}.json`,r.click(),URL.revokeObjectURL(o),p.value="导出成功"}catch(e){y.value="error",p.value=e.message||"导出失败"}},ye=async()=>{L.value=!1;try{await B.clear(),y.value="success",p.value="已清空日志",await A()}catch(e){y.value="error",p.value=e.message||"清空失败"}},S=()=>{N&&(window.clearTimeout(N),N=void 0)},z=()=>{!f.value||document.hidden||(N=window.setTimeout(async()=>{await A(),z()},dt))},F=()=>{S(),z()},_e=()=>{f.value=!f.value,f.value?F():S()},we=()=>{b.value=!b.value,requestAnimationFrame(J)},J=()=>{b.value&&k.value&&(k.value.scrollTop=k.value.scrollHeight),!b.value&&O.value&&(O.value.scrollTop=O.value.scrollHeight)},Y=()=>{document.hidden?S():f.value&&F()};return Ie(()=>{const e=localStorage.getItem("log-fold-state");if(e)try{_.value=JSON.parse(e)}catch{_.value={}}A(),F(),document.addEventListener("visibilitychange",Y)}),Le(()=>{S(),document.removeEventListener("visibilitychange",Y)}),(e,t)=>(d(),a(h,null,[s("div",Ne,[s("div",Te,[t[5]||(t[5]=s("p",{class:"text-base font-semibold text-foreground"},"管理日志",-1)),s("div",Ae," 自动刷新:"+n(f.value?"开启":"关闭"),1)]),s("div",Se,[s("div",$e,[t[6]||(t[6]=s("div",{class:"text-[11px] text-muted-foreground"},"总数",-1)),s("div",Ee,n(x.value?.memory.total??0),1)]),s("div",Me,[t[7]||(t[7]=s("div",{class:"text-[11px] text-muted-foreground"},"对话",-1)),s("div",Ge,n(x.value?.chat_count??0),1)]),s("div",Ue,[t[8]||(t[8]=s("div",{class:"text-[11px] text-muted-foreground"},"INFO",-1)),s("div",qe,n(x.value?.memory.by_level.INFO??0),1)]),s("div",Ve,[t[9]||(t[9]=s("div",{class:"text-[11px] text-muted-foreground"},"WARNING",-1)),s("div",Fe,n(x.value?.memory.by_level.WARNING??0),1)]),s("div",De,[t[10]||(t[10]=s("div",{class:"text-[11px] text-muted-foreground"},"ERROR",-1)),s("div",{class:v(["mt-1 text-lg font-semibold",x.value?.memory.by_level.ERROR?"text-rose-600":"text-foreground"])},n(x.value?.memory.by_level.ERROR??0),3)]),s("div",Be,[t[11]||(t[11]=s("div",{class:"text-[11px] text-muted-foreground"},"缓存上限",-1)),s("div",je,n(x.value?.memory.capacity??0),1)])]),s("div",We,[s("div",He,[Q(ke,{modelValue:i.level,"onUpdate:modelValue":t[0]||(t[0]=o=>i.level=o),options:se},null,8,["modelValue"])]),X(s("input",{"onUpdate:modelValue":t[1]||(t[1]=o=>i.search=o),type:"text",placeholder:"搜索...",class:"min-w-[200px] flex-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground sm:min-w-0"},null,512),[[ee,i.search,void 0,{trim:!0}]]),X(s("input",{"onUpdate:modelValue":t[2]||(t[2]=o=>i.limit=o),type:"number",min:"10",max:"1000",step:"100",class:"w-24 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground"},null,512),[[ee,i.limit,void 0,{number:!0}]]),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A}," 查询 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:he}," 导出 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:we},n(b.value?"结构化视图":"原始视图"),1),s("button",{class:v(["rounded-full px-4 py-2 text-xs font-medium transition-colors",f.value?"bg-primary text-primary-foreground":"border border-border text-muted-foreground hover:text-foreground"]),onClick:_e}," 自动刷新 ",2),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-destructive transition-colors hover:border-destructive/60",onClick:t[3]||(t[3]=o=>L.value=!0)}," 清空 ")]),p.value?(d(),a("div",{key:0,class:v(["mt-3 text-xs",le.value])},n(p.value),3)):m("",!0),I.value?(d(),a("div",ze,n(I.value),1)):m("",!0),b.value?(d(),a("div",{key:2,ref_key:"rawLogContainer",ref:k,class:"scrollbar-slim mt-4 max-h-[60vh] overflow-x-auto overflow-y-auto rounded-2xl border border-border bg-muted/30 px-4 py-3 text-[11px] text-muted-foreground"},[s("pre",Je,n(pe.value.text),1)],512)):(d(),a("div",{key:3,ref_key:"structuredLogContainer",ref:O,class:"scrollbar-slim mt-4 max-h-[60vh] space-y-3 overflow-y-auto rounded-2xl border border-border bg-card px-4 py-3"},[T.value.ungrouped.length===0&&T.value.groups.length===0?(d(),a("div",Ye," 暂无日志 ")):m("",!0),(d(!0),a(h,null,w(T.value.ungrouped,(o,r)=>(d(),a("div",{key:`u-${r}`},[s("div",Pe,[s("div",Ze,[s("span",Ke,n(o.time),1),s("span",{class:v(H(o.level))},n(o.level),3),(d(!0),a(h,null,w(o.tags,u=>(d(),a("span",{key:u,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:W(u)})},n(u),5))),128)),o.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:q(o.accountId)})},n(o.accountId),5)):m("",!0)]),s("div",Qe,n(o.text),1)])]))),128)),(d(!0),a(h,null,w(T.value.groups,o=>(d(),a("div",{key:o.id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:r=>ge(o.id)},[s("span",{class:v(ae(o.status))},n(de(o.status)),3),s("span",et,"req_"+n(o.id),1),o.accountId?(d(),a("span",{key:0,class:"text-xs font-semibold",style:R({color:q(o.accountId)})},n(o.accountId),5)):m("",!0),o.model?(d(),a("span",tt,n(o.model),1)):m("",!0),fe(o)?(d(),a("span",ot," 仅显示最近 "+n(M)+" 条 ")):m("",!0),s("span",st,n(o.logs.length)+" 条日志",1),s("span",{class:v(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!V(o.id)}])}," ▸ ",2)],8,Xe),V(o.id)?m("",!0):(d(),a("div",rt,[(d(!0),a(h,null,w(ve(o),(r,u)=>(d(),a("div",{key:`${o.id}-${u}`,class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",nt,[s("span",lt,n(r.time),1),s("span",{class:v(H(r.level))},n(r.level),3),(d(!0),a(h,null,w(r.tags,l=>(d(),a("span",{key:l,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:W(l)})},n(l),5))),128)),r.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:q(r.accountId)})},n(r.accountId),5)):m("",!0)]),s("div",at,n(r.text),1)]))),128))]))]))),128))],512))]),Q(Oe,{open:L.value,title:"确认操作",message:"确定要清空所有运行日志吗?","confirm-text":"确认","cancel-text":"取消",onConfirm:ye,onCancel:t[4]||(t[4]=o=>L.value=!1)},null,8,["open"])],64))}});export{mt as default}; diff --git a/static/assets/Logs-DtASF2GN.js b/static/assets/Logs-DtASF2GN.js new file mode 100644 index 0000000000000000000000000000000000000000..88bbf2c629fed622892028e7f1e62bdc18fc7674 --- /dev/null +++ b/static/assets/Logs-DtASF2GN.js @@ -0,0 +1,2 @@ +import{g as K,d as Re,h as c,H as Ce,i as D,o as Ie,j as Le,c as a,a as s,x as Q,b as m,t as n,n as v,m as X,v as ee,F as h,r as w,k as R,e as d}from"./index-CDbQWWUi.js";import{_ as ke}from"./SelectMenu.vue_vue_type_script_setup_true_lang-DebMUA1u.js";import{_ as Oe}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-BA1J4R7-.js";const B={list:j=>K.get("/admin/log",{params:j}),clear:()=>K.delete("/admin/log?confirm=yes")},Ne={class:"rounded-3xl border border-border bg-card p-6"},Te={class:"flex flex-wrap items-center justify-between gap-3"},Ae={class:"text-xs text-muted-foreground"},Se={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-6"},$e={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ee={class:"mt-1 text-lg font-semibold text-foreground"},Me={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ge={class:"mt-1 text-lg font-semibold text-foreground"},Ue={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ve={class:"mt-1 text-lg font-semibold text-foreground"},qe={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Fe={class:"mt-1 text-lg font-semibold text-foreground"},De={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Be={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},je={class:"mt-1 text-lg font-semibold text-foreground"},He={class:"mt-4 flex flex-wrap items-center gap-2 sm:flex-nowrap"},We={class:"w-44 shrink-0"},ze={key:1,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Je={class:"whitespace-pre font-mono leading-relaxed"},Ye={key:0,class:"text-xs text-muted-foreground"},Pe={class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},Ze={class:"flex flex-wrap items-center gap-2"},Ke={class:"text-muted-foreground"},Qe={class:"w-full text-foreground md:w-auto md:flex-1"},Xe=["onClick"],et={class:"text-muted-foreground"},tt={key:1,class:"text-muted-foreground"},ot={key:2,class:"text-[10px] text-muted-foreground"},st={class:"text-muted-foreground"},rt={key:0,class:"space-y-2 px-4 py-3"},nt={class:"flex flex-wrap items-center gap-2"},lt={class:"text-muted-foreground"},at={class:"w-full text-foreground md:w-auto md:flex-1"},E=1e3,te=1e3,M=200,dt=3e3,mt=Re({__name:"Logs",setup(j){const oe=c([]),C=c([]),G=c({ungrouped:[],groups:[]}),x=c(null),I=c(""),p=c(""),y=c("success"),L=c(!1),f=c(!0),_=c({}),b=c(!0),k=c(null),O=c(null);let N,U=!1;const i=Ce({level:"",search:"",limit:300}),se=[{label:"全部",value:""},{label:"INFO",value:"INFO"},{label:"WARNING",value:"WARNING"},{label:"ERROR",value:"ERROR"}],re={SYSTEM:"#9e9e9e",CONFIG:"#607d8b",LOG:"#9e9e9e",AUTH:"#4caf50",SESSION:"#00bcd4",FILE:"#ff9800",CHAT:"#2196f3",API:"#8bc34a",CACHE:"#9c27b0",ACCOUNT:"#f44336",MULTI:"#673ab7"},ne={account_1:"#9c27b0",account_2:"#e91e63",account_3:"#00bcd4",account_4:"#4caf50",account_5:"#ff9800"},le=D(()=>y.value==="error"?"text-destructive":"text-muted-foreground"),H=e=>re[e]||"#757575",V=e=>ne[e]||"#757575",W=e=>{const t="rounded px-2 py-0.5 text-[10px] font-semibold";return e==="INFO"?`${t} bg-blue-100 text-blue-700`:e==="WARNING"?`${t} bg-amber-100 text-amber-700`:e==="ERROR"||e==="CRITICAL"?`${t} bg-rose-100 text-rose-700`:`${t} bg-violet-100 text-violet-700`},ae=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},de=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",ie=e=>{let t=e;const o=[];let r="";const u=/^\[([A-Za-z0-9_]+)\]/;for(;;){const l=t.match(u);if(!l)break;const g=l[1];if(t=t.slice(l[0].length).trim(),!g.startsWith("req_")){if(g.startsWith("account_")){r=g;continue}o.push(g)}}return{tags:o,accountId:r,text:t}},ue=e=>{const t=ie(e.message),o=e.message.match(/\[req_([a-z0-9]+)\]/i);return{...e,...t,reqId:o?o[1]:""}},ce=e=>{if(/^\d{4}-\d{2}-\d{2}T/.test(e))return new Date(e);if(/^\d{4}-\d{2}-\d{2}/.test(e))return new Date(e.replace(" ","T"));if(/^\d{2}:\d{2}:\d{2}$/.test(e)){const t=new Date,[o,r,u]=e.split(":").map(Number),l=new Date(t);return l.setHours(o,r,u,0),l}return null},me=e=>{const t=e[e.length-1],o=t.message;if(o.includes("响应完成")||o.includes("非流式响应完成"))return"success";if(t.level==="ERROR"||o.includes("失败"))return"error";const r=ce(t.time);return r&&(Date.now()-r.getTime())/1e3/60>5?"timeout":"in_progress"},xe=e=>{const t=new Map,o=[],r=[];e.forEach(l=>{l.reqId?(t.has(l.reqId)||(t.set(l.reqId,[]),o.push(l.reqId)),t.get(l.reqId)?.push(l)):r.push(l)});const u=o.map(l=>{const g=t.get(l)||[],$=g[0],P=$?.message.match(/\[(account_[^\]]+)\]/i),Z=$?.message.match(/收到请求: ([^ |]+)/)||$?.message.match(/Received request: ([^ |]+)/);return{id:l,logs:g,status:me(g),accountId:$?.accountId||(P?P[1]:""),model:Z?Z[1]:""}});return{ungrouped:r,groups:u}},T=D(()=>{const e=G.value.ungrouped,t=G.value.groups,o=e.length>E?e.slice(-E):e,r=t.length>E?t.slice(-E):t;return{ungrouped:o,groups:r,limited:e.length>o.length||t.length>r.length,ungroupedTotal:e.length,groupsTotal:t.length,ungroupedShowing:o.length,groupsShowing:r.length}}),pe=D(()=>{const e=C.value.length,t=e>te?e-te:0,o=C.value.slice(t),r=o.map(l=>`${l.time} | ${l.level} | ${l.message}`).join(` +`),u=o.length;return{text:r,total:e,showing:u,limited:e>u}}),q=e=>_.value[e]===!0,ge=e=>{_.value[e]=!q(e),localStorage.setItem("log-fold-state",JSON.stringify(_.value))},fe=e=>e.logs.length>M,ve=e=>e.logs.length<=M?e.logs:e.logs.slice(-M),be=()=>{(!i.limit||Number.isNaN(i.limit))&&(i.limit=300),i.limit=Math.min(Math.max(i.limit,10),1e3)},A=async()=>{if(!U){U=!0,I.value="",p.value="",be();try{const e=await B.list({limit:i.limit,level:i.level||void 0,search:i.search||void 0});oe.value=e.logs,C.value=e.logs.map(ue),G.value=xe(C.value),x.value=e.stats}catch(e){I.value=e.message||"日志加载失败"}finally{U=!1,requestAnimationFrame(J)}}},he=async()=>{p.value="",y.value="success";try{const e=await B.list({limit:1e3,level:i.level||void 0,search:i.search||void 0}),t=new Blob([JSON.stringify({exported_at:new Date().toISOString(),logs:e.logs},null,2)],{type:"application/json"}),o=URL.createObjectURL(t),r=document.createElement("a");r.href=o,r.download=`logs_${new Date().toISOString().slice(0,19).replace(/:/g,"-")}.json`,r.click(),URL.revokeObjectURL(o),p.value="导出成功"}catch(e){y.value="error",p.value=e.message||"导出失败"}},ye=async()=>{L.value=!1;try{await B.clear(),y.value="success",p.value="已清空日志",await A()}catch(e){y.value="error",p.value=e.message||"清空失败"}},S=()=>{N&&(window.clearTimeout(N),N=void 0)},z=()=>{!f.value||document.hidden||(N=window.setTimeout(async()=>{await A(),z()},dt))},F=()=>{S(),z()},_e=()=>{f.value=!f.value,f.value?F():S()},we=()=>{b.value=!b.value,requestAnimationFrame(J)},J=()=>{b.value&&k.value&&(k.value.scrollTop=k.value.scrollHeight),!b.value&&O.value&&(O.value.scrollTop=O.value.scrollHeight)},Y=()=>{document.hidden?S():f.value&&F()};return Ie(()=>{const e=localStorage.getItem("log-fold-state");if(e)try{_.value=JSON.parse(e)}catch{_.value={}}A(),F(),document.addEventListener("visibilitychange",Y)}),Le(()=>{S(),document.removeEventListener("visibilitychange",Y)}),(e,t)=>(d(),a(h,null,[s("div",Ne,[s("div",Te,[t[5]||(t[5]=s("p",{class:"text-base font-semibold text-foreground"},"管理日志",-1)),s("div",Ae," 自动刷新:"+n(f.value?"开启":"关闭"),1)]),s("div",Se,[s("div",$e,[t[6]||(t[6]=s("div",{class:"text-[11px] text-muted-foreground"},"总数",-1)),s("div",Ee,n(x.value?.memory.total??0),1)]),s("div",Me,[t[7]||(t[7]=s("div",{class:"text-[11px] text-muted-foreground"},"对话",-1)),s("div",Ge,n(x.value?.chat_count??0),1)]),s("div",Ue,[t[8]||(t[8]=s("div",{class:"text-[11px] text-muted-foreground"},"INFO",-1)),s("div",Ve,n(x.value?.memory.by_level.INFO??0),1)]),s("div",qe,[t[9]||(t[9]=s("div",{class:"text-[11px] text-muted-foreground"},"WARNING",-1)),s("div",Fe,n(x.value?.memory.by_level.WARNING??0),1)]),s("div",De,[t[10]||(t[10]=s("div",{class:"text-[11px] text-muted-foreground"},"ERROR",-1)),s("div",{class:v(["mt-1 text-lg font-semibold",x.value?.memory.by_level.ERROR?"text-rose-600":"text-foreground"])},n(x.value?.memory.by_level.ERROR??0),3)]),s("div",Be,[t[11]||(t[11]=s("div",{class:"text-[11px] text-muted-foreground"},"缓存上限",-1)),s("div",je,n(x.value?.memory.capacity??0),1)])]),s("div",He,[s("div",We,[Q(ke,{modelValue:i.level,"onUpdate:modelValue":t[0]||(t[0]=o=>i.level=o),options:se},null,8,["modelValue"])]),X(s("input",{"onUpdate:modelValue":t[1]||(t[1]=o=>i.search=o),type:"text",placeholder:"搜索...",class:"min-w-[200px] flex-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground sm:min-w-0"},null,512),[[ee,i.search,void 0,{trim:!0}]]),X(s("input",{"onUpdate:modelValue":t[2]||(t[2]=o=>i.limit=o),type:"number",min:"10",max:"1000",step:"100",class:"w-24 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground"},null,512),[[ee,i.limit,void 0,{number:!0}]]),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A}," 查询 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:he}," 导出 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:we},n(b.value?"结构化视图":"原始视图"),1),s("button",{class:v(["rounded-full px-4 py-2 text-xs font-medium transition-colors",f.value?"bg-primary text-primary-foreground":"border border-border text-muted-foreground hover:text-foreground"]),onClick:_e}," 自动刷新 ",2),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-destructive transition-colors hover:border-destructive/60",onClick:t[3]||(t[3]=o=>L.value=!0)}," 清空 ")]),p.value?(d(),a("div",{key:0,class:v(["mt-3 text-xs",le.value])},n(p.value),3)):m("",!0),I.value?(d(),a("div",ze,n(I.value),1)):m("",!0),b.value?(d(),a("div",{key:2,ref_key:"rawLogContainer",ref:k,class:"scrollbar-slim mt-4 max-h-[60vh] overflow-x-auto overflow-y-auto rounded-2xl border border-border bg-muted/30 px-4 py-3 text-[11px] text-muted-foreground"},[s("pre",Je,n(pe.value.text),1)],512)):(d(),a("div",{key:3,ref_key:"structuredLogContainer",ref:O,class:"scrollbar-slim mt-4 max-h-[60vh] space-y-3 overflow-y-auto rounded-2xl border border-border bg-card px-4 py-3"},[T.value.ungrouped.length===0&&T.value.groups.length===0?(d(),a("div",Ye," 暂无日志 ")):m("",!0),(d(!0),a(h,null,w(T.value.ungrouped,(o,r)=>(d(),a("div",{key:`u-${r}`},[s("div",Pe,[s("div",Ze,[s("span",Ke,n(o.time),1),s("span",{class:v(W(o.level))},n(o.level),3),(d(!0),a(h,null,w(o.tags,u=>(d(),a("span",{key:u,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:H(u)})},n(u),5))),128)),o.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:V(o.accountId)})},n(o.accountId),5)):m("",!0)]),s("div",Qe,n(o.text),1)])]))),128)),(d(!0),a(h,null,w(T.value.groups,o=>(d(),a("div",{key:o.id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:r=>ge(o.id)},[s("span",{class:v(ae(o.status))},n(de(o.status)),3),s("span",et,"req_"+n(o.id),1),o.accountId?(d(),a("span",{key:0,class:"text-xs font-semibold",style:R({color:V(o.accountId)})},n(o.accountId),5)):m("",!0),o.model?(d(),a("span",tt,n(o.model),1)):m("",!0),fe(o)?(d(),a("span",ot," 仅显示最近 "+n(M)+" 条 ")):m("",!0),s("span",st,n(o.logs.length)+" 条日志",1),s("span",{class:v(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!q(o.id)}])}," ▸ ",2)],8,Xe),q(o.id)?m("",!0):(d(),a("div",rt,[(d(!0),a(h,null,w(ve(o),(r,u)=>(d(),a("div",{key:`${o.id}-${u}`,class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",nt,[s("span",lt,n(r.time),1),s("span",{class:v(W(r.level))},n(r.level),3),(d(!0),a(h,null,w(r.tags,l=>(d(),a("span",{key:l,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:H(l)})},n(l),5))),128)),r.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:V(r.accountId)})},n(r.accountId),5)):m("",!0)]),s("div",at,n(r.text),1)]))),128))]))]))),128))],512))]),Q(Oe,{open:L.value,title:"确认操作",message:"确定要清空所有运行日志吗?","confirm-text":"确认","cancel-text":"取消",onConfirm:ye,onCancel:t[4]||(t[4]=o=>L.value=!1)},null,8,["open"])],64))}});export{mt as default}; diff --git a/static/assets/Logs-T6CMJePO.js b/static/assets/Logs-T6CMJePO.js new file mode 100644 index 0000000000000000000000000000000000000000..9b248cf8d8655a7753c80f7c49fa4863b90f9699 --- /dev/null +++ b/static/assets/Logs-T6CMJePO.js @@ -0,0 +1,2 @@ +import{g as K,d as Re,h as c,H as Ce,i as D,o as Ie,j as Le,c as a,a as s,x as Q,b as m,t as n,n as v,m as X,v as ee,F as h,r as w,k as R,e as d}from"./index-DDWWwh2l.js";import{_ as ke}from"./SelectMenu.vue_vue_type_script_setup_true_lang-BgTufWxo.js";import{_ as Oe}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-Bos9Whi2.js";const B={list:j=>K.get("/admin/log",{params:j}),clear:()=>K.delete("/admin/log?confirm=yes")},Ne={class:"rounded-3xl border border-border bg-card p-6"},Te={class:"flex flex-wrap items-center justify-between gap-3"},Ae={class:"text-xs text-muted-foreground"},Se={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-6"},$e={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ee={class:"mt-1 text-lg font-semibold text-foreground"},Me={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ge={class:"mt-1 text-lg font-semibold text-foreground"},Ue={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ve={class:"mt-1 text-lg font-semibold text-foreground"},qe={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Fe={class:"mt-1 text-lg font-semibold text-foreground"},De={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Be={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},je={class:"mt-1 text-lg font-semibold text-foreground"},He={class:"mt-4 flex flex-wrap items-center gap-2 sm:flex-nowrap"},We={class:"w-44 shrink-0"},ze={key:1,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Je={class:"whitespace-pre font-mono leading-relaxed"},Ye={key:0,class:"text-xs text-muted-foreground"},Pe={class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},Ze={class:"flex flex-wrap items-center gap-2"},Ke={class:"text-muted-foreground"},Qe={class:"w-full text-foreground md:w-auto md:flex-1"},Xe=["onClick"],et={class:"text-muted-foreground"},tt={key:1,class:"text-muted-foreground"},ot={key:2,class:"text-[10px] text-muted-foreground"},st={class:"text-muted-foreground"},rt={key:0,class:"space-y-2 px-4 py-3"},nt={class:"flex flex-wrap items-center gap-2"},lt={class:"text-muted-foreground"},at={class:"w-full text-foreground md:w-auto md:flex-1"},E=1e3,te=1e3,M=200,dt=3e3,mt=Re({__name:"Logs",setup(j){const oe=c([]),C=c([]),G=c({ungrouped:[],groups:[]}),x=c(null),I=c(""),p=c(""),y=c("success"),L=c(!1),f=c(!0),_=c({}),b=c(!0),k=c(null),O=c(null);let N,U=!1;const i=Ce({level:"",search:"",limit:300}),se=[{label:"全部",value:""},{label:"INFO",value:"INFO"},{label:"WARNING",value:"WARNING"},{label:"ERROR",value:"ERROR"}],re={SYSTEM:"#9e9e9e",CONFIG:"#607d8b",LOG:"#9e9e9e",AUTH:"#4caf50",SESSION:"#00bcd4",FILE:"#ff9800",CHAT:"#2196f3",API:"#8bc34a",CACHE:"#9c27b0",ACCOUNT:"#f44336",MULTI:"#673ab7"},ne={account_1:"#9c27b0",account_2:"#e91e63",account_3:"#00bcd4",account_4:"#4caf50",account_5:"#ff9800"},le=D(()=>y.value==="error"?"text-destructive":"text-muted-foreground"),H=e=>re[e]||"#757575",V=e=>ne[e]||"#757575",W=e=>{const t="rounded px-2 py-0.5 text-[10px] font-semibold";return e==="INFO"?`${t} bg-blue-100 text-blue-700`:e==="WARNING"?`${t} bg-amber-100 text-amber-700`:e==="ERROR"||e==="CRITICAL"?`${t} bg-rose-100 text-rose-700`:`${t} bg-violet-100 text-violet-700`},ae=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},de=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",ie=e=>{let t=e;const o=[];let r="";const u=/^\[([A-Za-z0-9_]+)\]/;for(;;){const l=t.match(u);if(!l)break;const g=l[1];if(t=t.slice(l[0].length).trim(),!g.startsWith("req_")){if(g.startsWith("account_")){r=g;continue}o.push(g)}}return{tags:o,accountId:r,text:t}},ue=e=>{const t=ie(e.message),o=e.message.match(/\[req_([a-z0-9]+)\]/i);return{...e,...t,reqId:o?o[1]:""}},ce=e=>{if(/^\d{4}-\d{2}-\d{2}T/.test(e))return new Date(e);if(/^\d{4}-\d{2}-\d{2}/.test(e))return new Date(e.replace(" ","T"));if(/^\d{2}:\d{2}:\d{2}$/.test(e)){const t=new Date,[o,r,u]=e.split(":").map(Number),l=new Date(t);return l.setHours(o,r,u,0),l}return null},me=e=>{const t=e[e.length-1],o=t.message;if(o.includes("响应完成")||o.includes("非流式响应完成"))return"success";if(t.level==="ERROR"||o.includes("失败"))return"error";const r=ce(t.time);return r&&(Date.now()-r.getTime())/1e3/60>5?"timeout":"in_progress"},xe=e=>{const t=new Map,o=[],r=[];e.forEach(l=>{l.reqId?(t.has(l.reqId)||(t.set(l.reqId,[]),o.push(l.reqId)),t.get(l.reqId)?.push(l)):r.push(l)});const u=o.map(l=>{const g=t.get(l)||[],$=g[0],P=$?.message.match(/\[(account_[^\]]+)\]/i),Z=$?.message.match(/收到请求: ([^ |]+)/)||$?.message.match(/Received request: ([^ |]+)/);return{id:l,logs:g,status:me(g),accountId:$?.accountId||(P?P[1]:""),model:Z?Z[1]:""}});return{ungrouped:r,groups:u}},T=D(()=>{const e=G.value.ungrouped,t=G.value.groups,o=e.length>E?e.slice(-E):e,r=t.length>E?t.slice(-E):t;return{ungrouped:o,groups:r,limited:e.length>o.length||t.length>r.length,ungroupedTotal:e.length,groupsTotal:t.length,ungroupedShowing:o.length,groupsShowing:r.length}}),pe=D(()=>{const e=C.value.length,t=e>te?e-te:0,o=C.value.slice(t),r=o.map(l=>`${l.time} | ${l.level} | ${l.message}`).join(` +`),u=o.length;return{text:r,total:e,showing:u,limited:e>u}}),q=e=>_.value[e]===!0,ge=e=>{_.value[e]=!q(e),localStorage.setItem("log-fold-state",JSON.stringify(_.value))},fe=e=>e.logs.length>M,ve=e=>e.logs.length<=M?e.logs:e.logs.slice(-M),be=()=>{(!i.limit||Number.isNaN(i.limit))&&(i.limit=300),i.limit=Math.min(Math.max(i.limit,10),1e3)},A=async()=>{if(!U){U=!0,I.value="",p.value="",be();try{const e=await B.list({limit:i.limit,level:i.level||void 0,search:i.search||void 0});oe.value=e.logs,C.value=e.logs.map(ue),G.value=xe(C.value),x.value=e.stats}catch(e){I.value=e.message||"日志加载失败"}finally{U=!1,requestAnimationFrame(J)}}},he=async()=>{p.value="",y.value="success";try{const e=await B.list({limit:1e3,level:i.level||void 0,search:i.search||void 0}),t=new Blob([JSON.stringify({exported_at:new Date().toISOString(),logs:e.logs},null,2)],{type:"application/json"}),o=URL.createObjectURL(t),r=document.createElement("a");r.href=o,r.download=`logs_${new Date().toISOString().slice(0,19).replace(/:/g,"-")}.json`,r.click(),URL.revokeObjectURL(o),p.value="导出成功"}catch(e){y.value="error",p.value=e.message||"导出失败"}},ye=async()=>{L.value=!1;try{await B.clear(),y.value="success",p.value="已清空日志",await A()}catch(e){y.value="error",p.value=e.message||"清空失败"}},S=()=>{N&&(window.clearTimeout(N),N=void 0)},z=()=>{!f.value||document.hidden||(N=window.setTimeout(async()=>{await A(),z()},dt))},F=()=>{S(),z()},_e=()=>{f.value=!f.value,f.value?F():S()},we=()=>{b.value=!b.value,requestAnimationFrame(J)},J=()=>{b.value&&k.value&&(k.value.scrollTop=k.value.scrollHeight),!b.value&&O.value&&(O.value.scrollTop=O.value.scrollHeight)},Y=()=>{document.hidden?S():f.value&&F()};return Ie(()=>{const e=localStorage.getItem("log-fold-state");if(e)try{_.value=JSON.parse(e)}catch{_.value={}}A(),F(),document.addEventListener("visibilitychange",Y)}),Le(()=>{S(),document.removeEventListener("visibilitychange",Y)}),(e,t)=>(d(),a(h,null,[s("div",Ne,[s("div",Te,[t[5]||(t[5]=s("p",{class:"text-base font-semibold text-foreground"},"管理日志",-1)),s("div",Ae," 自动刷新:"+n(f.value?"开启":"关闭"),1)]),s("div",Se,[s("div",$e,[t[6]||(t[6]=s("div",{class:"text-[11px] text-muted-foreground"},"总数",-1)),s("div",Ee,n(x.value?.memory.total??0),1)]),s("div",Me,[t[7]||(t[7]=s("div",{class:"text-[11px] text-muted-foreground"},"对话",-1)),s("div",Ge,n(x.value?.chat_count??0),1)]),s("div",Ue,[t[8]||(t[8]=s("div",{class:"text-[11px] text-muted-foreground"},"INFO",-1)),s("div",Ve,n(x.value?.memory.by_level.INFO??0),1)]),s("div",qe,[t[9]||(t[9]=s("div",{class:"text-[11px] text-muted-foreground"},"WARNING",-1)),s("div",Fe,n(x.value?.memory.by_level.WARNING??0),1)]),s("div",De,[t[10]||(t[10]=s("div",{class:"text-[11px] text-muted-foreground"},"ERROR",-1)),s("div",{class:v(["mt-1 text-lg font-semibold",x.value?.memory.by_level.ERROR?"text-rose-600":"text-foreground"])},n(x.value?.memory.by_level.ERROR??0),3)]),s("div",Be,[t[11]||(t[11]=s("div",{class:"text-[11px] text-muted-foreground"},"缓存上限",-1)),s("div",je,n(x.value?.memory.capacity??0),1)])]),s("div",He,[s("div",We,[Q(ke,{modelValue:i.level,"onUpdate:modelValue":t[0]||(t[0]=o=>i.level=o),options:se},null,8,["modelValue"])]),X(s("input",{"onUpdate:modelValue":t[1]||(t[1]=o=>i.search=o),type:"text",placeholder:"搜索...",class:"min-w-[200px] flex-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground sm:min-w-0"},null,512),[[ee,i.search,void 0,{trim:!0}]]),X(s("input",{"onUpdate:modelValue":t[2]||(t[2]=o=>i.limit=o),type:"number",min:"10",max:"1000",step:"100",class:"w-24 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground"},null,512),[[ee,i.limit,void 0,{number:!0}]]),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A}," 查询 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:he}," 导出 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:we},n(b.value?"结构化视图":"原始视图"),1),s("button",{class:v(["rounded-full px-4 py-2 text-xs font-medium transition-colors",f.value?"bg-primary text-primary-foreground":"border border-border text-muted-foreground hover:text-foreground"]),onClick:_e}," 自动刷新 ",2),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-destructive transition-colors hover:border-destructive/60",onClick:t[3]||(t[3]=o=>L.value=!0)}," 清空 ")]),p.value?(d(),a("div",{key:0,class:v(["mt-3 text-xs",le.value])},n(p.value),3)):m("",!0),I.value?(d(),a("div",ze,n(I.value),1)):m("",!0),b.value?(d(),a("div",{key:2,ref_key:"rawLogContainer",ref:k,class:"scrollbar-slim mt-4 max-h-[60vh] overflow-x-auto overflow-y-auto rounded-2xl border border-border bg-muted/30 px-4 py-3 text-[11px] text-muted-foreground"},[s("pre",Je,n(pe.value.text),1)],512)):(d(),a("div",{key:3,ref_key:"structuredLogContainer",ref:O,class:"scrollbar-slim mt-4 max-h-[60vh] space-y-3 overflow-y-auto rounded-2xl border border-border bg-card px-4 py-3"},[T.value.ungrouped.length===0&&T.value.groups.length===0?(d(),a("div",Ye," 暂无日志 ")):m("",!0),(d(!0),a(h,null,w(T.value.ungrouped,(o,r)=>(d(),a("div",{key:`u-${r}`},[s("div",Pe,[s("div",Ze,[s("span",Ke,n(o.time),1),s("span",{class:v(W(o.level))},n(o.level),3),(d(!0),a(h,null,w(o.tags,u=>(d(),a("span",{key:u,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:H(u)})},n(u),5))),128)),o.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:V(o.accountId)})},n(o.accountId),5)):m("",!0)]),s("div",Qe,n(o.text),1)])]))),128)),(d(!0),a(h,null,w(T.value.groups,o=>(d(),a("div",{key:o.id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:r=>ge(o.id)},[s("span",{class:v(ae(o.status))},n(de(o.status)),3),s("span",et,"req_"+n(o.id),1),o.accountId?(d(),a("span",{key:0,class:"text-xs font-semibold",style:R({color:V(o.accountId)})},n(o.accountId),5)):m("",!0),o.model?(d(),a("span",tt,n(o.model),1)):m("",!0),fe(o)?(d(),a("span",ot," 仅显示最近 "+n(M)+" 条 ")):m("",!0),s("span",st,n(o.logs.length)+" 条日志",1),s("span",{class:v(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!q(o.id)}])}," ▸ ",2)],8,Xe),q(o.id)?m("",!0):(d(),a("div",rt,[(d(!0),a(h,null,w(ve(o),(r,u)=>(d(),a("div",{key:`${o.id}-${u}`,class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",nt,[s("span",lt,n(r.time),1),s("span",{class:v(W(r.level))},n(r.level),3),(d(!0),a(h,null,w(r.tags,l=>(d(),a("span",{key:l,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:H(l)})},n(l),5))),128)),r.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:V(r.accountId)})},n(r.accountId),5)):m("",!0)]),s("div",at,n(r.text),1)]))),128))]))]))),128))],512))]),Q(Oe,{open:L.value,title:"确认操作",message:"确定要清空所有运行日志吗?","confirm-text":"确认","cancel-text":"取消",onConfirm:ye,onCancel:t[4]||(t[4]=o=>L.value=!1)},null,8,["open"])],64))}});export{mt as default}; diff --git a/static/assets/Logs-TwFNBtoi.js b/static/assets/Logs-TwFNBtoi.js new file mode 100644 index 0000000000000000000000000000000000000000..d998bea602375277bf6789666448d340efec9813 --- /dev/null +++ b/static/assets/Logs-TwFNBtoi.js @@ -0,0 +1,2 @@ +import{g as K,d as Re,h as c,I as Ie,i as D,o as Ce,j as Le,c as a,a as s,p as Q,b as m,t as n,n as v,q as X,v as ee,F as h,r as w,k as R,e as d}from"./index-BCQxBeUo.js";import{_ as ke}from"./SelectMenu.vue_vue_type_script_setup_true_lang-SHDMWwbQ.js";import{_ as Oe}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-CXKmFeEu.js";const B={list:j=>K.get("/admin/log",{params:j}),clear:()=>K.delete("/admin/log?confirm=yes")},Ne={class:"rounded-3xl border border-border bg-card p-6"},Te={class:"flex flex-wrap items-center justify-between gap-3"},Ae={class:"text-xs text-muted-foreground"},Se={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-6"},$e={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ee={class:"mt-1 text-lg font-semibold text-foreground"},Me={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ge={class:"mt-1 text-lg font-semibold text-foreground"},Ue={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},qe={class:"mt-1 text-lg font-semibold text-foreground"},Ve={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Fe={class:"mt-1 text-lg font-semibold text-foreground"},De={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Be={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},je={class:"mt-1 text-lg font-semibold text-foreground"},We={class:"mt-4 flex flex-wrap items-center gap-2 sm:flex-nowrap"},He={class:"w-44 shrink-0"},ze={key:1,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Je={class:"whitespace-pre font-mono leading-relaxed"},Ye={key:0,class:"text-xs text-muted-foreground"},Pe={class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},Ze={class:"flex flex-wrap items-center gap-2"},Ke={class:"text-muted-foreground"},Qe={class:"w-full text-foreground md:w-auto md:flex-1"},Xe=["onClick"],et={class:"text-muted-foreground"},tt={key:1,class:"text-muted-foreground"},ot={key:2,class:"text-[10px] text-muted-foreground"},st={class:"text-muted-foreground"},rt={key:0,class:"space-y-2 px-4 py-3"},nt={class:"flex flex-wrap items-center gap-2"},lt={class:"text-muted-foreground"},at={class:"w-full text-foreground md:w-auto md:flex-1"},E=1e3,te=1e3,M=200,dt=3e3,mt=Re({__name:"Logs",setup(j){const oe=c([]),I=c([]),G=c({ungrouped:[],groups:[]}),x=c(null),C=c(""),p=c(""),y=c("success"),L=c(!1),f=c(!0),_=c({}),b=c(!0),k=c(null),O=c(null);let N,U=!1;const i=Ie({level:"",search:"",limit:300}),se=[{label:"全部",value:""},{label:"INFO",value:"INFO"},{label:"WARNING",value:"WARNING"},{label:"ERROR",value:"ERROR"}],re={SYSTEM:"#9e9e9e",CONFIG:"#607d8b",LOG:"#9e9e9e",AUTH:"#4caf50",SESSION:"#00bcd4",FILE:"#ff9800",CHAT:"#2196f3",API:"#8bc34a",CACHE:"#9c27b0",ACCOUNT:"#f44336",MULTI:"#673ab7"},ne={account_1:"#9c27b0",account_2:"#e91e63",account_3:"#00bcd4",account_4:"#4caf50",account_5:"#ff9800"},le=D(()=>y.value==="error"?"text-destructive":"text-muted-foreground"),W=e=>re[e]||"#757575",q=e=>ne[e]||"#757575",H=e=>{const t="rounded px-2 py-0.5 text-[10px] font-semibold";return e==="INFO"?`${t} bg-blue-100 text-blue-700`:e==="WARNING"?`${t} bg-amber-100 text-amber-700`:e==="ERROR"||e==="CRITICAL"?`${t} bg-rose-100 text-rose-700`:`${t} bg-violet-100 text-violet-700`},ae=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},de=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",ie=e=>{let t=e;const o=[];let r="";const u=/^\[([A-Za-z0-9_]+)\]/;for(;;){const l=t.match(u);if(!l)break;const g=l[1];if(t=t.slice(l[0].length).trim(),!g.startsWith("req_")){if(g.startsWith("account_")){r=g;continue}o.push(g)}}return{tags:o,accountId:r,text:t}},ue=e=>{const t=ie(e.message),o=e.message.match(/\[req_([a-z0-9]+)\]/i);return{...e,...t,reqId:o?o[1]:""}},ce=e=>{if(/^\d{4}-\d{2}-\d{2}T/.test(e))return new Date(e);if(/^\d{4}-\d{2}-\d{2}/.test(e))return new Date(e.replace(" ","T"));if(/^\d{2}:\d{2}:\d{2}$/.test(e)){const t=new Date,[o,r,u]=e.split(":").map(Number),l=new Date(t);return l.setHours(o,r,u,0),l}return null},me=e=>{const t=e[e.length-1],o=t.message;if(o.includes("响应完成")||o.includes("非流式响应完成"))return"success";if(t.level==="ERROR"||o.includes("失败"))return"error";const r=ce(t.time);return r&&(Date.now()-r.getTime())/1e3/60>5?"timeout":"in_progress"},xe=e=>{const t=new Map,o=[],r=[];e.forEach(l=>{l.reqId?(t.has(l.reqId)||(t.set(l.reqId,[]),o.push(l.reqId)),t.get(l.reqId)?.push(l)):r.push(l)});const u=o.map(l=>{const g=t.get(l)||[],$=g[0],P=$?.message.match(/\[(account_[^\]]+)\]/i),Z=$?.message.match(/收到请求: ([^ |]+)/)||$?.message.match(/Received request: ([^ |]+)/);return{id:l,logs:g,status:me(g),accountId:$?.accountId||(P?P[1]:""),model:Z?Z[1]:""}});return{ungrouped:r,groups:u}},T=D(()=>{const e=G.value.ungrouped,t=G.value.groups,o=e.length>E?e.slice(-E):e,r=t.length>E?t.slice(-E):t;return{ungrouped:o,groups:r,limited:e.length>o.length||t.length>r.length,ungroupedTotal:e.length,groupsTotal:t.length,ungroupedShowing:o.length,groupsShowing:r.length}}),pe=D(()=>{const e=I.value.length,t=e>te?e-te:0,o=I.value.slice(t),r=o.map(l=>`${l.time} | ${l.level} | ${l.message}`).join(` +`),u=o.length;return{text:r,total:e,showing:u,limited:e>u}}),V=e=>_.value[e]===!0,ge=e=>{_.value[e]=!V(e),localStorage.setItem("log-fold-state",JSON.stringify(_.value))},fe=e=>e.logs.length>M,ve=e=>e.logs.length<=M?e.logs:e.logs.slice(-M),be=()=>{(!i.limit||Number.isNaN(i.limit))&&(i.limit=300),i.limit=Math.min(Math.max(i.limit,10),1e3)},A=async()=>{if(!U){U=!0,C.value="",p.value="",be();try{const e=await B.list({limit:i.limit,level:i.level||void 0,search:i.search||void 0});oe.value=e.logs,I.value=e.logs.map(ue),G.value=xe(I.value),x.value=e.stats}catch(e){C.value=e.message||"日志加载失败"}finally{U=!1,requestAnimationFrame(J)}}},he=async()=>{p.value="",y.value="success";try{const e=await B.list({limit:1e3,level:i.level||void 0,search:i.search||void 0}),t=new Blob([JSON.stringify({exported_at:new Date().toISOString(),logs:e.logs},null,2)],{type:"application/json"}),o=URL.createObjectURL(t),r=document.createElement("a");r.href=o,r.download=`logs_${new Date().toISOString().slice(0,19).replace(/:/g,"-")}.json`,r.click(),URL.revokeObjectURL(o),p.value="导出成功"}catch(e){y.value="error",p.value=e.message||"导出失败"}},ye=async()=>{L.value=!1;try{await B.clear(),y.value="success",p.value="已清空日志",await A()}catch(e){y.value="error",p.value=e.message||"清空失败"}},S=()=>{N&&(window.clearTimeout(N),N=void 0)},z=()=>{!f.value||document.hidden||(N=window.setTimeout(async()=>{await A(),z()},dt))},F=()=>{S(),z()},_e=()=>{f.value=!f.value,f.value?F():S()},we=()=>{b.value=!b.value,requestAnimationFrame(J)},J=()=>{b.value&&k.value&&(k.value.scrollTop=k.value.scrollHeight),!b.value&&O.value&&(O.value.scrollTop=O.value.scrollHeight)},Y=()=>{document.hidden?S():f.value&&F()};return Ce(()=>{const e=localStorage.getItem("log-fold-state");if(e)try{_.value=JSON.parse(e)}catch{_.value={}}A(),F(),document.addEventListener("visibilitychange",Y)}),Le(()=>{S(),document.removeEventListener("visibilitychange",Y)}),(e,t)=>(d(),a(h,null,[s("div",Ne,[s("div",Te,[t[5]||(t[5]=s("p",{class:"text-base font-semibold text-foreground"},"管理日志",-1)),s("div",Ae," 自动刷新:"+n(f.value?"开启":"关闭"),1)]),s("div",Se,[s("div",$e,[t[6]||(t[6]=s("div",{class:"text-[11px] text-muted-foreground"},"总数",-1)),s("div",Ee,n(x.value?.memory.total??0),1)]),s("div",Me,[t[7]||(t[7]=s("div",{class:"text-[11px] text-muted-foreground"},"对话",-1)),s("div",Ge,n(x.value?.chat_count??0),1)]),s("div",Ue,[t[8]||(t[8]=s("div",{class:"text-[11px] text-muted-foreground"},"INFO",-1)),s("div",qe,n(x.value?.memory.by_level.INFO??0),1)]),s("div",Ve,[t[9]||(t[9]=s("div",{class:"text-[11px] text-muted-foreground"},"WARNING",-1)),s("div",Fe,n(x.value?.memory.by_level.WARNING??0),1)]),s("div",De,[t[10]||(t[10]=s("div",{class:"text-[11px] text-muted-foreground"},"ERROR",-1)),s("div",{class:v(["mt-1 text-lg font-semibold",x.value?.memory.by_level.ERROR?"text-rose-600":"text-foreground"])},n(x.value?.memory.by_level.ERROR??0),3)]),s("div",Be,[t[11]||(t[11]=s("div",{class:"text-[11px] text-muted-foreground"},"缓存上限",-1)),s("div",je,n(x.value?.memory.capacity??0),1)])]),s("div",We,[s("div",He,[Q(ke,{modelValue:i.level,"onUpdate:modelValue":t[0]||(t[0]=o=>i.level=o),options:se},null,8,["modelValue"])]),X(s("input",{"onUpdate:modelValue":t[1]||(t[1]=o=>i.search=o),type:"text",placeholder:"搜索...",class:"min-w-[200px] flex-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground sm:min-w-0"},null,512),[[ee,i.search,void 0,{trim:!0}]]),X(s("input",{"onUpdate:modelValue":t[2]||(t[2]=o=>i.limit=o),type:"number",min:"10",max:"1000",step:"100",class:"w-24 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground"},null,512),[[ee,i.limit,void 0,{number:!0}]]),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A}," 查询 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:he}," 导出 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:we},n(b.value?"结构化视图":"原始视图"),1),s("button",{class:v(["rounded-full px-4 py-2 text-xs font-medium transition-colors",f.value?"bg-primary text-primary-foreground":"border border-border text-muted-foreground hover:text-foreground"]),onClick:_e}," 自动刷新 ",2),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-destructive transition-colors hover:border-destructive/60",onClick:t[3]||(t[3]=o=>L.value=!0)}," 清空 ")]),p.value?(d(),a("div",{key:0,class:v(["mt-3 text-xs",le.value])},n(p.value),3)):m("",!0),C.value?(d(),a("div",ze,n(C.value),1)):m("",!0),b.value?(d(),a("div",{key:2,ref_key:"rawLogContainer",ref:k,class:"scrollbar-slim mt-4 max-h-[60vh] overflow-x-auto overflow-y-auto rounded-2xl border border-border bg-muted/30 px-4 py-3 text-[11px] text-muted-foreground"},[s("pre",Je,n(pe.value.text),1)],512)):(d(),a("div",{key:3,ref_key:"structuredLogContainer",ref:O,class:"scrollbar-slim mt-4 max-h-[60vh] space-y-3 overflow-y-auto rounded-2xl border border-border bg-card px-4 py-3"},[T.value.ungrouped.length===0&&T.value.groups.length===0?(d(),a("div",Ye," 暂无日志 ")):m("",!0),(d(!0),a(h,null,w(T.value.ungrouped,(o,r)=>(d(),a("div",{key:`u-${r}`},[s("div",Pe,[s("div",Ze,[s("span",Ke,n(o.time),1),s("span",{class:v(H(o.level))},n(o.level),3),(d(!0),a(h,null,w(o.tags,u=>(d(),a("span",{key:u,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:W(u)})},n(u),5))),128)),o.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:q(o.accountId)})},n(o.accountId),5)):m("",!0)]),s("div",Qe,n(o.text),1)])]))),128)),(d(!0),a(h,null,w(T.value.groups,o=>(d(),a("div",{key:o.id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:r=>ge(o.id)},[s("span",{class:v(ae(o.status))},n(de(o.status)),3),s("span",et,"req_"+n(o.id),1),o.accountId?(d(),a("span",{key:0,class:"text-xs font-semibold",style:R({color:q(o.accountId)})},n(o.accountId),5)):m("",!0),o.model?(d(),a("span",tt,n(o.model),1)):m("",!0),fe(o)?(d(),a("span",ot," 仅显示最近 "+n(M)+" 条 ")):m("",!0),s("span",st,n(o.logs.length)+" 条日志",1),s("span",{class:v(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!V(o.id)}])}," ▸ ",2)],8,Xe),V(o.id)?m("",!0):(d(),a("div",rt,[(d(!0),a(h,null,w(ve(o),(r,u)=>(d(),a("div",{key:`${o.id}-${u}`,class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",nt,[s("span",lt,n(r.time),1),s("span",{class:v(H(r.level))},n(r.level),3),(d(!0),a(h,null,w(r.tags,l=>(d(),a("span",{key:l,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:W(l)})},n(l),5))),128)),r.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:q(r.accountId)})},n(r.accountId),5)):m("",!0)]),s("div",at,n(r.text),1)]))),128))]))]))),128))],512))]),Q(Oe,{open:L.value,title:"确认操作",message:"确定要清空所有运行日志吗?","confirm-text":"确认","cancel-text":"取消",onConfirm:ye,onCancel:t[4]||(t[4]=o=>L.value=!1)},null,8,["open"])],64))}});export{mt as default}; diff --git a/static/assets/Logs-aYm-RnGR.js b/static/assets/Logs-aYm-RnGR.js new file mode 100644 index 0000000000000000000000000000000000000000..586b212f1c53e85239a5676febe3e5bbd40833fa --- /dev/null +++ b/static/assets/Logs-aYm-RnGR.js @@ -0,0 +1,2 @@ +import{g as K,d as Re,h as c,H as Ce,i as D,o as Ie,j as Le,c as a,a as s,x as Q,b as m,t as n,n as v,m as X,v as ee,F as h,r as w,k as R,e as d}from"./index-DMWZCTlx.js";import{_ as ke}from"./SelectMenu.vue_vue_type_script_setup_true_lang-R5yoq9NP.js";import{_ as Oe}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-C75dpm4L.js";const B={list:j=>K.get("/admin/log",{params:j}),clear:()=>K.delete("/admin/log?confirm=yes")},Ne={class:"rounded-3xl border border-border bg-card p-6"},Te={class:"flex flex-wrap items-center justify-between gap-3"},Ae={class:"text-xs text-muted-foreground"},Se={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-6"},$e={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ee={class:"mt-1 text-lg font-semibold text-foreground"},Me={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ge={class:"mt-1 text-lg font-semibold text-foreground"},Ue={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ve={class:"mt-1 text-lg font-semibold text-foreground"},qe={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Fe={class:"mt-1 text-lg font-semibold text-foreground"},De={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Be={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},je={class:"mt-1 text-lg font-semibold text-foreground"},He={class:"mt-4 flex flex-wrap items-center gap-2 sm:flex-nowrap"},We={class:"w-44 shrink-0"},ze={key:1,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Je={class:"whitespace-pre font-mono leading-relaxed"},Ye={key:0,class:"text-xs text-muted-foreground"},Pe={class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},Ze={class:"flex flex-wrap items-center gap-2"},Ke={class:"text-muted-foreground"},Qe={class:"w-full text-foreground md:w-auto md:flex-1"},Xe=["onClick"],et={class:"text-muted-foreground"},tt={key:1,class:"text-muted-foreground"},ot={key:2,class:"text-[10px] text-muted-foreground"},st={class:"text-muted-foreground"},rt={key:0,class:"space-y-2 px-4 py-3"},nt={class:"flex flex-wrap items-center gap-2"},lt={class:"text-muted-foreground"},at={class:"w-full text-foreground md:w-auto md:flex-1"},E=1e3,te=1e3,M=200,dt=3e3,mt=Re({__name:"Logs",setup(j){const oe=c([]),C=c([]),G=c({ungrouped:[],groups:[]}),x=c(null),I=c(""),p=c(""),y=c("success"),L=c(!1),f=c(!0),_=c({}),b=c(!0),k=c(null),O=c(null);let N,U=!1;const i=Ce({level:"",search:"",limit:300}),se=[{label:"全部",value:""},{label:"INFO",value:"INFO"},{label:"WARNING",value:"WARNING"},{label:"ERROR",value:"ERROR"}],re={SYSTEM:"#9e9e9e",CONFIG:"#607d8b",LOG:"#9e9e9e",AUTH:"#4caf50",SESSION:"#00bcd4",FILE:"#ff9800",CHAT:"#2196f3",API:"#8bc34a",CACHE:"#9c27b0",ACCOUNT:"#f44336",MULTI:"#673ab7"},ne={account_1:"#9c27b0",account_2:"#e91e63",account_3:"#00bcd4",account_4:"#4caf50",account_5:"#ff9800"},le=D(()=>y.value==="error"?"text-destructive":"text-muted-foreground"),H=e=>re[e]||"#757575",V=e=>ne[e]||"#757575",W=e=>{const t="rounded px-2 py-0.5 text-[10px] font-semibold";return e==="INFO"?`${t} bg-blue-100 text-blue-700`:e==="WARNING"?`${t} bg-amber-100 text-amber-700`:e==="ERROR"||e==="CRITICAL"?`${t} bg-rose-100 text-rose-700`:`${t} bg-violet-100 text-violet-700`},ae=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},de=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",ie=e=>{let t=e;const o=[];let r="";const u=/^\[([A-Za-z0-9_]+)\]/;for(;;){const l=t.match(u);if(!l)break;const g=l[1];if(t=t.slice(l[0].length).trim(),!g.startsWith("req_")){if(g.startsWith("account_")){r=g;continue}o.push(g)}}return{tags:o,accountId:r,text:t}},ue=e=>{const t=ie(e.message),o=e.message.match(/\[req_([a-z0-9]+)\]/i);return{...e,...t,reqId:o?o[1]:""}},ce=e=>{if(/^\d{4}-\d{2}-\d{2}T/.test(e))return new Date(e);if(/^\d{4}-\d{2}-\d{2}/.test(e))return new Date(e.replace(" ","T"));if(/^\d{2}:\d{2}:\d{2}$/.test(e)){const t=new Date,[o,r,u]=e.split(":").map(Number),l=new Date(t);return l.setHours(o,r,u,0),l}return null},me=e=>{const t=e[e.length-1],o=t.message;if(o.includes("响应完成")||o.includes("非流式响应完成"))return"success";if(t.level==="ERROR"||o.includes("失败"))return"error";const r=ce(t.time);return r&&(Date.now()-r.getTime())/1e3/60>5?"timeout":"in_progress"},xe=e=>{const t=new Map,o=[],r=[];e.forEach(l=>{l.reqId?(t.has(l.reqId)||(t.set(l.reqId,[]),o.push(l.reqId)),t.get(l.reqId)?.push(l)):r.push(l)});const u=o.map(l=>{const g=t.get(l)||[],$=g[0],P=$?.message.match(/\[(account_[^\]]+)\]/i),Z=$?.message.match(/收到请求: ([^ |]+)/)||$?.message.match(/Received request: ([^ |]+)/);return{id:l,logs:g,status:me(g),accountId:$?.accountId||(P?P[1]:""),model:Z?Z[1]:""}});return{ungrouped:r,groups:u}},T=D(()=>{const e=G.value.ungrouped,t=G.value.groups,o=e.length>E?e.slice(-E):e,r=t.length>E?t.slice(-E):t;return{ungrouped:o,groups:r,limited:e.length>o.length||t.length>r.length,ungroupedTotal:e.length,groupsTotal:t.length,ungroupedShowing:o.length,groupsShowing:r.length}}),pe=D(()=>{const e=C.value.length,t=e>te?e-te:0,o=C.value.slice(t),r=o.map(l=>`${l.time} | ${l.level} | ${l.message}`).join(` +`),u=o.length;return{text:r,total:e,showing:u,limited:e>u}}),q=e=>_.value[e]===!0,ge=e=>{_.value[e]=!q(e),localStorage.setItem("log-fold-state",JSON.stringify(_.value))},fe=e=>e.logs.length>M,ve=e=>e.logs.length<=M?e.logs:e.logs.slice(-M),be=()=>{(!i.limit||Number.isNaN(i.limit))&&(i.limit=300),i.limit=Math.min(Math.max(i.limit,10),1e3)},A=async()=>{if(!U){U=!0,I.value="",p.value="",be();try{const e=await B.list({limit:i.limit,level:i.level||void 0,search:i.search||void 0});oe.value=e.logs,C.value=e.logs.map(ue),G.value=xe(C.value),x.value=e.stats}catch(e){I.value=e.message||"日志加载失败"}finally{U=!1,requestAnimationFrame(J)}}},he=async()=>{p.value="",y.value="success";try{const e=await B.list({limit:1e3,level:i.level||void 0,search:i.search||void 0}),t=new Blob([JSON.stringify({exported_at:new Date().toISOString(),logs:e.logs},null,2)],{type:"application/json"}),o=URL.createObjectURL(t),r=document.createElement("a");r.href=o,r.download=`logs_${new Date().toISOString().slice(0,19).replace(/:/g,"-")}.json`,r.click(),URL.revokeObjectURL(o),p.value="导出成功"}catch(e){y.value="error",p.value=e.message||"导出失败"}},ye=async()=>{L.value=!1;try{await B.clear(),y.value="success",p.value="已清空日志",await A()}catch(e){y.value="error",p.value=e.message||"清空失败"}},S=()=>{N&&(window.clearTimeout(N),N=void 0)},z=()=>{!f.value||document.hidden||(N=window.setTimeout(async()=>{await A(),z()},dt))},F=()=>{S(),z()},_e=()=>{f.value=!f.value,f.value?F():S()},we=()=>{b.value=!b.value,requestAnimationFrame(J)},J=()=>{b.value&&k.value&&(k.value.scrollTop=k.value.scrollHeight),!b.value&&O.value&&(O.value.scrollTop=O.value.scrollHeight)},Y=()=>{document.hidden?S():f.value&&F()};return Ie(()=>{const e=localStorage.getItem("log-fold-state");if(e)try{_.value=JSON.parse(e)}catch{_.value={}}A(),F(),document.addEventListener("visibilitychange",Y)}),Le(()=>{S(),document.removeEventListener("visibilitychange",Y)}),(e,t)=>(d(),a(h,null,[s("div",Ne,[s("div",Te,[t[5]||(t[5]=s("p",{class:"text-base font-semibold text-foreground"},"管理日志",-1)),s("div",Ae," 自动刷新:"+n(f.value?"开启":"关闭"),1)]),s("div",Se,[s("div",$e,[t[6]||(t[6]=s("div",{class:"text-[11px] text-muted-foreground"},"总数",-1)),s("div",Ee,n(x.value?.memory.total??0),1)]),s("div",Me,[t[7]||(t[7]=s("div",{class:"text-[11px] text-muted-foreground"},"对话",-1)),s("div",Ge,n(x.value?.chat_count??0),1)]),s("div",Ue,[t[8]||(t[8]=s("div",{class:"text-[11px] text-muted-foreground"},"INFO",-1)),s("div",Ve,n(x.value?.memory.by_level.INFO??0),1)]),s("div",qe,[t[9]||(t[9]=s("div",{class:"text-[11px] text-muted-foreground"},"WARNING",-1)),s("div",Fe,n(x.value?.memory.by_level.WARNING??0),1)]),s("div",De,[t[10]||(t[10]=s("div",{class:"text-[11px] text-muted-foreground"},"ERROR",-1)),s("div",{class:v(["mt-1 text-lg font-semibold",x.value?.memory.by_level.ERROR?"text-rose-600":"text-foreground"])},n(x.value?.memory.by_level.ERROR??0),3)]),s("div",Be,[t[11]||(t[11]=s("div",{class:"text-[11px] text-muted-foreground"},"缓存上限",-1)),s("div",je,n(x.value?.memory.capacity??0),1)])]),s("div",He,[s("div",We,[Q(ke,{modelValue:i.level,"onUpdate:modelValue":t[0]||(t[0]=o=>i.level=o),options:se},null,8,["modelValue"])]),X(s("input",{"onUpdate:modelValue":t[1]||(t[1]=o=>i.search=o),type:"text",placeholder:"搜索...",class:"min-w-[200px] flex-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground sm:min-w-0"},null,512),[[ee,i.search,void 0,{trim:!0}]]),X(s("input",{"onUpdate:modelValue":t[2]||(t[2]=o=>i.limit=o),type:"number",min:"10",max:"1000",step:"100",class:"w-24 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground"},null,512),[[ee,i.limit,void 0,{number:!0}]]),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A}," 查询 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:he}," 导出 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:we},n(b.value?"结构化视图":"原始视图"),1),s("button",{class:v(["rounded-full px-4 py-2 text-xs font-medium transition-colors",f.value?"bg-primary text-primary-foreground":"border border-border text-muted-foreground hover:text-foreground"]),onClick:_e}," 自动刷新 ",2),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-destructive transition-colors hover:border-destructive/60",onClick:t[3]||(t[3]=o=>L.value=!0)}," 清空 ")]),p.value?(d(),a("div",{key:0,class:v(["mt-3 text-xs",le.value])},n(p.value),3)):m("",!0),I.value?(d(),a("div",ze,n(I.value),1)):m("",!0),b.value?(d(),a("div",{key:2,ref_key:"rawLogContainer",ref:k,class:"scrollbar-slim mt-4 max-h-[60vh] overflow-x-auto overflow-y-auto rounded-2xl border border-border bg-muted/30 px-4 py-3 text-[11px] text-muted-foreground"},[s("pre",Je,n(pe.value.text),1)],512)):(d(),a("div",{key:3,ref_key:"structuredLogContainer",ref:O,class:"scrollbar-slim mt-4 max-h-[60vh] space-y-3 overflow-y-auto rounded-2xl border border-border bg-card px-4 py-3"},[T.value.ungrouped.length===0&&T.value.groups.length===0?(d(),a("div",Ye," 暂无日志 ")):m("",!0),(d(!0),a(h,null,w(T.value.ungrouped,(o,r)=>(d(),a("div",{key:`u-${r}`},[s("div",Pe,[s("div",Ze,[s("span",Ke,n(o.time),1),s("span",{class:v(W(o.level))},n(o.level),3),(d(!0),a(h,null,w(o.tags,u=>(d(),a("span",{key:u,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:H(u)})},n(u),5))),128)),o.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:V(o.accountId)})},n(o.accountId),5)):m("",!0)]),s("div",Qe,n(o.text),1)])]))),128)),(d(!0),a(h,null,w(T.value.groups,o=>(d(),a("div",{key:o.id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:r=>ge(o.id)},[s("span",{class:v(ae(o.status))},n(de(o.status)),3),s("span",et,"req_"+n(o.id),1),o.accountId?(d(),a("span",{key:0,class:"text-xs font-semibold",style:R({color:V(o.accountId)})},n(o.accountId),5)):m("",!0),o.model?(d(),a("span",tt,n(o.model),1)):m("",!0),fe(o)?(d(),a("span",ot," 仅显示最近 "+n(M)+" 条 ")):m("",!0),s("span",st,n(o.logs.length)+" 条日志",1),s("span",{class:v(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!q(o.id)}])}," ▸ ",2)],8,Xe),q(o.id)?m("",!0):(d(),a("div",rt,[(d(!0),a(h,null,w(ve(o),(r,u)=>(d(),a("div",{key:`${o.id}-${u}`,class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",nt,[s("span",lt,n(r.time),1),s("span",{class:v(W(r.level))},n(r.level),3),(d(!0),a(h,null,w(r.tags,l=>(d(),a("span",{key:l,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:H(l)})},n(l),5))),128)),r.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:V(r.accountId)})},n(r.accountId),5)):m("",!0)]),s("div",at,n(r.text),1)]))),128))]))]))),128))],512))]),Q(Oe,{open:L.value,title:"确认操作",message:"确定要清空所有运行日志吗?","confirm-text":"确认","cancel-text":"取消",onConfirm:ye,onCancel:t[4]||(t[4]=o=>L.value=!1)},null,8,["open"])],64))}});export{mt as default}; diff --git a/static/assets/Logs-lKxNVfI0.js b/static/assets/Logs-lKxNVfI0.js new file mode 100644 index 0000000000000000000000000000000000000000..2536c2d66ffa3a16ba8231dceae5b797ff466eb0 --- /dev/null +++ b/static/assets/Logs-lKxNVfI0.js @@ -0,0 +1,2 @@ +import{g as K,d as Re,h as c,H as Ce,i as D,o as Ie,j as Le,c as a,a as s,x as Q,b as m,t as n,n as v,m as X,v as ee,F as h,r as w,k as R,e as d}from"./index-BRg_yWJl.js";import{_ as ke}from"./SelectMenu.vue_vue_type_script_setup_true_lang-DswSmh70.js";import{_ as Oe}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-CZswS7RJ.js";const B={list:j=>K.get("/admin/log",{params:j}),clear:()=>K.delete("/admin/log?confirm=yes")},Ne={class:"rounded-3xl border border-border bg-card p-6"},Te={class:"flex flex-wrap items-center justify-between gap-3"},Ae={class:"text-xs text-muted-foreground"},Se={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-6"},$e={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ee={class:"mt-1 text-lg font-semibold text-foreground"},Me={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ge={class:"mt-1 text-lg font-semibold text-foreground"},Ue={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ve={class:"mt-1 text-lg font-semibold text-foreground"},qe={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Fe={class:"mt-1 text-lg font-semibold text-foreground"},De={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Be={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},je={class:"mt-1 text-lg font-semibold text-foreground"},He={class:"mt-4 flex flex-wrap items-center gap-2 sm:flex-nowrap"},We={class:"w-44 shrink-0"},ze={key:1,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Je={class:"whitespace-pre font-mono leading-relaxed"},Ye={key:0,class:"text-xs text-muted-foreground"},Pe={class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},Ze={class:"flex flex-wrap items-center gap-2"},Ke={class:"text-muted-foreground"},Qe={class:"w-full text-foreground md:w-auto md:flex-1"},Xe=["onClick"],et={class:"text-muted-foreground"},tt={key:1,class:"text-muted-foreground"},ot={key:2,class:"text-[10px] text-muted-foreground"},st={class:"text-muted-foreground"},rt={key:0,class:"space-y-2 px-4 py-3"},nt={class:"flex flex-wrap items-center gap-2"},lt={class:"text-muted-foreground"},at={class:"w-full text-foreground md:w-auto md:flex-1"},E=1e3,te=1e3,M=200,dt=3e3,mt=Re({__name:"Logs",setup(j){const oe=c([]),C=c([]),G=c({ungrouped:[],groups:[]}),x=c(null),I=c(""),p=c(""),y=c("success"),L=c(!1),f=c(!0),_=c({}),b=c(!0),k=c(null),O=c(null);let N,U=!1;const i=Ce({level:"",search:"",limit:300}),se=[{label:"全部",value:""},{label:"INFO",value:"INFO"},{label:"WARNING",value:"WARNING"},{label:"ERROR",value:"ERROR"}],re={SYSTEM:"#9e9e9e",CONFIG:"#607d8b",LOG:"#9e9e9e",AUTH:"#4caf50",SESSION:"#00bcd4",FILE:"#ff9800",CHAT:"#2196f3",API:"#8bc34a",CACHE:"#9c27b0",ACCOUNT:"#f44336",MULTI:"#673ab7"},ne={account_1:"#9c27b0",account_2:"#e91e63",account_3:"#00bcd4",account_4:"#4caf50",account_5:"#ff9800"},le=D(()=>y.value==="error"?"text-destructive":"text-muted-foreground"),H=e=>re[e]||"#757575",V=e=>ne[e]||"#757575",W=e=>{const t="rounded px-2 py-0.5 text-[10px] font-semibold";return e==="INFO"?`${t} bg-blue-100 text-blue-700`:e==="WARNING"?`${t} bg-amber-100 text-amber-700`:e==="ERROR"||e==="CRITICAL"?`${t} bg-rose-100 text-rose-700`:`${t} bg-violet-100 text-violet-700`},ae=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},de=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",ie=e=>{let t=e;const o=[];let r="";const u=/^\[([A-Za-z0-9_]+)\]/;for(;;){const l=t.match(u);if(!l)break;const g=l[1];if(t=t.slice(l[0].length).trim(),!g.startsWith("req_")){if(g.startsWith("account_")){r=g;continue}o.push(g)}}return{tags:o,accountId:r,text:t}},ue=e=>{const t=ie(e.message),o=e.message.match(/\[req_([a-z0-9]+)\]/i);return{...e,...t,reqId:o?o[1]:""}},ce=e=>{if(/^\d{4}-\d{2}-\d{2}T/.test(e))return new Date(e);if(/^\d{4}-\d{2}-\d{2}/.test(e))return new Date(e.replace(" ","T"));if(/^\d{2}:\d{2}:\d{2}$/.test(e)){const t=new Date,[o,r,u]=e.split(":").map(Number),l=new Date(t);return l.setHours(o,r,u,0),l}return null},me=e=>{const t=e[e.length-1],o=t.message;if(o.includes("响应完成")||o.includes("非流式响应完成"))return"success";if(t.level==="ERROR"||o.includes("失败"))return"error";const r=ce(t.time);return r&&(Date.now()-r.getTime())/1e3/60>5?"timeout":"in_progress"},xe=e=>{const t=new Map,o=[],r=[];e.forEach(l=>{l.reqId?(t.has(l.reqId)||(t.set(l.reqId,[]),o.push(l.reqId)),t.get(l.reqId)?.push(l)):r.push(l)});const u=o.map(l=>{const g=t.get(l)||[],$=g[0],P=$?.message.match(/\[(account_[^\]]+)\]/i),Z=$?.message.match(/收到请求: ([^ |]+)/)||$?.message.match(/Received request: ([^ |]+)/);return{id:l,logs:g,status:me(g),accountId:$?.accountId||(P?P[1]:""),model:Z?Z[1]:""}});return{ungrouped:r,groups:u}},T=D(()=>{const e=G.value.ungrouped,t=G.value.groups,o=e.length>E?e.slice(-E):e,r=t.length>E?t.slice(-E):t;return{ungrouped:o,groups:r,limited:e.length>o.length||t.length>r.length,ungroupedTotal:e.length,groupsTotal:t.length,ungroupedShowing:o.length,groupsShowing:r.length}}),pe=D(()=>{const e=C.value.length,t=e>te?e-te:0,o=C.value.slice(t),r=o.map(l=>`${l.time} | ${l.level} | ${l.message}`).join(` +`),u=o.length;return{text:r,total:e,showing:u,limited:e>u}}),q=e=>_.value[e]===!0,ge=e=>{_.value[e]=!q(e),localStorage.setItem("log-fold-state",JSON.stringify(_.value))},fe=e=>e.logs.length>M,ve=e=>e.logs.length<=M?e.logs:e.logs.slice(-M),be=()=>{(!i.limit||Number.isNaN(i.limit))&&(i.limit=300),i.limit=Math.min(Math.max(i.limit,10),1e3)},A=async()=>{if(!U){U=!0,I.value="",p.value="",be();try{const e=await B.list({limit:i.limit,level:i.level||void 0,search:i.search||void 0});oe.value=e.logs,C.value=e.logs.map(ue),G.value=xe(C.value),x.value=e.stats}catch(e){I.value=e.message||"日志加载失败"}finally{U=!1,requestAnimationFrame(J)}}},he=async()=>{p.value="",y.value="success";try{const e=await B.list({limit:1e3,level:i.level||void 0,search:i.search||void 0}),t=new Blob([JSON.stringify({exported_at:new Date().toISOString(),logs:e.logs},null,2)],{type:"application/json"}),o=URL.createObjectURL(t),r=document.createElement("a");r.href=o,r.download=`logs_${new Date().toISOString().slice(0,19).replace(/:/g,"-")}.json`,r.click(),URL.revokeObjectURL(o),p.value="导出成功"}catch(e){y.value="error",p.value=e.message||"导出失败"}},ye=async()=>{L.value=!1;try{await B.clear(),y.value="success",p.value="已清空日志",await A()}catch(e){y.value="error",p.value=e.message||"清空失败"}},S=()=>{N&&(window.clearTimeout(N),N=void 0)},z=()=>{!f.value||document.hidden||(N=window.setTimeout(async()=>{await A(),z()},dt))},F=()=>{S(),z()},_e=()=>{f.value=!f.value,f.value?F():S()},we=()=>{b.value=!b.value,requestAnimationFrame(J)},J=()=>{b.value&&k.value&&(k.value.scrollTop=k.value.scrollHeight),!b.value&&O.value&&(O.value.scrollTop=O.value.scrollHeight)},Y=()=>{document.hidden?S():f.value&&F()};return Ie(()=>{const e=localStorage.getItem("log-fold-state");if(e)try{_.value=JSON.parse(e)}catch{_.value={}}A(),F(),document.addEventListener("visibilitychange",Y)}),Le(()=>{S(),document.removeEventListener("visibilitychange",Y)}),(e,t)=>(d(),a(h,null,[s("div",Ne,[s("div",Te,[t[5]||(t[5]=s("p",{class:"text-base font-semibold text-foreground"},"管理日志",-1)),s("div",Ae," 自动刷新:"+n(f.value?"开启":"关闭"),1)]),s("div",Se,[s("div",$e,[t[6]||(t[6]=s("div",{class:"text-[11px] text-muted-foreground"},"总数",-1)),s("div",Ee,n(x.value?.memory.total??0),1)]),s("div",Me,[t[7]||(t[7]=s("div",{class:"text-[11px] text-muted-foreground"},"对话",-1)),s("div",Ge,n(x.value?.chat_count??0),1)]),s("div",Ue,[t[8]||(t[8]=s("div",{class:"text-[11px] text-muted-foreground"},"INFO",-1)),s("div",Ve,n(x.value?.memory.by_level.INFO??0),1)]),s("div",qe,[t[9]||(t[9]=s("div",{class:"text-[11px] text-muted-foreground"},"WARNING",-1)),s("div",Fe,n(x.value?.memory.by_level.WARNING??0),1)]),s("div",De,[t[10]||(t[10]=s("div",{class:"text-[11px] text-muted-foreground"},"ERROR",-1)),s("div",{class:v(["mt-1 text-lg font-semibold",x.value?.memory.by_level.ERROR?"text-rose-600":"text-foreground"])},n(x.value?.memory.by_level.ERROR??0),3)]),s("div",Be,[t[11]||(t[11]=s("div",{class:"text-[11px] text-muted-foreground"},"缓存上限",-1)),s("div",je,n(x.value?.memory.capacity??0),1)])]),s("div",He,[s("div",We,[Q(ke,{modelValue:i.level,"onUpdate:modelValue":t[0]||(t[0]=o=>i.level=o),options:se},null,8,["modelValue"])]),X(s("input",{"onUpdate:modelValue":t[1]||(t[1]=o=>i.search=o),type:"text",placeholder:"搜索...",class:"min-w-[200px] flex-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground sm:min-w-0"},null,512),[[ee,i.search,void 0,{trim:!0}]]),X(s("input",{"onUpdate:modelValue":t[2]||(t[2]=o=>i.limit=o),type:"number",min:"10",max:"1000",step:"100",class:"w-24 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground"},null,512),[[ee,i.limit,void 0,{number:!0}]]),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A}," 查询 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:he}," 导出 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:we},n(b.value?"结构化视图":"原始视图"),1),s("button",{class:v(["rounded-full px-4 py-2 text-xs font-medium transition-colors",f.value?"bg-primary text-primary-foreground":"border border-border text-muted-foreground hover:text-foreground"]),onClick:_e}," 自动刷新 ",2),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-destructive transition-colors hover:border-destructive/60",onClick:t[3]||(t[3]=o=>L.value=!0)}," 清空 ")]),p.value?(d(),a("div",{key:0,class:v(["mt-3 text-xs",le.value])},n(p.value),3)):m("",!0),I.value?(d(),a("div",ze,n(I.value),1)):m("",!0),b.value?(d(),a("div",{key:2,ref_key:"rawLogContainer",ref:k,class:"scrollbar-slim mt-4 max-h-[60vh] overflow-x-auto overflow-y-auto rounded-2xl border border-border bg-muted/30 px-4 py-3 text-[11px] text-muted-foreground"},[s("pre",Je,n(pe.value.text),1)],512)):(d(),a("div",{key:3,ref_key:"structuredLogContainer",ref:O,class:"scrollbar-slim mt-4 max-h-[60vh] space-y-3 overflow-y-auto rounded-2xl border border-border bg-card px-4 py-3"},[T.value.ungrouped.length===0&&T.value.groups.length===0?(d(),a("div",Ye," 暂无日志 ")):m("",!0),(d(!0),a(h,null,w(T.value.ungrouped,(o,r)=>(d(),a("div",{key:`u-${r}`},[s("div",Pe,[s("div",Ze,[s("span",Ke,n(o.time),1),s("span",{class:v(W(o.level))},n(o.level),3),(d(!0),a(h,null,w(o.tags,u=>(d(),a("span",{key:u,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:H(u)})},n(u),5))),128)),o.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:V(o.accountId)})},n(o.accountId),5)):m("",!0)]),s("div",Qe,n(o.text),1)])]))),128)),(d(!0),a(h,null,w(T.value.groups,o=>(d(),a("div",{key:o.id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:r=>ge(o.id)},[s("span",{class:v(ae(o.status))},n(de(o.status)),3),s("span",et,"req_"+n(o.id),1),o.accountId?(d(),a("span",{key:0,class:"text-xs font-semibold",style:R({color:V(o.accountId)})},n(o.accountId),5)):m("",!0),o.model?(d(),a("span",tt,n(o.model),1)):m("",!0),fe(o)?(d(),a("span",ot," 仅显示最近 "+n(M)+" 条 ")):m("",!0),s("span",st,n(o.logs.length)+" 条日志",1),s("span",{class:v(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!q(o.id)}])}," ▸ ",2)],8,Xe),q(o.id)?m("",!0):(d(),a("div",rt,[(d(!0),a(h,null,w(ve(o),(r,u)=>(d(),a("div",{key:`${o.id}-${u}`,class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",nt,[s("span",lt,n(r.time),1),s("span",{class:v(W(r.level))},n(r.level),3),(d(!0),a(h,null,w(r.tags,l=>(d(),a("span",{key:l,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:H(l)})},n(l),5))),128)),r.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:V(r.accountId)})},n(r.accountId),5)):m("",!0)]),s("div",at,n(r.text),1)]))),128))]))]))),128))],512))]),Q(Oe,{open:L.value,title:"确认操作",message:"确定要清空所有运行日志吗?","confirm-text":"确认","cancel-text":"取消",onConfirm:ye,onCancel:t[4]||(t[4]=o=>L.value=!1)},null,8,["open"])],64))}});export{mt as default}; diff --git a/static/assets/Logs-otvcDIGF.js b/static/assets/Logs-otvcDIGF.js new file mode 100644 index 0000000000000000000000000000000000000000..93704c850b31d4d1236d0c3419623146cf09adbd --- /dev/null +++ b/static/assets/Logs-otvcDIGF.js @@ -0,0 +1,2 @@ +import{g as K,d as Re,h as c,I as Ie,i as D,o as Ce,j as Le,c as a,a as s,p as Q,b as m,t as n,n as v,q as X,v as ee,F as h,r as w,k as R,e as d}from"./index-B38eA7T4.js";import{_ as ke}from"./SelectMenu.vue_vue_type_script_setup_true_lang-n4k9i9SG.js";import{_ as Oe}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-B4oTz-IR.js";const B={list:j=>K.get("/admin/log",{params:j}),clear:()=>K.delete("/admin/log?confirm=yes")},Ne={class:"rounded-3xl border border-border bg-card p-6"},Te={class:"flex flex-wrap items-center justify-between gap-3"},Ae={class:"text-xs text-muted-foreground"},Se={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-6"},$e={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ee={class:"mt-1 text-lg font-semibold text-foreground"},Me={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Ge={class:"mt-1 text-lg font-semibold text-foreground"},Ue={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},qe={class:"mt-1 text-lg font-semibold text-foreground"},Ve={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Fe={class:"mt-1 text-lg font-semibold text-foreground"},De={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},Be={class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},je={class:"mt-1 text-lg font-semibold text-foreground"},We={class:"mt-4 flex flex-wrap items-center gap-2 sm:flex-nowrap"},He={class:"w-44 shrink-0"},ze={key:1,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},Je={class:"whitespace-pre font-mono leading-relaxed"},Ye={key:0,class:"text-xs text-muted-foreground"},Pe={class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},Ze={class:"flex flex-wrap items-center gap-2"},Ke={class:"text-muted-foreground"},Qe={class:"w-full text-foreground md:w-auto md:flex-1"},Xe=["onClick"],et={class:"text-muted-foreground"},tt={key:1,class:"text-muted-foreground"},ot={key:2,class:"text-[10px] text-muted-foreground"},st={class:"text-muted-foreground"},rt={key:0,class:"space-y-2 px-4 py-3"},nt={class:"flex flex-wrap items-center gap-2"},lt={class:"text-muted-foreground"},at={class:"w-full text-foreground md:w-auto md:flex-1"},E=1e3,te=1e3,M=200,dt=3e3,mt=Re({__name:"Logs",setup(j){const oe=c([]),I=c([]),G=c({ungrouped:[],groups:[]}),x=c(null),C=c(""),p=c(""),y=c("success"),L=c(!1),f=c(!0),_=c({}),b=c(!0),k=c(null),O=c(null);let N,U=!1;const i=Ie({level:"",search:"",limit:300}),se=[{label:"全部",value:""},{label:"INFO",value:"INFO"},{label:"WARNING",value:"WARNING"},{label:"ERROR",value:"ERROR"}],re={SYSTEM:"#9e9e9e",CONFIG:"#607d8b",LOG:"#9e9e9e",AUTH:"#4caf50",SESSION:"#00bcd4",FILE:"#ff9800",CHAT:"#2196f3",API:"#8bc34a",CACHE:"#9c27b0",ACCOUNT:"#f44336",MULTI:"#673ab7"},ne={account_1:"#9c27b0",account_2:"#e91e63",account_3:"#00bcd4",account_4:"#4caf50",account_5:"#ff9800"},le=D(()=>y.value==="error"?"text-destructive":"text-muted-foreground"),W=e=>re[e]||"#757575",q=e=>ne[e]||"#757575",H=e=>{const t="rounded px-2 py-0.5 text-[10px] font-semibold";return e==="INFO"?`${t} bg-blue-100 text-blue-700`:e==="WARNING"?`${t} bg-amber-100 text-amber-700`:e==="ERROR"||e==="CRITICAL"?`${t} bg-rose-100 text-rose-700`:`${t} bg-violet-100 text-violet-700`},ae=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},de=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",ie=e=>{let t=e;const o=[];let r="";const u=/^\[([A-Za-z0-9_]+)\]/;for(;;){const l=t.match(u);if(!l)break;const g=l[1];if(t=t.slice(l[0].length).trim(),!g.startsWith("req_")){if(g.startsWith("account_")){r=g;continue}o.push(g)}}return{tags:o,accountId:r,text:t}},ue=e=>{const t=ie(e.message),o=e.message.match(/\[req_([a-z0-9]+)\]/i);return{...e,...t,reqId:o?o[1]:""}},ce=e=>{if(/^\d{4}-\d{2}-\d{2}T/.test(e))return new Date(e);if(/^\d{4}-\d{2}-\d{2}/.test(e))return new Date(e.replace(" ","T"));if(/^\d{2}:\d{2}:\d{2}$/.test(e)){const t=new Date,[o,r,u]=e.split(":").map(Number),l=new Date(t);return l.setHours(o,r,u,0),l}return null},me=e=>{const t=e[e.length-1],o=t.message;if(o.includes("响应完成")||o.includes("非流式响应完成"))return"success";if(t.level==="ERROR"||o.includes("失败"))return"error";const r=ce(t.time);return r&&(Date.now()-r.getTime())/1e3/60>5?"timeout":"in_progress"},xe=e=>{const t=new Map,o=[],r=[];e.forEach(l=>{l.reqId?(t.has(l.reqId)||(t.set(l.reqId,[]),o.push(l.reqId)),t.get(l.reqId)?.push(l)):r.push(l)});const u=o.map(l=>{const g=t.get(l)||[],$=g[0],P=$?.message.match(/\[(account_[^\]]+)\]/i),Z=$?.message.match(/收到请求: ([^ |]+)/)||$?.message.match(/Received request: ([^ |]+)/);return{id:l,logs:g,status:me(g),accountId:$?.accountId||(P?P[1]:""),model:Z?Z[1]:""}});return{ungrouped:r,groups:u}},T=D(()=>{const e=G.value.ungrouped,t=G.value.groups,o=e.length>E?e.slice(-E):e,r=t.length>E?t.slice(-E):t;return{ungrouped:o,groups:r,limited:e.length>o.length||t.length>r.length,ungroupedTotal:e.length,groupsTotal:t.length,ungroupedShowing:o.length,groupsShowing:r.length}}),pe=D(()=>{const e=I.value.length,t=e>te?e-te:0,o=I.value.slice(t),r=o.map(l=>`${l.time} | ${l.level} | ${l.message}`).join(` +`),u=o.length;return{text:r,total:e,showing:u,limited:e>u}}),V=e=>_.value[e]===!0,ge=e=>{_.value[e]=!V(e),localStorage.setItem("log-fold-state",JSON.stringify(_.value))},fe=e=>e.logs.length>M,ve=e=>e.logs.length<=M?e.logs:e.logs.slice(-M),be=()=>{(!i.limit||Number.isNaN(i.limit))&&(i.limit=300),i.limit=Math.min(Math.max(i.limit,10),1e3)},A=async()=>{if(!U){U=!0,C.value="",p.value="",be();try{const e=await B.list({limit:i.limit,level:i.level||void 0,search:i.search||void 0});oe.value=e.logs,I.value=e.logs.map(ue),G.value=xe(I.value),x.value=e.stats}catch(e){C.value=e.message||"日志加载失败"}finally{U=!1,requestAnimationFrame(J)}}},he=async()=>{p.value="",y.value="success";try{const e=await B.list({limit:1e3,level:i.level||void 0,search:i.search||void 0}),t=new Blob([JSON.stringify({exported_at:new Date().toISOString(),logs:e.logs},null,2)],{type:"application/json"}),o=URL.createObjectURL(t),r=document.createElement("a");r.href=o,r.download=`logs_${new Date().toISOString().slice(0,19).replace(/:/g,"-")}.json`,r.click(),URL.revokeObjectURL(o),p.value="导出成功"}catch(e){y.value="error",p.value=e.message||"导出失败"}},ye=async()=>{L.value=!1;try{await B.clear(),y.value="success",p.value="已清空日志",await A()}catch(e){y.value="error",p.value=e.message||"清空失败"}},S=()=>{N&&(window.clearTimeout(N),N=void 0)},z=()=>{!f.value||document.hidden||(N=window.setTimeout(async()=>{await A(),z()},dt))},F=()=>{S(),z()},_e=()=>{f.value=!f.value,f.value?F():S()},we=()=>{b.value=!b.value,requestAnimationFrame(J)},J=()=>{b.value&&k.value&&(k.value.scrollTop=k.value.scrollHeight),!b.value&&O.value&&(O.value.scrollTop=O.value.scrollHeight)},Y=()=>{document.hidden?S():f.value&&F()};return Ce(()=>{const e=localStorage.getItem("log-fold-state");if(e)try{_.value=JSON.parse(e)}catch{_.value={}}A(),F(),document.addEventListener("visibilitychange",Y)}),Le(()=>{S(),document.removeEventListener("visibilitychange",Y)}),(e,t)=>(d(),a(h,null,[s("div",Ne,[s("div",Te,[t[5]||(t[5]=s("p",{class:"text-base font-semibold text-foreground"},"管理日志",-1)),s("div",Ae," 自动刷新:"+n(f.value?"开启":"关闭"),1)]),s("div",Se,[s("div",$e,[t[6]||(t[6]=s("div",{class:"text-[11px] text-muted-foreground"},"总数",-1)),s("div",Ee,n(x.value?.memory.total??0),1)]),s("div",Me,[t[7]||(t[7]=s("div",{class:"text-[11px] text-muted-foreground"},"对话",-1)),s("div",Ge,n(x.value?.chat_count??0),1)]),s("div",Ue,[t[8]||(t[8]=s("div",{class:"text-[11px] text-muted-foreground"},"INFO",-1)),s("div",qe,n(x.value?.memory.by_level.INFO??0),1)]),s("div",Ve,[t[9]||(t[9]=s("div",{class:"text-[11px] text-muted-foreground"},"WARNING",-1)),s("div",Fe,n(x.value?.memory.by_level.WARNING??0),1)]),s("div",De,[t[10]||(t[10]=s("div",{class:"text-[11px] text-muted-foreground"},"ERROR",-1)),s("div",{class:v(["mt-1 text-lg font-semibold",x.value?.memory.by_level.ERROR?"text-rose-600":"text-foreground"])},n(x.value?.memory.by_level.ERROR??0),3)]),s("div",Be,[t[11]||(t[11]=s("div",{class:"text-[11px] text-muted-foreground"},"缓存上限",-1)),s("div",je,n(x.value?.memory.capacity??0),1)])]),s("div",We,[s("div",He,[Q(ke,{modelValue:i.level,"onUpdate:modelValue":t[0]||(t[0]=o=>i.level=o),options:se},null,8,["modelValue"])]),X(s("input",{"onUpdate:modelValue":t[1]||(t[1]=o=>i.search=o),type:"text",placeholder:"搜索...",class:"min-w-[200px] flex-1 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground sm:min-w-0"},null,512),[[ee,i.search,void 0,{trim:!0}]]),X(s("input",{"onUpdate:modelValue":t[2]||(t[2]=o=>i.limit=o),type:"number",min:"10",max:"1000",step:"100",class:"w-24 rounded-2xl border border-border bg-background px-3 py-2 text-xs text-foreground"},null,512),[[ee,i.limit,void 0,{number:!0}]]),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:A}," 查询 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:he}," 导出 "),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary",onClick:we},n(b.value?"结构化视图":"原始视图"),1),s("button",{class:v(["rounded-full px-4 py-2 text-xs font-medium transition-colors",f.value?"bg-primary text-primary-foreground":"border border-border text-muted-foreground hover:text-foreground"]),onClick:_e}," 自动刷新 ",2),s("button",{class:"rounded-full border border-border px-4 py-2 text-xs font-medium text-destructive transition-colors hover:border-destructive/60",onClick:t[3]||(t[3]=o=>L.value=!0)}," 清空 ")]),p.value?(d(),a("div",{key:0,class:v(["mt-3 text-xs",le.value])},n(p.value),3)):m("",!0),C.value?(d(),a("div",ze,n(C.value),1)):m("",!0),b.value?(d(),a("div",{key:2,ref_key:"rawLogContainer",ref:k,class:"scrollbar-slim mt-4 max-h-[60vh] overflow-x-auto overflow-y-auto rounded-2xl border border-border bg-muted/30 px-4 py-3 text-[11px] text-muted-foreground"},[s("pre",Je,n(pe.value.text),1)],512)):(d(),a("div",{key:3,ref_key:"structuredLogContainer",ref:O,class:"scrollbar-slim mt-4 max-h-[60vh] space-y-3 overflow-y-auto rounded-2xl border border-border bg-card px-4 py-3"},[T.value.ungrouped.length===0&&T.value.groups.length===0?(d(),a("div",Ye," 暂无日志 ")):m("",!0),(d(!0),a(h,null,w(T.value.ungrouped,(o,r)=>(d(),a("div",{key:`u-${r}`},[s("div",Pe,[s("div",Ze,[s("span",Ke,n(o.time),1),s("span",{class:v(H(o.level))},n(o.level),3),(d(!0),a(h,null,w(o.tags,u=>(d(),a("span",{key:u,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:W(u)})},n(u),5))),128)),o.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:q(o.accountId)})},n(o.accountId),5)):m("",!0)]),s("div",Qe,n(o.text),1)])]))),128)),(d(!0),a(h,null,w(T.value.groups,o=>(d(),a("div",{key:o.id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:r=>ge(o.id)},[s("span",{class:v(ae(o.status))},n(de(o.status)),3),s("span",et,"req_"+n(o.id),1),o.accountId?(d(),a("span",{key:0,class:"text-xs font-semibold",style:R({color:q(o.accountId)})},n(o.accountId),5)):m("",!0),o.model?(d(),a("span",tt,n(o.model),1)):m("",!0),fe(o)?(d(),a("span",ot," 仅显示最近 "+n(M)+" 条 ")):m("",!0),s("span",st,n(o.logs.length)+" 条日志",1),s("span",{class:v(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!V(o.id)}])}," ▸ ",2)],8,Xe),V(o.id)?m("",!0):(d(),a("div",rt,[(d(!0),a(h,null,w(ve(o),(r,u)=>(d(),a("div",{key:`${o.id}-${u}`,class:"cv-auto flex flex-wrap items-center gap-2 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",nt,[s("span",lt,n(r.time),1),s("span",{class:v(H(r.level))},n(r.level),3),(d(!0),a(h,null,w(r.tags,l=>(d(),a("span",{key:l,class:"rounded px-2 py-0.5 text-[10px] font-semibold text-white",style:R({backgroundColor:W(l)})},n(l),5))),128)),r.accountId?(d(),a("span",{key:0,class:"text-[11px] font-semibold",style:R({color:q(r.accountId)})},n(r.accountId),5)):m("",!0)]),s("div",at,n(r.text),1)]))),128))]))]))),128))],512))]),Q(Oe,{open:L.value,title:"确认操作",message:"确定要清空所有运行日志吗?","confirm-text":"确认","cancel-text":"取消",onConfirm:ye,onCancel:t[4]||(t[4]=o=>L.value=!1)},null,8,["open"])],64))}});export{mt as default}; diff --git a/static/assets/Monitor--IyXttaS.js b/static/assets/Monitor--IyXttaS.js new file mode 100644 index 0000000000000000000000000000000000000000..a974631f666d85a58909b5ca5bf7a2d37ad0ec77 --- /dev/null +++ b/static/assets/Monitor--IyXttaS.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-D9UpA0jd.js";import{d as v,o as y,c as r,a as t,b as u,t as o,u as n,F as _,r as c,n as m,f as l,e as a}from"./index-CQv2QMzB.js";const h={class:"space-y-6"},k={class:"rounded-3xl border border-border bg-card p-6"},C={class:"flex flex-wrap items-center justify-between gap-3"},N={class:"mt-1 text-xs text-muted-foreground"},B={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},M={class:"mt-6 grid gap-8 md:grid-cols-2"},S={class:"monitor-card__header"},V={class:"monitor-card__name"},w={class:"monitor-card__stats"},F={class:"monitor-card__value"},L={class:"monitor-card__value"},$={class:"monitor-card__value"},j={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},U=v({__name:"Monitor",setup(A){const{services:p,updatedAt:b,errorMessage:i,refreshStatus:f}=g();return y(()=>{f()}),(D,s)=>(a(),r("div",h,[t("section",k,[t("div",C,[t("div",null,[s[0]||(s[0]=t("p",{class:"text-base font-semibold text-foreground"},"服务状态",-1)),t("p",N," 最近更新:"+o(n(b)||"未获取"),1)]),s[1]||(s[1]=t("div",{class:"flex items-center gap-2"},[t("a",{href:"/#/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"}," 打开监控页 ")],-1))]),n(i)?(a(),r("div",B,o(n(i)),1)):u("",!0),t("div",M,[(a(!0),r(_,null,c(n(p),e=>(a(),r("div",{key:e.key,class:"monitor-card"},[t("div",S,[t("span",V,o(e.name),1),t("span",{class:m(["monitor-card__badge",e.statusClass])},o(e.statusLabel),3)]),t("div",w,[t("span",null,[s[2]||(s[2]=l("可用率 ",-1)),t("span",F,o(e.uptime)+"%",1)]),t("span",null,[s[3]||(s[3]=l("请求 ",-1)),t("span",L,o(e.total),1)]),t("span",null,[s[4]||(s[4]=l("成功 ",-1)),t("span",$,o(e.success),1)])]),t("div",j,[(a(!0),r(_,null,c(e.beats,(d,x)=>(a(),r("div",{key:`${e.key}-${x}`,class:m(["monitor-beat",d.className])},[d.tooltip?(a(),r("span",z,o(d.tooltip),1)):u("",!0)],2))),128))])]))),128))])])]))}});export{U as default}; diff --git a/static/assets/Monitor-7LGA_2Xx.js b/static/assets/Monitor-7LGA_2Xx.js new file mode 100644 index 0000000000000000000000000000000000000000..ca1dffbbfff63ba56f6c9c7fc82ebf68f12191c4 --- /dev/null +++ b/static/assets/Monitor-7LGA_2Xx.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-BFxVcNn2.js";import{d as v,o as y,c as r,a as t,b as u,t as o,u as n,F as _,r as c,n as m,f as l,e as a}from"./index-gD6QQiOu.js";const h={class:"space-y-6"},k={class:"rounded-3xl border border-border bg-card p-6"},C={class:"flex flex-wrap items-center justify-between gap-3"},N={class:"mt-1 text-xs text-muted-foreground"},B={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},M={class:"mt-6 grid gap-8 md:grid-cols-2"},S={class:"monitor-card__header"},V={class:"monitor-card__name"},w={class:"monitor-card__stats"},F={class:"monitor-card__value"},L={class:"monitor-card__value"},$={class:"monitor-card__value"},j={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},U=v({__name:"Monitor",setup(A){const{services:p,updatedAt:b,errorMessage:i,refreshStatus:f}=g();return y(()=>{f()}),(D,s)=>(a(),r("div",h,[t("section",k,[t("div",C,[t("div",null,[s[0]||(s[0]=t("p",{class:"text-base font-semibold text-foreground"},"服务状态",-1)),t("p",N," 最近更新:"+o(n(b)||"未获取"),1)]),s[1]||(s[1]=t("div",{class:"flex items-center gap-2"},[t("a",{href:"/#/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"}," 打开监控页 ")],-1))]),n(i)?(a(),r("div",B,o(n(i)),1)):u("",!0),t("div",M,[(a(!0),r(_,null,c(n(p),e=>(a(),r("div",{key:e.key,class:"monitor-card"},[t("div",S,[t("span",V,o(e.name),1),t("span",{class:m(["monitor-card__badge",e.statusClass])},o(e.statusLabel),3)]),t("div",w,[t("span",null,[s[2]||(s[2]=l("可用率 ",-1)),t("span",F,o(e.uptime)+"%",1)]),t("span",null,[s[3]||(s[3]=l("请求 ",-1)),t("span",L,o(e.total),1)]),t("span",null,[s[4]||(s[4]=l("成功 ",-1)),t("span",$,o(e.success),1)])]),t("div",j,[(a(!0),r(_,null,c(e.beats,(d,x)=>(a(),r("div",{key:`${e.key}-${x}`,class:m(["monitor-beat",d.className])},[d.tooltip?(a(),r("span",z,o(d.tooltip),1)):u("",!0)],2))),128))])]))),128))])])]))}});export{U as default}; diff --git a/static/assets/Monitor-B1aYbSP1.js b/static/assets/Monitor-B1aYbSP1.js new file mode 100644 index 0000000000000000000000000000000000000000..1ab655f55cbff12ad9fda29c15d7e44e6bb3a29c --- /dev/null +++ b/static/assets/Monitor-B1aYbSP1.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-DidGh3C9.js";import{d as v,o as y,c as r,a as t,b as u,t as o,u as n,F as _,r as c,n as m,f as l,e as a}from"./index-C9KL0lrc.js";const h={class:"space-y-6"},k={class:"rounded-3xl border border-border bg-card p-6"},C={class:"flex flex-wrap items-center justify-between gap-3"},N={class:"mt-1 text-xs text-muted-foreground"},B={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},M={class:"mt-6 grid gap-8 md:grid-cols-2"},S={class:"monitor-card__header"},V={class:"monitor-card__name"},w={class:"monitor-card__stats"},F={class:"monitor-card__value"},L={class:"monitor-card__value"},$={class:"monitor-card__value"},j={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},U=v({__name:"Monitor",setup(A){const{services:p,updatedAt:b,errorMessage:i,refreshStatus:f}=g();return y(()=>{f()}),(D,s)=>(a(),r("div",h,[t("section",k,[t("div",C,[t("div",null,[s[0]||(s[0]=t("p",{class:"text-base font-semibold text-foreground"},"服务状态",-1)),t("p",N," 最近更新:"+o(n(b)||"未获取"),1)]),s[1]||(s[1]=t("div",{class:"flex items-center gap-2"},[t("a",{href:"/#/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"}," 打开监控页 ")],-1))]),n(i)?(a(),r("div",B,o(n(i)),1)):u("",!0),t("div",M,[(a(!0),r(_,null,c(n(p),e=>(a(),r("div",{key:e.key,class:"monitor-card"},[t("div",S,[t("span",V,o(e.name),1),t("span",{class:m(["monitor-card__badge",e.statusClass])},o(e.statusLabel),3)]),t("div",w,[t("span",null,[s[2]||(s[2]=l("可用率 ",-1)),t("span",F,o(e.uptime)+"%",1)]),t("span",null,[s[3]||(s[3]=l("请求 ",-1)),t("span",L,o(e.total),1)]),t("span",null,[s[4]||(s[4]=l("成功 ",-1)),t("span",$,o(e.success),1)])]),t("div",j,[(a(!0),r(_,null,c(e.beats,(d,x)=>(a(),r("div",{key:`${e.key}-${x}`,class:m(["monitor-beat",d.className])},[d.tooltip?(a(),r("span",z,o(d.tooltip),1)):u("",!0)],2))),128))])]))),128))])])]))}});export{U as default}; diff --git a/static/assets/Monitor-BFbBdfH4.js b/static/assets/Monitor-BFbBdfH4.js new file mode 100644 index 0000000000000000000000000000000000000000..b9546d8de0e34e685e36207220da9704b5d4050f --- /dev/null +++ b/static/assets/Monitor-BFbBdfH4.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-CwWFJXPV.js";import{d as v,o as y,c as r,a as t,b as u,t as o,u as n,F as _,r as c,n as m,f as l,e as a}from"./index-C4edAQLF.js";const h={class:"space-y-6"},k={class:"rounded-3xl border border-border bg-card p-6"},C={class:"flex flex-wrap items-center justify-between gap-3"},N={class:"mt-1 text-xs text-muted-foreground"},B={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},M={class:"mt-6 grid gap-8 md:grid-cols-2"},S={class:"monitor-card__header"},V={class:"monitor-card__name"},w={class:"monitor-card__stats"},F={class:"monitor-card__value"},L={class:"monitor-card__value"},$={class:"monitor-card__value"},j={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},U=v({__name:"Monitor",setup(A){const{services:p,updatedAt:b,errorMessage:i,refreshStatus:f}=g();return y(()=>{f()}),(D,s)=>(a(),r("div",h,[t("section",k,[t("div",C,[t("div",null,[s[0]||(s[0]=t("p",{class:"text-base font-semibold text-foreground"},"服务状态",-1)),t("p",N," 最近更新:"+o(n(b)||"未获取"),1)]),s[1]||(s[1]=t("div",{class:"flex items-center gap-2"},[t("a",{href:"/#/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"}," 打开监控页 ")],-1))]),n(i)?(a(),r("div",B,o(n(i)),1)):u("",!0),t("div",M,[(a(!0),r(_,null,c(n(p),e=>(a(),r("div",{key:e.key,class:"monitor-card"},[t("div",S,[t("span",V,o(e.name),1),t("span",{class:m(["monitor-card__badge",e.statusClass])},o(e.statusLabel),3)]),t("div",w,[t("span",null,[s[2]||(s[2]=l("可用率 ",-1)),t("span",F,o(e.uptime)+"%",1)]),t("span",null,[s[3]||(s[3]=l("请求 ",-1)),t("span",L,o(e.total),1)]),t("span",null,[s[4]||(s[4]=l("成功 ",-1)),t("span",$,o(e.success),1)])]),t("div",j,[(a(!0),r(_,null,c(e.beats,(d,x)=>(a(),r("div",{key:`${e.key}-${x}`,class:m(["monitor-beat",d.className])},[d.tooltip?(a(),r("span",z,o(d.tooltip),1)):u("",!0)],2))),128))])]))),128))])])]))}});export{U as default}; diff --git a/static/assets/Monitor-BGpml9J0.js b/static/assets/Monitor-BGpml9J0.js new file mode 100644 index 0000000000000000000000000000000000000000..069290225fa8052627ecc0b5f86e64e1b16dead7 --- /dev/null +++ b/static/assets/Monitor-BGpml9J0.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-BkCYwvB8.js";import{d as v,o as y,c as r,a as t,b as u,t as o,u as n,F as _,r as c,n as m,f as l,e as a}from"./index-DDWWwh2l.js";const h={class:"space-y-6"},k={class:"rounded-3xl border border-border bg-card p-6"},C={class:"flex flex-wrap items-center justify-between gap-3"},N={class:"mt-1 text-xs text-muted-foreground"},B={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},M={class:"mt-6 grid gap-8 md:grid-cols-2"},S={class:"monitor-card__header"},V={class:"monitor-card__name"},w={class:"monitor-card__stats"},F={class:"monitor-card__value"},L={class:"monitor-card__value"},$={class:"monitor-card__value"},j={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},U=v({__name:"Monitor",setup(A){const{services:p,updatedAt:b,errorMessage:i,refreshStatus:f}=g();return y(()=>{f()}),(D,s)=>(a(),r("div",h,[t("section",k,[t("div",C,[t("div",null,[s[0]||(s[0]=t("p",{class:"text-base font-semibold text-foreground"},"服务状态",-1)),t("p",N," 最近更新:"+o(n(b)||"未获取"),1)]),s[1]||(s[1]=t("div",{class:"flex items-center gap-2"},[t("a",{href:"/#/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"}," 打开监控页 ")],-1))]),n(i)?(a(),r("div",B,o(n(i)),1)):u("",!0),t("div",M,[(a(!0),r(_,null,c(n(p),e=>(a(),r("div",{key:e.key,class:"monitor-card"},[t("div",S,[t("span",V,o(e.name),1),t("span",{class:m(["monitor-card__badge",e.statusClass])},o(e.statusLabel),3)]),t("div",w,[t("span",null,[s[2]||(s[2]=l("可用率 ",-1)),t("span",F,o(e.uptime)+"%",1)]),t("span",null,[s[3]||(s[3]=l("请求 ",-1)),t("span",L,o(e.total),1)]),t("span",null,[s[4]||(s[4]=l("成功 ",-1)),t("span",$,o(e.success),1)])]),t("div",j,[(a(!0),r(_,null,c(e.beats,(d,x)=>(a(),r("div",{key:`${e.key}-${x}`,class:m(["monitor-beat",d.className])},[d.tooltip?(a(),r("span",z,o(d.tooltip),1)):u("",!0)],2))),128))])]))),128))])])]))}});export{U as default}; diff --git a/static/assets/Monitor-BZlxN0Z7.js b/static/assets/Monitor-BZlxN0Z7.js new file mode 100644 index 0000000000000000000000000000000000000000..6ea1efa6b566cb6ee3aab68f9974badabcd036e3 --- /dev/null +++ b/static/assets/Monitor-BZlxN0Z7.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-CKkLWAt7.js";import{d as v,o as y,c as r,a as t,b as u,t as o,u as n,F as _,r as c,n as m,f as l,e as a}from"./index-CkXB0iyt.js";const h={class:"space-y-6"},k={class:"rounded-3xl border border-border bg-card p-6"},C={class:"flex flex-wrap items-center justify-between gap-3"},N={class:"mt-1 text-xs text-muted-foreground"},B={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},M={class:"mt-6 grid gap-8 md:grid-cols-2"},S={class:"monitor-card__header"},V={class:"monitor-card__name"},w={class:"monitor-card__stats"},F={class:"monitor-card__value"},L={class:"monitor-card__value"},$={class:"monitor-card__value"},j={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},U=v({__name:"Monitor",setup(A){const{services:p,updatedAt:b,errorMessage:i,refreshStatus:f}=g();return y(()=>{f()}),(D,s)=>(a(),r("div",h,[t("section",k,[t("div",C,[t("div",null,[s[0]||(s[0]=t("p",{class:"text-base font-semibold text-foreground"},"服务状态",-1)),t("p",N," 最近更新:"+o(n(b)||"未获取"),1)]),s[1]||(s[1]=t("div",{class:"flex items-center gap-2"},[t("a",{href:"/#/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"}," 打开监控页 ")],-1))]),n(i)?(a(),r("div",B,o(n(i)),1)):u("",!0),t("div",M,[(a(!0),r(_,null,c(n(p),e=>(a(),r("div",{key:e.key,class:"monitor-card"},[t("div",S,[t("span",V,o(e.name),1),t("span",{class:m(["monitor-card__badge",e.statusClass])},o(e.statusLabel),3)]),t("div",w,[t("span",null,[s[2]||(s[2]=l("可用率 ",-1)),t("span",F,o(e.uptime)+"%",1)]),t("span",null,[s[3]||(s[3]=l("请求 ",-1)),t("span",L,o(e.total),1)]),t("span",null,[s[4]||(s[4]=l("成功 ",-1)),t("span",$,o(e.success),1)])]),t("div",j,[(a(!0),r(_,null,c(e.beats,(d,x)=>(a(),r("div",{key:`${e.key}-${x}`,class:m(["monitor-beat",d.className])},[d.tooltip?(a(),r("span",z,o(d.tooltip),1)):u("",!0)],2))),128))])]))),128))])])]))}});export{U as default}; diff --git a/static/assets/Monitor-BemJ9-ii.js b/static/assets/Monitor-BemJ9-ii.js new file mode 100644 index 0000000000000000000000000000000000000000..83713cfc98d05435aa3b5694cf324eddcf6b8398 --- /dev/null +++ b/static/assets/Monitor-BemJ9-ii.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-D_PU76s5.js";import{d as v,o as y,c as r,a as t,b as u,t as o,u as n,F as _,r as c,n as m,f as l,e as a}from"./index-B0A0-QFY.js";const h={class:"space-y-6"},k={class:"rounded-3xl border border-border bg-card p-6"},C={class:"flex flex-wrap items-center justify-between gap-3"},N={class:"mt-1 text-xs text-muted-foreground"},B={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},M={class:"mt-6 grid gap-8 md:grid-cols-2"},S={class:"monitor-card__header"},V={class:"monitor-card__name"},w={class:"monitor-card__stats"},F={class:"monitor-card__value"},L={class:"monitor-card__value"},$={class:"monitor-card__value"},j={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},U=v({__name:"Monitor",setup(A){const{services:p,updatedAt:b,errorMessage:i,refreshStatus:f}=g();return y(()=>{f()}),(D,s)=>(a(),r("div",h,[t("section",k,[t("div",C,[t("div",null,[s[0]||(s[0]=t("p",{class:"text-base font-semibold text-foreground"},"服务状态",-1)),t("p",N," 最近更新:"+o(n(b)||"未获取"),1)]),s[1]||(s[1]=t("div",{class:"flex items-center gap-2"},[t("a",{href:"/#/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"}," 打开监控页 ")],-1))]),n(i)?(a(),r("div",B,o(n(i)),1)):u("",!0),t("div",M,[(a(!0),r(_,null,c(n(p),e=>(a(),r("div",{key:e.key,class:"monitor-card"},[t("div",S,[t("span",V,o(e.name),1),t("span",{class:m(["monitor-card__badge",e.statusClass])},o(e.statusLabel),3)]),t("div",w,[t("span",null,[s[2]||(s[2]=l("可用率 ",-1)),t("span",F,o(e.uptime)+"%",1)]),t("span",null,[s[3]||(s[3]=l("请求 ",-1)),t("span",L,o(e.total),1)]),t("span",null,[s[4]||(s[4]=l("成功 ",-1)),t("span",$,o(e.success),1)])]),t("div",j,[(a(!0),r(_,null,c(e.beats,(d,x)=>(a(),r("div",{key:`${e.key}-${x}`,class:m(["monitor-beat",d.className])},[d.tooltip?(a(),r("span",z,o(d.tooltip),1)):u("",!0)],2))),128))])]))),128))])])]))}});export{U as default}; diff --git a/static/assets/Monitor-BrHVeZxZ.js b/static/assets/Monitor-BrHVeZxZ.js new file mode 100644 index 0000000000000000000000000000000000000000..8f80504769adc036cefe5ca060d42d5c3cfcb410 --- /dev/null +++ b/static/assets/Monitor-BrHVeZxZ.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-WNjzrwnM.js";import{d as v,o as y,c as r,a as t,b as u,t as o,u as n,F as _,r as c,n as m,f as l,e as a}from"./index-Dt-VnrHx.js";const h={class:"space-y-6"},k={class:"rounded-3xl border border-border bg-card p-6"},C={class:"flex flex-wrap items-center justify-between gap-3"},N={class:"mt-1 text-xs text-muted-foreground"},B={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},M={class:"mt-6 grid gap-8 md:grid-cols-2"},S={class:"monitor-card__header"},V={class:"monitor-card__name"},w={class:"monitor-card__stats"},F={class:"monitor-card__value"},L={class:"monitor-card__value"},$={class:"monitor-card__value"},j={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},U=v({__name:"Monitor",setup(A){const{services:p,updatedAt:b,errorMessage:i,refreshStatus:f}=g();return y(()=>{f()}),(D,s)=>(a(),r("div",h,[t("section",k,[t("div",C,[t("div",null,[s[0]||(s[0]=t("p",{class:"text-base font-semibold text-foreground"},"服务状态",-1)),t("p",N," 最近更新:"+o(n(b)||"未获取"),1)]),s[1]||(s[1]=t("div",{class:"flex items-center gap-2"},[t("a",{href:"/#/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"}," 打开监控页 ")],-1))]),n(i)?(a(),r("div",B,o(n(i)),1)):u("",!0),t("div",M,[(a(!0),r(_,null,c(n(p),e=>(a(),r("div",{key:e.key,class:"monitor-card"},[t("div",S,[t("span",V,o(e.name),1),t("span",{class:m(["monitor-card__badge",e.statusClass])},o(e.statusLabel),3)]),t("div",w,[t("span",null,[s[2]||(s[2]=l("可用率 ",-1)),t("span",F,o(e.uptime)+"%",1)]),t("span",null,[s[3]||(s[3]=l("请求 ",-1)),t("span",L,o(e.total),1)]),t("span",null,[s[4]||(s[4]=l("成功 ",-1)),t("span",$,o(e.success),1)])]),t("div",j,[(a(!0),r(_,null,c(e.beats,(d,x)=>(a(),r("div",{key:`${e.key}-${x}`,class:m(["monitor-beat",d.className])},[d.tooltip?(a(),r("span",z,o(d.tooltip),1)):u("",!0)],2))),128))])]))),128))])])]))}});export{U as default}; diff --git a/static/assets/Monitor-BtkOUZKg.js b/static/assets/Monitor-BtkOUZKg.js new file mode 100644 index 0000000000000000000000000000000000000000..748dd2879c5c5a03935f6a0242c553e95dbac97c --- /dev/null +++ b/static/assets/Monitor-BtkOUZKg.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-DSC-vSsG.js";import{d as v,o as y,c as r,a as t,b as u,t as o,u as n,F as _,r as c,n as m,f as l,e as a}from"./index-C7QtVLks.js";const h={class:"space-y-6"},k={class:"rounded-3xl border border-border bg-card p-6"},C={class:"flex flex-wrap items-center justify-between gap-3"},N={class:"mt-1 text-xs text-muted-foreground"},B={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},M={class:"mt-6 grid gap-8 md:grid-cols-2"},S={class:"monitor-card__header"},V={class:"monitor-card__name"},w={class:"monitor-card__stats"},F={class:"monitor-card__value"},L={class:"monitor-card__value"},$={class:"monitor-card__value"},j={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},U=v({__name:"Monitor",setup(A){const{services:p,updatedAt:b,errorMessage:i,refreshStatus:f}=g();return y(()=>{f()}),(D,s)=>(a(),r("div",h,[t("section",k,[t("div",C,[t("div",null,[s[0]||(s[0]=t("p",{class:"text-base font-semibold text-foreground"},"服务状态",-1)),t("p",N," 最近更新:"+o(n(b)||"未获取"),1)]),s[1]||(s[1]=t("div",{class:"flex items-center gap-2"},[t("a",{href:"/#/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"}," 打开监控页 ")],-1))]),n(i)?(a(),r("div",B,o(n(i)),1)):u("",!0),t("div",M,[(a(!0),r(_,null,c(n(p),e=>(a(),r("div",{key:e.key,class:"monitor-card"},[t("div",S,[t("span",V,o(e.name),1),t("span",{class:m(["monitor-card__badge",e.statusClass])},o(e.statusLabel),3)]),t("div",w,[t("span",null,[s[2]||(s[2]=l("可用率 ",-1)),t("span",F,o(e.uptime)+"%",1)]),t("span",null,[s[3]||(s[3]=l("请求 ",-1)),t("span",L,o(e.total),1)]),t("span",null,[s[4]||(s[4]=l("成功 ",-1)),t("span",$,o(e.success),1)])]),t("div",j,[(a(!0),r(_,null,c(e.beats,(d,x)=>(a(),r("div",{key:`${e.key}-${x}`,class:m(["monitor-beat",d.className])},[d.tooltip?(a(),r("span",z,o(d.tooltip),1)):u("",!0)],2))),128))])]))),128))])])]))}});export{U as default}; diff --git a/static/assets/Monitor-BuPx8c4m.js b/static/assets/Monitor-BuPx8c4m.js new file mode 100644 index 0000000000000000000000000000000000000000..fff7f40ad32620309d29395ccc91a745f0b2a67a --- /dev/null +++ b/static/assets/Monitor-BuPx8c4m.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-B3toa7r0.js";import{d as v,o as y,c as r,a as t,b as u,t as o,u as n,F as _,r as c,n as m,f as l,e as a}from"./index-DrM07qAY.js";const h={class:"space-y-6"},k={class:"rounded-3xl border border-border bg-card p-6"},C={class:"flex flex-wrap items-center justify-between gap-3"},N={class:"mt-1 text-xs text-muted-foreground"},B={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},M={class:"mt-6 grid gap-8 md:grid-cols-2"},S={class:"monitor-card__header"},V={class:"monitor-card__name"},w={class:"monitor-card__stats"},F={class:"monitor-card__value"},L={class:"monitor-card__value"},$={class:"monitor-card__value"},j={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},U=v({__name:"Monitor",setup(A){const{services:p,updatedAt:b,errorMessage:i,refreshStatus:f}=g();return y(()=>{f()}),(D,s)=>(a(),r("div",h,[t("section",k,[t("div",C,[t("div",null,[s[0]||(s[0]=t("p",{class:"text-base font-semibold text-foreground"},"服务状态",-1)),t("p",N," 最近更新:"+o(n(b)||"未获取"),1)]),s[1]||(s[1]=t("div",{class:"flex items-center gap-2"},[t("a",{href:"/#/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"}," 打开监控页 ")],-1))]),n(i)?(a(),r("div",B,o(n(i)),1)):u("",!0),t("div",M,[(a(!0),r(_,null,c(n(p),e=>(a(),r("div",{key:e.key,class:"monitor-card"},[t("div",S,[t("span",V,o(e.name),1),t("span",{class:m(["monitor-card__badge",e.statusClass])},o(e.statusLabel),3)]),t("div",w,[t("span",null,[s[2]||(s[2]=l("可用率 ",-1)),t("span",F,o(e.uptime)+"%",1)]),t("span",null,[s[3]||(s[3]=l("请求 ",-1)),t("span",L,o(e.total),1)]),t("span",null,[s[4]||(s[4]=l("成功 ",-1)),t("span",$,o(e.success),1)])]),t("div",j,[(a(!0),r(_,null,c(e.beats,(d,x)=>(a(),r("div",{key:`${e.key}-${x}`,class:m(["monitor-beat",d.className])},[d.tooltip?(a(),r("span",z,o(d.tooltip),1)):u("",!0)],2))),128))])]))),128))])])]))}});export{U as default}; diff --git a/static/assets/Monitor-C3RzkUxt.js b/static/assets/Monitor-C3RzkUxt.js new file mode 100644 index 0000000000000000000000000000000000000000..c42164c8e24529c132efbe8facda94bac039a3bb --- /dev/null +++ b/static/assets/Monitor-C3RzkUxt.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-BHHQ7xhw.js";import{d as v,o as y,c as r,a as t,b as u,t as o,u as n,F as _,r as c,n as m,f as l,e as a}from"./index-B38eA7T4.js";const h={class:"space-y-6"},k={class:"rounded-3xl border border-border bg-card p-6"},C={class:"flex flex-wrap items-center justify-between gap-3"},N={class:"mt-1 text-xs text-muted-foreground"},B={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},M={class:"mt-6 grid gap-8 md:grid-cols-2"},S={class:"monitor-card__header"},V={class:"monitor-card__name"},w={class:"monitor-card__stats"},F={class:"monitor-card__value"},L={class:"monitor-card__value"},$={class:"monitor-card__value"},j={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},U=v({__name:"Monitor",setup(A){const{services:p,updatedAt:b,errorMessage:i,refreshStatus:f}=g();return y(()=>{f()}),(D,s)=>(a(),r("div",h,[t("section",k,[t("div",C,[t("div",null,[s[0]||(s[0]=t("p",{class:"text-base font-semibold text-foreground"},"服务状态",-1)),t("p",N," 最近更新:"+o(n(b)||"未获取"),1)]),s[1]||(s[1]=t("div",{class:"flex items-center gap-2"},[t("a",{href:"/#/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"}," 打开监控页 ")],-1))]),n(i)?(a(),r("div",B,o(n(i)),1)):u("",!0),t("div",M,[(a(!0),r(_,null,c(n(p),e=>(a(),r("div",{key:e.key,class:"monitor-card"},[t("div",S,[t("span",V,o(e.name),1),t("span",{class:m(["monitor-card__badge",e.statusClass])},o(e.statusLabel),3)]),t("div",w,[t("span",null,[s[2]||(s[2]=l("可用率 ",-1)),t("span",F,o(e.uptime)+"%",1)]),t("span",null,[s[3]||(s[3]=l("请求 ",-1)),t("span",L,o(e.total),1)]),t("span",null,[s[4]||(s[4]=l("成功 ",-1)),t("span",$,o(e.success),1)])]),t("div",j,[(a(!0),r(_,null,c(e.beats,(d,x)=>(a(),r("div",{key:`${e.key}-${x}`,class:m(["monitor-beat",d.className])},[d.tooltip?(a(),r("span",z,o(d.tooltip),1)):u("",!0)],2))),128))])]))),128))])])]))}});export{U as default}; diff --git a/static/assets/Monitor-CJoyZd31.js b/static/assets/Monitor-CJoyZd31.js new file mode 100644 index 0000000000000000000000000000000000000000..fb1f46b8e1f7bd6fa57f7f37d65c503c6906ed24 --- /dev/null +++ b/static/assets/Monitor-CJoyZd31.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-BGiG3-jw.js";import{d as v,o as y,c as r,a as t,b as u,t as o,u as n,F as _,r as c,n as m,f as l,e as a}from"./index-Bx7qSams.js";const h={class:"space-y-6"},k={class:"rounded-3xl border border-border bg-card p-6"},C={class:"flex flex-wrap items-center justify-between gap-3"},N={class:"mt-1 text-xs text-muted-foreground"},B={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},M={class:"mt-6 grid gap-8 md:grid-cols-2"},S={class:"monitor-card__header"},V={class:"monitor-card__name"},w={class:"monitor-card__stats"},F={class:"monitor-card__value"},L={class:"monitor-card__value"},$={class:"monitor-card__value"},j={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},U=v({__name:"Monitor",setup(A){const{services:p,updatedAt:b,errorMessage:i,refreshStatus:f}=g();return y(()=>{f()}),(D,s)=>(a(),r("div",h,[t("section",k,[t("div",C,[t("div",null,[s[0]||(s[0]=t("p",{class:"text-base font-semibold text-foreground"},"服务状态",-1)),t("p",N," 最近更新:"+o(n(b)||"未获取"),1)]),s[1]||(s[1]=t("div",{class:"flex items-center gap-2"},[t("a",{href:"/#/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"}," 打开监控页 ")],-1))]),n(i)?(a(),r("div",B,o(n(i)),1)):u("",!0),t("div",M,[(a(!0),r(_,null,c(n(p),e=>(a(),r("div",{key:e.key,class:"monitor-card"},[t("div",S,[t("span",V,o(e.name),1),t("span",{class:m(["monitor-card__badge",e.statusClass])},o(e.statusLabel),3)]),t("div",w,[t("span",null,[s[2]||(s[2]=l("可用率 ",-1)),t("span",F,o(e.uptime)+"%",1)]),t("span",null,[s[3]||(s[3]=l("请求 ",-1)),t("span",L,o(e.total),1)]),t("span",null,[s[4]||(s[4]=l("成功 ",-1)),t("span",$,o(e.success),1)])]),t("div",j,[(a(!0),r(_,null,c(e.beats,(d,x)=>(a(),r("div",{key:`${e.key}-${x}`,class:m(["monitor-beat",d.className])},[d.tooltip?(a(),r("span",z,o(d.tooltip),1)):u("",!0)],2))),128))])]))),128))])])]))}});export{U as default}; diff --git a/static/assets/Monitor-CREo18Oc.js b/static/assets/Monitor-CREo18Oc.js new file mode 100644 index 0000000000000000000000000000000000000000..0017263baa14cb9521883c7a25bcf0097ccd28bd --- /dev/null +++ b/static/assets/Monitor-CREo18Oc.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-DItohNUu.js";import{d as v,o as y,c as r,a as t,b as u,t as o,u as n,F as _,r as c,n as m,f as l,e as a}from"./index-BRM37S6x.js";const h={class:"space-y-6"},k={class:"rounded-3xl border border-border bg-card p-6"},C={class:"flex flex-wrap items-center justify-between gap-3"},N={class:"mt-1 text-xs text-muted-foreground"},B={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},M={class:"mt-6 grid gap-8 md:grid-cols-2"},S={class:"monitor-card__header"},V={class:"monitor-card__name"},w={class:"monitor-card__stats"},F={class:"monitor-card__value"},L={class:"monitor-card__value"},$={class:"monitor-card__value"},j={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},U=v({__name:"Monitor",setup(A){const{services:p,updatedAt:b,errorMessage:i,refreshStatus:f}=g();return y(()=>{f()}),(D,s)=>(a(),r("div",h,[t("section",k,[t("div",C,[t("div",null,[s[0]||(s[0]=t("p",{class:"text-base font-semibold text-foreground"},"服务状态",-1)),t("p",N," 最近更新:"+o(n(b)||"未获取"),1)]),s[1]||(s[1]=t("div",{class:"flex items-center gap-2"},[t("a",{href:"/#/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"}," 打开监控页 ")],-1))]),n(i)?(a(),r("div",B,o(n(i)),1)):u("",!0),t("div",M,[(a(!0),r(_,null,c(n(p),e=>(a(),r("div",{key:e.key,class:"monitor-card"},[t("div",S,[t("span",V,o(e.name),1),t("span",{class:m(["monitor-card__badge",e.statusClass])},o(e.statusLabel),3)]),t("div",w,[t("span",null,[s[2]||(s[2]=l("可用率 ",-1)),t("span",F,o(e.uptime)+"%",1)]),t("span",null,[s[3]||(s[3]=l("请求 ",-1)),t("span",L,o(e.total),1)]),t("span",null,[s[4]||(s[4]=l("成功 ",-1)),t("span",$,o(e.success),1)])]),t("div",j,[(a(!0),r(_,null,c(e.beats,(d,x)=>(a(),r("div",{key:`${e.key}-${x}`,class:m(["monitor-beat",d.className])},[d.tooltip?(a(),r("span",z,o(d.tooltip),1)):u("",!0)],2))),128))])]))),128))])])]))}});export{U as default}; diff --git a/static/assets/Monitor-CUrWDeEd.js b/static/assets/Monitor-CUrWDeEd.js new file mode 100644 index 0000000000000000000000000000000000000000..45d6241cc2e6191f6a0d239b8a1a186857118c9d --- /dev/null +++ b/static/assets/Monitor-CUrWDeEd.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-H8dNuGpH.js";import{d as v,o as y,c as r,a as t,b as u,t as o,u as n,F as _,r as c,n as m,f as l,e as a}from"./index-DL4Fp3an.js";const h={class:"space-y-6"},k={class:"rounded-3xl border border-border bg-card p-6"},C={class:"flex flex-wrap items-center justify-between gap-3"},N={class:"mt-1 text-xs text-muted-foreground"},B={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},M={class:"mt-6 grid gap-8 md:grid-cols-2"},S={class:"monitor-card__header"},V={class:"monitor-card__name"},w={class:"monitor-card__stats"},F={class:"monitor-card__value"},L={class:"monitor-card__value"},$={class:"monitor-card__value"},j={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},U=v({__name:"Monitor",setup(A){const{services:p,updatedAt:b,errorMessage:i,refreshStatus:f}=g();return y(()=>{f()}),(D,s)=>(a(),r("div",h,[t("section",k,[t("div",C,[t("div",null,[s[0]||(s[0]=t("p",{class:"text-base font-semibold text-foreground"},"服务状态",-1)),t("p",N," 最近更新:"+o(n(b)||"未获取"),1)]),s[1]||(s[1]=t("div",{class:"flex items-center gap-2"},[t("a",{href:"/#/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"}," 打开监控页 ")],-1))]),n(i)?(a(),r("div",B,o(n(i)),1)):u("",!0),t("div",M,[(a(!0),r(_,null,c(n(p),e=>(a(),r("div",{key:e.key,class:"monitor-card"},[t("div",S,[t("span",V,o(e.name),1),t("span",{class:m(["monitor-card__badge",e.statusClass])},o(e.statusLabel),3)]),t("div",w,[t("span",null,[s[2]||(s[2]=l("可用率 ",-1)),t("span",F,o(e.uptime)+"%",1)]),t("span",null,[s[3]||(s[3]=l("请求 ",-1)),t("span",L,o(e.total),1)]),t("span",null,[s[4]||(s[4]=l("成功 ",-1)),t("span",$,o(e.success),1)])]),t("div",j,[(a(!0),r(_,null,c(e.beats,(d,x)=>(a(),r("div",{key:`${e.key}-${x}`,class:m(["monitor-beat",d.className])},[d.tooltip?(a(),r("span",z,o(d.tooltip),1)):u("",!0)],2))),128))])]))),128))])])]))}});export{U as default}; diff --git a/static/assets/Monitor-CWUF2k9w.js b/static/assets/Monitor-CWUF2k9w.js new file mode 100644 index 0000000000000000000000000000000000000000..89822bb3d1749efe9a1105b79af0790a0ffebf4a --- /dev/null +++ b/static/assets/Monitor-CWUF2k9w.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-yHoqpTV5.js";import{d as v,o as y,c as r,a as t,b as u,t as o,u as n,F as _,r as c,n as m,f as l,e as a}from"./index-BRg_yWJl.js";const h={class:"space-y-6"},k={class:"rounded-3xl border border-border bg-card p-6"},C={class:"flex flex-wrap items-center justify-between gap-3"},N={class:"mt-1 text-xs text-muted-foreground"},B={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},M={class:"mt-6 grid gap-8 md:grid-cols-2"},S={class:"monitor-card__header"},V={class:"monitor-card__name"},w={class:"monitor-card__stats"},F={class:"monitor-card__value"},L={class:"monitor-card__value"},$={class:"monitor-card__value"},j={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},U=v({__name:"Monitor",setup(A){const{services:p,updatedAt:b,errorMessage:i,refreshStatus:f}=g();return y(()=>{f()}),(D,s)=>(a(),r("div",h,[t("section",k,[t("div",C,[t("div",null,[s[0]||(s[0]=t("p",{class:"text-base font-semibold text-foreground"},"服务状态",-1)),t("p",N," 最近更新:"+o(n(b)||"未获取"),1)]),s[1]||(s[1]=t("div",{class:"flex items-center gap-2"},[t("a",{href:"/#/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"}," 打开监控页 ")],-1))]),n(i)?(a(),r("div",B,o(n(i)),1)):u("",!0),t("div",M,[(a(!0),r(_,null,c(n(p),e=>(a(),r("div",{key:e.key,class:"monitor-card"},[t("div",S,[t("span",V,o(e.name),1),t("span",{class:m(["monitor-card__badge",e.statusClass])},o(e.statusLabel),3)]),t("div",w,[t("span",null,[s[2]||(s[2]=l("可用率 ",-1)),t("span",F,o(e.uptime)+"%",1)]),t("span",null,[s[3]||(s[3]=l("请求 ",-1)),t("span",L,o(e.total),1)]),t("span",null,[s[4]||(s[4]=l("成功 ",-1)),t("span",$,o(e.success),1)])]),t("div",j,[(a(!0),r(_,null,c(e.beats,(d,x)=>(a(),r("div",{key:`${e.key}-${x}`,class:m(["monitor-beat",d.className])},[d.tooltip?(a(),r("span",z,o(d.tooltip),1)):u("",!0)],2))),128))])]))),128))])])]))}});export{U as default}; diff --git a/static/assets/Monitor-CcBOKS6Z.js b/static/assets/Monitor-CcBOKS6Z.js new file mode 100644 index 0000000000000000000000000000000000000000..a3839c60b19df0e281fdd37ac6e5cf4c71830e18 --- /dev/null +++ b/static/assets/Monitor-CcBOKS6Z.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-DXNkogdR.js";import{d as v,o as y,c as r,a as t,b as u,t as o,u as n,F as _,r as c,n as m,f as l,e as a}from"./index-BYFRJmx0.js";const h={class:"space-y-6"},k={class:"rounded-3xl border border-border bg-card p-6"},C={class:"flex flex-wrap items-center justify-between gap-3"},N={class:"mt-1 text-xs text-muted-foreground"},B={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},M={class:"mt-6 grid gap-8 md:grid-cols-2"},S={class:"monitor-card__header"},V={class:"monitor-card__name"},w={class:"monitor-card__stats"},F={class:"monitor-card__value"},L={class:"monitor-card__value"},$={class:"monitor-card__value"},j={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},U=v({__name:"Monitor",setup(A){const{services:p,updatedAt:b,errorMessage:i,refreshStatus:f}=g();return y(()=>{f()}),(D,s)=>(a(),r("div",h,[t("section",k,[t("div",C,[t("div",null,[s[0]||(s[0]=t("p",{class:"text-base font-semibold text-foreground"},"服务状态",-1)),t("p",N," 最近更新:"+o(n(b)||"未获取"),1)]),s[1]||(s[1]=t("div",{class:"flex items-center gap-2"},[t("a",{href:"/#/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"}," 打开监控页 ")],-1))]),n(i)?(a(),r("div",B,o(n(i)),1)):u("",!0),t("div",M,[(a(!0),r(_,null,c(n(p),e=>(a(),r("div",{key:e.key,class:"monitor-card"},[t("div",S,[t("span",V,o(e.name),1),t("span",{class:m(["monitor-card__badge",e.statusClass])},o(e.statusLabel),3)]),t("div",w,[t("span",null,[s[2]||(s[2]=l("可用率 ",-1)),t("span",F,o(e.uptime)+"%",1)]),t("span",null,[s[3]||(s[3]=l("请求 ",-1)),t("span",L,o(e.total),1)]),t("span",null,[s[4]||(s[4]=l("成功 ",-1)),t("span",$,o(e.success),1)])]),t("div",j,[(a(!0),r(_,null,c(e.beats,(d,x)=>(a(),r("div",{key:`${e.key}-${x}`,class:m(["monitor-beat",d.className])},[d.tooltip?(a(),r("span",z,o(d.tooltip),1)):u("",!0)],2))),128))])]))),128))])])]))}});export{U as default}; diff --git a/static/assets/Monitor-CgM6KxNQ.js b/static/assets/Monitor-CgM6KxNQ.js new file mode 100644 index 0000000000000000000000000000000000000000..8aabce485b942229c75f5f1978d7c26ce56bff46 --- /dev/null +++ b/static/assets/Monitor-CgM6KxNQ.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-B1gVi6oM.js";import{d as v,o as y,c as r,a as t,b as u,t as o,u as n,F as _,r as c,n as m,f as l,e as a}from"./index-JaBfp01b.js";const h={class:"space-y-6"},k={class:"rounded-3xl border border-border bg-card p-6"},C={class:"flex flex-wrap items-center justify-between gap-3"},N={class:"mt-1 text-xs text-muted-foreground"},B={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},M={class:"mt-6 grid gap-8 md:grid-cols-2"},S={class:"monitor-card__header"},V={class:"monitor-card__name"},w={class:"monitor-card__stats"},F={class:"monitor-card__value"},L={class:"monitor-card__value"},$={class:"monitor-card__value"},j={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},U=v({__name:"Monitor",setup(A){const{services:p,updatedAt:b,errorMessage:i,refreshStatus:f}=g();return y(()=>{f()}),(D,s)=>(a(),r("div",h,[t("section",k,[t("div",C,[t("div",null,[s[0]||(s[0]=t("p",{class:"text-base font-semibold text-foreground"},"服务状态",-1)),t("p",N," 最近更新:"+o(n(b)||"未获取"),1)]),s[1]||(s[1]=t("div",{class:"flex items-center gap-2"},[t("a",{href:"/#/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"}," 打开监控页 ")],-1))]),n(i)?(a(),r("div",B,o(n(i)),1)):u("",!0),t("div",M,[(a(!0),r(_,null,c(n(p),e=>(a(),r("div",{key:e.key,class:"monitor-card"},[t("div",S,[t("span",V,o(e.name),1),t("span",{class:m(["monitor-card__badge",e.statusClass])},o(e.statusLabel),3)]),t("div",w,[t("span",null,[s[2]||(s[2]=l("可用率 ",-1)),t("span",F,o(e.uptime)+"%",1)]),t("span",null,[s[3]||(s[3]=l("请求 ",-1)),t("span",L,o(e.total),1)]),t("span",null,[s[4]||(s[4]=l("成功 ",-1)),t("span",$,o(e.success),1)])]),t("div",j,[(a(!0),r(_,null,c(e.beats,(d,x)=>(a(),r("div",{key:`${e.key}-${x}`,class:m(["monitor-beat",d.className])},[d.tooltip?(a(),r("span",z,o(d.tooltip),1)):u("",!0)],2))),128))])]))),128))])])]))}});export{U as default}; diff --git a/static/assets/Monitor-D2hgYhob.js b/static/assets/Monitor-D2hgYhob.js new file mode 100644 index 0000000000000000000000000000000000000000..78d1d2afeed3692530ebd8d08c44a352023b86f2 --- /dev/null +++ b/static/assets/Monitor-D2hgYhob.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-CXq4uCaj.js";import{d as v,o as y,c as r,a as t,b as u,t as o,u as n,F as _,r as c,n as m,f as l,e as a}from"./index-DhxxzIOh.js";const h={class:"space-y-6"},k={class:"rounded-3xl border border-border bg-card p-6"},C={class:"flex flex-wrap items-center justify-between gap-3"},N={class:"mt-1 text-xs text-muted-foreground"},B={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},M={class:"mt-6 grid gap-8 md:grid-cols-2"},S={class:"monitor-card__header"},V={class:"monitor-card__name"},w={class:"monitor-card__stats"},F={class:"monitor-card__value"},L={class:"monitor-card__value"},$={class:"monitor-card__value"},j={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},U=v({__name:"Monitor",setup(A){const{services:p,updatedAt:b,errorMessage:i,refreshStatus:f}=g();return y(()=>{f()}),(D,s)=>(a(),r("div",h,[t("section",k,[t("div",C,[t("div",null,[s[0]||(s[0]=t("p",{class:"text-base font-semibold text-foreground"},"服务状态",-1)),t("p",N," 最近更新:"+o(n(b)||"未获取"),1)]),s[1]||(s[1]=t("div",{class:"flex items-center gap-2"},[t("a",{href:"/#/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"}," 打开监控页 ")],-1))]),n(i)?(a(),r("div",B,o(n(i)),1)):u("",!0),t("div",M,[(a(!0),r(_,null,c(n(p),e=>(a(),r("div",{key:e.key,class:"monitor-card"},[t("div",S,[t("span",V,o(e.name),1),t("span",{class:m(["monitor-card__badge",e.statusClass])},o(e.statusLabel),3)]),t("div",w,[t("span",null,[s[2]||(s[2]=l("可用率 ",-1)),t("span",F,o(e.uptime)+"%",1)]),t("span",null,[s[3]||(s[3]=l("请求 ",-1)),t("span",L,o(e.total),1)]),t("span",null,[s[4]||(s[4]=l("成功 ",-1)),t("span",$,o(e.success),1)])]),t("div",j,[(a(!0),r(_,null,c(e.beats,(d,x)=>(a(),r("div",{key:`${e.key}-${x}`,class:m(["monitor-beat",d.className])},[d.tooltip?(a(),r("span",z,o(d.tooltip),1)):u("",!0)],2))),128))])]))),128))])])]))}});export{U as default}; diff --git a/static/assets/Monitor-DMikmVDB.js b/static/assets/Monitor-DMikmVDB.js new file mode 100644 index 0000000000000000000000000000000000000000..260d430c9c6b3ee0a0141ff1d1485056dbc83bbf --- /dev/null +++ b/static/assets/Monitor-DMikmVDB.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-Cxcf3uxZ.js";import{d as v,o as y,c as r,a as t,b as u,t as o,u as n,F as _,r as c,n as m,f as l,e as a}from"./index-Bjh6Z8Zq.js";const h={class:"space-y-6"},k={class:"rounded-3xl border border-border bg-card p-6"},C={class:"flex flex-wrap items-center justify-between gap-3"},N={class:"mt-1 text-xs text-muted-foreground"},B={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},M={class:"mt-6 grid gap-8 md:grid-cols-2"},S={class:"monitor-card__header"},V={class:"monitor-card__name"},w={class:"monitor-card__stats"},F={class:"monitor-card__value"},L={class:"monitor-card__value"},$={class:"monitor-card__value"},j={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},U=v({__name:"Monitor",setup(A){const{services:p,updatedAt:b,errorMessage:i,refreshStatus:f}=g();return y(()=>{f()}),(D,s)=>(a(),r("div",h,[t("section",k,[t("div",C,[t("div",null,[s[0]||(s[0]=t("p",{class:"text-base font-semibold text-foreground"},"服务状态",-1)),t("p",N," 最近更新:"+o(n(b)||"未获取"),1)]),s[1]||(s[1]=t("div",{class:"flex items-center gap-2"},[t("a",{href:"/#/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"}," 打开监控页 ")],-1))]),n(i)?(a(),r("div",B,o(n(i)),1)):u("",!0),t("div",M,[(a(!0),r(_,null,c(n(p),e=>(a(),r("div",{key:e.key,class:"monitor-card"},[t("div",S,[t("span",V,o(e.name),1),t("span",{class:m(["monitor-card__badge",e.statusClass])},o(e.statusLabel),3)]),t("div",w,[t("span",null,[s[2]||(s[2]=l("可用率 ",-1)),t("span",F,o(e.uptime)+"%",1)]),t("span",null,[s[3]||(s[3]=l("请求 ",-1)),t("span",L,o(e.total),1)]),t("span",null,[s[4]||(s[4]=l("成功 ",-1)),t("span",$,o(e.success),1)])]),t("div",j,[(a(!0),r(_,null,c(e.beats,(d,x)=>(a(),r("div",{key:`${e.key}-${x}`,class:m(["monitor-beat",d.className])},[d.tooltip?(a(),r("span",z,o(d.tooltip),1)):u("",!0)],2))),128))])]))),128))])])]))}});export{U as default}; diff --git a/static/assets/Monitor-DOVP9Cl6.js b/static/assets/Monitor-DOVP9Cl6.js new file mode 100644 index 0000000000000000000000000000000000000000..da0c03a2b08e8ee28d9b8c1f1ae2ce5762308dfb --- /dev/null +++ b/static/assets/Monitor-DOVP9Cl6.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-CvvhfM9c.js";import{d as v,o as y,c as r,a as t,b as u,t as o,u as n,F as _,r as c,n as m,f as l,e as a}from"./index-OP3F9IRB.js";const h={class:"space-y-6"},k={class:"rounded-3xl border border-border bg-card p-6"},C={class:"flex flex-wrap items-center justify-between gap-3"},N={class:"mt-1 text-xs text-muted-foreground"},B={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},M={class:"mt-6 grid gap-8 md:grid-cols-2"},S={class:"monitor-card__header"},V={class:"monitor-card__name"},w={class:"monitor-card__stats"},F={class:"monitor-card__value"},L={class:"monitor-card__value"},$={class:"monitor-card__value"},j={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},U=v({__name:"Monitor",setup(A){const{services:p,updatedAt:b,errorMessage:i,refreshStatus:f}=g();return y(()=>{f()}),(D,s)=>(a(),r("div",h,[t("section",k,[t("div",C,[t("div",null,[s[0]||(s[0]=t("p",{class:"text-base font-semibold text-foreground"},"服务状态",-1)),t("p",N," 最近更新:"+o(n(b)||"未获取"),1)]),s[1]||(s[1]=t("div",{class:"flex items-center gap-2"},[t("a",{href:"/#/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"}," 打开监控页 ")],-1))]),n(i)?(a(),r("div",B,o(n(i)),1)):u("",!0),t("div",M,[(a(!0),r(_,null,c(n(p),e=>(a(),r("div",{key:e.key,class:"monitor-card"},[t("div",S,[t("span",V,o(e.name),1),t("span",{class:m(["monitor-card__badge",e.statusClass])},o(e.statusLabel),3)]),t("div",w,[t("span",null,[s[2]||(s[2]=l("可用率 ",-1)),t("span",F,o(e.uptime)+"%",1)]),t("span",null,[s[3]||(s[3]=l("请求 ",-1)),t("span",L,o(e.total),1)]),t("span",null,[s[4]||(s[4]=l("成功 ",-1)),t("span",$,o(e.success),1)])]),t("div",j,[(a(!0),r(_,null,c(e.beats,(d,x)=>(a(),r("div",{key:`${e.key}-${x}`,class:m(["monitor-beat",d.className])},[d.tooltip?(a(),r("span",z,o(d.tooltip),1)):u("",!0)],2))),128))])]))),128))])])]))}});export{U as default}; diff --git a/static/assets/Monitor-DY0hrzbH.js b/static/assets/Monitor-DY0hrzbH.js new file mode 100644 index 0000000000000000000000000000000000000000..0a79ac3875dca9162fe409c44722d00a2b02577a --- /dev/null +++ b/static/assets/Monitor-DY0hrzbH.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-DtehOXTb.js";import{d as v,o as y,c as r,a as t,b as u,t as o,u as n,F as _,r as c,n as m,f as l,e as a}from"./index-DMWZCTlx.js";const h={class:"space-y-6"},k={class:"rounded-3xl border border-border bg-card p-6"},C={class:"flex flex-wrap items-center justify-between gap-3"},N={class:"mt-1 text-xs text-muted-foreground"},B={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},M={class:"mt-6 grid gap-8 md:grid-cols-2"},S={class:"monitor-card__header"},V={class:"monitor-card__name"},w={class:"monitor-card__stats"},F={class:"monitor-card__value"},L={class:"monitor-card__value"},$={class:"monitor-card__value"},j={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},U=v({__name:"Monitor",setup(A){const{services:p,updatedAt:b,errorMessage:i,refreshStatus:f}=g();return y(()=>{f()}),(D,s)=>(a(),r("div",h,[t("section",k,[t("div",C,[t("div",null,[s[0]||(s[0]=t("p",{class:"text-base font-semibold text-foreground"},"服务状态",-1)),t("p",N," 最近更新:"+o(n(b)||"未获取"),1)]),s[1]||(s[1]=t("div",{class:"flex items-center gap-2"},[t("a",{href:"/#/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"}," 打开监控页 ")],-1))]),n(i)?(a(),r("div",B,o(n(i)),1)):u("",!0),t("div",M,[(a(!0),r(_,null,c(n(p),e=>(a(),r("div",{key:e.key,class:"monitor-card"},[t("div",S,[t("span",V,o(e.name),1),t("span",{class:m(["monitor-card__badge",e.statusClass])},o(e.statusLabel),3)]),t("div",w,[t("span",null,[s[2]||(s[2]=l("可用率 ",-1)),t("span",F,o(e.uptime)+"%",1)]),t("span",null,[s[3]||(s[3]=l("请求 ",-1)),t("span",L,o(e.total),1)]),t("span",null,[s[4]||(s[4]=l("成功 ",-1)),t("span",$,o(e.success),1)])]),t("div",j,[(a(!0),r(_,null,c(e.beats,(d,x)=>(a(),r("div",{key:`${e.key}-${x}`,class:m(["monitor-beat",d.className])},[d.tooltip?(a(),r("span",z,o(d.tooltip),1)):u("",!0)],2))),128))])]))),128))])])]))}});export{U as default}; diff --git a/static/assets/Monitor-DcpsqeaS.js b/static/assets/Monitor-DcpsqeaS.js new file mode 100644 index 0000000000000000000000000000000000000000..6ea74e5bb8c19a94f6538b1c21b36bb1af6d079e --- /dev/null +++ b/static/assets/Monitor-DcpsqeaS.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-CGA8KpnU.js";import{d as v,o as y,c as r,a as t,b as u,t as o,u as n,F as _,r as c,n as m,f as l,e as a}from"./index-CM73xqTK.js";const h={class:"space-y-6"},k={class:"rounded-3xl border border-border bg-card p-6"},C={class:"flex flex-wrap items-center justify-between gap-3"},N={class:"mt-1 text-xs text-muted-foreground"},B={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},M={class:"mt-6 grid gap-8 md:grid-cols-2"},S={class:"monitor-card__header"},V={class:"monitor-card__name"},w={class:"monitor-card__stats"},F={class:"monitor-card__value"},L={class:"monitor-card__value"},$={class:"monitor-card__value"},j={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},U=v({__name:"Monitor",setup(A){const{services:p,updatedAt:b,errorMessage:i,refreshStatus:f}=g();return y(()=>{f()}),(D,s)=>(a(),r("div",h,[t("section",k,[t("div",C,[t("div",null,[s[0]||(s[0]=t("p",{class:"text-base font-semibold text-foreground"},"服务状态",-1)),t("p",N," 最近更新:"+o(n(b)||"未获取"),1)]),s[1]||(s[1]=t("div",{class:"flex items-center gap-2"},[t("a",{href:"/#/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"}," 打开监控页 ")],-1))]),n(i)?(a(),r("div",B,o(n(i)),1)):u("",!0),t("div",M,[(a(!0),r(_,null,c(n(p),e=>(a(),r("div",{key:e.key,class:"monitor-card"},[t("div",S,[t("span",V,o(e.name),1),t("span",{class:m(["monitor-card__badge",e.statusClass])},o(e.statusLabel),3)]),t("div",w,[t("span",null,[s[2]||(s[2]=l("可用率 ",-1)),t("span",F,o(e.uptime)+"%",1)]),t("span",null,[s[3]||(s[3]=l("请求 ",-1)),t("span",L,o(e.total),1)]),t("span",null,[s[4]||(s[4]=l("成功 ",-1)),t("span",$,o(e.success),1)])]),t("div",j,[(a(!0),r(_,null,c(e.beats,(d,x)=>(a(),r("div",{key:`${e.key}-${x}`,class:m(["monitor-beat",d.className])},[d.tooltip?(a(),r("span",z,o(d.tooltip),1)):u("",!0)],2))),128))])]))),128))])])]))}});export{U as default}; diff --git a/static/assets/Monitor-DlXrjsV6.js b/static/assets/Monitor-DlXrjsV6.js new file mode 100644 index 0000000000000000000000000000000000000000..b8c0f23db5143d5b1b0515148991fb0ff0b5141f --- /dev/null +++ b/static/assets/Monitor-DlXrjsV6.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-BhuHuhDk.js";import{d as v,o as y,c as r,a as t,b as u,t as o,u as n,F as _,r as c,n as m,f as l,e as a}from"./index-CDbQWWUi.js";const h={class:"space-y-6"},k={class:"rounded-3xl border border-border bg-card p-6"},C={class:"flex flex-wrap items-center justify-between gap-3"},N={class:"mt-1 text-xs text-muted-foreground"},B={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},M={class:"mt-6 grid gap-8 md:grid-cols-2"},S={class:"monitor-card__header"},V={class:"monitor-card__name"},w={class:"monitor-card__stats"},F={class:"monitor-card__value"},L={class:"monitor-card__value"},$={class:"monitor-card__value"},j={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},U=v({__name:"Monitor",setup(A){const{services:p,updatedAt:b,errorMessage:i,refreshStatus:f}=g();return y(()=>{f()}),(D,s)=>(a(),r("div",h,[t("section",k,[t("div",C,[t("div",null,[s[0]||(s[0]=t("p",{class:"text-base font-semibold text-foreground"},"服务状态",-1)),t("p",N," 最近更新:"+o(n(b)||"未获取"),1)]),s[1]||(s[1]=t("div",{class:"flex items-center gap-2"},[t("a",{href:"/#/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"}," 打开监控页 ")],-1))]),n(i)?(a(),r("div",B,o(n(i)),1)):u("",!0),t("div",M,[(a(!0),r(_,null,c(n(p),e=>(a(),r("div",{key:e.key,class:"monitor-card"},[t("div",S,[t("span",V,o(e.name),1),t("span",{class:m(["monitor-card__badge",e.statusClass])},o(e.statusLabel),3)]),t("div",w,[t("span",null,[s[2]||(s[2]=l("可用率 ",-1)),t("span",F,o(e.uptime)+"%",1)]),t("span",null,[s[3]||(s[3]=l("请求 ",-1)),t("span",L,o(e.total),1)]),t("span",null,[s[4]||(s[4]=l("成功 ",-1)),t("span",$,o(e.success),1)])]),t("div",j,[(a(!0),r(_,null,c(e.beats,(d,x)=>(a(),r("div",{key:`${e.key}-${x}`,class:m(["monitor-beat",d.className])},[d.tooltip?(a(),r("span",z,o(d.tooltip),1)):u("",!0)],2))),128))])]))),128))])])]))}});export{U as default}; diff --git a/static/assets/Monitor-DmtcAJlL.js b/static/assets/Monitor-DmtcAJlL.js new file mode 100644 index 0000000000000000000000000000000000000000..74ae2e204d5aecf75d0ff4c0bf19312809852f30 --- /dev/null +++ b/static/assets/Monitor-DmtcAJlL.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-C3HbC8Ey.js";import{d as v,o as y,c as r,a as t,b as u,t as o,u as n,F as _,r as c,n as m,f as l,e as a}from"./index-Babp7OwB.js";const h={class:"space-y-6"},k={class:"rounded-3xl border border-border bg-card p-6"},C={class:"flex flex-wrap items-center justify-between gap-3"},N={class:"mt-1 text-xs text-muted-foreground"},B={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},M={class:"mt-6 grid gap-8 md:grid-cols-2"},S={class:"monitor-card__header"},V={class:"monitor-card__name"},w={class:"monitor-card__stats"},F={class:"monitor-card__value"},L={class:"monitor-card__value"},$={class:"monitor-card__value"},j={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},U=v({__name:"Monitor",setup(A){const{services:p,updatedAt:b,errorMessage:i,refreshStatus:f}=g();return y(()=>{f()}),(D,s)=>(a(),r("div",h,[t("section",k,[t("div",C,[t("div",null,[s[0]||(s[0]=t("p",{class:"text-base font-semibold text-foreground"},"服务状态",-1)),t("p",N," 最近更新:"+o(n(b)||"未获取"),1)]),s[1]||(s[1]=t("div",{class:"flex items-center gap-2"},[t("a",{href:"/#/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"}," 打开监控页 ")],-1))]),n(i)?(a(),r("div",B,o(n(i)),1)):u("",!0),t("div",M,[(a(!0),r(_,null,c(n(p),e=>(a(),r("div",{key:e.key,class:"monitor-card"},[t("div",S,[t("span",V,o(e.name),1),t("span",{class:m(["monitor-card__badge",e.statusClass])},o(e.statusLabel),3)]),t("div",w,[t("span",null,[s[2]||(s[2]=l("可用率 ",-1)),t("span",F,o(e.uptime)+"%",1)]),t("span",null,[s[3]||(s[3]=l("请求 ",-1)),t("span",L,o(e.total),1)]),t("span",null,[s[4]||(s[4]=l("成功 ",-1)),t("span",$,o(e.success),1)])]),t("div",j,[(a(!0),r(_,null,c(e.beats,(d,x)=>(a(),r("div",{key:`${e.key}-${x}`,class:m(["monitor-beat",d.className])},[d.tooltip?(a(),r("span",z,o(d.tooltip),1)):u("",!0)],2))),128))])]))),128))])])]))}});export{U as default}; diff --git a/static/assets/Monitor-HJoAWlXV.js b/static/assets/Monitor-HJoAWlXV.js new file mode 100644 index 0000000000000000000000000000000000000000..e2f64c2ab8242524b4b900a21c9859a42d952d3e --- /dev/null +++ b/static/assets/Monitor-HJoAWlXV.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-rRrvndbO.js";import{d as v,o as y,c as r,a as t,b as u,t as o,u as n,F as _,r as c,n as m,f as l,e as a}from"./index-BIHSVHyU.js";const h={class:"space-y-6"},k={class:"rounded-3xl border border-border bg-card p-6"},C={class:"flex flex-wrap items-center justify-between gap-3"},N={class:"mt-1 text-xs text-muted-foreground"},B={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},M={class:"mt-6 grid gap-8 md:grid-cols-2"},S={class:"monitor-card__header"},V={class:"monitor-card__name"},w={class:"monitor-card__stats"},F={class:"monitor-card__value"},L={class:"monitor-card__value"},$={class:"monitor-card__value"},j={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},U=v({__name:"Monitor",setup(A){const{services:p,updatedAt:b,errorMessage:i,refreshStatus:f}=g();return y(()=>{f()}),(D,s)=>(a(),r("div",h,[t("section",k,[t("div",C,[t("div",null,[s[0]||(s[0]=t("p",{class:"text-base font-semibold text-foreground"},"服务状态",-1)),t("p",N," 最近更新:"+o(n(b)||"未获取"),1)]),s[1]||(s[1]=t("div",{class:"flex items-center gap-2"},[t("a",{href:"/#/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"}," 打开监控页 ")],-1))]),n(i)?(a(),r("div",B,o(n(i)),1)):u("",!0),t("div",M,[(a(!0),r(_,null,c(n(p),e=>(a(),r("div",{key:e.key,class:"monitor-card"},[t("div",S,[t("span",V,o(e.name),1),t("span",{class:m(["monitor-card__badge",e.statusClass])},o(e.statusLabel),3)]),t("div",w,[t("span",null,[s[2]||(s[2]=l("可用率 ",-1)),t("span",F,o(e.uptime)+"%",1)]),t("span",null,[s[3]||(s[3]=l("请求 ",-1)),t("span",L,o(e.total),1)]),t("span",null,[s[4]||(s[4]=l("成功 ",-1)),t("span",$,o(e.success),1)])]),t("div",j,[(a(!0),r(_,null,c(e.beats,(d,x)=>(a(),r("div",{key:`${e.key}-${x}`,class:m(["monitor-beat",d.className])},[d.tooltip?(a(),r("span",z,o(d.tooltip),1)):u("",!0)],2))),128))])]))),128))])])]))}});export{U as default}; diff --git a/static/assets/Monitor-I31qtw0o.js b/static/assets/Monitor-I31qtw0o.js new file mode 100644 index 0000000000000000000000000000000000000000..22d545f1ff6654cc19c97ca5b1c5f0ba5caa4cb7 --- /dev/null +++ b/static/assets/Monitor-I31qtw0o.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-W1m6nNB0.js";import{d as v,o as y,c as r,a as t,b as u,t as o,u as n,F as _,r as c,n as m,f as l,e as a}from"./index-BCQxBeUo.js";const h={class:"space-y-6"},k={class:"rounded-3xl border border-border bg-card p-6"},C={class:"flex flex-wrap items-center justify-between gap-3"},N={class:"mt-1 text-xs text-muted-foreground"},B={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},M={class:"mt-6 grid gap-8 md:grid-cols-2"},S={class:"monitor-card__header"},V={class:"monitor-card__name"},w={class:"monitor-card__stats"},F={class:"monitor-card__value"},L={class:"monitor-card__value"},$={class:"monitor-card__value"},j={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},U=v({__name:"Monitor",setup(A){const{services:p,updatedAt:b,errorMessage:i,refreshStatus:f}=g();return y(()=>{f()}),(D,s)=>(a(),r("div",h,[t("section",k,[t("div",C,[t("div",null,[s[0]||(s[0]=t("p",{class:"text-base font-semibold text-foreground"},"服务状态",-1)),t("p",N," 最近更新:"+o(n(b)||"未获取"),1)]),s[1]||(s[1]=t("div",{class:"flex items-center gap-2"},[t("a",{href:"/#/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"}," 打开监控页 ")],-1))]),n(i)?(a(),r("div",B,o(n(i)),1)):u("",!0),t("div",M,[(a(!0),r(_,null,c(n(p),e=>(a(),r("div",{key:e.key,class:"monitor-card"},[t("div",S,[t("span",V,o(e.name),1),t("span",{class:m(["monitor-card__badge",e.statusClass])},o(e.statusLabel),3)]),t("div",w,[t("span",null,[s[2]||(s[2]=l("可用率 ",-1)),t("span",F,o(e.uptime)+"%",1)]),t("span",null,[s[3]||(s[3]=l("请求 ",-1)),t("span",L,o(e.total),1)]),t("span",null,[s[4]||(s[4]=l("成功 ",-1)),t("span",$,o(e.success),1)])]),t("div",j,[(a(!0),r(_,null,c(e.beats,(d,x)=>(a(),r("div",{key:`${e.key}-${x}`,class:m(["monitor-beat",d.className])},[d.tooltip?(a(),r("span",z,o(d.tooltip),1)):u("",!0)],2))),128))])]))),128))])])]))}});export{U as default}; diff --git a/static/assets/Monitor-PELfbABr.js b/static/assets/Monitor-PELfbABr.js new file mode 100644 index 0000000000000000000000000000000000000000..a296cabea9d76c74e8be733783e67d1399a63435 --- /dev/null +++ b/static/assets/Monitor-PELfbABr.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-B8uC70p8.js";import{d as v,o as y,c as r,a as t,b as u,t as o,u as n,F as _,r as c,n as m,f as l,e as a}from"./index-Dul9zA0O.js";const h={class:"space-y-6"},k={class:"rounded-3xl border border-border bg-card p-6"},C={class:"flex flex-wrap items-center justify-between gap-3"},N={class:"mt-1 text-xs text-muted-foreground"},B={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},M={class:"mt-6 grid gap-8 md:grid-cols-2"},S={class:"monitor-card__header"},V={class:"monitor-card__name"},w={class:"monitor-card__stats"},F={class:"monitor-card__value"},L={class:"monitor-card__value"},$={class:"monitor-card__value"},j={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},U=v({__name:"Monitor",setup(A){const{services:p,updatedAt:b,errorMessage:i,refreshStatus:f}=g();return y(()=>{f()}),(D,s)=>(a(),r("div",h,[t("section",k,[t("div",C,[t("div",null,[s[0]||(s[0]=t("p",{class:"text-base font-semibold text-foreground"},"服务状态",-1)),t("p",N," 最近更新:"+o(n(b)||"未获取"),1)]),s[1]||(s[1]=t("div",{class:"flex items-center gap-2"},[t("a",{href:"/#/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"}," 打开监控页 ")],-1))]),n(i)?(a(),r("div",B,o(n(i)),1)):u("",!0),t("div",M,[(a(!0),r(_,null,c(n(p),e=>(a(),r("div",{key:e.key,class:"monitor-card"},[t("div",S,[t("span",V,o(e.name),1),t("span",{class:m(["monitor-card__badge",e.statusClass])},o(e.statusLabel),3)]),t("div",w,[t("span",null,[s[2]||(s[2]=l("可用率 ",-1)),t("span",F,o(e.uptime)+"%",1)]),t("span",null,[s[3]||(s[3]=l("请求 ",-1)),t("span",L,o(e.total),1)]),t("span",null,[s[4]||(s[4]=l("成功 ",-1)),t("span",$,o(e.success),1)])]),t("div",j,[(a(!0),r(_,null,c(e.beats,(d,x)=>(a(),r("div",{key:`${e.key}-${x}`,class:m(["monitor-beat",d.className])},[d.tooltip?(a(),r("span",z,o(d.tooltip),1)):u("",!0)],2))),128))])]))),128))])])]))}});export{U as default}; diff --git a/static/assets/Monitor-bxyFw9Hv.js b/static/assets/Monitor-bxyFw9Hv.js new file mode 100644 index 0000000000000000000000000000000000000000..ce837559928227439552d4d1943d6ea6bf211121 --- /dev/null +++ b/static/assets/Monitor-bxyFw9Hv.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-BYx1h4Ac.js";import{d as v,o as y,c as r,a as t,b as u,t as o,u as n,F as _,r as c,n as m,f as l,e as a}from"./index-4tSmcUDY.js";const h={class:"space-y-6"},k={class:"rounded-3xl border border-border bg-card p-6"},C={class:"flex flex-wrap items-center justify-between gap-3"},N={class:"mt-1 text-xs text-muted-foreground"},B={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},M={class:"mt-6 grid gap-8 md:grid-cols-2"},S={class:"monitor-card__header"},V={class:"monitor-card__name"},w={class:"monitor-card__stats"},F={class:"monitor-card__value"},L={class:"monitor-card__value"},$={class:"monitor-card__value"},j={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},U=v({__name:"Monitor",setup(A){const{services:p,updatedAt:b,errorMessage:i,refreshStatus:f}=g();return y(()=>{f()}),(D,s)=>(a(),r("div",h,[t("section",k,[t("div",C,[t("div",null,[s[0]||(s[0]=t("p",{class:"text-base font-semibold text-foreground"},"服务状态",-1)),t("p",N," 最近更新:"+o(n(b)||"未获取"),1)]),s[1]||(s[1]=t("div",{class:"flex items-center gap-2"},[t("a",{href:"/#/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"}," 打开监控页 ")],-1))]),n(i)?(a(),r("div",B,o(n(i)),1)):u("",!0),t("div",M,[(a(!0),r(_,null,c(n(p),e=>(a(),r("div",{key:e.key,class:"monitor-card"},[t("div",S,[t("span",V,o(e.name),1),t("span",{class:m(["monitor-card__badge",e.statusClass])},o(e.statusLabel),3)]),t("div",w,[t("span",null,[s[2]||(s[2]=l("可用率 ",-1)),t("span",F,o(e.uptime)+"%",1)]),t("span",null,[s[3]||(s[3]=l("请求 ",-1)),t("span",L,o(e.total),1)]),t("span",null,[s[4]||(s[4]=l("成功 ",-1)),t("span",$,o(e.success),1)])]),t("div",j,[(a(!0),r(_,null,c(e.beats,(d,x)=>(a(),r("div",{key:`${e.key}-${x}`,class:m(["monitor-beat",d.className])},[d.tooltip?(a(),r("span",z,o(d.tooltip),1)):u("",!0)],2))),128))])]))),128))])])]))}});export{U as default}; diff --git a/static/assets/Monitor-hjSJvizM.js b/static/assets/Monitor-hjSJvizM.js new file mode 100644 index 0000000000000000000000000000000000000000..05a6d9b796d279bfb6cc2dbb93b6ded8e0a32966 --- /dev/null +++ b/static/assets/Monitor-hjSJvizM.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-DFTiV01D.js";import{d as v,o as y,c as r,a as t,b as u,t as o,u as n,F as _,r as c,n as m,f as l,e as a}from"./index-Bh_hLcqi.js";const h={class:"space-y-6"},k={class:"rounded-3xl border border-border bg-card p-6"},C={class:"flex flex-wrap items-center justify-between gap-3"},N={class:"mt-1 text-xs text-muted-foreground"},B={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},M={class:"mt-6 grid gap-8 md:grid-cols-2"},S={class:"monitor-card__header"},V={class:"monitor-card__name"},w={class:"monitor-card__stats"},F={class:"monitor-card__value"},L={class:"monitor-card__value"},$={class:"monitor-card__value"},j={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},U=v({__name:"Monitor",setup(A){const{services:p,updatedAt:b,errorMessage:i,refreshStatus:f}=g();return y(()=>{f()}),(D,s)=>(a(),r("div",h,[t("section",k,[t("div",C,[t("div",null,[s[0]||(s[0]=t("p",{class:"text-base font-semibold text-foreground"},"服务状态",-1)),t("p",N," 最近更新:"+o(n(b)||"未获取"),1)]),s[1]||(s[1]=t("div",{class:"flex items-center gap-2"},[t("a",{href:"/#/public/uptime",target:"_blank",class:"rounded-full border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-primary hover:text-primary"}," 打开监控页 ")],-1))]),n(i)?(a(),r("div",B,o(n(i)),1)):u("",!0),t("div",M,[(a(!0),r(_,null,c(n(p),e=>(a(),r("div",{key:e.key,class:"monitor-card"},[t("div",S,[t("span",V,o(e.name),1),t("span",{class:m(["monitor-card__badge",e.statusClass])},o(e.statusLabel),3)]),t("div",w,[t("span",null,[s[2]||(s[2]=l("可用率 ",-1)),t("span",F,o(e.uptime)+"%",1)]),t("span",null,[s[3]||(s[3]=l("请求 ",-1)),t("span",L,o(e.total),1)]),t("span",null,[s[4]||(s[4]=l("成功 ",-1)),t("span",$,o(e.success),1)])]),t("div",j,[(a(!0),r(_,null,c(e.beats,(d,x)=>(a(),r("div",{key:`${e.key}-${x}`,class:m(["monitor-beat",d.className])},[d.tooltip?(a(),r("span",z,o(d.tooltip),1)):u("",!0)],2))),128))])]))),128))])])]))}});export{U as default}; diff --git a/static/assets/PublicLogs-AX0ic7hO.js b/static/assets/PublicLogs-AX0ic7hO.js new file mode 100644 index 0000000000000000000000000000000000000000..670ec6d4869c8fc2a8d572f8509a361969873988 --- /dev/null +++ b/static/assets/PublicLogs-AX0ic7hO.js @@ -0,0 +1 @@ +import{g as k,d as X,h as c,i,o as Y,j as Z,c as o,a as s,b as h,f as E,t as u,F as _,r as w,k as ee,n as $,e as l}from"./index-BRM37S6x.js";const te={list:C=>k.get("/public/log",{params:C})},se={overview(){return k.get("/public/stats")}},re={overview(){return k.get("/public/display")}},oe={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},le={class:"mx-auto w-full max-w-6xl min-w-0 px-4 py-8"},ae={class:"rounded-3xl border border-border bg-card p-6"},ne={class:"flex flex-wrap items-start justify-between gap-4"},ue={class:"flex items-center gap-3"},ie=["src"],ce={class:"mt-4 flex flex-wrap items-center justify-between gap-3 rounded-2xl border border-border bg-secondary/40 px-4 py-3"},de=["href"],me={key:1,class:"text-xs text-muted-foreground"},pe={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-4"},be={class:"text-[11px] text-muted-foreground"},fe={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},ve={key:1,class:"mt-4 rounded-2xl border border-border bg-secondary/30 px-4 py-6 text-center text-sm text-muted-foreground"},xe={key:2,class:"mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1 scrollbar-slim"},ge=["onClick"],ye={class:"text-muted-foreground"},he={class:"text-muted-foreground"},_e={key:0,class:"space-y-2 px-4 py-3"},we={class:"text-muted-foreground"},$e={class:"flex-1 text-foreground"},F=1e3,T=1e3,ke=3e3,Le=X({__name:"PublicLogs",setup(C){const a=c([]),p=c(null),b=c(null),d=c(""),L=c("--:--"),m=c({});let f,v=!1;const j=i(()=>b.value?.logo_url?.trim()||"/logo.svg"),S=i(()=>b.value?.chat_url?.trim()||""),U=i(()=>a.value.length),x=i(()=>a.value.filter(e=>e.status==="success").length),q=i(()=>a.value.filter(e=>e.status==="error").length),V=i(()=>a.value.length>T?a.value.slice(-T):a.value),z=i(()=>{let e=0,t=0;return a.value.forEach(r=>{r.status==="success"&&r.events.forEach(n=>{if(n.type!=="complete")return;const D=n.content.match(/([0-9]+(?:\.[0-9]+)?)\s*s/);D&&(e+=Number(D[1]),t+=1)})}),t===0?"-":`${(e/t).toFixed(1)}s`}),I=i(()=>{const e=x.value+q.value;return e===0?"-":`${(x.value/e*100).toFixed(1)}%`}),M=i(()=>[{label:"总访客",value:p.value?.total_visitors??0},{label:"每分钟请求",value:p.value?.requests_per_minute??0,color:p.value?.load_color},{label:"平均响应",value:z.value},{label:"成功率",value:I.value,color:"#10b981"},{label:"对话次数",value:U.value},{label:"成功",value:x.value,color:"#10b981"},{label:"失败",value:q.value,color:"#ef4444"},{label:"更新时间",value:L.value,color:"#6b7280"}]),P=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",G=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},J=e=>e.type==="start"?"开始对话":e.type==="select"?"选择":e.type==="retry"?"重试":e.type==="switch"?"切换":e.type==="complete"?e.status==="success"?"完成":e.status==="error"?"失败":e.status==="timeout"?"超时":"完成":"事件",O=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";if(e.type==="start")return`${t} bg-blue-100 text-blue-700`;if(e.type==="select")return`${t} bg-violet-100 text-violet-700`;if(e.type==="retry")return`${t} bg-amber-100 text-amber-700`;if(e.type==="switch")return`${t} bg-cyan-100 text-cyan-700`;if(e.type==="complete"){if(e.status==="success")return`${t} bg-emerald-100 text-emerald-700`;if(e.status==="error")return`${t} bg-rose-100 text-rose-700`;if(e.status==="timeout")return`${t} bg-amber-100 text-amber-700`}return`${t} bg-slate-100 text-slate-600`},H=()=>{try{const e=localStorage.getItem("public-log-fold-state");e&&(m.value=JSON.parse(e))}catch{m.value={}}},K=()=>{localStorage.setItem("public-log-fold-state",JSON.stringify(m.value))},g=e=>m.value[e]===!0,Q=e=>{m.value[e]=!g(e),K()},A=async()=>{if(!v){v=!0,d.value="";try{const[e,t]=await Promise.all([te.list({limit:F}),se.overview()]);a.value=e.logs,p.value=t,L.value=new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch(e){d.value=e.message||"日志加载失败"}finally{v=!1}}},W=async()=>{try{b.value=await re.overview()}catch{b.value=null}},y=()=>{f&&(window.clearTimeout(f),f=void 0)},B=()=>{document.hidden||(f=window.setTimeout(async()=>{await A(),B()},ke))},N=()=>{y(),B()},R=()=>{document.hidden?y():N()};return Y(()=>{H(),W(),A(),N(),document.addEventListener("visibilitychange",R)}),Z(()=>{y(),document.removeEventListener("visibilitychange",R)}),(e,t)=>(l(),o("div",oe,[s("div",le,[s("section",ae,[s("div",ne,[s("div",ue,[s("img",{src:j.value,alt:"Gemini Business2API",class:"h-8 w-8 object-contain"},null,8,ie),t[0]||(t[0]=s("div",null,[s("p",{class:"text-base font-semibold text-foreground"},"公开日志")],-1))]),t[1]||(t[1]=s("div",{class:"flex items-center gap-2 text-xs text-muted-foreground"},[s("span",null,"自动刷新:3s")],-1))]),s("div",ce,[s("div",{class:"text-xs text-muted-foreground"},[t[2]||(t[2]=E(" 展示最近 ",-1)),s("span",{class:"font-semibold text-foreground"},u(F)),t[3]||(t[3]=E(" 条会话日志 ",-1))]),S.value?(l(),o("a",{key:0,href:S.value,target:"_blank",class:"text-xs font-medium text-emerald-600 transition hover:text-emerald-500"}," 开始对话 ",8,de)):(l(),o("span",me,"开始对话"))]),s("div",pe,[(l(!0),o(_,null,w(M.value,r=>(l(),o("div",{key:r.label,class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},[s("div",be,u(r.label),1),s("div",{class:"mt-1 text-lg font-semibold",style:ee({color:r.color||void 0})},u(r.value),5)]))),128))]),d.value?(l(),o("div",fe,u(d.value),1)):h("",!0),a.value.length===0&&!d.value?(l(),o("div",ve," 暂无日志 ")):a.value.length>0?(l(),o("div",xe,[(l(!0),o(_,null,w(V.value,r=>(l(),o("div",{key:r.request_id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:n=>Q(r.request_id)},[s("span",{class:$(G(r.status))},u(P(r.status)),3),s("span",ye,"req_"+u(r.request_id),1),s("span",he,u(r.events.length)+" 条事件",1),s("span",{class:$(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!g(r.request_id)}])}," ▸ ",2)],8,ge),g(r.request_id)?h("",!0):(l(),o("div",_e,[(l(!0),o(_,null,w(r.events,n=>(l(),o("div",{key:`${r.request_id}-${n.time}-${n.type}`,class:"cv-auto flex flex-wrap items-center gap-3 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",we,u(n.time),1),s("span",{class:$(O(n))},u(J(n)),3),s("div",$e,u(n.content),1)]))),128))]))]))),128))])):h("",!0)])])]))}});export{Le as default}; diff --git a/static/assets/PublicLogs-B2pwR7np.js b/static/assets/PublicLogs-B2pwR7np.js new file mode 100644 index 0000000000000000000000000000000000000000..474cfec7df20452c63f54df503bf3cef7d3c0176 --- /dev/null +++ b/static/assets/PublicLogs-B2pwR7np.js @@ -0,0 +1 @@ +import{g as k,d as X,h as c,i,o as Y,j as Z,c as o,a as s,b as h,f as E,t as u,F as _,r as w,k as ee,n as $,e as l}from"./index-Babp7OwB.js";const te={list:C=>k.get("/public/log",{params:C})},se={overview(){return k.get("/public/stats")}},re={overview(){return k.get("/public/display")}},oe={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},le={class:"mx-auto w-full max-w-6xl min-w-0 px-4 py-8"},ae={class:"rounded-3xl border border-border bg-card p-6"},ne={class:"flex flex-wrap items-start justify-between gap-4"},ue={class:"flex items-center gap-3"},ie=["src"],ce={class:"mt-4 flex flex-wrap items-center justify-between gap-3 rounded-2xl border border-border bg-secondary/40 px-4 py-3"},de=["href"],me={key:1,class:"text-xs text-muted-foreground"},pe={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-4"},be={class:"text-[11px] text-muted-foreground"},fe={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},ve={key:1,class:"mt-4 rounded-2xl border border-border bg-secondary/30 px-4 py-6 text-center text-sm text-muted-foreground"},xe={key:2,class:"mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1 scrollbar-slim"},ge=["onClick"],ye={class:"text-muted-foreground"},he={class:"text-muted-foreground"},_e={key:0,class:"space-y-2 px-4 py-3"},we={class:"text-muted-foreground"},$e={class:"flex-1 text-foreground"},F=1e3,T=1e3,ke=3e3,Le=X({__name:"PublicLogs",setup(C){const a=c([]),p=c(null),b=c(null),d=c(""),L=c("--:--"),m=c({});let f,v=!1;const j=i(()=>b.value?.logo_url?.trim()||"/logo.svg"),S=i(()=>b.value?.chat_url?.trim()||""),U=i(()=>a.value.length),x=i(()=>a.value.filter(e=>e.status==="success").length),q=i(()=>a.value.filter(e=>e.status==="error").length),V=i(()=>a.value.length>T?a.value.slice(-T):a.value),z=i(()=>{let e=0,t=0;return a.value.forEach(r=>{r.status==="success"&&r.events.forEach(n=>{if(n.type!=="complete")return;const D=n.content.match(/([0-9]+(?:\.[0-9]+)?)\s*s/);D&&(e+=Number(D[1]),t+=1)})}),t===0?"-":`${(e/t).toFixed(1)}s`}),I=i(()=>{const e=x.value+q.value;return e===0?"-":`${(x.value/e*100).toFixed(1)}%`}),M=i(()=>[{label:"总访客",value:p.value?.total_visitors??0},{label:"每分钟请求",value:p.value?.requests_per_minute??0,color:p.value?.load_color},{label:"平均响应",value:z.value},{label:"成功率",value:I.value,color:"#10b981"},{label:"对话次数",value:U.value},{label:"成功",value:x.value,color:"#10b981"},{label:"失败",value:q.value,color:"#ef4444"},{label:"更新时间",value:L.value,color:"#6b7280"}]),P=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",G=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},J=e=>e.type==="start"?"开始对话":e.type==="select"?"选择":e.type==="retry"?"重试":e.type==="switch"?"切换":e.type==="complete"?e.status==="success"?"完成":e.status==="error"?"失败":e.status==="timeout"?"超时":"完成":"事件",O=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";if(e.type==="start")return`${t} bg-blue-100 text-blue-700`;if(e.type==="select")return`${t} bg-violet-100 text-violet-700`;if(e.type==="retry")return`${t} bg-amber-100 text-amber-700`;if(e.type==="switch")return`${t} bg-cyan-100 text-cyan-700`;if(e.type==="complete"){if(e.status==="success")return`${t} bg-emerald-100 text-emerald-700`;if(e.status==="error")return`${t} bg-rose-100 text-rose-700`;if(e.status==="timeout")return`${t} bg-amber-100 text-amber-700`}return`${t} bg-slate-100 text-slate-600`},H=()=>{try{const e=localStorage.getItem("public-log-fold-state");e&&(m.value=JSON.parse(e))}catch{m.value={}}},K=()=>{localStorage.setItem("public-log-fold-state",JSON.stringify(m.value))},g=e=>m.value[e]===!0,Q=e=>{m.value[e]=!g(e),K()},A=async()=>{if(!v){v=!0,d.value="";try{const[e,t]=await Promise.all([te.list({limit:F}),se.overview()]);a.value=e.logs,p.value=t,L.value=new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch(e){d.value=e.message||"日志加载失败"}finally{v=!1}}},W=async()=>{try{b.value=await re.overview()}catch{b.value=null}},y=()=>{f&&(window.clearTimeout(f),f=void 0)},B=()=>{document.hidden||(f=window.setTimeout(async()=>{await A(),B()},ke))},N=()=>{y(),B()},R=()=>{document.hidden?y():N()};return Y(()=>{H(),W(),A(),N(),document.addEventListener("visibilitychange",R)}),Z(()=>{y(),document.removeEventListener("visibilitychange",R)}),(e,t)=>(l(),o("div",oe,[s("div",le,[s("section",ae,[s("div",ne,[s("div",ue,[s("img",{src:j.value,alt:"Gemini Business2API",class:"h-8 w-8 object-contain"},null,8,ie),t[0]||(t[0]=s("div",null,[s("p",{class:"text-base font-semibold text-foreground"},"公开日志")],-1))]),t[1]||(t[1]=s("div",{class:"flex items-center gap-2 text-xs text-muted-foreground"},[s("span",null,"自动刷新:3s")],-1))]),s("div",ce,[s("div",{class:"text-xs text-muted-foreground"},[t[2]||(t[2]=E(" 展示最近 ",-1)),s("span",{class:"font-semibold text-foreground"},u(F)),t[3]||(t[3]=E(" 条会话日志 ",-1))]),S.value?(l(),o("a",{key:0,href:S.value,target:"_blank",class:"text-xs font-medium text-emerald-600 transition hover:text-emerald-500"}," 开始对话 ",8,de)):(l(),o("span",me,"开始对话"))]),s("div",pe,[(l(!0),o(_,null,w(M.value,r=>(l(),o("div",{key:r.label,class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},[s("div",be,u(r.label),1),s("div",{class:"mt-1 text-lg font-semibold",style:ee({color:r.color||void 0})},u(r.value),5)]))),128))]),d.value?(l(),o("div",fe,u(d.value),1)):h("",!0),a.value.length===0&&!d.value?(l(),o("div",ve," 暂无日志 ")):a.value.length>0?(l(),o("div",xe,[(l(!0),o(_,null,w(V.value,r=>(l(),o("div",{key:r.request_id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:n=>Q(r.request_id)},[s("span",{class:$(G(r.status))},u(P(r.status)),3),s("span",ye,"req_"+u(r.request_id),1),s("span",he,u(r.events.length)+" 条事件",1),s("span",{class:$(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!g(r.request_id)}])}," ▸ ",2)],8,ge),g(r.request_id)?h("",!0):(l(),o("div",_e,[(l(!0),o(_,null,w(r.events,n=>(l(),o("div",{key:`${r.request_id}-${n.time}-${n.type}`,class:"cv-auto flex flex-wrap items-center gap-3 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",we,u(n.time),1),s("span",{class:$(O(n))},u(J(n)),3),s("div",$e,u(n.content),1)]))),128))]))]))),128))])):h("",!0)])])]))}});export{Le as default}; diff --git a/static/assets/PublicLogs-B3ra_7d9.js b/static/assets/PublicLogs-B3ra_7d9.js new file mode 100644 index 0000000000000000000000000000000000000000..e09bf7ef9133c187630e9c45400578a35b37ce20 --- /dev/null +++ b/static/assets/PublicLogs-B3ra_7d9.js @@ -0,0 +1 @@ +import{g as k,d as X,h as c,i,o as Y,j as Z,c as o,a as s,b as h,f as E,t as u,F as _,r as w,k as ee,n as $,e as l}from"./index-Dt-VnrHx.js";const te={list:C=>k.get("/public/log",{params:C})},se={overview(){return k.get("/public/stats")}},re={overview(){return k.get("/public/display")}},oe={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},le={class:"mx-auto w-full max-w-6xl min-w-0 px-4 py-8"},ae={class:"rounded-3xl border border-border bg-card p-6"},ne={class:"flex flex-wrap items-start justify-between gap-4"},ue={class:"flex items-center gap-3"},ie=["src"],ce={class:"mt-4 flex flex-wrap items-center justify-between gap-3 rounded-2xl border border-border bg-secondary/40 px-4 py-3"},de=["href"],me={key:1,class:"text-xs text-muted-foreground"},pe={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-4"},be={class:"text-[11px] text-muted-foreground"},fe={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},ve={key:1,class:"mt-4 rounded-2xl border border-border bg-secondary/30 px-4 py-6 text-center text-sm text-muted-foreground"},xe={key:2,class:"mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1 scrollbar-slim"},ge=["onClick"],ye={class:"text-muted-foreground"},he={class:"text-muted-foreground"},_e={key:0,class:"space-y-2 px-4 py-3"},we={class:"text-muted-foreground"},$e={class:"flex-1 text-foreground"},F=1e3,T=1e3,ke=3e3,Le=X({__name:"PublicLogs",setup(C){const a=c([]),p=c(null),b=c(null),d=c(""),L=c("--:--"),m=c({});let f,v=!1;const j=i(()=>b.value?.logo_url?.trim()||"/logo.svg"),S=i(()=>b.value?.chat_url?.trim()||""),U=i(()=>a.value.length),x=i(()=>a.value.filter(e=>e.status==="success").length),q=i(()=>a.value.filter(e=>e.status==="error").length),V=i(()=>a.value.length>T?a.value.slice(-T):a.value),z=i(()=>{let e=0,t=0;return a.value.forEach(r=>{r.status==="success"&&r.events.forEach(n=>{if(n.type!=="complete")return;const D=n.content.match(/([0-9]+(?:\.[0-9]+)?)\s*s/);D&&(e+=Number(D[1]),t+=1)})}),t===0?"-":`${(e/t).toFixed(1)}s`}),I=i(()=>{const e=x.value+q.value;return e===0?"-":`${(x.value/e*100).toFixed(1)}%`}),M=i(()=>[{label:"总访客",value:p.value?.total_visitors??0},{label:"每分钟请求",value:p.value?.requests_per_minute??0,color:p.value?.load_color},{label:"平均响应",value:z.value},{label:"成功率",value:I.value,color:"#10b981"},{label:"对话次数",value:U.value},{label:"成功",value:x.value,color:"#10b981"},{label:"失败",value:q.value,color:"#ef4444"},{label:"更新时间",value:L.value,color:"#6b7280"}]),P=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",G=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},J=e=>e.type==="start"?"开始对话":e.type==="select"?"选择":e.type==="retry"?"重试":e.type==="switch"?"切换":e.type==="complete"?e.status==="success"?"完成":e.status==="error"?"失败":e.status==="timeout"?"超时":"完成":"事件",O=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";if(e.type==="start")return`${t} bg-blue-100 text-blue-700`;if(e.type==="select")return`${t} bg-violet-100 text-violet-700`;if(e.type==="retry")return`${t} bg-amber-100 text-amber-700`;if(e.type==="switch")return`${t} bg-cyan-100 text-cyan-700`;if(e.type==="complete"){if(e.status==="success")return`${t} bg-emerald-100 text-emerald-700`;if(e.status==="error")return`${t} bg-rose-100 text-rose-700`;if(e.status==="timeout")return`${t} bg-amber-100 text-amber-700`}return`${t} bg-slate-100 text-slate-600`},H=()=>{try{const e=localStorage.getItem("public-log-fold-state");e&&(m.value=JSON.parse(e))}catch{m.value={}}},K=()=>{localStorage.setItem("public-log-fold-state",JSON.stringify(m.value))},g=e=>m.value[e]===!0,Q=e=>{m.value[e]=!g(e),K()},A=async()=>{if(!v){v=!0,d.value="";try{const[e,t]=await Promise.all([te.list({limit:F}),se.overview()]);a.value=e.logs,p.value=t,L.value=new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch(e){d.value=e.message||"日志加载失败"}finally{v=!1}}},W=async()=>{try{b.value=await re.overview()}catch{b.value=null}},y=()=>{f&&(window.clearTimeout(f),f=void 0)},B=()=>{document.hidden||(f=window.setTimeout(async()=>{await A(),B()},ke))},N=()=>{y(),B()},R=()=>{document.hidden?y():N()};return Y(()=>{H(),W(),A(),N(),document.addEventListener("visibilitychange",R)}),Z(()=>{y(),document.removeEventListener("visibilitychange",R)}),(e,t)=>(l(),o("div",oe,[s("div",le,[s("section",ae,[s("div",ne,[s("div",ue,[s("img",{src:j.value,alt:"Gemini Business2API",class:"h-8 w-8 object-contain"},null,8,ie),t[0]||(t[0]=s("div",null,[s("p",{class:"text-base font-semibold text-foreground"},"公开日志")],-1))]),t[1]||(t[1]=s("div",{class:"flex items-center gap-2 text-xs text-muted-foreground"},[s("span",null,"自动刷新:3s")],-1))]),s("div",ce,[s("div",{class:"text-xs text-muted-foreground"},[t[2]||(t[2]=E(" 展示最近 ",-1)),s("span",{class:"font-semibold text-foreground"},u(F)),t[3]||(t[3]=E(" 条会话日志 ",-1))]),S.value?(l(),o("a",{key:0,href:S.value,target:"_blank",class:"text-xs font-medium text-emerald-600 transition hover:text-emerald-500"}," 开始对话 ",8,de)):(l(),o("span",me,"开始对话"))]),s("div",pe,[(l(!0),o(_,null,w(M.value,r=>(l(),o("div",{key:r.label,class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},[s("div",be,u(r.label),1),s("div",{class:"mt-1 text-lg font-semibold",style:ee({color:r.color||void 0})},u(r.value),5)]))),128))]),d.value?(l(),o("div",fe,u(d.value),1)):h("",!0),a.value.length===0&&!d.value?(l(),o("div",ve," 暂无日志 ")):a.value.length>0?(l(),o("div",xe,[(l(!0),o(_,null,w(V.value,r=>(l(),o("div",{key:r.request_id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:n=>Q(r.request_id)},[s("span",{class:$(G(r.status))},u(P(r.status)),3),s("span",ye,"req_"+u(r.request_id),1),s("span",he,u(r.events.length)+" 条事件",1),s("span",{class:$(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!g(r.request_id)}])}," ▸ ",2)],8,ge),g(r.request_id)?h("",!0):(l(),o("div",_e,[(l(!0),o(_,null,w(r.events,n=>(l(),o("div",{key:`${r.request_id}-${n.time}-${n.type}`,class:"cv-auto flex flex-wrap items-center gap-3 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",we,u(n.time),1),s("span",{class:$(O(n))},u(J(n)),3),s("div",$e,u(n.content),1)]))),128))]))]))),128))])):h("",!0)])])]))}});export{Le as default}; diff --git a/static/assets/PublicLogs-BEDbsbPT.js b/static/assets/PublicLogs-BEDbsbPT.js new file mode 100644 index 0000000000000000000000000000000000000000..7c4bf9c43f08bb2978b148648350a51ea4e53767 --- /dev/null +++ b/static/assets/PublicLogs-BEDbsbPT.js @@ -0,0 +1 @@ +import{g as k,d as X,h as c,i,o as Y,j as Z,c as o,a as s,b as h,f as E,t as u,F as _,r as w,k as ee,n as $,e as l}from"./index-Bjh6Z8Zq.js";const te={list:C=>k.get("/public/log",{params:C})},se={overview(){return k.get("/public/stats")}},re={overview(){return k.get("/public/display")}},oe={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},le={class:"mx-auto w-full max-w-6xl min-w-0 px-4 py-8"},ae={class:"rounded-3xl border border-border bg-card p-6"},ne={class:"flex flex-wrap items-start justify-between gap-4"},ue={class:"flex items-center gap-3"},ie=["src"],ce={class:"mt-4 flex flex-wrap items-center justify-between gap-3 rounded-2xl border border-border bg-secondary/40 px-4 py-3"},de=["href"],me={key:1,class:"text-xs text-muted-foreground"},pe={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-4"},be={class:"text-[11px] text-muted-foreground"},fe={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},ve={key:1,class:"mt-4 rounded-2xl border border-border bg-secondary/30 px-4 py-6 text-center text-sm text-muted-foreground"},xe={key:2,class:"mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1 scrollbar-slim"},ge=["onClick"],ye={class:"text-muted-foreground"},he={class:"text-muted-foreground"},_e={key:0,class:"space-y-2 px-4 py-3"},we={class:"text-muted-foreground"},$e={class:"flex-1 text-foreground"},F=1e3,T=1e3,ke=3e3,Le=X({__name:"PublicLogs",setup(C){const a=c([]),p=c(null),b=c(null),d=c(""),L=c("--:--"),m=c({});let f,v=!1;const j=i(()=>b.value?.logo_url?.trim()||"/logo.svg"),S=i(()=>b.value?.chat_url?.trim()||""),U=i(()=>a.value.length),x=i(()=>a.value.filter(e=>e.status==="success").length),q=i(()=>a.value.filter(e=>e.status==="error").length),V=i(()=>a.value.length>T?a.value.slice(-T):a.value),z=i(()=>{let e=0,t=0;return a.value.forEach(r=>{r.status==="success"&&r.events.forEach(n=>{if(n.type!=="complete")return;const D=n.content.match(/([0-9]+(?:\.[0-9]+)?)\s*s/);D&&(e+=Number(D[1]),t+=1)})}),t===0?"-":`${(e/t).toFixed(1)}s`}),I=i(()=>{const e=x.value+q.value;return e===0?"-":`${(x.value/e*100).toFixed(1)}%`}),M=i(()=>[{label:"总访客",value:p.value?.total_visitors??0},{label:"每分钟请求",value:p.value?.requests_per_minute??0,color:p.value?.load_color},{label:"平均响应",value:z.value},{label:"成功率",value:I.value,color:"#10b981"},{label:"对话次数",value:U.value},{label:"成功",value:x.value,color:"#10b981"},{label:"失败",value:q.value,color:"#ef4444"},{label:"更新时间",value:L.value,color:"#6b7280"}]),P=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",G=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},J=e=>e.type==="start"?"开始对话":e.type==="select"?"选择":e.type==="retry"?"重试":e.type==="switch"?"切换":e.type==="complete"?e.status==="success"?"完成":e.status==="error"?"失败":e.status==="timeout"?"超时":"完成":"事件",O=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";if(e.type==="start")return`${t} bg-blue-100 text-blue-700`;if(e.type==="select")return`${t} bg-violet-100 text-violet-700`;if(e.type==="retry")return`${t} bg-amber-100 text-amber-700`;if(e.type==="switch")return`${t} bg-cyan-100 text-cyan-700`;if(e.type==="complete"){if(e.status==="success")return`${t} bg-emerald-100 text-emerald-700`;if(e.status==="error")return`${t} bg-rose-100 text-rose-700`;if(e.status==="timeout")return`${t} bg-amber-100 text-amber-700`}return`${t} bg-slate-100 text-slate-600`},H=()=>{try{const e=localStorage.getItem("public-log-fold-state");e&&(m.value=JSON.parse(e))}catch{m.value={}}},K=()=>{localStorage.setItem("public-log-fold-state",JSON.stringify(m.value))},g=e=>m.value[e]===!0,Q=e=>{m.value[e]=!g(e),K()},A=async()=>{if(!v){v=!0,d.value="";try{const[e,t]=await Promise.all([te.list({limit:F}),se.overview()]);a.value=e.logs,p.value=t,L.value=new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch(e){d.value=e.message||"日志加载失败"}finally{v=!1}}},W=async()=>{try{b.value=await re.overview()}catch{b.value=null}},y=()=>{f&&(window.clearTimeout(f),f=void 0)},B=()=>{document.hidden||(f=window.setTimeout(async()=>{await A(),B()},ke))},N=()=>{y(),B()},R=()=>{document.hidden?y():N()};return Y(()=>{H(),W(),A(),N(),document.addEventListener("visibilitychange",R)}),Z(()=>{y(),document.removeEventListener("visibilitychange",R)}),(e,t)=>(l(),o("div",oe,[s("div",le,[s("section",ae,[s("div",ne,[s("div",ue,[s("img",{src:j.value,alt:"Gemini Business2API",class:"h-8 w-8 object-contain"},null,8,ie),t[0]||(t[0]=s("div",null,[s("p",{class:"text-base font-semibold text-foreground"},"公开日志")],-1))]),t[1]||(t[1]=s("div",{class:"flex items-center gap-2 text-xs text-muted-foreground"},[s("span",null,"自动刷新:3s")],-1))]),s("div",ce,[s("div",{class:"text-xs text-muted-foreground"},[t[2]||(t[2]=E(" 展示最近 ",-1)),s("span",{class:"font-semibold text-foreground"},u(F)),t[3]||(t[3]=E(" 条会话日志 ",-1))]),S.value?(l(),o("a",{key:0,href:S.value,target:"_blank",class:"text-xs font-medium text-emerald-600 transition hover:text-emerald-500"}," 开始对话 ",8,de)):(l(),o("span",me,"开始对话"))]),s("div",pe,[(l(!0),o(_,null,w(M.value,r=>(l(),o("div",{key:r.label,class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},[s("div",be,u(r.label),1),s("div",{class:"mt-1 text-lg font-semibold",style:ee({color:r.color||void 0})},u(r.value),5)]))),128))]),d.value?(l(),o("div",fe,u(d.value),1)):h("",!0),a.value.length===0&&!d.value?(l(),o("div",ve," 暂无日志 ")):a.value.length>0?(l(),o("div",xe,[(l(!0),o(_,null,w(V.value,r=>(l(),o("div",{key:r.request_id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:n=>Q(r.request_id)},[s("span",{class:$(G(r.status))},u(P(r.status)),3),s("span",ye,"req_"+u(r.request_id),1),s("span",he,u(r.events.length)+" 条事件",1),s("span",{class:$(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!g(r.request_id)}])}," ▸ ",2)],8,ge),g(r.request_id)?h("",!0):(l(),o("div",_e,[(l(!0),o(_,null,w(r.events,n=>(l(),o("div",{key:`${r.request_id}-${n.time}-${n.type}`,class:"cv-auto flex flex-wrap items-center gap-3 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",we,u(n.time),1),s("span",{class:$(O(n))},u(J(n)),3),s("div",$e,u(n.content),1)]))),128))]))]))),128))])):h("",!0)])])]))}});export{Le as default}; diff --git a/static/assets/PublicLogs-BTHqHSMr.js b/static/assets/PublicLogs-BTHqHSMr.js new file mode 100644 index 0000000000000000000000000000000000000000..79e60af28bc68a85d2f54a9cd1ba463fa2576a10 --- /dev/null +++ b/static/assets/PublicLogs-BTHqHSMr.js @@ -0,0 +1 @@ +import{g as k,d as X,h as c,i,o as Y,j as Z,c as o,a as s,b as h,f as E,t as u,F as _,r as w,k as ee,n as $,e as l}from"./index-CQv2QMzB.js";const te={list:C=>k.get("/public/log",{params:C})},se={overview(){return k.get("/public/stats")}},re={overview(){return k.get("/public/display")}},oe={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},le={class:"mx-auto w-full max-w-6xl min-w-0 px-4 py-8"},ae={class:"rounded-3xl border border-border bg-card p-6"},ne={class:"flex flex-wrap items-start justify-between gap-4"},ue={class:"flex items-center gap-3"},ie=["src"],ce={class:"mt-4 flex flex-wrap items-center justify-between gap-3 rounded-2xl border border-border bg-secondary/40 px-4 py-3"},de=["href"],me={key:1,class:"text-xs text-muted-foreground"},pe={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-4"},be={class:"text-[11px] text-muted-foreground"},fe={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},ve={key:1,class:"mt-4 rounded-2xl border border-border bg-secondary/30 px-4 py-6 text-center text-sm text-muted-foreground"},xe={key:2,class:"mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1 scrollbar-slim"},ge=["onClick"],ye={class:"text-muted-foreground"},he={class:"text-muted-foreground"},_e={key:0,class:"space-y-2 px-4 py-3"},we={class:"text-muted-foreground"},$e={class:"flex-1 text-foreground"},F=1e3,T=1e3,ke=3e3,Le=X({__name:"PublicLogs",setup(C){const a=c([]),p=c(null),b=c(null),d=c(""),L=c("--:--"),m=c({});let f,v=!1;const j=i(()=>b.value?.logo_url?.trim()||"/logo.svg"),S=i(()=>b.value?.chat_url?.trim()||""),U=i(()=>a.value.length),x=i(()=>a.value.filter(e=>e.status==="success").length),q=i(()=>a.value.filter(e=>e.status==="error").length),V=i(()=>a.value.length>T?a.value.slice(-T):a.value),z=i(()=>{let e=0,t=0;return a.value.forEach(r=>{r.status==="success"&&r.events.forEach(n=>{if(n.type!=="complete")return;const D=n.content.match(/([0-9]+(?:\.[0-9]+)?)\s*s/);D&&(e+=Number(D[1]),t+=1)})}),t===0?"-":`${(e/t).toFixed(1)}s`}),I=i(()=>{const e=x.value+q.value;return e===0?"-":`${(x.value/e*100).toFixed(1)}%`}),M=i(()=>[{label:"总访客",value:p.value?.total_visitors??0},{label:"每分钟请求",value:p.value?.requests_per_minute??0,color:p.value?.load_color},{label:"平均响应",value:z.value},{label:"成功率",value:I.value,color:"#10b981"},{label:"对话次数",value:U.value},{label:"成功",value:x.value,color:"#10b981"},{label:"失败",value:q.value,color:"#ef4444"},{label:"更新时间",value:L.value,color:"#6b7280"}]),P=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",G=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},J=e=>e.type==="start"?"开始对话":e.type==="select"?"选择":e.type==="retry"?"重试":e.type==="switch"?"切换":e.type==="complete"?e.status==="success"?"完成":e.status==="error"?"失败":e.status==="timeout"?"超时":"完成":"事件",O=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";if(e.type==="start")return`${t} bg-blue-100 text-blue-700`;if(e.type==="select")return`${t} bg-violet-100 text-violet-700`;if(e.type==="retry")return`${t} bg-amber-100 text-amber-700`;if(e.type==="switch")return`${t} bg-cyan-100 text-cyan-700`;if(e.type==="complete"){if(e.status==="success")return`${t} bg-emerald-100 text-emerald-700`;if(e.status==="error")return`${t} bg-rose-100 text-rose-700`;if(e.status==="timeout")return`${t} bg-amber-100 text-amber-700`}return`${t} bg-slate-100 text-slate-600`},H=()=>{try{const e=localStorage.getItem("public-log-fold-state");e&&(m.value=JSON.parse(e))}catch{m.value={}}},K=()=>{localStorage.setItem("public-log-fold-state",JSON.stringify(m.value))},g=e=>m.value[e]===!0,Q=e=>{m.value[e]=!g(e),K()},A=async()=>{if(!v){v=!0,d.value="";try{const[e,t]=await Promise.all([te.list({limit:F}),se.overview()]);a.value=e.logs,p.value=t,L.value=new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch(e){d.value=e.message||"日志加载失败"}finally{v=!1}}},W=async()=>{try{b.value=await re.overview()}catch{b.value=null}},y=()=>{f&&(window.clearTimeout(f),f=void 0)},B=()=>{document.hidden||(f=window.setTimeout(async()=>{await A(),B()},ke))},N=()=>{y(),B()},R=()=>{document.hidden?y():N()};return Y(()=>{H(),W(),A(),N(),document.addEventListener("visibilitychange",R)}),Z(()=>{y(),document.removeEventListener("visibilitychange",R)}),(e,t)=>(l(),o("div",oe,[s("div",le,[s("section",ae,[s("div",ne,[s("div",ue,[s("img",{src:j.value,alt:"Gemini Business2API",class:"h-8 w-8 object-contain"},null,8,ie),t[0]||(t[0]=s("div",null,[s("p",{class:"text-base font-semibold text-foreground"},"公开日志")],-1))]),t[1]||(t[1]=s("div",{class:"flex items-center gap-2 text-xs text-muted-foreground"},[s("span",null,"自动刷新:3s")],-1))]),s("div",ce,[s("div",{class:"text-xs text-muted-foreground"},[t[2]||(t[2]=E(" 展示最近 ",-1)),s("span",{class:"font-semibold text-foreground"},u(F)),t[3]||(t[3]=E(" 条会话日志 ",-1))]),S.value?(l(),o("a",{key:0,href:S.value,target:"_blank",class:"text-xs font-medium text-emerald-600 transition hover:text-emerald-500"}," 开始对话 ",8,de)):(l(),o("span",me,"开始对话"))]),s("div",pe,[(l(!0),o(_,null,w(M.value,r=>(l(),o("div",{key:r.label,class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},[s("div",be,u(r.label),1),s("div",{class:"mt-1 text-lg font-semibold",style:ee({color:r.color||void 0})},u(r.value),5)]))),128))]),d.value?(l(),o("div",fe,u(d.value),1)):h("",!0),a.value.length===0&&!d.value?(l(),o("div",ve," 暂无日志 ")):a.value.length>0?(l(),o("div",xe,[(l(!0),o(_,null,w(V.value,r=>(l(),o("div",{key:r.request_id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:n=>Q(r.request_id)},[s("span",{class:$(G(r.status))},u(P(r.status)),3),s("span",ye,"req_"+u(r.request_id),1),s("span",he,u(r.events.length)+" 条事件",1),s("span",{class:$(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!g(r.request_id)}])}," ▸ ",2)],8,ge),g(r.request_id)?h("",!0):(l(),o("div",_e,[(l(!0),o(_,null,w(r.events,n=>(l(),o("div",{key:`${r.request_id}-${n.time}-${n.type}`,class:"cv-auto flex flex-wrap items-center gap-3 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",we,u(n.time),1),s("span",{class:$(O(n))},u(J(n)),3),s("div",$e,u(n.content),1)]))),128))]))]))),128))])):h("",!0)])])]))}});export{Le as default}; diff --git a/static/assets/PublicLogs-BTQr1iFu.js b/static/assets/PublicLogs-BTQr1iFu.js new file mode 100644 index 0000000000000000000000000000000000000000..eccdffe6bb396fb71d5493c8723045c09606ede7 --- /dev/null +++ b/static/assets/PublicLogs-BTQr1iFu.js @@ -0,0 +1 @@ +import{g as k,d as X,h as c,i,o as Y,j as Z,c as o,a as s,b as h,f as E,t as u,F as _,r as w,k as ee,n as $,e as l}from"./index-BCQxBeUo.js";const te={list:C=>k.get("/public/log",{params:C})},se={overview(){return k.get("/public/stats")}},re={overview(){return k.get("/public/display")}},oe={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},le={class:"mx-auto w-full max-w-6xl min-w-0 px-4 py-8"},ae={class:"rounded-3xl border border-border bg-card p-6"},ne={class:"flex flex-wrap items-start justify-between gap-4"},ue={class:"flex items-center gap-3"},ie=["src"],ce={class:"mt-4 flex flex-wrap items-center justify-between gap-3 rounded-2xl border border-border bg-secondary/40 px-4 py-3"},de=["href"],me={key:1,class:"text-xs text-muted-foreground"},pe={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-4"},be={class:"text-[11px] text-muted-foreground"},fe={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},ve={key:1,class:"mt-4 rounded-2xl border border-border bg-secondary/30 px-4 py-6 text-center text-sm text-muted-foreground"},xe={key:2,class:"mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1 scrollbar-slim"},ge=["onClick"],ye={class:"text-muted-foreground"},he={class:"text-muted-foreground"},_e={key:0,class:"space-y-2 px-4 py-3"},we={class:"text-muted-foreground"},$e={class:"flex-1 text-foreground"},F=1e3,T=1e3,ke=3e3,Le=X({__name:"PublicLogs",setup(C){const a=c([]),p=c(null),b=c(null),d=c(""),L=c("--:--"),m=c({});let f,v=!1;const j=i(()=>b.value?.logo_url?.trim()||"/logo.svg"),S=i(()=>b.value?.chat_url?.trim()||""),U=i(()=>a.value.length),x=i(()=>a.value.filter(e=>e.status==="success").length),q=i(()=>a.value.filter(e=>e.status==="error").length),V=i(()=>a.value.length>T?a.value.slice(-T):a.value),z=i(()=>{let e=0,t=0;return a.value.forEach(r=>{r.status==="success"&&r.events.forEach(n=>{if(n.type!=="complete")return;const D=n.content.match(/([0-9]+(?:\.[0-9]+)?)\s*s/);D&&(e+=Number(D[1]),t+=1)})}),t===0?"-":`${(e/t).toFixed(1)}s`}),I=i(()=>{const e=x.value+q.value;return e===0?"-":`${(x.value/e*100).toFixed(1)}%`}),M=i(()=>[{label:"总访客",value:p.value?.total_visitors??0},{label:"每分钟请求",value:p.value?.requests_per_minute??0,color:p.value?.load_color},{label:"平均响应",value:z.value},{label:"成功率",value:I.value,color:"#10b981"},{label:"对话次数",value:U.value},{label:"成功",value:x.value,color:"#10b981"},{label:"失败",value:q.value,color:"#ef4444"},{label:"更新时间",value:L.value,color:"#6b7280"}]),P=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",G=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},J=e=>e.type==="start"?"开始对话":e.type==="select"?"选择":e.type==="retry"?"重试":e.type==="switch"?"切换":e.type==="complete"?e.status==="success"?"完成":e.status==="error"?"失败":e.status==="timeout"?"超时":"完成":"事件",O=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";if(e.type==="start")return`${t} bg-blue-100 text-blue-700`;if(e.type==="select")return`${t} bg-violet-100 text-violet-700`;if(e.type==="retry")return`${t} bg-amber-100 text-amber-700`;if(e.type==="switch")return`${t} bg-cyan-100 text-cyan-700`;if(e.type==="complete"){if(e.status==="success")return`${t} bg-emerald-100 text-emerald-700`;if(e.status==="error")return`${t} bg-rose-100 text-rose-700`;if(e.status==="timeout")return`${t} bg-amber-100 text-amber-700`}return`${t} bg-slate-100 text-slate-600`},H=()=>{try{const e=localStorage.getItem("public-log-fold-state");e&&(m.value=JSON.parse(e))}catch{m.value={}}},K=()=>{localStorage.setItem("public-log-fold-state",JSON.stringify(m.value))},g=e=>m.value[e]===!0,Q=e=>{m.value[e]=!g(e),K()},A=async()=>{if(!v){v=!0,d.value="";try{const[e,t]=await Promise.all([te.list({limit:F}),se.overview()]);a.value=e.logs,p.value=t,L.value=new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch(e){d.value=e.message||"日志加载失败"}finally{v=!1}}},W=async()=>{try{b.value=await re.overview()}catch{b.value=null}},y=()=>{f&&(window.clearTimeout(f),f=void 0)},B=()=>{document.hidden||(f=window.setTimeout(async()=>{await A(),B()},ke))},N=()=>{y(),B()},R=()=>{document.hidden?y():N()};return Y(()=>{H(),W(),A(),N(),document.addEventListener("visibilitychange",R)}),Z(()=>{y(),document.removeEventListener("visibilitychange",R)}),(e,t)=>(l(),o("div",oe,[s("div",le,[s("section",ae,[s("div",ne,[s("div",ue,[s("img",{src:j.value,alt:"Gemini Business2API",class:"h-8 w-8 object-contain"},null,8,ie),t[0]||(t[0]=s("div",null,[s("p",{class:"text-base font-semibold text-foreground"},"公开日志")],-1))]),t[1]||(t[1]=s("div",{class:"flex items-center gap-2 text-xs text-muted-foreground"},[s("span",null,"自动刷新:3s")],-1))]),s("div",ce,[s("div",{class:"text-xs text-muted-foreground"},[t[2]||(t[2]=E(" 展示最近 ",-1)),s("span",{class:"font-semibold text-foreground"},u(F)),t[3]||(t[3]=E(" 条会话日志 ",-1))]),S.value?(l(),o("a",{key:0,href:S.value,target:"_blank",class:"text-xs font-medium text-emerald-600 transition hover:text-emerald-500"}," 开始对话 ",8,de)):(l(),o("span",me,"开始对话"))]),s("div",pe,[(l(!0),o(_,null,w(M.value,r=>(l(),o("div",{key:r.label,class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},[s("div",be,u(r.label),1),s("div",{class:"mt-1 text-lg font-semibold",style:ee({color:r.color||void 0})},u(r.value),5)]))),128))]),d.value?(l(),o("div",fe,u(d.value),1)):h("",!0),a.value.length===0&&!d.value?(l(),o("div",ve," 暂无日志 ")):a.value.length>0?(l(),o("div",xe,[(l(!0),o(_,null,w(V.value,r=>(l(),o("div",{key:r.request_id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:n=>Q(r.request_id)},[s("span",{class:$(G(r.status))},u(P(r.status)),3),s("span",ye,"req_"+u(r.request_id),1),s("span",he,u(r.events.length)+" 条事件",1),s("span",{class:$(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!g(r.request_id)}])}," ▸ ",2)],8,ge),g(r.request_id)?h("",!0):(l(),o("div",_e,[(l(!0),o(_,null,w(r.events,n=>(l(),o("div",{key:`${r.request_id}-${n.time}-${n.type}`,class:"cv-auto flex flex-wrap items-center gap-3 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",we,u(n.time),1),s("span",{class:$(O(n))},u(J(n)),3),s("div",$e,u(n.content),1)]))),128))]))]))),128))])):h("",!0)])])]))}});export{Le as default}; diff --git a/static/assets/PublicLogs-BpmmHE3p.js b/static/assets/PublicLogs-BpmmHE3p.js new file mode 100644 index 0000000000000000000000000000000000000000..fe32f0f7a19c5d2ec0be26d78352712da4acbeec --- /dev/null +++ b/static/assets/PublicLogs-BpmmHE3p.js @@ -0,0 +1 @@ +import{g as k,d as X,h as c,i,o as Y,j as Z,c as o,a as s,b as h,f as E,t as u,F as _,r as w,k as ee,n as $,e as l}from"./index-B0A0-QFY.js";const te={list:C=>k.get("/public/log",{params:C})},se={overview(){return k.get("/public/stats")}},re={overview(){return k.get("/public/display")}},oe={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},le={class:"mx-auto w-full max-w-6xl min-w-0 px-4 py-8"},ae={class:"rounded-3xl border border-border bg-card p-6"},ne={class:"flex flex-wrap items-start justify-between gap-4"},ue={class:"flex items-center gap-3"},ie=["src"],ce={class:"mt-4 flex flex-wrap items-center justify-between gap-3 rounded-2xl border border-border bg-secondary/40 px-4 py-3"},de=["href"],me={key:1,class:"text-xs text-muted-foreground"},pe={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-4"},be={class:"text-[11px] text-muted-foreground"},fe={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},ve={key:1,class:"mt-4 rounded-2xl border border-border bg-secondary/30 px-4 py-6 text-center text-sm text-muted-foreground"},xe={key:2,class:"mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1 scrollbar-slim"},ge=["onClick"],ye={class:"text-muted-foreground"},he={class:"text-muted-foreground"},_e={key:0,class:"space-y-2 px-4 py-3"},we={class:"text-muted-foreground"},$e={class:"flex-1 text-foreground"},F=1e3,T=1e3,ke=3e3,Le=X({__name:"PublicLogs",setup(C){const a=c([]),p=c(null),b=c(null),d=c(""),L=c("--:--"),m=c({});let f,v=!1;const j=i(()=>b.value?.logo_url?.trim()||"/logo.svg"),S=i(()=>b.value?.chat_url?.trim()||""),U=i(()=>a.value.length),x=i(()=>a.value.filter(e=>e.status==="success").length),q=i(()=>a.value.filter(e=>e.status==="error").length),V=i(()=>a.value.length>T?a.value.slice(-T):a.value),z=i(()=>{let e=0,t=0;return a.value.forEach(r=>{r.status==="success"&&r.events.forEach(n=>{if(n.type!=="complete")return;const D=n.content.match(/([0-9]+(?:\.[0-9]+)?)\s*s/);D&&(e+=Number(D[1]),t+=1)})}),t===0?"-":`${(e/t).toFixed(1)}s`}),I=i(()=>{const e=x.value+q.value;return e===0?"-":`${(x.value/e*100).toFixed(1)}%`}),M=i(()=>[{label:"总访客",value:p.value?.total_visitors??0},{label:"每分钟请求",value:p.value?.requests_per_minute??0,color:p.value?.load_color},{label:"平均响应",value:z.value},{label:"成功率",value:I.value,color:"#10b981"},{label:"对话次数",value:U.value},{label:"成功",value:x.value,color:"#10b981"},{label:"失败",value:q.value,color:"#ef4444"},{label:"更新时间",value:L.value,color:"#6b7280"}]),P=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",G=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},J=e=>e.type==="start"?"开始对话":e.type==="select"?"选择":e.type==="retry"?"重试":e.type==="switch"?"切换":e.type==="complete"?e.status==="success"?"完成":e.status==="error"?"失败":e.status==="timeout"?"超时":"完成":"事件",O=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";if(e.type==="start")return`${t} bg-blue-100 text-blue-700`;if(e.type==="select")return`${t} bg-violet-100 text-violet-700`;if(e.type==="retry")return`${t} bg-amber-100 text-amber-700`;if(e.type==="switch")return`${t} bg-cyan-100 text-cyan-700`;if(e.type==="complete"){if(e.status==="success")return`${t} bg-emerald-100 text-emerald-700`;if(e.status==="error")return`${t} bg-rose-100 text-rose-700`;if(e.status==="timeout")return`${t} bg-amber-100 text-amber-700`}return`${t} bg-slate-100 text-slate-600`},H=()=>{try{const e=localStorage.getItem("public-log-fold-state");e&&(m.value=JSON.parse(e))}catch{m.value={}}},K=()=>{localStorage.setItem("public-log-fold-state",JSON.stringify(m.value))},g=e=>m.value[e]===!0,Q=e=>{m.value[e]=!g(e),K()},A=async()=>{if(!v){v=!0,d.value="";try{const[e,t]=await Promise.all([te.list({limit:F}),se.overview()]);a.value=e.logs,p.value=t,L.value=new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch(e){d.value=e.message||"日志加载失败"}finally{v=!1}}},W=async()=>{try{b.value=await re.overview()}catch{b.value=null}},y=()=>{f&&(window.clearTimeout(f),f=void 0)},B=()=>{document.hidden||(f=window.setTimeout(async()=>{await A(),B()},ke))},N=()=>{y(),B()},R=()=>{document.hidden?y():N()};return Y(()=>{H(),W(),A(),N(),document.addEventListener("visibilitychange",R)}),Z(()=>{y(),document.removeEventListener("visibilitychange",R)}),(e,t)=>(l(),o("div",oe,[s("div",le,[s("section",ae,[s("div",ne,[s("div",ue,[s("img",{src:j.value,alt:"Gemini Business2API",class:"h-8 w-8 object-contain"},null,8,ie),t[0]||(t[0]=s("div",null,[s("p",{class:"text-base font-semibold text-foreground"},"公开日志")],-1))]),t[1]||(t[1]=s("div",{class:"flex items-center gap-2 text-xs text-muted-foreground"},[s("span",null,"自动刷新:3s")],-1))]),s("div",ce,[s("div",{class:"text-xs text-muted-foreground"},[t[2]||(t[2]=E(" 展示最近 ",-1)),s("span",{class:"font-semibold text-foreground"},u(F)),t[3]||(t[3]=E(" 条会话日志 ",-1))]),S.value?(l(),o("a",{key:0,href:S.value,target:"_blank",class:"text-xs font-medium text-emerald-600 transition hover:text-emerald-500"}," 开始对话 ",8,de)):(l(),o("span",me,"开始对话"))]),s("div",pe,[(l(!0),o(_,null,w(M.value,r=>(l(),o("div",{key:r.label,class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},[s("div",be,u(r.label),1),s("div",{class:"mt-1 text-lg font-semibold",style:ee({color:r.color||void 0})},u(r.value),5)]))),128))]),d.value?(l(),o("div",fe,u(d.value),1)):h("",!0),a.value.length===0&&!d.value?(l(),o("div",ve," 暂无日志 ")):a.value.length>0?(l(),o("div",xe,[(l(!0),o(_,null,w(V.value,r=>(l(),o("div",{key:r.request_id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:n=>Q(r.request_id)},[s("span",{class:$(G(r.status))},u(P(r.status)),3),s("span",ye,"req_"+u(r.request_id),1),s("span",he,u(r.events.length)+" 条事件",1),s("span",{class:$(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!g(r.request_id)}])}," ▸ ",2)],8,ge),g(r.request_id)?h("",!0):(l(),o("div",_e,[(l(!0),o(_,null,w(r.events,n=>(l(),o("div",{key:`${r.request_id}-${n.time}-${n.type}`,class:"cv-auto flex flex-wrap items-center gap-3 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",we,u(n.time),1),s("span",{class:$(O(n))},u(J(n)),3),s("div",$e,u(n.content),1)]))),128))]))]))),128))])):h("",!0)])])]))}});export{Le as default}; diff --git a/static/assets/PublicLogs-BtimzqRs.js b/static/assets/PublicLogs-BtimzqRs.js new file mode 100644 index 0000000000000000000000000000000000000000..487370b7bf4aeb7a0978d5008410cc17d8993cec --- /dev/null +++ b/static/assets/PublicLogs-BtimzqRs.js @@ -0,0 +1 @@ +import{g as k,d as X,h as c,i,o as Y,j as Z,c as o,a as s,b as h,f as E,t as u,F as _,r as w,k as ee,n as $,e as l}from"./index-JaBfp01b.js";const te={list:C=>k.get("/public/log",{params:C})},se={overview(){return k.get("/public/stats")}},re={overview(){return k.get("/public/display")}},oe={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},le={class:"mx-auto w-full max-w-6xl min-w-0 px-4 py-8"},ae={class:"rounded-3xl border border-border bg-card p-6"},ne={class:"flex flex-wrap items-start justify-between gap-4"},ue={class:"flex items-center gap-3"},ie=["src"],ce={class:"mt-4 flex flex-wrap items-center justify-between gap-3 rounded-2xl border border-border bg-secondary/40 px-4 py-3"},de=["href"],me={key:1,class:"text-xs text-muted-foreground"},pe={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-4"},be={class:"text-[11px] text-muted-foreground"},fe={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},ve={key:1,class:"mt-4 rounded-2xl border border-border bg-secondary/30 px-4 py-6 text-center text-sm text-muted-foreground"},xe={key:2,class:"mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1 scrollbar-slim"},ge=["onClick"],ye={class:"text-muted-foreground"},he={class:"text-muted-foreground"},_e={key:0,class:"space-y-2 px-4 py-3"},we={class:"text-muted-foreground"},$e={class:"flex-1 text-foreground"},F=1e3,T=1e3,ke=3e3,Le=X({__name:"PublicLogs",setup(C){const a=c([]),p=c(null),b=c(null),d=c(""),L=c("--:--"),m=c({});let f,v=!1;const j=i(()=>b.value?.logo_url?.trim()||"/logo.svg"),S=i(()=>b.value?.chat_url?.trim()||""),U=i(()=>a.value.length),x=i(()=>a.value.filter(e=>e.status==="success").length),q=i(()=>a.value.filter(e=>e.status==="error").length),V=i(()=>a.value.length>T?a.value.slice(-T):a.value),z=i(()=>{let e=0,t=0;return a.value.forEach(r=>{r.status==="success"&&r.events.forEach(n=>{if(n.type!=="complete")return;const D=n.content.match(/([0-9]+(?:\.[0-9]+)?)\s*s/);D&&(e+=Number(D[1]),t+=1)})}),t===0?"-":`${(e/t).toFixed(1)}s`}),I=i(()=>{const e=x.value+q.value;return e===0?"-":`${(x.value/e*100).toFixed(1)}%`}),M=i(()=>[{label:"总访客",value:p.value?.total_visitors??0},{label:"每分钟请求",value:p.value?.requests_per_minute??0,color:p.value?.load_color},{label:"平均响应",value:z.value},{label:"成功率",value:I.value,color:"#10b981"},{label:"对话次数",value:U.value},{label:"成功",value:x.value,color:"#10b981"},{label:"失败",value:q.value,color:"#ef4444"},{label:"更新时间",value:L.value,color:"#6b7280"}]),P=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",G=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},J=e=>e.type==="start"?"开始对话":e.type==="select"?"选择":e.type==="retry"?"重试":e.type==="switch"?"切换":e.type==="complete"?e.status==="success"?"完成":e.status==="error"?"失败":e.status==="timeout"?"超时":"完成":"事件",O=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";if(e.type==="start")return`${t} bg-blue-100 text-blue-700`;if(e.type==="select")return`${t} bg-violet-100 text-violet-700`;if(e.type==="retry")return`${t} bg-amber-100 text-amber-700`;if(e.type==="switch")return`${t} bg-cyan-100 text-cyan-700`;if(e.type==="complete"){if(e.status==="success")return`${t} bg-emerald-100 text-emerald-700`;if(e.status==="error")return`${t} bg-rose-100 text-rose-700`;if(e.status==="timeout")return`${t} bg-amber-100 text-amber-700`}return`${t} bg-slate-100 text-slate-600`},H=()=>{try{const e=localStorage.getItem("public-log-fold-state");e&&(m.value=JSON.parse(e))}catch{m.value={}}},K=()=>{localStorage.setItem("public-log-fold-state",JSON.stringify(m.value))},g=e=>m.value[e]===!0,Q=e=>{m.value[e]=!g(e),K()},A=async()=>{if(!v){v=!0,d.value="";try{const[e,t]=await Promise.all([te.list({limit:F}),se.overview()]);a.value=e.logs,p.value=t,L.value=new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch(e){d.value=e.message||"日志加载失败"}finally{v=!1}}},W=async()=>{try{b.value=await re.overview()}catch{b.value=null}},y=()=>{f&&(window.clearTimeout(f),f=void 0)},B=()=>{document.hidden||(f=window.setTimeout(async()=>{await A(),B()},ke))},N=()=>{y(),B()},R=()=>{document.hidden?y():N()};return Y(()=>{H(),W(),A(),N(),document.addEventListener("visibilitychange",R)}),Z(()=>{y(),document.removeEventListener("visibilitychange",R)}),(e,t)=>(l(),o("div",oe,[s("div",le,[s("section",ae,[s("div",ne,[s("div",ue,[s("img",{src:j.value,alt:"Gemini Business2API",class:"h-8 w-8 object-contain"},null,8,ie),t[0]||(t[0]=s("div",null,[s("p",{class:"text-base font-semibold text-foreground"},"公开日志")],-1))]),t[1]||(t[1]=s("div",{class:"flex items-center gap-2 text-xs text-muted-foreground"},[s("span",null,"自动刷新:3s")],-1))]),s("div",ce,[s("div",{class:"text-xs text-muted-foreground"},[t[2]||(t[2]=E(" 展示最近 ",-1)),s("span",{class:"font-semibold text-foreground"},u(F)),t[3]||(t[3]=E(" 条会话日志 ",-1))]),S.value?(l(),o("a",{key:0,href:S.value,target:"_blank",class:"text-xs font-medium text-emerald-600 transition hover:text-emerald-500"}," 开始对话 ",8,de)):(l(),o("span",me,"开始对话"))]),s("div",pe,[(l(!0),o(_,null,w(M.value,r=>(l(),o("div",{key:r.label,class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},[s("div",be,u(r.label),1),s("div",{class:"mt-1 text-lg font-semibold",style:ee({color:r.color||void 0})},u(r.value),5)]))),128))]),d.value?(l(),o("div",fe,u(d.value),1)):h("",!0),a.value.length===0&&!d.value?(l(),o("div",ve," 暂无日志 ")):a.value.length>0?(l(),o("div",xe,[(l(!0),o(_,null,w(V.value,r=>(l(),o("div",{key:r.request_id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:n=>Q(r.request_id)},[s("span",{class:$(G(r.status))},u(P(r.status)),3),s("span",ye,"req_"+u(r.request_id),1),s("span",he,u(r.events.length)+" 条事件",1),s("span",{class:$(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!g(r.request_id)}])}," ▸ ",2)],8,ge),g(r.request_id)?h("",!0):(l(),o("div",_e,[(l(!0),o(_,null,w(r.events,n=>(l(),o("div",{key:`${r.request_id}-${n.time}-${n.type}`,class:"cv-auto flex flex-wrap items-center gap-3 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",we,u(n.time),1),s("span",{class:$(O(n))},u(J(n)),3),s("div",$e,u(n.content),1)]))),128))]))]))),128))])):h("",!0)])])]))}});export{Le as default}; diff --git a/static/assets/PublicLogs-C7WvVvkQ.js b/static/assets/PublicLogs-C7WvVvkQ.js new file mode 100644 index 0000000000000000000000000000000000000000..b4cbed14cff6ec23869f7a19f3f6d39ae6f12092 --- /dev/null +++ b/static/assets/PublicLogs-C7WvVvkQ.js @@ -0,0 +1 @@ +import{g as k,d as X,h as c,i,o as Y,j as Z,c as o,a as s,b as h,f as E,t as u,F as _,r as w,k as ee,n as $,e as l}from"./index-CDbQWWUi.js";const te={list:C=>k.get("/public/log",{params:C})},se={overview(){return k.get("/public/stats")}},re={overview(){return k.get("/public/display")}},oe={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},le={class:"mx-auto w-full max-w-6xl min-w-0 px-4 py-8"},ae={class:"rounded-3xl border border-border bg-card p-6"},ne={class:"flex flex-wrap items-start justify-between gap-4"},ue={class:"flex items-center gap-3"},ie=["src"],ce={class:"mt-4 flex flex-wrap items-center justify-between gap-3 rounded-2xl border border-border bg-secondary/40 px-4 py-3"},de=["href"],me={key:1,class:"text-xs text-muted-foreground"},pe={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-4"},be={class:"text-[11px] text-muted-foreground"},fe={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},ve={key:1,class:"mt-4 rounded-2xl border border-border bg-secondary/30 px-4 py-6 text-center text-sm text-muted-foreground"},xe={key:2,class:"mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1 scrollbar-slim"},ge=["onClick"],ye={class:"text-muted-foreground"},he={class:"text-muted-foreground"},_e={key:0,class:"space-y-2 px-4 py-3"},we={class:"text-muted-foreground"},$e={class:"flex-1 text-foreground"},F=1e3,T=1e3,ke=3e3,Le=X({__name:"PublicLogs",setup(C){const a=c([]),p=c(null),b=c(null),d=c(""),L=c("--:--"),m=c({});let f,v=!1;const j=i(()=>b.value?.logo_url?.trim()||"/logo.svg"),S=i(()=>b.value?.chat_url?.trim()||""),U=i(()=>a.value.length),x=i(()=>a.value.filter(e=>e.status==="success").length),q=i(()=>a.value.filter(e=>e.status==="error").length),V=i(()=>a.value.length>T?a.value.slice(-T):a.value),z=i(()=>{let e=0,t=0;return a.value.forEach(r=>{r.status==="success"&&r.events.forEach(n=>{if(n.type!=="complete")return;const D=n.content.match(/([0-9]+(?:\.[0-9]+)?)\s*s/);D&&(e+=Number(D[1]),t+=1)})}),t===0?"-":`${(e/t).toFixed(1)}s`}),I=i(()=>{const e=x.value+q.value;return e===0?"-":`${(x.value/e*100).toFixed(1)}%`}),M=i(()=>[{label:"总访客",value:p.value?.total_visitors??0},{label:"每分钟请求",value:p.value?.requests_per_minute??0,color:p.value?.load_color},{label:"平均响应",value:z.value},{label:"成功率",value:I.value,color:"#10b981"},{label:"对话次数",value:U.value},{label:"成功",value:x.value,color:"#10b981"},{label:"失败",value:q.value,color:"#ef4444"},{label:"更新时间",value:L.value,color:"#6b7280"}]),P=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",G=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},J=e=>e.type==="start"?"开始对话":e.type==="select"?"选择":e.type==="retry"?"重试":e.type==="switch"?"切换":e.type==="complete"?e.status==="success"?"完成":e.status==="error"?"失败":e.status==="timeout"?"超时":"完成":"事件",O=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";if(e.type==="start")return`${t} bg-blue-100 text-blue-700`;if(e.type==="select")return`${t} bg-violet-100 text-violet-700`;if(e.type==="retry")return`${t} bg-amber-100 text-amber-700`;if(e.type==="switch")return`${t} bg-cyan-100 text-cyan-700`;if(e.type==="complete"){if(e.status==="success")return`${t} bg-emerald-100 text-emerald-700`;if(e.status==="error")return`${t} bg-rose-100 text-rose-700`;if(e.status==="timeout")return`${t} bg-amber-100 text-amber-700`}return`${t} bg-slate-100 text-slate-600`},H=()=>{try{const e=localStorage.getItem("public-log-fold-state");e&&(m.value=JSON.parse(e))}catch{m.value={}}},K=()=>{localStorage.setItem("public-log-fold-state",JSON.stringify(m.value))},g=e=>m.value[e]===!0,Q=e=>{m.value[e]=!g(e),K()},A=async()=>{if(!v){v=!0,d.value="";try{const[e,t]=await Promise.all([te.list({limit:F}),se.overview()]);a.value=e.logs,p.value=t,L.value=new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch(e){d.value=e.message||"日志加载失败"}finally{v=!1}}},W=async()=>{try{b.value=await re.overview()}catch{b.value=null}},y=()=>{f&&(window.clearTimeout(f),f=void 0)},B=()=>{document.hidden||(f=window.setTimeout(async()=>{await A(),B()},ke))},N=()=>{y(),B()},R=()=>{document.hidden?y():N()};return Y(()=>{H(),W(),A(),N(),document.addEventListener("visibilitychange",R)}),Z(()=>{y(),document.removeEventListener("visibilitychange",R)}),(e,t)=>(l(),o("div",oe,[s("div",le,[s("section",ae,[s("div",ne,[s("div",ue,[s("img",{src:j.value,alt:"Gemini Business2API",class:"h-8 w-8 object-contain"},null,8,ie),t[0]||(t[0]=s("div",null,[s("p",{class:"text-base font-semibold text-foreground"},"公开日志")],-1))]),t[1]||(t[1]=s("div",{class:"flex items-center gap-2 text-xs text-muted-foreground"},[s("span",null,"自动刷新:3s")],-1))]),s("div",ce,[s("div",{class:"text-xs text-muted-foreground"},[t[2]||(t[2]=E(" 展示最近 ",-1)),s("span",{class:"font-semibold text-foreground"},u(F)),t[3]||(t[3]=E(" 条会话日志 ",-1))]),S.value?(l(),o("a",{key:0,href:S.value,target:"_blank",class:"text-xs font-medium text-emerald-600 transition hover:text-emerald-500"}," 开始对话 ",8,de)):(l(),o("span",me,"开始对话"))]),s("div",pe,[(l(!0),o(_,null,w(M.value,r=>(l(),o("div",{key:r.label,class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},[s("div",be,u(r.label),1),s("div",{class:"mt-1 text-lg font-semibold",style:ee({color:r.color||void 0})},u(r.value),5)]))),128))]),d.value?(l(),o("div",fe,u(d.value),1)):h("",!0),a.value.length===0&&!d.value?(l(),o("div",ve," 暂无日志 ")):a.value.length>0?(l(),o("div",xe,[(l(!0),o(_,null,w(V.value,r=>(l(),o("div",{key:r.request_id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:n=>Q(r.request_id)},[s("span",{class:$(G(r.status))},u(P(r.status)),3),s("span",ye,"req_"+u(r.request_id),1),s("span",he,u(r.events.length)+" 条事件",1),s("span",{class:$(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!g(r.request_id)}])}," ▸ ",2)],8,ge),g(r.request_id)?h("",!0):(l(),o("div",_e,[(l(!0),o(_,null,w(r.events,n=>(l(),o("div",{key:`${r.request_id}-${n.time}-${n.type}`,class:"cv-auto flex flex-wrap items-center gap-3 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",we,u(n.time),1),s("span",{class:$(O(n))},u(J(n)),3),s("div",$e,u(n.content),1)]))),128))]))]))),128))])):h("",!0)])])]))}});export{Le as default}; diff --git a/static/assets/PublicLogs-CAAuf4Bd.js b/static/assets/PublicLogs-CAAuf4Bd.js new file mode 100644 index 0000000000000000000000000000000000000000..108d33448ab76b2809edda5f4a706de5b493b39f --- /dev/null +++ b/static/assets/PublicLogs-CAAuf4Bd.js @@ -0,0 +1 @@ +import{g as k,d as X,h as c,i,o as Y,j as Z,c as o,a as s,b as h,f as E,t as u,F as _,r as w,k as ee,n as $,e as l}from"./index-BRg_yWJl.js";const te={list:C=>k.get("/public/log",{params:C})},se={overview(){return k.get("/public/stats")}},re={overview(){return k.get("/public/display")}},oe={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},le={class:"mx-auto w-full max-w-6xl min-w-0 px-4 py-8"},ae={class:"rounded-3xl border border-border bg-card p-6"},ne={class:"flex flex-wrap items-start justify-between gap-4"},ue={class:"flex items-center gap-3"},ie=["src"],ce={class:"mt-4 flex flex-wrap items-center justify-between gap-3 rounded-2xl border border-border bg-secondary/40 px-4 py-3"},de=["href"],me={key:1,class:"text-xs text-muted-foreground"},pe={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-4"},be={class:"text-[11px] text-muted-foreground"},fe={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},ve={key:1,class:"mt-4 rounded-2xl border border-border bg-secondary/30 px-4 py-6 text-center text-sm text-muted-foreground"},xe={key:2,class:"mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1 scrollbar-slim"},ge=["onClick"],ye={class:"text-muted-foreground"},he={class:"text-muted-foreground"},_e={key:0,class:"space-y-2 px-4 py-3"},we={class:"text-muted-foreground"},$e={class:"flex-1 text-foreground"},F=1e3,T=1e3,ke=3e3,Le=X({__name:"PublicLogs",setup(C){const a=c([]),p=c(null),b=c(null),d=c(""),L=c("--:--"),m=c({});let f,v=!1;const j=i(()=>b.value?.logo_url?.trim()||"/logo.svg"),S=i(()=>b.value?.chat_url?.trim()||""),U=i(()=>a.value.length),x=i(()=>a.value.filter(e=>e.status==="success").length),q=i(()=>a.value.filter(e=>e.status==="error").length),V=i(()=>a.value.length>T?a.value.slice(-T):a.value),z=i(()=>{let e=0,t=0;return a.value.forEach(r=>{r.status==="success"&&r.events.forEach(n=>{if(n.type!=="complete")return;const D=n.content.match(/([0-9]+(?:\.[0-9]+)?)\s*s/);D&&(e+=Number(D[1]),t+=1)})}),t===0?"-":`${(e/t).toFixed(1)}s`}),I=i(()=>{const e=x.value+q.value;return e===0?"-":`${(x.value/e*100).toFixed(1)}%`}),M=i(()=>[{label:"总访客",value:p.value?.total_visitors??0},{label:"每分钟请求",value:p.value?.requests_per_minute??0,color:p.value?.load_color},{label:"平均响应",value:z.value},{label:"成功率",value:I.value,color:"#10b981"},{label:"对话次数",value:U.value},{label:"成功",value:x.value,color:"#10b981"},{label:"失败",value:q.value,color:"#ef4444"},{label:"更新时间",value:L.value,color:"#6b7280"}]),P=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",G=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},J=e=>e.type==="start"?"开始对话":e.type==="select"?"选择":e.type==="retry"?"重试":e.type==="switch"?"切换":e.type==="complete"?e.status==="success"?"完成":e.status==="error"?"失败":e.status==="timeout"?"超时":"完成":"事件",O=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";if(e.type==="start")return`${t} bg-blue-100 text-blue-700`;if(e.type==="select")return`${t} bg-violet-100 text-violet-700`;if(e.type==="retry")return`${t} bg-amber-100 text-amber-700`;if(e.type==="switch")return`${t} bg-cyan-100 text-cyan-700`;if(e.type==="complete"){if(e.status==="success")return`${t} bg-emerald-100 text-emerald-700`;if(e.status==="error")return`${t} bg-rose-100 text-rose-700`;if(e.status==="timeout")return`${t} bg-amber-100 text-amber-700`}return`${t} bg-slate-100 text-slate-600`},H=()=>{try{const e=localStorage.getItem("public-log-fold-state");e&&(m.value=JSON.parse(e))}catch{m.value={}}},K=()=>{localStorage.setItem("public-log-fold-state",JSON.stringify(m.value))},g=e=>m.value[e]===!0,Q=e=>{m.value[e]=!g(e),K()},A=async()=>{if(!v){v=!0,d.value="";try{const[e,t]=await Promise.all([te.list({limit:F}),se.overview()]);a.value=e.logs,p.value=t,L.value=new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch(e){d.value=e.message||"日志加载失败"}finally{v=!1}}},W=async()=>{try{b.value=await re.overview()}catch{b.value=null}},y=()=>{f&&(window.clearTimeout(f),f=void 0)},B=()=>{document.hidden||(f=window.setTimeout(async()=>{await A(),B()},ke))},N=()=>{y(),B()},R=()=>{document.hidden?y():N()};return Y(()=>{H(),W(),A(),N(),document.addEventListener("visibilitychange",R)}),Z(()=>{y(),document.removeEventListener("visibilitychange",R)}),(e,t)=>(l(),o("div",oe,[s("div",le,[s("section",ae,[s("div",ne,[s("div",ue,[s("img",{src:j.value,alt:"Gemini Business2API",class:"h-8 w-8 object-contain"},null,8,ie),t[0]||(t[0]=s("div",null,[s("p",{class:"text-base font-semibold text-foreground"},"公开日志")],-1))]),t[1]||(t[1]=s("div",{class:"flex items-center gap-2 text-xs text-muted-foreground"},[s("span",null,"自动刷新:3s")],-1))]),s("div",ce,[s("div",{class:"text-xs text-muted-foreground"},[t[2]||(t[2]=E(" 展示最近 ",-1)),s("span",{class:"font-semibold text-foreground"},u(F)),t[3]||(t[3]=E(" 条会话日志 ",-1))]),S.value?(l(),o("a",{key:0,href:S.value,target:"_blank",class:"text-xs font-medium text-emerald-600 transition hover:text-emerald-500"}," 开始对话 ",8,de)):(l(),o("span",me,"开始对话"))]),s("div",pe,[(l(!0),o(_,null,w(M.value,r=>(l(),o("div",{key:r.label,class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},[s("div",be,u(r.label),1),s("div",{class:"mt-1 text-lg font-semibold",style:ee({color:r.color||void 0})},u(r.value),5)]))),128))]),d.value?(l(),o("div",fe,u(d.value),1)):h("",!0),a.value.length===0&&!d.value?(l(),o("div",ve," 暂无日志 ")):a.value.length>0?(l(),o("div",xe,[(l(!0),o(_,null,w(V.value,r=>(l(),o("div",{key:r.request_id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:n=>Q(r.request_id)},[s("span",{class:$(G(r.status))},u(P(r.status)),3),s("span",ye,"req_"+u(r.request_id),1),s("span",he,u(r.events.length)+" 条事件",1),s("span",{class:$(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!g(r.request_id)}])}," ▸ ",2)],8,ge),g(r.request_id)?h("",!0):(l(),o("div",_e,[(l(!0),o(_,null,w(r.events,n=>(l(),o("div",{key:`${r.request_id}-${n.time}-${n.type}`,class:"cv-auto flex flex-wrap items-center gap-3 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",we,u(n.time),1),s("span",{class:$(O(n))},u(J(n)),3),s("div",$e,u(n.content),1)]))),128))]))]))),128))])):h("",!0)])])]))}});export{Le as default}; diff --git a/static/assets/PublicLogs-CIURA4Vp.js b/static/assets/PublicLogs-CIURA4Vp.js new file mode 100644 index 0000000000000000000000000000000000000000..3f9cd2d20060751e70794225a3984eb05cbcf26e --- /dev/null +++ b/static/assets/PublicLogs-CIURA4Vp.js @@ -0,0 +1 @@ +import{g as k,d as X,h as c,i,o as Y,j as Z,c as o,a as s,b as h,f as E,t as u,F as _,r as w,k as ee,n as $,e as l}from"./index-C7QtVLks.js";const te={list:C=>k.get("/public/log",{params:C})},se={overview(){return k.get("/public/stats")}},re={overview(){return k.get("/public/display")}},oe={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},le={class:"mx-auto w-full max-w-6xl min-w-0 px-4 py-8"},ae={class:"rounded-3xl border border-border bg-card p-6"},ne={class:"flex flex-wrap items-start justify-between gap-4"},ue={class:"flex items-center gap-3"},ie=["src"],ce={class:"mt-4 flex flex-wrap items-center justify-between gap-3 rounded-2xl border border-border bg-secondary/40 px-4 py-3"},de=["href"],me={key:1,class:"text-xs text-muted-foreground"},pe={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-4"},be={class:"text-[11px] text-muted-foreground"},fe={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},ve={key:1,class:"mt-4 rounded-2xl border border-border bg-secondary/30 px-4 py-6 text-center text-sm text-muted-foreground"},xe={key:2,class:"mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1 scrollbar-slim"},ge=["onClick"],ye={class:"text-muted-foreground"},he={class:"text-muted-foreground"},_e={key:0,class:"space-y-2 px-4 py-3"},we={class:"text-muted-foreground"},$e={class:"flex-1 text-foreground"},F=1e3,T=1e3,ke=3e3,Le=X({__name:"PublicLogs",setup(C){const a=c([]),p=c(null),b=c(null),d=c(""),L=c("--:--"),m=c({});let f,v=!1;const j=i(()=>b.value?.logo_url?.trim()||"/logo.svg"),S=i(()=>b.value?.chat_url?.trim()||""),U=i(()=>a.value.length),x=i(()=>a.value.filter(e=>e.status==="success").length),q=i(()=>a.value.filter(e=>e.status==="error").length),V=i(()=>a.value.length>T?a.value.slice(-T):a.value),z=i(()=>{let e=0,t=0;return a.value.forEach(r=>{r.status==="success"&&r.events.forEach(n=>{if(n.type!=="complete")return;const D=n.content.match(/([0-9]+(?:\.[0-9]+)?)\s*s/);D&&(e+=Number(D[1]),t+=1)})}),t===0?"-":`${(e/t).toFixed(1)}s`}),I=i(()=>{const e=x.value+q.value;return e===0?"-":`${(x.value/e*100).toFixed(1)}%`}),M=i(()=>[{label:"总访客",value:p.value?.total_visitors??0},{label:"每分钟请求",value:p.value?.requests_per_minute??0,color:p.value?.load_color},{label:"平均响应",value:z.value},{label:"成功率",value:I.value,color:"#10b981"},{label:"对话次数",value:U.value},{label:"成功",value:x.value,color:"#10b981"},{label:"失败",value:q.value,color:"#ef4444"},{label:"更新时间",value:L.value,color:"#6b7280"}]),P=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",G=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},J=e=>e.type==="start"?"开始对话":e.type==="select"?"选择":e.type==="retry"?"重试":e.type==="switch"?"切换":e.type==="complete"?e.status==="success"?"完成":e.status==="error"?"失败":e.status==="timeout"?"超时":"完成":"事件",O=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";if(e.type==="start")return`${t} bg-blue-100 text-blue-700`;if(e.type==="select")return`${t} bg-violet-100 text-violet-700`;if(e.type==="retry")return`${t} bg-amber-100 text-amber-700`;if(e.type==="switch")return`${t} bg-cyan-100 text-cyan-700`;if(e.type==="complete"){if(e.status==="success")return`${t} bg-emerald-100 text-emerald-700`;if(e.status==="error")return`${t} bg-rose-100 text-rose-700`;if(e.status==="timeout")return`${t} bg-amber-100 text-amber-700`}return`${t} bg-slate-100 text-slate-600`},H=()=>{try{const e=localStorage.getItem("public-log-fold-state");e&&(m.value=JSON.parse(e))}catch{m.value={}}},K=()=>{localStorage.setItem("public-log-fold-state",JSON.stringify(m.value))},g=e=>m.value[e]===!0,Q=e=>{m.value[e]=!g(e),K()},A=async()=>{if(!v){v=!0,d.value="";try{const[e,t]=await Promise.all([te.list({limit:F}),se.overview()]);a.value=e.logs,p.value=t,L.value=new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch(e){d.value=e.message||"日志加载失败"}finally{v=!1}}},W=async()=>{try{b.value=await re.overview()}catch{b.value=null}},y=()=>{f&&(window.clearTimeout(f),f=void 0)},B=()=>{document.hidden||(f=window.setTimeout(async()=>{await A(),B()},ke))},N=()=>{y(),B()},R=()=>{document.hidden?y():N()};return Y(()=>{H(),W(),A(),N(),document.addEventListener("visibilitychange",R)}),Z(()=>{y(),document.removeEventListener("visibilitychange",R)}),(e,t)=>(l(),o("div",oe,[s("div",le,[s("section",ae,[s("div",ne,[s("div",ue,[s("img",{src:j.value,alt:"Gemini Business2API",class:"h-8 w-8 object-contain"},null,8,ie),t[0]||(t[0]=s("div",null,[s("p",{class:"text-base font-semibold text-foreground"},"公开日志")],-1))]),t[1]||(t[1]=s("div",{class:"flex items-center gap-2 text-xs text-muted-foreground"},[s("span",null,"自动刷新:3s")],-1))]),s("div",ce,[s("div",{class:"text-xs text-muted-foreground"},[t[2]||(t[2]=E(" 展示最近 ",-1)),s("span",{class:"font-semibold text-foreground"},u(F)),t[3]||(t[3]=E(" 条会话日志 ",-1))]),S.value?(l(),o("a",{key:0,href:S.value,target:"_blank",class:"text-xs font-medium text-emerald-600 transition hover:text-emerald-500"}," 开始对话 ",8,de)):(l(),o("span",me,"开始对话"))]),s("div",pe,[(l(!0),o(_,null,w(M.value,r=>(l(),o("div",{key:r.label,class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},[s("div",be,u(r.label),1),s("div",{class:"mt-1 text-lg font-semibold",style:ee({color:r.color||void 0})},u(r.value),5)]))),128))]),d.value?(l(),o("div",fe,u(d.value),1)):h("",!0),a.value.length===0&&!d.value?(l(),o("div",ve," 暂无日志 ")):a.value.length>0?(l(),o("div",xe,[(l(!0),o(_,null,w(V.value,r=>(l(),o("div",{key:r.request_id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:n=>Q(r.request_id)},[s("span",{class:$(G(r.status))},u(P(r.status)),3),s("span",ye,"req_"+u(r.request_id),1),s("span",he,u(r.events.length)+" 条事件",1),s("span",{class:$(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!g(r.request_id)}])}," ▸ ",2)],8,ge),g(r.request_id)?h("",!0):(l(),o("div",_e,[(l(!0),o(_,null,w(r.events,n=>(l(),o("div",{key:`${r.request_id}-${n.time}-${n.type}`,class:"cv-auto flex flex-wrap items-center gap-3 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",we,u(n.time),1),s("span",{class:$(O(n))},u(J(n)),3),s("div",$e,u(n.content),1)]))),128))]))]))),128))])):h("",!0)])])]))}});export{Le as default}; diff --git a/static/assets/PublicLogs-CZ7Fm9EG.js b/static/assets/PublicLogs-CZ7Fm9EG.js new file mode 100644 index 0000000000000000000000000000000000000000..40d3e6ef27c271de03a11287f48723e9ea9704c5 --- /dev/null +++ b/static/assets/PublicLogs-CZ7Fm9EG.js @@ -0,0 +1 @@ +import{g as k,d as X,h as c,i,o as Y,j as Z,c as o,a as s,b as h,f as E,t as u,F as _,r as w,k as ee,n as $,e as l}from"./index-DrM07qAY.js";const te={list:C=>k.get("/public/log",{params:C})},se={overview(){return k.get("/public/stats")}},re={overview(){return k.get("/public/display")}},oe={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},le={class:"mx-auto w-full max-w-6xl min-w-0 px-4 py-8"},ae={class:"rounded-3xl border border-border bg-card p-6"},ne={class:"flex flex-wrap items-start justify-between gap-4"},ue={class:"flex items-center gap-3"},ie=["src"],ce={class:"mt-4 flex flex-wrap items-center justify-between gap-3 rounded-2xl border border-border bg-secondary/40 px-4 py-3"},de=["href"],me={key:1,class:"text-xs text-muted-foreground"},pe={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-4"},be={class:"text-[11px] text-muted-foreground"},fe={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},ve={key:1,class:"mt-4 rounded-2xl border border-border bg-secondary/30 px-4 py-6 text-center text-sm text-muted-foreground"},xe={key:2,class:"mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1 scrollbar-slim"},ge=["onClick"],ye={class:"text-muted-foreground"},he={class:"text-muted-foreground"},_e={key:0,class:"space-y-2 px-4 py-3"},we={class:"text-muted-foreground"},$e={class:"flex-1 text-foreground"},F=1e3,T=1e3,ke=3e3,Le=X({__name:"PublicLogs",setup(C){const a=c([]),p=c(null),b=c(null),d=c(""),L=c("--:--"),m=c({});let f,v=!1;const j=i(()=>b.value?.logo_url?.trim()||"/logo.svg"),S=i(()=>b.value?.chat_url?.trim()||""),U=i(()=>a.value.length),x=i(()=>a.value.filter(e=>e.status==="success").length),q=i(()=>a.value.filter(e=>e.status==="error").length),V=i(()=>a.value.length>T?a.value.slice(-T):a.value),z=i(()=>{let e=0,t=0;return a.value.forEach(r=>{r.status==="success"&&r.events.forEach(n=>{if(n.type!=="complete")return;const D=n.content.match(/([0-9]+(?:\.[0-9]+)?)\s*s/);D&&(e+=Number(D[1]),t+=1)})}),t===0?"-":`${(e/t).toFixed(1)}s`}),I=i(()=>{const e=x.value+q.value;return e===0?"-":`${(x.value/e*100).toFixed(1)}%`}),M=i(()=>[{label:"总访客",value:p.value?.total_visitors??0},{label:"每分钟请求",value:p.value?.requests_per_minute??0,color:p.value?.load_color},{label:"平均响应",value:z.value},{label:"成功率",value:I.value,color:"#10b981"},{label:"对话次数",value:U.value},{label:"成功",value:x.value,color:"#10b981"},{label:"失败",value:q.value,color:"#ef4444"},{label:"更新时间",value:L.value,color:"#6b7280"}]),P=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",G=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},J=e=>e.type==="start"?"开始对话":e.type==="select"?"选择":e.type==="retry"?"重试":e.type==="switch"?"切换":e.type==="complete"?e.status==="success"?"完成":e.status==="error"?"失败":e.status==="timeout"?"超时":"完成":"事件",O=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";if(e.type==="start")return`${t} bg-blue-100 text-blue-700`;if(e.type==="select")return`${t} bg-violet-100 text-violet-700`;if(e.type==="retry")return`${t} bg-amber-100 text-amber-700`;if(e.type==="switch")return`${t} bg-cyan-100 text-cyan-700`;if(e.type==="complete"){if(e.status==="success")return`${t} bg-emerald-100 text-emerald-700`;if(e.status==="error")return`${t} bg-rose-100 text-rose-700`;if(e.status==="timeout")return`${t} bg-amber-100 text-amber-700`}return`${t} bg-slate-100 text-slate-600`},H=()=>{try{const e=localStorage.getItem("public-log-fold-state");e&&(m.value=JSON.parse(e))}catch{m.value={}}},K=()=>{localStorage.setItem("public-log-fold-state",JSON.stringify(m.value))},g=e=>m.value[e]===!0,Q=e=>{m.value[e]=!g(e),K()},A=async()=>{if(!v){v=!0,d.value="";try{const[e,t]=await Promise.all([te.list({limit:F}),se.overview()]);a.value=e.logs,p.value=t,L.value=new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch(e){d.value=e.message||"日志加载失败"}finally{v=!1}}},W=async()=>{try{b.value=await re.overview()}catch{b.value=null}},y=()=>{f&&(window.clearTimeout(f),f=void 0)},B=()=>{document.hidden||(f=window.setTimeout(async()=>{await A(),B()},ke))},N=()=>{y(),B()},R=()=>{document.hidden?y():N()};return Y(()=>{H(),W(),A(),N(),document.addEventListener("visibilitychange",R)}),Z(()=>{y(),document.removeEventListener("visibilitychange",R)}),(e,t)=>(l(),o("div",oe,[s("div",le,[s("section",ae,[s("div",ne,[s("div",ue,[s("img",{src:j.value,alt:"Gemini Business2API",class:"h-8 w-8 object-contain"},null,8,ie),t[0]||(t[0]=s("div",null,[s("p",{class:"text-base font-semibold text-foreground"},"公开日志")],-1))]),t[1]||(t[1]=s("div",{class:"flex items-center gap-2 text-xs text-muted-foreground"},[s("span",null,"自动刷新:3s")],-1))]),s("div",ce,[s("div",{class:"text-xs text-muted-foreground"},[t[2]||(t[2]=E(" 展示最近 ",-1)),s("span",{class:"font-semibold text-foreground"},u(F)),t[3]||(t[3]=E(" 条会话日志 ",-1))]),S.value?(l(),o("a",{key:0,href:S.value,target:"_blank",class:"text-xs font-medium text-emerald-600 transition hover:text-emerald-500"}," 开始对话 ",8,de)):(l(),o("span",me,"开始对话"))]),s("div",pe,[(l(!0),o(_,null,w(M.value,r=>(l(),o("div",{key:r.label,class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},[s("div",be,u(r.label),1),s("div",{class:"mt-1 text-lg font-semibold",style:ee({color:r.color||void 0})},u(r.value),5)]))),128))]),d.value?(l(),o("div",fe,u(d.value),1)):h("",!0),a.value.length===0&&!d.value?(l(),o("div",ve," 暂无日志 ")):a.value.length>0?(l(),o("div",xe,[(l(!0),o(_,null,w(V.value,r=>(l(),o("div",{key:r.request_id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:n=>Q(r.request_id)},[s("span",{class:$(G(r.status))},u(P(r.status)),3),s("span",ye,"req_"+u(r.request_id),1),s("span",he,u(r.events.length)+" 条事件",1),s("span",{class:$(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!g(r.request_id)}])}," ▸ ",2)],8,ge),g(r.request_id)?h("",!0):(l(),o("div",_e,[(l(!0),o(_,null,w(r.events,n=>(l(),o("div",{key:`${r.request_id}-${n.time}-${n.type}`,class:"cv-auto flex flex-wrap items-center gap-3 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",we,u(n.time),1),s("span",{class:$(O(n))},u(J(n)),3),s("div",$e,u(n.content),1)]))),128))]))]))),128))])):h("",!0)])])]))}});export{Le as default}; diff --git a/static/assets/PublicLogs-C_jd7GIk.js b/static/assets/PublicLogs-C_jd7GIk.js new file mode 100644 index 0000000000000000000000000000000000000000..ba978ed002b235c30d49b749302dc37436c37808 --- /dev/null +++ b/static/assets/PublicLogs-C_jd7GIk.js @@ -0,0 +1 @@ +import{g as k,d as X,h as c,i,o as Y,j as Z,c as o,a as s,b as h,f as E,t as u,F as _,r as w,k as ee,n as $,e as l}from"./index-BIHSVHyU.js";const te={list:C=>k.get("/public/log",{params:C})},se={overview(){return k.get("/public/stats")}},re={overview(){return k.get("/public/display")}},oe={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},le={class:"mx-auto w-full max-w-6xl min-w-0 px-4 py-8"},ae={class:"rounded-3xl border border-border bg-card p-6"},ne={class:"flex flex-wrap items-start justify-between gap-4"},ue={class:"flex items-center gap-3"},ie=["src"],ce={class:"mt-4 flex flex-wrap items-center justify-between gap-3 rounded-2xl border border-border bg-secondary/40 px-4 py-3"},de=["href"],me={key:1,class:"text-xs text-muted-foreground"},pe={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-4"},be={class:"text-[11px] text-muted-foreground"},fe={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},ve={key:1,class:"mt-4 rounded-2xl border border-border bg-secondary/30 px-4 py-6 text-center text-sm text-muted-foreground"},xe={key:2,class:"mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1 scrollbar-slim"},ge=["onClick"],ye={class:"text-muted-foreground"},he={class:"text-muted-foreground"},_e={key:0,class:"space-y-2 px-4 py-3"},we={class:"text-muted-foreground"},$e={class:"flex-1 text-foreground"},F=1e3,T=1e3,ke=3e3,Le=X({__name:"PublicLogs",setup(C){const a=c([]),p=c(null),b=c(null),d=c(""),L=c("--:--"),m=c({});let f,v=!1;const j=i(()=>b.value?.logo_url?.trim()||"/logo.svg"),S=i(()=>b.value?.chat_url?.trim()||""),U=i(()=>a.value.length),x=i(()=>a.value.filter(e=>e.status==="success").length),q=i(()=>a.value.filter(e=>e.status==="error").length),V=i(()=>a.value.length>T?a.value.slice(-T):a.value),z=i(()=>{let e=0,t=0;return a.value.forEach(r=>{r.status==="success"&&r.events.forEach(n=>{if(n.type!=="complete")return;const D=n.content.match(/([0-9]+(?:\.[0-9]+)?)\s*s/);D&&(e+=Number(D[1]),t+=1)})}),t===0?"-":`${(e/t).toFixed(1)}s`}),I=i(()=>{const e=x.value+q.value;return e===0?"-":`${(x.value/e*100).toFixed(1)}%`}),M=i(()=>[{label:"总访客",value:p.value?.total_visitors??0},{label:"每分钟请求",value:p.value?.requests_per_minute??0,color:p.value?.load_color},{label:"平均响应",value:z.value},{label:"成功率",value:I.value,color:"#10b981"},{label:"对话次数",value:U.value},{label:"成功",value:x.value,color:"#10b981"},{label:"失败",value:q.value,color:"#ef4444"},{label:"更新时间",value:L.value,color:"#6b7280"}]),P=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",G=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},J=e=>e.type==="start"?"开始对话":e.type==="select"?"选择":e.type==="retry"?"重试":e.type==="switch"?"切换":e.type==="complete"?e.status==="success"?"完成":e.status==="error"?"失败":e.status==="timeout"?"超时":"完成":"事件",O=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";if(e.type==="start")return`${t} bg-blue-100 text-blue-700`;if(e.type==="select")return`${t} bg-violet-100 text-violet-700`;if(e.type==="retry")return`${t} bg-amber-100 text-amber-700`;if(e.type==="switch")return`${t} bg-cyan-100 text-cyan-700`;if(e.type==="complete"){if(e.status==="success")return`${t} bg-emerald-100 text-emerald-700`;if(e.status==="error")return`${t} bg-rose-100 text-rose-700`;if(e.status==="timeout")return`${t} bg-amber-100 text-amber-700`}return`${t} bg-slate-100 text-slate-600`},H=()=>{try{const e=localStorage.getItem("public-log-fold-state");e&&(m.value=JSON.parse(e))}catch{m.value={}}},K=()=>{localStorage.setItem("public-log-fold-state",JSON.stringify(m.value))},g=e=>m.value[e]===!0,Q=e=>{m.value[e]=!g(e),K()},A=async()=>{if(!v){v=!0,d.value="";try{const[e,t]=await Promise.all([te.list({limit:F}),se.overview()]);a.value=e.logs,p.value=t,L.value=new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch(e){d.value=e.message||"日志加载失败"}finally{v=!1}}},W=async()=>{try{b.value=await re.overview()}catch{b.value=null}},y=()=>{f&&(window.clearTimeout(f),f=void 0)},B=()=>{document.hidden||(f=window.setTimeout(async()=>{await A(),B()},ke))},N=()=>{y(),B()},R=()=>{document.hidden?y():N()};return Y(()=>{H(),W(),A(),N(),document.addEventListener("visibilitychange",R)}),Z(()=>{y(),document.removeEventListener("visibilitychange",R)}),(e,t)=>(l(),o("div",oe,[s("div",le,[s("section",ae,[s("div",ne,[s("div",ue,[s("img",{src:j.value,alt:"Gemini Business2API",class:"h-8 w-8 object-contain"},null,8,ie),t[0]||(t[0]=s("div",null,[s("p",{class:"text-base font-semibold text-foreground"},"公开日志")],-1))]),t[1]||(t[1]=s("div",{class:"flex items-center gap-2 text-xs text-muted-foreground"},[s("span",null,"自动刷新:3s")],-1))]),s("div",ce,[s("div",{class:"text-xs text-muted-foreground"},[t[2]||(t[2]=E(" 展示最近 ",-1)),s("span",{class:"font-semibold text-foreground"},u(F)),t[3]||(t[3]=E(" 条会话日志 ",-1))]),S.value?(l(),o("a",{key:0,href:S.value,target:"_blank",class:"text-xs font-medium text-emerald-600 transition hover:text-emerald-500"}," 开始对话 ",8,de)):(l(),o("span",me,"开始对话"))]),s("div",pe,[(l(!0),o(_,null,w(M.value,r=>(l(),o("div",{key:r.label,class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},[s("div",be,u(r.label),1),s("div",{class:"mt-1 text-lg font-semibold",style:ee({color:r.color||void 0})},u(r.value),5)]))),128))]),d.value?(l(),o("div",fe,u(d.value),1)):h("",!0),a.value.length===0&&!d.value?(l(),o("div",ve," 暂无日志 ")):a.value.length>0?(l(),o("div",xe,[(l(!0),o(_,null,w(V.value,r=>(l(),o("div",{key:r.request_id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:n=>Q(r.request_id)},[s("span",{class:$(G(r.status))},u(P(r.status)),3),s("span",ye,"req_"+u(r.request_id),1),s("span",he,u(r.events.length)+" 条事件",1),s("span",{class:$(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!g(r.request_id)}])}," ▸ ",2)],8,ge),g(r.request_id)?h("",!0):(l(),o("div",_e,[(l(!0),o(_,null,w(r.events,n=>(l(),o("div",{key:`${r.request_id}-${n.time}-${n.type}`,class:"cv-auto flex flex-wrap items-center gap-3 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",we,u(n.time),1),s("span",{class:$(O(n))},u(J(n)),3),s("div",$e,u(n.content),1)]))),128))]))]))),128))])):h("",!0)])])]))}});export{Le as default}; diff --git a/static/assets/PublicLogs-Cb76bLb8.js b/static/assets/PublicLogs-Cb76bLb8.js new file mode 100644 index 0000000000000000000000000000000000000000..957b3bd560060d05623eb1eb623c1cfeb3b9ffbc --- /dev/null +++ b/static/assets/PublicLogs-Cb76bLb8.js @@ -0,0 +1 @@ +import{g as k,d as X,h as c,i,o as Y,j as Z,c as o,a as s,b as h,f as E,t as u,F as _,r as w,k as ee,n as $,e as l}from"./index-C4edAQLF.js";const te={list:C=>k.get("/public/log",{params:C})},se={overview(){return k.get("/public/stats")}},re={overview(){return k.get("/public/display")}},oe={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},le={class:"mx-auto w-full max-w-6xl min-w-0 px-4 py-8"},ae={class:"rounded-3xl border border-border bg-card p-6"},ne={class:"flex flex-wrap items-start justify-between gap-4"},ue={class:"flex items-center gap-3"},ie=["src"],ce={class:"mt-4 flex flex-wrap items-center justify-between gap-3 rounded-2xl border border-border bg-secondary/40 px-4 py-3"},de=["href"],me={key:1,class:"text-xs text-muted-foreground"},pe={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-4"},be={class:"text-[11px] text-muted-foreground"},fe={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},ve={key:1,class:"mt-4 rounded-2xl border border-border bg-secondary/30 px-4 py-6 text-center text-sm text-muted-foreground"},xe={key:2,class:"mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1 scrollbar-slim"},ge=["onClick"],ye={class:"text-muted-foreground"},he={class:"text-muted-foreground"},_e={key:0,class:"space-y-2 px-4 py-3"},we={class:"text-muted-foreground"},$e={class:"flex-1 text-foreground"},F=1e3,T=1e3,ke=3e3,Le=X({__name:"PublicLogs",setup(C){const a=c([]),p=c(null),b=c(null),d=c(""),L=c("--:--"),m=c({});let f,v=!1;const j=i(()=>b.value?.logo_url?.trim()||"/logo.svg"),S=i(()=>b.value?.chat_url?.trim()||""),U=i(()=>a.value.length),x=i(()=>a.value.filter(e=>e.status==="success").length),q=i(()=>a.value.filter(e=>e.status==="error").length),V=i(()=>a.value.length>T?a.value.slice(-T):a.value),z=i(()=>{let e=0,t=0;return a.value.forEach(r=>{r.status==="success"&&r.events.forEach(n=>{if(n.type!=="complete")return;const D=n.content.match(/([0-9]+(?:\.[0-9]+)?)\s*s/);D&&(e+=Number(D[1]),t+=1)})}),t===0?"-":`${(e/t).toFixed(1)}s`}),I=i(()=>{const e=x.value+q.value;return e===0?"-":`${(x.value/e*100).toFixed(1)}%`}),M=i(()=>[{label:"总访客",value:p.value?.total_visitors??0},{label:"每分钟请求",value:p.value?.requests_per_minute??0,color:p.value?.load_color},{label:"平均响应",value:z.value},{label:"成功率",value:I.value,color:"#10b981"},{label:"对话次数",value:U.value},{label:"成功",value:x.value,color:"#10b981"},{label:"失败",value:q.value,color:"#ef4444"},{label:"更新时间",value:L.value,color:"#6b7280"}]),P=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",G=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},J=e=>e.type==="start"?"开始对话":e.type==="select"?"选择":e.type==="retry"?"重试":e.type==="switch"?"切换":e.type==="complete"?e.status==="success"?"完成":e.status==="error"?"失败":e.status==="timeout"?"超时":"完成":"事件",O=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";if(e.type==="start")return`${t} bg-blue-100 text-blue-700`;if(e.type==="select")return`${t} bg-violet-100 text-violet-700`;if(e.type==="retry")return`${t} bg-amber-100 text-amber-700`;if(e.type==="switch")return`${t} bg-cyan-100 text-cyan-700`;if(e.type==="complete"){if(e.status==="success")return`${t} bg-emerald-100 text-emerald-700`;if(e.status==="error")return`${t} bg-rose-100 text-rose-700`;if(e.status==="timeout")return`${t} bg-amber-100 text-amber-700`}return`${t} bg-slate-100 text-slate-600`},H=()=>{try{const e=localStorage.getItem("public-log-fold-state");e&&(m.value=JSON.parse(e))}catch{m.value={}}},K=()=>{localStorage.setItem("public-log-fold-state",JSON.stringify(m.value))},g=e=>m.value[e]===!0,Q=e=>{m.value[e]=!g(e),K()},A=async()=>{if(!v){v=!0,d.value="";try{const[e,t]=await Promise.all([te.list({limit:F}),se.overview()]);a.value=e.logs,p.value=t,L.value=new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch(e){d.value=e.message||"日志加载失败"}finally{v=!1}}},W=async()=>{try{b.value=await re.overview()}catch{b.value=null}},y=()=>{f&&(window.clearTimeout(f),f=void 0)},B=()=>{document.hidden||(f=window.setTimeout(async()=>{await A(),B()},ke))},N=()=>{y(),B()},R=()=>{document.hidden?y():N()};return Y(()=>{H(),W(),A(),N(),document.addEventListener("visibilitychange",R)}),Z(()=>{y(),document.removeEventListener("visibilitychange",R)}),(e,t)=>(l(),o("div",oe,[s("div",le,[s("section",ae,[s("div",ne,[s("div",ue,[s("img",{src:j.value,alt:"Gemini Business2API",class:"h-8 w-8 object-contain"},null,8,ie),t[0]||(t[0]=s("div",null,[s("p",{class:"text-base font-semibold text-foreground"},"公开日志")],-1))]),t[1]||(t[1]=s("div",{class:"flex items-center gap-2 text-xs text-muted-foreground"},[s("span",null,"自动刷新:3s")],-1))]),s("div",ce,[s("div",{class:"text-xs text-muted-foreground"},[t[2]||(t[2]=E(" 展示最近 ",-1)),s("span",{class:"font-semibold text-foreground"},u(F)),t[3]||(t[3]=E(" 条会话日志 ",-1))]),S.value?(l(),o("a",{key:0,href:S.value,target:"_blank",class:"text-xs font-medium text-emerald-600 transition hover:text-emerald-500"}," 开始对话 ",8,de)):(l(),o("span",me,"开始对话"))]),s("div",pe,[(l(!0),o(_,null,w(M.value,r=>(l(),o("div",{key:r.label,class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},[s("div",be,u(r.label),1),s("div",{class:"mt-1 text-lg font-semibold",style:ee({color:r.color||void 0})},u(r.value),5)]))),128))]),d.value?(l(),o("div",fe,u(d.value),1)):h("",!0),a.value.length===0&&!d.value?(l(),o("div",ve," 暂无日志 ")):a.value.length>0?(l(),o("div",xe,[(l(!0),o(_,null,w(V.value,r=>(l(),o("div",{key:r.request_id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:n=>Q(r.request_id)},[s("span",{class:$(G(r.status))},u(P(r.status)),3),s("span",ye,"req_"+u(r.request_id),1),s("span",he,u(r.events.length)+" 条事件",1),s("span",{class:$(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!g(r.request_id)}])}," ▸ ",2)],8,ge),g(r.request_id)?h("",!0):(l(),o("div",_e,[(l(!0),o(_,null,w(r.events,n=>(l(),o("div",{key:`${r.request_id}-${n.time}-${n.type}`,class:"cv-auto flex flex-wrap items-center gap-3 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",we,u(n.time),1),s("span",{class:$(O(n))},u(J(n)),3),s("div",$e,u(n.content),1)]))),128))]))]))),128))])):h("",!0)])])]))}});export{Le as default}; diff --git a/static/assets/PublicLogs-CduW61ag.js b/static/assets/PublicLogs-CduW61ag.js new file mode 100644 index 0000000000000000000000000000000000000000..b80953e973ef933f39e913371947a0848b12804c --- /dev/null +++ b/static/assets/PublicLogs-CduW61ag.js @@ -0,0 +1 @@ +import{g as k,d as X,h as c,i,o as Y,j as Z,c as o,a as s,b as h,f as E,t as u,F as _,r as w,k as ee,n as $,e as l}from"./index-DL4Fp3an.js";const te={list:C=>k.get("/public/log",{params:C})},se={overview(){return k.get("/public/stats")}},re={overview(){return k.get("/public/display")}},oe={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},le={class:"mx-auto w-full max-w-6xl min-w-0 px-4 py-8"},ae={class:"rounded-3xl border border-border bg-card p-6"},ne={class:"flex flex-wrap items-start justify-between gap-4"},ue={class:"flex items-center gap-3"},ie=["src"],ce={class:"mt-4 flex flex-wrap items-center justify-between gap-3 rounded-2xl border border-border bg-secondary/40 px-4 py-3"},de=["href"],me={key:1,class:"text-xs text-muted-foreground"},pe={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-4"},be={class:"text-[11px] text-muted-foreground"},fe={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},ve={key:1,class:"mt-4 rounded-2xl border border-border bg-secondary/30 px-4 py-6 text-center text-sm text-muted-foreground"},xe={key:2,class:"mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1 scrollbar-slim"},ge=["onClick"],ye={class:"text-muted-foreground"},he={class:"text-muted-foreground"},_e={key:0,class:"space-y-2 px-4 py-3"},we={class:"text-muted-foreground"},$e={class:"flex-1 text-foreground"},F=1e3,T=1e3,ke=3e3,Le=X({__name:"PublicLogs",setup(C){const a=c([]),p=c(null),b=c(null),d=c(""),L=c("--:--"),m=c({});let f,v=!1;const j=i(()=>b.value?.logo_url?.trim()||"/logo.svg"),S=i(()=>b.value?.chat_url?.trim()||""),U=i(()=>a.value.length),x=i(()=>a.value.filter(e=>e.status==="success").length),q=i(()=>a.value.filter(e=>e.status==="error").length),V=i(()=>a.value.length>T?a.value.slice(-T):a.value),z=i(()=>{let e=0,t=0;return a.value.forEach(r=>{r.status==="success"&&r.events.forEach(n=>{if(n.type!=="complete")return;const D=n.content.match(/([0-9]+(?:\.[0-9]+)?)\s*s/);D&&(e+=Number(D[1]),t+=1)})}),t===0?"-":`${(e/t).toFixed(1)}s`}),I=i(()=>{const e=x.value+q.value;return e===0?"-":`${(x.value/e*100).toFixed(1)}%`}),M=i(()=>[{label:"总访客",value:p.value?.total_visitors??0},{label:"每分钟请求",value:p.value?.requests_per_minute??0,color:p.value?.load_color},{label:"平均响应",value:z.value},{label:"成功率",value:I.value,color:"#10b981"},{label:"对话次数",value:U.value},{label:"成功",value:x.value,color:"#10b981"},{label:"失败",value:q.value,color:"#ef4444"},{label:"更新时间",value:L.value,color:"#6b7280"}]),P=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",G=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},J=e=>e.type==="start"?"开始对话":e.type==="select"?"选择":e.type==="retry"?"重试":e.type==="switch"?"切换":e.type==="complete"?e.status==="success"?"完成":e.status==="error"?"失败":e.status==="timeout"?"超时":"完成":"事件",O=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";if(e.type==="start")return`${t} bg-blue-100 text-blue-700`;if(e.type==="select")return`${t} bg-violet-100 text-violet-700`;if(e.type==="retry")return`${t} bg-amber-100 text-amber-700`;if(e.type==="switch")return`${t} bg-cyan-100 text-cyan-700`;if(e.type==="complete"){if(e.status==="success")return`${t} bg-emerald-100 text-emerald-700`;if(e.status==="error")return`${t} bg-rose-100 text-rose-700`;if(e.status==="timeout")return`${t} bg-amber-100 text-amber-700`}return`${t} bg-slate-100 text-slate-600`},H=()=>{try{const e=localStorage.getItem("public-log-fold-state");e&&(m.value=JSON.parse(e))}catch{m.value={}}},K=()=>{localStorage.setItem("public-log-fold-state",JSON.stringify(m.value))},g=e=>m.value[e]===!0,Q=e=>{m.value[e]=!g(e),K()},A=async()=>{if(!v){v=!0,d.value="";try{const[e,t]=await Promise.all([te.list({limit:F}),se.overview()]);a.value=e.logs,p.value=t,L.value=new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch(e){d.value=e.message||"日志加载失败"}finally{v=!1}}},W=async()=>{try{b.value=await re.overview()}catch{b.value=null}},y=()=>{f&&(window.clearTimeout(f),f=void 0)},B=()=>{document.hidden||(f=window.setTimeout(async()=>{await A(),B()},ke))},N=()=>{y(),B()},R=()=>{document.hidden?y():N()};return Y(()=>{H(),W(),A(),N(),document.addEventListener("visibilitychange",R)}),Z(()=>{y(),document.removeEventListener("visibilitychange",R)}),(e,t)=>(l(),o("div",oe,[s("div",le,[s("section",ae,[s("div",ne,[s("div",ue,[s("img",{src:j.value,alt:"Gemini Business2API",class:"h-8 w-8 object-contain"},null,8,ie),t[0]||(t[0]=s("div",null,[s("p",{class:"text-base font-semibold text-foreground"},"公开日志")],-1))]),t[1]||(t[1]=s("div",{class:"flex items-center gap-2 text-xs text-muted-foreground"},[s("span",null,"自动刷新:3s")],-1))]),s("div",ce,[s("div",{class:"text-xs text-muted-foreground"},[t[2]||(t[2]=E(" 展示最近 ",-1)),s("span",{class:"font-semibold text-foreground"},u(F)),t[3]||(t[3]=E(" 条会话日志 ",-1))]),S.value?(l(),o("a",{key:0,href:S.value,target:"_blank",class:"text-xs font-medium text-emerald-600 transition hover:text-emerald-500"}," 开始对话 ",8,de)):(l(),o("span",me,"开始对话"))]),s("div",pe,[(l(!0),o(_,null,w(M.value,r=>(l(),o("div",{key:r.label,class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},[s("div",be,u(r.label),1),s("div",{class:"mt-1 text-lg font-semibold",style:ee({color:r.color||void 0})},u(r.value),5)]))),128))]),d.value?(l(),o("div",fe,u(d.value),1)):h("",!0),a.value.length===0&&!d.value?(l(),o("div",ve," 暂无日志 ")):a.value.length>0?(l(),o("div",xe,[(l(!0),o(_,null,w(V.value,r=>(l(),o("div",{key:r.request_id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:n=>Q(r.request_id)},[s("span",{class:$(G(r.status))},u(P(r.status)),3),s("span",ye,"req_"+u(r.request_id),1),s("span",he,u(r.events.length)+" 条事件",1),s("span",{class:$(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!g(r.request_id)}])}," ▸ ",2)],8,ge),g(r.request_id)?h("",!0):(l(),o("div",_e,[(l(!0),o(_,null,w(r.events,n=>(l(),o("div",{key:`${r.request_id}-${n.time}-${n.type}`,class:"cv-auto flex flex-wrap items-center gap-3 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",we,u(n.time),1),s("span",{class:$(O(n))},u(J(n)),3),s("div",$e,u(n.content),1)]))),128))]))]))),128))])):h("",!0)])])]))}});export{Le as default}; diff --git a/static/assets/PublicLogs-CoBk2Owz.js b/static/assets/PublicLogs-CoBk2Owz.js new file mode 100644 index 0000000000000000000000000000000000000000..d65b26d123d0679573e2f6261038af2db99a090f --- /dev/null +++ b/static/assets/PublicLogs-CoBk2Owz.js @@ -0,0 +1 @@ +import{g as k,d as X,h as c,i,o as Y,j as Z,c as o,a as s,b as h,f as E,t as u,F as _,r as w,k as ee,n as $,e as l}from"./index-C9KL0lrc.js";const te={list:C=>k.get("/public/log",{params:C})},se={overview(){return k.get("/public/stats")}},re={overview(){return k.get("/public/display")}},oe={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},le={class:"mx-auto w-full max-w-6xl min-w-0 px-4 py-8"},ae={class:"rounded-3xl border border-border bg-card p-6"},ne={class:"flex flex-wrap items-start justify-between gap-4"},ue={class:"flex items-center gap-3"},ie=["src"],ce={class:"mt-4 flex flex-wrap items-center justify-between gap-3 rounded-2xl border border-border bg-secondary/40 px-4 py-3"},de=["href"],me={key:1,class:"text-xs text-muted-foreground"},pe={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-4"},be={class:"text-[11px] text-muted-foreground"},fe={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},ve={key:1,class:"mt-4 rounded-2xl border border-border bg-secondary/30 px-4 py-6 text-center text-sm text-muted-foreground"},xe={key:2,class:"mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1 scrollbar-slim"},ge=["onClick"],ye={class:"text-muted-foreground"},he={class:"text-muted-foreground"},_e={key:0,class:"space-y-2 px-4 py-3"},we={class:"text-muted-foreground"},$e={class:"flex-1 text-foreground"},F=1e3,T=1e3,ke=3e3,Le=X({__name:"PublicLogs",setup(C){const a=c([]),p=c(null),b=c(null),d=c(""),L=c("--:--"),m=c({});let f,v=!1;const j=i(()=>b.value?.logo_url?.trim()||"/logo.svg"),S=i(()=>b.value?.chat_url?.trim()||""),U=i(()=>a.value.length),x=i(()=>a.value.filter(e=>e.status==="success").length),q=i(()=>a.value.filter(e=>e.status==="error").length),V=i(()=>a.value.length>T?a.value.slice(-T):a.value),z=i(()=>{let e=0,t=0;return a.value.forEach(r=>{r.status==="success"&&r.events.forEach(n=>{if(n.type!=="complete")return;const D=n.content.match(/([0-9]+(?:\.[0-9]+)?)\s*s/);D&&(e+=Number(D[1]),t+=1)})}),t===0?"-":`${(e/t).toFixed(1)}s`}),I=i(()=>{const e=x.value+q.value;return e===0?"-":`${(x.value/e*100).toFixed(1)}%`}),M=i(()=>[{label:"总访客",value:p.value?.total_visitors??0},{label:"每分钟请求",value:p.value?.requests_per_minute??0,color:p.value?.load_color},{label:"平均响应",value:z.value},{label:"成功率",value:I.value,color:"#10b981"},{label:"对话次数",value:U.value},{label:"成功",value:x.value,color:"#10b981"},{label:"失败",value:q.value,color:"#ef4444"},{label:"更新时间",value:L.value,color:"#6b7280"}]),P=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",G=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},J=e=>e.type==="start"?"开始对话":e.type==="select"?"选择":e.type==="retry"?"重试":e.type==="switch"?"切换":e.type==="complete"?e.status==="success"?"完成":e.status==="error"?"失败":e.status==="timeout"?"超时":"完成":"事件",O=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";if(e.type==="start")return`${t} bg-blue-100 text-blue-700`;if(e.type==="select")return`${t} bg-violet-100 text-violet-700`;if(e.type==="retry")return`${t} bg-amber-100 text-amber-700`;if(e.type==="switch")return`${t} bg-cyan-100 text-cyan-700`;if(e.type==="complete"){if(e.status==="success")return`${t} bg-emerald-100 text-emerald-700`;if(e.status==="error")return`${t} bg-rose-100 text-rose-700`;if(e.status==="timeout")return`${t} bg-amber-100 text-amber-700`}return`${t} bg-slate-100 text-slate-600`},H=()=>{try{const e=localStorage.getItem("public-log-fold-state");e&&(m.value=JSON.parse(e))}catch{m.value={}}},K=()=>{localStorage.setItem("public-log-fold-state",JSON.stringify(m.value))},g=e=>m.value[e]===!0,Q=e=>{m.value[e]=!g(e),K()},A=async()=>{if(!v){v=!0,d.value="";try{const[e,t]=await Promise.all([te.list({limit:F}),se.overview()]);a.value=e.logs,p.value=t,L.value=new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch(e){d.value=e.message||"日志加载失败"}finally{v=!1}}},W=async()=>{try{b.value=await re.overview()}catch{b.value=null}},y=()=>{f&&(window.clearTimeout(f),f=void 0)},B=()=>{document.hidden||(f=window.setTimeout(async()=>{await A(),B()},ke))},N=()=>{y(),B()},R=()=>{document.hidden?y():N()};return Y(()=>{H(),W(),A(),N(),document.addEventListener("visibilitychange",R)}),Z(()=>{y(),document.removeEventListener("visibilitychange",R)}),(e,t)=>(l(),o("div",oe,[s("div",le,[s("section",ae,[s("div",ne,[s("div",ue,[s("img",{src:j.value,alt:"Gemini Business2API",class:"h-8 w-8 object-contain"},null,8,ie),t[0]||(t[0]=s("div",null,[s("p",{class:"text-base font-semibold text-foreground"},"公开日志")],-1))]),t[1]||(t[1]=s("div",{class:"flex items-center gap-2 text-xs text-muted-foreground"},[s("span",null,"自动刷新:3s")],-1))]),s("div",ce,[s("div",{class:"text-xs text-muted-foreground"},[t[2]||(t[2]=E(" 展示最近 ",-1)),s("span",{class:"font-semibold text-foreground"},u(F)),t[3]||(t[3]=E(" 条会话日志 ",-1))]),S.value?(l(),o("a",{key:0,href:S.value,target:"_blank",class:"text-xs font-medium text-emerald-600 transition hover:text-emerald-500"}," 开始对话 ",8,de)):(l(),o("span",me,"开始对话"))]),s("div",pe,[(l(!0),o(_,null,w(M.value,r=>(l(),o("div",{key:r.label,class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},[s("div",be,u(r.label),1),s("div",{class:"mt-1 text-lg font-semibold",style:ee({color:r.color||void 0})},u(r.value),5)]))),128))]),d.value?(l(),o("div",fe,u(d.value),1)):h("",!0),a.value.length===0&&!d.value?(l(),o("div",ve," 暂无日志 ")):a.value.length>0?(l(),o("div",xe,[(l(!0),o(_,null,w(V.value,r=>(l(),o("div",{key:r.request_id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:n=>Q(r.request_id)},[s("span",{class:$(G(r.status))},u(P(r.status)),3),s("span",ye,"req_"+u(r.request_id),1),s("span",he,u(r.events.length)+" 条事件",1),s("span",{class:$(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!g(r.request_id)}])}," ▸ ",2)],8,ge),g(r.request_id)?h("",!0):(l(),o("div",_e,[(l(!0),o(_,null,w(r.events,n=>(l(),o("div",{key:`${r.request_id}-${n.time}-${n.type}`,class:"cv-auto flex flex-wrap items-center gap-3 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",we,u(n.time),1),s("span",{class:$(O(n))},u(J(n)),3),s("div",$e,u(n.content),1)]))),128))]))]))),128))])):h("",!0)])])]))}});export{Le as default}; diff --git a/static/assets/PublicLogs-CoTRbwU0.js b/static/assets/PublicLogs-CoTRbwU0.js new file mode 100644 index 0000000000000000000000000000000000000000..f7c22b8efa4e2cfd381fb0888ab1336f66a2c186 --- /dev/null +++ b/static/assets/PublicLogs-CoTRbwU0.js @@ -0,0 +1 @@ +import{g as k,d as X,h as c,i,o as Y,j as Z,c as o,a as s,b as h,f as E,t as u,F as _,r as w,k as ee,n as $,e as l}from"./index-Dul9zA0O.js";const te={list:C=>k.get("/public/log",{params:C})},se={overview(){return k.get("/public/stats")}},re={overview(){return k.get("/public/display")}},oe={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},le={class:"mx-auto w-full max-w-6xl min-w-0 px-4 py-8"},ae={class:"rounded-3xl border border-border bg-card p-6"},ne={class:"flex flex-wrap items-start justify-between gap-4"},ue={class:"flex items-center gap-3"},ie=["src"],ce={class:"mt-4 flex flex-wrap items-center justify-between gap-3 rounded-2xl border border-border bg-secondary/40 px-4 py-3"},de=["href"],me={key:1,class:"text-xs text-muted-foreground"},pe={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-4"},be={class:"text-[11px] text-muted-foreground"},fe={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},ve={key:1,class:"mt-4 rounded-2xl border border-border bg-secondary/30 px-4 py-6 text-center text-sm text-muted-foreground"},xe={key:2,class:"mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1 scrollbar-slim"},ge=["onClick"],ye={class:"text-muted-foreground"},he={class:"text-muted-foreground"},_e={key:0,class:"space-y-2 px-4 py-3"},we={class:"text-muted-foreground"},$e={class:"flex-1 text-foreground"},F=1e3,T=1e3,ke=3e3,Le=X({__name:"PublicLogs",setup(C){const a=c([]),p=c(null),b=c(null),d=c(""),L=c("--:--"),m=c({});let f,v=!1;const j=i(()=>b.value?.logo_url?.trim()||"/logo.svg"),S=i(()=>b.value?.chat_url?.trim()||""),U=i(()=>a.value.length),x=i(()=>a.value.filter(e=>e.status==="success").length),q=i(()=>a.value.filter(e=>e.status==="error").length),V=i(()=>a.value.length>T?a.value.slice(-T):a.value),z=i(()=>{let e=0,t=0;return a.value.forEach(r=>{r.status==="success"&&r.events.forEach(n=>{if(n.type!=="complete")return;const D=n.content.match(/([0-9]+(?:\.[0-9]+)?)\s*s/);D&&(e+=Number(D[1]),t+=1)})}),t===0?"-":`${(e/t).toFixed(1)}s`}),I=i(()=>{const e=x.value+q.value;return e===0?"-":`${(x.value/e*100).toFixed(1)}%`}),M=i(()=>[{label:"总访客",value:p.value?.total_visitors??0},{label:"每分钟请求",value:p.value?.requests_per_minute??0,color:p.value?.load_color},{label:"平均响应",value:z.value},{label:"成功率",value:I.value,color:"#10b981"},{label:"对话次数",value:U.value},{label:"成功",value:x.value,color:"#10b981"},{label:"失败",value:q.value,color:"#ef4444"},{label:"更新时间",value:L.value,color:"#6b7280"}]),P=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",G=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},J=e=>e.type==="start"?"开始对话":e.type==="select"?"选择":e.type==="retry"?"重试":e.type==="switch"?"切换":e.type==="complete"?e.status==="success"?"完成":e.status==="error"?"失败":e.status==="timeout"?"超时":"完成":"事件",O=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";if(e.type==="start")return`${t} bg-blue-100 text-blue-700`;if(e.type==="select")return`${t} bg-violet-100 text-violet-700`;if(e.type==="retry")return`${t} bg-amber-100 text-amber-700`;if(e.type==="switch")return`${t} bg-cyan-100 text-cyan-700`;if(e.type==="complete"){if(e.status==="success")return`${t} bg-emerald-100 text-emerald-700`;if(e.status==="error")return`${t} bg-rose-100 text-rose-700`;if(e.status==="timeout")return`${t} bg-amber-100 text-amber-700`}return`${t} bg-slate-100 text-slate-600`},H=()=>{try{const e=localStorage.getItem("public-log-fold-state");e&&(m.value=JSON.parse(e))}catch{m.value={}}},K=()=>{localStorage.setItem("public-log-fold-state",JSON.stringify(m.value))},g=e=>m.value[e]===!0,Q=e=>{m.value[e]=!g(e),K()},A=async()=>{if(!v){v=!0,d.value="";try{const[e,t]=await Promise.all([te.list({limit:F}),se.overview()]);a.value=e.logs,p.value=t,L.value=new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch(e){d.value=e.message||"日志加载失败"}finally{v=!1}}},W=async()=>{try{b.value=await re.overview()}catch{b.value=null}},y=()=>{f&&(window.clearTimeout(f),f=void 0)},B=()=>{document.hidden||(f=window.setTimeout(async()=>{await A(),B()},ke))},N=()=>{y(),B()},R=()=>{document.hidden?y():N()};return Y(()=>{H(),W(),A(),N(),document.addEventListener("visibilitychange",R)}),Z(()=>{y(),document.removeEventListener("visibilitychange",R)}),(e,t)=>(l(),o("div",oe,[s("div",le,[s("section",ae,[s("div",ne,[s("div",ue,[s("img",{src:j.value,alt:"Gemini Business2API",class:"h-8 w-8 object-contain"},null,8,ie),t[0]||(t[0]=s("div",null,[s("p",{class:"text-base font-semibold text-foreground"},"公开日志")],-1))]),t[1]||(t[1]=s("div",{class:"flex items-center gap-2 text-xs text-muted-foreground"},[s("span",null,"自动刷新:3s")],-1))]),s("div",ce,[s("div",{class:"text-xs text-muted-foreground"},[t[2]||(t[2]=E(" 展示最近 ",-1)),s("span",{class:"font-semibold text-foreground"},u(F)),t[3]||(t[3]=E(" 条会话日志 ",-1))]),S.value?(l(),o("a",{key:0,href:S.value,target:"_blank",class:"text-xs font-medium text-emerald-600 transition hover:text-emerald-500"}," 开始对话 ",8,de)):(l(),o("span",me,"开始对话"))]),s("div",pe,[(l(!0),o(_,null,w(M.value,r=>(l(),o("div",{key:r.label,class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},[s("div",be,u(r.label),1),s("div",{class:"mt-1 text-lg font-semibold",style:ee({color:r.color||void 0})},u(r.value),5)]))),128))]),d.value?(l(),o("div",fe,u(d.value),1)):h("",!0),a.value.length===0&&!d.value?(l(),o("div",ve," 暂无日志 ")):a.value.length>0?(l(),o("div",xe,[(l(!0),o(_,null,w(V.value,r=>(l(),o("div",{key:r.request_id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:n=>Q(r.request_id)},[s("span",{class:$(G(r.status))},u(P(r.status)),3),s("span",ye,"req_"+u(r.request_id),1),s("span",he,u(r.events.length)+" 条事件",1),s("span",{class:$(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!g(r.request_id)}])}," ▸ ",2)],8,ge),g(r.request_id)?h("",!0):(l(),o("div",_e,[(l(!0),o(_,null,w(r.events,n=>(l(),o("div",{key:`${r.request_id}-${n.time}-${n.type}`,class:"cv-auto flex flex-wrap items-center gap-3 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",we,u(n.time),1),s("span",{class:$(O(n))},u(J(n)),3),s("div",$e,u(n.content),1)]))),128))]))]))),128))])):h("",!0)])])]))}});export{Le as default}; diff --git a/static/assets/PublicLogs-CpVsU1Cd.js b/static/assets/PublicLogs-CpVsU1Cd.js new file mode 100644 index 0000000000000000000000000000000000000000..76e0037bdaad89b9598fdc9156b8d3ab97c5df6c --- /dev/null +++ b/static/assets/PublicLogs-CpVsU1Cd.js @@ -0,0 +1 @@ +import{g as k,d as X,h as c,i,o as Y,j as Z,c as o,a as s,b as h,f as E,t as u,F as _,r as w,k as ee,n as $,e as l}from"./index-BYFRJmx0.js";const te={list:C=>k.get("/public/log",{params:C})},se={overview(){return k.get("/public/stats")}},re={overview(){return k.get("/public/display")}},oe={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},le={class:"mx-auto w-full max-w-6xl min-w-0 px-4 py-8"},ae={class:"rounded-3xl border border-border bg-card p-6"},ne={class:"flex flex-wrap items-start justify-between gap-4"},ue={class:"flex items-center gap-3"},ie=["src"],ce={class:"mt-4 flex flex-wrap items-center justify-between gap-3 rounded-2xl border border-border bg-secondary/40 px-4 py-3"},de=["href"],me={key:1,class:"text-xs text-muted-foreground"},pe={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-4"},be={class:"text-[11px] text-muted-foreground"},fe={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},ve={key:1,class:"mt-4 rounded-2xl border border-border bg-secondary/30 px-4 py-6 text-center text-sm text-muted-foreground"},xe={key:2,class:"mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1 scrollbar-slim"},ge=["onClick"],ye={class:"text-muted-foreground"},he={class:"text-muted-foreground"},_e={key:0,class:"space-y-2 px-4 py-3"},we={class:"text-muted-foreground"},$e={class:"flex-1 text-foreground"},F=1e3,T=1e3,ke=3e3,Le=X({__name:"PublicLogs",setup(C){const a=c([]),p=c(null),b=c(null),d=c(""),L=c("--:--"),m=c({});let f,v=!1;const j=i(()=>b.value?.logo_url?.trim()||"/logo.svg"),S=i(()=>b.value?.chat_url?.trim()||""),U=i(()=>a.value.length),x=i(()=>a.value.filter(e=>e.status==="success").length),q=i(()=>a.value.filter(e=>e.status==="error").length),V=i(()=>a.value.length>T?a.value.slice(-T):a.value),z=i(()=>{let e=0,t=0;return a.value.forEach(r=>{r.status==="success"&&r.events.forEach(n=>{if(n.type!=="complete")return;const D=n.content.match(/([0-9]+(?:\.[0-9]+)?)\s*s/);D&&(e+=Number(D[1]),t+=1)})}),t===0?"-":`${(e/t).toFixed(1)}s`}),I=i(()=>{const e=x.value+q.value;return e===0?"-":`${(x.value/e*100).toFixed(1)}%`}),M=i(()=>[{label:"总访客",value:p.value?.total_visitors??0},{label:"每分钟请求",value:p.value?.requests_per_minute??0,color:p.value?.load_color},{label:"平均响应",value:z.value},{label:"成功率",value:I.value,color:"#10b981"},{label:"对话次数",value:U.value},{label:"成功",value:x.value,color:"#10b981"},{label:"失败",value:q.value,color:"#ef4444"},{label:"更新时间",value:L.value,color:"#6b7280"}]),P=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",G=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},J=e=>e.type==="start"?"开始对话":e.type==="select"?"选择":e.type==="retry"?"重试":e.type==="switch"?"切换":e.type==="complete"?e.status==="success"?"完成":e.status==="error"?"失败":e.status==="timeout"?"超时":"完成":"事件",O=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";if(e.type==="start")return`${t} bg-blue-100 text-blue-700`;if(e.type==="select")return`${t} bg-violet-100 text-violet-700`;if(e.type==="retry")return`${t} bg-amber-100 text-amber-700`;if(e.type==="switch")return`${t} bg-cyan-100 text-cyan-700`;if(e.type==="complete"){if(e.status==="success")return`${t} bg-emerald-100 text-emerald-700`;if(e.status==="error")return`${t} bg-rose-100 text-rose-700`;if(e.status==="timeout")return`${t} bg-amber-100 text-amber-700`}return`${t} bg-slate-100 text-slate-600`},H=()=>{try{const e=localStorage.getItem("public-log-fold-state");e&&(m.value=JSON.parse(e))}catch{m.value={}}},K=()=>{localStorage.setItem("public-log-fold-state",JSON.stringify(m.value))},g=e=>m.value[e]===!0,Q=e=>{m.value[e]=!g(e),K()},A=async()=>{if(!v){v=!0,d.value="";try{const[e,t]=await Promise.all([te.list({limit:F}),se.overview()]);a.value=e.logs,p.value=t,L.value=new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch(e){d.value=e.message||"日志加载失败"}finally{v=!1}}},W=async()=>{try{b.value=await re.overview()}catch{b.value=null}},y=()=>{f&&(window.clearTimeout(f),f=void 0)},B=()=>{document.hidden||(f=window.setTimeout(async()=>{await A(),B()},ke))},N=()=>{y(),B()},R=()=>{document.hidden?y():N()};return Y(()=>{H(),W(),A(),N(),document.addEventListener("visibilitychange",R)}),Z(()=>{y(),document.removeEventListener("visibilitychange",R)}),(e,t)=>(l(),o("div",oe,[s("div",le,[s("section",ae,[s("div",ne,[s("div",ue,[s("img",{src:j.value,alt:"Gemini Business2API",class:"h-8 w-8 object-contain"},null,8,ie),t[0]||(t[0]=s("div",null,[s("p",{class:"text-base font-semibold text-foreground"},"公开日志")],-1))]),t[1]||(t[1]=s("div",{class:"flex items-center gap-2 text-xs text-muted-foreground"},[s("span",null,"自动刷新:3s")],-1))]),s("div",ce,[s("div",{class:"text-xs text-muted-foreground"},[t[2]||(t[2]=E(" 展示最近 ",-1)),s("span",{class:"font-semibold text-foreground"},u(F)),t[3]||(t[3]=E(" 条会话日志 ",-1))]),S.value?(l(),o("a",{key:0,href:S.value,target:"_blank",class:"text-xs font-medium text-emerald-600 transition hover:text-emerald-500"}," 开始对话 ",8,de)):(l(),o("span",me,"开始对话"))]),s("div",pe,[(l(!0),o(_,null,w(M.value,r=>(l(),o("div",{key:r.label,class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},[s("div",be,u(r.label),1),s("div",{class:"mt-1 text-lg font-semibold",style:ee({color:r.color||void 0})},u(r.value),5)]))),128))]),d.value?(l(),o("div",fe,u(d.value),1)):h("",!0),a.value.length===0&&!d.value?(l(),o("div",ve," 暂无日志 ")):a.value.length>0?(l(),o("div",xe,[(l(!0),o(_,null,w(V.value,r=>(l(),o("div",{key:r.request_id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:n=>Q(r.request_id)},[s("span",{class:$(G(r.status))},u(P(r.status)),3),s("span",ye,"req_"+u(r.request_id),1),s("span",he,u(r.events.length)+" 条事件",1),s("span",{class:$(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!g(r.request_id)}])}," ▸ ",2)],8,ge),g(r.request_id)?h("",!0):(l(),o("div",_e,[(l(!0),o(_,null,w(r.events,n=>(l(),o("div",{key:`${r.request_id}-${n.time}-${n.type}`,class:"cv-auto flex flex-wrap items-center gap-3 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",we,u(n.time),1),s("span",{class:$(O(n))},u(J(n)),3),s("div",$e,u(n.content),1)]))),128))]))]))),128))])):h("",!0)])])]))}});export{Le as default}; diff --git a/static/assets/PublicLogs-Cxet1IRy.js b/static/assets/PublicLogs-Cxet1IRy.js new file mode 100644 index 0000000000000000000000000000000000000000..2f5362971b1ae78da27c70429285f3a6a169ae41 --- /dev/null +++ b/static/assets/PublicLogs-Cxet1IRy.js @@ -0,0 +1 @@ +import{g as k,d as X,h as c,i,o as Y,j as Z,c as o,a as s,b as h,f as E,t as u,F as _,r as w,k as ee,n as $,e as l}from"./index-4tSmcUDY.js";const te={list:C=>k.get("/public/log",{params:C})},se={overview(){return k.get("/public/stats")}},re={overview(){return k.get("/public/display")}},oe={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},le={class:"mx-auto w-full max-w-6xl min-w-0 px-4 py-8"},ae={class:"rounded-3xl border border-border bg-card p-6"},ne={class:"flex flex-wrap items-start justify-between gap-4"},ue={class:"flex items-center gap-3"},ie=["src"],ce={class:"mt-4 flex flex-wrap items-center justify-between gap-3 rounded-2xl border border-border bg-secondary/40 px-4 py-3"},de=["href"],me={key:1,class:"text-xs text-muted-foreground"},pe={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-4"},be={class:"text-[11px] text-muted-foreground"},fe={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},ve={key:1,class:"mt-4 rounded-2xl border border-border bg-secondary/30 px-4 py-6 text-center text-sm text-muted-foreground"},xe={key:2,class:"mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1 scrollbar-slim"},ge=["onClick"],ye={class:"text-muted-foreground"},he={class:"text-muted-foreground"},_e={key:0,class:"space-y-2 px-4 py-3"},we={class:"text-muted-foreground"},$e={class:"flex-1 text-foreground"},F=1e3,T=1e3,ke=3e3,Le=X({__name:"PublicLogs",setup(C){const a=c([]),p=c(null),b=c(null),d=c(""),L=c("--:--"),m=c({});let f,v=!1;const j=i(()=>b.value?.logo_url?.trim()||"/logo.svg"),S=i(()=>b.value?.chat_url?.trim()||""),U=i(()=>a.value.length),x=i(()=>a.value.filter(e=>e.status==="success").length),q=i(()=>a.value.filter(e=>e.status==="error").length),V=i(()=>a.value.length>T?a.value.slice(-T):a.value),z=i(()=>{let e=0,t=0;return a.value.forEach(r=>{r.status==="success"&&r.events.forEach(n=>{if(n.type!=="complete")return;const D=n.content.match(/([0-9]+(?:\.[0-9]+)?)\s*s/);D&&(e+=Number(D[1]),t+=1)})}),t===0?"-":`${(e/t).toFixed(1)}s`}),I=i(()=>{const e=x.value+q.value;return e===0?"-":`${(x.value/e*100).toFixed(1)}%`}),M=i(()=>[{label:"总访客",value:p.value?.total_visitors??0},{label:"每分钟请求",value:p.value?.requests_per_minute??0,color:p.value?.load_color},{label:"平均响应",value:z.value},{label:"成功率",value:I.value,color:"#10b981"},{label:"对话次数",value:U.value},{label:"成功",value:x.value,color:"#10b981"},{label:"失败",value:q.value,color:"#ef4444"},{label:"更新时间",value:L.value,color:"#6b7280"}]),P=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",G=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},J=e=>e.type==="start"?"开始对话":e.type==="select"?"选择":e.type==="retry"?"重试":e.type==="switch"?"切换":e.type==="complete"?e.status==="success"?"完成":e.status==="error"?"失败":e.status==="timeout"?"超时":"完成":"事件",O=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";if(e.type==="start")return`${t} bg-blue-100 text-blue-700`;if(e.type==="select")return`${t} bg-violet-100 text-violet-700`;if(e.type==="retry")return`${t} bg-amber-100 text-amber-700`;if(e.type==="switch")return`${t} bg-cyan-100 text-cyan-700`;if(e.type==="complete"){if(e.status==="success")return`${t} bg-emerald-100 text-emerald-700`;if(e.status==="error")return`${t} bg-rose-100 text-rose-700`;if(e.status==="timeout")return`${t} bg-amber-100 text-amber-700`}return`${t} bg-slate-100 text-slate-600`},H=()=>{try{const e=localStorage.getItem("public-log-fold-state");e&&(m.value=JSON.parse(e))}catch{m.value={}}},K=()=>{localStorage.setItem("public-log-fold-state",JSON.stringify(m.value))},g=e=>m.value[e]===!0,Q=e=>{m.value[e]=!g(e),K()},A=async()=>{if(!v){v=!0,d.value="";try{const[e,t]=await Promise.all([te.list({limit:F}),se.overview()]);a.value=e.logs,p.value=t,L.value=new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch(e){d.value=e.message||"日志加载失败"}finally{v=!1}}},W=async()=>{try{b.value=await re.overview()}catch{b.value=null}},y=()=>{f&&(window.clearTimeout(f),f=void 0)},B=()=>{document.hidden||(f=window.setTimeout(async()=>{await A(),B()},ke))},N=()=>{y(),B()},R=()=>{document.hidden?y():N()};return Y(()=>{H(),W(),A(),N(),document.addEventListener("visibilitychange",R)}),Z(()=>{y(),document.removeEventListener("visibilitychange",R)}),(e,t)=>(l(),o("div",oe,[s("div",le,[s("section",ae,[s("div",ne,[s("div",ue,[s("img",{src:j.value,alt:"Gemini Business2API",class:"h-8 w-8 object-contain"},null,8,ie),t[0]||(t[0]=s("div",null,[s("p",{class:"text-base font-semibold text-foreground"},"公开日志")],-1))]),t[1]||(t[1]=s("div",{class:"flex items-center gap-2 text-xs text-muted-foreground"},[s("span",null,"自动刷新:3s")],-1))]),s("div",ce,[s("div",{class:"text-xs text-muted-foreground"},[t[2]||(t[2]=E(" 展示最近 ",-1)),s("span",{class:"font-semibold text-foreground"},u(F)),t[3]||(t[3]=E(" 条会话日志 ",-1))]),S.value?(l(),o("a",{key:0,href:S.value,target:"_blank",class:"text-xs font-medium text-emerald-600 transition hover:text-emerald-500"}," 开始对话 ",8,de)):(l(),o("span",me,"开始对话"))]),s("div",pe,[(l(!0),o(_,null,w(M.value,r=>(l(),o("div",{key:r.label,class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},[s("div",be,u(r.label),1),s("div",{class:"mt-1 text-lg font-semibold",style:ee({color:r.color||void 0})},u(r.value),5)]))),128))]),d.value?(l(),o("div",fe,u(d.value),1)):h("",!0),a.value.length===0&&!d.value?(l(),o("div",ve," 暂无日志 ")):a.value.length>0?(l(),o("div",xe,[(l(!0),o(_,null,w(V.value,r=>(l(),o("div",{key:r.request_id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:n=>Q(r.request_id)},[s("span",{class:$(G(r.status))},u(P(r.status)),3),s("span",ye,"req_"+u(r.request_id),1),s("span",he,u(r.events.length)+" 条事件",1),s("span",{class:$(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!g(r.request_id)}])}," ▸ ",2)],8,ge),g(r.request_id)?h("",!0):(l(),o("div",_e,[(l(!0),o(_,null,w(r.events,n=>(l(),o("div",{key:`${r.request_id}-${n.time}-${n.type}`,class:"cv-auto flex flex-wrap items-center gap-3 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",we,u(n.time),1),s("span",{class:$(O(n))},u(J(n)),3),s("div",$e,u(n.content),1)]))),128))]))]))),128))])):h("",!0)])])]))}});export{Le as default}; diff --git a/static/assets/PublicLogs-CztlCwM0.js b/static/assets/PublicLogs-CztlCwM0.js new file mode 100644 index 0000000000000000000000000000000000000000..9d041dd6c5fab83e84daf63b3ccb7e1cd0292e64 --- /dev/null +++ b/static/assets/PublicLogs-CztlCwM0.js @@ -0,0 +1 @@ +import{g as k,d as X,h as c,i,o as Y,j as Z,c as o,a as s,b as h,f as E,t as u,F as _,r as w,k as ee,n as $,e as l}from"./index-DMWZCTlx.js";const te={list:C=>k.get("/public/log",{params:C})},se={overview(){return k.get("/public/stats")}},re={overview(){return k.get("/public/display")}},oe={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},le={class:"mx-auto w-full max-w-6xl min-w-0 px-4 py-8"},ae={class:"rounded-3xl border border-border bg-card p-6"},ne={class:"flex flex-wrap items-start justify-between gap-4"},ue={class:"flex items-center gap-3"},ie=["src"],ce={class:"mt-4 flex flex-wrap items-center justify-between gap-3 rounded-2xl border border-border bg-secondary/40 px-4 py-3"},de=["href"],me={key:1,class:"text-xs text-muted-foreground"},pe={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-4"},be={class:"text-[11px] text-muted-foreground"},fe={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},ve={key:1,class:"mt-4 rounded-2xl border border-border bg-secondary/30 px-4 py-6 text-center text-sm text-muted-foreground"},xe={key:2,class:"mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1 scrollbar-slim"},ge=["onClick"],ye={class:"text-muted-foreground"},he={class:"text-muted-foreground"},_e={key:0,class:"space-y-2 px-4 py-3"},we={class:"text-muted-foreground"},$e={class:"flex-1 text-foreground"},F=1e3,T=1e3,ke=3e3,Le=X({__name:"PublicLogs",setup(C){const a=c([]),p=c(null),b=c(null),d=c(""),L=c("--:--"),m=c({});let f,v=!1;const j=i(()=>b.value?.logo_url?.trim()||"/logo.svg"),S=i(()=>b.value?.chat_url?.trim()||""),U=i(()=>a.value.length),x=i(()=>a.value.filter(e=>e.status==="success").length),q=i(()=>a.value.filter(e=>e.status==="error").length),V=i(()=>a.value.length>T?a.value.slice(-T):a.value),z=i(()=>{let e=0,t=0;return a.value.forEach(r=>{r.status==="success"&&r.events.forEach(n=>{if(n.type!=="complete")return;const D=n.content.match(/([0-9]+(?:\.[0-9]+)?)\s*s/);D&&(e+=Number(D[1]),t+=1)})}),t===0?"-":`${(e/t).toFixed(1)}s`}),I=i(()=>{const e=x.value+q.value;return e===0?"-":`${(x.value/e*100).toFixed(1)}%`}),M=i(()=>[{label:"总访客",value:p.value?.total_visitors??0},{label:"每分钟请求",value:p.value?.requests_per_minute??0,color:p.value?.load_color},{label:"平均响应",value:z.value},{label:"成功率",value:I.value,color:"#10b981"},{label:"对话次数",value:U.value},{label:"成功",value:x.value,color:"#10b981"},{label:"失败",value:q.value,color:"#ef4444"},{label:"更新时间",value:L.value,color:"#6b7280"}]),P=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",G=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},J=e=>e.type==="start"?"开始对话":e.type==="select"?"选择":e.type==="retry"?"重试":e.type==="switch"?"切换":e.type==="complete"?e.status==="success"?"完成":e.status==="error"?"失败":e.status==="timeout"?"超时":"完成":"事件",O=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";if(e.type==="start")return`${t} bg-blue-100 text-blue-700`;if(e.type==="select")return`${t} bg-violet-100 text-violet-700`;if(e.type==="retry")return`${t} bg-amber-100 text-amber-700`;if(e.type==="switch")return`${t} bg-cyan-100 text-cyan-700`;if(e.type==="complete"){if(e.status==="success")return`${t} bg-emerald-100 text-emerald-700`;if(e.status==="error")return`${t} bg-rose-100 text-rose-700`;if(e.status==="timeout")return`${t} bg-amber-100 text-amber-700`}return`${t} bg-slate-100 text-slate-600`},H=()=>{try{const e=localStorage.getItem("public-log-fold-state");e&&(m.value=JSON.parse(e))}catch{m.value={}}},K=()=>{localStorage.setItem("public-log-fold-state",JSON.stringify(m.value))},g=e=>m.value[e]===!0,Q=e=>{m.value[e]=!g(e),K()},A=async()=>{if(!v){v=!0,d.value="";try{const[e,t]=await Promise.all([te.list({limit:F}),se.overview()]);a.value=e.logs,p.value=t,L.value=new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch(e){d.value=e.message||"日志加载失败"}finally{v=!1}}},W=async()=>{try{b.value=await re.overview()}catch{b.value=null}},y=()=>{f&&(window.clearTimeout(f),f=void 0)},B=()=>{document.hidden||(f=window.setTimeout(async()=>{await A(),B()},ke))},N=()=>{y(),B()},R=()=>{document.hidden?y():N()};return Y(()=>{H(),W(),A(),N(),document.addEventListener("visibilitychange",R)}),Z(()=>{y(),document.removeEventListener("visibilitychange",R)}),(e,t)=>(l(),o("div",oe,[s("div",le,[s("section",ae,[s("div",ne,[s("div",ue,[s("img",{src:j.value,alt:"Gemini Business2API",class:"h-8 w-8 object-contain"},null,8,ie),t[0]||(t[0]=s("div",null,[s("p",{class:"text-base font-semibold text-foreground"},"公开日志")],-1))]),t[1]||(t[1]=s("div",{class:"flex items-center gap-2 text-xs text-muted-foreground"},[s("span",null,"自动刷新:3s")],-1))]),s("div",ce,[s("div",{class:"text-xs text-muted-foreground"},[t[2]||(t[2]=E(" 展示最近 ",-1)),s("span",{class:"font-semibold text-foreground"},u(F)),t[3]||(t[3]=E(" 条会话日志 ",-1))]),S.value?(l(),o("a",{key:0,href:S.value,target:"_blank",class:"text-xs font-medium text-emerald-600 transition hover:text-emerald-500"}," 开始对话 ",8,de)):(l(),o("span",me,"开始对话"))]),s("div",pe,[(l(!0),o(_,null,w(M.value,r=>(l(),o("div",{key:r.label,class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},[s("div",be,u(r.label),1),s("div",{class:"mt-1 text-lg font-semibold",style:ee({color:r.color||void 0})},u(r.value),5)]))),128))]),d.value?(l(),o("div",fe,u(d.value),1)):h("",!0),a.value.length===0&&!d.value?(l(),o("div",ve," 暂无日志 ")):a.value.length>0?(l(),o("div",xe,[(l(!0),o(_,null,w(V.value,r=>(l(),o("div",{key:r.request_id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:n=>Q(r.request_id)},[s("span",{class:$(G(r.status))},u(P(r.status)),3),s("span",ye,"req_"+u(r.request_id),1),s("span",he,u(r.events.length)+" 条事件",1),s("span",{class:$(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!g(r.request_id)}])}," ▸ ",2)],8,ge),g(r.request_id)?h("",!0):(l(),o("div",_e,[(l(!0),o(_,null,w(r.events,n=>(l(),o("div",{key:`${r.request_id}-${n.time}-${n.type}`,class:"cv-auto flex flex-wrap items-center gap-3 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",we,u(n.time),1),s("span",{class:$(O(n))},u(J(n)),3),s("div",$e,u(n.content),1)]))),128))]))]))),128))])):h("",!0)])])]))}});export{Le as default}; diff --git a/static/assets/PublicLogs-D4fEV0kh.js b/static/assets/PublicLogs-D4fEV0kh.js new file mode 100644 index 0000000000000000000000000000000000000000..aa4d4725a3f3efe9ba0dca5add3b566bb1b0bb3b --- /dev/null +++ b/static/assets/PublicLogs-D4fEV0kh.js @@ -0,0 +1 @@ +import{g as k,d as X,h as c,i,o as Y,j as Z,c as o,a as s,b as h,f as E,t as u,F as _,r as w,k as ee,n as $,e as l}from"./index-DDWWwh2l.js";const te={list:C=>k.get("/public/log",{params:C})},se={overview(){return k.get("/public/stats")}},re={overview(){return k.get("/public/display")}},oe={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},le={class:"mx-auto w-full max-w-6xl min-w-0 px-4 py-8"},ae={class:"rounded-3xl border border-border bg-card p-6"},ne={class:"flex flex-wrap items-start justify-between gap-4"},ue={class:"flex items-center gap-3"},ie=["src"],ce={class:"mt-4 flex flex-wrap items-center justify-between gap-3 rounded-2xl border border-border bg-secondary/40 px-4 py-3"},de=["href"],me={key:1,class:"text-xs text-muted-foreground"},pe={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-4"},be={class:"text-[11px] text-muted-foreground"},fe={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},ve={key:1,class:"mt-4 rounded-2xl border border-border bg-secondary/30 px-4 py-6 text-center text-sm text-muted-foreground"},xe={key:2,class:"mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1 scrollbar-slim"},ge=["onClick"],ye={class:"text-muted-foreground"},he={class:"text-muted-foreground"},_e={key:0,class:"space-y-2 px-4 py-3"},we={class:"text-muted-foreground"},$e={class:"flex-1 text-foreground"},F=1e3,T=1e3,ke=3e3,Le=X({__name:"PublicLogs",setup(C){const a=c([]),p=c(null),b=c(null),d=c(""),L=c("--:--"),m=c({});let f,v=!1;const j=i(()=>b.value?.logo_url?.trim()||"/logo.svg"),S=i(()=>b.value?.chat_url?.trim()||""),U=i(()=>a.value.length),x=i(()=>a.value.filter(e=>e.status==="success").length),q=i(()=>a.value.filter(e=>e.status==="error").length),V=i(()=>a.value.length>T?a.value.slice(-T):a.value),z=i(()=>{let e=0,t=0;return a.value.forEach(r=>{r.status==="success"&&r.events.forEach(n=>{if(n.type!=="complete")return;const D=n.content.match(/([0-9]+(?:\.[0-9]+)?)\s*s/);D&&(e+=Number(D[1]),t+=1)})}),t===0?"-":`${(e/t).toFixed(1)}s`}),I=i(()=>{const e=x.value+q.value;return e===0?"-":`${(x.value/e*100).toFixed(1)}%`}),M=i(()=>[{label:"总访客",value:p.value?.total_visitors??0},{label:"每分钟请求",value:p.value?.requests_per_minute??0,color:p.value?.load_color},{label:"平均响应",value:z.value},{label:"成功率",value:I.value,color:"#10b981"},{label:"对话次数",value:U.value},{label:"成功",value:x.value,color:"#10b981"},{label:"失败",value:q.value,color:"#ef4444"},{label:"更新时间",value:L.value,color:"#6b7280"}]),P=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",G=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},J=e=>e.type==="start"?"开始对话":e.type==="select"?"选择":e.type==="retry"?"重试":e.type==="switch"?"切换":e.type==="complete"?e.status==="success"?"完成":e.status==="error"?"失败":e.status==="timeout"?"超时":"完成":"事件",O=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";if(e.type==="start")return`${t} bg-blue-100 text-blue-700`;if(e.type==="select")return`${t} bg-violet-100 text-violet-700`;if(e.type==="retry")return`${t} bg-amber-100 text-amber-700`;if(e.type==="switch")return`${t} bg-cyan-100 text-cyan-700`;if(e.type==="complete"){if(e.status==="success")return`${t} bg-emerald-100 text-emerald-700`;if(e.status==="error")return`${t} bg-rose-100 text-rose-700`;if(e.status==="timeout")return`${t} bg-amber-100 text-amber-700`}return`${t} bg-slate-100 text-slate-600`},H=()=>{try{const e=localStorage.getItem("public-log-fold-state");e&&(m.value=JSON.parse(e))}catch{m.value={}}},K=()=>{localStorage.setItem("public-log-fold-state",JSON.stringify(m.value))},g=e=>m.value[e]===!0,Q=e=>{m.value[e]=!g(e),K()},A=async()=>{if(!v){v=!0,d.value="";try{const[e,t]=await Promise.all([te.list({limit:F}),se.overview()]);a.value=e.logs,p.value=t,L.value=new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch(e){d.value=e.message||"日志加载失败"}finally{v=!1}}},W=async()=>{try{b.value=await re.overview()}catch{b.value=null}},y=()=>{f&&(window.clearTimeout(f),f=void 0)},B=()=>{document.hidden||(f=window.setTimeout(async()=>{await A(),B()},ke))},N=()=>{y(),B()},R=()=>{document.hidden?y():N()};return Y(()=>{H(),W(),A(),N(),document.addEventListener("visibilitychange",R)}),Z(()=>{y(),document.removeEventListener("visibilitychange",R)}),(e,t)=>(l(),o("div",oe,[s("div",le,[s("section",ae,[s("div",ne,[s("div",ue,[s("img",{src:j.value,alt:"Gemini Business2API",class:"h-8 w-8 object-contain"},null,8,ie),t[0]||(t[0]=s("div",null,[s("p",{class:"text-base font-semibold text-foreground"},"公开日志")],-1))]),t[1]||(t[1]=s("div",{class:"flex items-center gap-2 text-xs text-muted-foreground"},[s("span",null,"自动刷新:3s")],-1))]),s("div",ce,[s("div",{class:"text-xs text-muted-foreground"},[t[2]||(t[2]=E(" 展示最近 ",-1)),s("span",{class:"font-semibold text-foreground"},u(F)),t[3]||(t[3]=E(" 条会话日志 ",-1))]),S.value?(l(),o("a",{key:0,href:S.value,target:"_blank",class:"text-xs font-medium text-emerald-600 transition hover:text-emerald-500"}," 开始对话 ",8,de)):(l(),o("span",me,"开始对话"))]),s("div",pe,[(l(!0),o(_,null,w(M.value,r=>(l(),o("div",{key:r.label,class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},[s("div",be,u(r.label),1),s("div",{class:"mt-1 text-lg font-semibold",style:ee({color:r.color||void 0})},u(r.value),5)]))),128))]),d.value?(l(),o("div",fe,u(d.value),1)):h("",!0),a.value.length===0&&!d.value?(l(),o("div",ve," 暂无日志 ")):a.value.length>0?(l(),o("div",xe,[(l(!0),o(_,null,w(V.value,r=>(l(),o("div",{key:r.request_id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:n=>Q(r.request_id)},[s("span",{class:$(G(r.status))},u(P(r.status)),3),s("span",ye,"req_"+u(r.request_id),1),s("span",he,u(r.events.length)+" 条事件",1),s("span",{class:$(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!g(r.request_id)}])}," ▸ ",2)],8,ge),g(r.request_id)?h("",!0):(l(),o("div",_e,[(l(!0),o(_,null,w(r.events,n=>(l(),o("div",{key:`${r.request_id}-${n.time}-${n.type}`,class:"cv-auto flex flex-wrap items-center gap-3 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",we,u(n.time),1),s("span",{class:$(O(n))},u(J(n)),3),s("div",$e,u(n.content),1)]))),128))]))]))),128))])):h("",!0)])])]))}});export{Le as default}; diff --git a/static/assets/PublicLogs-Dg26RuXJ.js b/static/assets/PublicLogs-Dg26RuXJ.js new file mode 100644 index 0000000000000000000000000000000000000000..06003a571427927388181bfda8a04a7123cf59fb --- /dev/null +++ b/static/assets/PublicLogs-Dg26RuXJ.js @@ -0,0 +1 @@ +import{g as k,d as X,h as c,i,o as Y,j as Z,c as o,a as s,b as h,f as E,t as u,F as _,r as w,k as ee,n as $,e as l}from"./index-B38eA7T4.js";const te={list:C=>k.get("/public/log",{params:C})},se={overview(){return k.get("/public/stats")}},re={overview(){return k.get("/public/display")}},oe={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},le={class:"mx-auto w-full max-w-6xl min-w-0 px-4 py-8"},ae={class:"rounded-3xl border border-border bg-card p-6"},ne={class:"flex flex-wrap items-start justify-between gap-4"},ue={class:"flex items-center gap-3"},ie=["src"],ce={class:"mt-4 flex flex-wrap items-center justify-between gap-3 rounded-2xl border border-border bg-secondary/40 px-4 py-3"},de=["href"],me={key:1,class:"text-xs text-muted-foreground"},pe={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-4"},be={class:"text-[11px] text-muted-foreground"},fe={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},ve={key:1,class:"mt-4 rounded-2xl border border-border bg-secondary/30 px-4 py-6 text-center text-sm text-muted-foreground"},xe={key:2,class:"mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1 scrollbar-slim"},ge=["onClick"],ye={class:"text-muted-foreground"},he={class:"text-muted-foreground"},_e={key:0,class:"space-y-2 px-4 py-3"},we={class:"text-muted-foreground"},$e={class:"flex-1 text-foreground"},F=1e3,T=1e3,ke=3e3,Le=X({__name:"PublicLogs",setup(C){const a=c([]),p=c(null),b=c(null),d=c(""),L=c("--:--"),m=c({});let f,v=!1;const j=i(()=>b.value?.logo_url?.trim()||"/logo.svg"),S=i(()=>b.value?.chat_url?.trim()||""),U=i(()=>a.value.length),x=i(()=>a.value.filter(e=>e.status==="success").length),q=i(()=>a.value.filter(e=>e.status==="error").length),V=i(()=>a.value.length>T?a.value.slice(-T):a.value),z=i(()=>{let e=0,t=0;return a.value.forEach(r=>{r.status==="success"&&r.events.forEach(n=>{if(n.type!=="complete")return;const D=n.content.match(/([0-9]+(?:\.[0-9]+)?)\s*s/);D&&(e+=Number(D[1]),t+=1)})}),t===0?"-":`${(e/t).toFixed(1)}s`}),I=i(()=>{const e=x.value+q.value;return e===0?"-":`${(x.value/e*100).toFixed(1)}%`}),M=i(()=>[{label:"总访客",value:p.value?.total_visitors??0},{label:"每分钟请求",value:p.value?.requests_per_minute??0,color:p.value?.load_color},{label:"平均响应",value:z.value},{label:"成功率",value:I.value,color:"#10b981"},{label:"对话次数",value:U.value},{label:"成功",value:x.value,color:"#10b981"},{label:"失败",value:q.value,color:"#ef4444"},{label:"更新时间",value:L.value,color:"#6b7280"}]),P=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",G=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},J=e=>e.type==="start"?"开始对话":e.type==="select"?"选择":e.type==="retry"?"重试":e.type==="switch"?"切换":e.type==="complete"?e.status==="success"?"完成":e.status==="error"?"失败":e.status==="timeout"?"超时":"完成":"事件",O=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";if(e.type==="start")return`${t} bg-blue-100 text-blue-700`;if(e.type==="select")return`${t} bg-violet-100 text-violet-700`;if(e.type==="retry")return`${t} bg-amber-100 text-amber-700`;if(e.type==="switch")return`${t} bg-cyan-100 text-cyan-700`;if(e.type==="complete"){if(e.status==="success")return`${t} bg-emerald-100 text-emerald-700`;if(e.status==="error")return`${t} bg-rose-100 text-rose-700`;if(e.status==="timeout")return`${t} bg-amber-100 text-amber-700`}return`${t} bg-slate-100 text-slate-600`},H=()=>{try{const e=localStorage.getItem("public-log-fold-state");e&&(m.value=JSON.parse(e))}catch{m.value={}}},K=()=>{localStorage.setItem("public-log-fold-state",JSON.stringify(m.value))},g=e=>m.value[e]===!0,Q=e=>{m.value[e]=!g(e),K()},A=async()=>{if(!v){v=!0,d.value="";try{const[e,t]=await Promise.all([te.list({limit:F}),se.overview()]);a.value=e.logs,p.value=t,L.value=new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch(e){d.value=e.message||"日志加载失败"}finally{v=!1}}},W=async()=>{try{b.value=await re.overview()}catch{b.value=null}},y=()=>{f&&(window.clearTimeout(f),f=void 0)},B=()=>{document.hidden||(f=window.setTimeout(async()=>{await A(),B()},ke))},N=()=>{y(),B()},R=()=>{document.hidden?y():N()};return Y(()=>{H(),W(),A(),N(),document.addEventListener("visibilitychange",R)}),Z(()=>{y(),document.removeEventListener("visibilitychange",R)}),(e,t)=>(l(),o("div",oe,[s("div",le,[s("section",ae,[s("div",ne,[s("div",ue,[s("img",{src:j.value,alt:"Gemini Business2API",class:"h-8 w-8 object-contain"},null,8,ie),t[0]||(t[0]=s("div",null,[s("p",{class:"text-base font-semibold text-foreground"},"公开日志")],-1))]),t[1]||(t[1]=s("div",{class:"flex items-center gap-2 text-xs text-muted-foreground"},[s("span",null,"自动刷新:3s")],-1))]),s("div",ce,[s("div",{class:"text-xs text-muted-foreground"},[t[2]||(t[2]=E(" 展示最近 ",-1)),s("span",{class:"font-semibold text-foreground"},u(F)),t[3]||(t[3]=E(" 条会话日志 ",-1))]),S.value?(l(),o("a",{key:0,href:S.value,target:"_blank",class:"text-xs font-medium text-emerald-600 transition hover:text-emerald-500"}," 开始对话 ",8,de)):(l(),o("span",me,"开始对话"))]),s("div",pe,[(l(!0),o(_,null,w(M.value,r=>(l(),o("div",{key:r.label,class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},[s("div",be,u(r.label),1),s("div",{class:"mt-1 text-lg font-semibold",style:ee({color:r.color||void 0})},u(r.value),5)]))),128))]),d.value?(l(),o("div",fe,u(d.value),1)):h("",!0),a.value.length===0&&!d.value?(l(),o("div",ve," 暂无日志 ")):a.value.length>0?(l(),o("div",xe,[(l(!0),o(_,null,w(V.value,r=>(l(),o("div",{key:r.request_id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:n=>Q(r.request_id)},[s("span",{class:$(G(r.status))},u(P(r.status)),3),s("span",ye,"req_"+u(r.request_id),1),s("span",he,u(r.events.length)+" 条事件",1),s("span",{class:$(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!g(r.request_id)}])}," ▸ ",2)],8,ge),g(r.request_id)?h("",!0):(l(),o("div",_e,[(l(!0),o(_,null,w(r.events,n=>(l(),o("div",{key:`${r.request_id}-${n.time}-${n.type}`,class:"cv-auto flex flex-wrap items-center gap-3 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",we,u(n.time),1),s("span",{class:$(O(n))},u(J(n)),3),s("div",$e,u(n.content),1)]))),128))]))]))),128))])):h("",!0)])])]))}});export{Le as default}; diff --git a/static/assets/PublicLogs-DgCHiocP.js b/static/assets/PublicLogs-DgCHiocP.js new file mode 100644 index 0000000000000000000000000000000000000000..6cf8ebd208bc5f376c6305f87ccc8f6c869a7108 --- /dev/null +++ b/static/assets/PublicLogs-DgCHiocP.js @@ -0,0 +1 @@ +import{g as k,d as X,h as c,i,o as Y,j as Z,c as o,a as s,b as h,f as E,t as u,F as _,r as w,k as ee,n as $,e as l}from"./index-CM73xqTK.js";const te={list:C=>k.get("/public/log",{params:C})},se={overview(){return k.get("/public/stats")}},re={overview(){return k.get("/public/display")}},oe={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},le={class:"mx-auto w-full max-w-6xl min-w-0 px-4 py-8"},ae={class:"rounded-3xl border border-border bg-card p-6"},ne={class:"flex flex-wrap items-start justify-between gap-4"},ue={class:"flex items-center gap-3"},ie=["src"],ce={class:"mt-4 flex flex-wrap items-center justify-between gap-3 rounded-2xl border border-border bg-secondary/40 px-4 py-3"},de=["href"],me={key:1,class:"text-xs text-muted-foreground"},pe={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-4"},be={class:"text-[11px] text-muted-foreground"},fe={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},ve={key:1,class:"mt-4 rounded-2xl border border-border bg-secondary/30 px-4 py-6 text-center text-sm text-muted-foreground"},xe={key:2,class:"mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1 scrollbar-slim"},ge=["onClick"],ye={class:"text-muted-foreground"},he={class:"text-muted-foreground"},_e={key:0,class:"space-y-2 px-4 py-3"},we={class:"text-muted-foreground"},$e={class:"flex-1 text-foreground"},F=1e3,T=1e3,ke=3e3,Le=X({__name:"PublicLogs",setup(C){const a=c([]),p=c(null),b=c(null),d=c(""),L=c("--:--"),m=c({});let f,v=!1;const j=i(()=>b.value?.logo_url?.trim()||"/logo.svg"),S=i(()=>b.value?.chat_url?.trim()||""),U=i(()=>a.value.length),x=i(()=>a.value.filter(e=>e.status==="success").length),q=i(()=>a.value.filter(e=>e.status==="error").length),V=i(()=>a.value.length>T?a.value.slice(-T):a.value),z=i(()=>{let e=0,t=0;return a.value.forEach(r=>{r.status==="success"&&r.events.forEach(n=>{if(n.type!=="complete")return;const D=n.content.match(/([0-9]+(?:\.[0-9]+)?)\s*s/);D&&(e+=Number(D[1]),t+=1)})}),t===0?"-":`${(e/t).toFixed(1)}s`}),I=i(()=>{const e=x.value+q.value;return e===0?"-":`${(x.value/e*100).toFixed(1)}%`}),M=i(()=>[{label:"总访客",value:p.value?.total_visitors??0},{label:"每分钟请求",value:p.value?.requests_per_minute??0,color:p.value?.load_color},{label:"平均响应",value:z.value},{label:"成功率",value:I.value,color:"#10b981"},{label:"对话次数",value:U.value},{label:"成功",value:x.value,color:"#10b981"},{label:"失败",value:q.value,color:"#ef4444"},{label:"更新时间",value:L.value,color:"#6b7280"}]),P=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",G=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},J=e=>e.type==="start"?"开始对话":e.type==="select"?"选择":e.type==="retry"?"重试":e.type==="switch"?"切换":e.type==="complete"?e.status==="success"?"完成":e.status==="error"?"失败":e.status==="timeout"?"超时":"完成":"事件",O=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";if(e.type==="start")return`${t} bg-blue-100 text-blue-700`;if(e.type==="select")return`${t} bg-violet-100 text-violet-700`;if(e.type==="retry")return`${t} bg-amber-100 text-amber-700`;if(e.type==="switch")return`${t} bg-cyan-100 text-cyan-700`;if(e.type==="complete"){if(e.status==="success")return`${t} bg-emerald-100 text-emerald-700`;if(e.status==="error")return`${t} bg-rose-100 text-rose-700`;if(e.status==="timeout")return`${t} bg-amber-100 text-amber-700`}return`${t} bg-slate-100 text-slate-600`},H=()=>{try{const e=localStorage.getItem("public-log-fold-state");e&&(m.value=JSON.parse(e))}catch{m.value={}}},K=()=>{localStorage.setItem("public-log-fold-state",JSON.stringify(m.value))},g=e=>m.value[e]===!0,Q=e=>{m.value[e]=!g(e),K()},A=async()=>{if(!v){v=!0,d.value="";try{const[e,t]=await Promise.all([te.list({limit:F}),se.overview()]);a.value=e.logs,p.value=t,L.value=new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch(e){d.value=e.message||"日志加载失败"}finally{v=!1}}},W=async()=>{try{b.value=await re.overview()}catch{b.value=null}},y=()=>{f&&(window.clearTimeout(f),f=void 0)},B=()=>{document.hidden||(f=window.setTimeout(async()=>{await A(),B()},ke))},N=()=>{y(),B()},R=()=>{document.hidden?y():N()};return Y(()=>{H(),W(),A(),N(),document.addEventListener("visibilitychange",R)}),Z(()=>{y(),document.removeEventListener("visibilitychange",R)}),(e,t)=>(l(),o("div",oe,[s("div",le,[s("section",ae,[s("div",ne,[s("div",ue,[s("img",{src:j.value,alt:"Gemini Business2API",class:"h-8 w-8 object-contain"},null,8,ie),t[0]||(t[0]=s("div",null,[s("p",{class:"text-base font-semibold text-foreground"},"公开日志")],-1))]),t[1]||(t[1]=s("div",{class:"flex items-center gap-2 text-xs text-muted-foreground"},[s("span",null,"自动刷新:3s")],-1))]),s("div",ce,[s("div",{class:"text-xs text-muted-foreground"},[t[2]||(t[2]=E(" 展示最近 ",-1)),s("span",{class:"font-semibold text-foreground"},u(F)),t[3]||(t[3]=E(" 条会话日志 ",-1))]),S.value?(l(),o("a",{key:0,href:S.value,target:"_blank",class:"text-xs font-medium text-emerald-600 transition hover:text-emerald-500"}," 开始对话 ",8,de)):(l(),o("span",me,"开始对话"))]),s("div",pe,[(l(!0),o(_,null,w(M.value,r=>(l(),o("div",{key:r.label,class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},[s("div",be,u(r.label),1),s("div",{class:"mt-1 text-lg font-semibold",style:ee({color:r.color||void 0})},u(r.value),5)]))),128))]),d.value?(l(),o("div",fe,u(d.value),1)):h("",!0),a.value.length===0&&!d.value?(l(),o("div",ve," 暂无日志 ")):a.value.length>0?(l(),o("div",xe,[(l(!0),o(_,null,w(V.value,r=>(l(),o("div",{key:r.request_id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:n=>Q(r.request_id)},[s("span",{class:$(G(r.status))},u(P(r.status)),3),s("span",ye,"req_"+u(r.request_id),1),s("span",he,u(r.events.length)+" 条事件",1),s("span",{class:$(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!g(r.request_id)}])}," ▸ ",2)],8,ge),g(r.request_id)?h("",!0):(l(),o("div",_e,[(l(!0),o(_,null,w(r.events,n=>(l(),o("div",{key:`${r.request_id}-${n.time}-${n.type}`,class:"cv-auto flex flex-wrap items-center gap-3 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",we,u(n.time),1),s("span",{class:$(O(n))},u(J(n)),3),s("div",$e,u(n.content),1)]))),128))]))]))),128))])):h("",!0)])])]))}});export{Le as default}; diff --git a/static/assets/PublicLogs-Dq0IZVPI.js b/static/assets/PublicLogs-Dq0IZVPI.js new file mode 100644 index 0000000000000000000000000000000000000000..832b3676ee6f2d89e0280259ae9a3465d8076ad5 --- /dev/null +++ b/static/assets/PublicLogs-Dq0IZVPI.js @@ -0,0 +1 @@ +import{g as k,d as X,h as c,i,o as Y,j as Z,c as o,a as s,b as h,f as E,t as u,F as _,r as w,k as ee,n as $,e as l}from"./index-Bh_hLcqi.js";const te={list:C=>k.get("/public/log",{params:C})},se={overview(){return k.get("/public/stats")}},re={overview(){return k.get("/public/display")}},oe={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},le={class:"mx-auto w-full max-w-6xl min-w-0 px-4 py-8"},ae={class:"rounded-3xl border border-border bg-card p-6"},ne={class:"flex flex-wrap items-start justify-between gap-4"},ue={class:"flex items-center gap-3"},ie=["src"],ce={class:"mt-4 flex flex-wrap items-center justify-between gap-3 rounded-2xl border border-border bg-secondary/40 px-4 py-3"},de=["href"],me={key:1,class:"text-xs text-muted-foreground"},pe={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-4"},be={class:"text-[11px] text-muted-foreground"},fe={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},ve={key:1,class:"mt-4 rounded-2xl border border-border bg-secondary/30 px-4 py-6 text-center text-sm text-muted-foreground"},xe={key:2,class:"mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1 scrollbar-slim"},ge=["onClick"],ye={class:"text-muted-foreground"},he={class:"text-muted-foreground"},_e={key:0,class:"space-y-2 px-4 py-3"},we={class:"text-muted-foreground"},$e={class:"flex-1 text-foreground"},F=1e3,T=1e3,ke=3e3,Le=X({__name:"PublicLogs",setup(C){const a=c([]),p=c(null),b=c(null),d=c(""),L=c("--:--"),m=c({});let f,v=!1;const j=i(()=>b.value?.logo_url?.trim()||"/logo.svg"),S=i(()=>b.value?.chat_url?.trim()||""),U=i(()=>a.value.length),x=i(()=>a.value.filter(e=>e.status==="success").length),q=i(()=>a.value.filter(e=>e.status==="error").length),V=i(()=>a.value.length>T?a.value.slice(-T):a.value),z=i(()=>{let e=0,t=0;return a.value.forEach(r=>{r.status==="success"&&r.events.forEach(n=>{if(n.type!=="complete")return;const D=n.content.match(/([0-9]+(?:\.[0-9]+)?)\s*s/);D&&(e+=Number(D[1]),t+=1)})}),t===0?"-":`${(e/t).toFixed(1)}s`}),I=i(()=>{const e=x.value+q.value;return e===0?"-":`${(x.value/e*100).toFixed(1)}%`}),M=i(()=>[{label:"总访客",value:p.value?.total_visitors??0},{label:"每分钟请求",value:p.value?.requests_per_minute??0,color:p.value?.load_color},{label:"平均响应",value:z.value},{label:"成功率",value:I.value,color:"#10b981"},{label:"对话次数",value:U.value},{label:"成功",value:x.value,color:"#10b981"},{label:"失败",value:q.value,color:"#ef4444"},{label:"更新时间",value:L.value,color:"#6b7280"}]),P=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",G=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},J=e=>e.type==="start"?"开始对话":e.type==="select"?"选择":e.type==="retry"?"重试":e.type==="switch"?"切换":e.type==="complete"?e.status==="success"?"完成":e.status==="error"?"失败":e.status==="timeout"?"超时":"完成":"事件",O=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";if(e.type==="start")return`${t} bg-blue-100 text-blue-700`;if(e.type==="select")return`${t} bg-violet-100 text-violet-700`;if(e.type==="retry")return`${t} bg-amber-100 text-amber-700`;if(e.type==="switch")return`${t} bg-cyan-100 text-cyan-700`;if(e.type==="complete"){if(e.status==="success")return`${t} bg-emerald-100 text-emerald-700`;if(e.status==="error")return`${t} bg-rose-100 text-rose-700`;if(e.status==="timeout")return`${t} bg-amber-100 text-amber-700`}return`${t} bg-slate-100 text-slate-600`},H=()=>{try{const e=localStorage.getItem("public-log-fold-state");e&&(m.value=JSON.parse(e))}catch{m.value={}}},K=()=>{localStorage.setItem("public-log-fold-state",JSON.stringify(m.value))},g=e=>m.value[e]===!0,Q=e=>{m.value[e]=!g(e),K()},A=async()=>{if(!v){v=!0,d.value="";try{const[e,t]=await Promise.all([te.list({limit:F}),se.overview()]);a.value=e.logs,p.value=t,L.value=new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch(e){d.value=e.message||"日志加载失败"}finally{v=!1}}},W=async()=>{try{b.value=await re.overview()}catch{b.value=null}},y=()=>{f&&(window.clearTimeout(f),f=void 0)},B=()=>{document.hidden||(f=window.setTimeout(async()=>{await A(),B()},ke))},N=()=>{y(),B()},R=()=>{document.hidden?y():N()};return Y(()=>{H(),W(),A(),N(),document.addEventListener("visibilitychange",R)}),Z(()=>{y(),document.removeEventListener("visibilitychange",R)}),(e,t)=>(l(),o("div",oe,[s("div",le,[s("section",ae,[s("div",ne,[s("div",ue,[s("img",{src:j.value,alt:"Gemini Business2API",class:"h-8 w-8 object-contain"},null,8,ie),t[0]||(t[0]=s("div",null,[s("p",{class:"text-base font-semibold text-foreground"},"公开日志")],-1))]),t[1]||(t[1]=s("div",{class:"flex items-center gap-2 text-xs text-muted-foreground"},[s("span",null,"自动刷新:3s")],-1))]),s("div",ce,[s("div",{class:"text-xs text-muted-foreground"},[t[2]||(t[2]=E(" 展示最近 ",-1)),s("span",{class:"font-semibold text-foreground"},u(F)),t[3]||(t[3]=E(" 条会话日志 ",-1))]),S.value?(l(),o("a",{key:0,href:S.value,target:"_blank",class:"text-xs font-medium text-emerald-600 transition hover:text-emerald-500"}," 开始对话 ",8,de)):(l(),o("span",me,"开始对话"))]),s("div",pe,[(l(!0),o(_,null,w(M.value,r=>(l(),o("div",{key:r.label,class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},[s("div",be,u(r.label),1),s("div",{class:"mt-1 text-lg font-semibold",style:ee({color:r.color||void 0})},u(r.value),5)]))),128))]),d.value?(l(),o("div",fe,u(d.value),1)):h("",!0),a.value.length===0&&!d.value?(l(),o("div",ve," 暂无日志 ")):a.value.length>0?(l(),o("div",xe,[(l(!0),o(_,null,w(V.value,r=>(l(),o("div",{key:r.request_id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:n=>Q(r.request_id)},[s("span",{class:$(G(r.status))},u(P(r.status)),3),s("span",ye,"req_"+u(r.request_id),1),s("span",he,u(r.events.length)+" 条事件",1),s("span",{class:$(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!g(r.request_id)}])}," ▸ ",2)],8,ge),g(r.request_id)?h("",!0):(l(),o("div",_e,[(l(!0),o(_,null,w(r.events,n=>(l(),o("div",{key:`${r.request_id}-${n.time}-${n.type}`,class:"cv-auto flex flex-wrap items-center gap-3 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",we,u(n.time),1),s("span",{class:$(O(n))},u(J(n)),3),s("div",$e,u(n.content),1)]))),128))]))]))),128))])):h("",!0)])])]))}});export{Le as default}; diff --git a/static/assets/PublicLogs-DqhTfMql.js b/static/assets/PublicLogs-DqhTfMql.js new file mode 100644 index 0000000000000000000000000000000000000000..8ac9772d96bb6cf4fc7678a6bbba626e794c3b2c --- /dev/null +++ b/static/assets/PublicLogs-DqhTfMql.js @@ -0,0 +1 @@ +import{g as k,d as X,h as c,i,o as Y,j as Z,c as o,a as s,b as h,f as E,t as u,F as _,r as w,k as ee,n as $,e as l}from"./index-Bx7qSams.js";const te={list:C=>k.get("/public/log",{params:C})},se={overview(){return k.get("/public/stats")}},re={overview(){return k.get("/public/display")}},oe={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},le={class:"mx-auto w-full max-w-6xl min-w-0 px-4 py-8"},ae={class:"rounded-3xl border border-border bg-card p-6"},ne={class:"flex flex-wrap items-start justify-between gap-4"},ue={class:"flex items-center gap-3"},ie=["src"],ce={class:"mt-4 flex flex-wrap items-center justify-between gap-3 rounded-2xl border border-border bg-secondary/40 px-4 py-3"},de=["href"],me={key:1,class:"text-xs text-muted-foreground"},pe={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-4"},be={class:"text-[11px] text-muted-foreground"},fe={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},ve={key:1,class:"mt-4 rounded-2xl border border-border bg-secondary/30 px-4 py-6 text-center text-sm text-muted-foreground"},xe={key:2,class:"mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1 scrollbar-slim"},ge=["onClick"],ye={class:"text-muted-foreground"},he={class:"text-muted-foreground"},_e={key:0,class:"space-y-2 px-4 py-3"},we={class:"text-muted-foreground"},$e={class:"flex-1 text-foreground"},F=1e3,T=1e3,ke=3e3,Le=X({__name:"PublicLogs",setup(C){const a=c([]),p=c(null),b=c(null),d=c(""),L=c("--:--"),m=c({});let f,v=!1;const j=i(()=>b.value?.logo_url?.trim()||"/logo.svg"),S=i(()=>b.value?.chat_url?.trim()||""),U=i(()=>a.value.length),x=i(()=>a.value.filter(e=>e.status==="success").length),q=i(()=>a.value.filter(e=>e.status==="error").length),V=i(()=>a.value.length>T?a.value.slice(-T):a.value),z=i(()=>{let e=0,t=0;return a.value.forEach(r=>{r.status==="success"&&r.events.forEach(n=>{if(n.type!=="complete")return;const D=n.content.match(/([0-9]+(?:\.[0-9]+)?)\s*s/);D&&(e+=Number(D[1]),t+=1)})}),t===0?"-":`${(e/t).toFixed(1)}s`}),I=i(()=>{const e=x.value+q.value;return e===0?"-":`${(x.value/e*100).toFixed(1)}%`}),M=i(()=>[{label:"总访客",value:p.value?.total_visitors??0},{label:"每分钟请求",value:p.value?.requests_per_minute??0,color:p.value?.load_color},{label:"平均响应",value:z.value},{label:"成功率",value:I.value,color:"#10b981"},{label:"对话次数",value:U.value},{label:"成功",value:x.value,color:"#10b981"},{label:"失败",value:q.value,color:"#ef4444"},{label:"更新时间",value:L.value,color:"#6b7280"}]),P=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",G=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},J=e=>e.type==="start"?"开始对话":e.type==="select"?"选择":e.type==="retry"?"重试":e.type==="switch"?"切换":e.type==="complete"?e.status==="success"?"完成":e.status==="error"?"失败":e.status==="timeout"?"超时":"完成":"事件",O=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";if(e.type==="start")return`${t} bg-blue-100 text-blue-700`;if(e.type==="select")return`${t} bg-violet-100 text-violet-700`;if(e.type==="retry")return`${t} bg-amber-100 text-amber-700`;if(e.type==="switch")return`${t} bg-cyan-100 text-cyan-700`;if(e.type==="complete"){if(e.status==="success")return`${t} bg-emerald-100 text-emerald-700`;if(e.status==="error")return`${t} bg-rose-100 text-rose-700`;if(e.status==="timeout")return`${t} bg-amber-100 text-amber-700`}return`${t} bg-slate-100 text-slate-600`},H=()=>{try{const e=localStorage.getItem("public-log-fold-state");e&&(m.value=JSON.parse(e))}catch{m.value={}}},K=()=>{localStorage.setItem("public-log-fold-state",JSON.stringify(m.value))},g=e=>m.value[e]===!0,Q=e=>{m.value[e]=!g(e),K()},A=async()=>{if(!v){v=!0,d.value="";try{const[e,t]=await Promise.all([te.list({limit:F}),se.overview()]);a.value=e.logs,p.value=t,L.value=new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch(e){d.value=e.message||"日志加载失败"}finally{v=!1}}},W=async()=>{try{b.value=await re.overview()}catch{b.value=null}},y=()=>{f&&(window.clearTimeout(f),f=void 0)},B=()=>{document.hidden||(f=window.setTimeout(async()=>{await A(),B()},ke))},N=()=>{y(),B()},R=()=>{document.hidden?y():N()};return Y(()=>{H(),W(),A(),N(),document.addEventListener("visibilitychange",R)}),Z(()=>{y(),document.removeEventListener("visibilitychange",R)}),(e,t)=>(l(),o("div",oe,[s("div",le,[s("section",ae,[s("div",ne,[s("div",ue,[s("img",{src:j.value,alt:"Gemini Business2API",class:"h-8 w-8 object-contain"},null,8,ie),t[0]||(t[0]=s("div",null,[s("p",{class:"text-base font-semibold text-foreground"},"公开日志")],-1))]),t[1]||(t[1]=s("div",{class:"flex items-center gap-2 text-xs text-muted-foreground"},[s("span",null,"自动刷新:3s")],-1))]),s("div",ce,[s("div",{class:"text-xs text-muted-foreground"},[t[2]||(t[2]=E(" 展示最近 ",-1)),s("span",{class:"font-semibold text-foreground"},u(F)),t[3]||(t[3]=E(" 条会话日志 ",-1))]),S.value?(l(),o("a",{key:0,href:S.value,target:"_blank",class:"text-xs font-medium text-emerald-600 transition hover:text-emerald-500"}," 开始对话 ",8,de)):(l(),o("span",me,"开始对话"))]),s("div",pe,[(l(!0),o(_,null,w(M.value,r=>(l(),o("div",{key:r.label,class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},[s("div",be,u(r.label),1),s("div",{class:"mt-1 text-lg font-semibold",style:ee({color:r.color||void 0})},u(r.value),5)]))),128))]),d.value?(l(),o("div",fe,u(d.value),1)):h("",!0),a.value.length===0&&!d.value?(l(),o("div",ve," 暂无日志 ")):a.value.length>0?(l(),o("div",xe,[(l(!0),o(_,null,w(V.value,r=>(l(),o("div",{key:r.request_id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:n=>Q(r.request_id)},[s("span",{class:$(G(r.status))},u(P(r.status)),3),s("span",ye,"req_"+u(r.request_id),1),s("span",he,u(r.events.length)+" 条事件",1),s("span",{class:$(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!g(r.request_id)}])}," ▸ ",2)],8,ge),g(r.request_id)?h("",!0):(l(),o("div",_e,[(l(!0),o(_,null,w(r.events,n=>(l(),o("div",{key:`${r.request_id}-${n.time}-${n.type}`,class:"cv-auto flex flex-wrap items-center gap-3 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",we,u(n.time),1),s("span",{class:$(O(n))},u(J(n)),3),s("div",$e,u(n.content),1)]))),128))]))]))),128))])):h("",!0)])])]))}});export{Le as default}; diff --git a/static/assets/PublicLogs-HTusrXOt.js b/static/assets/PublicLogs-HTusrXOt.js new file mode 100644 index 0000000000000000000000000000000000000000..ac65912846f394c5e9db7c3ffbd7d8aa2e3548e0 --- /dev/null +++ b/static/assets/PublicLogs-HTusrXOt.js @@ -0,0 +1 @@ +import{g as k,d as X,h as c,i,o as Y,j as Z,c as o,a as s,b as h,f as E,t as u,F as _,r as w,k as ee,n as $,e as l}from"./index-gD6QQiOu.js";const te={list:C=>k.get("/public/log",{params:C})},se={overview(){return k.get("/public/stats")}},re={overview(){return k.get("/public/display")}},oe={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},le={class:"mx-auto w-full max-w-6xl min-w-0 px-4 py-8"},ae={class:"rounded-3xl border border-border bg-card p-6"},ne={class:"flex flex-wrap items-start justify-between gap-4"},ue={class:"flex items-center gap-3"},ie=["src"],ce={class:"mt-4 flex flex-wrap items-center justify-between gap-3 rounded-2xl border border-border bg-secondary/40 px-4 py-3"},de=["href"],me={key:1,class:"text-xs text-muted-foreground"},pe={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-4"},be={class:"text-[11px] text-muted-foreground"},fe={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},ve={key:1,class:"mt-4 rounded-2xl border border-border bg-secondary/30 px-4 py-6 text-center text-sm text-muted-foreground"},xe={key:2,class:"mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1 scrollbar-slim"},ge=["onClick"],ye={class:"text-muted-foreground"},he={class:"text-muted-foreground"},_e={key:0,class:"space-y-2 px-4 py-3"},we={class:"text-muted-foreground"},$e={class:"flex-1 text-foreground"},F=1e3,T=1e3,ke=3e3,Le=X({__name:"PublicLogs",setup(C){const a=c([]),p=c(null),b=c(null),d=c(""),L=c("--:--"),m=c({});let f,v=!1;const j=i(()=>b.value?.logo_url?.trim()||"/logo.svg"),S=i(()=>b.value?.chat_url?.trim()||""),U=i(()=>a.value.length),x=i(()=>a.value.filter(e=>e.status==="success").length),q=i(()=>a.value.filter(e=>e.status==="error").length),V=i(()=>a.value.length>T?a.value.slice(-T):a.value),z=i(()=>{let e=0,t=0;return a.value.forEach(r=>{r.status==="success"&&r.events.forEach(n=>{if(n.type!=="complete")return;const D=n.content.match(/([0-9]+(?:\.[0-9]+)?)\s*s/);D&&(e+=Number(D[1]),t+=1)})}),t===0?"-":`${(e/t).toFixed(1)}s`}),I=i(()=>{const e=x.value+q.value;return e===0?"-":`${(x.value/e*100).toFixed(1)}%`}),M=i(()=>[{label:"总访客",value:p.value?.total_visitors??0},{label:"每分钟请求",value:p.value?.requests_per_minute??0,color:p.value?.load_color},{label:"平均响应",value:z.value},{label:"成功率",value:I.value,color:"#10b981"},{label:"对话次数",value:U.value},{label:"成功",value:x.value,color:"#10b981"},{label:"失败",value:q.value,color:"#ef4444"},{label:"更新时间",value:L.value,color:"#6b7280"}]),P=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",G=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},J=e=>e.type==="start"?"开始对话":e.type==="select"?"选择":e.type==="retry"?"重试":e.type==="switch"?"切换":e.type==="complete"?e.status==="success"?"完成":e.status==="error"?"失败":e.status==="timeout"?"超时":"完成":"事件",O=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";if(e.type==="start")return`${t} bg-blue-100 text-blue-700`;if(e.type==="select")return`${t} bg-violet-100 text-violet-700`;if(e.type==="retry")return`${t} bg-amber-100 text-amber-700`;if(e.type==="switch")return`${t} bg-cyan-100 text-cyan-700`;if(e.type==="complete"){if(e.status==="success")return`${t} bg-emerald-100 text-emerald-700`;if(e.status==="error")return`${t} bg-rose-100 text-rose-700`;if(e.status==="timeout")return`${t} bg-amber-100 text-amber-700`}return`${t} bg-slate-100 text-slate-600`},H=()=>{try{const e=localStorage.getItem("public-log-fold-state");e&&(m.value=JSON.parse(e))}catch{m.value={}}},K=()=>{localStorage.setItem("public-log-fold-state",JSON.stringify(m.value))},g=e=>m.value[e]===!0,Q=e=>{m.value[e]=!g(e),K()},A=async()=>{if(!v){v=!0,d.value="";try{const[e,t]=await Promise.all([te.list({limit:F}),se.overview()]);a.value=e.logs,p.value=t,L.value=new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch(e){d.value=e.message||"日志加载失败"}finally{v=!1}}},W=async()=>{try{b.value=await re.overview()}catch{b.value=null}},y=()=>{f&&(window.clearTimeout(f),f=void 0)},B=()=>{document.hidden||(f=window.setTimeout(async()=>{await A(),B()},ke))},N=()=>{y(),B()},R=()=>{document.hidden?y():N()};return Y(()=>{H(),W(),A(),N(),document.addEventListener("visibilitychange",R)}),Z(()=>{y(),document.removeEventListener("visibilitychange",R)}),(e,t)=>(l(),o("div",oe,[s("div",le,[s("section",ae,[s("div",ne,[s("div",ue,[s("img",{src:j.value,alt:"Gemini Business2API",class:"h-8 w-8 object-contain"},null,8,ie),t[0]||(t[0]=s("div",null,[s("p",{class:"text-base font-semibold text-foreground"},"公开日志")],-1))]),t[1]||(t[1]=s("div",{class:"flex items-center gap-2 text-xs text-muted-foreground"},[s("span",null,"自动刷新:3s")],-1))]),s("div",ce,[s("div",{class:"text-xs text-muted-foreground"},[t[2]||(t[2]=E(" 展示最近 ",-1)),s("span",{class:"font-semibold text-foreground"},u(F)),t[3]||(t[3]=E(" 条会话日志 ",-1))]),S.value?(l(),o("a",{key:0,href:S.value,target:"_blank",class:"text-xs font-medium text-emerald-600 transition hover:text-emerald-500"}," 开始对话 ",8,de)):(l(),o("span",me,"开始对话"))]),s("div",pe,[(l(!0),o(_,null,w(M.value,r=>(l(),o("div",{key:r.label,class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},[s("div",be,u(r.label),1),s("div",{class:"mt-1 text-lg font-semibold",style:ee({color:r.color||void 0})},u(r.value),5)]))),128))]),d.value?(l(),o("div",fe,u(d.value),1)):h("",!0),a.value.length===0&&!d.value?(l(),o("div",ve," 暂无日志 ")):a.value.length>0?(l(),o("div",xe,[(l(!0),o(_,null,w(V.value,r=>(l(),o("div",{key:r.request_id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:n=>Q(r.request_id)},[s("span",{class:$(G(r.status))},u(P(r.status)),3),s("span",ye,"req_"+u(r.request_id),1),s("span",he,u(r.events.length)+" 条事件",1),s("span",{class:$(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!g(r.request_id)}])}," ▸ ",2)],8,ge),g(r.request_id)?h("",!0):(l(),o("div",_e,[(l(!0),o(_,null,w(r.events,n=>(l(),o("div",{key:`${r.request_id}-${n.time}-${n.type}`,class:"cv-auto flex flex-wrap items-center gap-3 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",we,u(n.time),1),s("span",{class:$(O(n))},u(J(n)),3),s("div",$e,u(n.content),1)]))),128))]))]))),128))])):h("",!0)])])]))}});export{Le as default}; diff --git a/static/assets/PublicLogs-_aCqOK7E.js b/static/assets/PublicLogs-_aCqOK7E.js new file mode 100644 index 0000000000000000000000000000000000000000..e89900d909dd2689f7e001f3bf184fcd07ee2bcd --- /dev/null +++ b/static/assets/PublicLogs-_aCqOK7E.js @@ -0,0 +1 @@ +import{g as k,d as X,h as c,i,o as Y,j as Z,c as o,a as s,b as h,f as E,t as u,F as _,r as w,k as ee,n as $,e as l}from"./index-DhxxzIOh.js";const te={list:C=>k.get("/public/log",{params:C})},se={overview(){return k.get("/public/stats")}},re={overview(){return k.get("/public/display")}},oe={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},le={class:"mx-auto w-full max-w-6xl min-w-0 px-4 py-8"},ae={class:"rounded-3xl border border-border bg-card p-6"},ne={class:"flex flex-wrap items-start justify-between gap-4"},ue={class:"flex items-center gap-3"},ie=["src"],ce={class:"mt-4 flex flex-wrap items-center justify-between gap-3 rounded-2xl border border-border bg-secondary/40 px-4 py-3"},de=["href"],me={key:1,class:"text-xs text-muted-foreground"},pe={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-4"},be={class:"text-[11px] text-muted-foreground"},fe={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},ve={key:1,class:"mt-4 rounded-2xl border border-border bg-secondary/30 px-4 py-6 text-center text-sm text-muted-foreground"},xe={key:2,class:"mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1 scrollbar-slim"},ge=["onClick"],ye={class:"text-muted-foreground"},he={class:"text-muted-foreground"},_e={key:0,class:"space-y-2 px-4 py-3"},we={class:"text-muted-foreground"},$e={class:"flex-1 text-foreground"},F=1e3,T=1e3,ke=3e3,Le=X({__name:"PublicLogs",setup(C){const a=c([]),p=c(null),b=c(null),d=c(""),L=c("--:--"),m=c({});let f,v=!1;const j=i(()=>b.value?.logo_url?.trim()||"/logo.svg"),S=i(()=>b.value?.chat_url?.trim()||""),U=i(()=>a.value.length),x=i(()=>a.value.filter(e=>e.status==="success").length),q=i(()=>a.value.filter(e=>e.status==="error").length),V=i(()=>a.value.length>T?a.value.slice(-T):a.value),z=i(()=>{let e=0,t=0;return a.value.forEach(r=>{r.status==="success"&&r.events.forEach(n=>{if(n.type!=="complete")return;const D=n.content.match(/([0-9]+(?:\.[0-9]+)?)\s*s/);D&&(e+=Number(D[1]),t+=1)})}),t===0?"-":`${(e/t).toFixed(1)}s`}),I=i(()=>{const e=x.value+q.value;return e===0?"-":`${(x.value/e*100).toFixed(1)}%`}),M=i(()=>[{label:"总访客",value:p.value?.total_visitors??0},{label:"每分钟请求",value:p.value?.requests_per_minute??0,color:p.value?.load_color},{label:"平均响应",value:z.value},{label:"成功率",value:I.value,color:"#10b981"},{label:"对话次数",value:U.value},{label:"成功",value:x.value,color:"#10b981"},{label:"失败",value:q.value,color:"#ef4444"},{label:"更新时间",value:L.value,color:"#6b7280"}]),P=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",G=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},J=e=>e.type==="start"?"开始对话":e.type==="select"?"选择":e.type==="retry"?"重试":e.type==="switch"?"切换":e.type==="complete"?e.status==="success"?"完成":e.status==="error"?"失败":e.status==="timeout"?"超时":"完成":"事件",O=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";if(e.type==="start")return`${t} bg-blue-100 text-blue-700`;if(e.type==="select")return`${t} bg-violet-100 text-violet-700`;if(e.type==="retry")return`${t} bg-amber-100 text-amber-700`;if(e.type==="switch")return`${t} bg-cyan-100 text-cyan-700`;if(e.type==="complete"){if(e.status==="success")return`${t} bg-emerald-100 text-emerald-700`;if(e.status==="error")return`${t} bg-rose-100 text-rose-700`;if(e.status==="timeout")return`${t} bg-amber-100 text-amber-700`}return`${t} bg-slate-100 text-slate-600`},H=()=>{try{const e=localStorage.getItem("public-log-fold-state");e&&(m.value=JSON.parse(e))}catch{m.value={}}},K=()=>{localStorage.setItem("public-log-fold-state",JSON.stringify(m.value))},g=e=>m.value[e]===!0,Q=e=>{m.value[e]=!g(e),K()},A=async()=>{if(!v){v=!0,d.value="";try{const[e,t]=await Promise.all([te.list({limit:F}),se.overview()]);a.value=e.logs,p.value=t,L.value=new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch(e){d.value=e.message||"日志加载失败"}finally{v=!1}}},W=async()=>{try{b.value=await re.overview()}catch{b.value=null}},y=()=>{f&&(window.clearTimeout(f),f=void 0)},B=()=>{document.hidden||(f=window.setTimeout(async()=>{await A(),B()},ke))},N=()=>{y(),B()},R=()=>{document.hidden?y():N()};return Y(()=>{H(),W(),A(),N(),document.addEventListener("visibilitychange",R)}),Z(()=>{y(),document.removeEventListener("visibilitychange",R)}),(e,t)=>(l(),o("div",oe,[s("div",le,[s("section",ae,[s("div",ne,[s("div",ue,[s("img",{src:j.value,alt:"Gemini Business2API",class:"h-8 w-8 object-contain"},null,8,ie),t[0]||(t[0]=s("div",null,[s("p",{class:"text-base font-semibold text-foreground"},"公开日志")],-1))]),t[1]||(t[1]=s("div",{class:"flex items-center gap-2 text-xs text-muted-foreground"},[s("span",null,"自动刷新:3s")],-1))]),s("div",ce,[s("div",{class:"text-xs text-muted-foreground"},[t[2]||(t[2]=E(" 展示最近 ",-1)),s("span",{class:"font-semibold text-foreground"},u(F)),t[3]||(t[3]=E(" 条会话日志 ",-1))]),S.value?(l(),o("a",{key:0,href:S.value,target:"_blank",class:"text-xs font-medium text-emerald-600 transition hover:text-emerald-500"}," 开始对话 ",8,de)):(l(),o("span",me,"开始对话"))]),s("div",pe,[(l(!0),o(_,null,w(M.value,r=>(l(),o("div",{key:r.label,class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},[s("div",be,u(r.label),1),s("div",{class:"mt-1 text-lg font-semibold",style:ee({color:r.color||void 0})},u(r.value),5)]))),128))]),d.value?(l(),o("div",fe,u(d.value),1)):h("",!0),a.value.length===0&&!d.value?(l(),o("div",ve," 暂无日志 ")):a.value.length>0?(l(),o("div",xe,[(l(!0),o(_,null,w(V.value,r=>(l(),o("div",{key:r.request_id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:n=>Q(r.request_id)},[s("span",{class:$(G(r.status))},u(P(r.status)),3),s("span",ye,"req_"+u(r.request_id),1),s("span",he,u(r.events.length)+" 条事件",1),s("span",{class:$(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!g(r.request_id)}])}," ▸ ",2)],8,ge),g(r.request_id)?h("",!0):(l(),o("div",_e,[(l(!0),o(_,null,w(r.events,n=>(l(),o("div",{key:`${r.request_id}-${n.time}-${n.type}`,class:"cv-auto flex flex-wrap items-center gap-3 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",we,u(n.time),1),s("span",{class:$(O(n))},u(J(n)),3),s("div",$e,u(n.content),1)]))),128))]))]))),128))])):h("",!0)])])]))}});export{Le as default}; diff --git a/static/assets/PublicLogs-kb_KTGCa.js b/static/assets/PublicLogs-kb_KTGCa.js new file mode 100644 index 0000000000000000000000000000000000000000..739b93bfdcd07ecc42296d7d16eeae478555aa0b --- /dev/null +++ b/static/assets/PublicLogs-kb_KTGCa.js @@ -0,0 +1 @@ +import{g as k,d as X,h as c,i,o as Y,j as Z,c as o,a as s,b as h,f as E,t as u,F as _,r as w,k as ee,n as $,e as l}from"./index-OP3F9IRB.js";const te={list:C=>k.get("/public/log",{params:C})},se={overview(){return k.get("/public/stats")}},re={overview(){return k.get("/public/display")}},oe={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},le={class:"mx-auto w-full max-w-6xl min-w-0 px-4 py-8"},ae={class:"rounded-3xl border border-border bg-card p-6"},ne={class:"flex flex-wrap items-start justify-between gap-4"},ue={class:"flex items-center gap-3"},ie=["src"],ce={class:"mt-4 flex flex-wrap items-center justify-between gap-3 rounded-2xl border border-border bg-secondary/40 px-4 py-3"},de=["href"],me={key:1,class:"text-xs text-muted-foreground"},pe={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-4"},be={class:"text-[11px] text-muted-foreground"},fe={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},ve={key:1,class:"mt-4 rounded-2xl border border-border bg-secondary/30 px-4 py-6 text-center text-sm text-muted-foreground"},xe={key:2,class:"mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1 scrollbar-slim"},ge=["onClick"],ye={class:"text-muted-foreground"},he={class:"text-muted-foreground"},_e={key:0,class:"space-y-2 px-4 py-3"},we={class:"text-muted-foreground"},$e={class:"flex-1 text-foreground"},F=1e3,T=1e3,ke=3e3,Le=X({__name:"PublicLogs",setup(C){const a=c([]),p=c(null),b=c(null),d=c(""),L=c("--:--"),m=c({});let f,v=!1;const j=i(()=>b.value?.logo_url?.trim()||"/logo.svg"),S=i(()=>b.value?.chat_url?.trim()||""),U=i(()=>a.value.length),x=i(()=>a.value.filter(e=>e.status==="success").length),q=i(()=>a.value.filter(e=>e.status==="error").length),V=i(()=>a.value.length>T?a.value.slice(-T):a.value),z=i(()=>{let e=0,t=0;return a.value.forEach(r=>{r.status==="success"&&r.events.forEach(n=>{if(n.type!=="complete")return;const D=n.content.match(/([0-9]+(?:\.[0-9]+)?)\s*s/);D&&(e+=Number(D[1]),t+=1)})}),t===0?"-":`${(e/t).toFixed(1)}s`}),I=i(()=>{const e=x.value+q.value;return e===0?"-":`${(x.value/e*100).toFixed(1)}%`}),M=i(()=>[{label:"总访客",value:p.value?.total_visitors??0},{label:"每分钟请求",value:p.value?.requests_per_minute??0,color:p.value?.load_color},{label:"平均响应",value:z.value},{label:"成功率",value:I.value,color:"#10b981"},{label:"对话次数",value:U.value},{label:"成功",value:x.value,color:"#10b981"},{label:"失败",value:q.value,color:"#ef4444"},{label:"更新时间",value:L.value,color:"#6b7280"}]),P=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",G=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},J=e=>e.type==="start"?"开始对话":e.type==="select"?"选择":e.type==="retry"?"重试":e.type==="switch"?"切换":e.type==="complete"?e.status==="success"?"完成":e.status==="error"?"失败":e.status==="timeout"?"超时":"完成":"事件",O=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";if(e.type==="start")return`${t} bg-blue-100 text-blue-700`;if(e.type==="select")return`${t} bg-violet-100 text-violet-700`;if(e.type==="retry")return`${t} bg-amber-100 text-amber-700`;if(e.type==="switch")return`${t} bg-cyan-100 text-cyan-700`;if(e.type==="complete"){if(e.status==="success")return`${t} bg-emerald-100 text-emerald-700`;if(e.status==="error")return`${t} bg-rose-100 text-rose-700`;if(e.status==="timeout")return`${t} bg-amber-100 text-amber-700`}return`${t} bg-slate-100 text-slate-600`},H=()=>{try{const e=localStorage.getItem("public-log-fold-state");e&&(m.value=JSON.parse(e))}catch{m.value={}}},K=()=>{localStorage.setItem("public-log-fold-state",JSON.stringify(m.value))},g=e=>m.value[e]===!0,Q=e=>{m.value[e]=!g(e),K()},A=async()=>{if(!v){v=!0,d.value="";try{const[e,t]=await Promise.all([te.list({limit:F}),se.overview()]);a.value=e.logs,p.value=t,L.value=new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch(e){d.value=e.message||"日志加载失败"}finally{v=!1}}},W=async()=>{try{b.value=await re.overview()}catch{b.value=null}},y=()=>{f&&(window.clearTimeout(f),f=void 0)},B=()=>{document.hidden||(f=window.setTimeout(async()=>{await A(),B()},ke))},N=()=>{y(),B()},R=()=>{document.hidden?y():N()};return Y(()=>{H(),W(),A(),N(),document.addEventListener("visibilitychange",R)}),Z(()=>{y(),document.removeEventListener("visibilitychange",R)}),(e,t)=>(l(),o("div",oe,[s("div",le,[s("section",ae,[s("div",ne,[s("div",ue,[s("img",{src:j.value,alt:"Gemini Business2API",class:"h-8 w-8 object-contain"},null,8,ie),t[0]||(t[0]=s("div",null,[s("p",{class:"text-base font-semibold text-foreground"},"公开日志")],-1))]),t[1]||(t[1]=s("div",{class:"flex items-center gap-2 text-xs text-muted-foreground"},[s("span",null,"自动刷新:3s")],-1))]),s("div",ce,[s("div",{class:"text-xs text-muted-foreground"},[t[2]||(t[2]=E(" 展示最近 ",-1)),s("span",{class:"font-semibold text-foreground"},u(F)),t[3]||(t[3]=E(" 条会话日志 ",-1))]),S.value?(l(),o("a",{key:0,href:S.value,target:"_blank",class:"text-xs font-medium text-emerald-600 transition hover:text-emerald-500"}," 开始对话 ",8,de)):(l(),o("span",me,"开始对话"))]),s("div",pe,[(l(!0),o(_,null,w(M.value,r=>(l(),o("div",{key:r.label,class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},[s("div",be,u(r.label),1),s("div",{class:"mt-1 text-lg font-semibold",style:ee({color:r.color||void 0})},u(r.value),5)]))),128))]),d.value?(l(),o("div",fe,u(d.value),1)):h("",!0),a.value.length===0&&!d.value?(l(),o("div",ve," 暂无日志 ")):a.value.length>0?(l(),o("div",xe,[(l(!0),o(_,null,w(V.value,r=>(l(),o("div",{key:r.request_id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:n=>Q(r.request_id)},[s("span",{class:$(G(r.status))},u(P(r.status)),3),s("span",ye,"req_"+u(r.request_id),1),s("span",he,u(r.events.length)+" 条事件",1),s("span",{class:$(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!g(r.request_id)}])}," ▸ ",2)],8,ge),g(r.request_id)?h("",!0):(l(),o("div",_e,[(l(!0),o(_,null,w(r.events,n=>(l(),o("div",{key:`${r.request_id}-${n.time}-${n.type}`,class:"cv-auto flex flex-wrap items-center gap-3 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",we,u(n.time),1),s("span",{class:$(O(n))},u(J(n)),3),s("div",$e,u(n.content),1)]))),128))]))]))),128))])):h("",!0)])])]))}});export{Le as default}; diff --git a/static/assets/PublicLogs-ugEyY0XU.js b/static/assets/PublicLogs-ugEyY0XU.js new file mode 100644 index 0000000000000000000000000000000000000000..5fd79c65abc9ab1b476523e4d24f801141dcc0fe --- /dev/null +++ b/static/assets/PublicLogs-ugEyY0XU.js @@ -0,0 +1 @@ +import{g as k,d as X,h as c,i,o as Y,j as Z,c as o,a as s,b as h,f as E,t as u,F as _,r as w,k as ee,n as $,e as l}from"./index-CkXB0iyt.js";const te={list:C=>k.get("/public/log",{params:C})},se={overview(){return k.get("/public/stats")}},re={overview(){return k.get("/public/display")}},oe={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},le={class:"mx-auto w-full max-w-6xl min-w-0 px-4 py-8"},ae={class:"rounded-3xl border border-border bg-card p-6"},ne={class:"flex flex-wrap items-start justify-between gap-4"},ue={class:"flex items-center gap-3"},ie=["src"],ce={class:"mt-4 flex flex-wrap items-center justify-between gap-3 rounded-2xl border border-border bg-secondary/40 px-4 py-3"},de=["href"],me={key:1,class:"text-xs text-muted-foreground"},pe={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-4"},be={class:"text-[11px] text-muted-foreground"},fe={key:0,class:"mt-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},ve={key:1,class:"mt-4 rounded-2xl border border-border bg-secondary/30 px-4 py-6 text-center text-sm text-muted-foreground"},xe={key:2,class:"mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1 scrollbar-slim"},ge=["onClick"],ye={class:"text-muted-foreground"},he={class:"text-muted-foreground"},_e={key:0,class:"space-y-2 px-4 py-3"},we={class:"text-muted-foreground"},$e={class:"flex-1 text-foreground"},F=1e3,T=1e3,ke=3e3,Le=X({__name:"PublicLogs",setup(C){const a=c([]),p=c(null),b=c(null),d=c(""),L=c("--:--"),m=c({});let f,v=!1;const j=i(()=>b.value?.logo_url?.trim()||"/logo.svg"),S=i(()=>b.value?.chat_url?.trim()||""),U=i(()=>a.value.length),x=i(()=>a.value.filter(e=>e.status==="success").length),q=i(()=>a.value.filter(e=>e.status==="error").length),V=i(()=>a.value.length>T?a.value.slice(-T):a.value),z=i(()=>{let e=0,t=0;return a.value.forEach(r=>{r.status==="success"&&r.events.forEach(n=>{if(n.type!=="complete")return;const D=n.content.match(/([0-9]+(?:\.[0-9]+)?)\s*s/);D&&(e+=Number(D[1]),t+=1)})}),t===0?"-":`${(e/t).toFixed(1)}s`}),I=i(()=>{const e=x.value+q.value;return e===0?"-":`${(x.value/e*100).toFixed(1)}%`}),M=i(()=>[{label:"总访客",value:p.value?.total_visitors??0},{label:"每分钟请求",value:p.value?.requests_per_minute??0,color:p.value?.load_color},{label:"平均响应",value:z.value},{label:"成功率",value:I.value,color:"#10b981"},{label:"对话次数",value:U.value},{label:"成功",value:x.value,color:"#10b981"},{label:"失败",value:q.value,color:"#ef4444"},{label:"更新时间",value:L.value,color:"#6b7280"}]),P=e=>e==="success"?"成功":e==="error"?"失败":e==="timeout"?"超时":"进行中",G=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";return e==="success"?`${t} bg-emerald-100 text-emerald-700`:e==="error"?`${t} bg-rose-100 text-rose-700`:e==="timeout"?`${t} bg-amber-100 text-amber-700`:`${t} bg-amber-100 text-amber-700`},J=e=>e.type==="start"?"开始对话":e.type==="select"?"选择":e.type==="retry"?"重试":e.type==="switch"?"切换":e.type==="complete"?e.status==="success"?"完成":e.status==="error"?"失败":e.status==="timeout"?"超时":"完成":"事件",O=e=>{const t="rounded-md px-2 py-0.5 text-[11px] font-semibold";if(e.type==="start")return`${t} bg-blue-100 text-blue-700`;if(e.type==="select")return`${t} bg-violet-100 text-violet-700`;if(e.type==="retry")return`${t} bg-amber-100 text-amber-700`;if(e.type==="switch")return`${t} bg-cyan-100 text-cyan-700`;if(e.type==="complete"){if(e.status==="success")return`${t} bg-emerald-100 text-emerald-700`;if(e.status==="error")return`${t} bg-rose-100 text-rose-700`;if(e.status==="timeout")return`${t} bg-amber-100 text-amber-700`}return`${t} bg-slate-100 text-slate-600`},H=()=>{try{const e=localStorage.getItem("public-log-fold-state");e&&(m.value=JSON.parse(e))}catch{m.value={}}},K=()=>{localStorage.setItem("public-log-fold-state",JSON.stringify(m.value))},g=e=>m.value[e]===!0,Q=e=>{m.value[e]=!g(e),K()},A=async()=>{if(!v){v=!0,d.value="";try{const[e,t]=await Promise.all([te.list({limit:F}),se.overview()]);a.value=e.logs,p.value=t,L.value=new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch(e){d.value=e.message||"日志加载失败"}finally{v=!1}}},W=async()=>{try{b.value=await re.overview()}catch{b.value=null}},y=()=>{f&&(window.clearTimeout(f),f=void 0)},B=()=>{document.hidden||(f=window.setTimeout(async()=>{await A(),B()},ke))},N=()=>{y(),B()},R=()=>{document.hidden?y():N()};return Y(()=>{H(),W(),A(),N(),document.addEventListener("visibilitychange",R)}),Z(()=>{y(),document.removeEventListener("visibilitychange",R)}),(e,t)=>(l(),o("div",oe,[s("div",le,[s("section",ae,[s("div",ne,[s("div",ue,[s("img",{src:j.value,alt:"Gemini Business2API",class:"h-8 w-8 object-contain"},null,8,ie),t[0]||(t[0]=s("div",null,[s("p",{class:"text-base font-semibold text-foreground"},"公开日志")],-1))]),t[1]||(t[1]=s("div",{class:"flex items-center gap-2 text-xs text-muted-foreground"},[s("span",null,"自动刷新:3s")],-1))]),s("div",ce,[s("div",{class:"text-xs text-muted-foreground"},[t[2]||(t[2]=E(" 展示最近 ",-1)),s("span",{class:"font-semibold text-foreground"},u(F)),t[3]||(t[3]=E(" 条会话日志 ",-1))]),S.value?(l(),o("a",{key:0,href:S.value,target:"_blank",class:"text-xs font-medium text-emerald-600 transition hover:text-emerald-500"}," 开始对话 ",8,de)):(l(),o("span",me,"开始对话"))]),s("div",pe,[(l(!0),o(_,null,w(M.value,r=>(l(),o("div",{key:r.label,class:"rounded-2xl border border-border bg-card px-4 py-3 text-center"},[s("div",be,u(r.label),1),s("div",{class:"mt-1 text-lg font-semibold",style:ee({color:r.color||void 0})},u(r.value),5)]))),128))]),d.value?(l(),o("div",fe,u(d.value),1)):h("",!0),a.value.length===0&&!d.value?(l(),o("div",ve," 暂无日志 ")):a.value.length>0?(l(),o("div",xe,[(l(!0),o(_,null,w(V.value,r=>(l(),o("div",{key:r.request_id,class:"rounded-2xl border border-border bg-card"},[s("button",{type:"button",class:"flex w-full flex-wrap items-center gap-2 rounded-2xl bg-secondary/40 px-4 py-3 text-left text-xs transition hover:bg-secondary/60",onClick:n=>Q(r.request_id)},[s("span",{class:$(G(r.status))},u(P(r.status)),3),s("span",ye,"req_"+u(r.request_id),1),s("span",he,u(r.events.length)+" 条事件",1),s("span",{class:$(["ml-auto text-muted-foreground transition-transform",{"rotate-90":!g(r.request_id)}])}," ▸ ",2)],8,ge),g(r.request_id)?h("",!0):(l(),o("div",_e,[(l(!0),o(_,null,w(r.events,n=>(l(),o("div",{key:`${r.request_id}-${n.time}-${n.type}`,class:"cv-auto flex flex-wrap items-center gap-3 rounded-xl border border-border bg-card px-3 py-2 text-xs"},[s("div",we,u(n.time),1),s("span",{class:$(O(n))},u(J(n)),3),s("div",$e,u(n.content),1)]))),128))]))]))),128))])):h("",!0)])])]))}});export{Le as default}; diff --git a/static/assets/PublicUptime-65SUPpJU.js b/static/assets/PublicUptime-65SUPpJU.js new file mode 100644 index 0000000000000000000000000000000000000000..bc688488008aea27cf9c8e90bbbccf5c6f323153 --- /dev/null +++ b/static/assets/PublicUptime-65SUPpJU.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-CwWFJXPV.js";import{d as h,o as v,c as o,a as t,b as i,t as r,u as n,F as _,r as m,e as a,n as p,f as c}from"./index-C4edAQLF.js";const y={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},k={class:"mx-auto flex min-h-screen w-full max-w-5xl min-w-0 items-center justify-center px-4 py-8"},w={class:"w-full rounded-3xl border border-border bg-card p-6"},C={class:"mb-6 flex flex-wrap items-center justify-between gap-3"},N={class:"text-xs text-muted-foreground"},B={key:0,class:"mb-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},S={class:"grid gap-8 md:grid-cols-2"},V={class:"monitor-card__header"},j={class:"monitor-card__name"},F={class:"monitor-card__stats"},L={class:"monitor-card__value"},M={class:"monitor-card__value"},U={class:"monitor-card__value"},$={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},A={key:0,class:"rounded-2xl border border-border bg-card p-4 text-xs text-muted-foreground"},q=h({__name:"PublicUptime",setup(D){const{services:u,updatedAt:x,errorMessage:d,refreshStatus:b}=g();return v(()=>{b()}),(E,e)=>(a(),o("div",y,[t("div",k,[t("section",w,[t("div",C,[e[0]||(e[0]=t("div",null,[t("p",{class:"text-sm font-medium text-foreground"},"服务状态")],-1)),t("p",N,"最近更新:"+r(n(x)||"未获取"),1)]),n(d)?(a(),o("div",B,r(n(d)),1)):i("",!0),t("div",S,[(a(!0),o(_,null,m(n(u),s=>(a(),o("div",{key:s.key,class:"monitor-card"},[t("div",V,[t("span",j,r(s.name),1),t("span",{class:p(["monitor-card__badge",s.statusClass])},r(s.statusLabel),3)]),t("div",F,[t("span",null,[e[1]||(e[1]=c("可用率 ",-1)),t("span",L,r(s.uptime)+"%",1)]),t("span",null,[e[2]||(e[2]=c("请求 ",-1)),t("span",M,r(s.total),1)]),t("span",null,[e[3]||(e[3]=c("成功 ",-1)),t("span",U,r(s.success),1)])]),t("div",$,[(a(!0),o(_,null,m(s.beats,(l,f)=>(a(),o("div",{key:`${s.key}-${f}`,class:p(["monitor-beat",l.className])},[l.tooltip?(a(),o("span",z,r(l.tooltip),1)):i("",!0)],2))),128))])]))),128)),!n(u).length&&!n(d)?(a(),o("div",A," 暂无监控数据。 ")):i("",!0)])])])]))}});export{q as default}; diff --git a/static/assets/PublicUptime-B25ac8iY.js b/static/assets/PublicUptime-B25ac8iY.js new file mode 100644 index 0000000000000000000000000000000000000000..be94ea3e172228ca73850de1e1d7f1102325a092 --- /dev/null +++ b/static/assets/PublicUptime-B25ac8iY.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-yHoqpTV5.js";import{d as h,o as v,c as o,a as t,b as i,t as r,u as n,F as _,r as m,e as a,n as p,f as c}from"./index-BRg_yWJl.js";const y={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},k={class:"mx-auto flex min-h-screen w-full max-w-5xl min-w-0 items-center justify-center px-4 py-8"},w={class:"w-full rounded-3xl border border-border bg-card p-6"},C={class:"mb-6 flex flex-wrap items-center justify-between gap-3"},N={class:"text-xs text-muted-foreground"},B={key:0,class:"mb-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},S={class:"grid gap-8 md:grid-cols-2"},V={class:"monitor-card__header"},j={class:"monitor-card__name"},F={class:"monitor-card__stats"},L={class:"monitor-card__value"},M={class:"monitor-card__value"},U={class:"monitor-card__value"},$={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},A={key:0,class:"rounded-2xl border border-border bg-card p-4 text-xs text-muted-foreground"},q=h({__name:"PublicUptime",setup(D){const{services:u,updatedAt:x,errorMessage:d,refreshStatus:b}=g();return v(()=>{b()}),(E,e)=>(a(),o("div",y,[t("div",k,[t("section",w,[t("div",C,[e[0]||(e[0]=t("div",null,[t("p",{class:"text-sm font-medium text-foreground"},"服务状态")],-1)),t("p",N,"最近更新:"+r(n(x)||"未获取"),1)]),n(d)?(a(),o("div",B,r(n(d)),1)):i("",!0),t("div",S,[(a(!0),o(_,null,m(n(u),s=>(a(),o("div",{key:s.key,class:"monitor-card"},[t("div",V,[t("span",j,r(s.name),1),t("span",{class:p(["monitor-card__badge",s.statusClass])},r(s.statusLabel),3)]),t("div",F,[t("span",null,[e[1]||(e[1]=c("可用率 ",-1)),t("span",L,r(s.uptime)+"%",1)]),t("span",null,[e[2]||(e[2]=c("请求 ",-1)),t("span",M,r(s.total),1)]),t("span",null,[e[3]||(e[3]=c("成功 ",-1)),t("span",U,r(s.success),1)])]),t("div",$,[(a(!0),o(_,null,m(s.beats,(l,f)=>(a(),o("div",{key:`${s.key}-${f}`,class:p(["monitor-beat",l.className])},[l.tooltip?(a(),o("span",z,r(l.tooltip),1)):i("",!0)],2))),128))])]))),128)),!n(u).length&&!n(d)?(a(),o("div",A," 暂无监控数据。 ")):i("",!0)])])])]))}});export{q as default}; diff --git a/static/assets/PublicUptime-BEv5lCkt.js b/static/assets/PublicUptime-BEv5lCkt.js new file mode 100644 index 0000000000000000000000000000000000000000..ae71ef2a27a79276771badcfaacdd4e17dbc9725 --- /dev/null +++ b/static/assets/PublicUptime-BEv5lCkt.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-B1gVi6oM.js";import{d as h,o as v,c as o,a as t,b as i,t as r,u as n,F as _,r as m,e as a,n as p,f as c}from"./index-JaBfp01b.js";const y={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},k={class:"mx-auto flex min-h-screen w-full max-w-5xl min-w-0 items-center justify-center px-4 py-8"},w={class:"w-full rounded-3xl border border-border bg-card p-6"},C={class:"mb-6 flex flex-wrap items-center justify-between gap-3"},N={class:"text-xs text-muted-foreground"},B={key:0,class:"mb-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},S={class:"grid gap-8 md:grid-cols-2"},V={class:"monitor-card__header"},j={class:"monitor-card__name"},F={class:"monitor-card__stats"},L={class:"monitor-card__value"},M={class:"monitor-card__value"},U={class:"monitor-card__value"},$={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},A={key:0,class:"rounded-2xl border border-border bg-card p-4 text-xs text-muted-foreground"},q=h({__name:"PublicUptime",setup(D){const{services:u,updatedAt:x,errorMessage:d,refreshStatus:b}=g();return v(()=>{b()}),(E,e)=>(a(),o("div",y,[t("div",k,[t("section",w,[t("div",C,[e[0]||(e[0]=t("div",null,[t("p",{class:"text-sm font-medium text-foreground"},"服务状态")],-1)),t("p",N,"最近更新:"+r(n(x)||"未获取"),1)]),n(d)?(a(),o("div",B,r(n(d)),1)):i("",!0),t("div",S,[(a(!0),o(_,null,m(n(u),s=>(a(),o("div",{key:s.key,class:"monitor-card"},[t("div",V,[t("span",j,r(s.name),1),t("span",{class:p(["monitor-card__badge",s.statusClass])},r(s.statusLabel),3)]),t("div",F,[t("span",null,[e[1]||(e[1]=c("可用率 ",-1)),t("span",L,r(s.uptime)+"%",1)]),t("span",null,[e[2]||(e[2]=c("请求 ",-1)),t("span",M,r(s.total),1)]),t("span",null,[e[3]||(e[3]=c("成功 ",-1)),t("span",U,r(s.success),1)])]),t("div",$,[(a(!0),o(_,null,m(s.beats,(l,f)=>(a(),o("div",{key:`${s.key}-${f}`,class:p(["monitor-beat",l.className])},[l.tooltip?(a(),o("span",z,r(l.tooltip),1)):i("",!0)],2))),128))])]))),128)),!n(u).length&&!n(d)?(a(),o("div",A," 暂无监控数据。 ")):i("",!0)])])])]))}});export{q as default}; diff --git a/static/assets/PublicUptime-BGMR85hP.js b/static/assets/PublicUptime-BGMR85hP.js new file mode 100644 index 0000000000000000000000000000000000000000..a09b1b46cc6debe460039a0b705649df34521e03 --- /dev/null +++ b/static/assets/PublicUptime-BGMR85hP.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-Cxcf3uxZ.js";import{d as h,o as v,c as o,a as t,b as i,t as r,u as n,F as _,r as m,e as a,n as p,f as c}from"./index-Bjh6Z8Zq.js";const y={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},k={class:"mx-auto flex min-h-screen w-full max-w-5xl min-w-0 items-center justify-center px-4 py-8"},w={class:"w-full rounded-3xl border border-border bg-card p-6"},C={class:"mb-6 flex flex-wrap items-center justify-between gap-3"},N={class:"text-xs text-muted-foreground"},B={key:0,class:"mb-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},S={class:"grid gap-8 md:grid-cols-2"},V={class:"monitor-card__header"},j={class:"monitor-card__name"},F={class:"monitor-card__stats"},L={class:"monitor-card__value"},M={class:"monitor-card__value"},U={class:"monitor-card__value"},$={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},A={key:0,class:"rounded-2xl border border-border bg-card p-4 text-xs text-muted-foreground"},q=h({__name:"PublicUptime",setup(D){const{services:u,updatedAt:x,errorMessage:d,refreshStatus:b}=g();return v(()=>{b()}),(E,e)=>(a(),o("div",y,[t("div",k,[t("section",w,[t("div",C,[e[0]||(e[0]=t("div",null,[t("p",{class:"text-sm font-medium text-foreground"},"服务状态")],-1)),t("p",N,"最近更新:"+r(n(x)||"未获取"),1)]),n(d)?(a(),o("div",B,r(n(d)),1)):i("",!0),t("div",S,[(a(!0),o(_,null,m(n(u),s=>(a(),o("div",{key:s.key,class:"monitor-card"},[t("div",V,[t("span",j,r(s.name),1),t("span",{class:p(["monitor-card__badge",s.statusClass])},r(s.statusLabel),3)]),t("div",F,[t("span",null,[e[1]||(e[1]=c("可用率 ",-1)),t("span",L,r(s.uptime)+"%",1)]),t("span",null,[e[2]||(e[2]=c("请求 ",-1)),t("span",M,r(s.total),1)]),t("span",null,[e[3]||(e[3]=c("成功 ",-1)),t("span",U,r(s.success),1)])]),t("div",$,[(a(!0),o(_,null,m(s.beats,(l,f)=>(a(),o("div",{key:`${s.key}-${f}`,class:p(["monitor-beat",l.className])},[l.tooltip?(a(),o("span",z,r(l.tooltip),1)):i("",!0)],2))),128))])]))),128)),!n(u).length&&!n(d)?(a(),o("div",A," 暂无监控数据。 ")):i("",!0)])])])]))}});export{q as default}; diff --git a/static/assets/PublicUptime-BHpUIBOr.js b/static/assets/PublicUptime-BHpUIBOr.js new file mode 100644 index 0000000000000000000000000000000000000000..1ba9324e9c001ed60527865d90fbcff00c29ea4e --- /dev/null +++ b/static/assets/PublicUptime-BHpUIBOr.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-D_PU76s5.js";import{d as h,o as v,c as o,a as t,b as i,t as r,u as n,F as _,r as m,e as a,n as p,f as c}from"./index-B0A0-QFY.js";const y={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},k={class:"mx-auto flex min-h-screen w-full max-w-5xl min-w-0 items-center justify-center px-4 py-8"},w={class:"w-full rounded-3xl border border-border bg-card p-6"},C={class:"mb-6 flex flex-wrap items-center justify-between gap-3"},N={class:"text-xs text-muted-foreground"},B={key:0,class:"mb-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},S={class:"grid gap-8 md:grid-cols-2"},V={class:"monitor-card__header"},j={class:"monitor-card__name"},F={class:"monitor-card__stats"},L={class:"monitor-card__value"},M={class:"monitor-card__value"},U={class:"monitor-card__value"},$={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},A={key:0,class:"rounded-2xl border border-border bg-card p-4 text-xs text-muted-foreground"},q=h({__name:"PublicUptime",setup(D){const{services:u,updatedAt:x,errorMessage:d,refreshStatus:b}=g();return v(()=>{b()}),(E,e)=>(a(),o("div",y,[t("div",k,[t("section",w,[t("div",C,[e[0]||(e[0]=t("div",null,[t("p",{class:"text-sm font-medium text-foreground"},"服务状态")],-1)),t("p",N,"最近更新:"+r(n(x)||"未获取"),1)]),n(d)?(a(),o("div",B,r(n(d)),1)):i("",!0),t("div",S,[(a(!0),o(_,null,m(n(u),s=>(a(),o("div",{key:s.key,class:"monitor-card"},[t("div",V,[t("span",j,r(s.name),1),t("span",{class:p(["monitor-card__badge",s.statusClass])},r(s.statusLabel),3)]),t("div",F,[t("span",null,[e[1]||(e[1]=c("可用率 ",-1)),t("span",L,r(s.uptime)+"%",1)]),t("span",null,[e[2]||(e[2]=c("请求 ",-1)),t("span",M,r(s.total),1)]),t("span",null,[e[3]||(e[3]=c("成功 ",-1)),t("span",U,r(s.success),1)])]),t("div",$,[(a(!0),o(_,null,m(s.beats,(l,f)=>(a(),o("div",{key:`${s.key}-${f}`,class:p(["monitor-beat",l.className])},[l.tooltip?(a(),o("span",z,r(l.tooltip),1)):i("",!0)],2))),128))])]))),128)),!n(u).length&&!n(d)?(a(),o("div",A," 暂无监控数据。 ")):i("",!0)])])])]))}});export{q as default}; diff --git a/static/assets/PublicUptime-BMb71sHa.js b/static/assets/PublicUptime-BMb71sHa.js new file mode 100644 index 0000000000000000000000000000000000000000..2c74d5df3adab7ece415b47ae04f1143301ea121 --- /dev/null +++ b/static/assets/PublicUptime-BMb71sHa.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-CvvhfM9c.js";import{d as h,o as v,c as o,a as t,b as i,t as r,u as n,F as _,r as m,e as a,n as p,f as c}from"./index-OP3F9IRB.js";const y={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},k={class:"mx-auto flex min-h-screen w-full max-w-5xl min-w-0 items-center justify-center px-4 py-8"},w={class:"w-full rounded-3xl border border-border bg-card p-6"},C={class:"mb-6 flex flex-wrap items-center justify-between gap-3"},N={class:"text-xs text-muted-foreground"},B={key:0,class:"mb-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},S={class:"grid gap-8 md:grid-cols-2"},V={class:"monitor-card__header"},j={class:"monitor-card__name"},F={class:"monitor-card__stats"},L={class:"monitor-card__value"},M={class:"monitor-card__value"},U={class:"monitor-card__value"},$={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},A={key:0,class:"rounded-2xl border border-border bg-card p-4 text-xs text-muted-foreground"},q=h({__name:"PublicUptime",setup(D){const{services:u,updatedAt:x,errorMessage:d,refreshStatus:b}=g();return v(()=>{b()}),(E,e)=>(a(),o("div",y,[t("div",k,[t("section",w,[t("div",C,[e[0]||(e[0]=t("div",null,[t("p",{class:"text-sm font-medium text-foreground"},"服务状态")],-1)),t("p",N,"最近更新:"+r(n(x)||"未获取"),1)]),n(d)?(a(),o("div",B,r(n(d)),1)):i("",!0),t("div",S,[(a(!0),o(_,null,m(n(u),s=>(a(),o("div",{key:s.key,class:"monitor-card"},[t("div",V,[t("span",j,r(s.name),1),t("span",{class:p(["monitor-card__badge",s.statusClass])},r(s.statusLabel),3)]),t("div",F,[t("span",null,[e[1]||(e[1]=c("可用率 ",-1)),t("span",L,r(s.uptime)+"%",1)]),t("span",null,[e[2]||(e[2]=c("请求 ",-1)),t("span",M,r(s.total),1)]),t("span",null,[e[3]||(e[3]=c("成功 ",-1)),t("span",U,r(s.success),1)])]),t("div",$,[(a(!0),o(_,null,m(s.beats,(l,f)=>(a(),o("div",{key:`${s.key}-${f}`,class:p(["monitor-beat",l.className])},[l.tooltip?(a(),o("span",z,r(l.tooltip),1)):i("",!0)],2))),128))])]))),128)),!n(u).length&&!n(d)?(a(),o("div",A," 暂无监控数据。 ")):i("",!0)])])])]))}});export{q as default}; diff --git a/static/assets/PublicUptime-B_51BvN0.js b/static/assets/PublicUptime-B_51BvN0.js new file mode 100644 index 0000000000000000000000000000000000000000..f92c1cb7ec143481c314c9a2544ff0c760144454 --- /dev/null +++ b/static/assets/PublicUptime-B_51BvN0.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-H8dNuGpH.js";import{d as h,o as v,c as o,a as t,b as i,t as r,u as n,F as _,r as m,e as a,n as p,f as c}from"./index-DL4Fp3an.js";const y={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},k={class:"mx-auto flex min-h-screen w-full max-w-5xl min-w-0 items-center justify-center px-4 py-8"},w={class:"w-full rounded-3xl border border-border bg-card p-6"},C={class:"mb-6 flex flex-wrap items-center justify-between gap-3"},N={class:"text-xs text-muted-foreground"},B={key:0,class:"mb-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},S={class:"grid gap-8 md:grid-cols-2"},V={class:"monitor-card__header"},j={class:"monitor-card__name"},F={class:"monitor-card__stats"},L={class:"monitor-card__value"},M={class:"monitor-card__value"},U={class:"monitor-card__value"},$={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},A={key:0,class:"rounded-2xl border border-border bg-card p-4 text-xs text-muted-foreground"},q=h({__name:"PublicUptime",setup(D){const{services:u,updatedAt:x,errorMessage:d,refreshStatus:b}=g();return v(()=>{b()}),(E,e)=>(a(),o("div",y,[t("div",k,[t("section",w,[t("div",C,[e[0]||(e[0]=t("div",null,[t("p",{class:"text-sm font-medium text-foreground"},"服务状态")],-1)),t("p",N,"最近更新:"+r(n(x)||"未获取"),1)]),n(d)?(a(),o("div",B,r(n(d)),1)):i("",!0),t("div",S,[(a(!0),o(_,null,m(n(u),s=>(a(),o("div",{key:s.key,class:"monitor-card"},[t("div",V,[t("span",j,r(s.name),1),t("span",{class:p(["monitor-card__badge",s.statusClass])},r(s.statusLabel),3)]),t("div",F,[t("span",null,[e[1]||(e[1]=c("可用率 ",-1)),t("span",L,r(s.uptime)+"%",1)]),t("span",null,[e[2]||(e[2]=c("请求 ",-1)),t("span",M,r(s.total),1)]),t("span",null,[e[3]||(e[3]=c("成功 ",-1)),t("span",U,r(s.success),1)])]),t("div",$,[(a(!0),o(_,null,m(s.beats,(l,f)=>(a(),o("div",{key:`${s.key}-${f}`,class:p(["monitor-beat",l.className])},[l.tooltip?(a(),o("span",z,r(l.tooltip),1)):i("",!0)],2))),128))])]))),128)),!n(u).length&&!n(d)?(a(),o("div",A," 暂无监控数据。 ")):i("",!0)])])])]))}});export{q as default}; diff --git a/static/assets/PublicUptime-BbcdsmiG.js b/static/assets/PublicUptime-BbcdsmiG.js new file mode 100644 index 0000000000000000000000000000000000000000..04d89225adfe99d8bd39824795c22f4b29f5fbb6 --- /dev/null +++ b/static/assets/PublicUptime-BbcdsmiG.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-D9UpA0jd.js";import{d as h,o as v,c as o,a as t,b as i,t as r,u as n,F as _,r as m,e as a,n as p,f as c}from"./index-CQv2QMzB.js";const y={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},k={class:"mx-auto flex min-h-screen w-full max-w-5xl min-w-0 items-center justify-center px-4 py-8"},w={class:"w-full rounded-3xl border border-border bg-card p-6"},C={class:"mb-6 flex flex-wrap items-center justify-between gap-3"},N={class:"text-xs text-muted-foreground"},B={key:0,class:"mb-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},S={class:"grid gap-8 md:grid-cols-2"},V={class:"monitor-card__header"},j={class:"monitor-card__name"},F={class:"monitor-card__stats"},L={class:"monitor-card__value"},M={class:"monitor-card__value"},U={class:"monitor-card__value"},$={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},A={key:0,class:"rounded-2xl border border-border bg-card p-4 text-xs text-muted-foreground"},q=h({__name:"PublicUptime",setup(D){const{services:u,updatedAt:x,errorMessage:d,refreshStatus:b}=g();return v(()=>{b()}),(E,e)=>(a(),o("div",y,[t("div",k,[t("section",w,[t("div",C,[e[0]||(e[0]=t("div",null,[t("p",{class:"text-sm font-medium text-foreground"},"服务状态")],-1)),t("p",N,"最近更新:"+r(n(x)||"未获取"),1)]),n(d)?(a(),o("div",B,r(n(d)),1)):i("",!0),t("div",S,[(a(!0),o(_,null,m(n(u),s=>(a(),o("div",{key:s.key,class:"monitor-card"},[t("div",V,[t("span",j,r(s.name),1),t("span",{class:p(["monitor-card__badge",s.statusClass])},r(s.statusLabel),3)]),t("div",F,[t("span",null,[e[1]||(e[1]=c("可用率 ",-1)),t("span",L,r(s.uptime)+"%",1)]),t("span",null,[e[2]||(e[2]=c("请求 ",-1)),t("span",M,r(s.total),1)]),t("span",null,[e[3]||(e[3]=c("成功 ",-1)),t("span",U,r(s.success),1)])]),t("div",$,[(a(!0),o(_,null,m(s.beats,(l,f)=>(a(),o("div",{key:`${s.key}-${f}`,class:p(["monitor-beat",l.className])},[l.tooltip?(a(),o("span",z,r(l.tooltip),1)):i("",!0)],2))),128))])]))),128)),!n(u).length&&!n(d)?(a(),o("div",A," 暂无监控数据。 ")):i("",!0)])])])]))}});export{q as default}; diff --git a/static/assets/PublicUptime-Bcu4-dB9.js b/static/assets/PublicUptime-Bcu4-dB9.js new file mode 100644 index 0000000000000000000000000000000000000000..36555a023d86e2c149b507bbccea5a81f35f391f --- /dev/null +++ b/static/assets/PublicUptime-Bcu4-dB9.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-BGiG3-jw.js";import{d as h,o as v,c as o,a as t,b as i,t as r,u as n,F as _,r as m,e as a,n as p,f as c}from"./index-Bx7qSams.js";const y={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},k={class:"mx-auto flex min-h-screen w-full max-w-5xl min-w-0 items-center justify-center px-4 py-8"},w={class:"w-full rounded-3xl border border-border bg-card p-6"},C={class:"mb-6 flex flex-wrap items-center justify-between gap-3"},N={class:"text-xs text-muted-foreground"},B={key:0,class:"mb-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},S={class:"grid gap-8 md:grid-cols-2"},V={class:"monitor-card__header"},j={class:"monitor-card__name"},F={class:"monitor-card__stats"},L={class:"monitor-card__value"},M={class:"monitor-card__value"},U={class:"monitor-card__value"},$={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},A={key:0,class:"rounded-2xl border border-border bg-card p-4 text-xs text-muted-foreground"},q=h({__name:"PublicUptime",setup(D){const{services:u,updatedAt:x,errorMessage:d,refreshStatus:b}=g();return v(()=>{b()}),(E,e)=>(a(),o("div",y,[t("div",k,[t("section",w,[t("div",C,[e[0]||(e[0]=t("div",null,[t("p",{class:"text-sm font-medium text-foreground"},"服务状态")],-1)),t("p",N,"最近更新:"+r(n(x)||"未获取"),1)]),n(d)?(a(),o("div",B,r(n(d)),1)):i("",!0),t("div",S,[(a(!0),o(_,null,m(n(u),s=>(a(),o("div",{key:s.key,class:"monitor-card"},[t("div",V,[t("span",j,r(s.name),1),t("span",{class:p(["monitor-card__badge",s.statusClass])},r(s.statusLabel),3)]),t("div",F,[t("span",null,[e[1]||(e[1]=c("可用率 ",-1)),t("span",L,r(s.uptime)+"%",1)]),t("span",null,[e[2]||(e[2]=c("请求 ",-1)),t("span",M,r(s.total),1)]),t("span",null,[e[3]||(e[3]=c("成功 ",-1)),t("span",U,r(s.success),1)])]),t("div",$,[(a(!0),o(_,null,m(s.beats,(l,f)=>(a(),o("div",{key:`${s.key}-${f}`,class:p(["monitor-beat",l.className])},[l.tooltip?(a(),o("span",z,r(l.tooltip),1)):i("",!0)],2))),128))])]))),128)),!n(u).length&&!n(d)?(a(),o("div",A," 暂无监控数据。 ")):i("",!0)])])])]))}});export{q as default}; diff --git a/static/assets/PublicUptime-Bgmmilh3.js b/static/assets/PublicUptime-Bgmmilh3.js new file mode 100644 index 0000000000000000000000000000000000000000..b3212ffaa29202af36d11c1942f22cdc682b6701 --- /dev/null +++ b/static/assets/PublicUptime-Bgmmilh3.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-DtehOXTb.js";import{d as h,o as v,c as o,a as t,b as i,t as r,u as n,F as _,r as m,e as a,n as p,f as c}from"./index-DMWZCTlx.js";const y={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},k={class:"mx-auto flex min-h-screen w-full max-w-5xl min-w-0 items-center justify-center px-4 py-8"},w={class:"w-full rounded-3xl border border-border bg-card p-6"},C={class:"mb-6 flex flex-wrap items-center justify-between gap-3"},N={class:"text-xs text-muted-foreground"},B={key:0,class:"mb-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},S={class:"grid gap-8 md:grid-cols-2"},V={class:"monitor-card__header"},j={class:"monitor-card__name"},F={class:"monitor-card__stats"},L={class:"monitor-card__value"},M={class:"monitor-card__value"},U={class:"monitor-card__value"},$={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},A={key:0,class:"rounded-2xl border border-border bg-card p-4 text-xs text-muted-foreground"},q=h({__name:"PublicUptime",setup(D){const{services:u,updatedAt:x,errorMessage:d,refreshStatus:b}=g();return v(()=>{b()}),(E,e)=>(a(),o("div",y,[t("div",k,[t("section",w,[t("div",C,[e[0]||(e[0]=t("div",null,[t("p",{class:"text-sm font-medium text-foreground"},"服务状态")],-1)),t("p",N,"最近更新:"+r(n(x)||"未获取"),1)]),n(d)?(a(),o("div",B,r(n(d)),1)):i("",!0),t("div",S,[(a(!0),o(_,null,m(n(u),s=>(a(),o("div",{key:s.key,class:"monitor-card"},[t("div",V,[t("span",j,r(s.name),1),t("span",{class:p(["monitor-card__badge",s.statusClass])},r(s.statusLabel),3)]),t("div",F,[t("span",null,[e[1]||(e[1]=c("可用率 ",-1)),t("span",L,r(s.uptime)+"%",1)]),t("span",null,[e[2]||(e[2]=c("请求 ",-1)),t("span",M,r(s.total),1)]),t("span",null,[e[3]||(e[3]=c("成功 ",-1)),t("span",U,r(s.success),1)])]),t("div",$,[(a(!0),o(_,null,m(s.beats,(l,f)=>(a(),o("div",{key:`${s.key}-${f}`,class:p(["monitor-beat",l.className])},[l.tooltip?(a(),o("span",z,r(l.tooltip),1)):i("",!0)],2))),128))])]))),128)),!n(u).length&&!n(d)?(a(),o("div",A," 暂无监控数据。 ")):i("",!0)])])])]))}});export{q as default}; diff --git a/static/assets/PublicUptime-CFeeFWLB.js b/static/assets/PublicUptime-CFeeFWLB.js new file mode 100644 index 0000000000000000000000000000000000000000..e48b9194c5d7d3fd509ee1c9cd7e34a8badeace5 --- /dev/null +++ b/static/assets/PublicUptime-CFeeFWLB.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-CKkLWAt7.js";import{d as h,o as v,c as o,a as t,b as i,t as r,u as n,F as _,r as m,e as a,n as p,f as c}from"./index-CkXB0iyt.js";const y={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},k={class:"mx-auto flex min-h-screen w-full max-w-5xl min-w-0 items-center justify-center px-4 py-8"},w={class:"w-full rounded-3xl border border-border bg-card p-6"},C={class:"mb-6 flex flex-wrap items-center justify-between gap-3"},N={class:"text-xs text-muted-foreground"},B={key:0,class:"mb-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},S={class:"grid gap-8 md:grid-cols-2"},V={class:"monitor-card__header"},j={class:"monitor-card__name"},F={class:"monitor-card__stats"},L={class:"monitor-card__value"},M={class:"monitor-card__value"},U={class:"monitor-card__value"},$={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},A={key:0,class:"rounded-2xl border border-border bg-card p-4 text-xs text-muted-foreground"},q=h({__name:"PublicUptime",setup(D){const{services:u,updatedAt:x,errorMessage:d,refreshStatus:b}=g();return v(()=>{b()}),(E,e)=>(a(),o("div",y,[t("div",k,[t("section",w,[t("div",C,[e[0]||(e[0]=t("div",null,[t("p",{class:"text-sm font-medium text-foreground"},"服务状态")],-1)),t("p",N,"最近更新:"+r(n(x)||"未获取"),1)]),n(d)?(a(),o("div",B,r(n(d)),1)):i("",!0),t("div",S,[(a(!0),o(_,null,m(n(u),s=>(a(),o("div",{key:s.key,class:"monitor-card"},[t("div",V,[t("span",j,r(s.name),1),t("span",{class:p(["monitor-card__badge",s.statusClass])},r(s.statusLabel),3)]),t("div",F,[t("span",null,[e[1]||(e[1]=c("可用率 ",-1)),t("span",L,r(s.uptime)+"%",1)]),t("span",null,[e[2]||(e[2]=c("请求 ",-1)),t("span",M,r(s.total),1)]),t("span",null,[e[3]||(e[3]=c("成功 ",-1)),t("span",U,r(s.success),1)])]),t("div",$,[(a(!0),o(_,null,m(s.beats,(l,f)=>(a(),o("div",{key:`${s.key}-${f}`,class:p(["monitor-beat",l.className])},[l.tooltip?(a(),o("span",z,r(l.tooltip),1)):i("",!0)],2))),128))])]))),128)),!n(u).length&&!n(d)?(a(),o("div",A," 暂无监控数据。 ")):i("",!0)])])])]))}});export{q as default}; diff --git a/static/assets/PublicUptime-CGi0vS-3.js b/static/assets/PublicUptime-CGi0vS-3.js new file mode 100644 index 0000000000000000000000000000000000000000..956be52c0773f504b6ddb99c51a0dd57181281bb --- /dev/null +++ b/static/assets/PublicUptime-CGi0vS-3.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-B3toa7r0.js";import{d as h,o as v,c as o,a as t,b as i,t as r,u as n,F as _,r as m,e as a,n as p,f as c}from"./index-DrM07qAY.js";const y={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},k={class:"mx-auto flex min-h-screen w-full max-w-5xl min-w-0 items-center justify-center px-4 py-8"},w={class:"w-full rounded-3xl border border-border bg-card p-6"},C={class:"mb-6 flex flex-wrap items-center justify-between gap-3"},N={class:"text-xs text-muted-foreground"},B={key:0,class:"mb-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},S={class:"grid gap-8 md:grid-cols-2"},V={class:"monitor-card__header"},j={class:"monitor-card__name"},F={class:"monitor-card__stats"},L={class:"monitor-card__value"},M={class:"monitor-card__value"},U={class:"monitor-card__value"},$={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},A={key:0,class:"rounded-2xl border border-border bg-card p-4 text-xs text-muted-foreground"},q=h({__name:"PublicUptime",setup(D){const{services:u,updatedAt:x,errorMessage:d,refreshStatus:b}=g();return v(()=>{b()}),(E,e)=>(a(),o("div",y,[t("div",k,[t("section",w,[t("div",C,[e[0]||(e[0]=t("div",null,[t("p",{class:"text-sm font-medium text-foreground"},"服务状态")],-1)),t("p",N,"最近更新:"+r(n(x)||"未获取"),1)]),n(d)?(a(),o("div",B,r(n(d)),1)):i("",!0),t("div",S,[(a(!0),o(_,null,m(n(u),s=>(a(),o("div",{key:s.key,class:"monitor-card"},[t("div",V,[t("span",j,r(s.name),1),t("span",{class:p(["monitor-card__badge",s.statusClass])},r(s.statusLabel),3)]),t("div",F,[t("span",null,[e[1]||(e[1]=c("可用率 ",-1)),t("span",L,r(s.uptime)+"%",1)]),t("span",null,[e[2]||(e[2]=c("请求 ",-1)),t("span",M,r(s.total),1)]),t("span",null,[e[3]||(e[3]=c("成功 ",-1)),t("span",U,r(s.success),1)])]),t("div",$,[(a(!0),o(_,null,m(s.beats,(l,f)=>(a(),o("div",{key:`${s.key}-${f}`,class:p(["monitor-beat",l.className])},[l.tooltip?(a(),o("span",z,r(l.tooltip),1)):i("",!0)],2))),128))])]))),128)),!n(u).length&&!n(d)?(a(),o("div",A," 暂无监控数据。 ")):i("",!0)])])])]))}});export{q as default}; diff --git a/static/assets/PublicUptime-CLa0lCLs.js b/static/assets/PublicUptime-CLa0lCLs.js new file mode 100644 index 0000000000000000000000000000000000000000..25c4ac79723c45f4bd2fb9b0deeedcf01fe1f3f4 --- /dev/null +++ b/static/assets/PublicUptime-CLa0lCLs.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-CGA8KpnU.js";import{d as h,o as v,c as o,a as t,b as i,t as r,u as n,F as _,r as m,e as a,n as p,f as c}from"./index-CM73xqTK.js";const y={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},k={class:"mx-auto flex min-h-screen w-full max-w-5xl min-w-0 items-center justify-center px-4 py-8"},w={class:"w-full rounded-3xl border border-border bg-card p-6"},C={class:"mb-6 flex flex-wrap items-center justify-between gap-3"},N={class:"text-xs text-muted-foreground"},B={key:0,class:"mb-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},S={class:"grid gap-8 md:grid-cols-2"},V={class:"monitor-card__header"},j={class:"monitor-card__name"},F={class:"monitor-card__stats"},L={class:"monitor-card__value"},M={class:"monitor-card__value"},U={class:"monitor-card__value"},$={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},A={key:0,class:"rounded-2xl border border-border bg-card p-4 text-xs text-muted-foreground"},q=h({__name:"PublicUptime",setup(D){const{services:u,updatedAt:x,errorMessage:d,refreshStatus:b}=g();return v(()=>{b()}),(E,e)=>(a(),o("div",y,[t("div",k,[t("section",w,[t("div",C,[e[0]||(e[0]=t("div",null,[t("p",{class:"text-sm font-medium text-foreground"},"服务状态")],-1)),t("p",N,"最近更新:"+r(n(x)||"未获取"),1)]),n(d)?(a(),o("div",B,r(n(d)),1)):i("",!0),t("div",S,[(a(!0),o(_,null,m(n(u),s=>(a(),o("div",{key:s.key,class:"monitor-card"},[t("div",V,[t("span",j,r(s.name),1),t("span",{class:p(["monitor-card__badge",s.statusClass])},r(s.statusLabel),3)]),t("div",F,[t("span",null,[e[1]||(e[1]=c("可用率 ",-1)),t("span",L,r(s.uptime)+"%",1)]),t("span",null,[e[2]||(e[2]=c("请求 ",-1)),t("span",M,r(s.total),1)]),t("span",null,[e[3]||(e[3]=c("成功 ",-1)),t("span",U,r(s.success),1)])]),t("div",$,[(a(!0),o(_,null,m(s.beats,(l,f)=>(a(),o("div",{key:`${s.key}-${f}`,class:p(["monitor-beat",l.className])},[l.tooltip?(a(),o("span",z,r(l.tooltip),1)):i("",!0)],2))),128))])]))),128)),!n(u).length&&!n(d)?(a(),o("div",A," 暂无监控数据。 ")):i("",!0)])])])]))}});export{q as default}; diff --git a/static/assets/PublicUptime-CU-VgKVz.js b/static/assets/PublicUptime-CU-VgKVz.js new file mode 100644 index 0000000000000000000000000000000000000000..9b5b655e336493456f8d049eae28e5cb9e8cce45 --- /dev/null +++ b/static/assets/PublicUptime-CU-VgKVz.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-DFTiV01D.js";import{d as h,o as v,c as o,a as t,b as i,t as r,u as n,F as _,r as m,e as a,n as p,f as c}from"./index-Bh_hLcqi.js";const y={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},k={class:"mx-auto flex min-h-screen w-full max-w-5xl min-w-0 items-center justify-center px-4 py-8"},w={class:"w-full rounded-3xl border border-border bg-card p-6"},C={class:"mb-6 flex flex-wrap items-center justify-between gap-3"},N={class:"text-xs text-muted-foreground"},B={key:0,class:"mb-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},S={class:"grid gap-8 md:grid-cols-2"},V={class:"monitor-card__header"},j={class:"monitor-card__name"},F={class:"monitor-card__stats"},L={class:"monitor-card__value"},M={class:"monitor-card__value"},U={class:"monitor-card__value"},$={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},A={key:0,class:"rounded-2xl border border-border bg-card p-4 text-xs text-muted-foreground"},q=h({__name:"PublicUptime",setup(D){const{services:u,updatedAt:x,errorMessage:d,refreshStatus:b}=g();return v(()=>{b()}),(E,e)=>(a(),o("div",y,[t("div",k,[t("section",w,[t("div",C,[e[0]||(e[0]=t("div",null,[t("p",{class:"text-sm font-medium text-foreground"},"服务状态")],-1)),t("p",N,"最近更新:"+r(n(x)||"未获取"),1)]),n(d)?(a(),o("div",B,r(n(d)),1)):i("",!0),t("div",S,[(a(!0),o(_,null,m(n(u),s=>(a(),o("div",{key:s.key,class:"monitor-card"},[t("div",V,[t("span",j,r(s.name),1),t("span",{class:p(["monitor-card__badge",s.statusClass])},r(s.statusLabel),3)]),t("div",F,[t("span",null,[e[1]||(e[1]=c("可用率 ",-1)),t("span",L,r(s.uptime)+"%",1)]),t("span",null,[e[2]||(e[2]=c("请求 ",-1)),t("span",M,r(s.total),1)]),t("span",null,[e[3]||(e[3]=c("成功 ",-1)),t("span",U,r(s.success),1)])]),t("div",$,[(a(!0),o(_,null,m(s.beats,(l,f)=>(a(),o("div",{key:`${s.key}-${f}`,class:p(["monitor-beat",l.className])},[l.tooltip?(a(),o("span",z,r(l.tooltip),1)):i("",!0)],2))),128))])]))),128)),!n(u).length&&!n(d)?(a(),o("div",A," 暂无监控数据。 ")):i("",!0)])])])]))}});export{q as default}; diff --git a/static/assets/PublicUptime-CfGkj1AP.js b/static/assets/PublicUptime-CfGkj1AP.js new file mode 100644 index 0000000000000000000000000000000000000000..31af4fc73e568e7d2c71520e693d94659f271c60 --- /dev/null +++ b/static/assets/PublicUptime-CfGkj1AP.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-DItohNUu.js";import{d as h,o as v,c as o,a as t,b as i,t as r,u as n,F as _,r as m,e as a,n as p,f as c}from"./index-BRM37S6x.js";const y={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},k={class:"mx-auto flex min-h-screen w-full max-w-5xl min-w-0 items-center justify-center px-4 py-8"},w={class:"w-full rounded-3xl border border-border bg-card p-6"},C={class:"mb-6 flex flex-wrap items-center justify-between gap-3"},N={class:"text-xs text-muted-foreground"},B={key:0,class:"mb-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},S={class:"grid gap-8 md:grid-cols-2"},V={class:"monitor-card__header"},j={class:"monitor-card__name"},F={class:"monitor-card__stats"},L={class:"monitor-card__value"},M={class:"monitor-card__value"},U={class:"monitor-card__value"},$={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},A={key:0,class:"rounded-2xl border border-border bg-card p-4 text-xs text-muted-foreground"},q=h({__name:"PublicUptime",setup(D){const{services:u,updatedAt:x,errorMessage:d,refreshStatus:b}=g();return v(()=>{b()}),(E,e)=>(a(),o("div",y,[t("div",k,[t("section",w,[t("div",C,[e[0]||(e[0]=t("div",null,[t("p",{class:"text-sm font-medium text-foreground"},"服务状态")],-1)),t("p",N,"最近更新:"+r(n(x)||"未获取"),1)]),n(d)?(a(),o("div",B,r(n(d)),1)):i("",!0),t("div",S,[(a(!0),o(_,null,m(n(u),s=>(a(),o("div",{key:s.key,class:"monitor-card"},[t("div",V,[t("span",j,r(s.name),1),t("span",{class:p(["monitor-card__badge",s.statusClass])},r(s.statusLabel),3)]),t("div",F,[t("span",null,[e[1]||(e[1]=c("可用率 ",-1)),t("span",L,r(s.uptime)+"%",1)]),t("span",null,[e[2]||(e[2]=c("请求 ",-1)),t("span",M,r(s.total),1)]),t("span",null,[e[3]||(e[3]=c("成功 ",-1)),t("span",U,r(s.success),1)])]),t("div",$,[(a(!0),o(_,null,m(s.beats,(l,f)=>(a(),o("div",{key:`${s.key}-${f}`,class:p(["monitor-beat",l.className])},[l.tooltip?(a(),o("span",z,r(l.tooltip),1)):i("",!0)],2))),128))])]))),128)),!n(u).length&&!n(d)?(a(),o("div",A," 暂无监控数据。 ")):i("",!0)])])])]))}});export{q as default}; diff --git a/static/assets/PublicUptime-CiWeF8gU.js b/static/assets/PublicUptime-CiWeF8gU.js new file mode 100644 index 0000000000000000000000000000000000000000..e91546c25061b2d15c189f5dc88d17aa82ad67c5 --- /dev/null +++ b/static/assets/PublicUptime-CiWeF8gU.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-W1m6nNB0.js";import{d as h,o as v,c as o,a as t,b as i,t as r,u as n,F as _,r as m,e as a,n as p,f as c}from"./index-BCQxBeUo.js";const y={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},k={class:"mx-auto flex min-h-screen w-full max-w-5xl min-w-0 items-center justify-center px-4 py-8"},w={class:"w-full rounded-3xl border border-border bg-card p-6"},C={class:"mb-6 flex flex-wrap items-center justify-between gap-3"},N={class:"text-xs text-muted-foreground"},B={key:0,class:"mb-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},S={class:"grid gap-8 md:grid-cols-2"},V={class:"monitor-card__header"},j={class:"monitor-card__name"},F={class:"monitor-card__stats"},L={class:"monitor-card__value"},M={class:"monitor-card__value"},U={class:"monitor-card__value"},$={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},A={key:0,class:"rounded-2xl border border-border bg-card p-4 text-xs text-muted-foreground"},q=h({__name:"PublicUptime",setup(D){const{services:u,updatedAt:x,errorMessage:d,refreshStatus:b}=g();return v(()=>{b()}),(E,e)=>(a(),o("div",y,[t("div",k,[t("section",w,[t("div",C,[e[0]||(e[0]=t("div",null,[t("p",{class:"text-sm font-medium text-foreground"},"服务状态")],-1)),t("p",N,"最近更新:"+r(n(x)||"未获取"),1)]),n(d)?(a(),o("div",B,r(n(d)),1)):i("",!0),t("div",S,[(a(!0),o(_,null,m(n(u),s=>(a(),o("div",{key:s.key,class:"monitor-card"},[t("div",V,[t("span",j,r(s.name),1),t("span",{class:p(["monitor-card__badge",s.statusClass])},r(s.statusLabel),3)]),t("div",F,[t("span",null,[e[1]||(e[1]=c("可用率 ",-1)),t("span",L,r(s.uptime)+"%",1)]),t("span",null,[e[2]||(e[2]=c("请求 ",-1)),t("span",M,r(s.total),1)]),t("span",null,[e[3]||(e[3]=c("成功 ",-1)),t("span",U,r(s.success),1)])]),t("div",$,[(a(!0),o(_,null,m(s.beats,(l,f)=>(a(),o("div",{key:`${s.key}-${f}`,class:p(["monitor-beat",l.className])},[l.tooltip?(a(),o("span",z,r(l.tooltip),1)):i("",!0)],2))),128))])]))),128)),!n(u).length&&!n(d)?(a(),o("div",A," 暂无监控数据。 ")):i("",!0)])])])]))}});export{q as default}; diff --git a/static/assets/PublicUptime-CyUwsDxI.js b/static/assets/PublicUptime-CyUwsDxI.js new file mode 100644 index 0000000000000000000000000000000000000000..f302b55c956752e1c26a1c14ebdb29c90533c348 --- /dev/null +++ b/static/assets/PublicUptime-CyUwsDxI.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-BkCYwvB8.js";import{d as h,o as v,c as o,a as t,b as i,t as r,u as n,F as _,r as m,e as a,n as p,f as c}from"./index-DDWWwh2l.js";const y={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},k={class:"mx-auto flex min-h-screen w-full max-w-5xl min-w-0 items-center justify-center px-4 py-8"},w={class:"w-full rounded-3xl border border-border bg-card p-6"},C={class:"mb-6 flex flex-wrap items-center justify-between gap-3"},N={class:"text-xs text-muted-foreground"},B={key:0,class:"mb-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},S={class:"grid gap-8 md:grid-cols-2"},V={class:"monitor-card__header"},j={class:"monitor-card__name"},F={class:"monitor-card__stats"},L={class:"monitor-card__value"},M={class:"monitor-card__value"},U={class:"monitor-card__value"},$={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},A={key:0,class:"rounded-2xl border border-border bg-card p-4 text-xs text-muted-foreground"},q=h({__name:"PublicUptime",setup(D){const{services:u,updatedAt:x,errorMessage:d,refreshStatus:b}=g();return v(()=>{b()}),(E,e)=>(a(),o("div",y,[t("div",k,[t("section",w,[t("div",C,[e[0]||(e[0]=t("div",null,[t("p",{class:"text-sm font-medium text-foreground"},"服务状态")],-1)),t("p",N,"最近更新:"+r(n(x)||"未获取"),1)]),n(d)?(a(),o("div",B,r(n(d)),1)):i("",!0),t("div",S,[(a(!0),o(_,null,m(n(u),s=>(a(),o("div",{key:s.key,class:"monitor-card"},[t("div",V,[t("span",j,r(s.name),1),t("span",{class:p(["monitor-card__badge",s.statusClass])},r(s.statusLabel),3)]),t("div",F,[t("span",null,[e[1]||(e[1]=c("可用率 ",-1)),t("span",L,r(s.uptime)+"%",1)]),t("span",null,[e[2]||(e[2]=c("请求 ",-1)),t("span",M,r(s.total),1)]),t("span",null,[e[3]||(e[3]=c("成功 ",-1)),t("span",U,r(s.success),1)])]),t("div",$,[(a(!0),o(_,null,m(s.beats,(l,f)=>(a(),o("div",{key:`${s.key}-${f}`,class:p(["monitor-beat",l.className])},[l.tooltip?(a(),o("span",z,r(l.tooltip),1)):i("",!0)],2))),128))])]))),128)),!n(u).length&&!n(d)?(a(),o("div",A," 暂无监控数据。 ")):i("",!0)])])])]))}});export{q as default}; diff --git a/static/assets/PublicUptime-DGrWLd4M.js b/static/assets/PublicUptime-DGrWLd4M.js new file mode 100644 index 0000000000000000000000000000000000000000..0ca58786fd9a635d559dc11a740764cdfc573cda --- /dev/null +++ b/static/assets/PublicUptime-DGrWLd4M.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-BFxVcNn2.js";import{d as h,o as v,c as o,a as t,b as i,t as r,u as n,F as _,r as m,e as a,n as p,f as c}from"./index-gD6QQiOu.js";const y={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},k={class:"mx-auto flex min-h-screen w-full max-w-5xl min-w-0 items-center justify-center px-4 py-8"},w={class:"w-full rounded-3xl border border-border bg-card p-6"},C={class:"mb-6 flex flex-wrap items-center justify-between gap-3"},N={class:"text-xs text-muted-foreground"},B={key:0,class:"mb-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},S={class:"grid gap-8 md:grid-cols-2"},V={class:"monitor-card__header"},j={class:"monitor-card__name"},F={class:"monitor-card__stats"},L={class:"monitor-card__value"},M={class:"monitor-card__value"},U={class:"monitor-card__value"},$={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},A={key:0,class:"rounded-2xl border border-border bg-card p-4 text-xs text-muted-foreground"},q=h({__name:"PublicUptime",setup(D){const{services:u,updatedAt:x,errorMessage:d,refreshStatus:b}=g();return v(()=>{b()}),(E,e)=>(a(),o("div",y,[t("div",k,[t("section",w,[t("div",C,[e[0]||(e[0]=t("div",null,[t("p",{class:"text-sm font-medium text-foreground"},"服务状态")],-1)),t("p",N,"最近更新:"+r(n(x)||"未获取"),1)]),n(d)?(a(),o("div",B,r(n(d)),1)):i("",!0),t("div",S,[(a(!0),o(_,null,m(n(u),s=>(a(),o("div",{key:s.key,class:"monitor-card"},[t("div",V,[t("span",j,r(s.name),1),t("span",{class:p(["monitor-card__badge",s.statusClass])},r(s.statusLabel),3)]),t("div",F,[t("span",null,[e[1]||(e[1]=c("可用率 ",-1)),t("span",L,r(s.uptime)+"%",1)]),t("span",null,[e[2]||(e[2]=c("请求 ",-1)),t("span",M,r(s.total),1)]),t("span",null,[e[3]||(e[3]=c("成功 ",-1)),t("span",U,r(s.success),1)])]),t("div",$,[(a(!0),o(_,null,m(s.beats,(l,f)=>(a(),o("div",{key:`${s.key}-${f}`,class:p(["monitor-beat",l.className])},[l.tooltip?(a(),o("span",z,r(l.tooltip),1)):i("",!0)],2))),128))])]))),128)),!n(u).length&&!n(d)?(a(),o("div",A," 暂无监控数据。 ")):i("",!0)])])])]))}});export{q as default}; diff --git a/static/assets/PublicUptime-DJMguAzV.js b/static/assets/PublicUptime-DJMguAzV.js new file mode 100644 index 0000000000000000000000000000000000000000..0b67f2b8f9c80fac7118e3b90033f650ab1df918 --- /dev/null +++ b/static/assets/PublicUptime-DJMguAzV.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-DXNkogdR.js";import{d as h,o as v,c as o,a as t,b as i,t as r,u as n,F as _,r as m,e as a,n as p,f as c}from"./index-BYFRJmx0.js";const y={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},k={class:"mx-auto flex min-h-screen w-full max-w-5xl min-w-0 items-center justify-center px-4 py-8"},w={class:"w-full rounded-3xl border border-border bg-card p-6"},C={class:"mb-6 flex flex-wrap items-center justify-between gap-3"},N={class:"text-xs text-muted-foreground"},B={key:0,class:"mb-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},S={class:"grid gap-8 md:grid-cols-2"},V={class:"monitor-card__header"},j={class:"monitor-card__name"},F={class:"monitor-card__stats"},L={class:"monitor-card__value"},M={class:"monitor-card__value"},U={class:"monitor-card__value"},$={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},A={key:0,class:"rounded-2xl border border-border bg-card p-4 text-xs text-muted-foreground"},q=h({__name:"PublicUptime",setup(D){const{services:u,updatedAt:x,errorMessage:d,refreshStatus:b}=g();return v(()=>{b()}),(E,e)=>(a(),o("div",y,[t("div",k,[t("section",w,[t("div",C,[e[0]||(e[0]=t("div",null,[t("p",{class:"text-sm font-medium text-foreground"},"服务状态")],-1)),t("p",N,"最近更新:"+r(n(x)||"未获取"),1)]),n(d)?(a(),o("div",B,r(n(d)),1)):i("",!0),t("div",S,[(a(!0),o(_,null,m(n(u),s=>(a(),o("div",{key:s.key,class:"monitor-card"},[t("div",V,[t("span",j,r(s.name),1),t("span",{class:p(["monitor-card__badge",s.statusClass])},r(s.statusLabel),3)]),t("div",F,[t("span",null,[e[1]||(e[1]=c("可用率 ",-1)),t("span",L,r(s.uptime)+"%",1)]),t("span",null,[e[2]||(e[2]=c("请求 ",-1)),t("span",M,r(s.total),1)]),t("span",null,[e[3]||(e[3]=c("成功 ",-1)),t("span",U,r(s.success),1)])]),t("div",$,[(a(!0),o(_,null,m(s.beats,(l,f)=>(a(),o("div",{key:`${s.key}-${f}`,class:p(["monitor-beat",l.className])},[l.tooltip?(a(),o("span",z,r(l.tooltip),1)):i("",!0)],2))),128))])]))),128)),!n(u).length&&!n(d)?(a(),o("div",A," 暂无监控数据。 ")):i("",!0)])])])]))}});export{q as default}; diff --git a/static/assets/PublicUptime-DJR5UQMs.js b/static/assets/PublicUptime-DJR5UQMs.js new file mode 100644 index 0000000000000000000000000000000000000000..b823564bc0bde6db0bccbb384f0b3ead6b994270 --- /dev/null +++ b/static/assets/PublicUptime-DJR5UQMs.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-CXq4uCaj.js";import{d as h,o as v,c as o,a as t,b as i,t as r,u as n,F as _,r as m,e as a,n as p,f as c}from"./index-DhxxzIOh.js";const y={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},k={class:"mx-auto flex min-h-screen w-full max-w-5xl min-w-0 items-center justify-center px-4 py-8"},w={class:"w-full rounded-3xl border border-border bg-card p-6"},C={class:"mb-6 flex flex-wrap items-center justify-between gap-3"},N={class:"text-xs text-muted-foreground"},B={key:0,class:"mb-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},S={class:"grid gap-8 md:grid-cols-2"},V={class:"monitor-card__header"},j={class:"monitor-card__name"},F={class:"monitor-card__stats"},L={class:"monitor-card__value"},M={class:"monitor-card__value"},U={class:"monitor-card__value"},$={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},A={key:0,class:"rounded-2xl border border-border bg-card p-4 text-xs text-muted-foreground"},q=h({__name:"PublicUptime",setup(D){const{services:u,updatedAt:x,errorMessage:d,refreshStatus:b}=g();return v(()=>{b()}),(E,e)=>(a(),o("div",y,[t("div",k,[t("section",w,[t("div",C,[e[0]||(e[0]=t("div",null,[t("p",{class:"text-sm font-medium text-foreground"},"服务状态")],-1)),t("p",N,"最近更新:"+r(n(x)||"未获取"),1)]),n(d)?(a(),o("div",B,r(n(d)),1)):i("",!0),t("div",S,[(a(!0),o(_,null,m(n(u),s=>(a(),o("div",{key:s.key,class:"monitor-card"},[t("div",V,[t("span",j,r(s.name),1),t("span",{class:p(["monitor-card__badge",s.statusClass])},r(s.statusLabel),3)]),t("div",F,[t("span",null,[e[1]||(e[1]=c("可用率 ",-1)),t("span",L,r(s.uptime)+"%",1)]),t("span",null,[e[2]||(e[2]=c("请求 ",-1)),t("span",M,r(s.total),1)]),t("span",null,[e[3]||(e[3]=c("成功 ",-1)),t("span",U,r(s.success),1)])]),t("div",$,[(a(!0),o(_,null,m(s.beats,(l,f)=>(a(),o("div",{key:`${s.key}-${f}`,class:p(["monitor-beat",l.className])},[l.tooltip?(a(),o("span",z,r(l.tooltip),1)):i("",!0)],2))),128))])]))),128)),!n(u).length&&!n(d)?(a(),o("div",A," 暂无监控数据。 ")):i("",!0)])])])]))}});export{q as default}; diff --git a/static/assets/PublicUptime-DsxFW7_H.js b/static/assets/PublicUptime-DsxFW7_H.js new file mode 100644 index 0000000000000000000000000000000000000000..1f22efcfeffdc9f13e1ecf97cd0eb43561ced451 --- /dev/null +++ b/static/assets/PublicUptime-DsxFW7_H.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-DidGh3C9.js";import{d as h,o as v,c as o,a as t,b as i,t as r,u as n,F as _,r as m,e as a,n as p,f as c}from"./index-C9KL0lrc.js";const y={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},k={class:"mx-auto flex min-h-screen w-full max-w-5xl min-w-0 items-center justify-center px-4 py-8"},w={class:"w-full rounded-3xl border border-border bg-card p-6"},C={class:"mb-6 flex flex-wrap items-center justify-between gap-3"},N={class:"text-xs text-muted-foreground"},B={key:0,class:"mb-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},S={class:"grid gap-8 md:grid-cols-2"},V={class:"monitor-card__header"},j={class:"monitor-card__name"},F={class:"monitor-card__stats"},L={class:"monitor-card__value"},M={class:"monitor-card__value"},U={class:"monitor-card__value"},$={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},A={key:0,class:"rounded-2xl border border-border bg-card p-4 text-xs text-muted-foreground"},q=h({__name:"PublicUptime",setup(D){const{services:u,updatedAt:x,errorMessage:d,refreshStatus:b}=g();return v(()=>{b()}),(E,e)=>(a(),o("div",y,[t("div",k,[t("section",w,[t("div",C,[e[0]||(e[0]=t("div",null,[t("p",{class:"text-sm font-medium text-foreground"},"服务状态")],-1)),t("p",N,"最近更新:"+r(n(x)||"未获取"),1)]),n(d)?(a(),o("div",B,r(n(d)),1)):i("",!0),t("div",S,[(a(!0),o(_,null,m(n(u),s=>(a(),o("div",{key:s.key,class:"monitor-card"},[t("div",V,[t("span",j,r(s.name),1),t("span",{class:p(["monitor-card__badge",s.statusClass])},r(s.statusLabel),3)]),t("div",F,[t("span",null,[e[1]||(e[1]=c("可用率 ",-1)),t("span",L,r(s.uptime)+"%",1)]),t("span",null,[e[2]||(e[2]=c("请求 ",-1)),t("span",M,r(s.total),1)]),t("span",null,[e[3]||(e[3]=c("成功 ",-1)),t("span",U,r(s.success),1)])]),t("div",$,[(a(!0),o(_,null,m(s.beats,(l,f)=>(a(),o("div",{key:`${s.key}-${f}`,class:p(["monitor-beat",l.className])},[l.tooltip?(a(),o("span",z,r(l.tooltip),1)):i("",!0)],2))),128))])]))),128)),!n(u).length&&!n(d)?(a(),o("div",A," 暂无监控数据。 ")):i("",!0)])])])]))}});export{q as default}; diff --git a/static/assets/PublicUptime-Du6tFKiB.js b/static/assets/PublicUptime-Du6tFKiB.js new file mode 100644 index 0000000000000000000000000000000000000000..c0f4e3afb6ef3dd07c0d3a06114e9cd212613713 --- /dev/null +++ b/static/assets/PublicUptime-Du6tFKiB.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-B8uC70p8.js";import{d as h,o as v,c as o,a as t,b as i,t as r,u as n,F as _,r as m,e as a,n as p,f as c}from"./index-Dul9zA0O.js";const y={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},k={class:"mx-auto flex min-h-screen w-full max-w-5xl min-w-0 items-center justify-center px-4 py-8"},w={class:"w-full rounded-3xl border border-border bg-card p-6"},C={class:"mb-6 flex flex-wrap items-center justify-between gap-3"},N={class:"text-xs text-muted-foreground"},B={key:0,class:"mb-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},S={class:"grid gap-8 md:grid-cols-2"},V={class:"monitor-card__header"},j={class:"monitor-card__name"},F={class:"monitor-card__stats"},L={class:"monitor-card__value"},M={class:"monitor-card__value"},U={class:"monitor-card__value"},$={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},A={key:0,class:"rounded-2xl border border-border bg-card p-4 text-xs text-muted-foreground"},q=h({__name:"PublicUptime",setup(D){const{services:u,updatedAt:x,errorMessage:d,refreshStatus:b}=g();return v(()=>{b()}),(E,e)=>(a(),o("div",y,[t("div",k,[t("section",w,[t("div",C,[e[0]||(e[0]=t("div",null,[t("p",{class:"text-sm font-medium text-foreground"},"服务状态")],-1)),t("p",N,"最近更新:"+r(n(x)||"未获取"),1)]),n(d)?(a(),o("div",B,r(n(d)),1)):i("",!0),t("div",S,[(a(!0),o(_,null,m(n(u),s=>(a(),o("div",{key:s.key,class:"monitor-card"},[t("div",V,[t("span",j,r(s.name),1),t("span",{class:p(["monitor-card__badge",s.statusClass])},r(s.statusLabel),3)]),t("div",F,[t("span",null,[e[1]||(e[1]=c("可用率 ",-1)),t("span",L,r(s.uptime)+"%",1)]),t("span",null,[e[2]||(e[2]=c("请求 ",-1)),t("span",M,r(s.total),1)]),t("span",null,[e[3]||(e[3]=c("成功 ",-1)),t("span",U,r(s.success),1)])]),t("div",$,[(a(!0),o(_,null,m(s.beats,(l,f)=>(a(),o("div",{key:`${s.key}-${f}`,class:p(["monitor-beat",l.className])},[l.tooltip?(a(),o("span",z,r(l.tooltip),1)):i("",!0)],2))),128))])]))),128)),!n(u).length&&!n(d)?(a(),o("div",A," 暂无监控数据。 ")):i("",!0)])])])]))}});export{q as default}; diff --git a/static/assets/PublicUptime-DuYTd433.js b/static/assets/PublicUptime-DuYTd433.js new file mode 100644 index 0000000000000000000000000000000000000000..11523a308d529fa76fa258736ec821f61e8dd239 --- /dev/null +++ b/static/assets/PublicUptime-DuYTd433.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-BYx1h4Ac.js";import{d as h,o as v,c as o,a as t,b as i,t as r,u as n,F as _,r as m,e as a,n as p,f as c}from"./index-4tSmcUDY.js";const y={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},k={class:"mx-auto flex min-h-screen w-full max-w-5xl min-w-0 items-center justify-center px-4 py-8"},w={class:"w-full rounded-3xl border border-border bg-card p-6"},C={class:"mb-6 flex flex-wrap items-center justify-between gap-3"},N={class:"text-xs text-muted-foreground"},B={key:0,class:"mb-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},S={class:"grid gap-8 md:grid-cols-2"},V={class:"monitor-card__header"},j={class:"monitor-card__name"},F={class:"monitor-card__stats"},L={class:"monitor-card__value"},M={class:"monitor-card__value"},U={class:"monitor-card__value"},$={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},A={key:0,class:"rounded-2xl border border-border bg-card p-4 text-xs text-muted-foreground"},q=h({__name:"PublicUptime",setup(D){const{services:u,updatedAt:x,errorMessage:d,refreshStatus:b}=g();return v(()=>{b()}),(E,e)=>(a(),o("div",y,[t("div",k,[t("section",w,[t("div",C,[e[0]||(e[0]=t("div",null,[t("p",{class:"text-sm font-medium text-foreground"},"服务状态")],-1)),t("p",N,"最近更新:"+r(n(x)||"未获取"),1)]),n(d)?(a(),o("div",B,r(n(d)),1)):i("",!0),t("div",S,[(a(!0),o(_,null,m(n(u),s=>(a(),o("div",{key:s.key,class:"monitor-card"},[t("div",V,[t("span",j,r(s.name),1),t("span",{class:p(["monitor-card__badge",s.statusClass])},r(s.statusLabel),3)]),t("div",F,[t("span",null,[e[1]||(e[1]=c("可用率 ",-1)),t("span",L,r(s.uptime)+"%",1)]),t("span",null,[e[2]||(e[2]=c("请求 ",-1)),t("span",M,r(s.total),1)]),t("span",null,[e[3]||(e[3]=c("成功 ",-1)),t("span",U,r(s.success),1)])]),t("div",$,[(a(!0),o(_,null,m(s.beats,(l,f)=>(a(),o("div",{key:`${s.key}-${f}`,class:p(["monitor-beat",l.className])},[l.tooltip?(a(),o("span",z,r(l.tooltip),1)):i("",!0)],2))),128))])]))),128)),!n(u).length&&!n(d)?(a(),o("div",A," 暂无监控数据。 ")):i("",!0)])])])]))}});export{q as default}; diff --git a/static/assets/PublicUptime-L_oTuMgV.js b/static/assets/PublicUptime-L_oTuMgV.js new file mode 100644 index 0000000000000000000000000000000000000000..5be54fff725bbef0f0bd9ce91e665a77268f76f1 --- /dev/null +++ b/static/assets/PublicUptime-L_oTuMgV.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-BhuHuhDk.js";import{d as h,o as v,c as o,a as t,b as i,t as r,u as n,F as _,r as m,e as a,n as p,f as c}from"./index-CDbQWWUi.js";const y={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},k={class:"mx-auto flex min-h-screen w-full max-w-5xl min-w-0 items-center justify-center px-4 py-8"},w={class:"w-full rounded-3xl border border-border bg-card p-6"},C={class:"mb-6 flex flex-wrap items-center justify-between gap-3"},N={class:"text-xs text-muted-foreground"},B={key:0,class:"mb-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},S={class:"grid gap-8 md:grid-cols-2"},V={class:"monitor-card__header"},j={class:"monitor-card__name"},F={class:"monitor-card__stats"},L={class:"monitor-card__value"},M={class:"monitor-card__value"},U={class:"monitor-card__value"},$={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},A={key:0,class:"rounded-2xl border border-border bg-card p-4 text-xs text-muted-foreground"},q=h({__name:"PublicUptime",setup(D){const{services:u,updatedAt:x,errorMessage:d,refreshStatus:b}=g();return v(()=>{b()}),(E,e)=>(a(),o("div",y,[t("div",k,[t("section",w,[t("div",C,[e[0]||(e[0]=t("div",null,[t("p",{class:"text-sm font-medium text-foreground"},"服务状态")],-1)),t("p",N,"最近更新:"+r(n(x)||"未获取"),1)]),n(d)?(a(),o("div",B,r(n(d)),1)):i("",!0),t("div",S,[(a(!0),o(_,null,m(n(u),s=>(a(),o("div",{key:s.key,class:"monitor-card"},[t("div",V,[t("span",j,r(s.name),1),t("span",{class:p(["monitor-card__badge",s.statusClass])},r(s.statusLabel),3)]),t("div",F,[t("span",null,[e[1]||(e[1]=c("可用率 ",-1)),t("span",L,r(s.uptime)+"%",1)]),t("span",null,[e[2]||(e[2]=c("请求 ",-1)),t("span",M,r(s.total),1)]),t("span",null,[e[3]||(e[3]=c("成功 ",-1)),t("span",U,r(s.success),1)])]),t("div",$,[(a(!0),o(_,null,m(s.beats,(l,f)=>(a(),o("div",{key:`${s.key}-${f}`,class:p(["monitor-beat",l.className])},[l.tooltip?(a(),o("span",z,r(l.tooltip),1)):i("",!0)],2))),128))])]))),128)),!n(u).length&&!n(d)?(a(),o("div",A," 暂无监控数据。 ")):i("",!0)])])])]))}});export{q as default}; diff --git a/static/assets/PublicUptime-LfbaOwmN.js b/static/assets/PublicUptime-LfbaOwmN.js new file mode 100644 index 0000000000000000000000000000000000000000..4969bc55980003e9725e72e55b2bc62369dc1504 --- /dev/null +++ b/static/assets/PublicUptime-LfbaOwmN.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-C3HbC8Ey.js";import{d as h,o as v,c as o,a as t,b as i,t as r,u as n,F as _,r as m,e as a,n as p,f as c}from"./index-Babp7OwB.js";const y={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},k={class:"mx-auto flex min-h-screen w-full max-w-5xl min-w-0 items-center justify-center px-4 py-8"},w={class:"w-full rounded-3xl border border-border bg-card p-6"},C={class:"mb-6 flex flex-wrap items-center justify-between gap-3"},N={class:"text-xs text-muted-foreground"},B={key:0,class:"mb-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},S={class:"grid gap-8 md:grid-cols-2"},V={class:"monitor-card__header"},j={class:"monitor-card__name"},F={class:"monitor-card__stats"},L={class:"monitor-card__value"},M={class:"monitor-card__value"},U={class:"monitor-card__value"},$={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},A={key:0,class:"rounded-2xl border border-border bg-card p-4 text-xs text-muted-foreground"},q=h({__name:"PublicUptime",setup(D){const{services:u,updatedAt:x,errorMessage:d,refreshStatus:b}=g();return v(()=>{b()}),(E,e)=>(a(),o("div",y,[t("div",k,[t("section",w,[t("div",C,[e[0]||(e[0]=t("div",null,[t("p",{class:"text-sm font-medium text-foreground"},"服务状态")],-1)),t("p",N,"最近更新:"+r(n(x)||"未获取"),1)]),n(d)?(a(),o("div",B,r(n(d)),1)):i("",!0),t("div",S,[(a(!0),o(_,null,m(n(u),s=>(a(),o("div",{key:s.key,class:"monitor-card"},[t("div",V,[t("span",j,r(s.name),1),t("span",{class:p(["monitor-card__badge",s.statusClass])},r(s.statusLabel),3)]),t("div",F,[t("span",null,[e[1]||(e[1]=c("可用率 ",-1)),t("span",L,r(s.uptime)+"%",1)]),t("span",null,[e[2]||(e[2]=c("请求 ",-1)),t("span",M,r(s.total),1)]),t("span",null,[e[3]||(e[3]=c("成功 ",-1)),t("span",U,r(s.success),1)])]),t("div",$,[(a(!0),o(_,null,m(s.beats,(l,f)=>(a(),o("div",{key:`${s.key}-${f}`,class:p(["monitor-beat",l.className])},[l.tooltip?(a(),o("span",z,r(l.tooltip),1)):i("",!0)],2))),128))])]))),128)),!n(u).length&&!n(d)?(a(),o("div",A," 暂无监控数据。 ")):i("",!0)])])])]))}});export{q as default}; diff --git a/static/assets/PublicUptime-ciOMZPPd.js b/static/assets/PublicUptime-ciOMZPPd.js new file mode 100644 index 0000000000000000000000000000000000000000..8562ba7ba6a7d12ca231bd701f75bb66f47721cd --- /dev/null +++ b/static/assets/PublicUptime-ciOMZPPd.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-BHHQ7xhw.js";import{d as h,o as v,c as o,a as t,b as i,t as r,u as n,F as _,r as m,e as a,n as p,f as c}from"./index-B38eA7T4.js";const y={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},k={class:"mx-auto flex min-h-screen w-full max-w-5xl min-w-0 items-center justify-center px-4 py-8"},w={class:"w-full rounded-3xl border border-border bg-card p-6"},C={class:"mb-6 flex flex-wrap items-center justify-between gap-3"},N={class:"text-xs text-muted-foreground"},B={key:0,class:"mb-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},S={class:"grid gap-8 md:grid-cols-2"},V={class:"monitor-card__header"},j={class:"monitor-card__name"},F={class:"monitor-card__stats"},L={class:"monitor-card__value"},M={class:"monitor-card__value"},U={class:"monitor-card__value"},$={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},A={key:0,class:"rounded-2xl border border-border bg-card p-4 text-xs text-muted-foreground"},q=h({__name:"PublicUptime",setup(D){const{services:u,updatedAt:x,errorMessage:d,refreshStatus:b}=g();return v(()=>{b()}),(E,e)=>(a(),o("div",y,[t("div",k,[t("section",w,[t("div",C,[e[0]||(e[0]=t("div",null,[t("p",{class:"text-sm font-medium text-foreground"},"服务状态")],-1)),t("p",N,"最近更新:"+r(n(x)||"未获取"),1)]),n(d)?(a(),o("div",B,r(n(d)),1)):i("",!0),t("div",S,[(a(!0),o(_,null,m(n(u),s=>(a(),o("div",{key:s.key,class:"monitor-card"},[t("div",V,[t("span",j,r(s.name),1),t("span",{class:p(["monitor-card__badge",s.statusClass])},r(s.statusLabel),3)]),t("div",F,[t("span",null,[e[1]||(e[1]=c("可用率 ",-1)),t("span",L,r(s.uptime)+"%",1)]),t("span",null,[e[2]||(e[2]=c("请求 ",-1)),t("span",M,r(s.total),1)]),t("span",null,[e[3]||(e[3]=c("成功 ",-1)),t("span",U,r(s.success),1)])]),t("div",$,[(a(!0),o(_,null,m(s.beats,(l,f)=>(a(),o("div",{key:`${s.key}-${f}`,class:p(["monitor-beat",l.className])},[l.tooltip?(a(),o("span",z,r(l.tooltip),1)):i("",!0)],2))),128))])]))),128)),!n(u).length&&!n(d)?(a(),o("div",A," 暂无监控数据。 ")):i("",!0)])])])]))}});export{q as default}; diff --git a/static/assets/PublicUptime-konZb8MF.js b/static/assets/PublicUptime-konZb8MF.js new file mode 100644 index 0000000000000000000000000000000000000000..28cc55a1e797a30f502546ad361c63583a8708c4 --- /dev/null +++ b/static/assets/PublicUptime-konZb8MF.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-rRrvndbO.js";import{d as h,o as v,c as o,a as t,b as i,t as r,u as n,F as _,r as m,e as a,n as p,f as c}from"./index-BIHSVHyU.js";const y={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},k={class:"mx-auto flex min-h-screen w-full max-w-5xl min-w-0 items-center justify-center px-4 py-8"},w={class:"w-full rounded-3xl border border-border bg-card p-6"},C={class:"mb-6 flex flex-wrap items-center justify-between gap-3"},N={class:"text-xs text-muted-foreground"},B={key:0,class:"mb-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},S={class:"grid gap-8 md:grid-cols-2"},V={class:"monitor-card__header"},j={class:"monitor-card__name"},F={class:"monitor-card__stats"},L={class:"monitor-card__value"},M={class:"monitor-card__value"},U={class:"monitor-card__value"},$={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},A={key:0,class:"rounded-2xl border border-border bg-card p-4 text-xs text-muted-foreground"},q=h({__name:"PublicUptime",setup(D){const{services:u,updatedAt:x,errorMessage:d,refreshStatus:b}=g();return v(()=>{b()}),(E,e)=>(a(),o("div",y,[t("div",k,[t("section",w,[t("div",C,[e[0]||(e[0]=t("div",null,[t("p",{class:"text-sm font-medium text-foreground"},"服务状态")],-1)),t("p",N,"最近更新:"+r(n(x)||"未获取"),1)]),n(d)?(a(),o("div",B,r(n(d)),1)):i("",!0),t("div",S,[(a(!0),o(_,null,m(n(u),s=>(a(),o("div",{key:s.key,class:"monitor-card"},[t("div",V,[t("span",j,r(s.name),1),t("span",{class:p(["monitor-card__badge",s.statusClass])},r(s.statusLabel),3)]),t("div",F,[t("span",null,[e[1]||(e[1]=c("可用率 ",-1)),t("span",L,r(s.uptime)+"%",1)]),t("span",null,[e[2]||(e[2]=c("请求 ",-1)),t("span",M,r(s.total),1)]),t("span",null,[e[3]||(e[3]=c("成功 ",-1)),t("span",U,r(s.success),1)])]),t("div",$,[(a(!0),o(_,null,m(s.beats,(l,f)=>(a(),o("div",{key:`${s.key}-${f}`,class:p(["monitor-beat",l.className])},[l.tooltip?(a(),o("span",z,r(l.tooltip),1)):i("",!0)],2))),128))])]))),128)),!n(u).length&&!n(d)?(a(),o("div",A," 暂无监控数据。 ")):i("",!0)])])])]))}});export{q as default}; diff --git a/static/assets/PublicUptime-sd-LMOGE.js b/static/assets/PublicUptime-sd-LMOGE.js new file mode 100644 index 0000000000000000000000000000000000000000..f470b9273caf1cdecf5525ddb687c45342fec38a --- /dev/null +++ b/static/assets/PublicUptime-sd-LMOGE.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-DSC-vSsG.js";import{d as h,o as v,c as o,a as t,b as i,t as r,u as n,F as _,r as m,e as a,n as p,f as c}from"./index-C7QtVLks.js";const y={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},k={class:"mx-auto flex min-h-screen w-full max-w-5xl min-w-0 items-center justify-center px-4 py-8"},w={class:"w-full rounded-3xl border border-border bg-card p-6"},C={class:"mb-6 flex flex-wrap items-center justify-between gap-3"},N={class:"text-xs text-muted-foreground"},B={key:0,class:"mb-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},S={class:"grid gap-8 md:grid-cols-2"},V={class:"monitor-card__header"},j={class:"monitor-card__name"},F={class:"monitor-card__stats"},L={class:"monitor-card__value"},M={class:"monitor-card__value"},U={class:"monitor-card__value"},$={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},A={key:0,class:"rounded-2xl border border-border bg-card p-4 text-xs text-muted-foreground"},q=h({__name:"PublicUptime",setup(D){const{services:u,updatedAt:x,errorMessage:d,refreshStatus:b}=g();return v(()=>{b()}),(E,e)=>(a(),o("div",y,[t("div",k,[t("section",w,[t("div",C,[e[0]||(e[0]=t("div",null,[t("p",{class:"text-sm font-medium text-foreground"},"服务状态")],-1)),t("p",N,"最近更新:"+r(n(x)||"未获取"),1)]),n(d)?(a(),o("div",B,r(n(d)),1)):i("",!0),t("div",S,[(a(!0),o(_,null,m(n(u),s=>(a(),o("div",{key:s.key,class:"monitor-card"},[t("div",V,[t("span",j,r(s.name),1),t("span",{class:p(["monitor-card__badge",s.statusClass])},r(s.statusLabel),3)]),t("div",F,[t("span",null,[e[1]||(e[1]=c("可用率 ",-1)),t("span",L,r(s.uptime)+"%",1)]),t("span",null,[e[2]||(e[2]=c("请求 ",-1)),t("span",M,r(s.total),1)]),t("span",null,[e[3]||(e[3]=c("成功 ",-1)),t("span",U,r(s.success),1)])]),t("div",$,[(a(!0),o(_,null,m(s.beats,(l,f)=>(a(),o("div",{key:`${s.key}-${f}`,class:p(["monitor-beat",l.className])},[l.tooltip?(a(),o("span",z,r(l.tooltip),1)):i("",!0)],2))),128))])]))),128)),!n(u).length&&!n(d)?(a(),o("div",A," 暂无监控数据。 ")):i("",!0)])])])]))}});export{q as default}; diff --git a/static/assets/PublicUptime-zrQX5HS2.js b/static/assets/PublicUptime-zrQX5HS2.js new file mode 100644 index 0000000000000000000000000000000000000000..6c8fda10aa13619a0e93f141575c68fc3b38bf5b --- /dev/null +++ b/static/assets/PublicUptime-zrQX5HS2.js @@ -0,0 +1 @@ +import{u as g}from"./useUptimeStatus-WNjzrwnM.js";import{d as h,o as v,c as o,a as t,b as i,t as r,u as n,F as _,r as m,e as a,n as p,f as c}from"./index-Dt-VnrHx.js";const y={class:"min-h-screen overflow-x-hidden bg-card/70 text-foreground backdrop-blur"},k={class:"mx-auto flex min-h-screen w-full max-w-5xl min-w-0 items-center justify-center px-4 py-8"},w={class:"w-full rounded-3xl border border-border bg-card p-6"},C={class:"mb-6 flex flex-wrap items-center justify-between gap-3"},N={class:"text-xs text-muted-foreground"},B={key:0,class:"mb-4 rounded-2xl border border-destructive/30 bg-destructive/10 p-4 text-sm text-destructive"},S={class:"grid gap-8 md:grid-cols-2"},V={class:"monitor-card__header"},j={class:"monitor-card__name"},F={class:"monitor-card__stats"},L={class:"monitor-card__value"},M={class:"monitor-card__value"},U={class:"monitor-card__value"},$={class:"monitor-card__beats"},z={key:0,class:"monitor-beat__tooltip"},A={key:0,class:"rounded-2xl border border-border bg-card p-4 text-xs text-muted-foreground"},q=h({__name:"PublicUptime",setup(D){const{services:u,updatedAt:x,errorMessage:d,refreshStatus:b}=g();return v(()=>{b()}),(E,e)=>(a(),o("div",y,[t("div",k,[t("section",w,[t("div",C,[e[0]||(e[0]=t("div",null,[t("p",{class:"text-sm font-medium text-foreground"},"服务状态")],-1)),t("p",N,"最近更新:"+r(n(x)||"未获取"),1)]),n(d)?(a(),o("div",B,r(n(d)),1)):i("",!0),t("div",S,[(a(!0),o(_,null,m(n(u),s=>(a(),o("div",{key:s.key,class:"monitor-card"},[t("div",V,[t("span",j,r(s.name),1),t("span",{class:p(["monitor-card__badge",s.statusClass])},r(s.statusLabel),3)]),t("div",F,[t("span",null,[e[1]||(e[1]=c("可用率 ",-1)),t("span",L,r(s.uptime)+"%",1)]),t("span",null,[e[2]||(e[2]=c("请求 ",-1)),t("span",M,r(s.total),1)]),t("span",null,[e[3]||(e[3]=c("成功 ",-1)),t("span",U,r(s.success),1)])]),t("div",$,[(a(!0),o(_,null,m(s.beats,(l,f)=>(a(),o("div",{key:`${s.key}-${f}`,class:p(["monitor-beat",l.className])},[l.tooltip?(a(),o("span",z,r(l.tooltip),1)):i("",!0)],2))),128))])]))),128)),!n(u).length&&!n(d)?(a(),o("div",A," 暂无监控数据。 ")):i("",!0)])])])]))}});export{q as default}; diff --git a/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-8KWxq5-G.js b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-8KWxq5-G.js new file mode 100644 index 0000000000000000000000000000000000000000..39d9b24833a5b5e5d6c391088c9444ee8d6259c8 --- /dev/null +++ b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-8KWxq5-G.js @@ -0,0 +1 @@ +import{d as A,h as v,i as d,o as B,j as z,c as n,a as s,b,t as g,n as y,F as L,r as S,e as o}from"./index-Bh_hLcqi.js";const j={class:"truncate"},E=["onClick"],M={key:0,class:"text-xs"},F=A({__name:"SelectMenu",props:{modelValue:{},options:{},multiple:{type:Boolean},placeholder:{},placement:{}},emits:["update:modelValue"],setup(h,{emit:x}){const t=h,m=x,a=v(!1),c=v(null),i=d(()=>t.options.map(e=>typeof e=="string"?{label:e,value:e}:e)),V=d(()=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[];return l.length?l.length===1?i.value.find(u=>u.value===l[0])?.label||l[0]:`已选 ${l.length} 项`:t.placeholder||"请选择"}return i.value.find(l=>l.value===t.modelValue)?.label||String(t.modelValue??"")}),k=d(()=>t.placement==="up"?"bottom-full mb-2":"mt-2"),_=()=>{a.value=!a.value},p=e=>t.multiple?Array.isArray(t.modelValue)&&t.modelValue.includes(e):t.modelValue===e,w=e=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[],u=l.includes(e)?l.filter(C=>C!==e):[...l,e];m("update:modelValue",u);return}m("update:modelValue",e),a.value=!1},f=e=>{c.value&&(c.value.contains(e.target)||(a.value=!1))};return B(()=>{document.addEventListener("click",f)}),z(()=>{document.removeEventListener("click",f)}),(e,l)=>(o(),n("div",{ref_key:"root",ref:c,class:"relative w-full sm:w-44"},[s("button",{type:"button",class:"flex w-full items-center justify-between gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm text-foreground transition-colors hover:border-primary",onClick:_},[s("span",j,g(V.value),1),l[0]||(l[0]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1))]),a.value?(o(),n("div",{key:0,class:y(["absolute right-0 z-30 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg",k.value])},[(o(!0),n(L,null,S(i.value,r=>(o(),n("button",{key:r.value,type:"button",class:y(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors hover:bg-accent",p(r.value)?"bg-accent text-accent-foreground":"text-muted-foreground"]),onClick:u=>w(r.value)},[s("span",null,g(r.label),1),p(r.value)?(o(),n("span",M,"OK")):b("",!0)],10,E))),128))],2)):b("",!0)],512))}});export{F as _}; diff --git a/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-B2Zu3W0l.js b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-B2Zu3W0l.js new file mode 100644 index 0000000000000000000000000000000000000000..065482fa2752d7057ddca1c340efaf81c4e57391 --- /dev/null +++ b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-B2Zu3W0l.js @@ -0,0 +1 @@ +import{d as A,h as v,i as d,o as B,j as z,c as n,a as s,b,t as g,n as y,F as L,r as S,e as o}from"./index-gD6QQiOu.js";const j={class:"truncate"},E=["onClick"],M={key:0,class:"text-xs"},F=A({__name:"SelectMenu",props:{modelValue:{},options:{},multiple:{type:Boolean},placeholder:{},placement:{}},emits:["update:modelValue"],setup(h,{emit:x}){const t=h,m=x,a=v(!1),c=v(null),i=d(()=>t.options.map(e=>typeof e=="string"?{label:e,value:e}:e)),V=d(()=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[];return l.length?l.length===1?i.value.find(u=>u.value===l[0])?.label||l[0]:`已选 ${l.length} 项`:t.placeholder||"请选择"}return i.value.find(l=>l.value===t.modelValue)?.label||String(t.modelValue??"")}),k=d(()=>t.placement==="up"?"bottom-full mb-2":"mt-2"),_=()=>{a.value=!a.value},p=e=>t.multiple?Array.isArray(t.modelValue)&&t.modelValue.includes(e):t.modelValue===e,w=e=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[],u=l.includes(e)?l.filter(C=>C!==e):[...l,e];m("update:modelValue",u);return}m("update:modelValue",e),a.value=!1},f=e=>{c.value&&(c.value.contains(e.target)||(a.value=!1))};return B(()=>{document.addEventListener("click",f)}),z(()=>{document.removeEventListener("click",f)}),(e,l)=>(o(),n("div",{ref_key:"root",ref:c,class:"relative w-full sm:w-44"},[s("button",{type:"button",class:"flex w-full items-center justify-between gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm text-foreground transition-colors hover:border-primary",onClick:_},[s("span",j,g(V.value),1),l[0]||(l[0]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1))]),a.value?(o(),n("div",{key:0,class:y(["absolute right-0 z-30 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg",k.value])},[(o(!0),n(L,null,S(i.value,r=>(o(),n("button",{key:r.value,type:"button",class:y(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors hover:bg-accent",p(r.value)?"bg-accent text-accent-foreground":"text-muted-foreground"]),onClick:u=>w(r.value)},[s("span",null,g(r.label),1),p(r.value)?(o(),n("span",M,"OK")):b("",!0)],10,E))),128))],2)):b("",!0)],512))}});export{F as _}; diff --git a/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-B6K28QJL.js b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-B6K28QJL.js new file mode 100644 index 0000000000000000000000000000000000000000..6a8b394f7185373b77901fc374eb1a69af30c227 --- /dev/null +++ b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-B6K28QJL.js @@ -0,0 +1 @@ +import{d as A,h as v,i as d,o as B,j as z,c as n,a as o,b,t as g,n as y,F as L,r as S,e as s}from"./index-Dul9zA0O.js";const j={class:"truncate"},E=["onClick"],M={key:0,class:"text-xs"},F=A({__name:"SelectMenu",props:{modelValue:{},options:{},multiple:{type:Boolean},placeholder:{},placement:{}},emits:["update:modelValue"],setup(h,{emit:x}){const t=h,m=x,a=v(!1),c=v(null),i=d(()=>t.options.map(e=>typeof e=="string"?{label:e,value:e}:e)),V=d(()=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[];return l.length?l.length===1?i.value.find(u=>u.value===l[0])?.label||l[0]:`已选 ${l.length} 项`:t.placeholder||"请选择"}return i.value.find(l=>l.value===t.modelValue)?.label||String(t.modelValue??"")}),k=d(()=>t.placement==="up"?"bottom-full mb-2":"mt-2"),_=()=>{a.value=!a.value},p=e=>t.multiple?Array.isArray(t.modelValue)&&t.modelValue.includes(e):t.modelValue===e,w=e=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[],u=l.includes(e)?l.filter(C=>C!==e):[...l,e];m("update:modelValue",u);return}m("update:modelValue",e),a.value=!1},f=e=>{c.value&&(c.value.contains(e.target)||(a.value=!1))};return B(()=>{document.addEventListener("click",f)}),z(()=>{document.removeEventListener("click",f)}),(e,l)=>(s(),n("div",{ref_key:"root",ref:c,class:"relative w-full"},[o("button",{type:"button",class:"flex w-full items-center justify-between gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm text-foreground transition-colors hover:border-primary",onClick:_},[o("span",j,g(V.value),1),l[0]||(l[0]=o("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[o("path",{d:"M5 7l5 6 5-6H5z"})],-1))]),a.value?(s(),n("div",{key:0,class:y(["absolute right-0 z-30 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg",k.value])},[(s(!0),n(L,null,S(i.value,r=>(s(),n("button",{key:r.value,type:"button",class:y(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors hover:bg-accent",p(r.value)?"bg-accent text-accent-foreground":"text-muted-foreground"]),onClick:u=>w(r.value)},[o("span",null,g(r.label),1),p(r.value)?(s(),n("span",M,"OK")):b("",!0)],10,E))),128))],2)):b("",!0)],512))}});export{F as _}; diff --git a/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-BN7xX40H.js b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-BN7xX40H.js new file mode 100644 index 0000000000000000000000000000000000000000..cd3d582ddd760640f05f1fa77661286d067467e5 --- /dev/null +++ b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-BN7xX40H.js @@ -0,0 +1 @@ +import{d as A,h as v,i as d,o as B,j as z,c as n,a as s,b,t as g,n as y,F as L,r as S,e as o}from"./index-OP3F9IRB.js";const j={class:"truncate"},E=["onClick"],M={key:0,class:"text-xs"},F=A({__name:"SelectMenu",props:{modelValue:{},options:{},multiple:{type:Boolean},placeholder:{},placement:{}},emits:["update:modelValue"],setup(h,{emit:x}){const t=h,m=x,a=v(!1),c=v(null),i=d(()=>t.options.map(e=>typeof e=="string"?{label:e,value:e}:e)),V=d(()=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[];return l.length?l.length===1?i.value.find(u=>u.value===l[0])?.label||l[0]:`已选 ${l.length} 项`:t.placeholder||"请选择"}return i.value.find(l=>l.value===t.modelValue)?.label||String(t.modelValue??"")}),k=d(()=>t.placement==="up"?"bottom-full mb-2":"mt-2"),_=()=>{a.value=!a.value},p=e=>t.multiple?Array.isArray(t.modelValue)&&t.modelValue.includes(e):t.modelValue===e,w=e=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[],u=l.includes(e)?l.filter(C=>C!==e):[...l,e];m("update:modelValue",u);return}m("update:modelValue",e),a.value=!1},f=e=>{c.value&&(c.value.contains(e.target)||(a.value=!1))};return B(()=>{document.addEventListener("click",f)}),z(()=>{document.removeEventListener("click",f)}),(e,l)=>(o(),n("div",{ref_key:"root",ref:c,class:"relative w-full sm:w-44"},[s("button",{type:"button",class:"flex w-full items-center justify-between gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm text-foreground transition-colors hover:border-primary",onClick:_},[s("span",j,g(V.value),1),l[0]||(l[0]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1))]),a.value?(o(),n("div",{key:0,class:y(["absolute right-0 z-30 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg",k.value])},[(o(!0),n(L,null,S(i.value,r=>(o(),n("button",{key:r.value,type:"button",class:y(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors hover:bg-accent",p(r.value)?"bg-accent text-accent-foreground":"text-muted-foreground"]),onClick:u=>w(r.value)},[s("span",null,g(r.label),1),p(r.value)?(o(),n("span",M,"OK")):b("",!0)],10,E))),128))],2)):b("",!0)],512))}});export{F as _}; diff --git a/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-BOyWonLr.js b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-BOyWonLr.js new file mode 100644 index 0000000000000000000000000000000000000000..c36f97952bc62aecfdfde726a7c15f4577dbe41d --- /dev/null +++ b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-BOyWonLr.js @@ -0,0 +1 @@ +import{d as A,h as v,i as d,o as B,j as z,c as n,a as s,b,t as g,n as y,F as L,r as S,e as o}from"./index-DrM07qAY.js";const j={class:"truncate"},E=["onClick"],M={key:0,class:"text-xs"},F=A({__name:"SelectMenu",props:{modelValue:{},options:{},multiple:{type:Boolean},placeholder:{},placement:{}},emits:["update:modelValue"],setup(h,{emit:x}){const t=h,m=x,a=v(!1),c=v(null),i=d(()=>t.options.map(e=>typeof e=="string"?{label:e,value:e}:e)),V=d(()=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[];return l.length?l.length===1?i.value.find(u=>u.value===l[0])?.label||l[0]:`已选 ${l.length} 项`:t.placeholder||"请选择"}return i.value.find(l=>l.value===t.modelValue)?.label||String(t.modelValue??"")}),k=d(()=>t.placement==="up"?"bottom-full mb-2":"mt-2"),_=()=>{a.value=!a.value},p=e=>t.multiple?Array.isArray(t.modelValue)&&t.modelValue.includes(e):t.modelValue===e,w=e=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[],u=l.includes(e)?l.filter(C=>C!==e):[...l,e];m("update:modelValue",u);return}m("update:modelValue",e),a.value=!1},f=e=>{c.value&&(c.value.contains(e.target)||(a.value=!1))};return B(()=>{document.addEventListener("click",f)}),z(()=>{document.removeEventListener("click",f)}),(e,l)=>(o(),n("div",{ref_key:"root",ref:c,class:"relative w-full sm:w-44"},[s("button",{type:"button",class:"flex w-full items-center justify-between gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm text-foreground transition-colors hover:border-primary",onClick:_},[s("span",j,g(V.value),1),l[0]||(l[0]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1))]),a.value?(o(),n("div",{key:0,class:y(["absolute right-0 z-30 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg",k.value])},[(o(!0),n(L,null,S(i.value,r=>(o(),n("button",{key:r.value,type:"button",class:y(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors hover:bg-accent",p(r.value)?"bg-accent text-accent-foreground":"text-muted-foreground"]),onClick:u=>w(r.value)},[s("span",null,g(r.label),1),p(r.value)?(o(),n("span",M,"OK")):b("",!0)],10,E))),128))],2)):b("",!0)],512))}});export{F as _}; diff --git a/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-BVovBIaU.js b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-BVovBIaU.js new file mode 100644 index 0000000000000000000000000000000000000000..d74bff58d8b759a9635ef82b5de8c56563da3859 --- /dev/null +++ b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-BVovBIaU.js @@ -0,0 +1 @@ +import{d as A,h as v,i as d,o as B,j as z,c as n,a as s,b,t as g,n as y,F as L,r as S,e as o}from"./index-CQv2QMzB.js";const j={class:"truncate"},E=["onClick"],M={key:0,class:"text-xs"},F=A({__name:"SelectMenu",props:{modelValue:{},options:{},multiple:{type:Boolean},placeholder:{},placement:{}},emits:["update:modelValue"],setup(h,{emit:x}){const t=h,m=x,a=v(!1),c=v(null),i=d(()=>t.options.map(e=>typeof e=="string"?{label:e,value:e}:e)),V=d(()=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[];return l.length?l.length===1?i.value.find(u=>u.value===l[0])?.label||l[0]:`已选 ${l.length} 项`:t.placeholder||"请选择"}return i.value.find(l=>l.value===t.modelValue)?.label||String(t.modelValue??"")}),k=d(()=>t.placement==="up"?"bottom-full mb-2":"mt-2"),_=()=>{a.value=!a.value},p=e=>t.multiple?Array.isArray(t.modelValue)&&t.modelValue.includes(e):t.modelValue===e,w=e=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[],u=l.includes(e)?l.filter(C=>C!==e):[...l,e];m("update:modelValue",u);return}m("update:modelValue",e),a.value=!1},f=e=>{c.value&&(c.value.contains(e.target)||(a.value=!1))};return B(()=>{document.addEventListener("click",f)}),z(()=>{document.removeEventListener("click",f)}),(e,l)=>(o(),n("div",{ref_key:"root",ref:c,class:"relative w-full sm:w-44"},[s("button",{type:"button",class:"flex w-full items-center justify-between gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm text-foreground transition-colors hover:border-primary",onClick:_},[s("span",j,g(V.value),1),l[0]||(l[0]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1))]),a.value?(o(),n("div",{key:0,class:y(["absolute right-0 z-30 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg",k.value])},[(o(!0),n(L,null,S(i.value,r=>(o(),n("button",{key:r.value,type:"button",class:y(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors hover:bg-accent",p(r.value)?"bg-accent text-accent-foreground":"text-muted-foreground"]),onClick:u=>w(r.value)},[s("span",null,g(r.label),1),p(r.value)?(o(),n("span",M,"OK")):b("",!0)],10,E))),128))],2)):b("",!0)],512))}});export{F as _}; diff --git a/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-BVzlIq4n.js b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-BVzlIq4n.js new file mode 100644 index 0000000000000000000000000000000000000000..42149d7a4f02cc793d740e916f1e8f11bb01660b --- /dev/null +++ b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-BVzlIq4n.js @@ -0,0 +1 @@ +import{d as A,h as v,i as d,o as B,j as z,c as n,a as s,b,t as g,n as y,F as L,r as S,e as o}from"./index-Babp7OwB.js";const j={class:"truncate"},E=["onClick"],M={key:0,class:"text-xs"},F=A({__name:"SelectMenu",props:{modelValue:{},options:{},multiple:{type:Boolean},placeholder:{},placement:{}},emits:["update:modelValue"],setup(h,{emit:x}){const t=h,m=x,a=v(!1),c=v(null),i=d(()=>t.options.map(e=>typeof e=="string"?{label:e,value:e}:e)),V=d(()=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[];return l.length?l.length===1?i.value.find(u=>u.value===l[0])?.label||l[0]:`已选 ${l.length} 项`:t.placeholder||"请选择"}return i.value.find(l=>l.value===t.modelValue)?.label||String(t.modelValue??"")}),k=d(()=>t.placement==="up"?"bottom-full mb-2":"mt-2"),_=()=>{a.value=!a.value},p=e=>t.multiple?Array.isArray(t.modelValue)&&t.modelValue.includes(e):t.modelValue===e,w=e=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[],u=l.includes(e)?l.filter(C=>C!==e):[...l,e];m("update:modelValue",u);return}m("update:modelValue",e),a.value=!1},f=e=>{c.value&&(c.value.contains(e.target)||(a.value=!1))};return B(()=>{document.addEventListener("click",f)}),z(()=>{document.removeEventListener("click",f)}),(e,l)=>(o(),n("div",{ref_key:"root",ref:c,class:"relative w-full sm:w-44"},[s("button",{type:"button",class:"flex w-full items-center justify-between gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm text-foreground transition-colors hover:border-primary",onClick:_},[s("span",j,g(V.value),1),l[0]||(l[0]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1))]),a.value?(o(),n("div",{key:0,class:y(["absolute right-0 z-30 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg",k.value])},[(o(!0),n(L,null,S(i.value,r=>(o(),n("button",{key:r.value,type:"button",class:y(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors hover:bg-accent",p(r.value)?"bg-accent text-accent-foreground":"text-muted-foreground"]),onClick:u=>w(r.value)},[s("span",null,g(r.label),1),p(r.value)?(o(),n("span",M,"OK")):b("",!0)],10,E))),128))],2)):b("",!0)],512))}});export{F as _}; diff --git a/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-Bb3w9pba.js b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-Bb3w9pba.js new file mode 100644 index 0000000000000000000000000000000000000000..e98e98fe2dc89c28bb5b0b87dc0b1a33a1e82ca2 --- /dev/null +++ b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-Bb3w9pba.js @@ -0,0 +1 @@ +import{d as A,h as v,i as d,o as B,j as z,c as n,a as s,b,t as g,n as y,F as L,r as S,e as o}from"./index-B0A0-QFY.js";const j={class:"truncate"},E=["onClick"],M={key:0,class:"text-xs"},F=A({__name:"SelectMenu",props:{modelValue:{},options:{},multiple:{type:Boolean},placeholder:{},placement:{}},emits:["update:modelValue"],setup(h,{emit:x}){const t=h,m=x,a=v(!1),c=v(null),i=d(()=>t.options.map(e=>typeof e=="string"?{label:e,value:e}:e)),V=d(()=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[];return l.length?l.length===1?i.value.find(u=>u.value===l[0])?.label||l[0]:`已选 ${l.length} 项`:t.placeholder||"请选择"}return i.value.find(l=>l.value===t.modelValue)?.label||String(t.modelValue??"")}),k=d(()=>t.placement==="up"?"bottom-full mb-2":"mt-2"),_=()=>{a.value=!a.value},p=e=>t.multiple?Array.isArray(t.modelValue)&&t.modelValue.includes(e):t.modelValue===e,w=e=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[],u=l.includes(e)?l.filter(C=>C!==e):[...l,e];m("update:modelValue",u);return}m("update:modelValue",e),a.value=!1},f=e=>{c.value&&(c.value.contains(e.target)||(a.value=!1))};return B(()=>{document.addEventListener("click",f)}),z(()=>{document.removeEventListener("click",f)}),(e,l)=>(o(),n("div",{ref_key:"root",ref:c,class:"relative w-full sm:w-44"},[s("button",{type:"button",class:"flex w-full items-center justify-between gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm text-foreground transition-colors hover:border-primary",onClick:_},[s("span",j,g(V.value),1),l[0]||(l[0]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1))]),a.value?(o(),n("div",{key:0,class:y(["absolute right-0 z-30 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg",k.value])},[(o(!0),n(L,null,S(i.value,r=>(o(),n("button",{key:r.value,type:"button",class:y(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors hover:bg-accent",p(r.value)?"bg-accent text-accent-foreground":"text-muted-foreground"]),onClick:u=>w(r.value)},[s("span",null,g(r.label),1),p(r.value)?(o(),n("span",M,"OK")):b("",!0)],10,E))),128))],2)):b("",!0)],512))}});export{F as _}; diff --git a/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-BgTufWxo.js b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-BgTufWxo.js new file mode 100644 index 0000000000000000000000000000000000000000..5de08332ad03c06788807f4ab125c30e3d0684d1 --- /dev/null +++ b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-BgTufWxo.js @@ -0,0 +1 @@ +import{d as A,h as v,i as d,o as B,j as z,c as n,a as s,b,t as g,n as y,F as L,r as S,e as o}from"./index-DDWWwh2l.js";const j={class:"truncate"},E=["onClick"],M={key:0,class:"text-xs"},F=A({__name:"SelectMenu",props:{modelValue:{},options:{},multiple:{type:Boolean},placeholder:{},placement:{}},emits:["update:modelValue"],setup(h,{emit:x}){const t=h,m=x,a=v(!1),c=v(null),i=d(()=>t.options.map(e=>typeof e=="string"?{label:e,value:e}:e)),V=d(()=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[];return l.length?l.length===1?i.value.find(u=>u.value===l[0])?.label||l[0]:`已选 ${l.length} 项`:t.placeholder||"请选择"}return i.value.find(l=>l.value===t.modelValue)?.label||String(t.modelValue??"")}),k=d(()=>t.placement==="up"?"bottom-full mb-2":"mt-2"),_=()=>{a.value=!a.value},p=e=>t.multiple?Array.isArray(t.modelValue)&&t.modelValue.includes(e):t.modelValue===e,w=e=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[],u=l.includes(e)?l.filter(C=>C!==e):[...l,e];m("update:modelValue",u);return}m("update:modelValue",e),a.value=!1},f=e=>{c.value&&(c.value.contains(e.target)||(a.value=!1))};return B(()=>{document.addEventListener("click",f)}),z(()=>{document.removeEventListener("click",f)}),(e,l)=>(o(),n("div",{ref_key:"root",ref:c,class:"relative w-full sm:w-44"},[s("button",{type:"button",class:"flex w-full items-center justify-between gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm text-foreground transition-colors hover:border-primary",onClick:_},[s("span",j,g(V.value),1),l[0]||(l[0]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1))]),a.value?(o(),n("div",{key:0,class:y(["absolute right-0 z-30 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg",k.value])},[(o(!0),n(L,null,S(i.value,r=>(o(),n("button",{key:r.value,type:"button",class:y(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors hover:bg-accent",p(r.value)?"bg-accent text-accent-foreground":"text-muted-foreground"]),onClick:u=>w(r.value)},[s("span",null,g(r.label),1),p(r.value)?(o(),n("span",M,"OK")):b("",!0)],10,E))),128))],2)):b("",!0)],512))}});export{F as _}; diff --git a/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-CJjLLYhZ.js b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-CJjLLYhZ.js new file mode 100644 index 0000000000000000000000000000000000000000..9dfbae74481a5a404c1432f374f79341380f00e3 --- /dev/null +++ b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-CJjLLYhZ.js @@ -0,0 +1 @@ +import{d as A,h as v,i as d,o as B,j as z,c as n,a as s,b,t as g,n as y,F as L,r as S,e as o}from"./index-Bx7qSams.js";const j={class:"truncate"},E=["onClick"],M={key:0,class:"text-xs"},F=A({__name:"SelectMenu",props:{modelValue:{},options:{},multiple:{type:Boolean},placeholder:{},placement:{}},emits:["update:modelValue"],setup(h,{emit:x}){const t=h,m=x,a=v(!1),c=v(null),i=d(()=>t.options.map(e=>typeof e=="string"?{label:e,value:e}:e)),V=d(()=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[];return l.length?l.length===1?i.value.find(u=>u.value===l[0])?.label||l[0]:`已选 ${l.length} 项`:t.placeholder||"请选择"}return i.value.find(l=>l.value===t.modelValue)?.label||String(t.modelValue??"")}),k=d(()=>t.placement==="up"?"bottom-full mb-2":"mt-2"),_=()=>{a.value=!a.value},p=e=>t.multiple?Array.isArray(t.modelValue)&&t.modelValue.includes(e):t.modelValue===e,w=e=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[],u=l.includes(e)?l.filter(C=>C!==e):[...l,e];m("update:modelValue",u);return}m("update:modelValue",e),a.value=!1},f=e=>{c.value&&(c.value.contains(e.target)||(a.value=!1))};return B(()=>{document.addEventListener("click",f)}),z(()=>{document.removeEventListener("click",f)}),(e,l)=>(o(),n("div",{ref_key:"root",ref:c,class:"relative w-full sm:w-44"},[s("button",{type:"button",class:"flex w-full items-center justify-between gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm text-foreground transition-colors hover:border-primary",onClick:_},[s("span",j,g(V.value),1),l[0]||(l[0]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1))]),a.value?(o(),n("div",{key:0,class:y(["absolute right-0 z-30 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg",k.value])},[(o(!0),n(L,null,S(i.value,r=>(o(),n("button",{key:r.value,type:"button",class:y(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors hover:bg-accent",p(r.value)?"bg-accent text-accent-foreground":"text-muted-foreground"]),onClick:u=>w(r.value)},[s("span",null,g(r.label),1),p(r.value)?(o(),n("span",M,"OK")):b("",!0)],10,E))),128))],2)):b("",!0)],512))}});export{F as _}; diff --git a/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-Cdct4OHH.js b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-Cdct4OHH.js new file mode 100644 index 0000000000000000000000000000000000000000..e351277bb6fed90334708012f8e11d8e9568cd2c --- /dev/null +++ b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-Cdct4OHH.js @@ -0,0 +1 @@ +import{d as A,h as v,i as d,o as B,j as z,c as n,a as s,b,t as g,n as y,F as L,r as S,e as o}from"./index-BIHSVHyU.js";const j={class:"truncate"},E=["onClick"],M={key:0,class:"text-xs"},F=A({__name:"SelectMenu",props:{modelValue:{},options:{},multiple:{type:Boolean},placeholder:{},placement:{}},emits:["update:modelValue"],setup(h,{emit:x}){const t=h,m=x,a=v(!1),c=v(null),i=d(()=>t.options.map(e=>typeof e=="string"?{label:e,value:e}:e)),V=d(()=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[];return l.length?l.length===1?i.value.find(u=>u.value===l[0])?.label||l[0]:`已选 ${l.length} 项`:t.placeholder||"请选择"}return i.value.find(l=>l.value===t.modelValue)?.label||String(t.modelValue??"")}),k=d(()=>t.placement==="up"?"bottom-full mb-2":"mt-2"),_=()=>{a.value=!a.value},p=e=>t.multiple?Array.isArray(t.modelValue)&&t.modelValue.includes(e):t.modelValue===e,w=e=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[],u=l.includes(e)?l.filter(C=>C!==e):[...l,e];m("update:modelValue",u);return}m("update:modelValue",e),a.value=!1},f=e=>{c.value&&(c.value.contains(e.target)||(a.value=!1))};return B(()=>{document.addEventListener("click",f)}),z(()=>{document.removeEventListener("click",f)}),(e,l)=>(o(),n("div",{ref_key:"root",ref:c,class:"relative w-full sm:w-44"},[s("button",{type:"button",class:"flex w-full items-center justify-between gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm text-foreground transition-colors hover:border-primary",onClick:_},[s("span",j,g(V.value),1),l[0]||(l[0]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1))]),a.value?(o(),n("div",{key:0,class:y(["absolute right-0 z-30 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg",k.value])},[(o(!0),n(L,null,S(i.value,r=>(o(),n("button",{key:r.value,type:"button",class:y(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors hover:bg-accent",p(r.value)?"bg-accent text-accent-foreground":"text-muted-foreground"]),onClick:u=>w(r.value)},[s("span",null,g(r.label),1),p(r.value)?(o(),n("span",M,"OK")):b("",!0)],10,E))),128))],2)):b("",!0)],512))}});export{F as _}; diff --git a/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-CeWkosco.js b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-CeWkosco.js new file mode 100644 index 0000000000000000000000000000000000000000..651a25fc6b7979eba24b421a8f6dc787980f6182 --- /dev/null +++ b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-CeWkosco.js @@ -0,0 +1 @@ +import{d as A,h as v,i as d,o as B,j as z,c as n,a as s,b,t as g,n as y,F as L,r as S,e as o}from"./index-BRM37S6x.js";const j={class:"truncate"},E=["onClick"],M={key:0,class:"text-xs"},F=A({__name:"SelectMenu",props:{modelValue:{},options:{},multiple:{type:Boolean},placeholder:{},placement:{}},emits:["update:modelValue"],setup(h,{emit:x}){const t=h,m=x,a=v(!1),c=v(null),i=d(()=>t.options.map(e=>typeof e=="string"?{label:e,value:e}:e)),V=d(()=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[];return l.length?l.length===1?i.value.find(u=>u.value===l[0])?.label||l[0]:`已选 ${l.length} 项`:t.placeholder||"请选择"}return i.value.find(l=>l.value===t.modelValue)?.label||String(t.modelValue??"")}),k=d(()=>t.placement==="up"?"bottom-full mb-2":"mt-2"),_=()=>{a.value=!a.value},p=e=>t.multiple?Array.isArray(t.modelValue)&&t.modelValue.includes(e):t.modelValue===e,w=e=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[],u=l.includes(e)?l.filter(C=>C!==e):[...l,e];m("update:modelValue",u);return}m("update:modelValue",e),a.value=!1},f=e=>{c.value&&(c.value.contains(e.target)||(a.value=!1))};return B(()=>{document.addEventListener("click",f)}),z(()=>{document.removeEventListener("click",f)}),(e,l)=>(o(),n("div",{ref_key:"root",ref:c,class:"relative w-full sm:w-44"},[s("button",{type:"button",class:"flex w-full items-center justify-between gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm text-foreground transition-colors hover:border-primary",onClick:_},[s("span",j,g(V.value),1),l[0]||(l[0]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1))]),a.value?(o(),n("div",{key:0,class:y(["absolute right-0 z-30 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg",k.value])},[(o(!0),n(L,null,S(i.value,r=>(o(),n("button",{key:r.value,type:"button",class:y(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors hover:bg-accent",p(r.value)?"bg-accent text-accent-foreground":"text-muted-foreground"]),onClick:u=>w(r.value)},[s("span",null,g(r.label),1),p(r.value)?(o(),n("span",M,"OK")):b("",!0)],10,E))),128))],2)):b("",!0)],512))}});export{F as _}; diff --git a/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-CmVUq-Y1.js b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-CmVUq-Y1.js new file mode 100644 index 0000000000000000000000000000000000000000..72cf123c4d70e6e77b2151f7ce3e384728c07806 --- /dev/null +++ b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-CmVUq-Y1.js @@ -0,0 +1 @@ +import{d as A,h as v,i as d,o as B,j as z,c as n,a as s,b,t as g,n as y,F as L,r as S,e as o}from"./index-DL4Fp3an.js";const j={class:"truncate"},E=["onClick"],M={key:0,class:"text-xs"},F=A({__name:"SelectMenu",props:{modelValue:{},options:{},multiple:{type:Boolean},placeholder:{},placement:{}},emits:["update:modelValue"],setup(h,{emit:x}){const t=h,m=x,a=v(!1),c=v(null),i=d(()=>t.options.map(e=>typeof e=="string"?{label:e,value:e}:e)),V=d(()=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[];return l.length?l.length===1?i.value.find(u=>u.value===l[0])?.label||l[0]:`已选 ${l.length} 项`:t.placeholder||"请选择"}return i.value.find(l=>l.value===t.modelValue)?.label||String(t.modelValue??"")}),k=d(()=>t.placement==="up"?"bottom-full mb-2":"mt-2"),_=()=>{a.value=!a.value},p=e=>t.multiple?Array.isArray(t.modelValue)&&t.modelValue.includes(e):t.modelValue===e,w=e=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[],u=l.includes(e)?l.filter(C=>C!==e):[...l,e];m("update:modelValue",u);return}m("update:modelValue",e),a.value=!1},f=e=>{c.value&&(c.value.contains(e.target)||(a.value=!1))};return B(()=>{document.addEventListener("click",f)}),z(()=>{document.removeEventListener("click",f)}),(e,l)=>(o(),n("div",{ref_key:"root",ref:c,class:"relative w-full sm:w-44"},[s("button",{type:"button",class:"flex w-full items-center justify-between gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm text-foreground transition-colors hover:border-primary",onClick:_},[s("span",j,g(V.value),1),l[0]||(l[0]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1))]),a.value?(o(),n("div",{key:0,class:y(["absolute right-0 z-30 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg",k.value])},[(o(!0),n(L,null,S(i.value,r=>(o(),n("button",{key:r.value,type:"button",class:y(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors hover:bg-accent",p(r.value)?"bg-accent text-accent-foreground":"text-muted-foreground"]),onClick:u=>w(r.value)},[s("span",null,g(r.label),1),p(r.value)?(o(),n("span",M,"OK")):b("",!0)],10,E))),128))],2)):b("",!0)],512))}});export{F as _}; diff --git a/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-CmlylKNl.js b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-CmlylKNl.js new file mode 100644 index 0000000000000000000000000000000000000000..613c4697d0c9a1bc727ee0463b5d1be5cabc9945 --- /dev/null +++ b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-CmlylKNl.js @@ -0,0 +1 @@ +import{d as A,h as v,i as d,o as B,j as z,c as n,a as s,b,t as g,n as y,F as L,r as S,e as o}from"./index-CM73xqTK.js";const j={class:"truncate"},E=["onClick"],M={key:0,class:"text-xs"},F=A({__name:"SelectMenu",props:{modelValue:{},options:{},multiple:{type:Boolean},placeholder:{},placement:{}},emits:["update:modelValue"],setup(h,{emit:x}){const t=h,m=x,a=v(!1),c=v(null),i=d(()=>t.options.map(e=>typeof e=="string"?{label:e,value:e}:e)),V=d(()=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[];return l.length?l.length===1?i.value.find(u=>u.value===l[0])?.label||l[0]:`已选 ${l.length} 项`:t.placeholder||"请选择"}return i.value.find(l=>l.value===t.modelValue)?.label||String(t.modelValue??"")}),k=d(()=>t.placement==="up"?"bottom-full mb-2":"mt-2"),_=()=>{a.value=!a.value},p=e=>t.multiple?Array.isArray(t.modelValue)&&t.modelValue.includes(e):t.modelValue===e,w=e=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[],u=l.includes(e)?l.filter(C=>C!==e):[...l,e];m("update:modelValue",u);return}m("update:modelValue",e),a.value=!1},f=e=>{c.value&&(c.value.contains(e.target)||(a.value=!1))};return B(()=>{document.addEventListener("click",f)}),z(()=>{document.removeEventListener("click",f)}),(e,l)=>(o(),n("div",{ref_key:"root",ref:c,class:"relative w-full sm:w-44"},[s("button",{type:"button",class:"flex w-full items-center justify-between gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm text-foreground transition-colors hover:border-primary",onClick:_},[s("span",j,g(V.value),1),l[0]||(l[0]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1))]),a.value?(o(),n("div",{key:0,class:y(["absolute right-0 z-30 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg",k.value])},[(o(!0),n(L,null,S(i.value,r=>(o(),n("button",{key:r.value,type:"button",class:y(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors hover:bg-accent",p(r.value)?"bg-accent text-accent-foreground":"text-muted-foreground"]),onClick:u=>w(r.value)},[s("span",null,g(r.label),1),p(r.value)?(o(),n("span",M,"OK")):b("",!0)],10,E))),128))],2)):b("",!0)],512))}});export{F as _}; diff --git a/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-Cu_3WwPc.js b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-Cu_3WwPc.js new file mode 100644 index 0000000000000000000000000000000000000000..6088b00d095daf3fc7c60fe604724d3fad2f52be --- /dev/null +++ b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-Cu_3WwPc.js @@ -0,0 +1 @@ +import{d as A,h as v,i as d,o as B,j as z,c as n,a as s,b,t as g,n as y,F as L,r as S,e as o}from"./index-C4edAQLF.js";const j={class:"truncate"},E=["onClick"],M={key:0,class:"text-xs"},F=A({__name:"SelectMenu",props:{modelValue:{},options:{},multiple:{type:Boolean},placeholder:{},placement:{}},emits:["update:modelValue"],setup(h,{emit:x}){const t=h,m=x,a=v(!1),c=v(null),i=d(()=>t.options.map(e=>typeof e=="string"?{label:e,value:e}:e)),V=d(()=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[];return l.length?l.length===1?i.value.find(u=>u.value===l[0])?.label||l[0]:`已选 ${l.length} 项`:t.placeholder||"请选择"}return i.value.find(l=>l.value===t.modelValue)?.label||String(t.modelValue??"")}),k=d(()=>t.placement==="up"?"bottom-full mb-2":"mt-2"),_=()=>{a.value=!a.value},p=e=>t.multiple?Array.isArray(t.modelValue)&&t.modelValue.includes(e):t.modelValue===e,w=e=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[],u=l.includes(e)?l.filter(C=>C!==e):[...l,e];m("update:modelValue",u);return}m("update:modelValue",e),a.value=!1},f=e=>{c.value&&(c.value.contains(e.target)||(a.value=!1))};return B(()=>{document.addEventListener("click",f)}),z(()=>{document.removeEventListener("click",f)}),(e,l)=>(o(),n("div",{ref_key:"root",ref:c,class:"relative w-full sm:w-52"},[s("button",{type:"button",class:"flex w-full items-center justify-between gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm text-foreground transition-colors hover:border-primary",onClick:_},[s("span",j,g(V.value),1),l[0]||(l[0]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1))]),a.value?(o(),n("div",{key:0,class:y(["absolute right-0 z-30 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg",k.value])},[(o(!0),n(L,null,S(i.value,r=>(o(),n("button",{key:r.value,type:"button",class:y(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors hover:bg-accent",p(r.value)?"bg-accent text-accent-foreground":"text-muted-foreground"]),onClick:u=>w(r.value)},[s("span",null,g(r.label),1),p(r.value)?(o(),n("span",M,"OK")):b("",!0)],10,E))),128))],2)):b("",!0)],512))}});export{F as _}; diff --git a/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-D8K-xqMi.js b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-D8K-xqMi.js new file mode 100644 index 0000000000000000000000000000000000000000..82df1df0f132d3d8d08216e0d027d1ae5f6e9bb3 --- /dev/null +++ b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-D8K-xqMi.js @@ -0,0 +1 @@ +import{d as A,h as v,i as d,o as B,j as z,c as n,a as s,b,t as g,n as y,F as L,r as S,e as o}from"./index-BYFRJmx0.js";const j={class:"truncate"},E=["onClick"],M={key:0,class:"text-xs"},F=A({__name:"SelectMenu",props:{modelValue:{},options:{},multiple:{type:Boolean},placeholder:{},placement:{}},emits:["update:modelValue"],setup(h,{emit:x}){const t=h,m=x,a=v(!1),c=v(null),i=d(()=>t.options.map(e=>typeof e=="string"?{label:e,value:e}:e)),V=d(()=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[];return l.length?l.length===1?i.value.find(u=>u.value===l[0])?.label||l[0]:`已选 ${l.length} 项`:t.placeholder||"请选择"}return i.value.find(l=>l.value===t.modelValue)?.label||String(t.modelValue??"")}),k=d(()=>t.placement==="up"?"bottom-full mb-2":"mt-2"),_=()=>{a.value=!a.value},p=e=>t.multiple?Array.isArray(t.modelValue)&&t.modelValue.includes(e):t.modelValue===e,w=e=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[],u=l.includes(e)?l.filter(C=>C!==e):[...l,e];m("update:modelValue",u);return}m("update:modelValue",e),a.value=!1},f=e=>{c.value&&(c.value.contains(e.target)||(a.value=!1))};return B(()=>{document.addEventListener("click",f)}),z(()=>{document.removeEventListener("click",f)}),(e,l)=>(o(),n("div",{ref_key:"root",ref:c,class:"relative w-full sm:w-44"},[s("button",{type:"button",class:"flex w-full items-center justify-between gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm text-foreground transition-colors hover:border-primary",onClick:_},[s("span",j,g(V.value),1),l[0]||(l[0]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1))]),a.value?(o(),n("div",{key:0,class:y(["absolute right-0 z-30 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg",k.value])},[(o(!0),n(L,null,S(i.value,r=>(o(),n("button",{key:r.value,type:"button",class:y(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors hover:bg-accent",p(r.value)?"bg-accent text-accent-foreground":"text-muted-foreground"]),onClick:u=>w(r.value)},[s("span",null,g(r.label),1),p(r.value)?(o(),n("span",M,"OK")):b("",!0)],10,E))),128))],2)):b("",!0)],512))}});export{F as _}; diff --git a/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-DEvRak0a.js b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-DEvRak0a.js new file mode 100644 index 0000000000000000000000000000000000000000..a3afa0c67025afdc6c9bf42b6b5d593909554581 --- /dev/null +++ b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-DEvRak0a.js @@ -0,0 +1 @@ +import{d as A,h as v,i as d,o as B,j as z,c as n,a as s,b,t as g,n as y,F as L,r as S,e as o}from"./index-CkXB0iyt.js";const j={class:"truncate"},E=["onClick"],M={key:0,class:"text-xs"},F=A({__name:"SelectMenu",props:{modelValue:{},options:{},multiple:{type:Boolean},placeholder:{},placement:{}},emits:["update:modelValue"],setup(h,{emit:x}){const t=h,m=x,a=v(!1),c=v(null),i=d(()=>t.options.map(e=>typeof e=="string"?{label:e,value:e}:e)),V=d(()=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[];return l.length?l.length===1?i.value.find(u=>u.value===l[0])?.label||l[0]:`已选 ${l.length} 项`:t.placeholder||"请选择"}return i.value.find(l=>l.value===t.modelValue)?.label||String(t.modelValue??"")}),k=d(()=>t.placement==="up"?"bottom-full mb-2":"mt-2"),_=()=>{a.value=!a.value},p=e=>t.multiple?Array.isArray(t.modelValue)&&t.modelValue.includes(e):t.modelValue===e,w=e=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[],u=l.includes(e)?l.filter(C=>C!==e):[...l,e];m("update:modelValue",u);return}m("update:modelValue",e),a.value=!1},f=e=>{c.value&&(c.value.contains(e.target)||(a.value=!1))};return B(()=>{document.addEventListener("click",f)}),z(()=>{document.removeEventListener("click",f)}),(e,l)=>(o(),n("div",{ref_key:"root",ref:c,class:"relative w-full sm:w-44"},[s("button",{type:"button",class:"flex w-full items-center justify-between gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm text-foreground transition-colors hover:border-primary",onClick:_},[s("span",j,g(V.value),1),l[0]||(l[0]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1))]),a.value?(o(),n("div",{key:0,class:y(["absolute right-0 z-30 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg",k.value])},[(o(!0),n(L,null,S(i.value,r=>(o(),n("button",{key:r.value,type:"button",class:y(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors hover:bg-accent",p(r.value)?"bg-accent text-accent-foreground":"text-muted-foreground"]),onClick:u=>w(r.value)},[s("span",null,g(r.label),1),p(r.value)?(o(),n("span",M,"OK")):b("",!0)],10,E))),128))],2)):b("",!0)],512))}});export{F as _}; diff --git a/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-DG1nunQt.js b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-DG1nunQt.js new file mode 100644 index 0000000000000000000000000000000000000000..d6fea9ab663101f18eca83dc2bdb1b1a16cd7ece --- /dev/null +++ b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-DG1nunQt.js @@ -0,0 +1 @@ +import{d as A,h as v,i as d,o as B,j as z,c as n,a as o,b,t as g,n as y,F as L,r as S,e as s}from"./index-Bjh6Z8Zq.js";const j={class:"truncate"},E=["onClick"],M={key:0,class:"text-xs"},F=A({__name:"SelectMenu",props:{modelValue:{},options:{},multiple:{type:Boolean},placeholder:{},placement:{}},emits:["update:modelValue"],setup(h,{emit:x}){const t=h,m=x,a=v(!1),c=v(null),i=d(()=>t.options.map(e=>typeof e=="string"?{label:e,value:e}:e)),V=d(()=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[];return l.length?l.length===1?i.value.find(u=>u.value===l[0])?.label||l[0]:`已选 ${l.length} 项`:t.placeholder||"请选择"}return i.value.find(l=>l.value===t.modelValue)?.label||String(t.modelValue??"")}),k=d(()=>t.placement==="up"?"bottom-full mb-2":"mt-2"),_=()=>{a.value=!a.value},p=e=>t.multiple?Array.isArray(t.modelValue)&&t.modelValue.includes(e):t.modelValue===e,w=e=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[],u=l.includes(e)?l.filter(C=>C!==e):[...l,e];m("update:modelValue",u);return}m("update:modelValue",e),a.value=!1},f=e=>{c.value&&(c.value.contains(e.target)||(a.value=!1))};return B(()=>{document.addEventListener("click",f)}),z(()=>{document.removeEventListener("click",f)}),(e,l)=>(s(),n("div",{ref_key:"root",ref:c,class:"relative w-full"},[o("button",{type:"button",class:"flex w-full items-center justify-between gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm text-foreground transition-colors hover:border-primary",onClick:_},[o("span",j,g(V.value),1),l[0]||(l[0]=o("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[o("path",{d:"M5 7l5 6 5-6H5z"})],-1))]),a.value?(s(),n("div",{key:0,class:y(["absolute right-0 z-30 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg",k.value])},[(s(!0),n(L,null,S(i.value,r=>(s(),n("button",{key:r.value,type:"button",class:y(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors hover:bg-accent",p(r.value)?"bg-accent text-accent-foreground":"text-muted-foreground"]),onClick:u=>w(r.value)},[o("span",null,g(r.label),1),p(r.value)?(s(),n("span",M,"OK")):b("",!0)],10,E))),128))],2)):b("",!0)],512))}});export{F as _}; diff --git a/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-DebMUA1u.js b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-DebMUA1u.js new file mode 100644 index 0000000000000000000000000000000000000000..c42ee3e30056e45a0197ba77b2c7bcf988209f3e --- /dev/null +++ b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-DebMUA1u.js @@ -0,0 +1 @@ +import{d as A,h as v,i as d,o as B,j as z,c as n,a as s,b,t as g,n as y,F as L,r as S,e as o}from"./index-CDbQWWUi.js";const j={class:"truncate"},E=["onClick"],M={key:0,class:"text-xs"},F=A({__name:"SelectMenu",props:{modelValue:{},options:{},multiple:{type:Boolean},placeholder:{},placement:{}},emits:["update:modelValue"],setup(h,{emit:x}){const t=h,m=x,a=v(!1),c=v(null),i=d(()=>t.options.map(e=>typeof e=="string"?{label:e,value:e}:e)),V=d(()=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[];return l.length?l.length===1?i.value.find(u=>u.value===l[0])?.label||l[0]:`已选 ${l.length} 项`:t.placeholder||"请选择"}return i.value.find(l=>l.value===t.modelValue)?.label||String(t.modelValue??"")}),k=d(()=>t.placement==="up"?"bottom-full mb-2":"mt-2"),_=()=>{a.value=!a.value},p=e=>t.multiple?Array.isArray(t.modelValue)&&t.modelValue.includes(e):t.modelValue===e,w=e=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[],u=l.includes(e)?l.filter(C=>C!==e):[...l,e];m("update:modelValue",u);return}m("update:modelValue",e),a.value=!1},f=e=>{c.value&&(c.value.contains(e.target)||(a.value=!1))};return B(()=>{document.addEventListener("click",f)}),z(()=>{document.removeEventListener("click",f)}),(e,l)=>(o(),n("div",{ref_key:"root",ref:c,class:"relative w-full sm:w-44"},[s("button",{type:"button",class:"flex w-full items-center justify-between gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm text-foreground transition-colors hover:border-primary",onClick:_},[s("span",j,g(V.value),1),l[0]||(l[0]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1))]),a.value?(o(),n("div",{key:0,class:y(["absolute right-0 z-30 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg",k.value])},[(o(!0),n(L,null,S(i.value,r=>(o(),n("button",{key:r.value,type:"button",class:y(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors hover:bg-accent",p(r.value)?"bg-accent text-accent-foreground":"text-muted-foreground"]),onClick:u=>w(r.value)},[s("span",null,g(r.label),1),p(r.value)?(o(),n("span",M,"OK")):b("",!0)],10,E))),128))],2)):b("",!0)],512))}});export{F as _}; diff --git a/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-DsnNWmZF.js b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-DsnNWmZF.js new file mode 100644 index 0000000000000000000000000000000000000000..222f0f383308449bb0679061e091faf9984be2b9 --- /dev/null +++ b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-DsnNWmZF.js @@ -0,0 +1 @@ +import{d as A,h as v,i as d,o as B,j as z,c as n,a as s,b,t as g,n as y,F as L,r as S,e as o}from"./index-4tSmcUDY.js";const j={class:"truncate"},E=["onClick"],M={key:0,class:"text-xs"},F=A({__name:"SelectMenu",props:{modelValue:{},options:{},multiple:{type:Boolean},placeholder:{},placement:{}},emits:["update:modelValue"],setup(h,{emit:x}){const t=h,m=x,a=v(!1),c=v(null),i=d(()=>t.options.map(e=>typeof e=="string"?{label:e,value:e}:e)),V=d(()=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[];return l.length?l.length===1?i.value.find(u=>u.value===l[0])?.label||l[0]:`已选 ${l.length} 项`:t.placeholder||"请选择"}return i.value.find(l=>l.value===t.modelValue)?.label||String(t.modelValue??"")}),k=d(()=>t.placement==="up"?"bottom-full mb-2":"mt-2"),_=()=>{a.value=!a.value},p=e=>t.multiple?Array.isArray(t.modelValue)&&t.modelValue.includes(e):t.modelValue===e,w=e=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[],u=l.includes(e)?l.filter(C=>C!==e):[...l,e];m("update:modelValue",u);return}m("update:modelValue",e),a.value=!1},f=e=>{c.value&&(c.value.contains(e.target)||(a.value=!1))};return B(()=>{document.addEventListener("click",f)}),z(()=>{document.removeEventListener("click",f)}),(e,l)=>(o(),n("div",{ref_key:"root",ref:c,class:"relative w-full sm:w-44"},[s("button",{type:"button",class:"flex w-full items-center justify-between gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm text-foreground transition-colors hover:border-primary",onClick:_},[s("span",j,g(V.value),1),l[0]||(l[0]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1))]),a.value?(o(),n("div",{key:0,class:y(["absolute right-0 z-30 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg",k.value])},[(o(!0),n(L,null,S(i.value,r=>(o(),n("button",{key:r.value,type:"button",class:y(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors hover:bg-accent",p(r.value)?"bg-accent text-accent-foreground":"text-muted-foreground"]),onClick:u=>w(r.value)},[s("span",null,g(r.label),1),p(r.value)?(o(),n("span",M,"OK")):b("",!0)],10,E))),128))],2)):b("",!0)],512))}});export{F as _}; diff --git a/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-DswSmh70.js b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-DswSmh70.js new file mode 100644 index 0000000000000000000000000000000000000000..e09499106f933e6c00f5fd48b9a8c54081b9b7c1 --- /dev/null +++ b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-DswSmh70.js @@ -0,0 +1 @@ +import{d as A,h as v,i as d,o as B,j as z,c as n,a as s,b,t as g,n as y,F as L,r as S,e as o}from"./index-BRg_yWJl.js";const j={class:"truncate"},E=["onClick"],M={key:0,class:"text-xs"},F=A({__name:"SelectMenu",props:{modelValue:{},options:{},multiple:{type:Boolean},placeholder:{},placement:{}},emits:["update:modelValue"],setup(h,{emit:x}){const t=h,m=x,a=v(!1),c=v(null),i=d(()=>t.options.map(e=>typeof e=="string"?{label:e,value:e}:e)),V=d(()=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[];return l.length?l.length===1?i.value.find(u=>u.value===l[0])?.label||l[0]:`已选 ${l.length} 项`:t.placeholder||"请选择"}return i.value.find(l=>l.value===t.modelValue)?.label||String(t.modelValue??"")}),k=d(()=>t.placement==="up"?"bottom-full mb-2":"mt-2"),_=()=>{a.value=!a.value},p=e=>t.multiple?Array.isArray(t.modelValue)&&t.modelValue.includes(e):t.modelValue===e,w=e=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[],u=l.includes(e)?l.filter(C=>C!==e):[...l,e];m("update:modelValue",u);return}m("update:modelValue",e),a.value=!1},f=e=>{c.value&&(c.value.contains(e.target)||(a.value=!1))};return B(()=>{document.addEventListener("click",f)}),z(()=>{document.removeEventListener("click",f)}),(e,l)=>(o(),n("div",{ref_key:"root",ref:c,class:"relative w-full sm:w-44"},[s("button",{type:"button",class:"flex w-full items-center justify-between gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm text-foreground transition-colors hover:border-primary",onClick:_},[s("span",j,g(V.value),1),l[0]||(l[0]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1))]),a.value?(o(),n("div",{key:0,class:y(["absolute right-0 z-30 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg",k.value])},[(o(!0),n(L,null,S(i.value,r=>(o(),n("button",{key:r.value,type:"button",class:y(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors hover:bg-accent",p(r.value)?"bg-accent text-accent-foreground":"text-muted-foreground"]),onClick:u=>w(r.value)},[s("span",null,g(r.label),1),p(r.value)?(o(),n("span",M,"OK")):b("",!0)],10,E))),128))],2)):b("",!0)],512))}});export{F as _}; diff --git a/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-R5yoq9NP.js b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-R5yoq9NP.js new file mode 100644 index 0000000000000000000000000000000000000000..bc5ee81bddeab4e56efb69b0a1ad1f93a49d0226 --- /dev/null +++ b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-R5yoq9NP.js @@ -0,0 +1 @@ +import{d as A,h as v,i as d,o as B,j as z,c as n,a as s,b,t as g,n as y,F as L,r as S,e as o}from"./index-DMWZCTlx.js";const j={class:"truncate"},E=["onClick"],M={key:0,class:"text-xs"},F=A({__name:"SelectMenu",props:{modelValue:{},options:{},multiple:{type:Boolean},placeholder:{},placement:{}},emits:["update:modelValue"],setup(h,{emit:x}){const t=h,m=x,a=v(!1),c=v(null),i=d(()=>t.options.map(e=>typeof e=="string"?{label:e,value:e}:e)),V=d(()=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[];return l.length?l.length===1?i.value.find(u=>u.value===l[0])?.label||l[0]:`已选 ${l.length} 项`:t.placeholder||"请选择"}return i.value.find(l=>l.value===t.modelValue)?.label||String(t.modelValue??"")}),k=d(()=>t.placement==="up"?"bottom-full mb-2":"mt-2"),_=()=>{a.value=!a.value},p=e=>t.multiple?Array.isArray(t.modelValue)&&t.modelValue.includes(e):t.modelValue===e,w=e=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[],u=l.includes(e)?l.filter(C=>C!==e):[...l,e];m("update:modelValue",u);return}m("update:modelValue",e),a.value=!1},f=e=>{c.value&&(c.value.contains(e.target)||(a.value=!1))};return B(()=>{document.addEventListener("click",f)}),z(()=>{document.removeEventListener("click",f)}),(e,l)=>(o(),n("div",{ref_key:"root",ref:c,class:"relative w-full sm:w-44"},[s("button",{type:"button",class:"flex w-full items-center justify-between gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm text-foreground transition-colors hover:border-primary",onClick:_},[s("span",j,g(V.value),1),l[0]||(l[0]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1))]),a.value?(o(),n("div",{key:0,class:y(["absolute right-0 z-30 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg",k.value])},[(o(!0),n(L,null,S(i.value,r=>(o(),n("button",{key:r.value,type:"button",class:y(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors hover:bg-accent",p(r.value)?"bg-accent text-accent-foreground":"text-muted-foreground"]),onClick:u=>w(r.value)},[s("span",null,g(r.label),1),p(r.value)?(o(),n("span",M,"OK")):b("",!0)],10,E))),128))],2)):b("",!0)],512))}});export{F as _}; diff --git a/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-SHDMWwbQ.js b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-SHDMWwbQ.js new file mode 100644 index 0000000000000000000000000000000000000000..400f816984973bb5516f0e49137c4dd3a741ff13 --- /dev/null +++ b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-SHDMWwbQ.js @@ -0,0 +1 @@ +import{d as A,h as v,i as d,o as B,j as z,c as n,a as s,b,t as g,n as y,F as L,r as S,e as o}from"./index-BCQxBeUo.js";const j={class:"truncate"},E=["onClick"],M={key:0,class:"text-xs"},F=A({__name:"SelectMenu",props:{modelValue:{},options:{},multiple:{type:Boolean},placeholder:{},placement:{}},emits:["update:modelValue"],setup(h,{emit:x}){const t=h,m=x,a=v(!1),c=v(null),i=d(()=>t.options.map(e=>typeof e=="string"?{label:e,value:e}:e)),V=d(()=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[];return l.length?l.length===1?i.value.find(u=>u.value===l[0])?.label||l[0]:`已选 ${l.length} 项`:t.placeholder||"请选择"}return i.value.find(l=>l.value===t.modelValue)?.label||String(t.modelValue??"")}),k=d(()=>t.placement==="up"?"bottom-full mb-2":"mt-2"),_=()=>{a.value=!a.value},p=e=>t.multiple?Array.isArray(t.modelValue)&&t.modelValue.includes(e):t.modelValue===e,w=e=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[],u=l.includes(e)?l.filter(C=>C!==e):[...l,e];m("update:modelValue",u);return}m("update:modelValue",e),a.value=!1},f=e=>{c.value&&(c.value.contains(e.target)||(a.value=!1))};return B(()=>{document.addEventListener("click",f)}),z(()=>{document.removeEventListener("click",f)}),(e,l)=>(o(),n("div",{ref_key:"root",ref:c,class:"relative w-full sm:w-44"},[s("button",{type:"button",class:"flex w-full items-center justify-between gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm text-foreground transition-colors hover:border-primary",onClick:_},[s("span",j,g(V.value),1),l[0]||(l[0]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1))]),a.value?(o(),n("div",{key:0,class:y(["absolute right-0 z-30 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg",k.value])},[(o(!0),n(L,null,S(i.value,r=>(o(),n("button",{key:r.value,type:"button",class:y(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors hover:bg-accent",p(r.value)?"bg-accent text-accent-foreground":"text-muted-foreground"]),onClick:u=>w(r.value)},[s("span",null,g(r.label),1),p(r.value)?(o(),n("span",M,"OK")):b("",!0)],10,E))),128))],2)):b("",!0)],512))}});export{F as _}; diff --git a/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-Vv-llkmB.js b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-Vv-llkmB.js new file mode 100644 index 0000000000000000000000000000000000000000..4be1a7e105f439f7fe7c80f42285ed2dd22c5440 --- /dev/null +++ b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-Vv-llkmB.js @@ -0,0 +1 @@ +import{d as A,h as v,i as d,o as B,j as z,c as n,a as s,b,t as g,n as y,F as L,r as S,e as o}from"./index-DhxxzIOh.js";const j={class:"truncate"},E=["onClick"],M={key:0,class:"text-xs"},F=A({__name:"SelectMenu",props:{modelValue:{},options:{},multiple:{type:Boolean},placeholder:{},placement:{}},emits:["update:modelValue"],setup(h,{emit:x}){const t=h,m=x,a=v(!1),c=v(null),i=d(()=>t.options.map(e=>typeof e=="string"?{label:e,value:e}:e)),V=d(()=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[];return l.length?l.length===1?i.value.find(u=>u.value===l[0])?.label||l[0]:`已选 ${l.length} 项`:t.placeholder||"请选择"}return i.value.find(l=>l.value===t.modelValue)?.label||String(t.modelValue??"")}),k=d(()=>t.placement==="up"?"bottom-full mb-2":"mt-2"),_=()=>{a.value=!a.value},p=e=>t.multiple?Array.isArray(t.modelValue)&&t.modelValue.includes(e):t.modelValue===e,w=e=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[],u=l.includes(e)?l.filter(C=>C!==e):[...l,e];m("update:modelValue",u);return}m("update:modelValue",e),a.value=!1},f=e=>{c.value&&(c.value.contains(e.target)||(a.value=!1))};return B(()=>{document.addEventListener("click",f)}),z(()=>{document.removeEventListener("click",f)}),(e,l)=>(o(),n("div",{ref_key:"root",ref:c,class:"relative w-full sm:w-44"},[s("button",{type:"button",class:"flex w-full items-center justify-between gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm text-foreground transition-colors hover:border-primary",onClick:_},[s("span",j,g(V.value),1),l[0]||(l[0]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1))]),a.value?(o(),n("div",{key:0,class:y(["absolute right-0 z-30 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg",k.value])},[(o(!0),n(L,null,S(i.value,r=>(o(),n("button",{key:r.value,type:"button",class:y(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors hover:bg-accent",p(r.value)?"bg-accent text-accent-foreground":"text-muted-foreground"]),onClick:u=>w(r.value)},[s("span",null,g(r.label),1),p(r.value)?(o(),n("span",M,"OK")):b("",!0)],10,E))),128))],2)):b("",!0)],512))}});export{F as _}; diff --git a/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-bF-MPrxc.js b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-bF-MPrxc.js new file mode 100644 index 0000000000000000000000000000000000000000..38fcd6f1a650dada6916fb2255edc1f903732434 --- /dev/null +++ b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-bF-MPrxc.js @@ -0,0 +1 @@ +import{d as A,h as v,i as d,o as B,j as z,c as n,a as s,b,t as g,n as y,F as L,r as S,e as o}from"./index-C7QtVLks.js";const j={class:"truncate"},E=["onClick"],M={key:0,class:"text-xs"},F=A({__name:"SelectMenu",props:{modelValue:{},options:{},multiple:{type:Boolean},placeholder:{},placement:{}},emits:["update:modelValue"],setup(h,{emit:x}){const t=h,m=x,a=v(!1),c=v(null),i=d(()=>t.options.map(e=>typeof e=="string"?{label:e,value:e}:e)),V=d(()=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[];return l.length?l.length===1?i.value.find(u=>u.value===l[0])?.label||l[0]:`已选 ${l.length} 项`:t.placeholder||"请选择"}return i.value.find(l=>l.value===t.modelValue)?.label||String(t.modelValue??"")}),k=d(()=>t.placement==="up"?"bottom-full mb-2":"mt-2"),_=()=>{a.value=!a.value},p=e=>t.multiple?Array.isArray(t.modelValue)&&t.modelValue.includes(e):t.modelValue===e,w=e=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[],u=l.includes(e)?l.filter(C=>C!==e):[...l,e];m("update:modelValue",u);return}m("update:modelValue",e),a.value=!1},f=e=>{c.value&&(c.value.contains(e.target)||(a.value=!1))};return B(()=>{document.addEventListener("click",f)}),z(()=>{document.removeEventListener("click",f)}),(e,l)=>(o(),n("div",{ref_key:"root",ref:c,class:"relative w-full sm:w-44"},[s("button",{type:"button",class:"flex w-full items-center justify-between gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm text-foreground transition-colors hover:border-primary",onClick:_},[s("span",j,g(V.value),1),l[0]||(l[0]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1))]),a.value?(o(),n("div",{key:0,class:y(["absolute right-0 z-30 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg",k.value])},[(o(!0),n(L,null,S(i.value,r=>(o(),n("button",{key:r.value,type:"button",class:y(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors hover:bg-accent",p(r.value)?"bg-accent text-accent-foreground":"text-muted-foreground"]),onClick:u=>w(r.value)},[s("span",null,g(r.label),1),p(r.value)?(o(),n("span",M,"OK")):b("",!0)],10,E))),128))],2)):b("",!0)],512))}});export{F as _}; diff --git a/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-cSKw_kbn.js b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-cSKw_kbn.js new file mode 100644 index 0000000000000000000000000000000000000000..db3f95647306c5aaac991b783d04149941f06252 --- /dev/null +++ b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-cSKw_kbn.js @@ -0,0 +1 @@ +import{d as A,h as v,i as d,o as B,j as z,c as n,a as s,b,t as g,n as y,F as L,r as S,e as o}from"./index-JaBfp01b.js";const j={class:"truncate"},E=["onClick"],M={key:0,class:"text-xs"},F=A({__name:"SelectMenu",props:{modelValue:{},options:{},multiple:{type:Boolean},placeholder:{},placement:{}},emits:["update:modelValue"],setup(h,{emit:x}){const t=h,m=x,a=v(!1),c=v(null),i=d(()=>t.options.map(e=>typeof e=="string"?{label:e,value:e}:e)),V=d(()=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[];return l.length?l.length===1?i.value.find(u=>u.value===l[0])?.label||l[0]:`已选 ${l.length} 项`:t.placeholder||"请选择"}return i.value.find(l=>l.value===t.modelValue)?.label||String(t.modelValue??"")}),k=d(()=>t.placement==="up"?"bottom-full mb-2":"mt-2"),_=()=>{a.value=!a.value},p=e=>t.multiple?Array.isArray(t.modelValue)&&t.modelValue.includes(e):t.modelValue===e,w=e=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[],u=l.includes(e)?l.filter(C=>C!==e):[...l,e];m("update:modelValue",u);return}m("update:modelValue",e),a.value=!1},f=e=>{c.value&&(c.value.contains(e.target)||(a.value=!1))};return B(()=>{document.addEventListener("click",f)}),z(()=>{document.removeEventListener("click",f)}),(e,l)=>(o(),n("div",{ref_key:"root",ref:c,class:"relative w-full sm:w-44"},[s("button",{type:"button",class:"flex w-full items-center justify-between gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm text-foreground transition-colors hover:border-primary",onClick:_},[s("span",j,g(V.value),1),l[0]||(l[0]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1))]),a.value?(o(),n("div",{key:0,class:y(["absolute right-0 z-30 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg",k.value])},[(o(!0),n(L,null,S(i.value,r=>(o(),n("button",{key:r.value,type:"button",class:y(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors hover:bg-accent",p(r.value)?"bg-accent text-accent-foreground":"text-muted-foreground"]),onClick:u=>w(r.value)},[s("span",null,g(r.label),1),p(r.value)?(o(),n("span",M,"OK")):b("",!0)],10,E))),128))],2)):b("",!0)],512))}});export{F as _}; diff --git a/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-gwg2tONM.js b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-gwg2tONM.js new file mode 100644 index 0000000000000000000000000000000000000000..6e47b2b7712fd295a759bc33089dcee8ceb52c26 --- /dev/null +++ b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-gwg2tONM.js @@ -0,0 +1 @@ +import{d as A,h as v,i as d,o as B,j as z,c as n,a as s,b,t as g,n as y,F as L,r as S,e as o}from"./index-C9KL0lrc.js";const j={class:"truncate"},E=["onClick"],M={key:0,class:"text-xs"},F=A({__name:"SelectMenu",props:{modelValue:{},options:{},multiple:{type:Boolean},placeholder:{},placement:{}},emits:["update:modelValue"],setup(h,{emit:x}){const t=h,m=x,a=v(!1),c=v(null),i=d(()=>t.options.map(e=>typeof e=="string"?{label:e,value:e}:e)),V=d(()=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[];return l.length?l.length===1?i.value.find(u=>u.value===l[0])?.label||l[0]:`已选 ${l.length} 项`:t.placeholder||"请选择"}return i.value.find(l=>l.value===t.modelValue)?.label||String(t.modelValue??"")}),k=d(()=>t.placement==="up"?"bottom-full mb-2":"mt-2"),_=()=>{a.value=!a.value},p=e=>t.multiple?Array.isArray(t.modelValue)&&t.modelValue.includes(e):t.modelValue===e,w=e=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[],u=l.includes(e)?l.filter(C=>C!==e):[...l,e];m("update:modelValue",u);return}m("update:modelValue",e),a.value=!1},f=e=>{c.value&&(c.value.contains(e.target)||(a.value=!1))};return B(()=>{document.addEventListener("click",f)}),z(()=>{document.removeEventListener("click",f)}),(e,l)=>(o(),n("div",{ref_key:"root",ref:c,class:"relative w-full sm:w-44"},[s("button",{type:"button",class:"flex w-full items-center justify-between gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm text-foreground transition-colors hover:border-primary",onClick:_},[s("span",j,g(V.value),1),l[0]||(l[0]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1))]),a.value?(o(),n("div",{key:0,class:y(["absolute right-0 z-30 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg",k.value])},[(o(!0),n(L,null,S(i.value,r=>(o(),n("button",{key:r.value,type:"button",class:y(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors hover:bg-accent",p(r.value)?"bg-accent text-accent-foreground":"text-muted-foreground"]),onClick:u=>w(r.value)},[s("span",null,g(r.label),1),p(r.value)?(o(),n("span",M,"OK")):b("",!0)],10,E))),128))],2)):b("",!0)],512))}});export{F as _}; diff --git a/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-n4k9i9SG.js b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-n4k9i9SG.js new file mode 100644 index 0000000000000000000000000000000000000000..d527eab609fd971d2383e5ac29b28148363dab07 --- /dev/null +++ b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-n4k9i9SG.js @@ -0,0 +1 @@ +import{d as A,h as v,i as d,o as B,j as z,c as n,a as s,b,t as g,n as y,F as L,r as S,e as o}from"./index-B38eA7T4.js";const j={class:"truncate"},E=["onClick"],M={key:0,class:"text-xs"},F=A({__name:"SelectMenu",props:{modelValue:{},options:{},multiple:{type:Boolean},placeholder:{},placement:{}},emits:["update:modelValue"],setup(h,{emit:x}){const t=h,m=x,a=v(!1),c=v(null),i=d(()=>t.options.map(e=>typeof e=="string"?{label:e,value:e}:e)),V=d(()=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[];return l.length?l.length===1?i.value.find(u=>u.value===l[0])?.label||l[0]:`已选 ${l.length} 项`:t.placeholder||"请选择"}return i.value.find(l=>l.value===t.modelValue)?.label||String(t.modelValue??"")}),k=d(()=>t.placement==="up"?"bottom-full mb-2":"mt-2"),_=()=>{a.value=!a.value},p=e=>t.multiple?Array.isArray(t.modelValue)&&t.modelValue.includes(e):t.modelValue===e,w=e=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[],u=l.includes(e)?l.filter(C=>C!==e):[...l,e];m("update:modelValue",u);return}m("update:modelValue",e),a.value=!1},f=e=>{c.value&&(c.value.contains(e.target)||(a.value=!1))};return B(()=>{document.addEventListener("click",f)}),z(()=>{document.removeEventListener("click",f)}),(e,l)=>(o(),n("div",{ref_key:"root",ref:c,class:"relative w-full sm:w-44"},[s("button",{type:"button",class:"flex w-full items-center justify-between gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm text-foreground transition-colors hover:border-primary",onClick:_},[s("span",j,g(V.value),1),l[0]||(l[0]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1))]),a.value?(o(),n("div",{key:0,class:y(["absolute right-0 z-30 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg",k.value])},[(o(!0),n(L,null,S(i.value,r=>(o(),n("button",{key:r.value,type:"button",class:y(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors hover:bg-accent",p(r.value)?"bg-accent text-accent-foreground":"text-muted-foreground"]),onClick:u=>w(r.value)},[s("span",null,g(r.label),1),p(r.value)?(o(),n("span",M,"OK")):b("",!0)],10,E))),128))],2)):b("",!0)],512))}});export{F as _}; diff --git a/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-r1ha8_PD.js b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-r1ha8_PD.js new file mode 100644 index 0000000000000000000000000000000000000000..13015313381df648f58d824425bc1e9807abd16b --- /dev/null +++ b/static/assets/SelectMenu.vue_vue_type_script_setup_true_lang-r1ha8_PD.js @@ -0,0 +1 @@ +import{d as A,h as v,i as d,o as B,j as z,c as n,a as s,b,t as g,n as y,F as L,r as S,e as o}from"./index-Dt-VnrHx.js";const j={class:"truncate"},E=["onClick"],M={key:0,class:"text-xs"},F=A({__name:"SelectMenu",props:{modelValue:{},options:{},multiple:{type:Boolean},placeholder:{},placement:{}},emits:["update:modelValue"],setup(h,{emit:x}){const t=h,m=x,a=v(!1),c=v(null),i=d(()=>t.options.map(e=>typeof e=="string"?{label:e,value:e}:e)),V=d(()=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[];return l.length?l.length===1?i.value.find(u=>u.value===l[0])?.label||l[0]:`已选 ${l.length} 项`:t.placeholder||"请选择"}return i.value.find(l=>l.value===t.modelValue)?.label||String(t.modelValue??"")}),k=d(()=>t.placement==="up"?"bottom-full mb-2":"mt-2"),_=()=>{a.value=!a.value},p=e=>t.multiple?Array.isArray(t.modelValue)&&t.modelValue.includes(e):t.modelValue===e,w=e=>{if(t.multiple){const l=Array.isArray(t.modelValue)?t.modelValue:[],u=l.includes(e)?l.filter(C=>C!==e):[...l,e];m("update:modelValue",u);return}m("update:modelValue",e),a.value=!1},f=e=>{c.value&&(c.value.contains(e.target)||(a.value=!1))};return B(()=>{document.addEventListener("click",f)}),z(()=>{document.removeEventListener("click",f)}),(e,l)=>(o(),n("div",{ref_key:"root",ref:c,class:"relative w-full sm:w-44"},[s("button",{type:"button",class:"flex w-full items-center justify-between gap-2 rounded-full border border-input bg-background px-4 py-2 text-sm text-foreground transition-colors hover:border-primary",onClick:_},[s("span",j,g(V.value),1),l[0]||(l[0]=s("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",class:"h-4 w-4",fill:"currentColor"},[s("path",{d:"M5 7l5 6 5-6H5z"})],-1))]),a.value?(o(),n("div",{key:0,class:y(["absolute right-0 z-30 w-full space-y-1 rounded-2xl border border-border bg-card p-2 shadow-lg",k.value])},[(o(!0),n(L,null,S(i.value,r=>(o(),n("button",{key:r.value,type:"button",class:y(["flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm transition-colors hover:bg-accent",p(r.value)?"bg-accent text-accent-foreground":"text-muted-foreground"]),onClick:u=>w(r.value)},[s("span",null,g(r.label),1),p(r.value)?(o(),n("span",M,"OK")):b("",!0)],10,E))),128))],2)):b("",!0)],512))}});export{F as _}; diff --git a/static/assets/Settings-0_2SUCPB.js b/static/assets/Settings-0_2SUCPB.js new file mode 100644 index 0000000000000000000000000000000000000000..cf65b522764bbb35f62685cd1fd5f8f2e083bbc1 --- /dev/null +++ b/static/assets/Settings-0_2SUCPB.js @@ -0,0 +1 @@ +import{d as N,D as M,h as m,i as P,s as D,o as O,c as d,u as j,a as t,b as v,t as A,m as r,v as o,x as a,A as x,f as g,e as n}from"./index-C7QtVLks.js";import{u as F}from"./settings-_wJjBPdz.js";import{_ as f}from"./SelectMenu.vue_vue_type_script_setup_true_lang-bF-MPrxc.js";import{_ as c}from"./Checkbox.vue_vue_type_script_setup_true_lang-ChgTHjuD.js";import{_ as y}from"./HelpTip.vue_vue_type_script_setup_true_lang-C9YlQcyS.js";const G={class:"space-y-8"},B={key:0,class:"rounded-3xl border border-border bg-card p-6 text-sm text-muted-foreground"},C={key:1,class:"rounded-3xl border border-border bg-card p-6"},L={class:"flex items-center justify-between"},I=["disabled"],T={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},$={key:1,class:"mt-6 space-y-8"},q={class:"grid gap-4 lg:grid-cols-3"},J={class:"space-y-4"},R={class:"rounded-2xl border border-border bg-card p-4"},E={class:"mt-4 space-y-3"},z={class:"rounded-2xl border border-border bg-card p-4"},H={class:"mt-4 space-y-3"},K={class:"grid grid-cols-2 items-center gap-x-6 gap-y-2"},Q={class:"flex items-center justify-between gap-2 text-xs text-muted-foreground"},W={class:"space-y-4"},X={class:"rounded-2xl border border-border bg-card p-4"},Y={class:"mt-4 grid grid-cols-2 gap-3 text-sm"},Z={class:"col-span-2 flex items-center justify-between gap-2 text-xs text-muted-foreground"},h={class:"space-y-4"},ee={class:"rounded-2xl border border-border bg-card p-4"},te={class:"mt-4 space-y-3"},se={class:"rounded-2xl border border-border bg-card p-4"},le={class:"mt-4 space-y-3"},ie=N({__name:"Settings",setup(re){const p=F(),{settings:_,isLoading:k}=M(p),s=m(null),b=m(!1),i=m(""),w=[{label:"Base64 编码",value:"base64"},{label:"URL 链接",value:"url"}],V=P(()=>{const u=[{label:"Gemini 3 Pro Preview",value:"gemini-3-pro-preview"},{label:"Gemini 3 Flash Preview",value:"gemini-3-flash-preview"},{label:"Gemini 2.5 Pro",value:"gemini-2.5-pro"},{label:"Gemini 2.5 Flash",value:"gemini-2.5-flash"},{label:"Gemini Auto",value:"gemini-auto"}],e=s.value?.image_generation.supported_models||[];for(const l of e)u.some(S=>S.value===l)||u.push({label:l,value:l});return u});D(_,u=>{if(!u)return;const e=JSON.parse(JSON.stringify(u));e.image_generation=e.image_generation||{enabled:!1,supported_models:[],output_format:"base64"},e.image_generation.output_format||="base64",e.basic=e.basic||{},e.basic.duckmail_base_url||="https://api.duckmail.sbs",e.basic.duckmail_verify_ssl=e.basic.duckmail_verify_ssl??!0,e.basic.browser_headless=e.basic.browser_headless??!0,e.basic.refresh_window_hours=Number.isFinite(e.basic.refresh_window_hours)?e.basic.refresh_window_hours:1,e.basic.register_default_count=Number.isFinite(e.basic.register_default_count)?e.basic.register_default_count:1,e.basic.register_domain=typeof e.basic.register_domain=="string"?e.basic.register_domain:"",e.basic.duckmail_api_key=typeof e.basic.duckmail_api_key=="string"?e.basic.duckmail_api_key:"",e.retry=e.retry||{},e.retry.auto_refresh_accounts_seconds=Number.isFinite(e.retry.auto_refresh_accounts_seconds)?e.retry.auto_refresh_accounts_seconds:60,s.value=e}),O(async()=>{await p.loadSettings()});const U=async()=>{if(s.value){i.value="",b.value=!0;try{await p.updateSettings(s.value)}catch(u){i.value=u.message||"保存失败"}finally{b.value=!1}}};return(u,e)=>(n(),d("div",G,[j(k)?(n(),d("section",B," 正在加载设置... ")):(n(),d("section",C,[t("div",L,[e[23]||(e[23]=t("p",{class:"text-base font-semibold text-foreground"},"配置面板",-1)),t("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:b.value||!s.value,onClick:U}," 保存设置 ",8,I)]),i.value?(n(),d("div",T,A(i.value),1)):v("",!0),s.value?(n(),d("div",$,[t("div",q,[t("div",J,[t("div",R,[e[27]||(e[27]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"基础",-1)),t("div",E,[e[24]||(e[24]=t("label",{class:"block text-xs text-muted-foreground"},"API 密钥",-1)),r(t("input",{"onUpdate:modelValue":e[0]||(e[0]=l=>s.value.basic.api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"可选"},null,512),[[o,s.value.basic.api_key]]),e[25]||(e[25]=t("label",{class:"block text-xs text-muted-foreground"},"基础地址",-1)),r(t("input",{"onUpdate:modelValue":e[1]||(e[1]=l=>s.value.basic.base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"自动检测或手动填写"},null,512),[[o,s.value.basic.base_url]]),e[26]||(e[26]=t("label",{class:"block text-xs text-muted-foreground"},"代理地址",-1)),r(t("input",{"onUpdate:modelValue":e[2]||(e[2]=l=>s.value.basic.proxy=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"http://127.0.0.1:7890"},null,512),[[o,s.value.basic.proxy]])])]),t("div",z,[e[35]||(e[35]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"自动注册/刷新",-1)),t("div",H,[e[31]||(e[31]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API",-1)),r(t("input",{"onUpdate:modelValue":e[3]||(e[3]=l=>s.value.basic.duckmail_base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"https://api.duckmail.sbs"},null,512),[[o,s.value.basic.duckmail_base_url]]),t("div",K,[a(c,{modelValue:s.value.basic.duckmail_verify_ssl,"onUpdate:modelValue":e[4]||(e[4]=l=>s.value.basic.duckmail_verify_ssl=l)},{default:x(()=>[...e[28]||(e[28]=[g(" DuckMail SSL 校验 ",-1)])]),_:1},8,["modelValue"]),a(c,{modelValue:s.value.basic.browser_headless,"onUpdate:modelValue":e[5]||(e[5]=l=>s.value.basic.browser_headless=l),class:"w-full justify-end justify-self-end"},{default:x(()=>[...e[29]||(e[29]=[g(" 无头浏览器 ",-1)])]),_:1},8,["modelValue"])]),t("div",Q,[e[30]||(e[30]=t("span",null,"过期刷新窗口(小时)",-1)),a(y,{text:"当账号距离过期小于等于该值时,会触发自动登录刷新(更新 cookie/session)。"})]),r(t("input",{"onUpdate:modelValue":e[6]||(e[6]=l=>s.value.basic.refresh_window_hours=l),type:"number",min:"0",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.refresh_window_hours,void 0,{number:!0}]]),e[32]||(e[32]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册数量",-1)),r(t("input",{"onUpdate:modelValue":e[7]||(e[7]=l=>s.value.basic.register_default_count=l),type:"number",min:"1",max:"30",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.register_default_count,void 0,{number:!0}]]),e[33]||(e[33]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册域名(推荐)",-1)),r(t("input",{"onUpdate:modelValue":e[8]||(e[8]=l=>s.value.basic.register_domain=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"留空则自动选择"},null,512),[[o,s.value.basic.register_domain]]),e[34]||(e[34]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API 密钥",-1)),r(t("input",{"onUpdate:modelValue":e[9]||(e[9]=l=>s.value.basic.duckmail_api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"dk_xxx"},null,512),[[o,s.value.basic.duckmail_api_key]])])])]),t("div",W,[t("div",X,[e[43]||(e[43]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"重试",-1)),t("div",Y,[e[37]||(e[37]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"新会话尝试次数",-1)),r(t("input",{"onUpdate:modelValue":e[10]||(e[10]=l=>s.value.retry.max_new_session_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_new_session_tries,void 0,{number:!0}]]),e[38]||(e[38]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"请求重试次数",-1)),r(t("input",{"onUpdate:modelValue":e[11]||(e[11]=l=>s.value.retry.max_request_retries=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_request_retries,void 0,{number:!0}]]),e[39]||(e[39]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"账号切换次数",-1)),r(t("input",{"onUpdate:modelValue":e[12]||(e[12]=l=>s.value.retry.max_account_switch_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_account_switch_tries,void 0,{number:!0}]]),e[40]||(e[40]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"失败阈值",-1)),r(t("input",{"onUpdate:modelValue":e[13]||(e[13]=l=>s.value.retry.account_failure_threshold=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.account_failure_threshold,void 0,{number:!0}]]),e[41]||(e[41]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"限流冷却秒数",-1)),r(t("input",{"onUpdate:modelValue":e[14]||(e[14]=l=>s.value.retry.rate_limit_cooldown_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.rate_limit_cooldown_seconds,void 0,{number:!0}]]),e[42]||(e[42]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"会话缓存秒数",-1)),r(t("input",{"onUpdate:modelValue":e[15]||(e[15]=l=>s.value.retry.session_cache_ttl_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.session_cache_ttl_seconds,void 0,{number:!0}]]),t("div",Z,[e[36]||(e[36]=t("span",null,"自动刷新账号间隔(秒,0禁用)",-1)),a(y,{text:"仅在数据库存储启用时生效:用于检测账号配置变化并重载列表,不会刷新 cookie。文件存储模式不会触发。"})]),r(t("input",{"onUpdate:modelValue":e[16]||(e[16]=l=>s.value.retry.auto_refresh_accounts_seconds=l),type:"number",min:"0",max:"600",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.auto_refresh_accounts_seconds,void 0,{number:!0}]])])])]),t("div",h,[t("div",ee,[e[47]||(e[47]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"图像生成",-1)),t("div",te,[a(c,{modelValue:s.value.image_generation.enabled,"onUpdate:modelValue":e[17]||(e[17]=l=>s.value.image_generation.enabled=l)},{default:x(()=>[...e[44]||(e[44]=[g(" 启用图像生成 ",-1)])]),_:1},8,["modelValue"]),e[45]||(e[45]=t("label",{class:"block text-xs text-muted-foreground"},"输出格式",-1)),a(f,{modelValue:s.value.image_generation.output_format,"onUpdate:modelValue":e[18]||(e[18]=l=>s.value.image_generation.output_format=l),options:w,placement:"up",class:"w-full"},null,8,["modelValue"]),e[46]||(e[46]=t("label",{class:"block text-xs text-muted-foreground"},"支持模型",-1)),a(f,{modelValue:s.value.image_generation.supported_models,"onUpdate:modelValue":e[19]||(e[19]=l=>s.value.image_generation.supported_models=l),options:V.value,placeholder:"选择模型",placement:"up",multiple:"",class:"w-full"},null,8,["modelValue","options"])])]),t("div",se,[e[51]||(e[51]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"公开展示",-1)),t("div",le,[e[48]||(e[48]=t("label",{class:"block text-xs text-muted-foreground"},"Logo 地址",-1)),r(t("input",{"onUpdate:modelValue":e[20]||(e[20]=l=>s.value.public_display.logo_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"logo 地址"},null,512),[[o,s.value.public_display.logo_url]]),e[49]||(e[49]=t("label",{class:"block text-xs text-muted-foreground"},"聊天入口",-1)),r(t("input",{"onUpdate:modelValue":e[21]||(e[21]=l=>s.value.public_display.chat_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"聊天入口地址"},null,512),[[o,s.value.public_display.chat_url]]),e[50]||(e[50]=t("label",{class:"block text-xs text-muted-foreground"},"会话有效时长",-1)),r(t("input",{"onUpdate:modelValue":e[22]||(e[22]=l=>s.value.session.expire_hours=l),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.session.expire_hours,void 0,{number:!0}]])])]),e[52]||(e[52]=t("div",{class:"rounded-2xl border border-border bg-card p-4"},[t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"说明"),t("p",{class:"mt-4 text-sm text-muted-foreground"}," 保存后会直接写入配置文件并热更新。修改后请关注日志面板确认是否生效。 "),t("p",{class:"mt-3 text-sm text-muted-foreground"}," 自动注册/刷新默认启用,若依赖缺失会自动降级并提示。 ")],-1))])])])):v("",!0)]))]))}});export{ie as default}; diff --git a/static/assets/Settings-5TGeenDK.js b/static/assets/Settings-5TGeenDK.js new file mode 100644 index 0000000000000000000000000000000000000000..376f80753a10b38dc5075a81e3d28b540e480e54 --- /dev/null +++ b/static/assets/Settings-5TGeenDK.js @@ -0,0 +1 @@ +import{d as S,D as N,h as m,i as E,s as M,o as D,c as d,u as G,a as t,b as f,t as O,m as o,v as r,x as a,A as x,f as g,e as n}from"./index-gD6QQiOu.js";import{u as P}from"./settings-CAn-I9vU.js";import{_ as c}from"./SelectMenu.vue_vue_type_script_setup_true_lang-B2Zu3W0l.js";import{_ as v}from"./Checkbox.vue_vue_type_script_setup_true_lang-DT0LWHxC.js";const A={class:"space-y-8"},B={key:0,class:"rounded-3xl border border-border bg-card p-6 text-sm text-muted-foreground"},C={key:1,class:"rounded-3xl border border-border bg-card p-6"},L={class:"flex items-center justify-between"},R=["disabled"],F={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},I={key:1,class:"mt-6 space-y-8"},T={class:"grid gap-4 lg:grid-cols-3"},q={class:"space-y-4"},J={class:"rounded-2xl border border-border bg-card p-4"},$={class:"mt-4 space-y-3"},j={class:"rounded-2xl border border-border bg-card p-4"},z={class:"mt-4 space-y-3"},H={class:"rounded-2xl border border-border bg-card p-4"},K={class:"mt-4 space-y-3"},Q={class:"rounded-2xl border border-border bg-card p-4"},W={class:"mt-4 grid grid-cols-2 gap-3 text-sm"},X={class:"space-y-4"},Y={class:"rounded-2xl border border-border bg-card p-4"},Z={class:"mt-4 space-y-3"},oe=S({__name:"Settings",setup(h){const p=P(),{settings:y,isLoading:_}=N(p),l=m(null),b=m(!1),i=m(""),k=[{label:"Base64 编码",value:"base64"},{label:"URL 链接",value:"url"}],w=E(()=>{const u=[{label:"Gemini 3 Pro Preview",value:"gemini-3-pro-preview"},{label:"Gemini 3 Flash Preview",value:"gemini-3-flash-preview"},{label:"Gemini 2.5 Pro",value:"gemini-2.5-pro"},{label:"Gemini 2.5 Flash",value:"gemini-2.5-flash"},{label:"Gemini Auto",value:"gemini-auto"}],e=l.value?.image_generation.supported_models||[];for(const s of e)u.some(U=>U.value===s)||u.push({label:s,value:s});return u});M(y,u=>{if(!u)return;const e=JSON.parse(JSON.stringify(u));e.image_generation=e.image_generation||{enabled:!1,supported_models:[],output_format:"base64"},e.image_generation.output_format||="base64",e.basic=e.basic||{},e.basic.duckmail_base_url||="https://api.duckmail.sbs",e.basic.duckmail_proxy||="",e.basic.duckmail_verify_ssl=e.basic.duckmail_verify_ssl??!0,e.basic.browser_headless=e.basic.browser_headless??!0,e.basic.refresh_window_hours=Number.isFinite(e.basic.refresh_window_hours)?e.basic.refresh_window_hours:1,e.basic.register_default_count=Number.isFinite(e.basic.register_default_count)?e.basic.register_default_count:1,l.value=e}),D(async()=>{await p.loadSettings()});const V=async()=>{if(l.value){i.value="",b.value=!0;try{await p.updateSettings(l.value)}catch(u){i.value=u.message||"保存失败"}finally{b.value=!1}}};return(u,e)=>(n(),d("div",A,[G(_)?(n(),d("section",B," 正在加载设置... ")):(n(),d("section",C,[t("div",L,[e[21]||(e[21]=t("p",{class:"text-base font-semibold text-foreground"},"配置面板",-1)),t("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:b.value||!l.value,onClick:V}," 保存设置 ",8,R)]),i.value?(n(),d("div",F,O(i.value),1)):f("",!0),l.value?(n(),d("div",I,[t("div",T,[t("div",q,[t("div",J,[e[25]||(e[25]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"基础",-1)),t("div",$,[e[22]||(e[22]=t("label",{class:"block text-xs text-muted-foreground"},"API 密钥",-1)),o(t("input",{"onUpdate:modelValue":e[0]||(e[0]=s=>l.value.basic.api_key=s),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"可选"},null,512),[[r,l.value.basic.api_key]]),e[23]||(e[23]=t("label",{class:"block text-xs text-muted-foreground"},"基础地址",-1)),o(t("input",{"onUpdate:modelValue":e[1]||(e[1]=s=>l.value.basic.base_url=s),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"自动检测或手动填写"},null,512),[[r,l.value.basic.base_url]]),e[24]||(e[24]=t("label",{class:"block text-xs text-muted-foreground"},"代理地址",-1)),o(t("input",{"onUpdate:modelValue":e[2]||(e[2]=s=>l.value.basic.proxy=s),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"http://127.0.0.1:7890"},null,512),[[r,l.value.basic.proxy]])])]),t("div",j,[e[32]||(e[32]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"自动注册/刷新",-1)),t("div",z,[e[28]||(e[28]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API",-1)),o(t("input",{"onUpdate:modelValue":e[3]||(e[3]=s=>l.value.basic.duckmail_base_url=s),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"https://api.duckmail.sbs"},null,512),[[r,l.value.basic.duckmail_base_url]]),e[29]||(e[29]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail 代理",-1)),o(t("input",{"onUpdate:modelValue":e[4]||(e[4]=s=>l.value.basic.duckmail_proxy=s),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"http://127.0.0.1:7890"},null,512),[[r,l.value.basic.duckmail_proxy]]),a(v,{modelValue:l.value.basic.duckmail_verify_ssl,"onUpdate:modelValue":e[5]||(e[5]=s=>l.value.basic.duckmail_verify_ssl=s)},{default:x(()=>[...e[26]||(e[26]=[g(" DuckMail SSL 校验 ",-1)])]),_:1},8,["modelValue"]),a(v,{modelValue:l.value.basic.browser_headless,"onUpdate:modelValue":e[6]||(e[6]=s=>l.value.basic.browser_headless=s)},{default:x(()=>[...e[27]||(e[27]=[g(" 无头浏览器 ",-1)])]),_:1},8,["modelValue"]),e[30]||(e[30]=t("label",{class:"block text-xs text-muted-foreground"},"过期刷新窗口(小时)",-1)),o(t("input",{"onUpdate:modelValue":e[7]||(e[7]=s=>l.value.basic.refresh_window_hours=s),type:"number",min:"0",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[r,l.value.basic.refresh_window_hours,void 0,{number:!0}]]),e[31]||(e[31]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册数量",-1)),o(t("input",{"onUpdate:modelValue":e[8]||(e[8]=s=>l.value.basic.register_default_count=s),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[r,l.value.basic.register_default_count,void 0,{number:!0}]])])]),t("div",H,[e[36]||(e[36]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"图像生成",-1)),t("div",K,[a(v,{modelValue:l.value.image_generation.enabled,"onUpdate:modelValue":e[9]||(e[9]=s=>l.value.image_generation.enabled=s)},{default:x(()=>[...e[33]||(e[33]=[g(" 启用图像生成 ",-1)])]),_:1},8,["modelValue"]),e[34]||(e[34]=t("label",{class:"block text-xs text-muted-foreground"},"输出格式",-1)),a(c,{modelValue:l.value.image_generation.output_format,"onUpdate:modelValue":e[10]||(e[10]=s=>l.value.image_generation.output_format=s),options:k,placement:"up"},null,8,["modelValue"]),e[35]||(e[35]=t("label",{class:"block text-xs text-muted-foreground"},"支持模型",-1)),a(c,{modelValue:l.value.image_generation.supported_models,"onUpdate:modelValue":e[11]||(e[11]=s=>l.value.image_generation.supported_models=s),options:w.value,placeholder:"选择模型",placement:"up",multiple:""},null,8,["modelValue","options"])])])]),t("div",Q,[e[43]||(e[43]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"重试",-1)),t("div",W,[e[37]||(e[37]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"新会话尝试次数",-1)),o(t("input",{"onUpdate:modelValue":e[12]||(e[12]=s=>l.value.retry.max_new_session_tries=s),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,l.value.retry.max_new_session_tries,void 0,{number:!0}]]),e[38]||(e[38]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"请求重试次数",-1)),o(t("input",{"onUpdate:modelValue":e[13]||(e[13]=s=>l.value.retry.max_request_retries=s),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,l.value.retry.max_request_retries,void 0,{number:!0}]]),e[39]||(e[39]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"账号切换次数",-1)),o(t("input",{"onUpdate:modelValue":e[14]||(e[14]=s=>l.value.retry.max_account_switch_tries=s),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,l.value.retry.max_account_switch_tries,void 0,{number:!0}]]),e[40]||(e[40]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"失败阈值",-1)),o(t("input",{"onUpdate:modelValue":e[15]||(e[15]=s=>l.value.retry.account_failure_threshold=s),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,l.value.retry.account_failure_threshold,void 0,{number:!0}]]),e[41]||(e[41]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"限流冷却秒数",-1)),o(t("input",{"onUpdate:modelValue":e[16]||(e[16]=s=>l.value.retry.rate_limit_cooldown_seconds=s),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,l.value.retry.rate_limit_cooldown_seconds,void 0,{number:!0}]]),e[42]||(e[42]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"会话缓存秒数",-1)),o(t("input",{"onUpdate:modelValue":e[17]||(e[17]=s=>l.value.retry.session_cache_ttl_seconds=s),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,l.value.retry.session_cache_ttl_seconds,void 0,{number:!0}]])])]),t("div",X,[t("div",Y,[e[47]||(e[47]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"公开展示",-1)),t("div",Z,[e[44]||(e[44]=t("label",{class:"block text-xs text-muted-foreground"},"Logo 地址",-1)),o(t("input",{"onUpdate:modelValue":e[18]||(e[18]=s=>l.value.public_display.logo_url=s),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"logo 地址"},null,512),[[r,l.value.public_display.logo_url]]),e[45]||(e[45]=t("label",{class:"block text-xs text-muted-foreground"},"聊天入口",-1)),o(t("input",{"onUpdate:modelValue":e[19]||(e[19]=s=>l.value.public_display.chat_url=s),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"聊天入口地址"},null,512),[[r,l.value.public_display.chat_url]]),e[46]||(e[46]=t("label",{class:"block text-xs text-muted-foreground"},"会话有效时长",-1)),o(t("input",{"onUpdate:modelValue":e[20]||(e[20]=s=>l.value.session.expire_hours=s),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[r,l.value.session.expire_hours,void 0,{number:!0}]])])]),e[48]||(e[48]=t("div",{class:"rounded-2xl border border-border bg-card p-4"},[t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"说明"),t("p",{class:"mt-4 text-sm text-muted-foreground"}," 保存后会直接写入配置文件并热更新。修改后请关注日志面板确认是否生效。 "),t("p",{class:"mt-3 text-sm text-muted-foreground"}," 自动注册/刷新服务需要设置环境变量 ENABLE_REGISTER_SERVICE,启用后重启服务生效。 ")],-1))])])])):f("",!0)]))]))}});export{oe as default}; diff --git a/static/assets/Settings-9EHJjy5x.js b/static/assets/Settings-9EHJjy5x.js new file mode 100644 index 0000000000000000000000000000000000000000..9f80e7490575f1e1b9e79d1640f63e882859f67c --- /dev/null +++ b/static/assets/Settings-9EHJjy5x.js @@ -0,0 +1 @@ +import{d as C,D,h as x,i as M,z as O,o as j,c as d,u as F,a as t,b as _,t as G,q as o,v as r,p as u,s as g,E as A,f as c,e as n}from"./index-C4edAQLF.js";import{u as B}from"./settings-C6i6OeZ-.js";import{_ as v}from"./SelectMenu.vue_vue_type_script_setup_true_lang-Cu_3WwPc.js";import{_ as f}from"./Checkbox.vue_vue_type_script_setup_true_lang-41XRw3c5.js";import{_ as p}from"./HelpTip.vue_vue_type_script_setup_true_lang-CWJidBqq.js";const L={class:"space-y-8"},T={key:0,class:"rounded-3xl border border-border bg-card p-6 text-sm text-muted-foreground"},q={key:1,class:"rounded-3xl border border-border bg-card p-6"},E={class:"flex items-center justify-between"},I=["disabled"],$={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},J={key:1,class:"mt-6 space-y-8"},R={class:"grid gap-4 lg:grid-cols-3"},z={class:"space-y-4"},H={class:"rounded-2xl border border-border bg-card p-4"},K={class:"mt-4 space-y-3"},Q={class:"rounded-2xl border border-border bg-card p-4"},W={class:"mt-4 space-y-3"},X={class:"grid grid-cols-2 items-center gap-x-6 gap-y-2"},Y={class:"flex items-center justify-end gap-2"},Z={class:"flex items-center justify-between gap-2 text-xs text-muted-foreground"},h={class:"flex items-center justify-between gap-2 text-xs text-muted-foreground"},ee={class:"space-y-4"},te={class:"rounded-2xl border border-border bg-card p-4"},se={class:"mt-4 grid grid-cols-2 gap-3 text-sm"},le={class:"col-span-2 flex items-center justify-between gap-2 text-xs text-muted-foreground"},oe={class:"space-y-4"},re={class:"rounded-2xl border border-border bg-card p-4"},ae={class:"mt-4 space-y-3"},ue={class:"rounded-2xl border border-border bg-card p-4"},de={class:"mt-4 space-y-3"},ge=C({__name:"Settings",setup(ne){const b=B(),{settings:k,isLoading:w}=D(b),y=A(),s=x(null),m=x(!1),i=x(""),V=[{label:"UC - 支持无头/有头",value:"uc"},{label:"DP - 有头模式(推荐)",value:"dp"}],U=[{label:"Base64 编码",value:"base64"},{label:"URL 链接",value:"url"}],S=M(()=>{const a=[{label:"Gemini 3 Pro Preview",value:"gemini-3-pro-preview"},{label:"Gemini 3 Flash Preview",value:"gemini-3-flash-preview"},{label:"Gemini 2.5 Pro",value:"gemini-2.5-pro"},{label:"Gemini 2.5 Flash",value:"gemini-2.5-flash"},{label:"Gemini Auto",value:"gemini-auto"}],e=s.value?.image_generation.supported_models||[];for(const l of e)a.some(P=>P.value===l)||a.push({label:l,value:l});return a});O(k,a=>{if(!a)return;const e=JSON.parse(JSON.stringify(a));e.image_generation=e.image_generation||{enabled:!1,supported_models:[],output_format:"base64"},e.image_generation.output_format||="base64",e.basic=e.basic||{},e.basic.duckmail_base_url||="https://api.duckmail.sbs",e.basic.duckmail_verify_ssl=e.basic.duckmail_verify_ssl??!0,e.basic.browser_engine=e.basic.browser_engine||"dp",e.basic.browser_headless=e.basic.browser_headless??!1,e.basic.refresh_window_hours=Number.isFinite(e.basic.refresh_window_hours)?e.basic.refresh_window_hours:1,e.basic.register_default_count=Number.isFinite(e.basic.register_default_count)?e.basic.register_default_count:1,e.basic.register_domain=typeof e.basic.register_domain=="string"?e.basic.register_domain:"",e.basic.duckmail_api_key=typeof e.basic.duckmail_api_key=="string"?e.basic.duckmail_api_key:"",e.retry=e.retry||{},e.retry.auto_refresh_accounts_seconds=Number.isFinite(e.retry.auto_refresh_accounts_seconds)?e.retry.auto_refresh_accounts_seconds:60,s.value=e}),j(async()=>{await b.loadSettings()});const N=async()=>{if(s.value){i.value="",m.value=!0;try{await b.updateSettings(s.value),y.success("设置保存成功")}catch(a){i.value=a.message||"保存失败",y.error(a.message||"保存失败")}finally{m.value=!1}}};return(a,e)=>(n(),d("div",L,[F(w)?(n(),d("section",T," 正在加载设置... ")):(n(),d("section",q,[t("div",E,[e[24]||(e[24]=t("p",{class:"text-base font-semibold text-foreground"},"配置面板",-1)),t("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",disabled:m.value||!s.value,onClick:N}," 保存设置 ",8,I)]),i.value?(n(),d("div",$,G(i.value),1)):_("",!0),s.value?(n(),d("div",J,[t("div",R,[t("div",z,[t("div",H,[e[28]||(e[28]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"基础",-1)),t("div",K,[e[25]||(e[25]=t("label",{class:"block text-xs text-muted-foreground"},"API 密钥",-1)),o(t("input",{"onUpdate:modelValue":e[0]||(e[0]=l=>s.value.basic.api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"可选"},null,512),[[r,s.value.basic.api_key]]),e[26]||(e[26]=t("label",{class:"block text-xs text-muted-foreground"},"基础地址",-1)),o(t("input",{"onUpdate:modelValue":e[1]||(e[1]=l=>s.value.basic.base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"自动检测或手动填写"},null,512),[[r,s.value.basic.base_url]]),e[27]||(e[27]=t("label",{class:"block text-xs text-muted-foreground"},"代理地址",-1)),o(t("input",{"onUpdate:modelValue":e[2]||(e[2]=l=>s.value.basic.proxy=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"http://127.0.0.1:7890"},null,512),[[r,s.value.basic.proxy]])])]),t("div",Q,[e[37]||(e[37]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"自动注册/刷新",-1)),t("div",W,[t("div",X,[u(f,{modelValue:s.value.basic.duckmail_verify_ssl,"onUpdate:modelValue":e[3]||(e[3]=l=>s.value.basic.duckmail_verify_ssl=l)},{default:g(()=>[...e[29]||(e[29]=[c(" DuckMail SSL 校验 ",-1)])]),_:1},8,["modelValue"]),t("div",Y,[u(f,{modelValue:s.value.basic.browser_headless,"onUpdate:modelValue":e[4]||(e[4]=l=>s.value.basic.browser_headless=l),disabled:s.value.basic.browser_engine==="dp"},{default:g(()=>[...e[30]||(e[30]=[c(" 无头浏览器 ",-1)])]),_:1},8,["modelValue","disabled"]),u(p,{text:"仅 UC 引擎支持无头模式。若无头注册/刷新失败,建议关闭。"})])]),t("div",Z,[e[31]||(e[31]=t("span",null,"浏览器引擎",-1)),u(p,{text:"UC: 支持无头/有头,但可能失败。DP: 仅有头模式,更稳定,UC 失败时推荐使用。"})]),u(v,{modelValue:s.value.basic.browser_engine,"onUpdate:modelValue":e[5]||(e[5]=l=>s.value.basic.browser_engine=l),options:V,class:"w-full"},null,8,["modelValue"]),e[33]||(e[33]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API",-1)),o(t("input",{"onUpdate:modelValue":e[6]||(e[6]=l=>s.value.basic.duckmail_base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"https://api.duckmail.sbs"},null,512),[[r,s.value.basic.duckmail_base_url]]),t("div",h,[e[32]||(e[32]=t("span",null,"过期刷新窗口(小时)",-1)),u(p,{text:"当账号距离过期小于等于该值时,会触发自动登录刷新(更新 cookie/session)。"})]),o(t("input",{"onUpdate:modelValue":e[7]||(e[7]=l=>s.value.basic.refresh_window_hours=l),type:"number",min:"0",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[r,s.value.basic.refresh_window_hours,void 0,{number:!0}]]),e[34]||(e[34]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册数量",-1)),o(t("input",{"onUpdate:modelValue":e[8]||(e[8]=l=>s.value.basic.register_default_count=l),type:"number",min:"1",max:"30",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[r,s.value.basic.register_default_count,void 0,{number:!0}]]),e[35]||(e[35]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册域名(推荐)",-1)),o(t("input",{"onUpdate:modelValue":e[9]||(e[9]=l=>s.value.basic.register_domain=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"留空则自动选择"},null,512),[[r,s.value.basic.register_domain]]),e[36]||(e[36]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API 密钥",-1)),o(t("input",{"onUpdate:modelValue":e[10]||(e[10]=l=>s.value.basic.duckmail_api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"dk_xxx"},null,512),[[r,s.value.basic.duckmail_api_key]])])])]),t("div",ee,[t("div",te,[e[45]||(e[45]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"重试",-1)),t("div",se,[e[39]||(e[39]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"新会话尝试次数",-1)),o(t("input",{"onUpdate:modelValue":e[11]||(e[11]=l=>s.value.retry.max_new_session_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.max_new_session_tries,void 0,{number:!0}]]),e[40]||(e[40]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"请求重试次数",-1)),o(t("input",{"onUpdate:modelValue":e[12]||(e[12]=l=>s.value.retry.max_request_retries=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.max_request_retries,void 0,{number:!0}]]),e[41]||(e[41]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"账号切换次数",-1)),o(t("input",{"onUpdate:modelValue":e[13]||(e[13]=l=>s.value.retry.max_account_switch_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.max_account_switch_tries,void 0,{number:!0}]]),e[42]||(e[42]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"失败阈值",-1)),o(t("input",{"onUpdate:modelValue":e[14]||(e[14]=l=>s.value.retry.account_failure_threshold=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.account_failure_threshold,void 0,{number:!0}]]),e[43]||(e[43]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"限流冷却秒数",-1)),o(t("input",{"onUpdate:modelValue":e[15]||(e[15]=l=>s.value.retry.rate_limit_cooldown_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.rate_limit_cooldown_seconds,void 0,{number:!0}]]),e[44]||(e[44]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"会话缓存秒数",-1)),o(t("input",{"onUpdate:modelValue":e[16]||(e[16]=l=>s.value.retry.session_cache_ttl_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.session_cache_ttl_seconds,void 0,{number:!0}]]),t("div",le,[e[38]||(e[38]=t("span",null,"自动刷新账号间隔(秒,0禁用)",-1)),u(p,{text:"仅在数据库存储启用时生效:用于检测账号配置变化并重载列表,不会刷新 cookie。文件存储模式不会触发。"})]),o(t("input",{"onUpdate:modelValue":e[17]||(e[17]=l=>s.value.retry.auto_refresh_accounts_seconds=l),type:"number",min:"0",max:"600",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.auto_refresh_accounts_seconds,void 0,{number:!0}]])])])]),t("div",oe,[t("div",re,[e[49]||(e[49]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"图像生成",-1)),t("div",ae,[u(f,{modelValue:s.value.image_generation.enabled,"onUpdate:modelValue":e[18]||(e[18]=l=>s.value.image_generation.enabled=l)},{default:g(()=>[...e[46]||(e[46]=[c(" 启用图像生成 ",-1)])]),_:1},8,["modelValue"]),e[47]||(e[47]=t("label",{class:"block text-xs text-muted-foreground"},"输出格式",-1)),u(v,{modelValue:s.value.image_generation.output_format,"onUpdate:modelValue":e[19]||(e[19]=l=>s.value.image_generation.output_format=l),options:U,placement:"up",class:"w-full"},null,8,["modelValue"]),e[48]||(e[48]=t("label",{class:"block text-xs text-muted-foreground"},"支持模型",-1)),u(v,{modelValue:s.value.image_generation.supported_models,"onUpdate:modelValue":e[20]||(e[20]=l=>s.value.image_generation.supported_models=l),options:S.value,placeholder:"选择模型",placement:"up",multiple:"",class:"w-full"},null,8,["modelValue","options"])])]),t("div",ue,[e[53]||(e[53]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"公开展示",-1)),t("div",de,[e[50]||(e[50]=t("label",{class:"block text-xs text-muted-foreground"},"Logo 地址",-1)),o(t("input",{"onUpdate:modelValue":e[21]||(e[21]=l=>s.value.public_display.logo_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"logo 地址"},null,512),[[r,s.value.public_display.logo_url]]),e[51]||(e[51]=t("label",{class:"block text-xs text-muted-foreground"},"聊天入口",-1)),o(t("input",{"onUpdate:modelValue":e[22]||(e[22]=l=>s.value.public_display.chat_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"聊天入口地址"},null,512),[[r,s.value.public_display.chat_url]]),e[52]||(e[52]=t("label",{class:"block text-xs text-muted-foreground"},"会话有效时长",-1)),o(t("input",{"onUpdate:modelValue":e[23]||(e[23]=l=>s.value.session.expire_hours=l),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[r,s.value.session.expire_hours,void 0,{number:!0}]])])]),e[54]||(e[54]=t("div",{class:"rounded-2xl border border-border bg-card p-4"},[t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"说明"),t("p",{class:"mt-4 text-sm text-muted-foreground"}," 保存后会直接写入配置文件并热更新。修改后请关注日志面板确认是否生效。 "),t("p",{class:"mt-3 text-sm text-muted-foreground"}," 自动注册/刷新默认启用,若依赖缺失会自动降级并提示。 ")],-1))])])])):_("",!0)]))]))}});export{ge as default}; diff --git a/static/assets/Settings-B0lzmwzl.js b/static/assets/Settings-B0lzmwzl.js new file mode 100644 index 0000000000000000000000000000000000000000..df0c5e674e2fcd366ba92f2480daf821684d8aa5 --- /dev/null +++ b/static/assets/Settings-B0lzmwzl.js @@ -0,0 +1 @@ +import{d as S,D as N,h as m,i as M,s as O,o as P,c as d,u as D,a as t,b as f,t as G,m as r,v as o,x as a,A as x,f as g,e as n}from"./index-C9KL0lrc.js";import{u as A}from"./settings-DpDmWAP6.js";import{_ as c}from"./SelectMenu.vue_vue_type_script_setup_true_lang-gwg2tONM.js";import{_ as v}from"./Checkbox.vue_vue_type_script_setup_true_lang-DQLrRLI4.js";const B={class:"space-y-8"},C={key:0,class:"rounded-3xl border border-border bg-card p-6 text-sm text-muted-foreground"},F={key:1,class:"rounded-3xl border border-border bg-card p-6"},L={class:"flex items-center justify-between"},T=["disabled"],q={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},I={key:1,class:"mt-6 space-y-8"},J={class:"grid gap-4 lg:grid-cols-3"},R={class:"space-y-4"},$={class:"rounded-2xl border border-border bg-card p-4"},j={class:"mt-4 space-y-3"},E={class:"rounded-2xl border border-border bg-card p-4"},z={class:"mt-4 space-y-3"},H={class:"rounded-2xl border border-border bg-card p-4"},K={class:"mt-4 space-y-3"},Q={class:"rounded-2xl border border-border bg-card p-4"},W={class:"mt-4 grid grid-cols-2 gap-3 text-sm"},X={class:"space-y-4"},Y={class:"rounded-2xl border border-border bg-card p-4"},Z={class:"mt-4 space-y-3"},re=S({__name:"Settings",setup(h){const p=A(),{settings:y,isLoading:_}=N(p),s=m(null),b=m(!1),i=m(""),k=[{label:"Base64 编码",value:"base64"},{label:"URL 链接",value:"url"}],w=M(()=>{const u=[{label:"Gemini 3 Pro Preview",value:"gemini-3-pro-preview"},{label:"Gemini 3 Flash Preview",value:"gemini-3-flash-preview"},{label:"Gemini 2.5 Pro",value:"gemini-2.5-pro"},{label:"Gemini 2.5 Flash",value:"gemini-2.5-flash"},{label:"Gemini Auto",value:"gemini-auto"}],e=s.value?.image_generation.supported_models||[];for(const l of e)u.some(U=>U.value===l)||u.push({label:l,value:l});return u});O(y,u=>{if(!u)return;const e=JSON.parse(JSON.stringify(u));e.image_generation=e.image_generation||{enabled:!1,supported_models:[],output_format:"base64"},e.image_generation.output_format||="base64",e.basic=e.basic||{},e.basic.duckmail_base_url||="https://api.duckmail.sbs",e.basic.duckmail_verify_ssl=e.basic.duckmail_verify_ssl??!0,e.basic.browser_headless=e.basic.browser_headless??!0,e.basic.refresh_window_hours=Number.isFinite(e.basic.refresh_window_hours)?e.basic.refresh_window_hours:1,e.basic.register_default_count=Number.isFinite(e.basic.register_default_count)?e.basic.register_default_count:1,e.basic.register_domain=typeof e.basic.register_domain=="string"?e.basic.register_domain:"",s.value=e}),P(async()=>{await p.loadSettings()});const V=async()=>{if(s.value){i.value="",b.value=!0;try{await p.updateSettings(s.value)}catch(u){i.value=u.message||"保存失败"}finally{b.value=!1}}};return(u,e)=>(n(),d("div",B,[D(_)?(n(),d("section",C," 正在加载设置... ")):(n(),d("section",F,[t("div",L,[e[21]||(e[21]=t("p",{class:"text-base font-semibold text-foreground"},"配置面板",-1)),t("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:b.value||!s.value,onClick:V}," 保存设置 ",8,T)]),i.value?(n(),d("div",q,G(i.value),1)):f("",!0),s.value?(n(),d("div",I,[t("div",J,[t("div",R,[t("div",$,[e[25]||(e[25]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"基础",-1)),t("div",j,[e[22]||(e[22]=t("label",{class:"block text-xs text-muted-foreground"},"API 密钥",-1)),r(t("input",{"onUpdate:modelValue":e[0]||(e[0]=l=>s.value.basic.api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"可选"},null,512),[[o,s.value.basic.api_key]]),e[23]||(e[23]=t("label",{class:"block text-xs text-muted-foreground"},"基础地址",-1)),r(t("input",{"onUpdate:modelValue":e[1]||(e[1]=l=>s.value.basic.base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"自动检测或手动填写"},null,512),[[o,s.value.basic.base_url]]),e[24]||(e[24]=t("label",{class:"block text-xs text-muted-foreground"},"代理地址",-1)),r(t("input",{"onUpdate:modelValue":e[2]||(e[2]=l=>s.value.basic.proxy=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"http://127.0.0.1:7890"},null,512),[[o,s.value.basic.proxy]])])]),t("div",E,[e[32]||(e[32]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"自动注册/刷新",-1)),t("div",z,[e[28]||(e[28]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API",-1)),r(t("input",{"onUpdate:modelValue":e[3]||(e[3]=l=>s.value.basic.duckmail_base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"https://api.duckmail.sbs"},null,512),[[o,s.value.basic.duckmail_base_url]]),a(v,{modelValue:s.value.basic.duckmail_verify_ssl,"onUpdate:modelValue":e[4]||(e[4]=l=>s.value.basic.duckmail_verify_ssl=l)},{default:x(()=>[...e[26]||(e[26]=[g(" DuckMail SSL 校验 ",-1)])]),_:1},8,["modelValue"]),a(v,{modelValue:s.value.basic.browser_headless,"onUpdate:modelValue":e[5]||(e[5]=l=>s.value.basic.browser_headless=l)},{default:x(()=>[...e[27]||(e[27]=[g(" 无头浏览器 ",-1)])]),_:1},8,["modelValue"]),e[29]||(e[29]=t("label",{class:"block text-xs text-muted-foreground"},"过期刷新窗口(小时)",-1)),r(t("input",{"onUpdate:modelValue":e[6]||(e[6]=l=>s.value.basic.refresh_window_hours=l),type:"number",min:"0",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.refresh_window_hours,void 0,{number:!0}]]),e[30]||(e[30]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册数量",-1)),r(t("input",{"onUpdate:modelValue":e[7]||(e[7]=l=>s.value.basic.register_default_count=l),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.register_default_count,void 0,{number:!0}]]),e[31]||(e[31]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册域名",-1)),r(t("input",{"onUpdate:modelValue":e[8]||(e[8]=l=>s.value.basic.register_domain=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"留空则自动选择"},null,512),[[o,s.value.basic.register_domain]])])]),t("div",H,[e[36]||(e[36]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"图像生成",-1)),t("div",K,[a(v,{modelValue:s.value.image_generation.enabled,"onUpdate:modelValue":e[9]||(e[9]=l=>s.value.image_generation.enabled=l)},{default:x(()=>[...e[33]||(e[33]=[g(" 启用图像生成 ",-1)])]),_:1},8,["modelValue"]),e[34]||(e[34]=t("label",{class:"block text-xs text-muted-foreground"},"输出格式",-1)),a(c,{modelValue:s.value.image_generation.output_format,"onUpdate:modelValue":e[10]||(e[10]=l=>s.value.image_generation.output_format=l),options:k,placement:"up"},null,8,["modelValue"]),e[35]||(e[35]=t("label",{class:"block text-xs text-muted-foreground"},"支持模型",-1)),a(c,{modelValue:s.value.image_generation.supported_models,"onUpdate:modelValue":e[11]||(e[11]=l=>s.value.image_generation.supported_models=l),options:w.value,placeholder:"选择模型",placement:"up",multiple:""},null,8,["modelValue","options"])])])]),t("div",Q,[e[43]||(e[43]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"重试",-1)),t("div",W,[e[37]||(e[37]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"新会话尝试次数",-1)),r(t("input",{"onUpdate:modelValue":e[12]||(e[12]=l=>s.value.retry.max_new_session_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_new_session_tries,void 0,{number:!0}]]),e[38]||(e[38]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"请求重试次数",-1)),r(t("input",{"onUpdate:modelValue":e[13]||(e[13]=l=>s.value.retry.max_request_retries=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_request_retries,void 0,{number:!0}]]),e[39]||(e[39]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"账号切换次数",-1)),r(t("input",{"onUpdate:modelValue":e[14]||(e[14]=l=>s.value.retry.max_account_switch_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_account_switch_tries,void 0,{number:!0}]]),e[40]||(e[40]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"失败阈值",-1)),r(t("input",{"onUpdate:modelValue":e[15]||(e[15]=l=>s.value.retry.account_failure_threshold=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.account_failure_threshold,void 0,{number:!0}]]),e[41]||(e[41]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"限流冷却秒数",-1)),r(t("input",{"onUpdate:modelValue":e[16]||(e[16]=l=>s.value.retry.rate_limit_cooldown_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.rate_limit_cooldown_seconds,void 0,{number:!0}]]),e[42]||(e[42]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"会话缓存秒数",-1)),r(t("input",{"onUpdate:modelValue":e[17]||(e[17]=l=>s.value.retry.session_cache_ttl_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.session_cache_ttl_seconds,void 0,{number:!0}]])])]),t("div",X,[t("div",Y,[e[47]||(e[47]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"公开展示",-1)),t("div",Z,[e[44]||(e[44]=t("label",{class:"block text-xs text-muted-foreground"},"Logo 地址",-1)),r(t("input",{"onUpdate:modelValue":e[18]||(e[18]=l=>s.value.public_display.logo_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"logo 地址"},null,512),[[o,s.value.public_display.logo_url]]),e[45]||(e[45]=t("label",{class:"block text-xs text-muted-foreground"},"聊天入口",-1)),r(t("input",{"onUpdate:modelValue":e[19]||(e[19]=l=>s.value.public_display.chat_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"聊天入口地址"},null,512),[[o,s.value.public_display.chat_url]]),e[46]||(e[46]=t("label",{class:"block text-xs text-muted-foreground"},"会话有效时长",-1)),r(t("input",{"onUpdate:modelValue":e[20]||(e[20]=l=>s.value.session.expire_hours=l),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.session.expire_hours,void 0,{number:!0}]])])]),e[48]||(e[48]=t("div",{class:"rounded-2xl border border-border bg-card p-4"},[t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"说明"),t("p",{class:"mt-4 text-sm text-muted-foreground"}," 保存后会直接写入配置文件并热更新。修改后请关注日志面板确认是否生效。 "),t("p",{class:"mt-3 text-sm text-muted-foreground"}," 自动注册/刷新默认启用,若依赖缺失会自动降级并提示。 ")],-1))])])])):f("",!0)]))]))}});export{re as default}; diff --git a/static/assets/Settings-B68jiI6O.js b/static/assets/Settings-B68jiI6O.js new file mode 100644 index 0000000000000000000000000000000000000000..4130570aea04fc68de0d15e984158c6188347aef --- /dev/null +++ b/static/assets/Settings-B68jiI6O.js @@ -0,0 +1 @@ +import{d as N,E as M,h as m,i as P,A as O,o as j,c as d,u as A,a as t,b as v,t as D,q as r,v as o,p as a,s as x,f as g,e as n}from"./index-B38eA7T4.js";import{u as F}from"./settings-CVW1vhYs.js";import{_ as f}from"./SelectMenu.vue_vue_type_script_setup_true_lang-n4k9i9SG.js";import{_ as c}from"./Checkbox.vue_vue_type_script_setup_true_lang-mPA_O7TM.js";import{_ as y}from"./HelpTip.vue_vue_type_script_setup_true_lang-P0lttIQ0.js";const G={class:"space-y-8"},B={key:0,class:"rounded-3xl border border-border bg-card p-6 text-sm text-muted-foreground"},C={key:1,class:"rounded-3xl border border-border bg-card p-6"},L={class:"flex items-center justify-between"},q=["disabled"],I={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},T={key:1,class:"mt-6 space-y-8"},$={class:"grid gap-4 lg:grid-cols-3"},E={class:"space-y-4"},J={class:"rounded-2xl border border-border bg-card p-4"},R={class:"mt-4 space-y-3"},z={class:"rounded-2xl border border-border bg-card p-4"},H={class:"mt-4 space-y-3"},K={class:"grid grid-cols-2 items-center gap-x-6 gap-y-2"},Q={class:"flex items-center justify-between gap-2 text-xs text-muted-foreground"},W={class:"space-y-4"},X={class:"rounded-2xl border border-border bg-card p-4"},Y={class:"mt-4 grid grid-cols-2 gap-3 text-sm"},Z={class:"col-span-2 flex items-center justify-between gap-2 text-xs text-muted-foreground"},h={class:"space-y-4"},ee={class:"rounded-2xl border border-border bg-card p-4"},te={class:"mt-4 space-y-3"},se={class:"rounded-2xl border border-border bg-card p-4"},le={class:"mt-4 space-y-3"},ie=N({__name:"Settings",setup(re){const p=F(),{settings:_,isLoading:k}=M(p),s=m(null),b=m(!1),i=m(""),w=[{label:"Base64 编码",value:"base64"},{label:"URL 链接",value:"url"}],V=P(()=>{const u=[{label:"Gemini 3 Pro Preview",value:"gemini-3-pro-preview"},{label:"Gemini 3 Flash Preview",value:"gemini-3-flash-preview"},{label:"Gemini 2.5 Pro",value:"gemini-2.5-pro"},{label:"Gemini 2.5 Flash",value:"gemini-2.5-flash"},{label:"Gemini Auto",value:"gemini-auto"}],e=s.value?.image_generation.supported_models||[];for(const l of e)u.some(S=>S.value===l)||u.push({label:l,value:l});return u});O(_,u=>{if(!u)return;const e=JSON.parse(JSON.stringify(u));e.image_generation=e.image_generation||{enabled:!1,supported_models:[],output_format:"base64"},e.image_generation.output_format||="base64",e.basic=e.basic||{},e.basic.duckmail_base_url||="https://api.duckmail.sbs",e.basic.duckmail_verify_ssl=e.basic.duckmail_verify_ssl??!0,e.basic.browser_headless=e.basic.browser_headless??!0,e.basic.refresh_window_hours=Number.isFinite(e.basic.refresh_window_hours)?e.basic.refresh_window_hours:1,e.basic.register_default_count=Number.isFinite(e.basic.register_default_count)?e.basic.register_default_count:1,e.basic.register_domain=typeof e.basic.register_domain=="string"?e.basic.register_domain:"",e.basic.duckmail_api_key=typeof e.basic.duckmail_api_key=="string"?e.basic.duckmail_api_key:"",e.retry=e.retry||{},e.retry.auto_refresh_accounts_seconds=Number.isFinite(e.retry.auto_refresh_accounts_seconds)?e.retry.auto_refresh_accounts_seconds:60,s.value=e}),j(async()=>{await p.loadSettings()});const U=async()=>{if(s.value){i.value="",b.value=!0;try{await p.updateSettings(s.value)}catch(u){i.value=u.message||"保存失败"}finally{b.value=!1}}};return(u,e)=>(n(),d("div",G,[A(k)?(n(),d("section",B," 正在加载设置... ")):(n(),d("section",C,[t("div",L,[e[23]||(e[23]=t("p",{class:"text-base font-semibold text-foreground"},"配置面板",-1)),t("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:b.value||!s.value,onClick:U}," 保存设置 ",8,q)]),i.value?(n(),d("div",I,D(i.value),1)):v("",!0),s.value?(n(),d("div",T,[t("div",$,[t("div",E,[t("div",J,[e[27]||(e[27]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"基础",-1)),t("div",R,[e[24]||(e[24]=t("label",{class:"block text-xs text-muted-foreground"},"API 密钥",-1)),r(t("input",{"onUpdate:modelValue":e[0]||(e[0]=l=>s.value.basic.api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"可选"},null,512),[[o,s.value.basic.api_key]]),e[25]||(e[25]=t("label",{class:"block text-xs text-muted-foreground"},"基础地址",-1)),r(t("input",{"onUpdate:modelValue":e[1]||(e[1]=l=>s.value.basic.base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"自动检测或手动填写"},null,512),[[o,s.value.basic.base_url]]),e[26]||(e[26]=t("label",{class:"block text-xs text-muted-foreground"},"代理地址",-1)),r(t("input",{"onUpdate:modelValue":e[2]||(e[2]=l=>s.value.basic.proxy=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"http://127.0.0.1:7890"},null,512),[[o,s.value.basic.proxy]])])]),t("div",z,[e[35]||(e[35]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"自动注册/刷新",-1)),t("div",H,[e[31]||(e[31]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API",-1)),r(t("input",{"onUpdate:modelValue":e[3]||(e[3]=l=>s.value.basic.duckmail_base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"https://api.duckmail.sbs"},null,512),[[o,s.value.basic.duckmail_base_url]]),t("div",K,[a(c,{modelValue:s.value.basic.duckmail_verify_ssl,"onUpdate:modelValue":e[4]||(e[4]=l=>s.value.basic.duckmail_verify_ssl=l)},{default:x(()=>[...e[28]||(e[28]=[g(" DuckMail SSL 校验 ",-1)])]),_:1},8,["modelValue"]),a(c,{modelValue:s.value.basic.browser_headless,"onUpdate:modelValue":e[5]||(e[5]=l=>s.value.basic.browser_headless=l),class:"w-full justify-end justify-self-end"},{default:x(()=>[...e[29]||(e[29]=[g(" 无头浏览器 ",-1)])]),_:1},8,["modelValue"])]),t("div",Q,[e[30]||(e[30]=t("span",null,"过期刷新窗口(小时)",-1)),a(y,{text:"当账号距离过期小于等于该值时,会触发自动登录刷新(更新 cookie/session)。"})]),r(t("input",{"onUpdate:modelValue":e[6]||(e[6]=l=>s.value.basic.refresh_window_hours=l),type:"number",min:"0",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.refresh_window_hours,void 0,{number:!0}]]),e[32]||(e[32]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册数量",-1)),r(t("input",{"onUpdate:modelValue":e[7]||(e[7]=l=>s.value.basic.register_default_count=l),type:"number",min:"1",max:"30",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.register_default_count,void 0,{number:!0}]]),e[33]||(e[33]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册域名(推荐)",-1)),r(t("input",{"onUpdate:modelValue":e[8]||(e[8]=l=>s.value.basic.register_domain=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"留空则自动选择"},null,512),[[o,s.value.basic.register_domain]]),e[34]||(e[34]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API 密钥",-1)),r(t("input",{"onUpdate:modelValue":e[9]||(e[9]=l=>s.value.basic.duckmail_api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"dk_xxx"},null,512),[[o,s.value.basic.duckmail_api_key]])])])]),t("div",W,[t("div",X,[e[43]||(e[43]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"重试",-1)),t("div",Y,[e[37]||(e[37]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"新会话尝试次数",-1)),r(t("input",{"onUpdate:modelValue":e[10]||(e[10]=l=>s.value.retry.max_new_session_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_new_session_tries,void 0,{number:!0}]]),e[38]||(e[38]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"请求重试次数",-1)),r(t("input",{"onUpdate:modelValue":e[11]||(e[11]=l=>s.value.retry.max_request_retries=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_request_retries,void 0,{number:!0}]]),e[39]||(e[39]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"账号切换次数",-1)),r(t("input",{"onUpdate:modelValue":e[12]||(e[12]=l=>s.value.retry.max_account_switch_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_account_switch_tries,void 0,{number:!0}]]),e[40]||(e[40]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"失败阈值",-1)),r(t("input",{"onUpdate:modelValue":e[13]||(e[13]=l=>s.value.retry.account_failure_threshold=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.account_failure_threshold,void 0,{number:!0}]]),e[41]||(e[41]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"限流冷却秒数",-1)),r(t("input",{"onUpdate:modelValue":e[14]||(e[14]=l=>s.value.retry.rate_limit_cooldown_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.rate_limit_cooldown_seconds,void 0,{number:!0}]]),e[42]||(e[42]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"会话缓存秒数",-1)),r(t("input",{"onUpdate:modelValue":e[15]||(e[15]=l=>s.value.retry.session_cache_ttl_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.session_cache_ttl_seconds,void 0,{number:!0}]]),t("div",Z,[e[36]||(e[36]=t("span",null,"自动刷新账号间隔(秒,0禁用)",-1)),a(y,{text:"仅在数据库存储启用时生效:用于检测账号配置变化并重载列表,不会刷新 cookie。文件存储模式不会触发。"})]),r(t("input",{"onUpdate:modelValue":e[16]||(e[16]=l=>s.value.retry.auto_refresh_accounts_seconds=l),type:"number",min:"0",max:"600",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.auto_refresh_accounts_seconds,void 0,{number:!0}]])])])]),t("div",h,[t("div",ee,[e[47]||(e[47]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"图像生成",-1)),t("div",te,[a(c,{modelValue:s.value.image_generation.enabled,"onUpdate:modelValue":e[17]||(e[17]=l=>s.value.image_generation.enabled=l)},{default:x(()=>[...e[44]||(e[44]=[g(" 启用图像生成 ",-1)])]),_:1},8,["modelValue"]),e[45]||(e[45]=t("label",{class:"block text-xs text-muted-foreground"},"输出格式",-1)),a(f,{modelValue:s.value.image_generation.output_format,"onUpdate:modelValue":e[18]||(e[18]=l=>s.value.image_generation.output_format=l),options:w,placement:"up",class:"w-full"},null,8,["modelValue"]),e[46]||(e[46]=t("label",{class:"block text-xs text-muted-foreground"},"支持模型",-1)),a(f,{modelValue:s.value.image_generation.supported_models,"onUpdate:modelValue":e[19]||(e[19]=l=>s.value.image_generation.supported_models=l),options:V.value,placeholder:"选择模型",placement:"up",multiple:"",class:"w-full"},null,8,["modelValue","options"])])]),t("div",se,[e[51]||(e[51]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"公开展示",-1)),t("div",le,[e[48]||(e[48]=t("label",{class:"block text-xs text-muted-foreground"},"Logo 地址",-1)),r(t("input",{"onUpdate:modelValue":e[20]||(e[20]=l=>s.value.public_display.logo_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"logo 地址"},null,512),[[o,s.value.public_display.logo_url]]),e[49]||(e[49]=t("label",{class:"block text-xs text-muted-foreground"},"聊天入口",-1)),r(t("input",{"onUpdate:modelValue":e[21]||(e[21]=l=>s.value.public_display.chat_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"聊天入口地址"},null,512),[[o,s.value.public_display.chat_url]]),e[50]||(e[50]=t("label",{class:"block text-xs text-muted-foreground"},"会话有效时长",-1)),r(t("input",{"onUpdate:modelValue":e[22]||(e[22]=l=>s.value.session.expire_hours=l),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.session.expire_hours,void 0,{number:!0}]])])]),e[52]||(e[52]=t("div",{class:"rounded-2xl border border-border bg-card p-4"},[t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"说明"),t("p",{class:"mt-4 text-sm text-muted-foreground"}," 保存后会直接写入配置文件并热更新。修改后请关注日志面板确认是否生效。 "),t("p",{class:"mt-3 text-sm text-muted-foreground"}," 自动注册/刷新默认启用,若依赖缺失会自动降级并提示。 ")],-1))])])])):v("",!0)]))]))}});export{ie as default}; diff --git a/static/assets/Settings-BRCUddT6.js b/static/assets/Settings-BRCUddT6.js new file mode 100644 index 0000000000000000000000000000000000000000..a4424ebb9ff11002d4db9fef2bc8d6a0e6a51ac0 --- /dev/null +++ b/static/assets/Settings-BRCUddT6.js @@ -0,0 +1 @@ +import{d as N,E as M,h as m,i as P,A as O,o as j,c as d,u as A,a as t,b as v,t as D,p as r,v as o,q as a,s as x,f as g,e as n}from"./index-DL4Fp3an.js";import{u as F}from"./settings-oZBOK-or.js";import{_ as f}from"./SelectMenu.vue_vue_type_script_setup_true_lang-CmVUq-Y1.js";import{_ as c}from"./Checkbox.vue_vue_type_script_setup_true_lang-FvD-aCmU.js";import{_ as y}from"./HelpTip.vue_vue_type_script_setup_true_lang-CAICIbTF.js";const G={class:"space-y-8"},B={key:0,class:"rounded-3xl border border-border bg-card p-6 text-sm text-muted-foreground"},C={key:1,class:"rounded-3xl border border-border bg-card p-6"},L={class:"flex items-center justify-between"},q=["disabled"],I={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},T={key:1,class:"mt-6 space-y-8"},$={class:"grid gap-4 lg:grid-cols-3"},E={class:"space-y-4"},J={class:"rounded-2xl border border-border bg-card p-4"},R={class:"mt-4 space-y-3"},z={class:"rounded-2xl border border-border bg-card p-4"},H={class:"mt-4 space-y-3"},K={class:"grid grid-cols-2 items-center gap-x-6 gap-y-2"},Q={class:"flex items-center justify-between gap-2 text-xs text-muted-foreground"},W={class:"space-y-4"},X={class:"rounded-2xl border border-border bg-card p-4"},Y={class:"mt-4 grid grid-cols-2 gap-3 text-sm"},Z={class:"col-span-2 flex items-center justify-between gap-2 text-xs text-muted-foreground"},h={class:"space-y-4"},ee={class:"rounded-2xl border border-border bg-card p-4"},te={class:"mt-4 space-y-3"},se={class:"rounded-2xl border border-border bg-card p-4"},le={class:"mt-4 space-y-3"},ie=N({__name:"Settings",setup(re){const p=F(),{settings:_,isLoading:k}=M(p),s=m(null),b=m(!1),i=m(""),w=[{label:"Base64 编码",value:"base64"},{label:"URL 链接",value:"url"}],V=P(()=>{const u=[{label:"Gemini 3 Pro Preview",value:"gemini-3-pro-preview"},{label:"Gemini 3 Flash Preview",value:"gemini-3-flash-preview"},{label:"Gemini 2.5 Pro",value:"gemini-2.5-pro"},{label:"Gemini 2.5 Flash",value:"gemini-2.5-flash"},{label:"Gemini Auto",value:"gemini-auto"}],e=s.value?.image_generation.supported_models||[];for(const l of e)u.some(S=>S.value===l)||u.push({label:l,value:l});return u});O(_,u=>{if(!u)return;const e=JSON.parse(JSON.stringify(u));e.image_generation=e.image_generation||{enabled:!1,supported_models:[],output_format:"base64"},e.image_generation.output_format||="base64",e.basic=e.basic||{},e.basic.duckmail_base_url||="https://api.duckmail.sbs",e.basic.duckmail_verify_ssl=e.basic.duckmail_verify_ssl??!0,e.basic.browser_headless=e.basic.browser_headless??!0,e.basic.refresh_window_hours=Number.isFinite(e.basic.refresh_window_hours)?e.basic.refresh_window_hours:1,e.basic.register_default_count=Number.isFinite(e.basic.register_default_count)?e.basic.register_default_count:1,e.basic.register_domain=typeof e.basic.register_domain=="string"?e.basic.register_domain:"",e.basic.duckmail_api_key=typeof e.basic.duckmail_api_key=="string"?e.basic.duckmail_api_key:"",e.retry=e.retry||{},e.retry.auto_refresh_accounts_seconds=Number.isFinite(e.retry.auto_refresh_accounts_seconds)?e.retry.auto_refresh_accounts_seconds:60,s.value=e}),j(async()=>{await p.loadSettings()});const U=async()=>{if(s.value){i.value="",b.value=!0;try{await p.updateSettings(s.value)}catch(u){i.value=u.message||"保存失败"}finally{b.value=!1}}};return(u,e)=>(n(),d("div",G,[A(k)?(n(),d("section",B," 正在加载设置... ")):(n(),d("section",C,[t("div",L,[e[23]||(e[23]=t("p",{class:"text-base font-semibold text-foreground"},"配置面板",-1)),t("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:b.value||!s.value,onClick:U}," 保存设置 ",8,q)]),i.value?(n(),d("div",I,D(i.value),1)):v("",!0),s.value?(n(),d("div",T,[t("div",$,[t("div",E,[t("div",J,[e[27]||(e[27]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"基础",-1)),t("div",R,[e[24]||(e[24]=t("label",{class:"block text-xs text-muted-foreground"},"API 密钥",-1)),r(t("input",{"onUpdate:modelValue":e[0]||(e[0]=l=>s.value.basic.api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"可选"},null,512),[[o,s.value.basic.api_key]]),e[25]||(e[25]=t("label",{class:"block text-xs text-muted-foreground"},"基础地址",-1)),r(t("input",{"onUpdate:modelValue":e[1]||(e[1]=l=>s.value.basic.base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"自动检测或手动填写"},null,512),[[o,s.value.basic.base_url]]),e[26]||(e[26]=t("label",{class:"block text-xs text-muted-foreground"},"代理地址",-1)),r(t("input",{"onUpdate:modelValue":e[2]||(e[2]=l=>s.value.basic.proxy=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"http://127.0.0.1:7890"},null,512),[[o,s.value.basic.proxy]])])]),t("div",z,[e[35]||(e[35]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"自动注册/刷新",-1)),t("div",H,[e[31]||(e[31]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API",-1)),r(t("input",{"onUpdate:modelValue":e[3]||(e[3]=l=>s.value.basic.duckmail_base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"https://api.duckmail.sbs"},null,512),[[o,s.value.basic.duckmail_base_url]]),t("div",K,[a(c,{modelValue:s.value.basic.duckmail_verify_ssl,"onUpdate:modelValue":e[4]||(e[4]=l=>s.value.basic.duckmail_verify_ssl=l)},{default:x(()=>[...e[28]||(e[28]=[g(" DuckMail SSL 校验 ",-1)])]),_:1},8,["modelValue"]),a(c,{modelValue:s.value.basic.browser_headless,"onUpdate:modelValue":e[5]||(e[5]=l=>s.value.basic.browser_headless=l),class:"w-full justify-end justify-self-end"},{default:x(()=>[...e[29]||(e[29]=[g(" 无头浏览器 ",-1)])]),_:1},8,["modelValue"])]),t("div",Q,[e[30]||(e[30]=t("span",null,"过期刷新窗口(小时)",-1)),a(y,{text:"当账号距离过期小于等于该值时,会触发自动登录刷新(更新 cookie/session)。"})]),r(t("input",{"onUpdate:modelValue":e[6]||(e[6]=l=>s.value.basic.refresh_window_hours=l),type:"number",min:"0",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.refresh_window_hours,void 0,{number:!0}]]),e[32]||(e[32]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册数量",-1)),r(t("input",{"onUpdate:modelValue":e[7]||(e[7]=l=>s.value.basic.register_default_count=l),type:"number",min:"1",max:"30",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.register_default_count,void 0,{number:!0}]]),e[33]||(e[33]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册域名(推荐)",-1)),r(t("input",{"onUpdate:modelValue":e[8]||(e[8]=l=>s.value.basic.register_domain=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"留空则自动选择"},null,512),[[o,s.value.basic.register_domain]]),e[34]||(e[34]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API 密钥",-1)),r(t("input",{"onUpdate:modelValue":e[9]||(e[9]=l=>s.value.basic.duckmail_api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"dk_xxx"},null,512),[[o,s.value.basic.duckmail_api_key]])])])]),t("div",W,[t("div",X,[e[43]||(e[43]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"重试",-1)),t("div",Y,[e[37]||(e[37]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"新会话尝试次数",-1)),r(t("input",{"onUpdate:modelValue":e[10]||(e[10]=l=>s.value.retry.max_new_session_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_new_session_tries,void 0,{number:!0}]]),e[38]||(e[38]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"请求重试次数",-1)),r(t("input",{"onUpdate:modelValue":e[11]||(e[11]=l=>s.value.retry.max_request_retries=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_request_retries,void 0,{number:!0}]]),e[39]||(e[39]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"账号切换次数",-1)),r(t("input",{"onUpdate:modelValue":e[12]||(e[12]=l=>s.value.retry.max_account_switch_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_account_switch_tries,void 0,{number:!0}]]),e[40]||(e[40]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"失败阈值",-1)),r(t("input",{"onUpdate:modelValue":e[13]||(e[13]=l=>s.value.retry.account_failure_threshold=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.account_failure_threshold,void 0,{number:!0}]]),e[41]||(e[41]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"限流冷却秒数",-1)),r(t("input",{"onUpdate:modelValue":e[14]||(e[14]=l=>s.value.retry.rate_limit_cooldown_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.rate_limit_cooldown_seconds,void 0,{number:!0}]]),e[42]||(e[42]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"会话缓存秒数",-1)),r(t("input",{"onUpdate:modelValue":e[15]||(e[15]=l=>s.value.retry.session_cache_ttl_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.session_cache_ttl_seconds,void 0,{number:!0}]]),t("div",Z,[e[36]||(e[36]=t("span",null,"自动刷新账号间隔(秒,0禁用)",-1)),a(y,{text:"仅在数据库存储启用时生效:用于检测账号配置变化并重载列表,不会刷新 cookie。文件存储模式不会触发。"})]),r(t("input",{"onUpdate:modelValue":e[16]||(e[16]=l=>s.value.retry.auto_refresh_accounts_seconds=l),type:"number",min:"0",max:"600",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.auto_refresh_accounts_seconds,void 0,{number:!0}]])])])]),t("div",h,[t("div",ee,[e[47]||(e[47]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"图像生成",-1)),t("div",te,[a(c,{modelValue:s.value.image_generation.enabled,"onUpdate:modelValue":e[17]||(e[17]=l=>s.value.image_generation.enabled=l)},{default:x(()=>[...e[44]||(e[44]=[g(" 启用图像生成 ",-1)])]),_:1},8,["modelValue"]),e[45]||(e[45]=t("label",{class:"block text-xs text-muted-foreground"},"输出格式",-1)),a(f,{modelValue:s.value.image_generation.output_format,"onUpdate:modelValue":e[18]||(e[18]=l=>s.value.image_generation.output_format=l),options:w,placement:"up",class:"w-full"},null,8,["modelValue"]),e[46]||(e[46]=t("label",{class:"block text-xs text-muted-foreground"},"支持模型",-1)),a(f,{modelValue:s.value.image_generation.supported_models,"onUpdate:modelValue":e[19]||(e[19]=l=>s.value.image_generation.supported_models=l),options:V.value,placeholder:"选择模型",placement:"up",multiple:"",class:"w-full"},null,8,["modelValue","options"])])]),t("div",se,[e[51]||(e[51]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"公开展示",-1)),t("div",le,[e[48]||(e[48]=t("label",{class:"block text-xs text-muted-foreground"},"Logo 地址",-1)),r(t("input",{"onUpdate:modelValue":e[20]||(e[20]=l=>s.value.public_display.logo_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"logo 地址"},null,512),[[o,s.value.public_display.logo_url]]),e[49]||(e[49]=t("label",{class:"block text-xs text-muted-foreground"},"聊天入口",-1)),r(t("input",{"onUpdate:modelValue":e[21]||(e[21]=l=>s.value.public_display.chat_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"聊天入口地址"},null,512),[[o,s.value.public_display.chat_url]]),e[50]||(e[50]=t("label",{class:"block text-xs text-muted-foreground"},"会话有效时长",-1)),r(t("input",{"onUpdate:modelValue":e[22]||(e[22]=l=>s.value.session.expire_hours=l),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.session.expire_hours,void 0,{number:!0}]])])]),e[52]||(e[52]=t("div",{class:"rounded-2xl border border-border bg-card p-4"},[t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"说明"),t("p",{class:"mt-4 text-sm text-muted-foreground"}," 保存后会直接写入配置文件并热更新。修改后请关注日志面板确认是否生效。 "),t("p",{class:"mt-3 text-sm text-muted-foreground"}," 自动注册/刷新默认启用,若依赖缺失会自动降级并提示。 ")],-1))])])])):v("",!0)]))]))}});export{ie as default}; diff --git a/static/assets/Settings-BaukAybX.js b/static/assets/Settings-BaukAybX.js new file mode 100644 index 0000000000000000000000000000000000000000..3b1164b62e8e8a45fa0fd5085e853a05b43bcbf4 --- /dev/null +++ b/static/assets/Settings-BaukAybX.js @@ -0,0 +1 @@ +import{d as C,D,h as x,i as M,z as O,o as j,c as d,u as F,a as t,b as _,t as G,q as o,v as r,p as u,s as g,E as A,f as c,e as n}from"./index-Dul9zA0O.js";import{u as B}from"./settings-GoayIAiR.js";import{_ as v}from"./SelectMenu.vue_vue_type_script_setup_true_lang-B6K28QJL.js";import{_ as f}from"./Checkbox.vue_vue_type_script_setup_true_lang-BzH_cd6M.js";import{_ as p}from"./HelpTip.vue_vue_type_script_setup_true_lang-ZZDQpvjn.js";const L={class:"space-y-8"},T={key:0,class:"rounded-3xl border border-border bg-card p-6 text-sm text-muted-foreground"},q={key:1,class:"rounded-3xl border border-border bg-card p-6"},E={class:"flex items-center justify-between"},I=["disabled"],$={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},J={key:1,class:"mt-6 space-y-8"},R={class:"grid gap-4 lg:grid-cols-3"},z={class:"space-y-4"},H={class:"rounded-2xl border border-border bg-card p-4"},K={class:"mt-4 space-y-3"},Q={class:"rounded-2xl border border-border bg-card p-4"},W={class:"mt-4 space-y-3"},X={class:"grid grid-cols-2 items-center gap-x-6 gap-y-2"},Y={class:"flex items-center justify-end gap-2"},Z={class:"flex items-center justify-between gap-2 text-xs text-muted-foreground"},h={class:"flex items-center justify-between gap-2 text-xs text-muted-foreground"},ee={class:"space-y-4"},te={class:"rounded-2xl border border-border bg-card p-4"},se={class:"mt-4 grid grid-cols-2 gap-3 text-sm"},le={class:"col-span-2 flex items-center justify-between gap-2 text-xs text-muted-foreground"},oe={class:"space-y-4"},re={class:"rounded-2xl border border-border bg-card p-4"},ae={class:"mt-4 space-y-3"},ue={class:"rounded-2xl border border-border bg-card p-4"},de={class:"mt-4 space-y-3"},ge=C({__name:"Settings",setup(ne){const b=B(),{settings:k,isLoading:w}=D(b),y=A(),s=x(null),m=x(!1),i=x(""),V=[{label:"UC - 支持无头/有头",value:"uc"},{label:"DP - 有头模式(推荐)",value:"dp"}],U=[{label:"Base64 编码",value:"base64"},{label:"URL 链接",value:"url"}],S=M(()=>{const a=[{label:"Gemini 3 Pro Preview",value:"gemini-3-pro-preview"},{label:"Gemini 3 Flash Preview",value:"gemini-3-flash-preview"},{label:"Gemini 2.5 Pro",value:"gemini-2.5-pro"},{label:"Gemini 2.5 Flash",value:"gemini-2.5-flash"},{label:"Gemini Auto",value:"gemini-auto"}],e=s.value?.image_generation.supported_models||[];for(const l of e)a.some(P=>P.value===l)||a.push({label:l,value:l});return a});O(k,a=>{if(!a)return;const e=JSON.parse(JSON.stringify(a));e.image_generation=e.image_generation||{enabled:!1,supported_models:[],output_format:"base64"},e.image_generation.output_format||="base64",e.basic=e.basic||{},e.basic.duckmail_base_url||="https://api.duckmail.sbs",e.basic.duckmail_verify_ssl=e.basic.duckmail_verify_ssl??!0,e.basic.browser_engine=e.basic.browser_engine||"dp",e.basic.browser_headless=e.basic.browser_headless??!1,e.basic.refresh_window_hours=Number.isFinite(e.basic.refresh_window_hours)?e.basic.refresh_window_hours:1,e.basic.register_default_count=Number.isFinite(e.basic.register_default_count)?e.basic.register_default_count:1,e.basic.register_domain=typeof e.basic.register_domain=="string"?e.basic.register_domain:"",e.basic.duckmail_api_key=typeof e.basic.duckmail_api_key=="string"?e.basic.duckmail_api_key:"",e.retry=e.retry||{},e.retry.auto_refresh_accounts_seconds=Number.isFinite(e.retry.auto_refresh_accounts_seconds)?e.retry.auto_refresh_accounts_seconds:60,s.value=e}),j(async()=>{await b.loadSettings()});const N=async()=>{if(s.value){i.value="",m.value=!0;try{await b.updateSettings(s.value),y.success("设置保存成功")}catch(a){i.value=a.message||"保存失败",y.error(a.message||"保存失败")}finally{m.value=!1}}};return(a,e)=>(n(),d("div",L,[F(w)?(n(),d("section",T," 正在加载设置... ")):(n(),d("section",q,[t("div",E,[e[24]||(e[24]=t("p",{class:"text-base font-semibold text-foreground"},"配置面板",-1)),t("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",disabled:m.value||!s.value,onClick:N}," 保存设置 ",8,I)]),i.value?(n(),d("div",$,G(i.value),1)):_("",!0),s.value?(n(),d("div",J,[t("div",R,[t("div",z,[t("div",H,[e[28]||(e[28]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"基础",-1)),t("div",K,[e[25]||(e[25]=t("label",{class:"block text-xs text-muted-foreground"},"API 密钥",-1)),o(t("input",{"onUpdate:modelValue":e[0]||(e[0]=l=>s.value.basic.api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"可选"},null,512),[[r,s.value.basic.api_key]]),e[26]||(e[26]=t("label",{class:"block text-xs text-muted-foreground"},"基础地址",-1)),o(t("input",{"onUpdate:modelValue":e[1]||(e[1]=l=>s.value.basic.base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"自动检测或手动填写"},null,512),[[r,s.value.basic.base_url]]),e[27]||(e[27]=t("label",{class:"block text-xs text-muted-foreground"},"代理地址",-1)),o(t("input",{"onUpdate:modelValue":e[2]||(e[2]=l=>s.value.basic.proxy=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"http://127.0.0.1:7890"},null,512),[[r,s.value.basic.proxy]])])]),t("div",Q,[e[37]||(e[37]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"自动注册/刷新",-1)),t("div",W,[t("div",X,[u(f,{modelValue:s.value.basic.duckmail_verify_ssl,"onUpdate:modelValue":e[3]||(e[3]=l=>s.value.basic.duckmail_verify_ssl=l)},{default:g(()=>[...e[29]||(e[29]=[c(" DuckMail SSL 校验 ",-1)])]),_:1},8,["modelValue"]),t("div",Y,[u(f,{modelValue:s.value.basic.browser_headless,"onUpdate:modelValue":e[4]||(e[4]=l=>s.value.basic.browser_headless=l),disabled:s.value.basic.browser_engine==="dp"},{default:g(()=>[...e[30]||(e[30]=[c(" 无头浏览器 ",-1)])]),_:1},8,["modelValue","disabled"]),u(p,{text:"仅 UC 引擎支持无头模式。若无头注册/刷新失败,建议关闭。"})])]),t("div",Z,[e[31]||(e[31]=t("span",null,"浏览器引擎",-1)),u(p,{text:"UC: 支持无头/有头,但可能失败。DP: 仅有头模式,更稳定,UC 失败时推荐使用。"})]),u(v,{modelValue:s.value.basic.browser_engine,"onUpdate:modelValue":e[5]||(e[5]=l=>s.value.basic.browser_engine=l),options:V,class:"w-full"},null,8,["modelValue"]),e[33]||(e[33]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API",-1)),o(t("input",{"onUpdate:modelValue":e[6]||(e[6]=l=>s.value.basic.duckmail_base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"https://api.duckmail.sbs"},null,512),[[r,s.value.basic.duckmail_base_url]]),t("div",h,[e[32]||(e[32]=t("span",null,"过期刷新窗口(小时)",-1)),u(p,{text:"当账号距离过期小于等于该值时,会触发自动登录刷新(更新 cookie/session)。"})]),o(t("input",{"onUpdate:modelValue":e[7]||(e[7]=l=>s.value.basic.refresh_window_hours=l),type:"number",min:"0",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[r,s.value.basic.refresh_window_hours,void 0,{number:!0}]]),e[34]||(e[34]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册数量",-1)),o(t("input",{"onUpdate:modelValue":e[8]||(e[8]=l=>s.value.basic.register_default_count=l),type:"number",min:"1",max:"30",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[r,s.value.basic.register_default_count,void 0,{number:!0}]]),e[35]||(e[35]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册域名(推荐)",-1)),o(t("input",{"onUpdate:modelValue":e[9]||(e[9]=l=>s.value.basic.register_domain=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"留空则自动选择"},null,512),[[r,s.value.basic.register_domain]]),e[36]||(e[36]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API 密钥",-1)),o(t("input",{"onUpdate:modelValue":e[10]||(e[10]=l=>s.value.basic.duckmail_api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"dk_xxx"},null,512),[[r,s.value.basic.duckmail_api_key]])])])]),t("div",ee,[t("div",te,[e[45]||(e[45]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"重试",-1)),t("div",se,[e[39]||(e[39]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"新会话尝试次数",-1)),o(t("input",{"onUpdate:modelValue":e[11]||(e[11]=l=>s.value.retry.max_new_session_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.max_new_session_tries,void 0,{number:!0}]]),e[40]||(e[40]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"请求重试次数",-1)),o(t("input",{"onUpdate:modelValue":e[12]||(e[12]=l=>s.value.retry.max_request_retries=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.max_request_retries,void 0,{number:!0}]]),e[41]||(e[41]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"账号切换次数",-1)),o(t("input",{"onUpdate:modelValue":e[13]||(e[13]=l=>s.value.retry.max_account_switch_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.max_account_switch_tries,void 0,{number:!0}]]),e[42]||(e[42]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"失败阈值",-1)),o(t("input",{"onUpdate:modelValue":e[14]||(e[14]=l=>s.value.retry.account_failure_threshold=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.account_failure_threshold,void 0,{number:!0}]]),e[43]||(e[43]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"限流冷却秒数",-1)),o(t("input",{"onUpdate:modelValue":e[15]||(e[15]=l=>s.value.retry.rate_limit_cooldown_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.rate_limit_cooldown_seconds,void 0,{number:!0}]]),e[44]||(e[44]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"会话缓存秒数",-1)),o(t("input",{"onUpdate:modelValue":e[16]||(e[16]=l=>s.value.retry.session_cache_ttl_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.session_cache_ttl_seconds,void 0,{number:!0}]]),t("div",le,[e[38]||(e[38]=t("span",null,"自动刷新账号间隔(秒,0禁用)",-1)),u(p,{text:"仅在数据库存储启用时生效:用于检测账号配置变化并重载列表,不会刷新 cookie。文件存储模式不会触发。"})]),o(t("input",{"onUpdate:modelValue":e[17]||(e[17]=l=>s.value.retry.auto_refresh_accounts_seconds=l),type:"number",min:"0",max:"600",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.auto_refresh_accounts_seconds,void 0,{number:!0}]])])])]),t("div",oe,[t("div",re,[e[49]||(e[49]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"图像生成",-1)),t("div",ae,[u(f,{modelValue:s.value.image_generation.enabled,"onUpdate:modelValue":e[18]||(e[18]=l=>s.value.image_generation.enabled=l)},{default:g(()=>[...e[46]||(e[46]=[c(" 启用图像生成 ",-1)])]),_:1},8,["modelValue"]),e[47]||(e[47]=t("label",{class:"block text-xs text-muted-foreground"},"输出格式",-1)),u(v,{modelValue:s.value.image_generation.output_format,"onUpdate:modelValue":e[19]||(e[19]=l=>s.value.image_generation.output_format=l),options:U,placement:"up",class:"w-full"},null,8,["modelValue"]),e[48]||(e[48]=t("label",{class:"block text-xs text-muted-foreground"},"支持模型",-1)),u(v,{modelValue:s.value.image_generation.supported_models,"onUpdate:modelValue":e[20]||(e[20]=l=>s.value.image_generation.supported_models=l),options:S.value,placeholder:"选择模型",placement:"up",multiple:"",class:"w-full"},null,8,["modelValue","options"])])]),t("div",ue,[e[53]||(e[53]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"公开展示",-1)),t("div",de,[e[50]||(e[50]=t("label",{class:"block text-xs text-muted-foreground"},"Logo 地址",-1)),o(t("input",{"onUpdate:modelValue":e[21]||(e[21]=l=>s.value.public_display.logo_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"logo 地址"},null,512),[[r,s.value.public_display.logo_url]]),e[51]||(e[51]=t("label",{class:"block text-xs text-muted-foreground"},"聊天入口",-1)),o(t("input",{"onUpdate:modelValue":e[22]||(e[22]=l=>s.value.public_display.chat_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"聊天入口地址"},null,512),[[r,s.value.public_display.chat_url]]),e[52]||(e[52]=t("label",{class:"block text-xs text-muted-foreground"},"会话有效时长",-1)),o(t("input",{"onUpdate:modelValue":e[23]||(e[23]=l=>s.value.session.expire_hours=l),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[r,s.value.session.expire_hours,void 0,{number:!0}]])])]),e[54]||(e[54]=t("div",{class:"rounded-2xl border border-border bg-card p-4"},[t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"说明"),t("p",{class:"mt-4 text-sm text-muted-foreground"}," 保存后会直接写入配置文件并热更新。修改后请关注日志面板确认是否生效。 "),t("p",{class:"mt-3 text-sm text-muted-foreground"}," 自动注册/刷新默认启用,若依赖缺失会自动降级并提示。 ")],-1))])])])):_("",!0)]))]))}});export{ge as default}; diff --git a/static/assets/Settings-CAoCANb4.js b/static/assets/Settings-CAoCANb4.js new file mode 100644 index 0000000000000000000000000000000000000000..7cef93bebb4bb34232a39fa5521f26dea38f667e --- /dev/null +++ b/static/assets/Settings-CAoCANb4.js @@ -0,0 +1 @@ +import{d as S,D as N,h as m,i as M,s as O,o as P,c as d,u as D,a as t,b as c,t as F,m as o,v as l,x as a,A as x,f as g,e as n}from"./index-Babp7OwB.js";import{u as G}from"./settings-AxgaqgWn.js";import{_ as f}from"./SelectMenu.vue_vue_type_script_setup_true_lang-BVzlIq4n.js";import{_ as v}from"./Checkbox.vue_vue_type_script_setup_true_lang-566L0Qi-.js";const A={class:"space-y-8"},B={key:0,class:"rounded-3xl border border-border bg-card p-6 text-sm text-muted-foreground"},C={key:1,class:"rounded-3xl border border-border bg-card p-6"},L={class:"flex items-center justify-between"},T=["disabled"],q={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},I={key:1,class:"mt-6 space-y-8"},J={class:"grid gap-4 lg:grid-cols-3"},R={class:"space-y-4"},$={class:"rounded-2xl border border-border bg-card p-4"},j={class:"mt-4 space-y-3"},E={class:"rounded-2xl border border-border bg-card p-4"},z={class:"mt-4 space-y-3"},H={class:"rounded-2xl border border-border bg-card p-4"},K={class:"mt-4 space-y-3"},Q={class:"rounded-2xl border border-border bg-card p-4"},W={class:"mt-4 grid grid-cols-2 gap-3 text-sm"},X={class:"space-y-4"},Y={class:"rounded-2xl border border-border bg-card p-4"},Z={class:"mt-4 space-y-3"},oe=S({__name:"Settings",setup(h){const p=G(),{settings:y,isLoading:_}=N(p),s=m(null),b=m(!1),i=m(""),k=[{label:"Base64 编码",value:"base64"},{label:"URL 链接",value:"url"}],w=M(()=>{const u=[{label:"Gemini 3 Pro Preview",value:"gemini-3-pro-preview"},{label:"Gemini 3 Flash Preview",value:"gemini-3-flash-preview"},{label:"Gemini 2.5 Pro",value:"gemini-2.5-pro"},{label:"Gemini 2.5 Flash",value:"gemini-2.5-flash"},{label:"Gemini Auto",value:"gemini-auto"}],e=s.value?.image_generation.supported_models||[];for(const r of e)u.some(U=>U.value===r)||u.push({label:r,value:r});return u});O(y,u=>{if(!u)return;const e=JSON.parse(JSON.stringify(u));e.image_generation=e.image_generation||{enabled:!1,supported_models:[],output_format:"base64"},e.image_generation.output_format||="base64",e.basic=e.basic||{},e.basic.duckmail_base_url||="https://api.duckmail.sbs",e.basic.duckmail_verify_ssl=e.basic.duckmail_verify_ssl??!0,e.basic.browser_headless=e.basic.browser_headless??!0,e.basic.refresh_window_hours=Number.isFinite(e.basic.refresh_window_hours)?e.basic.refresh_window_hours:1,e.basic.register_default_count=Number.isFinite(e.basic.register_default_count)?e.basic.register_default_count:1,e.basic.register_domain=typeof e.basic.register_domain=="string"?e.basic.register_domain:"",e.retry=e.retry||{},e.retry.auto_refresh_accounts_seconds=Number.isFinite(e.retry.auto_refresh_accounts_seconds)?e.retry.auto_refresh_accounts_seconds:60,s.value=e}),P(async()=>{await p.loadSettings()});const V=async()=>{if(s.value){i.value="",b.value=!0;try{await p.updateSettings(s.value)}catch(u){i.value=u.message||"保存失败"}finally{b.value=!1}}};return(u,e)=>(n(),d("div",A,[D(_)?(n(),d("section",B," 正在加载设置... ")):(n(),d("section",C,[t("div",L,[e[22]||(e[22]=t("p",{class:"text-base font-semibold text-foreground"},"配置面板",-1)),t("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:b.value||!s.value,onClick:V}," 保存设置 ",8,T)]),i.value?(n(),d("div",q,F(i.value),1)):c("",!0),s.value?(n(),d("div",I,[t("div",J,[t("div",R,[t("div",$,[e[26]||(e[26]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"基础",-1)),t("div",j,[e[23]||(e[23]=t("label",{class:"block text-xs text-muted-foreground"},"API 密钥",-1)),o(t("input",{"onUpdate:modelValue":e[0]||(e[0]=r=>s.value.basic.api_key=r),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"可选"},null,512),[[l,s.value.basic.api_key]]),e[24]||(e[24]=t("label",{class:"block text-xs text-muted-foreground"},"基础地址",-1)),o(t("input",{"onUpdate:modelValue":e[1]||(e[1]=r=>s.value.basic.base_url=r),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"自动检测或手动填写"},null,512),[[l,s.value.basic.base_url]]),e[25]||(e[25]=t("label",{class:"block text-xs text-muted-foreground"},"代理地址",-1)),o(t("input",{"onUpdate:modelValue":e[2]||(e[2]=r=>s.value.basic.proxy=r),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"http://127.0.0.1:7890"},null,512),[[l,s.value.basic.proxy]])])]),t("div",E,[e[33]||(e[33]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"自动注册/刷新",-1)),t("div",z,[e[29]||(e[29]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API",-1)),o(t("input",{"onUpdate:modelValue":e[3]||(e[3]=r=>s.value.basic.duckmail_base_url=r),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"https://api.duckmail.sbs"},null,512),[[l,s.value.basic.duckmail_base_url]]),a(v,{modelValue:s.value.basic.duckmail_verify_ssl,"onUpdate:modelValue":e[4]||(e[4]=r=>s.value.basic.duckmail_verify_ssl=r)},{default:x(()=>[...e[27]||(e[27]=[g(" DuckMail SSL 校验 ",-1)])]),_:1},8,["modelValue"]),a(v,{modelValue:s.value.basic.browser_headless,"onUpdate:modelValue":e[5]||(e[5]=r=>s.value.basic.browser_headless=r)},{default:x(()=>[...e[28]||(e[28]=[g(" 无头浏览器 ",-1)])]),_:1},8,["modelValue"]),e[30]||(e[30]=t("label",{class:"block text-xs text-muted-foreground"},"过期刷新窗口(小时)",-1)),o(t("input",{"onUpdate:modelValue":e[6]||(e[6]=r=>s.value.basic.refresh_window_hours=r),type:"number",min:"0",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[l,s.value.basic.refresh_window_hours,void 0,{number:!0}]]),e[31]||(e[31]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册数量",-1)),o(t("input",{"onUpdate:modelValue":e[7]||(e[7]=r=>s.value.basic.register_default_count=r),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[l,s.value.basic.register_default_count,void 0,{number:!0}]]),e[32]||(e[32]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册域名",-1)),o(t("input",{"onUpdate:modelValue":e[8]||(e[8]=r=>s.value.basic.register_domain=r),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"留空则自动选择"},null,512),[[l,s.value.basic.register_domain]])])]),t("div",H,[e[37]||(e[37]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"图像生成",-1)),t("div",K,[a(v,{modelValue:s.value.image_generation.enabled,"onUpdate:modelValue":e[9]||(e[9]=r=>s.value.image_generation.enabled=r)},{default:x(()=>[...e[34]||(e[34]=[g(" 启用图像生成 ",-1)])]),_:1},8,["modelValue"]),e[35]||(e[35]=t("label",{class:"block text-xs text-muted-foreground"},"输出格式",-1)),a(f,{modelValue:s.value.image_generation.output_format,"onUpdate:modelValue":e[10]||(e[10]=r=>s.value.image_generation.output_format=r),options:k,placement:"up"},null,8,["modelValue"]),e[36]||(e[36]=t("label",{class:"block text-xs text-muted-foreground"},"支持模型",-1)),a(f,{modelValue:s.value.image_generation.supported_models,"onUpdate:modelValue":e[11]||(e[11]=r=>s.value.image_generation.supported_models=r),options:w.value,placeholder:"选择模型",placement:"up",multiple:""},null,8,["modelValue","options"])])])]),t("div",Q,[e[45]||(e[45]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"重试",-1)),t("div",W,[e[38]||(e[38]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"新会话尝试次数",-1)),o(t("input",{"onUpdate:modelValue":e[12]||(e[12]=r=>s.value.retry.max_new_session_tries=r),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[l,s.value.retry.max_new_session_tries,void 0,{number:!0}]]),e[39]||(e[39]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"请求重试次数",-1)),o(t("input",{"onUpdate:modelValue":e[13]||(e[13]=r=>s.value.retry.max_request_retries=r),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[l,s.value.retry.max_request_retries,void 0,{number:!0}]]),e[40]||(e[40]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"账号切换次数",-1)),o(t("input",{"onUpdate:modelValue":e[14]||(e[14]=r=>s.value.retry.max_account_switch_tries=r),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[l,s.value.retry.max_account_switch_tries,void 0,{number:!0}]]),e[41]||(e[41]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"失败阈值",-1)),o(t("input",{"onUpdate:modelValue":e[15]||(e[15]=r=>s.value.retry.account_failure_threshold=r),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[l,s.value.retry.account_failure_threshold,void 0,{number:!0}]]),e[42]||(e[42]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"限流冷却秒数",-1)),o(t("input",{"onUpdate:modelValue":e[16]||(e[16]=r=>s.value.retry.rate_limit_cooldown_seconds=r),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[l,s.value.retry.rate_limit_cooldown_seconds,void 0,{number:!0}]]),e[43]||(e[43]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"会话缓存秒数",-1)),o(t("input",{"onUpdate:modelValue":e[17]||(e[17]=r=>s.value.retry.session_cache_ttl_seconds=r),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[l,s.value.retry.session_cache_ttl_seconds,void 0,{number:!0}]]),e[44]||(e[44]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"自动刷新账号间隔(秒,0禁用)",-1)),o(t("input",{"onUpdate:modelValue":e[18]||(e[18]=r=>s.value.retry.auto_refresh_accounts_seconds=r),type:"number",min:"0",max:"600",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[l,s.value.retry.auto_refresh_accounts_seconds,void 0,{number:!0}]])])]),t("div",X,[t("div",Y,[e[49]||(e[49]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"公开展示",-1)),t("div",Z,[e[46]||(e[46]=t("label",{class:"block text-xs text-muted-foreground"},"Logo 地址",-1)),o(t("input",{"onUpdate:modelValue":e[19]||(e[19]=r=>s.value.public_display.logo_url=r),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"logo 地址"},null,512),[[l,s.value.public_display.logo_url]]),e[47]||(e[47]=t("label",{class:"block text-xs text-muted-foreground"},"聊天入口",-1)),o(t("input",{"onUpdate:modelValue":e[20]||(e[20]=r=>s.value.public_display.chat_url=r),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"聊天入口地址"},null,512),[[l,s.value.public_display.chat_url]]),e[48]||(e[48]=t("label",{class:"block text-xs text-muted-foreground"},"会话有效时长",-1)),o(t("input",{"onUpdate:modelValue":e[21]||(e[21]=r=>s.value.session.expire_hours=r),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[l,s.value.session.expire_hours,void 0,{number:!0}]])])]),e[50]||(e[50]=t("div",{class:"rounded-2xl border border-border bg-card p-4"},[t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"说明"),t("p",{class:"mt-4 text-sm text-muted-foreground"}," 保存后会直接写入配置文件并热更新。修改后请关注日志面板确认是否生效。 "),t("p",{class:"mt-3 text-sm text-muted-foreground"}," 自动注册/刷新默认启用,若依赖缺失会自动降级并提示。 ")],-1))])])])):c("",!0)]))]))}});export{oe as default}; diff --git a/static/assets/Settings-CJmrMQ40.js b/static/assets/Settings-CJmrMQ40.js new file mode 100644 index 0000000000000000000000000000000000000000..6623a06a446cd5a7231a339af92ff19103f53578 --- /dev/null +++ b/static/assets/Settings-CJmrMQ40.js @@ -0,0 +1 @@ +import{d as M,D as P,h as m,i as D,z as O,o as F,c as d,u as G,a as t,b as y,t as j,q as l,v as o,p as a,s as x,E as A,f as g,e as n}from"./index-BCQxBeUo.js";import{u as B}from"./settings-2nHuz2zg.js";import{_}from"./SelectMenu.vue_vue_type_script_setup_true_lang-SHDMWwbQ.js";import{_ as c}from"./Checkbox.vue_vue_type_script_setup_true_lang-12Ygc6BR.js";import{_ as v}from"./HelpTip.vue_vue_type_script_setup_true_lang-32PHHvO_.js";const C={class:"space-y-8"},L={key:0,class:"rounded-3xl border border-border bg-card p-6 text-sm text-muted-foreground"},T={key:1,class:"rounded-3xl border border-border bg-card p-6"},q={class:"flex items-center justify-between"},I=["disabled"],$={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},E={key:1,class:"mt-6 space-y-8"},J={class:"grid gap-4 lg:grid-cols-3"},R={class:"space-y-4"},z={class:"rounded-2xl border border-border bg-card p-4"},H={class:"mt-4 space-y-3"},K={class:"rounded-2xl border border-border bg-card p-4"},Q={class:"mt-4 space-y-3"},W={class:"grid grid-cols-2 items-center gap-x-6 gap-y-2"},X={class:"flex items-center justify-end gap-2"},Y={class:"flex items-center justify-between gap-2 text-xs text-muted-foreground"},Z={class:"space-y-4"},h={class:"rounded-2xl border border-border bg-card p-4"},ee={class:"mt-4 grid grid-cols-2 gap-3 text-sm"},te={class:"col-span-2 flex items-center justify-between gap-2 text-xs text-muted-foreground"},se={class:"space-y-4"},re={class:"rounded-2xl border border-border bg-card p-4"},le={class:"mt-4 space-y-3"},oe={class:"rounded-2xl border border-border bg-card p-4"},ue={class:"mt-4 space-y-3"},me=M({__name:"Settings",setup(ae){const p=B(),{settings:k,isLoading:w}=P(p),f=A(),s=m(null),b=m(!1),i=m(""),V=[{label:"Base64 编码",value:"base64"},{label:"URL 链接",value:"url"}],U=D(()=>{const u=[{label:"Gemini 3 Pro Preview",value:"gemini-3-pro-preview"},{label:"Gemini 3 Flash Preview",value:"gemini-3-flash-preview"},{label:"Gemini 2.5 Pro",value:"gemini-2.5-pro"},{label:"Gemini 2.5 Flash",value:"gemini-2.5-flash"},{label:"Gemini Auto",value:"gemini-auto"}],e=s.value?.image_generation.supported_models||[];for(const r of e)u.some(N=>N.value===r)||u.push({label:r,value:r});return u});O(k,u=>{if(!u)return;const e=JSON.parse(JSON.stringify(u));e.image_generation=e.image_generation||{enabled:!1,supported_models:[],output_format:"base64"},e.image_generation.output_format||="base64",e.basic=e.basic||{},e.basic.duckmail_base_url||="https://api.duckmail.sbs",e.basic.duckmail_verify_ssl=e.basic.duckmail_verify_ssl??!0,e.basic.browser_headless=e.basic.browser_headless??!0,e.basic.refresh_window_hours=Number.isFinite(e.basic.refresh_window_hours)?e.basic.refresh_window_hours:1,e.basic.register_default_count=Number.isFinite(e.basic.register_default_count)?e.basic.register_default_count:1,e.basic.register_domain=typeof e.basic.register_domain=="string"?e.basic.register_domain:"",e.basic.duckmail_api_key=typeof e.basic.duckmail_api_key=="string"?e.basic.duckmail_api_key:"",e.retry=e.retry||{},e.retry.auto_refresh_accounts_seconds=Number.isFinite(e.retry.auto_refresh_accounts_seconds)?e.retry.auto_refresh_accounts_seconds:60,s.value=e}),F(async()=>{await p.loadSettings()});const S=async()=>{if(s.value){i.value="",b.value=!0;try{await p.updateSettings(s.value),f.success("设置保存成功")}catch(u){i.value=u.message||"保存失败",f.error(u.message||"保存失败")}finally{b.value=!1}}};return(u,e)=>(n(),d("div",C,[G(w)?(n(),d("section",L," 正在加载设置... ")):(n(),d("section",T,[t("div",q,[e[23]||(e[23]=t("p",{class:"text-base font-semibold text-foreground"},"配置面板",-1)),t("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",disabled:b.value||!s.value,onClick:S}," 保存设置 ",8,I)]),i.value?(n(),d("div",$,j(i.value),1)):y("",!0),s.value?(n(),d("div",E,[t("div",J,[t("div",R,[t("div",z,[e[27]||(e[27]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"基础",-1)),t("div",H,[e[24]||(e[24]=t("label",{class:"block text-xs text-muted-foreground"},"API 密钥",-1)),l(t("input",{"onUpdate:modelValue":e[0]||(e[0]=r=>s.value.basic.api_key=r),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"可选"},null,512),[[o,s.value.basic.api_key]]),e[25]||(e[25]=t("label",{class:"block text-xs text-muted-foreground"},"基础地址",-1)),l(t("input",{"onUpdate:modelValue":e[1]||(e[1]=r=>s.value.basic.base_url=r),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"自动检测或手动填写"},null,512),[[o,s.value.basic.base_url]]),e[26]||(e[26]=t("label",{class:"block text-xs text-muted-foreground"},"代理地址",-1)),l(t("input",{"onUpdate:modelValue":e[2]||(e[2]=r=>s.value.basic.proxy=r),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"http://127.0.0.1:7890"},null,512),[[o,s.value.basic.proxy]])])]),t("div",K,[e[35]||(e[35]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"自动注册/刷新",-1)),t("div",Q,[e[31]||(e[31]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API",-1)),l(t("input",{"onUpdate:modelValue":e[3]||(e[3]=r=>s.value.basic.duckmail_base_url=r),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"https://api.duckmail.sbs"},null,512),[[o,s.value.basic.duckmail_base_url]]),t("div",W,[a(c,{modelValue:s.value.basic.duckmail_verify_ssl,"onUpdate:modelValue":e[4]||(e[4]=r=>s.value.basic.duckmail_verify_ssl=r)},{default:x(()=>[...e[28]||(e[28]=[g(" DuckMail SSL 校验 ",-1)])]),_:1},8,["modelValue"]),t("div",X,[a(c,{modelValue:s.value.basic.browser_headless,"onUpdate:modelValue":e[5]||(e[5]=r=>s.value.basic.browser_headless=r)},{default:x(()=>[...e[29]||(e[29]=[g(" 无头浏览器 ",-1)])]),_:1},8,["modelValue"]),a(v,{text:"若无头注册/刷新失败,建议关闭。"})])]),t("div",Y,[e[30]||(e[30]=t("span",null,"过期刷新窗口(小时)",-1)),a(v,{text:"当账号距离过期小于等于该值时,会触发自动登录刷新(更新 cookie/session)。"})]),l(t("input",{"onUpdate:modelValue":e[6]||(e[6]=r=>s.value.basic.refresh_window_hours=r),type:"number",min:"0",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.refresh_window_hours,void 0,{number:!0}]]),e[32]||(e[32]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册数量",-1)),l(t("input",{"onUpdate:modelValue":e[7]||(e[7]=r=>s.value.basic.register_default_count=r),type:"number",min:"1",max:"30",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.register_default_count,void 0,{number:!0}]]),e[33]||(e[33]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册域名(推荐)",-1)),l(t("input",{"onUpdate:modelValue":e[8]||(e[8]=r=>s.value.basic.register_domain=r),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"留空则自动选择"},null,512),[[o,s.value.basic.register_domain]]),e[34]||(e[34]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API 密钥",-1)),l(t("input",{"onUpdate:modelValue":e[9]||(e[9]=r=>s.value.basic.duckmail_api_key=r),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"dk_xxx"},null,512),[[o,s.value.basic.duckmail_api_key]])])])]),t("div",Z,[t("div",h,[e[43]||(e[43]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"重试",-1)),t("div",ee,[e[37]||(e[37]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"新会话尝试次数",-1)),l(t("input",{"onUpdate:modelValue":e[10]||(e[10]=r=>s.value.retry.max_new_session_tries=r),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_new_session_tries,void 0,{number:!0}]]),e[38]||(e[38]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"请求重试次数",-1)),l(t("input",{"onUpdate:modelValue":e[11]||(e[11]=r=>s.value.retry.max_request_retries=r),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_request_retries,void 0,{number:!0}]]),e[39]||(e[39]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"账号切换次数",-1)),l(t("input",{"onUpdate:modelValue":e[12]||(e[12]=r=>s.value.retry.max_account_switch_tries=r),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_account_switch_tries,void 0,{number:!0}]]),e[40]||(e[40]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"失败阈值",-1)),l(t("input",{"onUpdate:modelValue":e[13]||(e[13]=r=>s.value.retry.account_failure_threshold=r),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.account_failure_threshold,void 0,{number:!0}]]),e[41]||(e[41]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"限流冷却秒数",-1)),l(t("input",{"onUpdate:modelValue":e[14]||(e[14]=r=>s.value.retry.rate_limit_cooldown_seconds=r),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.rate_limit_cooldown_seconds,void 0,{number:!0}]]),e[42]||(e[42]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"会话缓存秒数",-1)),l(t("input",{"onUpdate:modelValue":e[15]||(e[15]=r=>s.value.retry.session_cache_ttl_seconds=r),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.session_cache_ttl_seconds,void 0,{number:!0}]]),t("div",te,[e[36]||(e[36]=t("span",null,"自动刷新账号间隔(秒,0禁用)",-1)),a(v,{text:"仅在数据库存储启用时生效:用于检测账号配置变化并重载列表,不会刷新 cookie。文件存储模式不会触发。"})]),l(t("input",{"onUpdate:modelValue":e[16]||(e[16]=r=>s.value.retry.auto_refresh_accounts_seconds=r),type:"number",min:"0",max:"600",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.auto_refresh_accounts_seconds,void 0,{number:!0}]])])])]),t("div",se,[t("div",re,[e[47]||(e[47]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"图像生成",-1)),t("div",le,[a(c,{modelValue:s.value.image_generation.enabled,"onUpdate:modelValue":e[17]||(e[17]=r=>s.value.image_generation.enabled=r)},{default:x(()=>[...e[44]||(e[44]=[g(" 启用图像生成 ",-1)])]),_:1},8,["modelValue"]),e[45]||(e[45]=t("label",{class:"block text-xs text-muted-foreground"},"输出格式",-1)),a(_,{modelValue:s.value.image_generation.output_format,"onUpdate:modelValue":e[18]||(e[18]=r=>s.value.image_generation.output_format=r),options:V,placement:"up",class:"w-full"},null,8,["modelValue"]),e[46]||(e[46]=t("label",{class:"block text-xs text-muted-foreground"},"支持模型",-1)),a(_,{modelValue:s.value.image_generation.supported_models,"onUpdate:modelValue":e[19]||(e[19]=r=>s.value.image_generation.supported_models=r),options:U.value,placeholder:"选择模型",placement:"up",multiple:"",class:"w-full"},null,8,["modelValue","options"])])]),t("div",oe,[e[51]||(e[51]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"公开展示",-1)),t("div",ue,[e[48]||(e[48]=t("label",{class:"block text-xs text-muted-foreground"},"Logo 地址",-1)),l(t("input",{"onUpdate:modelValue":e[20]||(e[20]=r=>s.value.public_display.logo_url=r),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"logo 地址"},null,512),[[o,s.value.public_display.logo_url]]),e[49]||(e[49]=t("label",{class:"block text-xs text-muted-foreground"},"聊天入口",-1)),l(t("input",{"onUpdate:modelValue":e[21]||(e[21]=r=>s.value.public_display.chat_url=r),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"聊天入口地址"},null,512),[[o,s.value.public_display.chat_url]]),e[50]||(e[50]=t("label",{class:"block text-xs text-muted-foreground"},"会话有效时长",-1)),l(t("input",{"onUpdate:modelValue":e[22]||(e[22]=r=>s.value.session.expire_hours=r),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.session.expire_hours,void 0,{number:!0}]])])]),e[52]||(e[52]=t("div",{class:"rounded-2xl border border-border bg-card p-4"},[t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"说明"),t("p",{class:"mt-4 text-sm text-muted-foreground"}," 保存后会直接写入配置文件并热更新。修改后请关注日志面板确认是否生效。 "),t("p",{class:"mt-3 text-sm text-muted-foreground"}," 自动注册/刷新默认启用,若依赖缺失会自动降级并提示。 ")],-1))])])])):y("",!0)]))]))}});export{me as default}; diff --git a/static/assets/Settings-CR5z3sBt.js b/static/assets/Settings-CR5z3sBt.js new file mode 100644 index 0000000000000000000000000000000000000000..a159f683e780b6cd3538502c27cfd2a40ba25403 --- /dev/null +++ b/static/assets/Settings-CR5z3sBt.js @@ -0,0 +1 @@ +import{d as N,E as M,h as m,i as P,A as O,o as j,c as d,u as A,a as t,b as v,t as D,q as r,v as o,p as a,s as x,f as g,e as n}from"./index-OP3F9IRB.js";import{u as F}from"./settings-DVwbsbgP.js";import{_ as f}from"./SelectMenu.vue_vue_type_script_setup_true_lang-BN7xX40H.js";import{_ as c}from"./Checkbox.vue_vue_type_script_setup_true_lang-aBWvRhQv.js";import{_ as y}from"./HelpTip.vue_vue_type_script_setup_true_lang-CpmAUbfQ.js";const G={class:"space-y-8"},B={key:0,class:"rounded-3xl border border-border bg-card p-6 text-sm text-muted-foreground"},C={key:1,class:"rounded-3xl border border-border bg-card p-6"},L={class:"flex items-center justify-between"},q=["disabled"],I={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},T={key:1,class:"mt-6 space-y-8"},$={class:"grid gap-4 lg:grid-cols-3"},E={class:"space-y-4"},J={class:"rounded-2xl border border-border bg-card p-4"},R={class:"mt-4 space-y-3"},z={class:"rounded-2xl border border-border bg-card p-4"},H={class:"mt-4 space-y-3"},K={class:"grid grid-cols-2 items-center gap-x-6 gap-y-2"},Q={class:"flex items-center justify-between gap-2 text-xs text-muted-foreground"},W={class:"space-y-4"},X={class:"rounded-2xl border border-border bg-card p-4"},Y={class:"mt-4 grid grid-cols-2 gap-3 text-sm"},Z={class:"col-span-2 flex items-center justify-between gap-2 text-xs text-muted-foreground"},h={class:"space-y-4"},ee={class:"rounded-2xl border border-border bg-card p-4"},te={class:"mt-4 space-y-3"},se={class:"rounded-2xl border border-border bg-card p-4"},le={class:"mt-4 space-y-3"},ie=N({__name:"Settings",setup(re){const p=F(),{settings:_,isLoading:k}=M(p),s=m(null),b=m(!1),i=m(""),w=[{label:"Base64 编码",value:"base64"},{label:"URL 链接",value:"url"}],V=P(()=>{const u=[{label:"Gemini 3 Pro Preview",value:"gemini-3-pro-preview"},{label:"Gemini 3 Flash Preview",value:"gemini-3-flash-preview"},{label:"Gemini 2.5 Pro",value:"gemini-2.5-pro"},{label:"Gemini 2.5 Flash",value:"gemini-2.5-flash"},{label:"Gemini Auto",value:"gemini-auto"}],e=s.value?.image_generation.supported_models||[];for(const l of e)u.some(S=>S.value===l)||u.push({label:l,value:l});return u});O(_,u=>{if(!u)return;const e=JSON.parse(JSON.stringify(u));e.image_generation=e.image_generation||{enabled:!1,supported_models:[],output_format:"base64"},e.image_generation.output_format||="base64",e.basic=e.basic||{},e.basic.duckmail_base_url||="https://api.duckmail.sbs",e.basic.duckmail_verify_ssl=e.basic.duckmail_verify_ssl??!0,e.basic.browser_headless=e.basic.browser_headless??!0,e.basic.refresh_window_hours=Number.isFinite(e.basic.refresh_window_hours)?e.basic.refresh_window_hours:1,e.basic.register_default_count=Number.isFinite(e.basic.register_default_count)?e.basic.register_default_count:1,e.basic.register_domain=typeof e.basic.register_domain=="string"?e.basic.register_domain:"",e.basic.duckmail_api_key=typeof e.basic.duckmail_api_key=="string"?e.basic.duckmail_api_key:"",e.retry=e.retry||{},e.retry.auto_refresh_accounts_seconds=Number.isFinite(e.retry.auto_refresh_accounts_seconds)?e.retry.auto_refresh_accounts_seconds:60,s.value=e}),j(async()=>{await p.loadSettings()});const U=async()=>{if(s.value){i.value="",b.value=!0;try{await p.updateSettings(s.value)}catch(u){i.value=u.message||"保存失败"}finally{b.value=!1}}};return(u,e)=>(n(),d("div",G,[A(k)?(n(),d("section",B," 正在加载设置... ")):(n(),d("section",C,[t("div",L,[e[23]||(e[23]=t("p",{class:"text-base font-semibold text-foreground"},"配置面板",-1)),t("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:b.value||!s.value,onClick:U}," 保存设置 ",8,q)]),i.value?(n(),d("div",I,D(i.value),1)):v("",!0),s.value?(n(),d("div",T,[t("div",$,[t("div",E,[t("div",J,[e[27]||(e[27]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"基础",-1)),t("div",R,[e[24]||(e[24]=t("label",{class:"block text-xs text-muted-foreground"},"API 密钥",-1)),r(t("input",{"onUpdate:modelValue":e[0]||(e[0]=l=>s.value.basic.api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"可选"},null,512),[[o,s.value.basic.api_key]]),e[25]||(e[25]=t("label",{class:"block text-xs text-muted-foreground"},"基础地址",-1)),r(t("input",{"onUpdate:modelValue":e[1]||(e[1]=l=>s.value.basic.base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"自动检测或手动填写"},null,512),[[o,s.value.basic.base_url]]),e[26]||(e[26]=t("label",{class:"block text-xs text-muted-foreground"},"代理地址",-1)),r(t("input",{"onUpdate:modelValue":e[2]||(e[2]=l=>s.value.basic.proxy=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"http://127.0.0.1:7890"},null,512),[[o,s.value.basic.proxy]])])]),t("div",z,[e[35]||(e[35]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"自动注册/刷新",-1)),t("div",H,[e[31]||(e[31]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API",-1)),r(t("input",{"onUpdate:modelValue":e[3]||(e[3]=l=>s.value.basic.duckmail_base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"https://api.duckmail.sbs"},null,512),[[o,s.value.basic.duckmail_base_url]]),t("div",K,[a(c,{modelValue:s.value.basic.duckmail_verify_ssl,"onUpdate:modelValue":e[4]||(e[4]=l=>s.value.basic.duckmail_verify_ssl=l)},{default:x(()=>[...e[28]||(e[28]=[g(" DuckMail SSL 校验 ",-1)])]),_:1},8,["modelValue"]),a(c,{modelValue:s.value.basic.browser_headless,"onUpdate:modelValue":e[5]||(e[5]=l=>s.value.basic.browser_headless=l),class:"w-full justify-end justify-self-end"},{default:x(()=>[...e[29]||(e[29]=[g(" 无头浏览器 ",-1)])]),_:1},8,["modelValue"])]),t("div",Q,[e[30]||(e[30]=t("span",null,"过期刷新窗口(小时)",-1)),a(y,{text:"当账号距离过期小于等于该值时,会触发自动登录刷新(更新 cookie/session)。"})]),r(t("input",{"onUpdate:modelValue":e[6]||(e[6]=l=>s.value.basic.refresh_window_hours=l),type:"number",min:"0",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.refresh_window_hours,void 0,{number:!0}]]),e[32]||(e[32]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册数量",-1)),r(t("input",{"onUpdate:modelValue":e[7]||(e[7]=l=>s.value.basic.register_default_count=l),type:"number",min:"1",max:"30",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.register_default_count,void 0,{number:!0}]]),e[33]||(e[33]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册域名(推荐)",-1)),r(t("input",{"onUpdate:modelValue":e[8]||(e[8]=l=>s.value.basic.register_domain=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"留空则自动选择"},null,512),[[o,s.value.basic.register_domain]]),e[34]||(e[34]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API 密钥",-1)),r(t("input",{"onUpdate:modelValue":e[9]||(e[9]=l=>s.value.basic.duckmail_api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"dk_xxx"},null,512),[[o,s.value.basic.duckmail_api_key]])])])]),t("div",W,[t("div",X,[e[43]||(e[43]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"重试",-1)),t("div",Y,[e[37]||(e[37]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"新会话尝试次数",-1)),r(t("input",{"onUpdate:modelValue":e[10]||(e[10]=l=>s.value.retry.max_new_session_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_new_session_tries,void 0,{number:!0}]]),e[38]||(e[38]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"请求重试次数",-1)),r(t("input",{"onUpdate:modelValue":e[11]||(e[11]=l=>s.value.retry.max_request_retries=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_request_retries,void 0,{number:!0}]]),e[39]||(e[39]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"账号切换次数",-1)),r(t("input",{"onUpdate:modelValue":e[12]||(e[12]=l=>s.value.retry.max_account_switch_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_account_switch_tries,void 0,{number:!0}]]),e[40]||(e[40]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"失败阈值",-1)),r(t("input",{"onUpdate:modelValue":e[13]||(e[13]=l=>s.value.retry.account_failure_threshold=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.account_failure_threshold,void 0,{number:!0}]]),e[41]||(e[41]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"限流冷却秒数",-1)),r(t("input",{"onUpdate:modelValue":e[14]||(e[14]=l=>s.value.retry.rate_limit_cooldown_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.rate_limit_cooldown_seconds,void 0,{number:!0}]]),e[42]||(e[42]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"会话缓存秒数",-1)),r(t("input",{"onUpdate:modelValue":e[15]||(e[15]=l=>s.value.retry.session_cache_ttl_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.session_cache_ttl_seconds,void 0,{number:!0}]]),t("div",Z,[e[36]||(e[36]=t("span",null,"自动刷新账号间隔(秒,0禁用)",-1)),a(y,{text:"仅在数据库存储启用时生效:用于检测账号配置变化并重载列表,不会刷新 cookie。文件存储模式不会触发。"})]),r(t("input",{"onUpdate:modelValue":e[16]||(e[16]=l=>s.value.retry.auto_refresh_accounts_seconds=l),type:"number",min:"0",max:"600",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.auto_refresh_accounts_seconds,void 0,{number:!0}]])])])]),t("div",h,[t("div",ee,[e[47]||(e[47]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"图像生成",-1)),t("div",te,[a(c,{modelValue:s.value.image_generation.enabled,"onUpdate:modelValue":e[17]||(e[17]=l=>s.value.image_generation.enabled=l)},{default:x(()=>[...e[44]||(e[44]=[g(" 启用图像生成 ",-1)])]),_:1},8,["modelValue"]),e[45]||(e[45]=t("label",{class:"block text-xs text-muted-foreground"},"输出格式",-1)),a(f,{modelValue:s.value.image_generation.output_format,"onUpdate:modelValue":e[18]||(e[18]=l=>s.value.image_generation.output_format=l),options:w,placement:"up",class:"w-full"},null,8,["modelValue"]),e[46]||(e[46]=t("label",{class:"block text-xs text-muted-foreground"},"支持模型",-1)),a(f,{modelValue:s.value.image_generation.supported_models,"onUpdate:modelValue":e[19]||(e[19]=l=>s.value.image_generation.supported_models=l),options:V.value,placeholder:"选择模型",placement:"up",multiple:"",class:"w-full"},null,8,["modelValue","options"])])]),t("div",se,[e[51]||(e[51]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"公开展示",-1)),t("div",le,[e[48]||(e[48]=t("label",{class:"block text-xs text-muted-foreground"},"Logo 地址",-1)),r(t("input",{"onUpdate:modelValue":e[20]||(e[20]=l=>s.value.public_display.logo_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"logo 地址"},null,512),[[o,s.value.public_display.logo_url]]),e[49]||(e[49]=t("label",{class:"block text-xs text-muted-foreground"},"聊天入口",-1)),r(t("input",{"onUpdate:modelValue":e[21]||(e[21]=l=>s.value.public_display.chat_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"聊天入口地址"},null,512),[[o,s.value.public_display.chat_url]]),e[50]||(e[50]=t("label",{class:"block text-xs text-muted-foreground"},"会话有效时长",-1)),r(t("input",{"onUpdate:modelValue":e[22]||(e[22]=l=>s.value.session.expire_hours=l),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.session.expire_hours,void 0,{number:!0}]])])]),e[52]||(e[52]=t("div",{class:"rounded-2xl border border-border bg-card p-4"},[t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"说明"),t("p",{class:"mt-4 text-sm text-muted-foreground"}," 保存后会直接写入配置文件并热更新。修改后请关注日志面板确认是否生效。 "),t("p",{class:"mt-3 text-sm text-muted-foreground"}," 自动注册/刷新默认启用,若依赖缺失会自动降级并提示。 ")],-1))])])])):v("",!0)]))]))}});export{ie as default}; diff --git a/static/assets/Settings-CRDMUKWj.js b/static/assets/Settings-CRDMUKWj.js new file mode 100644 index 0000000000000000000000000000000000000000..381be78413fb0eba4f951f643929576261be6f03 --- /dev/null +++ b/static/assets/Settings-CRDMUKWj.js @@ -0,0 +1 @@ +import{d as N,D as M,h as m,i as P,s as D,o as O,c as d,u as j,a as t,b as v,t as A,m as r,v as o,x as a,A as x,f as g,e as n}from"./index-DMWZCTlx.js";import{u as F}from"./settings-DXLXVT8l.js";import{_ as f}from"./SelectMenu.vue_vue_type_script_setup_true_lang-R5yoq9NP.js";import{_ as c}from"./Checkbox.vue_vue_type_script_setup_true_lang-CsCJog3q.js";import{_ as y}from"./HelpTip.vue_vue_type_script_setup_true_lang-BgxOFSZZ.js";const G={class:"space-y-8"},B={key:0,class:"rounded-3xl border border-border bg-card p-6 text-sm text-muted-foreground"},C={key:1,class:"rounded-3xl border border-border bg-card p-6"},L={class:"flex items-center justify-between"},I=["disabled"],T={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},$={key:1,class:"mt-6 space-y-8"},q={class:"grid gap-4 lg:grid-cols-3"},J={class:"space-y-4"},R={class:"rounded-2xl border border-border bg-card p-4"},E={class:"mt-4 space-y-3"},z={class:"rounded-2xl border border-border bg-card p-4"},H={class:"mt-4 space-y-3"},K={class:"grid grid-cols-2 items-center gap-x-6 gap-y-2"},Q={class:"flex items-center justify-between gap-2 text-xs text-muted-foreground"},W={class:"space-y-4"},X={class:"rounded-2xl border border-border bg-card p-4"},Y={class:"mt-4 grid grid-cols-2 gap-3 text-sm"},Z={class:"col-span-2 flex items-center justify-between gap-2 text-xs text-muted-foreground"},h={class:"space-y-4"},ee={class:"rounded-2xl border border-border bg-card p-4"},te={class:"mt-4 space-y-3"},se={class:"rounded-2xl border border-border bg-card p-4"},le={class:"mt-4 space-y-3"},ie=N({__name:"Settings",setup(re){const p=F(),{settings:_,isLoading:k}=M(p),s=m(null),b=m(!1),i=m(""),w=[{label:"Base64 编码",value:"base64"},{label:"URL 链接",value:"url"}],V=P(()=>{const u=[{label:"Gemini 3 Pro Preview",value:"gemini-3-pro-preview"},{label:"Gemini 3 Flash Preview",value:"gemini-3-flash-preview"},{label:"Gemini 2.5 Pro",value:"gemini-2.5-pro"},{label:"Gemini 2.5 Flash",value:"gemini-2.5-flash"},{label:"Gemini Auto",value:"gemini-auto"}],e=s.value?.image_generation.supported_models||[];for(const l of e)u.some(S=>S.value===l)||u.push({label:l,value:l});return u});D(_,u=>{if(!u)return;const e=JSON.parse(JSON.stringify(u));e.image_generation=e.image_generation||{enabled:!1,supported_models:[],output_format:"base64"},e.image_generation.output_format||="base64",e.basic=e.basic||{},e.basic.duckmail_base_url||="https://api.duckmail.sbs",e.basic.duckmail_verify_ssl=e.basic.duckmail_verify_ssl??!0,e.basic.browser_headless=e.basic.browser_headless??!0,e.basic.refresh_window_hours=Number.isFinite(e.basic.refresh_window_hours)?e.basic.refresh_window_hours:1,e.basic.register_default_count=Number.isFinite(e.basic.register_default_count)?e.basic.register_default_count:1,e.basic.register_domain=typeof e.basic.register_domain=="string"?e.basic.register_domain:"",e.basic.duckmail_api_key=typeof e.basic.duckmail_api_key=="string"?e.basic.duckmail_api_key:"",e.retry=e.retry||{},e.retry.auto_refresh_accounts_seconds=Number.isFinite(e.retry.auto_refresh_accounts_seconds)?e.retry.auto_refresh_accounts_seconds:60,s.value=e}),O(async()=>{await p.loadSettings()});const U=async()=>{if(s.value){i.value="",b.value=!0;try{await p.updateSettings(s.value)}catch(u){i.value=u.message||"保存失败"}finally{b.value=!1}}};return(u,e)=>(n(),d("div",G,[j(k)?(n(),d("section",B," 正在加载设置... ")):(n(),d("section",C,[t("div",L,[e[23]||(e[23]=t("p",{class:"text-base font-semibold text-foreground"},"配置面板",-1)),t("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:b.value||!s.value,onClick:U}," 保存设置 ",8,I)]),i.value?(n(),d("div",T,A(i.value),1)):v("",!0),s.value?(n(),d("div",$,[t("div",q,[t("div",J,[t("div",R,[e[27]||(e[27]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"基础",-1)),t("div",E,[e[24]||(e[24]=t("label",{class:"block text-xs text-muted-foreground"},"API 密钥",-1)),r(t("input",{"onUpdate:modelValue":e[0]||(e[0]=l=>s.value.basic.api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"可选"},null,512),[[o,s.value.basic.api_key]]),e[25]||(e[25]=t("label",{class:"block text-xs text-muted-foreground"},"基础地址",-1)),r(t("input",{"onUpdate:modelValue":e[1]||(e[1]=l=>s.value.basic.base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"自动检测或手动填写"},null,512),[[o,s.value.basic.base_url]]),e[26]||(e[26]=t("label",{class:"block text-xs text-muted-foreground"},"代理地址",-1)),r(t("input",{"onUpdate:modelValue":e[2]||(e[2]=l=>s.value.basic.proxy=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"http://127.0.0.1:7890"},null,512),[[o,s.value.basic.proxy]])])]),t("div",z,[e[35]||(e[35]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"自动注册/刷新",-1)),t("div",H,[e[31]||(e[31]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API",-1)),r(t("input",{"onUpdate:modelValue":e[3]||(e[3]=l=>s.value.basic.duckmail_base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"https://api.duckmail.sbs"},null,512),[[o,s.value.basic.duckmail_base_url]]),t("div",K,[a(c,{modelValue:s.value.basic.duckmail_verify_ssl,"onUpdate:modelValue":e[4]||(e[4]=l=>s.value.basic.duckmail_verify_ssl=l)},{default:x(()=>[...e[28]||(e[28]=[g(" DuckMail SSL 校验 ",-1)])]),_:1},8,["modelValue"]),a(c,{modelValue:s.value.basic.browser_headless,"onUpdate:modelValue":e[5]||(e[5]=l=>s.value.basic.browser_headless=l),class:"w-full justify-end justify-self-end"},{default:x(()=>[...e[29]||(e[29]=[g(" 无头浏览器 ",-1)])]),_:1},8,["modelValue"])]),t("div",Q,[e[30]||(e[30]=t("span",null,"过期刷新窗口(小时)",-1)),a(y,{text:"当账号距离过期小于等于该值时,会触发自动登录刷新(更新 cookie/session)。"})]),r(t("input",{"onUpdate:modelValue":e[6]||(e[6]=l=>s.value.basic.refresh_window_hours=l),type:"number",min:"0",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.refresh_window_hours,void 0,{number:!0}]]),e[32]||(e[32]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册数量",-1)),r(t("input",{"onUpdate:modelValue":e[7]||(e[7]=l=>s.value.basic.register_default_count=l),type:"number",min:"1",max:"30",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.register_default_count,void 0,{number:!0}]]),e[33]||(e[33]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册域名(推荐)",-1)),r(t("input",{"onUpdate:modelValue":e[8]||(e[8]=l=>s.value.basic.register_domain=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"留空则自动选择"},null,512),[[o,s.value.basic.register_domain]]),e[34]||(e[34]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API 密钥",-1)),r(t("input",{"onUpdate:modelValue":e[9]||(e[9]=l=>s.value.basic.duckmail_api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"dk_xxx"},null,512),[[o,s.value.basic.duckmail_api_key]])])])]),t("div",W,[t("div",X,[e[43]||(e[43]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"重试",-1)),t("div",Y,[e[37]||(e[37]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"新会话尝试次数",-1)),r(t("input",{"onUpdate:modelValue":e[10]||(e[10]=l=>s.value.retry.max_new_session_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_new_session_tries,void 0,{number:!0}]]),e[38]||(e[38]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"请求重试次数",-1)),r(t("input",{"onUpdate:modelValue":e[11]||(e[11]=l=>s.value.retry.max_request_retries=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_request_retries,void 0,{number:!0}]]),e[39]||(e[39]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"账号切换次数",-1)),r(t("input",{"onUpdate:modelValue":e[12]||(e[12]=l=>s.value.retry.max_account_switch_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_account_switch_tries,void 0,{number:!0}]]),e[40]||(e[40]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"失败阈值",-1)),r(t("input",{"onUpdate:modelValue":e[13]||(e[13]=l=>s.value.retry.account_failure_threshold=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.account_failure_threshold,void 0,{number:!0}]]),e[41]||(e[41]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"限流冷却秒数",-1)),r(t("input",{"onUpdate:modelValue":e[14]||(e[14]=l=>s.value.retry.rate_limit_cooldown_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.rate_limit_cooldown_seconds,void 0,{number:!0}]]),e[42]||(e[42]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"会话缓存秒数",-1)),r(t("input",{"onUpdate:modelValue":e[15]||(e[15]=l=>s.value.retry.session_cache_ttl_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.session_cache_ttl_seconds,void 0,{number:!0}]]),t("div",Z,[e[36]||(e[36]=t("span",null,"自动刷新账号间隔(秒,0禁用)",-1)),a(y,{text:"仅在数据库存储启用时生效:用于检测账号配置变化并重载列表,不会刷新 cookie。文件存储模式不会触发。"})]),r(t("input",{"onUpdate:modelValue":e[16]||(e[16]=l=>s.value.retry.auto_refresh_accounts_seconds=l),type:"number",min:"0",max:"600",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.auto_refresh_accounts_seconds,void 0,{number:!0}]])])])]),t("div",h,[t("div",ee,[e[47]||(e[47]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"图像生成",-1)),t("div",te,[a(c,{modelValue:s.value.image_generation.enabled,"onUpdate:modelValue":e[17]||(e[17]=l=>s.value.image_generation.enabled=l)},{default:x(()=>[...e[44]||(e[44]=[g(" 启用图像生成 ",-1)])]),_:1},8,["modelValue"]),e[45]||(e[45]=t("label",{class:"block text-xs text-muted-foreground"},"输出格式",-1)),a(f,{modelValue:s.value.image_generation.output_format,"onUpdate:modelValue":e[18]||(e[18]=l=>s.value.image_generation.output_format=l),options:w,placement:"up",class:"w-full"},null,8,["modelValue"]),e[46]||(e[46]=t("label",{class:"block text-xs text-muted-foreground"},"支持模型",-1)),a(f,{modelValue:s.value.image_generation.supported_models,"onUpdate:modelValue":e[19]||(e[19]=l=>s.value.image_generation.supported_models=l),options:V.value,placeholder:"选择模型",placement:"up",multiple:"",class:"w-full"},null,8,["modelValue","options"])])]),t("div",se,[e[51]||(e[51]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"公开展示",-1)),t("div",le,[e[48]||(e[48]=t("label",{class:"block text-xs text-muted-foreground"},"Logo 地址",-1)),r(t("input",{"onUpdate:modelValue":e[20]||(e[20]=l=>s.value.public_display.logo_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"logo 地址"},null,512),[[o,s.value.public_display.logo_url]]),e[49]||(e[49]=t("label",{class:"block text-xs text-muted-foreground"},"聊天入口",-1)),r(t("input",{"onUpdate:modelValue":e[21]||(e[21]=l=>s.value.public_display.chat_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"聊天入口地址"},null,512),[[o,s.value.public_display.chat_url]]),e[50]||(e[50]=t("label",{class:"block text-xs text-muted-foreground"},"会话有效时长",-1)),r(t("input",{"onUpdate:modelValue":e[22]||(e[22]=l=>s.value.session.expire_hours=l),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.session.expire_hours,void 0,{number:!0}]])])]),e[52]||(e[52]=t("div",{class:"rounded-2xl border border-border bg-card p-4"},[t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"说明"),t("p",{class:"mt-4 text-sm text-muted-foreground"}," 保存后会直接写入配置文件并热更新。修改后请关注日志面板确认是否生效。 "),t("p",{class:"mt-3 text-sm text-muted-foreground"}," 自动注册/刷新默认启用,若依赖缺失会自动降级并提示。 ")],-1))])])])):v("",!0)]))]))}});export{ie as default}; diff --git a/static/assets/Settings-CWtO-B3y.js b/static/assets/Settings-CWtO-B3y.js new file mode 100644 index 0000000000000000000000000000000000000000..36fc9d1e1fa515b61886aca9401a9d119ccb8cfd --- /dev/null +++ b/static/assets/Settings-CWtO-B3y.js @@ -0,0 +1 @@ +import{d as C,D,h as x,i as M,z as O,o as j,c as d,u as F,a as t,b as _,t as G,q as o,v as r,p as u,s as g,E as A,f as c,e as n}from"./index-BYFRJmx0.js";import{u as B}from"./settings-BkhyfuxO.js";import{_ as v}from"./SelectMenu.vue_vue_type_script_setup_true_lang-D8K-xqMi.js";import{_ as f}from"./Checkbox.vue_vue_type_script_setup_true_lang-BQ4FJTZi.js";import{_ as p}from"./HelpTip.vue_vue_type_script_setup_true_lang-sPivD74C.js";const L={class:"space-y-8"},T={key:0,class:"rounded-3xl border border-border bg-card p-6 text-sm text-muted-foreground"},q={key:1,class:"rounded-3xl border border-border bg-card p-6"},E={class:"flex items-center justify-between"},I=["disabled"],$={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},J={key:1,class:"mt-6 space-y-8"},R={class:"grid gap-4 lg:grid-cols-3"},z={class:"space-y-4"},H={class:"rounded-2xl border border-border bg-card p-4"},K={class:"mt-4 space-y-3"},Q={class:"rounded-2xl border border-border bg-card p-4"},W={class:"mt-4 space-y-3"},X={class:"grid grid-cols-2 items-center gap-x-6 gap-y-2"},Y={class:"flex items-center justify-end gap-2"},Z={class:"flex items-center justify-between gap-2 text-xs text-muted-foreground"},h={class:"flex items-center justify-between gap-2 text-xs text-muted-foreground"},ee={class:"space-y-4"},te={class:"rounded-2xl border border-border bg-card p-4"},se={class:"mt-4 grid grid-cols-2 gap-3 text-sm"},le={class:"col-span-2 flex items-center justify-between gap-2 text-xs text-muted-foreground"},oe={class:"space-y-4"},re={class:"rounded-2xl border border-border bg-card p-4"},ae={class:"mt-4 space-y-3"},ue={class:"rounded-2xl border border-border bg-card p-4"},de={class:"mt-4 space-y-3"},ge=C({__name:"Settings",setup(ne){const b=B(),{settings:k,isLoading:w}=D(b),y=A(),s=x(null),m=x(!1),i=x(""),V=[{label:"UC - 支持无头/有头",value:"uc"},{label:"DP - 有头模式(推荐)",value:"dp"}],U=[{label:"Base64 编码",value:"base64"},{label:"URL 链接",value:"url"}],S=M(()=>{const a=[{label:"Gemini 3 Pro Preview",value:"gemini-3-pro-preview"},{label:"Gemini 3 Flash Preview",value:"gemini-3-flash-preview"},{label:"Gemini 2.5 Pro",value:"gemini-2.5-pro"},{label:"Gemini 2.5 Flash",value:"gemini-2.5-flash"},{label:"Gemini Auto",value:"gemini-auto"}],e=s.value?.image_generation.supported_models||[];for(const l of e)a.some(P=>P.value===l)||a.push({label:l,value:l});return a});O(k,a=>{if(!a)return;const e=JSON.parse(JSON.stringify(a));e.image_generation=e.image_generation||{enabled:!1,supported_models:[],output_format:"base64"},e.image_generation.output_format||="base64",e.basic=e.basic||{},e.basic.duckmail_base_url||="https://api.duckmail.sbs",e.basic.duckmail_verify_ssl=e.basic.duckmail_verify_ssl??!0,e.basic.browser_engine=e.basic.browser_engine||"dp",e.basic.browser_headless=e.basic.browser_headless??!1,e.basic.refresh_window_hours=Number.isFinite(e.basic.refresh_window_hours)?e.basic.refresh_window_hours:1,e.basic.register_default_count=Number.isFinite(e.basic.register_default_count)?e.basic.register_default_count:1,e.basic.register_domain=typeof e.basic.register_domain=="string"?e.basic.register_domain:"",e.basic.duckmail_api_key=typeof e.basic.duckmail_api_key=="string"?e.basic.duckmail_api_key:"",e.retry=e.retry||{},e.retry.auto_refresh_accounts_seconds=Number.isFinite(e.retry.auto_refresh_accounts_seconds)?e.retry.auto_refresh_accounts_seconds:60,s.value=e}),j(async()=>{await b.loadSettings()});const N=async()=>{if(s.value){i.value="",m.value=!0;try{await b.updateSettings(s.value),y.success("设置保存成功")}catch(a){i.value=a.message||"保存失败",y.error(a.message||"保存失败")}finally{m.value=!1}}};return(a,e)=>(n(),d("div",L,[F(w)?(n(),d("section",T," 正在加载设置... ")):(n(),d("section",q,[t("div",E,[e[24]||(e[24]=t("p",{class:"text-base font-semibold text-foreground"},"配置面板",-1)),t("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",disabled:m.value||!s.value,onClick:N}," 保存设置 ",8,I)]),i.value?(n(),d("div",$,G(i.value),1)):_("",!0),s.value?(n(),d("div",J,[t("div",R,[t("div",z,[t("div",H,[e[28]||(e[28]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"基础",-1)),t("div",K,[e[25]||(e[25]=t("label",{class:"block text-xs text-muted-foreground"},"API 密钥",-1)),o(t("input",{"onUpdate:modelValue":e[0]||(e[0]=l=>s.value.basic.api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"可选"},null,512),[[r,s.value.basic.api_key]]),e[26]||(e[26]=t("label",{class:"block text-xs text-muted-foreground"},"基础地址",-1)),o(t("input",{"onUpdate:modelValue":e[1]||(e[1]=l=>s.value.basic.base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"自动检测或手动填写"},null,512),[[r,s.value.basic.base_url]]),e[27]||(e[27]=t("label",{class:"block text-xs text-muted-foreground"},"代理地址",-1)),o(t("input",{"onUpdate:modelValue":e[2]||(e[2]=l=>s.value.basic.proxy=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"http://127.0.0.1:7890"},null,512),[[r,s.value.basic.proxy]])])]),t("div",Q,[e[37]||(e[37]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"自动注册/刷新",-1)),t("div",W,[t("div",X,[u(f,{modelValue:s.value.basic.duckmail_verify_ssl,"onUpdate:modelValue":e[3]||(e[3]=l=>s.value.basic.duckmail_verify_ssl=l)},{default:g(()=>[...e[29]||(e[29]=[c(" DuckMail SSL 校验 ",-1)])]),_:1},8,["modelValue"]),t("div",Y,[u(f,{modelValue:s.value.basic.browser_headless,"onUpdate:modelValue":e[4]||(e[4]=l=>s.value.basic.browser_headless=l),disabled:s.value.basic.browser_engine==="dp"},{default:g(()=>[...e[30]||(e[30]=[c(" 无头浏览器 ",-1)])]),_:1},8,["modelValue","disabled"]),u(p,{text:"仅 UC 引擎支持无头模式。若无头注册/刷新失败,建议关闭。"})])]),t("div",Z,[e[31]||(e[31]=t("span",null,"浏览器引擎",-1)),u(p,{text:"UC: 支持无头/有头,但可能失败。DP: 仅有头模式,更稳定,UC 失败时推荐使用。"})]),u(v,{modelValue:s.value.basic.browser_engine,"onUpdate:modelValue":e[5]||(e[5]=l=>s.value.basic.browser_engine=l),options:V,class:"w-full"},null,8,["modelValue"]),e[33]||(e[33]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API",-1)),o(t("input",{"onUpdate:modelValue":e[6]||(e[6]=l=>s.value.basic.duckmail_base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"https://api.duckmail.sbs"},null,512),[[r,s.value.basic.duckmail_base_url]]),t("div",h,[e[32]||(e[32]=t("span",null,"过期刷新窗口(小时)",-1)),u(p,{text:"当账号距离过期小于等于该值时,会触发自动登录刷新(更新 cookie/session)。"})]),o(t("input",{"onUpdate:modelValue":e[7]||(e[7]=l=>s.value.basic.refresh_window_hours=l),type:"number",min:"0",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[r,s.value.basic.refresh_window_hours,void 0,{number:!0}]]),e[34]||(e[34]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册数量",-1)),o(t("input",{"onUpdate:modelValue":e[8]||(e[8]=l=>s.value.basic.register_default_count=l),type:"number",min:"1",max:"30",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[r,s.value.basic.register_default_count,void 0,{number:!0}]]),e[35]||(e[35]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册域名(推荐)",-1)),o(t("input",{"onUpdate:modelValue":e[9]||(e[9]=l=>s.value.basic.register_domain=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"留空则自动选择"},null,512),[[r,s.value.basic.register_domain]]),e[36]||(e[36]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API 密钥",-1)),o(t("input",{"onUpdate:modelValue":e[10]||(e[10]=l=>s.value.basic.duckmail_api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"dk_xxx"},null,512),[[r,s.value.basic.duckmail_api_key]])])])]),t("div",ee,[t("div",te,[e[45]||(e[45]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"重试",-1)),t("div",se,[e[39]||(e[39]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"新会话尝试次数",-1)),o(t("input",{"onUpdate:modelValue":e[11]||(e[11]=l=>s.value.retry.max_new_session_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.max_new_session_tries,void 0,{number:!0}]]),e[40]||(e[40]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"请求重试次数",-1)),o(t("input",{"onUpdate:modelValue":e[12]||(e[12]=l=>s.value.retry.max_request_retries=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.max_request_retries,void 0,{number:!0}]]),e[41]||(e[41]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"账号切换次数",-1)),o(t("input",{"onUpdate:modelValue":e[13]||(e[13]=l=>s.value.retry.max_account_switch_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.max_account_switch_tries,void 0,{number:!0}]]),e[42]||(e[42]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"失败阈值",-1)),o(t("input",{"onUpdate:modelValue":e[14]||(e[14]=l=>s.value.retry.account_failure_threshold=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.account_failure_threshold,void 0,{number:!0}]]),e[43]||(e[43]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"限流冷却秒数",-1)),o(t("input",{"onUpdate:modelValue":e[15]||(e[15]=l=>s.value.retry.rate_limit_cooldown_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.rate_limit_cooldown_seconds,void 0,{number:!0}]]),e[44]||(e[44]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"会话缓存秒数",-1)),o(t("input",{"onUpdate:modelValue":e[16]||(e[16]=l=>s.value.retry.session_cache_ttl_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.session_cache_ttl_seconds,void 0,{number:!0}]]),t("div",le,[e[38]||(e[38]=t("span",null,"自动刷新账号间隔(秒,0禁用)",-1)),u(p,{text:"仅在数据库存储启用时生效:用于检测账号配置变化并重载列表,不会刷新 cookie。文件存储模式不会触发。"})]),o(t("input",{"onUpdate:modelValue":e[17]||(e[17]=l=>s.value.retry.auto_refresh_accounts_seconds=l),type:"number",min:"0",max:"600",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.auto_refresh_accounts_seconds,void 0,{number:!0}]])])])]),t("div",oe,[t("div",re,[e[49]||(e[49]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"图像生成",-1)),t("div",ae,[u(f,{modelValue:s.value.image_generation.enabled,"onUpdate:modelValue":e[18]||(e[18]=l=>s.value.image_generation.enabled=l)},{default:g(()=>[...e[46]||(e[46]=[c(" 启用图像生成 ",-1)])]),_:1},8,["modelValue"]),e[47]||(e[47]=t("label",{class:"block text-xs text-muted-foreground"},"输出格式",-1)),u(v,{modelValue:s.value.image_generation.output_format,"onUpdate:modelValue":e[19]||(e[19]=l=>s.value.image_generation.output_format=l),options:U,placement:"up",class:"w-full"},null,8,["modelValue"]),e[48]||(e[48]=t("label",{class:"block text-xs text-muted-foreground"},"支持模型",-1)),u(v,{modelValue:s.value.image_generation.supported_models,"onUpdate:modelValue":e[20]||(e[20]=l=>s.value.image_generation.supported_models=l),options:S.value,placeholder:"选择模型",placement:"up",multiple:"",class:"w-full"},null,8,["modelValue","options"])])]),t("div",ue,[e[53]||(e[53]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"公开展示",-1)),t("div",de,[e[50]||(e[50]=t("label",{class:"block text-xs text-muted-foreground"},"Logo 地址",-1)),o(t("input",{"onUpdate:modelValue":e[21]||(e[21]=l=>s.value.public_display.logo_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"logo 地址"},null,512),[[r,s.value.public_display.logo_url]]),e[51]||(e[51]=t("label",{class:"block text-xs text-muted-foreground"},"聊天入口",-1)),o(t("input",{"onUpdate:modelValue":e[22]||(e[22]=l=>s.value.public_display.chat_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"聊天入口地址"},null,512),[[r,s.value.public_display.chat_url]]),e[52]||(e[52]=t("label",{class:"block text-xs text-muted-foreground"},"会话有效时长",-1)),o(t("input",{"onUpdate:modelValue":e[23]||(e[23]=l=>s.value.session.expire_hours=l),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[r,s.value.session.expire_hours,void 0,{number:!0}]])])]),e[54]||(e[54]=t("div",{class:"rounded-2xl border border-border bg-card p-4"},[t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"说明"),t("p",{class:"mt-4 text-sm text-muted-foreground"}," 保存后会直接写入配置文件并热更新。修改后请关注日志面板确认是否生效。 "),t("p",{class:"mt-3 text-sm text-muted-foreground"}," 自动注册/刷新默认启用,若依赖缺失会自动降级并提示。 ")],-1))])])])):_("",!0)]))]))}});export{ge as default}; diff --git a/static/assets/Settings-C_fFojKp.js b/static/assets/Settings-C_fFojKp.js new file mode 100644 index 0000000000000000000000000000000000000000..3d33ad39992d94155fbf9c4da15499768e485e2f --- /dev/null +++ b/static/assets/Settings-C_fFojKp.js @@ -0,0 +1 @@ +import{d as N,D as M,h as m,i as P,s as D,o as O,c as d,u as j,a as t,b as v,t as A,m as r,v as o,x as a,A as x,f as g,e as n}from"./index-DDWWwh2l.js";import{u as F}from"./settings-CHSHPnGz.js";import{_ as f}from"./SelectMenu.vue_vue_type_script_setup_true_lang-BgTufWxo.js";import{_ as c}from"./Checkbox.vue_vue_type_script_setup_true_lang-CvXZKsyi.js";import{_ as y}from"./HelpTip.vue_vue_type_script_setup_true_lang-C7-LVvI-.js";const G={class:"space-y-8"},B={key:0,class:"rounded-3xl border border-border bg-card p-6 text-sm text-muted-foreground"},C={key:1,class:"rounded-3xl border border-border bg-card p-6"},L={class:"flex items-center justify-between"},I=["disabled"],T={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},$={key:1,class:"mt-6 space-y-8"},q={class:"grid gap-4 lg:grid-cols-3"},J={class:"space-y-4"},R={class:"rounded-2xl border border-border bg-card p-4"},E={class:"mt-4 space-y-3"},z={class:"rounded-2xl border border-border bg-card p-4"},H={class:"mt-4 space-y-3"},K={class:"grid grid-cols-2 items-center gap-x-6 gap-y-2"},Q={class:"flex items-center justify-between gap-2 text-xs text-muted-foreground"},W={class:"space-y-4"},X={class:"rounded-2xl border border-border bg-card p-4"},Y={class:"mt-4 grid grid-cols-2 gap-3 text-sm"},Z={class:"col-span-2 flex items-center justify-between gap-2 text-xs text-muted-foreground"},h={class:"space-y-4"},ee={class:"rounded-2xl border border-border bg-card p-4"},te={class:"mt-4 space-y-3"},se={class:"rounded-2xl border border-border bg-card p-4"},le={class:"mt-4 space-y-3"},ie=N({__name:"Settings",setup(re){const p=F(),{settings:_,isLoading:k}=M(p),s=m(null),b=m(!1),i=m(""),w=[{label:"Base64 编码",value:"base64"},{label:"URL 链接",value:"url"}],V=P(()=>{const u=[{label:"Gemini 3 Pro Preview",value:"gemini-3-pro-preview"},{label:"Gemini 3 Flash Preview",value:"gemini-3-flash-preview"},{label:"Gemini 2.5 Pro",value:"gemini-2.5-pro"},{label:"Gemini 2.5 Flash",value:"gemini-2.5-flash"},{label:"Gemini Auto",value:"gemini-auto"}],e=s.value?.image_generation.supported_models||[];for(const l of e)u.some(S=>S.value===l)||u.push({label:l,value:l});return u});D(_,u=>{if(!u)return;const e=JSON.parse(JSON.stringify(u));e.image_generation=e.image_generation||{enabled:!1,supported_models:[],output_format:"base64"},e.image_generation.output_format||="base64",e.basic=e.basic||{},e.basic.duckmail_base_url||="https://api.duckmail.sbs",e.basic.duckmail_verify_ssl=e.basic.duckmail_verify_ssl??!0,e.basic.browser_headless=e.basic.browser_headless??!0,e.basic.refresh_window_hours=Number.isFinite(e.basic.refresh_window_hours)?e.basic.refresh_window_hours:1,e.basic.register_default_count=Number.isFinite(e.basic.register_default_count)?e.basic.register_default_count:1,e.basic.register_domain=typeof e.basic.register_domain=="string"?e.basic.register_domain:"",e.basic.duckmail_api_key=typeof e.basic.duckmail_api_key=="string"?e.basic.duckmail_api_key:"",e.retry=e.retry||{},e.retry.auto_refresh_accounts_seconds=Number.isFinite(e.retry.auto_refresh_accounts_seconds)?e.retry.auto_refresh_accounts_seconds:60,s.value=e}),O(async()=>{await p.loadSettings()});const U=async()=>{if(s.value){i.value="",b.value=!0;try{await p.updateSettings(s.value)}catch(u){i.value=u.message||"保存失败"}finally{b.value=!1}}};return(u,e)=>(n(),d("div",G,[j(k)?(n(),d("section",B," 正在加载设置... ")):(n(),d("section",C,[t("div",L,[e[23]||(e[23]=t("p",{class:"text-base font-semibold text-foreground"},"配置面板",-1)),t("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:b.value||!s.value,onClick:U}," 保存设置 ",8,I)]),i.value?(n(),d("div",T,A(i.value),1)):v("",!0),s.value?(n(),d("div",$,[t("div",q,[t("div",J,[t("div",R,[e[27]||(e[27]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"基础",-1)),t("div",E,[e[24]||(e[24]=t("label",{class:"block text-xs text-muted-foreground"},"API 密钥",-1)),r(t("input",{"onUpdate:modelValue":e[0]||(e[0]=l=>s.value.basic.api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"可选"},null,512),[[o,s.value.basic.api_key]]),e[25]||(e[25]=t("label",{class:"block text-xs text-muted-foreground"},"基础地址",-1)),r(t("input",{"onUpdate:modelValue":e[1]||(e[1]=l=>s.value.basic.base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"自动检测或手动填写"},null,512),[[o,s.value.basic.base_url]]),e[26]||(e[26]=t("label",{class:"block text-xs text-muted-foreground"},"代理地址",-1)),r(t("input",{"onUpdate:modelValue":e[2]||(e[2]=l=>s.value.basic.proxy=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"http://127.0.0.1:7890"},null,512),[[o,s.value.basic.proxy]])])]),t("div",z,[e[35]||(e[35]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"自动注册/刷新",-1)),t("div",H,[e[31]||(e[31]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API",-1)),r(t("input",{"onUpdate:modelValue":e[3]||(e[3]=l=>s.value.basic.duckmail_base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"https://api.duckmail.sbs"},null,512),[[o,s.value.basic.duckmail_base_url]]),t("div",K,[a(c,{modelValue:s.value.basic.duckmail_verify_ssl,"onUpdate:modelValue":e[4]||(e[4]=l=>s.value.basic.duckmail_verify_ssl=l)},{default:x(()=>[...e[28]||(e[28]=[g(" DuckMail SSL 校验 ",-1)])]),_:1},8,["modelValue"]),a(c,{modelValue:s.value.basic.browser_headless,"onUpdate:modelValue":e[5]||(e[5]=l=>s.value.basic.browser_headless=l),class:"w-full justify-end justify-self-end"},{default:x(()=>[...e[29]||(e[29]=[g(" 无头浏览器 ",-1)])]),_:1},8,["modelValue"])]),t("div",Q,[e[30]||(e[30]=t("span",null,"过期刷新窗口(小时)",-1)),a(y,{text:"当账号距离过期小于等于该值时,会触发自动登录刷新(更新 cookie/session)。"})]),r(t("input",{"onUpdate:modelValue":e[6]||(e[6]=l=>s.value.basic.refresh_window_hours=l),type:"number",min:"0",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.refresh_window_hours,void 0,{number:!0}]]),e[32]||(e[32]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册数量",-1)),r(t("input",{"onUpdate:modelValue":e[7]||(e[7]=l=>s.value.basic.register_default_count=l),type:"number",min:"1",max:"30",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.register_default_count,void 0,{number:!0}]]),e[33]||(e[33]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册域名(推荐)",-1)),r(t("input",{"onUpdate:modelValue":e[8]||(e[8]=l=>s.value.basic.register_domain=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"留空则自动选择"},null,512),[[o,s.value.basic.register_domain]]),e[34]||(e[34]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API 密钥",-1)),r(t("input",{"onUpdate:modelValue":e[9]||(e[9]=l=>s.value.basic.duckmail_api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"dk_xxx"},null,512),[[o,s.value.basic.duckmail_api_key]])])])]),t("div",W,[t("div",X,[e[43]||(e[43]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"重试",-1)),t("div",Y,[e[37]||(e[37]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"新会话尝试次数",-1)),r(t("input",{"onUpdate:modelValue":e[10]||(e[10]=l=>s.value.retry.max_new_session_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_new_session_tries,void 0,{number:!0}]]),e[38]||(e[38]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"请求重试次数",-1)),r(t("input",{"onUpdate:modelValue":e[11]||(e[11]=l=>s.value.retry.max_request_retries=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_request_retries,void 0,{number:!0}]]),e[39]||(e[39]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"账号切换次数",-1)),r(t("input",{"onUpdate:modelValue":e[12]||(e[12]=l=>s.value.retry.max_account_switch_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_account_switch_tries,void 0,{number:!0}]]),e[40]||(e[40]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"失败阈值",-1)),r(t("input",{"onUpdate:modelValue":e[13]||(e[13]=l=>s.value.retry.account_failure_threshold=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.account_failure_threshold,void 0,{number:!0}]]),e[41]||(e[41]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"限流冷却秒数",-1)),r(t("input",{"onUpdate:modelValue":e[14]||(e[14]=l=>s.value.retry.rate_limit_cooldown_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.rate_limit_cooldown_seconds,void 0,{number:!0}]]),e[42]||(e[42]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"会话缓存秒数",-1)),r(t("input",{"onUpdate:modelValue":e[15]||(e[15]=l=>s.value.retry.session_cache_ttl_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.session_cache_ttl_seconds,void 0,{number:!0}]]),t("div",Z,[e[36]||(e[36]=t("span",null,"自动刷新账号间隔(秒,0禁用)",-1)),a(y,{text:"仅在数据库存储启用时生效:用于检测账号配置变化并重载列表,不会刷新 cookie。文件存储模式不会触发。"})]),r(t("input",{"onUpdate:modelValue":e[16]||(e[16]=l=>s.value.retry.auto_refresh_accounts_seconds=l),type:"number",min:"0",max:"600",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.auto_refresh_accounts_seconds,void 0,{number:!0}]])])])]),t("div",h,[t("div",ee,[e[47]||(e[47]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"图像生成",-1)),t("div",te,[a(c,{modelValue:s.value.image_generation.enabled,"onUpdate:modelValue":e[17]||(e[17]=l=>s.value.image_generation.enabled=l)},{default:x(()=>[...e[44]||(e[44]=[g(" 启用图像生成 ",-1)])]),_:1},8,["modelValue"]),e[45]||(e[45]=t("label",{class:"block text-xs text-muted-foreground"},"输出格式",-1)),a(f,{modelValue:s.value.image_generation.output_format,"onUpdate:modelValue":e[18]||(e[18]=l=>s.value.image_generation.output_format=l),options:w,placement:"up",class:"w-full"},null,8,["modelValue"]),e[46]||(e[46]=t("label",{class:"block text-xs text-muted-foreground"},"支持模型",-1)),a(f,{modelValue:s.value.image_generation.supported_models,"onUpdate:modelValue":e[19]||(e[19]=l=>s.value.image_generation.supported_models=l),options:V.value,placeholder:"选择模型",placement:"up",multiple:"",class:"w-full"},null,8,["modelValue","options"])])]),t("div",se,[e[51]||(e[51]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"公开展示",-1)),t("div",le,[e[48]||(e[48]=t("label",{class:"block text-xs text-muted-foreground"},"Logo 地址",-1)),r(t("input",{"onUpdate:modelValue":e[20]||(e[20]=l=>s.value.public_display.logo_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"logo 地址"},null,512),[[o,s.value.public_display.logo_url]]),e[49]||(e[49]=t("label",{class:"block text-xs text-muted-foreground"},"聊天入口",-1)),r(t("input",{"onUpdate:modelValue":e[21]||(e[21]=l=>s.value.public_display.chat_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"聊天入口地址"},null,512),[[o,s.value.public_display.chat_url]]),e[50]||(e[50]=t("label",{class:"block text-xs text-muted-foreground"},"会话有效时长",-1)),r(t("input",{"onUpdate:modelValue":e[22]||(e[22]=l=>s.value.session.expire_hours=l),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.session.expire_hours,void 0,{number:!0}]])])]),e[52]||(e[52]=t("div",{class:"rounded-2xl border border-border bg-card p-4"},[t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"说明"),t("p",{class:"mt-4 text-sm text-muted-foreground"}," 保存后会直接写入配置文件并热更新。修改后请关注日志面板确认是否生效。 "),t("p",{class:"mt-3 text-sm text-muted-foreground"}," 自动注册/刷新默认启用,若依赖缺失会自动降级并提示。 ")],-1))])])])):v("",!0)]))]))}});export{ie as default}; diff --git a/static/assets/Settings-Cau8Y7zz.js b/static/assets/Settings-Cau8Y7zz.js new file mode 100644 index 0000000000000000000000000000000000000000..4a3476328820b595b3853f18596b285936b1bf03 --- /dev/null +++ b/static/assets/Settings-Cau8Y7zz.js @@ -0,0 +1 @@ +import{d as N,D as M,h as m,i as P,x as D,o as O,c as d,u as j,a as t,b as v,t as A,p as r,v as o,y as a,A as x,f as g,e as n}from"./index-Bx7qSams.js";import{u as F}from"./settings-Br7FkzDa.js";import{_ as f}from"./SelectMenu.vue_vue_type_script_setup_true_lang-CJjLLYhZ.js";import{_ as c}from"./Checkbox.vue_vue_type_script_setup_true_lang-BCrOKjX_.js";import{_ as y}from"./HelpTip.vue_vue_type_script_setup_true_lang-BaMbEJhq.js";const G={class:"space-y-8"},B={key:0,class:"rounded-3xl border border-border bg-card p-6 text-sm text-muted-foreground"},C={key:1,class:"rounded-3xl border border-border bg-card p-6"},L={class:"flex items-center justify-between"},I=["disabled"],T={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},$={key:1,class:"mt-6 space-y-8"},q={class:"grid gap-4 lg:grid-cols-3"},J={class:"space-y-4"},R={class:"rounded-2xl border border-border bg-card p-4"},E={class:"mt-4 space-y-3"},z={class:"rounded-2xl border border-border bg-card p-4"},H={class:"mt-4 space-y-3"},K={class:"grid grid-cols-2 items-center gap-x-6 gap-y-2"},Q={class:"flex items-center justify-between gap-2 text-xs text-muted-foreground"},W={class:"space-y-4"},X={class:"rounded-2xl border border-border bg-card p-4"},Y={class:"mt-4 grid grid-cols-2 gap-3 text-sm"},Z={class:"col-span-2 flex items-center justify-between gap-2 text-xs text-muted-foreground"},h={class:"space-y-4"},ee={class:"rounded-2xl border border-border bg-card p-4"},te={class:"mt-4 space-y-3"},se={class:"rounded-2xl border border-border bg-card p-4"},le={class:"mt-4 space-y-3"},ie=N({__name:"Settings",setup(re){const p=F(),{settings:_,isLoading:k}=M(p),s=m(null),b=m(!1),i=m(""),w=[{label:"Base64 编码",value:"base64"},{label:"URL 链接",value:"url"}],V=P(()=>{const u=[{label:"Gemini 3 Pro Preview",value:"gemini-3-pro-preview"},{label:"Gemini 3 Flash Preview",value:"gemini-3-flash-preview"},{label:"Gemini 2.5 Pro",value:"gemini-2.5-pro"},{label:"Gemini 2.5 Flash",value:"gemini-2.5-flash"},{label:"Gemini Auto",value:"gemini-auto"}],e=s.value?.image_generation.supported_models||[];for(const l of e)u.some(S=>S.value===l)||u.push({label:l,value:l});return u});D(_,u=>{if(!u)return;const e=JSON.parse(JSON.stringify(u));e.image_generation=e.image_generation||{enabled:!1,supported_models:[],output_format:"base64"},e.image_generation.output_format||="base64",e.basic=e.basic||{},e.basic.duckmail_base_url||="https://api.duckmail.sbs",e.basic.duckmail_verify_ssl=e.basic.duckmail_verify_ssl??!0,e.basic.browser_headless=e.basic.browser_headless??!0,e.basic.refresh_window_hours=Number.isFinite(e.basic.refresh_window_hours)?e.basic.refresh_window_hours:1,e.basic.register_default_count=Number.isFinite(e.basic.register_default_count)?e.basic.register_default_count:1,e.basic.register_domain=typeof e.basic.register_domain=="string"?e.basic.register_domain:"",e.basic.duckmail_api_key=typeof e.basic.duckmail_api_key=="string"?e.basic.duckmail_api_key:"",e.retry=e.retry||{},e.retry.auto_refresh_accounts_seconds=Number.isFinite(e.retry.auto_refresh_accounts_seconds)?e.retry.auto_refresh_accounts_seconds:60,s.value=e}),O(async()=>{await p.loadSettings()});const U=async()=>{if(s.value){i.value="",b.value=!0;try{await p.updateSettings(s.value)}catch(u){i.value=u.message||"保存失败"}finally{b.value=!1}}};return(u,e)=>(n(),d("div",G,[j(k)?(n(),d("section",B," 正在加载设置... ")):(n(),d("section",C,[t("div",L,[e[23]||(e[23]=t("p",{class:"text-base font-semibold text-foreground"},"配置面板",-1)),t("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:b.value||!s.value,onClick:U}," 保存设置 ",8,I)]),i.value?(n(),d("div",T,A(i.value),1)):v("",!0),s.value?(n(),d("div",$,[t("div",q,[t("div",J,[t("div",R,[e[27]||(e[27]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"基础",-1)),t("div",E,[e[24]||(e[24]=t("label",{class:"block text-xs text-muted-foreground"},"API 密钥",-1)),r(t("input",{"onUpdate:modelValue":e[0]||(e[0]=l=>s.value.basic.api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"可选"},null,512),[[o,s.value.basic.api_key]]),e[25]||(e[25]=t("label",{class:"block text-xs text-muted-foreground"},"基础地址",-1)),r(t("input",{"onUpdate:modelValue":e[1]||(e[1]=l=>s.value.basic.base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"自动检测或手动填写"},null,512),[[o,s.value.basic.base_url]]),e[26]||(e[26]=t("label",{class:"block text-xs text-muted-foreground"},"代理地址",-1)),r(t("input",{"onUpdate:modelValue":e[2]||(e[2]=l=>s.value.basic.proxy=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"http://127.0.0.1:7890"},null,512),[[o,s.value.basic.proxy]])])]),t("div",z,[e[35]||(e[35]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"自动注册/刷新",-1)),t("div",H,[e[31]||(e[31]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API",-1)),r(t("input",{"onUpdate:modelValue":e[3]||(e[3]=l=>s.value.basic.duckmail_base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"https://api.duckmail.sbs"},null,512),[[o,s.value.basic.duckmail_base_url]]),t("div",K,[a(c,{modelValue:s.value.basic.duckmail_verify_ssl,"onUpdate:modelValue":e[4]||(e[4]=l=>s.value.basic.duckmail_verify_ssl=l)},{default:x(()=>[...e[28]||(e[28]=[g(" DuckMail SSL 校验 ",-1)])]),_:1},8,["modelValue"]),a(c,{modelValue:s.value.basic.browser_headless,"onUpdate:modelValue":e[5]||(e[5]=l=>s.value.basic.browser_headless=l),class:"w-full justify-end justify-self-end"},{default:x(()=>[...e[29]||(e[29]=[g(" 无头浏览器 ",-1)])]),_:1},8,["modelValue"])]),t("div",Q,[e[30]||(e[30]=t("span",null,"过期刷新窗口(小时)",-1)),a(y,{text:"当账号距离过期小于等于该值时,会触发自动登录刷新(更新 cookie/session)。"})]),r(t("input",{"onUpdate:modelValue":e[6]||(e[6]=l=>s.value.basic.refresh_window_hours=l),type:"number",min:"0",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.refresh_window_hours,void 0,{number:!0}]]),e[32]||(e[32]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册数量",-1)),r(t("input",{"onUpdate:modelValue":e[7]||(e[7]=l=>s.value.basic.register_default_count=l),type:"number",min:"1",max:"30",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.register_default_count,void 0,{number:!0}]]),e[33]||(e[33]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册域名(推荐)",-1)),r(t("input",{"onUpdate:modelValue":e[8]||(e[8]=l=>s.value.basic.register_domain=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"留空则自动选择"},null,512),[[o,s.value.basic.register_domain]]),e[34]||(e[34]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API 密钥",-1)),r(t("input",{"onUpdate:modelValue":e[9]||(e[9]=l=>s.value.basic.duckmail_api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"dk_xxx"},null,512),[[o,s.value.basic.duckmail_api_key]])])])]),t("div",W,[t("div",X,[e[43]||(e[43]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"重试",-1)),t("div",Y,[e[37]||(e[37]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"新会话尝试次数",-1)),r(t("input",{"onUpdate:modelValue":e[10]||(e[10]=l=>s.value.retry.max_new_session_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_new_session_tries,void 0,{number:!0}]]),e[38]||(e[38]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"请求重试次数",-1)),r(t("input",{"onUpdate:modelValue":e[11]||(e[11]=l=>s.value.retry.max_request_retries=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_request_retries,void 0,{number:!0}]]),e[39]||(e[39]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"账号切换次数",-1)),r(t("input",{"onUpdate:modelValue":e[12]||(e[12]=l=>s.value.retry.max_account_switch_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_account_switch_tries,void 0,{number:!0}]]),e[40]||(e[40]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"失败阈值",-1)),r(t("input",{"onUpdate:modelValue":e[13]||(e[13]=l=>s.value.retry.account_failure_threshold=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.account_failure_threshold,void 0,{number:!0}]]),e[41]||(e[41]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"限流冷却秒数",-1)),r(t("input",{"onUpdate:modelValue":e[14]||(e[14]=l=>s.value.retry.rate_limit_cooldown_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.rate_limit_cooldown_seconds,void 0,{number:!0}]]),e[42]||(e[42]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"会话缓存秒数",-1)),r(t("input",{"onUpdate:modelValue":e[15]||(e[15]=l=>s.value.retry.session_cache_ttl_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.session_cache_ttl_seconds,void 0,{number:!0}]]),t("div",Z,[e[36]||(e[36]=t("span",null,"自动刷新账号间隔(秒,0禁用)",-1)),a(y,{text:"仅在数据库存储启用时生效:用于检测账号配置变化并重载列表,不会刷新 cookie。文件存储模式不会触发。"})]),r(t("input",{"onUpdate:modelValue":e[16]||(e[16]=l=>s.value.retry.auto_refresh_accounts_seconds=l),type:"number",min:"0",max:"600",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.auto_refresh_accounts_seconds,void 0,{number:!0}]])])])]),t("div",h,[t("div",ee,[e[47]||(e[47]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"图像生成",-1)),t("div",te,[a(c,{modelValue:s.value.image_generation.enabled,"onUpdate:modelValue":e[17]||(e[17]=l=>s.value.image_generation.enabled=l)},{default:x(()=>[...e[44]||(e[44]=[g(" 启用图像生成 ",-1)])]),_:1},8,["modelValue"]),e[45]||(e[45]=t("label",{class:"block text-xs text-muted-foreground"},"输出格式",-1)),a(f,{modelValue:s.value.image_generation.output_format,"onUpdate:modelValue":e[18]||(e[18]=l=>s.value.image_generation.output_format=l),options:w,placement:"up",class:"w-full"},null,8,["modelValue"]),e[46]||(e[46]=t("label",{class:"block text-xs text-muted-foreground"},"支持模型",-1)),a(f,{modelValue:s.value.image_generation.supported_models,"onUpdate:modelValue":e[19]||(e[19]=l=>s.value.image_generation.supported_models=l),options:V.value,placeholder:"选择模型",placement:"up",multiple:"",class:"w-full"},null,8,["modelValue","options"])])]),t("div",se,[e[51]||(e[51]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"公开展示",-1)),t("div",le,[e[48]||(e[48]=t("label",{class:"block text-xs text-muted-foreground"},"Logo 地址",-1)),r(t("input",{"onUpdate:modelValue":e[20]||(e[20]=l=>s.value.public_display.logo_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"logo 地址"},null,512),[[o,s.value.public_display.logo_url]]),e[49]||(e[49]=t("label",{class:"block text-xs text-muted-foreground"},"聊天入口",-1)),r(t("input",{"onUpdate:modelValue":e[21]||(e[21]=l=>s.value.public_display.chat_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"聊天入口地址"},null,512),[[o,s.value.public_display.chat_url]]),e[50]||(e[50]=t("label",{class:"block text-xs text-muted-foreground"},"会话有效时长",-1)),r(t("input",{"onUpdate:modelValue":e[22]||(e[22]=l=>s.value.session.expire_hours=l),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.session.expire_hours,void 0,{number:!0}]])])]),e[52]||(e[52]=t("div",{class:"rounded-2xl border border-border bg-card p-4"},[t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"说明"),t("p",{class:"mt-4 text-sm text-muted-foreground"}," 保存后会直接写入配置文件并热更新。修改后请关注日志面板确认是否生效。 "),t("p",{class:"mt-3 text-sm text-muted-foreground"}," 自动注册/刷新默认启用,若依赖缺失会自动降级并提示。 ")],-1))])])])):v("",!0)]))]))}});export{ie as default}; diff --git a/static/assets/Settings-CcoISFRv.js b/static/assets/Settings-CcoISFRv.js new file mode 100644 index 0000000000000000000000000000000000000000..d214175bbff6260f2d209eec29b9f368250f9175 --- /dev/null +++ b/static/assets/Settings-CcoISFRv.js @@ -0,0 +1 @@ +import{d as N,D as M,h as m,i as P,s as D,o as O,c as d,u as j,a as t,b as v,t as A,m as r,v as o,x as a,A as x,f as g,e as n}from"./index-BRg_yWJl.js";import{u as F}from"./settings-AWz-24Iz.js";import{_ as f}from"./SelectMenu.vue_vue_type_script_setup_true_lang-DswSmh70.js";import{_ as c}from"./Checkbox.vue_vue_type_script_setup_true_lang-CRAgcaHj.js";import{_ as y}from"./HelpTip.vue_vue_type_script_setup_true_lang-D8gzoJNA.js";const G={class:"space-y-8"},B={key:0,class:"rounded-3xl border border-border bg-card p-6 text-sm text-muted-foreground"},C={key:1,class:"rounded-3xl border border-border bg-card p-6"},L={class:"flex items-center justify-between"},I=["disabled"],T={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},$={key:1,class:"mt-6 space-y-8"},q={class:"grid gap-4 lg:grid-cols-3"},J={class:"space-y-4"},R={class:"rounded-2xl border border-border bg-card p-4"},E={class:"mt-4 space-y-3"},z={class:"rounded-2xl border border-border bg-card p-4"},H={class:"mt-4 space-y-3"},K={class:"grid grid-cols-2 items-center gap-x-6 gap-y-2"},Q={class:"flex items-center justify-between gap-2 text-xs text-muted-foreground"},W={class:"space-y-4"},X={class:"rounded-2xl border border-border bg-card p-4"},Y={class:"mt-4 grid grid-cols-2 gap-3 text-sm"},Z={class:"col-span-2 flex items-center justify-between gap-2 text-xs text-muted-foreground"},h={class:"space-y-4"},ee={class:"rounded-2xl border border-border bg-card p-4"},te={class:"mt-4 space-y-3"},se={class:"rounded-2xl border border-border bg-card p-4"},le={class:"mt-4 space-y-3"},ie=N({__name:"Settings",setup(re){const p=F(),{settings:_,isLoading:k}=M(p),s=m(null),b=m(!1),i=m(""),w=[{label:"Base64 编码",value:"base64"},{label:"URL 链接",value:"url"}],V=P(()=>{const u=[{label:"Gemini 3 Pro Preview",value:"gemini-3-pro-preview"},{label:"Gemini 3 Flash Preview",value:"gemini-3-flash-preview"},{label:"Gemini 2.5 Pro",value:"gemini-2.5-pro"},{label:"Gemini 2.5 Flash",value:"gemini-2.5-flash"},{label:"Gemini Auto",value:"gemini-auto"}],e=s.value?.image_generation.supported_models||[];for(const l of e)u.some(S=>S.value===l)||u.push({label:l,value:l});return u});D(_,u=>{if(!u)return;const e=JSON.parse(JSON.stringify(u));e.image_generation=e.image_generation||{enabled:!1,supported_models:[],output_format:"base64"},e.image_generation.output_format||="base64",e.basic=e.basic||{},e.basic.duckmail_base_url||="https://api.duckmail.sbs",e.basic.duckmail_verify_ssl=e.basic.duckmail_verify_ssl??!0,e.basic.browser_headless=e.basic.browser_headless??!0,e.basic.refresh_window_hours=Number.isFinite(e.basic.refresh_window_hours)?e.basic.refresh_window_hours:1,e.basic.register_default_count=Number.isFinite(e.basic.register_default_count)?e.basic.register_default_count:1,e.basic.register_domain=typeof e.basic.register_domain=="string"?e.basic.register_domain:"",e.basic.duckmail_api_key=typeof e.basic.duckmail_api_key=="string"?e.basic.duckmail_api_key:"",e.retry=e.retry||{},e.retry.auto_refresh_accounts_seconds=Number.isFinite(e.retry.auto_refresh_accounts_seconds)?e.retry.auto_refresh_accounts_seconds:60,s.value=e}),O(async()=>{await p.loadSettings()});const U=async()=>{if(s.value){i.value="",b.value=!0;try{await p.updateSettings(s.value)}catch(u){i.value=u.message||"保存失败"}finally{b.value=!1}}};return(u,e)=>(n(),d("div",G,[j(k)?(n(),d("section",B," 正在加载设置... ")):(n(),d("section",C,[t("div",L,[e[23]||(e[23]=t("p",{class:"text-base font-semibold text-foreground"},"配置面板",-1)),t("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:b.value||!s.value,onClick:U}," 保存设置 ",8,I)]),i.value?(n(),d("div",T,A(i.value),1)):v("",!0),s.value?(n(),d("div",$,[t("div",q,[t("div",J,[t("div",R,[e[27]||(e[27]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"基础",-1)),t("div",E,[e[24]||(e[24]=t("label",{class:"block text-xs text-muted-foreground"},"API 密钥",-1)),r(t("input",{"onUpdate:modelValue":e[0]||(e[0]=l=>s.value.basic.api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"可选"},null,512),[[o,s.value.basic.api_key]]),e[25]||(e[25]=t("label",{class:"block text-xs text-muted-foreground"},"基础地址",-1)),r(t("input",{"onUpdate:modelValue":e[1]||(e[1]=l=>s.value.basic.base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"自动检测或手动填写"},null,512),[[o,s.value.basic.base_url]]),e[26]||(e[26]=t("label",{class:"block text-xs text-muted-foreground"},"代理地址",-1)),r(t("input",{"onUpdate:modelValue":e[2]||(e[2]=l=>s.value.basic.proxy=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"http://127.0.0.1:7890"},null,512),[[o,s.value.basic.proxy]])])]),t("div",z,[e[35]||(e[35]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"自动注册/刷新",-1)),t("div",H,[e[31]||(e[31]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API",-1)),r(t("input",{"onUpdate:modelValue":e[3]||(e[3]=l=>s.value.basic.duckmail_base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"https://api.duckmail.sbs"},null,512),[[o,s.value.basic.duckmail_base_url]]),t("div",K,[a(c,{modelValue:s.value.basic.duckmail_verify_ssl,"onUpdate:modelValue":e[4]||(e[4]=l=>s.value.basic.duckmail_verify_ssl=l)},{default:x(()=>[...e[28]||(e[28]=[g(" DuckMail SSL 校验 ",-1)])]),_:1},8,["modelValue"]),a(c,{modelValue:s.value.basic.browser_headless,"onUpdate:modelValue":e[5]||(e[5]=l=>s.value.basic.browser_headless=l),class:"w-full justify-end justify-self-end"},{default:x(()=>[...e[29]||(e[29]=[g(" 无头浏览器 ",-1)])]),_:1},8,["modelValue"])]),t("div",Q,[e[30]||(e[30]=t("span",null,"过期刷新窗口(小时)",-1)),a(y,{text:"当账号距离过期小于等于该值时,会触发自动登录刷新(更新 cookie/session)。"})]),r(t("input",{"onUpdate:modelValue":e[6]||(e[6]=l=>s.value.basic.refresh_window_hours=l),type:"number",min:"0",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.refresh_window_hours,void 0,{number:!0}]]),e[32]||(e[32]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册数量",-1)),r(t("input",{"onUpdate:modelValue":e[7]||(e[7]=l=>s.value.basic.register_default_count=l),type:"number",min:"1",max:"30",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.register_default_count,void 0,{number:!0}]]),e[33]||(e[33]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册域名(推荐)",-1)),r(t("input",{"onUpdate:modelValue":e[8]||(e[8]=l=>s.value.basic.register_domain=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"留空则自动选择"},null,512),[[o,s.value.basic.register_domain]]),e[34]||(e[34]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API 密钥",-1)),r(t("input",{"onUpdate:modelValue":e[9]||(e[9]=l=>s.value.basic.duckmail_api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"dk_xxx"},null,512),[[o,s.value.basic.duckmail_api_key]])])])]),t("div",W,[t("div",X,[e[43]||(e[43]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"重试",-1)),t("div",Y,[e[37]||(e[37]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"新会话尝试次数",-1)),r(t("input",{"onUpdate:modelValue":e[10]||(e[10]=l=>s.value.retry.max_new_session_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_new_session_tries,void 0,{number:!0}]]),e[38]||(e[38]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"请求重试次数",-1)),r(t("input",{"onUpdate:modelValue":e[11]||(e[11]=l=>s.value.retry.max_request_retries=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_request_retries,void 0,{number:!0}]]),e[39]||(e[39]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"账号切换次数",-1)),r(t("input",{"onUpdate:modelValue":e[12]||(e[12]=l=>s.value.retry.max_account_switch_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_account_switch_tries,void 0,{number:!0}]]),e[40]||(e[40]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"失败阈值",-1)),r(t("input",{"onUpdate:modelValue":e[13]||(e[13]=l=>s.value.retry.account_failure_threshold=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.account_failure_threshold,void 0,{number:!0}]]),e[41]||(e[41]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"限流冷却秒数",-1)),r(t("input",{"onUpdate:modelValue":e[14]||(e[14]=l=>s.value.retry.rate_limit_cooldown_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.rate_limit_cooldown_seconds,void 0,{number:!0}]]),e[42]||(e[42]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"会话缓存秒数",-1)),r(t("input",{"onUpdate:modelValue":e[15]||(e[15]=l=>s.value.retry.session_cache_ttl_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.session_cache_ttl_seconds,void 0,{number:!0}]]),t("div",Z,[e[36]||(e[36]=t("span",null,"自动刷新账号间隔(秒,0禁用)",-1)),a(y,{text:"仅在数据库存储启用时生效:用于检测账号配置变化并重载列表,不会刷新 cookie。文件存储模式不会触发。"})]),r(t("input",{"onUpdate:modelValue":e[16]||(e[16]=l=>s.value.retry.auto_refresh_accounts_seconds=l),type:"number",min:"0",max:"600",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.auto_refresh_accounts_seconds,void 0,{number:!0}]])])])]),t("div",h,[t("div",ee,[e[47]||(e[47]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"图像生成",-1)),t("div",te,[a(c,{modelValue:s.value.image_generation.enabled,"onUpdate:modelValue":e[17]||(e[17]=l=>s.value.image_generation.enabled=l)},{default:x(()=>[...e[44]||(e[44]=[g(" 启用图像生成 ",-1)])]),_:1},8,["modelValue"]),e[45]||(e[45]=t("label",{class:"block text-xs text-muted-foreground"},"输出格式",-1)),a(f,{modelValue:s.value.image_generation.output_format,"onUpdate:modelValue":e[18]||(e[18]=l=>s.value.image_generation.output_format=l),options:w,placement:"up",class:"w-full"},null,8,["modelValue"]),e[46]||(e[46]=t("label",{class:"block text-xs text-muted-foreground"},"支持模型",-1)),a(f,{modelValue:s.value.image_generation.supported_models,"onUpdate:modelValue":e[19]||(e[19]=l=>s.value.image_generation.supported_models=l),options:V.value,placeholder:"选择模型",placement:"up",multiple:"",class:"w-full"},null,8,["modelValue","options"])])]),t("div",se,[e[51]||(e[51]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"公开展示",-1)),t("div",le,[e[48]||(e[48]=t("label",{class:"block text-xs text-muted-foreground"},"Logo 地址",-1)),r(t("input",{"onUpdate:modelValue":e[20]||(e[20]=l=>s.value.public_display.logo_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"logo 地址"},null,512),[[o,s.value.public_display.logo_url]]),e[49]||(e[49]=t("label",{class:"block text-xs text-muted-foreground"},"聊天入口",-1)),r(t("input",{"onUpdate:modelValue":e[21]||(e[21]=l=>s.value.public_display.chat_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"聊天入口地址"},null,512),[[o,s.value.public_display.chat_url]]),e[50]||(e[50]=t("label",{class:"block text-xs text-muted-foreground"},"会话有效时长",-1)),r(t("input",{"onUpdate:modelValue":e[22]||(e[22]=l=>s.value.session.expire_hours=l),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.session.expire_hours,void 0,{number:!0}]])])]),e[52]||(e[52]=t("div",{class:"rounded-2xl border border-border bg-card p-4"},[t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"说明"),t("p",{class:"mt-4 text-sm text-muted-foreground"}," 保存后会直接写入配置文件并热更新。修改后请关注日志面板确认是否生效。 "),t("p",{class:"mt-3 text-sm text-muted-foreground"}," 自动注册/刷新默认启用,若依赖缺失会自动降级并提示。 ")],-1))])])])):v("",!0)]))]))}});export{ie as default}; diff --git a/static/assets/Settings-Cv9V_xAM.js b/static/assets/Settings-Cv9V_xAM.js new file mode 100644 index 0000000000000000000000000000000000000000..190cbf431e02e6deb98f1b1fd939d748b6ff6e27 --- /dev/null +++ b/static/assets/Settings-Cv9V_xAM.js @@ -0,0 +1 @@ +import{d as M,D as P,h as m,i as D,z as O,o as F,c as d,u as G,a as t,b as y,t as j,q as l,v as o,p as a,s as x,E as A,f as g,e as n}from"./index-Dt-VnrHx.js";import{u as B}from"./settings-Ba-Xl9Xv.js";import{_}from"./SelectMenu.vue_vue_type_script_setup_true_lang-r1ha8_PD.js";import{_ as c}from"./Checkbox.vue_vue_type_script_setup_true_lang-D6uSa7ue.js";import{_ as v}from"./HelpTip.vue_vue_type_script_setup_true_lang-DV7kZRSO.js";const C={class:"space-y-8"},L={key:0,class:"rounded-3xl border border-border bg-card p-6 text-sm text-muted-foreground"},T={key:1,class:"rounded-3xl border border-border bg-card p-6"},q={class:"flex items-center justify-between"},I=["disabled"],$={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},E={key:1,class:"mt-6 space-y-8"},J={class:"grid gap-4 lg:grid-cols-3"},R={class:"space-y-4"},z={class:"rounded-2xl border border-border bg-card p-4"},H={class:"mt-4 space-y-3"},K={class:"rounded-2xl border border-border bg-card p-4"},Q={class:"mt-4 space-y-3"},W={class:"grid grid-cols-2 items-center gap-x-6 gap-y-2"},X={class:"flex items-center justify-end gap-2"},Y={class:"flex items-center justify-between gap-2 text-xs text-muted-foreground"},Z={class:"space-y-4"},h={class:"rounded-2xl border border-border bg-card p-4"},ee={class:"mt-4 grid grid-cols-2 gap-3 text-sm"},te={class:"col-span-2 flex items-center justify-between gap-2 text-xs text-muted-foreground"},se={class:"space-y-4"},re={class:"rounded-2xl border border-border bg-card p-4"},le={class:"mt-4 space-y-3"},oe={class:"rounded-2xl border border-border bg-card p-4"},ue={class:"mt-4 space-y-3"},me=M({__name:"Settings",setup(ae){const p=B(),{settings:k,isLoading:w}=P(p),f=A(),s=m(null),b=m(!1),i=m(""),V=[{label:"Base64 编码",value:"base64"},{label:"URL 链接",value:"url"}],U=D(()=>{const u=[{label:"Gemini 3 Pro Preview",value:"gemini-3-pro-preview"},{label:"Gemini 3 Flash Preview",value:"gemini-3-flash-preview"},{label:"Gemini 2.5 Pro",value:"gemini-2.5-pro"},{label:"Gemini 2.5 Flash",value:"gemini-2.5-flash"},{label:"Gemini Auto",value:"gemini-auto"}],e=s.value?.image_generation.supported_models||[];for(const r of e)u.some(N=>N.value===r)||u.push({label:r,value:r});return u});O(k,u=>{if(!u)return;const e=JSON.parse(JSON.stringify(u));e.image_generation=e.image_generation||{enabled:!1,supported_models:[],output_format:"base64"},e.image_generation.output_format||="base64",e.basic=e.basic||{},e.basic.duckmail_base_url||="https://api.duckmail.sbs",e.basic.duckmail_verify_ssl=e.basic.duckmail_verify_ssl??!0,e.basic.browser_headless=e.basic.browser_headless??!0,e.basic.refresh_window_hours=Number.isFinite(e.basic.refresh_window_hours)?e.basic.refresh_window_hours:1,e.basic.register_default_count=Number.isFinite(e.basic.register_default_count)?e.basic.register_default_count:1,e.basic.register_domain=typeof e.basic.register_domain=="string"?e.basic.register_domain:"",e.basic.duckmail_api_key=typeof e.basic.duckmail_api_key=="string"?e.basic.duckmail_api_key:"",e.retry=e.retry||{},e.retry.auto_refresh_accounts_seconds=Number.isFinite(e.retry.auto_refresh_accounts_seconds)?e.retry.auto_refresh_accounts_seconds:60,s.value=e}),F(async()=>{await p.loadSettings()});const S=async()=>{if(s.value){i.value="",b.value=!0;try{await p.updateSettings(s.value),f.success("设置保存成功")}catch(u){i.value=u.message||"保存失败",f.error(u.message||"保存失败")}finally{b.value=!1}}};return(u,e)=>(n(),d("div",C,[G(w)?(n(),d("section",L," 正在加载设置... ")):(n(),d("section",T,[t("div",q,[e[23]||(e[23]=t("p",{class:"text-base font-semibold text-foreground"},"配置面板",-1)),t("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",disabled:b.value||!s.value,onClick:S}," 保存设置 ",8,I)]),i.value?(n(),d("div",$,j(i.value),1)):y("",!0),s.value?(n(),d("div",E,[t("div",J,[t("div",R,[t("div",z,[e[27]||(e[27]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"基础",-1)),t("div",H,[e[24]||(e[24]=t("label",{class:"block text-xs text-muted-foreground"},"API 密钥",-1)),l(t("input",{"onUpdate:modelValue":e[0]||(e[0]=r=>s.value.basic.api_key=r),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"可选"},null,512),[[o,s.value.basic.api_key]]),e[25]||(e[25]=t("label",{class:"block text-xs text-muted-foreground"},"基础地址",-1)),l(t("input",{"onUpdate:modelValue":e[1]||(e[1]=r=>s.value.basic.base_url=r),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"自动检测或手动填写"},null,512),[[o,s.value.basic.base_url]]),e[26]||(e[26]=t("label",{class:"block text-xs text-muted-foreground"},"代理地址",-1)),l(t("input",{"onUpdate:modelValue":e[2]||(e[2]=r=>s.value.basic.proxy=r),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"http://127.0.0.1:7890"},null,512),[[o,s.value.basic.proxy]])])]),t("div",K,[e[35]||(e[35]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"自动注册/刷新",-1)),t("div",Q,[e[31]||(e[31]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API",-1)),l(t("input",{"onUpdate:modelValue":e[3]||(e[3]=r=>s.value.basic.duckmail_base_url=r),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"https://api.duckmail.sbs"},null,512),[[o,s.value.basic.duckmail_base_url]]),t("div",W,[a(c,{modelValue:s.value.basic.duckmail_verify_ssl,"onUpdate:modelValue":e[4]||(e[4]=r=>s.value.basic.duckmail_verify_ssl=r)},{default:x(()=>[...e[28]||(e[28]=[g(" DuckMail SSL 校验 ",-1)])]),_:1},8,["modelValue"]),t("div",X,[a(c,{modelValue:s.value.basic.browser_headless,"onUpdate:modelValue":e[5]||(e[5]=r=>s.value.basic.browser_headless=r)},{default:x(()=>[...e[29]||(e[29]=[g(" 无头浏览器 ",-1)])]),_:1},8,["modelValue"]),a(v,{text:"若无头注册/刷新失败,建议关闭。"})])]),t("div",Y,[e[30]||(e[30]=t("span",null,"过期刷新窗口(小时)",-1)),a(v,{text:"当账号距离过期小于等于该值时,会触发自动登录刷新(更新 cookie/session)。"})]),l(t("input",{"onUpdate:modelValue":e[6]||(e[6]=r=>s.value.basic.refresh_window_hours=r),type:"number",min:"0",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.refresh_window_hours,void 0,{number:!0}]]),e[32]||(e[32]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册数量",-1)),l(t("input",{"onUpdate:modelValue":e[7]||(e[7]=r=>s.value.basic.register_default_count=r),type:"number",min:"1",max:"30",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.register_default_count,void 0,{number:!0}]]),e[33]||(e[33]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册域名(推荐)",-1)),l(t("input",{"onUpdate:modelValue":e[8]||(e[8]=r=>s.value.basic.register_domain=r),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"留空则自动选择"},null,512),[[o,s.value.basic.register_domain]]),e[34]||(e[34]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API 密钥",-1)),l(t("input",{"onUpdate:modelValue":e[9]||(e[9]=r=>s.value.basic.duckmail_api_key=r),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"dk_xxx"},null,512),[[o,s.value.basic.duckmail_api_key]])])])]),t("div",Z,[t("div",h,[e[43]||(e[43]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"重试",-1)),t("div",ee,[e[37]||(e[37]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"新会话尝试次数",-1)),l(t("input",{"onUpdate:modelValue":e[10]||(e[10]=r=>s.value.retry.max_new_session_tries=r),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_new_session_tries,void 0,{number:!0}]]),e[38]||(e[38]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"请求重试次数",-1)),l(t("input",{"onUpdate:modelValue":e[11]||(e[11]=r=>s.value.retry.max_request_retries=r),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_request_retries,void 0,{number:!0}]]),e[39]||(e[39]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"账号切换次数",-1)),l(t("input",{"onUpdate:modelValue":e[12]||(e[12]=r=>s.value.retry.max_account_switch_tries=r),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_account_switch_tries,void 0,{number:!0}]]),e[40]||(e[40]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"失败阈值",-1)),l(t("input",{"onUpdate:modelValue":e[13]||(e[13]=r=>s.value.retry.account_failure_threshold=r),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.account_failure_threshold,void 0,{number:!0}]]),e[41]||(e[41]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"限流冷却秒数",-1)),l(t("input",{"onUpdate:modelValue":e[14]||(e[14]=r=>s.value.retry.rate_limit_cooldown_seconds=r),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.rate_limit_cooldown_seconds,void 0,{number:!0}]]),e[42]||(e[42]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"会话缓存秒数",-1)),l(t("input",{"onUpdate:modelValue":e[15]||(e[15]=r=>s.value.retry.session_cache_ttl_seconds=r),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.session_cache_ttl_seconds,void 0,{number:!0}]]),t("div",te,[e[36]||(e[36]=t("span",null,"自动刷新账号间隔(秒,0禁用)",-1)),a(v,{text:"仅在数据库存储启用时生效:用于检测账号配置变化并重载列表,不会刷新 cookie。文件存储模式不会触发。"})]),l(t("input",{"onUpdate:modelValue":e[16]||(e[16]=r=>s.value.retry.auto_refresh_accounts_seconds=r),type:"number",min:"0",max:"600",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.auto_refresh_accounts_seconds,void 0,{number:!0}]])])])]),t("div",se,[t("div",re,[e[47]||(e[47]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"图像生成",-1)),t("div",le,[a(c,{modelValue:s.value.image_generation.enabled,"onUpdate:modelValue":e[17]||(e[17]=r=>s.value.image_generation.enabled=r)},{default:x(()=>[...e[44]||(e[44]=[g(" 启用图像生成 ",-1)])]),_:1},8,["modelValue"]),e[45]||(e[45]=t("label",{class:"block text-xs text-muted-foreground"},"输出格式",-1)),a(_,{modelValue:s.value.image_generation.output_format,"onUpdate:modelValue":e[18]||(e[18]=r=>s.value.image_generation.output_format=r),options:V,placement:"up",class:"w-full"},null,8,["modelValue"]),e[46]||(e[46]=t("label",{class:"block text-xs text-muted-foreground"},"支持模型",-1)),a(_,{modelValue:s.value.image_generation.supported_models,"onUpdate:modelValue":e[19]||(e[19]=r=>s.value.image_generation.supported_models=r),options:U.value,placeholder:"选择模型",placement:"up",multiple:"",class:"w-full"},null,8,["modelValue","options"])])]),t("div",oe,[e[51]||(e[51]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"公开展示",-1)),t("div",ue,[e[48]||(e[48]=t("label",{class:"block text-xs text-muted-foreground"},"Logo 地址",-1)),l(t("input",{"onUpdate:modelValue":e[20]||(e[20]=r=>s.value.public_display.logo_url=r),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"logo 地址"},null,512),[[o,s.value.public_display.logo_url]]),e[49]||(e[49]=t("label",{class:"block text-xs text-muted-foreground"},"聊天入口",-1)),l(t("input",{"onUpdate:modelValue":e[21]||(e[21]=r=>s.value.public_display.chat_url=r),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"聊天入口地址"},null,512),[[o,s.value.public_display.chat_url]]),e[50]||(e[50]=t("label",{class:"block text-xs text-muted-foreground"},"会话有效时长",-1)),l(t("input",{"onUpdate:modelValue":e[22]||(e[22]=r=>s.value.session.expire_hours=r),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.session.expire_hours,void 0,{number:!0}]])])]),e[52]||(e[52]=t("div",{class:"rounded-2xl border border-border bg-card p-4"},[t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"说明"),t("p",{class:"mt-4 text-sm text-muted-foreground"}," 保存后会直接写入配置文件并热更新。修改后请关注日志面板确认是否生效。 "),t("p",{class:"mt-3 text-sm text-muted-foreground"}," 自动注册/刷新默认启用,若依赖缺失会自动降级并提示。 ")],-1))])])])):y("",!0)]))]))}});export{me as default}; diff --git a/static/assets/Settings-CxdyQWMh.js b/static/assets/Settings-CxdyQWMh.js new file mode 100644 index 0000000000000000000000000000000000000000..c6b38393fc2a8ee287f1d72f737a523662cc2a53 --- /dev/null +++ b/static/assets/Settings-CxdyQWMh.js @@ -0,0 +1 @@ +import{d as D,D as C,h as x,i as M,z as O,o as j,c as d,u as F,a as t,b as _,t as G,q as o,v as r,p as a,s as g,E as A,f as c,e as n}from"./index-CQv2QMzB.js";import{u as B}from"./settings-D7bt90ge.js";import{_ as v}from"./SelectMenu.vue_vue_type_script_setup_true_lang-BVovBIaU.js";import{_ as f}from"./Checkbox.vue_vue_type_script_setup_true_lang-D9NLz7h-.js";import{_ as p}from"./HelpTip.vue_vue_type_script_setup_true_lang-Dt22lg9h.js";const L={class:"space-y-8"},T={key:0,class:"rounded-3xl border border-border bg-card p-6 text-sm text-muted-foreground"},q={key:1,class:"rounded-3xl border border-border bg-card p-6"},E={class:"flex items-center justify-between"},I=["disabled"],$={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},J={key:1,class:"mt-6 space-y-8"},R={class:"grid gap-4 lg:grid-cols-3"},z={class:"space-y-4"},H={class:"rounded-2xl border border-border bg-card p-4"},K={class:"mt-4 space-y-3"},Q={class:"rounded-2xl border border-border bg-card p-4"},W={class:"mt-4 space-y-3"},X={class:"grid grid-cols-2 items-center gap-x-6 gap-y-2"},Y={class:"flex items-center justify-end gap-2"},Z={class:"flex items-center justify-between gap-2 text-xs text-muted-foreground"},h={class:"flex items-center justify-between gap-2 text-xs text-muted-foreground"},ee={class:"space-y-4"},te={class:"rounded-2xl border border-border bg-card p-4"},se={class:"mt-4 grid grid-cols-2 gap-3 text-sm"},le={class:"col-span-2 flex items-center justify-between gap-2 text-xs text-muted-foreground"},oe={class:"space-y-4"},re={class:"rounded-2xl border border-border bg-card p-4"},ue={class:"mt-4 space-y-3"},ae={class:"rounded-2xl border border-border bg-card p-4"},de={class:"mt-4 space-y-3"},ge=D({__name:"Settings",setup(ne){const b=B(),{settings:k,isLoading:w}=C(b),y=A(),s=x(null),m=x(!1),i=x(""),V=[{label:"UC - 稳定",value:"uc"},{label:"DP - 快速",value:"dp"}],U=[{label:"Base64 编码",value:"base64"},{label:"URL 链接",value:"url"}],S=M(()=>{const u=[{label:"Gemini 3 Pro Preview",value:"gemini-3-pro-preview"},{label:"Gemini 3 Flash Preview",value:"gemini-3-flash-preview"},{label:"Gemini 2.5 Pro",value:"gemini-2.5-pro"},{label:"Gemini 2.5 Flash",value:"gemini-2.5-flash"},{label:"Gemini Auto",value:"gemini-auto"}],e=s.value?.image_generation.supported_models||[];for(const l of e)u.some(P=>P.value===l)||u.push({label:l,value:l});return u});O(k,u=>{if(!u)return;const e=JSON.parse(JSON.stringify(u));e.image_generation=e.image_generation||{enabled:!1,supported_models:[],output_format:"base64"},e.image_generation.output_format||="base64",e.basic=e.basic||{},e.basic.duckmail_base_url||="https://api.duckmail.sbs",e.basic.duckmail_verify_ssl=e.basic.duckmail_verify_ssl??!0,e.basic.browser_engine=e.basic.browser_engine||"uc",e.basic.browser_headless=e.basic.browser_headless??!1,e.basic.refresh_window_hours=Number.isFinite(e.basic.refresh_window_hours)?e.basic.refresh_window_hours:1,e.basic.register_default_count=Number.isFinite(e.basic.register_default_count)?e.basic.register_default_count:1,e.basic.register_domain=typeof e.basic.register_domain=="string"?e.basic.register_domain:"",e.basic.duckmail_api_key=typeof e.basic.duckmail_api_key=="string"?e.basic.duckmail_api_key:"",e.retry=e.retry||{},e.retry.auto_refresh_accounts_seconds=Number.isFinite(e.retry.auto_refresh_accounts_seconds)?e.retry.auto_refresh_accounts_seconds:60,s.value=e}),j(async()=>{await b.loadSettings()});const N=async()=>{if(s.value){i.value="",m.value=!0;try{await b.updateSettings(s.value),y.success("设置保存成功")}catch(u){i.value=u.message||"保存失败",y.error(u.message||"保存失败")}finally{m.value=!1}}};return(u,e)=>(n(),d("div",L,[F(w)?(n(),d("section",T," 正在加载设置... ")):(n(),d("section",q,[t("div",E,[e[24]||(e[24]=t("p",{class:"text-base font-semibold text-foreground"},"配置面板",-1)),t("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",disabled:m.value||!s.value,onClick:N}," 保存设置 ",8,I)]),i.value?(n(),d("div",$,G(i.value),1)):_("",!0),s.value?(n(),d("div",J,[t("div",R,[t("div",z,[t("div",H,[e[28]||(e[28]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"基础",-1)),t("div",K,[e[25]||(e[25]=t("label",{class:"block text-xs text-muted-foreground"},"API 密钥",-1)),o(t("input",{"onUpdate:modelValue":e[0]||(e[0]=l=>s.value.basic.api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"可选"},null,512),[[r,s.value.basic.api_key]]),e[26]||(e[26]=t("label",{class:"block text-xs text-muted-foreground"},"基础地址",-1)),o(t("input",{"onUpdate:modelValue":e[1]||(e[1]=l=>s.value.basic.base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"自动检测或手动填写"},null,512),[[r,s.value.basic.base_url]]),e[27]||(e[27]=t("label",{class:"block text-xs text-muted-foreground"},"代理地址",-1)),o(t("input",{"onUpdate:modelValue":e[2]||(e[2]=l=>s.value.basic.proxy=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"http://127.0.0.1:7890"},null,512),[[r,s.value.basic.proxy]])])]),t("div",Q,[e[37]||(e[37]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"自动注册/刷新",-1)),t("div",W,[t("div",X,[a(f,{modelValue:s.value.basic.duckmail_verify_ssl,"onUpdate:modelValue":e[3]||(e[3]=l=>s.value.basic.duckmail_verify_ssl=l)},{default:g(()=>[...e[29]||(e[29]=[c(" DuckMail SSL 校验 ",-1)])]),_:1},8,["modelValue"]),t("div",Y,[a(f,{modelValue:s.value.basic.browser_headless,"onUpdate:modelValue":e[4]||(e[4]=l=>s.value.basic.browser_headless=l),disabled:s.value.basic.browser_engine==="dp"},{default:g(()=>[...e[30]||(e[30]=[c(" 无头浏览器 ",-1)])]),_:1},8,["modelValue","disabled"]),a(p,{text:"仅 UC 引擎支持无头模式。若无头注册/刷新失败,建议关闭。"})])]),t("div",Z,[e[31]||(e[31]=t("span",null,"浏览器引擎",-1)),a(p,{text:"DP: 快速,适合本地,仅有头模式。UC: 稳定,支持有头/无头。"})]),a(v,{modelValue:s.value.basic.browser_engine,"onUpdate:modelValue":e[5]||(e[5]=l=>s.value.basic.browser_engine=l),options:V,class:"w-full"},null,8,["modelValue"]),e[33]||(e[33]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API",-1)),o(t("input",{"onUpdate:modelValue":e[6]||(e[6]=l=>s.value.basic.duckmail_base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"https://api.duckmail.sbs"},null,512),[[r,s.value.basic.duckmail_base_url]]),t("div",h,[e[32]||(e[32]=t("span",null,"过期刷新窗口(小时)",-1)),a(p,{text:"当账号距离过期小于等于该值时,会触发自动登录刷新(更新 cookie/session)。"})]),o(t("input",{"onUpdate:modelValue":e[7]||(e[7]=l=>s.value.basic.refresh_window_hours=l),type:"number",min:"0",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[r,s.value.basic.refresh_window_hours,void 0,{number:!0}]]),e[34]||(e[34]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册数量",-1)),o(t("input",{"onUpdate:modelValue":e[8]||(e[8]=l=>s.value.basic.register_default_count=l),type:"number",min:"1",max:"30",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[r,s.value.basic.register_default_count,void 0,{number:!0}]]),e[35]||(e[35]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册域名(推荐)",-1)),o(t("input",{"onUpdate:modelValue":e[9]||(e[9]=l=>s.value.basic.register_domain=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"留空则自动选择"},null,512),[[r,s.value.basic.register_domain]]),e[36]||(e[36]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API 密钥",-1)),o(t("input",{"onUpdate:modelValue":e[10]||(e[10]=l=>s.value.basic.duckmail_api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"dk_xxx"},null,512),[[r,s.value.basic.duckmail_api_key]])])])]),t("div",ee,[t("div",te,[e[45]||(e[45]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"重试",-1)),t("div",se,[e[39]||(e[39]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"新会话尝试次数",-1)),o(t("input",{"onUpdate:modelValue":e[11]||(e[11]=l=>s.value.retry.max_new_session_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.max_new_session_tries,void 0,{number:!0}]]),e[40]||(e[40]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"请求重试次数",-1)),o(t("input",{"onUpdate:modelValue":e[12]||(e[12]=l=>s.value.retry.max_request_retries=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.max_request_retries,void 0,{number:!0}]]),e[41]||(e[41]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"账号切换次数",-1)),o(t("input",{"onUpdate:modelValue":e[13]||(e[13]=l=>s.value.retry.max_account_switch_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.max_account_switch_tries,void 0,{number:!0}]]),e[42]||(e[42]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"失败阈值",-1)),o(t("input",{"onUpdate:modelValue":e[14]||(e[14]=l=>s.value.retry.account_failure_threshold=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.account_failure_threshold,void 0,{number:!0}]]),e[43]||(e[43]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"限流冷却秒数",-1)),o(t("input",{"onUpdate:modelValue":e[15]||(e[15]=l=>s.value.retry.rate_limit_cooldown_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.rate_limit_cooldown_seconds,void 0,{number:!0}]]),e[44]||(e[44]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"会话缓存秒数",-1)),o(t("input",{"onUpdate:modelValue":e[16]||(e[16]=l=>s.value.retry.session_cache_ttl_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.session_cache_ttl_seconds,void 0,{number:!0}]]),t("div",le,[e[38]||(e[38]=t("span",null,"自动刷新账号间隔(秒,0禁用)",-1)),a(p,{text:"仅在数据库存储启用时生效:用于检测账号配置变化并重载列表,不会刷新 cookie。文件存储模式不会触发。"})]),o(t("input",{"onUpdate:modelValue":e[17]||(e[17]=l=>s.value.retry.auto_refresh_accounts_seconds=l),type:"number",min:"0",max:"600",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.auto_refresh_accounts_seconds,void 0,{number:!0}]])])])]),t("div",oe,[t("div",re,[e[49]||(e[49]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"图像生成",-1)),t("div",ue,[a(f,{modelValue:s.value.image_generation.enabled,"onUpdate:modelValue":e[18]||(e[18]=l=>s.value.image_generation.enabled=l)},{default:g(()=>[...e[46]||(e[46]=[c(" 启用图像生成 ",-1)])]),_:1},8,["modelValue"]),e[47]||(e[47]=t("label",{class:"block text-xs text-muted-foreground"},"输出格式",-1)),a(v,{modelValue:s.value.image_generation.output_format,"onUpdate:modelValue":e[19]||(e[19]=l=>s.value.image_generation.output_format=l),options:U,placement:"up",class:"w-full"},null,8,["modelValue"]),e[48]||(e[48]=t("label",{class:"block text-xs text-muted-foreground"},"支持模型",-1)),a(v,{modelValue:s.value.image_generation.supported_models,"onUpdate:modelValue":e[20]||(e[20]=l=>s.value.image_generation.supported_models=l),options:S.value,placeholder:"选择模型",placement:"up",multiple:"",class:"w-full"},null,8,["modelValue","options"])])]),t("div",ae,[e[53]||(e[53]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"公开展示",-1)),t("div",de,[e[50]||(e[50]=t("label",{class:"block text-xs text-muted-foreground"},"Logo 地址",-1)),o(t("input",{"onUpdate:modelValue":e[21]||(e[21]=l=>s.value.public_display.logo_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"logo 地址"},null,512),[[r,s.value.public_display.logo_url]]),e[51]||(e[51]=t("label",{class:"block text-xs text-muted-foreground"},"聊天入口",-1)),o(t("input",{"onUpdate:modelValue":e[22]||(e[22]=l=>s.value.public_display.chat_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"聊天入口地址"},null,512),[[r,s.value.public_display.chat_url]]),e[52]||(e[52]=t("label",{class:"block text-xs text-muted-foreground"},"会话有效时长",-1)),o(t("input",{"onUpdate:modelValue":e[23]||(e[23]=l=>s.value.session.expire_hours=l),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[r,s.value.session.expire_hours,void 0,{number:!0}]])])]),e[54]||(e[54]=t("div",{class:"rounded-2xl border border-border bg-card p-4"},[t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"说明"),t("p",{class:"mt-4 text-sm text-muted-foreground"}," 保存后会直接写入配置文件并热更新。修改后请关注日志面板确认是否生效。 "),t("p",{class:"mt-3 text-sm text-muted-foreground"}," 自动注册/刷新默认启用,若依赖缺失会自动降级并提示。 ")],-1))])])])):_("",!0)]))]))}});export{ge as default}; diff --git a/static/assets/Settings-CyqM2FVA.js b/static/assets/Settings-CyqM2FVA.js new file mode 100644 index 0000000000000000000000000000000000000000..336e2739d26609bf32ae54e49526e3e428ed37bb --- /dev/null +++ b/static/assets/Settings-CyqM2FVA.js @@ -0,0 +1 @@ +import{d as N,D as M,h as m,i as P,s as D,o as O,c as d,u as j,a as t,b as v,t as A,m as r,v as o,x as a,A as x,f as g,e as n}from"./index-DhxxzIOh.js";import{u as F}from"./settings-CCCXerrX.js";import{_ as f}from"./SelectMenu.vue_vue_type_script_setup_true_lang-Vv-llkmB.js";import{_ as c}from"./Checkbox.vue_vue_type_script_setup_true_lang-Cui3ZVy3.js";import{_ as y}from"./HelpTip.vue_vue_type_script_setup_true_lang-Dj0Fsuty.js";const G={class:"space-y-8"},B={key:0,class:"rounded-3xl border border-border bg-card p-6 text-sm text-muted-foreground"},C={key:1,class:"rounded-3xl border border-border bg-card p-6"},L={class:"flex items-center justify-between"},I=["disabled"],T={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},$={key:1,class:"mt-6 space-y-8"},q={class:"grid gap-4 lg:grid-cols-3"},J={class:"space-y-4"},R={class:"rounded-2xl border border-border bg-card p-4"},E={class:"mt-4 space-y-3"},z={class:"rounded-2xl border border-border bg-card p-4"},H={class:"mt-4 space-y-3"},K={class:"grid grid-cols-2 items-center gap-x-6 gap-y-2"},Q={class:"flex items-center justify-between gap-2 text-xs text-muted-foreground"},W={class:"space-y-4"},X={class:"rounded-2xl border border-border bg-card p-4"},Y={class:"mt-4 grid grid-cols-2 gap-3 text-sm"},Z={class:"col-span-2 flex items-center justify-between gap-2 text-xs text-muted-foreground"},h={class:"space-y-4"},ee={class:"rounded-2xl border border-border bg-card p-4"},te={class:"mt-4 space-y-3"},se={class:"rounded-2xl border border-border bg-card p-4"},le={class:"mt-4 space-y-3"},ie=N({__name:"Settings",setup(re){const p=F(),{settings:_,isLoading:k}=M(p),s=m(null),b=m(!1),i=m(""),w=[{label:"Base64 编码",value:"base64"},{label:"URL 链接",value:"url"}],V=P(()=>{const u=[{label:"Gemini 3 Pro Preview",value:"gemini-3-pro-preview"},{label:"Gemini 3 Flash Preview",value:"gemini-3-flash-preview"},{label:"Gemini 2.5 Pro",value:"gemini-2.5-pro"},{label:"Gemini 2.5 Flash",value:"gemini-2.5-flash"},{label:"Gemini Auto",value:"gemini-auto"}],e=s.value?.image_generation.supported_models||[];for(const l of e)u.some(S=>S.value===l)||u.push({label:l,value:l});return u});D(_,u=>{if(!u)return;const e=JSON.parse(JSON.stringify(u));e.image_generation=e.image_generation||{enabled:!1,supported_models:[],output_format:"base64"},e.image_generation.output_format||="base64",e.basic=e.basic||{},e.basic.duckmail_base_url||="https://api.duckmail.sbs",e.basic.duckmail_verify_ssl=e.basic.duckmail_verify_ssl??!0,e.basic.browser_headless=e.basic.browser_headless??!0,e.basic.refresh_window_hours=Number.isFinite(e.basic.refresh_window_hours)?e.basic.refresh_window_hours:1,e.basic.register_default_count=Number.isFinite(e.basic.register_default_count)?e.basic.register_default_count:1,e.basic.register_domain=typeof e.basic.register_domain=="string"?e.basic.register_domain:"",e.basic.duckmail_api_key=typeof e.basic.duckmail_api_key=="string"?e.basic.duckmail_api_key:"",e.retry=e.retry||{},e.retry.auto_refresh_accounts_seconds=Number.isFinite(e.retry.auto_refresh_accounts_seconds)?e.retry.auto_refresh_accounts_seconds:60,s.value=e}),O(async()=>{await p.loadSettings()});const U=async()=>{if(s.value){i.value="",b.value=!0;try{await p.updateSettings(s.value)}catch(u){i.value=u.message||"保存失败"}finally{b.value=!1}}};return(u,e)=>(n(),d("div",G,[j(k)?(n(),d("section",B," 正在加载设置... ")):(n(),d("section",C,[t("div",L,[e[23]||(e[23]=t("p",{class:"text-base font-semibold text-foreground"},"配置面板",-1)),t("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:b.value||!s.value,onClick:U}," 保存设置 ",8,I)]),i.value?(n(),d("div",T,A(i.value),1)):v("",!0),s.value?(n(),d("div",$,[t("div",q,[t("div",J,[t("div",R,[e[27]||(e[27]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"基础",-1)),t("div",E,[e[24]||(e[24]=t("label",{class:"block text-xs text-muted-foreground"},"API 密钥",-1)),r(t("input",{"onUpdate:modelValue":e[0]||(e[0]=l=>s.value.basic.api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"可选"},null,512),[[o,s.value.basic.api_key]]),e[25]||(e[25]=t("label",{class:"block text-xs text-muted-foreground"},"基础地址",-1)),r(t("input",{"onUpdate:modelValue":e[1]||(e[1]=l=>s.value.basic.base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"自动检测或手动填写"},null,512),[[o,s.value.basic.base_url]]),e[26]||(e[26]=t("label",{class:"block text-xs text-muted-foreground"},"代理地址",-1)),r(t("input",{"onUpdate:modelValue":e[2]||(e[2]=l=>s.value.basic.proxy=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"http://127.0.0.1:7890"},null,512),[[o,s.value.basic.proxy]])])]),t("div",z,[e[35]||(e[35]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"自动注册/刷新",-1)),t("div",H,[e[31]||(e[31]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API",-1)),r(t("input",{"onUpdate:modelValue":e[3]||(e[3]=l=>s.value.basic.duckmail_base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"https://api.duckmail.sbs"},null,512),[[o,s.value.basic.duckmail_base_url]]),t("div",K,[a(c,{modelValue:s.value.basic.duckmail_verify_ssl,"onUpdate:modelValue":e[4]||(e[4]=l=>s.value.basic.duckmail_verify_ssl=l)},{default:x(()=>[...e[28]||(e[28]=[g(" DuckMail SSL 校验 ",-1)])]),_:1},8,["modelValue"]),a(c,{modelValue:s.value.basic.browser_headless,"onUpdate:modelValue":e[5]||(e[5]=l=>s.value.basic.browser_headless=l),class:"w-full justify-end justify-self-end"},{default:x(()=>[...e[29]||(e[29]=[g(" 无头浏览器 ",-1)])]),_:1},8,["modelValue"])]),t("div",Q,[e[30]||(e[30]=t("span",null,"过期刷新窗口(小时)",-1)),a(y,{text:"当账号距离过期小于等于该值时,会触发自动登录刷新(更新 cookie/session)。"})]),r(t("input",{"onUpdate:modelValue":e[6]||(e[6]=l=>s.value.basic.refresh_window_hours=l),type:"number",min:"0",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.refresh_window_hours,void 0,{number:!0}]]),e[32]||(e[32]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册数量",-1)),r(t("input",{"onUpdate:modelValue":e[7]||(e[7]=l=>s.value.basic.register_default_count=l),type:"number",min:"1",max:"30",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.register_default_count,void 0,{number:!0}]]),e[33]||(e[33]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册域名(推荐)",-1)),r(t("input",{"onUpdate:modelValue":e[8]||(e[8]=l=>s.value.basic.register_domain=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"留空则自动选择"},null,512),[[o,s.value.basic.register_domain]]),e[34]||(e[34]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API 密钥",-1)),r(t("input",{"onUpdate:modelValue":e[9]||(e[9]=l=>s.value.basic.duckmail_api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"dk_xxx"},null,512),[[o,s.value.basic.duckmail_api_key]])])])]),t("div",W,[t("div",X,[e[43]||(e[43]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"重试",-1)),t("div",Y,[e[37]||(e[37]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"新会话尝试次数",-1)),r(t("input",{"onUpdate:modelValue":e[10]||(e[10]=l=>s.value.retry.max_new_session_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_new_session_tries,void 0,{number:!0}]]),e[38]||(e[38]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"请求重试次数",-1)),r(t("input",{"onUpdate:modelValue":e[11]||(e[11]=l=>s.value.retry.max_request_retries=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_request_retries,void 0,{number:!0}]]),e[39]||(e[39]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"账号切换次数",-1)),r(t("input",{"onUpdate:modelValue":e[12]||(e[12]=l=>s.value.retry.max_account_switch_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_account_switch_tries,void 0,{number:!0}]]),e[40]||(e[40]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"失败阈值",-1)),r(t("input",{"onUpdate:modelValue":e[13]||(e[13]=l=>s.value.retry.account_failure_threshold=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.account_failure_threshold,void 0,{number:!0}]]),e[41]||(e[41]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"限流冷却秒数",-1)),r(t("input",{"onUpdate:modelValue":e[14]||(e[14]=l=>s.value.retry.rate_limit_cooldown_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.rate_limit_cooldown_seconds,void 0,{number:!0}]]),e[42]||(e[42]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"会话缓存秒数",-1)),r(t("input",{"onUpdate:modelValue":e[15]||(e[15]=l=>s.value.retry.session_cache_ttl_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.session_cache_ttl_seconds,void 0,{number:!0}]]),t("div",Z,[e[36]||(e[36]=t("span",null,"自动刷新账号间隔(秒,0禁用)",-1)),a(y,{text:"仅在数据库存储启用时生效:用于检测账号配置变化并重载列表,不会刷新 cookie。文件存储模式不会触发。"})]),r(t("input",{"onUpdate:modelValue":e[16]||(e[16]=l=>s.value.retry.auto_refresh_accounts_seconds=l),type:"number",min:"0",max:"600",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.auto_refresh_accounts_seconds,void 0,{number:!0}]])])])]),t("div",h,[t("div",ee,[e[47]||(e[47]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"图像生成",-1)),t("div",te,[a(c,{modelValue:s.value.image_generation.enabled,"onUpdate:modelValue":e[17]||(e[17]=l=>s.value.image_generation.enabled=l)},{default:x(()=>[...e[44]||(e[44]=[g(" 启用图像生成 ",-1)])]),_:1},8,["modelValue"]),e[45]||(e[45]=t("label",{class:"block text-xs text-muted-foreground"},"输出格式",-1)),a(f,{modelValue:s.value.image_generation.output_format,"onUpdate:modelValue":e[18]||(e[18]=l=>s.value.image_generation.output_format=l),options:w,placement:"up",class:"w-full"},null,8,["modelValue"]),e[46]||(e[46]=t("label",{class:"block text-xs text-muted-foreground"},"支持模型",-1)),a(f,{modelValue:s.value.image_generation.supported_models,"onUpdate:modelValue":e[19]||(e[19]=l=>s.value.image_generation.supported_models=l),options:V.value,placeholder:"选择模型",placement:"up",multiple:"",class:"w-full"},null,8,["modelValue","options"])])]),t("div",se,[e[51]||(e[51]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"公开展示",-1)),t("div",le,[e[48]||(e[48]=t("label",{class:"block text-xs text-muted-foreground"},"Logo 地址",-1)),r(t("input",{"onUpdate:modelValue":e[20]||(e[20]=l=>s.value.public_display.logo_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"logo 地址"},null,512),[[o,s.value.public_display.logo_url]]),e[49]||(e[49]=t("label",{class:"block text-xs text-muted-foreground"},"聊天入口",-1)),r(t("input",{"onUpdate:modelValue":e[21]||(e[21]=l=>s.value.public_display.chat_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"聊天入口地址"},null,512),[[o,s.value.public_display.chat_url]]),e[50]||(e[50]=t("label",{class:"block text-xs text-muted-foreground"},"会话有效时长",-1)),r(t("input",{"onUpdate:modelValue":e[22]||(e[22]=l=>s.value.session.expire_hours=l),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.session.expire_hours,void 0,{number:!0}]])])]),e[52]||(e[52]=t("div",{class:"rounded-2xl border border-border bg-card p-4"},[t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"说明"),t("p",{class:"mt-4 text-sm text-muted-foreground"}," 保存后会直接写入配置文件并热更新。修改后请关注日志面板确认是否生效。 "),t("p",{class:"mt-3 text-sm text-muted-foreground"}," 自动注册/刷新默认启用,若依赖缺失会自动降级并提示。 ")],-1))])])])):v("",!0)]))]))}});export{ie as default}; diff --git a/static/assets/Settings-D4KuXVKT.js b/static/assets/Settings-D4KuXVKT.js new file mode 100644 index 0000000000000000000000000000000000000000..74baacbb22e26c2ae603a567f298d6f26a08e7b4 --- /dev/null +++ b/static/assets/Settings-D4KuXVKT.js @@ -0,0 +1 @@ +import{d as N,G as M,h as m,i as P,w as G,o as O,c as d,u as j,a as t,b as v,t as D,q as r,v as o,x as a,y as x,f as g,e as n}from"./index-CM73xqTK.js";import{u as F}from"./settings-vReTlwTm.js";import{_ as f}from"./SelectMenu.vue_vue_type_script_setup_true_lang-CmlylKNl.js";import{_ as c}from"./Checkbox.vue_vue_type_script_setup_true_lang-D3YmChBg.js";import{_ as y}from"./HelpTip.vue_vue_type_script_setup_true_lang-D0920Okk.js";const A={class:"space-y-8"},B={key:0,class:"rounded-3xl border border-border bg-card p-6 text-sm text-muted-foreground"},C={key:1,class:"rounded-3xl border border-border bg-card p-6"},L={class:"flex items-center justify-between"},q=["disabled"],I={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},T={key:1,class:"mt-6 space-y-8"},$={class:"grid gap-4 lg:grid-cols-3"},J={class:"space-y-4"},R={class:"rounded-2xl border border-border bg-card p-4"},E={class:"mt-4 space-y-3"},z={class:"rounded-2xl border border-border bg-card p-4"},H={class:"mt-4 space-y-3"},K={class:"grid grid-cols-2 items-center gap-x-6 gap-y-2"},Q={class:"flex items-center justify-between gap-2 text-xs text-muted-foreground"},W={class:"space-y-4"},X={class:"rounded-2xl border border-border bg-card p-4"},Y={class:"mt-4 grid grid-cols-2 gap-3 text-sm"},Z={class:"col-span-2 flex items-center justify-between gap-2 text-xs text-muted-foreground"},h={class:"space-y-4"},ee={class:"rounded-2xl border border-border bg-card p-4"},te={class:"mt-4 space-y-3"},se={class:"rounded-2xl border border-border bg-card p-4"},le={class:"mt-4 space-y-3"},ie=N({__name:"Settings",setup(re){const p=F(),{settings:_,isLoading:k}=M(p),s=m(null),b=m(!1),i=m(""),w=[{label:"Base64 编码",value:"base64"},{label:"URL 链接",value:"url"}],V=P(()=>{const u=[{label:"Gemini 3 Pro Preview",value:"gemini-3-pro-preview"},{label:"Gemini 3 Flash Preview",value:"gemini-3-flash-preview"},{label:"Gemini 2.5 Pro",value:"gemini-2.5-pro"},{label:"Gemini 2.5 Flash",value:"gemini-2.5-flash"},{label:"Gemini Auto",value:"gemini-auto"}],e=s.value?.image_generation.supported_models||[];for(const l of e)u.some(S=>S.value===l)||u.push({label:l,value:l});return u});G(_,u=>{if(!u)return;const e=JSON.parse(JSON.stringify(u));e.image_generation=e.image_generation||{enabled:!1,supported_models:[],output_format:"base64"},e.image_generation.output_format||="base64",e.basic=e.basic||{},e.basic.duckmail_base_url||="https://api.duckmail.sbs",e.basic.duckmail_verify_ssl=e.basic.duckmail_verify_ssl??!0,e.basic.browser_headless=e.basic.browser_headless??!0,e.basic.refresh_window_hours=Number.isFinite(e.basic.refresh_window_hours)?e.basic.refresh_window_hours:1,e.basic.register_default_count=Number.isFinite(e.basic.register_default_count)?e.basic.register_default_count:1,e.basic.register_domain=typeof e.basic.register_domain=="string"?e.basic.register_domain:"",e.basic.duckmail_api_key=typeof e.basic.duckmail_api_key=="string"?e.basic.duckmail_api_key:"",e.retry=e.retry||{},e.retry.auto_refresh_accounts_seconds=Number.isFinite(e.retry.auto_refresh_accounts_seconds)?e.retry.auto_refresh_accounts_seconds:60,s.value=e}),O(async()=>{await p.loadSettings()});const U=async()=>{if(s.value){i.value="",b.value=!0;try{await p.updateSettings(s.value)}catch(u){i.value=u.message||"保存失败"}finally{b.value=!1}}};return(u,e)=>(n(),d("div",A,[j(k)?(n(),d("section",B," 正在加载设置... ")):(n(),d("section",C,[t("div",L,[e[23]||(e[23]=t("p",{class:"text-base font-semibold text-foreground"},"配置面板",-1)),t("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:b.value||!s.value,onClick:U}," 保存设置 ",8,q)]),i.value?(n(),d("div",I,D(i.value),1)):v("",!0),s.value?(n(),d("div",T,[t("div",$,[t("div",J,[t("div",R,[e[27]||(e[27]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"基础",-1)),t("div",E,[e[24]||(e[24]=t("label",{class:"block text-xs text-muted-foreground"},"API 密钥",-1)),r(t("input",{"onUpdate:modelValue":e[0]||(e[0]=l=>s.value.basic.api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"可选"},null,512),[[o,s.value.basic.api_key]]),e[25]||(e[25]=t("label",{class:"block text-xs text-muted-foreground"},"基础地址",-1)),r(t("input",{"onUpdate:modelValue":e[1]||(e[1]=l=>s.value.basic.base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"自动检测或手动填写"},null,512),[[o,s.value.basic.base_url]]),e[26]||(e[26]=t("label",{class:"block text-xs text-muted-foreground"},"代理地址",-1)),r(t("input",{"onUpdate:modelValue":e[2]||(e[2]=l=>s.value.basic.proxy=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"http://127.0.0.1:7890"},null,512),[[o,s.value.basic.proxy]])])]),t("div",z,[e[35]||(e[35]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"自动注册/刷新",-1)),t("div",H,[e[31]||(e[31]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API",-1)),r(t("input",{"onUpdate:modelValue":e[3]||(e[3]=l=>s.value.basic.duckmail_base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"https://api.duckmail.sbs"},null,512),[[o,s.value.basic.duckmail_base_url]]),t("div",K,[a(c,{modelValue:s.value.basic.duckmail_verify_ssl,"onUpdate:modelValue":e[4]||(e[4]=l=>s.value.basic.duckmail_verify_ssl=l)},{default:x(()=>[...e[28]||(e[28]=[g(" DuckMail SSL 校验 ",-1)])]),_:1},8,["modelValue"]),a(c,{modelValue:s.value.basic.browser_headless,"onUpdate:modelValue":e[5]||(e[5]=l=>s.value.basic.browser_headless=l),class:"w-full justify-end justify-self-end"},{default:x(()=>[...e[29]||(e[29]=[g(" 无头浏览器 ",-1)])]),_:1},8,["modelValue"])]),t("div",Q,[e[30]||(e[30]=t("span",null,"过期刷新窗口(小时)",-1)),a(y,{text:"当账号距离过期小于等于该值时,会触发自动登录刷新(更新 cookie/session)。"})]),r(t("input",{"onUpdate:modelValue":e[6]||(e[6]=l=>s.value.basic.refresh_window_hours=l),type:"number",min:"0",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.refresh_window_hours,void 0,{number:!0}]]),e[32]||(e[32]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册数量",-1)),r(t("input",{"onUpdate:modelValue":e[7]||(e[7]=l=>s.value.basic.register_default_count=l),type:"number",min:"1",max:"30",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.register_default_count,void 0,{number:!0}]]),e[33]||(e[33]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册域名(推荐)",-1)),r(t("input",{"onUpdate:modelValue":e[8]||(e[8]=l=>s.value.basic.register_domain=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"留空则自动选择"},null,512),[[o,s.value.basic.register_domain]]),e[34]||(e[34]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API 密钥",-1)),r(t("input",{"onUpdate:modelValue":e[9]||(e[9]=l=>s.value.basic.duckmail_api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"dk_xxx"},null,512),[[o,s.value.basic.duckmail_api_key]])])])]),t("div",W,[t("div",X,[e[43]||(e[43]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"重试",-1)),t("div",Y,[e[37]||(e[37]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"新会话尝试次数",-1)),r(t("input",{"onUpdate:modelValue":e[10]||(e[10]=l=>s.value.retry.max_new_session_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_new_session_tries,void 0,{number:!0}]]),e[38]||(e[38]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"请求重试次数",-1)),r(t("input",{"onUpdate:modelValue":e[11]||(e[11]=l=>s.value.retry.max_request_retries=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_request_retries,void 0,{number:!0}]]),e[39]||(e[39]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"账号切换次数",-1)),r(t("input",{"onUpdate:modelValue":e[12]||(e[12]=l=>s.value.retry.max_account_switch_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_account_switch_tries,void 0,{number:!0}]]),e[40]||(e[40]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"失败阈值",-1)),r(t("input",{"onUpdate:modelValue":e[13]||(e[13]=l=>s.value.retry.account_failure_threshold=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.account_failure_threshold,void 0,{number:!0}]]),e[41]||(e[41]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"限流冷却秒数",-1)),r(t("input",{"onUpdate:modelValue":e[14]||(e[14]=l=>s.value.retry.rate_limit_cooldown_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.rate_limit_cooldown_seconds,void 0,{number:!0}]]),e[42]||(e[42]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"会话缓存秒数",-1)),r(t("input",{"onUpdate:modelValue":e[15]||(e[15]=l=>s.value.retry.session_cache_ttl_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.session_cache_ttl_seconds,void 0,{number:!0}]]),t("div",Z,[e[36]||(e[36]=t("span",null,"自动刷新账号间隔(秒,0禁用)",-1)),a(y,{text:"仅在数据库存储启用时生效:用于检测账号配置变化并重载列表,不会刷新 cookie。文件存储模式不会触发。"})]),r(t("input",{"onUpdate:modelValue":e[16]||(e[16]=l=>s.value.retry.auto_refresh_accounts_seconds=l),type:"number",min:"0",max:"600",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.auto_refresh_accounts_seconds,void 0,{number:!0}]])])])]),t("div",h,[t("div",ee,[e[47]||(e[47]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"图像生成",-1)),t("div",te,[a(c,{modelValue:s.value.image_generation.enabled,"onUpdate:modelValue":e[17]||(e[17]=l=>s.value.image_generation.enabled=l)},{default:x(()=>[...e[44]||(e[44]=[g(" 启用图像生成 ",-1)])]),_:1},8,["modelValue"]),e[45]||(e[45]=t("label",{class:"block text-xs text-muted-foreground"},"输出格式",-1)),a(f,{modelValue:s.value.image_generation.output_format,"onUpdate:modelValue":e[18]||(e[18]=l=>s.value.image_generation.output_format=l),options:w,placement:"up",class:"w-full"},null,8,["modelValue"]),e[46]||(e[46]=t("label",{class:"block text-xs text-muted-foreground"},"支持模型",-1)),a(f,{modelValue:s.value.image_generation.supported_models,"onUpdate:modelValue":e[19]||(e[19]=l=>s.value.image_generation.supported_models=l),options:V.value,placeholder:"选择模型",placement:"up",multiple:"",class:"w-full"},null,8,["modelValue","options"])])]),t("div",se,[e[51]||(e[51]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"公开展示",-1)),t("div",le,[e[48]||(e[48]=t("label",{class:"block text-xs text-muted-foreground"},"Logo 地址",-1)),r(t("input",{"onUpdate:modelValue":e[20]||(e[20]=l=>s.value.public_display.logo_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"logo 地址"},null,512),[[o,s.value.public_display.logo_url]]),e[49]||(e[49]=t("label",{class:"block text-xs text-muted-foreground"},"聊天入口",-1)),r(t("input",{"onUpdate:modelValue":e[21]||(e[21]=l=>s.value.public_display.chat_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"聊天入口地址"},null,512),[[o,s.value.public_display.chat_url]]),e[50]||(e[50]=t("label",{class:"block text-xs text-muted-foreground"},"会话有效时长",-1)),r(t("input",{"onUpdate:modelValue":e[22]||(e[22]=l=>s.value.session.expire_hours=l),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.session.expire_hours,void 0,{number:!0}]])])]),e[52]||(e[52]=t("div",{class:"rounded-2xl border border-border bg-card p-4"},[t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"说明"),t("p",{class:"mt-4 text-sm text-muted-foreground"}," 保存后会直接写入配置文件并热更新。修改后请关注日志面板确认是否生效。 "),t("p",{class:"mt-3 text-sm text-muted-foreground"}," 自动注册/刷新默认启用,若依赖缺失会自动降级并提示。 ")],-1))])])])):v("",!0)]))]))}});export{ie as default}; diff --git a/static/assets/Settings-D6lCtCs6.js b/static/assets/Settings-D6lCtCs6.js new file mode 100644 index 0000000000000000000000000000000000000000..e873b7d2e3f6c91ee409fdddfde995f0e8222581 --- /dev/null +++ b/static/assets/Settings-D6lCtCs6.js @@ -0,0 +1 @@ +import{d as N,D as M,h as m,i as P,s as D,o as O,c as d,u as j,a as t,b as v,t as A,m as r,v as o,x as a,A as x,f as g,e as n}from"./index-BIHSVHyU.js";import{u as F}from"./settings-CnjmnC7x.js";import{_ as f}from"./SelectMenu.vue_vue_type_script_setup_true_lang-Cdct4OHH.js";import{_ as c}from"./Checkbox.vue_vue_type_script_setup_true_lang-p51UOq8I.js";import{_ as y}from"./HelpTip.vue_vue_type_script_setup_true_lang-BYvP2-eE.js";const G={class:"space-y-8"},B={key:0,class:"rounded-3xl border border-border bg-card p-6 text-sm text-muted-foreground"},C={key:1,class:"rounded-3xl border border-border bg-card p-6"},L={class:"flex items-center justify-between"},I=["disabled"],T={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},$={key:1,class:"mt-6 space-y-8"},q={class:"grid gap-4 lg:grid-cols-3"},J={class:"space-y-4"},R={class:"rounded-2xl border border-border bg-card p-4"},E={class:"mt-4 space-y-3"},z={class:"rounded-2xl border border-border bg-card p-4"},H={class:"mt-4 space-y-3"},K={class:"grid grid-cols-2 items-center gap-x-6 gap-y-2"},Q={class:"flex items-center justify-between gap-2 text-xs text-muted-foreground"},W={class:"space-y-4"},X={class:"rounded-2xl border border-border bg-card p-4"},Y={class:"mt-4 grid grid-cols-2 gap-3 text-sm"},Z={class:"col-span-2 flex items-center justify-between gap-2 text-xs text-muted-foreground"},h={class:"space-y-4"},ee={class:"rounded-2xl border border-border bg-card p-4"},te={class:"mt-4 space-y-3"},se={class:"rounded-2xl border border-border bg-card p-4"},le={class:"mt-4 space-y-3"},ie=N({__name:"Settings",setup(re){const p=F(),{settings:_,isLoading:k}=M(p),s=m(null),b=m(!1),i=m(""),w=[{label:"Base64 编码",value:"base64"},{label:"URL 链接",value:"url"}],V=P(()=>{const u=[{label:"Gemini 3 Pro Preview",value:"gemini-3-pro-preview"},{label:"Gemini 3 Flash Preview",value:"gemini-3-flash-preview"},{label:"Gemini 2.5 Pro",value:"gemini-2.5-pro"},{label:"Gemini 2.5 Flash",value:"gemini-2.5-flash"},{label:"Gemini Auto",value:"gemini-auto"}],e=s.value?.image_generation.supported_models||[];for(const l of e)u.some(S=>S.value===l)||u.push({label:l,value:l});return u});D(_,u=>{if(!u)return;const e=JSON.parse(JSON.stringify(u));e.image_generation=e.image_generation||{enabled:!1,supported_models:[],output_format:"base64"},e.image_generation.output_format||="base64",e.basic=e.basic||{},e.basic.duckmail_base_url||="https://api.duckmail.sbs",e.basic.duckmail_verify_ssl=e.basic.duckmail_verify_ssl??!0,e.basic.browser_headless=e.basic.browser_headless??!0,e.basic.refresh_window_hours=Number.isFinite(e.basic.refresh_window_hours)?e.basic.refresh_window_hours:1,e.basic.register_default_count=Number.isFinite(e.basic.register_default_count)?e.basic.register_default_count:1,e.basic.register_domain=typeof e.basic.register_domain=="string"?e.basic.register_domain:"",e.basic.duckmail_api_key=typeof e.basic.duckmail_api_key=="string"?e.basic.duckmail_api_key:"",e.retry=e.retry||{},e.retry.auto_refresh_accounts_seconds=Number.isFinite(e.retry.auto_refresh_accounts_seconds)?e.retry.auto_refresh_accounts_seconds:60,s.value=e}),O(async()=>{await p.loadSettings()});const U=async()=>{if(s.value){i.value="",b.value=!0;try{await p.updateSettings(s.value)}catch(u){i.value=u.message||"保存失败"}finally{b.value=!1}}};return(u,e)=>(n(),d("div",G,[j(k)?(n(),d("section",B," 正在加载设置... ")):(n(),d("section",C,[t("div",L,[e[23]||(e[23]=t("p",{class:"text-base font-semibold text-foreground"},"配置面板",-1)),t("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:b.value||!s.value,onClick:U}," 保存设置 ",8,I)]),i.value?(n(),d("div",T,A(i.value),1)):v("",!0),s.value?(n(),d("div",$,[t("div",q,[t("div",J,[t("div",R,[e[27]||(e[27]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"基础",-1)),t("div",E,[e[24]||(e[24]=t("label",{class:"block text-xs text-muted-foreground"},"API 密钥",-1)),r(t("input",{"onUpdate:modelValue":e[0]||(e[0]=l=>s.value.basic.api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"可选"},null,512),[[o,s.value.basic.api_key]]),e[25]||(e[25]=t("label",{class:"block text-xs text-muted-foreground"},"基础地址",-1)),r(t("input",{"onUpdate:modelValue":e[1]||(e[1]=l=>s.value.basic.base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"自动检测或手动填写"},null,512),[[o,s.value.basic.base_url]]),e[26]||(e[26]=t("label",{class:"block text-xs text-muted-foreground"},"代理地址",-1)),r(t("input",{"onUpdate:modelValue":e[2]||(e[2]=l=>s.value.basic.proxy=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"http://127.0.0.1:7890"},null,512),[[o,s.value.basic.proxy]])])]),t("div",z,[e[35]||(e[35]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"自动注册/刷新",-1)),t("div",H,[e[31]||(e[31]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API",-1)),r(t("input",{"onUpdate:modelValue":e[3]||(e[3]=l=>s.value.basic.duckmail_base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"https://api.duckmail.sbs"},null,512),[[o,s.value.basic.duckmail_base_url]]),t("div",K,[a(c,{modelValue:s.value.basic.duckmail_verify_ssl,"onUpdate:modelValue":e[4]||(e[4]=l=>s.value.basic.duckmail_verify_ssl=l)},{default:x(()=>[...e[28]||(e[28]=[g(" DuckMail SSL 校验 ",-1)])]),_:1},8,["modelValue"]),a(c,{modelValue:s.value.basic.browser_headless,"onUpdate:modelValue":e[5]||(e[5]=l=>s.value.basic.browser_headless=l),class:"w-full justify-end justify-self-end"},{default:x(()=>[...e[29]||(e[29]=[g(" 无头浏览器 ",-1)])]),_:1},8,["modelValue"])]),t("div",Q,[e[30]||(e[30]=t("span",null,"过期刷新窗口(小时)",-1)),a(y,{text:"当账号距离过期小于等于该值时,会触发自动登录刷新(更新 cookie/session)。"})]),r(t("input",{"onUpdate:modelValue":e[6]||(e[6]=l=>s.value.basic.refresh_window_hours=l),type:"number",min:"0",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.refresh_window_hours,void 0,{number:!0}]]),e[32]||(e[32]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册数量",-1)),r(t("input",{"onUpdate:modelValue":e[7]||(e[7]=l=>s.value.basic.register_default_count=l),type:"number",min:"1",max:"30",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.register_default_count,void 0,{number:!0}]]),e[33]||(e[33]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册域名(推荐)",-1)),r(t("input",{"onUpdate:modelValue":e[8]||(e[8]=l=>s.value.basic.register_domain=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"留空则自动选择"},null,512),[[o,s.value.basic.register_domain]]),e[34]||(e[34]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API 密钥",-1)),r(t("input",{"onUpdate:modelValue":e[9]||(e[9]=l=>s.value.basic.duckmail_api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"dk_xxx"},null,512),[[o,s.value.basic.duckmail_api_key]])])])]),t("div",W,[t("div",X,[e[43]||(e[43]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"重试",-1)),t("div",Y,[e[37]||(e[37]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"新会话尝试次数",-1)),r(t("input",{"onUpdate:modelValue":e[10]||(e[10]=l=>s.value.retry.max_new_session_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_new_session_tries,void 0,{number:!0}]]),e[38]||(e[38]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"请求重试次数",-1)),r(t("input",{"onUpdate:modelValue":e[11]||(e[11]=l=>s.value.retry.max_request_retries=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_request_retries,void 0,{number:!0}]]),e[39]||(e[39]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"账号切换次数",-1)),r(t("input",{"onUpdate:modelValue":e[12]||(e[12]=l=>s.value.retry.max_account_switch_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_account_switch_tries,void 0,{number:!0}]]),e[40]||(e[40]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"失败阈值",-1)),r(t("input",{"onUpdate:modelValue":e[13]||(e[13]=l=>s.value.retry.account_failure_threshold=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.account_failure_threshold,void 0,{number:!0}]]),e[41]||(e[41]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"限流冷却秒数",-1)),r(t("input",{"onUpdate:modelValue":e[14]||(e[14]=l=>s.value.retry.rate_limit_cooldown_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.rate_limit_cooldown_seconds,void 0,{number:!0}]]),e[42]||(e[42]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"会话缓存秒数",-1)),r(t("input",{"onUpdate:modelValue":e[15]||(e[15]=l=>s.value.retry.session_cache_ttl_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.session_cache_ttl_seconds,void 0,{number:!0}]]),t("div",Z,[e[36]||(e[36]=t("span",null,"自动刷新账号间隔(秒,0禁用)",-1)),a(y,{text:"仅在数据库存储启用时生效:用于检测账号配置变化并重载列表,不会刷新 cookie。文件存储模式不会触发。"})]),r(t("input",{"onUpdate:modelValue":e[16]||(e[16]=l=>s.value.retry.auto_refresh_accounts_seconds=l),type:"number",min:"0",max:"600",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.auto_refresh_accounts_seconds,void 0,{number:!0}]])])])]),t("div",h,[t("div",ee,[e[47]||(e[47]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"图像生成",-1)),t("div",te,[a(c,{modelValue:s.value.image_generation.enabled,"onUpdate:modelValue":e[17]||(e[17]=l=>s.value.image_generation.enabled=l)},{default:x(()=>[...e[44]||(e[44]=[g(" 启用图像生成 ",-1)])]),_:1},8,["modelValue"]),e[45]||(e[45]=t("label",{class:"block text-xs text-muted-foreground"},"输出格式",-1)),a(f,{modelValue:s.value.image_generation.output_format,"onUpdate:modelValue":e[18]||(e[18]=l=>s.value.image_generation.output_format=l),options:w,placement:"up",class:"w-full"},null,8,["modelValue"]),e[46]||(e[46]=t("label",{class:"block text-xs text-muted-foreground"},"支持模型",-1)),a(f,{modelValue:s.value.image_generation.supported_models,"onUpdate:modelValue":e[19]||(e[19]=l=>s.value.image_generation.supported_models=l),options:V.value,placeholder:"选择模型",placement:"up",multiple:"",class:"w-full"},null,8,["modelValue","options"])])]),t("div",se,[e[51]||(e[51]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"公开展示",-1)),t("div",le,[e[48]||(e[48]=t("label",{class:"block text-xs text-muted-foreground"},"Logo 地址",-1)),r(t("input",{"onUpdate:modelValue":e[20]||(e[20]=l=>s.value.public_display.logo_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"logo 地址"},null,512),[[o,s.value.public_display.logo_url]]),e[49]||(e[49]=t("label",{class:"block text-xs text-muted-foreground"},"聊天入口",-1)),r(t("input",{"onUpdate:modelValue":e[21]||(e[21]=l=>s.value.public_display.chat_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"聊天入口地址"},null,512),[[o,s.value.public_display.chat_url]]),e[50]||(e[50]=t("label",{class:"block text-xs text-muted-foreground"},"会话有效时长",-1)),r(t("input",{"onUpdate:modelValue":e[22]||(e[22]=l=>s.value.session.expire_hours=l),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.session.expire_hours,void 0,{number:!0}]])])]),e[52]||(e[52]=t("div",{class:"rounded-2xl border border-border bg-card p-4"},[t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"说明"),t("p",{class:"mt-4 text-sm text-muted-foreground"}," 保存后会直接写入配置文件并热更新。修改后请关注日志面板确认是否生效。 "),t("p",{class:"mt-3 text-sm text-muted-foreground"}," 自动注册/刷新默认启用,若依赖缺失会自动降级并提示。 ")],-1))])])])):v("",!0)]))]))}});export{ie as default}; diff --git a/static/assets/Settings-DKLaTN3U.js b/static/assets/Settings-DKLaTN3U.js new file mode 100644 index 0000000000000000000000000000000000000000..6a87148ae0635d1cd495cb3cde8bd9d066f3cebf --- /dev/null +++ b/static/assets/Settings-DKLaTN3U.js @@ -0,0 +1 @@ +import{d as N,D as M,h as m,i as P,s as D,o as O,c as d,u as j,a as t,b as v,t as A,m as r,v as o,x as a,A as x,f as g,e as n}from"./index-CDbQWWUi.js";import{u as F}from"./settings-CqbT_C8Q.js";import{_ as f}from"./SelectMenu.vue_vue_type_script_setup_true_lang-DebMUA1u.js";import{_ as c}from"./Checkbox.vue_vue_type_script_setup_true_lang-B6kSOS_e.js";import{_ as y}from"./HelpTip.vue_vue_type_script_setup_true_lang-Cw2hnECN.js";const G={class:"space-y-8"},B={key:0,class:"rounded-3xl border border-border bg-card p-6 text-sm text-muted-foreground"},C={key:1,class:"rounded-3xl border border-border bg-card p-6"},L={class:"flex items-center justify-between"},I=["disabled"],T={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},$={key:1,class:"mt-6 space-y-8"},q={class:"grid gap-4 lg:grid-cols-3"},J={class:"space-y-4"},R={class:"rounded-2xl border border-border bg-card p-4"},E={class:"mt-4 space-y-3"},z={class:"rounded-2xl border border-border bg-card p-4"},H={class:"mt-4 space-y-3"},K={class:"grid grid-cols-2 items-center gap-x-6 gap-y-2"},Q={class:"flex items-center justify-between gap-2 text-xs text-muted-foreground"},W={class:"space-y-4"},X={class:"rounded-2xl border border-border bg-card p-4"},Y={class:"mt-4 grid grid-cols-2 gap-3 text-sm"},Z={class:"col-span-2 flex items-center justify-between gap-2 text-xs text-muted-foreground"},h={class:"space-y-4"},ee={class:"rounded-2xl border border-border bg-card p-4"},te={class:"mt-4 space-y-3"},se={class:"rounded-2xl border border-border bg-card p-4"},le={class:"mt-4 space-y-3"},ie=N({__name:"Settings",setup(re){const p=F(),{settings:_,isLoading:k}=M(p),s=m(null),b=m(!1),i=m(""),w=[{label:"Base64 编码",value:"base64"},{label:"URL 链接",value:"url"}],V=P(()=>{const u=[{label:"Gemini 3 Pro Preview",value:"gemini-3-pro-preview"},{label:"Gemini 3 Flash Preview",value:"gemini-3-flash-preview"},{label:"Gemini 2.5 Pro",value:"gemini-2.5-pro"},{label:"Gemini 2.5 Flash",value:"gemini-2.5-flash"},{label:"Gemini Auto",value:"gemini-auto"}],e=s.value?.image_generation.supported_models||[];for(const l of e)u.some(S=>S.value===l)||u.push({label:l,value:l});return u});D(_,u=>{if(!u)return;const e=JSON.parse(JSON.stringify(u));e.image_generation=e.image_generation||{enabled:!1,supported_models:[],output_format:"base64"},e.image_generation.output_format||="base64",e.basic=e.basic||{},e.basic.duckmail_base_url||="https://api.duckmail.sbs",e.basic.duckmail_verify_ssl=e.basic.duckmail_verify_ssl??!0,e.basic.browser_headless=e.basic.browser_headless??!0,e.basic.refresh_window_hours=Number.isFinite(e.basic.refresh_window_hours)?e.basic.refresh_window_hours:1,e.basic.register_default_count=Number.isFinite(e.basic.register_default_count)?e.basic.register_default_count:1,e.basic.register_domain=typeof e.basic.register_domain=="string"?e.basic.register_domain:"",e.basic.duckmail_api_key=typeof e.basic.duckmail_api_key=="string"?e.basic.duckmail_api_key:"",e.retry=e.retry||{},e.retry.auto_refresh_accounts_seconds=Number.isFinite(e.retry.auto_refresh_accounts_seconds)?e.retry.auto_refresh_accounts_seconds:60,s.value=e}),O(async()=>{await p.loadSettings()});const U=async()=>{if(s.value){i.value="",b.value=!0;try{await p.updateSettings(s.value)}catch(u){i.value=u.message||"保存失败"}finally{b.value=!1}}};return(u,e)=>(n(),d("div",G,[j(k)?(n(),d("section",B," 正在加载设置... ")):(n(),d("section",C,[t("div",L,[e[23]||(e[23]=t("p",{class:"text-base font-semibold text-foreground"},"配置面板",-1)),t("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:b.value||!s.value,onClick:U}," 保存设置 ",8,I)]),i.value?(n(),d("div",T,A(i.value),1)):v("",!0),s.value?(n(),d("div",$,[t("div",q,[t("div",J,[t("div",R,[e[27]||(e[27]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"基础",-1)),t("div",E,[e[24]||(e[24]=t("label",{class:"block text-xs text-muted-foreground"},"API 密钥",-1)),r(t("input",{"onUpdate:modelValue":e[0]||(e[0]=l=>s.value.basic.api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"可选"},null,512),[[o,s.value.basic.api_key]]),e[25]||(e[25]=t("label",{class:"block text-xs text-muted-foreground"},"基础地址",-1)),r(t("input",{"onUpdate:modelValue":e[1]||(e[1]=l=>s.value.basic.base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"自动检测或手动填写"},null,512),[[o,s.value.basic.base_url]]),e[26]||(e[26]=t("label",{class:"block text-xs text-muted-foreground"},"代理地址",-1)),r(t("input",{"onUpdate:modelValue":e[2]||(e[2]=l=>s.value.basic.proxy=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"http://127.0.0.1:7890"},null,512),[[o,s.value.basic.proxy]])])]),t("div",z,[e[35]||(e[35]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"自动注册/刷新",-1)),t("div",H,[e[31]||(e[31]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API",-1)),r(t("input",{"onUpdate:modelValue":e[3]||(e[3]=l=>s.value.basic.duckmail_base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"https://api.duckmail.sbs"},null,512),[[o,s.value.basic.duckmail_base_url]]),t("div",K,[a(c,{modelValue:s.value.basic.duckmail_verify_ssl,"onUpdate:modelValue":e[4]||(e[4]=l=>s.value.basic.duckmail_verify_ssl=l)},{default:x(()=>[...e[28]||(e[28]=[g(" DuckMail SSL 校验 ",-1)])]),_:1},8,["modelValue"]),a(c,{modelValue:s.value.basic.browser_headless,"onUpdate:modelValue":e[5]||(e[5]=l=>s.value.basic.browser_headless=l),class:"w-full justify-end justify-self-end"},{default:x(()=>[...e[29]||(e[29]=[g(" 无头浏览器 ",-1)])]),_:1},8,["modelValue"])]),t("div",Q,[e[30]||(e[30]=t("span",null,"过期刷新窗口(小时)",-1)),a(y,{text:"当账号距离过期小于等于该值时,会触发自动登录刷新(更新 cookie/session)。"})]),r(t("input",{"onUpdate:modelValue":e[6]||(e[6]=l=>s.value.basic.refresh_window_hours=l),type:"number",min:"0",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.refresh_window_hours,void 0,{number:!0}]]),e[32]||(e[32]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册数量",-1)),r(t("input",{"onUpdate:modelValue":e[7]||(e[7]=l=>s.value.basic.register_default_count=l),type:"number",min:"1",max:"30",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.register_default_count,void 0,{number:!0}]]),e[33]||(e[33]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册域名(推荐)",-1)),r(t("input",{"onUpdate:modelValue":e[8]||(e[8]=l=>s.value.basic.register_domain=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"留空则自动选择"},null,512),[[o,s.value.basic.register_domain]]),e[34]||(e[34]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API 密钥",-1)),r(t("input",{"onUpdate:modelValue":e[9]||(e[9]=l=>s.value.basic.duckmail_api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"dk_xxx"},null,512),[[o,s.value.basic.duckmail_api_key]])])])]),t("div",W,[t("div",X,[e[43]||(e[43]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"重试",-1)),t("div",Y,[e[37]||(e[37]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"新会话尝试次数",-1)),r(t("input",{"onUpdate:modelValue":e[10]||(e[10]=l=>s.value.retry.max_new_session_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_new_session_tries,void 0,{number:!0}]]),e[38]||(e[38]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"请求重试次数",-1)),r(t("input",{"onUpdate:modelValue":e[11]||(e[11]=l=>s.value.retry.max_request_retries=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_request_retries,void 0,{number:!0}]]),e[39]||(e[39]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"账号切换次数",-1)),r(t("input",{"onUpdate:modelValue":e[12]||(e[12]=l=>s.value.retry.max_account_switch_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_account_switch_tries,void 0,{number:!0}]]),e[40]||(e[40]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"失败阈值",-1)),r(t("input",{"onUpdate:modelValue":e[13]||(e[13]=l=>s.value.retry.account_failure_threshold=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.account_failure_threshold,void 0,{number:!0}]]),e[41]||(e[41]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"限流冷却秒数",-1)),r(t("input",{"onUpdate:modelValue":e[14]||(e[14]=l=>s.value.retry.rate_limit_cooldown_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.rate_limit_cooldown_seconds,void 0,{number:!0}]]),e[42]||(e[42]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"会话缓存秒数",-1)),r(t("input",{"onUpdate:modelValue":e[15]||(e[15]=l=>s.value.retry.session_cache_ttl_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.session_cache_ttl_seconds,void 0,{number:!0}]]),t("div",Z,[e[36]||(e[36]=t("span",null,"自动刷新账号间隔(秒,0禁用)",-1)),a(y,{text:"仅在数据库存储启用时生效:用于检测账号配置变化并重载列表,不会刷新 cookie。文件存储模式不会触发。"})]),r(t("input",{"onUpdate:modelValue":e[16]||(e[16]=l=>s.value.retry.auto_refresh_accounts_seconds=l),type:"number",min:"0",max:"600",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.auto_refresh_accounts_seconds,void 0,{number:!0}]])])])]),t("div",h,[t("div",ee,[e[47]||(e[47]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"图像生成",-1)),t("div",te,[a(c,{modelValue:s.value.image_generation.enabled,"onUpdate:modelValue":e[17]||(e[17]=l=>s.value.image_generation.enabled=l)},{default:x(()=>[...e[44]||(e[44]=[g(" 启用图像生成 ",-1)])]),_:1},8,["modelValue"]),e[45]||(e[45]=t("label",{class:"block text-xs text-muted-foreground"},"输出格式",-1)),a(f,{modelValue:s.value.image_generation.output_format,"onUpdate:modelValue":e[18]||(e[18]=l=>s.value.image_generation.output_format=l),options:w,placement:"up",class:"w-full"},null,8,["modelValue"]),e[46]||(e[46]=t("label",{class:"block text-xs text-muted-foreground"},"支持模型",-1)),a(f,{modelValue:s.value.image_generation.supported_models,"onUpdate:modelValue":e[19]||(e[19]=l=>s.value.image_generation.supported_models=l),options:V.value,placeholder:"选择模型",placement:"up",multiple:"",class:"w-full"},null,8,["modelValue","options"])])]),t("div",se,[e[51]||(e[51]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"公开展示",-1)),t("div",le,[e[48]||(e[48]=t("label",{class:"block text-xs text-muted-foreground"},"Logo 地址",-1)),r(t("input",{"onUpdate:modelValue":e[20]||(e[20]=l=>s.value.public_display.logo_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"logo 地址"},null,512),[[o,s.value.public_display.logo_url]]),e[49]||(e[49]=t("label",{class:"block text-xs text-muted-foreground"},"聊天入口",-1)),r(t("input",{"onUpdate:modelValue":e[21]||(e[21]=l=>s.value.public_display.chat_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"聊天入口地址"},null,512),[[o,s.value.public_display.chat_url]]),e[50]||(e[50]=t("label",{class:"block text-xs text-muted-foreground"},"会话有效时长",-1)),r(t("input",{"onUpdate:modelValue":e[22]||(e[22]=l=>s.value.session.expire_hours=l),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.session.expire_hours,void 0,{number:!0}]])])]),e[52]||(e[52]=t("div",{class:"rounded-2xl border border-border bg-card p-4"},[t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"说明"),t("p",{class:"mt-4 text-sm text-muted-foreground"}," 保存后会直接写入配置文件并热更新。修改后请关注日志面板确认是否生效。 "),t("p",{class:"mt-3 text-sm text-muted-foreground"}," 自动注册/刷新默认启用,若依赖缺失会自动降级并提示。 ")],-1))])])])):v("",!0)]))]))}});export{ie as default}; diff --git a/static/assets/Settings-DPDEjYSf.js b/static/assets/Settings-DPDEjYSf.js new file mode 100644 index 0000000000000000000000000000000000000000..09be9a2afa175b15f7f4c01a5a23920c6434ec57 --- /dev/null +++ b/static/assets/Settings-DPDEjYSf.js @@ -0,0 +1 @@ +import{d as N,D as M,h as m,i as P,s as D,o as O,c as d,u as j,a as t,b as v,t as A,m as r,v as o,x as a,A as x,f as g,e as n}from"./index-4tSmcUDY.js";import{u as F}from"./settings-By2abYt3.js";import{_ as f}from"./SelectMenu.vue_vue_type_script_setup_true_lang-DsnNWmZF.js";import{_ as c}from"./Checkbox.vue_vue_type_script_setup_true_lang-B2pvqq8a.js";import{_ as y}from"./HelpTip.vue_vue_type_script_setup_true_lang-BNcd5Xum.js";const G={class:"space-y-8"},B={key:0,class:"rounded-3xl border border-border bg-card p-6 text-sm text-muted-foreground"},C={key:1,class:"rounded-3xl border border-border bg-card p-6"},L={class:"flex items-center justify-between"},I=["disabled"],T={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},$={key:1,class:"mt-6 space-y-8"},q={class:"grid gap-4 lg:grid-cols-3"},J={class:"space-y-4"},R={class:"rounded-2xl border border-border bg-card p-4"},E={class:"mt-4 space-y-3"},z={class:"rounded-2xl border border-border bg-card p-4"},H={class:"mt-4 space-y-3"},K={class:"grid grid-cols-2 items-center gap-x-6 gap-y-2"},Q={class:"flex items-center justify-between gap-2 text-xs text-muted-foreground"},W={class:"space-y-4"},X={class:"rounded-2xl border border-border bg-card p-4"},Y={class:"mt-4 grid grid-cols-2 gap-3 text-sm"},Z={class:"col-span-2 flex items-center justify-between gap-2 text-xs text-muted-foreground"},h={class:"space-y-4"},ee={class:"rounded-2xl border border-border bg-card p-4"},te={class:"mt-4 space-y-3"},se={class:"rounded-2xl border border-border bg-card p-4"},le={class:"mt-4 space-y-3"},ie=N({__name:"Settings",setup(re){const p=F(),{settings:_,isLoading:k}=M(p),s=m(null),b=m(!1),i=m(""),w=[{label:"Base64 编码",value:"base64"},{label:"URL 链接",value:"url"}],V=P(()=>{const u=[{label:"Gemini 3 Pro Preview",value:"gemini-3-pro-preview"},{label:"Gemini 3 Flash Preview",value:"gemini-3-flash-preview"},{label:"Gemini 2.5 Pro",value:"gemini-2.5-pro"},{label:"Gemini 2.5 Flash",value:"gemini-2.5-flash"},{label:"Gemini Auto",value:"gemini-auto"}],e=s.value?.image_generation.supported_models||[];for(const l of e)u.some(S=>S.value===l)||u.push({label:l,value:l});return u});D(_,u=>{if(!u)return;const e=JSON.parse(JSON.stringify(u));e.image_generation=e.image_generation||{enabled:!1,supported_models:[],output_format:"base64"},e.image_generation.output_format||="base64",e.basic=e.basic||{},e.basic.duckmail_base_url||="https://api.duckmail.sbs",e.basic.duckmail_verify_ssl=e.basic.duckmail_verify_ssl??!0,e.basic.browser_headless=e.basic.browser_headless??!0,e.basic.refresh_window_hours=Number.isFinite(e.basic.refresh_window_hours)?e.basic.refresh_window_hours:1,e.basic.register_default_count=Number.isFinite(e.basic.register_default_count)?e.basic.register_default_count:1,e.basic.register_domain=typeof e.basic.register_domain=="string"?e.basic.register_domain:"",e.basic.duckmail_api_key=typeof e.basic.duckmail_api_key=="string"?e.basic.duckmail_api_key:"",e.retry=e.retry||{},e.retry.auto_refresh_accounts_seconds=Number.isFinite(e.retry.auto_refresh_accounts_seconds)?e.retry.auto_refresh_accounts_seconds:60,s.value=e}),O(async()=>{await p.loadSettings()});const U=async()=>{if(s.value){i.value="",b.value=!0;try{await p.updateSettings(s.value)}catch(u){i.value=u.message||"保存失败"}finally{b.value=!1}}};return(u,e)=>(n(),d("div",G,[j(k)?(n(),d("section",B," 正在加载设置... ")):(n(),d("section",C,[t("div",L,[e[23]||(e[23]=t("p",{class:"text-base font-semibold text-foreground"},"配置面板",-1)),t("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:b.value||!s.value,onClick:U}," 保存设置 ",8,I)]),i.value?(n(),d("div",T,A(i.value),1)):v("",!0),s.value?(n(),d("div",$,[t("div",q,[t("div",J,[t("div",R,[e[27]||(e[27]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"基础",-1)),t("div",E,[e[24]||(e[24]=t("label",{class:"block text-xs text-muted-foreground"},"API 密钥",-1)),r(t("input",{"onUpdate:modelValue":e[0]||(e[0]=l=>s.value.basic.api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"可选"},null,512),[[o,s.value.basic.api_key]]),e[25]||(e[25]=t("label",{class:"block text-xs text-muted-foreground"},"基础地址",-1)),r(t("input",{"onUpdate:modelValue":e[1]||(e[1]=l=>s.value.basic.base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"自动检测或手动填写"},null,512),[[o,s.value.basic.base_url]]),e[26]||(e[26]=t("label",{class:"block text-xs text-muted-foreground"},"代理地址",-1)),r(t("input",{"onUpdate:modelValue":e[2]||(e[2]=l=>s.value.basic.proxy=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"http://127.0.0.1:7890"},null,512),[[o,s.value.basic.proxy]])])]),t("div",z,[e[35]||(e[35]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"自动注册/刷新",-1)),t("div",H,[e[31]||(e[31]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API",-1)),r(t("input",{"onUpdate:modelValue":e[3]||(e[3]=l=>s.value.basic.duckmail_base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"https://api.duckmail.sbs"},null,512),[[o,s.value.basic.duckmail_base_url]]),t("div",K,[a(c,{modelValue:s.value.basic.duckmail_verify_ssl,"onUpdate:modelValue":e[4]||(e[4]=l=>s.value.basic.duckmail_verify_ssl=l)},{default:x(()=>[...e[28]||(e[28]=[g(" DuckMail SSL 校验 ",-1)])]),_:1},8,["modelValue"]),a(c,{modelValue:s.value.basic.browser_headless,"onUpdate:modelValue":e[5]||(e[5]=l=>s.value.basic.browser_headless=l),class:"w-full justify-end justify-self-end"},{default:x(()=>[...e[29]||(e[29]=[g(" 无头浏览器 ",-1)])]),_:1},8,["modelValue"])]),t("div",Q,[e[30]||(e[30]=t("span",null,"过期刷新窗口(小时)",-1)),a(y,{text:"当账号距离过期小于等于该值时,会触发自动登录刷新(更新 cookie/session)。"})]),r(t("input",{"onUpdate:modelValue":e[6]||(e[6]=l=>s.value.basic.refresh_window_hours=l),type:"number",min:"0",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.refresh_window_hours,void 0,{number:!0}]]),e[32]||(e[32]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册数量",-1)),r(t("input",{"onUpdate:modelValue":e[7]||(e[7]=l=>s.value.basic.register_default_count=l),type:"number",min:"1",max:"30",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.register_default_count,void 0,{number:!0}]]),e[33]||(e[33]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册域名",-1)),r(t("input",{"onUpdate:modelValue":e[8]||(e[8]=l=>s.value.basic.register_domain=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"留空则自动选择"},null,512),[[o,s.value.basic.register_domain]]),e[34]||(e[34]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API 密钥",-1)),r(t("input",{"onUpdate:modelValue":e[9]||(e[9]=l=>s.value.basic.duckmail_api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"dk_xxx"},null,512),[[o,s.value.basic.duckmail_api_key]])])])]),t("div",W,[t("div",X,[e[43]||(e[43]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"重试",-1)),t("div",Y,[e[37]||(e[37]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"新会话尝试次数",-1)),r(t("input",{"onUpdate:modelValue":e[10]||(e[10]=l=>s.value.retry.max_new_session_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_new_session_tries,void 0,{number:!0}]]),e[38]||(e[38]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"请求重试次数",-1)),r(t("input",{"onUpdate:modelValue":e[11]||(e[11]=l=>s.value.retry.max_request_retries=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_request_retries,void 0,{number:!0}]]),e[39]||(e[39]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"账号切换次数",-1)),r(t("input",{"onUpdate:modelValue":e[12]||(e[12]=l=>s.value.retry.max_account_switch_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_account_switch_tries,void 0,{number:!0}]]),e[40]||(e[40]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"失败阈值",-1)),r(t("input",{"onUpdate:modelValue":e[13]||(e[13]=l=>s.value.retry.account_failure_threshold=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.account_failure_threshold,void 0,{number:!0}]]),e[41]||(e[41]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"限流冷却秒数",-1)),r(t("input",{"onUpdate:modelValue":e[14]||(e[14]=l=>s.value.retry.rate_limit_cooldown_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.rate_limit_cooldown_seconds,void 0,{number:!0}]]),e[42]||(e[42]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"会话缓存秒数",-1)),r(t("input",{"onUpdate:modelValue":e[15]||(e[15]=l=>s.value.retry.session_cache_ttl_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.session_cache_ttl_seconds,void 0,{number:!0}]]),t("div",Z,[e[36]||(e[36]=t("span",null,"自动刷新账号间隔(秒,0禁用)",-1)),a(y,{text:"仅在数据库存储启用时生效:用于检测账号配置变化并重载列表,不会刷新 cookie。文件存储模式不会触发。"})]),r(t("input",{"onUpdate:modelValue":e[16]||(e[16]=l=>s.value.retry.auto_refresh_accounts_seconds=l),type:"number",min:"0",max:"600",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.auto_refresh_accounts_seconds,void 0,{number:!0}]])])])]),t("div",h,[t("div",ee,[e[47]||(e[47]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"图像生成",-1)),t("div",te,[a(c,{modelValue:s.value.image_generation.enabled,"onUpdate:modelValue":e[17]||(e[17]=l=>s.value.image_generation.enabled=l)},{default:x(()=>[...e[44]||(e[44]=[g(" 启用图像生成 ",-1)])]),_:1},8,["modelValue"]),e[45]||(e[45]=t("label",{class:"block text-xs text-muted-foreground"},"输出格式",-1)),a(f,{modelValue:s.value.image_generation.output_format,"onUpdate:modelValue":e[18]||(e[18]=l=>s.value.image_generation.output_format=l),options:w,placement:"up",class:"w-full"},null,8,["modelValue"]),e[46]||(e[46]=t("label",{class:"block text-xs text-muted-foreground"},"支持模型",-1)),a(f,{modelValue:s.value.image_generation.supported_models,"onUpdate:modelValue":e[19]||(e[19]=l=>s.value.image_generation.supported_models=l),options:V.value,placeholder:"选择模型",placement:"up",multiple:"",class:"w-full"},null,8,["modelValue","options"])])]),t("div",se,[e[51]||(e[51]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"公开展示",-1)),t("div",le,[e[48]||(e[48]=t("label",{class:"block text-xs text-muted-foreground"},"Logo 地址",-1)),r(t("input",{"onUpdate:modelValue":e[20]||(e[20]=l=>s.value.public_display.logo_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"logo 地址"},null,512),[[o,s.value.public_display.logo_url]]),e[49]||(e[49]=t("label",{class:"block text-xs text-muted-foreground"},"聊天入口",-1)),r(t("input",{"onUpdate:modelValue":e[21]||(e[21]=l=>s.value.public_display.chat_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"聊天入口地址"},null,512),[[o,s.value.public_display.chat_url]]),e[50]||(e[50]=t("label",{class:"block text-xs text-muted-foreground"},"会话有效时长",-1)),r(t("input",{"onUpdate:modelValue":e[22]||(e[22]=l=>s.value.session.expire_hours=l),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.session.expire_hours,void 0,{number:!0}]])])]),e[52]||(e[52]=t("div",{class:"rounded-2xl border border-border bg-card p-4"},[t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"说明"),t("p",{class:"mt-4 text-sm text-muted-foreground"}," 保存后会直接写入配置文件并热更新。修改后请关注日志面板确认是否生效。 "),t("p",{class:"mt-3 text-sm text-muted-foreground"}," 自动注册/刷新默认启用,若依赖缺失会自动降级并提示。 ")],-1))])])])):v("",!0)]))]))}});export{ie as default}; diff --git a/static/assets/Settings-DcFLbKTS.js b/static/assets/Settings-DcFLbKTS.js new file mode 100644 index 0000000000000000000000000000000000000000..ea536fb9a4f8deac5c21c6a07ca522e3b5a77c38 --- /dev/null +++ b/static/assets/Settings-DcFLbKTS.js @@ -0,0 +1 @@ +import{d as M,E as P,h as m,i as G,A as O,o as A,c as d,u as D,a as t,b as y,t as F,q as r,v as o,p as a,s as x,G as j,f as g,e as n}from"./index-BRM37S6x.js";import{u as B}from"./settings-SJhBKmRs.js";import{_}from"./SelectMenu.vue_vue_type_script_setup_true_lang-CeWkosco.js";import{_ as c}from"./Checkbox.vue_vue_type_script_setup_true_lang-BBcv-AYv.js";import{_ as v}from"./HelpTip.vue_vue_type_script_setup_true_lang-DJyeZS9P.js";const C={class:"space-y-8"},L={key:0,class:"rounded-3xl border border-border bg-card p-6 text-sm text-muted-foreground"},T={key:1,class:"rounded-3xl border border-border bg-card p-6"},q={class:"flex items-center justify-between"},I=["disabled"],$={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},E={key:1,class:"mt-6 space-y-8"},J={class:"grid gap-4 lg:grid-cols-3"},R={class:"space-y-4"},z={class:"rounded-2xl border border-border bg-card p-4"},H={class:"mt-4 space-y-3"},K={class:"rounded-2xl border border-border bg-card p-4"},Q={class:"mt-4 space-y-3"},W={class:"grid grid-cols-2 items-center gap-x-6 gap-y-2"},X={class:"flex items-center justify-end gap-2"},Y={class:"flex items-center justify-between gap-2 text-xs text-muted-foreground"},Z={class:"space-y-4"},h={class:"rounded-2xl border border-border bg-card p-4"},ee={class:"mt-4 grid grid-cols-2 gap-3 text-sm"},te={class:"col-span-2 flex items-center justify-between gap-2 text-xs text-muted-foreground"},se={class:"space-y-4"},le={class:"rounded-2xl border border-border bg-card p-4"},re={class:"mt-4 space-y-3"},oe={class:"rounded-2xl border border-border bg-card p-4"},ue={class:"mt-4 space-y-3"},me=M({__name:"Settings",setup(ae){const p=B(),{settings:k,isLoading:w}=P(p),f=j(),s=m(null),b=m(!1),i=m(""),V=[{label:"Base64 编码",value:"base64"},{label:"URL 链接",value:"url"}],U=G(()=>{const u=[{label:"Gemini 3 Pro Preview",value:"gemini-3-pro-preview"},{label:"Gemini 3 Flash Preview",value:"gemini-3-flash-preview"},{label:"Gemini 2.5 Pro",value:"gemini-2.5-pro"},{label:"Gemini 2.5 Flash",value:"gemini-2.5-flash"},{label:"Gemini Auto",value:"gemini-auto"}],e=s.value?.image_generation.supported_models||[];for(const l of e)u.some(N=>N.value===l)||u.push({label:l,value:l});return u});O(k,u=>{if(!u)return;const e=JSON.parse(JSON.stringify(u));e.image_generation=e.image_generation||{enabled:!1,supported_models:[],output_format:"base64"},e.image_generation.output_format||="base64",e.basic=e.basic||{},e.basic.duckmail_base_url||="https://api.duckmail.sbs",e.basic.duckmail_verify_ssl=e.basic.duckmail_verify_ssl??!0,e.basic.browser_headless=e.basic.browser_headless??!1,e.basic.refresh_window_hours=Number.isFinite(e.basic.refresh_window_hours)?e.basic.refresh_window_hours:1,e.basic.register_default_count=Number.isFinite(e.basic.register_default_count)?e.basic.register_default_count:1,e.basic.register_domain=typeof e.basic.register_domain=="string"?e.basic.register_domain:"",e.basic.duckmail_api_key=typeof e.basic.duckmail_api_key=="string"?e.basic.duckmail_api_key:"",e.retry=e.retry||{},e.retry.auto_refresh_accounts_seconds=Number.isFinite(e.retry.auto_refresh_accounts_seconds)?e.retry.auto_refresh_accounts_seconds:60,s.value=e}),A(async()=>{await p.loadSettings()});const S=async()=>{if(s.value){i.value="",b.value=!0;try{await p.updateSettings(s.value),f.success("设置保存成功")}catch(u){i.value=u.message||"保存失败",f.error(u.message||"保存失败")}finally{b.value=!1}}};return(u,e)=>(n(),d("div",C,[D(w)?(n(),d("section",L," 正在加载设置... ")):(n(),d("section",T,[t("div",q,[e[23]||(e[23]=t("p",{class:"text-base font-semibold text-foreground"},"配置面板",-1)),t("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",disabled:b.value||!s.value,onClick:S}," 保存设置 ",8,I)]),i.value?(n(),d("div",$,F(i.value),1)):y("",!0),s.value?(n(),d("div",E,[t("div",J,[t("div",R,[t("div",z,[e[27]||(e[27]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"基础",-1)),t("div",H,[e[24]||(e[24]=t("label",{class:"block text-xs text-muted-foreground"},"API 密钥",-1)),r(t("input",{"onUpdate:modelValue":e[0]||(e[0]=l=>s.value.basic.api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"可选"},null,512),[[o,s.value.basic.api_key]]),e[25]||(e[25]=t("label",{class:"block text-xs text-muted-foreground"},"基础地址",-1)),r(t("input",{"onUpdate:modelValue":e[1]||(e[1]=l=>s.value.basic.base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"自动检测或手动填写"},null,512),[[o,s.value.basic.base_url]]),e[26]||(e[26]=t("label",{class:"block text-xs text-muted-foreground"},"代理地址",-1)),r(t("input",{"onUpdate:modelValue":e[2]||(e[2]=l=>s.value.basic.proxy=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"http://127.0.0.1:7890"},null,512),[[o,s.value.basic.proxy]])])]),t("div",K,[e[35]||(e[35]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"自动注册/刷新",-1)),t("div",Q,[e[31]||(e[31]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API",-1)),r(t("input",{"onUpdate:modelValue":e[3]||(e[3]=l=>s.value.basic.duckmail_base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"https://api.duckmail.sbs"},null,512),[[o,s.value.basic.duckmail_base_url]]),t("div",W,[a(c,{modelValue:s.value.basic.duckmail_verify_ssl,"onUpdate:modelValue":e[4]||(e[4]=l=>s.value.basic.duckmail_verify_ssl=l)},{default:x(()=>[...e[28]||(e[28]=[g(" DuckMail SSL 校验 ",-1)])]),_:1},8,["modelValue"]),t("div",X,[a(c,{modelValue:s.value.basic.browser_headless,"onUpdate:modelValue":e[5]||(e[5]=l=>s.value.basic.browser_headless=l)},{default:x(()=>[...e[29]||(e[29]=[g(" 无头浏览器 ",-1)])]),_:1},8,["modelValue"]),a(v,{text:"无头失败率极高,建议关闭,暂未找到方法解决。"})])]),t("div",Y,[e[30]||(e[30]=t("span",null,"过期刷新窗口(小时)",-1)),a(v,{text:"当账号距离过期小于等于该值时,会触发自动登录刷新(更新 cookie/session)。"})]),r(t("input",{"onUpdate:modelValue":e[6]||(e[6]=l=>s.value.basic.refresh_window_hours=l),type:"number",min:"0",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.refresh_window_hours,void 0,{number:!0}]]),e[32]||(e[32]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册数量",-1)),r(t("input",{"onUpdate:modelValue":e[7]||(e[7]=l=>s.value.basic.register_default_count=l),type:"number",min:"1",max:"30",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.register_default_count,void 0,{number:!0}]]),e[33]||(e[33]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册域名(推荐)",-1)),r(t("input",{"onUpdate:modelValue":e[8]||(e[8]=l=>s.value.basic.register_domain=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"留空则自动选择"},null,512),[[o,s.value.basic.register_domain]]),e[34]||(e[34]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API 密钥",-1)),r(t("input",{"onUpdate:modelValue":e[9]||(e[9]=l=>s.value.basic.duckmail_api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"dk_xxx"},null,512),[[o,s.value.basic.duckmail_api_key]])])])]),t("div",Z,[t("div",h,[e[43]||(e[43]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"重试",-1)),t("div",ee,[e[37]||(e[37]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"新会话尝试次数",-1)),r(t("input",{"onUpdate:modelValue":e[10]||(e[10]=l=>s.value.retry.max_new_session_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_new_session_tries,void 0,{number:!0}]]),e[38]||(e[38]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"请求重试次数",-1)),r(t("input",{"onUpdate:modelValue":e[11]||(e[11]=l=>s.value.retry.max_request_retries=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_request_retries,void 0,{number:!0}]]),e[39]||(e[39]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"账号切换次数",-1)),r(t("input",{"onUpdate:modelValue":e[12]||(e[12]=l=>s.value.retry.max_account_switch_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_account_switch_tries,void 0,{number:!0}]]),e[40]||(e[40]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"失败阈值",-1)),r(t("input",{"onUpdate:modelValue":e[13]||(e[13]=l=>s.value.retry.account_failure_threshold=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.account_failure_threshold,void 0,{number:!0}]]),e[41]||(e[41]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"限流冷却秒数",-1)),r(t("input",{"onUpdate:modelValue":e[14]||(e[14]=l=>s.value.retry.rate_limit_cooldown_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.rate_limit_cooldown_seconds,void 0,{number:!0}]]),e[42]||(e[42]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"会话缓存秒数",-1)),r(t("input",{"onUpdate:modelValue":e[15]||(e[15]=l=>s.value.retry.session_cache_ttl_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.session_cache_ttl_seconds,void 0,{number:!0}]]),t("div",te,[e[36]||(e[36]=t("span",null,"自动刷新账号间隔(秒,0禁用)",-1)),a(v,{text:"仅在数据库存储启用时生效:用于检测账号配置变化并重载列表,不会刷新 cookie。文件存储模式不会触发。"})]),r(t("input",{"onUpdate:modelValue":e[16]||(e[16]=l=>s.value.retry.auto_refresh_accounts_seconds=l),type:"number",min:"0",max:"600",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.auto_refresh_accounts_seconds,void 0,{number:!0}]])])])]),t("div",se,[t("div",le,[e[47]||(e[47]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"图像生成",-1)),t("div",re,[a(c,{modelValue:s.value.image_generation.enabled,"onUpdate:modelValue":e[17]||(e[17]=l=>s.value.image_generation.enabled=l)},{default:x(()=>[...e[44]||(e[44]=[g(" 启用图像生成 ",-1)])]),_:1},8,["modelValue"]),e[45]||(e[45]=t("label",{class:"block text-xs text-muted-foreground"},"输出格式",-1)),a(_,{modelValue:s.value.image_generation.output_format,"onUpdate:modelValue":e[18]||(e[18]=l=>s.value.image_generation.output_format=l),options:V,placement:"up",class:"w-full"},null,8,["modelValue"]),e[46]||(e[46]=t("label",{class:"block text-xs text-muted-foreground"},"支持模型",-1)),a(_,{modelValue:s.value.image_generation.supported_models,"onUpdate:modelValue":e[19]||(e[19]=l=>s.value.image_generation.supported_models=l),options:U.value,placeholder:"选择模型",placement:"up",multiple:"",class:"w-full"},null,8,["modelValue","options"])])]),t("div",oe,[e[51]||(e[51]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"公开展示",-1)),t("div",ue,[e[48]||(e[48]=t("label",{class:"block text-xs text-muted-foreground"},"Logo 地址",-1)),r(t("input",{"onUpdate:modelValue":e[20]||(e[20]=l=>s.value.public_display.logo_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"logo 地址"},null,512),[[o,s.value.public_display.logo_url]]),e[49]||(e[49]=t("label",{class:"block text-xs text-muted-foreground"},"聊天入口",-1)),r(t("input",{"onUpdate:modelValue":e[21]||(e[21]=l=>s.value.public_display.chat_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"聊天入口地址"},null,512),[[o,s.value.public_display.chat_url]]),e[50]||(e[50]=t("label",{class:"block text-xs text-muted-foreground"},"会话有效时长",-1)),r(t("input",{"onUpdate:modelValue":e[22]||(e[22]=l=>s.value.session.expire_hours=l),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.session.expire_hours,void 0,{number:!0}]])])]),e[52]||(e[52]=t("div",{class:"rounded-2xl border border-border bg-card p-4"},[t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"说明"),t("p",{class:"mt-4 text-sm text-muted-foreground"}," 保存后会直接写入配置文件并热更新。修改后请关注日志面板确认是否生效。 "),t("p",{class:"mt-3 text-sm text-muted-foreground"}," 自动注册/刷新默认启用,若依赖缺失会自动降级并提示。 ")],-1))])])])):y("",!0)]))]))}});export{me as default}; diff --git a/static/assets/Settings-DfcwScgC.js b/static/assets/Settings-DfcwScgC.js new file mode 100644 index 0000000000000000000000000000000000000000..3cb2ed0ac13504b72b5313f1319b06a1ab15074a --- /dev/null +++ b/static/assets/Settings-DfcwScgC.js @@ -0,0 +1 @@ +import{d as S,D as N,h as m,i as M,s as O,o as P,c as d,u as D,a as t,b as f,t as G,m as r,v as o,x as a,A as x,f as g,e as n}from"./index-Bh_hLcqi.js";import{u as A}from"./settings-D1FY5IP9.js";import{_ as c}from"./SelectMenu.vue_vue_type_script_setup_true_lang-8KWxq5-G.js";import{_ as v}from"./Checkbox.vue_vue_type_script_setup_true_lang-DsgZPRUK.js";const B={class:"space-y-8"},C={key:0,class:"rounded-3xl border border-border bg-card p-6 text-sm text-muted-foreground"},F={key:1,class:"rounded-3xl border border-border bg-card p-6"},L={class:"flex items-center justify-between"},T=["disabled"],q={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},I={key:1,class:"mt-6 space-y-8"},J={class:"grid gap-4 lg:grid-cols-3"},R={class:"space-y-4"},$={class:"rounded-2xl border border-border bg-card p-4"},j={class:"mt-4 space-y-3"},E={class:"rounded-2xl border border-border bg-card p-4"},z={class:"mt-4 space-y-3"},H={class:"rounded-2xl border border-border bg-card p-4"},K={class:"mt-4 space-y-3"},Q={class:"rounded-2xl border border-border bg-card p-4"},W={class:"mt-4 grid grid-cols-2 gap-3 text-sm"},X={class:"space-y-4"},Y={class:"rounded-2xl border border-border bg-card p-4"},Z={class:"mt-4 space-y-3"},re=S({__name:"Settings",setup(h){const p=A(),{settings:y,isLoading:_}=N(p),s=m(null),b=m(!1),i=m(""),k=[{label:"Base64 编码",value:"base64"},{label:"URL 链接",value:"url"}],w=M(()=>{const u=[{label:"Gemini 3 Pro Preview",value:"gemini-3-pro-preview"},{label:"Gemini 3 Flash Preview",value:"gemini-3-flash-preview"},{label:"Gemini 2.5 Pro",value:"gemini-2.5-pro"},{label:"Gemini 2.5 Flash",value:"gemini-2.5-flash"},{label:"Gemini Auto",value:"gemini-auto"}],e=s.value?.image_generation.supported_models||[];for(const l of e)u.some(U=>U.value===l)||u.push({label:l,value:l});return u});O(y,u=>{if(!u)return;const e=JSON.parse(JSON.stringify(u));e.image_generation=e.image_generation||{enabled:!1,supported_models:[],output_format:"base64"},e.image_generation.output_format||="base64",e.basic=e.basic||{},e.basic.duckmail_base_url||="https://api.duckmail.sbs",e.basic.duckmail_verify_ssl=e.basic.duckmail_verify_ssl??!0,e.basic.browser_headless=e.basic.browser_headless??!0,e.basic.refresh_window_hours=Number.isFinite(e.basic.refresh_window_hours)?e.basic.refresh_window_hours:1,e.basic.register_default_count=Number.isFinite(e.basic.register_default_count)?e.basic.register_default_count:1,s.value=e}),P(async()=>{await p.loadSettings()});const V=async()=>{if(s.value){i.value="",b.value=!0;try{await p.updateSettings(s.value)}catch(u){i.value=u.message||"保存失败"}finally{b.value=!1}}};return(u,e)=>(n(),d("div",B,[D(_)?(n(),d("section",C," 正在加载设置... ")):(n(),d("section",F,[t("div",L,[e[20]||(e[20]=t("p",{class:"text-base font-semibold text-foreground"},"配置面板",-1)),t("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:b.value||!s.value,onClick:V}," 保存设置 ",8,T)]),i.value?(n(),d("div",q,G(i.value),1)):f("",!0),s.value?(n(),d("div",I,[t("div",J,[t("div",R,[t("div",$,[e[24]||(e[24]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"基础",-1)),t("div",j,[e[21]||(e[21]=t("label",{class:"block text-xs text-muted-foreground"},"API 密钥",-1)),r(t("input",{"onUpdate:modelValue":e[0]||(e[0]=l=>s.value.basic.api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"可选"},null,512),[[o,s.value.basic.api_key]]),e[22]||(e[22]=t("label",{class:"block text-xs text-muted-foreground"},"基础地址",-1)),r(t("input",{"onUpdate:modelValue":e[1]||(e[1]=l=>s.value.basic.base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"自动检测或手动填写"},null,512),[[o,s.value.basic.base_url]]),e[23]||(e[23]=t("label",{class:"block text-xs text-muted-foreground"},"代理地址",-1)),r(t("input",{"onUpdate:modelValue":e[2]||(e[2]=l=>s.value.basic.proxy=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"http://127.0.0.1:7890"},null,512),[[o,s.value.basic.proxy]])])]),t("div",E,[e[30]||(e[30]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"自动注册/刷新",-1)),t("div",z,[e[27]||(e[27]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API",-1)),r(t("input",{"onUpdate:modelValue":e[3]||(e[3]=l=>s.value.basic.duckmail_base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"https://api.duckmail.sbs"},null,512),[[o,s.value.basic.duckmail_base_url]]),a(v,{modelValue:s.value.basic.duckmail_verify_ssl,"onUpdate:modelValue":e[4]||(e[4]=l=>s.value.basic.duckmail_verify_ssl=l)},{default:x(()=>[...e[25]||(e[25]=[g(" DuckMail SSL 校验 ",-1)])]),_:1},8,["modelValue"]),a(v,{modelValue:s.value.basic.browser_headless,"onUpdate:modelValue":e[5]||(e[5]=l=>s.value.basic.browser_headless=l)},{default:x(()=>[...e[26]||(e[26]=[g(" 无头浏览器 ",-1)])]),_:1},8,["modelValue"]),e[28]||(e[28]=t("label",{class:"block text-xs text-muted-foreground"},"过期刷新窗口(小时)",-1)),r(t("input",{"onUpdate:modelValue":e[6]||(e[6]=l=>s.value.basic.refresh_window_hours=l),type:"number",min:"0",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.refresh_window_hours,void 0,{number:!0}]]),e[29]||(e[29]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册数量",-1)),r(t("input",{"onUpdate:modelValue":e[7]||(e[7]=l=>s.value.basic.register_default_count=l),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.register_default_count,void 0,{number:!0}]])])]),t("div",H,[e[34]||(e[34]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"图像生成",-1)),t("div",K,[a(v,{modelValue:s.value.image_generation.enabled,"onUpdate:modelValue":e[8]||(e[8]=l=>s.value.image_generation.enabled=l)},{default:x(()=>[...e[31]||(e[31]=[g(" 启用图像生成 ",-1)])]),_:1},8,["modelValue"]),e[32]||(e[32]=t("label",{class:"block text-xs text-muted-foreground"},"输出格式",-1)),a(c,{modelValue:s.value.image_generation.output_format,"onUpdate:modelValue":e[9]||(e[9]=l=>s.value.image_generation.output_format=l),options:k,placement:"up"},null,8,["modelValue"]),e[33]||(e[33]=t("label",{class:"block text-xs text-muted-foreground"},"支持模型",-1)),a(c,{modelValue:s.value.image_generation.supported_models,"onUpdate:modelValue":e[10]||(e[10]=l=>s.value.image_generation.supported_models=l),options:w.value,placeholder:"选择模型",placement:"up",multiple:""},null,8,["modelValue","options"])])])]),t("div",Q,[e[41]||(e[41]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"重试",-1)),t("div",W,[e[35]||(e[35]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"新会话尝试次数",-1)),r(t("input",{"onUpdate:modelValue":e[11]||(e[11]=l=>s.value.retry.max_new_session_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_new_session_tries,void 0,{number:!0}]]),e[36]||(e[36]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"请求重试次数",-1)),r(t("input",{"onUpdate:modelValue":e[12]||(e[12]=l=>s.value.retry.max_request_retries=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_request_retries,void 0,{number:!0}]]),e[37]||(e[37]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"账号切换次数",-1)),r(t("input",{"onUpdate:modelValue":e[13]||(e[13]=l=>s.value.retry.max_account_switch_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_account_switch_tries,void 0,{number:!0}]]),e[38]||(e[38]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"失败阈值",-1)),r(t("input",{"onUpdate:modelValue":e[14]||(e[14]=l=>s.value.retry.account_failure_threshold=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.account_failure_threshold,void 0,{number:!0}]]),e[39]||(e[39]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"限流冷却秒数",-1)),r(t("input",{"onUpdate:modelValue":e[15]||(e[15]=l=>s.value.retry.rate_limit_cooldown_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.rate_limit_cooldown_seconds,void 0,{number:!0}]]),e[40]||(e[40]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"会话缓存秒数",-1)),r(t("input",{"onUpdate:modelValue":e[16]||(e[16]=l=>s.value.retry.session_cache_ttl_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.session_cache_ttl_seconds,void 0,{number:!0}]])])]),t("div",X,[t("div",Y,[e[45]||(e[45]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"公开展示",-1)),t("div",Z,[e[42]||(e[42]=t("label",{class:"block text-xs text-muted-foreground"},"Logo 地址",-1)),r(t("input",{"onUpdate:modelValue":e[17]||(e[17]=l=>s.value.public_display.logo_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"logo 地址"},null,512),[[o,s.value.public_display.logo_url]]),e[43]||(e[43]=t("label",{class:"block text-xs text-muted-foreground"},"聊天入口",-1)),r(t("input",{"onUpdate:modelValue":e[18]||(e[18]=l=>s.value.public_display.chat_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"聊天入口地址"},null,512),[[o,s.value.public_display.chat_url]]),e[44]||(e[44]=t("label",{class:"block text-xs text-muted-foreground"},"会话有效时长",-1)),r(t("input",{"onUpdate:modelValue":e[19]||(e[19]=l=>s.value.session.expire_hours=l),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.session.expire_hours,void 0,{number:!0}]])])]),e[46]||(e[46]=t("div",{class:"rounded-2xl border border-border bg-card p-4"},[t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"说明"),t("p",{class:"mt-4 text-sm text-muted-foreground"}," 保存后会直接写入配置文件并热更新。修改后请关注日志面板确认是否生效。 "),t("p",{class:"mt-3 text-sm text-muted-foreground"}," 自动注册/刷新默认启用,若依赖缺失会自动降级并提示。 ")],-1))])])])):f("",!0)]))]))}});export{re as default}; diff --git a/static/assets/Settings-Dj3cSIXZ.js b/static/assets/Settings-Dj3cSIXZ.js new file mode 100644 index 0000000000000000000000000000000000000000..091a2a6dc35957afcd134a254030bbda156ba18a --- /dev/null +++ b/static/assets/Settings-Dj3cSIXZ.js @@ -0,0 +1 @@ +import{d as S,D as N,h as m,i as M,s as O,o as P,c as d,u as D,a as t,b as f,t as G,m as r,v as o,x as a,A as x,f as g,e as n}from"./index-DrM07qAY.js";import{u as A}from"./settings-BYE7wugy.js";import{_ as c}from"./SelectMenu.vue_vue_type_script_setup_true_lang-BOyWonLr.js";import{_ as v}from"./Checkbox.vue_vue_type_script_setup_true_lang-DXuWSs7B.js";const B={class:"space-y-8"},C={key:0,class:"rounded-3xl border border-border bg-card p-6 text-sm text-muted-foreground"},F={key:1,class:"rounded-3xl border border-border bg-card p-6"},L={class:"flex items-center justify-between"},T=["disabled"],q={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},I={key:1,class:"mt-6 space-y-8"},J={class:"grid gap-4 lg:grid-cols-3"},R={class:"space-y-4"},$={class:"rounded-2xl border border-border bg-card p-4"},j={class:"mt-4 space-y-3"},E={class:"rounded-2xl border border-border bg-card p-4"},z={class:"mt-4 space-y-3"},H={class:"rounded-2xl border border-border bg-card p-4"},K={class:"mt-4 space-y-3"},Q={class:"rounded-2xl border border-border bg-card p-4"},W={class:"mt-4 grid grid-cols-2 gap-3 text-sm"},X={class:"space-y-4"},Y={class:"rounded-2xl border border-border bg-card p-4"},Z={class:"mt-4 space-y-3"},re=S({__name:"Settings",setup(h){const p=A(),{settings:y,isLoading:_}=N(p),s=m(null),b=m(!1),i=m(""),k=[{label:"Base64 编码",value:"base64"},{label:"URL 链接",value:"url"}],w=M(()=>{const u=[{label:"Gemini 3 Pro Preview",value:"gemini-3-pro-preview"},{label:"Gemini 3 Flash Preview",value:"gemini-3-flash-preview"},{label:"Gemini 2.5 Pro",value:"gemini-2.5-pro"},{label:"Gemini 2.5 Flash",value:"gemini-2.5-flash"},{label:"Gemini Auto",value:"gemini-auto"}],e=s.value?.image_generation.supported_models||[];for(const l of e)u.some(U=>U.value===l)||u.push({label:l,value:l});return u});O(y,u=>{if(!u)return;const e=JSON.parse(JSON.stringify(u));e.image_generation=e.image_generation||{enabled:!1,supported_models:[],output_format:"base64"},e.image_generation.output_format||="base64",e.basic=e.basic||{},e.basic.duckmail_base_url||="https://api.duckmail.sbs",e.basic.duckmail_verify_ssl=e.basic.duckmail_verify_ssl??!0,e.basic.browser_headless=e.basic.browser_headless??!0,e.basic.refresh_window_hours=Number.isFinite(e.basic.refresh_window_hours)?e.basic.refresh_window_hours:1,e.basic.register_default_count=Number.isFinite(e.basic.register_default_count)?e.basic.register_default_count:1,e.basic.register_domain=typeof e.basic.register_domain=="string"?e.basic.register_domain:"",s.value=e}),P(async()=>{await p.loadSettings()});const V=async()=>{if(s.value){i.value="",b.value=!0;try{await p.updateSettings(s.value)}catch(u){i.value=u.message||"保存失败"}finally{b.value=!1}}};return(u,e)=>(n(),d("div",B,[D(_)?(n(),d("section",C," 正在加载设置... ")):(n(),d("section",F,[t("div",L,[e[21]||(e[21]=t("p",{class:"text-base font-semibold text-foreground"},"配置面板",-1)),t("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:b.value||!s.value,onClick:V}," 保存设置 ",8,T)]),i.value?(n(),d("div",q,G(i.value),1)):f("",!0),s.value?(n(),d("div",I,[t("div",J,[t("div",R,[t("div",$,[e[25]||(e[25]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"基础",-1)),t("div",j,[e[22]||(e[22]=t("label",{class:"block text-xs text-muted-foreground"},"API 密钥",-1)),r(t("input",{"onUpdate:modelValue":e[0]||(e[0]=l=>s.value.basic.api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"可选"},null,512),[[o,s.value.basic.api_key]]),e[23]||(e[23]=t("label",{class:"block text-xs text-muted-foreground"},"基础地址",-1)),r(t("input",{"onUpdate:modelValue":e[1]||(e[1]=l=>s.value.basic.base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"自动检测或手动填写"},null,512),[[o,s.value.basic.base_url]]),e[24]||(e[24]=t("label",{class:"block text-xs text-muted-foreground"},"代理地址",-1)),r(t("input",{"onUpdate:modelValue":e[2]||(e[2]=l=>s.value.basic.proxy=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"http://127.0.0.1:7890"},null,512),[[o,s.value.basic.proxy]])])]),t("div",E,[e[32]||(e[32]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"自动注册/刷新",-1)),t("div",z,[e[28]||(e[28]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API",-1)),r(t("input",{"onUpdate:modelValue":e[3]||(e[3]=l=>s.value.basic.duckmail_base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"https://api.duckmail.sbs"},null,512),[[o,s.value.basic.duckmail_base_url]]),a(v,{modelValue:s.value.basic.duckmail_verify_ssl,"onUpdate:modelValue":e[4]||(e[4]=l=>s.value.basic.duckmail_verify_ssl=l)},{default:x(()=>[...e[26]||(e[26]=[g(" DuckMail SSL 校验 ",-1)])]),_:1},8,["modelValue"]),a(v,{modelValue:s.value.basic.browser_headless,"onUpdate:modelValue":e[5]||(e[5]=l=>s.value.basic.browser_headless=l)},{default:x(()=>[...e[27]||(e[27]=[g(" 无头浏览器 ",-1)])]),_:1},8,["modelValue"]),e[29]||(e[29]=t("label",{class:"block text-xs text-muted-foreground"},"过期刷新窗口(小时)",-1)),r(t("input",{"onUpdate:modelValue":e[6]||(e[6]=l=>s.value.basic.refresh_window_hours=l),type:"number",min:"0",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.refresh_window_hours,void 0,{number:!0}]]),e[30]||(e[30]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册数量",-1)),r(t("input",{"onUpdate:modelValue":e[7]||(e[7]=l=>s.value.basic.register_default_count=l),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.register_default_count,void 0,{number:!0}]]),e[31]||(e[31]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册域名",-1)),r(t("input",{"onUpdate:modelValue":e[8]||(e[8]=l=>s.value.basic.register_domain=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"留空则自动选择"},null,512),[[o,s.value.basic.register_domain]])])]),t("div",H,[e[36]||(e[36]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"图像生成",-1)),t("div",K,[a(v,{modelValue:s.value.image_generation.enabled,"onUpdate:modelValue":e[9]||(e[9]=l=>s.value.image_generation.enabled=l)},{default:x(()=>[...e[33]||(e[33]=[g(" 启用图像生成 ",-1)])]),_:1},8,["modelValue"]),e[34]||(e[34]=t("label",{class:"block text-xs text-muted-foreground"},"输出格式",-1)),a(c,{modelValue:s.value.image_generation.output_format,"onUpdate:modelValue":e[10]||(e[10]=l=>s.value.image_generation.output_format=l),options:k,placement:"up"},null,8,["modelValue"]),e[35]||(e[35]=t("label",{class:"block text-xs text-muted-foreground"},"支持模型",-1)),a(c,{modelValue:s.value.image_generation.supported_models,"onUpdate:modelValue":e[11]||(e[11]=l=>s.value.image_generation.supported_models=l),options:w.value,placeholder:"选择模型",placement:"up",multiple:""},null,8,["modelValue","options"])])])]),t("div",Q,[e[43]||(e[43]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"重试",-1)),t("div",W,[e[37]||(e[37]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"新会话尝试次数",-1)),r(t("input",{"onUpdate:modelValue":e[12]||(e[12]=l=>s.value.retry.max_new_session_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_new_session_tries,void 0,{number:!0}]]),e[38]||(e[38]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"请求重试次数",-1)),r(t("input",{"onUpdate:modelValue":e[13]||(e[13]=l=>s.value.retry.max_request_retries=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_request_retries,void 0,{number:!0}]]),e[39]||(e[39]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"账号切换次数",-1)),r(t("input",{"onUpdate:modelValue":e[14]||(e[14]=l=>s.value.retry.max_account_switch_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_account_switch_tries,void 0,{number:!0}]]),e[40]||(e[40]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"失败阈值",-1)),r(t("input",{"onUpdate:modelValue":e[15]||(e[15]=l=>s.value.retry.account_failure_threshold=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.account_failure_threshold,void 0,{number:!0}]]),e[41]||(e[41]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"限流冷却秒数",-1)),r(t("input",{"onUpdate:modelValue":e[16]||(e[16]=l=>s.value.retry.rate_limit_cooldown_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.rate_limit_cooldown_seconds,void 0,{number:!0}]]),e[42]||(e[42]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"会话缓存秒数",-1)),r(t("input",{"onUpdate:modelValue":e[17]||(e[17]=l=>s.value.retry.session_cache_ttl_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.session_cache_ttl_seconds,void 0,{number:!0}]])])]),t("div",X,[t("div",Y,[e[47]||(e[47]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"公开展示",-1)),t("div",Z,[e[44]||(e[44]=t("label",{class:"block text-xs text-muted-foreground"},"Logo 地址",-1)),r(t("input",{"onUpdate:modelValue":e[18]||(e[18]=l=>s.value.public_display.logo_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"logo 地址"},null,512),[[o,s.value.public_display.logo_url]]),e[45]||(e[45]=t("label",{class:"block text-xs text-muted-foreground"},"聊天入口",-1)),r(t("input",{"onUpdate:modelValue":e[19]||(e[19]=l=>s.value.public_display.chat_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"聊天入口地址"},null,512),[[o,s.value.public_display.chat_url]]),e[46]||(e[46]=t("label",{class:"block text-xs text-muted-foreground"},"会话有效时长",-1)),r(t("input",{"onUpdate:modelValue":e[20]||(e[20]=l=>s.value.session.expire_hours=l),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.session.expire_hours,void 0,{number:!0}]])])]),e[48]||(e[48]=t("div",{class:"rounded-2xl border border-border bg-card p-4"},[t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"说明"),t("p",{class:"mt-4 text-sm text-muted-foreground"}," 保存后会直接写入配置文件并热更新。修改后请关注日志面板确认是否生效。 "),t("p",{class:"mt-3 text-sm text-muted-foreground"}," 自动注册/刷新默认启用,若依赖缺失会自动降级并提示。 ")],-1))])])])):f("",!0)]))]))}});export{re as default}; diff --git a/static/assets/Settings-UhS0WpSG.js b/static/assets/Settings-UhS0WpSG.js new file mode 100644 index 0000000000000000000000000000000000000000..9290e16f32f31d136b78f195279035b1139185bc --- /dev/null +++ b/static/assets/Settings-UhS0WpSG.js @@ -0,0 +1 @@ +import{d as C,D,h as x,i as M,z as O,o as j,c as d,u as F,a as t,b as _,t as G,q as o,v as r,p as u,s as g,E as A,f as c,e as n}from"./index-Bjh6Z8Zq.js";import{u as B}from"./settings-BgKIn-YY.js";import{_ as v}from"./SelectMenu.vue_vue_type_script_setup_true_lang-DG1nunQt.js";import{_ as f}from"./Checkbox.vue_vue_type_script_setup_true_lang-zogPNTWE.js";import{_ as p}from"./HelpTip.vue_vue_type_script_setup_true_lang-D_8sK7BY.js";const L={class:"space-y-8"},T={key:0,class:"rounded-3xl border border-border bg-card p-6 text-sm text-muted-foreground"},q={key:1,class:"rounded-3xl border border-border bg-card p-6"},E={class:"flex items-center justify-between"},I=["disabled"],$={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},J={key:1,class:"mt-6 space-y-8"},R={class:"grid gap-4 lg:grid-cols-3"},z={class:"space-y-4"},H={class:"rounded-2xl border border-border bg-card p-4"},K={class:"mt-4 space-y-3"},Q={class:"rounded-2xl border border-border bg-card p-4"},W={class:"mt-4 space-y-3"},X={class:"grid grid-cols-2 items-center gap-x-6 gap-y-2"},Y={class:"flex items-center justify-end gap-2"},Z={class:"flex items-center justify-between gap-2 text-xs text-muted-foreground"},h={class:"flex items-center justify-between gap-2 text-xs text-muted-foreground"},ee={class:"space-y-4"},te={class:"rounded-2xl border border-border bg-card p-4"},se={class:"mt-4 grid grid-cols-2 gap-3 text-sm"},le={class:"col-span-2 flex items-center justify-between gap-2 text-xs text-muted-foreground"},oe={class:"space-y-4"},re={class:"rounded-2xl border border-border bg-card p-4"},ae={class:"mt-4 space-y-3"},ue={class:"rounded-2xl border border-border bg-card p-4"},de={class:"mt-4 space-y-3"},ge=C({__name:"Settings",setup(ne){const b=B(),{settings:k,isLoading:w}=D(b),y=A(),s=x(null),m=x(!1),i=x(""),V=[{label:"UC - 支持无头/有头",value:"uc"},{label:"DP - 有头模式(推荐)",value:"dp"}],U=[{label:"Base64 编码",value:"base64"},{label:"URL 链接",value:"url"}],S=M(()=>{const a=[{label:"Gemini 3 Pro Preview",value:"gemini-3-pro-preview"},{label:"Gemini 3 Flash Preview",value:"gemini-3-flash-preview"},{label:"Gemini 2.5 Pro",value:"gemini-2.5-pro"},{label:"Gemini 2.5 Flash",value:"gemini-2.5-flash"},{label:"Gemini Auto",value:"gemini-auto"}],e=s.value?.image_generation.supported_models||[];for(const l of e)a.some(P=>P.value===l)||a.push({label:l,value:l});return a});O(k,a=>{if(!a)return;const e=JSON.parse(JSON.stringify(a));e.image_generation=e.image_generation||{enabled:!1,supported_models:[],output_format:"base64"},e.image_generation.output_format||="base64",e.basic=e.basic||{},e.basic.duckmail_base_url||="https://api.duckmail.sbs",e.basic.duckmail_verify_ssl=e.basic.duckmail_verify_ssl??!0,e.basic.browser_engine=e.basic.browser_engine||"dp",e.basic.browser_headless=e.basic.browser_headless??!1,e.basic.refresh_window_hours=Number.isFinite(e.basic.refresh_window_hours)?e.basic.refresh_window_hours:1,e.basic.register_default_count=Number.isFinite(e.basic.register_default_count)?e.basic.register_default_count:1,e.basic.register_domain=typeof e.basic.register_domain=="string"?e.basic.register_domain:"",e.basic.duckmail_api_key=typeof e.basic.duckmail_api_key=="string"?e.basic.duckmail_api_key:"",e.retry=e.retry||{},e.retry.auto_refresh_accounts_seconds=Number.isFinite(e.retry.auto_refresh_accounts_seconds)?e.retry.auto_refresh_accounts_seconds:60,s.value=e}),j(async()=>{await b.loadSettings()});const N=async()=>{if(s.value){i.value="",m.value=!0;try{await b.updateSettings(s.value),y.success("设置保存成功")}catch(a){i.value=a.message||"保存失败",y.error(a.message||"保存失败")}finally{m.value=!1}}};return(a,e)=>(n(),d("div",L,[F(w)?(n(),d("section",T," 正在加载设置... ")):(n(),d("section",q,[t("div",E,[e[24]||(e[24]=t("p",{class:"text-base font-semibold text-foreground"},"配置面板",-1)),t("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",disabled:m.value||!s.value,onClick:N}," 保存设置 ",8,I)]),i.value?(n(),d("div",$,G(i.value),1)):_("",!0),s.value?(n(),d("div",J,[t("div",R,[t("div",z,[t("div",H,[e[28]||(e[28]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"基础",-1)),t("div",K,[e[25]||(e[25]=t("label",{class:"block text-xs text-muted-foreground"},"API 密钥",-1)),o(t("input",{"onUpdate:modelValue":e[0]||(e[0]=l=>s.value.basic.api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"可选"},null,512),[[r,s.value.basic.api_key]]),e[26]||(e[26]=t("label",{class:"block text-xs text-muted-foreground"},"基础地址",-1)),o(t("input",{"onUpdate:modelValue":e[1]||(e[1]=l=>s.value.basic.base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"自动检测或手动填写"},null,512),[[r,s.value.basic.base_url]]),e[27]||(e[27]=t("label",{class:"block text-xs text-muted-foreground"},"代理地址",-1)),o(t("input",{"onUpdate:modelValue":e[2]||(e[2]=l=>s.value.basic.proxy=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"http://127.0.0.1:7890"},null,512),[[r,s.value.basic.proxy]])])]),t("div",Q,[e[37]||(e[37]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"自动注册/刷新",-1)),t("div",W,[t("div",X,[u(f,{modelValue:s.value.basic.duckmail_verify_ssl,"onUpdate:modelValue":e[3]||(e[3]=l=>s.value.basic.duckmail_verify_ssl=l)},{default:g(()=>[...e[29]||(e[29]=[c(" DuckMail SSL 校验 ",-1)])]),_:1},8,["modelValue"]),t("div",Y,[u(f,{modelValue:s.value.basic.browser_headless,"onUpdate:modelValue":e[4]||(e[4]=l=>s.value.basic.browser_headless=l),disabled:s.value.basic.browser_engine==="dp"},{default:g(()=>[...e[30]||(e[30]=[c(" 无头浏览器 ",-1)])]),_:1},8,["modelValue","disabled"]),u(p,{text:"仅 UC 引擎支持无头模式。若无头注册/刷新失败,建议关闭。"})])]),t("div",Z,[e[31]||(e[31]=t("span",null,"浏览器引擎",-1)),u(p,{text:"UC: 支持无头/有头,但可能失败。DP: 仅有头模式,更稳定,UC 失败时推荐使用。"})]),u(v,{modelValue:s.value.basic.browser_engine,"onUpdate:modelValue":e[5]||(e[5]=l=>s.value.basic.browser_engine=l),options:V,class:"w-full"},null,8,["modelValue"]),e[33]||(e[33]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API",-1)),o(t("input",{"onUpdate:modelValue":e[6]||(e[6]=l=>s.value.basic.duckmail_base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"https://api.duckmail.sbs"},null,512),[[r,s.value.basic.duckmail_base_url]]),t("div",h,[e[32]||(e[32]=t("span",null,"过期刷新窗口(小时)",-1)),u(p,{text:"当账号距离过期小于等于该值时,会触发自动登录刷新(更新 cookie/session)。"})]),o(t("input",{"onUpdate:modelValue":e[7]||(e[7]=l=>s.value.basic.refresh_window_hours=l),type:"number",min:"0",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[r,s.value.basic.refresh_window_hours,void 0,{number:!0}]]),e[34]||(e[34]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册数量",-1)),o(t("input",{"onUpdate:modelValue":e[8]||(e[8]=l=>s.value.basic.register_default_count=l),type:"number",min:"1",max:"30",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[r,s.value.basic.register_default_count,void 0,{number:!0}]]),e[35]||(e[35]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册域名(推荐)",-1)),o(t("input",{"onUpdate:modelValue":e[9]||(e[9]=l=>s.value.basic.register_domain=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"留空则自动选择"},null,512),[[r,s.value.basic.register_domain]]),e[36]||(e[36]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API 密钥",-1)),o(t("input",{"onUpdate:modelValue":e[10]||(e[10]=l=>s.value.basic.duckmail_api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"dk_xxx"},null,512),[[r,s.value.basic.duckmail_api_key]])])])]),t("div",ee,[t("div",te,[e[45]||(e[45]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"重试",-1)),t("div",se,[e[39]||(e[39]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"新会话尝试次数",-1)),o(t("input",{"onUpdate:modelValue":e[11]||(e[11]=l=>s.value.retry.max_new_session_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.max_new_session_tries,void 0,{number:!0}]]),e[40]||(e[40]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"请求重试次数",-1)),o(t("input",{"onUpdate:modelValue":e[12]||(e[12]=l=>s.value.retry.max_request_retries=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.max_request_retries,void 0,{number:!0}]]),e[41]||(e[41]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"账号切换次数",-1)),o(t("input",{"onUpdate:modelValue":e[13]||(e[13]=l=>s.value.retry.max_account_switch_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.max_account_switch_tries,void 0,{number:!0}]]),e[42]||(e[42]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"失败阈值",-1)),o(t("input",{"onUpdate:modelValue":e[14]||(e[14]=l=>s.value.retry.account_failure_threshold=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.account_failure_threshold,void 0,{number:!0}]]),e[43]||(e[43]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"限流冷却秒数",-1)),o(t("input",{"onUpdate:modelValue":e[15]||(e[15]=l=>s.value.retry.rate_limit_cooldown_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.rate_limit_cooldown_seconds,void 0,{number:!0}]]),e[44]||(e[44]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"会话缓存秒数",-1)),o(t("input",{"onUpdate:modelValue":e[16]||(e[16]=l=>s.value.retry.session_cache_ttl_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.session_cache_ttl_seconds,void 0,{number:!0}]]),t("div",le,[e[38]||(e[38]=t("span",null,"自动刷新账号间隔(秒,0禁用)",-1)),u(p,{text:"仅在数据库存储启用时生效:用于检测账号配置变化并重载列表,不会刷新 cookie。文件存储模式不会触发。"})]),o(t("input",{"onUpdate:modelValue":e[17]||(e[17]=l=>s.value.retry.auto_refresh_accounts_seconds=l),type:"number",min:"0",max:"600",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,s.value.retry.auto_refresh_accounts_seconds,void 0,{number:!0}]])])])]),t("div",oe,[t("div",re,[e[49]||(e[49]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"图像生成",-1)),t("div",ae,[u(f,{modelValue:s.value.image_generation.enabled,"onUpdate:modelValue":e[18]||(e[18]=l=>s.value.image_generation.enabled=l)},{default:g(()=>[...e[46]||(e[46]=[c(" 启用图像生成 ",-1)])]),_:1},8,["modelValue"]),e[47]||(e[47]=t("label",{class:"block text-xs text-muted-foreground"},"输出格式",-1)),u(v,{modelValue:s.value.image_generation.output_format,"onUpdate:modelValue":e[19]||(e[19]=l=>s.value.image_generation.output_format=l),options:U,placement:"up",class:"w-full"},null,8,["modelValue"]),e[48]||(e[48]=t("label",{class:"block text-xs text-muted-foreground"},"支持模型",-1)),u(v,{modelValue:s.value.image_generation.supported_models,"onUpdate:modelValue":e[20]||(e[20]=l=>s.value.image_generation.supported_models=l),options:S.value,placeholder:"选择模型",placement:"up",multiple:"",class:"w-full"},null,8,["modelValue","options"])])]),t("div",ue,[e[53]||(e[53]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"公开展示",-1)),t("div",de,[e[50]||(e[50]=t("label",{class:"block text-xs text-muted-foreground"},"Logo 地址",-1)),o(t("input",{"onUpdate:modelValue":e[21]||(e[21]=l=>s.value.public_display.logo_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"logo 地址"},null,512),[[r,s.value.public_display.logo_url]]),e[51]||(e[51]=t("label",{class:"block text-xs text-muted-foreground"},"聊天入口",-1)),o(t("input",{"onUpdate:modelValue":e[22]||(e[22]=l=>s.value.public_display.chat_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"聊天入口地址"},null,512),[[r,s.value.public_display.chat_url]]),e[52]||(e[52]=t("label",{class:"block text-xs text-muted-foreground"},"会话有效时长",-1)),o(t("input",{"onUpdate:modelValue":e[23]||(e[23]=l=>s.value.session.expire_hours=l),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[r,s.value.session.expire_hours,void 0,{number:!0}]])])]),e[54]||(e[54]=t("div",{class:"rounded-2xl border border-border bg-card p-4"},[t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"说明"),t("p",{class:"mt-4 text-sm text-muted-foreground"}," 保存后会直接写入配置文件并热更新。修改后请关注日志面板确认是否生效。 "),t("p",{class:"mt-3 text-sm text-muted-foreground"}," 自动注册/刷新默认启用,若依赖缺失会自动降级并提示。 ")],-1))])])])):_("",!0)]))]))}});export{ge as default}; diff --git a/static/assets/Settings-Z9wuXkbU.js b/static/assets/Settings-Z9wuXkbU.js new file mode 100644 index 0000000000000000000000000000000000000000..89e3a2af81c6f72350db4d24dcccab88db244bcf --- /dev/null +++ b/static/assets/Settings-Z9wuXkbU.js @@ -0,0 +1 @@ +import{d as N,D as M,h as m,i as O,s as P,o as D,c as a,u as F,a as t,b as c,t as G,m as o,v as l,x as d,A as x,f as g,e as n}from"./index-CkXB0iyt.js";import{u as A}from"./settings-B_knXf3v.js";import{_ as f}from"./SelectMenu.vue_vue_type_script_setup_true_lang-DEvRak0a.js";import{_ as v}from"./Checkbox.vue_vue_type_script_setup_true_lang-Bn84CDew.js";import{_ as y}from"./HelpTip.vue_vue_type_script_setup_true_lang-PWvzGrPg.js";const B={class:"space-y-8"},C={key:0,class:"rounded-3xl border border-border bg-card p-6 text-sm text-muted-foreground"},L={key:1,class:"rounded-3xl border border-border bg-card p-6"},T={class:"flex items-center justify-between"},$=["disabled"],q={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},I={key:1,class:"mt-6 space-y-8"},J={class:"grid gap-4 lg:grid-cols-3"},R={class:"space-y-4"},j={class:"rounded-2xl border border-border bg-card p-4"},E={class:"mt-4 space-y-3"},z={class:"rounded-2xl border border-border bg-card p-4"},H={class:"mt-4 space-y-3"},K={class:"flex items-center gap-2 text-xs text-muted-foreground"},Q={class:"rounded-2xl border border-border bg-card p-4"},W={class:"mt-4 space-y-3"},X={class:"rounded-2xl border border-border bg-card p-4"},Y={class:"mt-4 grid grid-cols-2 gap-3 text-sm"},Z={class:"col-span-2 flex items-center gap-2 text-xs text-muted-foreground"},h={class:"space-y-4"},ee={class:"rounded-2xl border border-border bg-card p-4"},te={class:"mt-4 space-y-3"},ae=N({__name:"Settings",setup(se){const p=A(),{settings:_,isLoading:k}=M(p),s=m(null),b=m(!1),i=m(""),w=[{label:"Base64 编码",value:"base64"},{label:"URL 链接",value:"url"}],V=O(()=>{const u=[{label:"Gemini 3 Pro Preview",value:"gemini-3-pro-preview"},{label:"Gemini 3 Flash Preview",value:"gemini-3-flash-preview"},{label:"Gemini 2.5 Pro",value:"gemini-2.5-pro"},{label:"Gemini 2.5 Flash",value:"gemini-2.5-flash"},{label:"Gemini Auto",value:"gemini-auto"}],e=s.value?.image_generation.supported_models||[];for(const r of e)u.some(S=>S.value===r)||u.push({label:r,value:r});return u});P(_,u=>{if(!u)return;const e=JSON.parse(JSON.stringify(u));e.image_generation=e.image_generation||{enabled:!1,supported_models:[],output_format:"base64"},e.image_generation.output_format||="base64",e.basic=e.basic||{},e.basic.duckmail_base_url||="https://api.duckmail.sbs",e.basic.duckmail_verify_ssl=e.basic.duckmail_verify_ssl??!0,e.basic.browser_headless=e.basic.browser_headless??!0,e.basic.refresh_window_hours=Number.isFinite(e.basic.refresh_window_hours)?e.basic.refresh_window_hours:1,e.basic.register_default_count=Number.isFinite(e.basic.register_default_count)?e.basic.register_default_count:1,e.basic.register_domain=typeof e.basic.register_domain=="string"?e.basic.register_domain:"",e.retry=e.retry||{},e.retry.auto_refresh_accounts_seconds=Number.isFinite(e.retry.auto_refresh_accounts_seconds)?e.retry.auto_refresh_accounts_seconds:60,s.value=e}),D(async()=>{await p.loadSettings()});const U=async()=>{if(s.value){i.value="",b.value=!0;try{await p.updateSettings(s.value)}catch(u){i.value=u.message||"保存失败"}finally{b.value=!1}}};return(u,e)=>(n(),a("div",B,[F(k)?(n(),a("section",C," 正在加载设置... ")):(n(),a("section",L,[t("div",T,[e[22]||(e[22]=t("p",{class:"text-base font-semibold text-foreground"},"配置面板",-1)),t("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:b.value||!s.value,onClick:U}," 保存设置 ",8,$)]),i.value?(n(),a("div",q,G(i.value),1)):c("",!0),s.value?(n(),a("div",I,[t("div",J,[t("div",R,[t("div",j,[e[26]||(e[26]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"基础",-1)),t("div",E,[e[23]||(e[23]=t("label",{class:"block text-xs text-muted-foreground"},"API 密钥",-1)),o(t("input",{"onUpdate:modelValue":e[0]||(e[0]=r=>s.value.basic.api_key=r),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"可选"},null,512),[[l,s.value.basic.api_key]]),e[24]||(e[24]=t("label",{class:"block text-xs text-muted-foreground"},"基础地址",-1)),o(t("input",{"onUpdate:modelValue":e[1]||(e[1]=r=>s.value.basic.base_url=r),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"自动检测或手动填写"},null,512),[[l,s.value.basic.base_url]]),e[25]||(e[25]=t("label",{class:"block text-xs text-muted-foreground"},"代理地址",-1)),o(t("input",{"onUpdate:modelValue":e[2]||(e[2]=r=>s.value.basic.proxy=r),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"http://127.0.0.1:7890"},null,512),[[l,s.value.basic.proxy]])])]),t("div",z,[e[33]||(e[33]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"自动注册/刷新",-1)),t("div",H,[e[30]||(e[30]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API",-1)),o(t("input",{"onUpdate:modelValue":e[3]||(e[3]=r=>s.value.basic.duckmail_base_url=r),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"https://api.duckmail.sbs"},null,512),[[l,s.value.basic.duckmail_base_url]]),d(v,{modelValue:s.value.basic.duckmail_verify_ssl,"onUpdate:modelValue":e[4]||(e[4]=r=>s.value.basic.duckmail_verify_ssl=r)},{default:x(()=>[...e[27]||(e[27]=[g(" DuckMail SSL 校验 ",-1)])]),_:1},8,["modelValue"]),d(v,{modelValue:s.value.basic.browser_headless,"onUpdate:modelValue":e[5]||(e[5]=r=>s.value.basic.browser_headless=r)},{default:x(()=>[...e[28]||(e[28]=[g(" 无头浏览器 ",-1)])]),_:1},8,["modelValue"]),t("div",K,[e[29]||(e[29]=t("span",null,"过期刷新窗口(小时)",-1)),d(y,{text:"当账号距离过期小于等于该值时,会触发自动登录刷新(更新 cookie/session)。"})]),o(t("input",{"onUpdate:modelValue":e[6]||(e[6]=r=>s.value.basic.refresh_window_hours=r),type:"number",min:"0",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[l,s.value.basic.refresh_window_hours,void 0,{number:!0}]]),e[31]||(e[31]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册数量",-1)),o(t("input",{"onUpdate:modelValue":e[7]||(e[7]=r=>s.value.basic.register_default_count=r),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[l,s.value.basic.register_default_count,void 0,{number:!0}]]),e[32]||(e[32]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册域名",-1)),o(t("input",{"onUpdate:modelValue":e[8]||(e[8]=r=>s.value.basic.register_domain=r),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"留空则自动选择"},null,512),[[l,s.value.basic.register_domain]])])]),t("div",Q,[e[37]||(e[37]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"图像生成",-1)),t("div",W,[d(v,{modelValue:s.value.image_generation.enabled,"onUpdate:modelValue":e[9]||(e[9]=r=>s.value.image_generation.enabled=r)},{default:x(()=>[...e[34]||(e[34]=[g(" 启用图像生成 ",-1)])]),_:1},8,["modelValue"]),e[35]||(e[35]=t("label",{class:"block text-xs text-muted-foreground"},"输出格式",-1)),d(f,{modelValue:s.value.image_generation.output_format,"onUpdate:modelValue":e[10]||(e[10]=r=>s.value.image_generation.output_format=r),options:w,placement:"up"},null,8,["modelValue"]),e[36]||(e[36]=t("label",{class:"block text-xs text-muted-foreground"},"支持模型",-1)),d(f,{modelValue:s.value.image_generation.supported_models,"onUpdate:modelValue":e[11]||(e[11]=r=>s.value.image_generation.supported_models=r),options:V.value,placeholder:"选择模型",placement:"up",multiple:""},null,8,["modelValue","options"])])])]),t("div",X,[e[45]||(e[45]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"重试",-1)),t("div",Y,[e[39]||(e[39]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"新会话尝试次数",-1)),o(t("input",{"onUpdate:modelValue":e[12]||(e[12]=r=>s.value.retry.max_new_session_tries=r),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[l,s.value.retry.max_new_session_tries,void 0,{number:!0}]]),e[40]||(e[40]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"请求重试次数",-1)),o(t("input",{"onUpdate:modelValue":e[13]||(e[13]=r=>s.value.retry.max_request_retries=r),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[l,s.value.retry.max_request_retries,void 0,{number:!0}]]),e[41]||(e[41]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"账号切换次数",-1)),o(t("input",{"onUpdate:modelValue":e[14]||(e[14]=r=>s.value.retry.max_account_switch_tries=r),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[l,s.value.retry.max_account_switch_tries,void 0,{number:!0}]]),e[42]||(e[42]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"失败阈值",-1)),o(t("input",{"onUpdate:modelValue":e[15]||(e[15]=r=>s.value.retry.account_failure_threshold=r),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[l,s.value.retry.account_failure_threshold,void 0,{number:!0}]]),e[43]||(e[43]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"限流冷却秒数",-1)),o(t("input",{"onUpdate:modelValue":e[16]||(e[16]=r=>s.value.retry.rate_limit_cooldown_seconds=r),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[l,s.value.retry.rate_limit_cooldown_seconds,void 0,{number:!0}]]),e[44]||(e[44]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"会话缓存秒数",-1)),o(t("input",{"onUpdate:modelValue":e[17]||(e[17]=r=>s.value.retry.session_cache_ttl_seconds=r),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[l,s.value.retry.session_cache_ttl_seconds,void 0,{number:!0}]]),t("div",Z,[e[38]||(e[38]=t("span",null,"自动刷新账号间隔(秒,0禁用)",-1)),d(y,{text:"仅在数据库存储启用时生效:用于检测账号配置变化并重载列表,不会刷新 cookie。文件存储模式不会触发。"})]),o(t("input",{"onUpdate:modelValue":e[18]||(e[18]=r=>s.value.retry.auto_refresh_accounts_seconds=r),type:"number",min:"0",max:"600",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[l,s.value.retry.auto_refresh_accounts_seconds,void 0,{number:!0}]])])]),t("div",h,[t("div",ee,[e[49]||(e[49]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"公开展示",-1)),t("div",te,[e[46]||(e[46]=t("label",{class:"block text-xs text-muted-foreground"},"Logo 地址",-1)),o(t("input",{"onUpdate:modelValue":e[19]||(e[19]=r=>s.value.public_display.logo_url=r),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"logo 地址"},null,512),[[l,s.value.public_display.logo_url]]),e[47]||(e[47]=t("label",{class:"block text-xs text-muted-foreground"},"聊天入口",-1)),o(t("input",{"onUpdate:modelValue":e[20]||(e[20]=r=>s.value.public_display.chat_url=r),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"聊天入口地址"},null,512),[[l,s.value.public_display.chat_url]]),e[48]||(e[48]=t("label",{class:"block text-xs text-muted-foreground"},"会话有效时长",-1)),o(t("input",{"onUpdate:modelValue":e[21]||(e[21]=r=>s.value.session.expire_hours=r),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[l,s.value.session.expire_hours,void 0,{number:!0}]])])]),e[50]||(e[50]=t("div",{class:"rounded-2xl border border-border bg-card p-4"},[t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"说明"),t("p",{class:"mt-4 text-sm text-muted-foreground"}," 保存后会直接写入配置文件并热更新。修改后请关注日志面板确认是否生效。 "),t("p",{class:"mt-3 text-sm text-muted-foreground"}," 自动注册/刷新默认启用,若依赖缺失会自动降级并提示。 ")],-1))])])])):c("",!0)]))]))}});export{ae as default}; diff --git a/static/assets/Settings-myvf-puL.js b/static/assets/Settings-myvf-puL.js new file mode 100644 index 0000000000000000000000000000000000000000..01c74a33a4f8e040ae7bcf58d8ea6b6f1f9728c7 --- /dev/null +++ b/static/assets/Settings-myvf-puL.js @@ -0,0 +1 @@ +import{d as N,E as M,h as m,i as P,A as O,o as j,c as d,u as A,a as t,b as v,t as D,q as r,v as o,p as a,s as x,f as g,e as n}from"./index-JaBfp01b.js";import{u as F}from"./settings-BHsdlelt.js";import{_ as f}from"./SelectMenu.vue_vue_type_script_setup_true_lang-cSKw_kbn.js";import{_ as c}from"./Checkbox.vue_vue_type_script_setup_true_lang-B33RCL2G.js";import{_ as y}from"./HelpTip.vue_vue_type_script_setup_true_lang-DO1J64wx.js";const G={class:"space-y-8"},B={key:0,class:"rounded-3xl border border-border bg-card p-6 text-sm text-muted-foreground"},C={key:1,class:"rounded-3xl border border-border bg-card p-6"},L={class:"flex items-center justify-between"},q=["disabled"],I={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},T={key:1,class:"mt-6 space-y-8"},$={class:"grid gap-4 lg:grid-cols-3"},E={class:"space-y-4"},J={class:"rounded-2xl border border-border bg-card p-4"},R={class:"mt-4 space-y-3"},z={class:"rounded-2xl border border-border bg-card p-4"},H={class:"mt-4 space-y-3"},K={class:"grid grid-cols-2 items-center gap-x-6 gap-y-2"},Q={class:"flex items-center justify-between gap-2 text-xs text-muted-foreground"},W={class:"space-y-4"},X={class:"rounded-2xl border border-border bg-card p-4"},Y={class:"mt-4 grid grid-cols-2 gap-3 text-sm"},Z={class:"col-span-2 flex items-center justify-between gap-2 text-xs text-muted-foreground"},h={class:"space-y-4"},ee={class:"rounded-2xl border border-border bg-card p-4"},te={class:"mt-4 space-y-3"},se={class:"rounded-2xl border border-border bg-card p-4"},le={class:"mt-4 space-y-3"},ie=N({__name:"Settings",setup(re){const p=F(),{settings:_,isLoading:k}=M(p),s=m(null),b=m(!1),i=m(""),w=[{label:"Base64 编码",value:"base64"},{label:"URL 链接",value:"url"}],V=P(()=>{const u=[{label:"Gemini 3 Pro Preview",value:"gemini-3-pro-preview"},{label:"Gemini 3 Flash Preview",value:"gemini-3-flash-preview"},{label:"Gemini 2.5 Pro",value:"gemini-2.5-pro"},{label:"Gemini 2.5 Flash",value:"gemini-2.5-flash"},{label:"Gemini Auto",value:"gemini-auto"}],e=s.value?.image_generation.supported_models||[];for(const l of e)u.some(S=>S.value===l)||u.push({label:l,value:l});return u});O(_,u=>{if(!u)return;const e=JSON.parse(JSON.stringify(u));e.image_generation=e.image_generation||{enabled:!1,supported_models:[],output_format:"base64"},e.image_generation.output_format||="base64",e.basic=e.basic||{},e.basic.duckmail_base_url||="https://api.duckmail.sbs",e.basic.duckmail_verify_ssl=e.basic.duckmail_verify_ssl??!0,e.basic.browser_headless=e.basic.browser_headless??!0,e.basic.refresh_window_hours=Number.isFinite(e.basic.refresh_window_hours)?e.basic.refresh_window_hours:1,e.basic.register_default_count=Number.isFinite(e.basic.register_default_count)?e.basic.register_default_count:1,e.basic.register_domain=typeof e.basic.register_domain=="string"?e.basic.register_domain:"",e.basic.duckmail_api_key=typeof e.basic.duckmail_api_key=="string"?e.basic.duckmail_api_key:"",e.retry=e.retry||{},e.retry.auto_refresh_accounts_seconds=Number.isFinite(e.retry.auto_refresh_accounts_seconds)?e.retry.auto_refresh_accounts_seconds:60,s.value=e}),j(async()=>{await p.loadSettings()});const U=async()=>{if(s.value){i.value="",b.value=!0;try{await p.updateSettings(s.value)}catch(u){i.value=u.message||"保存失败"}finally{b.value=!1}}};return(u,e)=>(n(),d("div",G,[A(k)?(n(),d("section",B," 正在加载设置... ")):(n(),d("section",C,[t("div",L,[e[23]||(e[23]=t("p",{class:"text-base font-semibold text-foreground"},"配置面板",-1)),t("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:b.value||!s.value,onClick:U}," 保存设置 ",8,q)]),i.value?(n(),d("div",I,D(i.value),1)):v("",!0),s.value?(n(),d("div",T,[t("div",$,[t("div",E,[t("div",J,[e[27]||(e[27]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"基础",-1)),t("div",R,[e[24]||(e[24]=t("label",{class:"block text-xs text-muted-foreground"},"API 密钥",-1)),r(t("input",{"onUpdate:modelValue":e[0]||(e[0]=l=>s.value.basic.api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"可选"},null,512),[[o,s.value.basic.api_key]]),e[25]||(e[25]=t("label",{class:"block text-xs text-muted-foreground"},"基础地址",-1)),r(t("input",{"onUpdate:modelValue":e[1]||(e[1]=l=>s.value.basic.base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"自动检测或手动填写"},null,512),[[o,s.value.basic.base_url]]),e[26]||(e[26]=t("label",{class:"block text-xs text-muted-foreground"},"代理地址",-1)),r(t("input",{"onUpdate:modelValue":e[2]||(e[2]=l=>s.value.basic.proxy=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"http://127.0.0.1:7890"},null,512),[[o,s.value.basic.proxy]])])]),t("div",z,[e[35]||(e[35]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"自动注册/刷新",-1)),t("div",H,[e[31]||(e[31]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API",-1)),r(t("input",{"onUpdate:modelValue":e[3]||(e[3]=l=>s.value.basic.duckmail_base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"https://api.duckmail.sbs"},null,512),[[o,s.value.basic.duckmail_base_url]]),t("div",K,[a(c,{modelValue:s.value.basic.duckmail_verify_ssl,"onUpdate:modelValue":e[4]||(e[4]=l=>s.value.basic.duckmail_verify_ssl=l)},{default:x(()=>[...e[28]||(e[28]=[g(" DuckMail SSL 校验 ",-1)])]),_:1},8,["modelValue"]),a(c,{modelValue:s.value.basic.browser_headless,"onUpdate:modelValue":e[5]||(e[5]=l=>s.value.basic.browser_headless=l),class:"w-full justify-end justify-self-end"},{default:x(()=>[...e[29]||(e[29]=[g(" 无头浏览器 ",-1)])]),_:1},8,["modelValue"])]),t("div",Q,[e[30]||(e[30]=t("span",null,"过期刷新窗口(小时)",-1)),a(y,{text:"当账号距离过期小于等于该值时,会触发自动登录刷新(更新 cookie/session)。"})]),r(t("input",{"onUpdate:modelValue":e[6]||(e[6]=l=>s.value.basic.refresh_window_hours=l),type:"number",min:"0",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.refresh_window_hours,void 0,{number:!0}]]),e[32]||(e[32]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册数量",-1)),r(t("input",{"onUpdate:modelValue":e[7]||(e[7]=l=>s.value.basic.register_default_count=l),type:"number",min:"1",max:"30",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.basic.register_default_count,void 0,{number:!0}]]),e[33]||(e[33]=t("label",{class:"block text-xs text-muted-foreground"},"默认注册域名(推荐)",-1)),r(t("input",{"onUpdate:modelValue":e[8]||(e[8]=l=>s.value.basic.register_domain=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"留空则自动选择"},null,512),[[o,s.value.basic.register_domain]]),e[34]||(e[34]=t("label",{class:"block text-xs text-muted-foreground"},"DuckMail API 密钥",-1)),r(t("input",{"onUpdate:modelValue":e[9]||(e[9]=l=>s.value.basic.duckmail_api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"dk_xxx"},null,512),[[o,s.value.basic.duckmail_api_key]])])])]),t("div",W,[t("div",X,[e[43]||(e[43]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"重试",-1)),t("div",Y,[e[37]||(e[37]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"新会话尝试次数",-1)),r(t("input",{"onUpdate:modelValue":e[10]||(e[10]=l=>s.value.retry.max_new_session_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_new_session_tries,void 0,{number:!0}]]),e[38]||(e[38]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"请求重试次数",-1)),r(t("input",{"onUpdate:modelValue":e[11]||(e[11]=l=>s.value.retry.max_request_retries=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_request_retries,void 0,{number:!0}]]),e[39]||(e[39]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"账号切换次数",-1)),r(t("input",{"onUpdate:modelValue":e[12]||(e[12]=l=>s.value.retry.max_account_switch_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.max_account_switch_tries,void 0,{number:!0}]]),e[40]||(e[40]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"失败阈值",-1)),r(t("input",{"onUpdate:modelValue":e[13]||(e[13]=l=>s.value.retry.account_failure_threshold=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.account_failure_threshold,void 0,{number:!0}]]),e[41]||(e[41]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"限流冷却秒数",-1)),r(t("input",{"onUpdate:modelValue":e[14]||(e[14]=l=>s.value.retry.rate_limit_cooldown_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.rate_limit_cooldown_seconds,void 0,{number:!0}]]),e[42]||(e[42]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"会话缓存秒数",-1)),r(t("input",{"onUpdate:modelValue":e[15]||(e[15]=l=>s.value.retry.session_cache_ttl_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.session_cache_ttl_seconds,void 0,{number:!0}]]),t("div",Z,[e[36]||(e[36]=t("span",null,"自动刷新账号间隔(秒,0禁用)",-1)),a(y,{text:"仅在数据库存储启用时生效:用于检测账号配置变化并重载列表,不会刷新 cookie。文件存储模式不会触发。"})]),r(t("input",{"onUpdate:modelValue":e[16]||(e[16]=l=>s.value.retry.auto_refresh_accounts_seconds=l),type:"number",min:"0",max:"600",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[o,s.value.retry.auto_refresh_accounts_seconds,void 0,{number:!0}]])])])]),t("div",h,[t("div",ee,[e[47]||(e[47]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"图像生成",-1)),t("div",te,[a(c,{modelValue:s.value.image_generation.enabled,"onUpdate:modelValue":e[17]||(e[17]=l=>s.value.image_generation.enabled=l)},{default:x(()=>[...e[44]||(e[44]=[g(" 启用图像生成 ",-1)])]),_:1},8,["modelValue"]),e[45]||(e[45]=t("label",{class:"block text-xs text-muted-foreground"},"输出格式",-1)),a(f,{modelValue:s.value.image_generation.output_format,"onUpdate:modelValue":e[18]||(e[18]=l=>s.value.image_generation.output_format=l),options:w,placement:"up",class:"w-full"},null,8,["modelValue"]),e[46]||(e[46]=t("label",{class:"block text-xs text-muted-foreground"},"支持模型",-1)),a(f,{modelValue:s.value.image_generation.supported_models,"onUpdate:modelValue":e[19]||(e[19]=l=>s.value.image_generation.supported_models=l),options:V.value,placeholder:"选择模型",placement:"up",multiple:"",class:"w-full"},null,8,["modelValue","options"])])]),t("div",se,[e[51]||(e[51]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"公开展示",-1)),t("div",le,[e[48]||(e[48]=t("label",{class:"block text-xs text-muted-foreground"},"Logo 地址",-1)),r(t("input",{"onUpdate:modelValue":e[20]||(e[20]=l=>s.value.public_display.logo_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"logo 地址"},null,512),[[o,s.value.public_display.logo_url]]),e[49]||(e[49]=t("label",{class:"block text-xs text-muted-foreground"},"聊天入口",-1)),r(t("input",{"onUpdate:modelValue":e[21]||(e[21]=l=>s.value.public_display.chat_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"聊天入口地址"},null,512),[[o,s.value.public_display.chat_url]]),e[50]||(e[50]=t("label",{class:"block text-xs text-muted-foreground"},"会话有效时长",-1)),r(t("input",{"onUpdate:modelValue":e[22]||(e[22]=l=>s.value.session.expire_hours=l),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[o,s.value.session.expire_hours,void 0,{number:!0}]])])]),e[52]||(e[52]=t("div",{class:"rounded-2xl border border-border bg-card p-4"},[t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"说明"),t("p",{class:"mt-4 text-sm text-muted-foreground"}," 保存后会直接写入配置文件并热更新。修改后请关注日志面板确认是否生效。 "),t("p",{class:"mt-3 text-sm text-muted-foreground"}," 自动注册/刷新默认启用,若依赖缺失会自动降级并提示。 ")],-1))])])])):v("",!0)]))]))}});export{ie as default}; diff --git a/static/assets/Settings-oiGSFiLo.js b/static/assets/Settings-oiGSFiLo.js new file mode 100644 index 0000000000000000000000000000000000000000..62edc73f4a0b0357c1ddd97da77ec59336d3657e --- /dev/null +++ b/static/assets/Settings-oiGSFiLo.js @@ -0,0 +1 @@ +import{d as V,D as w,h as m,i as U,s as S,o as N,c as a,u as O,a as t,b as x,t as G,m as s,v as r,x as b,A as P,f as B,e as d}from"./index-B0A0-QFY.js";import{u as C}from"./settings-MHx3aXRd.js";import{_ as g}from"./SelectMenu.vue_vue_type_script_setup_true_lang-Bb3w9pba.js";import{_ as M}from"./Checkbox.vue_vue_type_script_setup_true_lang-B6QFZaQQ.js";const A={class:"space-y-8"},D={key:0,class:"rounded-3xl border border-border bg-card p-6 text-sm text-muted-foreground"},L={key:1,class:"rounded-3xl border border-border bg-card p-6"},T={class:"flex items-center justify-between"},q=["disabled"],F={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},J={key:1,class:"mt-6 space-y-8"},R={class:"grid gap-4 lg:grid-cols-3"},$={class:"space-y-4"},j={class:"rounded-2xl border border-border bg-card p-4"},E={class:"mt-4 space-y-3"},I={class:"rounded-2xl border border-border bg-card p-4"},z={class:"mt-4 space-y-3"},H={class:"rounded-2xl border border-border bg-card p-4"},K={class:"mt-4 grid grid-cols-2 gap-3 text-sm"},Q={class:"space-y-4"},W={class:"rounded-2xl border border-border bg-card p-4"},X={class:"mt-4 space-y-3"},oe=V({__name:"Settings",setup(Y){const i=C(),{settings:v,isLoading:c}=w(i),o=m(null),p=m(!1),n=m(""),y=[{label:"Base64 编码",value:"base64"},{label:"URL 链接",value:"url"}],f=U(()=>{const u=[{label:"Gemini 3 Pro Preview",value:"gemini-3-pro-preview"},{label:"Gemini 3 Flash Preview",value:"gemini-3-flash-preview"},{label:"Gemini 2.5 Pro",value:"gemini-2.5-pro"},{label:"Gemini 2.5 Flash",value:"gemini-2.5-flash"},{label:"Gemini Auto",value:"gemini-auto"}],e=o.value?.image_generation.supported_models||[];for(const l of e)u.some(k=>k.value===l)||u.push({label:l,value:l});return u});S(v,u=>{if(!u)return;const e=JSON.parse(JSON.stringify(u));e.image_generation=e.image_generation||{enabled:!1,supported_models:[],output_format:"base64"},e.image_generation.output_format||="base64",o.value=e}),N(async()=>{await i.loadSettings()});const _=async()=>{if(o.value){n.value="",p.value=!0;try{await i.updateSettings(o.value)}catch(u){n.value=u.message||"保存失败"}finally{p.value=!1}}};return(u,e)=>(d(),a("div",A,[O(c)?(d(),a("section",D," 正在加载设置... ")):(d(),a("section",L,[t("div",T,[e[15]||(e[15]=t("p",{class:"text-base font-semibold text-foreground"},"配置面板",-1)),t("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:p.value||!o.value,onClick:_}," 保存设置 ",8,q)]),n.value?(d(),a("div",F,G(n.value),1)):x("",!0),o.value?(d(),a("div",J,[t("div",R,[t("div",$,[t("div",j,[e[19]||(e[19]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"基础",-1)),t("div",E,[e[16]||(e[16]=t("label",{class:"block text-xs text-muted-foreground"},"API 密钥",-1)),s(t("input",{"onUpdate:modelValue":e[0]||(e[0]=l=>o.value.basic.api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"可选"},null,512),[[r,o.value.basic.api_key]]),e[17]||(e[17]=t("label",{class:"block text-xs text-muted-foreground"},"基础地址",-1)),s(t("input",{"onUpdate:modelValue":e[1]||(e[1]=l=>o.value.basic.base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"自动检测或手动填写"},null,512),[[r,o.value.basic.base_url]]),e[18]||(e[18]=t("label",{class:"block text-xs text-muted-foreground"},"代理地址",-1)),s(t("input",{"onUpdate:modelValue":e[2]||(e[2]=l=>o.value.basic.proxy=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"http://127.0.0.1:7890"},null,512),[[r,o.value.basic.proxy]])])]),t("div",I,[e[23]||(e[23]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"图像生成",-1)),t("div",z,[b(M,{modelValue:o.value.image_generation.enabled,"onUpdate:modelValue":e[3]||(e[3]=l=>o.value.image_generation.enabled=l)},{default:P(()=>[...e[20]||(e[20]=[B(" 启用图像生成 ",-1)])]),_:1},8,["modelValue"]),e[21]||(e[21]=t("label",{class:"block text-xs text-muted-foreground"},"输出格式",-1)),b(g,{modelValue:o.value.image_generation.output_format,"onUpdate:modelValue":e[4]||(e[4]=l=>o.value.image_generation.output_format=l),options:y,placement:"up"},null,8,["modelValue"]),e[22]||(e[22]=t("label",{class:"block text-xs text-muted-foreground"},"支持模型",-1)),b(g,{modelValue:o.value.image_generation.supported_models,"onUpdate:modelValue":e[5]||(e[5]=l=>o.value.image_generation.supported_models=l),options:f.value,placeholder:"选择模型",placement:"up",multiple:""},null,8,["modelValue","options"])])])]),t("div",H,[e[30]||(e[30]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"重试",-1)),t("div",K,[e[24]||(e[24]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"新会话尝试次数",-1)),s(t("input",{"onUpdate:modelValue":e[6]||(e[6]=l=>o.value.retry.max_new_session_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,o.value.retry.max_new_session_tries,void 0,{number:!0}]]),e[25]||(e[25]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"请求重试次数",-1)),s(t("input",{"onUpdate:modelValue":e[7]||(e[7]=l=>o.value.retry.max_request_retries=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,o.value.retry.max_request_retries,void 0,{number:!0}]]),e[26]||(e[26]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"账号切换次数",-1)),s(t("input",{"onUpdate:modelValue":e[8]||(e[8]=l=>o.value.retry.max_account_switch_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,o.value.retry.max_account_switch_tries,void 0,{number:!0}]]),e[27]||(e[27]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"失败阈值",-1)),s(t("input",{"onUpdate:modelValue":e[9]||(e[9]=l=>o.value.retry.account_failure_threshold=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,o.value.retry.account_failure_threshold,void 0,{number:!0}]]),e[28]||(e[28]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"限流冷却秒数",-1)),s(t("input",{"onUpdate:modelValue":e[10]||(e[10]=l=>o.value.retry.rate_limit_cooldown_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,o.value.retry.rate_limit_cooldown_seconds,void 0,{number:!0}]]),e[29]||(e[29]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"会话缓存秒数",-1)),s(t("input",{"onUpdate:modelValue":e[11]||(e[11]=l=>o.value.retry.session_cache_ttl_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,o.value.retry.session_cache_ttl_seconds,void 0,{number:!0}]])])]),t("div",Q,[t("div",W,[e[34]||(e[34]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"公开展示",-1)),t("div",X,[e[31]||(e[31]=t("label",{class:"block text-xs text-muted-foreground"},"Logo 地址",-1)),s(t("input",{"onUpdate:modelValue":e[12]||(e[12]=l=>o.value.public_display.logo_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"logo 地址"},null,512),[[r,o.value.public_display.logo_url]]),e[32]||(e[32]=t("label",{class:"block text-xs text-muted-foreground"},"聊天入口",-1)),s(t("input",{"onUpdate:modelValue":e[13]||(e[13]=l=>o.value.public_display.chat_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"聊天入口地址"},null,512),[[r,o.value.public_display.chat_url]]),e[33]||(e[33]=t("label",{class:"block text-xs text-muted-foreground"},"会话有效时长",-1)),s(t("input",{"onUpdate:modelValue":e[14]||(e[14]=l=>o.value.session.expire_hours=l),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[r,o.value.session.expire_hours,void 0,{number:!0}]])])]),e[35]||(e[35]=t("div",{class:"rounded-2xl border border-border bg-card p-4"},[t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"说明"),t("p",{class:"mt-4 text-sm text-muted-foreground"}," 保存后会直接写入配置文件并热更新。修改后请关注日志面板确认是否生效。 ")],-1))])])])):x("",!0)]))]))}});export{oe as default}; diff --git a/static/assets/index-4tSmcUDY.js b/static/assets/index-4tSmcUDY.js new file mode 100644 index 0000000000000000000000000000000000000000..691e4a650b0578515c6244fd1edc2e80298b0bbe --- /dev/null +++ b/static/assets/index-4tSmcUDY.js @@ -0,0 +1,7 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PublicUptime-DuYTd433.js","assets/useUptimeStatus-BYx1h4Ac.js","assets/AppShell-DWHcP5pC.js","assets/settings-By2abYt3.js","assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-TmgBmCy7.js","assets/useConfirmDialog-DC2-Wjcf.js","assets/Dashboard-DET2X3uX.js","assets/HelpTip.vue_vue_type_script_setup_true_lang-BNcd5Xum.js","assets/Accounts-Cujd5Q6N.js","assets/SelectMenu.vue_vue_type_script_setup_true_lang-DsnNWmZF.js","assets/Checkbox.vue_vue_type_script_setup_true_lang-B2pvqq8a.js","assets/Settings-DPDEjYSf.js","assets/Logs-B9cm-Qa5.js","assets/Monitor-bxyFw9Hv.js"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function us(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const se={},$t=[],ot=()=>{},ni=()=>!1,or=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),fs=e=>e.startsWith("onUpdate:"),Se=Object.assign,ds=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},oc=Object.prototype.hasOwnProperty,ne=(e,t)=>oc.call(e,t),q=Array.isArray,Kt=e=>ir(e)==="[object Map]",ri=e=>ir(e)==="[object Set]",W=e=>typeof e=="function",de=e=>typeof e=="string",yt=e=>typeof e=="symbol",le=e=>e!==null&&typeof e=="object",si=e=>(le(e)||W(e))&&W(e.then)&&W(e.catch),oi=Object.prototype.toString,ir=e=>oi.call(e),ic=e=>ir(e).slice(8,-1),ii=e=>ir(e)==="[object Object]",lr=e=>de(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,cn=us(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),cr=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},lc=/-\w/g,xt=cr(e=>e.replace(lc,t=>t.slice(1).toUpperCase())),cc=/\B([A-Z])/g,jt=cr(e=>e.replace(cc,"-$1").toLowerCase()),li=cr(e=>e.charAt(0).toUpperCase()+e.slice(1)),vr=cr(e=>e?`on${li(e)}`:""),vt=(e,t)=>!Object.is(e,t),Bn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},hs=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let ks;const ar=()=>ks||(ks=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function ps(e){if(q(e)){const t={};for(let n=0;n{if(n){const r=n.split(uc);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function ms(e){let t="";if(de(e))t=e;else if(q(e))for(let n=0;n!!(e&&e.__v_isRef===!0),mc=e=>de(e)?e:e==null?"":q(e)||le(e)&&(e.toString===oi||!W(e.toString))?ui(e)?mc(e.value):JSON.stringify(e,fi,2):String(e),fi=(e,t)=>ui(t)?fi(e,t.value):Kt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[Or(r,o)+" =>"]=s,n),{})}:ri(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Or(n))}:yt(t)?Or(t):le(t)&&!q(t)&&!ii(t)?String(t):t,Or=(e,t="")=>{var n;return yt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let _e;class di{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=_e,!t&&_e&&(this.index=(_e.scopes||(_e.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&&(_e=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if(un){let t=un;for(un=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;an;){let t=an;for(an=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function _i(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function bi(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),_s(r),yc(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function qr(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===bn)||(e.globalVersion=bn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!qr(e))))return;e.flags|=2;const t=e.dep,n=ie,r=$e;ie=e,$e=!0;try{_i(e);const s=e.fn(e._value);(t.version===0||vt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{ie=n,$e=r,bi(e),e.flags&=-3}}function _s(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)_s(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function yc(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 wi=[];function ht(){wi.push($e),$e=!1}function pt(){const e=wi.pop();$e=e===void 0?!0:e}function Vs(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ie;ie=void 0;try{t()}finally{ie=n}}}let bn=0;class _c{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 bs{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!ie||!$e||ie===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ie)n=this.activeLink=new _c(ie,this),ie.deps?(n.prevDep=ie.depsTail,ie.depsTail.nextDep=n,ie.depsTail=n):ie.deps=ie.depsTail=n,Si(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=ie.depsTail,n.nextDep=void 0,ie.depsTail.nextDep=n,ie.depsTail=n,ie.deps===n&&(ie.deps=r)}return n}trigger(t){this.version++,bn++,this.notify(t)}notify(t){gs();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ys()}}}function Si(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Si(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const zn=new WeakMap,Dt=Symbol(""),$r=Symbol(""),En=Symbol("");function be(e,t,n){if($e&&ie){let r=zn.get(e);r||zn.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new bs),s.map=r,s.key=n),s.track()}}function ft(e,t,n,r,s,o){const i=zn.get(e);if(!i){bn++;return}const l=c=>{c&&c.trigger()};if(gs(),t==="clear")i.forEach(l);else{const c=q(e),u=c&&lr(n);if(c&&n==="length"){const a=Number(r);i.forEach((f,p)=>{(p==="length"||p===En||!yt(p)&&p>=a)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(En)),t){case"add":c?u&&l(i.get("length")):(l(i.get(Dt)),Kt(e)&&l(i.get($r)));break;case"delete":c||(l(i.get(Dt)),Kt(e)&&l(i.get($r)));break;case"set":Kt(e)&&l(i.get(Dt));break}}ys()}function bc(e,t){const n=zn.get(e);return n&&n.get(t)}function Bt(e){const t=Z(e);return t===e?t:(be(t,"iterate",En),je(e)?t:t.map(Ke))}function ur(e){return be(e=Z(e),"iterate",En),e}function wt(e,t){return mt(e)?it(e)?zt(Ke(t)):zt(t):Ke(t)}const Ec={__proto__:null,[Symbol.iterator](){return Tr(this,Symbol.iterator,e=>wt(this,e))},concat(...e){return Bt(this).concat(...e.map(t=>q(t)?Bt(t):t))},entries(){return Tr(this,"entries",e=>(e[1]=wt(this,e[1]),e))},every(e,t){return ct(this,"every",e,t,void 0,arguments)},filter(e,t){return ct(this,"filter",e,t,n=>n.map(r=>wt(this,r)),arguments)},find(e,t){return ct(this,"find",e,t,n=>wt(this,n),arguments)},findIndex(e,t){return ct(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ct(this,"findLast",e,t,n=>wt(this,n),arguments)},findLastIndex(e,t){return ct(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ct(this,"forEach",e,t,void 0,arguments)},includes(...e){return Cr(this,"includes",e)},indexOf(...e){return Cr(this,"indexOf",e)},join(e){return Bt(this).join(e)},lastIndexOf(...e){return Cr(this,"lastIndexOf",e)},map(e,t){return ct(this,"map",e,t,void 0,arguments)},pop(){return nn(this,"pop")},push(...e){return nn(this,"push",e)},reduce(e,...t){return qs(this,"reduce",e,t)},reduceRight(e,...t){return qs(this,"reduceRight",e,t)},shift(){return nn(this,"shift")},some(e,t){return ct(this,"some",e,t,void 0,arguments)},splice(...e){return nn(this,"splice",e)},toReversed(){return Bt(this).toReversed()},toSorted(e){return Bt(this).toSorted(e)},toSpliced(...e){return Bt(this).toSpliced(...e)},unshift(...e){return nn(this,"unshift",e)},values(){return Tr(this,"values",e=>wt(this,e))}};function Tr(e,t,n){const r=ur(e),s=r[t]();return r!==e&&!je(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const wc=Array.prototype;function ct(e,t,n,r,s,o){const i=ur(e),l=i!==e&&!je(e),c=i[t];if(c!==wc[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,wt(e,f),p,e)}:n.length>2&&(u=function(f,p){return n.call(this,f,p,e)}));const a=c.call(i,u,r);return l&&s?s(a):a}function qs(e,t,n,r){const s=ur(e);let o=n;return s!==e&&(je(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,wt(e,l),c,e)}),s[t](o,...r)}function Cr(e,t,n){const r=Z(e);be(r,"iterate",En);const s=r[t](...n);return(s===-1||s===!1)&&fr(n[0])?(n[0]=Z(n[0]),r[t](...n)):s}function nn(e,t,n=[]){ht(),gs();const r=Z(e)[t].apply(e,n);return ys(),pt(),r}const Sc=us("__proto__,__v_isRef,__isVue"),Ri=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(yt));function Rc(e){yt(e)||(e=String(e));const t=Z(this);return be(t,"has",e),t.hasOwnProperty(e)}class Ai{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?Dc:Ti:o?xi:Oi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=q(t);if(!s){let c;if(i&&(c=Ec[n]))return c;if(n==="hasOwnProperty")return Rc}const l=Reflect.get(t,n,ce(t)?t:r);if((yt(n)?Ri.has(n):Sc(n))||(s||be(t,"get",n),o))return l;if(ce(l)){const c=i&&lr(n)?l:l.value;return s&&le(c)?Wr(c):c}return le(l)?s?Wr(l):On(l):l}}class vi extends Ai{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=q(t)&&lr(n);if(!this._isShallow){const u=mt(o);if(!je(r)&&!mt(r)&&(o=Z(o),r=Z(r)),!i&&ce(o)&&!ce(r))return u||(o.value=r),!0}const l=i?Number(n)e,Dn=e=>Reflect.getPrototypeOf(e);function Tc(e,t,n){return function(...r){const s=this.__v_raw,o=Z(s),i=Kt(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=s[e](...r),a=n?Kr:t?zt:Ke;return!t&&be(o,"iterate",c?$r:Dt),{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 Ln(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Cc(e,t){const n={get(s){const o=this.__v_raw,i=Z(o),l=Z(s);e||(vt(s,l)&&be(i,"get",s),be(i,"get",l));const{has:c}=Dn(i),u=t?Kr:e?zt:Ke;if(c.call(i,s))return u(o.get(s));if(c.call(i,l))return u(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&be(Z(s),"iterate",Dt),s.size},has(s){const o=this.__v_raw,i=Z(o),l=Z(s);return e||(vt(s,l)&&be(i,"has",s),be(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,c=Z(l),u=t?Kr:e?zt:Ke;return!e&&be(c,"iterate",Dt),l.forEach((a,f)=>s.call(o,u(a),u(f),i))}};return Se(n,e?{add:Ln("add"),set:Ln("set"),delete:Ln("delete"),clear:Ln("clear")}:{add(s){!t&&!je(s)&&!mt(s)&&(s=Z(s));const o=Z(this);return Dn(o).has.call(o,s)||(o.add(s),ft(o,"add",s,s)),this},set(s,o){!t&&!je(o)&&!mt(o)&&(o=Z(o));const i=Z(this),{has:l,get:c}=Dn(i);let u=l.call(i,s);u||(s=Z(s),u=l.call(i,s));const a=c.call(i,s);return i.set(s,o),u?vt(o,a)&&ft(i,"set",s,o):ft(i,"add",s,o),this},delete(s){const o=Z(this),{has:i,get:l}=Dn(o);let c=i.call(o,s);c||(s=Z(s),c=i.call(o,s)),l&&l.call(o,s);const u=o.delete(s);return c&&ft(o,"delete",s,void 0),u},clear(){const s=Z(this),o=s.size!==0,i=s.clear();return o&&ft(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=Tc(s,e,t)}),n}function Es(e,t){const n=Cc(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(ne(n,s)&&s in r?n:r,s,o)}const Pc={get:Es(!1,!1)},Nc={get:Es(!1,!0)},Ic={get:Es(!0,!1)};const Oi=new WeakMap,xi=new WeakMap,Ti=new WeakMap,Dc=new WeakMap;function Lc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Fc(e){return e.__v_skip||!Object.isExtensible(e)?0:Lc(ic(e))}function On(e){return mt(e)?e:ws(e,!1,vc,Pc,Oi)}function Ci(e){return ws(e,!1,xc,Nc,xi)}function Wr(e){return ws(e,!0,Oc,Ic,Ti)}function ws(e,t,n,r,s){if(!le(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=Fc(e);if(o===0)return e;const i=s.get(e);if(i)return i;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function it(e){return mt(e)?it(e.__v_raw):!!(e&&e.__v_isReactive)}function mt(e){return!!(e&&e.__v_isReadonly)}function je(e){return!!(e&&e.__v_isShallow)}function fr(e){return e?!!e.__v_raw:!1}function Z(e){const t=e&&e.__v_raw;return t?Z(t):e}function Ss(e){return!ne(e,"__v_skip")&&Object.isExtensible(e)&&ci(e,"__v_skip",!0),e}const Ke=e=>le(e)?On(e):e,zt=e=>le(e)?Wr(e):e;function ce(e){return e?e.__v_isRef===!0:!1}function Lt(e){return Pi(e,!1)}function Mc(e){return Pi(e,!0)}function Pi(e,t){return ce(e)?e:new Uc(e,t)}class Uc{constructor(t,n){this.dep=new bs,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:Z(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,r=this.__v_isShallow||je(t)||mt(t);t=r?t:Z(t),vt(t,n)&&(this._rawValue=t,this._value=r?t:Ke(t),this.dep.trigger())}}function Ot(e){return ce(e)?e.value:e}const jc={get:(e,t,n)=>t==="__v_raw"?e:Ot(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return ce(s)&&!ce(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Ni(e){return it(e)?e:new Proxy(e,jc)}function Bc(e){const t=q(e)?new Array(e.length):{};for(const n in e)t[n]=Ii(e,n);return t}class Hc{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._raw=Z(t);let s=!0,o=t;if(!q(t)||!lr(String(n)))do s=!fr(o)||je(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=Ot(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&ce(this._raw[this._key])){const n=this._object[this._key];if(ce(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return bc(this._raw,this._key)}}class kc{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Vc(e,t,n){return ce(e)?e:W(e)?new kc(e):le(e)&&arguments.length>1?Ii(e,t,n):Lt(e)}function Ii(e,t,n){return new Hc(e,t,n)}class qc{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new bs(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=bn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&ie!==this)return yi(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 $c(e,t,n=!1){let r,s;return W(e)?r=e:(r=e.get,s=e.set),new qc(r,s,n)}const Fn={},Jn=new WeakMap;let Pt;function Kc(e,t=!1,n=Pt){if(n){let r=Jn.get(n);r||Jn.set(n,r=[]),r.push(e)}}function Wc(e,t,n=se){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:c}=n,u=P=>s?P:je(P)||s===!1||s===0?dt(P,1):dt(P);let a,f,p,m,g=!1,b=!1;if(ce(e)?(f=()=>e.value,g=je(e)):it(e)?(f=()=>u(e),g=!0):q(e)?(b=!0,g=e.some(P=>it(P)||je(P)),f=()=>e.map(P=>{if(ce(P))return P.value;if(it(P))return u(P);if(W(P))return c?c(P,2):P()})):W(e)?t?f=c?()=>c(e,2):e:f=()=>{if(p){ht();try{p()}finally{pt()}}const P=Pt;Pt=a;try{return c?c(e,3,[m]):e(m)}finally{Pt=P}}:f=ot,t&&s){const P=f,M=s===!0?1/0:s;f=()=>dt(P(),M)}const E=pi(),O=()=>{a.stop(),E&&E.active&&ds(E.effects,a)};if(o&&t){const P=t;t=(...M)=>{P(...M),O()}}let C=b?new Array(e.length).fill(Fn):Fn;const N=P=>{if(!(!(a.flags&1)||!a.dirty&&!P))if(t){const M=a.run();if(s||g||(b?M.some((X,k)=>vt(X,C[k])):vt(M,C))){p&&p();const X=Pt;Pt=a;try{const k=[M,C===Fn?void 0:b&&C[0]===Fn?[]:C,m];C=M,c?c(t,3,k):t(...k)}finally{Pt=X}}}else a.run()};return l&&l(N),a=new mi(f),a.scheduler=i?()=>i(N,!1):N,m=P=>Kc(P,!1,a),p=a.onStop=()=>{const P=Jn.get(a);if(P){if(c)c(P,4);else for(const M of P)M();Jn.delete(a)}},t?r?N(!0):C=a.run():i?i(N.bind(null,!0),!0):a.run(),O.pause=a.pause.bind(a),O.resume=a.resume.bind(a),O.stop=O,O}function dt(e,t=1/0,n){if(t<=0||!le(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,ce(e))dt(e.value,t,n);else if(q(e))for(let r=0;r{dt(r,t,n)});else if(ii(e)){for(const r in e)dt(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&dt(e[r],t,n)}return e}function xn(e,t,n,r){try{return r?e(...r):e()}catch(s){dr(s,t,n)}}function lt(e,t,n,r){if(W(e)){const s=xn(e,t,n,r);return s&&si(s)&&s.catch(o=>{dr(o,t,n)}),s}if(q(e)){const s=[];for(let o=0;o>>1,s=xe[r],o=wn(s);o=wn(n)?xe.push(e):xe.splice(zc(t),0,e),e.flags|=1,Li()}}function Li(){Xn||(Xn=Di.then(Mi))}function Jc(e){q(e)?Wt.push(...e):St&&e.id===-1?St.splice(kt+1,0,e):e.flags&1||(Wt.push(e),e.flags|=1),Li()}function $s(e,t,n=rt+1){for(;nwn(n)-wn(r));if(Wt.length=0,St){St.push(...t);return}for(St=t,kt=0;kte.id==null?e.flags&2?-1:1/0:e.id;function Mi(e){try{for(rt=0;rt{r._d&&tr(-1);const o=Qn(t);let i;try{i=e(...s)}finally{Qn(o),r._d&&tr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function Ah(e,t){if(we===null)return e;const n=gr(we),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&W(t)?t.call(r&&r.proxy):t}}function Qc(){return!!(dl()||Ft)}const Yc=Symbol.for("v-scx"),Zc=()=>ke(Yc);function fn(e,t,n){return ji(e,t,n)}function ji(e,t,n=se){const{immediate:r,deep:s,flush:o,once:i}=n,l=Se({},n),c=t&&r||!t&&o!=="post";let u;if(An){if(o==="sync"){const m=Zc();u=m.__watcherHandles||(m.__watcherHandles=[])}else if(!c){const m=()=>{};return m.stop=ot,m.resume=ot,m.pause=ot,m}}const a=Te;l.call=(m,g,b)=>lt(m,a,g,b);let f=!1;o==="post"?l.scheduler=m=>{ve(m,a&&a.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(m,g)=>{g?m():As(m)}),l.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,a&&(m.id=a.uid,m.i=a))};const p=Wc(e,t,l);return An&&(u?u.push(p):c&&p()),p}function ea(e,t,n){const r=this.proxy,s=de(e)?e.includes(".")?Bi(r,e):()=>r[e]:e.bind(r,r);let o;W(t)?o=t:(o=t.handler,n=t);const i=Tn(this),l=ji(s,o.bind(r),n);return i(),l}function Bi(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,dn=e=>e&&(e.disabled||e.disabled===""),Ks=e=>e&&(e.defer||e.defer===""),Ws=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Gs=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Gr=(e,t)=>{const n=e&&e.to;return de(n)?t?t(n):null:n},ki={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,u){const{mc:a,pc:f,pbc:p,o:{insert:m,querySelector:g,createText:b,createComment:E}}=u,O=dn(t.props);let{shapeFlag:C,children:N,dynamicChildren:P}=t;if(e==null){const M=t.el=b(""),X=t.anchor=b("");m(M,n,r),m(X,n,r);const k=(U,ee)=>{C&16&&a(N,U,ee,s,o,i,l,c)},V=()=>{const U=t.target=Gr(t.props,g),ee=Vi(U,t,b,m);U&&(i!=="svg"&&Ws(U)?i="svg":i!=="mathml"&&Gs(U)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(U),O||(k(U,ee),kn(t,!1)))};O&&(k(n,X),kn(t,!0)),Ks(t.props)?(t.el.__isMounted=!1,ve(()=>{V(),delete t.el.__isMounted},o)):V()}else{if(Ks(t.props)&&e.el.__isMounted===!1){ve(()=>{ki.process(e,t,n,r,s,o,i,l,c,u)},o);return}t.el=e.el,t.targetStart=e.targetStart;const M=t.anchor=e.anchor,X=t.target=e.target,k=t.targetAnchor=e.targetAnchor,V=dn(e.props),U=V?n:X,ee=V?M:k;if(i==="svg"||Ws(X)?i="svg":(i==="mathml"||Gs(X))&&(i="mathml"),P?(p(e.dynamicChildren,P,U,s,o,i,l),Cs(e,t,!0)):c||f(e,t,U,ee,s,o,i,l,!1),O)V?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Mn(t,n,M,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const ue=t.target=Gr(t.props,g);ue&&Mn(t,ue,null,u,0)}else V&&Mn(t,X,k,u,1);kn(t,O)}},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetStart:u,targetAnchor:a,target:f,props:p}=e;if(f&&(s(u),s(a)),o&&s(c),i&16){const m=o||!dn(p);for(let g=0;ghn(g,t&&(q(t)?t[b]:t),n,r,s));return}if(Gt(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&hn(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?gr(r.component):r.el,i=s?null:o,{i:l,r:c}=e,u=t&&t.r,a=l.refs===se?l.refs={}:l.refs,f=l.setupState,p=Z(f),m=f===se?ni:g=>ne(p,g);if(u!=null&&u!==c){if(zs(t),de(u))a[u]=null,m(u)&&(f[u]=null);else if(ce(u)){u.value=null;const g=t;g.k&&(a[g.k]=null)}}if(W(c))xn(c,l,12,[i,a]);else{const g=de(c),b=ce(c);if(g||b){const E=()=>{if(e.f){const O=g?m(c)?f[c]:a[c]:c.value;if(s)q(O)&&ds(O,o);else if(q(O))O.includes(o)||O.push(o);else if(g)a[c]=[o],m(c)&&(f[c]=a[c]);else{const C=[o];c.value=C,e.k&&(a[e.k]=C)}}else g?(a[c]=i,m(c)&&(f[c]=i)):b&&(c.value=i,e.k&&(a[e.k]=i))};if(i){const O=()=>{E(),Yn.delete(e)};O.id=-1,Yn.set(e,O),ve(O,n)}else zs(e),E()}}}function zs(e){const t=Yn.get(e);t&&(t.flags|=8,Yn.delete(e))}ar().requestIdleCallback;ar().cancelIdleCallback;const Gt=e=>!!e.type.__asyncLoader,$i=e=>e.type.__isKeepAlive;function sa(e,t){Ki(e,"a",t)}function oa(e,t){Ki(e,"da",t)}function Ki(e,t,n=Te){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(hr(t,r,n),n){let s=n.parent;for(;s&&s.parent;)$i(s.parent.vnode)&&ia(r,t,n,s),s=s.parent}}function ia(e,t,n,r){const s=hr(t,e,r,!0);Wi(()=>{ds(r[t],s)},n)}function hr(e,t,n=Te,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{ht();const l=Tn(n),c=lt(t,n,e,i);return l(),pt(),c});return r?s.unshift(o):s.push(o),o}}const _t=e=>(t,n=Te)=>{(!An||e==="sp")&&hr(e,(...r)=>t(...r),n)},la=_t("bm"),ca=_t("m"),aa=_t("bu"),ua=_t("u"),fa=_t("bum"),Wi=_t("um"),da=_t("sp"),ha=_t("rtg"),pa=_t("rtc");function ma(e,t=Te){hr("ec",e,t)}const ga=Symbol.for("v-ndc");function Oh(e,t,n,r){let s;const o=n,i=q(e);if(i||de(e)){const l=i&&it(e);let c=!1,u=!1;l&&(c=!je(e),u=mt(e),e=ur(e)),s=new Array(e.length);for(let a=0,f=e.length;at(l,c,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let c=0,u=l.length;c0;return er(),nr(Fe,null,[Ce("slot",n,r)],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),er();const i=o&&Gi(o(n)),l=n.key||i&&i.key,c=nr(Fe,{key:(l&&!yt(l)?l:`_${t}`)+(!i&&r?"_fb":"")},i||[],i&&e._===1?64:-2);return c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),o&&o._c&&(o._d=!0),c}function Gi(e){return e.some(t=>Rn(t)?!(t.type===gt||t.type===Fe&&!Gi(t.children)):!0)?e:null}const zr=e=>e?hl(e)?gr(e):zr(e.parent):null,pn=Se(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=>zr(e.parent),$root:e=>zr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ji(e),$forceUpdate:e=>e.f||(e.f=()=>{As(e.update)}),$nextTick:e=>e.n||(e.n=Rs.bind(e.proxy)),$watch:e=>ea.bind(e)}),Pr=(e,t)=>e!==se&&!e.__isScriptSetup&&ne(e,t),ya={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,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 r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(Pr(r,t))return i[t]=1,r[t];if(s!==se&&ne(s,t))return i[t]=2,s[t];if(ne(o,t))return i[t]=3,o[t];if(n!==se&&ne(n,t))return i[t]=4,n[t];Jr&&(i[t]=0)}}const u=pn[t];let a,f;if(u)return t==="$attrs"&&be(e.attrs,"get",""),u(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==se&&ne(n,t))return i[t]=4,n[t];if(f=c.config.globalProperties,ne(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return Pr(s,t)?(s[t]=n,!0):r!==se&&ne(r,t)?(r[t]=n,!0):ne(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:o,type:i}},l){let c;return!!(n[l]||e!==se&&l[0]!=="$"&&ne(e,l)||Pr(t,l)||ne(o,l)||ne(r,l)||ne(pn,l)||ne(s.config.globalProperties,l)||(c=i.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ne(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Js(e){return q(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Jr=!0;function _a(e){const t=Ji(e),n=e.proxy,r=e.ctx;Jr=!1,t.beforeCreate&&Xs(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:u,created:a,beforeMount:f,mounted:p,beforeUpdate:m,updated:g,activated:b,deactivated:E,beforeDestroy:O,beforeUnmount:C,destroyed:N,unmounted:P,render:M,renderTracked:X,renderTriggered:k,errorCaptured:V,serverPrefetch:U,expose:ee,inheritAttrs:ue,components:ye,directives:pe,filters:Re}=t;if(u&&ba(u,r,null),i)for(const K in i){const z=i[K];W(z)&&(r[K]=z.bind(n))}if(s){const K=s.call(n,n);le(K)&&(e.data=On(K))}if(Jr=!0,o)for(const K in o){const z=o[K],Be=W(z)?z.bind(n,n):W(z.get)?z.get.bind(n,n):ot,ze=!W(z)&&W(z.set)?z.set.bind(n):ot,me=Me({get:Be,set:ze});Object.defineProperty(r,K,{enumerable:!0,configurable:!0,get:()=>me.value,set:fe=>me.value=fe})}if(l)for(const K in l)zi(l[K],r,n,K);if(c){const K=W(c)?c.call(n):c;Reflect.ownKeys(K).forEach(z=>{Hn(z,K[z])})}a&&Xs(a,e,"c");function J(K,z){q(z)?z.forEach(Be=>K(Be.bind(n))):z&&K(z.bind(n))}if(J(la,f),J(ca,p),J(aa,m),J(ua,g),J(sa,b),J(oa,E),J(ma,V),J(pa,X),J(ha,k),J(fa,C),J(Wi,P),J(da,U),q(ee))if(ee.length){const K=e.exposed||(e.exposed={});ee.forEach(z=>{Object.defineProperty(K,z,{get:()=>n[z],set:Be=>n[z]=Be,enumerable:!0})})}else e.exposed||(e.exposed={});M&&e.render===ot&&(e.render=M),ue!=null&&(e.inheritAttrs=ue),ye&&(e.components=ye),pe&&(e.directives=pe),U&&qi(e)}function ba(e,t,n=ot){q(e)&&(e=Xr(e));for(const r in e){const s=e[r];let o;le(s)?"default"in s?o=ke(s.from||r,s.default,!0):o=ke(s.from||r):o=ke(s),ce(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function Xs(e,t,n){lt(q(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function zi(e,t,n,r){let s=r.includes(".")?Bi(n,r):()=>n[r];if(de(e)){const o=t[e];W(o)&&fn(s,o)}else if(W(e))fn(s,e.bind(n));else if(le(e))if(q(e))e.forEach(o=>zi(o,t,n,r));else{const o=W(e.handler)?e.handler.bind(n):t[e.handler];W(o)&&fn(s,o,e)}}function Ji(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>Zn(c,u,i,!0)),Zn(c,t,i)),le(t)&&o.set(t,c),c}function Zn(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&Zn(e,o,n,!0),s&&s.forEach(i=>Zn(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Ea[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Ea={data:Qs,props:Ys,emits:Ys,methods:ln,computed:ln,beforeCreate:Ae,created:Ae,beforeMount:Ae,mounted:Ae,beforeUpdate:Ae,updated:Ae,beforeDestroy:Ae,beforeUnmount:Ae,destroyed:Ae,unmounted:Ae,activated:Ae,deactivated:Ae,errorCaptured:Ae,serverPrefetch:Ae,components:ln,directives:ln,watch:Sa,provide:Qs,inject:wa};function Qs(e,t){return t?e?function(){return Se(W(e)?e.call(this,this):e,W(t)?t.call(this,this):t)}:t:e}function wa(e,t){return ln(Xr(e),Xr(t))}function Xr(e){if(q(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${xt(t)}Modifiers`]||e[`${jt(t)}Modifiers`];function Oa(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||se;let s=n;const o=t.startsWith("update:"),i=o&&va(r,t.slice(7));i&&(i.trim&&(s=n.map(a=>de(a)?a.trim():a)),i.number&&(s=n.map(hs)));let l,c=r[l=vr(t)]||r[l=vr(xt(t))];!c&&o&&(c=r[l=vr(jt(t))]),c&<(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,lt(u,e,6,s)}}const xa=new WeakMap;function Qi(e,t,n=!1){const r=n?xa:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!W(e)){const c=u=>{const a=Qi(u,t,!0);a&&(l=!0,Se(i,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(le(e)&&r.set(e,null),null):(q(o)?o.forEach(c=>i[c]=null):Se(i,o),le(e)&&r.set(e,i),i)}function pr(e,t){return!e||!or(t)?!1:(t=t.slice(2).replace(/Once$/,""),ne(e,t[0].toLowerCase()+t.slice(1))||ne(e,jt(t))||ne(e,t))}function Zs(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:a,props:f,data:p,setupState:m,ctx:g,inheritAttrs:b}=e,E=Qn(e);let O,C;try{if(n.shapeFlag&4){const P=s||r,M=P;O=st(u.call(M,P,a,f,m,p,g)),C=l}else{const P=t;O=st(P.length>1?P(f,{attrs:l,slots:i,emit:c}):P(f,null)),C=t.props?l:Ta(l)}}catch(P){mn.length=0,dr(P,e,1),O=Ce(gt)}let N=O;if(C&&b!==!1){const P=Object.keys(C),{shapeFlag:M}=N;P.length&&M&7&&(o&&P.some(fs)&&(C=Ca(C,o)),N=Jt(N,C,!1,!0))}return n.dirs&&(N=Jt(N,null,!1,!0),N.dirs=N.dirs?N.dirs.concat(n.dirs):n.dirs),n.transition&&vs(N,n.transition),O=N,Qn(E),O}const Ta=e=>{let t;for(const n in e)(n==="class"||n==="style"||or(n))&&((t||(t={}))[n]=e[n]);return t},Ca=(e,t)=>{const n={};for(const r in e)(!fs(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Pa(e,t,n){const{props:r,children:s,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 r?eo(r,i,u):!!i;if(c&8){const a=t.dynamicProps;for(let f=0;fObject.create(Yi),el=e=>Object.getPrototypeOf(e)===Yi;function Ia(e,t,n,r=!1){const s={},o=Zi();e.propsDefaults=Object.create(null),tl(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:Ci(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function Da(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=Z(s),[c]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const a=e.vnode.dynamicProps;for(let f=0;f{c=!0;const[p,m]=nl(f,t,!0);Se(i,p),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!c)return le(e)&&r.set(e,$t),$t;if(q(o))for(let a=0;ae==="_"||e==="_ctx"||e==="$stable",Ts=e=>q(e)?e.map(st):[st(e)],Fa=(e,t,n)=>{if(t._n)return t;const r=Xc((...s)=>Ts(t(...s)),n);return r._c=!1,r},rl=(e,t,n)=>{const r=e._ctx;for(const s in e){if(xs(s))continue;const o=e[s];if(W(o))t[s]=Fa(s,o,r);else if(o!=null){const i=Ts(o);t[s]=()=>i}}},sl=(e,t)=>{const n=Ts(t);e.slots.default=()=>n},ol=(e,t,n)=>{for(const r in t)(n||!xs(r))&&(e[r]=t[r])},Ma=(e,t,n)=>{const r=e.slots=Zi();if(e.vnode.shapeFlag&32){const s=t._;s?(ol(r,t,n),n&&ci(r,"_",s,!0)):rl(t,r)}else t&&sl(e,t)},Ua=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=se;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:ol(s,t,n):(o=!t.$stable,rl(t,s)),i=t}else t&&(sl(e,t),i={default:1});if(o)for(const l in s)!xs(l)&&i[l]==null&&delete s[l]},ve=Va;function ja(e){return Ba(e)}function Ba(e,t){const n=ar();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:a,parentNode:f,nextSibling:p,setScopeId:m=ot,insertStaticContent:g}=e,b=(d,h,y,w=null,A=null,S=null,I=void 0,T=null,x=!!h.dynamicChildren)=>{if(d===h)return;d&&!rn(d,h)&&(w=R(d),fe(d,A,S,!0),d=null),h.patchFlag===-2&&(x=!1,h.dynamicChildren=null);const{type:v,ref:H,shapeFlag:L}=h;switch(v){case mr:E(d,h,y,w);break;case gt:O(d,h,y,w);break;case Vn:d==null&&C(h,y,w,I);break;case Fe:ye(d,h,y,w,A,S,I,T,x);break;default:L&1?M(d,h,y,w,A,S,I,T,x):L&6?pe(d,h,y,w,A,S,I,T,x):(L&64||L&128)&&v.process(d,h,y,w,A,S,I,T,x,j)}H!=null&&A?hn(H,d&&d.ref,S,h||d,!h):H==null&&d&&d.ref!=null&&hn(d.ref,null,S,d,!0)},E=(d,h,y,w)=>{if(d==null)r(h.el=l(h.children),y,w);else{const A=h.el=d.el;h.children!==d.children&&u(A,h.children)}},O=(d,h,y,w)=>{d==null?r(h.el=c(h.children||""),y,w):h.el=d.el},C=(d,h,y,w)=>{[d.el,d.anchor]=g(d.children,h,y,w,d.el,d.anchor)},N=({el:d,anchor:h},y,w)=>{let A;for(;d&&d!==h;)A=p(d),r(d,y,w),d=A;r(h,y,w)},P=({el:d,anchor:h})=>{let y;for(;d&&d!==h;)y=p(d),s(d),d=y;s(h)},M=(d,h,y,w,A,S,I,T,x)=>{if(h.type==="svg"?I="svg":h.type==="math"&&(I="mathml"),d==null)X(h,y,w,A,S,I,T,x);else{const v=d.el&&d.el._isVueCE?d.el:null;try{v&&v._beginPatch(),U(d,h,A,S,I,T,x)}finally{v&&v._endPatch()}}},X=(d,h,y,w,A,S,I,T)=>{let x,v;const{props:H,shapeFlag:L,transition:B,dirs:$}=d;if(x=d.el=i(d.type,S,H&&H.is,H),L&8?a(x,d.children):L&16&&V(d.children,x,null,w,A,Nr(d,S),I,T),$&&Tt(d,null,w,"created"),k(x,d,d.scopeId,I,w),H){for(const oe in H)oe!=="value"&&!cn(oe)&&o(x,oe,null,H[oe],S,w);"value"in H&&o(x,"value",null,H.value,S),(v=H.onVnodeBeforeMount)&&et(v,w,d)}$&&Tt(d,null,w,"beforeMount");const Y=Ha(A,B);Y&&B.beforeEnter(x),r(x,h,y),((v=H&&H.onVnodeMounted)||Y||$)&&ve(()=>{v&&et(v,w,d),Y&&B.enter(x),$&&Tt(d,null,w,"mounted")},A)},k=(d,h,y,w,A)=>{if(y&&m(d,y),w)for(let S=0;S{for(let v=x;v{const T=h.el=d.el;let{patchFlag:x,dynamicChildren:v,dirs:H}=h;x|=d.patchFlag&16;const L=d.props||se,B=h.props||se;let $;if(y&&Ct(y,!1),($=B.onVnodeBeforeUpdate)&&et($,y,h,d),H&&Tt(h,d,y,"beforeUpdate"),y&&Ct(y,!0),(L.innerHTML&&B.innerHTML==null||L.textContent&&B.textContent==null)&&a(T,""),v?ee(d.dynamicChildren,v,T,y,w,Nr(h,A),S):I||z(d,h,T,null,y,w,Nr(h,A),S,!1),x>0){if(x&16)ue(T,L,B,y,A);else if(x&2&&L.class!==B.class&&o(T,"class",null,B.class,A),x&4&&o(T,"style",L.style,B.style,A),x&8){const Y=h.dynamicProps;for(let oe=0;oe{$&&et($,y,h,d),H&&Tt(h,d,y,"updated")},w)},ee=(d,h,y,w,A,S,I)=>{for(let T=0;T{if(h!==y){if(h!==se)for(const S in h)!cn(S)&&!(S in y)&&o(d,S,h[S],null,A,w);for(const S in y){if(cn(S))continue;const I=y[S],T=h[S];I!==T&&S!=="value"&&o(d,S,T,I,A,w)}"value"in y&&o(d,"value",h.value,y.value,A)}},ye=(d,h,y,w,A,S,I,T,x)=>{const v=h.el=d?d.el:l(""),H=h.anchor=d?d.anchor:l("");let{patchFlag:L,dynamicChildren:B,slotScopeIds:$}=h;$&&(T=T?T.concat($):$),d==null?(r(v,y,w),r(H,y,w),V(h.children||[],y,H,A,S,I,T,x)):L>0&&L&64&&B&&d.dynamicChildren&&d.dynamicChildren.length===B.length?(ee(d.dynamicChildren,B,y,A,S,I,T),(h.key!=null||A&&h===A.subTree)&&Cs(d,h,!0)):z(d,h,y,H,A,S,I,T,x)},pe=(d,h,y,w,A,S,I,T,x)=>{h.slotScopeIds=T,d==null?h.shapeFlag&512?A.ctx.activate(h,y,w,I,x):Re(h,y,w,A,S,I,x):Ve(d,h,x)},Re=(d,h,y,w,A,S,I)=>{const T=d.component=Xa(d,w,A);if($i(d)&&(T.ctx.renderer=j),Qa(T,!1,I),T.asyncDep){if(A&&A.registerDep(T,J,I),!d.el){const x=T.subTree=Ce(gt);O(null,x,h,y),d.placeholder=x.el}}else J(T,d,h,y,A,S,I)},Ve=(d,h,y)=>{const w=h.component=d.component;if(Pa(d,h,y))if(w.asyncDep&&!w.asyncResolved){K(w,h,y);return}else w.next=h,w.update();else h.el=d.el,w.vnode=h},J=(d,h,y,w,A,S,I)=>{const T=()=>{if(d.isMounted){let{next:L,bu:B,u:$,parent:Y,vnode:oe}=d;{const Ye=il(d);if(Ye){L&&(L.el=oe.el,K(d,L,I)),Ye.asyncDep.then(()=>{d.isUnmounted||T()});return}}let re=L,Pe;Ct(d,!1),L?(L.el=oe.el,K(d,L,I)):L=oe,B&&Bn(B),(Pe=L.props&&L.props.onVnodeBeforeUpdate)&&et(Pe,Y,L,oe),Ct(d,!0);const Ne=Zs(d),Qe=d.subTree;d.subTree=Ne,b(Qe,Ne,f(Qe.el),R(Qe),d,A,S),L.el=Ne.el,re===null&&Na(d,Ne.el),$&&ve($,A),(Pe=L.props&&L.props.onVnodeUpdated)&&ve(()=>et(Pe,Y,L,oe),A)}else{let L;const{el:B,props:$}=h,{bm:Y,m:oe,parent:re,root:Pe,type:Ne}=d,Qe=Gt(h);Ct(d,!1),Y&&Bn(Y),!Qe&&(L=$&&$.onVnodeBeforeMount)&&et(L,re,h),Ct(d,!0);{Pe.ce&&Pe.ce._def.shadowRoot!==!1&&Pe.ce._injectChildStyle(Ne);const Ye=d.subTree=Zs(d);b(null,Ye,y,w,d,A,S),h.el=Ye.el}if(oe&&ve(oe,A),!Qe&&(L=$&&$.onVnodeMounted)){const Ye=h;ve(()=>et(L,re,Ye),A)}(h.shapeFlag&256||re&&Gt(re.vnode)&&re.vnode.shapeFlag&256)&&d.a&&ve(d.a,A),d.isMounted=!0,h=y=w=null}};d.scope.on();const x=d.effect=new mi(T);d.scope.off();const v=d.update=x.run.bind(x),H=d.job=x.runIfDirty.bind(x);H.i=d,H.id=d.uid,x.scheduler=()=>As(H),Ct(d,!0),v()},K=(d,h,y)=>{h.component=d;const w=d.vnode.props;d.vnode=h,d.next=null,Da(d,h.props,w,y),Ua(d,h.children,y),ht(),$s(d),pt()},z=(d,h,y,w,A,S,I,T,x=!1)=>{const v=d&&d.children,H=d?d.shapeFlag:0,L=h.children,{patchFlag:B,shapeFlag:$}=h;if(B>0){if(B&128){ze(v,L,y,w,A,S,I,T,x);return}else if(B&256){Be(v,L,y,w,A,S,I,T,x);return}}$&8?(H&16&&He(v,A,S),L!==v&&a(y,L)):H&16?$&16?ze(v,L,y,w,A,S,I,T,x):He(v,A,S,!0):(H&8&&a(y,""),$&16&&V(L,y,w,A,S,I,T,x))},Be=(d,h,y,w,A,S,I,T,x)=>{d=d||$t,h=h||$t;const v=d.length,H=h.length,L=Math.min(v,H);let B;for(B=0;BH?He(d,A,S,!0,!1,L):V(h,y,w,A,S,I,T,x,L)},ze=(d,h,y,w,A,S,I,T,x)=>{let v=0;const H=h.length;let L=d.length-1,B=H-1;for(;v<=L&&v<=B;){const $=d[v],Y=h[v]=x?Rt(h[v]):st(h[v]);if(rn($,Y))b($,Y,y,null,A,S,I,T,x);else break;v++}for(;v<=L&&v<=B;){const $=d[L],Y=h[B]=x?Rt(h[B]):st(h[B]);if(rn($,Y))b($,Y,y,null,A,S,I,T,x);else break;L--,B--}if(v>L){if(v<=B){const $=B+1,Y=$B)for(;v<=L;)fe(d[v],A,S,!0),v++;else{const $=v,Y=v,oe=new Map;for(v=Y;v<=B;v++){const Le=h[v]=x?Rt(h[v]):st(h[v]);Le.key!=null&&oe.set(Le.key,v)}let re,Pe=0;const Ne=B-Y+1;let Qe=!1,Ye=0;const tn=new Array(Ne);for(v=0;v=Ne){fe(Le,A,S,!0);continue}let Ze;if(Le.key!=null)Ze=oe.get(Le.key);else for(re=Y;re<=B;re++)if(tn[re-Y]===0&&rn(Le,h[re])){Ze=re;break}Ze===void 0?fe(Le,A,S,!0):(tn[Ze-Y]=v+1,Ze>=Ye?Ye=Ze:Qe=!0,b(Le,h[Ze],y,null,A,S,I,T,x),Pe++)}const js=Qe?ka(tn):$t;for(re=js.length-1,v=Ne-1;v>=0;v--){const Le=Y+v,Ze=h[Le],Bs=h[Le+1],Hs=Le+1{const{el:S,type:I,transition:T,children:x,shapeFlag:v}=d;if(v&6){me(d.component.subTree,h,y,w);return}if(v&128){d.suspense.move(h,y,w);return}if(v&64){I.move(d,h,y,j);return}if(I===Fe){r(S,h,y);for(let L=0;LT.enter(S),A);else{const{leave:L,delayLeave:B,afterLeave:$}=T,Y=()=>{d.ctx.isUnmounted?s(S):r(S,h,y)},oe=()=>{S._isLeaving&&S[ra](!0),L(S,()=>{Y(),$&&$()})};B?B(S,Y,oe):oe()}else r(S,h,y)},fe=(d,h,y,w=!1,A=!1)=>{const{type:S,props:I,ref:T,children:x,dynamicChildren:v,shapeFlag:H,patchFlag:L,dirs:B,cacheIndex:$}=d;if(L===-2&&(A=!1),T!=null&&(ht(),hn(T,null,y,d,!0),pt()),$!=null&&(h.renderCache[$]=void 0),H&256){h.ctx.deactivate(d);return}const Y=H&1&&B,oe=!Gt(d);let re;if(oe&&(re=I&&I.onVnodeBeforeUnmount)&&et(re,h,d),H&6)Xe(d.component,y,w);else{if(H&128){d.suspense.unmount(y,w);return}Y&&Tt(d,null,h,"beforeUnmount"),H&64?d.type.remove(d,h,y,j,w):v&&!v.hasOnce&&(S!==Fe||L>0&&L&64)?He(v,h,y,!1,!0):(S===Fe&&L&384||!A&&H&16)&&He(x,h,y),w&&Je(d)}(oe&&(re=I&&I.onVnodeUnmounted)||Y)&&ve(()=>{re&&et(re,h,d),Y&&Tt(d,null,h,"unmounted")},y)},Je=d=>{const{type:h,el:y,anchor:w,transition:A}=d;if(h===Fe){qe(y,w);return}if(h===Vn){P(d);return}const S=()=>{s(y),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(d.shapeFlag&1&&A&&!A.persisted){const{leave:I,delayLeave:T}=A,x=()=>I(y,S);T?T(d.el,S,x):x()}else S()},qe=(d,h)=>{let y;for(;d!==h;)y=p(d),s(d),d=y;s(h)},Xe=(d,h,y)=>{const{bum:w,scope:A,job:S,subTree:I,um:T,m:x,a:v}=d;no(x),no(v),w&&Bn(w),A.stop(),S&&(S.flags|=8,fe(I,d,h,y)),T&&ve(T,h),ve(()=>{d.isUnmounted=!0},h)},He=(d,h,y,w=!1,A=!1,S=0)=>{for(let I=S;I{if(d.shapeFlag&6)return R(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const h=p(d.anchor||d.el),y=h&&h[Hi];return y?p(y):h};let F=!1;const D=(d,h,y)=>{let w;d==null?h._vnode&&(fe(h._vnode,null,null,!0),w=h._vnode.component):b(h._vnode||null,d,h,null,null,null,y),h._vnode=d,F||(F=!0,$s(w),Fi(),F=!1)},j={p:b,um:fe,m:me,r:Je,mt:Re,mc:V,pc:z,pbc:ee,n:R,o:e};return{render:D,hydrate:void 0,createApp:Aa(D)}}function Nr({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 Ct({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Ha(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Cs(e,t,n=!1){const r=e.children,s=t.children;if(q(r)&&q(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function il(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:il(t)}function no(e){if(e)for(let t=0;te.__isSuspense;function Va(e,t){t&&t.pendingBranch?q(e)?t.effects.push(...e):t.effects.push(e):Jc(e)}const Fe=Symbol.for("v-fgt"),mr=Symbol.for("v-txt"),gt=Symbol.for("v-cmt"),Vn=Symbol.for("v-stc"),mn=[];let Ue=null;function er(e=!1){mn.push(Ue=e?null:[])}function qa(){mn.pop(),Ue=mn[mn.length-1]||null}let Sn=1;function tr(e,t=!1){Sn+=e,e<0&&Ue&&t&&(Ue.hasOnce=!0)}function al(e){return e.dynamicChildren=Sn>0?Ue||$t:null,qa(),Sn>0&&Ue&&Ue.push(e),e}function Th(e,t,n,r,s,o){return al(fl(e,t,n,r,s,o,!0))}function nr(e,t,n,r,s){return al(Ce(e,t,n,r,s,!0))}function Rn(e){return e?e.__v_isVNode===!0:!1}function rn(e,t){return e.type===t.type&&e.key===t.key}const ul=({key:e})=>e??null,qn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?de(e)||ce(e)||W(e)?{i:we,r:e,k:t,f:!!n}:e:null);function fl(e,t=null,n=null,r=0,s=null,o=e===Fe?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ul(t),ref:t&&qn(t),scopeId:Ui,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:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:we};return l?(Ps(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=de(n)?8:16),Sn>0&&!i&&Ue&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Ue.push(c),c}const Ce=$a;function $a(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===ga)&&(e=gt),Rn(e)){const l=Jt(e,t,!0);return n&&Ps(l,n),Sn>0&&!o&&Ue&&(l.shapeFlag&6?Ue[Ue.indexOf(e)]=l:Ue.push(l)),l.patchFlag=-2,l}if(tu(e)&&(e=e.__vccOpts),t){t=Ka(t);let{class:l,style:c}=t;l&&!de(l)&&(t.class=ms(l)),le(c)&&(fr(c)&&!q(c)&&(c=Se({},c)),t.style=ps(c))}const i=de(e)?1:cl(e)?128:ta(e)?64:le(e)?4:W(e)?2:0;return fl(e,t,n,r,s,i,o,!0)}function Ka(e){return e?fr(e)||el(e)?Se({},e):e:null}function Jt(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?Ga(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&ul(u),ref:t&&t.ref?n&&o?q(o)?o.concat(qn(t)):[o,qn(t)]:qn(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!==Fe?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&&Jt(e.ssContent),ssFallback:e.ssFallback&&Jt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&vs(a,c.clone(a)),a}function Wa(e=" ",t=0){return Ce(mr,null,e,t)}function Ch(e,t){const n=Ce(Vn,null,e);return n.staticCount=t,n}function Ph(e="",t=!1){return t?(er(),nr(gt,null,e)):Ce(gt,null,e)}function st(e){return e==null||typeof e=="boolean"?Ce(gt):q(e)?Ce(Fe,null,e.slice()):Rn(e)?Rt(e):Ce(mr,null,String(e))}function Rt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Jt(e)}function Ps(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(q(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Ps(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!el(t)?t._ctx=we:s===3&&we&&(we.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else W(t)?(t={default:t,_ctx:we},n=32):(t=String(t),r&64?(n=16,t=[Wa(t)]):n=8);e.children=t,e.shapeFlag|=n}function Ga(...e){const t={};for(let n=0;nTe||we;let rr,Yr;{const e=ar(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};rr=t("__VUE_INSTANCE_SETTERS__",n=>Te=n),Yr=t("__VUE_SSR_SETTERS__",n=>An=n)}const Tn=e=>{const t=Te;return rr(e),e.scope.on(),()=>{e.scope.off(),rr(t)}},ro=()=>{Te&&Te.scope.off(),rr(null)};function hl(e){return e.vnode.shapeFlag&4}let An=!1;function Qa(e,t=!1,n=!1){t&&Yr(t);const{props:r,children:s}=e.vnode,o=hl(e);Ia(e,r,o,t),Ma(e,s,n||t);const i=o?Ya(e,t):void 0;return t&&Yr(!1),i}function Ya(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,ya);const{setup:r}=n;if(r){ht();const s=e.setupContext=r.length>1?eu(e):null,o=Tn(e),i=xn(r,e,0,[e.props,s]),l=si(i);if(pt(),o(),(l||e.sp)&&!Gt(e)&&qi(e),l){if(i.then(ro,ro),t)return i.then(c=>{so(e,c)}).catch(c=>{dr(c,e,0)});e.asyncDep=i}else so(e,i)}else pl(e)}function so(e,t,n){W(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:le(t)&&(e.setupState=Ni(t)),pl(e)}function pl(e,t,n){const r=e.type;e.render||(e.render=r.render||ot);{const s=Tn(e);ht();try{_a(e)}finally{pt(),s()}}}const Za={get(e,t){return be(e,"get",""),e[t]}};function eu(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Za),slots:e.slots,emit:e.emit,expose:t}}function gr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ni(Ss(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in pn)return pn[n](e)},has(t,n){return n in t||n in pn}})):e.proxy}function tu(e){return W(e)&&"__vccOpts"in e}const Me=(e,t)=>$c(e,t,An);function ml(e,t,n){try{tr(-1);const r=arguments.length;return r===2?le(t)&&!q(t)?Rn(t)?Ce(e,null,[t]):Ce(e,t):Ce(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Rn(n)&&(n=[n]),Ce(e,t,n))}finally{tr(1)}}const nu="3.5.26";let Zr;const oo=typeof window<"u"&&window.trustedTypes;if(oo)try{Zr=oo.createPolicy("vue",{createHTML:e=>e})}catch{}const gl=Zr?e=>Zr.createHTML(e):e=>e,ru="http://www.w3.org/2000/svg",su="http://www.w3.org/1998/Math/MathML",ut=typeof document<"u"?document:null,io=ut&&ut.createElement("template"),ou={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?ut.createElementNS(ru,e):t==="mathml"?ut.createElementNS(su,e):n?ut.createElement(e,{is:n}):ut.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>ut.createTextNode(e),createComment:e=>ut.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ut.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{io.innerHTML=gl(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=io.content;if(r==="svg"||r==="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]}},iu=Symbol("_vtc");function lu(e,t,n){const r=e[iu];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const lo=Symbol("_vod"),cu=Symbol("_vsh"),au=Symbol(""),uu=/(?:^|;)\s*display\s*:/;function fu(e,t,n){const r=e.style,s=de(n);let o=!1;if(n&&!s){if(t)if(de(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&$n(r,l,"")}else for(const i in t)n[i]==null&&$n(r,i,"");for(const i in n)i==="display"&&(o=!0),$n(r,i,n[i])}else if(s){if(t!==n){const i=r[au];i&&(n+=";"+i),r.cssText=n,o=uu.test(n)}}else t&&e.removeAttribute("style");lo in e&&(e[lo]=o?r.display:"",e[cu]&&(r.display="none"))}const co=/\s*!important$/;function $n(e,t,n){if(q(n))n.forEach(r=>$n(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=du(e,t);co.test(n)?e.setProperty(jt(r),n.replace(co,""),"important"):e[r]=n}}const ao=["Webkit","Moz","ms"],Ir={};function du(e,t){const n=Ir[t];if(n)return n;let r=xt(t);if(r!=="filter"&&r in e)return Ir[t]=r;r=li(r);for(let s=0;sDr||(gu.then(()=>Dr=0),Dr=Date.now());function _u(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;lt(bu(r,n.value),t,5,[r])};return n.value=e,n.attached=yu(),n}function bu(e,t){if(q(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const go=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Eu=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?lu(e,r,i):t==="style"?fu(e,n,r):or(t)?fs(t)||pu(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):wu(e,t,r,i))?(ho(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&fo(e,t,r,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!de(r))?ho(e,xt(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),fo(e,t,r,i))};function wu(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&go(t)&&W(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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return go(t)&&de(n)?!1:t in e}const yo=e=>{const t=e.props["onUpdate:modelValue"]||!1;return q(t)?n=>Bn(t,n):t};function Su(e){e.target.composing=!0}function _o(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Lr=Symbol("_assign");function bo(e,t,n){return t&&(e=e.trim()),n&&(e=hs(e)),e}const Nh={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Lr]=yo(s);const o=r||s.props&&s.props.type==="number";Vt(e,t?"change":"input",i=>{i.target.composing||e[Lr](bo(e.value,n,o))}),(n||o)&&Vt(e,"change",()=>{e.value=bo(e.value,n,o)}),t||(Vt(e,"compositionstart",Su),Vt(e,"compositionend",_o),Vt(e,"change",_o))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Lr]=yo(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?hs(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},Ru=["ctrl","shift","alt","meta"],Au={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Ru.some(n=>e[`${n}Key`]&&!t.includes(n))},Ih=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const t=Ou().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Cu(r);if(!s)return;const o=t._component;!W(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,Tu(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t});function Tu(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Cu(e){return de(e)?document.querySelector(e):e}let yl;const yr=e=>yl=e,_l=Symbol();function es(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var gn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(gn||(gn={}));function Pu(){const e=hi(!0),t=e.run(()=>Lt({}));let n=[],r=[];const s=Ss({install(o){yr(s),s._a=o,o.provide(_l,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const bl=()=>{};function wo(e,t,n,r=bl){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&pi()&&gc(s),s}function Ht(e,...t){e.forEach(n=>{n(...t)})}const Nu=e=>e(),So=Symbol(),Fr=Symbol();function ts(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];es(s)&&es(r)&&e.hasOwnProperty(n)&&!ce(r)&&!it(r)?e[n]=ts(s,r):e[n]=r}return e}const Iu=Symbol();function Du(e){return!es(e)||!Object.prototype.hasOwnProperty.call(e,Iu)}const{assign:Et}=Object;function Lu(e){return!!(ce(e)&&e.effect)}function Fu(e,t,n,r){const{state:s,actions:o,getters:i}=t,l=n.state.value[e];let c;function u(){l||(n.state.value[e]=s?s():{});const a=Bc(n.state.value[e]);return Et(a,o,Object.keys(i||{}).reduce((f,p)=>(f[p]=Ss(Me(()=>{yr(n);const m=n._s.get(e);return i[p].call(m,m)})),f),{}))}return c=El(e,u,t,n,r,!0),c}function El(e,t,n={},r,s,o){let i;const l=Et({actions:{}},n),c={deep:!0};let u,a,f=new Set,p=new Set,m;const g=r.state.value[e];!o&&!g&&(r.state.value[e]={}),Lt({});let b;function E(V){let U;u=a=!1,typeof V=="function"?(V(r.state.value[e]),U={type:gn.patchFunction,storeId:e,events:m}):(ts(r.state.value[e],V),U={type:gn.patchObject,payload:V,storeId:e,events:m});const ee=b=Symbol();Rs().then(()=>{b===ee&&(u=!0)}),a=!0,Ht(f,U,r.state.value[e])}const O=o?function(){const{state:U}=n,ee=U?U():{};this.$patch(ue=>{Et(ue,ee)})}:bl;function C(){i.stop(),f.clear(),p.clear(),r._s.delete(e)}const N=(V,U="")=>{if(So in V)return V[Fr]=U,V;const ee=function(){yr(r);const ue=Array.from(arguments),ye=new Set,pe=new Set;function Re(K){ye.add(K)}function Ve(K){pe.add(K)}Ht(p,{args:ue,name:ee[Fr],store:M,after:Re,onError:Ve});let J;try{J=V.apply(this&&this.$id===e?this:M,ue)}catch(K){throw Ht(pe,K),K}return J instanceof Promise?J.then(K=>(Ht(ye,K),K)).catch(K=>(Ht(pe,K),Promise.reject(K))):(Ht(ye,J),J)};return ee[So]=!0,ee[Fr]=U,ee},P={_p:r,$id:e,$onAction:wo.bind(null,p),$patch:E,$reset:O,$subscribe(V,U={}){const ee=wo(f,V,U.detached,()=>ue()),ue=i.run(()=>fn(()=>r.state.value[e],ye=>{(U.flush==="sync"?a:u)&&V({storeId:e,type:gn.direct,events:m},ye)},Et({},c,U)));return ee},$dispose:C},M=On(P);r._s.set(e,M);const k=(r._a&&r._a.runWithContext||Nu)(()=>r._e.run(()=>(i=hi()).run(()=>t({action:N}))));for(const V in k){const U=k[V];if(ce(U)&&!Lu(U)||it(U))o||(g&&Du(U)&&(ce(U)?U.value=g[V]:ts(U,g[V])),r.state.value[e][V]=U);else if(typeof U=="function"){const ee=N(U,V);k[V]=ee,l.actions[V]=U}}return Et(M,k),Et(Z(M),k),Object.defineProperty(M,"$state",{get:()=>r.state.value[e],set:V=>{E(U=>{Et(U,V)})}}),r._p.forEach(V=>{Et(M,i.run(()=>V({store:M,app:r._a,pinia:r,options:l})))}),g&&o&&n.hydrate&&n.hydrate(M.$state,g),u=!0,a=!0,M}function Mu(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,l){const c=Qc();return i=i||(c?ke(_l,null):null),i&&yr(i),i=yl,i._s.has(e)||(s?El(e,t,r,i):Fu(e,r,i)),i._s.get(e)}return o.$id=e,o}function Dh(e){const t=Z(e),n={};for(const r in t){const s=t[r];s.effect?n[r]=Me({get:()=>e[r],set(o){e[r]=o}}):(ce(s)||it(s))&&(n[r]=Vc(e,r))}return n}const Uu="modulepreload",ju=function(e){return"/"+e},Ro={},tt=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let c=function(u){return Promise.all(u.map(a=>Promise.resolve(a).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=c(n.map(u=>{if(u=ju(u),u in Ro)return;Ro[u]=!0;const a=u.endsWith(".css"),f=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const p=document.createElement("link");if(p.rel=a?"stylesheet":Uu,a||(p.as="script"),p.crossOrigin="",p.href=u,l&&p.setAttribute("nonce",l),document.head.appendChild(p),a)return new Promise((m,g)=>{p.addEventListener("load",m),p.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})};const qt=typeof document<"u";function wl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Bu(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&wl(e.default)}const te=Object.assign;function Mr(e,t){const n={};for(const r in t){const s=t[r];n[r]=We(s)?s.map(e):e(s)}return n}const yn=()=>{},We=Array.isArray;function Ao(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const Sl=/#/g,Hu=/&/g,ku=/\//g,Vu=/=/g,qu=/\?/g,Rl=/\+/g,$u=/%5B/g,Ku=/%5D/g,Al=/%5E/g,Wu=/%60/g,vl=/%7B/g,Gu=/%7C/g,Ol=/%7D/g,zu=/%20/g;function Ns(e){return e==null?"":encodeURI(""+e).replace(Gu,"|").replace($u,"[").replace(Ku,"]")}function Ju(e){return Ns(e).replace(vl,"{").replace(Ol,"}").replace(Al,"^")}function ns(e){return Ns(e).replace(Rl,"%2B").replace(zu,"+").replace(Sl,"%23").replace(Hu,"%26").replace(Wu,"`").replace(vl,"{").replace(Ol,"}").replace(Al,"^")}function Xu(e){return ns(e).replace(Vu,"%3D")}function Qu(e){return Ns(e).replace(Sl,"%23").replace(qu,"%3F")}function Yu(e){return Qu(e).replace(ku,"%2F")}function vn(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Zu=/\/$/,ef=e=>e.replace(Zu,"");function Ur(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return c=l>=0&&c>l?-1:c,c>=0&&(r=t.slice(0,c),o=t.slice(c,l>0?l:t.length),s=e(o.slice(1))),l>=0&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=sf(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:vn(i)}}function tf(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function vo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function nf(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&Xt(t.matched[r],n.matched[s])&&xl(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Xt(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function xl(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!rf(e[n],t[n]))return!1;return!0}function rf(e,t){return We(e)?Oo(e,t):We(t)?Oo(t,e):e?.valueOf()===t?.valueOf()}function Oo(e,t){return We(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function sf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const bt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let rs=(function(e){return e.pop="pop",e.push="push",e})({}),jr=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function of(e){if(!e)if(qt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),ef(e)}const lf=/^[^#]+#/;function cf(e,t){return e.replace(lf,"#")+t}function af(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const _r=()=>({left:window.scrollX,top:window.scrollY});function uf(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=af(s,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 xo(e,t){return(history.state?history.state.position-t:-1)+e}const ss=new Map;function ff(e,t){ss.set(e,t)}function df(e){const t=ss.get(e);return ss.delete(e),t}function hf(e){return typeof e=="string"||e&&typeof e=="object"}function Tl(e){return typeof e=="string"||typeof e=="symbol"}let ae=(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 Cl=Symbol("");ae.MATCHER_NOT_FOUND+"",ae.NAVIGATION_GUARD_REDIRECT+"",ae.NAVIGATION_ABORTED+"",ae.NAVIGATION_CANCELLED+"",ae.NAVIGATION_DUPLICATED+"";function Qt(e,t){return te(new Error,{type:e,[Cl]:!0},t)}function at(e,t){return e instanceof Error&&Cl in e&&(t==null||!!(e.type&t))}const pf=["params","query","hash"];function mf(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of pf)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function gf(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&ns(s)):[r&&ns(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function yf(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=We(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const _f=Symbol(""),Co=Symbol(""),br=Symbol(""),Is=Symbol(""),os=Symbol("");function sn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function At(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,c)=>{const u=p=>{p===!1?c(Qt(ae.NAVIGATION_ABORTED,{from:n,to:t})):p instanceof Error?c(p):hf(p)?c(Qt(ae.NAVIGATION_GUARD_REDIRECT,{from:t,to:p})):(i&&r.enterCallbacks[s]===i&&typeof p=="function"&&i.push(p),l())},a=o(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(a);e.length<3&&(f=f.then(u)),f.catch(p=>c(p))})}function Br(e,t,n,r,s=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(wl(c)){const u=(c.__vccOpts||c)[t];u&&o.push(At(u,n,r,i,l,s))}else{let u=c();o.push(()=>u.then(a=>{if(!a)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=Bu(a)?a.default:a;i.mods[l]=a,i.components[l]=f;const p=(f.__vccOpts||f)[t];return p&&At(p,n,r,i,l,s)()}))}}return o}function bf(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;iXt(u,l))?r.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(u=>Xt(u,c))||s.push(c))}return[n,r,s]}let Ef=()=>location.protocol+"//"+location.host;function Pl(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(i);return l[0]!=="/"&&(l="/"+l),vo(l,"")}return vo(n,e)+r+s}function wf(e,t,n,r){let s=[],o=[],i=null;const l=({state:p})=>{const m=Pl(e,location),g=n.value,b=t.value;let E=0;if(p){if(n.value=m,t.value=p,i&&i===g){i=null;return}E=b?p.position-b.position:0}else r(m);s.forEach(O=>{O(n.value,g,{delta:E,type:rs.pop,direction:E?E>0?jr.forward:jr.back:jr.unknown})})};function c(){i=n.value}function u(p){s.push(p);const m=()=>{const g=s.indexOf(p);g>-1&&s.splice(g,1)};return o.push(m),m}function a(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(te({},p.state,{scroll:_r()}),"")}}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,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?_r():null}}function Sf(e){const{history:t,location:n}=window,r={value:Pl(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.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:Ef()+e+c;try{t[a?"replaceState":"pushState"](u,"",p),s.value=u}catch(m){console.error(m),n[a?"replace":"assign"](p)}}function i(c,u){o(c,te({},t.state,Po(s.value.back,c,s.value.forward,!0),u,{position:s.value.position}),!0),r.value=c}function l(c,u){const a=te({},s.value,t.state,{forward:c,scroll:_r()});o(a.current,a,!0),o(c,te({},Po(r.value,c,null),{position:a.position+1},u),!1),r.value=c}return{location:r,state:s,push:l,replace:i}}function Rf(e){e=of(e);const t=Sf(e),n=wf(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=te({location:"",base:e,go:r,createHref:cf.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function Af(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),Rf(e)}let Nt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var ge=(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})(ge||{});const vf={type:Nt.Static,value:""},Of=/[a-zA-Z0-9_]/;function xf(e){if(!e)return[[]];if(e==="/")return[[vf]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${u}": ${m}`)}let n=ge.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,c,u="",a="";function f(){u&&(n===ge.Static?o.push({type:Nt.Static,value:u}):n===ge.Param||n===ge.ParamRegExp||n===ge.ParamRegExpEnd?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:Nt.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]===Oe.Static+Oe.Segment?1:-1:0}function Nl(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const If={strict:!1,end:!0,sensitive:!1};function Df(e,t,n){const r=Pf(xf(e.path),n),s=te(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function Lf(e,t){const n=[],r=new Map;t=Ao(If,t);function s(f){return r.get(f)}function o(f,p,m){const g=!m,b=Lo(f);b.aliasOf=m&&m.record;const E=Ao(t,f),O=[b];if("alias"in f){const P=typeof f.alias=="string"?[f.alias]:f.alias;for(const M of P)O.push(Lo(te({},b,{components:m?m.record.components:b.components,path:M,aliasOf:m?m.record:b})))}let C,N;for(const P of O){const{path:M}=P;if(p&&M[0]!=="/"){const X=p.record.path,k=X[X.length-1]==="/"?"":"/";P.path=p.record.path+(M&&k+M)}if(C=Df(P,p,E),m?m.alias.push(C):(N=N||C,N!==C&&N.alias.push(C),g&&f.name&&!Fo(C)&&i(f.name)),Il(C)&&c(C),b.children){const X=b.children;for(let k=0;k{i(N)}:yn}function i(f){if(Tl(f)){const p=r.get(f);p&&(r.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&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function c(f){const p=Uf(f,n);n.splice(p,0,f),f.record.name&&!Fo(f)&&r.set(f.record.name,f)}function u(f,p){let m,g={},b,E;if("name"in f&&f.name){if(m=r.get(f.name),!m)throw Qt(ae.MATCHER_NOT_FOUND,{location:f});E=m.record.name,g=te(Do(p.params,m.keys.filter(N=>!N.optional).concat(m.parent?m.parent.keys.filter(N=>N.optional):[]).map(N=>N.name)),f.params&&Do(f.params,m.keys.map(N=>N.name))),b=m.stringify(g)}else if(f.path!=null)b=f.path,m=n.find(N=>N.re.test(b)),m&&(g=m.parse(b),E=m.record.name);else{if(m=p.name?r.get(p.name):n.find(N=>N.re.test(p.path)),!m)throw Qt(ae.MATCHER_NOT_FOUND,{location:f,currentLocation:p});E=m.record.name,g=te({},p.params,f.params),b=m.stringify(g)}const O=[];let C=m;for(;C;)O.unshift(C.record),C=C.parent;return{name:E,path:b,params:g,matched:O,meta:Mf(O)}}e.forEach(f=>o(f));function a(){n.length=0,r.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:a,getRoutes:l,getRecordMatcher:s}}function Do(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function Lo(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Ff(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 Ff(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function Fo(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Mf(e){return e.reduce((t,n)=>te(t,n.meta),{})}function Uf(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;Nl(e,t[o])<0?r=o:n=o+1}const s=jf(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function jf(e){let t=e;for(;t=t.parent;)if(Il(t)&&Nl(e,t)===0)return t}function Il({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Mo(e){const t=ke(br),n=ke(Is),r=Me(()=>{const c=Ot(e.to);return t.resolve(c)}),s=Me(()=>{const{matched:c}=r.value,{length:u}=c,a=c[u-1],f=n.matched;if(!a||!f.length)return-1;const p=f.findIndex(Xt.bind(null,a));if(p>-1)return p;const m=Uo(c[u-2]);return u>1&&Uo(a)===m&&f[f.length-1].path!==m?f.findIndex(Xt.bind(null,c[u-2])):p}),o=Me(()=>s.value>-1&&qf(n.params,r.value.params)),i=Me(()=>s.value>-1&&s.value===n.matched.length-1&&xl(n.params,r.value.params));function l(c={}){if(Vf(c)){const u=t[Ot(e.replace)?"replace":"push"](Ot(e.to)).catch(yn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Me(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function Bf(e){return e.length===1?e[0]:e}const Hf=Os({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=On(Mo(e)),{options:r}=ke(br),s=Me(()=>({[jo(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[jo(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&Bf(t.default(n));return e.custom?o:ml("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),kf=Hf;function Vf(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 qf(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!We(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function Uo(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const jo=(e,t,n)=>e??t??n,$f=Os({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=ke(os),s=Me(()=>e.route||r.value),o=ke(Co,0),i=Me(()=>{let u=Ot(o);const{matched:a}=s.value;let f;for(;(f=a[u])&&!f.components;)u++;return u}),l=Me(()=>s.value.matched[i.value]);Hn(Co,Me(()=>i.value+1)),Hn(_f,l),Hn(os,s);const c=Lt();return fn(()=>[c.value,l.value,e.name],([u,a,f],[p,m,g])=>{a&&(a.instances[f]=u,m&&m!==a&&u&&u===p&&(a.leaveGuards.size||(a.leaveGuards=m.leaveGuards),a.updateGuards.size||(a.updateGuards=m.updateGuards))),u&&a&&(!m||!Xt(a,m)||!p)&&(a.enterCallbacks[f]||[]).forEach(b=>b(u))},{flush:"post"}),()=>{const u=s.value,a=e.name,f=l.value,p=f&&f.components[a];if(!p)return Bo(n.default,{Component:p,route:u});const m=f.props[a],g=m?m===!0?u.params:typeof m=="function"?m(u):m:null,E=ml(p,te({},g,t,{onVnodeUnmounted:O=>{O.component.isUnmounted&&(f.instances[a]=null)},ref:c}));return Bo(n.default,{Component:E,route:u})||E}}});function Bo(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Dl=$f;function Kf(e){const t=Lf(e.routes,e),n=e.parseQuery||gf,r=e.stringifyQuery||To,s=e.history,o=sn(),i=sn(),l=sn(),c=Mc(bt);let u=bt;qt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const a=Mr.bind(null,R=>""+R),f=Mr.bind(null,Yu),p=Mr.bind(null,vn);function m(R,F){let D,j;return Tl(R)?(D=t.getRecordMatcher(R),j=F):j=R,t.addRoute(j,D)}function g(R){const F=t.getRecordMatcher(R);F&&t.removeRoute(F)}function b(){return t.getRoutes().map(R=>R.record)}function E(R){return!!t.getRecordMatcher(R)}function O(R,F){if(F=te({},F||c.value),typeof R=="string"){const y=Ur(n,R,F.path),w=t.resolve({path:y.path},F),A=s.createHref(y.fullPath);return te(y,w,{params:p(w.params),hash:vn(y.hash),redirectedFrom:void 0,href:A})}let D;if(R.path!=null)D=te({},R,{path:Ur(n,R.path,F.path).path});else{const y=te({},R.params);for(const w in y)y[w]==null&&delete y[w];D=te({},R,{params:f(y)}),F.params=f(F.params)}const j=t.resolve(D,F),Q=R.hash||"";j.params=a(p(j.params));const d=tf(r,te({},R,{hash:Ju(Q),path:j.path})),h=s.createHref(d);return te({fullPath:d,hash:Q,query:r===To?yf(R.query):R.query||{}},j,{redirectedFrom:void 0,href:h})}function C(R){return typeof R=="string"?Ur(n,R,c.value.path):te({},R)}function N(R,F){if(u!==R)return Qt(ae.NAVIGATION_CANCELLED,{from:F,to:R})}function P(R){return k(R)}function M(R){return P(te(C(R),{replace:!0}))}function X(R,F){const D=R.matched[R.matched.length-1];if(D&&D.redirect){const{redirect:j}=D;let Q=typeof j=="function"?j(R,F):j;return typeof Q=="string"&&(Q=Q.includes("?")||Q.includes("#")?Q=C(Q):{path:Q},Q.params={}),te({query:R.query,hash:R.hash,params:Q.path!=null?{}:R.params},Q)}}function k(R,F){const D=u=O(R),j=c.value,Q=R.state,d=R.force,h=R.replace===!0,y=X(D,j);if(y)return k(te(C(y),{state:typeof y=="object"?te({},Q,y.state):Q,force:d,replace:h}),F||D);const w=D;w.redirectedFrom=F;let A;return!d&&nf(r,j,D)&&(A=Qt(ae.NAVIGATION_DUPLICATED,{to:w,from:j}),me(j,j,!0,!1)),(A?Promise.resolve(A):ee(w,j)).catch(S=>at(S)?at(S,ae.NAVIGATION_GUARD_REDIRECT)?S:ze(S):z(S,w,j)).then(S=>{if(S){if(at(S,ae.NAVIGATION_GUARD_REDIRECT))return k(te({replace:h},C(S.to),{state:typeof S.to=="object"?te({},Q,S.to.state):Q,force:d}),F||w)}else S=ye(w,j,!0,h,Q);return ue(w,j,S),S})}function V(R,F){const D=N(R,F);return D?Promise.reject(D):Promise.resolve()}function U(R){const F=qe.values().next().value;return F&&typeof F.runWithContext=="function"?F.runWithContext(R):R()}function ee(R,F){let D;const[j,Q,d]=bf(R,F);D=Br(j.reverse(),"beforeRouteLeave",R,F);for(const y of j)y.leaveGuards.forEach(w=>{D.push(At(w,R,F))});const h=V.bind(null,R,F);return D.push(h),He(D).then(()=>{D=[];for(const y of o.list())D.push(At(y,R,F));return D.push(h),He(D)}).then(()=>{D=Br(Q,"beforeRouteUpdate",R,F);for(const y of Q)y.updateGuards.forEach(w=>{D.push(At(w,R,F))});return D.push(h),He(D)}).then(()=>{D=[];for(const y of d)if(y.beforeEnter)if(We(y.beforeEnter))for(const w of y.beforeEnter)D.push(At(w,R,F));else D.push(At(y.beforeEnter,R,F));return D.push(h),He(D)}).then(()=>(R.matched.forEach(y=>y.enterCallbacks={}),D=Br(d,"beforeRouteEnter",R,F,U),D.push(h),He(D))).then(()=>{D=[];for(const y of i.list())D.push(At(y,R,F));return D.push(h),He(D)}).catch(y=>at(y,ae.NAVIGATION_CANCELLED)?y:Promise.reject(y))}function ue(R,F,D){l.list().forEach(j=>U(()=>j(R,F,D)))}function ye(R,F,D,j,Q){const d=N(R,F);if(d)return d;const h=F===bt,y=qt?history.state:{};D&&(j||h?s.replace(R.fullPath,te({scroll:h&&y&&y.scroll},Q)):s.push(R.fullPath,Q)),c.value=R,me(R,F,D,h),ze()}let pe;function Re(){pe||(pe=s.listen((R,F,D)=>{if(!Xe.listening)return;const j=O(R),Q=X(j,Xe.currentRoute.value);if(Q){k(te(Q,{replace:!0,force:!0}),j).catch(yn);return}u=j;const d=c.value;qt&&ff(xo(d.fullPath,D.delta),_r()),ee(j,d).catch(h=>at(h,ae.NAVIGATION_ABORTED|ae.NAVIGATION_CANCELLED)?h:at(h,ae.NAVIGATION_GUARD_REDIRECT)?(k(te(C(h.to),{force:!0}),j).then(y=>{at(y,ae.NAVIGATION_ABORTED|ae.NAVIGATION_DUPLICATED)&&!D.delta&&D.type===rs.pop&&s.go(-1,!1)}).catch(yn),Promise.reject()):(D.delta&&s.go(-D.delta,!1),z(h,j,d))).then(h=>{h=h||ye(j,d,!1),h&&(D.delta&&!at(h,ae.NAVIGATION_CANCELLED)?s.go(-D.delta,!1):D.type===rs.pop&&at(h,ae.NAVIGATION_ABORTED|ae.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),ue(j,d,h)}).catch(yn)}))}let Ve=sn(),J=sn(),K;function z(R,F,D){ze(R);const j=J.list();return j.length?j.forEach(Q=>Q(R,F,D)):console.error(R),Promise.reject(R)}function Be(){return K&&c.value!==bt?Promise.resolve():new Promise((R,F)=>{Ve.add([R,F])})}function ze(R){return K||(K=!R,Re(),Ve.list().forEach(([F,D])=>R?D(R):F()),Ve.reset()),R}function me(R,F,D,j){const{scrollBehavior:Q}=e;if(!qt||!Q)return Promise.resolve();const d=!D&&df(xo(R.fullPath,0))||(j||!D)&&history.state&&history.state.scroll||null;return Rs().then(()=>Q(R,F,d)).then(h=>h&&uf(h)).catch(h=>z(h,R,F))}const fe=R=>s.go(R);let Je;const qe=new Set,Xe={currentRoute:c,listening:!0,addRoute:m,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:E,getRoutes:b,resolve:O,options:e,push:P,replace:M,go:fe,back:()=>fe(-1),forward:()=>fe(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:J.add,isReady:Be,install(R){R.component("RouterLink",kf),R.component("RouterView",Dl),R.config.globalProperties.$router=Xe,Object.defineProperty(R.config.globalProperties,"$route",{enumerable:!0,get:()=>Ot(c)}),qt&&!Je&&c.value===bt&&(Je=!0,P(s.location).catch(j=>{}));const F={};for(const j in bt)Object.defineProperty(F,j,{get:()=>c.value[j],enumerable:!0});R.provide(br,Xe),R.provide(Is,Ci(F)),R.provide(os,c);const D=R.unmount;qe.add(R),R.unmount=function(){qe.delete(R),qe.size<1&&(u=bt,pe&&pe(),pe=null,c.value=bt,Je=!1,K=!1),D()}}};function He(R){return R.reduce((F,D)=>F.then(()=>U(D)),Promise.resolve())}return Xe}function Lh(){return ke(br)}function Fh(e){return ke(Is)}function Ll(e,t){return function(){return e.apply(t,arguments)}}const{toString:Wf}=Object.prototype,{getPrototypeOf:Ds}=Object,{iterator:Er,toStringTag:Fl}=Symbol,wr=(e=>t=>{const n=Wf.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ge=e=>(e=e.toLowerCase(),t=>wr(t)===e),Sr=e=>t=>typeof t===e,{isArray:Zt}=Array,Yt=Sr("undefined");function Cn(e){return e!==null&&!Yt(e)&&e.constructor!==null&&!Yt(e.constructor)&&Ie(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Ml=Ge("ArrayBuffer");function Gf(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Ml(e.buffer),t}const zf=Sr("string"),Ie=Sr("function"),Ul=Sr("number"),Pn=e=>e!==null&&typeof e=="object",Jf=e=>e===!0||e===!1,Kn=e=>{if(wr(e)!=="object")return!1;const t=Ds(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Fl in e)&&!(Er in e)},Xf=e=>{if(!Pn(e)||Cn(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},Qf=Ge("Date"),Yf=Ge("File"),Zf=Ge("Blob"),ed=Ge("FileList"),td=e=>Pn(e)&&Ie(e.pipe),nd=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Ie(e.append)&&((t=wr(e))==="formdata"||t==="object"&&Ie(e.toString)&&e.toString()==="[object FormData]"))},rd=Ge("URLSearchParams"),[sd,od,id,ld]=["ReadableStream","Request","Response","Headers"].map(Ge),cd=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Nn(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),Zt(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const It=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Bl=e=>!Yt(e)&&e!==It;function is(){const{caseless:e,skipUndefined:t}=Bl(this)&&this||{},n={},r=(s,o)=>{const i=e&&jl(n,o)||o;Kn(n[i])&&Kn(s)?n[i]=is(n[i],s):Kn(s)?n[i]=is({},s):Zt(s)?n[i]=s.slice():(!t||!Yt(s))&&(n[i]=s)};for(let s=0,o=arguments.length;s(Nn(t,(s,o)=>{n&&Ie(s)?e[o]=Ll(s,n):e[o]=s},{allOwnKeys:r}),e),ud=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),fd=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},dd=(e,t,n,r)=>{let s,o,i;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&Ds(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},hd=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},pd=e=>{if(!e)return null;if(Zt(e))return e;let t=e.length;if(!Ul(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},md=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Ds(Uint8Array)),gd=(e,t)=>{const r=(e&&e[Er]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},yd=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},_d=Ge("HTMLFormElement"),bd=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),Ho=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Ed=Ge("RegExp"),Hl=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Nn(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},wd=e=>{Hl(e,(t,n)=>{if(Ie(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Ie(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Sd=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return Zt(e)?r(e):r(String(e).split(t)),n},Rd=()=>{},Ad=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function vd(e){return!!(e&&Ie(e.append)&&e[Fl]==="FormData"&&e[Er])}const Od=e=>{const t=new Array(10),n=(r,s)=>{if(Pn(r)){if(t.indexOf(r)>=0)return;if(Cn(r))return r;if(!("toJSON"in r)){t[s]=r;const o=Zt(r)?[]:{};return Nn(r,(i,l)=>{const c=n(i,s+1);!Yt(c)&&(o[l]=c)}),t[s]=void 0,o}}return r};return n(e,0)},xd=Ge("AsyncFunction"),Td=e=>e&&(Pn(e)||Ie(e))&&Ie(e.then)&&Ie(e.catch),kl=((e,t)=>e?setImmediate:t?((n,r)=>(It.addEventListener("message",({source:s,data:o})=>{s===It&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),It.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Ie(It.postMessage)),Cd=typeof queueMicrotask<"u"?queueMicrotask.bind(It):typeof process<"u"&&process.nextTick||kl,Pd=e=>e!=null&&Ie(e[Er]),_={isArray:Zt,isArrayBuffer:Ml,isBuffer:Cn,isFormData:nd,isArrayBufferView:Gf,isString:zf,isNumber:Ul,isBoolean:Jf,isObject:Pn,isPlainObject:Kn,isEmptyObject:Xf,isReadableStream:sd,isRequest:od,isResponse:id,isHeaders:ld,isUndefined:Yt,isDate:Qf,isFile:Yf,isBlob:Zf,isRegExp:Ed,isFunction:Ie,isStream:td,isURLSearchParams:rd,isTypedArray:md,isFileList:ed,forEach:Nn,merge:is,extend:ad,trim:cd,stripBOM:ud,inherits:fd,toFlatObject:dd,kindOf:wr,kindOfTest:Ge,endsWith:hd,toArray:pd,forEachEntry:gd,matchAll:yd,isHTMLForm:_d,hasOwnProperty:Ho,hasOwnProp:Ho,reduceDescriptors:Hl,freezeMethods:wd,toObjectSet:Sd,toCamelCase:bd,noop:Rd,toFiniteNumber:Ad,findKey:jl,global:It,isContextDefined:Bl,isSpecCompliantForm:vd,toJSONObject:Od,isAsyncFn:xd,isThenable:Td,setImmediate:kl,asap:Cd,isIterable:Pd};function G(e,t,n,r,s){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),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}_.inherits(G,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:_.toJSONObject(this.config),code:this.code,status:this.status}}});const Vl=G.prototype,ql={};["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=>{ql[e]={value:e}});Object.defineProperties(G,ql);Object.defineProperty(Vl,"isAxiosError",{value:!0});G.from=(e,t,n,r,s,o)=>{const i=Object.create(Vl);_.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 G.call(i,l,c,n,r,s),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 Nd=null;function ls(e){return _.isPlainObject(e)||_.isArray(e)}function $l(e){return _.endsWith(e,"[]")?e.slice(0,-2):e}function ko(e,t,n){return e?e.concat(t).map(function(s,o){return s=$l(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function Id(e){return _.isArray(e)&&!e.some(ls)}const Dd=_.toFlatObject(_,{},null,function(t){return/^is[A-Z]/.test(t)});function Rr(e,t,n){if(!_.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=_.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(b,E){return!_.isUndefined(E[b])});const r=n.metaTokens,s=n.visitor||a,o=n.dots,i=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&_.isSpecCompliantForm(t);if(!_.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(_.isDate(g))return g.toISOString();if(_.isBoolean(g))return g.toString();if(!c&&_.isBlob(g))throw new G("Blob is not supported. Use a Buffer instead.");return _.isArrayBuffer(g)||_.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function a(g,b,E){let O=g;if(g&&!E&&typeof g=="object"){if(_.endsWith(b,"{}"))b=r?b:b.slice(0,-2),g=JSON.stringify(g);else if(_.isArray(g)&&Id(g)||(_.isFileList(g)||_.endsWith(b,"[]"))&&(O=_.toArray(g)))return b=$l(b),O.forEach(function(N,P){!(_.isUndefined(N)||N===null)&&t.append(i===!0?ko([b],P,o):i===null?b:b+"[]",u(N))}),!1}return ls(g)?!0:(t.append(ko(E,b,o),u(g)),!1)}const f=[],p=Object.assign(Dd,{defaultVisitor:a,convertValue:u,isVisitable:ls});function m(g,b){if(!_.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+b.join("."));f.push(g),_.forEach(g,function(O,C){(!(_.isUndefined(O)||O===null)&&s.call(t,O,_.isString(C)?C.trim():C,b,p))===!0&&m(O,b?b.concat(C):[C])}),f.pop()}}if(!_.isObject(e))throw new TypeError("data must be an object");return m(e),t}function Vo(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Ls(e,t){this._pairs=[],e&&Rr(e,this,t)}const Kl=Ls.prototype;Kl.append=function(t,n){this._pairs.push([t,n])};Kl.toString=function(t){const n=t?function(r){return t.call(this,r,Vo)}:Vo;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Ld(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Wl(e,t,n){if(!t)return e;const r=n&&n.encode||Ld;_.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=_.isURLSearchParams(t)?t.toString():new Ls(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class qo{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){_.forEach(this.handlers,function(r){r!==null&&t(r)})}}const Gl={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Fd=typeof URLSearchParams<"u"?URLSearchParams:Ls,Md=typeof FormData<"u"?FormData:null,Ud=typeof Blob<"u"?Blob:null,jd={isBrowser:!0,classes:{URLSearchParams:Fd,FormData:Md,Blob:Ud},protocols:["http","https","file","blob","url","data"]},Fs=typeof window<"u"&&typeof document<"u",cs=typeof navigator=="object"&&navigator||void 0,Bd=Fs&&(!cs||["ReactNative","NativeScript","NS"].indexOf(cs.product)<0),Hd=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",kd=Fs&&window.location.href||"http://localhost",Vd=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Fs,hasStandardBrowserEnv:Bd,hasStandardBrowserWebWorkerEnv:Hd,navigator:cs,origin:kd},Symbol.toStringTag,{value:"Module"})),Ee={...Vd,...jd};function qd(e,t){return Rr(e,new Ee.classes.URLSearchParams,{visitor:function(n,r,s,o){return Ee.isNode&&_.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function $d(e){return _.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Kd(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&_.isArray(s)?s.length:i,c?(_.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!l):((!s[i]||!_.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&_.isArray(s[i])&&(s[i]=Kd(s[i])),!l)}if(_.isFormData(e)&&_.isFunction(e.entries)){const n={};return _.forEachEntry(e,(r,s)=>{t($d(r),s,n,0)}),n}return null}function Wd(e,t,n){if(_.isString(e))try{return(t||JSON.parse)(e),_.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const In={transitional:Gl,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=_.isObject(t);if(o&&_.isHTMLForm(t)&&(t=new FormData(t)),_.isFormData(t))return s?JSON.stringify(zl(t)):t;if(_.isArrayBuffer(t)||_.isBuffer(t)||_.isStream(t)||_.isFile(t)||_.isBlob(t)||_.isReadableStream(t))return t;if(_.isArrayBufferView(t))return t.buffer;if(_.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return qd(t,this.formSerializer).toString();if((l=_.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return Rr(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),Wd(t)):t}],transformResponse:[function(t){const n=this.transitional||In.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(_.isResponse(t)||_.isReadableStream(t))return t;if(t&&_.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(i)throw l.name==="SyntaxError"?G.from(l,G.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:Ee.classes.FormData,Blob:Ee.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};_.forEach(["delete","get","head","post","put","patch"],e=>{In.headers[e]={}});const Gd=_.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"]),zd=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&Gd[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},$o=Symbol("internals");function on(e){return e&&String(e).trim().toLowerCase()}function Wn(e){return e===!1||e==null?e:_.isArray(e)?e.map(Wn):String(e)}function Jd(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const Xd=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Hr(e,t,n,r,s){if(_.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!_.isString(t)){if(_.isString(r))return t.indexOf(r)!==-1;if(_.isRegExp(r))return r.test(t)}}function Qd(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Yd(e,t){const n=_.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let De=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(l,c,u){const a=on(c);if(!a)throw new Error("header name must be a non-empty string");const f=_.findKey(s,a);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||c]=Wn(l))}const i=(l,c)=>_.forEach(l,(u,a)=>o(u,a,c));if(_.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(_.isString(t)&&(t=t.trim())&&!Xd(t))i(zd(t),n);else if(_.isObject(t)&&_.isIterable(t)){let l={},c,u;for(const a of t){if(!_.isArray(a))throw TypeError("Object iterator must return a key-value pair");l[u=a[0]]=(c=l[u])?_.isArray(c)?[...c,a[1]]:[c,a[1]]:a[1]}i(l,n)}else t!=null&&o(n,t,r);return this}get(t,n){if(t=on(t),t){const r=_.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return Jd(s);if(_.isFunction(n))return n.call(this,s,r);if(_.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=on(t),t){const r=_.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Hr(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=on(i),i){const l=_.findKey(r,i);l&&(!n||Hr(r,r[l],l,n))&&(delete r[l],s=!0)}}return _.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||Hr(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return _.forEach(this,(s,o)=>{const i=_.findKey(r,o);if(i){n[i]=Wn(s),delete n[o];return}const l=t?Qd(o):String(o).trim();l!==o&&delete n[o],n[l]=Wn(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return _.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&_.isArray(r)?r.join(", "):r)}),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 r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[$o]=this[$o]={accessors:{}}).accessors,s=this.prototype;function o(i){const l=on(i);r[l]||(Yd(s,i),r[l]=!0)}return _.isArray(t)?t.forEach(o):o(t),this}};De.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);_.reduceDescriptors(De.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});_.freezeMethods(De);function kr(e,t){const n=this||In,r=t||n,s=De.from(r.headers);let o=r.data;return _.forEach(e,function(l){o=l.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function Jl(e){return!!(e&&e.__CANCEL__)}function en(e,t,n){G.call(this,e??"canceled",G.ERR_CANCELED,t,n),this.name="CanceledError"}_.inherits(en,G,{__CANCEL__:!0});function Xl(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new G("Request failed with status code "+n.status,[G.ERR_BAD_REQUEST,G.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function Zd(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function eh(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),a=r[o];i||(i=u),n[s]=c,r[s]=u;let f=o,p=0;for(;f!==s;)p+=n[f++],f=f%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i{n=a,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const a=Date.now(),f=a-n;f>=r?i(u,a):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-f)))},()=>s&&i(s)]}const sr=(e,t,n=3)=>{let r=0;const s=eh(50,250);return th(o=>{const i=o.loaded,l=o.lengthComputable?o.total:void 0,c=i-r,u=s(c),a=i<=l;r=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)},Ko=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Wo=e=>(...t)=>_.asap(()=>e(...t)),nh=Ee.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Ee.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Ee.origin),Ee.navigator&&/(msie|trident)/i.test(Ee.navigator.userAgent)):()=>!0,rh=Ee.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];_.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),_.isString(r)&&l.push(`path=${r}`),_.isString(s)&&l.push(`domain=${s}`),o===!0&&l.push("secure"),_.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 sh(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function oh(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Ql(e,t,n){let r=!sh(t);return e&&(r||n==!1)?oh(e,t):t}const Go=e=>e instanceof De?{...e}:e;function Ut(e,t){t=t||{};const n={};function r(u,a,f,p){return _.isPlainObject(u)&&_.isPlainObject(a)?_.merge.call({caseless:p},u,a):_.isPlainObject(a)?_.merge({},a):_.isArray(a)?a.slice():a}function s(u,a,f,p){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u,f,p)}else return r(u,a,f,p)}function o(u,a){if(!_.isUndefined(a))return r(void 0,a)}function i(u,a){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u)}else return r(void 0,a)}function l(u,a,f){if(f in t)return r(u,a);if(f in e)return r(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)=>s(Go(u),Go(a),f,!0)};return _.forEach(Object.keys({...e,...t}),function(a){const f=c[a]||s,p=f(e[a],t[a],a);_.isUndefined(p)&&f!==l||(n[a]=p)}),n}const Yl=e=>{const t=Ut({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:l}=t;if(t.headers=i=De.from(i),t.url=Wl(Ql(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&i.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),_.isFormData(n)){if(Ee.hasStandardBrowserEnv||Ee.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(_.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(Ee.hasStandardBrowserEnv&&(r&&_.isFunction(r)&&(r=r(t)),r||r!==!1&&nh(t.url))){const c=s&&o&&rh.read(o);c&&i.set(s,c)}return t},ih=typeof XMLHttpRequest<"u",lh=ih&&function(e){return new Promise(function(n,r){const s=Yl(e);let o=s.data;const i=De.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,a,f,p,m,g;function b(){m&&m(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(a),s.signal&&s.signal.removeEventListener("abort",a)}let E=new XMLHttpRequest;E.open(s.method.toUpperCase(),s.url,!0),E.timeout=s.timeout;function O(){if(!E)return;const N=De.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),M={data:!l||l==="text"||l==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:N,config:e,request:E};Xl(function(k){n(k),b()},function(k){r(k),b()},M),E=null}"onloadend"in E?E.onloadend=O:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.indexOf("file:")===0)||setTimeout(O)},E.onabort=function(){E&&(r(new G("Request aborted",G.ECONNABORTED,e,E)),E=null)},E.onerror=function(P){const M=P&&P.message?P.message:"Network Error",X=new G(M,G.ERR_NETWORK,e,E);X.event=P||null,r(X),E=null},E.ontimeout=function(){let P=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const M=s.transitional||Gl;s.timeoutErrorMessage&&(P=s.timeoutErrorMessage),r(new G(P,M.clarifyTimeoutError?G.ETIMEDOUT:G.ECONNABORTED,e,E)),E=null},o===void 0&&i.setContentType(null),"setRequestHeader"in E&&_.forEach(i.toJSON(),function(P,M){E.setRequestHeader(M,P)}),_.isUndefined(s.withCredentials)||(E.withCredentials=!!s.withCredentials),l&&l!=="json"&&(E.responseType=s.responseType),u&&([p,g]=sr(u,!0),E.addEventListener("progress",p)),c&&E.upload&&([f,m]=sr(c),E.upload.addEventListener("progress",f),E.upload.addEventListener("loadend",m)),(s.cancelToken||s.signal)&&(a=N=>{E&&(r(!N||N.type?new en(null,e,E):N),E.abort(),E=null)},s.cancelToken&&s.cancelToken.subscribe(a),s.signal&&(s.signal.aborted?a():s.signal.addEventListener("abort",a)));const C=Zd(s.url);if(C&&Ee.protocols.indexOf(C)===-1){r(new G("Unsupported protocol "+C+":",G.ERR_BAD_REQUEST,e));return}E.send(o||null)})},ch=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,l();const a=u instanceof Error?u:this.reason;r.abort(a instanceof G?a:new en(a instanceof Error?a.message:a))}};let i=t&&setTimeout(()=>{i=null,o(new G(`timeout ${t} of ms exceeded`,G.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}=r;return c.unsubscribe=()=>_.asap(l),c}},ah=function*(e,t){let n=e.byteLength;if(n{const s=uh(e,t);let o=0,i,l=c=>{i||(i=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:a}=await s.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),s.return()}},{highWaterMark:2})},Jo=64*1024,{isFunction:Un}=_,dh=(({Request:e,Response:t})=>({Request:e,Response:t}))(_.global),{ReadableStream:Xo,TextEncoder:Qo}=_.global,Yo=(e,...t)=>{try{return!!e(...t)}catch{return!1}},hh=e=>{e=_.merge.call({skipUndefined:!0},dh,e);const{fetch:t,Request:n,Response:r}=e,s=t?Un(t):typeof fetch=="function",o=Un(n),i=Un(r);if(!s)return!1;const l=s&&Un(Xo),c=s&&(typeof Qo=="function"?(g=>b=>g.encode(b))(new Qo):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=o&&l&&Yo(()=>{let g=!1;const b=new n(Ee.origin,{body:new Xo,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!b}),a=i&&l&&Yo(()=>_.isReadableStream(new r("").body)),f={stream:a&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(b,E)=>{let O=b&&b[g];if(O)return O.call(b);throw new G(`Response type '${g}' is not supported`,G.ERR_NOT_SUPPORT,E)})});const p=async g=>{if(g==null)return 0;if(_.isBlob(g))return g.size;if(_.isSpecCompliantForm(g))return(await new n(Ee.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(_.isArrayBufferView(g)||_.isArrayBuffer(g))return g.byteLength;if(_.isURLSearchParams(g)&&(g=g+""),_.isString(g))return(await c(g)).byteLength},m=async(g,b)=>{const E=_.toFiniteNumber(g.getContentLength());return E??p(b)};return async g=>{let{url:b,method:E,data:O,signal:C,cancelToken:N,timeout:P,onDownloadProgress:M,onUploadProgress:X,responseType:k,headers:V,withCredentials:U="same-origin",fetchOptions:ee}=Yl(g),ue=t||fetch;k=k?(k+"").toLowerCase():"text";let ye=ch([C,N&&N.toAbortSignal()],P),pe=null;const Re=ye&&ye.unsubscribe&&(()=>{ye.unsubscribe()});let Ve;try{if(X&&u&&E!=="get"&&E!=="head"&&(Ve=await m(V,O))!==0){let me=new n(b,{method:"POST",body:O,duplex:"half"}),fe;if(_.isFormData(O)&&(fe=me.headers.get("content-type"))&&V.setContentType(fe),me.body){const[Je,qe]=Ko(Ve,sr(Wo(X)));O=zo(me.body,Jo,Je,qe)}}_.isString(U)||(U=U?"include":"omit");const J=o&&"credentials"in n.prototype,K={...ee,signal:ye,method:E.toUpperCase(),headers:V.normalize().toJSON(),body:O,duplex:"half",credentials:J?U:void 0};pe=o&&new n(b,K);let z=await(o?ue(pe,ee):ue(b,K));const Be=a&&(k==="stream"||k==="response");if(a&&(M||Be&&Re)){const me={};["status","statusText","headers"].forEach(Xe=>{me[Xe]=z[Xe]});const fe=_.toFiniteNumber(z.headers.get("content-length")),[Je,qe]=M&&Ko(fe,sr(Wo(M),!0))||[];z=new r(zo(z.body,Jo,Je,()=>{qe&&qe(),Re&&Re()}),me)}k=k||"text";let ze=await f[_.findKey(f,k)||"text"](z,g);return!Be&&Re&&Re(),await new Promise((me,fe)=>{Xl(me,fe,{data:ze,headers:De.from(z.headers),status:z.status,statusText:z.statusText,config:g,request:pe})})}catch(J){throw Re&&Re(),J&&J.name==="TypeError"&&/Load failed|fetch/i.test(J.message)?Object.assign(new G("Network Error",G.ERR_NETWORK,g,pe),{cause:J.cause||J}):G.from(J,J&&J.code,g,pe)}}},ph=new Map,Zl=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,l=i,c,u,a=ph;for(;l--;)c=o[l],u=a.get(c),u===void 0&&a.set(c,u=l?new Map:hh(t)),a=u;return u};Zl();const Ms={http:Nd,xhr:lh,fetch:{get:Zl}};_.forEach(Ms,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Zo=e=>`- ${e}`,mh=e=>_.isFunction(e)||e===null||e===!1;function gh(e,t){e=_.isArray(e)?e:[e];const{length:n}=e;let r,s;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(Zo).join(` +`):" "+Zo(i[0]):"as no adapter specified";throw new G("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const ec={getAdapter:gh,adapters:Ms};function Vr(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new en(null,e)}function ei(e){return Vr(e),e.headers=De.from(e.headers),e.data=kr.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),ec.getAdapter(e.adapter||In.adapter,e)(e).then(function(r){return Vr(e),r.data=kr.call(e,e.transformResponse,r),r.headers=De.from(r.headers),r},function(r){return Jl(r)||(Vr(e),r&&r.response&&(r.response.data=kr.call(e,e.transformResponse,r.response),r.response.headers=De.from(r.response.headers))),Promise.reject(r)})}const tc="1.13.2",Ar={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Ar[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const ti={};Ar.transitional=function(t,n,r){function s(o,i){return"[Axios v"+tc+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,l)=>{if(t===!1)throw new G(s(i," has been removed"+(n?" in "+n:"")),G.ERR_DEPRECATED);return n&&!ti[i]&&(ti[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,l):!0}};Ar.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function yh(e,t,n){if(typeof e!="object")throw new G("options must be an object",G.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const l=e[o],c=l===void 0||i(l,o,e);if(c!==!0)throw new G("option "+o+" must be "+c,G.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new G("Unknown option "+o,G.ERR_BAD_OPTION)}}const Gn={assertOptions:yh,validators:Ar},nt=Gn.validators;let Mt=class{constructor(t){this.defaults=t||{},this.interceptors={request:new qo,response:new qo}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Ut(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&Gn.assertOptions(r,{silentJSONParsing:nt.transitional(nt.boolean),forcedJSONParsing:nt.transitional(nt.boolean),clarifyTimeoutError:nt.transitional(nt.boolean)},!1),s!=null&&(_.isFunction(s)?n.paramsSerializer={serialize:s}:Gn.assertOptions(s,{encode:nt.function,serialize:nt.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Gn.assertOptions(n,{baseUrl:nt.spelling("baseURL"),withXsrfToken:nt.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&_.merge(o.common,o[n.method]);o&&_.forEach(["delete","get","head","post","put","patch","common"],g=>{delete o[g]}),n.headers=De.concat(i,o);const l=[];let c=!0;this.interceptors.request.forEach(function(b){typeof b.runWhen=="function"&&b.runWhen(n)===!1||(c=c&&b.synchronous,l.unshift(b.fulfilled,b.rejected))});const u=[];this.interceptors.response.forEach(function(b){u.push(b.fulfilled,b.rejected)});let a,f=0,p;if(!c){const g=[ei.bind(this),void 0];for(g.unshift(...l),g.push(...u),p=g.length,a=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(l=>{r.subscribe(l),o=l}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,l){r.reason||(r.reason=new en(o,i,l),n(r.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=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new nc(function(s){t=s}),cancel:t}}};function bh(e){return function(n){return e.apply(null,n)}}function Eh(e){return _.isObject(e)&&e.isAxiosError===!0}const as={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(as).forEach(([e,t])=>{as[t]=e});function rc(e){const t=new Mt(e),n=Ll(Mt.prototype.request,t);return _.extend(n,Mt.prototype,t,{allOwnKeys:!0}),_.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return rc(Ut(e,s))},n}const he=rc(In);he.Axios=Mt;he.CanceledError=en;he.CancelToken=_h;he.isCancel=Jl;he.VERSION=tc;he.toFormData=Rr;he.AxiosError=G;he.Cancel=he.CanceledError;he.all=function(t){return Promise.all(t)};he.spread=bh;he.isAxiosError=Eh;he.mergeConfig=Ut;he.AxiosHeaders=De;he.formToJSON=e=>zl(_.isHTMLForm(e)?new FormData(e):e);he.getAdapter=ec.getAdapter;he.HttpStatusCode=as;he.default=he;const{Axios:jh,AxiosError:Bh,CanceledError:Hh,isCancel:kh,CancelToken:Vh,VERSION:qh,all:$h,Cancel:Kh,isAxiosError:Wh,spread:Gh,toFormData:zh,AxiosHeaders:Jh,HttpStatusCode:Xh,formToJSON:Qh,getAdapter:Yh,mergeConfig:Zh}=he,_n=he.create({baseURL:"",timeout:3e4,withCredentials:!0});_n.interceptors.request.use(e=>e,e=>Promise.reject(e));_n.interceptors.response.use(e=>e.data,e=>{e.response?.status===401&&(window.location.hash="#/login");const t=e.response?.data?e.response.data.detail||e.response.data.message:e.message;return Promise.reject(new Error(t||"请求失败"))});const jn={login:e=>{const t=new URLSearchParams;return t.append("admin_key",e.password),_n.post("/login",t,{headers:{"Content-Type":"application/x-www-form-urlencoded"}})},logout:()=>_n.post("/logout"),checkAuth:()=>_n.get("/admin/health")},wh=Mu("auth",()=>{const e=Lt(!1),t=Lt(!1),n=Lt(0),r=1e4;let s=null;async function o(c){t.value=!0;try{return await jn.login({password:c}),await jn.checkAuth(),e.value=!0,n.value=Date.now(),!0}catch(u){throw e.value=!1,u}finally{t.value=!1}}async function i(){try{await jn.logout()}finally{e.value=!1,n.value=0}}async function l(){const c=Date.now();if(e.value&&c-n.value(await jn.checkAuth(),e.value=!0,!0))(),await s}catch{return e.value=!1,!1}finally{n.value=Date.now(),s=null}}return{isLoggedIn:e,isLoading:t,login:o,logout:i,checkAuth:l}}),sc=Kf({history:Af("/"),routes:[{path:"/public/uptime",name:"public-uptime",component:()=>tt(()=>import("./PublicUptime-DuYTd433.js"),__vite__mapDeps([0,1])),meta:{requiresAuth:!1}},{path:"/public/logs",name:"public-logs",component:()=>tt(()=>import("./PublicLogs-Cxet1IRy.js"),[]),meta:{requiresAuth:!1}},{path:"/login",name:"login",component:()=>tt(()=>import("./Login-Rntqxoya.js"),[]),meta:{requiresAuth:!1}},{path:"/",component:()=>tt(()=>import("./AppShell-DWHcP5pC.js"),__vite__mapDeps([2,3,4,5])),meta:{requiresAuth:!0},children:[{path:"",name:"dashboard",component:()=>tt(()=>import("./Dashboard-DET2X3uX.js"),__vite__mapDeps([6,7]))},{path:"accounts",name:"accounts",component:()=>tt(()=>import("./Accounts-Cujd5Q6N.js"),__vite__mapDeps([8,9,10,4,5,7]))},{path:"settings",name:"settings",component:()=>tt(()=>import("./Settings-DPDEjYSf.js"),__vite__mapDeps([11,3,9,10,7]))},{path:"logs",name:"logs",component:()=>tt(()=>import("./Logs-B9cm-Qa5.js"),__vite__mapDeps([12,9,4]))},{path:"monitor",name:"monitor",component:()=>tt(()=>import("./Monitor-bxyFw9Hv.js"),__vite__mapDeps([13,1]))},{path:"docs",name:"docs",component:()=>tt(()=>import("./Docs-IW2JYiXJ.js"),[])}]}]});sc.beforeEach(async e=>{const t=wh();if(e.meta.requiresAuth&&!await t.checkAuth())return{name:"login"};if(e.name==="login"&&t.isLoggedIn)return{name:"dashboard"}});const Sh=Os({__name:"App",setup(e){return(t,n)=>(er(),nr(Ot(Dl)))}}),Us=xu(Sh),Rh=Pu();Us.use(Rh);Us.use(sc);Us.mount("#app");export{Xc as A,Dl as B,Mu as C,Dh as D,Rs as E,Fe as F,xh as G,On as H,kf as R,vh as T,fl as a,Ph as b,Th as c,Os as d,er as e,Wa as f,_n as g,Lt as h,Me as i,fa as j,ps as k,wh as l,Ah as m,ms as n,ca as o,Lh as p,Fh as q,Oh as r,fn as s,mc as t,Ot as u,Nh as v,Ih as w,Ce as x,nr as y,Ch as z}; diff --git a/static/assets/index-7nujalPz.css b/static/assets/index-7nujalPz.css new file mode 100644 index 0000000000000000000000000000000000000000..974e197f22984f99f9207d685280beb0bacfd8cf --- /dev/null +++ b/static/assets/index-7nujalPz.css @@ -0,0 +1 @@ +@import"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=Noto+Serif+SC:wght@600;700&display=swap";.toast-enter-active[data-v-cdd21b3c],.toast-leave-active[data-v-cdd21b3c]{transition:all .3s ease}.toast-enter-from[data-v-cdd21b3c],.toast-leave-to[data-v-cdd21b3c]{opacity:0;transform:translate(100%)}.toast-move[data-v-cdd21b3c]{transition:transform .3s ease}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 97%;--foreground: 0 0% 10%;--card: 0 0% 100%;--card-foreground: 0 0% 10%;--primary: 0 0% 10%;--primary-foreground: 0 0% 100%;--secondary: 0 0% 92%;--secondary-foreground: 0 0% 10%;--muted: 0 0% 92%;--muted-foreground: 0 0% 40%;--accent: 0 0% 90%;--accent-foreground: 0 0% 10%;--destructive: 0 70% 45%;--destructive-foreground: 0 0% 100%;--border: 0 0% 86%;--input: 0 0% 86%;--ring: 0 0% 10%;--radius: 1rem}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:Noto Sans SC,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;overflow-x:hidden;background-image:radial-gradient(900px circle at 10% -20%,rgba(0,0,0,.04),transparent 45%),radial-gradient(700px circle at 90% 0%,rgba(0,0,0,.05),transparent 40%),linear-gradient(180deg,hsl(var(--background)) 0% 100%)}body:before{content:"";position:fixed;inset:0;background-image:linear-gradient(120deg,#ffffff8c,#fff0);opacity:.5;pointer-events:none;z-index:-1}h1,h2,h3{font-family:"Noto Serif SC",Georgia,serif;letter-spacing:-.01em}#app{min-height:100vh}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{top:0;bottom:0}.bottom-0{bottom:0}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.right-4{right:1rem}.top-0{top:0}.top-4{top:1rem}.top-full{top:100%}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[200\]{z-index:200}.z-\[9999\]{z-index:9999}.col-span-2{grid-column:span 2 / span 2}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0{height:0px}.h-10{height:2.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-\[80vh\]{height:80vh}.h-full{height:100%}.max-h-\[60vh\]{max-height:60vh}.max-h-\[90vh\]{max-height:90vh}.min-h-0{min-height:0px}.min-h-\[140px\]{min-height:140px}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-10{width:2.5rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-44{width:11rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[200px\]{min-width:200px}.min-w-\[320px\]{min-width:320px}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-not-allowed{cursor:not-allowed}.resize{resize:both}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-1{row-gap:.25rem}.gap-y-2{row-gap:.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-visible{overflow-y:visible}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[2\.5rem\]{border-radius:2.5rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-x-4{border-left-width:4px;border-right-width:4px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-4{border-top-width:4px}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}.border-border{border-color:hsl(var(--border))}.border-border\/60{border-color:hsl(var(--border) / .6)}.border-destructive\/30{border-color:hsl(var(--destructive) / .3)}.border-emerald-200{--tw-border-opacity: 1;border-color:rgb(167 243 208 / var(--tw-border-opacity, 1))}.border-input{border-color:hsl(var(--input))}.border-primary-foreground\/40{border-color:hsl(var(--primary-foreground) / .4)}.border-rose-200{--tw-border-opacity: 1;border-color:rgb(254 205 211 / var(--tw-border-opacity, 1))}.border-sky-200{--tw-border-opacity: 1;border-color:rgb(186 230 253 / var(--tw-border-opacity, 1))}.border-x-transparent{border-left-color:transparent;border-right-color:transparent}.border-t-foreground{border-top-color:hsl(var(--foreground))}.bg-accent{background-color:hsl(var(--accent))}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-200{--tw-bg-opacity: 1;background-color:rgb(253 230 138 / var(--tw-bg-opacity, 1))}.bg-amber-300{--tw-bg-opacity: 1;background-color:rgb(252 211 77 / var(--tw-bg-opacity, 1))}.bg-amber-400{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-black\/20{background-color:#0003}.bg-black\/30{background-color:#0000004d}.bg-black\/50{background-color:#00000080}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-card{background-color:hsl(var(--card))}.bg-card\/70{background-color:hsl(var(--card) / .7)}.bg-card\/90{background-color:hsl(var(--card) / .9)}.bg-cyan-100{--tw-bg-opacity: 1;background-color:rgb(207 250 254 / var(--tw-bg-opacity, 1))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-400{--tw-bg-opacity: 1;background-color:rgb(52 211 153 / var(--tw-bg-opacity, 1))}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground{background-color:hsl(var(--muted-foreground))}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/70{background-color:hsl(var(--muted) / .7)}.bg-primary{background-color:hsl(var(--primary))}.bg-primary-foreground\/15{background-color:hsl(var(--primary-foreground) / .15)}.bg-rose-100{--tw-bg-opacity: 1;background-color:rgb(255 228 230 / var(--tw-bg-opacity, 1))}.bg-rose-50{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.bg-rose-500{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity, 1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/30{background-color:hsl(var(--secondary) / .3)}.bg-secondary\/40{background-color:hsl(var(--secondary) / .4)}.bg-secondary\/50{background-color:hsl(var(--secondary) / .5)}.bg-secondary\/60{background-color:hsl(var(--secondary) / .6)}.bg-sky-400{--tw-bg-opacity: 1;background-color:rgb(56 189 248 / var(--tw-bg-opacity, 1))}.bg-sky-50{--tw-bg-opacity: 1;background-color:rgb(240 249 255 / var(--tw-bg-opacity, 1))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-violet-100{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.object-contain{-o-object-fit:contain;object-fit:contain}.p-1{padding:.25rem}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-10{padding-bottom:2.5rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pl-4{padding-left:1rem}.pl-6{padding-left:1.5rem}.pr-1{padding-right:.25rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.tracking-\[0\.12em\]{letter-spacing:.12em}.tracking-\[0\.28em\]{letter-spacing:.28em}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-\[0\.3em\]{letter-spacing:.3em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-background{color:hsl(var(--background))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-cyan-700{--tw-text-opacity: 1;color:rgb(14 116 144 / var(--tw-text-opacity, 1))}.text-destructive{color:hsl(var(--destructive))}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-rose-500{--tw-text-opacity: 1;color:rgb(244 63 94 / var(--tw-text-opacity, 1))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-sky-500{--tw-text-opacity: 1;color:rgb(14 165 233 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-violet-700{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-black\/10{--tw-shadow-color: rgb(0 0 0 / .1);--tw-shadow: var(--tw-shadow-colored)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,transform\]{transition-property:width,transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-\[transform\]{will-change:transform}html{scrollbar-gutter:stable}*{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.35) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:#00000059;border-radius:999px;border:2px solid transparent;background-clip:content-box}.scrollbar-slim::-webkit-scrollbar{width:6px;height:6px}.scrollbar-slim::-webkit-scrollbar-thumb{background-color:#0006}.cv-auto{content-visibility:auto;contain-intrinsic-size:0 44px}.monitor-badge--up{background:#d1fae5;color:#065f46}.monitor-badge--warn{background:#fef3c7;color:#b45309}.monitor-badge--down{background:#fee2e2;color:#991b1b}.monitor-badge--unknown{background:#f3f4f6;color:#6b7280}.monitor-card{border-radius:16px;padding:0;background:hsl(var(--card));box-shadow:none}.monitor-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.monitor-card__name{font-size:14px;font-weight:600;color:hsl(var(--foreground))}.monitor-card__badge{padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600}.monitor-card__stats{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:hsl(var(--muted-foreground));margin-bottom:12px}.monitor-card__value{margin-left:4px;color:hsl(var(--foreground));font-weight:600}.monitor-card__beats{display:flex;gap:2px;height:24px;align-items:flex-end}.monitor-beat{flex:1;min-width:4px;max-width:8px;border-radius:2px;transition:all .2s;position:relative}.monitor-beat:hover{opacity:.8;transform:scaleY(1.1)}.monitor-beat--up{background:#34c759;height:100%}.monitor-beat--warn,.monitor-beat--slow{background:#f5c15b;height:100%}.monitor-beat--down{background:#ff3b30;height:100%}.monitor-beat--empty{background:#e5e5ea;height:40%}.monitor-beat__tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#1d1d1f;color:#fff;padding:6px 10px;border-radius:6px;font-size:11px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;margin-bottom:6px;z-index:10}.monitor-beat__tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#1d1d1f}.monitor-beat:hover .monitor-beat__tooltip{opacity:1}.help-dot{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:999px;border:1px solid hsl(var(--border));font-size:10px;line-height:1;color:hsl(var(--muted-foreground));cursor:default}@media(max-width:768px){.monitor-beat{min-width:3px;max-width:6px}}@media(min-width:1024px){.dashboard-split{flex-direction:row;flex-wrap:nowrap}.dashboard-split .dashboard-main{flex:0 0 66.6667%;max-width:66.6667%}.dashboard-split .dashboard-side{flex:0 0 33.3333%;max-width:33.3333%}}@keyframes logo-float{0%{transform:translateY(0)}25%{transform:translateY(6px)}50%{transform:translateY(0)}75%{transform:translateY(-6px)}to{transform:translateY(0)}}@keyframes logo-blink{0%,45%,55%,to{transform:scaleY(1);opacity:1}50%{transform:scaleY(.1);opacity:.6}}.logo-mark .logo-cat-wrapper{animation:logo-float 4s ease-in-out infinite;transform-origin:center}.logo-mark{transform:translateY(2px)}.logo-mark .logo-eye{fill:#00bcd4;filter:drop-shadow(0 0 2px #00bcd4);animation:logo-blink 5s infinite;transform-box:fill-box;transform-origin:center}.hover\:border-destructive:hover{border-color:hsl(var(--destructive))}.hover\:border-destructive\/40:hover{border-color:hsl(var(--destructive) / .4)}.hover\:border-destructive\/60:hover{border-color:hsl(var(--destructive) / .6)}.hover\:border-foreground:hover{border-color:hsl(var(--foreground))}.hover\:border-primary:hover{border-color:hsl(var(--primary))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/10:hover{background-color:hsl(var(--destructive) / .1)}.hover\:bg-secondary\/60:hover{background-color:hsl(var(--secondary) / .6)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-emerald-500:hover{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.focus\:border-transparent:focus{border-color:transparent}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:text-accent-foreground{color:hsl(var(--accent-foreground))}.group:hover .group-hover\:opacity-100{opacity:1}.peer:checked~.peer-checked\:border-foreground{border-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:bg-foreground{background-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.peer:disabled~.peer-disabled\:opacity-50{opacity:.5}@media(min-width:640px){.sm\:ml-0{margin-left:0}.sm\:flex{display:flex}.sm\:w-48{width:12rem}.sm\:w-auto{width:auto}.sm\:min-w-0{min-width:0px}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:items-center{align-items:center}}@media(min-width:768px){.md\:w-auto{width:auto}.md\:flex-1{flex:1 1 0%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1024px){.lg\:static{position:static}.lg\:sticky{position:sticky}.lg\:top-0{top:0}.lg\:ml-0{margin-left:0}.lg\:hidden{display:none}.lg\:h-20{height:5rem}.lg\:h-64{height:16rem}.lg\:h-72{height:18rem}.lg\:h-screen{height:100vh}.lg\:w-20{width:5rem}.lg\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:border-b-0{border-bottom-width:0px}.lg\:border-r{border-right-width:1px}.lg\:bg-card\/80{background-color:hsl(var(--card) / .8)}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:py-4{padding-top:1rem;padding-bottom:1rem}.lg\:pt-10{padding-top:2.5rem}.lg\:pt-5{padding-top:1.25rem}.lg\:pt-6{padding-top:1.5rem}.lg\:text-2xl{font-size:1.5rem;line-height:2rem}.lg\:backdrop-blur-none{--tw-backdrop-blur: ;-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}}@media(min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}} diff --git a/static/assets/index-B0A0-QFY.js b/static/assets/index-B0A0-QFY.js new file mode 100644 index 0000000000000000000000000000000000000000..1643afc6a8762cf71a1374c0c26ae5805eaab4dd --- /dev/null +++ b/static/assets/index-B0A0-QFY.js @@ -0,0 +1,7 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PublicUptime-BHpUIBOr.js","assets/useUptimeStatus-D_PU76s5.js","assets/AppShell-BbGZjE35.js","assets/settings-MHx3aXRd.js","assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-Bkr0tSJw.js","assets/useConfirmDialog-BS9rDomX.js","assets/Dashboard-C7wgWPRX.js","assets/HelpTip.vue_vue_type_script_setup_true_lang-BwK5Fa3C.js","assets/Accounts-BPJBl--e.js","assets/SelectMenu.vue_vue_type_script_setup_true_lang-Bb3w9pba.js","assets/Checkbox.vue_vue_type_script_setup_true_lang-B6QFZaQQ.js","assets/Settings-oiGSFiLo.js","assets/Logs-CEP1TB7c.js","assets/Monitor-BemJ9-ii.js"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function us(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const se={},$t=[],ot=()=>{},ni=()=>!1,or=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),fs=e=>e.startsWith("onUpdate:"),Se=Object.assign,ds=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},oc=Object.prototype.hasOwnProperty,ne=(e,t)=>oc.call(e,t),q=Array.isArray,Kt=e=>ir(e)==="[object Map]",ri=e=>ir(e)==="[object Set]",W=e=>typeof e=="function",de=e=>typeof e=="string",yt=e=>typeof e=="symbol",le=e=>e!==null&&typeof e=="object",si=e=>(le(e)||W(e))&&W(e.then)&&W(e.catch),oi=Object.prototype.toString,ir=e=>oi.call(e),ic=e=>ir(e).slice(8,-1),ii=e=>ir(e)==="[object Object]",lr=e=>de(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,cn=us(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),cr=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},lc=/-\w/g,xt=cr(e=>e.replace(lc,t=>t.slice(1).toUpperCase())),cc=/\B([A-Z])/g,jt=cr(e=>e.replace(cc,"-$1").toLowerCase()),li=cr(e=>e.charAt(0).toUpperCase()+e.slice(1)),vr=cr(e=>e?`on${li(e)}`:""),vt=(e,t)=>!Object.is(e,t),Bn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},hs=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let ks;const ar=()=>ks||(ks=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function ps(e){if(q(e)){const t={};for(let n=0;n{if(n){const r=n.split(uc);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function ms(e){let t="";if(de(e))t=e;else if(q(e))for(let n=0;n!!(e&&e.__v_isRef===!0),mc=e=>de(e)?e:e==null?"":q(e)||le(e)&&(e.toString===oi||!W(e.toString))?ui(e)?mc(e.value):JSON.stringify(e,fi,2):String(e),fi=(e,t)=>ui(t)?fi(e,t.value):Kt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[Or(r,o)+" =>"]=s,n),{})}:ri(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Or(n))}:yt(t)?Or(t):le(t)&&!q(t)&&!ii(t)?String(t):t,Or=(e,t="")=>{var n;return yt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let _e;class di{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=_e,!t&&_e&&(this.index=(_e.scopes||(_e.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&&(_e=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if(un){let t=un;for(un=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;an;){let t=an;for(an=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function _i(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function bi(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),_s(r),yc(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function qr(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===bn)||(e.globalVersion=bn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!qr(e))))return;e.flags|=2;const t=e.dep,n=ie,r=$e;ie=e,$e=!0;try{_i(e);const s=e.fn(e._value);(t.version===0||vt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{ie=n,$e=r,bi(e),e.flags&=-3}}function _s(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)_s(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function yc(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 wi=[];function ht(){wi.push($e),$e=!1}function pt(){const e=wi.pop();$e=e===void 0?!0:e}function Vs(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ie;ie=void 0;try{t()}finally{ie=n}}}let bn=0;class _c{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 bs{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!ie||!$e||ie===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ie)n=this.activeLink=new _c(ie,this),ie.deps?(n.prevDep=ie.depsTail,ie.depsTail.nextDep=n,ie.depsTail=n):ie.deps=ie.depsTail=n,Si(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=ie.depsTail,n.nextDep=void 0,ie.depsTail.nextDep=n,ie.depsTail=n,ie.deps===n&&(ie.deps=r)}return n}trigger(t){this.version++,bn++,this.notify(t)}notify(t){gs();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ys()}}}function Si(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Si(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const zn=new WeakMap,Dt=Symbol(""),$r=Symbol(""),En=Symbol("");function be(e,t,n){if($e&&ie){let r=zn.get(e);r||zn.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new bs),s.map=r,s.key=n),s.track()}}function ft(e,t,n,r,s,o){const i=zn.get(e);if(!i){bn++;return}const l=c=>{c&&c.trigger()};if(gs(),t==="clear")i.forEach(l);else{const c=q(e),u=c&&lr(n);if(c&&n==="length"){const a=Number(r);i.forEach((f,p)=>{(p==="length"||p===En||!yt(p)&&p>=a)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(En)),t){case"add":c?u&&l(i.get("length")):(l(i.get(Dt)),Kt(e)&&l(i.get($r)));break;case"delete":c||(l(i.get(Dt)),Kt(e)&&l(i.get($r)));break;case"set":Kt(e)&&l(i.get(Dt));break}}ys()}function bc(e,t){const n=zn.get(e);return n&&n.get(t)}function Bt(e){const t=Z(e);return t===e?t:(be(t,"iterate",En),je(e)?t:t.map(Ke))}function ur(e){return be(e=Z(e),"iterate",En),e}function wt(e,t){return mt(e)?it(e)?zt(Ke(t)):zt(t):Ke(t)}const Ec={__proto__:null,[Symbol.iterator](){return Tr(this,Symbol.iterator,e=>wt(this,e))},concat(...e){return Bt(this).concat(...e.map(t=>q(t)?Bt(t):t))},entries(){return Tr(this,"entries",e=>(e[1]=wt(this,e[1]),e))},every(e,t){return ct(this,"every",e,t,void 0,arguments)},filter(e,t){return ct(this,"filter",e,t,n=>n.map(r=>wt(this,r)),arguments)},find(e,t){return ct(this,"find",e,t,n=>wt(this,n),arguments)},findIndex(e,t){return ct(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ct(this,"findLast",e,t,n=>wt(this,n),arguments)},findLastIndex(e,t){return ct(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ct(this,"forEach",e,t,void 0,arguments)},includes(...e){return Cr(this,"includes",e)},indexOf(...e){return Cr(this,"indexOf",e)},join(e){return Bt(this).join(e)},lastIndexOf(...e){return Cr(this,"lastIndexOf",e)},map(e,t){return ct(this,"map",e,t,void 0,arguments)},pop(){return nn(this,"pop")},push(...e){return nn(this,"push",e)},reduce(e,...t){return qs(this,"reduce",e,t)},reduceRight(e,...t){return qs(this,"reduceRight",e,t)},shift(){return nn(this,"shift")},some(e,t){return ct(this,"some",e,t,void 0,arguments)},splice(...e){return nn(this,"splice",e)},toReversed(){return Bt(this).toReversed()},toSorted(e){return Bt(this).toSorted(e)},toSpliced(...e){return Bt(this).toSpliced(...e)},unshift(...e){return nn(this,"unshift",e)},values(){return Tr(this,"values",e=>wt(this,e))}};function Tr(e,t,n){const r=ur(e),s=r[t]();return r!==e&&!je(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const wc=Array.prototype;function ct(e,t,n,r,s,o){const i=ur(e),l=i!==e&&!je(e),c=i[t];if(c!==wc[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,wt(e,f),p,e)}:n.length>2&&(u=function(f,p){return n.call(this,f,p,e)}));const a=c.call(i,u,r);return l&&s?s(a):a}function qs(e,t,n,r){const s=ur(e);let o=n;return s!==e&&(je(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,wt(e,l),c,e)}),s[t](o,...r)}function Cr(e,t,n){const r=Z(e);be(r,"iterate",En);const s=r[t](...n);return(s===-1||s===!1)&&fr(n[0])?(n[0]=Z(n[0]),r[t](...n)):s}function nn(e,t,n=[]){ht(),gs();const r=Z(e)[t].apply(e,n);return ys(),pt(),r}const Sc=us("__proto__,__v_isRef,__isVue"),Ri=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(yt));function Rc(e){yt(e)||(e=String(e));const t=Z(this);return be(t,"has",e),t.hasOwnProperty(e)}class Ai{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?Dc:Ti:o?xi:Oi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=q(t);if(!s){let c;if(i&&(c=Ec[n]))return c;if(n==="hasOwnProperty")return Rc}const l=Reflect.get(t,n,ce(t)?t:r);if((yt(n)?Ri.has(n):Sc(n))||(s||be(t,"get",n),o))return l;if(ce(l)){const c=i&&lr(n)?l:l.value;return s&&le(c)?Wr(c):c}return le(l)?s?Wr(l):On(l):l}}class vi extends Ai{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=q(t)&&lr(n);if(!this._isShallow){const u=mt(o);if(!je(r)&&!mt(r)&&(o=Z(o),r=Z(r)),!i&&ce(o)&&!ce(r))return u||(o.value=r),!0}const l=i?Number(n)e,Dn=e=>Reflect.getPrototypeOf(e);function Tc(e,t,n){return function(...r){const s=this.__v_raw,o=Z(s),i=Kt(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=s[e](...r),a=n?Kr:t?zt:Ke;return!t&&be(o,"iterate",c?$r:Dt),{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 Ln(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Cc(e,t){const n={get(s){const o=this.__v_raw,i=Z(o),l=Z(s);e||(vt(s,l)&&be(i,"get",s),be(i,"get",l));const{has:c}=Dn(i),u=t?Kr:e?zt:Ke;if(c.call(i,s))return u(o.get(s));if(c.call(i,l))return u(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&be(Z(s),"iterate",Dt),s.size},has(s){const o=this.__v_raw,i=Z(o),l=Z(s);return e||(vt(s,l)&&be(i,"has",s),be(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,c=Z(l),u=t?Kr:e?zt:Ke;return!e&&be(c,"iterate",Dt),l.forEach((a,f)=>s.call(o,u(a),u(f),i))}};return Se(n,e?{add:Ln("add"),set:Ln("set"),delete:Ln("delete"),clear:Ln("clear")}:{add(s){!t&&!je(s)&&!mt(s)&&(s=Z(s));const o=Z(this);return Dn(o).has.call(o,s)||(o.add(s),ft(o,"add",s,s)),this},set(s,o){!t&&!je(o)&&!mt(o)&&(o=Z(o));const i=Z(this),{has:l,get:c}=Dn(i);let u=l.call(i,s);u||(s=Z(s),u=l.call(i,s));const a=c.call(i,s);return i.set(s,o),u?vt(o,a)&&ft(i,"set",s,o):ft(i,"add",s,o),this},delete(s){const o=Z(this),{has:i,get:l}=Dn(o);let c=i.call(o,s);c||(s=Z(s),c=i.call(o,s)),l&&l.call(o,s);const u=o.delete(s);return c&&ft(o,"delete",s,void 0),u},clear(){const s=Z(this),o=s.size!==0,i=s.clear();return o&&ft(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=Tc(s,e,t)}),n}function Es(e,t){const n=Cc(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(ne(n,s)&&s in r?n:r,s,o)}const Pc={get:Es(!1,!1)},Nc={get:Es(!1,!0)},Ic={get:Es(!0,!1)};const Oi=new WeakMap,xi=new WeakMap,Ti=new WeakMap,Dc=new WeakMap;function Lc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Fc(e){return e.__v_skip||!Object.isExtensible(e)?0:Lc(ic(e))}function On(e){return mt(e)?e:ws(e,!1,vc,Pc,Oi)}function Ci(e){return ws(e,!1,xc,Nc,xi)}function Wr(e){return ws(e,!0,Oc,Ic,Ti)}function ws(e,t,n,r,s){if(!le(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=Fc(e);if(o===0)return e;const i=s.get(e);if(i)return i;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function it(e){return mt(e)?it(e.__v_raw):!!(e&&e.__v_isReactive)}function mt(e){return!!(e&&e.__v_isReadonly)}function je(e){return!!(e&&e.__v_isShallow)}function fr(e){return e?!!e.__v_raw:!1}function Z(e){const t=e&&e.__v_raw;return t?Z(t):e}function Ss(e){return!ne(e,"__v_skip")&&Object.isExtensible(e)&&ci(e,"__v_skip",!0),e}const Ke=e=>le(e)?On(e):e,zt=e=>le(e)?Wr(e):e;function ce(e){return e?e.__v_isRef===!0:!1}function Lt(e){return Pi(e,!1)}function Mc(e){return Pi(e,!0)}function Pi(e,t){return ce(e)?e:new Uc(e,t)}class Uc{constructor(t,n){this.dep=new bs,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:Z(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,r=this.__v_isShallow||je(t)||mt(t);t=r?t:Z(t),vt(t,n)&&(this._rawValue=t,this._value=r?t:Ke(t),this.dep.trigger())}}function Ot(e){return ce(e)?e.value:e}const jc={get:(e,t,n)=>t==="__v_raw"?e:Ot(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return ce(s)&&!ce(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Ni(e){return it(e)?e:new Proxy(e,jc)}function Bc(e){const t=q(e)?new Array(e.length):{};for(const n in e)t[n]=Ii(e,n);return t}class Hc{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._raw=Z(t);let s=!0,o=t;if(!q(t)||!lr(String(n)))do s=!fr(o)||je(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=Ot(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&ce(this._raw[this._key])){const n=this._object[this._key];if(ce(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return bc(this._raw,this._key)}}class kc{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Vc(e,t,n){return ce(e)?e:W(e)?new kc(e):le(e)&&arguments.length>1?Ii(e,t,n):Lt(e)}function Ii(e,t,n){return new Hc(e,t,n)}class qc{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new bs(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=bn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&ie!==this)return yi(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 $c(e,t,n=!1){let r,s;return W(e)?r=e:(r=e.get,s=e.set),new qc(r,s,n)}const Fn={},Jn=new WeakMap;let Pt;function Kc(e,t=!1,n=Pt){if(n){let r=Jn.get(n);r||Jn.set(n,r=[]),r.push(e)}}function Wc(e,t,n=se){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:c}=n,u=P=>s?P:je(P)||s===!1||s===0?dt(P,1):dt(P);let a,f,p,m,g=!1,b=!1;if(ce(e)?(f=()=>e.value,g=je(e)):it(e)?(f=()=>u(e),g=!0):q(e)?(b=!0,g=e.some(P=>it(P)||je(P)),f=()=>e.map(P=>{if(ce(P))return P.value;if(it(P))return u(P);if(W(P))return c?c(P,2):P()})):W(e)?t?f=c?()=>c(e,2):e:f=()=>{if(p){ht();try{p()}finally{pt()}}const P=Pt;Pt=a;try{return c?c(e,3,[m]):e(m)}finally{Pt=P}}:f=ot,t&&s){const P=f,M=s===!0?1/0:s;f=()=>dt(P(),M)}const E=pi(),O=()=>{a.stop(),E&&E.active&&ds(E.effects,a)};if(o&&t){const P=t;t=(...M)=>{P(...M),O()}}let C=b?new Array(e.length).fill(Fn):Fn;const N=P=>{if(!(!(a.flags&1)||!a.dirty&&!P))if(t){const M=a.run();if(s||g||(b?M.some((X,k)=>vt(X,C[k])):vt(M,C))){p&&p();const X=Pt;Pt=a;try{const k=[M,C===Fn?void 0:b&&C[0]===Fn?[]:C,m];C=M,c?c(t,3,k):t(...k)}finally{Pt=X}}}else a.run()};return l&&l(N),a=new mi(f),a.scheduler=i?()=>i(N,!1):N,m=P=>Kc(P,!1,a),p=a.onStop=()=>{const P=Jn.get(a);if(P){if(c)c(P,4);else for(const M of P)M();Jn.delete(a)}},t?r?N(!0):C=a.run():i?i(N.bind(null,!0),!0):a.run(),O.pause=a.pause.bind(a),O.resume=a.resume.bind(a),O.stop=O,O}function dt(e,t=1/0,n){if(t<=0||!le(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,ce(e))dt(e.value,t,n);else if(q(e))for(let r=0;r{dt(r,t,n)});else if(ii(e)){for(const r in e)dt(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&dt(e[r],t,n)}return e}function xn(e,t,n,r){try{return r?e(...r):e()}catch(s){dr(s,t,n)}}function lt(e,t,n,r){if(W(e)){const s=xn(e,t,n,r);return s&&si(s)&&s.catch(o=>{dr(o,t,n)}),s}if(q(e)){const s=[];for(let o=0;o>>1,s=xe[r],o=wn(s);o=wn(n)?xe.push(e):xe.splice(zc(t),0,e),e.flags|=1,Li()}}function Li(){Xn||(Xn=Di.then(Mi))}function Jc(e){q(e)?Wt.push(...e):St&&e.id===-1?St.splice(kt+1,0,e):e.flags&1||(Wt.push(e),e.flags|=1),Li()}function $s(e,t,n=rt+1){for(;nwn(n)-wn(r));if(Wt.length=0,St){St.push(...t);return}for(St=t,kt=0;kte.id==null?e.flags&2?-1:1/0:e.id;function Mi(e){try{for(rt=0;rt{r._d&&tr(-1);const o=Qn(t);let i;try{i=e(...s)}finally{Qn(o),r._d&&tr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function Ah(e,t){if(we===null)return e;const n=gr(we),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&W(t)?t.call(r&&r.proxy):t}}function Qc(){return!!(dl()||Ft)}const Yc=Symbol.for("v-scx"),Zc=()=>ke(Yc);function fn(e,t,n){return ji(e,t,n)}function ji(e,t,n=se){const{immediate:r,deep:s,flush:o,once:i}=n,l=Se({},n),c=t&&r||!t&&o!=="post";let u;if(An){if(o==="sync"){const m=Zc();u=m.__watcherHandles||(m.__watcherHandles=[])}else if(!c){const m=()=>{};return m.stop=ot,m.resume=ot,m.pause=ot,m}}const a=Te;l.call=(m,g,b)=>lt(m,a,g,b);let f=!1;o==="post"?l.scheduler=m=>{ve(m,a&&a.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(m,g)=>{g?m():As(m)}),l.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,a&&(m.id=a.uid,m.i=a))};const p=Wc(e,t,l);return An&&(u?u.push(p):c&&p()),p}function ea(e,t,n){const r=this.proxy,s=de(e)?e.includes(".")?Bi(r,e):()=>r[e]:e.bind(r,r);let o;W(t)?o=t:(o=t.handler,n=t);const i=Tn(this),l=ji(s,o.bind(r),n);return i(),l}function Bi(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,dn=e=>e&&(e.disabled||e.disabled===""),Ks=e=>e&&(e.defer||e.defer===""),Ws=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Gs=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Gr=(e,t)=>{const n=e&&e.to;return de(n)?t?t(n):null:n},ki={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,u){const{mc:a,pc:f,pbc:p,o:{insert:m,querySelector:g,createText:b,createComment:E}}=u,O=dn(t.props);let{shapeFlag:C,children:N,dynamicChildren:P}=t;if(e==null){const M=t.el=b(""),X=t.anchor=b("");m(M,n,r),m(X,n,r);const k=(U,ee)=>{C&16&&a(N,U,ee,s,o,i,l,c)},V=()=>{const U=t.target=Gr(t.props,g),ee=Vi(U,t,b,m);U&&(i!=="svg"&&Ws(U)?i="svg":i!=="mathml"&&Gs(U)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(U),O||(k(U,ee),kn(t,!1)))};O&&(k(n,X),kn(t,!0)),Ks(t.props)?(t.el.__isMounted=!1,ve(()=>{V(),delete t.el.__isMounted},o)):V()}else{if(Ks(t.props)&&e.el.__isMounted===!1){ve(()=>{ki.process(e,t,n,r,s,o,i,l,c,u)},o);return}t.el=e.el,t.targetStart=e.targetStart;const M=t.anchor=e.anchor,X=t.target=e.target,k=t.targetAnchor=e.targetAnchor,V=dn(e.props),U=V?n:X,ee=V?M:k;if(i==="svg"||Ws(X)?i="svg":(i==="mathml"||Gs(X))&&(i="mathml"),P?(p(e.dynamicChildren,P,U,s,o,i,l),Cs(e,t,!0)):c||f(e,t,U,ee,s,o,i,l,!1),O)V?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Mn(t,n,M,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const ue=t.target=Gr(t.props,g);ue&&Mn(t,ue,null,u,0)}else V&&Mn(t,X,k,u,1);kn(t,O)}},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetStart:u,targetAnchor:a,target:f,props:p}=e;if(f&&(s(u),s(a)),o&&s(c),i&16){const m=o||!dn(p);for(let g=0;ghn(g,t&&(q(t)?t[b]:t),n,r,s));return}if(Gt(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&hn(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?gr(r.component):r.el,i=s?null:o,{i:l,r:c}=e,u=t&&t.r,a=l.refs===se?l.refs={}:l.refs,f=l.setupState,p=Z(f),m=f===se?ni:g=>ne(p,g);if(u!=null&&u!==c){if(zs(t),de(u))a[u]=null,m(u)&&(f[u]=null);else if(ce(u)){u.value=null;const g=t;g.k&&(a[g.k]=null)}}if(W(c))xn(c,l,12,[i,a]);else{const g=de(c),b=ce(c);if(g||b){const E=()=>{if(e.f){const O=g?m(c)?f[c]:a[c]:c.value;if(s)q(O)&&ds(O,o);else if(q(O))O.includes(o)||O.push(o);else if(g)a[c]=[o],m(c)&&(f[c]=a[c]);else{const C=[o];c.value=C,e.k&&(a[e.k]=C)}}else g?(a[c]=i,m(c)&&(f[c]=i)):b&&(c.value=i,e.k&&(a[e.k]=i))};if(i){const O=()=>{E(),Yn.delete(e)};O.id=-1,Yn.set(e,O),ve(O,n)}else zs(e),E()}}}function zs(e){const t=Yn.get(e);t&&(t.flags|=8,Yn.delete(e))}ar().requestIdleCallback;ar().cancelIdleCallback;const Gt=e=>!!e.type.__asyncLoader,$i=e=>e.type.__isKeepAlive;function sa(e,t){Ki(e,"a",t)}function oa(e,t){Ki(e,"da",t)}function Ki(e,t,n=Te){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(hr(t,r,n),n){let s=n.parent;for(;s&&s.parent;)$i(s.parent.vnode)&&ia(r,t,n,s),s=s.parent}}function ia(e,t,n,r){const s=hr(t,e,r,!0);Wi(()=>{ds(r[t],s)},n)}function hr(e,t,n=Te,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{ht();const l=Tn(n),c=lt(t,n,e,i);return l(),pt(),c});return r?s.unshift(o):s.push(o),o}}const _t=e=>(t,n=Te)=>{(!An||e==="sp")&&hr(e,(...r)=>t(...r),n)},la=_t("bm"),ca=_t("m"),aa=_t("bu"),ua=_t("u"),fa=_t("bum"),Wi=_t("um"),da=_t("sp"),ha=_t("rtg"),pa=_t("rtc");function ma(e,t=Te){hr("ec",e,t)}const ga=Symbol.for("v-ndc");function Oh(e,t,n,r){let s;const o=n,i=q(e);if(i||de(e)){const l=i&&it(e);let c=!1,u=!1;l&&(c=!je(e),u=mt(e),e=ur(e)),s=new Array(e.length);for(let a=0,f=e.length;at(l,c,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let c=0,u=l.length;c0;return er(),nr(Fe,null,[Ce("slot",n,r)],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),er();const i=o&&Gi(o(n)),l=n.key||i&&i.key,c=nr(Fe,{key:(l&&!yt(l)?l:`_${t}`)+(!i&&r?"_fb":"")},i||[],i&&e._===1?64:-2);return c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),o&&o._c&&(o._d=!0),c}function Gi(e){return e.some(t=>Rn(t)?!(t.type===gt||t.type===Fe&&!Gi(t.children)):!0)?e:null}const zr=e=>e?hl(e)?gr(e):zr(e.parent):null,pn=Se(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=>zr(e.parent),$root:e=>zr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ji(e),$forceUpdate:e=>e.f||(e.f=()=>{As(e.update)}),$nextTick:e=>e.n||(e.n=Rs.bind(e.proxy)),$watch:e=>ea.bind(e)}),Pr=(e,t)=>e!==se&&!e.__isScriptSetup&&ne(e,t),ya={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,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 r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(Pr(r,t))return i[t]=1,r[t];if(s!==se&&ne(s,t))return i[t]=2,s[t];if(ne(o,t))return i[t]=3,o[t];if(n!==se&&ne(n,t))return i[t]=4,n[t];Jr&&(i[t]=0)}}const u=pn[t];let a,f;if(u)return t==="$attrs"&&be(e.attrs,"get",""),u(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==se&&ne(n,t))return i[t]=4,n[t];if(f=c.config.globalProperties,ne(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return Pr(s,t)?(s[t]=n,!0):r!==se&&ne(r,t)?(r[t]=n,!0):ne(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:o,type:i}},l){let c;return!!(n[l]||e!==se&&l[0]!=="$"&&ne(e,l)||Pr(t,l)||ne(o,l)||ne(r,l)||ne(pn,l)||ne(s.config.globalProperties,l)||(c=i.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ne(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Js(e){return q(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Jr=!0;function _a(e){const t=Ji(e),n=e.proxy,r=e.ctx;Jr=!1,t.beforeCreate&&Xs(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:u,created:a,beforeMount:f,mounted:p,beforeUpdate:m,updated:g,activated:b,deactivated:E,beforeDestroy:O,beforeUnmount:C,destroyed:N,unmounted:P,render:M,renderTracked:X,renderTriggered:k,errorCaptured:V,serverPrefetch:U,expose:ee,inheritAttrs:ue,components:ye,directives:pe,filters:Re}=t;if(u&&ba(u,r,null),i)for(const K in i){const z=i[K];W(z)&&(r[K]=z.bind(n))}if(s){const K=s.call(n,n);le(K)&&(e.data=On(K))}if(Jr=!0,o)for(const K in o){const z=o[K],Be=W(z)?z.bind(n,n):W(z.get)?z.get.bind(n,n):ot,ze=!W(z)&&W(z.set)?z.set.bind(n):ot,me=Me({get:Be,set:ze});Object.defineProperty(r,K,{enumerable:!0,configurable:!0,get:()=>me.value,set:fe=>me.value=fe})}if(l)for(const K in l)zi(l[K],r,n,K);if(c){const K=W(c)?c.call(n):c;Reflect.ownKeys(K).forEach(z=>{Hn(z,K[z])})}a&&Xs(a,e,"c");function J(K,z){q(z)?z.forEach(Be=>K(Be.bind(n))):z&&K(z.bind(n))}if(J(la,f),J(ca,p),J(aa,m),J(ua,g),J(sa,b),J(oa,E),J(ma,V),J(pa,X),J(ha,k),J(fa,C),J(Wi,P),J(da,U),q(ee))if(ee.length){const K=e.exposed||(e.exposed={});ee.forEach(z=>{Object.defineProperty(K,z,{get:()=>n[z],set:Be=>n[z]=Be,enumerable:!0})})}else e.exposed||(e.exposed={});M&&e.render===ot&&(e.render=M),ue!=null&&(e.inheritAttrs=ue),ye&&(e.components=ye),pe&&(e.directives=pe),U&&qi(e)}function ba(e,t,n=ot){q(e)&&(e=Xr(e));for(const r in e){const s=e[r];let o;le(s)?"default"in s?o=ke(s.from||r,s.default,!0):o=ke(s.from||r):o=ke(s),ce(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function Xs(e,t,n){lt(q(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function zi(e,t,n,r){let s=r.includes(".")?Bi(n,r):()=>n[r];if(de(e)){const o=t[e];W(o)&&fn(s,o)}else if(W(e))fn(s,e.bind(n));else if(le(e))if(q(e))e.forEach(o=>zi(o,t,n,r));else{const o=W(e.handler)?e.handler.bind(n):t[e.handler];W(o)&&fn(s,o,e)}}function Ji(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>Zn(c,u,i,!0)),Zn(c,t,i)),le(t)&&o.set(t,c),c}function Zn(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&Zn(e,o,n,!0),s&&s.forEach(i=>Zn(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Ea[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Ea={data:Qs,props:Ys,emits:Ys,methods:ln,computed:ln,beforeCreate:Ae,created:Ae,beforeMount:Ae,mounted:Ae,beforeUpdate:Ae,updated:Ae,beforeDestroy:Ae,beforeUnmount:Ae,destroyed:Ae,unmounted:Ae,activated:Ae,deactivated:Ae,errorCaptured:Ae,serverPrefetch:Ae,components:ln,directives:ln,watch:Sa,provide:Qs,inject:wa};function Qs(e,t){return t?e?function(){return Se(W(e)?e.call(this,this):e,W(t)?t.call(this,this):t)}:t:e}function wa(e,t){return ln(Xr(e),Xr(t))}function Xr(e){if(q(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${xt(t)}Modifiers`]||e[`${jt(t)}Modifiers`];function Oa(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||se;let s=n;const o=t.startsWith("update:"),i=o&&va(r,t.slice(7));i&&(i.trim&&(s=n.map(a=>de(a)?a.trim():a)),i.number&&(s=n.map(hs)));let l,c=r[l=vr(t)]||r[l=vr(xt(t))];!c&&o&&(c=r[l=vr(jt(t))]),c&<(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,lt(u,e,6,s)}}const xa=new WeakMap;function Qi(e,t,n=!1){const r=n?xa:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!W(e)){const c=u=>{const a=Qi(u,t,!0);a&&(l=!0,Se(i,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(le(e)&&r.set(e,null),null):(q(o)?o.forEach(c=>i[c]=null):Se(i,o),le(e)&&r.set(e,i),i)}function pr(e,t){return!e||!or(t)?!1:(t=t.slice(2).replace(/Once$/,""),ne(e,t[0].toLowerCase()+t.slice(1))||ne(e,jt(t))||ne(e,t))}function Zs(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:a,props:f,data:p,setupState:m,ctx:g,inheritAttrs:b}=e,E=Qn(e);let O,C;try{if(n.shapeFlag&4){const P=s||r,M=P;O=st(u.call(M,P,a,f,m,p,g)),C=l}else{const P=t;O=st(P.length>1?P(f,{attrs:l,slots:i,emit:c}):P(f,null)),C=t.props?l:Ta(l)}}catch(P){mn.length=0,dr(P,e,1),O=Ce(gt)}let N=O;if(C&&b!==!1){const P=Object.keys(C),{shapeFlag:M}=N;P.length&&M&7&&(o&&P.some(fs)&&(C=Ca(C,o)),N=Jt(N,C,!1,!0))}return n.dirs&&(N=Jt(N,null,!1,!0),N.dirs=N.dirs?N.dirs.concat(n.dirs):n.dirs),n.transition&&vs(N,n.transition),O=N,Qn(E),O}const Ta=e=>{let t;for(const n in e)(n==="class"||n==="style"||or(n))&&((t||(t={}))[n]=e[n]);return t},Ca=(e,t)=>{const n={};for(const r in e)(!fs(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Pa(e,t,n){const{props:r,children:s,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 r?eo(r,i,u):!!i;if(c&8){const a=t.dynamicProps;for(let f=0;fObject.create(Yi),el=e=>Object.getPrototypeOf(e)===Yi;function Ia(e,t,n,r=!1){const s={},o=Zi();e.propsDefaults=Object.create(null),tl(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:Ci(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function Da(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=Z(s),[c]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const a=e.vnode.dynamicProps;for(let f=0;f{c=!0;const[p,m]=nl(f,t,!0);Se(i,p),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!c)return le(e)&&r.set(e,$t),$t;if(q(o))for(let a=0;ae==="_"||e==="_ctx"||e==="$stable",Ts=e=>q(e)?e.map(st):[st(e)],Fa=(e,t,n)=>{if(t._n)return t;const r=Xc((...s)=>Ts(t(...s)),n);return r._c=!1,r},rl=(e,t,n)=>{const r=e._ctx;for(const s in e){if(xs(s))continue;const o=e[s];if(W(o))t[s]=Fa(s,o,r);else if(o!=null){const i=Ts(o);t[s]=()=>i}}},sl=(e,t)=>{const n=Ts(t);e.slots.default=()=>n},ol=(e,t,n)=>{for(const r in t)(n||!xs(r))&&(e[r]=t[r])},Ma=(e,t,n)=>{const r=e.slots=Zi();if(e.vnode.shapeFlag&32){const s=t._;s?(ol(r,t,n),n&&ci(r,"_",s,!0)):rl(t,r)}else t&&sl(e,t)},Ua=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=se;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:ol(s,t,n):(o=!t.$stable,rl(t,s)),i=t}else t&&(sl(e,t),i={default:1});if(o)for(const l in s)!xs(l)&&i[l]==null&&delete s[l]},ve=Va;function ja(e){return Ba(e)}function Ba(e,t){const n=ar();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:a,parentNode:f,nextSibling:p,setScopeId:m=ot,insertStaticContent:g}=e,b=(d,h,y,w=null,A=null,S=null,I=void 0,T=null,x=!!h.dynamicChildren)=>{if(d===h)return;d&&!rn(d,h)&&(w=R(d),fe(d,A,S,!0),d=null),h.patchFlag===-2&&(x=!1,h.dynamicChildren=null);const{type:v,ref:H,shapeFlag:L}=h;switch(v){case mr:E(d,h,y,w);break;case gt:O(d,h,y,w);break;case Vn:d==null&&C(h,y,w,I);break;case Fe:ye(d,h,y,w,A,S,I,T,x);break;default:L&1?M(d,h,y,w,A,S,I,T,x):L&6?pe(d,h,y,w,A,S,I,T,x):(L&64||L&128)&&v.process(d,h,y,w,A,S,I,T,x,j)}H!=null&&A?hn(H,d&&d.ref,S,h||d,!h):H==null&&d&&d.ref!=null&&hn(d.ref,null,S,d,!0)},E=(d,h,y,w)=>{if(d==null)r(h.el=l(h.children),y,w);else{const A=h.el=d.el;h.children!==d.children&&u(A,h.children)}},O=(d,h,y,w)=>{d==null?r(h.el=c(h.children||""),y,w):h.el=d.el},C=(d,h,y,w)=>{[d.el,d.anchor]=g(d.children,h,y,w,d.el,d.anchor)},N=({el:d,anchor:h},y,w)=>{let A;for(;d&&d!==h;)A=p(d),r(d,y,w),d=A;r(h,y,w)},P=({el:d,anchor:h})=>{let y;for(;d&&d!==h;)y=p(d),s(d),d=y;s(h)},M=(d,h,y,w,A,S,I,T,x)=>{if(h.type==="svg"?I="svg":h.type==="math"&&(I="mathml"),d==null)X(h,y,w,A,S,I,T,x);else{const v=d.el&&d.el._isVueCE?d.el:null;try{v&&v._beginPatch(),U(d,h,A,S,I,T,x)}finally{v&&v._endPatch()}}},X=(d,h,y,w,A,S,I,T)=>{let x,v;const{props:H,shapeFlag:L,transition:B,dirs:$}=d;if(x=d.el=i(d.type,S,H&&H.is,H),L&8?a(x,d.children):L&16&&V(d.children,x,null,w,A,Nr(d,S),I,T),$&&Tt(d,null,w,"created"),k(x,d,d.scopeId,I,w),H){for(const oe in H)oe!=="value"&&!cn(oe)&&o(x,oe,null,H[oe],S,w);"value"in H&&o(x,"value",null,H.value,S),(v=H.onVnodeBeforeMount)&&et(v,w,d)}$&&Tt(d,null,w,"beforeMount");const Y=Ha(A,B);Y&&B.beforeEnter(x),r(x,h,y),((v=H&&H.onVnodeMounted)||Y||$)&&ve(()=>{v&&et(v,w,d),Y&&B.enter(x),$&&Tt(d,null,w,"mounted")},A)},k=(d,h,y,w,A)=>{if(y&&m(d,y),w)for(let S=0;S{for(let v=x;v{const T=h.el=d.el;let{patchFlag:x,dynamicChildren:v,dirs:H}=h;x|=d.patchFlag&16;const L=d.props||se,B=h.props||se;let $;if(y&&Ct(y,!1),($=B.onVnodeBeforeUpdate)&&et($,y,h,d),H&&Tt(h,d,y,"beforeUpdate"),y&&Ct(y,!0),(L.innerHTML&&B.innerHTML==null||L.textContent&&B.textContent==null)&&a(T,""),v?ee(d.dynamicChildren,v,T,y,w,Nr(h,A),S):I||z(d,h,T,null,y,w,Nr(h,A),S,!1),x>0){if(x&16)ue(T,L,B,y,A);else if(x&2&&L.class!==B.class&&o(T,"class",null,B.class,A),x&4&&o(T,"style",L.style,B.style,A),x&8){const Y=h.dynamicProps;for(let oe=0;oe{$&&et($,y,h,d),H&&Tt(h,d,y,"updated")},w)},ee=(d,h,y,w,A,S,I)=>{for(let T=0;T{if(h!==y){if(h!==se)for(const S in h)!cn(S)&&!(S in y)&&o(d,S,h[S],null,A,w);for(const S in y){if(cn(S))continue;const I=y[S],T=h[S];I!==T&&S!=="value"&&o(d,S,T,I,A,w)}"value"in y&&o(d,"value",h.value,y.value,A)}},ye=(d,h,y,w,A,S,I,T,x)=>{const v=h.el=d?d.el:l(""),H=h.anchor=d?d.anchor:l("");let{patchFlag:L,dynamicChildren:B,slotScopeIds:$}=h;$&&(T=T?T.concat($):$),d==null?(r(v,y,w),r(H,y,w),V(h.children||[],y,H,A,S,I,T,x)):L>0&&L&64&&B&&d.dynamicChildren&&d.dynamicChildren.length===B.length?(ee(d.dynamicChildren,B,y,A,S,I,T),(h.key!=null||A&&h===A.subTree)&&Cs(d,h,!0)):z(d,h,y,H,A,S,I,T,x)},pe=(d,h,y,w,A,S,I,T,x)=>{h.slotScopeIds=T,d==null?h.shapeFlag&512?A.ctx.activate(h,y,w,I,x):Re(h,y,w,A,S,I,x):Ve(d,h,x)},Re=(d,h,y,w,A,S,I)=>{const T=d.component=Xa(d,w,A);if($i(d)&&(T.ctx.renderer=j),Qa(T,!1,I),T.asyncDep){if(A&&A.registerDep(T,J,I),!d.el){const x=T.subTree=Ce(gt);O(null,x,h,y),d.placeholder=x.el}}else J(T,d,h,y,A,S,I)},Ve=(d,h,y)=>{const w=h.component=d.component;if(Pa(d,h,y))if(w.asyncDep&&!w.asyncResolved){K(w,h,y);return}else w.next=h,w.update();else h.el=d.el,w.vnode=h},J=(d,h,y,w,A,S,I)=>{const T=()=>{if(d.isMounted){let{next:L,bu:B,u:$,parent:Y,vnode:oe}=d;{const Ye=il(d);if(Ye){L&&(L.el=oe.el,K(d,L,I)),Ye.asyncDep.then(()=>{d.isUnmounted||T()});return}}let re=L,Pe;Ct(d,!1),L?(L.el=oe.el,K(d,L,I)):L=oe,B&&Bn(B),(Pe=L.props&&L.props.onVnodeBeforeUpdate)&&et(Pe,Y,L,oe),Ct(d,!0);const Ne=Zs(d),Qe=d.subTree;d.subTree=Ne,b(Qe,Ne,f(Qe.el),R(Qe),d,A,S),L.el=Ne.el,re===null&&Na(d,Ne.el),$&&ve($,A),(Pe=L.props&&L.props.onVnodeUpdated)&&ve(()=>et(Pe,Y,L,oe),A)}else{let L;const{el:B,props:$}=h,{bm:Y,m:oe,parent:re,root:Pe,type:Ne}=d,Qe=Gt(h);Ct(d,!1),Y&&Bn(Y),!Qe&&(L=$&&$.onVnodeBeforeMount)&&et(L,re,h),Ct(d,!0);{Pe.ce&&Pe.ce._def.shadowRoot!==!1&&Pe.ce._injectChildStyle(Ne);const Ye=d.subTree=Zs(d);b(null,Ye,y,w,d,A,S),h.el=Ye.el}if(oe&&ve(oe,A),!Qe&&(L=$&&$.onVnodeMounted)){const Ye=h;ve(()=>et(L,re,Ye),A)}(h.shapeFlag&256||re&&Gt(re.vnode)&&re.vnode.shapeFlag&256)&&d.a&&ve(d.a,A),d.isMounted=!0,h=y=w=null}};d.scope.on();const x=d.effect=new mi(T);d.scope.off();const v=d.update=x.run.bind(x),H=d.job=x.runIfDirty.bind(x);H.i=d,H.id=d.uid,x.scheduler=()=>As(H),Ct(d,!0),v()},K=(d,h,y)=>{h.component=d;const w=d.vnode.props;d.vnode=h,d.next=null,Da(d,h.props,w,y),Ua(d,h.children,y),ht(),$s(d),pt()},z=(d,h,y,w,A,S,I,T,x=!1)=>{const v=d&&d.children,H=d?d.shapeFlag:0,L=h.children,{patchFlag:B,shapeFlag:$}=h;if(B>0){if(B&128){ze(v,L,y,w,A,S,I,T,x);return}else if(B&256){Be(v,L,y,w,A,S,I,T,x);return}}$&8?(H&16&&He(v,A,S),L!==v&&a(y,L)):H&16?$&16?ze(v,L,y,w,A,S,I,T,x):He(v,A,S,!0):(H&8&&a(y,""),$&16&&V(L,y,w,A,S,I,T,x))},Be=(d,h,y,w,A,S,I,T,x)=>{d=d||$t,h=h||$t;const v=d.length,H=h.length,L=Math.min(v,H);let B;for(B=0;BH?He(d,A,S,!0,!1,L):V(h,y,w,A,S,I,T,x,L)},ze=(d,h,y,w,A,S,I,T,x)=>{let v=0;const H=h.length;let L=d.length-1,B=H-1;for(;v<=L&&v<=B;){const $=d[v],Y=h[v]=x?Rt(h[v]):st(h[v]);if(rn($,Y))b($,Y,y,null,A,S,I,T,x);else break;v++}for(;v<=L&&v<=B;){const $=d[L],Y=h[B]=x?Rt(h[B]):st(h[B]);if(rn($,Y))b($,Y,y,null,A,S,I,T,x);else break;L--,B--}if(v>L){if(v<=B){const $=B+1,Y=$B)for(;v<=L;)fe(d[v],A,S,!0),v++;else{const $=v,Y=v,oe=new Map;for(v=Y;v<=B;v++){const Le=h[v]=x?Rt(h[v]):st(h[v]);Le.key!=null&&oe.set(Le.key,v)}let re,Pe=0;const Ne=B-Y+1;let Qe=!1,Ye=0;const tn=new Array(Ne);for(v=0;v=Ne){fe(Le,A,S,!0);continue}let Ze;if(Le.key!=null)Ze=oe.get(Le.key);else for(re=Y;re<=B;re++)if(tn[re-Y]===0&&rn(Le,h[re])){Ze=re;break}Ze===void 0?fe(Le,A,S,!0):(tn[Ze-Y]=v+1,Ze>=Ye?Ye=Ze:Qe=!0,b(Le,h[Ze],y,null,A,S,I,T,x),Pe++)}const js=Qe?ka(tn):$t;for(re=js.length-1,v=Ne-1;v>=0;v--){const Le=Y+v,Ze=h[Le],Bs=h[Le+1],Hs=Le+1{const{el:S,type:I,transition:T,children:x,shapeFlag:v}=d;if(v&6){me(d.component.subTree,h,y,w);return}if(v&128){d.suspense.move(h,y,w);return}if(v&64){I.move(d,h,y,j);return}if(I===Fe){r(S,h,y);for(let L=0;LT.enter(S),A);else{const{leave:L,delayLeave:B,afterLeave:$}=T,Y=()=>{d.ctx.isUnmounted?s(S):r(S,h,y)},oe=()=>{S._isLeaving&&S[ra](!0),L(S,()=>{Y(),$&&$()})};B?B(S,Y,oe):oe()}else r(S,h,y)},fe=(d,h,y,w=!1,A=!1)=>{const{type:S,props:I,ref:T,children:x,dynamicChildren:v,shapeFlag:H,patchFlag:L,dirs:B,cacheIndex:$}=d;if(L===-2&&(A=!1),T!=null&&(ht(),hn(T,null,y,d,!0),pt()),$!=null&&(h.renderCache[$]=void 0),H&256){h.ctx.deactivate(d);return}const Y=H&1&&B,oe=!Gt(d);let re;if(oe&&(re=I&&I.onVnodeBeforeUnmount)&&et(re,h,d),H&6)Xe(d.component,y,w);else{if(H&128){d.suspense.unmount(y,w);return}Y&&Tt(d,null,h,"beforeUnmount"),H&64?d.type.remove(d,h,y,j,w):v&&!v.hasOnce&&(S!==Fe||L>0&&L&64)?He(v,h,y,!1,!0):(S===Fe&&L&384||!A&&H&16)&&He(x,h,y),w&&Je(d)}(oe&&(re=I&&I.onVnodeUnmounted)||Y)&&ve(()=>{re&&et(re,h,d),Y&&Tt(d,null,h,"unmounted")},y)},Je=d=>{const{type:h,el:y,anchor:w,transition:A}=d;if(h===Fe){qe(y,w);return}if(h===Vn){P(d);return}const S=()=>{s(y),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(d.shapeFlag&1&&A&&!A.persisted){const{leave:I,delayLeave:T}=A,x=()=>I(y,S);T?T(d.el,S,x):x()}else S()},qe=(d,h)=>{let y;for(;d!==h;)y=p(d),s(d),d=y;s(h)},Xe=(d,h,y)=>{const{bum:w,scope:A,job:S,subTree:I,um:T,m:x,a:v}=d;no(x),no(v),w&&Bn(w),A.stop(),S&&(S.flags|=8,fe(I,d,h,y)),T&&ve(T,h),ve(()=>{d.isUnmounted=!0},h)},He=(d,h,y,w=!1,A=!1,S=0)=>{for(let I=S;I{if(d.shapeFlag&6)return R(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const h=p(d.anchor||d.el),y=h&&h[Hi];return y?p(y):h};let F=!1;const D=(d,h,y)=>{let w;d==null?h._vnode&&(fe(h._vnode,null,null,!0),w=h._vnode.component):b(h._vnode||null,d,h,null,null,null,y),h._vnode=d,F||(F=!0,$s(w),Fi(),F=!1)},j={p:b,um:fe,m:me,r:Je,mt:Re,mc:V,pc:z,pbc:ee,n:R,o:e};return{render:D,hydrate:void 0,createApp:Aa(D)}}function Nr({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 Ct({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Ha(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Cs(e,t,n=!1){const r=e.children,s=t.children;if(q(r)&&q(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function il(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:il(t)}function no(e){if(e)for(let t=0;te.__isSuspense;function Va(e,t){t&&t.pendingBranch?q(e)?t.effects.push(...e):t.effects.push(e):Jc(e)}const Fe=Symbol.for("v-fgt"),mr=Symbol.for("v-txt"),gt=Symbol.for("v-cmt"),Vn=Symbol.for("v-stc"),mn=[];let Ue=null;function er(e=!1){mn.push(Ue=e?null:[])}function qa(){mn.pop(),Ue=mn[mn.length-1]||null}let Sn=1;function tr(e,t=!1){Sn+=e,e<0&&Ue&&t&&(Ue.hasOnce=!0)}function al(e){return e.dynamicChildren=Sn>0?Ue||$t:null,qa(),Sn>0&&Ue&&Ue.push(e),e}function Th(e,t,n,r,s,o){return al(fl(e,t,n,r,s,o,!0))}function nr(e,t,n,r,s){return al(Ce(e,t,n,r,s,!0))}function Rn(e){return e?e.__v_isVNode===!0:!1}function rn(e,t){return e.type===t.type&&e.key===t.key}const ul=({key:e})=>e??null,qn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?de(e)||ce(e)||W(e)?{i:we,r:e,k:t,f:!!n}:e:null);function fl(e,t=null,n=null,r=0,s=null,o=e===Fe?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ul(t),ref:t&&qn(t),scopeId:Ui,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:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:we};return l?(Ps(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=de(n)?8:16),Sn>0&&!i&&Ue&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Ue.push(c),c}const Ce=$a;function $a(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===ga)&&(e=gt),Rn(e)){const l=Jt(e,t,!0);return n&&Ps(l,n),Sn>0&&!o&&Ue&&(l.shapeFlag&6?Ue[Ue.indexOf(e)]=l:Ue.push(l)),l.patchFlag=-2,l}if(tu(e)&&(e=e.__vccOpts),t){t=Ka(t);let{class:l,style:c}=t;l&&!de(l)&&(t.class=ms(l)),le(c)&&(fr(c)&&!q(c)&&(c=Se({},c)),t.style=ps(c))}const i=de(e)?1:cl(e)?128:ta(e)?64:le(e)?4:W(e)?2:0;return fl(e,t,n,r,s,i,o,!0)}function Ka(e){return e?fr(e)||el(e)?Se({},e):e:null}function Jt(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?Ga(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&ul(u),ref:t&&t.ref?n&&o?q(o)?o.concat(qn(t)):[o,qn(t)]:qn(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!==Fe?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&&Jt(e.ssContent),ssFallback:e.ssFallback&&Jt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&vs(a,c.clone(a)),a}function Wa(e=" ",t=0){return Ce(mr,null,e,t)}function Ch(e,t){const n=Ce(Vn,null,e);return n.staticCount=t,n}function Ph(e="",t=!1){return t?(er(),nr(gt,null,e)):Ce(gt,null,e)}function st(e){return e==null||typeof e=="boolean"?Ce(gt):q(e)?Ce(Fe,null,e.slice()):Rn(e)?Rt(e):Ce(mr,null,String(e))}function Rt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Jt(e)}function Ps(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(q(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Ps(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!el(t)?t._ctx=we:s===3&&we&&(we.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else W(t)?(t={default:t,_ctx:we},n=32):(t=String(t),r&64?(n=16,t=[Wa(t)]):n=8);e.children=t,e.shapeFlag|=n}function Ga(...e){const t={};for(let n=0;nTe||we;let rr,Yr;{const e=ar(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};rr=t("__VUE_INSTANCE_SETTERS__",n=>Te=n),Yr=t("__VUE_SSR_SETTERS__",n=>An=n)}const Tn=e=>{const t=Te;return rr(e),e.scope.on(),()=>{e.scope.off(),rr(t)}},ro=()=>{Te&&Te.scope.off(),rr(null)};function hl(e){return e.vnode.shapeFlag&4}let An=!1;function Qa(e,t=!1,n=!1){t&&Yr(t);const{props:r,children:s}=e.vnode,o=hl(e);Ia(e,r,o,t),Ma(e,s,n||t);const i=o?Ya(e,t):void 0;return t&&Yr(!1),i}function Ya(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,ya);const{setup:r}=n;if(r){ht();const s=e.setupContext=r.length>1?eu(e):null,o=Tn(e),i=xn(r,e,0,[e.props,s]),l=si(i);if(pt(),o(),(l||e.sp)&&!Gt(e)&&qi(e),l){if(i.then(ro,ro),t)return i.then(c=>{so(e,c)}).catch(c=>{dr(c,e,0)});e.asyncDep=i}else so(e,i)}else pl(e)}function so(e,t,n){W(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:le(t)&&(e.setupState=Ni(t)),pl(e)}function pl(e,t,n){const r=e.type;e.render||(e.render=r.render||ot);{const s=Tn(e);ht();try{_a(e)}finally{pt(),s()}}}const Za={get(e,t){return be(e,"get",""),e[t]}};function eu(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Za),slots:e.slots,emit:e.emit,expose:t}}function gr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ni(Ss(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in pn)return pn[n](e)},has(t,n){return n in t||n in pn}})):e.proxy}function tu(e){return W(e)&&"__vccOpts"in e}const Me=(e,t)=>$c(e,t,An);function ml(e,t,n){try{tr(-1);const r=arguments.length;return r===2?le(t)&&!q(t)?Rn(t)?Ce(e,null,[t]):Ce(e,t):Ce(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Rn(n)&&(n=[n]),Ce(e,t,n))}finally{tr(1)}}const nu="3.5.26";let Zr;const oo=typeof window<"u"&&window.trustedTypes;if(oo)try{Zr=oo.createPolicy("vue",{createHTML:e=>e})}catch{}const gl=Zr?e=>Zr.createHTML(e):e=>e,ru="http://www.w3.org/2000/svg",su="http://www.w3.org/1998/Math/MathML",ut=typeof document<"u"?document:null,io=ut&&ut.createElement("template"),ou={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?ut.createElementNS(ru,e):t==="mathml"?ut.createElementNS(su,e):n?ut.createElement(e,{is:n}):ut.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>ut.createTextNode(e),createComment:e=>ut.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ut.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{io.innerHTML=gl(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=io.content;if(r==="svg"||r==="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]}},iu=Symbol("_vtc");function lu(e,t,n){const r=e[iu];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const lo=Symbol("_vod"),cu=Symbol("_vsh"),au=Symbol(""),uu=/(?:^|;)\s*display\s*:/;function fu(e,t,n){const r=e.style,s=de(n);let o=!1;if(n&&!s){if(t)if(de(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&$n(r,l,"")}else for(const i in t)n[i]==null&&$n(r,i,"");for(const i in n)i==="display"&&(o=!0),$n(r,i,n[i])}else if(s){if(t!==n){const i=r[au];i&&(n+=";"+i),r.cssText=n,o=uu.test(n)}}else t&&e.removeAttribute("style");lo in e&&(e[lo]=o?r.display:"",e[cu]&&(r.display="none"))}const co=/\s*!important$/;function $n(e,t,n){if(q(n))n.forEach(r=>$n(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=du(e,t);co.test(n)?e.setProperty(jt(r),n.replace(co,""),"important"):e[r]=n}}const ao=["Webkit","Moz","ms"],Ir={};function du(e,t){const n=Ir[t];if(n)return n;let r=xt(t);if(r!=="filter"&&r in e)return Ir[t]=r;r=li(r);for(let s=0;sDr||(gu.then(()=>Dr=0),Dr=Date.now());function _u(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;lt(bu(r,n.value),t,5,[r])};return n.value=e,n.attached=yu(),n}function bu(e,t){if(q(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const go=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Eu=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?lu(e,r,i):t==="style"?fu(e,n,r):or(t)?fs(t)||pu(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):wu(e,t,r,i))?(ho(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&fo(e,t,r,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!de(r))?ho(e,xt(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),fo(e,t,r,i))};function wu(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&go(t)&&W(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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return go(t)&&de(n)?!1:t in e}const yo=e=>{const t=e.props["onUpdate:modelValue"]||!1;return q(t)?n=>Bn(t,n):t};function Su(e){e.target.composing=!0}function _o(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Lr=Symbol("_assign");function bo(e,t,n){return t&&(e=e.trim()),n&&(e=hs(e)),e}const Nh={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Lr]=yo(s);const o=r||s.props&&s.props.type==="number";Vt(e,t?"change":"input",i=>{i.target.composing||e[Lr](bo(e.value,n,o))}),(n||o)&&Vt(e,"change",()=>{e.value=bo(e.value,n,o)}),t||(Vt(e,"compositionstart",Su),Vt(e,"compositionend",_o),Vt(e,"change",_o))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Lr]=yo(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?hs(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},Ru=["ctrl","shift","alt","meta"],Au={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Ru.some(n=>e[`${n}Key`]&&!t.includes(n))},Ih=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const t=Ou().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Cu(r);if(!s)return;const o=t._component;!W(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,Tu(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t});function Tu(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Cu(e){return de(e)?document.querySelector(e):e}let yl;const yr=e=>yl=e,_l=Symbol();function es(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var gn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(gn||(gn={}));function Pu(){const e=hi(!0),t=e.run(()=>Lt({}));let n=[],r=[];const s=Ss({install(o){yr(s),s._a=o,o.provide(_l,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const bl=()=>{};function wo(e,t,n,r=bl){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&pi()&&gc(s),s}function Ht(e,...t){e.forEach(n=>{n(...t)})}const Nu=e=>e(),So=Symbol(),Fr=Symbol();function ts(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];es(s)&&es(r)&&e.hasOwnProperty(n)&&!ce(r)&&!it(r)?e[n]=ts(s,r):e[n]=r}return e}const Iu=Symbol();function Du(e){return!es(e)||!Object.prototype.hasOwnProperty.call(e,Iu)}const{assign:Et}=Object;function Lu(e){return!!(ce(e)&&e.effect)}function Fu(e,t,n,r){const{state:s,actions:o,getters:i}=t,l=n.state.value[e];let c;function u(){l||(n.state.value[e]=s?s():{});const a=Bc(n.state.value[e]);return Et(a,o,Object.keys(i||{}).reduce((f,p)=>(f[p]=Ss(Me(()=>{yr(n);const m=n._s.get(e);return i[p].call(m,m)})),f),{}))}return c=El(e,u,t,n,r,!0),c}function El(e,t,n={},r,s,o){let i;const l=Et({actions:{}},n),c={deep:!0};let u,a,f=new Set,p=new Set,m;const g=r.state.value[e];!o&&!g&&(r.state.value[e]={}),Lt({});let b;function E(V){let U;u=a=!1,typeof V=="function"?(V(r.state.value[e]),U={type:gn.patchFunction,storeId:e,events:m}):(ts(r.state.value[e],V),U={type:gn.patchObject,payload:V,storeId:e,events:m});const ee=b=Symbol();Rs().then(()=>{b===ee&&(u=!0)}),a=!0,Ht(f,U,r.state.value[e])}const O=o?function(){const{state:U}=n,ee=U?U():{};this.$patch(ue=>{Et(ue,ee)})}:bl;function C(){i.stop(),f.clear(),p.clear(),r._s.delete(e)}const N=(V,U="")=>{if(So in V)return V[Fr]=U,V;const ee=function(){yr(r);const ue=Array.from(arguments),ye=new Set,pe=new Set;function Re(K){ye.add(K)}function Ve(K){pe.add(K)}Ht(p,{args:ue,name:ee[Fr],store:M,after:Re,onError:Ve});let J;try{J=V.apply(this&&this.$id===e?this:M,ue)}catch(K){throw Ht(pe,K),K}return J instanceof Promise?J.then(K=>(Ht(ye,K),K)).catch(K=>(Ht(pe,K),Promise.reject(K))):(Ht(ye,J),J)};return ee[So]=!0,ee[Fr]=U,ee},P={_p:r,$id:e,$onAction:wo.bind(null,p),$patch:E,$reset:O,$subscribe(V,U={}){const ee=wo(f,V,U.detached,()=>ue()),ue=i.run(()=>fn(()=>r.state.value[e],ye=>{(U.flush==="sync"?a:u)&&V({storeId:e,type:gn.direct,events:m},ye)},Et({},c,U)));return ee},$dispose:C},M=On(P);r._s.set(e,M);const k=(r._a&&r._a.runWithContext||Nu)(()=>r._e.run(()=>(i=hi()).run(()=>t({action:N}))));for(const V in k){const U=k[V];if(ce(U)&&!Lu(U)||it(U))o||(g&&Du(U)&&(ce(U)?U.value=g[V]:ts(U,g[V])),r.state.value[e][V]=U);else if(typeof U=="function"){const ee=N(U,V);k[V]=ee,l.actions[V]=U}}return Et(M,k),Et(Z(M),k),Object.defineProperty(M,"$state",{get:()=>r.state.value[e],set:V=>{E(U=>{Et(U,V)})}}),r._p.forEach(V=>{Et(M,i.run(()=>V({store:M,app:r._a,pinia:r,options:l})))}),g&&o&&n.hydrate&&n.hydrate(M.$state,g),u=!0,a=!0,M}function Mu(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,l){const c=Qc();return i=i||(c?ke(_l,null):null),i&&yr(i),i=yl,i._s.has(e)||(s?El(e,t,r,i):Fu(e,r,i)),i._s.get(e)}return o.$id=e,o}function Dh(e){const t=Z(e),n={};for(const r in t){const s=t[r];s.effect?n[r]=Me({get:()=>e[r],set(o){e[r]=o}}):(ce(s)||it(s))&&(n[r]=Vc(e,r))}return n}const Uu="modulepreload",ju=function(e){return"/"+e},Ro={},tt=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let c=function(u){return Promise.all(u.map(a=>Promise.resolve(a).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=c(n.map(u=>{if(u=ju(u),u in Ro)return;Ro[u]=!0;const a=u.endsWith(".css"),f=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const p=document.createElement("link");if(p.rel=a?"stylesheet":Uu,a||(p.as="script"),p.crossOrigin="",p.href=u,l&&p.setAttribute("nonce",l),document.head.appendChild(p),a)return new Promise((m,g)=>{p.addEventListener("load",m),p.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})};const qt=typeof document<"u";function wl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Bu(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&wl(e.default)}const te=Object.assign;function Mr(e,t){const n={};for(const r in t){const s=t[r];n[r]=We(s)?s.map(e):e(s)}return n}const yn=()=>{},We=Array.isArray;function Ao(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const Sl=/#/g,Hu=/&/g,ku=/\//g,Vu=/=/g,qu=/\?/g,Rl=/\+/g,$u=/%5B/g,Ku=/%5D/g,Al=/%5E/g,Wu=/%60/g,vl=/%7B/g,Gu=/%7C/g,Ol=/%7D/g,zu=/%20/g;function Ns(e){return e==null?"":encodeURI(""+e).replace(Gu,"|").replace($u,"[").replace(Ku,"]")}function Ju(e){return Ns(e).replace(vl,"{").replace(Ol,"}").replace(Al,"^")}function ns(e){return Ns(e).replace(Rl,"%2B").replace(zu,"+").replace(Sl,"%23").replace(Hu,"%26").replace(Wu,"`").replace(vl,"{").replace(Ol,"}").replace(Al,"^")}function Xu(e){return ns(e).replace(Vu,"%3D")}function Qu(e){return Ns(e).replace(Sl,"%23").replace(qu,"%3F")}function Yu(e){return Qu(e).replace(ku,"%2F")}function vn(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Zu=/\/$/,ef=e=>e.replace(Zu,"");function Ur(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return c=l>=0&&c>l?-1:c,c>=0&&(r=t.slice(0,c),o=t.slice(c,l>0?l:t.length),s=e(o.slice(1))),l>=0&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=sf(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:vn(i)}}function tf(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function vo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function nf(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&Xt(t.matched[r],n.matched[s])&&xl(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Xt(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function xl(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!rf(e[n],t[n]))return!1;return!0}function rf(e,t){return We(e)?Oo(e,t):We(t)?Oo(t,e):e?.valueOf()===t?.valueOf()}function Oo(e,t){return We(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function sf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const bt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let rs=(function(e){return e.pop="pop",e.push="push",e})({}),jr=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function of(e){if(!e)if(qt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),ef(e)}const lf=/^[^#]+#/;function cf(e,t){return e.replace(lf,"#")+t}function af(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const _r=()=>({left:window.scrollX,top:window.scrollY});function uf(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=af(s,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 xo(e,t){return(history.state?history.state.position-t:-1)+e}const ss=new Map;function ff(e,t){ss.set(e,t)}function df(e){const t=ss.get(e);return ss.delete(e),t}function hf(e){return typeof e=="string"||e&&typeof e=="object"}function Tl(e){return typeof e=="string"||typeof e=="symbol"}let ae=(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 Cl=Symbol("");ae.MATCHER_NOT_FOUND+"",ae.NAVIGATION_GUARD_REDIRECT+"",ae.NAVIGATION_ABORTED+"",ae.NAVIGATION_CANCELLED+"",ae.NAVIGATION_DUPLICATED+"";function Qt(e,t){return te(new Error,{type:e,[Cl]:!0},t)}function at(e,t){return e instanceof Error&&Cl in e&&(t==null||!!(e.type&t))}const pf=["params","query","hash"];function mf(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of pf)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function gf(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&ns(s)):[r&&ns(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function yf(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=We(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const _f=Symbol(""),Co=Symbol(""),br=Symbol(""),Is=Symbol(""),os=Symbol("");function sn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function At(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,c)=>{const u=p=>{p===!1?c(Qt(ae.NAVIGATION_ABORTED,{from:n,to:t})):p instanceof Error?c(p):hf(p)?c(Qt(ae.NAVIGATION_GUARD_REDIRECT,{from:t,to:p})):(i&&r.enterCallbacks[s]===i&&typeof p=="function"&&i.push(p),l())},a=o(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(a);e.length<3&&(f=f.then(u)),f.catch(p=>c(p))})}function Br(e,t,n,r,s=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(wl(c)){const u=(c.__vccOpts||c)[t];u&&o.push(At(u,n,r,i,l,s))}else{let u=c();o.push(()=>u.then(a=>{if(!a)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=Bu(a)?a.default:a;i.mods[l]=a,i.components[l]=f;const p=(f.__vccOpts||f)[t];return p&&At(p,n,r,i,l,s)()}))}}return o}function bf(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;iXt(u,l))?r.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(u=>Xt(u,c))||s.push(c))}return[n,r,s]}let Ef=()=>location.protocol+"//"+location.host;function Pl(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(i);return l[0]!=="/"&&(l="/"+l),vo(l,"")}return vo(n,e)+r+s}function wf(e,t,n,r){let s=[],o=[],i=null;const l=({state:p})=>{const m=Pl(e,location),g=n.value,b=t.value;let E=0;if(p){if(n.value=m,t.value=p,i&&i===g){i=null;return}E=b?p.position-b.position:0}else r(m);s.forEach(O=>{O(n.value,g,{delta:E,type:rs.pop,direction:E?E>0?jr.forward:jr.back:jr.unknown})})};function c(){i=n.value}function u(p){s.push(p);const m=()=>{const g=s.indexOf(p);g>-1&&s.splice(g,1)};return o.push(m),m}function a(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(te({},p.state,{scroll:_r()}),"")}}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,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?_r():null}}function Sf(e){const{history:t,location:n}=window,r={value:Pl(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.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:Ef()+e+c;try{t[a?"replaceState":"pushState"](u,"",p),s.value=u}catch(m){console.error(m),n[a?"replace":"assign"](p)}}function i(c,u){o(c,te({},t.state,Po(s.value.back,c,s.value.forward,!0),u,{position:s.value.position}),!0),r.value=c}function l(c,u){const a=te({},s.value,t.state,{forward:c,scroll:_r()});o(a.current,a,!0),o(c,te({},Po(r.value,c,null),{position:a.position+1},u),!1),r.value=c}return{location:r,state:s,push:l,replace:i}}function Rf(e){e=of(e);const t=Sf(e),n=wf(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=te({location:"",base:e,go:r,createHref:cf.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function Af(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),Rf(e)}let Nt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var ge=(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})(ge||{});const vf={type:Nt.Static,value:""},Of=/[a-zA-Z0-9_]/;function xf(e){if(!e)return[[]];if(e==="/")return[[vf]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${u}": ${m}`)}let n=ge.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,c,u="",a="";function f(){u&&(n===ge.Static?o.push({type:Nt.Static,value:u}):n===ge.Param||n===ge.ParamRegExp||n===ge.ParamRegExpEnd?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:Nt.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]===Oe.Static+Oe.Segment?1:-1:0}function Nl(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const If={strict:!1,end:!0,sensitive:!1};function Df(e,t,n){const r=Pf(xf(e.path),n),s=te(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function Lf(e,t){const n=[],r=new Map;t=Ao(If,t);function s(f){return r.get(f)}function o(f,p,m){const g=!m,b=Lo(f);b.aliasOf=m&&m.record;const E=Ao(t,f),O=[b];if("alias"in f){const P=typeof f.alias=="string"?[f.alias]:f.alias;for(const M of P)O.push(Lo(te({},b,{components:m?m.record.components:b.components,path:M,aliasOf:m?m.record:b})))}let C,N;for(const P of O){const{path:M}=P;if(p&&M[0]!=="/"){const X=p.record.path,k=X[X.length-1]==="/"?"":"/";P.path=p.record.path+(M&&k+M)}if(C=Df(P,p,E),m?m.alias.push(C):(N=N||C,N!==C&&N.alias.push(C),g&&f.name&&!Fo(C)&&i(f.name)),Il(C)&&c(C),b.children){const X=b.children;for(let k=0;k{i(N)}:yn}function i(f){if(Tl(f)){const p=r.get(f);p&&(r.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&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function c(f){const p=Uf(f,n);n.splice(p,0,f),f.record.name&&!Fo(f)&&r.set(f.record.name,f)}function u(f,p){let m,g={},b,E;if("name"in f&&f.name){if(m=r.get(f.name),!m)throw Qt(ae.MATCHER_NOT_FOUND,{location:f});E=m.record.name,g=te(Do(p.params,m.keys.filter(N=>!N.optional).concat(m.parent?m.parent.keys.filter(N=>N.optional):[]).map(N=>N.name)),f.params&&Do(f.params,m.keys.map(N=>N.name))),b=m.stringify(g)}else if(f.path!=null)b=f.path,m=n.find(N=>N.re.test(b)),m&&(g=m.parse(b),E=m.record.name);else{if(m=p.name?r.get(p.name):n.find(N=>N.re.test(p.path)),!m)throw Qt(ae.MATCHER_NOT_FOUND,{location:f,currentLocation:p});E=m.record.name,g=te({},p.params,f.params),b=m.stringify(g)}const O=[];let C=m;for(;C;)O.unshift(C.record),C=C.parent;return{name:E,path:b,params:g,matched:O,meta:Mf(O)}}e.forEach(f=>o(f));function a(){n.length=0,r.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:a,getRoutes:l,getRecordMatcher:s}}function Do(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function Lo(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Ff(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 Ff(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function Fo(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Mf(e){return e.reduce((t,n)=>te(t,n.meta),{})}function Uf(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;Nl(e,t[o])<0?r=o:n=o+1}const s=jf(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function jf(e){let t=e;for(;t=t.parent;)if(Il(t)&&Nl(e,t)===0)return t}function Il({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Mo(e){const t=ke(br),n=ke(Is),r=Me(()=>{const c=Ot(e.to);return t.resolve(c)}),s=Me(()=>{const{matched:c}=r.value,{length:u}=c,a=c[u-1],f=n.matched;if(!a||!f.length)return-1;const p=f.findIndex(Xt.bind(null,a));if(p>-1)return p;const m=Uo(c[u-2]);return u>1&&Uo(a)===m&&f[f.length-1].path!==m?f.findIndex(Xt.bind(null,c[u-2])):p}),o=Me(()=>s.value>-1&&qf(n.params,r.value.params)),i=Me(()=>s.value>-1&&s.value===n.matched.length-1&&xl(n.params,r.value.params));function l(c={}){if(Vf(c)){const u=t[Ot(e.replace)?"replace":"push"](Ot(e.to)).catch(yn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Me(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function Bf(e){return e.length===1?e[0]:e}const Hf=Os({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=On(Mo(e)),{options:r}=ke(br),s=Me(()=>({[jo(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[jo(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&Bf(t.default(n));return e.custom?o:ml("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),kf=Hf;function Vf(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 qf(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!We(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function Uo(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const jo=(e,t,n)=>e??t??n,$f=Os({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=ke(os),s=Me(()=>e.route||r.value),o=ke(Co,0),i=Me(()=>{let u=Ot(o);const{matched:a}=s.value;let f;for(;(f=a[u])&&!f.components;)u++;return u}),l=Me(()=>s.value.matched[i.value]);Hn(Co,Me(()=>i.value+1)),Hn(_f,l),Hn(os,s);const c=Lt();return fn(()=>[c.value,l.value,e.name],([u,a,f],[p,m,g])=>{a&&(a.instances[f]=u,m&&m!==a&&u&&u===p&&(a.leaveGuards.size||(a.leaveGuards=m.leaveGuards),a.updateGuards.size||(a.updateGuards=m.updateGuards))),u&&a&&(!m||!Xt(a,m)||!p)&&(a.enterCallbacks[f]||[]).forEach(b=>b(u))},{flush:"post"}),()=>{const u=s.value,a=e.name,f=l.value,p=f&&f.components[a];if(!p)return Bo(n.default,{Component:p,route:u});const m=f.props[a],g=m?m===!0?u.params:typeof m=="function"?m(u):m:null,E=ml(p,te({},g,t,{onVnodeUnmounted:O=>{O.component.isUnmounted&&(f.instances[a]=null)},ref:c}));return Bo(n.default,{Component:E,route:u})||E}}});function Bo(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Dl=$f;function Kf(e){const t=Lf(e.routes,e),n=e.parseQuery||gf,r=e.stringifyQuery||To,s=e.history,o=sn(),i=sn(),l=sn(),c=Mc(bt);let u=bt;qt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const a=Mr.bind(null,R=>""+R),f=Mr.bind(null,Yu),p=Mr.bind(null,vn);function m(R,F){let D,j;return Tl(R)?(D=t.getRecordMatcher(R),j=F):j=R,t.addRoute(j,D)}function g(R){const F=t.getRecordMatcher(R);F&&t.removeRoute(F)}function b(){return t.getRoutes().map(R=>R.record)}function E(R){return!!t.getRecordMatcher(R)}function O(R,F){if(F=te({},F||c.value),typeof R=="string"){const y=Ur(n,R,F.path),w=t.resolve({path:y.path},F),A=s.createHref(y.fullPath);return te(y,w,{params:p(w.params),hash:vn(y.hash),redirectedFrom:void 0,href:A})}let D;if(R.path!=null)D=te({},R,{path:Ur(n,R.path,F.path).path});else{const y=te({},R.params);for(const w in y)y[w]==null&&delete y[w];D=te({},R,{params:f(y)}),F.params=f(F.params)}const j=t.resolve(D,F),Q=R.hash||"";j.params=a(p(j.params));const d=tf(r,te({},R,{hash:Ju(Q),path:j.path})),h=s.createHref(d);return te({fullPath:d,hash:Q,query:r===To?yf(R.query):R.query||{}},j,{redirectedFrom:void 0,href:h})}function C(R){return typeof R=="string"?Ur(n,R,c.value.path):te({},R)}function N(R,F){if(u!==R)return Qt(ae.NAVIGATION_CANCELLED,{from:F,to:R})}function P(R){return k(R)}function M(R){return P(te(C(R),{replace:!0}))}function X(R,F){const D=R.matched[R.matched.length-1];if(D&&D.redirect){const{redirect:j}=D;let Q=typeof j=="function"?j(R,F):j;return typeof Q=="string"&&(Q=Q.includes("?")||Q.includes("#")?Q=C(Q):{path:Q},Q.params={}),te({query:R.query,hash:R.hash,params:Q.path!=null?{}:R.params},Q)}}function k(R,F){const D=u=O(R),j=c.value,Q=R.state,d=R.force,h=R.replace===!0,y=X(D,j);if(y)return k(te(C(y),{state:typeof y=="object"?te({},Q,y.state):Q,force:d,replace:h}),F||D);const w=D;w.redirectedFrom=F;let A;return!d&&nf(r,j,D)&&(A=Qt(ae.NAVIGATION_DUPLICATED,{to:w,from:j}),me(j,j,!0,!1)),(A?Promise.resolve(A):ee(w,j)).catch(S=>at(S)?at(S,ae.NAVIGATION_GUARD_REDIRECT)?S:ze(S):z(S,w,j)).then(S=>{if(S){if(at(S,ae.NAVIGATION_GUARD_REDIRECT))return k(te({replace:h},C(S.to),{state:typeof S.to=="object"?te({},Q,S.to.state):Q,force:d}),F||w)}else S=ye(w,j,!0,h,Q);return ue(w,j,S),S})}function V(R,F){const D=N(R,F);return D?Promise.reject(D):Promise.resolve()}function U(R){const F=qe.values().next().value;return F&&typeof F.runWithContext=="function"?F.runWithContext(R):R()}function ee(R,F){let D;const[j,Q,d]=bf(R,F);D=Br(j.reverse(),"beforeRouteLeave",R,F);for(const y of j)y.leaveGuards.forEach(w=>{D.push(At(w,R,F))});const h=V.bind(null,R,F);return D.push(h),He(D).then(()=>{D=[];for(const y of o.list())D.push(At(y,R,F));return D.push(h),He(D)}).then(()=>{D=Br(Q,"beforeRouteUpdate",R,F);for(const y of Q)y.updateGuards.forEach(w=>{D.push(At(w,R,F))});return D.push(h),He(D)}).then(()=>{D=[];for(const y of d)if(y.beforeEnter)if(We(y.beforeEnter))for(const w of y.beforeEnter)D.push(At(w,R,F));else D.push(At(y.beforeEnter,R,F));return D.push(h),He(D)}).then(()=>(R.matched.forEach(y=>y.enterCallbacks={}),D=Br(d,"beforeRouteEnter",R,F,U),D.push(h),He(D))).then(()=>{D=[];for(const y of i.list())D.push(At(y,R,F));return D.push(h),He(D)}).catch(y=>at(y,ae.NAVIGATION_CANCELLED)?y:Promise.reject(y))}function ue(R,F,D){l.list().forEach(j=>U(()=>j(R,F,D)))}function ye(R,F,D,j,Q){const d=N(R,F);if(d)return d;const h=F===bt,y=qt?history.state:{};D&&(j||h?s.replace(R.fullPath,te({scroll:h&&y&&y.scroll},Q)):s.push(R.fullPath,Q)),c.value=R,me(R,F,D,h),ze()}let pe;function Re(){pe||(pe=s.listen((R,F,D)=>{if(!Xe.listening)return;const j=O(R),Q=X(j,Xe.currentRoute.value);if(Q){k(te(Q,{replace:!0,force:!0}),j).catch(yn);return}u=j;const d=c.value;qt&&ff(xo(d.fullPath,D.delta),_r()),ee(j,d).catch(h=>at(h,ae.NAVIGATION_ABORTED|ae.NAVIGATION_CANCELLED)?h:at(h,ae.NAVIGATION_GUARD_REDIRECT)?(k(te(C(h.to),{force:!0}),j).then(y=>{at(y,ae.NAVIGATION_ABORTED|ae.NAVIGATION_DUPLICATED)&&!D.delta&&D.type===rs.pop&&s.go(-1,!1)}).catch(yn),Promise.reject()):(D.delta&&s.go(-D.delta,!1),z(h,j,d))).then(h=>{h=h||ye(j,d,!1),h&&(D.delta&&!at(h,ae.NAVIGATION_CANCELLED)?s.go(-D.delta,!1):D.type===rs.pop&&at(h,ae.NAVIGATION_ABORTED|ae.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),ue(j,d,h)}).catch(yn)}))}let Ve=sn(),J=sn(),K;function z(R,F,D){ze(R);const j=J.list();return j.length?j.forEach(Q=>Q(R,F,D)):console.error(R),Promise.reject(R)}function Be(){return K&&c.value!==bt?Promise.resolve():new Promise((R,F)=>{Ve.add([R,F])})}function ze(R){return K||(K=!R,Re(),Ve.list().forEach(([F,D])=>R?D(R):F()),Ve.reset()),R}function me(R,F,D,j){const{scrollBehavior:Q}=e;if(!qt||!Q)return Promise.resolve();const d=!D&&df(xo(R.fullPath,0))||(j||!D)&&history.state&&history.state.scroll||null;return Rs().then(()=>Q(R,F,d)).then(h=>h&&uf(h)).catch(h=>z(h,R,F))}const fe=R=>s.go(R);let Je;const qe=new Set,Xe={currentRoute:c,listening:!0,addRoute:m,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:E,getRoutes:b,resolve:O,options:e,push:P,replace:M,go:fe,back:()=>fe(-1),forward:()=>fe(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:J.add,isReady:Be,install(R){R.component("RouterLink",kf),R.component("RouterView",Dl),R.config.globalProperties.$router=Xe,Object.defineProperty(R.config.globalProperties,"$route",{enumerable:!0,get:()=>Ot(c)}),qt&&!Je&&c.value===bt&&(Je=!0,P(s.location).catch(j=>{}));const F={};for(const j in bt)Object.defineProperty(F,j,{get:()=>c.value[j],enumerable:!0});R.provide(br,Xe),R.provide(Is,Ci(F)),R.provide(os,c);const D=R.unmount;qe.add(R),R.unmount=function(){qe.delete(R),qe.size<1&&(u=bt,pe&&pe(),pe=null,c.value=bt,Je=!1,K=!1),D()}}};function He(R){return R.reduce((F,D)=>F.then(()=>U(D)),Promise.resolve())}return Xe}function Lh(){return ke(br)}function Fh(e){return ke(Is)}function Ll(e,t){return function(){return e.apply(t,arguments)}}const{toString:Wf}=Object.prototype,{getPrototypeOf:Ds}=Object,{iterator:Er,toStringTag:Fl}=Symbol,wr=(e=>t=>{const n=Wf.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ge=e=>(e=e.toLowerCase(),t=>wr(t)===e),Sr=e=>t=>typeof t===e,{isArray:Zt}=Array,Yt=Sr("undefined");function Cn(e){return e!==null&&!Yt(e)&&e.constructor!==null&&!Yt(e.constructor)&&Ie(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Ml=Ge("ArrayBuffer");function Gf(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Ml(e.buffer),t}const zf=Sr("string"),Ie=Sr("function"),Ul=Sr("number"),Pn=e=>e!==null&&typeof e=="object",Jf=e=>e===!0||e===!1,Kn=e=>{if(wr(e)!=="object")return!1;const t=Ds(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Fl in e)&&!(Er in e)},Xf=e=>{if(!Pn(e)||Cn(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},Qf=Ge("Date"),Yf=Ge("File"),Zf=Ge("Blob"),ed=Ge("FileList"),td=e=>Pn(e)&&Ie(e.pipe),nd=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Ie(e.append)&&((t=wr(e))==="formdata"||t==="object"&&Ie(e.toString)&&e.toString()==="[object FormData]"))},rd=Ge("URLSearchParams"),[sd,od,id,ld]=["ReadableStream","Request","Response","Headers"].map(Ge),cd=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Nn(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),Zt(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const It=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Bl=e=>!Yt(e)&&e!==It;function is(){const{caseless:e,skipUndefined:t}=Bl(this)&&this||{},n={},r=(s,o)=>{const i=e&&jl(n,o)||o;Kn(n[i])&&Kn(s)?n[i]=is(n[i],s):Kn(s)?n[i]=is({},s):Zt(s)?n[i]=s.slice():(!t||!Yt(s))&&(n[i]=s)};for(let s=0,o=arguments.length;s(Nn(t,(s,o)=>{n&&Ie(s)?e[o]=Ll(s,n):e[o]=s},{allOwnKeys:r}),e),ud=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),fd=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},dd=(e,t,n,r)=>{let s,o,i;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&Ds(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},hd=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},pd=e=>{if(!e)return null;if(Zt(e))return e;let t=e.length;if(!Ul(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},md=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Ds(Uint8Array)),gd=(e,t)=>{const r=(e&&e[Er]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},yd=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},_d=Ge("HTMLFormElement"),bd=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),Ho=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Ed=Ge("RegExp"),Hl=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Nn(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},wd=e=>{Hl(e,(t,n)=>{if(Ie(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Ie(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Sd=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return Zt(e)?r(e):r(String(e).split(t)),n},Rd=()=>{},Ad=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function vd(e){return!!(e&&Ie(e.append)&&e[Fl]==="FormData"&&e[Er])}const Od=e=>{const t=new Array(10),n=(r,s)=>{if(Pn(r)){if(t.indexOf(r)>=0)return;if(Cn(r))return r;if(!("toJSON"in r)){t[s]=r;const o=Zt(r)?[]:{};return Nn(r,(i,l)=>{const c=n(i,s+1);!Yt(c)&&(o[l]=c)}),t[s]=void 0,o}}return r};return n(e,0)},xd=Ge("AsyncFunction"),Td=e=>e&&(Pn(e)||Ie(e))&&Ie(e.then)&&Ie(e.catch),kl=((e,t)=>e?setImmediate:t?((n,r)=>(It.addEventListener("message",({source:s,data:o})=>{s===It&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),It.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Ie(It.postMessage)),Cd=typeof queueMicrotask<"u"?queueMicrotask.bind(It):typeof process<"u"&&process.nextTick||kl,Pd=e=>e!=null&&Ie(e[Er]),_={isArray:Zt,isArrayBuffer:Ml,isBuffer:Cn,isFormData:nd,isArrayBufferView:Gf,isString:zf,isNumber:Ul,isBoolean:Jf,isObject:Pn,isPlainObject:Kn,isEmptyObject:Xf,isReadableStream:sd,isRequest:od,isResponse:id,isHeaders:ld,isUndefined:Yt,isDate:Qf,isFile:Yf,isBlob:Zf,isRegExp:Ed,isFunction:Ie,isStream:td,isURLSearchParams:rd,isTypedArray:md,isFileList:ed,forEach:Nn,merge:is,extend:ad,trim:cd,stripBOM:ud,inherits:fd,toFlatObject:dd,kindOf:wr,kindOfTest:Ge,endsWith:hd,toArray:pd,forEachEntry:gd,matchAll:yd,isHTMLForm:_d,hasOwnProperty:Ho,hasOwnProp:Ho,reduceDescriptors:Hl,freezeMethods:wd,toObjectSet:Sd,toCamelCase:bd,noop:Rd,toFiniteNumber:Ad,findKey:jl,global:It,isContextDefined:Bl,isSpecCompliantForm:vd,toJSONObject:Od,isAsyncFn:xd,isThenable:Td,setImmediate:kl,asap:Cd,isIterable:Pd};function G(e,t,n,r,s){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),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}_.inherits(G,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:_.toJSONObject(this.config),code:this.code,status:this.status}}});const Vl=G.prototype,ql={};["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=>{ql[e]={value:e}});Object.defineProperties(G,ql);Object.defineProperty(Vl,"isAxiosError",{value:!0});G.from=(e,t,n,r,s,o)=>{const i=Object.create(Vl);_.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 G.call(i,l,c,n,r,s),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 Nd=null;function ls(e){return _.isPlainObject(e)||_.isArray(e)}function $l(e){return _.endsWith(e,"[]")?e.slice(0,-2):e}function ko(e,t,n){return e?e.concat(t).map(function(s,o){return s=$l(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function Id(e){return _.isArray(e)&&!e.some(ls)}const Dd=_.toFlatObject(_,{},null,function(t){return/^is[A-Z]/.test(t)});function Rr(e,t,n){if(!_.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=_.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(b,E){return!_.isUndefined(E[b])});const r=n.metaTokens,s=n.visitor||a,o=n.dots,i=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&_.isSpecCompliantForm(t);if(!_.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(_.isDate(g))return g.toISOString();if(_.isBoolean(g))return g.toString();if(!c&&_.isBlob(g))throw new G("Blob is not supported. Use a Buffer instead.");return _.isArrayBuffer(g)||_.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function a(g,b,E){let O=g;if(g&&!E&&typeof g=="object"){if(_.endsWith(b,"{}"))b=r?b:b.slice(0,-2),g=JSON.stringify(g);else if(_.isArray(g)&&Id(g)||(_.isFileList(g)||_.endsWith(b,"[]"))&&(O=_.toArray(g)))return b=$l(b),O.forEach(function(N,P){!(_.isUndefined(N)||N===null)&&t.append(i===!0?ko([b],P,o):i===null?b:b+"[]",u(N))}),!1}return ls(g)?!0:(t.append(ko(E,b,o),u(g)),!1)}const f=[],p=Object.assign(Dd,{defaultVisitor:a,convertValue:u,isVisitable:ls});function m(g,b){if(!_.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+b.join("."));f.push(g),_.forEach(g,function(O,C){(!(_.isUndefined(O)||O===null)&&s.call(t,O,_.isString(C)?C.trim():C,b,p))===!0&&m(O,b?b.concat(C):[C])}),f.pop()}}if(!_.isObject(e))throw new TypeError("data must be an object");return m(e),t}function Vo(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Ls(e,t){this._pairs=[],e&&Rr(e,this,t)}const Kl=Ls.prototype;Kl.append=function(t,n){this._pairs.push([t,n])};Kl.toString=function(t){const n=t?function(r){return t.call(this,r,Vo)}:Vo;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Ld(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Wl(e,t,n){if(!t)return e;const r=n&&n.encode||Ld;_.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=_.isURLSearchParams(t)?t.toString():new Ls(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class qo{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){_.forEach(this.handlers,function(r){r!==null&&t(r)})}}const Gl={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Fd=typeof URLSearchParams<"u"?URLSearchParams:Ls,Md=typeof FormData<"u"?FormData:null,Ud=typeof Blob<"u"?Blob:null,jd={isBrowser:!0,classes:{URLSearchParams:Fd,FormData:Md,Blob:Ud},protocols:["http","https","file","blob","url","data"]},Fs=typeof window<"u"&&typeof document<"u",cs=typeof navigator=="object"&&navigator||void 0,Bd=Fs&&(!cs||["ReactNative","NativeScript","NS"].indexOf(cs.product)<0),Hd=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",kd=Fs&&window.location.href||"http://localhost",Vd=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Fs,hasStandardBrowserEnv:Bd,hasStandardBrowserWebWorkerEnv:Hd,navigator:cs,origin:kd},Symbol.toStringTag,{value:"Module"})),Ee={...Vd,...jd};function qd(e,t){return Rr(e,new Ee.classes.URLSearchParams,{visitor:function(n,r,s,o){return Ee.isNode&&_.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function $d(e){return _.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Kd(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&_.isArray(s)?s.length:i,c?(_.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!l):((!s[i]||!_.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&_.isArray(s[i])&&(s[i]=Kd(s[i])),!l)}if(_.isFormData(e)&&_.isFunction(e.entries)){const n={};return _.forEachEntry(e,(r,s)=>{t($d(r),s,n,0)}),n}return null}function Wd(e,t,n){if(_.isString(e))try{return(t||JSON.parse)(e),_.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const In={transitional:Gl,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=_.isObject(t);if(o&&_.isHTMLForm(t)&&(t=new FormData(t)),_.isFormData(t))return s?JSON.stringify(zl(t)):t;if(_.isArrayBuffer(t)||_.isBuffer(t)||_.isStream(t)||_.isFile(t)||_.isBlob(t)||_.isReadableStream(t))return t;if(_.isArrayBufferView(t))return t.buffer;if(_.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return qd(t,this.formSerializer).toString();if((l=_.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return Rr(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),Wd(t)):t}],transformResponse:[function(t){const n=this.transitional||In.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(_.isResponse(t)||_.isReadableStream(t))return t;if(t&&_.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(i)throw l.name==="SyntaxError"?G.from(l,G.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:Ee.classes.FormData,Blob:Ee.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};_.forEach(["delete","get","head","post","put","patch"],e=>{In.headers[e]={}});const Gd=_.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"]),zd=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&Gd[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},$o=Symbol("internals");function on(e){return e&&String(e).trim().toLowerCase()}function Wn(e){return e===!1||e==null?e:_.isArray(e)?e.map(Wn):String(e)}function Jd(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const Xd=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Hr(e,t,n,r,s){if(_.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!_.isString(t)){if(_.isString(r))return t.indexOf(r)!==-1;if(_.isRegExp(r))return r.test(t)}}function Qd(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Yd(e,t){const n=_.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let De=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(l,c,u){const a=on(c);if(!a)throw new Error("header name must be a non-empty string");const f=_.findKey(s,a);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||c]=Wn(l))}const i=(l,c)=>_.forEach(l,(u,a)=>o(u,a,c));if(_.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(_.isString(t)&&(t=t.trim())&&!Xd(t))i(zd(t),n);else if(_.isObject(t)&&_.isIterable(t)){let l={},c,u;for(const a of t){if(!_.isArray(a))throw TypeError("Object iterator must return a key-value pair");l[u=a[0]]=(c=l[u])?_.isArray(c)?[...c,a[1]]:[c,a[1]]:a[1]}i(l,n)}else t!=null&&o(n,t,r);return this}get(t,n){if(t=on(t),t){const r=_.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return Jd(s);if(_.isFunction(n))return n.call(this,s,r);if(_.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=on(t),t){const r=_.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Hr(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=on(i),i){const l=_.findKey(r,i);l&&(!n||Hr(r,r[l],l,n))&&(delete r[l],s=!0)}}return _.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||Hr(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return _.forEach(this,(s,o)=>{const i=_.findKey(r,o);if(i){n[i]=Wn(s),delete n[o];return}const l=t?Qd(o):String(o).trim();l!==o&&delete n[o],n[l]=Wn(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return _.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&_.isArray(r)?r.join(", "):r)}),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 r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[$o]=this[$o]={accessors:{}}).accessors,s=this.prototype;function o(i){const l=on(i);r[l]||(Yd(s,i),r[l]=!0)}return _.isArray(t)?t.forEach(o):o(t),this}};De.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);_.reduceDescriptors(De.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});_.freezeMethods(De);function kr(e,t){const n=this||In,r=t||n,s=De.from(r.headers);let o=r.data;return _.forEach(e,function(l){o=l.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function Jl(e){return!!(e&&e.__CANCEL__)}function en(e,t,n){G.call(this,e??"canceled",G.ERR_CANCELED,t,n),this.name="CanceledError"}_.inherits(en,G,{__CANCEL__:!0});function Xl(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new G("Request failed with status code "+n.status,[G.ERR_BAD_REQUEST,G.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function Zd(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function eh(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),a=r[o];i||(i=u),n[s]=c,r[s]=u;let f=o,p=0;for(;f!==s;)p+=n[f++],f=f%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i{n=a,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const a=Date.now(),f=a-n;f>=r?i(u,a):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-f)))},()=>s&&i(s)]}const sr=(e,t,n=3)=>{let r=0;const s=eh(50,250);return th(o=>{const i=o.loaded,l=o.lengthComputable?o.total:void 0,c=i-r,u=s(c),a=i<=l;r=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)},Ko=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Wo=e=>(...t)=>_.asap(()=>e(...t)),nh=Ee.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Ee.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Ee.origin),Ee.navigator&&/(msie|trident)/i.test(Ee.navigator.userAgent)):()=>!0,rh=Ee.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];_.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),_.isString(r)&&l.push(`path=${r}`),_.isString(s)&&l.push(`domain=${s}`),o===!0&&l.push("secure"),_.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 sh(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function oh(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Ql(e,t,n){let r=!sh(t);return e&&(r||n==!1)?oh(e,t):t}const Go=e=>e instanceof De?{...e}:e;function Ut(e,t){t=t||{};const n={};function r(u,a,f,p){return _.isPlainObject(u)&&_.isPlainObject(a)?_.merge.call({caseless:p},u,a):_.isPlainObject(a)?_.merge({},a):_.isArray(a)?a.slice():a}function s(u,a,f,p){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u,f,p)}else return r(u,a,f,p)}function o(u,a){if(!_.isUndefined(a))return r(void 0,a)}function i(u,a){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u)}else return r(void 0,a)}function l(u,a,f){if(f in t)return r(u,a);if(f in e)return r(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)=>s(Go(u),Go(a),f,!0)};return _.forEach(Object.keys({...e,...t}),function(a){const f=c[a]||s,p=f(e[a],t[a],a);_.isUndefined(p)&&f!==l||(n[a]=p)}),n}const Yl=e=>{const t=Ut({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:l}=t;if(t.headers=i=De.from(i),t.url=Wl(Ql(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&i.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),_.isFormData(n)){if(Ee.hasStandardBrowserEnv||Ee.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(_.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(Ee.hasStandardBrowserEnv&&(r&&_.isFunction(r)&&(r=r(t)),r||r!==!1&&nh(t.url))){const c=s&&o&&rh.read(o);c&&i.set(s,c)}return t},ih=typeof XMLHttpRequest<"u",lh=ih&&function(e){return new Promise(function(n,r){const s=Yl(e);let o=s.data;const i=De.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,a,f,p,m,g;function b(){m&&m(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(a),s.signal&&s.signal.removeEventListener("abort",a)}let E=new XMLHttpRequest;E.open(s.method.toUpperCase(),s.url,!0),E.timeout=s.timeout;function O(){if(!E)return;const N=De.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),M={data:!l||l==="text"||l==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:N,config:e,request:E};Xl(function(k){n(k),b()},function(k){r(k),b()},M),E=null}"onloadend"in E?E.onloadend=O:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.indexOf("file:")===0)||setTimeout(O)},E.onabort=function(){E&&(r(new G("Request aborted",G.ECONNABORTED,e,E)),E=null)},E.onerror=function(P){const M=P&&P.message?P.message:"Network Error",X=new G(M,G.ERR_NETWORK,e,E);X.event=P||null,r(X),E=null},E.ontimeout=function(){let P=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const M=s.transitional||Gl;s.timeoutErrorMessage&&(P=s.timeoutErrorMessage),r(new G(P,M.clarifyTimeoutError?G.ETIMEDOUT:G.ECONNABORTED,e,E)),E=null},o===void 0&&i.setContentType(null),"setRequestHeader"in E&&_.forEach(i.toJSON(),function(P,M){E.setRequestHeader(M,P)}),_.isUndefined(s.withCredentials)||(E.withCredentials=!!s.withCredentials),l&&l!=="json"&&(E.responseType=s.responseType),u&&([p,g]=sr(u,!0),E.addEventListener("progress",p)),c&&E.upload&&([f,m]=sr(c),E.upload.addEventListener("progress",f),E.upload.addEventListener("loadend",m)),(s.cancelToken||s.signal)&&(a=N=>{E&&(r(!N||N.type?new en(null,e,E):N),E.abort(),E=null)},s.cancelToken&&s.cancelToken.subscribe(a),s.signal&&(s.signal.aborted?a():s.signal.addEventListener("abort",a)));const C=Zd(s.url);if(C&&Ee.protocols.indexOf(C)===-1){r(new G("Unsupported protocol "+C+":",G.ERR_BAD_REQUEST,e));return}E.send(o||null)})},ch=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,l();const a=u instanceof Error?u:this.reason;r.abort(a instanceof G?a:new en(a instanceof Error?a.message:a))}};let i=t&&setTimeout(()=>{i=null,o(new G(`timeout ${t} of ms exceeded`,G.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}=r;return c.unsubscribe=()=>_.asap(l),c}},ah=function*(e,t){let n=e.byteLength;if(n{const s=uh(e,t);let o=0,i,l=c=>{i||(i=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:a}=await s.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),s.return()}},{highWaterMark:2})},Jo=64*1024,{isFunction:Un}=_,dh=(({Request:e,Response:t})=>({Request:e,Response:t}))(_.global),{ReadableStream:Xo,TextEncoder:Qo}=_.global,Yo=(e,...t)=>{try{return!!e(...t)}catch{return!1}},hh=e=>{e=_.merge.call({skipUndefined:!0},dh,e);const{fetch:t,Request:n,Response:r}=e,s=t?Un(t):typeof fetch=="function",o=Un(n),i=Un(r);if(!s)return!1;const l=s&&Un(Xo),c=s&&(typeof Qo=="function"?(g=>b=>g.encode(b))(new Qo):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=o&&l&&Yo(()=>{let g=!1;const b=new n(Ee.origin,{body:new Xo,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!b}),a=i&&l&&Yo(()=>_.isReadableStream(new r("").body)),f={stream:a&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(b,E)=>{let O=b&&b[g];if(O)return O.call(b);throw new G(`Response type '${g}' is not supported`,G.ERR_NOT_SUPPORT,E)})});const p=async g=>{if(g==null)return 0;if(_.isBlob(g))return g.size;if(_.isSpecCompliantForm(g))return(await new n(Ee.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(_.isArrayBufferView(g)||_.isArrayBuffer(g))return g.byteLength;if(_.isURLSearchParams(g)&&(g=g+""),_.isString(g))return(await c(g)).byteLength},m=async(g,b)=>{const E=_.toFiniteNumber(g.getContentLength());return E??p(b)};return async g=>{let{url:b,method:E,data:O,signal:C,cancelToken:N,timeout:P,onDownloadProgress:M,onUploadProgress:X,responseType:k,headers:V,withCredentials:U="same-origin",fetchOptions:ee}=Yl(g),ue=t||fetch;k=k?(k+"").toLowerCase():"text";let ye=ch([C,N&&N.toAbortSignal()],P),pe=null;const Re=ye&&ye.unsubscribe&&(()=>{ye.unsubscribe()});let Ve;try{if(X&&u&&E!=="get"&&E!=="head"&&(Ve=await m(V,O))!==0){let me=new n(b,{method:"POST",body:O,duplex:"half"}),fe;if(_.isFormData(O)&&(fe=me.headers.get("content-type"))&&V.setContentType(fe),me.body){const[Je,qe]=Ko(Ve,sr(Wo(X)));O=zo(me.body,Jo,Je,qe)}}_.isString(U)||(U=U?"include":"omit");const J=o&&"credentials"in n.prototype,K={...ee,signal:ye,method:E.toUpperCase(),headers:V.normalize().toJSON(),body:O,duplex:"half",credentials:J?U:void 0};pe=o&&new n(b,K);let z=await(o?ue(pe,ee):ue(b,K));const Be=a&&(k==="stream"||k==="response");if(a&&(M||Be&&Re)){const me={};["status","statusText","headers"].forEach(Xe=>{me[Xe]=z[Xe]});const fe=_.toFiniteNumber(z.headers.get("content-length")),[Je,qe]=M&&Ko(fe,sr(Wo(M),!0))||[];z=new r(zo(z.body,Jo,Je,()=>{qe&&qe(),Re&&Re()}),me)}k=k||"text";let ze=await f[_.findKey(f,k)||"text"](z,g);return!Be&&Re&&Re(),await new Promise((me,fe)=>{Xl(me,fe,{data:ze,headers:De.from(z.headers),status:z.status,statusText:z.statusText,config:g,request:pe})})}catch(J){throw Re&&Re(),J&&J.name==="TypeError"&&/Load failed|fetch/i.test(J.message)?Object.assign(new G("Network Error",G.ERR_NETWORK,g,pe),{cause:J.cause||J}):G.from(J,J&&J.code,g,pe)}}},ph=new Map,Zl=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,l=i,c,u,a=ph;for(;l--;)c=o[l],u=a.get(c),u===void 0&&a.set(c,u=l?new Map:hh(t)),a=u;return u};Zl();const Ms={http:Nd,xhr:lh,fetch:{get:Zl}};_.forEach(Ms,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Zo=e=>`- ${e}`,mh=e=>_.isFunction(e)||e===null||e===!1;function gh(e,t){e=_.isArray(e)?e:[e];const{length:n}=e;let r,s;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(Zo).join(` +`):" "+Zo(i[0]):"as no adapter specified";throw new G("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const ec={getAdapter:gh,adapters:Ms};function Vr(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new en(null,e)}function ei(e){return Vr(e),e.headers=De.from(e.headers),e.data=kr.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),ec.getAdapter(e.adapter||In.adapter,e)(e).then(function(r){return Vr(e),r.data=kr.call(e,e.transformResponse,r),r.headers=De.from(r.headers),r},function(r){return Jl(r)||(Vr(e),r&&r.response&&(r.response.data=kr.call(e,e.transformResponse,r.response),r.response.headers=De.from(r.response.headers))),Promise.reject(r)})}const tc="1.13.2",Ar={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Ar[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const ti={};Ar.transitional=function(t,n,r){function s(o,i){return"[Axios v"+tc+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,l)=>{if(t===!1)throw new G(s(i," has been removed"+(n?" in "+n:"")),G.ERR_DEPRECATED);return n&&!ti[i]&&(ti[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,l):!0}};Ar.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function yh(e,t,n){if(typeof e!="object")throw new G("options must be an object",G.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const l=e[o],c=l===void 0||i(l,o,e);if(c!==!0)throw new G("option "+o+" must be "+c,G.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new G("Unknown option "+o,G.ERR_BAD_OPTION)}}const Gn={assertOptions:yh,validators:Ar},nt=Gn.validators;let Mt=class{constructor(t){this.defaults=t||{},this.interceptors={request:new qo,response:new qo}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Ut(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&Gn.assertOptions(r,{silentJSONParsing:nt.transitional(nt.boolean),forcedJSONParsing:nt.transitional(nt.boolean),clarifyTimeoutError:nt.transitional(nt.boolean)},!1),s!=null&&(_.isFunction(s)?n.paramsSerializer={serialize:s}:Gn.assertOptions(s,{encode:nt.function,serialize:nt.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Gn.assertOptions(n,{baseUrl:nt.spelling("baseURL"),withXsrfToken:nt.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&_.merge(o.common,o[n.method]);o&&_.forEach(["delete","get","head","post","put","patch","common"],g=>{delete o[g]}),n.headers=De.concat(i,o);const l=[];let c=!0;this.interceptors.request.forEach(function(b){typeof b.runWhen=="function"&&b.runWhen(n)===!1||(c=c&&b.synchronous,l.unshift(b.fulfilled,b.rejected))});const u=[];this.interceptors.response.forEach(function(b){u.push(b.fulfilled,b.rejected)});let a,f=0,p;if(!c){const g=[ei.bind(this),void 0];for(g.unshift(...l),g.push(...u),p=g.length,a=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(l=>{r.subscribe(l),o=l}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,l){r.reason||(r.reason=new en(o,i,l),n(r.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=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new nc(function(s){t=s}),cancel:t}}};function bh(e){return function(n){return e.apply(null,n)}}function Eh(e){return _.isObject(e)&&e.isAxiosError===!0}const as={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(as).forEach(([e,t])=>{as[t]=e});function rc(e){const t=new Mt(e),n=Ll(Mt.prototype.request,t);return _.extend(n,Mt.prototype,t,{allOwnKeys:!0}),_.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return rc(Ut(e,s))},n}const he=rc(In);he.Axios=Mt;he.CanceledError=en;he.CancelToken=_h;he.isCancel=Jl;he.VERSION=tc;he.toFormData=Rr;he.AxiosError=G;he.Cancel=he.CanceledError;he.all=function(t){return Promise.all(t)};he.spread=bh;he.isAxiosError=Eh;he.mergeConfig=Ut;he.AxiosHeaders=De;he.formToJSON=e=>zl(_.isHTMLForm(e)?new FormData(e):e);he.getAdapter=ec.getAdapter;he.HttpStatusCode=as;he.default=he;const{Axios:jh,AxiosError:Bh,CanceledError:Hh,isCancel:kh,CancelToken:Vh,VERSION:qh,all:$h,Cancel:Kh,isAxiosError:Wh,spread:Gh,toFormData:zh,AxiosHeaders:Jh,HttpStatusCode:Xh,formToJSON:Qh,getAdapter:Yh,mergeConfig:Zh}=he,_n=he.create({baseURL:"",timeout:3e4,withCredentials:!0});_n.interceptors.request.use(e=>e,e=>Promise.reject(e));_n.interceptors.response.use(e=>e.data,e=>{e.response?.status===401&&(window.location.hash="#/login");const t=e.response?.data?e.response.data.detail||e.response.data.message:e.message;return Promise.reject(new Error(t||"请求失败"))});const jn={login:e=>{const t=new URLSearchParams;return t.append("admin_key",e.password),_n.post("/login",t,{headers:{"Content-Type":"application/x-www-form-urlencoded"}})},logout:()=>_n.post("/logout"),checkAuth:()=>_n.get("/admin/health")},wh=Mu("auth",()=>{const e=Lt(!1),t=Lt(!1),n=Lt(0),r=1e4;let s=null;async function o(c){t.value=!0;try{return await jn.login({password:c}),await jn.checkAuth(),e.value=!0,n.value=Date.now(),!0}catch(u){throw e.value=!1,u}finally{t.value=!1}}async function i(){try{await jn.logout()}finally{e.value=!1,n.value=0}}async function l(){const c=Date.now();if(e.value&&c-n.value(await jn.checkAuth(),e.value=!0,!0))(),await s}catch{return e.value=!1,!1}finally{n.value=Date.now(),s=null}}return{isLoggedIn:e,isLoading:t,login:o,logout:i,checkAuth:l}}),sc=Kf({history:Af("/"),routes:[{path:"/public/uptime",name:"public-uptime",component:()=>tt(()=>import("./PublicUptime-BHpUIBOr.js"),__vite__mapDeps([0,1])),meta:{requiresAuth:!1}},{path:"/public/logs",name:"public-logs",component:()=>tt(()=>import("./PublicLogs-BpmmHE3p.js"),[]),meta:{requiresAuth:!1}},{path:"/login",name:"login",component:()=>tt(()=>import("./Login-hY94o6Vs.js"),[]),meta:{requiresAuth:!1}},{path:"/",component:()=>tt(()=>import("./AppShell-BbGZjE35.js"),__vite__mapDeps([2,3,4,5])),meta:{requiresAuth:!0},children:[{path:"",name:"dashboard",component:()=>tt(()=>import("./Dashboard-C7wgWPRX.js"),__vite__mapDeps([6,7]))},{path:"accounts",name:"accounts",component:()=>tt(()=>import("./Accounts-BPJBl--e.js"),__vite__mapDeps([8,9,10,4,5,7]))},{path:"settings",name:"settings",component:()=>tt(()=>import("./Settings-oiGSFiLo.js"),__vite__mapDeps([11,3,9,10]))},{path:"logs",name:"logs",component:()=>tt(()=>import("./Logs-CEP1TB7c.js"),__vite__mapDeps([12,9,4]))},{path:"monitor",name:"monitor",component:()=>tt(()=>import("./Monitor-BemJ9-ii.js"),__vite__mapDeps([13,1]))},{path:"docs",name:"docs",component:()=>tt(()=>import("./Docs-mpFHVt06.js"),[])}]}]});sc.beforeEach(async e=>{const t=wh();if(e.meta.requiresAuth&&!await t.checkAuth())return{name:"login"};if(e.name==="login"&&t.isLoggedIn)return{name:"dashboard"}});const Sh=Os({__name:"App",setup(e){return(t,n)=>(er(),nr(Ot(Dl)))}}),Us=xu(Sh),Rh=Pu();Us.use(Rh);Us.use(sc);Us.mount("#app");export{Xc as A,Dl as B,Mu as C,Dh as D,xh as E,Fe as F,Rs as G,On as H,kf as R,vh as T,fl as a,Ph as b,Th as c,Os as d,er as e,Wa as f,_n as g,Lt as h,Me as i,fa as j,ps as k,wh as l,Ah as m,ms as n,ca as o,Lh as p,Fh as q,Oh as r,fn as s,mc as t,Ot as u,Nh as v,Ih as w,Ce as x,nr as y,Ch as z}; diff --git a/static/assets/index-B2_bL1tZ.css b/static/assets/index-B2_bL1tZ.css new file mode 100644 index 0000000000000000000000000000000000000000..55f574aa6902ffcf91b982704c2ae6bf024f05fa --- /dev/null +++ b/static/assets/index-B2_bL1tZ.css @@ -0,0 +1 @@ +@import"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=Noto+Serif+SC:wght@600;700&display=swap";.toast-enter-active[data-v-cdd21b3c],.toast-leave-active[data-v-cdd21b3c]{transition:all .3s ease}.toast-enter-from[data-v-cdd21b3c],.toast-leave-to[data-v-cdd21b3c]{opacity:0;transform:translate(100%)}.toast-move[data-v-cdd21b3c]{transition:transform .3s ease}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 97%;--foreground: 0 0% 10%;--card: 0 0% 100%;--card-foreground: 0 0% 10%;--primary: 0 0% 10%;--primary-foreground: 0 0% 100%;--secondary: 0 0% 92%;--secondary-foreground: 0 0% 10%;--muted: 0 0% 92%;--muted-foreground: 0 0% 40%;--accent: 0 0% 90%;--accent-foreground: 0 0% 10%;--destructive: 0 70% 45%;--destructive-foreground: 0 0% 100%;--border: 0 0% 86%;--input: 0 0% 86%;--ring: 0 0% 10%;--radius: 1rem}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:Noto Sans SC,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;overflow-x:hidden;background-image:radial-gradient(900px circle at 10% -20%,rgba(0,0,0,.04),transparent 45%),radial-gradient(700px circle at 90% 0%,rgba(0,0,0,.05),transparent 40%),linear-gradient(180deg,hsl(var(--background)) 0% 100%)}body:before{content:"";position:fixed;inset:0;background-image:linear-gradient(120deg,#ffffff8c,#fff0);opacity:.5;pointer-events:none;z-index:-1}h1,h2,h3{font-family:"Noto Serif SC",Georgia,serif;letter-spacing:-.01em}#app{min-height:100vh}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{top:0;bottom:0}.bottom-0{bottom:0}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.right-4{right:1rem}.top-0{top:0}.top-4{top:1rem}.top-full{top:100%}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[200\]{z-index:200}.z-\[9999\]{z-index:9999}.col-span-2{grid-column:span 2 / span 2}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0{height:0px}.h-10{height:2.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-\[80vh\]{height:80vh}.h-full{height:100%}.max-h-\[60vh\]{max-height:60vh}.max-h-\[90vh\]{max-height:90vh}.min-h-0{min-height:0px}.min-h-\[140px\]{min-height:140px}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-10{width:2.5rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-44{width:11rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[200px\]{min-width:200px}.min-w-\[320px\]{min-width:320px}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-not-allowed{cursor:not-allowed}.resize{resize:both}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-1{row-gap:.25rem}.gap-y-2{row-gap:.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-visible{overflow-y:visible}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[2\.5rem\]{border-radius:2.5rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-x-4{border-left-width:4px;border-right-width:4px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-4{border-top-width:4px}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}.border-border{border-color:hsl(var(--border))}.border-border\/60{border-color:hsl(var(--border) / .6)}.border-destructive\/30{border-color:hsl(var(--destructive) / .3)}.border-emerald-200{--tw-border-opacity: 1;border-color:rgb(167 243 208 / var(--tw-border-opacity, 1))}.border-input{border-color:hsl(var(--input))}.border-primary-foreground\/40{border-color:hsl(var(--primary-foreground) / .4)}.border-rose-200{--tw-border-opacity: 1;border-color:rgb(254 205 211 / var(--tw-border-opacity, 1))}.border-sky-200{--tw-border-opacity: 1;border-color:rgb(186 230 253 / var(--tw-border-opacity, 1))}.border-x-transparent{border-left-color:transparent;border-right-color:transparent}.border-t-foreground{border-top-color:hsl(var(--foreground))}.bg-accent{background-color:hsl(var(--accent))}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-200{--tw-bg-opacity: 1;background-color:rgb(253 230 138 / var(--tw-bg-opacity, 1))}.bg-amber-300{--tw-bg-opacity: 1;background-color:rgb(252 211 77 / var(--tw-bg-opacity, 1))}.bg-amber-400{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-black\/20{background-color:#0003}.bg-black\/30{background-color:#0000004d}.bg-black\/50{background-color:#00000080}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-card{background-color:hsl(var(--card))}.bg-card\/70{background-color:hsl(var(--card) / .7)}.bg-card\/90{background-color:hsl(var(--card) / .9)}.bg-cyan-100{--tw-bg-opacity: 1;background-color:rgb(207 250 254 / var(--tw-bg-opacity, 1))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-400{--tw-bg-opacity: 1;background-color:rgb(52 211 153 / var(--tw-bg-opacity, 1))}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground{background-color:hsl(var(--muted-foreground))}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/70{background-color:hsl(var(--muted) / .7)}.bg-primary{background-color:hsl(var(--primary))}.bg-primary-foreground\/15{background-color:hsl(var(--primary-foreground) / .15)}.bg-rose-100{--tw-bg-opacity: 1;background-color:rgb(255 228 230 / var(--tw-bg-opacity, 1))}.bg-rose-50{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.bg-rose-500{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity, 1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/30{background-color:hsl(var(--secondary) / .3)}.bg-secondary\/40{background-color:hsl(var(--secondary) / .4)}.bg-secondary\/50{background-color:hsl(var(--secondary) / .5)}.bg-secondary\/60{background-color:hsl(var(--secondary) / .6)}.bg-sky-400{--tw-bg-opacity: 1;background-color:rgb(56 189 248 / var(--tw-bg-opacity, 1))}.bg-sky-50{--tw-bg-opacity: 1;background-color:rgb(240 249 255 / var(--tw-bg-opacity, 1))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-violet-100{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.object-contain{-o-object-fit:contain;object-fit:contain}.p-1{padding:.25rem}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-10{padding-bottom:2.5rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pl-4{padding-left:1rem}.pl-6{padding-left:1.5rem}.pr-1{padding-right:.25rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.tracking-\[0\.12em\]{letter-spacing:.12em}.tracking-\[0\.28em\]{letter-spacing:.28em}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-\[0\.3em\]{letter-spacing:.3em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-background{color:hsl(var(--background))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-cyan-700{--tw-text-opacity: 1;color:rgb(14 116 144 / var(--tw-text-opacity, 1))}.text-destructive{color:hsl(var(--destructive))}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-rose-500{--tw-text-opacity: 1;color:rgb(244 63 94 / var(--tw-text-opacity, 1))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-sky-500{--tw-text-opacity: 1;color:rgb(14 165 233 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-violet-700{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-black\/10{--tw-shadow-color: rgb(0 0 0 / .1);--tw-shadow: var(--tw-shadow-colored)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,transform\]{transition-property:width,transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-\[transform\]{will-change:transform}html{scrollbar-gutter:stable}*{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.35) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:#00000059;border-radius:999px;border:2px solid transparent;background-clip:content-box}.scrollbar-slim::-webkit-scrollbar{width:6px;height:6px}.scrollbar-slim::-webkit-scrollbar-thumb{background-color:#0006}.cv-auto{content-visibility:auto;contain-intrinsic-size:0 44px}.monitor-badge--up{background:#d1fae5;color:#065f46}.monitor-badge--warn{background:#fef3c7;color:#b45309}.monitor-badge--down{background:#fee2e2;color:#991b1b}.monitor-badge--unknown{background:#f3f4f6;color:#6b7280}.monitor-card{border-radius:16px;padding:0;background:hsl(var(--card));box-shadow:none}.monitor-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.monitor-card__name{font-size:14px;font-weight:600;color:hsl(var(--foreground))}.monitor-card__badge{padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600}.monitor-card__stats{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:hsl(var(--muted-foreground));margin-bottom:12px}.monitor-card__value{margin-left:4px;color:hsl(var(--foreground));font-weight:600}.monitor-card__beats{display:flex;gap:2px;height:24px;align-items:flex-end}.monitor-beat{flex:1;min-width:4px;max-width:8px;border-radius:2px;transition:all .2s;position:relative}.monitor-beat:hover{opacity:.8;transform:scaleY(1.1)}.monitor-beat--up{background:#34c759;height:100%}.monitor-beat--warn,.monitor-beat--slow{background:#f5c15b;height:100%}.monitor-beat--down{background:#ff3b30;height:100%}.monitor-beat--empty{background:#e5e5ea;height:40%}.monitor-beat__tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#1d1d1f;color:#fff;padding:6px 10px;border-radius:6px;font-size:11px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;margin-bottom:6px;z-index:10}.monitor-beat__tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#1d1d1f}.monitor-beat:hover .monitor-beat__tooltip{opacity:1}.help-dot{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:999px;border:1px solid hsl(var(--border));font-size:10px;line-height:1;color:hsl(var(--muted-foreground));cursor:default}@media(max-width:768px){.monitor-beat{min-width:3px;max-width:6px}}@media(min-width:1024px){.dashboard-split{flex-direction:row;flex-wrap:nowrap}.dashboard-split .dashboard-main{flex:0 0 66.6667%;max-width:66.6667%}.dashboard-split .dashboard-side{flex:0 0 33.3333%;max-width:33.3333%}}@keyframes logo-float{0%{transform:translateY(0)}25%{transform:translateY(6px)}50%{transform:translateY(0)}75%{transform:translateY(-6px)}to{transform:translateY(0)}}@keyframes logo-blink{0%,45%,55%,to{transform:scaleY(1);opacity:1}50%{transform:scaleY(.1);opacity:.6}}.logo-mark .logo-cat-wrapper{animation:logo-float 4s ease-in-out infinite;transform-origin:center}.logo-mark{transform:translateY(2px)}.logo-mark .logo-eye{fill:#00bcd4;filter:drop-shadow(0 0 2px #00bcd4);animation:logo-blink 5s infinite;transform-box:fill-box;transform-origin:center}.hover\:border-destructive:hover{border-color:hsl(var(--destructive))}.hover\:border-destructive\/40:hover{border-color:hsl(var(--destructive) / .4)}.hover\:border-destructive\/60:hover{border-color:hsl(var(--destructive) / .6)}.hover\:border-foreground:hover{border-color:hsl(var(--foreground))}.hover\:border-primary:hover{border-color:hsl(var(--primary))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/10:hover{background-color:hsl(var(--destructive) / .1)}.hover\:bg-secondary\/60:hover{background-color:hsl(var(--secondary) / .6)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-emerald-500:hover{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.focus\:border-transparent:focus{border-color:transparent}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:text-accent-foreground{color:hsl(var(--accent-foreground))}.group:hover .group-hover\:opacity-100{opacity:1}.peer:checked~.peer-checked\:border-foreground{border-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:bg-foreground{background-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.peer:disabled~.peer-disabled\:opacity-50{opacity:.5}@media(min-width:640px){.sm\:ml-0{margin-left:0}.sm\:flex{display:flex}.sm\:w-44{width:11rem}.sm\:w-48{width:12rem}.sm\:w-auto{width:auto}.sm\:min-w-0{min-width:0px}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:items-center{align-items:center}}@media(min-width:768px){.md\:w-auto{width:auto}.md\:flex-1{flex:1 1 0%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1024px){.lg\:static{position:static}.lg\:sticky{position:sticky}.lg\:top-0{top:0}.lg\:ml-0{margin-left:0}.lg\:hidden{display:none}.lg\:h-20{height:5rem}.lg\:h-64{height:16rem}.lg\:h-72{height:18rem}.lg\:h-screen{height:100vh}.lg\:w-20{width:5rem}.lg\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:border-b-0{border-bottom-width:0px}.lg\:border-r{border-right-width:1px}.lg\:bg-card\/80{background-color:hsl(var(--card) / .8)}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:py-4{padding-top:1rem;padding-bottom:1rem}.lg\:pt-10{padding-top:2.5rem}.lg\:pt-5{padding-top:1.25rem}.lg\:pt-6{padding-top:1.5rem}.lg\:text-2xl{font-size:1.5rem;line-height:2rem}.lg\:backdrop-blur-none{--tw-backdrop-blur: ;-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}}@media(min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}} diff --git a/static/assets/index-B38eA7T4.js b/static/assets/index-B38eA7T4.js new file mode 100644 index 0000000000000000000000000000000000000000..73199ed77b4385c09c9b53aca9e2e7ecf8dfec59 --- /dev/null +++ b/static/assets/index-B38eA7T4.js @@ -0,0 +1,7 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PublicUptime-ciOMZPPd.js","assets/useUptimeStatus-BHHQ7xhw.js","assets/Login-De5OO3WM.js","assets/Checkbox.vue_vue_type_script_setup_true_lang-mPA_O7TM.js","assets/AppShell-D4_kHEqh.js","assets/settings-CVW1vhYs.js","assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-B4oTz-IR.js","assets/useConfirmDialog-DRJ5fetN.js","assets/Dashboard-DaZ0njmu.js","assets/HelpTip.vue_vue_type_script_setup_true_lang-P0lttIQ0.js","assets/Accounts-CS68WEf6.js","assets/SelectMenu.vue_vue_type_script_setup_true_lang-n4k9i9SG.js","assets/Settings-B68jiI6O.js","assets/Logs-otvcDIGF.js","assets/Monitor-C3RzkUxt.js"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function As(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const ce={},Yt=[],ct=()=>{},Ai=()=>!1,mr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Rs=e=>e.startsWith("onUpdate:"),Ee=Object.assign,Cs=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Lc=Object.prototype.hasOwnProperty,oe=(e,t)=>Lc.call(e,t),K=Array.isArray,Zt=e=>gr(e)==="[object Map]",Ri=e=>gr(e)==="[object Set]",J=e=>typeof e=="function",pe=e=>typeof e=="string",Et=e=>typeof e=="symbol",ae=e=>e!==null&&typeof e=="object",Ci=e=>(ae(e)||J(e))&&J(e.then)&&J(e.catch),Oi=Object.prototype.toString,gr=e=>Oi.call(e),Dc=e=>gr(e).slice(8,-1),Ti=e=>gr(e)==="[object Object]",yr=e=>pe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,mn=As(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),br=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},Fc=/-\w/g,Nt=br(e=>e.replace(Fc,t=>t.slice(1).toUpperCase())),Mc=/\B([A-Z])/g,Wt=br(e=>e.replace(Mc,"-$1").toLowerCase()),xi=br(e=>e.charAt(0).toUpperCase()+e.slice(1)),Mr=br(e=>e?`on${xi(e)}`:""),xt=(e,t)=>!Object.is(e,t),Jn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},Os=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Bc=e=>{const t=pe(e)?Number(e):NaN;return isNaN(t)?e:t};let no;const _r=()=>no||(no=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ts(e){if(K(e)){const t={};for(let n=0;n{if(n){const r=n.split(jc);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function xs(e){let t="";if(pe(e))t=e;else if(K(e))for(let n=0;n!!(e&&e.__v_isRef===!0),qc=e=>pe(e)?e:e==null?"":K(e)||ae(e)&&(e.toString===Oi||!J(e.toString))?Ii(e)?qc(e.value):JSON.stringify(e,Li,2):String(e),Li=(e,t)=>Ii(t)?Li(e,t.value):Zt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[Br(r,o)+" =>"]=s,n),{})}:Ri(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Br(n))}:Et(t)?Br(t):ae(t)&&!K(t)&&!Ti(t)?String(t):t,Br=(e,t="")=>{var n;return Et(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let we;class Di{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=we,!t&&we&&(this.index=(we.scopes||(we.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&&(we=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if(yn){let t=yn;for(yn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;gn;){let t=gn;for(gn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function Hi(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function ki(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),Is(r),Wc(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function ns(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Vi(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Vi(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Cn)||(e.globalVersion=Cn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!ns(e))))return;e.flags|=2;const t=e.dep,n=fe,r=We;fe=e,We=!0;try{Hi(e);const s=e.fn(e._value);(t.version===0||xt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{fe=n,We=r,ki(e),e.flags&=-3}}function Is(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)Is(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Wc(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let We=!0;const $i=[];function yt(){$i.push(We),We=!1}function bt(){const e=$i.pop();We=e===void 0?!0:e}function ro(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=fe;fe=void 0;try{t()}finally{fe=n}}}let Cn=0;class Gc{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 Ls{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(!fe||!We||fe===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==fe)n=this.activeLink=new Gc(fe,this),fe.deps?(n.prevDep=fe.depsTail,fe.depsTail.nextDep=n,fe.depsTail=n):fe.deps=fe.depsTail=n,qi(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=fe.depsTail,n.nextDep=void 0,fe.depsTail.nextDep=n,fe.depsTail=n,fe.deps===n&&(fe.deps=r)}return n}trigger(t){this.version++,Cn++,this.notify(t)}notify(t){Ps();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Ns()}}}function qi(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)qi(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const sr=new WeakMap,kt=Symbol(""),rs=Symbol(""),On=Symbol("");function Se(e,t,n){if(We&&fe){let r=sr.get(e);r||sr.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new Ls),s.map=r,s.key=n),s.track()}}function mt(e,t,n,r,s,o){const i=sr.get(e);if(!i){Cn++;return}const l=c=>{c&&c.trigger()};if(Ps(),t==="clear")i.forEach(l);else{const c=K(e),u=c&&yr(n);if(c&&n==="length"){const a=Number(r);i.forEach((f,p)=>{(p==="length"||p===On||!Et(p)&&p>=a)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(On)),t){case"add":c?u&&l(i.get("length")):(l(i.get(kt)),Zt(e)&&l(i.get(rs)));break;case"delete":c||(l(i.get(kt)),Zt(e)&&l(i.get(rs)));break;case"set":Zt(e)&&l(i.get(kt));break}}Ns()}function zc(e,t){const n=sr.get(e);return n&&n.get(t)}function Gt(e){const t=re(e);return t===e?t:(Se(t,"iterate",On),He(e)?t:t.map(Ge))}function Er(e){return Se(e=re(e),"iterate",On),e}function Rt(e,t){return _t(e)?at(e)?nn(Ge(t)):nn(t):Ge(t)}const Jc={__proto__:null,[Symbol.iterator](){return jr(this,Symbol.iterator,e=>Rt(this,e))},concat(...e){return Gt(this).concat(...e.map(t=>K(t)?Gt(t):t))},entries(){return jr(this,"entries",e=>(e[1]=Rt(this,e[1]),e))},every(e,t){return ut(this,"every",e,t,void 0,arguments)},filter(e,t){return ut(this,"filter",e,t,n=>n.map(r=>Rt(this,r)),arguments)},find(e,t){return ut(this,"find",e,t,n=>Rt(this,n),arguments)},findIndex(e,t){return ut(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ut(this,"findLast",e,t,n=>Rt(this,n),arguments)},findLastIndex(e,t){return ut(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ut(this,"forEach",e,t,void 0,arguments)},includes(...e){return Hr(this,"includes",e)},indexOf(...e){return Hr(this,"indexOf",e)},join(e){return Gt(this).join(e)},lastIndexOf(...e){return Hr(this,"lastIndexOf",e)},map(e,t){return ut(this,"map",e,t,void 0,arguments)},pop(){return un(this,"pop")},push(...e){return un(this,"push",e)},reduce(e,...t){return so(this,"reduce",e,t)},reduceRight(e,...t){return so(this,"reduceRight",e,t)},shift(){return un(this,"shift")},some(e,t){return ut(this,"some",e,t,void 0,arguments)},splice(...e){return un(this,"splice",e)},toReversed(){return Gt(this).toReversed()},toSorted(e){return Gt(this).toSorted(e)},toSpliced(...e){return Gt(this).toSpliced(...e)},unshift(...e){return un(this,"unshift",e)},values(){return jr(this,"values",e=>Rt(this,e))}};function jr(e,t,n){const r=Er(e),s=r[t]();return r!==e&&!He(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const Xc=Array.prototype;function ut(e,t,n,r,s,o){const i=Er(e),l=i!==e&&!He(e),c=i[t];if(c!==Xc[t]){const f=c.apply(e,o);return l?Ge(f):f}let u=n;i!==e&&(l?u=function(f,p){return n.call(this,Rt(e,f),p,e)}:n.length>2&&(u=function(f,p){return n.call(this,f,p,e)}));const a=c.call(i,u,r);return l&&s?s(a):a}function so(e,t,n,r){const s=Er(e);let o=n;return s!==e&&(He(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,Rt(e,l),c,e)}),s[t](o,...r)}function Hr(e,t,n){const r=re(e);Se(r,"iterate",On);const s=r[t](...n);return(s===-1||s===!1)&&wr(n[0])?(n[0]=re(n[0]),r[t](...n)):s}function un(e,t,n=[]){yt(),Ps();const r=re(e)[t].apply(e,n);return Ns(),bt(),r}const Qc=As("__proto__,__v_isRef,__isVue"),Ki=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Et));function Yc(e){Et(e)||(e=String(e));const t=re(this);return Se(t,"has",e),t.hasOwnProperty(e)}class Wi{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?ca:Xi:o?Ji:zi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=K(t);if(!s){let c;if(i&&(c=Jc[n]))return c;if(n==="hasOwnProperty")return Yc}const l=Reflect.get(t,n,de(t)?t:r);if((Et(n)?Ki.has(n):Qc(n))||(s||Se(t,"get",n),o))return l;if(de(l)){const c=i&&yr(n)?l:l.value;return s&&ae(c)?os(c):c}return ae(l)?s?os(l):Fn(l):l}}class Gi extends Wi{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=K(t)&&yr(n);if(!this._isShallow){const u=_t(o);if(!He(r)&&!_t(r)&&(o=re(o),r=re(r)),!i&&de(o)&&!de(r))return u||(o.value=r),!0}const l=i?Number(n)e,Vn=e=>Reflect.getPrototypeOf(e);function ra(e,t,n){return function(...r){const s=this.__v_raw,o=re(s),i=Zt(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=s[e](...r),a=n?ss:t?nn:Ge;return!t&&Se(o,"iterate",c?rs:kt),{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 $n(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function sa(e,t){const n={get(s){const o=this.__v_raw,i=re(o),l=re(s);e||(xt(s,l)&&Se(i,"get",s),Se(i,"get",l));const{has:c}=Vn(i),u=t?ss:e?nn:Ge;if(c.call(i,s))return u(o.get(s));if(c.call(i,l))return u(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&Se(re(s),"iterate",kt),s.size},has(s){const o=this.__v_raw,i=re(o),l=re(s);return e||(xt(s,l)&&Se(i,"has",s),Se(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,c=re(l),u=t?ss:e?nn:Ge;return!e&&Se(c,"iterate",kt),l.forEach((a,f)=>s.call(o,u(a),u(f),i))}};return Ee(n,e?{add:$n("add"),set:$n("set"),delete:$n("delete"),clear:$n("clear")}:{add(s){!t&&!He(s)&&!_t(s)&&(s=re(s));const o=re(this);return Vn(o).has.call(o,s)||(o.add(s),mt(o,"add",s,s)),this},set(s,o){!t&&!He(o)&&!_t(o)&&(o=re(o));const i=re(this),{has:l,get:c}=Vn(i);let u=l.call(i,s);u||(s=re(s),u=l.call(i,s));const a=c.call(i,s);return i.set(s,o),u?xt(o,a)&&mt(i,"set",s,o):mt(i,"add",s,o),this},delete(s){const o=re(this),{has:i,get:l}=Vn(o);let c=i.call(o,s);c||(s=re(s),c=i.call(o,s)),l&&l.call(o,s);const u=o.delete(s);return c&&mt(o,"delete",s,void 0),u},clear(){const s=re(this),o=s.size!==0,i=s.clear();return o&&mt(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=ra(s,e,t)}),n}function Ds(e,t){const n=sa(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(oe(n,s)&&s in r?n:r,s,o)}const oa={get:Ds(!1,!1)},ia={get:Ds(!1,!0)},la={get:Ds(!0,!1)};const zi=new WeakMap,Ji=new WeakMap,Xi=new WeakMap,ca=new WeakMap;function aa(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ua(e){return e.__v_skip||!Object.isExtensible(e)?0:aa(Dc(e))}function Fn(e){return _t(e)?e:Fs(e,!1,ea,oa,zi)}function Qi(e){return Fs(e,!1,na,ia,Ji)}function os(e){return Fs(e,!0,ta,la,Xi)}function Fs(e,t,n,r,s){if(!ae(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=ua(e);if(o===0)return e;const i=s.get(e);if(i)return i;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function at(e){return _t(e)?at(e.__v_raw):!!(e&&e.__v_isReactive)}function _t(e){return!!(e&&e.__v_isReadonly)}function He(e){return!!(e&&e.__v_isShallow)}function wr(e){return e?!!e.__v_raw:!1}function re(e){const t=e&&e.__v_raw;return t?re(t):e}function Ms(e){return!oe(e,"__v_skip")&&Object.isExtensible(e)&&Pi(e,"__v_skip",!0),e}const Ge=e=>ae(e)?Fn(e):e,nn=e=>ae(e)?os(e):e;function de(e){return e?e.__v_isRef===!0:!1}function Vt(e){return Yi(e,!1)}function fa(e){return Yi(e,!0)}function Yi(e,t){return de(e)?e:new da(e,t)}class da{constructor(t,n){this.dep=new Ls,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:re(t),this._value=n?t:Ge(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||He(t)||_t(t);t=r?t:re(t),xt(t,n)&&(this._rawValue=t,this._value=r?t:Ge(t),this.dep.trigger())}}function Pt(e){return de(e)?e.value:e}const ha={get:(e,t,n)=>t==="__v_raw"?e:Pt(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return de(s)&&!de(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Zi(e){return at(e)?e:new Proxy(e,ha)}function pa(e){const t=K(e)?new Array(e.length):{};for(const n in e)t[n]=el(e,n);return t}class ma{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._raw=re(t);let s=!0,o=t;if(!K(t)||!yr(String(n)))do s=!wr(o)||He(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=Pt(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&de(this._raw[this._key])){const n=this._object[this._key];if(de(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return zc(this._raw,this._key)}}class ga{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function ya(e,t,n){return de(e)?e:J(e)?new ga(e):ae(e)&&arguments.length>1?el(e,t,n):Vt(e)}function el(e,t,n){return new ma(e,t,n)}class ba{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Ls(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Cn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&fe!==this)return ji(this,!0),!0}get value(){const t=this.dep.track();return Vi(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function _a(e,t,n=!1){let r,s;return J(e)?r=e:(r=e.get,s=e.set),new ba(r,s,n)}const qn={},or=new WeakMap;let Bt;function Ea(e,t=!1,n=Bt){if(n){let r=or.get(n);r||or.set(n,r=[]),r.push(e)}}function wa(e,t,n=ce){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:c}=n,u=x=>s?x:He(x)||s===!1||s===0?gt(x,1):gt(x);let a,f,p,m,g=!1,_=!1;if(de(e)?(f=()=>e.value,g=He(e)):at(e)?(f=()=>u(e),g=!0):K(e)?(_=!0,g=e.some(x=>at(x)||He(x)),f=()=>e.map(x=>{if(de(x))return x.value;if(at(x))return u(x);if(J(x))return c?c(x,2):x()})):J(e)?t?f=c?()=>c(e,2):e:f=()=>{if(p){yt();try{p()}finally{bt()}}const x=Bt;Bt=a;try{return c?c(e,3,[m]):e(m)}finally{Bt=x}}:f=ct,t&&s){const x=f,U=s===!0?1/0:s;f=()=>gt(x(),U)}const E=Mi(),C=()=>{a.stop(),E&&E.active&&Cs(E.effects,a)};if(o&&t){const x=t;t=(...U)=>{x(...U),C()}}let T=_?new Array(e.length).fill(qn):qn;const N=x=>{if(!(!(a.flags&1)||!a.dirty&&!x))if(t){const U=a.run();if(s||g||(_?U.some((G,H)=>xt(G,T[H])):xt(U,T))){p&&p();const G=Bt;Bt=a;try{const H=[U,T===qn?void 0:_&&T[0]===qn?[]:T,m];T=U,c?c(t,3,H):t(...H)}finally{Bt=G}}}else a.run()};return l&&l(N),a=new Bi(f),a.scheduler=i?()=>i(N,!1):N,m=x=>Ea(x,!1,a),p=a.onStop=()=>{const x=or.get(a);if(x){if(c)c(x,4);else for(const U of x)U();or.delete(a)}},t?r?N(!0):T=a.run():i?i(N.bind(null,!0),!0):a.run(),C.pause=a.pause.bind(a),C.resume=a.resume.bind(a),C.stop=C,C}function gt(e,t=1/0,n){if(t<=0||!ae(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,de(e))gt(e.value,t,n);else if(K(e))for(let r=0;r{gt(r,t,n)});else if(Ti(e)){for(const r in e)gt(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&>(e[r],t,n)}return e}function Mn(e,t,n,r){try{return r?e(...r):e()}catch(s){Sr(s,t,n)}}function ze(e,t,n,r){if(J(e)){const s=Mn(e,t,n,r);return s&&Ci(s)&&s.catch(o=>{Sr(o,t,n)}),s}if(K(e)){const s=[];for(let o=0;o>>1,s=xe[r],o=Tn(s);o=Tn(n)?xe.push(e):xe.splice(va(t),0,e),e.flags|=1,nl()}}function nl(){ir||(ir=tl.then(sl))}function Aa(e){K(e)?en.push(...e):Ct&&e.id===-1?Ct.splice(Jt+1,0,e):e.flags&1||(en.push(e),e.flags|=1),nl()}function oo(e,t,n=it+1){for(;nTn(n)-Tn(r));if(en.length=0,Ct){Ct.push(...t);return}for(Ct=t,Jt=0;Jte.id==null?e.flags&2?-1:1/0:e.id;function sl(e){try{for(it=0;it{r._d&&fr(-1);const o=lr(t);let i;try{i=e(...s)}finally{lr(o),r._d&&fr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function rp(e,t){if(Re===null)return e;const n=Or(Re),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&J(t)?t.call(r&&r.proxy):t}}function Ca(){return!!(qs()||$t)}const Oa=Symbol.for("v-scx"),Ta=()=>qe(Oa);function bn(e,t,n){return il(e,t,n)}function il(e,t,n=ce){const{immediate:r,deep:s,flush:o,once:i}=n,l=Ee({},n),c=t&&r||!t&&o!=="post";let u;if(In){if(o==="sync"){const m=Ta();u=m.__watcherHandles||(m.__watcherHandles=[])}else if(!c){const m=()=>{};return m.stop=ct,m.resume=ct,m.pause=ct,m}}const a=Pe;l.call=(m,g,_)=>ze(m,a,g,_);let f=!1;o==="post"?l.scheduler=m=>{Oe(m,a&&a.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(m,g)=>{g?m():Us(m)}),l.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,a&&(m.id=a.uid,m.i=a))};const p=wa(e,t,l);return In&&(u?u.push(p):c&&p()),p}function xa(e,t,n){const r=this.proxy,s=pe(e)?e.includes(".")?ll(r,e):()=>r[e]:e.bind(r,r);let o;J(t)?o=t:(o=t.handler,n=t);const i=Bn(this),l=il(s,o.bind(r),n);return i(),l}function ll(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,_n=e=>e&&(e.disabled||e.disabled===""),io=e=>e&&(e.defer||e.defer===""),lo=e=>typeof SVGElement<"u"&&e instanceof SVGElement,co=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,is=(e,t)=>{const n=e&&e.to;return pe(n)?t?t(n):null:n},ul={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,u){const{mc:a,pc:f,pbc:p,o:{insert:m,querySelector:g,createText:_,createComment:E}}=u,C=_n(t.props);let{shapeFlag:T,children:N,dynamicChildren:x}=t;if(e==null){const U=t.el=_(""),G=t.anchor=_("");m(U,n,r),m(G,n,r);const H=(O,k)=>{T&16&&a(N,O,k,s,o,i,l,c)},j=()=>{const O=t.target=is(t.props,g),k=fl(O,t,_,m);O&&(i!=="svg"&&lo(O)?i="svg":i!=="mathml"&&co(O)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(O),C||(H(O,k),Qn(t,!1)))};C&&(H(n,G),Qn(t,!0)),io(t.props)?(t.el.__isMounted=!1,Oe(()=>{j(),delete t.el.__isMounted},o)):j()}else{if(io(t.props)&&e.el.__isMounted===!1){Oe(()=>{ul.process(e,t,n,r,s,o,i,l,c,u)},o);return}t.el=e.el,t.targetStart=e.targetStart;const U=t.anchor=e.anchor,G=t.target=e.target,H=t.targetAnchor=e.targetAnchor,j=_n(e.props),O=j?n:G,k=j?U:H;if(i==="svg"||lo(G)?i="svg":(i==="mathml"||co(G))&&(i="mathml"),x?(p(e.dynamicChildren,x,O,s,o,i,l),Vs(e,t,!0)):c||f(e,t,O,k,s,o,i,l,!1),C)j?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Kn(t,n,U,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const Y=t.target=is(t.props,g);Y&&Kn(t,Y,null,u,0)}else j&&Kn(t,G,H,u,1);Qn(t,C)}},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetStart:u,targetAnchor:a,target:f,props:p}=e;if(f&&(s(u),s(a)),o&&s(c),i&16){const m=o||!_n(p);for(let g=0;g{e.isMounted=!0}),El(()=>{e.isUnmounting=!0}),e}const $e=[Function,Array],dl={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:$e,onEnter:$e,onAfterEnter:$e,onEnterCancelled:$e,onBeforeLeave:$e,onLeave:$e,onAfterLeave:$e,onLeaveCancelled:$e,onBeforeAppear:$e,onAppear:$e,onAfterAppear:$e,onAppearCancelled:$e},hl=e=>{const t=e.subTree;return t.component?hl(t.component):t},Ia={name:"BaseTransition",props:dl,setup(e,{slots:t}){const n=qs(),r=Na();return()=>{const s=t.default&&gl(t.default(),!0);if(!s||!s.length)return;const o=pl(s),i=re(e),{mode:l}=i;if(r.isLeaving)return kr(o);const c=ao(o);if(!c)return kr(o);let u=ls(c,i,r,n,f=>u=f);c.type!==ve&&xn(c,u);let a=n.subTree&&ao(n.subTree);if(a&&a.type!==ve&&!Ut(a,c)&&hl(n).type!==ve){let f=ls(a,i,r,n);if(xn(a,f),l==="out-in"&&c.type!==ve)return r.isLeaving=!0,f.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete f.afterLeave,a=void 0},kr(o);l==="in-out"&&c.type!==ve?f.delayLeave=(p,m,g)=>{const _=ml(r,a);_[String(a.key)]=a,p[pt]=()=>{m(),p[pt]=void 0,delete u.delayedLeave,a=void 0},u.delayedLeave=()=>{g(),delete u.delayedLeave,a=void 0}}:a=void 0}else a&&(a=void 0);return o}}};function pl(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==ve){t=n;break}}return t}const La=Ia;function ml(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function ls(e,t,n,r,s){const{appear:o,mode:i,persisted:l=!1,onBeforeEnter:c,onEnter:u,onAfterEnter:a,onEnterCancelled:f,onBeforeLeave:p,onLeave:m,onAfterLeave:g,onLeaveCancelled:_,onBeforeAppear:E,onAppear:C,onAfterAppear:T,onAppearCancelled:N}=t,x=String(e.key),U=ml(n,e),G=(O,k)=>{O&&ze(O,r,9,k)},H=(O,k)=>{const Y=k[1];G(O,k),K(O)?O.every(L=>L.length<=1)&&Y():O.length<=1&&Y()},j={mode:i,persisted:l,beforeEnter(O){let k=c;if(!n.isMounted)if(o)k=E||c;else return;O[pt]&&O[pt](!0);const Y=U[x];Y&&Ut(e,Y)&&Y.el[pt]&&Y.el[pt](),G(k,[O])},enter(O){let k=u,Y=a,L=f;if(!n.isMounted)if(o)k=C||u,Y=T||a,L=N||f;else return;let Q=!1;const le=O[Wn]=_e=>{Q||(Q=!0,_e?G(L,[O]):G(Y,[O]),j.delayedLeave&&j.delayedLeave(),O[Wn]=void 0)};k?H(k,[O,le]):le()},leave(O,k){const Y=String(e.key);if(O[Wn]&&O[Wn](!0),n.isUnmounting)return k();G(p,[O]);let L=!1;const Q=O[pt]=le=>{L||(L=!0,k(),le?G(_,[O]):G(g,[O]),O[pt]=void 0,U[Y]===e&&delete U[Y])};U[Y]=e,m?H(m,[O,Q]):Q()},clone(O){const k=ls(O,t,n,r,s);return s&&s(k),k}};return j}function kr(e){if(vr(e))return e=It(e),e.children=null,e}function ao(e){if(!vr(e))return al(e.type)&&e.children?pl(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&J(n.default))return n.default()}}function xn(e,t){e.shapeFlag&6&&e.component?(e.transition=t,xn(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 gl(e,t=!1,n){let r=[],s=0;for(let o=0;o1)for(let o=0;oEn(g,t&&(K(t)?t[_]:t),n,r,s));return}if(tn(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&En(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?Or(r.component):r.el,i=s?null:o,{i:l,r:c}=e,u=t&&t.r,a=l.refs===ce?l.refs={}:l.refs,f=l.setupState,p=re(f),m=f===ce?Ai:g=>oe(p,g);if(u!=null&&u!==c){if(uo(t),pe(u))a[u]=null,m(u)&&(f[u]=null);else if(de(u)){u.value=null;const g=t;g.k&&(a[g.k]=null)}}if(J(c))Mn(c,l,12,[i,a]);else{const g=pe(c),_=de(c);if(g||_){const E=()=>{if(e.f){const C=g?m(c)?f[c]:a[c]:c.value;if(s)K(C)&&Cs(C,o);else if(K(C))C.includes(o)||C.push(o);else if(g)a[c]=[o],m(c)&&(f[c]=a[c]);else{const T=[o];c.value=T,e.k&&(a[e.k]=T)}}else g?(a[c]=i,m(c)&&(f[c]=i)):_&&(c.value=i,e.k&&(a[e.k]=i))};if(i){const C=()=>{E(),cr.delete(e)};C.id=-1,cr.set(e,C),Oe(C,n)}else uo(e),E()}}}function uo(e){const t=cr.get(e);t&&(t.flags|=8,cr.delete(e))}_r().requestIdleCallback;_r().cancelIdleCallback;const tn=e=>!!e.type.__asyncLoader,vr=e=>e.type.__isKeepAlive;function Da(e,t){bl(e,"a",t)}function Fa(e,t){bl(e,"da",t)}function bl(e,t,n=Pe){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Ar(t,r,n),n){let s=n.parent;for(;s&&s.parent;)vr(s.parent.vnode)&&Ma(r,t,n,s),s=s.parent}}function Ma(e,t,n,r){const s=Ar(t,e,r,!0);wl(()=>{Cs(r[t],s)},n)}function Ar(e,t,n=Pe,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{yt();const l=Bn(n),c=ze(t,n,e,i);return l(),bt(),c});return r?s.unshift(o):s.push(o),o}}const wt=e=>(t,n=Pe)=>{(!In||e==="sp")&&Ar(e,(...r)=>t(...r),n)},Ba=wt("bm"),_l=wt("m"),Ua=wt("bu"),ja=wt("u"),El=wt("bum"),wl=wt("um"),Ha=wt("sp"),ka=wt("rtg"),Va=wt("rtc");function $a(e,t=Pe){Ar("ec",e,t)}const qa=Symbol.for("v-ndc");function op(e,t,n,r){let s;const o=n,i=K(e);if(i||pe(e)){const l=i&&at(e);let c=!1,u=!1;l&&(c=!He(e),u=_t(e),e=Er(e)),s=new Array(e.length);for(let a=0,f=e.length;at(l,c,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let c=0,u=l.length;c0;return ur(),dr(De,null,[Ne("slot",n,r)],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),ur();const i=o&&Sl(o(n)),l=n.key||i&&i.key,c=dr(De,{key:(l&&!Et(l)?l:`_${t}`)+(!i&&r?"_fb":"")},i||[],i&&e._===1?64:-2);return c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),o&&o._c&&(o._d=!0),c}function Sl(e){return e.some(t=>Nn(t)?!(t.type===ve||t.type===De&&!Sl(t.children)):!0)?e:null}const cs=e=>e?kl(e)?Or(e):cs(e.parent):null,wn=Ee(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=>cs(e.parent),$root:e=>cs(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Al(e),$forceUpdate:e=>e.f||(e.f=()=>{Us(e.update)}),$nextTick:e=>e.n||(e.n=Bs.bind(e.proxy)),$watch:e=>xa.bind(e)}),Vr=(e,t)=>e!==ce&&!e.__isScriptSetup&&oe(e,t),Ka={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,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 r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(Vr(r,t))return i[t]=1,r[t];if(s!==ce&&oe(s,t))return i[t]=2,s[t];if(oe(o,t))return i[t]=3,o[t];if(n!==ce&&oe(n,t))return i[t]=4,n[t];as&&(i[t]=0)}}const u=wn[t];let a,f;if(u)return t==="$attrs"&&Se(e.attrs,"get",""),u(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==ce&&oe(n,t))return i[t]=4,n[t];if(f=c.config.globalProperties,oe(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return Vr(s,t)?(s[t]=n,!0):r!==ce&&oe(r,t)?(r[t]=n,!0):oe(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:o,type:i}},l){let c;return!!(n[l]||e!==ce&&l[0]!=="$"&&oe(e,l)||Vr(t,l)||oe(o,l)||oe(r,l)||oe(wn,l)||oe(s.config.globalProperties,l)||(c=i.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:oe(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function fo(e){return K(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let as=!0;function Wa(e){const t=Al(e),n=e.proxy,r=e.ctx;as=!1,t.beforeCreate&&ho(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:u,created:a,beforeMount:f,mounted:p,beforeUpdate:m,updated:g,activated:_,deactivated:E,beforeDestroy:C,beforeUnmount:T,destroyed:N,unmounted:x,render:U,renderTracked:G,renderTriggered:H,errorCaptured:j,serverPrefetch:O,expose:k,inheritAttrs:Y,components:L,directives:Q,filters:le}=t;if(u&&Ga(u,r,null),i)for(const z in i){const Z=i[z];J(Z)&&(r[z]=Z.bind(n))}if(s){const z=s.call(n,n);ae(z)&&(e.data=Fn(z))}if(as=!0,o)for(const z in o){const Z=o[z],ke=J(Z)?Z.bind(n,n):J(Z.get)?Z.get.bind(n,n):ct,Qe=!J(Z)&&J(Z.set)?Z.set.bind(n):ct,ye=Ue({get:ke,set:Qe});Object.defineProperty(r,z,{enumerable:!0,configurable:!0,get:()=>ye.value,set:me=>ye.value=me})}if(l)for(const z in l)vl(l[z],r,n,z);if(c){const z=J(c)?c.call(n):c;Reflect.ownKeys(z).forEach(Z=>{Xn(Z,z[Z])})}a&&ho(a,e,"c");function ee(z,Z){K(Z)?Z.forEach(ke=>z(ke.bind(n))):Z&&z(Z.bind(n))}if(ee(Ba,f),ee(_l,p),ee(Ua,m),ee(ja,g),ee(Da,_),ee(Fa,E),ee($a,j),ee(Va,G),ee(ka,H),ee(El,T),ee(wl,x),ee(Ha,O),K(k))if(k.length){const z=e.exposed||(e.exposed={});k.forEach(Z=>{Object.defineProperty(z,Z,{get:()=>n[Z],set:ke=>n[Z]=ke,enumerable:!0})})}else e.exposed||(e.exposed={});U&&e.render===ct&&(e.render=U),Y!=null&&(e.inheritAttrs=Y),L&&(e.components=L),Q&&(e.directives=Q),O&&yl(e)}function Ga(e,t,n=ct){K(e)&&(e=us(e));for(const r in e){const s=e[r];let o;ae(s)?"default"in s?o=qe(s.from||r,s.default,!0):o=qe(s.from||r):o=qe(s),de(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function ho(e,t,n){ze(K(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function vl(e,t,n,r){let s=r.includes(".")?ll(n,r):()=>n[r];if(pe(e)){const o=t[e];J(o)&&bn(s,o)}else if(J(e))bn(s,e.bind(n));else if(ae(e))if(K(e))e.forEach(o=>vl(o,t,n,r));else{const o=J(e.handler)?e.handler.bind(n):t[e.handler];J(o)&&bn(s,o,e)}}function Al(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>ar(c,u,i,!0)),ar(c,t,i)),ae(t)&&o.set(t,c),c}function ar(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&ar(e,o,n,!0),s&&s.forEach(i=>ar(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=za[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const za={data:po,props:mo,emits:mo,methods:pn,computed:pn,beforeCreate:Ce,created:Ce,beforeMount:Ce,mounted:Ce,beforeUpdate:Ce,updated:Ce,beforeDestroy:Ce,beforeUnmount:Ce,destroyed:Ce,unmounted:Ce,activated:Ce,deactivated:Ce,errorCaptured:Ce,serverPrefetch:Ce,components:pn,directives:pn,watch:Xa,provide:po,inject:Ja};function po(e,t){return t?e?function(){return Ee(J(e)?e.call(this,this):e,J(t)?t.call(this,this):t)}:t:e}function Ja(e,t){return pn(us(e),us(t))}function us(e){if(K(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Nt(t)}Modifiers`]||e[`${Wt(t)}Modifiers`];function eu(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||ce;let s=n;const o=t.startsWith("update:"),i=o&&Za(r,t.slice(7));i&&(i.trim&&(s=n.map(a=>pe(a)?a.trim():a)),i.number&&(s=n.map(Os)));let l,c=r[l=Mr(t)]||r[l=Mr(Nt(t))];!c&&o&&(c=r[l=Mr(Wt(t))]),c&&ze(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,ze(u,e,6,s)}}const tu=new WeakMap;function Cl(e,t,n=!1){const r=n?tu:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!J(e)){const c=u=>{const a=Cl(u,t,!0);a&&(l=!0,Ee(i,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(ae(e)&&r.set(e,null),null):(K(o)?o.forEach(c=>i[c]=null):Ee(i,o),ae(e)&&r.set(e,i),i)}function Rr(e,t){return!e||!mr(t)?!1:(t=t.slice(2).replace(/Once$/,""),oe(e,t[0].toLowerCase()+t.slice(1))||oe(e,Wt(t))||oe(e,t))}function go(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:a,props:f,data:p,setupState:m,ctx:g,inheritAttrs:_}=e,E=lr(e);let C,T;try{if(n.shapeFlag&4){const x=s||r,U=x;C=lt(u.call(U,x,a,f,m,p,g)),T=l}else{const x=t;C=lt(x.length>1?x(f,{attrs:l,slots:i,emit:c}):x(f,null)),T=t.props?l:nu(l)}}catch(x){Sn.length=0,Sr(x,e,1),C=Ne(ve)}let N=C;if(T&&_!==!1){const x=Object.keys(T),{shapeFlag:U}=N;x.length&&U&7&&(o&&x.some(Rs)&&(T=ru(T,o)),N=It(N,T,!1,!0))}return n.dirs&&(N=It(N,null,!1,!0),N.dirs=N.dirs?N.dirs.concat(n.dirs):n.dirs),n.transition&&xn(N,n.transition),C=N,lr(E),C}const nu=e=>{let t;for(const n in e)(n==="class"||n==="style"||mr(n))&&((t||(t={}))[n]=e[n]);return t},ru=(e,t)=>{const n={};for(const r in e)(!Rs(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function su(e,t,n){const{props:r,children:s,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 r?yo(r,i,u):!!i;if(c&8){const a=t.dynamicProps;for(let f=0;fObject.create(Ol),xl=e=>Object.getPrototypeOf(e)===Ol;function iu(e,t,n,r=!1){const s={},o=Tl();e.propsDefaults=Object.create(null),Pl(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:Qi(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function lu(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=re(s),[c]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const a=e.vnode.dynamicProps;for(let f=0;f{c=!0;const[p,m]=Nl(f,t,!0);Ee(i,p),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!c)return ae(e)&&r.set(e,Yt),Yt;if(K(o))for(let a=0;ae==="_"||e==="_ctx"||e==="$stable",ks=e=>K(e)?e.map(lt):[lt(e)],au=(e,t,n)=>{if(t._n)return t;const r=Ra((...s)=>ks(t(...s)),n);return r._c=!1,r},Il=(e,t,n)=>{const r=e._ctx;for(const s in e){if(Hs(s))continue;const o=e[s];if(J(o))t[s]=au(s,o,r);else if(o!=null){const i=ks(o);t[s]=()=>i}}},Ll=(e,t)=>{const n=ks(t);e.slots.default=()=>n},Dl=(e,t,n)=>{for(const r in t)(n||!Hs(r))&&(e[r]=t[r])},uu=(e,t,n)=>{const r=e.slots=Tl();if(e.vnode.shapeFlag&32){const s=t._;s?(Dl(r,t,n),n&&Pi(r,"_",s,!0)):Il(t,r)}else t&&Ll(e,t)},fu=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=ce;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:Dl(s,t,n):(o=!t.$stable,Il(t,s)),i=t}else t&&(Ll(e,t),i={default:1});if(o)for(const l in s)!Hs(l)&&i[l]==null&&delete s[l]},Oe=gu;function du(e){return hu(e)}function hu(e,t){const n=_r();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:a,parentNode:f,nextSibling:p,setScopeId:m=ct,insertStaticContent:g}=e,_=(d,h,y,w=null,A=null,S=null,D=void 0,I=null,P=!!h.dynamicChildren)=>{if(d===h)return;d&&!Ut(d,h)&&(w=v(d),me(d,A,S,!0),d=null),h.patchFlag===-2&&(P=!1,h.dynamicChildren=null);const{type:R,ref:q,shapeFlag:M}=h;switch(R){case Cr:E(d,h,y,w);break;case ve:C(d,h,y,w);break;case Yn:d==null&&T(h,y,w,D);break;case De:L(d,h,y,w,A,S,D,I,P);break;default:M&1?U(d,h,y,w,A,S,D,I,P):M&6?Q(d,h,y,w,A,S,D,I,P):(M&64||M&128)&&R.process(d,h,y,w,A,S,D,I,P,V)}q!=null&&A?En(q,d&&d.ref,S,h||d,!h):q==null&&d&&d.ref!=null&&En(d.ref,null,S,d,!0)},E=(d,h,y,w)=>{if(d==null)r(h.el=l(h.children),y,w);else{const A=h.el=d.el;h.children!==d.children&&u(A,h.children)}},C=(d,h,y,w)=>{d==null?r(h.el=c(h.children||""),y,w):h.el=d.el},T=(d,h,y,w)=>{[d.el,d.anchor]=g(d.children,h,y,w,d.el,d.anchor)},N=({el:d,anchor:h},y,w)=>{let A;for(;d&&d!==h;)A=p(d),r(d,y,w),d=A;r(h,y,w)},x=({el:d,anchor:h})=>{let y;for(;d&&d!==h;)y=p(d),s(d),d=y;s(h)},U=(d,h,y,w,A,S,D,I,P)=>{if(h.type==="svg"?D="svg":h.type==="math"&&(D="mathml"),d==null)G(h,y,w,A,S,D,I,P);else{const R=d.el&&d.el._isVueCE?d.el:null;try{R&&R._beginPatch(),O(d,h,A,S,D,I,P)}finally{R&&R._endPatch()}}},G=(d,h,y,w,A,S,D,I)=>{let P,R;const{props:q,shapeFlag:M,transition:$,dirs:W}=d;if(P=d.el=i(d.type,S,q&&q.is,q),M&8?a(P,d.children):M&16&&j(d.children,P,null,w,A,$r(d,S),D,I),W&&Lt(d,null,w,"created"),H(P,d,d.scopeId,D,w),q){for(const ue in q)ue!=="value"&&!mn(ue)&&o(P,ue,null,q[ue],S,w);"value"in q&&o(P,"value",null,q.value,S),(R=q.onVnodeBeforeMount)&&rt(R,w,d)}W&&Lt(d,null,w,"beforeMount");const ne=pu(A,$);ne&&$.beforeEnter(P),r(P,h,y),((R=q&&q.onVnodeMounted)||ne||W)&&Oe(()=>{R&&rt(R,w,d),ne&&$.enter(P),W&&Lt(d,null,w,"mounted")},A)},H=(d,h,y,w,A)=>{if(y&&m(d,y),w)for(let S=0;S{for(let R=P;R{const I=h.el=d.el;let{patchFlag:P,dynamicChildren:R,dirs:q}=h;P|=d.patchFlag&16;const M=d.props||ce,$=h.props||ce;let W;if(y&&Dt(y,!1),(W=$.onVnodeBeforeUpdate)&&rt(W,y,h,d),q&&Lt(h,d,y,"beforeUpdate"),y&&Dt(y,!0),(M.innerHTML&&$.innerHTML==null||M.textContent&&$.textContent==null)&&a(I,""),R?k(d.dynamicChildren,R,I,y,w,$r(h,A),S):D||Z(d,h,I,null,y,w,$r(h,A),S,!1),P>0){if(P&16)Y(I,M,$,y,A);else if(P&2&&M.class!==$.class&&o(I,"class",null,$.class,A),P&4&&o(I,"style",M.style,$.style,A),P&8){const ne=h.dynamicProps;for(let ue=0;ue{W&&rt(W,y,h,d),q&&Lt(h,d,y,"updated")},w)},k=(d,h,y,w,A,S,D)=>{for(let I=0;I{if(h!==y){if(h!==ce)for(const S in h)!mn(S)&&!(S in y)&&o(d,S,h[S],null,A,w);for(const S in y){if(mn(S))continue;const D=y[S],I=h[S];D!==I&&S!=="value"&&o(d,S,I,D,A,w)}"value"in y&&o(d,"value",h.value,y.value,A)}},L=(d,h,y,w,A,S,D,I,P)=>{const R=h.el=d?d.el:l(""),q=h.anchor=d?d.anchor:l("");let{patchFlag:M,dynamicChildren:$,slotScopeIds:W}=h;W&&(I=I?I.concat(W):W),d==null?(r(R,y,w),r(q,y,w),j(h.children||[],y,q,A,S,D,I,P)):M>0&&M&64&&$&&d.dynamicChildren&&d.dynamicChildren.length===$.length?(k(d.dynamicChildren,$,y,A,S,D,I),(h.key!=null||A&&h===A.subTree)&&Vs(d,h,!0)):Z(d,h,y,q,A,S,D,I,P)},Q=(d,h,y,w,A,S,D,I,P)=>{h.slotScopeIds=I,d==null?h.shapeFlag&512?A.ctx.activate(h,y,w,D,P):le(h,y,w,A,S,D,P):_e(d,h,P)},le=(d,h,y,w,A,S,D)=>{const I=d.component=Au(d,w,A);if(vr(d)&&(I.ctx.renderer=V),Ru(I,!1,D),I.asyncDep){if(A&&A.registerDep(I,ee,D),!d.el){const P=I.subTree=Ne(ve);C(null,P,h,y),d.placeholder=P.el}}else ee(I,d,h,y,A,S,D)},_e=(d,h,y)=>{const w=h.component=d.component;if(su(d,h,y))if(w.asyncDep&&!w.asyncResolved){z(w,h,y);return}else w.next=h,w.update();else h.el=d.el,w.vnode=h},ee=(d,h,y,w,A,S,D)=>{const I=()=>{if(d.isMounted){let{next:M,bu:$,u:W,parent:ne,vnode:ue}=d;{const tt=Fl(d);if(tt){M&&(M.el=ue.el,z(d,M,D)),tt.asyncDep.then(()=>{d.isUnmounted||I()});return}}let ie=M,Ie;Dt(d,!1),M?(M.el=ue.el,z(d,M,D)):M=ue,$&&Jn($),(Ie=M.props&&M.props.onVnodeBeforeUpdate)&&rt(Ie,ne,M,ue),Dt(d,!0);const Le=go(d),et=d.subTree;d.subTree=Le,_(et,Le,f(et.el),v(et),d,A,S),M.el=Le.el,ie===null&&ou(d,Le.el),W&&Oe(W,A),(Ie=M.props&&M.props.onVnodeUpdated)&&Oe(()=>rt(Ie,ne,M,ue),A)}else{let M;const{el:$,props:W}=h,{bm:ne,m:ue,parent:ie,root:Ie,type:Le}=d,et=tn(h);Dt(d,!1),ne&&Jn(ne),!et&&(M=W&&W.onVnodeBeforeMount)&&rt(M,ie,h),Dt(d,!0);{Ie.ce&&Ie.ce._def.shadowRoot!==!1&&Ie.ce._injectChildStyle(Le);const tt=d.subTree=go(d);_(null,tt,y,w,d,A,S),h.el=tt.el}if(ue&&Oe(ue,A),!et&&(M=W&&W.onVnodeMounted)){const tt=h;Oe(()=>rt(M,ie,tt),A)}(h.shapeFlag&256||ie&&tn(ie.vnode)&&ie.vnode.shapeFlag&256)&&d.a&&Oe(d.a,A),d.isMounted=!0,h=y=w=null}};d.scope.on();const P=d.effect=new Bi(I);d.scope.off();const R=d.update=P.run.bind(P),q=d.job=P.runIfDirty.bind(P);q.i=d,q.id=d.uid,P.scheduler=()=>Us(q),Dt(d,!0),R()},z=(d,h,y)=>{h.component=d;const w=d.vnode.props;d.vnode=h,d.next=null,lu(d,h.props,w,y),fu(d,h.children,y),yt(),oo(d),bt()},Z=(d,h,y,w,A,S,D,I,P=!1)=>{const R=d&&d.children,q=d?d.shapeFlag:0,M=h.children,{patchFlag:$,shapeFlag:W}=h;if($>0){if($&128){Qe(R,M,y,w,A,S,D,I,P);return}else if($&256){ke(R,M,y,w,A,S,D,I,P);return}}W&8?(q&16&&Ve(R,A,S),M!==R&&a(y,M)):q&16?W&16?Qe(R,M,y,w,A,S,D,I,P):Ve(R,A,S,!0):(q&8&&a(y,""),W&16&&j(M,y,w,A,S,D,I,P))},ke=(d,h,y,w,A,S,D,I,P)=>{d=d||Yt,h=h||Yt;const R=d.length,q=h.length,M=Math.min(R,q);let $;for($=0;$q?Ve(d,A,S,!0,!1,M):j(h,y,w,A,S,D,I,P,M)},Qe=(d,h,y,w,A,S,D,I,P)=>{let R=0;const q=h.length;let M=d.length-1,$=q-1;for(;R<=M&&R<=$;){const W=d[R],ne=h[R]=P?Ot(h[R]):lt(h[R]);if(Ut(W,ne))_(W,ne,y,null,A,S,D,I,P);else break;R++}for(;R<=M&&R<=$;){const W=d[M],ne=h[$]=P?Ot(h[$]):lt(h[$]);if(Ut(W,ne))_(W,ne,y,null,A,S,D,I,P);else break;M--,$--}if(R>M){if(R<=$){const W=$+1,ne=W$)for(;R<=M;)me(d[R],A,S,!0),R++;else{const W=R,ne=R,ue=new Map;for(R=ne;R<=$;R++){const Be=h[R]=P?Ot(h[R]):lt(h[R]);Be.key!=null&&ue.set(Be.key,R)}let ie,Ie=0;const Le=$-ne+1;let et=!1,tt=0;const an=new Array(Le);for(R=0;R=Le){me(Be,A,S,!0);continue}let nt;if(Be.key!=null)nt=ue.get(Be.key);else for(ie=ne;ie<=$;ie++)if(an[ie-ne]===0&&Ut(Be,h[ie])){nt=ie;break}nt===void 0?me(Be,A,S,!0):(an[nt-ne]=R+1,nt>=tt?tt=nt:et=!0,_(Be,h[nt],y,null,A,S,D,I,P),Ie++)}const Zs=et?mu(an):Yt;for(ie=Zs.length-1,R=Le-1;R>=0;R--){const Be=ne+R,nt=h[Be],eo=h[Be+1],to=Be+1{const{el:S,type:D,transition:I,children:P,shapeFlag:R}=d;if(R&6){ye(d.component.subTree,h,y,w);return}if(R&128){d.suspense.move(h,y,w);return}if(R&64){D.move(d,h,y,V);return}if(D===De){r(S,h,y);for(let M=0;MI.enter(S),A);else{const{leave:M,delayLeave:$,afterLeave:W}=I,ne=()=>{d.ctx.isUnmounted?s(S):r(S,h,y)},ue=()=>{S._isLeaving&&S[pt](!0),M(S,()=>{ne(),W&&W()})};$?$(S,ne,ue):ue()}else r(S,h,y)},me=(d,h,y,w=!1,A=!1)=>{const{type:S,props:D,ref:I,children:P,dynamicChildren:R,shapeFlag:q,patchFlag:M,dirs:$,cacheIndex:W}=d;if(M===-2&&(A=!1),I!=null&&(yt(),En(I,null,y,d,!0),bt()),W!=null&&(h.renderCache[W]=void 0),q&256){h.ctx.deactivate(d);return}const ne=q&1&&$,ue=!tn(d);let ie;if(ue&&(ie=D&&D.onVnodeBeforeUnmount)&&rt(ie,h,d),q&6)Ze(d.component,y,w);else{if(q&128){d.suspense.unmount(y,w);return}ne&&Lt(d,null,h,"beforeUnmount"),q&64?d.type.remove(d,h,y,V,w):R&&!R.hasOnce&&(S!==De||M>0&&M&64)?Ve(R,h,y,!1,!0):(S===De&&M&384||!A&&q&16)&&Ve(P,h,y),w&&Ye(d)}(ue&&(ie=D&&D.onVnodeUnmounted)||ne)&&Oe(()=>{ie&&rt(ie,h,d),ne&&Lt(d,null,h,"unmounted")},y)},Ye=d=>{const{type:h,el:y,anchor:w,transition:A}=d;if(h===De){Ke(y,w);return}if(h===Yn){x(d);return}const S=()=>{s(y),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(d.shapeFlag&1&&A&&!A.persisted){const{leave:D,delayLeave:I}=A,P=()=>D(y,S);I?I(d.el,S,P):P()}else S()},Ke=(d,h)=>{let y;for(;d!==h;)y=p(d),s(d),d=y;s(h)},Ze=(d,h,y)=>{const{bum:w,scope:A,job:S,subTree:D,um:I,m:P,a:R}=d;_o(P),_o(R),w&&Jn(w),A.stop(),S&&(S.flags|=8,me(D,d,h,y)),I&&Oe(I,h),Oe(()=>{d.isUnmounted=!0},h)},Ve=(d,h,y,w=!1,A=!1,S=0)=>{for(let D=S;D{if(d.shapeFlag&6)return v(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const h=p(d.anchor||d.el),y=h&&h[cl];return y?p(y):h};let B=!1;const F=(d,h,y)=>{let w;d==null?h._vnode&&(me(h._vnode,null,null,!0),w=h._vnode.component):_(h._vnode||null,d,h,null,null,null,y),h._vnode=d,B||(B=!0,oo(w),rl(),B=!1)},V={p:_,um:me,m:ye,r:Ye,mt:le,mc:j,pc:Z,pbc:k,n:v,o:e};return{render:F,hydrate:void 0,createApp:Ya(F)}}function $r({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 Dt({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function pu(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Vs(e,t,n=!1){const r=e.children,s=t.children;if(K(r)&&K(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Fl(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Fl(t)}function _o(e){if(e)for(let t=0;te.__isSuspense;function gu(e,t){t&&t.pendingBranch?K(e)?t.effects.push(...e):t.effects.push(e):Aa(e)}const De=Symbol.for("v-fgt"),Cr=Symbol.for("v-txt"),ve=Symbol.for("v-cmt"),Yn=Symbol.for("v-stc"),Sn=[];let je=null;function ur(e=!1){Sn.push(je=e?null:[])}function yu(){Sn.pop(),je=Sn[Sn.length-1]||null}let Pn=1;function fr(e,t=!1){Pn+=e,e<0&&je&&t&&(je.hasOnce=!0)}function Ul(e){return e.dynamicChildren=Pn>0?je||Yt:null,yu(),Pn>0&&je&&je.push(e),e}function lp(e,t,n,r,s,o){return Ul(Hl(e,t,n,r,s,o,!0))}function dr(e,t,n,r,s){return Ul(Ne(e,t,n,r,s,!0))}function Nn(e){return e?e.__v_isVNode===!0:!1}function Ut(e,t){return e.type===t.type&&e.key===t.key}const jl=({key:e})=>e??null,Zn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?pe(e)||de(e)||J(e)?{i:Re,r:e,k:t,f:!!n}:e:null);function Hl(e,t=null,n=null,r=0,s=null,o=e===De?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&jl(t),ref:t&&Zn(t),scopeId:ol,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:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Re};return l?($s(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=pe(n)?8:16),Pn>0&&!i&&je&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&je.push(c),c}const Ne=bu;function bu(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===qa)&&(e=ve),Nn(e)){const l=It(e,t,!0);return n&&$s(l,n),Pn>0&&!o&&je&&(l.shapeFlag&6?je[je.indexOf(e)]=l:je.push(l)),l.patchFlag=-2,l}if(xu(e)&&(e=e.__vccOpts),t){t=_u(t);let{class:l,style:c}=t;l&&!pe(l)&&(t.class=xs(l)),ae(c)&&(wr(c)&&!K(c)&&(c=Ee({},c)),t.style=Ts(c))}const i=pe(e)?1:Bl(e)?128:al(e)?64:ae(e)?4:J(e)?2:0;return Hl(e,t,n,r,s,i,o,!0)}function _u(e){return e?wr(e)||xl(e)?Ee({},e):e:null}function It(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?wu(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&jl(u),ref:t&&t.ref?n&&o?K(o)?o.concat(Zn(t)):[o,Zn(t)]:Zn(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!==De?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&&It(e.ssContent),ssFallback:e.ssFallback&&It(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&xn(a,c.clone(a)),a}function Eu(e=" ",t=0){return Ne(Cr,null,e,t)}function cp(e,t){const n=Ne(Yn,null,e);return n.staticCount=t,n}function ap(e="",t=!1){return t?(ur(),dr(ve,null,e)):Ne(ve,null,e)}function lt(e){return e==null||typeof e=="boolean"?Ne(ve):K(e)?Ne(De,null,e.slice()):Nn(e)?Ot(e):Ne(Cr,null,String(e))}function Ot(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:It(e)}function $s(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(K(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),$s(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!xl(t)?t._ctx=Re:s===3&&Re&&(Re.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else J(t)?(t={default:t,_ctx:Re},n=32):(t=String(t),r&64?(n=16,t=[Eu(t)]):n=8);e.children=t,e.shapeFlag|=n}function wu(...e){const t={};for(let n=0;nPe||Re;let hr,ds;{const e=_r(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};hr=t("__VUE_INSTANCE_SETTERS__",n=>Pe=n),ds=t("__VUE_SSR_SETTERS__",n=>In=n)}const Bn=e=>{const t=Pe;return hr(e),e.scope.on(),()=>{e.scope.off(),hr(t)}},Eo=()=>{Pe&&Pe.scope.off(),hr(null)};function kl(e){return e.vnode.shapeFlag&4}let In=!1;function Ru(e,t=!1,n=!1){t&&ds(t);const{props:r,children:s}=e.vnode,o=kl(e);iu(e,r,o,t),uu(e,s,n||t);const i=o?Cu(e,t):void 0;return t&&ds(!1),i}function Cu(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Ka);const{setup:r}=n;if(r){yt();const s=e.setupContext=r.length>1?Tu(e):null,o=Bn(e),i=Mn(r,e,0,[e.props,s]),l=Ci(i);if(bt(),o(),(l||e.sp)&&!tn(e)&&yl(e),l){if(i.then(Eo,Eo),t)return i.then(c=>{wo(e,c)}).catch(c=>{Sr(c,e,0)});e.asyncDep=i}else wo(e,i)}else Vl(e)}function wo(e,t,n){J(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ae(t)&&(e.setupState=Zi(t)),Vl(e)}function Vl(e,t,n){const r=e.type;e.render||(e.render=r.render||ct);{const s=Bn(e);yt();try{Wa(e)}finally{bt(),s()}}}const Ou={get(e,t){return Se(e,"get",""),e[t]}};function Tu(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Ou),slots:e.slots,emit:e.emit,expose:t}}function Or(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Zi(Ms(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in wn)return wn[n](e)},has(t,n){return n in t||n in wn}})):e.proxy}function xu(e){return J(e)&&"__vccOpts"in e}const Ue=(e,t)=>_a(e,t,In);function Ks(e,t,n){try{fr(-1);const r=arguments.length;return r===2?ae(t)&&!K(t)?Nn(t)?Ne(e,null,[t]):Ne(e,t):Ne(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Nn(n)&&(n=[n]),Ne(e,t,n))}finally{fr(1)}}const Pu="3.5.26";let hs;const So=typeof window<"u"&&window.trustedTypes;if(So)try{hs=So.createPolicy("vue",{createHTML:e=>e})}catch{}const $l=hs?e=>hs.createHTML(e):e=>e,Nu="http://www.w3.org/2000/svg",Iu="http://www.w3.org/1998/Math/MathML",ht=typeof document<"u"?document:null,vo=ht&&ht.createElement("template"),Lu={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?ht.createElementNS(Nu,e):t==="mathml"?ht.createElementNS(Iu,e):n?ht.createElement(e,{is:n}):ht.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>ht.createTextNode(e),createComment:e=>ht.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ht.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{vo.innerHTML=$l(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=vo.content;if(r==="svg"||r==="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]}},St="transition",fn="animation",Ln=Symbol("_vtc"),ql={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Du=Ee({},dl,ql),Fu=e=>(e.displayName="Transition",e.props=Du,e),up=Fu((e,{slots:t})=>Ks(La,Mu(e),t)),Ft=(e,t=[])=>{K(e)?e.forEach(n=>n(...t)):e&&e(...t)},Ao=e=>e?K(e)?e.some(t=>t.length>1):e.length>1:!1;function Mu(e){const t={};for(const L in e)L in ql||(t[L]=e[L]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=o,appearActiveClass:u=i,appearToClass:a=l,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,g=Bu(s),_=g&&g[0],E=g&&g[1],{onBeforeEnter:C,onEnter:T,onEnterCancelled:N,onLeave:x,onLeaveCancelled:U,onBeforeAppear:G=C,onAppear:H=T,onAppearCancelled:j=N}=t,O=(L,Q,le,_e)=>{L._enterCancelled=_e,Mt(L,Q?a:l),Mt(L,Q?u:i),le&&le()},k=(L,Q)=>{L._isLeaving=!1,Mt(L,f),Mt(L,m),Mt(L,p),Q&&Q()},Y=L=>(Q,le)=>{const _e=L?H:T,ee=()=>O(Q,L,le);Ft(_e,[Q,ee]),Ro(()=>{Mt(Q,L?c:o),ft(Q,L?a:l),Ao(_e)||Co(Q,r,_,ee)})};return Ee(t,{onBeforeEnter(L){Ft(C,[L]),ft(L,o),ft(L,i)},onBeforeAppear(L){Ft(G,[L]),ft(L,c),ft(L,u)},onEnter:Y(!1),onAppear:Y(!0),onLeave(L,Q){L._isLeaving=!0;const le=()=>k(L,Q);ft(L,f),L._enterCancelled?(ft(L,p),xo(L)):(xo(L),ft(L,p)),Ro(()=>{L._isLeaving&&(Mt(L,f),ft(L,m),Ao(x)||Co(L,r,E,le))}),Ft(x,[L,le])},onEnterCancelled(L){O(L,!1,void 0,!0),Ft(N,[L])},onAppearCancelled(L){O(L,!0,void 0,!0),Ft(j,[L])},onLeaveCancelled(L){k(L),Ft(U,[L])}})}function Bu(e){if(e==null)return null;if(ae(e))return[qr(e.enter),qr(e.leave)];{const t=qr(e);return[t,t]}}function qr(e){return Bc(e)}function ft(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Ln]||(e[Ln]=new Set)).add(t)}function Mt(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[Ln];n&&(n.delete(t),n.size||(e[Ln]=void 0))}function Ro(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Uu=0;function Co(e,t,n,r){const s=e._endId=++Uu,o=()=>{s===e._endId&&r()};if(n!=null)return setTimeout(o,n);const{type:i,timeout:l,propCount:c}=ju(e,t);if(!i)return r();const u=i+"end";let a=0;const f=()=>{e.removeEventListener(u,p),o()},p=m=>{m.target===e&&++a>=c&&f()};setTimeout(()=>{a(n[g]||"").split(", "),s=r(`${St}Delay`),o=r(`${St}Duration`),i=Oo(s,o),l=r(`${fn}Delay`),c=r(`${fn}Duration`),u=Oo(l,c);let a=null,f=0,p=0;t===St?i>0&&(a=St,f=i,p=o.length):t===fn?u>0&&(a=fn,f=u,p=c.length):(f=Math.max(i,u),a=f>0?i>u?St:fn:null,p=a?a===St?o.length:c.length:0);const m=a===St&&/\b(?:transform|all)(?:,|$)/.test(r(`${St}Property`).toString());return{type:a,timeout:f,propCount:p,hasTransform:m}}function Oo(e,t){for(;e.lengthTo(n)+To(e[r])))}function To(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function xo(e){return(e?e.ownerDocument:document).body.offsetHeight}function Hu(e,t,n){const r=e[Ln];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Po=Symbol("_vod"),ku=Symbol("_vsh"),Vu=Symbol(""),$u=/(?:^|;)\s*display\s*:/;function qu(e,t,n){const r=e.style,s=pe(n);let o=!1;if(n&&!s){if(t)if(pe(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&er(r,l,"")}else for(const i in t)n[i]==null&&er(r,i,"");for(const i in n)i==="display"&&(o=!0),er(r,i,n[i])}else if(s){if(t!==n){const i=r[Vu];i&&(n+=";"+i),r.cssText=n,o=$u.test(n)}}else t&&e.removeAttribute("style");Po in e&&(e[Po]=o?r.display:"",e[ku]&&(r.display="none"))}const No=/\s*!important$/;function er(e,t,n){if(K(n))n.forEach(r=>er(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Ku(e,t);No.test(n)?e.setProperty(Wt(r),n.replace(No,""),"important"):e[r]=n}}const Io=["Webkit","Moz","ms"],Kr={};function Ku(e,t){const n=Kr[t];if(n)return n;let r=Nt(t);if(r!=="filter"&&r in e)return Kr[t]=r;r=xi(r);for(let s=0;sWr||(Ju.then(()=>Wr=0),Wr=Date.now());function Qu(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;ze(Yu(r,n.value),t,5,[r])};return n.value=e,n.attached=Xu(),n}function Yu(e,t){if(K(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const Uo=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Zu=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?Hu(e,r,i):t==="style"?qu(e,n,r):mr(t)?Rs(t)||Gu(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):ef(e,t,r,i))?(Fo(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Do(e,t,r,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!pe(r))?Fo(e,Nt(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Do(e,t,r,i))};function ef(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&Uo(t)&&J(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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return Uo(t)&&pe(n)?!1:t in e}const jo=e=>{const t=e.props["onUpdate:modelValue"]||!1;return K(t)?n=>Jn(t,n):t};function tf(e){e.target.composing=!0}function Ho(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Gr=Symbol("_assign");function ko(e,t,n){return t&&(e=e.trim()),n&&(e=Os(e)),e}const fp={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Gr]=jo(s);const o=r||s.props&&s.props.type==="number";Xt(e,t?"change":"input",i=>{i.target.composing||e[Gr](ko(e.value,n,o))}),(n||o)&&Xt(e,"change",()=>{e.value=ko(e.value,n,o)}),t||(Xt(e,"compositionstart",tf),Xt(e,"compositionend",Ho),Xt(e,"change",Ho))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Gr]=jo(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?Os(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},nf=["ctrl","shift","alt","meta"],rf={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>nf.some(n=>e[`${n}Key`]&&!t.includes(n))},dp=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const t=of().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=af(r);if(!s)return;const o=t._component;!J(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,cf(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t});function cf(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function af(e){return pe(e)?document.querySelector(e):e}let Kl;const Tr=e=>Kl=e,Wl=Symbol();function ps(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var vn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(vn||(vn={}));function uf(){const e=Fi(!0),t=e.run(()=>Vt({}));let n=[],r=[];const s=Ms({install(o){Tr(s),s._a=o,o.provide(Wl,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const Gl=()=>{};function $o(e,t,n,r=Gl){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&Mi()&&Kc(s),s}function zt(e,...t){e.forEach(n=>{n(...t)})}const ff=e=>e(),qo=Symbol(),zr=Symbol();function ms(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];ps(s)&&ps(r)&&e.hasOwnProperty(n)&&!de(r)&&!at(r)?e[n]=ms(s,r):e[n]=r}return e}const df=Symbol();function hf(e){return!ps(e)||!Object.prototype.hasOwnProperty.call(e,df)}const{assign:At}=Object;function pf(e){return!!(de(e)&&e.effect)}function mf(e,t,n,r){const{state:s,actions:o,getters:i}=t,l=n.state.value[e];let c;function u(){l||(n.state.value[e]=s?s():{});const a=pa(n.state.value[e]);return At(a,o,Object.keys(i||{}).reduce((f,p)=>(f[p]=Ms(Ue(()=>{Tr(n);const m=n._s.get(e);return i[p].call(m,m)})),f),{}))}return c=zl(e,u,t,n,r,!0),c}function zl(e,t,n={},r,s,o){let i;const l=At({actions:{}},n),c={deep:!0};let u,a,f=new Set,p=new Set,m;const g=r.state.value[e];!o&&!g&&(r.state.value[e]={}),Vt({});let _;function E(j){let O;u=a=!1,typeof j=="function"?(j(r.state.value[e]),O={type:vn.patchFunction,storeId:e,events:m}):(ms(r.state.value[e],j),O={type:vn.patchObject,payload:j,storeId:e,events:m});const k=_=Symbol();Bs().then(()=>{_===k&&(u=!0)}),a=!0,zt(f,O,r.state.value[e])}const C=o?function(){const{state:O}=n,k=O?O():{};this.$patch(Y=>{At(Y,k)})}:Gl;function T(){i.stop(),f.clear(),p.clear(),r._s.delete(e)}const N=(j,O="")=>{if(qo in j)return j[zr]=O,j;const k=function(){Tr(r);const Y=Array.from(arguments),L=new Set,Q=new Set;function le(z){L.add(z)}function _e(z){Q.add(z)}zt(p,{args:Y,name:k[zr],store:U,after:le,onError:_e});let ee;try{ee=j.apply(this&&this.$id===e?this:U,Y)}catch(z){throw zt(Q,z),z}return ee instanceof Promise?ee.then(z=>(zt(L,z),z)).catch(z=>(zt(Q,z),Promise.reject(z))):(zt(L,ee),ee)};return k[qo]=!0,k[zr]=O,k},x={_p:r,$id:e,$onAction:$o.bind(null,p),$patch:E,$reset:C,$subscribe(j,O={}){const k=$o(f,j,O.detached,()=>Y()),Y=i.run(()=>bn(()=>r.state.value[e],L=>{(O.flush==="sync"?a:u)&&j({storeId:e,type:vn.direct,events:m},L)},At({},c,O)));return k},$dispose:T},U=Fn(x);r._s.set(e,U);const H=(r._a&&r._a.runWithContext||ff)(()=>r._e.run(()=>(i=Fi()).run(()=>t({action:N}))));for(const j in H){const O=H[j];if(de(O)&&!pf(O)||at(O))o||(g&&hf(O)&&(de(O)?O.value=g[j]:ms(O,g[j])),r.state.value[e][j]=O);else if(typeof O=="function"){const k=N(O,j);H[j]=k,l.actions[j]=O}}return At(U,H),At(re(U),H),Object.defineProperty(U,"$state",{get:()=>r.state.value[e],set:j=>{E(O=>{At(O,j)})}}),r._p.forEach(j=>{At(U,i.run(()=>j({store:U,app:r._a,pinia:r,options:l})))}),g&&o&&n.hydrate&&n.hydrate(U.$state,g),u=!0,a=!0,U}function gf(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,l){const c=Ca();return i=i||(c?qe(Wl,null):null),i&&Tr(i),i=Kl,i._s.has(e)||(s?zl(e,t,r,i):mf(e,r,i)),i._s.get(e)}return o.$id=e,o}function hp(e){const t=re(e),n={};for(const r in t){const s=t[r];s.effect?n[r]=Ue({get:()=>e[r],set(o){e[r]=o}}):(de(s)||at(s))&&(n[r]=ya(e,r))}return n}const yf="modulepreload",bf=function(e){return"/"+e},Ko={},st=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let c=function(u){return Promise.all(u.map(a=>Promise.resolve(a).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=c(n.map(u=>{if(u=bf(u),u in Ko)return;Ko[u]=!0;const a=u.endsWith(".css"),f=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const p=document.createElement("link");if(p.rel=a?"stylesheet":yf,a||(p.as="script"),p.crossOrigin="",p.href=u,l&&p.setAttribute("nonce",l),document.head.appendChild(p),a)return new Promise((m,g)=>{p.addEventListener("load",m),p.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})};const Qt=typeof document<"u";function Jl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function _f(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Jl(e.default)}const se=Object.assign;function Jr(e,t){const n={};for(const r in t){const s=t[r];n[r]=Je(s)?s.map(e):e(s)}return n}const An=()=>{},Je=Array.isArray;function Wo(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const Xl=/#/g,Ef=/&/g,wf=/\//g,Sf=/=/g,vf=/\?/g,Ql=/\+/g,Af=/%5B/g,Rf=/%5D/g,Yl=/%5E/g,Cf=/%60/g,Zl=/%7B/g,Of=/%7C/g,ec=/%7D/g,Tf=/%20/g;function Ws(e){return e==null?"":encodeURI(""+e).replace(Of,"|").replace(Af,"[").replace(Rf,"]")}function xf(e){return Ws(e).replace(Zl,"{").replace(ec,"}").replace(Yl,"^")}function gs(e){return Ws(e).replace(Ql,"%2B").replace(Tf,"+").replace(Xl,"%23").replace(Ef,"%26").replace(Cf,"`").replace(Zl,"{").replace(ec,"}").replace(Yl,"^")}function Pf(e){return gs(e).replace(Sf,"%3D")}function Nf(e){return Ws(e).replace(Xl,"%23").replace(vf,"%3F")}function If(e){return Nf(e).replace(wf,"%2F")}function Dn(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Lf=/\/$/,Df=e=>e.replace(Lf,"");function Xr(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return c=l>=0&&c>l?-1:c,c>=0&&(r=t.slice(0,c),o=t.slice(c,l>0?l:t.length),s=e(o.slice(1))),l>=0&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=Uf(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:Dn(i)}}function Ff(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Go(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Mf(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&rn(t.matched[r],n.matched[s])&&tc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function rn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function tc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!Bf(e[n],t[n]))return!1;return!0}function Bf(e,t){return Je(e)?zo(e,t):Je(t)?zo(t,e):e?.valueOf()===t?.valueOf()}function zo(e,t){return Je(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function Uf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const vt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let ys=(function(e){return e.pop="pop",e.push="push",e})({}),Qr=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function jf(e){if(!e)if(Qt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Df(e)}const Hf=/^[^#]+#/;function kf(e,t){return e.replace(Hf,"#")+t}function Vf(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const xr=()=>({left:window.scrollX,top:window.scrollY});function $f(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=Vf(s,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 Jo(e,t){return(history.state?history.state.position-t:-1)+e}const bs=new Map;function qf(e,t){bs.set(e,t)}function Kf(e){const t=bs.get(e);return bs.delete(e),t}function Wf(e){return typeof e=="string"||e&&typeof e=="object"}function nc(e){return typeof e=="string"||typeof e=="symbol"}let he=(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 rc=Symbol("");he.MATCHER_NOT_FOUND+"",he.NAVIGATION_GUARD_REDIRECT+"",he.NAVIGATION_ABORTED+"",he.NAVIGATION_CANCELLED+"",he.NAVIGATION_DUPLICATED+"";function sn(e,t){return se(new Error,{type:e,[rc]:!0},t)}function dt(e,t){return e instanceof Error&&rc in e&&(t==null||!!(e.type&t))}const Gf=["params","query","hash"];function zf(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of Gf)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function Jf(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&gs(s)):[r&&gs(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function Xf(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=Je(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const Qf=Symbol(""),Qo=Symbol(""),Pr=Symbol(""),Gs=Symbol(""),_s=Symbol("");function dn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Tt(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,c)=>{const u=p=>{p===!1?c(sn(he.NAVIGATION_ABORTED,{from:n,to:t})):p instanceof Error?c(p):Wf(p)?c(sn(he.NAVIGATION_GUARD_REDIRECT,{from:t,to:p})):(i&&r.enterCallbacks[s]===i&&typeof p=="function"&&i.push(p),l())},a=o(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(a);e.length<3&&(f=f.then(u)),f.catch(p=>c(p))})}function Yr(e,t,n,r,s=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(Jl(c)){const u=(c.__vccOpts||c)[t];u&&o.push(Tt(u,n,r,i,l,s))}else{let u=c();o.push(()=>u.then(a=>{if(!a)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=_f(a)?a.default:a;i.mods[l]=a,i.components[l]=f;const p=(f.__vccOpts||f)[t];return p&&Tt(p,n,r,i,l,s)()}))}}return o}function Yf(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;irn(u,l))?r.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(u=>rn(u,c))||s.push(c))}return[n,r,s]}let Zf=()=>location.protocol+"//"+location.host;function sc(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(i);return l[0]!=="/"&&(l="/"+l),Go(l,"")}return Go(n,e)+r+s}function ed(e,t,n,r){let s=[],o=[],i=null;const l=({state:p})=>{const m=sc(e,location),g=n.value,_=t.value;let E=0;if(p){if(n.value=m,t.value=p,i&&i===g){i=null;return}E=_?p.position-_.position:0}else r(m);s.forEach(C=>{C(n.value,g,{delta:E,type:ys.pop,direction:E?E>0?Qr.forward:Qr.back:Qr.unknown})})};function c(){i=n.value}function u(p){s.push(p);const m=()=>{const g=s.indexOf(p);g>-1&&s.splice(g,1)};return o.push(m),m}function a(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(se({},p.state,{scroll:xr()}),"")}}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 Yo(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?xr():null}}function td(e){const{history:t,location:n}=window,r={value:sc(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.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:Zf()+e+c;try{t[a?"replaceState":"pushState"](u,"",p),s.value=u}catch(m){console.error(m),n[a?"replace":"assign"](p)}}function i(c,u){o(c,se({},t.state,Yo(s.value.back,c,s.value.forward,!0),u,{position:s.value.position}),!0),r.value=c}function l(c,u){const a=se({},s.value,t.state,{forward:c,scroll:xr()});o(a.current,a,!0),o(c,se({},Yo(r.value,c,null),{position:a.position+1},u),!1),r.value=c}return{location:r,state:s,push:l,replace:i}}function nd(e){e=jf(e);const t=td(e),n=ed(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=se({location:"",base:e,go:r,createHref:kf.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function rd(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),nd(e)}let jt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var be=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e})(be||{});const sd={type:jt.Static,value:""},od=/[a-zA-Z0-9_]/;function id(e){if(!e)return[[]];if(e==="/")return[[sd]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${u}": ${m}`)}let n=be.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,c,u="",a="";function f(){u&&(n===be.Static?o.push({type:jt.Static,value:u}):n===be.Param||n===be.ParamRegExp||n===be.ParamRegExpEnd?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:jt.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]===Te.Static+Te.Segment?1:-1:0}function oc(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const fd={strict:!1,end:!0,sensitive:!1};function dd(e,t,n){const r=ad(id(e.path),n),s=se(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function hd(e,t){const n=[],r=new Map;t=Wo(fd,t);function s(f){return r.get(f)}function o(f,p,m){const g=!m,_=ni(f);_.aliasOf=m&&m.record;const E=Wo(t,f),C=[_];if("alias"in f){const x=typeof f.alias=="string"?[f.alias]:f.alias;for(const U of x)C.push(ni(se({},_,{components:m?m.record.components:_.components,path:U,aliasOf:m?m.record:_})))}let T,N;for(const x of C){const{path:U}=x;if(p&&U[0]!=="/"){const G=p.record.path,H=G[G.length-1]==="/"?"":"/";x.path=p.record.path+(U&&H+U)}if(T=dd(x,p,E),m?m.alias.push(T):(N=N||T,N!==T&&N.alias.push(T),g&&f.name&&!ri(T)&&i(f.name)),ic(T)&&c(T),_.children){const G=_.children;for(let H=0;H{i(N)}:An}function i(f){if(nc(f)){const p=r.get(f);p&&(r.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&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function c(f){const p=gd(f,n);n.splice(p,0,f),f.record.name&&!ri(f)&&r.set(f.record.name,f)}function u(f,p){let m,g={},_,E;if("name"in f&&f.name){if(m=r.get(f.name),!m)throw sn(he.MATCHER_NOT_FOUND,{location:f});E=m.record.name,g=se(ti(p.params,m.keys.filter(N=>!N.optional).concat(m.parent?m.parent.keys.filter(N=>N.optional):[]).map(N=>N.name)),f.params&&ti(f.params,m.keys.map(N=>N.name))),_=m.stringify(g)}else if(f.path!=null)_=f.path,m=n.find(N=>N.re.test(_)),m&&(g=m.parse(_),E=m.record.name);else{if(m=p.name?r.get(p.name):n.find(N=>N.re.test(p.path)),!m)throw sn(he.MATCHER_NOT_FOUND,{location:f,currentLocation:p});E=m.record.name,g=se({},p.params,f.params),_=m.stringify(g)}const C=[];let T=m;for(;T;)C.unshift(T.record),T=T.parent;return{name:E,path:_,params:g,matched:C,meta:md(C)}}e.forEach(f=>o(f));function a(){n.length=0,r.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:a,getRoutes:l,getRecordMatcher:s}}function ti(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function ni(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:pd(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 pd(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function ri(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function md(e){return e.reduce((t,n)=>se(t,n.meta),{})}function gd(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;oc(e,t[o])<0?r=o:n=o+1}const s=yd(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function yd(e){let t=e;for(;t=t.parent;)if(ic(t)&&oc(e,t)===0)return t}function ic({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function si(e){const t=qe(Pr),n=qe(Gs),r=Ue(()=>{const c=Pt(e.to);return t.resolve(c)}),s=Ue(()=>{const{matched:c}=r.value,{length:u}=c,a=c[u-1],f=n.matched;if(!a||!f.length)return-1;const p=f.findIndex(rn.bind(null,a));if(p>-1)return p;const m=oi(c[u-2]);return u>1&&oi(a)===m&&f[f.length-1].path!==m?f.findIndex(rn.bind(null,c[u-2])):p}),o=Ue(()=>s.value>-1&&Sd(n.params,r.value.params)),i=Ue(()=>s.value>-1&&s.value===n.matched.length-1&&tc(n.params,r.value.params));function l(c={}){if(wd(c)){const u=t[Pt(e.replace)?"replace":"push"](Pt(e.to)).catch(An);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Ue(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function bd(e){return e.length===1?e[0]:e}const _d=js({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:si,setup(e,{slots:t}){const n=Fn(si(e)),{options:r}=qe(Pr),s=Ue(()=>({[ii(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[ii(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&bd(t.default(n));return e.custom?o:Ks("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),Ed=_d;function wd(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 Sd(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!Je(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function oi(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const ii=(e,t,n)=>e??t??n,vd=js({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=qe(_s),s=Ue(()=>e.route||r.value),o=qe(Qo,0),i=Ue(()=>{let u=Pt(o);const{matched:a}=s.value;let f;for(;(f=a[u])&&!f.components;)u++;return u}),l=Ue(()=>s.value.matched[i.value]);Xn(Qo,Ue(()=>i.value+1)),Xn(Qf,l),Xn(_s,s);const c=Vt();return bn(()=>[c.value,l.value,e.name],([u,a,f],[p,m,g])=>{a&&(a.instances[f]=u,m&&m!==a&&u&&u===p&&(a.leaveGuards.size||(a.leaveGuards=m.leaveGuards),a.updateGuards.size||(a.updateGuards=m.updateGuards))),u&&a&&(!m||!rn(a,m)||!p)&&(a.enterCallbacks[f]||[]).forEach(_=>_(u))},{flush:"post"}),()=>{const u=s.value,a=e.name,f=l.value,p=f&&f.components[a];if(!p)return li(n.default,{Component:p,route:u});const m=f.props[a],g=m?m===!0?u.params:typeof m=="function"?m(u):m:null,E=Ks(p,se({},g,t,{onVnodeUnmounted:C=>{C.component.isUnmounted&&(f.instances[a]=null)},ref:c}));return li(n.default,{Component:E,route:u})||E}}});function li(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const lc=vd;function Ad(e){const t=hd(e.routes,e),n=e.parseQuery||Jf,r=e.stringifyQuery||Xo,s=e.history,o=dn(),i=dn(),l=dn(),c=fa(vt);let u=vt;Qt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const a=Jr.bind(null,v=>""+v),f=Jr.bind(null,If),p=Jr.bind(null,Dn);function m(v,B){let F,V;return nc(v)?(F=t.getRecordMatcher(v),V=B):V=v,t.addRoute(V,F)}function g(v){const B=t.getRecordMatcher(v);B&&t.removeRoute(B)}function _(){return t.getRoutes().map(v=>v.record)}function E(v){return!!t.getRecordMatcher(v)}function C(v,B){if(B=se({},B||c.value),typeof v=="string"){const y=Xr(n,v,B.path),w=t.resolve({path:y.path},B),A=s.createHref(y.fullPath);return se(y,w,{params:p(w.params),hash:Dn(y.hash),redirectedFrom:void 0,href:A})}let F;if(v.path!=null)F=se({},v,{path:Xr(n,v.path,B.path).path});else{const y=se({},v.params);for(const w in y)y[w]==null&&delete y[w];F=se({},v,{params:f(y)}),B.params=f(B.params)}const V=t.resolve(F,B),te=v.hash||"";V.params=a(p(V.params));const d=Ff(r,se({},v,{hash:xf(te),path:V.path})),h=s.createHref(d);return se({fullPath:d,hash:te,query:r===Xo?Xf(v.query):v.query||{}},V,{redirectedFrom:void 0,href:h})}function T(v){return typeof v=="string"?Xr(n,v,c.value.path):se({},v)}function N(v,B){if(u!==v)return sn(he.NAVIGATION_CANCELLED,{from:B,to:v})}function x(v){return H(v)}function U(v){return x(se(T(v),{replace:!0}))}function G(v,B){const F=v.matched[v.matched.length-1];if(F&&F.redirect){const{redirect:V}=F;let te=typeof V=="function"?V(v,B):V;return typeof te=="string"&&(te=te.includes("?")||te.includes("#")?te=T(te):{path:te},te.params={}),se({query:v.query,hash:v.hash,params:te.path!=null?{}:v.params},te)}}function H(v,B){const F=u=C(v),V=c.value,te=v.state,d=v.force,h=v.replace===!0,y=G(F,V);if(y)return H(se(T(y),{state:typeof y=="object"?se({},te,y.state):te,force:d,replace:h}),B||F);const w=F;w.redirectedFrom=B;let A;return!d&&Mf(r,V,F)&&(A=sn(he.NAVIGATION_DUPLICATED,{to:w,from:V}),ye(V,V,!0,!1)),(A?Promise.resolve(A):k(w,V)).catch(S=>dt(S)?dt(S,he.NAVIGATION_GUARD_REDIRECT)?S:Qe(S):Z(S,w,V)).then(S=>{if(S){if(dt(S,he.NAVIGATION_GUARD_REDIRECT))return H(se({replace:h},T(S.to),{state:typeof S.to=="object"?se({},te,S.to.state):te,force:d}),B||w)}else S=L(w,V,!0,h,te);return Y(w,V,S),S})}function j(v,B){const F=N(v,B);return F?Promise.reject(F):Promise.resolve()}function O(v){const B=Ke.values().next().value;return B&&typeof B.runWithContext=="function"?B.runWithContext(v):v()}function k(v,B){let F;const[V,te,d]=Yf(v,B);F=Yr(V.reverse(),"beforeRouteLeave",v,B);for(const y of V)y.leaveGuards.forEach(w=>{F.push(Tt(w,v,B))});const h=j.bind(null,v,B);return F.push(h),Ve(F).then(()=>{F=[];for(const y of o.list())F.push(Tt(y,v,B));return F.push(h),Ve(F)}).then(()=>{F=Yr(te,"beforeRouteUpdate",v,B);for(const y of te)y.updateGuards.forEach(w=>{F.push(Tt(w,v,B))});return F.push(h),Ve(F)}).then(()=>{F=[];for(const y of d)if(y.beforeEnter)if(Je(y.beforeEnter))for(const w of y.beforeEnter)F.push(Tt(w,v,B));else F.push(Tt(y.beforeEnter,v,B));return F.push(h),Ve(F)}).then(()=>(v.matched.forEach(y=>y.enterCallbacks={}),F=Yr(d,"beforeRouteEnter",v,B,O),F.push(h),Ve(F))).then(()=>{F=[];for(const y of i.list())F.push(Tt(y,v,B));return F.push(h),Ve(F)}).catch(y=>dt(y,he.NAVIGATION_CANCELLED)?y:Promise.reject(y))}function Y(v,B,F){l.list().forEach(V=>O(()=>V(v,B,F)))}function L(v,B,F,V,te){const d=N(v,B);if(d)return d;const h=B===vt,y=Qt?history.state:{};F&&(V||h?s.replace(v.fullPath,se({scroll:h&&y&&y.scroll},te)):s.push(v.fullPath,te)),c.value=v,ye(v,B,F,h),Qe()}let Q;function le(){Q||(Q=s.listen((v,B,F)=>{if(!Ze.listening)return;const V=C(v),te=G(V,Ze.currentRoute.value);if(te){H(se(te,{replace:!0,force:!0}),V).catch(An);return}u=V;const d=c.value;Qt&&qf(Jo(d.fullPath,F.delta),xr()),k(V,d).catch(h=>dt(h,he.NAVIGATION_ABORTED|he.NAVIGATION_CANCELLED)?h:dt(h,he.NAVIGATION_GUARD_REDIRECT)?(H(se(T(h.to),{force:!0}),V).then(y=>{dt(y,he.NAVIGATION_ABORTED|he.NAVIGATION_DUPLICATED)&&!F.delta&&F.type===ys.pop&&s.go(-1,!1)}).catch(An),Promise.reject()):(F.delta&&s.go(-F.delta,!1),Z(h,V,d))).then(h=>{h=h||L(V,d,!1),h&&(F.delta&&!dt(h,he.NAVIGATION_CANCELLED)?s.go(-F.delta,!1):F.type===ys.pop&&dt(h,he.NAVIGATION_ABORTED|he.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),Y(V,d,h)}).catch(An)}))}let _e=dn(),ee=dn(),z;function Z(v,B,F){Qe(v);const V=ee.list();return V.length?V.forEach(te=>te(v,B,F)):console.error(v),Promise.reject(v)}function ke(){return z&&c.value!==vt?Promise.resolve():new Promise((v,B)=>{_e.add([v,B])})}function Qe(v){return z||(z=!v,le(),_e.list().forEach(([B,F])=>v?F(v):B()),_e.reset()),v}function ye(v,B,F,V){const{scrollBehavior:te}=e;if(!Qt||!te)return Promise.resolve();const d=!F&&Kf(Jo(v.fullPath,0))||(V||!F)&&history.state&&history.state.scroll||null;return Bs().then(()=>te(v,B,d)).then(h=>h&&$f(h)).catch(h=>Z(h,v,B))}const me=v=>s.go(v);let Ye;const Ke=new Set,Ze={currentRoute:c,listening:!0,addRoute:m,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:E,getRoutes:_,resolve:C,options:e,push:x,replace:U,go:me,back:()=>me(-1),forward:()=>me(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:ee.add,isReady:ke,install(v){v.component("RouterLink",Ed),v.component("RouterView",lc),v.config.globalProperties.$router=Ze,Object.defineProperty(v.config.globalProperties,"$route",{enumerable:!0,get:()=>Pt(c)}),Qt&&!Ye&&c.value===vt&&(Ye=!0,x(s.location).catch(V=>{}));const B={};for(const V in vt)Object.defineProperty(B,V,{get:()=>c.value[V],enumerable:!0});v.provide(Pr,Ze),v.provide(Gs,Qi(B)),v.provide(_s,c);const F=v.unmount;Ke.add(v),v.unmount=function(){Ke.delete(v),Ke.size<1&&(u=vt,Q&&Q(),Q=null,c.value=vt,Ye=!1,z=!1),F()}}};function Ve(v){return v.reduce((B,F)=>B.then(()=>O(F)),Promise.resolve())}return Ze}function pp(){return qe(Pr)}function mp(e){return qe(Gs)}function cc(e,t){return function(){return e.apply(t,arguments)}}const{toString:Rd}=Object.prototype,{getPrototypeOf:zs}=Object,{iterator:Nr,toStringTag:ac}=Symbol,Ir=(e=>t=>{const n=Rd.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Xe=e=>(e=e.toLowerCase(),t=>Ir(t)===e),Lr=e=>t=>typeof t===e,{isArray:ln}=Array,on=Lr("undefined");function Un(e){return e!==null&&!on(e)&&e.constructor!==null&&!on(e.constructor)&&Fe(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const uc=Xe("ArrayBuffer");function Cd(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&uc(e.buffer),t}const Od=Lr("string"),Fe=Lr("function"),fc=Lr("number"),jn=e=>e!==null&&typeof e=="object",Td=e=>e===!0||e===!1,tr=e=>{if(Ir(e)!=="object")return!1;const t=zs(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(ac in e)&&!(Nr in e)},xd=e=>{if(!jn(e)||Un(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},Pd=Xe("Date"),Nd=Xe("File"),Id=Xe("Blob"),Ld=Xe("FileList"),Dd=e=>jn(e)&&Fe(e.pipe),Fd=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Fe(e.append)&&((t=Ir(e))==="formdata"||t==="object"&&Fe(e.toString)&&e.toString()==="[object FormData]"))},Md=Xe("URLSearchParams"),[Bd,Ud,jd,Hd]=["ReadableStream","Request","Response","Headers"].map(Xe),kd=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Hn(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),ln(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const Ht=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,hc=e=>!on(e)&&e!==Ht;function Es(){const{caseless:e,skipUndefined:t}=hc(this)&&this||{},n={},r=(s,o)=>{const i=e&&dc(n,o)||o;tr(n[i])&&tr(s)?n[i]=Es(n[i],s):tr(s)?n[i]=Es({},s):ln(s)?n[i]=s.slice():(!t||!on(s))&&(n[i]=s)};for(let s=0,o=arguments.length;s(Hn(t,(s,o)=>{n&&Fe(s)?e[o]=cc(s,n):e[o]=s},{allOwnKeys:r}),e),$d=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),qd=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},Kd=(e,t,n,r)=>{let s,o,i;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&zs(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},Wd=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},Gd=e=>{if(!e)return null;if(ln(e))return e;let t=e.length;if(!fc(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},zd=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&zs(Uint8Array)),Jd=(e,t)=>{const r=(e&&e[Nr]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},Xd=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},Qd=Xe("HTMLFormElement"),Yd=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),ci=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Zd=Xe("RegExp"),pc=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Hn(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},eh=e=>{pc(e,(t,n)=>{if(Fe(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Fe(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},th=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return ln(e)?r(e):r(String(e).split(t)),n},nh=()=>{},rh=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function sh(e){return!!(e&&Fe(e.append)&&e[ac]==="FormData"&&e[Nr])}const oh=e=>{const t=new Array(10),n=(r,s)=>{if(jn(r)){if(t.indexOf(r)>=0)return;if(Un(r))return r;if(!("toJSON"in r)){t[s]=r;const o=ln(r)?[]:{};return Hn(r,(i,l)=>{const c=n(i,s+1);!on(c)&&(o[l]=c)}),t[s]=void 0,o}}return r};return n(e,0)},ih=Xe("AsyncFunction"),lh=e=>e&&(jn(e)||Fe(e))&&Fe(e.then)&&Fe(e.catch),mc=((e,t)=>e?setImmediate:t?((n,r)=>(Ht.addEventListener("message",({source:s,data:o})=>{s===Ht&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),Ht.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Fe(Ht.postMessage)),ch=typeof queueMicrotask<"u"?queueMicrotask.bind(Ht):typeof process<"u"&&process.nextTick||mc,ah=e=>e!=null&&Fe(e[Nr]),b={isArray:ln,isArrayBuffer:uc,isBuffer:Un,isFormData:Fd,isArrayBufferView:Cd,isString:Od,isNumber:fc,isBoolean:Td,isObject:jn,isPlainObject:tr,isEmptyObject:xd,isReadableStream:Bd,isRequest:Ud,isResponse:jd,isHeaders:Hd,isUndefined:on,isDate:Pd,isFile:Nd,isBlob:Id,isRegExp:Zd,isFunction:Fe,isStream:Dd,isURLSearchParams:Md,isTypedArray:zd,isFileList:Ld,forEach:Hn,merge:Es,extend:Vd,trim:kd,stripBOM:$d,inherits:qd,toFlatObject:Kd,kindOf:Ir,kindOfTest:Xe,endsWith:Wd,toArray:Gd,forEachEntry:Jd,matchAll:Xd,isHTMLForm:Qd,hasOwnProperty:ci,hasOwnProp:ci,reduceDescriptors:pc,freezeMethods:eh,toObjectSet:th,toCamelCase:Yd,noop:nh,toFiniteNumber:rh,findKey:dc,global:Ht,isContextDefined:hc,isSpecCompliantForm:sh,toJSONObject:oh,isAsyncFn:ih,isThenable:lh,setImmediate:mc,asap:ch,isIterable:ah};function X(e,t,n,r,s){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),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}b.inherits(X,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 gc=X.prototype,yc={};["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=>{yc[e]={value:e}});Object.defineProperties(X,yc);Object.defineProperty(gc,"isAxiosError",{value:!0});X.from=(e,t,n,r,s,o)=>{const i=Object.create(gc);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 X.call(i,l,c,n,r,s),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 uh=null;function ws(e){return b.isPlainObject(e)||b.isArray(e)}function bc(e){return b.endsWith(e,"[]")?e.slice(0,-2):e}function ai(e,t,n){return e?e.concat(t).map(function(s,o){return s=bc(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function fh(e){return b.isArray(e)&&!e.some(ws)}const dh=b.toFlatObject(b,{},null,function(t){return/^is[A-Z]/.test(t)});function Dr(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(_,E){return!b.isUndefined(E[_])});const r=n.metaTokens,s=n.visitor||a,o=n.dots,i=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&b.isSpecCompliantForm(t);if(!b.isFunction(s))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 X("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,_,E){let C=g;if(g&&!E&&typeof g=="object"){if(b.endsWith(_,"{}"))_=r?_:_.slice(0,-2),g=JSON.stringify(g);else if(b.isArray(g)&&fh(g)||(b.isFileList(g)||b.endsWith(_,"[]"))&&(C=b.toArray(g)))return _=bc(_),C.forEach(function(N,x){!(b.isUndefined(N)||N===null)&&t.append(i===!0?ai([_],x,o):i===null?_:_+"[]",u(N))}),!1}return ws(g)?!0:(t.append(ai(E,_,o),u(g)),!1)}const f=[],p=Object.assign(dh,{defaultVisitor:a,convertValue:u,isVisitable:ws});function m(g,_){if(!b.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+_.join("."));f.push(g),b.forEach(g,function(C,T){(!(b.isUndefined(C)||C===null)&&s.call(t,C,b.isString(T)?T.trim():T,_,p))===!0&&m(C,_?_.concat(T):[T])}),f.pop()}}if(!b.isObject(e))throw new TypeError("data must be an object");return m(e),t}function ui(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Js(e,t){this._pairs=[],e&&Dr(e,this,t)}const _c=Js.prototype;_c.append=function(t,n){this._pairs.push([t,n])};_c.toString=function(t){const n=t?function(r){return t.call(this,r,ui)}:ui;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function hh(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Ec(e,t,n){if(!t)return e;const r=n&&n.encode||hh;b.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=b.isURLSearchParams(t)?t.toString():new Js(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class fi{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.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(r){r!==null&&t(r)})}}const wc={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},ph=typeof URLSearchParams<"u"?URLSearchParams:Js,mh=typeof FormData<"u"?FormData:null,gh=typeof Blob<"u"?Blob:null,yh={isBrowser:!0,classes:{URLSearchParams:ph,FormData:mh,Blob:gh},protocols:["http","https","file","blob","url","data"]},Xs=typeof window<"u"&&typeof document<"u",Ss=typeof navigator=="object"&&navigator||void 0,bh=Xs&&(!Ss||["ReactNative","NativeScript","NS"].indexOf(Ss.product)<0),_h=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Eh=Xs&&window.location.href||"http://localhost",wh=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Xs,hasStandardBrowserEnv:bh,hasStandardBrowserWebWorkerEnv:_h,navigator:Ss,origin:Eh},Symbol.toStringTag,{value:"Module"})),Ae={...wh,...yh};function Sh(e,t){return Dr(e,new Ae.classes.URLSearchParams,{visitor:function(n,r,s,o){return Ae.isNode&&b.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function vh(e){return b.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Ah(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&b.isArray(s)?s.length:i,c?(b.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!l):((!s[i]||!b.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&b.isArray(s[i])&&(s[i]=Ah(s[i])),!l)}if(b.isFormData(e)&&b.isFunction(e.entries)){const n={};return b.forEachEntry(e,(r,s)=>{t(vh(r),s,n,0)}),n}return null}function Rh(e,t,n){if(b.isString(e))try{return(t||JSON.parse)(e),b.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const kn={transitional:wc,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=b.isObject(t);if(o&&b.isHTMLForm(t)&&(t=new FormData(t)),b.isFormData(t))return s?JSON.stringify(Sc(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(r.indexOf("application/x-www-form-urlencoded")>-1)return Sh(t,this.formSerializer).toString();if((l=b.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return Dr(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),Rh(t)):t}],transformResponse:[function(t){const n=this.transitional||kn.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(b.isResponse(t)||b.isReadableStream(t))return t;if(t&&b.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(i)throw l.name==="SyntaxError"?X.from(l,X.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:Ae.classes.FormData,Blob:Ae.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=>{kn.headers[e]={}});const Ch=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"]),Oh=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&Ch[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},di=Symbol("internals");function hn(e){return e&&String(e).trim().toLowerCase()}function nr(e){return e===!1||e==null?e:b.isArray(e)?e.map(nr):String(e)}function Th(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const xh=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Zr(e,t,n,r,s){if(b.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!b.isString(t)){if(b.isString(r))return t.indexOf(r)!==-1;if(b.isRegExp(r))return r.test(t)}}function Ph(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Nh(e,t){const n=b.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let Me=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(l,c,u){const a=hn(c);if(!a)throw new Error("header name must be a non-empty string");const f=b.findKey(s,a);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||c]=nr(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())&&!xh(t))i(Oh(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,r);return this}get(t,n){if(t=hn(t),t){const r=b.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return Th(s);if(b.isFunction(n))return n.call(this,s,r);if(b.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=hn(t),t){const r=b.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Zr(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=hn(i),i){const l=b.findKey(r,i);l&&(!n||Zr(r,r[l],l,n))&&(delete r[l],s=!0)}}return b.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||Zr(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return b.forEach(this,(s,o)=>{const i=b.findKey(r,o);if(i){n[i]=nr(s),delete n[o];return}const l=t?Ph(o):String(o).trim();l!==o&&delete n[o],n[l]=nr(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return b.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&b.isArray(r)?r.join(", "):r)}),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 r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[di]=this[di]={accessors:{}}).accessors,s=this.prototype;function o(i){const l=hn(i);r[l]||(Nh(s,i),r[l]=!0)}return b.isArray(t)?t.forEach(o):o(t),this}};Me.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);b.reduceDescriptors(Me.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});b.freezeMethods(Me);function es(e,t){const n=this||kn,r=t||n,s=Me.from(r.headers);let o=r.data;return b.forEach(e,function(l){o=l.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function vc(e){return!!(e&&e.__CANCEL__)}function cn(e,t,n){X.call(this,e??"canceled",X.ERR_CANCELED,t,n),this.name="CanceledError"}b.inherits(cn,X,{__CANCEL__:!0});function Ac(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new X("Request failed with status code "+n.status,[X.ERR_BAD_REQUEST,X.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function Ih(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function Lh(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),a=r[o];i||(i=u),n[s]=c,r[s]=u;let f=o,p=0;for(;f!==s;)p+=n[f++],f=f%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i{n=a,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const a=Date.now(),f=a-n;f>=r?i(u,a):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-f)))},()=>s&&i(s)]}const pr=(e,t,n=3)=>{let r=0;const s=Lh(50,250);return Dh(o=>{const i=o.loaded,l=o.lengthComputable?o.total:void 0,c=i-r,u=s(c),a=i<=l;r=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)},hi=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},pi=e=>(...t)=>b.asap(()=>e(...t)),Fh=Ae.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Ae.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Ae.origin),Ae.navigator&&/(msie|trident)/i.test(Ae.navigator.userAgent)):()=>!0,Mh=Ae.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];b.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),b.isString(r)&&l.push(`path=${r}`),b.isString(s)&&l.push(`domain=${s}`),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 Bh(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function Uh(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Rc(e,t,n){let r=!Bh(t);return e&&(r||n==!1)?Uh(e,t):t}const mi=e=>e instanceof Me?{...e}:e;function Kt(e,t){t=t||{};const n={};function r(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 s(u,a,f,p){if(b.isUndefined(a)){if(!b.isUndefined(u))return r(void 0,u,f,p)}else return r(u,a,f,p)}function o(u,a){if(!b.isUndefined(a))return r(void 0,a)}function i(u,a){if(b.isUndefined(a)){if(!b.isUndefined(u))return r(void 0,u)}else return r(void 0,a)}function l(u,a,f){if(f in t)return r(u,a);if(f in e)return r(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)=>s(mi(u),mi(a),f,!0)};return b.forEach(Object.keys({...e,...t}),function(a){const f=c[a]||s,p=f(e[a],t[a],a);b.isUndefined(p)&&f!==l||(n[a]=p)}),n}const Cc=e=>{const t=Kt({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:l}=t;if(t.headers=i=Me.from(i),t.url=Ec(Rc(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(Ae.hasStandardBrowserEnv||Ae.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(Ae.hasStandardBrowserEnv&&(r&&b.isFunction(r)&&(r=r(t)),r||r!==!1&&Fh(t.url))){const c=s&&o&&Mh.read(o);c&&i.set(s,c)}return t},jh=typeof XMLHttpRequest<"u",Hh=jh&&function(e){return new Promise(function(n,r){const s=Cc(e);let o=s.data;const i=Me.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,a,f,p,m,g;function _(){m&&m(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(a),s.signal&&s.signal.removeEventListener("abort",a)}let E=new XMLHttpRequest;E.open(s.method.toUpperCase(),s.url,!0),E.timeout=s.timeout;function C(){if(!E)return;const N=Me.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),U={data:!l||l==="text"||l==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:N,config:e,request:E};Ac(function(H){n(H),_()},function(H){r(H),_()},U),E=null}"onloadend"in E?E.onloadend=C:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.indexOf("file:")===0)||setTimeout(C)},E.onabort=function(){E&&(r(new X("Request aborted",X.ECONNABORTED,e,E)),E=null)},E.onerror=function(x){const U=x&&x.message?x.message:"Network Error",G=new X(U,X.ERR_NETWORK,e,E);G.event=x||null,r(G),E=null},E.ontimeout=function(){let x=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const U=s.transitional||wc;s.timeoutErrorMessage&&(x=s.timeoutErrorMessage),r(new X(x,U.clarifyTimeoutError?X.ETIMEDOUT:X.ECONNABORTED,e,E)),E=null},o===void 0&&i.setContentType(null),"setRequestHeader"in E&&b.forEach(i.toJSON(),function(x,U){E.setRequestHeader(U,x)}),b.isUndefined(s.withCredentials)||(E.withCredentials=!!s.withCredentials),l&&l!=="json"&&(E.responseType=s.responseType),u&&([p,g]=pr(u,!0),E.addEventListener("progress",p)),c&&E.upload&&([f,m]=pr(c),E.upload.addEventListener("progress",f),E.upload.addEventListener("loadend",m)),(s.cancelToken||s.signal)&&(a=N=>{E&&(r(!N||N.type?new cn(null,e,E):N),E.abort(),E=null)},s.cancelToken&&s.cancelToken.subscribe(a),s.signal&&(s.signal.aborted?a():s.signal.addEventListener("abort",a)));const T=Ih(s.url);if(T&&Ae.protocols.indexOf(T)===-1){r(new X("Unsupported protocol "+T+":",X.ERR_BAD_REQUEST,e));return}E.send(o||null)})},kh=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,l();const a=u instanceof Error?u:this.reason;r.abort(a instanceof X?a:new cn(a instanceof Error?a.message:a))}};let i=t&&setTimeout(()=>{i=null,o(new X(`timeout ${t} of ms exceeded`,X.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}=r;return c.unsubscribe=()=>b.asap(l),c}},Vh=function*(e,t){let n=e.byteLength;if(n{const s=$h(e,t);let o=0,i,l=c=>{i||(i=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:a}=await s.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),s.return()}},{highWaterMark:2})},yi=64*1024,{isFunction:Gn}=b,Kh=(({Request:e,Response:t})=>({Request:e,Response:t}))(b.global),{ReadableStream:bi,TextEncoder:_i}=b.global,Ei=(e,...t)=>{try{return!!e(...t)}catch{return!1}},Wh=e=>{e=b.merge.call({skipUndefined:!0},Kh,e);const{fetch:t,Request:n,Response:r}=e,s=t?Gn(t):typeof fetch=="function",o=Gn(n),i=Gn(r);if(!s)return!1;const l=s&&Gn(bi),c=s&&(typeof _i=="function"?(g=>_=>g.encode(_))(new _i):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=o&&l&&Ei(()=>{let g=!1;const _=new n(Ae.origin,{body:new bi,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!_}),a=i&&l&&Ei(()=>b.isReadableStream(new r("").body)),f={stream:a&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(_,E)=>{let C=_&&_[g];if(C)return C.call(_);throw new X(`Response type '${g}' is not supported`,X.ERR_NOT_SUPPORT,E)})});const p=async g=>{if(g==null)return 0;if(b.isBlob(g))return g.size;if(b.isSpecCompliantForm(g))return(await new n(Ae.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},m=async(g,_)=>{const E=b.toFiniteNumber(g.getContentLength());return E??p(_)};return async g=>{let{url:_,method:E,data:C,signal:T,cancelToken:N,timeout:x,onDownloadProgress:U,onUploadProgress:G,responseType:H,headers:j,withCredentials:O="same-origin",fetchOptions:k}=Cc(g),Y=t||fetch;H=H?(H+"").toLowerCase():"text";let L=kh([T,N&&N.toAbortSignal()],x),Q=null;const le=L&&L.unsubscribe&&(()=>{L.unsubscribe()});let _e;try{if(G&&u&&E!=="get"&&E!=="head"&&(_e=await m(j,C))!==0){let ye=new n(_,{method:"POST",body:C,duplex:"half"}),me;if(b.isFormData(C)&&(me=ye.headers.get("content-type"))&&j.setContentType(me),ye.body){const[Ye,Ke]=hi(_e,pr(pi(G)));C=gi(ye.body,yi,Ye,Ke)}}b.isString(O)||(O=O?"include":"omit");const ee=o&&"credentials"in n.prototype,z={...k,signal:L,method:E.toUpperCase(),headers:j.normalize().toJSON(),body:C,duplex:"half",credentials:ee?O:void 0};Q=o&&new n(_,z);let Z=await(o?Y(Q,k):Y(_,z));const ke=a&&(H==="stream"||H==="response");if(a&&(U||ke&&le)){const ye={};["status","statusText","headers"].forEach(Ze=>{ye[Ze]=Z[Ze]});const me=b.toFiniteNumber(Z.headers.get("content-length")),[Ye,Ke]=U&&hi(me,pr(pi(U),!0))||[];Z=new r(gi(Z.body,yi,Ye,()=>{Ke&&Ke(),le&&le()}),ye)}H=H||"text";let Qe=await f[b.findKey(f,H)||"text"](Z,g);return!ke&&le&&le(),await new Promise((ye,me)=>{Ac(ye,me,{data:Qe,headers:Me.from(Z.headers),status:Z.status,statusText:Z.statusText,config:g,request:Q})})}catch(ee){throw le&&le(),ee&&ee.name==="TypeError"&&/Load failed|fetch/i.test(ee.message)?Object.assign(new X("Network Error",X.ERR_NETWORK,g,Q),{cause:ee.cause||ee}):X.from(ee,ee&&ee.code,g,Q)}}},Gh=new Map,Oc=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,l=i,c,u,a=Gh;for(;l--;)c=o[l],u=a.get(c),u===void 0&&a.set(c,u=l?new Map:Wh(t)),a=u;return u};Oc();const Qs={http:uh,xhr:Hh,fetch:{get:Oc}};b.forEach(Qs,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const wi=e=>`- ${e}`,zh=e=>b.isFunction(e)||e===null||e===!1;function Jh(e,t){e=b.isArray(e)?e:[e];const{length:n}=e;let r,s;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(wi).join(` +`):" "+wi(i[0]):"as no adapter specified";throw new X("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const Tc={getAdapter:Jh,adapters:Qs};function ts(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new cn(null,e)}function Si(e){return ts(e),e.headers=Me.from(e.headers),e.data=es.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Tc.getAdapter(e.adapter||kn.adapter,e)(e).then(function(r){return ts(e),r.data=es.call(e,e.transformResponse,r),r.headers=Me.from(r.headers),r},function(r){return vc(r)||(ts(e),r&&r.response&&(r.response.data=es.call(e,e.transformResponse,r.response),r.response.headers=Me.from(r.response.headers))),Promise.reject(r)})}const xc="1.13.2",Fr={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Fr[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const vi={};Fr.transitional=function(t,n,r){function s(o,i){return"[Axios v"+xc+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,l)=>{if(t===!1)throw new X(s(i," has been removed"+(n?" in "+n:"")),X.ERR_DEPRECATED);return n&&!vi[i]&&(vi[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,l):!0}};Fr.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function Xh(e,t,n){if(typeof e!="object")throw new X("options must be an object",X.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const l=e[o],c=l===void 0||i(l,o,e);if(c!==!0)throw new X("option "+o+" must be "+c,X.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new X("Unknown option "+o,X.ERR_BAD_OPTION)}}const rr={assertOptions:Xh,validators:Fr},ot=rr.validators;let qt=class{constructor(t){this.defaults=t||{},this.interceptors={request:new fi,response:new fi}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Kt(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&rr.assertOptions(r,{silentJSONParsing:ot.transitional(ot.boolean),forcedJSONParsing:ot.transitional(ot.boolean),clarifyTimeoutError:ot.transitional(ot.boolean)},!1),s!=null&&(b.isFunction(s)?n.paramsSerializer={serialize:s}:rr.assertOptions(s,{encode:ot.function,serialize:ot.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),rr.assertOptions(n,{baseUrl:ot.spelling("baseURL"),withXsrfToken:ot.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=Me.concat(i,o);const l=[];let c=!0;this.interceptors.request.forEach(function(_){typeof _.runWhen=="function"&&_.runWhen(n)===!1||(c=c&&_.synchronous,l.unshift(_.fulfilled,_.rejected))});const u=[];this.interceptors.response.forEach(function(_){u.push(_.fulfilled,_.rejected)});let a,f=0,p;if(!c){const g=[Si.bind(this),void 0];for(g.unshift(...l),g.push(...u),p=g.length,a=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(l=>{r.subscribe(l),o=l}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,l){r.reason||(r.reason=new cn(o,i,l),n(r.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=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new Pc(function(s){t=s}),cancel:t}}};function Yh(e){return function(n){return e.apply(null,n)}}function Zh(e){return b.isObject(e)&&e.isAxiosError===!0}const vs={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(vs).forEach(([e,t])=>{vs[t]=e});function Nc(e){const t=new qt(e),n=cc(qt.prototype.request,t);return b.extend(n,qt.prototype,t,{allOwnKeys:!0}),b.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return Nc(Kt(e,s))},n}const ge=Nc(kn);ge.Axios=qt;ge.CanceledError=cn;ge.CancelToken=Qh;ge.isCancel=vc;ge.VERSION=xc;ge.toFormData=Dr;ge.AxiosError=X;ge.Cancel=ge.CanceledError;ge.all=function(t){return Promise.all(t)};ge.spread=Yh;ge.isAxiosError=Zh;ge.mergeConfig=Kt;ge.AxiosHeaders=Me;ge.formToJSON=e=>Sc(b.isHTMLForm(e)?new FormData(e):e);ge.getAdapter=Tc.getAdapter;ge.HttpStatusCode=vs;ge.default=ge;const{Axios:bp,AxiosError:_p,CanceledError:Ep,isCancel:wp,CancelToken:Sp,VERSION:vp,all:Ap,Cancel:Rp,isAxiosError:Cp,spread:Op,toFormData:Tp,AxiosHeaders:xp,HttpStatusCode:Pp,formToJSON:Np,getAdapter:Ip,mergeConfig:Lp}=ge,Rn=ge.create({baseURL:"",timeout:3e4,withCredentials:!0});Rn.interceptors.request.use(e=>e,e=>Promise.reject(e));Rn.interceptors.response.use(e=>e.data,e=>{e.response?.status===401&&(window.location.hash="#/login");const t=e.response?.data?e.response.data.detail||e.response.data.message:e.message;return Promise.reject(new Error(t||"请求失败"))});const zn={login:e=>{const t=new URLSearchParams;return t.append("admin_key",e.password),Rn.post("/login",t,{headers:{"Content-Type":"application/x-www-form-urlencoded"}})},logout:()=>Rn.post("/logout"),checkAuth:()=>Rn.get("/admin/health")},ep=gf("auth",()=>{const e=Vt(!1),t=Vt(!1),n=Vt(0),r=1e4;let s=null;async function o(c){t.value=!0;try{return await zn.login({password:c}),await zn.checkAuth(),e.value=!0,n.value=Date.now(),!0}catch(u){throw e.value=!1,u}finally{t.value=!1}}async function i(){try{await zn.logout()}finally{e.value=!1,n.value=0}}async function l(){const c=Date.now();if(e.value&&c-n.value(await zn.checkAuth(),e.value=!0,!0))(),await s}catch{return e.value=!1,!1}finally{n.value=Date.now(),s=null}}return{isLoggedIn:e,isLoading:t,login:o,logout:i,checkAuth:l}}),Ic=Ad({history:rd("/"),routes:[{path:"/public/uptime",name:"public-uptime",component:()=>st(()=>import("./PublicUptime-ciOMZPPd.js"),__vite__mapDeps([0,1])),meta:{requiresAuth:!1}},{path:"/public/logs",name:"public-logs",component:()=>st(()=>import("./PublicLogs-Dg26RuXJ.js"),[]),meta:{requiresAuth:!1}},{path:"/login",name:"login",component:()=>st(()=>import("./Login-De5OO3WM.js"),__vite__mapDeps([2,3])),meta:{requiresAuth:!1}},{path:"/",component:()=>st(()=>import("./AppShell-D4_kHEqh.js"),__vite__mapDeps([4,5,6,7])),meta:{requiresAuth:!0},children:[{path:"",name:"dashboard",component:()=>st(()=>import("./Dashboard-DaZ0njmu.js"),__vite__mapDeps([8,9]))},{path:"accounts",name:"accounts",component:()=>st(()=>import("./Accounts-CS68WEf6.js"),__vite__mapDeps([10,11,3,6,7,9]))},{path:"settings",name:"settings",component:()=>st(()=>import("./Settings-B68jiI6O.js"),__vite__mapDeps([12,5,11,3,9]))},{path:"logs",name:"logs",component:()=>st(()=>import("./Logs-otvcDIGF.js"),__vite__mapDeps([13,11,6]))},{path:"monitor",name:"monitor",component:()=>st(()=>import("./Monitor-C3RzkUxt.js"),__vite__mapDeps([14,1]))},{path:"docs",name:"docs",component:()=>st(()=>import("./Docs-CUxRAKUD.js"),[])}]}]});Ic.beforeEach(async e=>{const t=ep();if(e.meta.requiresAuth&&!await t.checkAuth())return{name:"login"};if(e.name==="login"&&t.isLoggedIn)return{name:"dashboard"}});const tp=js({__name:"App",setup(e){return(t,n)=>(ur(),dr(Pt(lc)))}}),Ys=lf(tp),np=uf();Ys.use(np);Ys.use(Ic);Ys.mount("#app");export{bn as A,cp as B,lc as C,gf as D,hp as E,De as F,Bs as G,ip as H,Fn as I,Ed as R,up as T,Hl as a,ap as b,lp as c,js as d,ur as e,Eu as f,Rn as g,Vt as h,Ue as i,El as j,Ts as k,ep as l,dr as m,xs as n,_l as o,Ne as p,rp as q,op as r,Ra as s,qc as t,Pt as u,fp as v,dp as w,sp as x,pp as y,mp as z}; diff --git a/static/assets/index-B3o9aqPp.css b/static/assets/index-B3o9aqPp.css new file mode 100644 index 0000000000000000000000000000000000000000..64d60ad9163fcd147edb26863761ec8ddef1e400 --- /dev/null +++ b/static/assets/index-B3o9aqPp.css @@ -0,0 +1 @@ +@import"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=Noto+Serif+SC:wght@600;700&display=swap";*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 97%;--foreground: 0 0% 10%;--card: 0 0% 100%;--card-foreground: 0 0% 10%;--primary: 0 0% 10%;--primary-foreground: 0 0% 100%;--secondary: 0 0% 92%;--secondary-foreground: 0 0% 10%;--muted: 0 0% 92%;--muted-foreground: 0 0% 40%;--accent: 0 0% 90%;--accent-foreground: 0 0% 10%;--destructive: 0 70% 45%;--destructive-foreground: 0 0% 100%;--border: 0 0% 86%;--input: 0 0% 86%;--ring: 0 0% 10%;--radius: 1rem}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:Noto Sans SC,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;overflow-x:hidden;background-image:radial-gradient(900px circle at 10% -20%,rgba(0,0,0,.04),transparent 45%),radial-gradient(700px circle at 90% 0%,rgba(0,0,0,.05),transparent 40%),linear-gradient(180deg,hsl(var(--background)) 0% 100%)}body:before{content:"";position:fixed;inset:0;background-image:linear-gradient(120deg,#ffffff8c,#fff0);opacity:.5;pointer-events:none;z-index:-1}h1,h2,h3{font-family:"Noto Serif SC",Georgia,serif;letter-spacing:-.01em}#app{min-height:100vh}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-y-0{top:0;bottom:0}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.top-full{top:100%}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[9999\]{z-index:9999}.col-span-2{grid-column:span 2 / span 2}.mx-auto{margin-left:auto;margin-right:auto}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-2{margin-left:.5rem}.ml-auto{margin-left:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0{height:0px}.h-10{height:2.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-full{height:100%}.max-h-\[60vh\]{max-height:60vh}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-10{width:2.5rem}.w-20{width:5rem}.w-24{width:6rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-40{width:10rem}.w-44{width:11rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[200px\]{min-width:200px}.min-w-full{min-width:100%}.max-w-3xl{max-width:48rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-visible{overflow-y:visible}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[2\.5rem\]{border-radius:2.5rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-x-4{border-left-width:4px;border-right-width:4px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-4{border-top-width:4px}.border-border{border-color:hsl(var(--border))}.border-destructive\/30{border-color:hsl(var(--destructive) / .3)}.border-input{border-color:hsl(var(--input))}.border-primary-foreground\/40{border-color:hsl(var(--primary-foreground) / .4)}.border-x-transparent{border-left-color:transparent;border-right-color:transparent}.border-t-foreground{border-top-color:hsl(var(--foreground))}.bg-accent{background-color:hsl(var(--accent))}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-200{--tw-bg-opacity: 1;background-color:rgb(253 230 138 / var(--tw-bg-opacity, 1))}.bg-amber-300{--tw-bg-opacity: 1;background-color:rgb(252 211 77 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/20{background-color:#0003}.bg-black\/30{background-color:#0000004d}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-card{background-color:hsl(var(--card))}.bg-card\/70{background-color:hsl(var(--card) / .7)}.bg-card\/90{background-color:hsl(var(--card) / .9)}.bg-cyan-100{--tw-bg-opacity: 1;background-color:rgb(207 250 254 / var(--tw-bg-opacity, 1))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/70{background-color:hsl(var(--muted) / .7)}.bg-primary{background-color:hsl(var(--primary))}.bg-primary-foreground\/15{background-color:hsl(var(--primary-foreground) / .15)}.bg-rose-100{--tw-bg-opacity: 1;background-color:rgb(255 228 230 / var(--tw-bg-opacity, 1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/30{background-color:hsl(var(--secondary) / .3)}.bg-secondary\/40{background-color:hsl(var(--secondary) / .4)}.bg-secondary\/50{background-color:hsl(var(--secondary) / .5)}.bg-secondary\/60{background-color:hsl(var(--secondary) / .6)}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-violet-100{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.object-contain{-o-object-fit:contain;object-fit:contain}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-10{padding-bottom:2.5rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pr-1{padding-right:.25rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.tracking-\[0\.12em\]{letter-spacing:.12em}.tracking-\[0\.28em\]{letter-spacing:.28em}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-\[0\.3em\]{letter-spacing:.3em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-background{color:hsl(var(--background))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-cyan-700{--tw-text-opacity: 1;color:rgb(14 116 144 / var(--tw-text-opacity, 1))}.text-destructive{color:hsl(var(--destructive))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-green-200{--tw-text-opacity: 1;color:rgb(187 247 208 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-violet-700{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.opacity-0{opacity:0}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-black\/10{--tw-shadow-color: rgb(0 0 0 / .1);--tw-shadow: var(--tw-shadow-colored)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-\[transform\]{will-change:transform}html{scrollbar-gutter:stable}*{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.35) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:#00000059;border-radius:999px;border:2px solid transparent;background-clip:content-box}.scrollbar-slim::-webkit-scrollbar{width:6px;height:6px}.scrollbar-slim::-webkit-scrollbar-thumb{background-color:#0006}.cv-auto{content-visibility:auto;contain-intrinsic-size:0 44px}.monitor-badge--up{background:#d1fae5;color:#065f46}.monitor-badge--warn{background:#fef3c7;color:#b45309}.monitor-badge--down{background:#fee2e2;color:#991b1b}.monitor-badge--unknown{background:#f3f4f6;color:#6b7280}.monitor-card{border-radius:16px;padding:0;background:hsl(var(--card));box-shadow:none}.monitor-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.monitor-card__name{font-size:14px;font-weight:600;color:hsl(var(--foreground))}.monitor-card__badge{padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600}.monitor-card__stats{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:hsl(var(--muted-foreground));margin-bottom:12px}.monitor-card__value{margin-left:4px;color:hsl(var(--foreground));font-weight:600}.monitor-card__beats{display:flex;gap:2px;height:24px;align-items:flex-end}.monitor-beat{flex:1;min-width:4px;max-width:8px;border-radius:2px;transition:all .2s;position:relative}.monitor-beat:hover{opacity:.8;transform:scaleY(1.1)}.monitor-beat--up{background:#34c759;height:100%}.monitor-beat--warn,.monitor-beat--slow{background:#f5c15b;height:100%}.monitor-beat--down{background:#ff3b30;height:100%}.monitor-beat--empty{background:#e5e5ea;height:40%}.monitor-beat__tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#1d1d1f;color:#fff;padding:6px 10px;border-radius:6px;font-size:11px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;margin-bottom:6px;z-index:10}.monitor-beat__tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#1d1d1f}.monitor-beat:hover .monitor-beat__tooltip{opacity:1}.help-dot{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:999px;border:1px solid hsl(var(--border));font-size:10px;line-height:1;color:hsl(var(--muted-foreground));cursor:default}@media(max-width:768px){.monitor-beat{min-width:3px;max-width:6px}}@media(min-width:1024px){.dashboard-split{flex-direction:row;flex-wrap:nowrap}.dashboard-split .dashboard-main{flex:0 0 66.6667%;max-width:66.6667%}.dashboard-split .dashboard-side{flex:0 0 33.3333%;max-width:33.3333%}}@keyframes logo-float{0%{transform:translateY(0)}25%{transform:translateY(6px)}50%{transform:translateY(0)}75%{transform:translateY(-6px)}to{transform:translateY(0)}}@keyframes logo-blink{0%,45%,55%,to{transform:scaleY(1);opacity:1}50%{transform:scaleY(.1);opacity:.6}}.logo-mark .logo-cat-wrapper{animation:logo-float 4s ease-in-out infinite;transform-origin:center}.logo-mark{transform:translateY(2px)}.logo-mark .logo-eye{fill:#00bcd4;filter:drop-shadow(0 0 2px #00bcd4);animation:logo-blink 5s infinite;transform-box:fill-box;transform-origin:center}.hover\:border-destructive:hover{border-color:hsl(var(--destructive))}.hover\:border-destructive\/40:hover{border-color:hsl(var(--destructive) / .4)}.hover\:border-destructive\/60:hover{border-color:hsl(var(--destructive) / .6)}.hover\:border-foreground:hover{border-color:hsl(var(--foreground))}.hover\:border-primary:hover{border-color:hsl(var(--primary))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-secondary\/60:hover{background-color:hsl(var(--secondary) / .6)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-emerald-500:hover{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:opacity-90:hover{opacity:.9}.focus\:border-transparent:focus{border-color:transparent}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:text-accent-foreground{color:hsl(var(--accent-foreground))}.group:hover .group-hover\:opacity-100{opacity:1}.peer:checked~.peer-checked\:border-foreground{border-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:bg-foreground{background-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.peer:disabled~.peer-disabled\:opacity-50{opacity:.5}@media(min-width:640px){.sm\:ml-0{margin-left:0}.sm\:flex{display:flex}.sm\:w-44{width:11rem}.sm\:w-48{width:12rem}.sm\:w-auto{width:auto}.sm\:min-w-0{min-width:0px}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:items-center{align-items:center}}@media(min-width:768px){.md\:w-auto{width:auto}.md\:flex-1{flex:1 1 0%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1024px){.lg\:static{position:static}.lg\:sticky{position:sticky}.lg\:top-0{top:0}.lg\:ml-0{margin-left:0}.lg\:hidden{display:none}.lg\:h-20{height:5rem}.lg\:h-64{height:16rem}.lg\:h-72{height:18rem}.lg\:h-screen{height:100vh}.lg\:w-20{width:5rem}.lg\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:border-b-0{border-bottom-width:0px}.lg\:border-r{border-right-width:1px}.lg\:bg-card\/80{background-color:hsl(var(--card) / .8)}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:py-4{padding-top:1rem;padding-bottom:1rem}.lg\:pt-10{padding-top:2.5rem}.lg\:pt-5{padding-top:1.25rem}.lg\:pt-6{padding-top:1.5rem}.lg\:text-2xl{font-size:1.5rem;line-height:2rem}.lg\:backdrop-blur-none{--tw-backdrop-blur: ;-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}}@media(min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}} diff --git a/static/assets/index-BCQxBeUo.js b/static/assets/index-BCQxBeUo.js new file mode 100644 index 0000000000000000000000000000000000000000..694acd7b9932c45a98a1bc3980366c77c5a0d63b --- /dev/null +++ b/static/assets/index-BCQxBeUo.js @@ -0,0 +1,7 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PublicUptime-CiWeF8gU.js","assets/useUptimeStatus-W1m6nNB0.js","assets/Login-DXJamC1a.js","assets/Checkbox.vue_vue_type_script_setup_true_lang-12Ygc6BR.js","assets/AppShell-aSE0a76B.js","assets/settings-2nHuz2zg.js","assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-CXKmFeEu.js","assets/useConfirmDialog-CdgTrrpG.js","assets/Dashboard-CpaJFO-h.js","assets/HelpTip.vue_vue_type_script_setup_true_lang-32PHHvO_.js","assets/Accounts-EOqS8kG-.js","assets/SelectMenu.vue_vue_type_script_setup_true_lang-SHDMWwbQ.js","assets/Settings-CJmrMQ40.js","assets/Logs-TwFNBtoi.js","assets/Monitor-I31qtw0o.js"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function Ns(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const ce={},tn=[],ut=()=>{},xi=()=>!1,wr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Is=e=>e.startsWith("onUpdate:"),Ee=Object.assign,Ls=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Bc=Object.prototype.hasOwnProperty,oe=(e,t)=>Bc.call(e,t),K=Array.isArray,nn=e=>vr(e)==="[object Map]",Ti=e=>vr(e)==="[object Set]",J=e=>typeof e=="function",pe=e=>typeof e=="string",vt=e=>typeof e=="symbol",ae=e=>e!==null&&typeof e=="object",Oi=e=>(ae(e)||J(e))&&J(e.then)&&J(e.catch),Pi=Object.prototype.toString,vr=e=>Pi.call(e),Uc=e=>vr(e).slice(8,-1),Ni=e=>vr(e)==="[object Object]",Sr=e=>pe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,En=Ns(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ar=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},jc=/-\w/g,Dt=Ar(e=>e.replace(jc,t=>t.slice(1).toUpperCase())),Hc=/\B([A-Z])/g,zt=Ar(e=>e.replace(Hc,"-$1").toLowerCase()),Ii=Ar(e=>e.charAt(0).toUpperCase()+e.slice(1)),Vr=Ar(e=>e?`on${Ii(e)}`:""),Lt=(e,t)=>!Object.is(e,t),er=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},Ds=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Vc=e=>{const t=pe(e)?Number(e):NaN;return isNaN(t)?e:t};let io;const Rr=()=>io||(io=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Fs(e){if(K(e)){const t={};for(let n=0;n{if(n){const r=n.split(qc);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Nn(e){let t="";if(pe(e))t=e;else if(K(e))for(let n=0;n!!(e&&e.__v_isRef===!0),ls=e=>pe(e)?e:e==null?"":K(e)||ae(e)&&(e.toString===Pi||!J(e.toString))?Fi(e)?ls(e.value):JSON.stringify(e,Mi,2):String(e),Mi=(e,t)=>Fi(t)?Mi(e,t.value):nn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[$r(r,o)+" =>"]=s,n),{})}:Ti(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>$r(n))}:vt(t)?$r(t):ae(t)&&!K(t)&&!Ni(t)?String(t):t,$r=(e,t="")=>{var n;return vt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let Se;class ki{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,r;for(n=0,r=this.effects.length;n0)return;if(vn){let t=vn;for(vn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;wn;){let t=wn;for(wn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function $i(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function qi(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),Bs(r),Xc(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function cs(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Ki(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Ki(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===In)||(e.globalVersion=In,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!cs(e))))return;e.flags|=2;const t=e.dep,n=fe,r=Ge;fe=e,Ge=!0;try{$i(e);const s=e.fn(e._value);(t.version===0||Lt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{fe=n,Ge=r,qi(e),e.flags&=-3}}function Bs(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)Bs(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Xc(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Ge=!0;const Wi=[];function bt(){Wi.push(Ge),Ge=!1}function Et(){const e=Wi.pop();Ge=e===void 0?!0:e}function lo(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=fe;fe=void 0;try{t()}finally{fe=n}}}let In=0;class Qc{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 Us{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(!fe||!Ge||fe===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==fe)n=this.activeLink=new Qc(fe,this),fe.deps?(n.prevDep=fe.depsTail,fe.depsTail.nextDep=n,fe.depsTail=n):fe.deps=fe.depsTail=n,Gi(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=fe.depsTail,n.nextDep=void 0,fe.depsTail.nextDep=n,fe.depsTail=n,fe.deps===n&&(fe.deps=r)}return n}trigger(t){this.version++,In++,this.notify(t)}notify(t){Ms();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ks()}}}function Gi(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Gi(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const ar=new WeakMap,Vt=Symbol(""),as=Symbol(""),Ln=Symbol("");function Ae(e,t,n){if(Ge&&fe){let r=ar.get(e);r||ar.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new Us),s.map=r,s.key=n),s.track()}}function yt(e,t,n,r,s,o){const i=ar.get(e);if(!i){In++;return}const l=c=>{c&&c.trigger()};if(Ms(),t==="clear")i.forEach(l);else{const c=K(e),u=c&&Sr(n);if(c&&n==="length"){const a=Number(r);i.forEach((f,h)=>{(h==="length"||h===Ln||!vt(h)&&h>=a)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(Ln)),t){case"add":c?u&&l(i.get("length")):(l(i.get(Vt)),nn(e)&&l(i.get(as)));break;case"delete":c||(l(i.get(Vt)),nn(e)&&l(i.get(as)));break;case"set":nn(e)&&l(i.get(Vt));break}}ks()}function Yc(e,t){const n=ar.get(e);return n&&n.get(t)}function Jt(e){const t=re(e);return t===e?t:(Ae(t,"iterate",Ln),je(e)?t:t.map(ze))}function Cr(e){return Ae(e=re(e),"iterate",Ln),e}function Ot(e,t){return wt(e)?ft(e)?on(ze(t)):on(t):ze(t)}const Zc={__proto__:null,[Symbol.iterator](){return Kr(this,Symbol.iterator,e=>Ot(this,e))},concat(...e){return Jt(this).concat(...e.map(t=>K(t)?Jt(t):t))},entries(){return Kr(this,"entries",e=>(e[1]=Ot(this,e[1]),e))},every(e,t){return pt(this,"every",e,t,void 0,arguments)},filter(e,t){return pt(this,"filter",e,t,n=>n.map(r=>Ot(this,r)),arguments)},find(e,t){return pt(this,"find",e,t,n=>Ot(this,n),arguments)},findIndex(e,t){return pt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return pt(this,"findLast",e,t,n=>Ot(this,n),arguments)},findLastIndex(e,t){return pt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return pt(this,"forEach",e,t,void 0,arguments)},includes(...e){return Wr(this,"includes",e)},indexOf(...e){return Wr(this,"indexOf",e)},join(e){return Jt(this).join(e)},lastIndexOf(...e){return Wr(this,"lastIndexOf",e)},map(e,t){return pt(this,"map",e,t,void 0,arguments)},pop(){return mn(this,"pop")},push(...e){return mn(this,"push",e)},reduce(e,...t){return co(this,"reduce",e,t)},reduceRight(e,...t){return co(this,"reduceRight",e,t)},shift(){return mn(this,"shift")},some(e,t){return pt(this,"some",e,t,void 0,arguments)},splice(...e){return mn(this,"splice",e)},toReversed(){return Jt(this).toReversed()},toSorted(e){return Jt(this).toSorted(e)},toSpliced(...e){return Jt(this).toSpliced(...e)},unshift(...e){return mn(this,"unshift",e)},values(){return Kr(this,"values",e=>Ot(this,e))}};function Kr(e,t,n){const r=Cr(e),s=r[t]();return r!==e&&!je(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const ea=Array.prototype;function pt(e,t,n,r,s,o){const i=Cr(e),l=i!==e&&!je(e),c=i[t];if(c!==ea[t]){const f=c.apply(e,o);return l?ze(f):f}let u=n;i!==e&&(l?u=function(f,h){return n.call(this,Ot(e,f),h,e)}:n.length>2&&(u=function(f,h){return n.call(this,f,h,e)}));const a=c.call(i,u,r);return l&&s?s(a):a}function co(e,t,n,r){const s=Cr(e);let o=n;return s!==e&&(je(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,Ot(e,l),c,e)}),s[t](o,...r)}function Wr(e,t,n){const r=re(e);Ae(r,"iterate",Ln);const s=r[t](...n);return(s===-1||s===!1)&&xr(n[0])?(n[0]=re(n[0]),r[t](...n)):s}function mn(e,t,n=[]){bt(),Ms();const r=re(e)[t].apply(e,n);return ks(),Et(),r}const ta=Ns("__proto__,__v_isRef,__isVue"),zi=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(vt));function na(e){vt(e)||(e=String(e));const t=re(this);return Ae(t,"has",e),t.hasOwnProperty(e)}class Ji{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?da:Zi:o?Yi:Qi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=K(t);if(!s){let c;if(i&&(c=Zc[n]))return c;if(n==="hasOwnProperty")return na}const l=Reflect.get(t,n,de(t)?t:r);if((vt(n)?zi.has(n):ta(n))||(s||Ae(t,"get",n),o))return l;if(de(l)){const c=i&&Sr(n)?l:l.value;return s&&ae(c)?fs(c):c}return ae(l)?s?fs(l):fn(l):l}}class Xi extends Ji{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=K(t)&&Sr(n);if(!this._isShallow){const u=wt(o);if(!je(r)&&!wt(r)&&(o=re(o),r=re(r)),!i&&de(o)&&!de(r))return u||(o.value=r),!0}const l=i?Number(n)e,Wn=e=>Reflect.getPrototypeOf(e);function la(e,t,n){return function(...r){const s=this.__v_raw,o=re(s),i=nn(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=s[e](...r),a=n?us:t?on:ze;return!t&&Ae(o,"iterate",c?as:Vt),{next(){const{value:f,done:h}=u.next();return h?{value:f,done:h}:{value:l?[a(f[0]),a(f[1])]:a(f),done:h}},[Symbol.iterator](){return this}}}}function Gn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function ca(e,t){const n={get(s){const o=this.__v_raw,i=re(o),l=re(s);e||(Lt(s,l)&&Ae(i,"get",s),Ae(i,"get",l));const{has:c}=Wn(i),u=t?us:e?on:ze;if(c.call(i,s))return u(o.get(s));if(c.call(i,l))return u(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&Ae(re(s),"iterate",Vt),s.size},has(s){const o=this.__v_raw,i=re(o),l=re(s);return e||(Lt(s,l)&&Ae(i,"has",s),Ae(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,c=re(l),u=t?us:e?on:ze;return!e&&Ae(c,"iterate",Vt),l.forEach((a,f)=>s.call(o,u(a),u(f),i))}};return Ee(n,e?{add:Gn("add"),set:Gn("set"),delete:Gn("delete"),clear:Gn("clear")}:{add(s){!t&&!je(s)&&!wt(s)&&(s=re(s));const o=re(this);return Wn(o).has.call(o,s)||(o.add(s),yt(o,"add",s,s)),this},set(s,o){!t&&!je(o)&&!wt(o)&&(o=re(o));const i=re(this),{has:l,get:c}=Wn(i);let u=l.call(i,s);u||(s=re(s),u=l.call(i,s));const a=c.call(i,s);return i.set(s,o),u?Lt(o,a)&&yt(i,"set",s,o):yt(i,"add",s,o),this},delete(s){const o=re(this),{has:i,get:l}=Wn(o);let c=i.call(o,s);c||(s=re(s),c=i.call(o,s)),l&&l.call(o,s);const u=o.delete(s);return c&&yt(o,"delete",s,void 0),u},clear(){const s=re(this),o=s.size!==0,i=s.clear();return o&&yt(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=la(s,e,t)}),n}function js(e,t){const n=ca(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(oe(n,s)&&s in r?n:r,s,o)}const aa={get:js(!1,!1)},ua={get:js(!1,!0)},fa={get:js(!0,!1)};const Qi=new WeakMap,Yi=new WeakMap,Zi=new WeakMap,da=new WeakMap;function ha(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function pa(e){return e.__v_skip||!Object.isExtensible(e)?0:ha(Uc(e))}function fn(e){return wt(e)?e:Hs(e,!1,sa,aa,Qi)}function el(e){return Hs(e,!1,ia,ua,Yi)}function fs(e){return Hs(e,!0,oa,fa,Zi)}function Hs(e,t,n,r,s){if(!ae(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=pa(e);if(o===0)return e;const i=s.get(e);if(i)return i;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function ft(e){return wt(e)?ft(e.__v_raw):!!(e&&e.__v_isReactive)}function wt(e){return!!(e&&e.__v_isReadonly)}function je(e){return!!(e&&e.__v_isShallow)}function xr(e){return e?!!e.__v_raw:!1}function re(e){const t=e&&e.__v_raw;return t?re(t):e}function Vs(e){return!oe(e,"__v_skip")&&Object.isExtensible(e)&&Li(e,"__v_skip",!0),e}const ze=e=>ae(e)?fn(e):e,on=e=>ae(e)?fs(e):e;function de(e){return e?e.__v_isRef===!0:!1}function $t(e){return tl(e,!1)}function ma(e){return tl(e,!0)}function tl(e,t){return de(e)?e:new ga(e,t)}class ga{constructor(t,n){this.dep=new Us,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:re(t),this._value=n?t:ze(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||je(t)||wt(t);t=r?t:re(t),Lt(t,n)&&(this._rawValue=t,this._value=r?t:ze(t),this.dep.trigger())}}function dt(e){return de(e)?e.value:e}const ya={get:(e,t,n)=>t==="__v_raw"?e:dt(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return de(s)&&!de(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function nl(e){return ft(e)?e:new Proxy(e,ya)}function _a(e){const t=K(e)?new Array(e.length):{};for(const n in e)t[n]=rl(e,n);return t}class ba{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._raw=re(t);let s=!0,o=t;if(!K(t)||!Sr(String(n)))do s=!xr(o)||je(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=dt(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&de(this._raw[this._key])){const n=this._object[this._key];if(de(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return Yc(this._raw,this._key)}}class Ea{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function wa(e,t,n){return de(e)?e:J(e)?new Ea(e):ae(e)&&arguments.length>1?rl(e,t,n):$t(e)}function rl(e,t,n){return new ba(e,t,n)}class va{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Us(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=In-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&fe!==this)return Vi(this,!0),!0}get value(){const t=this.dep.track();return Ki(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Sa(e,t,n=!1){let r,s;return J(e)?r=e:(r=e.get,s=e.set),new va(r,s,n)}const zn={},ur=new WeakMap;let Bt;function Aa(e,t=!1,n=Bt){if(n){let r=ur.get(n);r||ur.set(n,r=[]),r.push(e)}}function Ra(e,t,n=ce){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:c}=n,u=O=>s?O:je(O)||s===!1||s===0?_t(O,1):_t(O);let a,f,h,m,g=!1,b=!1;if(de(e)?(f=()=>e.value,g=je(e)):ft(e)?(f=()=>u(e),g=!0):K(e)?(b=!0,g=e.some(O=>ft(O)||je(O)),f=()=>e.map(O=>{if(de(O))return O.value;if(ft(O))return u(O);if(J(O))return c?c(O,2):O()})):J(e)?t?f=c?()=>c(e,2):e:f=()=>{if(h){bt();try{h()}finally{Et()}}const O=Bt;Bt=a;try{return c?c(e,3,[m]):e(m)}finally{Bt=O}}:f=ut,t&&s){const O=f,B=s===!0?1/0:s;f=()=>_t(O(),B)}const E=Ui(),C=()=>{a.stop(),E&&E.active&&Ls(E.effects,a)};if(o&&t){const O=t;t=(...B)=>{O(...B),C()}}let T=b?new Array(e.length).fill(zn):zn;const N=O=>{if(!(!(a.flags&1)||!a.dirty&&!O))if(t){const B=a.run();if(s||g||(b?B.some((G,j)=>Lt(G,T[j])):Lt(B,T))){h&&h();const G=Bt;Bt=a;try{const j=[B,T===zn?void 0:b&&T[0]===zn?[]:T,m];T=B,c?c(t,3,j):t(...j)}finally{Bt=G}}}else a.run()};return l&&l(N),a=new ji(f),a.scheduler=i?()=>i(N,!1):N,m=O=>Aa(O,!1,a),h=a.onStop=()=>{const O=ur.get(a);if(O){if(c)c(O,4);else for(const B of O)B();ur.delete(a)}},t?r?N(!0):T=a.run():i?i(N.bind(null,!0),!0):a.run(),C.pause=a.pause.bind(a),C.resume=a.resume.bind(a),C.stop=C,C}function _t(e,t=1/0,n){if(t<=0||!ae(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,de(e))_t(e.value,t,n);else if(K(e))for(let r=0;r{_t(r,t,n)});else if(Ni(e)){for(const r in e)_t(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&_t(e[r],t,n)}return e}function jn(e,t,n,r){try{return r?e(...r):e()}catch(s){Tr(s,t,n)}}function Je(e,t,n,r){if(J(e)){const s=jn(e,t,n,r);return s&&Oi(s)&&s.catch(o=>{Tr(o,t,n)}),s}if(K(e)){const s=[];for(let o=0;o>>1,s=Pe[r],o=Dn(s);o=Dn(n)?Pe.push(e):Pe.splice(xa(t),0,e),e.flags|=1,ol()}}function ol(){fr||(fr=sl.then(ll))}function Ta(e){K(e)?rn.push(...e):Pt&&e.id===-1?Pt.splice(Qt+1,0,e):e.flags&1||(rn.push(e),e.flags|=1),ol()}function ao(e,t,n=ct+1){for(;nDn(n)-Dn(r));if(rn.length=0,Pt){Pt.push(...t);return}for(Pt=t,Qt=0;Qte.id==null?e.flags&2?-1:1/0:e.id;function ll(e){try{for(ct=0;ct{r._d&&mr(-1);const o=dr(t);let i;try{i=e(...s)}finally{dr(o),r._d&&mr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function xp(e,t){if(Ce===null)return e;const n=Lr(Ce),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&J(t)?t.call(r&&r.proxy):t}}function Oa(){return!!(Js()||qt)}const Pa=Symbol.for("v-scx"),Na=()=>Ke(Pa);function Sn(e,t,n){return ul(e,t,n)}function ul(e,t,n=ce){const{immediate:r,deep:s,flush:o,once:i}=n,l=Ee({},n),c=t&&r||!t&&o!=="post";let u;if(Bn){if(o==="sync"){const m=Na();u=m.__watcherHandles||(m.__watcherHandles=[])}else if(!c){const m=()=>{};return m.stop=ut,m.resume=ut,m.pause=ut,m}}const a=Ne;l.call=(m,g,b)=>Je(m,a,g,b);let f=!1;o==="post"?l.scheduler=m=>{Te(m,a&&a.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(m,g)=>{g?m():qs(m)}),l.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,a&&(m.id=a.uid,m.i=a))};const h=Ra(e,t,l);return Bn&&(u?u.push(h):c&&h()),h}function Ia(e,t,n){const r=this.proxy,s=pe(e)?e.includes(".")?fl(r,e):()=>r[e]:e.bind(r,r);let o;J(t)?o=t:(o=t.handler,n=t);const i=Hn(this),l=ul(s,o.bind(r),n);return i(),l}function fl(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,An=e=>e&&(e.disabled||e.disabled===""),uo=e=>e&&(e.defer||e.defer===""),fo=e=>typeof SVGElement<"u"&&e instanceof SVGElement,ho=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,ds=(e,t)=>{const n=e&&e.to;return pe(n)?t?t(n):null:n},hl={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,u){const{mc:a,pc:f,pbc:h,o:{insert:m,querySelector:g,createText:b,createComment:E}}=u,C=An(t.props);let{shapeFlag:T,children:N,dynamicChildren:O}=t;if(e==null){const B=t.el=b(""),G=t.anchor=b("");m(B,n,r),m(G,n,r);const j=(x,$)=>{T&16&&a(N,x,$,s,o,i,l,c)},U=()=>{const x=t.target=ds(t.props,g),$=pl(x,t,b,m);x&&(i!=="svg"&&fo(x)?i="svg":i!=="mathml"&&ho(x)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(x),C||(j(x,$),nr(t,!1)))};C&&(j(n,G),nr(t,!0)),uo(t.props)?(t.el.__isMounted=!1,Te(()=>{U(),delete t.el.__isMounted},o)):U()}else{if(uo(t.props)&&e.el.__isMounted===!1){Te(()=>{hl.process(e,t,n,r,s,o,i,l,c,u)},o);return}t.el=e.el,t.targetStart=e.targetStart;const B=t.anchor=e.anchor,G=t.target=e.target,j=t.targetAnchor=e.targetAnchor,U=An(e.props),x=U?n:G,$=U?B:j;if(i==="svg"||fo(G)?i="svg":(i==="mathml"||ho(G))&&(i="mathml"),O?(h(e.dynamicChildren,O,x,s,o,i,l),Gs(e,t,!0)):c||f(e,t,x,$,s,o,i,l,!1),C)U?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Jn(t,n,B,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const Y=t.target=ds(t.props,g);Y&&Jn(t,Y,null,u,0)}else U&&Jn(t,G,j,u,1);nr(t,C)}},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetStart:u,targetAnchor:a,target:f,props:h}=e;if(f&&(s(u),s(a)),o&&s(c),i&16){const m=o||!An(h);for(let g=0;g{e.isMounted=!0}),wl(()=>{e.isUnmounting=!0}),e}const $e=[Function,Array],ka={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:$e,onEnter:$e,onAfterEnter:$e,onEnterCancelled:$e,onBeforeLeave:$e,onLeave:$e,onAfterLeave:$e,onLeaveCancelled:$e,onBeforeAppear:$e,onAppear:$e,onAfterAppear:$e,onAppearCancelled:$e};function Ba(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function hs(e,t,n,r,s){const{appear:o,mode:i,persisted:l=!1,onBeforeEnter:c,onEnter:u,onAfterEnter:a,onEnterCancelled:f,onBeforeLeave:h,onLeave:m,onAfterLeave:g,onLeaveCancelled:b,onBeforeAppear:E,onAppear:C,onAfterAppear:T,onAppearCancelled:N}=t,O=String(e.key),B=Ba(n,e),G=(x,$)=>{x&&Je(x,r,9,$)},j=(x,$)=>{const Y=$[1];G(x,$),K(x)?x.every(L=>L.length<=1)&&Y():x.length<=1&&Y()},U={mode:i,persisted:l,beforeEnter(x){let $=c;if(!n.isMounted)if(o)$=E||c;else return;x[Ut]&&x[Ut](!0);const Y=B[O];Y&&Yt(e,Y)&&Y.el[Ut]&&Y.el[Ut](),G($,[x])},enter(x){let $=u,Y=a,L=f;if(!n.isMounted)if(o)$=C||u,Y=T||a,L=N||f;else return;let Q=!1;const le=x[Xn]=we=>{Q||(Q=!0,we?G(L,[x]):G(Y,[x]),U.delayedLeave&&U.delayedLeave(),x[Xn]=void 0)};$?j($,[x,le]):le()},leave(x,$){const Y=String(e.key);if(x[Xn]&&x[Xn](!0),n.isUnmounting)return $();G(h,[x]);let L=!1;const Q=x[Ut]=le=>{L||(L=!0,$(),le?G(b,[x]):G(g,[x]),x[Ut]=void 0,B[Y]===e&&delete B[Y])};B[Y]=e,m?j(m,[x,Q]):Q()},clone(x){return hs(x,t,n,r)}};return U}function Fn(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Fn(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 ml(e,t=!1,n){let r=[],s=0;for(let o=0;o1)for(let o=0;oRn(g,t&&(K(t)?t[b]:t),n,r,s));return}if(sn(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&Rn(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?Lr(r.component):r.el,i=s?null:o,{i:l,r:c}=e,u=t&&t.r,a=l.refs===ce?l.refs={}:l.refs,f=l.setupState,h=re(f),m=f===ce?xi:g=>oe(h,g);if(u!=null&&u!==c){if(po(t),pe(u))a[u]=null,m(u)&&(f[u]=null);else if(de(u)){u.value=null;const g=t;g.k&&(a[g.k]=null)}}if(J(c))jn(c,l,12,[i,a]);else{const g=pe(c),b=de(c);if(g||b){const E=()=>{if(e.f){const C=g?m(c)?f[c]:a[c]:c.value;if(s)K(C)&&Ls(C,o);else if(K(C))C.includes(o)||C.push(o);else if(g)a[c]=[o],m(c)&&(f[c]=a[c]);else{const T=[o];c.value=T,e.k&&(a[e.k]=T)}}else g?(a[c]=i,m(c)&&(f[c]=i)):b&&(c.value=i,e.k&&(a[e.k]=i))};if(i){const C=()=>{E(),hr.delete(e)};C.id=-1,hr.set(e,C),Te(C,n)}else po(e),E()}}}function po(e){const t=hr.get(e);t&&(t.flags|=8,hr.delete(e))}Rr().requestIdleCallback;Rr().cancelIdleCallback;const sn=e=>!!e.type.__asyncLoader,yl=e=>e.type.__isKeepAlive;function Ua(e,t){_l(e,"a",t)}function ja(e,t){_l(e,"da",t)}function _l(e,t,n=Ne){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Pr(t,r,n),n){let s=n.parent;for(;s&&s.parent;)yl(s.parent.vnode)&&Ha(r,t,n,s),s=s.parent}}function Ha(e,t,n,r){const s=Pr(t,e,r,!0);vl(()=>{Ls(r[t],s)},n)}function Pr(e,t,n=Ne,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{bt();const l=Hn(n),c=Je(t,n,e,i);return l(),Et(),c});return r?s.unshift(o):s.push(o),o}}const St=e=>(t,n=Ne)=>{(!Bn||e==="sp")&&Pr(e,(...r)=>t(...r),n)},Va=St("bm"),bl=St("m"),$a=St("bu"),El=St("u"),wl=St("bum"),vl=St("um"),qa=St("sp"),Ka=St("rtg"),Wa=St("rtc");function Ga(e,t=Ne){Pr("ec",e,t)}const za=Symbol.for("v-ndc");function Ja(e,t,n,r){let s;const o=n,i=K(e);if(i||pe(e)){const l=i&&ft(e);let c=!1,u=!1;l&&(c=!je(e),u=wt(e),e=Cr(e)),s=new Array(e.length);for(let a=0,f=e.length;at(l,c,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let c=0,u=l.length;c0;return qe(),gr(ve,null,[be("slot",n,r)],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),qe();const i=o&&Sl(o(n)),l=n.key||i&&i.key,c=gr(ve,{key:(l&&!vt(l)?l:`_${t}`)+(!i&&r?"_fb":"")},i||[],i&&e._===1?64:-2);return c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),o&&o._c&&(o._d=!0),c}function Sl(e){return e.some(t=>kn(t)?!(t.type===ht||t.type===ve&&!Sl(t.children)):!0)?e:null}const ps=e=>e?Hl(e)?Lr(e):ps(e.parent):null,Cn=Ee(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=>ps(e.parent),$root:e=>ps(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Rl(e),$forceUpdate:e=>e.f||(e.f=()=>{qs(e.update)}),$nextTick:e=>e.n||(e.n=$s.bind(e.proxy)),$watch:e=>Ia.bind(e)}),Gr=(e,t)=>e!==ce&&!e.__isScriptSetup&&oe(e,t),Xa={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:o,accessCache:i,type:l,appContext:c}=e;if(t[0]!=="$"){const h=i[t];if(h!==void 0)switch(h){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(Gr(r,t))return i[t]=1,r[t];if(s!==ce&&oe(s,t))return i[t]=2,s[t];if(oe(o,t))return i[t]=3,o[t];if(n!==ce&&oe(n,t))return i[t]=4,n[t];ms&&(i[t]=0)}}const u=Cn[t];let a,f;if(u)return t==="$attrs"&&Ae(e.attrs,"get",""),u(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==ce&&oe(n,t))return i[t]=4,n[t];if(f=c.config.globalProperties,oe(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return Gr(s,t)?(s[t]=n,!0):r!==ce&&oe(r,t)?(r[t]=n,!0):oe(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:o,type:i}},l){let c;return!!(n[l]||e!==ce&&l[0]!=="$"&&oe(e,l)||Gr(t,l)||oe(o,l)||oe(r,l)||oe(Cn,l)||oe(s.config.globalProperties,l)||(c=i.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:oe(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function mo(e){return K(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let ms=!0;function Qa(e){const t=Rl(e),n=e.proxy,r=e.ctx;ms=!1,t.beforeCreate&&go(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:u,created:a,beforeMount:f,mounted:h,beforeUpdate:m,updated:g,activated:b,deactivated:E,beforeDestroy:C,beforeUnmount:T,destroyed:N,unmounted:O,render:B,renderTracked:G,renderTriggered:j,errorCaptured:U,serverPrefetch:x,expose:$,inheritAttrs:Y,components:L,directives:Q,filters:le}=t;if(u&&Ya(u,r,null),i)for(const z in i){const Z=i[z];J(Z)&&(r[z]=Z.bind(n))}if(s){const z=s.call(n,n);ae(z)&&(e.data=fn(z))}if(ms=!0,o)for(const z in o){const Z=o[z],He=J(Z)?Z.bind(n,n):J(Z.get)?Z.get.bind(n,n):ut,Ye=!J(Z)&&J(Z.set)?Z.set.bind(n):ut,ye=Be({get:He,set:Ye});Object.defineProperty(r,z,{enumerable:!0,configurable:!0,get:()=>ye.value,set:me=>ye.value=me})}if(l)for(const z in l)Al(l[z],r,n,z);if(c){const z=J(c)?c.call(n):c;Reflect.ownKeys(z).forEach(Z=>{tr(Z,z[Z])})}a&&go(a,e,"c");function ee(z,Z){K(Z)?Z.forEach(He=>z(He.bind(n))):Z&&z(Z.bind(n))}if(ee(Va,f),ee(bl,h),ee($a,m),ee(El,g),ee(Ua,b),ee(ja,E),ee(Ga,U),ee(Wa,G),ee(Ka,j),ee(wl,T),ee(vl,O),ee(qa,x),K($))if($.length){const z=e.exposed||(e.exposed={});$.forEach(Z=>{Object.defineProperty(z,Z,{get:()=>n[Z],set:He=>n[Z]=He,enumerable:!0})})}else e.exposed||(e.exposed={});B&&e.render===ut&&(e.render=B),Y!=null&&(e.inheritAttrs=Y),L&&(e.components=L),Q&&(e.directives=Q),x&&gl(e)}function Ya(e,t,n=ut){K(e)&&(e=gs(e));for(const r in e){const s=e[r];let o;ae(s)?"default"in s?o=Ke(s.from||r,s.default,!0):o=Ke(s.from||r):o=Ke(s),de(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function go(e,t,n){Je(K(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Al(e,t,n,r){let s=r.includes(".")?fl(n,r):()=>n[r];if(pe(e)){const o=t[e];J(o)&&Sn(s,o)}else if(J(e))Sn(s,e.bind(n));else if(ae(e))if(K(e))e.forEach(o=>Al(o,t,n,r));else{const o=J(e.handler)?e.handler.bind(n):t[e.handler];J(o)&&Sn(s,o,e)}}function Rl(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>pr(c,u,i,!0)),pr(c,t,i)),ae(t)&&o.set(t,c),c}function pr(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&pr(e,o,n,!0),s&&s.forEach(i=>pr(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Za[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Za={data:yo,props:_o,emits:_o,methods:bn,computed:bn,beforeCreate:xe,created:xe,beforeMount:xe,mounted:xe,beforeUpdate:xe,updated:xe,beforeDestroy:xe,beforeUnmount:xe,destroyed:xe,unmounted:xe,activated:xe,deactivated:xe,errorCaptured:xe,serverPrefetch:xe,components:bn,directives:bn,watch:tu,provide:yo,inject:eu};function yo(e,t){return t?e?function(){return Ee(J(e)?e.call(this,this):e,J(t)?t.call(this,this):t)}:t:e}function eu(e,t){return bn(gs(e),gs(t))}function gs(e){if(K(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Dt(t)}Modifiers`]||e[`${zt(t)}Modifiers`];function ou(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||ce;let s=n;const o=t.startsWith("update:"),i=o&&su(r,t.slice(7));i&&(i.trim&&(s=n.map(a=>pe(a)?a.trim():a)),i.number&&(s=n.map(Ds)));let l,c=r[l=Vr(t)]||r[l=Vr(Dt(t))];!c&&o&&(c=r[l=Vr(zt(t))]),c&&Je(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Je(u,e,6,s)}}const iu=new WeakMap;function xl(e,t,n=!1){const r=n?iu:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!J(e)){const c=u=>{const a=xl(u,t,!0);a&&(l=!0,Ee(i,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(ae(e)&&r.set(e,null),null):(K(o)?o.forEach(c=>i[c]=null):Ee(i,o),ae(e)&&r.set(e,i),i)}function Nr(e,t){return!e||!wr(t)?!1:(t=t.slice(2).replace(/Once$/,""),oe(e,t[0].toLowerCase()+t.slice(1))||oe(e,zt(t))||oe(e,t))}function bo(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:a,props:f,data:h,setupState:m,ctx:g,inheritAttrs:b}=e,E=dr(e);let C,T;try{if(n.shapeFlag&4){const O=s||r,B=O;C=at(u.call(B,O,a,f,m,h,g)),T=l}else{const O=t;C=at(O.length>1?O(f,{attrs:l,slots:i,emit:c}):O(f,null)),T=t.props?l:lu(l)}}catch(O){xn.length=0,Tr(O,e,1),C=be(ht)}let N=C;if(T&&b!==!1){const O=Object.keys(T),{shapeFlag:B}=N;O.length&&B&7&&(o&&O.some(Is)&&(T=cu(T,o)),N=Wt(N,T,!1,!0))}return n.dirs&&(N=Wt(N,null,!1,!0),N.dirs=N.dirs?N.dirs.concat(n.dirs):n.dirs),n.transition&&Fn(N,n.transition),C=N,dr(E),C}const lu=e=>{let t;for(const n in e)(n==="class"||n==="style"||wr(n))&&((t||(t={}))[n]=e[n]);return t},cu=(e,t)=>{const n={};for(const r in e)(!Is(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function au(e,t,n){const{props:r,children:s,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 r?Eo(r,i,u):!!i;if(c&8){const a=t.dynamicProps;for(let f=0;fObject.create(Tl),Pl=e=>Object.getPrototypeOf(e)===Tl;function fu(e,t,n,r=!1){const s={},o=Ol();e.propsDefaults=Object.create(null),Nl(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:el(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function du(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=re(s),[c]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const a=e.vnode.dynamicProps;for(let f=0;f{c=!0;const[h,m]=Il(f,t,!0);Ee(i,h),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!c)return ae(e)&&r.set(e,tn),tn;if(K(o))for(let a=0;ae==="_"||e==="_ctx"||e==="$stable",Ws=e=>K(e)?e.map(at):[at(e)],pu=(e,t,n)=>{if(t._n)return t;const r=al((...s)=>Ws(t(...s)),n);return r._c=!1,r},Ll=(e,t,n)=>{const r=e._ctx;for(const s in e){if(Ks(s))continue;const o=e[s];if(J(o))t[s]=pu(s,o,r);else if(o!=null){const i=Ws(o);t[s]=()=>i}}},Dl=(e,t)=>{const n=Ws(t);e.slots.default=()=>n},Fl=(e,t,n)=>{for(const r in t)(n||!Ks(r))&&(e[r]=t[r])},mu=(e,t,n)=>{const r=e.slots=Ol();if(e.vnode.shapeFlag&32){const s=t._;s?(Fl(r,t,n),n&&Li(r,"_",s,!0)):Ll(t,r)}else t&&Dl(e,t)},gu=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=ce;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:Fl(s,t,n):(o=!t.$stable,Ll(t,s)),i=t}else t&&(Dl(e,t),i={default:1});if(o)for(const l in s)!Ks(l)&&i[l]==null&&delete s[l]},Te=wu;function yu(e){return _u(e)}function _u(e,t){const n=Rr();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:a,parentNode:f,nextSibling:h,setScopeId:m=ut,insertStaticContent:g}=e,b=(d,p,y,w=null,A=null,v=null,D=void 0,I=null,P=!!p.dynamicChildren)=>{if(d===p)return;d&&!Yt(d,p)&&(w=S(d),me(d,A,v,!0),d=null),p.patchFlag===-2&&(P=!1,p.dynamicChildren=null);const{type:R,ref:q,shapeFlag:M}=p;switch(R){case Ir:E(d,p,y,w);break;case ht:C(d,p,y,w);break;case rr:d==null&&T(p,y,w,D);break;case ve:L(d,p,y,w,A,v,D,I,P);break;default:M&1?B(d,p,y,w,A,v,D,I,P):M&6?Q(d,p,y,w,A,v,D,I,P):(M&64||M&128)&&R.process(d,p,y,w,A,v,D,I,P,H)}q!=null&&A?Rn(q,d&&d.ref,v,p||d,!p):q==null&&d&&d.ref!=null&&Rn(d.ref,null,v,d,!0)},E=(d,p,y,w)=>{if(d==null)r(p.el=l(p.children),y,w);else{const A=p.el=d.el;p.children!==d.children&&u(A,p.children)}},C=(d,p,y,w)=>{d==null?r(p.el=c(p.children||""),y,w):p.el=d.el},T=(d,p,y,w)=>{[d.el,d.anchor]=g(d.children,p,y,w,d.el,d.anchor)},N=({el:d,anchor:p},y,w)=>{let A;for(;d&&d!==p;)A=h(d),r(d,y,w),d=A;r(p,y,w)},O=({el:d,anchor:p})=>{let y;for(;d&&d!==p;)y=h(d),s(d),d=y;s(p)},B=(d,p,y,w,A,v,D,I,P)=>{if(p.type==="svg"?D="svg":p.type==="math"&&(D="mathml"),d==null)G(p,y,w,A,v,D,I,P);else{const R=d.el&&d.el._isVueCE?d.el:null;try{R&&R._beginPatch(),x(d,p,A,v,D,I,P)}finally{R&&R._endPatch()}}},G=(d,p,y,w,A,v,D,I)=>{let P,R;const{props:q,shapeFlag:M,transition:V,dirs:W}=d;if(P=d.el=i(d.type,v,q&&q.is,q),M&8?a(P,d.children):M&16&&U(d.children,P,null,w,A,zr(d,v),D,I),W&&Ft(d,null,w,"created"),j(P,d,d.scopeId,D,w),q){for(const ue in q)ue!=="value"&&!En(ue)&&o(P,ue,null,q[ue],v,w);"value"in q&&o(P,"value",null,q.value,v),(R=q.onVnodeBeforeMount)&&st(R,w,d)}W&&Ft(d,null,w,"beforeMount");const ne=bu(A,V);ne&&V.beforeEnter(P),r(P,p,y),((R=q&&q.onVnodeMounted)||ne||W)&&Te(()=>{R&&st(R,w,d),ne&&V.enter(P),W&&Ft(d,null,w,"mounted")},A)},j=(d,p,y,w,A)=>{if(y&&m(d,y),w)for(let v=0;v{for(let R=P;R{const I=p.el=d.el;let{patchFlag:P,dynamicChildren:R,dirs:q}=p;P|=d.patchFlag&16;const M=d.props||ce,V=p.props||ce;let W;if(y&&Mt(y,!1),(W=V.onVnodeBeforeUpdate)&&st(W,y,p,d),q&&Ft(p,d,y,"beforeUpdate"),y&&Mt(y,!0),(M.innerHTML&&V.innerHTML==null||M.textContent&&V.textContent==null)&&a(I,""),R?$(d.dynamicChildren,R,I,y,w,zr(p,A),v):D||Z(d,p,I,null,y,w,zr(p,A),v,!1),P>0){if(P&16)Y(I,M,V,y,A);else if(P&2&&M.class!==V.class&&o(I,"class",null,V.class,A),P&4&&o(I,"style",M.style,V.style,A),P&8){const ne=p.dynamicProps;for(let ue=0;ue{W&&st(W,y,p,d),q&&Ft(p,d,y,"updated")},w)},$=(d,p,y,w,A,v,D)=>{for(let I=0;I{if(p!==y){if(p!==ce)for(const v in p)!En(v)&&!(v in y)&&o(d,v,p[v],null,A,w);for(const v in y){if(En(v))continue;const D=y[v],I=p[v];D!==I&&v!=="value"&&o(d,v,I,D,A,w)}"value"in y&&o(d,"value",p.value,y.value,A)}},L=(d,p,y,w,A,v,D,I,P)=>{const R=p.el=d?d.el:l(""),q=p.anchor=d?d.anchor:l("");let{patchFlag:M,dynamicChildren:V,slotScopeIds:W}=p;W&&(I=I?I.concat(W):W),d==null?(r(R,y,w),r(q,y,w),U(p.children||[],y,q,A,v,D,I,P)):M>0&&M&64&&V&&d.dynamicChildren&&d.dynamicChildren.length===V.length?($(d.dynamicChildren,V,y,A,v,D,I),(p.key!=null||A&&p===A.subTree)&&Gs(d,p,!0)):Z(d,p,y,q,A,v,D,I,P)},Q=(d,p,y,w,A,v,D,I,P)=>{p.slotScopeIds=I,d==null?p.shapeFlag&512?A.ctx.activate(p,y,w,D,P):le(p,y,w,A,v,D,P):we(d,p,P)},le=(d,p,y,w,A,v,D)=>{const I=d.component=Pu(d,w,A);if(yl(d)&&(I.ctx.renderer=H),Nu(I,!1,D),I.asyncDep){if(A&&A.registerDep(I,ee,D),!d.el){const P=I.subTree=be(ht);C(null,P,p,y),d.placeholder=P.el}}else ee(I,d,p,y,A,v,D)},we=(d,p,y)=>{const w=p.component=d.component;if(au(d,p,y))if(w.asyncDep&&!w.asyncResolved){z(w,p,y);return}else w.next=p,w.update();else p.el=d.el,w.vnode=p},ee=(d,p,y,w,A,v,D)=>{const I=()=>{if(d.isMounted){let{next:M,bu:V,u:W,parent:ne,vnode:ue}=d;{const nt=Ml(d);if(nt){M&&(M.el=ue.el,z(d,M,D)),nt.asyncDep.then(()=>{d.isUnmounted||I()});return}}let ie=M,Ie;Mt(d,!1),M?(M.el=ue.el,z(d,M,D)):M=ue,V&&er(V),(Ie=M.props&&M.props.onVnodeBeforeUpdate)&&st(Ie,ne,M,ue),Mt(d,!0);const Le=bo(d),tt=d.subTree;d.subTree=Le,b(tt,Le,f(tt.el),S(tt),d,A,v),M.el=Le.el,ie===null&&uu(d,Le.el),W&&Te(W,A),(Ie=M.props&&M.props.onVnodeUpdated)&&Te(()=>st(Ie,ne,M,ue),A)}else{let M;const{el:V,props:W}=p,{bm:ne,m:ue,parent:ie,root:Ie,type:Le}=d,tt=sn(p);Mt(d,!1),ne&&er(ne),!tt&&(M=W&&W.onVnodeBeforeMount)&&st(M,ie,p),Mt(d,!0);{Ie.ce&&Ie.ce._def.shadowRoot!==!1&&Ie.ce._injectChildStyle(Le);const nt=d.subTree=bo(d);b(null,nt,y,w,d,A,v),p.el=nt.el}if(ue&&Te(ue,A),!tt&&(M=W&&W.onVnodeMounted)){const nt=p;Te(()=>st(M,ie,nt),A)}(p.shapeFlag&256||ie&&sn(ie.vnode)&&ie.vnode.shapeFlag&256)&&d.a&&Te(d.a,A),d.isMounted=!0,p=y=w=null}};d.scope.on();const P=d.effect=new ji(I);d.scope.off();const R=d.update=P.run.bind(P),q=d.job=P.runIfDirty.bind(P);q.i=d,q.id=d.uid,P.scheduler=()=>qs(q),Mt(d,!0),R()},z=(d,p,y)=>{p.component=d;const w=d.vnode.props;d.vnode=p,d.next=null,du(d,p.props,w,y),gu(d,p.children,y),bt(),ao(d),Et()},Z=(d,p,y,w,A,v,D,I,P=!1)=>{const R=d&&d.children,q=d?d.shapeFlag:0,M=p.children,{patchFlag:V,shapeFlag:W}=p;if(V>0){if(V&128){Ye(R,M,y,w,A,v,D,I,P);return}else if(V&256){He(R,M,y,w,A,v,D,I,P);return}}W&8?(q&16&&Ve(R,A,v),M!==R&&a(y,M)):q&16?W&16?Ye(R,M,y,w,A,v,D,I,P):Ve(R,A,v,!0):(q&8&&a(y,""),W&16&&U(M,y,w,A,v,D,I,P))},He=(d,p,y,w,A,v,D,I,P)=>{d=d||tn,p=p||tn;const R=d.length,q=p.length,M=Math.min(R,q);let V;for(V=0;Vq?Ve(d,A,v,!0,!1,M):U(p,y,w,A,v,D,I,P,M)},Ye=(d,p,y,w,A,v,D,I,P)=>{let R=0;const q=p.length;let M=d.length-1,V=q-1;for(;R<=M&&R<=V;){const W=d[R],ne=p[R]=P?Nt(p[R]):at(p[R]);if(Yt(W,ne))b(W,ne,y,null,A,v,D,I,P);else break;R++}for(;R<=M&&R<=V;){const W=d[M],ne=p[V]=P?Nt(p[V]):at(p[V]);if(Yt(W,ne))b(W,ne,y,null,A,v,D,I,P);else break;M--,V--}if(R>M){if(R<=V){const W=V+1,ne=WV)for(;R<=M;)me(d[R],A,v,!0),R++;else{const W=R,ne=R,ue=new Map;for(R=ne;R<=V;R++){const Me=p[R]=P?Nt(p[R]):at(p[R]);Me.key!=null&&ue.set(Me.key,R)}let ie,Ie=0;const Le=V-ne+1;let tt=!1,nt=0;const pn=new Array(Le);for(R=0;R=Le){me(Me,A,v,!0);continue}let rt;if(Me.key!=null)rt=ue.get(Me.key);else for(ie=ne;ie<=V;ie++)if(pn[ie-ne]===0&&Yt(Me,p[ie])){rt=ie;break}rt===void 0?me(Me,A,v,!0):(pn[rt-ne]=R+1,rt>=nt?nt=rt:tt=!0,b(Me,p[rt],y,null,A,v,D,I,P),Ie++)}const ro=tt?Eu(pn):tn;for(ie=ro.length-1,R=Le-1;R>=0;R--){const Me=ne+R,rt=p[Me],so=p[Me+1],oo=Me+1{const{el:v,type:D,transition:I,children:P,shapeFlag:R}=d;if(R&6){ye(d.component.subTree,p,y,w);return}if(R&128){d.suspense.move(p,y,w);return}if(R&64){D.move(d,p,y,H);return}if(D===ve){r(v,p,y);for(let M=0;MI.enter(v),A);else{const{leave:M,delayLeave:V,afterLeave:W}=I,ne=()=>{d.ctx.isUnmounted?s(v):r(v,p,y)},ue=()=>{v._isLeaving&&v[Ut](!0),M(v,()=>{ne(),W&&W()})};V?V(v,ne,ue):ue()}else r(v,p,y)},me=(d,p,y,w=!1,A=!1)=>{const{type:v,props:D,ref:I,children:P,dynamicChildren:R,shapeFlag:q,patchFlag:M,dirs:V,cacheIndex:W}=d;if(M===-2&&(A=!1),I!=null&&(bt(),Rn(I,null,y,d,!0),Et()),W!=null&&(p.renderCache[W]=void 0),q&256){p.ctx.deactivate(d);return}const ne=q&1&&V,ue=!sn(d);let ie;if(ue&&(ie=D&&D.onVnodeBeforeUnmount)&&st(ie,p,d),q&6)et(d.component,y,w);else{if(q&128){d.suspense.unmount(y,w);return}ne&&Ft(d,null,p,"beforeUnmount"),q&64?d.type.remove(d,p,y,H,w):R&&!R.hasOnce&&(v!==ve||M>0&&M&64)?Ve(R,p,y,!1,!0):(v===ve&&M&384||!A&&q&16)&&Ve(P,p,y),w&&Ze(d)}(ue&&(ie=D&&D.onVnodeUnmounted)||ne)&&Te(()=>{ie&&st(ie,p,d),ne&&Ft(d,null,p,"unmounted")},y)},Ze=d=>{const{type:p,el:y,anchor:w,transition:A}=d;if(p===ve){We(y,w);return}if(p===rr){O(d);return}const v=()=>{s(y),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(d.shapeFlag&1&&A&&!A.persisted){const{leave:D,delayLeave:I}=A,P=()=>D(y,v);I?I(d.el,v,P):P()}else v()},We=(d,p)=>{let y;for(;d!==p;)y=h(d),s(d),d=y;s(p)},et=(d,p,y)=>{const{bum:w,scope:A,job:v,subTree:D,um:I,m:P,a:R}=d;vo(P),vo(R),w&&er(w),A.stop(),v&&(v.flags|=8,me(D,d,p,y)),I&&Te(I,p),Te(()=>{d.isUnmounted=!0},p)},Ve=(d,p,y,w=!1,A=!1,v=0)=>{for(let D=v;D{if(d.shapeFlag&6)return S(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const p=h(d.anchor||d.el),y=p&&p[dl];return y?h(y):p};let k=!1;const F=(d,p,y)=>{let w;d==null?p._vnode&&(me(p._vnode,null,null,!0),w=p._vnode.component):b(p._vnode||null,d,p,null,null,null,y),p._vnode=d,k||(k=!0,ao(w),il(),k=!1)},H={p:b,um:me,m:ye,r:Ze,mt:le,mc:U,pc:Z,pbc:$,n:S,o:e};return{render:F,hydrate:void 0,createApp:ru(F)}}function zr({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 Mt({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function bu(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Gs(e,t,n=!1){const r=e.children,s=t.children;if(K(r)&&K(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Ml(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Ml(t)}function vo(e){if(e)for(let t=0;te.__isSuspense;function wu(e,t){t&&t.pendingBranch?K(e)?t.effects.push(...e):t.effects.push(e):Ta(e)}const ve=Symbol.for("v-fgt"),Ir=Symbol.for("v-txt"),ht=Symbol.for("v-cmt"),rr=Symbol.for("v-stc"),xn=[];let Ue=null;function qe(e=!1){xn.push(Ue=e?null:[])}function vu(){xn.pop(),Ue=xn[xn.length-1]||null}let Mn=1;function mr(e,t=!1){Mn+=e,e<0&&Ue&&t&&(Ue.hasOnce=!0)}function Ul(e){return e.dynamicChildren=Mn>0?Ue||tn:null,vu(),Mn>0&&Ue&&Ue.push(e),e}function Ct(e,t,n,r,s,o){return Ul(ke(e,t,n,r,s,o,!0))}function gr(e,t,n,r,s){return Ul(be(e,t,n,r,s,!0))}function kn(e){return e?e.__v_isVNode===!0:!1}function Yt(e,t){return e.type===t.type&&e.key===t.key}const jl=({key:e})=>e??null,sr=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?pe(e)||de(e)||J(e)?{i:Ce,r:e,k:t,f:!!n}:e:null);function ke(e,t=null,n=null,r=0,s=null,o=e===ve?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&jl(t),ref:t&&sr(t),scopeId:cl,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:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Ce};return l?(zs(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=pe(n)?8:16),Mn>0&&!i&&Ue&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Ue.push(c),c}const be=Su;function Su(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===za)&&(e=ht),kn(e)){const l=Wt(e,t,!0);return n&&zs(l,n),Mn>0&&!o&&Ue&&(l.shapeFlag&6?Ue[Ue.indexOf(e)]=l:Ue.push(l)),l.patchFlag=-2,l}if(Fu(e)&&(e=e.__vccOpts),t){t=Au(t);let{class:l,style:c}=t;l&&!pe(l)&&(t.class=Nn(l)),ae(c)&&(xr(c)&&!K(c)&&(c=Ee({},c)),t.style=Fs(c))}const i=pe(e)?1:Bl(e)?128:La(e)?64:ae(e)?4:J(e)?2:0;return ke(e,t,n,r,s,i,o,!0)}function Au(e){return e?xr(e)||Pl(e)?Ee({},e):e:null}function Wt(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?xu(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&jl(u),ref:t&&t.ref?n&&o?K(o)?o.concat(sr(t)):[o,sr(t)]:sr(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&&r&&Fn(a,c.clone(a)),a}function Ru(e=" ",t=0){return be(Ir,null,e,t)}function Op(e,t){const n=be(rr,null,e);return n.staticCount=t,n}function Cu(e="",t=!1){return t?(qe(),gr(ht,null,e)):be(ht,null,e)}function at(e){return e==null||typeof e=="boolean"?be(ht):K(e)?be(ve,null,e.slice()):kn(e)?Nt(e):be(Ir,null,String(e))}function Nt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Wt(e)}function zs(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(K(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),zs(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Pl(t)?t._ctx=Ce:s===3&&Ce&&(Ce.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else J(t)?(t={default:t,_ctx:Ce},n=32):(t=String(t),r&64?(n=16,t=[Ru(t)]):n=8);e.children=t,e.shapeFlag|=n}function xu(...e){const t={};for(let n=0;nNe||Ce;let yr,_s;{const e=Rr(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};yr=t("__VUE_INSTANCE_SETTERS__",n=>Ne=n),_s=t("__VUE_SSR_SETTERS__",n=>Bn=n)}const Hn=e=>{const t=Ne;return yr(e),e.scope.on(),()=>{e.scope.off(),yr(t)}},So=()=>{Ne&&Ne.scope.off(),yr(null)};function Hl(e){return e.vnode.shapeFlag&4}let Bn=!1;function Nu(e,t=!1,n=!1){t&&_s(t);const{props:r,children:s}=e.vnode,o=Hl(e);fu(e,r,o,t),mu(e,s,n||t);const i=o?Iu(e,t):void 0;return t&&_s(!1),i}function Iu(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Xa);const{setup:r}=n;if(r){bt();const s=e.setupContext=r.length>1?Du(e):null,o=Hn(e),i=jn(r,e,0,[e.props,s]),l=Oi(i);if(Et(),o(),(l||e.sp)&&!sn(e)&&gl(e),l){if(i.then(So,So),t)return i.then(c=>{Ao(e,c)}).catch(c=>{Tr(c,e,0)});e.asyncDep=i}else Ao(e,i)}else Vl(e)}function Ao(e,t,n){J(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ae(t)&&(e.setupState=nl(t)),Vl(e)}function Vl(e,t,n){const r=e.type;e.render||(e.render=r.render||ut);{const s=Hn(e);bt();try{Qa(e)}finally{Et(),s()}}}const Lu={get(e,t){return Ae(e,"get",""),e[t]}};function Du(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Lu),slots:e.slots,emit:e.emit,expose:t}}function Lr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(nl(Vs(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Cn)return Cn[n](e)},has(t,n){return n in t||n in Cn}})):e.proxy}function Fu(e){return J(e)&&"__vccOpts"in e}const Be=(e,t)=>Sa(e,t,Bn);function $l(e,t,n){try{mr(-1);const r=arguments.length;return r===2?ae(t)&&!K(t)?kn(t)?be(e,null,[t]):be(e,t):be(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&kn(n)&&(n=[n]),be(e,t,n))}finally{mr(1)}}const Mu="3.5.26";let bs;const Ro=typeof window<"u"&&window.trustedTypes;if(Ro)try{bs=Ro.createPolicy("vue",{createHTML:e=>e})}catch{}const ql=bs?e=>bs.createHTML(e):e=>e,ku="http://www.w3.org/2000/svg",Bu="http://www.w3.org/1998/Math/MathML",gt=typeof document<"u"?document:null,Co=gt&>.createElement("template"),Uu={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?gt.createElementNS(ku,e):t==="mathml"?gt.createElementNS(Bu,e):n?gt.createElement(e,{is:n}):gt.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>gt.createTextNode(e),createComment:e=>gt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>gt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{Co.innerHTML=ql(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=Co.content;if(r==="svg"||r==="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]}},At="transition",gn="animation",ln=Symbol("_vtc"),Kl={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},ju=Ee({},ka,Kl),kt=(e,t=[])=>{K(e)?e.forEach(n=>n(...t)):e&&e(...t)},xo=e=>e?K(e)?e.some(t=>t.length>1):e.length>1:!1;function Hu(e){const t={};for(const L in e)L in Kl||(t[L]=e[L]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=o,appearActiveClass:u=i,appearToClass:a=l,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:h=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,g=Vu(s),b=g&&g[0],E=g&&g[1],{onBeforeEnter:C,onEnter:T,onEnterCancelled:N,onLeave:O,onLeaveCancelled:B,onBeforeAppear:G=C,onAppear:j=T,onAppearCancelled:U=N}=t,x=(L,Q,le,we)=>{L._enterCancelled=we,xt(L,Q?a:l),xt(L,Q?u:i),le&&le()},$=(L,Q)=>{L._isLeaving=!1,xt(L,f),xt(L,m),xt(L,h),Q&&Q()},Y=L=>(Q,le)=>{const we=L?j:T,ee=()=>x(Q,L,le);kt(we,[Q,ee]),To(()=>{xt(Q,L?c:o),lt(Q,L?a:l),xo(we)||Oo(Q,r,b,ee)})};return Ee(t,{onBeforeEnter(L){kt(C,[L]),lt(L,o),lt(L,i)},onBeforeAppear(L){kt(G,[L]),lt(L,c),lt(L,u)},onEnter:Y(!1),onAppear:Y(!0),onLeave(L,Q){L._isLeaving=!0;const le=()=>$(L,Q);lt(L,f),L._enterCancelled?(lt(L,h),Es(L)):(Es(L),lt(L,h)),To(()=>{L._isLeaving&&(xt(L,f),lt(L,m),xo(O)||Oo(L,r,E,le))}),kt(O,[L,le])},onEnterCancelled(L){x(L,!1,void 0,!0),kt(N,[L])},onAppearCancelled(L){x(L,!0,void 0,!0),kt(U,[L])},onLeaveCancelled(L){$(L),kt(B,[L])}})}function Vu(e){if(e==null)return null;if(ae(e))return[Jr(e.enter),Jr(e.leave)];{const t=Jr(e);return[t,t]}}function Jr(e){return Vc(e)}function lt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[ln]||(e[ln]=new Set)).add(t)}function xt(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[ln];n&&(n.delete(t),n.size||(e[ln]=void 0))}function To(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let $u=0;function Oo(e,t,n,r){const s=e._endId=++$u,o=()=>{s===e._endId&&r()};if(n!=null)return setTimeout(o,n);const{type:i,timeout:l,propCount:c}=Wl(e,t);if(!i)return r();const u=i+"end";let a=0;const f=()=>{e.removeEventListener(u,h),o()},h=m=>{m.target===e&&++a>=c&&f()};setTimeout(()=>{a(n[g]||"").split(", "),s=r(`${At}Delay`),o=r(`${At}Duration`),i=Po(s,o),l=r(`${gn}Delay`),c=r(`${gn}Duration`),u=Po(l,c);let a=null,f=0,h=0;t===At?i>0&&(a=At,f=i,h=o.length):t===gn?u>0&&(a=gn,f=u,h=c.length):(f=Math.max(i,u),a=f>0?i>u?At:gn:null,h=a?a===At?o.length:c.length:0);const m=a===At&&/\b(?:transform|all)(?:,|$)/.test(r(`${At}Property`).toString());return{type:a,timeout:f,propCount:h,hasTransform:m}}function Po(e,t){for(;e.lengthNo(n)+No(e[r])))}function No(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Es(e){return(e?e.ownerDocument:document).body.offsetHeight}function qu(e,t,n){const r=e[ln];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Io=Symbol("_vod"),Ku=Symbol("_vsh"),Wu=Symbol(""),Gu=/(?:^|;)\s*display\s*:/;function zu(e,t,n){const r=e.style,s=pe(n);let o=!1;if(n&&!s){if(t)if(pe(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&or(r,l,"")}else for(const i in t)n[i]==null&&or(r,i,"");for(const i in n)i==="display"&&(o=!0),or(r,i,n[i])}else if(s){if(t!==n){const i=r[Wu];i&&(n+=";"+i),r.cssText=n,o=Gu.test(n)}}else t&&e.removeAttribute("style");Io in e&&(e[Io]=o?r.display:"",e[Ku]&&(r.display="none"))}const Lo=/\s*!important$/;function or(e,t,n){if(K(n))n.forEach(r=>or(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Ju(e,t);Lo.test(n)?e.setProperty(zt(r),n.replace(Lo,""),"important"):e[r]=n}}const Do=["Webkit","Moz","ms"],Xr={};function Ju(e,t){const n=Xr[t];if(n)return n;let r=Dt(t);if(r!=="filter"&&r in e)return Xr[t]=r;r=Ii(r);for(let s=0;sQr||(Zu.then(()=>Qr=0),Qr=Date.now());function tf(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Je(nf(r,n.value),t,5,[r])};return n.value=e,n.attached=ef(),n}function nf(e,t){if(K(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const jo=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,rf=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?qu(e,r,i):t==="style"?zu(e,n,r):wr(t)?Is(t)||Qu(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):sf(e,t,r,i))?(ko(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Mo(e,t,r,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!pe(r))?ko(e,Dt(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Mo(e,t,r,i))};function sf(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&jo(t)&&J(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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return jo(t)&&pe(n)?!1:t in e}const Gl=new WeakMap,zl=new WeakMap,_r=Symbol("_moveCb"),Ho=Symbol("_enterCb"),of=e=>(delete e.props.mode,e),lf=of({name:"TransitionGroup",props:Ee({},ju,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=Js(),r=Ma();let s,o;return El(()=>{if(!s.length)return;const i=e.moveClass||`${e.name||"v"}-move`;if(!df(s[0].el,n.vnode.el,i)){s=[];return}s.forEach(af),s.forEach(uf);const l=s.filter(ff);Es(n.vnode.el),l.forEach(c=>{const u=c.el,a=u.style;lt(u,i),a.transform=a.webkitTransform=a.transitionDuration="";const f=u[_r]=h=>{h&&h.target!==u||(!h||h.propertyName.endsWith("transform"))&&(u.removeEventListener("transitionend",f),u[_r]=null,xt(u,i))};u.addEventListener("transitionend",f)}),s=[]}),()=>{const i=re(e),l=Hu(i);let c=i.tag||ve;if(s=[],o)for(let u=0;u{l.split(/\s+/).forEach(c=>c&&r.classList.remove(c))}),n.split(/\s+/).forEach(l=>l&&r.classList.add(l)),r.style.display="none";const o=t.nodeType===1?t:t.parentNode;o.appendChild(r);const{hasTransform:i}=Wl(r);return o.removeChild(r),i}const Vo=e=>{const t=e.props["onUpdate:modelValue"]||!1;return K(t)?n=>er(t,n):t};function hf(e){e.target.composing=!0}function $o(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Yr=Symbol("_assign");function qo(e,t,n){return t&&(e=e.trim()),n&&(e=Ds(e)),e}const Pp={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Yr]=Vo(s);const o=r||s.props&&s.props.type==="number";Zt(e,t?"change":"input",i=>{i.target.composing||e[Yr](qo(e.value,n,o))}),(n||o)&&Zt(e,"change",()=>{e.value=qo(e.value,n,o)}),t||(Zt(e,"compositionstart",hf),Zt(e,"compositionend",$o),Zt(e,"change",$o))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Yr]=Vo(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?Ds(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},pf=["ctrl","shift","alt","meta"],mf={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>pf.some(n=>e[`${n}Key`]&&!t.includes(n))},Np=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const t=yf().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Ef(r);if(!s)return;const o=t._component;!J(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,bf(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t});function bf(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Ef(e){return pe(e)?document.querySelector(e):e}let Jl;const Dr=e=>Jl=e,Xl=Symbol();function ws(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Tn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Tn||(Tn={}));function wf(){const e=Bi(!0),t=e.run(()=>$t({}));let n=[],r=[];const s=Vs({install(o){Dr(s),s._a=o,o.provide(Xl,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const Ql=()=>{};function Wo(e,t,n,r=Ql){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&Ui()&&Jc(s),s}function Xt(e,...t){e.forEach(n=>{n(...t)})}const vf=e=>e(),Go=Symbol(),Zr=Symbol();function vs(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];ws(s)&&ws(r)&&e.hasOwnProperty(n)&&!de(r)&&!ft(r)?e[n]=vs(s,r):e[n]=r}return e}const Sf=Symbol();function Af(e){return!ws(e)||!Object.prototype.hasOwnProperty.call(e,Sf)}const{assign:Tt}=Object;function Rf(e){return!!(de(e)&&e.effect)}function Cf(e,t,n,r){const{state:s,actions:o,getters:i}=t,l=n.state.value[e];let c;function u(){l||(n.state.value[e]=s?s():{});const a=_a(n.state.value[e]);return Tt(a,o,Object.keys(i||{}).reduce((f,h)=>(f[h]=Vs(Be(()=>{Dr(n);const m=n._s.get(e);return i[h].call(m,m)})),f),{}))}return c=Yl(e,u,t,n,r,!0),c}function Yl(e,t,n={},r,s,o){let i;const l=Tt({actions:{}},n),c={deep:!0};let u,a,f=new Set,h=new Set,m;const g=r.state.value[e];!o&&!g&&(r.state.value[e]={}),$t({});let b;function E(U){let x;u=a=!1,typeof U=="function"?(U(r.state.value[e]),x={type:Tn.patchFunction,storeId:e,events:m}):(vs(r.state.value[e],U),x={type:Tn.patchObject,payload:U,storeId:e,events:m});const $=b=Symbol();$s().then(()=>{b===$&&(u=!0)}),a=!0,Xt(f,x,r.state.value[e])}const C=o?function(){const{state:x}=n,$=x?x():{};this.$patch(Y=>{Tt(Y,$)})}:Ql;function T(){i.stop(),f.clear(),h.clear(),r._s.delete(e)}const N=(U,x="")=>{if(Go in U)return U[Zr]=x,U;const $=function(){Dr(r);const Y=Array.from(arguments),L=new Set,Q=new Set;function le(z){L.add(z)}function we(z){Q.add(z)}Xt(h,{args:Y,name:$[Zr],store:B,after:le,onError:we});let ee;try{ee=U.apply(this&&this.$id===e?this:B,Y)}catch(z){throw Xt(Q,z),z}return ee instanceof Promise?ee.then(z=>(Xt(L,z),z)).catch(z=>(Xt(Q,z),Promise.reject(z))):(Xt(L,ee),ee)};return $[Go]=!0,$[Zr]=x,$},O={_p:r,$id:e,$onAction:Wo.bind(null,h),$patch:E,$reset:C,$subscribe(U,x={}){const $=Wo(f,U,x.detached,()=>Y()),Y=i.run(()=>Sn(()=>r.state.value[e],L=>{(x.flush==="sync"?a:u)&&U({storeId:e,type:Tn.direct,events:m},L)},Tt({},c,x)));return $},$dispose:T},B=fn(O);r._s.set(e,B);const j=(r._a&&r._a.runWithContext||vf)(()=>r._e.run(()=>(i=Bi()).run(()=>t({action:N}))));for(const U in j){const x=j[U];if(de(x)&&!Rf(x)||ft(x))o||(g&&Af(x)&&(de(x)?x.value=g[U]:vs(x,g[U])),r.state.value[e][U]=x);else if(typeof x=="function"){const $=N(x,U);j[U]=$,l.actions[U]=x}}return Tt(B,j),Tt(re(B),j),Object.defineProperty(B,"$state",{get:()=>r.state.value[e],set:U=>{E(x=>{Tt(x,U)})}}),r._p.forEach(U=>{Tt(B,i.run(()=>U({store:B,app:r._a,pinia:r,options:l})))}),g&&o&&n.hydrate&&n.hydrate(B.$state,g),u=!0,a=!0,B}function xf(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,l){const c=Oa();return i=i||(c?Ke(Xl,null):null),i&&Dr(i),i=Jl,i._s.has(e)||(s?Yl(e,t,r,i):Cf(e,r,i)),i._s.get(e)}return o.$id=e,o}function Ip(e){const t=re(e),n={};for(const r in t){const s=t[r];s.effect?n[r]=Be({get:()=>e[r],set(o){e[r]=o}}):(de(s)||ft(s))&&(n[r]=wa(e,r))}return n}const Tf="modulepreload",Of=function(e){return"/"+e},zo={},ot=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let c=function(u){return Promise.all(u.map(a=>Promise.resolve(a).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=c(n.map(u=>{if(u=Of(u),u in zo)return;zo[u]=!0;const a=u.endsWith(".css"),f=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const h=document.createElement("link");if(h.rel=a?"stylesheet":Tf,a||(h.as="script"),h.crossOrigin="",h.href=u,l&&h.setAttribute("nonce",l),document.head.appendChild(h),a)return new Promise((m,g)=>{h.addEventListener("load",m),h.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})};const en=typeof document<"u";function Zl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Pf(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Zl(e.default)}const se=Object.assign;function es(e,t){const n={};for(const r in t){const s=t[r];n[r]=Xe(s)?s.map(e):e(s)}return n}const On=()=>{},Xe=Array.isArray;function Jo(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const ec=/#/g,Nf=/&/g,If=/\//g,Lf=/=/g,Df=/\?/g,tc=/\+/g,Ff=/%5B/g,Mf=/%5D/g,nc=/%5E/g,kf=/%60/g,rc=/%7B/g,Bf=/%7C/g,sc=/%7D/g,Uf=/%20/g;function Xs(e){return e==null?"":encodeURI(""+e).replace(Bf,"|").replace(Ff,"[").replace(Mf,"]")}function jf(e){return Xs(e).replace(rc,"{").replace(sc,"}").replace(nc,"^")}function Ss(e){return Xs(e).replace(tc,"%2B").replace(Uf,"+").replace(ec,"%23").replace(Nf,"%26").replace(kf,"`").replace(rc,"{").replace(sc,"}").replace(nc,"^")}function Hf(e){return Ss(e).replace(Lf,"%3D")}function Vf(e){return Xs(e).replace(ec,"%23").replace(Df,"%3F")}function $f(e){return Vf(e).replace(If,"%2F")}function Un(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const qf=/\/$/,Kf=e=>e.replace(qf,"");function ts(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return c=l>=0&&c>l?-1:c,c>=0&&(r=t.slice(0,c),o=t.slice(c,l>0?l:t.length),s=e(o.slice(1))),l>=0&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=Jf(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:Un(i)}}function Wf(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Xo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Gf(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&cn(t.matched[r],n.matched[s])&&oc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function cn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function oc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!zf(e[n],t[n]))return!1;return!0}function zf(e,t){return Xe(e)?Qo(e,t):Xe(t)?Qo(t,e):e?.valueOf()===t?.valueOf()}function Qo(e,t){return Xe(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function Jf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const Rt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let As=(function(e){return e.pop="pop",e.push="push",e})({}),ns=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function Xf(e){if(!e)if(en){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Kf(e)}const Qf=/^[^#]+#/;function Yf(e,t){return e.replace(Qf,"#")+t}function Zf(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const Fr=()=>({left:window.scrollX,top:window.scrollY});function ed(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=Zf(s,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 Yo(e,t){return(history.state?history.state.position-t:-1)+e}const Rs=new Map;function td(e,t){Rs.set(e,t)}function nd(e){const t=Rs.get(e);return Rs.delete(e),t}function rd(e){return typeof e=="string"||e&&typeof e=="object"}function ic(e){return typeof e=="string"||typeof e=="symbol"}let he=(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 lc=Symbol("");he.MATCHER_NOT_FOUND+"",he.NAVIGATION_GUARD_REDIRECT+"",he.NAVIGATION_ABORTED+"",he.NAVIGATION_CANCELLED+"",he.NAVIGATION_DUPLICATED+"";function an(e,t){return se(new Error,{type:e,[lc]:!0},t)}function mt(e,t){return e instanceof Error&&lc in e&&(t==null||!!(e.type&t))}const sd=["params","query","hash"];function od(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 id(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&Ss(s)):[r&&Ss(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function ld(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=Xe(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const cd=Symbol(""),ei=Symbol(""),Mr=Symbol(""),Qs=Symbol(""),Cs=Symbol("");function yn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function It(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,c)=>{const u=h=>{h===!1?c(an(he.NAVIGATION_ABORTED,{from:n,to:t})):h instanceof Error?c(h):rd(h)?c(an(he.NAVIGATION_GUARD_REDIRECT,{from:t,to:h})):(i&&r.enterCallbacks[s]===i&&typeof h=="function"&&i.push(h),l())},a=o(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(a);e.length<3&&(f=f.then(u)),f.catch(h=>c(h))})}function rs(e,t,n,r,s=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(Zl(c)){const u=(c.__vccOpts||c)[t];u&&o.push(It(u,n,r,i,l,s))}else{let u=c();o.push(()=>u.then(a=>{if(!a)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=Pf(a)?a.default:a;i.mods[l]=a,i.components[l]=f;const h=(f.__vccOpts||f)[t];return h&&It(h,n,r,i,l,s)()}))}}return o}function ad(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;icn(u,l))?r.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(u=>cn(u,c))||s.push(c))}return[n,r,s]}let ud=()=>location.protocol+"//"+location.host;function cc(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(i);return l[0]!=="/"&&(l="/"+l),Xo(l,"")}return Xo(n,e)+r+s}function fd(e,t,n,r){let s=[],o=[],i=null;const l=({state:h})=>{const m=cc(e,location),g=n.value,b=t.value;let E=0;if(h){if(n.value=m,t.value=h,i&&i===g){i=null;return}E=b?h.position-b.position:0}else r(m);s.forEach(C=>{C(n.value,g,{delta:E,type:As.pop,direction:E?E>0?ns.forward:ns.back:ns.unknown})})};function c(){i=n.value}function u(h){s.push(h);const m=()=>{const g=s.indexOf(h);g>-1&&s.splice(g,1)};return o.push(m),m}function a(){if(document.visibilityState==="hidden"){const{history:h}=window;if(!h.state)return;h.replaceState(se({},h.state,{scroll:Fr()}),"")}}function f(){for(const h of o)h();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 ti(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?Fr():null}}function dd(e){const{history:t,location:n}=window,r={value:cc(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(c,u,a){const f=e.indexOf("#"),h=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+c:ud()+e+c;try{t[a?"replaceState":"pushState"](u,"",h),s.value=u}catch(m){console.error(m),n[a?"replace":"assign"](h)}}function i(c,u){o(c,se({},t.state,ti(s.value.back,c,s.value.forward,!0),u,{position:s.value.position}),!0),r.value=c}function l(c,u){const a=se({},s.value,t.state,{forward:c,scroll:Fr()});o(a.current,a,!0),o(c,se({},ti(r.value,c,null),{position:a.position+1},u),!1),r.value=c}return{location:r,state:s,push:l,replace:i}}function hd(e){e=Xf(e);const t=dd(e),n=fd(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=se({location:"",base:e,go:r,createHref:Yf.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function pd(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),hd(e)}let jt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var _e=(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})(_e||{});const md={type:jt.Static,value:""},gd=/[a-zA-Z0-9_]/;function yd(e){if(!e)return[[]];if(e==="/")return[[md]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${u}": ${m}`)}let n=_e.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,c,u="",a="";function f(){u&&(n===_e.Static?o.push({type:jt.Static,value:u}):n===_e.Param||n===_e.ParamRegExp||n===_e.ParamRegExpEnd?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:jt.Param,value:u,regexp:a,repeatable:c==="*"||c==="+",optional:c==="*"||c==="?"})):t("Invalid state to consume buffer"),u="")}function h(){u+=c}for(;lt.length?t.length===1&&t[0]===Oe.Static+Oe.Segment?1:-1:0}function ac(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const vd={strict:!1,end:!0,sensitive:!1};function Sd(e,t,n){const r=Ed(yd(e.path),n),s=se(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function Ad(e,t){const n=[],r=new Map;t=Jo(vd,t);function s(f){return r.get(f)}function o(f,h,m){const g=!m,b=oi(f);b.aliasOf=m&&m.record;const E=Jo(t,f),C=[b];if("alias"in f){const O=typeof f.alias=="string"?[f.alias]:f.alias;for(const B of O)C.push(oi(se({},b,{components:m?m.record.components:b.components,path:B,aliasOf:m?m.record:b})))}let T,N;for(const O of C){const{path:B}=O;if(h&&B[0]!=="/"){const G=h.record.path,j=G[G.length-1]==="/"?"":"/";O.path=h.record.path+(B&&j+B)}if(T=Sd(O,h,E),m?m.alias.push(T):(N=N||T,N!==T&&N.alias.push(T),g&&f.name&&!ii(T)&&i(f.name)),uc(T)&&c(T),b.children){const G=b.children;for(let j=0;j{i(N)}:On}function i(f){if(ic(f)){const h=r.get(f);h&&(r.delete(f),n.splice(n.indexOf(h),1),h.children.forEach(i),h.alias.forEach(i))}else{const h=n.indexOf(f);h>-1&&(n.splice(h,1),f.record.name&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function c(f){const h=xd(f,n);n.splice(h,0,f),f.record.name&&!ii(f)&&r.set(f.record.name,f)}function u(f,h){let m,g={},b,E;if("name"in f&&f.name){if(m=r.get(f.name),!m)throw an(he.MATCHER_NOT_FOUND,{location:f});E=m.record.name,g=se(si(h.params,m.keys.filter(N=>!N.optional).concat(m.parent?m.parent.keys.filter(N=>N.optional):[]).map(N=>N.name)),f.params&&si(f.params,m.keys.map(N=>N.name))),b=m.stringify(g)}else if(f.path!=null)b=f.path,m=n.find(N=>N.re.test(b)),m&&(g=m.parse(b),E=m.record.name);else{if(m=h.name?r.get(h.name):n.find(N=>N.re.test(h.path)),!m)throw an(he.MATCHER_NOT_FOUND,{location:f,currentLocation:h});E=m.record.name,g=se({},h.params,f.params),b=m.stringify(g)}const C=[];let T=m;for(;T;)C.unshift(T.record),T=T.parent;return{name:E,path:b,params:g,matched:C,meta:Cd(C)}}e.forEach(f=>o(f));function a(){n.length=0,r.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:a,getRoutes:l,getRecordMatcher:s}}function si(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function oi(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Rd(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 Rd(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function ii(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Cd(e){return e.reduce((t,n)=>se(t,n.meta),{})}function xd(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;ac(e,t[o])<0?r=o:n=o+1}const s=Td(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function Td(e){let t=e;for(;t=t.parent;)if(uc(t)&&ac(e,t)===0)return t}function uc({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function li(e){const t=Ke(Mr),n=Ke(Qs),r=Be(()=>{const c=dt(e.to);return t.resolve(c)}),s=Be(()=>{const{matched:c}=r.value,{length:u}=c,a=c[u-1],f=n.matched;if(!a||!f.length)return-1;const h=f.findIndex(cn.bind(null,a));if(h>-1)return h;const m=ci(c[u-2]);return u>1&&ci(a)===m&&f[f.length-1].path!==m?f.findIndex(cn.bind(null,c[u-2])):h}),o=Be(()=>s.value>-1&&Ld(n.params,r.value.params)),i=Be(()=>s.value>-1&&s.value===n.matched.length-1&&oc(n.params,r.value.params));function l(c={}){if(Id(c)){const u=t[dt(e.replace)?"replace":"push"](dt(e.to)).catch(On);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Be(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function Od(e){return e.length===1?e[0]:e}const Pd=Or({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:li,setup(e,{slots:t}){const n=fn(li(e)),{options:r}=Ke(Mr),s=Be(()=>({[ai(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[ai(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&Od(t.default(n));return e.custom?o:$l("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),Nd=Pd;function Id(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 Ld(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!Xe(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function ci(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const ai=(e,t,n)=>e??t??n,Dd=Or({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=Ke(Cs),s=Be(()=>e.route||r.value),o=Ke(ei,0),i=Be(()=>{let u=dt(o);const{matched:a}=s.value;let f;for(;(f=a[u])&&!f.components;)u++;return u}),l=Be(()=>s.value.matched[i.value]);tr(ei,Be(()=>i.value+1)),tr(cd,l),tr(Cs,s);const c=$t();return Sn(()=>[c.value,l.value,e.name],([u,a,f],[h,m,g])=>{a&&(a.instances[f]=u,m&&m!==a&&u&&u===h&&(a.leaveGuards.size||(a.leaveGuards=m.leaveGuards),a.updateGuards.size||(a.updateGuards=m.updateGuards))),u&&a&&(!m||!cn(a,m)||!h)&&(a.enterCallbacks[f]||[]).forEach(b=>b(u))},{flush:"post"}),()=>{const u=s.value,a=e.name,f=l.value,h=f&&f.components[a];if(!h)return ui(n.default,{Component:h,route:u});const m=f.props[a],g=m?m===!0?u.params:typeof m=="function"?m(u):m:null,E=$l(h,se({},g,t,{onVnodeUnmounted:C=>{C.component.isUnmounted&&(f.instances[a]=null)},ref:c}));return ui(n.default,{Component:E,route:u})||E}}});function ui(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const fc=Dd;function Fd(e){const t=Ad(e.routes,e),n=e.parseQuery||id,r=e.stringifyQuery||Zo,s=e.history,o=yn(),i=yn(),l=yn(),c=ma(Rt);let u=Rt;en&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const a=es.bind(null,S=>""+S),f=es.bind(null,$f),h=es.bind(null,Un);function m(S,k){let F,H;return ic(S)?(F=t.getRecordMatcher(S),H=k):H=S,t.addRoute(H,F)}function g(S){const k=t.getRecordMatcher(S);k&&t.removeRoute(k)}function b(){return t.getRoutes().map(S=>S.record)}function E(S){return!!t.getRecordMatcher(S)}function C(S,k){if(k=se({},k||c.value),typeof S=="string"){const y=ts(n,S,k.path),w=t.resolve({path:y.path},k),A=s.createHref(y.fullPath);return se(y,w,{params:h(w.params),hash:Un(y.hash),redirectedFrom:void 0,href:A})}let F;if(S.path!=null)F=se({},S,{path:ts(n,S.path,k.path).path});else{const y=se({},S.params);for(const w in y)y[w]==null&&delete y[w];F=se({},S,{params:f(y)}),k.params=f(k.params)}const H=t.resolve(F,k),te=S.hash||"";H.params=a(h(H.params));const d=Wf(r,se({},S,{hash:jf(te),path:H.path})),p=s.createHref(d);return se({fullPath:d,hash:te,query:r===Zo?ld(S.query):S.query||{}},H,{redirectedFrom:void 0,href:p})}function T(S){return typeof S=="string"?ts(n,S,c.value.path):se({},S)}function N(S,k){if(u!==S)return an(he.NAVIGATION_CANCELLED,{from:k,to:S})}function O(S){return j(S)}function B(S){return O(se(T(S),{replace:!0}))}function G(S,k){const F=S.matched[S.matched.length-1];if(F&&F.redirect){const{redirect:H}=F;let te=typeof H=="function"?H(S,k):H;return typeof te=="string"&&(te=te.includes("?")||te.includes("#")?te=T(te):{path:te},te.params={}),se({query:S.query,hash:S.hash,params:te.path!=null?{}:S.params},te)}}function j(S,k){const F=u=C(S),H=c.value,te=S.state,d=S.force,p=S.replace===!0,y=G(F,H);if(y)return j(se(T(y),{state:typeof y=="object"?se({},te,y.state):te,force:d,replace:p}),k||F);const w=F;w.redirectedFrom=k;let A;return!d&&Gf(r,H,F)&&(A=an(he.NAVIGATION_DUPLICATED,{to:w,from:H}),ye(H,H,!0,!1)),(A?Promise.resolve(A):$(w,H)).catch(v=>mt(v)?mt(v,he.NAVIGATION_GUARD_REDIRECT)?v:Ye(v):Z(v,w,H)).then(v=>{if(v){if(mt(v,he.NAVIGATION_GUARD_REDIRECT))return j(se({replace:p},T(v.to),{state:typeof v.to=="object"?se({},te,v.to.state):te,force:d}),k||w)}else v=L(w,H,!0,p,te);return Y(w,H,v),v})}function U(S,k){const F=N(S,k);return F?Promise.reject(F):Promise.resolve()}function x(S){const k=We.values().next().value;return k&&typeof k.runWithContext=="function"?k.runWithContext(S):S()}function $(S,k){let F;const[H,te,d]=ad(S,k);F=rs(H.reverse(),"beforeRouteLeave",S,k);for(const y of H)y.leaveGuards.forEach(w=>{F.push(It(w,S,k))});const p=U.bind(null,S,k);return F.push(p),Ve(F).then(()=>{F=[];for(const y of o.list())F.push(It(y,S,k));return F.push(p),Ve(F)}).then(()=>{F=rs(te,"beforeRouteUpdate",S,k);for(const y of te)y.updateGuards.forEach(w=>{F.push(It(w,S,k))});return F.push(p),Ve(F)}).then(()=>{F=[];for(const y of d)if(y.beforeEnter)if(Xe(y.beforeEnter))for(const w of y.beforeEnter)F.push(It(w,S,k));else F.push(It(y.beforeEnter,S,k));return F.push(p),Ve(F)}).then(()=>(S.matched.forEach(y=>y.enterCallbacks={}),F=rs(d,"beforeRouteEnter",S,k,x),F.push(p),Ve(F))).then(()=>{F=[];for(const y of i.list())F.push(It(y,S,k));return F.push(p),Ve(F)}).catch(y=>mt(y,he.NAVIGATION_CANCELLED)?y:Promise.reject(y))}function Y(S,k,F){l.list().forEach(H=>x(()=>H(S,k,F)))}function L(S,k,F,H,te){const d=N(S,k);if(d)return d;const p=k===Rt,y=en?history.state:{};F&&(H||p?s.replace(S.fullPath,se({scroll:p&&y&&y.scroll},te)):s.push(S.fullPath,te)),c.value=S,ye(S,k,F,p),Ye()}let Q;function le(){Q||(Q=s.listen((S,k,F)=>{if(!et.listening)return;const H=C(S),te=G(H,et.currentRoute.value);if(te){j(se(te,{replace:!0,force:!0}),H).catch(On);return}u=H;const d=c.value;en&&td(Yo(d.fullPath,F.delta),Fr()),$(H,d).catch(p=>mt(p,he.NAVIGATION_ABORTED|he.NAVIGATION_CANCELLED)?p:mt(p,he.NAVIGATION_GUARD_REDIRECT)?(j(se(T(p.to),{force:!0}),H).then(y=>{mt(y,he.NAVIGATION_ABORTED|he.NAVIGATION_DUPLICATED)&&!F.delta&&F.type===As.pop&&s.go(-1,!1)}).catch(On),Promise.reject()):(F.delta&&s.go(-F.delta,!1),Z(p,H,d))).then(p=>{p=p||L(H,d,!1),p&&(F.delta&&!mt(p,he.NAVIGATION_CANCELLED)?s.go(-F.delta,!1):F.type===As.pop&&mt(p,he.NAVIGATION_ABORTED|he.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),Y(H,d,p)}).catch(On)}))}let we=yn(),ee=yn(),z;function Z(S,k,F){Ye(S);const H=ee.list();return H.length?H.forEach(te=>te(S,k,F)):console.error(S),Promise.reject(S)}function He(){return z&&c.value!==Rt?Promise.resolve():new Promise((S,k)=>{we.add([S,k])})}function Ye(S){return z||(z=!S,le(),we.list().forEach(([k,F])=>S?F(S):k()),we.reset()),S}function ye(S,k,F,H){const{scrollBehavior:te}=e;if(!en||!te)return Promise.resolve();const d=!F&&nd(Yo(S.fullPath,0))||(H||!F)&&history.state&&history.state.scroll||null;return $s().then(()=>te(S,k,d)).then(p=>p&&ed(p)).catch(p=>Z(p,S,k))}const me=S=>s.go(S);let Ze;const We=new Set,et={currentRoute:c,listening:!0,addRoute:m,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:E,getRoutes:b,resolve:C,options:e,push:O,replace:B,go:me,back:()=>me(-1),forward:()=>me(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:ee.add,isReady:He,install(S){S.component("RouterLink",Nd),S.component("RouterView",fc),S.config.globalProperties.$router=et,Object.defineProperty(S.config.globalProperties,"$route",{enumerable:!0,get:()=>dt(c)}),en&&!Ze&&c.value===Rt&&(Ze=!0,O(s.location).catch(H=>{}));const k={};for(const H in Rt)Object.defineProperty(k,H,{get:()=>c.value[H],enumerable:!0});S.provide(Mr,et),S.provide(Qs,el(k)),S.provide(Cs,c);const F=S.unmount;We.add(S),S.unmount=function(){We.delete(S),We.size<1&&(u=Rt,Q&&Q(),Q=null,c.value=Rt,Ze=!1,z=!1),F()}}};function Ve(S){return S.reduce((k,F)=>k.then(()=>x(F)),Promise.resolve())}return et}function Lp(){return Ke(Mr)}function Dp(e){return Ke(Qs)}function dc(e,t){return function(){return e.apply(t,arguments)}}const{toString:Md}=Object.prototype,{getPrototypeOf:Ys}=Object,{iterator:kr,toStringTag:hc}=Symbol,Br=(e=>t=>{const n=Md.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Qe=e=>(e=e.toLowerCase(),t=>Br(t)===e),Ur=e=>t=>typeof t===e,{isArray:dn}=Array,un=Ur("undefined");function Vn(e){return e!==null&&!un(e)&&e.constructor!==null&&!un(e.constructor)&&De(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const pc=Qe("ArrayBuffer");function kd(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&pc(e.buffer),t}const Bd=Ur("string"),De=Ur("function"),mc=Ur("number"),$n=e=>e!==null&&typeof e=="object",Ud=e=>e===!0||e===!1,ir=e=>{if(Br(e)!=="object")return!1;const t=Ys(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(hc in e)&&!(kr in e)},jd=e=>{if(!$n(e)||Vn(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},Hd=Qe("Date"),Vd=Qe("File"),$d=Qe("Blob"),qd=Qe("FileList"),Kd=e=>$n(e)&&De(e.pipe),Wd=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||De(e.append)&&((t=Br(e))==="formdata"||t==="object"&&De(e.toString)&&e.toString()==="[object FormData]"))},Gd=Qe("URLSearchParams"),[zd,Jd,Xd,Qd]=["ReadableStream","Request","Response","Headers"].map(Qe),Yd=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function qn(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),dn(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const Ht=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,yc=e=>!un(e)&&e!==Ht;function xs(){const{caseless:e,skipUndefined:t}=yc(this)&&this||{},n={},r=(s,o)=>{const i=e&&gc(n,o)||o;ir(n[i])&&ir(s)?n[i]=xs(n[i],s):ir(s)?n[i]=xs({},s):dn(s)?n[i]=s.slice():(!t||!un(s))&&(n[i]=s)};for(let s=0,o=arguments.length;s(qn(t,(s,o)=>{n&&De(s)?e[o]=dc(s,n):e[o]=s},{allOwnKeys:r}),e),eh=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),th=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},nh=(e,t,n,r)=>{let s,o,i;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&Ys(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},rh=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},sh=e=>{if(!e)return null;if(dn(e))return e;let t=e.length;if(!mc(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},oh=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Ys(Uint8Array)),ih=(e,t)=>{const r=(e&&e[kr]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},lh=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},ch=Qe("HTMLFormElement"),ah=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),fi=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),uh=Qe("RegExp"),_c=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};qn(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},fh=e=>{_c(e,(t,n)=>{if(De(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(De(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},dh=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return dn(e)?r(e):r(String(e).split(t)),n},hh=()=>{},ph=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function mh(e){return!!(e&&De(e.append)&&e[hc]==="FormData"&&e[kr])}const gh=e=>{const t=new Array(10),n=(r,s)=>{if($n(r)){if(t.indexOf(r)>=0)return;if(Vn(r))return r;if(!("toJSON"in r)){t[s]=r;const o=dn(r)?[]:{};return qn(r,(i,l)=>{const c=n(i,s+1);!un(c)&&(o[l]=c)}),t[s]=void 0,o}}return r};return n(e,0)},yh=Qe("AsyncFunction"),_h=e=>e&&($n(e)||De(e))&&De(e.then)&&De(e.catch),bc=((e,t)=>e?setImmediate:t?((n,r)=>(Ht.addEventListener("message",({source:s,data:o})=>{s===Ht&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),Ht.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",De(Ht.postMessage)),bh=typeof queueMicrotask<"u"?queueMicrotask.bind(Ht):typeof process<"u"&&process.nextTick||bc,Eh=e=>e!=null&&De(e[kr]),_={isArray:dn,isArrayBuffer:pc,isBuffer:Vn,isFormData:Wd,isArrayBufferView:kd,isString:Bd,isNumber:mc,isBoolean:Ud,isObject:$n,isPlainObject:ir,isEmptyObject:jd,isReadableStream:zd,isRequest:Jd,isResponse:Xd,isHeaders:Qd,isUndefined:un,isDate:Hd,isFile:Vd,isBlob:$d,isRegExp:uh,isFunction:De,isStream:Kd,isURLSearchParams:Gd,isTypedArray:oh,isFileList:qd,forEach:qn,merge:xs,extend:Zd,trim:Yd,stripBOM:eh,inherits:th,toFlatObject:nh,kindOf:Br,kindOfTest:Qe,endsWith:rh,toArray:sh,forEachEntry:ih,matchAll:lh,isHTMLForm:ch,hasOwnProperty:fi,hasOwnProp:fi,reduceDescriptors:_c,freezeMethods:fh,toObjectSet:dh,toCamelCase:ah,noop:hh,toFiniteNumber:ph,findKey:gc,global:Ht,isContextDefined:yc,isSpecCompliantForm:mh,toJSONObject:gh,isAsyncFn:yh,isThenable:_h,setImmediate:bc,asap:bh,isIterable:Eh};function X(e,t,n,r,s){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),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}_.inherits(X,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:_.toJSONObject(this.config),code:this.code,status:this.status}}});const Ec=X.prototype,wc={};["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=>{wc[e]={value:e}});Object.defineProperties(X,wc);Object.defineProperty(Ec,"isAxiosError",{value:!0});X.from=(e,t,n,r,s,o)=>{const i=Object.create(Ec);_.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 X.call(i,l,c,n,r,s),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 wh=null;function Ts(e){return _.isPlainObject(e)||_.isArray(e)}function vc(e){return _.endsWith(e,"[]")?e.slice(0,-2):e}function di(e,t,n){return e?e.concat(t).map(function(s,o){return s=vc(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function vh(e){return _.isArray(e)&&!e.some(Ts)}const Sh=_.toFlatObject(_,{},null,function(t){return/^is[A-Z]/.test(t)});function jr(e,t,n){if(!_.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=_.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(b,E){return!_.isUndefined(E[b])});const r=n.metaTokens,s=n.visitor||a,o=n.dots,i=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&_.isSpecCompliantForm(t);if(!_.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(_.isDate(g))return g.toISOString();if(_.isBoolean(g))return g.toString();if(!c&&_.isBlob(g))throw new X("Blob is not supported. Use a Buffer instead.");return _.isArrayBuffer(g)||_.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function a(g,b,E){let C=g;if(g&&!E&&typeof g=="object"){if(_.endsWith(b,"{}"))b=r?b:b.slice(0,-2),g=JSON.stringify(g);else if(_.isArray(g)&&vh(g)||(_.isFileList(g)||_.endsWith(b,"[]"))&&(C=_.toArray(g)))return b=vc(b),C.forEach(function(N,O){!(_.isUndefined(N)||N===null)&&t.append(i===!0?di([b],O,o):i===null?b:b+"[]",u(N))}),!1}return Ts(g)?!0:(t.append(di(E,b,o),u(g)),!1)}const f=[],h=Object.assign(Sh,{defaultVisitor:a,convertValue:u,isVisitable:Ts});function m(g,b){if(!_.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+b.join("."));f.push(g),_.forEach(g,function(C,T){(!(_.isUndefined(C)||C===null)&&s.call(t,C,_.isString(T)?T.trim():T,b,h))===!0&&m(C,b?b.concat(T):[T])}),f.pop()}}if(!_.isObject(e))throw new TypeError("data must be an object");return m(e),t}function hi(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Zs(e,t){this._pairs=[],e&&jr(e,this,t)}const Sc=Zs.prototype;Sc.append=function(t,n){this._pairs.push([t,n])};Sc.toString=function(t){const n=t?function(r){return t.call(this,r,hi)}:hi;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Ah(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Ac(e,t,n){if(!t)return e;const r=n&&n.encode||Ah;_.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=_.isURLSearchParams(t)?t.toString():new Zs(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class pi{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){_.forEach(this.handlers,function(r){r!==null&&t(r)})}}const Rc={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Rh=typeof URLSearchParams<"u"?URLSearchParams:Zs,Ch=typeof FormData<"u"?FormData:null,xh=typeof Blob<"u"?Blob:null,Th={isBrowser:!0,classes:{URLSearchParams:Rh,FormData:Ch,Blob:xh},protocols:["http","https","file","blob","url","data"]},eo=typeof window<"u"&&typeof document<"u",Os=typeof navigator=="object"&&navigator||void 0,Oh=eo&&(!Os||["ReactNative","NativeScript","NS"].indexOf(Os.product)<0),Ph=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Nh=eo&&window.location.href||"http://localhost",Ih=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:eo,hasStandardBrowserEnv:Oh,hasStandardBrowserWebWorkerEnv:Ph,navigator:Os,origin:Nh},Symbol.toStringTag,{value:"Module"})),Re={...Ih,...Th};function Lh(e,t){return jr(e,new Re.classes.URLSearchParams,{visitor:function(n,r,s,o){return Re.isNode&&_.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function Dh(e){return _.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Fh(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&_.isArray(s)?s.length:i,c?(_.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!l):((!s[i]||!_.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&_.isArray(s[i])&&(s[i]=Fh(s[i])),!l)}if(_.isFormData(e)&&_.isFunction(e.entries)){const n={};return _.forEachEntry(e,(r,s)=>{t(Dh(r),s,n,0)}),n}return null}function Mh(e,t,n){if(_.isString(e))try{return(t||JSON.parse)(e),_.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Kn={transitional:Rc,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=_.isObject(t);if(o&&_.isHTMLForm(t)&&(t=new FormData(t)),_.isFormData(t))return s?JSON.stringify(Cc(t)):t;if(_.isArrayBuffer(t)||_.isBuffer(t)||_.isStream(t)||_.isFile(t)||_.isBlob(t)||_.isReadableStream(t))return t;if(_.isArrayBufferView(t))return t.buffer;if(_.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return Lh(t,this.formSerializer).toString();if((l=_.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return jr(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),Mh(t)):t}],transformResponse:[function(t){const n=this.transitional||Kn.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(_.isResponse(t)||_.isReadableStream(t))return t;if(t&&_.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(i)throw l.name==="SyntaxError"?X.from(l,X.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:Re.classes.FormData,Blob:Re.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};_.forEach(["delete","get","head","post","put","patch"],e=>{Kn.headers[e]={}});const kh=_.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"]),Bh=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&kh[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},mi=Symbol("internals");function _n(e){return e&&String(e).trim().toLowerCase()}function lr(e){return e===!1||e==null?e:_.isArray(e)?e.map(lr):String(e)}function Uh(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const jh=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function ss(e,t,n,r,s){if(_.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!_.isString(t)){if(_.isString(r))return t.indexOf(r)!==-1;if(_.isRegExp(r))return r.test(t)}}function Hh(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Vh(e,t){const n=_.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let Fe=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(l,c,u){const a=_n(c);if(!a)throw new Error("header name must be a non-empty string");const f=_.findKey(s,a);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||c]=lr(l))}const i=(l,c)=>_.forEach(l,(u,a)=>o(u,a,c));if(_.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(_.isString(t)&&(t=t.trim())&&!jh(t))i(Bh(t),n);else if(_.isObject(t)&&_.isIterable(t)){let l={},c,u;for(const a of t){if(!_.isArray(a))throw TypeError("Object iterator must return a key-value pair");l[u=a[0]]=(c=l[u])?_.isArray(c)?[...c,a[1]]:[c,a[1]]:a[1]}i(l,n)}else t!=null&&o(n,t,r);return this}get(t,n){if(t=_n(t),t){const r=_.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return Uh(s);if(_.isFunction(n))return n.call(this,s,r);if(_.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=_n(t),t){const r=_.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||ss(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=_n(i),i){const l=_.findKey(r,i);l&&(!n||ss(r,r[l],l,n))&&(delete r[l],s=!0)}}return _.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||ss(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return _.forEach(this,(s,o)=>{const i=_.findKey(r,o);if(i){n[i]=lr(s),delete n[o];return}const l=t?Hh(o):String(o).trim();l!==o&&delete n[o],n[l]=lr(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return _.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&_.isArray(r)?r.join(", "):r)}),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 r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[mi]=this[mi]={accessors:{}}).accessors,s=this.prototype;function o(i){const l=_n(i);r[l]||(Vh(s,i),r[l]=!0)}return _.isArray(t)?t.forEach(o):o(t),this}};Fe.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);_.reduceDescriptors(Fe.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});_.freezeMethods(Fe);function os(e,t){const n=this||Kn,r=t||n,s=Fe.from(r.headers);let o=r.data;return _.forEach(e,function(l){o=l.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function xc(e){return!!(e&&e.__CANCEL__)}function hn(e,t,n){X.call(this,e??"canceled",X.ERR_CANCELED,t,n),this.name="CanceledError"}_.inherits(hn,X,{__CANCEL__:!0});function Tc(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new X("Request failed with status code "+n.status,[X.ERR_BAD_REQUEST,X.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function $h(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function qh(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),a=r[o];i||(i=u),n[s]=c,r[s]=u;let f=o,h=0;for(;f!==s;)h+=n[f++],f=f%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i{n=a,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const a=Date.now(),f=a-n;f>=r?i(u,a):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-f)))},()=>s&&i(s)]}const br=(e,t,n=3)=>{let r=0;const s=qh(50,250);return Kh(o=>{const i=o.loaded,l=o.lengthComputable?o.total:void 0,c=i-r,u=s(c),a=i<=l;r=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)},gi=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},yi=e=>(...t)=>_.asap(()=>e(...t)),Wh=Re.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Re.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Re.origin),Re.navigator&&/(msie|trident)/i.test(Re.navigator.userAgent)):()=>!0,Gh=Re.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];_.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),_.isString(r)&&l.push(`path=${r}`),_.isString(s)&&l.push(`domain=${s}`),o===!0&&l.push("secure"),_.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 zh(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function Jh(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Oc(e,t,n){let r=!zh(t);return e&&(r||n==!1)?Jh(e,t):t}const _i=e=>e instanceof Fe?{...e}:e;function Gt(e,t){t=t||{};const n={};function r(u,a,f,h){return _.isPlainObject(u)&&_.isPlainObject(a)?_.merge.call({caseless:h},u,a):_.isPlainObject(a)?_.merge({},a):_.isArray(a)?a.slice():a}function s(u,a,f,h){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u,f,h)}else return r(u,a,f,h)}function o(u,a){if(!_.isUndefined(a))return r(void 0,a)}function i(u,a){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u)}else return r(void 0,a)}function l(u,a,f){if(f in t)return r(u,a);if(f in e)return r(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)=>s(_i(u),_i(a),f,!0)};return _.forEach(Object.keys({...e,...t}),function(a){const f=c[a]||s,h=f(e[a],t[a],a);_.isUndefined(h)&&f!==l||(n[a]=h)}),n}const Pc=e=>{const t=Gt({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:l}=t;if(t.headers=i=Fe.from(i),t.url=Ac(Oc(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&i.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),_.isFormData(n)){if(Re.hasStandardBrowserEnv||Re.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(_.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(Re.hasStandardBrowserEnv&&(r&&_.isFunction(r)&&(r=r(t)),r||r!==!1&&Wh(t.url))){const c=s&&o&&Gh.read(o);c&&i.set(s,c)}return t},Xh=typeof XMLHttpRequest<"u",Qh=Xh&&function(e){return new Promise(function(n,r){const s=Pc(e);let o=s.data;const i=Fe.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,a,f,h,m,g;function b(){m&&m(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(a),s.signal&&s.signal.removeEventListener("abort",a)}let E=new XMLHttpRequest;E.open(s.method.toUpperCase(),s.url,!0),E.timeout=s.timeout;function C(){if(!E)return;const N=Fe.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),B={data:!l||l==="text"||l==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:N,config:e,request:E};Tc(function(j){n(j),b()},function(j){r(j),b()},B),E=null}"onloadend"in E?E.onloadend=C:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.indexOf("file:")===0)||setTimeout(C)},E.onabort=function(){E&&(r(new X("Request aborted",X.ECONNABORTED,e,E)),E=null)},E.onerror=function(O){const B=O&&O.message?O.message:"Network Error",G=new X(B,X.ERR_NETWORK,e,E);G.event=O||null,r(G),E=null},E.ontimeout=function(){let O=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const B=s.transitional||Rc;s.timeoutErrorMessage&&(O=s.timeoutErrorMessage),r(new X(O,B.clarifyTimeoutError?X.ETIMEDOUT:X.ECONNABORTED,e,E)),E=null},o===void 0&&i.setContentType(null),"setRequestHeader"in E&&_.forEach(i.toJSON(),function(O,B){E.setRequestHeader(B,O)}),_.isUndefined(s.withCredentials)||(E.withCredentials=!!s.withCredentials),l&&l!=="json"&&(E.responseType=s.responseType),u&&([h,g]=br(u,!0),E.addEventListener("progress",h)),c&&E.upload&&([f,m]=br(c),E.upload.addEventListener("progress",f),E.upload.addEventListener("loadend",m)),(s.cancelToken||s.signal)&&(a=N=>{E&&(r(!N||N.type?new hn(null,e,E):N),E.abort(),E=null)},s.cancelToken&&s.cancelToken.subscribe(a),s.signal&&(s.signal.aborted?a():s.signal.addEventListener("abort",a)));const T=$h(s.url);if(T&&Re.protocols.indexOf(T)===-1){r(new X("Unsupported protocol "+T+":",X.ERR_BAD_REQUEST,e));return}E.send(o||null)})},Yh=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,l();const a=u instanceof Error?u:this.reason;r.abort(a instanceof X?a:new hn(a instanceof Error?a.message:a))}};let i=t&&setTimeout(()=>{i=null,o(new X(`timeout ${t} of ms exceeded`,X.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}=r;return c.unsubscribe=()=>_.asap(l),c}},Zh=function*(e,t){let n=e.byteLength;if(n{const s=ep(e,t);let o=0,i,l=c=>{i||(i=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:a}=await s.next();if(u){l(),c.close();return}let f=a.byteLength;if(n){let h=o+=f;n(h)}c.enqueue(new Uint8Array(a))}catch(u){throw l(u),u}},cancel(c){return l(c),s.return()}},{highWaterMark:2})},Ei=64*1024,{isFunction:Qn}=_,np=(({Request:e,Response:t})=>({Request:e,Response:t}))(_.global),{ReadableStream:wi,TextEncoder:vi}=_.global,Si=(e,...t)=>{try{return!!e(...t)}catch{return!1}},rp=e=>{e=_.merge.call({skipUndefined:!0},np,e);const{fetch:t,Request:n,Response:r}=e,s=t?Qn(t):typeof fetch=="function",o=Qn(n),i=Qn(r);if(!s)return!1;const l=s&&Qn(wi),c=s&&(typeof vi=="function"?(g=>b=>g.encode(b))(new vi):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=o&&l&&Si(()=>{let g=!1;const b=new n(Re.origin,{body:new wi,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!b}),a=i&&l&&Si(()=>_.isReadableStream(new r("").body)),f={stream:a&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(b,E)=>{let C=b&&b[g];if(C)return C.call(b);throw new X(`Response type '${g}' is not supported`,X.ERR_NOT_SUPPORT,E)})});const h=async g=>{if(g==null)return 0;if(_.isBlob(g))return g.size;if(_.isSpecCompliantForm(g))return(await new n(Re.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(_.isArrayBufferView(g)||_.isArrayBuffer(g))return g.byteLength;if(_.isURLSearchParams(g)&&(g=g+""),_.isString(g))return(await c(g)).byteLength},m=async(g,b)=>{const E=_.toFiniteNumber(g.getContentLength());return E??h(b)};return async g=>{let{url:b,method:E,data:C,signal:T,cancelToken:N,timeout:O,onDownloadProgress:B,onUploadProgress:G,responseType:j,headers:U,withCredentials:x="same-origin",fetchOptions:$}=Pc(g),Y=t||fetch;j=j?(j+"").toLowerCase():"text";let L=Yh([T,N&&N.toAbortSignal()],O),Q=null;const le=L&&L.unsubscribe&&(()=>{L.unsubscribe()});let we;try{if(G&&u&&E!=="get"&&E!=="head"&&(we=await m(U,C))!==0){let ye=new n(b,{method:"POST",body:C,duplex:"half"}),me;if(_.isFormData(C)&&(me=ye.headers.get("content-type"))&&U.setContentType(me),ye.body){const[Ze,We]=gi(we,br(yi(G)));C=bi(ye.body,Ei,Ze,We)}}_.isString(x)||(x=x?"include":"omit");const ee=o&&"credentials"in n.prototype,z={...$,signal:L,method:E.toUpperCase(),headers:U.normalize().toJSON(),body:C,duplex:"half",credentials:ee?x:void 0};Q=o&&new n(b,z);let Z=await(o?Y(Q,$):Y(b,z));const He=a&&(j==="stream"||j==="response");if(a&&(B||He&&le)){const ye={};["status","statusText","headers"].forEach(et=>{ye[et]=Z[et]});const me=_.toFiniteNumber(Z.headers.get("content-length")),[Ze,We]=B&&gi(me,br(yi(B),!0))||[];Z=new r(bi(Z.body,Ei,Ze,()=>{We&&We(),le&&le()}),ye)}j=j||"text";let Ye=await f[_.findKey(f,j)||"text"](Z,g);return!He&&le&&le(),await new Promise((ye,me)=>{Tc(ye,me,{data:Ye,headers:Fe.from(Z.headers),status:Z.status,statusText:Z.statusText,config:g,request:Q})})}catch(ee){throw le&&le(),ee&&ee.name==="TypeError"&&/Load failed|fetch/i.test(ee.message)?Object.assign(new X("Network Error",X.ERR_NETWORK,g,Q),{cause:ee.cause||ee}):X.from(ee,ee&&ee.code,g,Q)}}},sp=new Map,Nc=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,l=i,c,u,a=sp;for(;l--;)c=o[l],u=a.get(c),u===void 0&&a.set(c,u=l?new Map:rp(t)),a=u;return u};Nc();const to={http:wh,xhr:Qh,fetch:{get:Nc}};_.forEach(to,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Ai=e=>`- ${e}`,op=e=>_.isFunction(e)||e===null||e===!1;function ip(e,t){e=_.isArray(e)?e:[e];const{length:n}=e;let r,s;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(Ai).join(` +`):" "+Ai(i[0]):"as no adapter specified";throw new X("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const Ic={getAdapter:ip,adapters:to};function is(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new hn(null,e)}function Ri(e){return is(e),e.headers=Fe.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),Ic.getAdapter(e.adapter||Kn.adapter,e)(e).then(function(r){return is(e),r.data=os.call(e,e.transformResponse,r),r.headers=Fe.from(r.headers),r},function(r){return xc(r)||(is(e),r&&r.response&&(r.response.data=os.call(e,e.transformResponse,r.response),r.response.headers=Fe.from(r.response.headers))),Promise.reject(r)})}const Lc="1.13.2",Hr={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Hr[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const Ci={};Hr.transitional=function(t,n,r){function s(o,i){return"[Axios v"+Lc+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,l)=>{if(t===!1)throw new X(s(i," has been removed"+(n?" in "+n:"")),X.ERR_DEPRECATED);return n&&!Ci[i]&&(Ci[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,l):!0}};Hr.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function lp(e,t,n){if(typeof e!="object")throw new X("options must be an object",X.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const l=e[o],c=l===void 0||i(l,o,e);if(c!==!0)throw new X("option "+o+" must be "+c,X.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new X("Unknown option "+o,X.ERR_BAD_OPTION)}}const cr={assertOptions:lp,validators:Hr},it=cr.validators;let Kt=class{constructor(t){this.defaults=t||{},this.interceptors={request:new pi,response:new pi}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Gt(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&cr.assertOptions(r,{silentJSONParsing:it.transitional(it.boolean),forcedJSONParsing:it.transitional(it.boolean),clarifyTimeoutError:it.transitional(it.boolean)},!1),s!=null&&(_.isFunction(s)?n.paramsSerializer={serialize:s}:cr.assertOptions(s,{encode:it.function,serialize:it.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),cr.assertOptions(n,{baseUrl:it.spelling("baseURL"),withXsrfToken:it.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&_.merge(o.common,o[n.method]);o&&_.forEach(["delete","get","head","post","put","patch","common"],g=>{delete o[g]}),n.headers=Fe.concat(i,o);const l=[];let c=!0;this.interceptors.request.forEach(function(b){typeof b.runWhen=="function"&&b.runWhen(n)===!1||(c=c&&b.synchronous,l.unshift(b.fulfilled,b.rejected))});const u=[];this.interceptors.response.forEach(function(b){u.push(b.fulfilled,b.rejected)});let a,f=0,h;if(!c){const g=[Ri.bind(this),void 0];for(g.unshift(...l),g.push(...u),h=g.length,a=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(l=>{r.subscribe(l),o=l}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,l){r.reason||(r.reason=new hn(o,i,l),n(r.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=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new Dc(function(s){t=s}),cancel:t}}};function ap(e){return function(n){return e.apply(null,n)}}function up(e){return _.isObject(e)&&e.isAxiosError===!0}const Ps={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(Ps).forEach(([e,t])=>{Ps[t]=e});function Fc(e){const t=new Kt(e),n=dc(Kt.prototype.request,t);return _.extend(n,Kt.prototype,t,{allOwnKeys:!0}),_.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return Fc(Gt(e,s))},n}const ge=Fc(Kn);ge.Axios=Kt;ge.CanceledError=hn;ge.CancelToken=cp;ge.isCancel=xc;ge.VERSION=Lc;ge.toFormData=jr;ge.AxiosError=X;ge.Cancel=ge.CanceledError;ge.all=function(t){return Promise.all(t)};ge.spread=ap;ge.isAxiosError=up;ge.mergeConfig=Gt;ge.AxiosHeaders=Fe;ge.formToJSON=e=>Cc(_.isHTMLForm(e)?new FormData(e):e);ge.getAdapter=Ic.getAdapter;ge.HttpStatusCode=Ps;ge.default=ge;const{Axios:kp,AxiosError:Bp,CanceledError:Up,isCancel:jp,CancelToken:Hp,VERSION:Vp,all:$p,Cancel:qp,isAxiosError:Kp,spread:Wp,toFormData:Gp,AxiosHeaders:zp,HttpStatusCode:Jp,formToJSON:Xp,getAdapter:Qp,mergeConfig:Yp}=ge,Pn=ge.create({baseURL:"",timeout:3e4,withCredentials:!0});Pn.interceptors.request.use(e=>e,e=>Promise.reject(e));Pn.interceptors.response.use(e=>e.data,e=>{e.response?.status===401&&(window.location.hash="#/login");const t=e.response?.data?e.response.data.detail||e.response.data.message:e.message;return Promise.reject(new Error(t||"请求失败"))});const Yn={login:e=>{const t=new URLSearchParams;return t.append("admin_key",e.password),Pn.post("/login",t,{headers:{"Content-Type":"application/x-www-form-urlencoded"}})},logout:()=>Pn.post("/logout"),checkAuth:()=>Pn.get("/admin/health")},fp=xf("auth",()=>{const e=$t(!1),t=$t(!1),n=$t(0),r=1e4;let s=null;async function o(c){t.value=!0;try{return await Yn.login({password:c}),await Yn.checkAuth(),e.value=!0,n.value=Date.now(),!0}catch(u){throw e.value=!1,u}finally{t.value=!1}}async function i(){try{await Yn.logout()}finally{e.value=!1,n.value=0}}async function l(){const c=Date.now();if(e.value&&c-n.value(await Yn.checkAuth(),e.value=!0,!0))(),await s}catch{return e.value=!1,!1}finally{n.value=Date.now(),s=null}}return{isLoggedIn:e,isLoading:t,login:o,logout:i,checkAuth:l}}),Mc=Fd({history:pd("/"),routes:[{path:"/public/uptime",name:"public-uptime",component:()=>ot(()=>import("./PublicUptime-CiWeF8gU.js"),__vite__mapDeps([0,1])),meta:{requiresAuth:!1}},{path:"/public/logs",name:"public-logs",component:()=>ot(()=>import("./PublicLogs-BTQr1iFu.js"),[]),meta:{requiresAuth:!1}},{path:"/login",name:"login",component:()=>ot(()=>import("./Login-DXJamC1a.js"),__vite__mapDeps([2,3])),meta:{requiresAuth:!1}},{path:"/",component:()=>ot(()=>import("./AppShell-aSE0a76B.js"),__vite__mapDeps([4,5,6,7])),meta:{requiresAuth:!0},children:[{path:"",name:"dashboard",component:()=>ot(()=>import("./Dashboard-CpaJFO-h.js"),__vite__mapDeps([8,9]))},{path:"accounts",name:"accounts",component:()=>ot(()=>import("./Accounts-EOqS8kG-.js"),__vite__mapDeps([10,11,3,6,7,9]))},{path:"settings",name:"settings",component:()=>ot(()=>import("./Settings-CJmrMQ40.js"),__vite__mapDeps([12,5,11,3,9]))},{path:"logs",name:"logs",component:()=>ot(()=>import("./Logs-TwFNBtoi.js"),__vite__mapDeps([13,11,6]))},{path:"monitor",name:"monitor",component:()=>ot(()=>import("./Monitor-I31qtw0o.js"),__vite__mapDeps([14,1]))},{path:"docs",name:"docs",component:()=>ot(()=>import("./Docs-C6C5tlAV.js"),[])}]}]});Mc.beforeEach(async e=>{const t=fp();if(e.meta.requiresAuth&&!await t.checkAuth())return{name:"login"};if(e.name==="login"&&t.isLoggedIn)return{name:"dashboard"}});const Er=fn({toasts:[]});let dp=0;const Zn=e=>{const t=`toast-${++dp}`,n=e.duration??3e3,r={id:t,type:e.type,title:e.title,message:e.message,duration:n};return Er.toasts.push(r),n>0&&setTimeout(()=>{kc(t)},n),t},kc=e=>{const t=Er.toasts.findIndex(n=>n.id===e);t>-1&&Er.toasts.splice(t,1)},Zp=()=>({success:(e,t,n)=>Zn({type:"success",message:e,title:t,duration:n}),error:(e,t,n)=>Zn({type:"error",message:e,title:t,duration:n}),warning:(e,t,n)=>Zn({type:"warning",message:e,title:t,duration:n}),info:(e,t,n)=>Zn({type:"info",message:e,title:t,duration:n})}),hp={class:"fixed right-4 top-4 z-[200] flex flex-col gap-2"},pp={class:"flex-shrink-0"},mp={key:0,class:"h-5 w-5 text-emerald-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},gp={key:1,class:"h-5 w-5 text-rose-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},yp={key:2,class:"h-5 w-5 text-amber-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},_p={key:3,class:"h-5 w-5 text-sky-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},bp={class:"flex-1"},Ep={key:0,class:"text-sm font-medium text-foreground"},wp=["onClick"],vp=Or({__name:"Toast",setup(e){const t=Er.toasts,n=r=>{switch(r){case"success":return"border-emerald-200 bg-emerald-50";case"error":return"border-rose-200 bg-rose-50";case"warning":return"border-amber-200 bg-amber-50";default:return"border-sky-200 bg-sky-50"}};return(r,s)=>(qe(),gr(Fa,{to:"body"},[ke("div",hp,[be(cf,{name:"toast"},{default:al(()=>[(qe(!0),Ct(ve,null,Ja(dt(t),o=>(qe(),Ct("div",{key:o.id,class:Nn(["flex min-w-[320px] items-start gap-3 rounded-2xl border border-border bg-card px-4 py-3 shadow-lg",n(o.type)])},[ke("div",pp,[o.type==="success"?(qe(),Ct("svg",mp,[...s[0]||(s[0]=[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"},null,-1)])])):o.type==="error"?(qe(),Ct("svg",gp,[...s[1]||(s[1]=[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"},null,-1)])])):o.type==="warning"?(qe(),Ct("svg",yp,[...s[2]||(s[2]=[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"},null,-1)])])):(qe(),Ct("svg",_p,[...s[3]||(s[3]=[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"},null,-1)])]))]),ke("div",bp,[o.title?(qe(),Ct("p",Ep,ls(o.title),1)):Cu("",!0),ke("p",{class:Nn(["text-sm text-muted-foreground",{"mt-1":o.title}])},ls(o.message),3)]),ke("button",{class:"flex-shrink-0 text-muted-foreground transition-colors hover:text-foreground",onClick:i=>dt(kc)(o.id)},[...s[4]||(s[4]=[ke("svg",{class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])],8,wp)],2))),128))]),_:1})])]))}}),Sp=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},Ap=Sp(vp,[["__scopeId","data-v-cdd21b3c"]]),Rp=Or({__name:"App",setup(e){return(t,n)=>(qe(),Ct(ve,null,[be(dt(fc)),be(Ap)],64))}}),no=_f(Rp),Cp=wf();no.use(Cp);no.use(Mc);no.mount("#app");export{Op as A,fc as B,xf as C,Ip as D,Zp as E,ve as F,$s as G,Tp as H,fn as I,Nd as R,Fa as T,ke as a,Cu as b,Ct as c,Or as d,qe as e,Ru as f,Pn as g,$t as h,Be as i,wl as j,Fs as k,fp as l,gr as m,Nn as n,bl as o,be as p,xp as q,Ja as r,al as s,ls as t,dt as u,Pp as v,Np as w,Lp as x,Dp as y,Sn as z}; diff --git a/static/assets/index-BIHSVHyU.js b/static/assets/index-BIHSVHyU.js new file mode 100644 index 0000000000000000000000000000000000000000..7356f58ba494154162b0572295d16bc9d933f76f --- /dev/null +++ b/static/assets/index-BIHSVHyU.js @@ -0,0 +1,7 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PublicUptime-konZb8MF.js","assets/useUptimeStatus-rRrvndbO.js","assets/AppShell-WtLTfBVP.js","assets/settings-CnjmnC7x.js","assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-fISQukFW.js","assets/useConfirmDialog-urbmwbaE.js","assets/Dashboard-BfvhDjhc.js","assets/HelpTip.vue_vue_type_script_setup_true_lang-BYvP2-eE.js","assets/Accounts-v_9wnBup.js","assets/SelectMenu.vue_vue_type_script_setup_true_lang-Cdct4OHH.js","assets/Checkbox.vue_vue_type_script_setup_true_lang-p51UOq8I.js","assets/Settings-D6lCtCs6.js","assets/Logs-D7O4Ew0p.js","assets/Monitor-HJoAWlXV.js"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function us(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const se={},$t=[],ot=()=>{},ni=()=>!1,or=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),fs=e=>e.startsWith("onUpdate:"),Se=Object.assign,ds=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},oc=Object.prototype.hasOwnProperty,ne=(e,t)=>oc.call(e,t),q=Array.isArray,Kt=e=>ir(e)==="[object Map]",ri=e=>ir(e)==="[object Set]",W=e=>typeof e=="function",de=e=>typeof e=="string",yt=e=>typeof e=="symbol",le=e=>e!==null&&typeof e=="object",si=e=>(le(e)||W(e))&&W(e.then)&&W(e.catch),oi=Object.prototype.toString,ir=e=>oi.call(e),ic=e=>ir(e).slice(8,-1),ii=e=>ir(e)==="[object Object]",lr=e=>de(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,cn=us(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),cr=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},lc=/-\w/g,xt=cr(e=>e.replace(lc,t=>t.slice(1).toUpperCase())),cc=/\B([A-Z])/g,jt=cr(e=>e.replace(cc,"-$1").toLowerCase()),li=cr(e=>e.charAt(0).toUpperCase()+e.slice(1)),vr=cr(e=>e?`on${li(e)}`:""),vt=(e,t)=>!Object.is(e,t),Bn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},hs=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let ks;const ar=()=>ks||(ks=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function ps(e){if(q(e)){const t={};for(let n=0;n{if(n){const r=n.split(uc);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function ms(e){let t="";if(de(e))t=e;else if(q(e))for(let n=0;n!!(e&&e.__v_isRef===!0),mc=e=>de(e)?e:e==null?"":q(e)||le(e)&&(e.toString===oi||!W(e.toString))?ui(e)?mc(e.value):JSON.stringify(e,fi,2):String(e),fi=(e,t)=>ui(t)?fi(e,t.value):Kt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[Or(r,o)+" =>"]=s,n),{})}:ri(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Or(n))}:yt(t)?Or(t):le(t)&&!q(t)&&!ii(t)?String(t):t,Or=(e,t="")=>{var n;return yt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let _e;class di{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=_e,!t&&_e&&(this.index=(_e.scopes||(_e.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&&(_e=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if(un){let t=un;for(un=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;an;){let t=an;for(an=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function _i(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function bi(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),_s(r),yc(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function qr(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===bn)||(e.globalVersion=bn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!qr(e))))return;e.flags|=2;const t=e.dep,n=ie,r=$e;ie=e,$e=!0;try{_i(e);const s=e.fn(e._value);(t.version===0||vt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{ie=n,$e=r,bi(e),e.flags&=-3}}function _s(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)_s(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function yc(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 wi=[];function ht(){wi.push($e),$e=!1}function pt(){const e=wi.pop();$e=e===void 0?!0:e}function Vs(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ie;ie=void 0;try{t()}finally{ie=n}}}let bn=0;class _c{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 bs{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!ie||!$e||ie===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ie)n=this.activeLink=new _c(ie,this),ie.deps?(n.prevDep=ie.depsTail,ie.depsTail.nextDep=n,ie.depsTail=n):ie.deps=ie.depsTail=n,Si(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=ie.depsTail,n.nextDep=void 0,ie.depsTail.nextDep=n,ie.depsTail=n,ie.deps===n&&(ie.deps=r)}return n}trigger(t){this.version++,bn++,this.notify(t)}notify(t){gs();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ys()}}}function Si(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Si(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const zn=new WeakMap,Dt=Symbol(""),$r=Symbol(""),En=Symbol("");function be(e,t,n){if($e&&ie){let r=zn.get(e);r||zn.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new bs),s.map=r,s.key=n),s.track()}}function ft(e,t,n,r,s,o){const i=zn.get(e);if(!i){bn++;return}const l=c=>{c&&c.trigger()};if(gs(),t==="clear")i.forEach(l);else{const c=q(e),u=c&&lr(n);if(c&&n==="length"){const a=Number(r);i.forEach((f,p)=>{(p==="length"||p===En||!yt(p)&&p>=a)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(En)),t){case"add":c?u&&l(i.get("length")):(l(i.get(Dt)),Kt(e)&&l(i.get($r)));break;case"delete":c||(l(i.get(Dt)),Kt(e)&&l(i.get($r)));break;case"set":Kt(e)&&l(i.get(Dt));break}}ys()}function bc(e,t){const n=zn.get(e);return n&&n.get(t)}function Bt(e){const t=Z(e);return t===e?t:(be(t,"iterate",En),je(e)?t:t.map(Ke))}function ur(e){return be(e=Z(e),"iterate",En),e}function wt(e,t){return mt(e)?it(e)?zt(Ke(t)):zt(t):Ke(t)}const Ec={__proto__:null,[Symbol.iterator](){return Tr(this,Symbol.iterator,e=>wt(this,e))},concat(...e){return Bt(this).concat(...e.map(t=>q(t)?Bt(t):t))},entries(){return Tr(this,"entries",e=>(e[1]=wt(this,e[1]),e))},every(e,t){return ct(this,"every",e,t,void 0,arguments)},filter(e,t){return ct(this,"filter",e,t,n=>n.map(r=>wt(this,r)),arguments)},find(e,t){return ct(this,"find",e,t,n=>wt(this,n),arguments)},findIndex(e,t){return ct(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ct(this,"findLast",e,t,n=>wt(this,n),arguments)},findLastIndex(e,t){return ct(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ct(this,"forEach",e,t,void 0,arguments)},includes(...e){return Cr(this,"includes",e)},indexOf(...e){return Cr(this,"indexOf",e)},join(e){return Bt(this).join(e)},lastIndexOf(...e){return Cr(this,"lastIndexOf",e)},map(e,t){return ct(this,"map",e,t,void 0,arguments)},pop(){return nn(this,"pop")},push(...e){return nn(this,"push",e)},reduce(e,...t){return qs(this,"reduce",e,t)},reduceRight(e,...t){return qs(this,"reduceRight",e,t)},shift(){return nn(this,"shift")},some(e,t){return ct(this,"some",e,t,void 0,arguments)},splice(...e){return nn(this,"splice",e)},toReversed(){return Bt(this).toReversed()},toSorted(e){return Bt(this).toSorted(e)},toSpliced(...e){return Bt(this).toSpliced(...e)},unshift(...e){return nn(this,"unshift",e)},values(){return Tr(this,"values",e=>wt(this,e))}};function Tr(e,t,n){const r=ur(e),s=r[t]();return r!==e&&!je(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const wc=Array.prototype;function ct(e,t,n,r,s,o){const i=ur(e),l=i!==e&&!je(e),c=i[t];if(c!==wc[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,wt(e,f),p,e)}:n.length>2&&(u=function(f,p){return n.call(this,f,p,e)}));const a=c.call(i,u,r);return l&&s?s(a):a}function qs(e,t,n,r){const s=ur(e);let o=n;return s!==e&&(je(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,wt(e,l),c,e)}),s[t](o,...r)}function Cr(e,t,n){const r=Z(e);be(r,"iterate",En);const s=r[t](...n);return(s===-1||s===!1)&&fr(n[0])?(n[0]=Z(n[0]),r[t](...n)):s}function nn(e,t,n=[]){ht(),gs();const r=Z(e)[t].apply(e,n);return ys(),pt(),r}const Sc=us("__proto__,__v_isRef,__isVue"),Ri=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(yt));function Rc(e){yt(e)||(e=String(e));const t=Z(this);return be(t,"has",e),t.hasOwnProperty(e)}class Ai{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?Dc:Ti:o?xi:Oi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=q(t);if(!s){let c;if(i&&(c=Ec[n]))return c;if(n==="hasOwnProperty")return Rc}const l=Reflect.get(t,n,ce(t)?t:r);if((yt(n)?Ri.has(n):Sc(n))||(s||be(t,"get",n),o))return l;if(ce(l)){const c=i&&lr(n)?l:l.value;return s&&le(c)?Wr(c):c}return le(l)?s?Wr(l):On(l):l}}class vi extends Ai{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=q(t)&&lr(n);if(!this._isShallow){const u=mt(o);if(!je(r)&&!mt(r)&&(o=Z(o),r=Z(r)),!i&&ce(o)&&!ce(r))return u||(o.value=r),!0}const l=i?Number(n)e,Dn=e=>Reflect.getPrototypeOf(e);function Tc(e,t,n){return function(...r){const s=this.__v_raw,o=Z(s),i=Kt(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=s[e](...r),a=n?Kr:t?zt:Ke;return!t&&be(o,"iterate",c?$r:Dt),{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 Ln(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Cc(e,t){const n={get(s){const o=this.__v_raw,i=Z(o),l=Z(s);e||(vt(s,l)&&be(i,"get",s),be(i,"get",l));const{has:c}=Dn(i),u=t?Kr:e?zt:Ke;if(c.call(i,s))return u(o.get(s));if(c.call(i,l))return u(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&be(Z(s),"iterate",Dt),s.size},has(s){const o=this.__v_raw,i=Z(o),l=Z(s);return e||(vt(s,l)&&be(i,"has",s),be(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,c=Z(l),u=t?Kr:e?zt:Ke;return!e&&be(c,"iterate",Dt),l.forEach((a,f)=>s.call(o,u(a),u(f),i))}};return Se(n,e?{add:Ln("add"),set:Ln("set"),delete:Ln("delete"),clear:Ln("clear")}:{add(s){!t&&!je(s)&&!mt(s)&&(s=Z(s));const o=Z(this);return Dn(o).has.call(o,s)||(o.add(s),ft(o,"add",s,s)),this},set(s,o){!t&&!je(o)&&!mt(o)&&(o=Z(o));const i=Z(this),{has:l,get:c}=Dn(i);let u=l.call(i,s);u||(s=Z(s),u=l.call(i,s));const a=c.call(i,s);return i.set(s,o),u?vt(o,a)&&ft(i,"set",s,o):ft(i,"add",s,o),this},delete(s){const o=Z(this),{has:i,get:l}=Dn(o);let c=i.call(o,s);c||(s=Z(s),c=i.call(o,s)),l&&l.call(o,s);const u=o.delete(s);return c&&ft(o,"delete",s,void 0),u},clear(){const s=Z(this),o=s.size!==0,i=s.clear();return o&&ft(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=Tc(s,e,t)}),n}function Es(e,t){const n=Cc(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(ne(n,s)&&s in r?n:r,s,o)}const Pc={get:Es(!1,!1)},Nc={get:Es(!1,!0)},Ic={get:Es(!0,!1)};const Oi=new WeakMap,xi=new WeakMap,Ti=new WeakMap,Dc=new WeakMap;function Lc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Fc(e){return e.__v_skip||!Object.isExtensible(e)?0:Lc(ic(e))}function On(e){return mt(e)?e:ws(e,!1,vc,Pc,Oi)}function Ci(e){return ws(e,!1,xc,Nc,xi)}function Wr(e){return ws(e,!0,Oc,Ic,Ti)}function ws(e,t,n,r,s){if(!le(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=Fc(e);if(o===0)return e;const i=s.get(e);if(i)return i;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function it(e){return mt(e)?it(e.__v_raw):!!(e&&e.__v_isReactive)}function mt(e){return!!(e&&e.__v_isReadonly)}function je(e){return!!(e&&e.__v_isShallow)}function fr(e){return e?!!e.__v_raw:!1}function Z(e){const t=e&&e.__v_raw;return t?Z(t):e}function Ss(e){return!ne(e,"__v_skip")&&Object.isExtensible(e)&&ci(e,"__v_skip",!0),e}const Ke=e=>le(e)?On(e):e,zt=e=>le(e)?Wr(e):e;function ce(e){return e?e.__v_isRef===!0:!1}function Lt(e){return Pi(e,!1)}function Mc(e){return Pi(e,!0)}function Pi(e,t){return ce(e)?e:new Uc(e,t)}class Uc{constructor(t,n){this.dep=new bs,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:Z(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,r=this.__v_isShallow||je(t)||mt(t);t=r?t:Z(t),vt(t,n)&&(this._rawValue=t,this._value=r?t:Ke(t),this.dep.trigger())}}function Ot(e){return ce(e)?e.value:e}const jc={get:(e,t,n)=>t==="__v_raw"?e:Ot(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return ce(s)&&!ce(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Ni(e){return it(e)?e:new Proxy(e,jc)}function Bc(e){const t=q(e)?new Array(e.length):{};for(const n in e)t[n]=Ii(e,n);return t}class Hc{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._raw=Z(t);let s=!0,o=t;if(!q(t)||!lr(String(n)))do s=!fr(o)||je(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=Ot(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&ce(this._raw[this._key])){const n=this._object[this._key];if(ce(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return bc(this._raw,this._key)}}class kc{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Vc(e,t,n){return ce(e)?e:W(e)?new kc(e):le(e)&&arguments.length>1?Ii(e,t,n):Lt(e)}function Ii(e,t,n){return new Hc(e,t,n)}class qc{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new bs(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=bn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&ie!==this)return yi(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 $c(e,t,n=!1){let r,s;return W(e)?r=e:(r=e.get,s=e.set),new qc(r,s,n)}const Fn={},Jn=new WeakMap;let Pt;function Kc(e,t=!1,n=Pt){if(n){let r=Jn.get(n);r||Jn.set(n,r=[]),r.push(e)}}function Wc(e,t,n=se){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:c}=n,u=P=>s?P:je(P)||s===!1||s===0?dt(P,1):dt(P);let a,f,p,m,g=!1,b=!1;if(ce(e)?(f=()=>e.value,g=je(e)):it(e)?(f=()=>u(e),g=!0):q(e)?(b=!0,g=e.some(P=>it(P)||je(P)),f=()=>e.map(P=>{if(ce(P))return P.value;if(it(P))return u(P);if(W(P))return c?c(P,2):P()})):W(e)?t?f=c?()=>c(e,2):e:f=()=>{if(p){ht();try{p()}finally{pt()}}const P=Pt;Pt=a;try{return c?c(e,3,[m]):e(m)}finally{Pt=P}}:f=ot,t&&s){const P=f,M=s===!0?1/0:s;f=()=>dt(P(),M)}const E=pi(),O=()=>{a.stop(),E&&E.active&&ds(E.effects,a)};if(o&&t){const P=t;t=(...M)=>{P(...M),O()}}let C=b?new Array(e.length).fill(Fn):Fn;const N=P=>{if(!(!(a.flags&1)||!a.dirty&&!P))if(t){const M=a.run();if(s||g||(b?M.some((X,k)=>vt(X,C[k])):vt(M,C))){p&&p();const X=Pt;Pt=a;try{const k=[M,C===Fn?void 0:b&&C[0]===Fn?[]:C,m];C=M,c?c(t,3,k):t(...k)}finally{Pt=X}}}else a.run()};return l&&l(N),a=new mi(f),a.scheduler=i?()=>i(N,!1):N,m=P=>Kc(P,!1,a),p=a.onStop=()=>{const P=Jn.get(a);if(P){if(c)c(P,4);else for(const M of P)M();Jn.delete(a)}},t?r?N(!0):C=a.run():i?i(N.bind(null,!0),!0):a.run(),O.pause=a.pause.bind(a),O.resume=a.resume.bind(a),O.stop=O,O}function dt(e,t=1/0,n){if(t<=0||!le(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,ce(e))dt(e.value,t,n);else if(q(e))for(let r=0;r{dt(r,t,n)});else if(ii(e)){for(const r in e)dt(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&dt(e[r],t,n)}return e}function xn(e,t,n,r){try{return r?e(...r):e()}catch(s){dr(s,t,n)}}function lt(e,t,n,r){if(W(e)){const s=xn(e,t,n,r);return s&&si(s)&&s.catch(o=>{dr(o,t,n)}),s}if(q(e)){const s=[];for(let o=0;o>>1,s=xe[r],o=wn(s);o=wn(n)?xe.push(e):xe.splice(zc(t),0,e),e.flags|=1,Li()}}function Li(){Xn||(Xn=Di.then(Mi))}function Jc(e){q(e)?Wt.push(...e):St&&e.id===-1?St.splice(kt+1,0,e):e.flags&1||(Wt.push(e),e.flags|=1),Li()}function $s(e,t,n=rt+1){for(;nwn(n)-wn(r));if(Wt.length=0,St){St.push(...t);return}for(St=t,kt=0;kte.id==null?e.flags&2?-1:1/0:e.id;function Mi(e){try{for(rt=0;rt{r._d&&tr(-1);const o=Qn(t);let i;try{i=e(...s)}finally{Qn(o),r._d&&tr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function Ah(e,t){if(we===null)return e;const n=gr(we),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&W(t)?t.call(r&&r.proxy):t}}function Qc(){return!!(dl()||Ft)}const Yc=Symbol.for("v-scx"),Zc=()=>ke(Yc);function fn(e,t,n){return ji(e,t,n)}function ji(e,t,n=se){const{immediate:r,deep:s,flush:o,once:i}=n,l=Se({},n),c=t&&r||!t&&o!=="post";let u;if(An){if(o==="sync"){const m=Zc();u=m.__watcherHandles||(m.__watcherHandles=[])}else if(!c){const m=()=>{};return m.stop=ot,m.resume=ot,m.pause=ot,m}}const a=Te;l.call=(m,g,b)=>lt(m,a,g,b);let f=!1;o==="post"?l.scheduler=m=>{ve(m,a&&a.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(m,g)=>{g?m():As(m)}),l.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,a&&(m.id=a.uid,m.i=a))};const p=Wc(e,t,l);return An&&(u?u.push(p):c&&p()),p}function ea(e,t,n){const r=this.proxy,s=de(e)?e.includes(".")?Bi(r,e):()=>r[e]:e.bind(r,r);let o;W(t)?o=t:(o=t.handler,n=t);const i=Tn(this),l=ji(s,o.bind(r),n);return i(),l}function Bi(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,dn=e=>e&&(e.disabled||e.disabled===""),Ks=e=>e&&(e.defer||e.defer===""),Ws=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Gs=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Gr=(e,t)=>{const n=e&&e.to;return de(n)?t?t(n):null:n},ki={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,u){const{mc:a,pc:f,pbc:p,o:{insert:m,querySelector:g,createText:b,createComment:E}}=u,O=dn(t.props);let{shapeFlag:C,children:N,dynamicChildren:P}=t;if(e==null){const M=t.el=b(""),X=t.anchor=b("");m(M,n,r),m(X,n,r);const k=(U,ee)=>{C&16&&a(N,U,ee,s,o,i,l,c)},V=()=>{const U=t.target=Gr(t.props,g),ee=Vi(U,t,b,m);U&&(i!=="svg"&&Ws(U)?i="svg":i!=="mathml"&&Gs(U)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(U),O||(k(U,ee),kn(t,!1)))};O&&(k(n,X),kn(t,!0)),Ks(t.props)?(t.el.__isMounted=!1,ve(()=>{V(),delete t.el.__isMounted},o)):V()}else{if(Ks(t.props)&&e.el.__isMounted===!1){ve(()=>{ki.process(e,t,n,r,s,o,i,l,c,u)},o);return}t.el=e.el,t.targetStart=e.targetStart;const M=t.anchor=e.anchor,X=t.target=e.target,k=t.targetAnchor=e.targetAnchor,V=dn(e.props),U=V?n:X,ee=V?M:k;if(i==="svg"||Ws(X)?i="svg":(i==="mathml"||Gs(X))&&(i="mathml"),P?(p(e.dynamicChildren,P,U,s,o,i,l),Cs(e,t,!0)):c||f(e,t,U,ee,s,o,i,l,!1),O)V?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Mn(t,n,M,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const ue=t.target=Gr(t.props,g);ue&&Mn(t,ue,null,u,0)}else V&&Mn(t,X,k,u,1);kn(t,O)}},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetStart:u,targetAnchor:a,target:f,props:p}=e;if(f&&(s(u),s(a)),o&&s(c),i&16){const m=o||!dn(p);for(let g=0;ghn(g,t&&(q(t)?t[b]:t),n,r,s));return}if(Gt(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&hn(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?gr(r.component):r.el,i=s?null:o,{i:l,r:c}=e,u=t&&t.r,a=l.refs===se?l.refs={}:l.refs,f=l.setupState,p=Z(f),m=f===se?ni:g=>ne(p,g);if(u!=null&&u!==c){if(zs(t),de(u))a[u]=null,m(u)&&(f[u]=null);else if(ce(u)){u.value=null;const g=t;g.k&&(a[g.k]=null)}}if(W(c))xn(c,l,12,[i,a]);else{const g=de(c),b=ce(c);if(g||b){const E=()=>{if(e.f){const O=g?m(c)?f[c]:a[c]:c.value;if(s)q(O)&&ds(O,o);else if(q(O))O.includes(o)||O.push(o);else if(g)a[c]=[o],m(c)&&(f[c]=a[c]);else{const C=[o];c.value=C,e.k&&(a[e.k]=C)}}else g?(a[c]=i,m(c)&&(f[c]=i)):b&&(c.value=i,e.k&&(a[e.k]=i))};if(i){const O=()=>{E(),Yn.delete(e)};O.id=-1,Yn.set(e,O),ve(O,n)}else zs(e),E()}}}function zs(e){const t=Yn.get(e);t&&(t.flags|=8,Yn.delete(e))}ar().requestIdleCallback;ar().cancelIdleCallback;const Gt=e=>!!e.type.__asyncLoader,$i=e=>e.type.__isKeepAlive;function sa(e,t){Ki(e,"a",t)}function oa(e,t){Ki(e,"da",t)}function Ki(e,t,n=Te){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(hr(t,r,n),n){let s=n.parent;for(;s&&s.parent;)$i(s.parent.vnode)&&ia(r,t,n,s),s=s.parent}}function ia(e,t,n,r){const s=hr(t,e,r,!0);Wi(()=>{ds(r[t],s)},n)}function hr(e,t,n=Te,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{ht();const l=Tn(n),c=lt(t,n,e,i);return l(),pt(),c});return r?s.unshift(o):s.push(o),o}}const _t=e=>(t,n=Te)=>{(!An||e==="sp")&&hr(e,(...r)=>t(...r),n)},la=_t("bm"),ca=_t("m"),aa=_t("bu"),ua=_t("u"),fa=_t("bum"),Wi=_t("um"),da=_t("sp"),ha=_t("rtg"),pa=_t("rtc");function ma(e,t=Te){hr("ec",e,t)}const ga=Symbol.for("v-ndc");function Oh(e,t,n,r){let s;const o=n,i=q(e);if(i||de(e)){const l=i&&it(e);let c=!1,u=!1;l&&(c=!je(e),u=mt(e),e=ur(e)),s=new Array(e.length);for(let a=0,f=e.length;at(l,c,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let c=0,u=l.length;c0;return er(),nr(Fe,null,[Ce("slot",n,r)],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),er();const i=o&&Gi(o(n)),l=n.key||i&&i.key,c=nr(Fe,{key:(l&&!yt(l)?l:`_${t}`)+(!i&&r?"_fb":"")},i||[],i&&e._===1?64:-2);return c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),o&&o._c&&(o._d=!0),c}function Gi(e){return e.some(t=>Rn(t)?!(t.type===gt||t.type===Fe&&!Gi(t.children)):!0)?e:null}const zr=e=>e?hl(e)?gr(e):zr(e.parent):null,pn=Se(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=>zr(e.parent),$root:e=>zr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ji(e),$forceUpdate:e=>e.f||(e.f=()=>{As(e.update)}),$nextTick:e=>e.n||(e.n=Rs.bind(e.proxy)),$watch:e=>ea.bind(e)}),Pr=(e,t)=>e!==se&&!e.__isScriptSetup&&ne(e,t),ya={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,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 r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(Pr(r,t))return i[t]=1,r[t];if(s!==se&&ne(s,t))return i[t]=2,s[t];if(ne(o,t))return i[t]=3,o[t];if(n!==se&&ne(n,t))return i[t]=4,n[t];Jr&&(i[t]=0)}}const u=pn[t];let a,f;if(u)return t==="$attrs"&&be(e.attrs,"get",""),u(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==se&&ne(n,t))return i[t]=4,n[t];if(f=c.config.globalProperties,ne(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return Pr(s,t)?(s[t]=n,!0):r!==se&&ne(r,t)?(r[t]=n,!0):ne(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:o,type:i}},l){let c;return!!(n[l]||e!==se&&l[0]!=="$"&&ne(e,l)||Pr(t,l)||ne(o,l)||ne(r,l)||ne(pn,l)||ne(s.config.globalProperties,l)||(c=i.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ne(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Js(e){return q(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Jr=!0;function _a(e){const t=Ji(e),n=e.proxy,r=e.ctx;Jr=!1,t.beforeCreate&&Xs(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:u,created:a,beforeMount:f,mounted:p,beforeUpdate:m,updated:g,activated:b,deactivated:E,beforeDestroy:O,beforeUnmount:C,destroyed:N,unmounted:P,render:M,renderTracked:X,renderTriggered:k,errorCaptured:V,serverPrefetch:U,expose:ee,inheritAttrs:ue,components:ye,directives:pe,filters:Re}=t;if(u&&ba(u,r,null),i)for(const K in i){const z=i[K];W(z)&&(r[K]=z.bind(n))}if(s){const K=s.call(n,n);le(K)&&(e.data=On(K))}if(Jr=!0,o)for(const K in o){const z=o[K],Be=W(z)?z.bind(n,n):W(z.get)?z.get.bind(n,n):ot,ze=!W(z)&&W(z.set)?z.set.bind(n):ot,me=Me({get:Be,set:ze});Object.defineProperty(r,K,{enumerable:!0,configurable:!0,get:()=>me.value,set:fe=>me.value=fe})}if(l)for(const K in l)zi(l[K],r,n,K);if(c){const K=W(c)?c.call(n):c;Reflect.ownKeys(K).forEach(z=>{Hn(z,K[z])})}a&&Xs(a,e,"c");function J(K,z){q(z)?z.forEach(Be=>K(Be.bind(n))):z&&K(z.bind(n))}if(J(la,f),J(ca,p),J(aa,m),J(ua,g),J(sa,b),J(oa,E),J(ma,V),J(pa,X),J(ha,k),J(fa,C),J(Wi,P),J(da,U),q(ee))if(ee.length){const K=e.exposed||(e.exposed={});ee.forEach(z=>{Object.defineProperty(K,z,{get:()=>n[z],set:Be=>n[z]=Be,enumerable:!0})})}else e.exposed||(e.exposed={});M&&e.render===ot&&(e.render=M),ue!=null&&(e.inheritAttrs=ue),ye&&(e.components=ye),pe&&(e.directives=pe),U&&qi(e)}function ba(e,t,n=ot){q(e)&&(e=Xr(e));for(const r in e){const s=e[r];let o;le(s)?"default"in s?o=ke(s.from||r,s.default,!0):o=ke(s.from||r):o=ke(s),ce(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function Xs(e,t,n){lt(q(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function zi(e,t,n,r){let s=r.includes(".")?Bi(n,r):()=>n[r];if(de(e)){const o=t[e];W(o)&&fn(s,o)}else if(W(e))fn(s,e.bind(n));else if(le(e))if(q(e))e.forEach(o=>zi(o,t,n,r));else{const o=W(e.handler)?e.handler.bind(n):t[e.handler];W(o)&&fn(s,o,e)}}function Ji(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>Zn(c,u,i,!0)),Zn(c,t,i)),le(t)&&o.set(t,c),c}function Zn(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&Zn(e,o,n,!0),s&&s.forEach(i=>Zn(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Ea[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Ea={data:Qs,props:Ys,emits:Ys,methods:ln,computed:ln,beforeCreate:Ae,created:Ae,beforeMount:Ae,mounted:Ae,beforeUpdate:Ae,updated:Ae,beforeDestroy:Ae,beforeUnmount:Ae,destroyed:Ae,unmounted:Ae,activated:Ae,deactivated:Ae,errorCaptured:Ae,serverPrefetch:Ae,components:ln,directives:ln,watch:Sa,provide:Qs,inject:wa};function Qs(e,t){return t?e?function(){return Se(W(e)?e.call(this,this):e,W(t)?t.call(this,this):t)}:t:e}function wa(e,t){return ln(Xr(e),Xr(t))}function Xr(e){if(q(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${xt(t)}Modifiers`]||e[`${jt(t)}Modifiers`];function Oa(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||se;let s=n;const o=t.startsWith("update:"),i=o&&va(r,t.slice(7));i&&(i.trim&&(s=n.map(a=>de(a)?a.trim():a)),i.number&&(s=n.map(hs)));let l,c=r[l=vr(t)]||r[l=vr(xt(t))];!c&&o&&(c=r[l=vr(jt(t))]),c&<(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,lt(u,e,6,s)}}const xa=new WeakMap;function Qi(e,t,n=!1){const r=n?xa:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!W(e)){const c=u=>{const a=Qi(u,t,!0);a&&(l=!0,Se(i,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(le(e)&&r.set(e,null),null):(q(o)?o.forEach(c=>i[c]=null):Se(i,o),le(e)&&r.set(e,i),i)}function pr(e,t){return!e||!or(t)?!1:(t=t.slice(2).replace(/Once$/,""),ne(e,t[0].toLowerCase()+t.slice(1))||ne(e,jt(t))||ne(e,t))}function Zs(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:a,props:f,data:p,setupState:m,ctx:g,inheritAttrs:b}=e,E=Qn(e);let O,C;try{if(n.shapeFlag&4){const P=s||r,M=P;O=st(u.call(M,P,a,f,m,p,g)),C=l}else{const P=t;O=st(P.length>1?P(f,{attrs:l,slots:i,emit:c}):P(f,null)),C=t.props?l:Ta(l)}}catch(P){mn.length=0,dr(P,e,1),O=Ce(gt)}let N=O;if(C&&b!==!1){const P=Object.keys(C),{shapeFlag:M}=N;P.length&&M&7&&(o&&P.some(fs)&&(C=Ca(C,o)),N=Jt(N,C,!1,!0))}return n.dirs&&(N=Jt(N,null,!1,!0),N.dirs=N.dirs?N.dirs.concat(n.dirs):n.dirs),n.transition&&vs(N,n.transition),O=N,Qn(E),O}const Ta=e=>{let t;for(const n in e)(n==="class"||n==="style"||or(n))&&((t||(t={}))[n]=e[n]);return t},Ca=(e,t)=>{const n={};for(const r in e)(!fs(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Pa(e,t,n){const{props:r,children:s,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 r?eo(r,i,u):!!i;if(c&8){const a=t.dynamicProps;for(let f=0;fObject.create(Yi),el=e=>Object.getPrototypeOf(e)===Yi;function Ia(e,t,n,r=!1){const s={},o=Zi();e.propsDefaults=Object.create(null),tl(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:Ci(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function Da(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=Z(s),[c]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const a=e.vnode.dynamicProps;for(let f=0;f{c=!0;const[p,m]=nl(f,t,!0);Se(i,p),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!c)return le(e)&&r.set(e,$t),$t;if(q(o))for(let a=0;ae==="_"||e==="_ctx"||e==="$stable",Ts=e=>q(e)?e.map(st):[st(e)],Fa=(e,t,n)=>{if(t._n)return t;const r=Xc((...s)=>Ts(t(...s)),n);return r._c=!1,r},rl=(e,t,n)=>{const r=e._ctx;for(const s in e){if(xs(s))continue;const o=e[s];if(W(o))t[s]=Fa(s,o,r);else if(o!=null){const i=Ts(o);t[s]=()=>i}}},sl=(e,t)=>{const n=Ts(t);e.slots.default=()=>n},ol=(e,t,n)=>{for(const r in t)(n||!xs(r))&&(e[r]=t[r])},Ma=(e,t,n)=>{const r=e.slots=Zi();if(e.vnode.shapeFlag&32){const s=t._;s?(ol(r,t,n),n&&ci(r,"_",s,!0)):rl(t,r)}else t&&sl(e,t)},Ua=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=se;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:ol(s,t,n):(o=!t.$stable,rl(t,s)),i=t}else t&&(sl(e,t),i={default:1});if(o)for(const l in s)!xs(l)&&i[l]==null&&delete s[l]},ve=Va;function ja(e){return Ba(e)}function Ba(e,t){const n=ar();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:a,parentNode:f,nextSibling:p,setScopeId:m=ot,insertStaticContent:g}=e,b=(d,h,y,w=null,A=null,S=null,I=void 0,T=null,x=!!h.dynamicChildren)=>{if(d===h)return;d&&!rn(d,h)&&(w=R(d),fe(d,A,S,!0),d=null),h.patchFlag===-2&&(x=!1,h.dynamicChildren=null);const{type:v,ref:H,shapeFlag:L}=h;switch(v){case mr:E(d,h,y,w);break;case gt:O(d,h,y,w);break;case Vn:d==null&&C(h,y,w,I);break;case Fe:ye(d,h,y,w,A,S,I,T,x);break;default:L&1?M(d,h,y,w,A,S,I,T,x):L&6?pe(d,h,y,w,A,S,I,T,x):(L&64||L&128)&&v.process(d,h,y,w,A,S,I,T,x,j)}H!=null&&A?hn(H,d&&d.ref,S,h||d,!h):H==null&&d&&d.ref!=null&&hn(d.ref,null,S,d,!0)},E=(d,h,y,w)=>{if(d==null)r(h.el=l(h.children),y,w);else{const A=h.el=d.el;h.children!==d.children&&u(A,h.children)}},O=(d,h,y,w)=>{d==null?r(h.el=c(h.children||""),y,w):h.el=d.el},C=(d,h,y,w)=>{[d.el,d.anchor]=g(d.children,h,y,w,d.el,d.anchor)},N=({el:d,anchor:h},y,w)=>{let A;for(;d&&d!==h;)A=p(d),r(d,y,w),d=A;r(h,y,w)},P=({el:d,anchor:h})=>{let y;for(;d&&d!==h;)y=p(d),s(d),d=y;s(h)},M=(d,h,y,w,A,S,I,T,x)=>{if(h.type==="svg"?I="svg":h.type==="math"&&(I="mathml"),d==null)X(h,y,w,A,S,I,T,x);else{const v=d.el&&d.el._isVueCE?d.el:null;try{v&&v._beginPatch(),U(d,h,A,S,I,T,x)}finally{v&&v._endPatch()}}},X=(d,h,y,w,A,S,I,T)=>{let x,v;const{props:H,shapeFlag:L,transition:B,dirs:$}=d;if(x=d.el=i(d.type,S,H&&H.is,H),L&8?a(x,d.children):L&16&&V(d.children,x,null,w,A,Nr(d,S),I,T),$&&Tt(d,null,w,"created"),k(x,d,d.scopeId,I,w),H){for(const oe in H)oe!=="value"&&!cn(oe)&&o(x,oe,null,H[oe],S,w);"value"in H&&o(x,"value",null,H.value,S),(v=H.onVnodeBeforeMount)&&et(v,w,d)}$&&Tt(d,null,w,"beforeMount");const Y=Ha(A,B);Y&&B.beforeEnter(x),r(x,h,y),((v=H&&H.onVnodeMounted)||Y||$)&&ve(()=>{v&&et(v,w,d),Y&&B.enter(x),$&&Tt(d,null,w,"mounted")},A)},k=(d,h,y,w,A)=>{if(y&&m(d,y),w)for(let S=0;S{for(let v=x;v{const T=h.el=d.el;let{patchFlag:x,dynamicChildren:v,dirs:H}=h;x|=d.patchFlag&16;const L=d.props||se,B=h.props||se;let $;if(y&&Ct(y,!1),($=B.onVnodeBeforeUpdate)&&et($,y,h,d),H&&Tt(h,d,y,"beforeUpdate"),y&&Ct(y,!0),(L.innerHTML&&B.innerHTML==null||L.textContent&&B.textContent==null)&&a(T,""),v?ee(d.dynamicChildren,v,T,y,w,Nr(h,A),S):I||z(d,h,T,null,y,w,Nr(h,A),S,!1),x>0){if(x&16)ue(T,L,B,y,A);else if(x&2&&L.class!==B.class&&o(T,"class",null,B.class,A),x&4&&o(T,"style",L.style,B.style,A),x&8){const Y=h.dynamicProps;for(let oe=0;oe{$&&et($,y,h,d),H&&Tt(h,d,y,"updated")},w)},ee=(d,h,y,w,A,S,I)=>{for(let T=0;T{if(h!==y){if(h!==se)for(const S in h)!cn(S)&&!(S in y)&&o(d,S,h[S],null,A,w);for(const S in y){if(cn(S))continue;const I=y[S],T=h[S];I!==T&&S!=="value"&&o(d,S,T,I,A,w)}"value"in y&&o(d,"value",h.value,y.value,A)}},ye=(d,h,y,w,A,S,I,T,x)=>{const v=h.el=d?d.el:l(""),H=h.anchor=d?d.anchor:l("");let{patchFlag:L,dynamicChildren:B,slotScopeIds:$}=h;$&&(T=T?T.concat($):$),d==null?(r(v,y,w),r(H,y,w),V(h.children||[],y,H,A,S,I,T,x)):L>0&&L&64&&B&&d.dynamicChildren&&d.dynamicChildren.length===B.length?(ee(d.dynamicChildren,B,y,A,S,I,T),(h.key!=null||A&&h===A.subTree)&&Cs(d,h,!0)):z(d,h,y,H,A,S,I,T,x)},pe=(d,h,y,w,A,S,I,T,x)=>{h.slotScopeIds=T,d==null?h.shapeFlag&512?A.ctx.activate(h,y,w,I,x):Re(h,y,w,A,S,I,x):Ve(d,h,x)},Re=(d,h,y,w,A,S,I)=>{const T=d.component=Xa(d,w,A);if($i(d)&&(T.ctx.renderer=j),Qa(T,!1,I),T.asyncDep){if(A&&A.registerDep(T,J,I),!d.el){const x=T.subTree=Ce(gt);O(null,x,h,y),d.placeholder=x.el}}else J(T,d,h,y,A,S,I)},Ve=(d,h,y)=>{const w=h.component=d.component;if(Pa(d,h,y))if(w.asyncDep&&!w.asyncResolved){K(w,h,y);return}else w.next=h,w.update();else h.el=d.el,w.vnode=h},J=(d,h,y,w,A,S,I)=>{const T=()=>{if(d.isMounted){let{next:L,bu:B,u:$,parent:Y,vnode:oe}=d;{const Ye=il(d);if(Ye){L&&(L.el=oe.el,K(d,L,I)),Ye.asyncDep.then(()=>{d.isUnmounted||T()});return}}let re=L,Pe;Ct(d,!1),L?(L.el=oe.el,K(d,L,I)):L=oe,B&&Bn(B),(Pe=L.props&&L.props.onVnodeBeforeUpdate)&&et(Pe,Y,L,oe),Ct(d,!0);const Ne=Zs(d),Qe=d.subTree;d.subTree=Ne,b(Qe,Ne,f(Qe.el),R(Qe),d,A,S),L.el=Ne.el,re===null&&Na(d,Ne.el),$&&ve($,A),(Pe=L.props&&L.props.onVnodeUpdated)&&ve(()=>et(Pe,Y,L,oe),A)}else{let L;const{el:B,props:$}=h,{bm:Y,m:oe,parent:re,root:Pe,type:Ne}=d,Qe=Gt(h);Ct(d,!1),Y&&Bn(Y),!Qe&&(L=$&&$.onVnodeBeforeMount)&&et(L,re,h),Ct(d,!0);{Pe.ce&&Pe.ce._def.shadowRoot!==!1&&Pe.ce._injectChildStyle(Ne);const Ye=d.subTree=Zs(d);b(null,Ye,y,w,d,A,S),h.el=Ye.el}if(oe&&ve(oe,A),!Qe&&(L=$&&$.onVnodeMounted)){const Ye=h;ve(()=>et(L,re,Ye),A)}(h.shapeFlag&256||re&&Gt(re.vnode)&&re.vnode.shapeFlag&256)&&d.a&&ve(d.a,A),d.isMounted=!0,h=y=w=null}};d.scope.on();const x=d.effect=new mi(T);d.scope.off();const v=d.update=x.run.bind(x),H=d.job=x.runIfDirty.bind(x);H.i=d,H.id=d.uid,x.scheduler=()=>As(H),Ct(d,!0),v()},K=(d,h,y)=>{h.component=d;const w=d.vnode.props;d.vnode=h,d.next=null,Da(d,h.props,w,y),Ua(d,h.children,y),ht(),$s(d),pt()},z=(d,h,y,w,A,S,I,T,x=!1)=>{const v=d&&d.children,H=d?d.shapeFlag:0,L=h.children,{patchFlag:B,shapeFlag:$}=h;if(B>0){if(B&128){ze(v,L,y,w,A,S,I,T,x);return}else if(B&256){Be(v,L,y,w,A,S,I,T,x);return}}$&8?(H&16&&He(v,A,S),L!==v&&a(y,L)):H&16?$&16?ze(v,L,y,w,A,S,I,T,x):He(v,A,S,!0):(H&8&&a(y,""),$&16&&V(L,y,w,A,S,I,T,x))},Be=(d,h,y,w,A,S,I,T,x)=>{d=d||$t,h=h||$t;const v=d.length,H=h.length,L=Math.min(v,H);let B;for(B=0;BH?He(d,A,S,!0,!1,L):V(h,y,w,A,S,I,T,x,L)},ze=(d,h,y,w,A,S,I,T,x)=>{let v=0;const H=h.length;let L=d.length-1,B=H-1;for(;v<=L&&v<=B;){const $=d[v],Y=h[v]=x?Rt(h[v]):st(h[v]);if(rn($,Y))b($,Y,y,null,A,S,I,T,x);else break;v++}for(;v<=L&&v<=B;){const $=d[L],Y=h[B]=x?Rt(h[B]):st(h[B]);if(rn($,Y))b($,Y,y,null,A,S,I,T,x);else break;L--,B--}if(v>L){if(v<=B){const $=B+1,Y=$B)for(;v<=L;)fe(d[v],A,S,!0),v++;else{const $=v,Y=v,oe=new Map;for(v=Y;v<=B;v++){const Le=h[v]=x?Rt(h[v]):st(h[v]);Le.key!=null&&oe.set(Le.key,v)}let re,Pe=0;const Ne=B-Y+1;let Qe=!1,Ye=0;const tn=new Array(Ne);for(v=0;v=Ne){fe(Le,A,S,!0);continue}let Ze;if(Le.key!=null)Ze=oe.get(Le.key);else for(re=Y;re<=B;re++)if(tn[re-Y]===0&&rn(Le,h[re])){Ze=re;break}Ze===void 0?fe(Le,A,S,!0):(tn[Ze-Y]=v+1,Ze>=Ye?Ye=Ze:Qe=!0,b(Le,h[Ze],y,null,A,S,I,T,x),Pe++)}const js=Qe?ka(tn):$t;for(re=js.length-1,v=Ne-1;v>=0;v--){const Le=Y+v,Ze=h[Le],Bs=h[Le+1],Hs=Le+1{const{el:S,type:I,transition:T,children:x,shapeFlag:v}=d;if(v&6){me(d.component.subTree,h,y,w);return}if(v&128){d.suspense.move(h,y,w);return}if(v&64){I.move(d,h,y,j);return}if(I===Fe){r(S,h,y);for(let L=0;LT.enter(S),A);else{const{leave:L,delayLeave:B,afterLeave:$}=T,Y=()=>{d.ctx.isUnmounted?s(S):r(S,h,y)},oe=()=>{S._isLeaving&&S[ra](!0),L(S,()=>{Y(),$&&$()})};B?B(S,Y,oe):oe()}else r(S,h,y)},fe=(d,h,y,w=!1,A=!1)=>{const{type:S,props:I,ref:T,children:x,dynamicChildren:v,shapeFlag:H,patchFlag:L,dirs:B,cacheIndex:$}=d;if(L===-2&&(A=!1),T!=null&&(ht(),hn(T,null,y,d,!0),pt()),$!=null&&(h.renderCache[$]=void 0),H&256){h.ctx.deactivate(d);return}const Y=H&1&&B,oe=!Gt(d);let re;if(oe&&(re=I&&I.onVnodeBeforeUnmount)&&et(re,h,d),H&6)Xe(d.component,y,w);else{if(H&128){d.suspense.unmount(y,w);return}Y&&Tt(d,null,h,"beforeUnmount"),H&64?d.type.remove(d,h,y,j,w):v&&!v.hasOnce&&(S!==Fe||L>0&&L&64)?He(v,h,y,!1,!0):(S===Fe&&L&384||!A&&H&16)&&He(x,h,y),w&&Je(d)}(oe&&(re=I&&I.onVnodeUnmounted)||Y)&&ve(()=>{re&&et(re,h,d),Y&&Tt(d,null,h,"unmounted")},y)},Je=d=>{const{type:h,el:y,anchor:w,transition:A}=d;if(h===Fe){qe(y,w);return}if(h===Vn){P(d);return}const S=()=>{s(y),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(d.shapeFlag&1&&A&&!A.persisted){const{leave:I,delayLeave:T}=A,x=()=>I(y,S);T?T(d.el,S,x):x()}else S()},qe=(d,h)=>{let y;for(;d!==h;)y=p(d),s(d),d=y;s(h)},Xe=(d,h,y)=>{const{bum:w,scope:A,job:S,subTree:I,um:T,m:x,a:v}=d;no(x),no(v),w&&Bn(w),A.stop(),S&&(S.flags|=8,fe(I,d,h,y)),T&&ve(T,h),ve(()=>{d.isUnmounted=!0},h)},He=(d,h,y,w=!1,A=!1,S=0)=>{for(let I=S;I{if(d.shapeFlag&6)return R(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const h=p(d.anchor||d.el),y=h&&h[Hi];return y?p(y):h};let F=!1;const D=(d,h,y)=>{let w;d==null?h._vnode&&(fe(h._vnode,null,null,!0),w=h._vnode.component):b(h._vnode||null,d,h,null,null,null,y),h._vnode=d,F||(F=!0,$s(w),Fi(),F=!1)},j={p:b,um:fe,m:me,r:Je,mt:Re,mc:V,pc:z,pbc:ee,n:R,o:e};return{render:D,hydrate:void 0,createApp:Aa(D)}}function Nr({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 Ct({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Ha(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Cs(e,t,n=!1){const r=e.children,s=t.children;if(q(r)&&q(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function il(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:il(t)}function no(e){if(e)for(let t=0;te.__isSuspense;function Va(e,t){t&&t.pendingBranch?q(e)?t.effects.push(...e):t.effects.push(e):Jc(e)}const Fe=Symbol.for("v-fgt"),mr=Symbol.for("v-txt"),gt=Symbol.for("v-cmt"),Vn=Symbol.for("v-stc"),mn=[];let Ue=null;function er(e=!1){mn.push(Ue=e?null:[])}function qa(){mn.pop(),Ue=mn[mn.length-1]||null}let Sn=1;function tr(e,t=!1){Sn+=e,e<0&&Ue&&t&&(Ue.hasOnce=!0)}function al(e){return e.dynamicChildren=Sn>0?Ue||$t:null,qa(),Sn>0&&Ue&&Ue.push(e),e}function Th(e,t,n,r,s,o){return al(fl(e,t,n,r,s,o,!0))}function nr(e,t,n,r,s){return al(Ce(e,t,n,r,s,!0))}function Rn(e){return e?e.__v_isVNode===!0:!1}function rn(e,t){return e.type===t.type&&e.key===t.key}const ul=({key:e})=>e??null,qn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?de(e)||ce(e)||W(e)?{i:we,r:e,k:t,f:!!n}:e:null);function fl(e,t=null,n=null,r=0,s=null,o=e===Fe?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ul(t),ref:t&&qn(t),scopeId:Ui,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:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:we};return l?(Ps(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=de(n)?8:16),Sn>0&&!i&&Ue&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Ue.push(c),c}const Ce=$a;function $a(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===ga)&&(e=gt),Rn(e)){const l=Jt(e,t,!0);return n&&Ps(l,n),Sn>0&&!o&&Ue&&(l.shapeFlag&6?Ue[Ue.indexOf(e)]=l:Ue.push(l)),l.patchFlag=-2,l}if(tu(e)&&(e=e.__vccOpts),t){t=Ka(t);let{class:l,style:c}=t;l&&!de(l)&&(t.class=ms(l)),le(c)&&(fr(c)&&!q(c)&&(c=Se({},c)),t.style=ps(c))}const i=de(e)?1:cl(e)?128:ta(e)?64:le(e)?4:W(e)?2:0;return fl(e,t,n,r,s,i,o,!0)}function Ka(e){return e?fr(e)||el(e)?Se({},e):e:null}function Jt(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?Ga(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&ul(u),ref:t&&t.ref?n&&o?q(o)?o.concat(qn(t)):[o,qn(t)]:qn(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!==Fe?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&&Jt(e.ssContent),ssFallback:e.ssFallback&&Jt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&vs(a,c.clone(a)),a}function Wa(e=" ",t=0){return Ce(mr,null,e,t)}function Ch(e,t){const n=Ce(Vn,null,e);return n.staticCount=t,n}function Ph(e="",t=!1){return t?(er(),nr(gt,null,e)):Ce(gt,null,e)}function st(e){return e==null||typeof e=="boolean"?Ce(gt):q(e)?Ce(Fe,null,e.slice()):Rn(e)?Rt(e):Ce(mr,null,String(e))}function Rt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Jt(e)}function Ps(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(q(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Ps(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!el(t)?t._ctx=we:s===3&&we&&(we.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else W(t)?(t={default:t,_ctx:we},n=32):(t=String(t),r&64?(n=16,t=[Wa(t)]):n=8);e.children=t,e.shapeFlag|=n}function Ga(...e){const t={};for(let n=0;nTe||we;let rr,Yr;{const e=ar(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};rr=t("__VUE_INSTANCE_SETTERS__",n=>Te=n),Yr=t("__VUE_SSR_SETTERS__",n=>An=n)}const Tn=e=>{const t=Te;return rr(e),e.scope.on(),()=>{e.scope.off(),rr(t)}},ro=()=>{Te&&Te.scope.off(),rr(null)};function hl(e){return e.vnode.shapeFlag&4}let An=!1;function Qa(e,t=!1,n=!1){t&&Yr(t);const{props:r,children:s}=e.vnode,o=hl(e);Ia(e,r,o,t),Ma(e,s,n||t);const i=o?Ya(e,t):void 0;return t&&Yr(!1),i}function Ya(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,ya);const{setup:r}=n;if(r){ht();const s=e.setupContext=r.length>1?eu(e):null,o=Tn(e),i=xn(r,e,0,[e.props,s]),l=si(i);if(pt(),o(),(l||e.sp)&&!Gt(e)&&qi(e),l){if(i.then(ro,ro),t)return i.then(c=>{so(e,c)}).catch(c=>{dr(c,e,0)});e.asyncDep=i}else so(e,i)}else pl(e)}function so(e,t,n){W(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:le(t)&&(e.setupState=Ni(t)),pl(e)}function pl(e,t,n){const r=e.type;e.render||(e.render=r.render||ot);{const s=Tn(e);ht();try{_a(e)}finally{pt(),s()}}}const Za={get(e,t){return be(e,"get",""),e[t]}};function eu(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Za),slots:e.slots,emit:e.emit,expose:t}}function gr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ni(Ss(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in pn)return pn[n](e)},has(t,n){return n in t||n in pn}})):e.proxy}function tu(e){return W(e)&&"__vccOpts"in e}const Me=(e,t)=>$c(e,t,An);function ml(e,t,n){try{tr(-1);const r=arguments.length;return r===2?le(t)&&!q(t)?Rn(t)?Ce(e,null,[t]):Ce(e,t):Ce(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Rn(n)&&(n=[n]),Ce(e,t,n))}finally{tr(1)}}const nu="3.5.26";let Zr;const oo=typeof window<"u"&&window.trustedTypes;if(oo)try{Zr=oo.createPolicy("vue",{createHTML:e=>e})}catch{}const gl=Zr?e=>Zr.createHTML(e):e=>e,ru="http://www.w3.org/2000/svg",su="http://www.w3.org/1998/Math/MathML",ut=typeof document<"u"?document:null,io=ut&&ut.createElement("template"),ou={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?ut.createElementNS(ru,e):t==="mathml"?ut.createElementNS(su,e):n?ut.createElement(e,{is:n}):ut.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>ut.createTextNode(e),createComment:e=>ut.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ut.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{io.innerHTML=gl(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=io.content;if(r==="svg"||r==="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]}},iu=Symbol("_vtc");function lu(e,t,n){const r=e[iu];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const lo=Symbol("_vod"),cu=Symbol("_vsh"),au=Symbol(""),uu=/(?:^|;)\s*display\s*:/;function fu(e,t,n){const r=e.style,s=de(n);let o=!1;if(n&&!s){if(t)if(de(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&$n(r,l,"")}else for(const i in t)n[i]==null&&$n(r,i,"");for(const i in n)i==="display"&&(o=!0),$n(r,i,n[i])}else if(s){if(t!==n){const i=r[au];i&&(n+=";"+i),r.cssText=n,o=uu.test(n)}}else t&&e.removeAttribute("style");lo in e&&(e[lo]=o?r.display:"",e[cu]&&(r.display="none"))}const co=/\s*!important$/;function $n(e,t,n){if(q(n))n.forEach(r=>$n(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=du(e,t);co.test(n)?e.setProperty(jt(r),n.replace(co,""),"important"):e[r]=n}}const ao=["Webkit","Moz","ms"],Ir={};function du(e,t){const n=Ir[t];if(n)return n;let r=xt(t);if(r!=="filter"&&r in e)return Ir[t]=r;r=li(r);for(let s=0;sDr||(gu.then(()=>Dr=0),Dr=Date.now());function _u(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;lt(bu(r,n.value),t,5,[r])};return n.value=e,n.attached=yu(),n}function bu(e,t){if(q(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const go=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Eu=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?lu(e,r,i):t==="style"?fu(e,n,r):or(t)?fs(t)||pu(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):wu(e,t,r,i))?(ho(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&fo(e,t,r,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!de(r))?ho(e,xt(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),fo(e,t,r,i))};function wu(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&go(t)&&W(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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return go(t)&&de(n)?!1:t in e}const yo=e=>{const t=e.props["onUpdate:modelValue"]||!1;return q(t)?n=>Bn(t,n):t};function Su(e){e.target.composing=!0}function _o(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Lr=Symbol("_assign");function bo(e,t,n){return t&&(e=e.trim()),n&&(e=hs(e)),e}const Nh={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Lr]=yo(s);const o=r||s.props&&s.props.type==="number";Vt(e,t?"change":"input",i=>{i.target.composing||e[Lr](bo(e.value,n,o))}),(n||o)&&Vt(e,"change",()=>{e.value=bo(e.value,n,o)}),t||(Vt(e,"compositionstart",Su),Vt(e,"compositionend",_o),Vt(e,"change",_o))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Lr]=yo(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?hs(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},Ru=["ctrl","shift","alt","meta"],Au={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Ru.some(n=>e[`${n}Key`]&&!t.includes(n))},Ih=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const t=Ou().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Cu(r);if(!s)return;const o=t._component;!W(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,Tu(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t});function Tu(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Cu(e){return de(e)?document.querySelector(e):e}let yl;const yr=e=>yl=e,_l=Symbol();function es(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var gn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(gn||(gn={}));function Pu(){const e=hi(!0),t=e.run(()=>Lt({}));let n=[],r=[];const s=Ss({install(o){yr(s),s._a=o,o.provide(_l,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const bl=()=>{};function wo(e,t,n,r=bl){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&pi()&&gc(s),s}function Ht(e,...t){e.forEach(n=>{n(...t)})}const Nu=e=>e(),So=Symbol(),Fr=Symbol();function ts(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];es(s)&&es(r)&&e.hasOwnProperty(n)&&!ce(r)&&!it(r)?e[n]=ts(s,r):e[n]=r}return e}const Iu=Symbol();function Du(e){return!es(e)||!Object.prototype.hasOwnProperty.call(e,Iu)}const{assign:Et}=Object;function Lu(e){return!!(ce(e)&&e.effect)}function Fu(e,t,n,r){const{state:s,actions:o,getters:i}=t,l=n.state.value[e];let c;function u(){l||(n.state.value[e]=s?s():{});const a=Bc(n.state.value[e]);return Et(a,o,Object.keys(i||{}).reduce((f,p)=>(f[p]=Ss(Me(()=>{yr(n);const m=n._s.get(e);return i[p].call(m,m)})),f),{}))}return c=El(e,u,t,n,r,!0),c}function El(e,t,n={},r,s,o){let i;const l=Et({actions:{}},n),c={deep:!0};let u,a,f=new Set,p=new Set,m;const g=r.state.value[e];!o&&!g&&(r.state.value[e]={}),Lt({});let b;function E(V){let U;u=a=!1,typeof V=="function"?(V(r.state.value[e]),U={type:gn.patchFunction,storeId:e,events:m}):(ts(r.state.value[e],V),U={type:gn.patchObject,payload:V,storeId:e,events:m});const ee=b=Symbol();Rs().then(()=>{b===ee&&(u=!0)}),a=!0,Ht(f,U,r.state.value[e])}const O=o?function(){const{state:U}=n,ee=U?U():{};this.$patch(ue=>{Et(ue,ee)})}:bl;function C(){i.stop(),f.clear(),p.clear(),r._s.delete(e)}const N=(V,U="")=>{if(So in V)return V[Fr]=U,V;const ee=function(){yr(r);const ue=Array.from(arguments),ye=new Set,pe=new Set;function Re(K){ye.add(K)}function Ve(K){pe.add(K)}Ht(p,{args:ue,name:ee[Fr],store:M,after:Re,onError:Ve});let J;try{J=V.apply(this&&this.$id===e?this:M,ue)}catch(K){throw Ht(pe,K),K}return J instanceof Promise?J.then(K=>(Ht(ye,K),K)).catch(K=>(Ht(pe,K),Promise.reject(K))):(Ht(ye,J),J)};return ee[So]=!0,ee[Fr]=U,ee},P={_p:r,$id:e,$onAction:wo.bind(null,p),$patch:E,$reset:O,$subscribe(V,U={}){const ee=wo(f,V,U.detached,()=>ue()),ue=i.run(()=>fn(()=>r.state.value[e],ye=>{(U.flush==="sync"?a:u)&&V({storeId:e,type:gn.direct,events:m},ye)},Et({},c,U)));return ee},$dispose:C},M=On(P);r._s.set(e,M);const k=(r._a&&r._a.runWithContext||Nu)(()=>r._e.run(()=>(i=hi()).run(()=>t({action:N}))));for(const V in k){const U=k[V];if(ce(U)&&!Lu(U)||it(U))o||(g&&Du(U)&&(ce(U)?U.value=g[V]:ts(U,g[V])),r.state.value[e][V]=U);else if(typeof U=="function"){const ee=N(U,V);k[V]=ee,l.actions[V]=U}}return Et(M,k),Et(Z(M),k),Object.defineProperty(M,"$state",{get:()=>r.state.value[e],set:V=>{E(U=>{Et(U,V)})}}),r._p.forEach(V=>{Et(M,i.run(()=>V({store:M,app:r._a,pinia:r,options:l})))}),g&&o&&n.hydrate&&n.hydrate(M.$state,g),u=!0,a=!0,M}function Mu(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,l){const c=Qc();return i=i||(c?ke(_l,null):null),i&&yr(i),i=yl,i._s.has(e)||(s?El(e,t,r,i):Fu(e,r,i)),i._s.get(e)}return o.$id=e,o}function Dh(e){const t=Z(e),n={};for(const r in t){const s=t[r];s.effect?n[r]=Me({get:()=>e[r],set(o){e[r]=o}}):(ce(s)||it(s))&&(n[r]=Vc(e,r))}return n}const Uu="modulepreload",ju=function(e){return"/"+e},Ro={},tt=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let c=function(u){return Promise.all(u.map(a=>Promise.resolve(a).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=c(n.map(u=>{if(u=ju(u),u in Ro)return;Ro[u]=!0;const a=u.endsWith(".css"),f=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const p=document.createElement("link");if(p.rel=a?"stylesheet":Uu,a||(p.as="script"),p.crossOrigin="",p.href=u,l&&p.setAttribute("nonce",l),document.head.appendChild(p),a)return new Promise((m,g)=>{p.addEventListener("load",m),p.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})};const qt=typeof document<"u";function wl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Bu(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&wl(e.default)}const te=Object.assign;function Mr(e,t){const n={};for(const r in t){const s=t[r];n[r]=We(s)?s.map(e):e(s)}return n}const yn=()=>{},We=Array.isArray;function Ao(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const Sl=/#/g,Hu=/&/g,ku=/\//g,Vu=/=/g,qu=/\?/g,Rl=/\+/g,$u=/%5B/g,Ku=/%5D/g,Al=/%5E/g,Wu=/%60/g,vl=/%7B/g,Gu=/%7C/g,Ol=/%7D/g,zu=/%20/g;function Ns(e){return e==null?"":encodeURI(""+e).replace(Gu,"|").replace($u,"[").replace(Ku,"]")}function Ju(e){return Ns(e).replace(vl,"{").replace(Ol,"}").replace(Al,"^")}function ns(e){return Ns(e).replace(Rl,"%2B").replace(zu,"+").replace(Sl,"%23").replace(Hu,"%26").replace(Wu,"`").replace(vl,"{").replace(Ol,"}").replace(Al,"^")}function Xu(e){return ns(e).replace(Vu,"%3D")}function Qu(e){return Ns(e).replace(Sl,"%23").replace(qu,"%3F")}function Yu(e){return Qu(e).replace(ku,"%2F")}function vn(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Zu=/\/$/,ef=e=>e.replace(Zu,"");function Ur(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return c=l>=0&&c>l?-1:c,c>=0&&(r=t.slice(0,c),o=t.slice(c,l>0?l:t.length),s=e(o.slice(1))),l>=0&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=sf(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:vn(i)}}function tf(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function vo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function nf(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&Xt(t.matched[r],n.matched[s])&&xl(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Xt(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function xl(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!rf(e[n],t[n]))return!1;return!0}function rf(e,t){return We(e)?Oo(e,t):We(t)?Oo(t,e):e?.valueOf()===t?.valueOf()}function Oo(e,t){return We(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function sf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const bt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let rs=(function(e){return e.pop="pop",e.push="push",e})({}),jr=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function of(e){if(!e)if(qt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),ef(e)}const lf=/^[^#]+#/;function cf(e,t){return e.replace(lf,"#")+t}function af(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const _r=()=>({left:window.scrollX,top:window.scrollY});function uf(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=af(s,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 xo(e,t){return(history.state?history.state.position-t:-1)+e}const ss=new Map;function ff(e,t){ss.set(e,t)}function df(e){const t=ss.get(e);return ss.delete(e),t}function hf(e){return typeof e=="string"||e&&typeof e=="object"}function Tl(e){return typeof e=="string"||typeof e=="symbol"}let ae=(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 Cl=Symbol("");ae.MATCHER_NOT_FOUND+"",ae.NAVIGATION_GUARD_REDIRECT+"",ae.NAVIGATION_ABORTED+"",ae.NAVIGATION_CANCELLED+"",ae.NAVIGATION_DUPLICATED+"";function Qt(e,t){return te(new Error,{type:e,[Cl]:!0},t)}function at(e,t){return e instanceof Error&&Cl in e&&(t==null||!!(e.type&t))}const pf=["params","query","hash"];function mf(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of pf)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function gf(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&ns(s)):[r&&ns(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function yf(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=We(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const _f=Symbol(""),Co=Symbol(""),br=Symbol(""),Is=Symbol(""),os=Symbol("");function sn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function At(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,c)=>{const u=p=>{p===!1?c(Qt(ae.NAVIGATION_ABORTED,{from:n,to:t})):p instanceof Error?c(p):hf(p)?c(Qt(ae.NAVIGATION_GUARD_REDIRECT,{from:t,to:p})):(i&&r.enterCallbacks[s]===i&&typeof p=="function"&&i.push(p),l())},a=o(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(a);e.length<3&&(f=f.then(u)),f.catch(p=>c(p))})}function Br(e,t,n,r,s=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(wl(c)){const u=(c.__vccOpts||c)[t];u&&o.push(At(u,n,r,i,l,s))}else{let u=c();o.push(()=>u.then(a=>{if(!a)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=Bu(a)?a.default:a;i.mods[l]=a,i.components[l]=f;const p=(f.__vccOpts||f)[t];return p&&At(p,n,r,i,l,s)()}))}}return o}function bf(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;iXt(u,l))?r.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(u=>Xt(u,c))||s.push(c))}return[n,r,s]}let Ef=()=>location.protocol+"//"+location.host;function Pl(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(i);return l[0]!=="/"&&(l="/"+l),vo(l,"")}return vo(n,e)+r+s}function wf(e,t,n,r){let s=[],o=[],i=null;const l=({state:p})=>{const m=Pl(e,location),g=n.value,b=t.value;let E=0;if(p){if(n.value=m,t.value=p,i&&i===g){i=null;return}E=b?p.position-b.position:0}else r(m);s.forEach(O=>{O(n.value,g,{delta:E,type:rs.pop,direction:E?E>0?jr.forward:jr.back:jr.unknown})})};function c(){i=n.value}function u(p){s.push(p);const m=()=>{const g=s.indexOf(p);g>-1&&s.splice(g,1)};return o.push(m),m}function a(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(te({},p.state,{scroll:_r()}),"")}}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,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?_r():null}}function Sf(e){const{history:t,location:n}=window,r={value:Pl(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.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:Ef()+e+c;try{t[a?"replaceState":"pushState"](u,"",p),s.value=u}catch(m){console.error(m),n[a?"replace":"assign"](p)}}function i(c,u){o(c,te({},t.state,Po(s.value.back,c,s.value.forward,!0),u,{position:s.value.position}),!0),r.value=c}function l(c,u){const a=te({},s.value,t.state,{forward:c,scroll:_r()});o(a.current,a,!0),o(c,te({},Po(r.value,c,null),{position:a.position+1},u),!1),r.value=c}return{location:r,state:s,push:l,replace:i}}function Rf(e){e=of(e);const t=Sf(e),n=wf(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=te({location:"",base:e,go:r,createHref:cf.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function Af(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),Rf(e)}let Nt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var ge=(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})(ge||{});const vf={type:Nt.Static,value:""},Of=/[a-zA-Z0-9_]/;function xf(e){if(!e)return[[]];if(e==="/")return[[vf]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${u}": ${m}`)}let n=ge.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,c,u="",a="";function f(){u&&(n===ge.Static?o.push({type:Nt.Static,value:u}):n===ge.Param||n===ge.ParamRegExp||n===ge.ParamRegExpEnd?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:Nt.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]===Oe.Static+Oe.Segment?1:-1:0}function Nl(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const If={strict:!1,end:!0,sensitive:!1};function Df(e,t,n){const r=Pf(xf(e.path),n),s=te(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function Lf(e,t){const n=[],r=new Map;t=Ao(If,t);function s(f){return r.get(f)}function o(f,p,m){const g=!m,b=Lo(f);b.aliasOf=m&&m.record;const E=Ao(t,f),O=[b];if("alias"in f){const P=typeof f.alias=="string"?[f.alias]:f.alias;for(const M of P)O.push(Lo(te({},b,{components:m?m.record.components:b.components,path:M,aliasOf:m?m.record:b})))}let C,N;for(const P of O){const{path:M}=P;if(p&&M[0]!=="/"){const X=p.record.path,k=X[X.length-1]==="/"?"":"/";P.path=p.record.path+(M&&k+M)}if(C=Df(P,p,E),m?m.alias.push(C):(N=N||C,N!==C&&N.alias.push(C),g&&f.name&&!Fo(C)&&i(f.name)),Il(C)&&c(C),b.children){const X=b.children;for(let k=0;k{i(N)}:yn}function i(f){if(Tl(f)){const p=r.get(f);p&&(r.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&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function c(f){const p=Uf(f,n);n.splice(p,0,f),f.record.name&&!Fo(f)&&r.set(f.record.name,f)}function u(f,p){let m,g={},b,E;if("name"in f&&f.name){if(m=r.get(f.name),!m)throw Qt(ae.MATCHER_NOT_FOUND,{location:f});E=m.record.name,g=te(Do(p.params,m.keys.filter(N=>!N.optional).concat(m.parent?m.parent.keys.filter(N=>N.optional):[]).map(N=>N.name)),f.params&&Do(f.params,m.keys.map(N=>N.name))),b=m.stringify(g)}else if(f.path!=null)b=f.path,m=n.find(N=>N.re.test(b)),m&&(g=m.parse(b),E=m.record.name);else{if(m=p.name?r.get(p.name):n.find(N=>N.re.test(p.path)),!m)throw Qt(ae.MATCHER_NOT_FOUND,{location:f,currentLocation:p});E=m.record.name,g=te({},p.params,f.params),b=m.stringify(g)}const O=[];let C=m;for(;C;)O.unshift(C.record),C=C.parent;return{name:E,path:b,params:g,matched:O,meta:Mf(O)}}e.forEach(f=>o(f));function a(){n.length=0,r.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:a,getRoutes:l,getRecordMatcher:s}}function Do(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function Lo(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Ff(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 Ff(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function Fo(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Mf(e){return e.reduce((t,n)=>te(t,n.meta),{})}function Uf(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;Nl(e,t[o])<0?r=o:n=o+1}const s=jf(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function jf(e){let t=e;for(;t=t.parent;)if(Il(t)&&Nl(e,t)===0)return t}function Il({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Mo(e){const t=ke(br),n=ke(Is),r=Me(()=>{const c=Ot(e.to);return t.resolve(c)}),s=Me(()=>{const{matched:c}=r.value,{length:u}=c,a=c[u-1],f=n.matched;if(!a||!f.length)return-1;const p=f.findIndex(Xt.bind(null,a));if(p>-1)return p;const m=Uo(c[u-2]);return u>1&&Uo(a)===m&&f[f.length-1].path!==m?f.findIndex(Xt.bind(null,c[u-2])):p}),o=Me(()=>s.value>-1&&qf(n.params,r.value.params)),i=Me(()=>s.value>-1&&s.value===n.matched.length-1&&xl(n.params,r.value.params));function l(c={}){if(Vf(c)){const u=t[Ot(e.replace)?"replace":"push"](Ot(e.to)).catch(yn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Me(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function Bf(e){return e.length===1?e[0]:e}const Hf=Os({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=On(Mo(e)),{options:r}=ke(br),s=Me(()=>({[jo(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[jo(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&Bf(t.default(n));return e.custom?o:ml("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),kf=Hf;function Vf(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 qf(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!We(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function Uo(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const jo=(e,t,n)=>e??t??n,$f=Os({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=ke(os),s=Me(()=>e.route||r.value),o=ke(Co,0),i=Me(()=>{let u=Ot(o);const{matched:a}=s.value;let f;for(;(f=a[u])&&!f.components;)u++;return u}),l=Me(()=>s.value.matched[i.value]);Hn(Co,Me(()=>i.value+1)),Hn(_f,l),Hn(os,s);const c=Lt();return fn(()=>[c.value,l.value,e.name],([u,a,f],[p,m,g])=>{a&&(a.instances[f]=u,m&&m!==a&&u&&u===p&&(a.leaveGuards.size||(a.leaveGuards=m.leaveGuards),a.updateGuards.size||(a.updateGuards=m.updateGuards))),u&&a&&(!m||!Xt(a,m)||!p)&&(a.enterCallbacks[f]||[]).forEach(b=>b(u))},{flush:"post"}),()=>{const u=s.value,a=e.name,f=l.value,p=f&&f.components[a];if(!p)return Bo(n.default,{Component:p,route:u});const m=f.props[a],g=m?m===!0?u.params:typeof m=="function"?m(u):m:null,E=ml(p,te({},g,t,{onVnodeUnmounted:O=>{O.component.isUnmounted&&(f.instances[a]=null)},ref:c}));return Bo(n.default,{Component:E,route:u})||E}}});function Bo(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Dl=$f;function Kf(e){const t=Lf(e.routes,e),n=e.parseQuery||gf,r=e.stringifyQuery||To,s=e.history,o=sn(),i=sn(),l=sn(),c=Mc(bt);let u=bt;qt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const a=Mr.bind(null,R=>""+R),f=Mr.bind(null,Yu),p=Mr.bind(null,vn);function m(R,F){let D,j;return Tl(R)?(D=t.getRecordMatcher(R),j=F):j=R,t.addRoute(j,D)}function g(R){const F=t.getRecordMatcher(R);F&&t.removeRoute(F)}function b(){return t.getRoutes().map(R=>R.record)}function E(R){return!!t.getRecordMatcher(R)}function O(R,F){if(F=te({},F||c.value),typeof R=="string"){const y=Ur(n,R,F.path),w=t.resolve({path:y.path},F),A=s.createHref(y.fullPath);return te(y,w,{params:p(w.params),hash:vn(y.hash),redirectedFrom:void 0,href:A})}let D;if(R.path!=null)D=te({},R,{path:Ur(n,R.path,F.path).path});else{const y=te({},R.params);for(const w in y)y[w]==null&&delete y[w];D=te({},R,{params:f(y)}),F.params=f(F.params)}const j=t.resolve(D,F),Q=R.hash||"";j.params=a(p(j.params));const d=tf(r,te({},R,{hash:Ju(Q),path:j.path})),h=s.createHref(d);return te({fullPath:d,hash:Q,query:r===To?yf(R.query):R.query||{}},j,{redirectedFrom:void 0,href:h})}function C(R){return typeof R=="string"?Ur(n,R,c.value.path):te({},R)}function N(R,F){if(u!==R)return Qt(ae.NAVIGATION_CANCELLED,{from:F,to:R})}function P(R){return k(R)}function M(R){return P(te(C(R),{replace:!0}))}function X(R,F){const D=R.matched[R.matched.length-1];if(D&&D.redirect){const{redirect:j}=D;let Q=typeof j=="function"?j(R,F):j;return typeof Q=="string"&&(Q=Q.includes("?")||Q.includes("#")?Q=C(Q):{path:Q},Q.params={}),te({query:R.query,hash:R.hash,params:Q.path!=null?{}:R.params},Q)}}function k(R,F){const D=u=O(R),j=c.value,Q=R.state,d=R.force,h=R.replace===!0,y=X(D,j);if(y)return k(te(C(y),{state:typeof y=="object"?te({},Q,y.state):Q,force:d,replace:h}),F||D);const w=D;w.redirectedFrom=F;let A;return!d&&nf(r,j,D)&&(A=Qt(ae.NAVIGATION_DUPLICATED,{to:w,from:j}),me(j,j,!0,!1)),(A?Promise.resolve(A):ee(w,j)).catch(S=>at(S)?at(S,ae.NAVIGATION_GUARD_REDIRECT)?S:ze(S):z(S,w,j)).then(S=>{if(S){if(at(S,ae.NAVIGATION_GUARD_REDIRECT))return k(te({replace:h},C(S.to),{state:typeof S.to=="object"?te({},Q,S.to.state):Q,force:d}),F||w)}else S=ye(w,j,!0,h,Q);return ue(w,j,S),S})}function V(R,F){const D=N(R,F);return D?Promise.reject(D):Promise.resolve()}function U(R){const F=qe.values().next().value;return F&&typeof F.runWithContext=="function"?F.runWithContext(R):R()}function ee(R,F){let D;const[j,Q,d]=bf(R,F);D=Br(j.reverse(),"beforeRouteLeave",R,F);for(const y of j)y.leaveGuards.forEach(w=>{D.push(At(w,R,F))});const h=V.bind(null,R,F);return D.push(h),He(D).then(()=>{D=[];for(const y of o.list())D.push(At(y,R,F));return D.push(h),He(D)}).then(()=>{D=Br(Q,"beforeRouteUpdate",R,F);for(const y of Q)y.updateGuards.forEach(w=>{D.push(At(w,R,F))});return D.push(h),He(D)}).then(()=>{D=[];for(const y of d)if(y.beforeEnter)if(We(y.beforeEnter))for(const w of y.beforeEnter)D.push(At(w,R,F));else D.push(At(y.beforeEnter,R,F));return D.push(h),He(D)}).then(()=>(R.matched.forEach(y=>y.enterCallbacks={}),D=Br(d,"beforeRouteEnter",R,F,U),D.push(h),He(D))).then(()=>{D=[];for(const y of i.list())D.push(At(y,R,F));return D.push(h),He(D)}).catch(y=>at(y,ae.NAVIGATION_CANCELLED)?y:Promise.reject(y))}function ue(R,F,D){l.list().forEach(j=>U(()=>j(R,F,D)))}function ye(R,F,D,j,Q){const d=N(R,F);if(d)return d;const h=F===bt,y=qt?history.state:{};D&&(j||h?s.replace(R.fullPath,te({scroll:h&&y&&y.scroll},Q)):s.push(R.fullPath,Q)),c.value=R,me(R,F,D,h),ze()}let pe;function Re(){pe||(pe=s.listen((R,F,D)=>{if(!Xe.listening)return;const j=O(R),Q=X(j,Xe.currentRoute.value);if(Q){k(te(Q,{replace:!0,force:!0}),j).catch(yn);return}u=j;const d=c.value;qt&&ff(xo(d.fullPath,D.delta),_r()),ee(j,d).catch(h=>at(h,ae.NAVIGATION_ABORTED|ae.NAVIGATION_CANCELLED)?h:at(h,ae.NAVIGATION_GUARD_REDIRECT)?(k(te(C(h.to),{force:!0}),j).then(y=>{at(y,ae.NAVIGATION_ABORTED|ae.NAVIGATION_DUPLICATED)&&!D.delta&&D.type===rs.pop&&s.go(-1,!1)}).catch(yn),Promise.reject()):(D.delta&&s.go(-D.delta,!1),z(h,j,d))).then(h=>{h=h||ye(j,d,!1),h&&(D.delta&&!at(h,ae.NAVIGATION_CANCELLED)?s.go(-D.delta,!1):D.type===rs.pop&&at(h,ae.NAVIGATION_ABORTED|ae.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),ue(j,d,h)}).catch(yn)}))}let Ve=sn(),J=sn(),K;function z(R,F,D){ze(R);const j=J.list();return j.length?j.forEach(Q=>Q(R,F,D)):console.error(R),Promise.reject(R)}function Be(){return K&&c.value!==bt?Promise.resolve():new Promise((R,F)=>{Ve.add([R,F])})}function ze(R){return K||(K=!R,Re(),Ve.list().forEach(([F,D])=>R?D(R):F()),Ve.reset()),R}function me(R,F,D,j){const{scrollBehavior:Q}=e;if(!qt||!Q)return Promise.resolve();const d=!D&&df(xo(R.fullPath,0))||(j||!D)&&history.state&&history.state.scroll||null;return Rs().then(()=>Q(R,F,d)).then(h=>h&&uf(h)).catch(h=>z(h,R,F))}const fe=R=>s.go(R);let Je;const qe=new Set,Xe={currentRoute:c,listening:!0,addRoute:m,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:E,getRoutes:b,resolve:O,options:e,push:P,replace:M,go:fe,back:()=>fe(-1),forward:()=>fe(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:J.add,isReady:Be,install(R){R.component("RouterLink",kf),R.component("RouterView",Dl),R.config.globalProperties.$router=Xe,Object.defineProperty(R.config.globalProperties,"$route",{enumerable:!0,get:()=>Ot(c)}),qt&&!Je&&c.value===bt&&(Je=!0,P(s.location).catch(j=>{}));const F={};for(const j in bt)Object.defineProperty(F,j,{get:()=>c.value[j],enumerable:!0});R.provide(br,Xe),R.provide(Is,Ci(F)),R.provide(os,c);const D=R.unmount;qe.add(R),R.unmount=function(){qe.delete(R),qe.size<1&&(u=bt,pe&&pe(),pe=null,c.value=bt,Je=!1,K=!1),D()}}};function He(R){return R.reduce((F,D)=>F.then(()=>U(D)),Promise.resolve())}return Xe}function Lh(){return ke(br)}function Fh(e){return ke(Is)}function Ll(e,t){return function(){return e.apply(t,arguments)}}const{toString:Wf}=Object.prototype,{getPrototypeOf:Ds}=Object,{iterator:Er,toStringTag:Fl}=Symbol,wr=(e=>t=>{const n=Wf.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ge=e=>(e=e.toLowerCase(),t=>wr(t)===e),Sr=e=>t=>typeof t===e,{isArray:Zt}=Array,Yt=Sr("undefined");function Cn(e){return e!==null&&!Yt(e)&&e.constructor!==null&&!Yt(e.constructor)&&Ie(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Ml=Ge("ArrayBuffer");function Gf(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Ml(e.buffer),t}const zf=Sr("string"),Ie=Sr("function"),Ul=Sr("number"),Pn=e=>e!==null&&typeof e=="object",Jf=e=>e===!0||e===!1,Kn=e=>{if(wr(e)!=="object")return!1;const t=Ds(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Fl in e)&&!(Er in e)},Xf=e=>{if(!Pn(e)||Cn(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},Qf=Ge("Date"),Yf=Ge("File"),Zf=Ge("Blob"),ed=Ge("FileList"),td=e=>Pn(e)&&Ie(e.pipe),nd=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Ie(e.append)&&((t=wr(e))==="formdata"||t==="object"&&Ie(e.toString)&&e.toString()==="[object FormData]"))},rd=Ge("URLSearchParams"),[sd,od,id,ld]=["ReadableStream","Request","Response","Headers"].map(Ge),cd=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Nn(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),Zt(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const It=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Bl=e=>!Yt(e)&&e!==It;function is(){const{caseless:e,skipUndefined:t}=Bl(this)&&this||{},n={},r=(s,o)=>{const i=e&&jl(n,o)||o;Kn(n[i])&&Kn(s)?n[i]=is(n[i],s):Kn(s)?n[i]=is({},s):Zt(s)?n[i]=s.slice():(!t||!Yt(s))&&(n[i]=s)};for(let s=0,o=arguments.length;s(Nn(t,(s,o)=>{n&&Ie(s)?e[o]=Ll(s,n):e[o]=s},{allOwnKeys:r}),e),ud=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),fd=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},dd=(e,t,n,r)=>{let s,o,i;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&Ds(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},hd=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},pd=e=>{if(!e)return null;if(Zt(e))return e;let t=e.length;if(!Ul(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},md=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Ds(Uint8Array)),gd=(e,t)=>{const r=(e&&e[Er]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},yd=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},_d=Ge("HTMLFormElement"),bd=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),Ho=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Ed=Ge("RegExp"),Hl=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Nn(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},wd=e=>{Hl(e,(t,n)=>{if(Ie(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Ie(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Sd=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return Zt(e)?r(e):r(String(e).split(t)),n},Rd=()=>{},Ad=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function vd(e){return!!(e&&Ie(e.append)&&e[Fl]==="FormData"&&e[Er])}const Od=e=>{const t=new Array(10),n=(r,s)=>{if(Pn(r)){if(t.indexOf(r)>=0)return;if(Cn(r))return r;if(!("toJSON"in r)){t[s]=r;const o=Zt(r)?[]:{};return Nn(r,(i,l)=>{const c=n(i,s+1);!Yt(c)&&(o[l]=c)}),t[s]=void 0,o}}return r};return n(e,0)},xd=Ge("AsyncFunction"),Td=e=>e&&(Pn(e)||Ie(e))&&Ie(e.then)&&Ie(e.catch),kl=((e,t)=>e?setImmediate:t?((n,r)=>(It.addEventListener("message",({source:s,data:o})=>{s===It&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),It.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Ie(It.postMessage)),Cd=typeof queueMicrotask<"u"?queueMicrotask.bind(It):typeof process<"u"&&process.nextTick||kl,Pd=e=>e!=null&&Ie(e[Er]),_={isArray:Zt,isArrayBuffer:Ml,isBuffer:Cn,isFormData:nd,isArrayBufferView:Gf,isString:zf,isNumber:Ul,isBoolean:Jf,isObject:Pn,isPlainObject:Kn,isEmptyObject:Xf,isReadableStream:sd,isRequest:od,isResponse:id,isHeaders:ld,isUndefined:Yt,isDate:Qf,isFile:Yf,isBlob:Zf,isRegExp:Ed,isFunction:Ie,isStream:td,isURLSearchParams:rd,isTypedArray:md,isFileList:ed,forEach:Nn,merge:is,extend:ad,trim:cd,stripBOM:ud,inherits:fd,toFlatObject:dd,kindOf:wr,kindOfTest:Ge,endsWith:hd,toArray:pd,forEachEntry:gd,matchAll:yd,isHTMLForm:_d,hasOwnProperty:Ho,hasOwnProp:Ho,reduceDescriptors:Hl,freezeMethods:wd,toObjectSet:Sd,toCamelCase:bd,noop:Rd,toFiniteNumber:Ad,findKey:jl,global:It,isContextDefined:Bl,isSpecCompliantForm:vd,toJSONObject:Od,isAsyncFn:xd,isThenable:Td,setImmediate:kl,asap:Cd,isIterable:Pd};function G(e,t,n,r,s){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),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}_.inherits(G,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:_.toJSONObject(this.config),code:this.code,status:this.status}}});const Vl=G.prototype,ql={};["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=>{ql[e]={value:e}});Object.defineProperties(G,ql);Object.defineProperty(Vl,"isAxiosError",{value:!0});G.from=(e,t,n,r,s,o)=>{const i=Object.create(Vl);_.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 G.call(i,l,c,n,r,s),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 Nd=null;function ls(e){return _.isPlainObject(e)||_.isArray(e)}function $l(e){return _.endsWith(e,"[]")?e.slice(0,-2):e}function ko(e,t,n){return e?e.concat(t).map(function(s,o){return s=$l(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function Id(e){return _.isArray(e)&&!e.some(ls)}const Dd=_.toFlatObject(_,{},null,function(t){return/^is[A-Z]/.test(t)});function Rr(e,t,n){if(!_.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=_.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(b,E){return!_.isUndefined(E[b])});const r=n.metaTokens,s=n.visitor||a,o=n.dots,i=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&_.isSpecCompliantForm(t);if(!_.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(_.isDate(g))return g.toISOString();if(_.isBoolean(g))return g.toString();if(!c&&_.isBlob(g))throw new G("Blob is not supported. Use a Buffer instead.");return _.isArrayBuffer(g)||_.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function a(g,b,E){let O=g;if(g&&!E&&typeof g=="object"){if(_.endsWith(b,"{}"))b=r?b:b.slice(0,-2),g=JSON.stringify(g);else if(_.isArray(g)&&Id(g)||(_.isFileList(g)||_.endsWith(b,"[]"))&&(O=_.toArray(g)))return b=$l(b),O.forEach(function(N,P){!(_.isUndefined(N)||N===null)&&t.append(i===!0?ko([b],P,o):i===null?b:b+"[]",u(N))}),!1}return ls(g)?!0:(t.append(ko(E,b,o),u(g)),!1)}const f=[],p=Object.assign(Dd,{defaultVisitor:a,convertValue:u,isVisitable:ls});function m(g,b){if(!_.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+b.join("."));f.push(g),_.forEach(g,function(O,C){(!(_.isUndefined(O)||O===null)&&s.call(t,O,_.isString(C)?C.trim():C,b,p))===!0&&m(O,b?b.concat(C):[C])}),f.pop()}}if(!_.isObject(e))throw new TypeError("data must be an object");return m(e),t}function Vo(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Ls(e,t){this._pairs=[],e&&Rr(e,this,t)}const Kl=Ls.prototype;Kl.append=function(t,n){this._pairs.push([t,n])};Kl.toString=function(t){const n=t?function(r){return t.call(this,r,Vo)}:Vo;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Ld(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Wl(e,t,n){if(!t)return e;const r=n&&n.encode||Ld;_.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=_.isURLSearchParams(t)?t.toString():new Ls(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class qo{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){_.forEach(this.handlers,function(r){r!==null&&t(r)})}}const Gl={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Fd=typeof URLSearchParams<"u"?URLSearchParams:Ls,Md=typeof FormData<"u"?FormData:null,Ud=typeof Blob<"u"?Blob:null,jd={isBrowser:!0,classes:{URLSearchParams:Fd,FormData:Md,Blob:Ud},protocols:["http","https","file","blob","url","data"]},Fs=typeof window<"u"&&typeof document<"u",cs=typeof navigator=="object"&&navigator||void 0,Bd=Fs&&(!cs||["ReactNative","NativeScript","NS"].indexOf(cs.product)<0),Hd=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",kd=Fs&&window.location.href||"http://localhost",Vd=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Fs,hasStandardBrowserEnv:Bd,hasStandardBrowserWebWorkerEnv:Hd,navigator:cs,origin:kd},Symbol.toStringTag,{value:"Module"})),Ee={...Vd,...jd};function qd(e,t){return Rr(e,new Ee.classes.URLSearchParams,{visitor:function(n,r,s,o){return Ee.isNode&&_.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function $d(e){return _.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Kd(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&_.isArray(s)?s.length:i,c?(_.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!l):((!s[i]||!_.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&_.isArray(s[i])&&(s[i]=Kd(s[i])),!l)}if(_.isFormData(e)&&_.isFunction(e.entries)){const n={};return _.forEachEntry(e,(r,s)=>{t($d(r),s,n,0)}),n}return null}function Wd(e,t,n){if(_.isString(e))try{return(t||JSON.parse)(e),_.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const In={transitional:Gl,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=_.isObject(t);if(o&&_.isHTMLForm(t)&&(t=new FormData(t)),_.isFormData(t))return s?JSON.stringify(zl(t)):t;if(_.isArrayBuffer(t)||_.isBuffer(t)||_.isStream(t)||_.isFile(t)||_.isBlob(t)||_.isReadableStream(t))return t;if(_.isArrayBufferView(t))return t.buffer;if(_.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return qd(t,this.formSerializer).toString();if((l=_.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return Rr(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),Wd(t)):t}],transformResponse:[function(t){const n=this.transitional||In.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(_.isResponse(t)||_.isReadableStream(t))return t;if(t&&_.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(i)throw l.name==="SyntaxError"?G.from(l,G.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:Ee.classes.FormData,Blob:Ee.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};_.forEach(["delete","get","head","post","put","patch"],e=>{In.headers[e]={}});const Gd=_.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"]),zd=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&Gd[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},$o=Symbol("internals");function on(e){return e&&String(e).trim().toLowerCase()}function Wn(e){return e===!1||e==null?e:_.isArray(e)?e.map(Wn):String(e)}function Jd(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const Xd=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Hr(e,t,n,r,s){if(_.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!_.isString(t)){if(_.isString(r))return t.indexOf(r)!==-1;if(_.isRegExp(r))return r.test(t)}}function Qd(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Yd(e,t){const n=_.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let De=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(l,c,u){const a=on(c);if(!a)throw new Error("header name must be a non-empty string");const f=_.findKey(s,a);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||c]=Wn(l))}const i=(l,c)=>_.forEach(l,(u,a)=>o(u,a,c));if(_.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(_.isString(t)&&(t=t.trim())&&!Xd(t))i(zd(t),n);else if(_.isObject(t)&&_.isIterable(t)){let l={},c,u;for(const a of t){if(!_.isArray(a))throw TypeError("Object iterator must return a key-value pair");l[u=a[0]]=(c=l[u])?_.isArray(c)?[...c,a[1]]:[c,a[1]]:a[1]}i(l,n)}else t!=null&&o(n,t,r);return this}get(t,n){if(t=on(t),t){const r=_.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return Jd(s);if(_.isFunction(n))return n.call(this,s,r);if(_.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=on(t),t){const r=_.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Hr(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=on(i),i){const l=_.findKey(r,i);l&&(!n||Hr(r,r[l],l,n))&&(delete r[l],s=!0)}}return _.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||Hr(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return _.forEach(this,(s,o)=>{const i=_.findKey(r,o);if(i){n[i]=Wn(s),delete n[o];return}const l=t?Qd(o):String(o).trim();l!==o&&delete n[o],n[l]=Wn(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return _.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&_.isArray(r)?r.join(", "):r)}),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 r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[$o]=this[$o]={accessors:{}}).accessors,s=this.prototype;function o(i){const l=on(i);r[l]||(Yd(s,i),r[l]=!0)}return _.isArray(t)?t.forEach(o):o(t),this}};De.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);_.reduceDescriptors(De.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});_.freezeMethods(De);function kr(e,t){const n=this||In,r=t||n,s=De.from(r.headers);let o=r.data;return _.forEach(e,function(l){o=l.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function Jl(e){return!!(e&&e.__CANCEL__)}function en(e,t,n){G.call(this,e??"canceled",G.ERR_CANCELED,t,n),this.name="CanceledError"}_.inherits(en,G,{__CANCEL__:!0});function Xl(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new G("Request failed with status code "+n.status,[G.ERR_BAD_REQUEST,G.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function Zd(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function eh(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),a=r[o];i||(i=u),n[s]=c,r[s]=u;let f=o,p=0;for(;f!==s;)p+=n[f++],f=f%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i{n=a,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const a=Date.now(),f=a-n;f>=r?i(u,a):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-f)))},()=>s&&i(s)]}const sr=(e,t,n=3)=>{let r=0;const s=eh(50,250);return th(o=>{const i=o.loaded,l=o.lengthComputable?o.total:void 0,c=i-r,u=s(c),a=i<=l;r=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)},Ko=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Wo=e=>(...t)=>_.asap(()=>e(...t)),nh=Ee.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Ee.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Ee.origin),Ee.navigator&&/(msie|trident)/i.test(Ee.navigator.userAgent)):()=>!0,rh=Ee.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];_.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),_.isString(r)&&l.push(`path=${r}`),_.isString(s)&&l.push(`domain=${s}`),o===!0&&l.push("secure"),_.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 sh(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function oh(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Ql(e,t,n){let r=!sh(t);return e&&(r||n==!1)?oh(e,t):t}const Go=e=>e instanceof De?{...e}:e;function Ut(e,t){t=t||{};const n={};function r(u,a,f,p){return _.isPlainObject(u)&&_.isPlainObject(a)?_.merge.call({caseless:p},u,a):_.isPlainObject(a)?_.merge({},a):_.isArray(a)?a.slice():a}function s(u,a,f,p){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u,f,p)}else return r(u,a,f,p)}function o(u,a){if(!_.isUndefined(a))return r(void 0,a)}function i(u,a){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u)}else return r(void 0,a)}function l(u,a,f){if(f in t)return r(u,a);if(f in e)return r(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)=>s(Go(u),Go(a),f,!0)};return _.forEach(Object.keys({...e,...t}),function(a){const f=c[a]||s,p=f(e[a],t[a],a);_.isUndefined(p)&&f!==l||(n[a]=p)}),n}const Yl=e=>{const t=Ut({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:l}=t;if(t.headers=i=De.from(i),t.url=Wl(Ql(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&i.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),_.isFormData(n)){if(Ee.hasStandardBrowserEnv||Ee.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(_.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(Ee.hasStandardBrowserEnv&&(r&&_.isFunction(r)&&(r=r(t)),r||r!==!1&&nh(t.url))){const c=s&&o&&rh.read(o);c&&i.set(s,c)}return t},ih=typeof XMLHttpRequest<"u",lh=ih&&function(e){return new Promise(function(n,r){const s=Yl(e);let o=s.data;const i=De.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,a,f,p,m,g;function b(){m&&m(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(a),s.signal&&s.signal.removeEventListener("abort",a)}let E=new XMLHttpRequest;E.open(s.method.toUpperCase(),s.url,!0),E.timeout=s.timeout;function O(){if(!E)return;const N=De.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),M={data:!l||l==="text"||l==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:N,config:e,request:E};Xl(function(k){n(k),b()},function(k){r(k),b()},M),E=null}"onloadend"in E?E.onloadend=O:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.indexOf("file:")===0)||setTimeout(O)},E.onabort=function(){E&&(r(new G("Request aborted",G.ECONNABORTED,e,E)),E=null)},E.onerror=function(P){const M=P&&P.message?P.message:"Network Error",X=new G(M,G.ERR_NETWORK,e,E);X.event=P||null,r(X),E=null},E.ontimeout=function(){let P=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const M=s.transitional||Gl;s.timeoutErrorMessage&&(P=s.timeoutErrorMessage),r(new G(P,M.clarifyTimeoutError?G.ETIMEDOUT:G.ECONNABORTED,e,E)),E=null},o===void 0&&i.setContentType(null),"setRequestHeader"in E&&_.forEach(i.toJSON(),function(P,M){E.setRequestHeader(M,P)}),_.isUndefined(s.withCredentials)||(E.withCredentials=!!s.withCredentials),l&&l!=="json"&&(E.responseType=s.responseType),u&&([p,g]=sr(u,!0),E.addEventListener("progress",p)),c&&E.upload&&([f,m]=sr(c),E.upload.addEventListener("progress",f),E.upload.addEventListener("loadend",m)),(s.cancelToken||s.signal)&&(a=N=>{E&&(r(!N||N.type?new en(null,e,E):N),E.abort(),E=null)},s.cancelToken&&s.cancelToken.subscribe(a),s.signal&&(s.signal.aborted?a():s.signal.addEventListener("abort",a)));const C=Zd(s.url);if(C&&Ee.protocols.indexOf(C)===-1){r(new G("Unsupported protocol "+C+":",G.ERR_BAD_REQUEST,e));return}E.send(o||null)})},ch=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,l();const a=u instanceof Error?u:this.reason;r.abort(a instanceof G?a:new en(a instanceof Error?a.message:a))}};let i=t&&setTimeout(()=>{i=null,o(new G(`timeout ${t} of ms exceeded`,G.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}=r;return c.unsubscribe=()=>_.asap(l),c}},ah=function*(e,t){let n=e.byteLength;if(n{const s=uh(e,t);let o=0,i,l=c=>{i||(i=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:a}=await s.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),s.return()}},{highWaterMark:2})},Jo=64*1024,{isFunction:Un}=_,dh=(({Request:e,Response:t})=>({Request:e,Response:t}))(_.global),{ReadableStream:Xo,TextEncoder:Qo}=_.global,Yo=(e,...t)=>{try{return!!e(...t)}catch{return!1}},hh=e=>{e=_.merge.call({skipUndefined:!0},dh,e);const{fetch:t,Request:n,Response:r}=e,s=t?Un(t):typeof fetch=="function",o=Un(n),i=Un(r);if(!s)return!1;const l=s&&Un(Xo),c=s&&(typeof Qo=="function"?(g=>b=>g.encode(b))(new Qo):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=o&&l&&Yo(()=>{let g=!1;const b=new n(Ee.origin,{body:new Xo,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!b}),a=i&&l&&Yo(()=>_.isReadableStream(new r("").body)),f={stream:a&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(b,E)=>{let O=b&&b[g];if(O)return O.call(b);throw new G(`Response type '${g}' is not supported`,G.ERR_NOT_SUPPORT,E)})});const p=async g=>{if(g==null)return 0;if(_.isBlob(g))return g.size;if(_.isSpecCompliantForm(g))return(await new n(Ee.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(_.isArrayBufferView(g)||_.isArrayBuffer(g))return g.byteLength;if(_.isURLSearchParams(g)&&(g=g+""),_.isString(g))return(await c(g)).byteLength},m=async(g,b)=>{const E=_.toFiniteNumber(g.getContentLength());return E??p(b)};return async g=>{let{url:b,method:E,data:O,signal:C,cancelToken:N,timeout:P,onDownloadProgress:M,onUploadProgress:X,responseType:k,headers:V,withCredentials:U="same-origin",fetchOptions:ee}=Yl(g),ue=t||fetch;k=k?(k+"").toLowerCase():"text";let ye=ch([C,N&&N.toAbortSignal()],P),pe=null;const Re=ye&&ye.unsubscribe&&(()=>{ye.unsubscribe()});let Ve;try{if(X&&u&&E!=="get"&&E!=="head"&&(Ve=await m(V,O))!==0){let me=new n(b,{method:"POST",body:O,duplex:"half"}),fe;if(_.isFormData(O)&&(fe=me.headers.get("content-type"))&&V.setContentType(fe),me.body){const[Je,qe]=Ko(Ve,sr(Wo(X)));O=zo(me.body,Jo,Je,qe)}}_.isString(U)||(U=U?"include":"omit");const J=o&&"credentials"in n.prototype,K={...ee,signal:ye,method:E.toUpperCase(),headers:V.normalize().toJSON(),body:O,duplex:"half",credentials:J?U:void 0};pe=o&&new n(b,K);let z=await(o?ue(pe,ee):ue(b,K));const Be=a&&(k==="stream"||k==="response");if(a&&(M||Be&&Re)){const me={};["status","statusText","headers"].forEach(Xe=>{me[Xe]=z[Xe]});const fe=_.toFiniteNumber(z.headers.get("content-length")),[Je,qe]=M&&Ko(fe,sr(Wo(M),!0))||[];z=new r(zo(z.body,Jo,Je,()=>{qe&&qe(),Re&&Re()}),me)}k=k||"text";let ze=await f[_.findKey(f,k)||"text"](z,g);return!Be&&Re&&Re(),await new Promise((me,fe)=>{Xl(me,fe,{data:ze,headers:De.from(z.headers),status:z.status,statusText:z.statusText,config:g,request:pe})})}catch(J){throw Re&&Re(),J&&J.name==="TypeError"&&/Load failed|fetch/i.test(J.message)?Object.assign(new G("Network Error",G.ERR_NETWORK,g,pe),{cause:J.cause||J}):G.from(J,J&&J.code,g,pe)}}},ph=new Map,Zl=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,l=i,c,u,a=ph;for(;l--;)c=o[l],u=a.get(c),u===void 0&&a.set(c,u=l?new Map:hh(t)),a=u;return u};Zl();const Ms={http:Nd,xhr:lh,fetch:{get:Zl}};_.forEach(Ms,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Zo=e=>`- ${e}`,mh=e=>_.isFunction(e)||e===null||e===!1;function gh(e,t){e=_.isArray(e)?e:[e];const{length:n}=e;let r,s;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(Zo).join(` +`):" "+Zo(i[0]):"as no adapter specified";throw new G("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const ec={getAdapter:gh,adapters:Ms};function Vr(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new en(null,e)}function ei(e){return Vr(e),e.headers=De.from(e.headers),e.data=kr.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),ec.getAdapter(e.adapter||In.adapter,e)(e).then(function(r){return Vr(e),r.data=kr.call(e,e.transformResponse,r),r.headers=De.from(r.headers),r},function(r){return Jl(r)||(Vr(e),r&&r.response&&(r.response.data=kr.call(e,e.transformResponse,r.response),r.response.headers=De.from(r.response.headers))),Promise.reject(r)})}const tc="1.13.2",Ar={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Ar[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const ti={};Ar.transitional=function(t,n,r){function s(o,i){return"[Axios v"+tc+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,l)=>{if(t===!1)throw new G(s(i," has been removed"+(n?" in "+n:"")),G.ERR_DEPRECATED);return n&&!ti[i]&&(ti[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,l):!0}};Ar.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function yh(e,t,n){if(typeof e!="object")throw new G("options must be an object",G.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const l=e[o],c=l===void 0||i(l,o,e);if(c!==!0)throw new G("option "+o+" must be "+c,G.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new G("Unknown option "+o,G.ERR_BAD_OPTION)}}const Gn={assertOptions:yh,validators:Ar},nt=Gn.validators;let Mt=class{constructor(t){this.defaults=t||{},this.interceptors={request:new qo,response:new qo}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Ut(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&Gn.assertOptions(r,{silentJSONParsing:nt.transitional(nt.boolean),forcedJSONParsing:nt.transitional(nt.boolean),clarifyTimeoutError:nt.transitional(nt.boolean)},!1),s!=null&&(_.isFunction(s)?n.paramsSerializer={serialize:s}:Gn.assertOptions(s,{encode:nt.function,serialize:nt.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Gn.assertOptions(n,{baseUrl:nt.spelling("baseURL"),withXsrfToken:nt.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&_.merge(o.common,o[n.method]);o&&_.forEach(["delete","get","head","post","put","patch","common"],g=>{delete o[g]}),n.headers=De.concat(i,o);const l=[];let c=!0;this.interceptors.request.forEach(function(b){typeof b.runWhen=="function"&&b.runWhen(n)===!1||(c=c&&b.synchronous,l.unshift(b.fulfilled,b.rejected))});const u=[];this.interceptors.response.forEach(function(b){u.push(b.fulfilled,b.rejected)});let a,f=0,p;if(!c){const g=[ei.bind(this),void 0];for(g.unshift(...l),g.push(...u),p=g.length,a=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(l=>{r.subscribe(l),o=l}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,l){r.reason||(r.reason=new en(o,i,l),n(r.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=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new nc(function(s){t=s}),cancel:t}}};function bh(e){return function(n){return e.apply(null,n)}}function Eh(e){return _.isObject(e)&&e.isAxiosError===!0}const as={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(as).forEach(([e,t])=>{as[t]=e});function rc(e){const t=new Mt(e),n=Ll(Mt.prototype.request,t);return _.extend(n,Mt.prototype,t,{allOwnKeys:!0}),_.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return rc(Ut(e,s))},n}const he=rc(In);he.Axios=Mt;he.CanceledError=en;he.CancelToken=_h;he.isCancel=Jl;he.VERSION=tc;he.toFormData=Rr;he.AxiosError=G;he.Cancel=he.CanceledError;he.all=function(t){return Promise.all(t)};he.spread=bh;he.isAxiosError=Eh;he.mergeConfig=Ut;he.AxiosHeaders=De;he.formToJSON=e=>zl(_.isHTMLForm(e)?new FormData(e):e);he.getAdapter=ec.getAdapter;he.HttpStatusCode=as;he.default=he;const{Axios:jh,AxiosError:Bh,CanceledError:Hh,isCancel:kh,CancelToken:Vh,VERSION:qh,all:$h,Cancel:Kh,isAxiosError:Wh,spread:Gh,toFormData:zh,AxiosHeaders:Jh,HttpStatusCode:Xh,formToJSON:Qh,getAdapter:Yh,mergeConfig:Zh}=he,_n=he.create({baseURL:"",timeout:3e4,withCredentials:!0});_n.interceptors.request.use(e=>e,e=>Promise.reject(e));_n.interceptors.response.use(e=>e.data,e=>{e.response?.status===401&&(window.location.hash="#/login");const t=e.response?.data?e.response.data.detail||e.response.data.message:e.message;return Promise.reject(new Error(t||"请求失败"))});const jn={login:e=>{const t=new URLSearchParams;return t.append("admin_key",e.password),_n.post("/login",t,{headers:{"Content-Type":"application/x-www-form-urlencoded"}})},logout:()=>_n.post("/logout"),checkAuth:()=>_n.get("/admin/health")},wh=Mu("auth",()=>{const e=Lt(!1),t=Lt(!1),n=Lt(0),r=1e4;let s=null;async function o(c){t.value=!0;try{return await jn.login({password:c}),await jn.checkAuth(),e.value=!0,n.value=Date.now(),!0}catch(u){throw e.value=!1,u}finally{t.value=!1}}async function i(){try{await jn.logout()}finally{e.value=!1,n.value=0}}async function l(){const c=Date.now();if(e.value&&c-n.value(await jn.checkAuth(),e.value=!0,!0))(),await s}catch{return e.value=!1,!1}finally{n.value=Date.now(),s=null}}return{isLoggedIn:e,isLoading:t,login:o,logout:i,checkAuth:l}}),sc=Kf({history:Af("/"),routes:[{path:"/public/uptime",name:"public-uptime",component:()=>tt(()=>import("./PublicUptime-konZb8MF.js"),__vite__mapDeps([0,1])),meta:{requiresAuth:!1}},{path:"/public/logs",name:"public-logs",component:()=>tt(()=>import("./PublicLogs-C_jd7GIk.js"),[]),meta:{requiresAuth:!1}},{path:"/login",name:"login",component:()=>tt(()=>import("./Login-A9QOlXQ8.js"),[]),meta:{requiresAuth:!1}},{path:"/",component:()=>tt(()=>import("./AppShell-WtLTfBVP.js"),__vite__mapDeps([2,3,4,5])),meta:{requiresAuth:!0},children:[{path:"",name:"dashboard",component:()=>tt(()=>import("./Dashboard-BfvhDjhc.js"),__vite__mapDeps([6,7]))},{path:"accounts",name:"accounts",component:()=>tt(()=>import("./Accounts-v_9wnBup.js"),__vite__mapDeps([8,9,10,4,5,7]))},{path:"settings",name:"settings",component:()=>tt(()=>import("./Settings-D6lCtCs6.js"),__vite__mapDeps([11,3,9,10,7]))},{path:"logs",name:"logs",component:()=>tt(()=>import("./Logs-D7O4Ew0p.js"),__vite__mapDeps([12,9,4]))},{path:"monitor",name:"monitor",component:()=>tt(()=>import("./Monitor-HJoAWlXV.js"),__vite__mapDeps([13,1]))},{path:"docs",name:"docs",component:()=>tt(()=>import("./Docs-BWCJuELR.js"),[])}]}]});sc.beforeEach(async e=>{const t=wh();if(e.meta.requiresAuth&&!await t.checkAuth())return{name:"login"};if(e.name==="login"&&t.isLoggedIn)return{name:"dashboard"}});const Sh=Os({__name:"App",setup(e){return(t,n)=>(er(),nr(Ot(Dl)))}}),Us=xu(Sh),Rh=Pu();Us.use(Rh);Us.use(sc);Us.mount("#app");export{Xc as A,Dl as B,Mu as C,Dh as D,Rs as E,Fe as F,xh as G,On as H,kf as R,vh as T,fl as a,Ph as b,Th as c,Os as d,er as e,Wa as f,_n as g,Lt as h,Me as i,fa as j,ps as k,wh as l,Ah as m,ms as n,ca as o,Lh as p,Fh as q,Oh as r,fn as s,mc as t,Ot as u,Nh as v,Ih as w,Ce as x,nr as y,Ch as z}; diff --git a/static/assets/index-BRM37S6x.js b/static/assets/index-BRM37S6x.js new file mode 100644 index 0000000000000000000000000000000000000000..fb6a832e52b0262c8f082457ca4a17ac1c5f8441 --- /dev/null +++ b/static/assets/index-BRM37S6x.js @@ -0,0 +1,7 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PublicUptime-CfGkj1AP.js","assets/useUptimeStatus-DItohNUu.js","assets/Login-C90rUWc3.js","assets/Checkbox.vue_vue_type_script_setup_true_lang-BBcv-AYv.js","assets/AppShell-BQVnOvTQ.js","assets/settings-SJhBKmRs.js","assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-C9Wgr_sd.js","assets/useConfirmDialog-BaiXrQSU.js","assets/Dashboard-nS2AdtwZ.js","assets/HelpTip.vue_vue_type_script_setup_true_lang-DJyeZS9P.js","assets/Accounts-CgsggPDB.js","assets/SelectMenu.vue_vue_type_script_setup_true_lang-CeWkosco.js","assets/Settings-DcFLbKTS.js","assets/Logs-BEIY_CjX.js","assets/Monitor-CREo18Oc.js"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function Ds(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const ce={},nn=[],ft=()=>{},Ii=()=>!1,vr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Fs=e=>e.startsWith("onUpdate:"),Ee=Object.assign,Ms=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},zc=Object.prototype.hasOwnProperty,oe=(e,t)=>zc.call(e,t),K=Array.isArray,rn=e=>Sr(e)==="[object Map]",Li=e=>Sr(e)==="[object Set]",J=e=>typeof e=="function",pe=e=>typeof e=="string",St=e=>typeof e=="symbol",ae=e=>e!==null&&typeof e=="object",Di=e=>(ae(e)||J(e))&&J(e.then)&&J(e.catch),Fi=Object.prototype.toString,Sr=e=>Fi.call(e),Jc=e=>Sr(e).slice(8,-1),Mi=e=>Sr(e)==="[object Object]",Ar=e=>pe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,wn=Ds(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Rr=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},Xc=/-\w/g,Ft=Rr(e=>e.replace(Xc,t=>t.slice(1).toUpperCase())),Qc=/\B([A-Z])/g,Xt=Rr(e=>e.replace(Qc,"-$1").toLowerCase()),ki=Rr(e=>e.charAt(0).toUpperCase()+e.slice(1)),Kr=Rr(e=>e?`on${ki(e)}`:""),Dt=(e,t)=>!Object.is(e,t),tr=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},ks=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Yc=e=>{const t=pe(e)?Number(e):NaN;return isNaN(t)?e:t};let uo;const Cr=()=>uo||(uo=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Bs(e){if(K(e)){const t={};for(let n=0;n{if(n){const r=n.split(ea);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function In(e){let t="";if(pe(e))t=e;else if(K(e))for(let n=0;n!!(e&&e.__v_isRef===!0),fs=e=>pe(e)?e:e==null?"":K(e)||ae(e)&&(e.toString===Fi||!J(e.toString))?ji(e)?fs(e.value):JSON.stringify(e,Hi,2):String(e),Hi=(e,t)=>ji(t)?Hi(e,t.value):rn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[Wr(r,o)+" =>"]=s,n),{})}:Li(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Wr(n))}:St(t)?Wr(t):ae(t)&&!K(t)&&!Mi(t)?String(t):t,Wr=(e,t="")=>{var n;return St(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let Se;class Vi{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,r;for(n=0,r=this.effects.length;n0)return;if(Sn){let t=Sn;for(Sn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;vn;){let t=vn;for(vn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function zi(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Ji(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),Hs(r),ia(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}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&&(Xi(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Xi(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Ln)||(e.globalVersion=Ln,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!ds(e))))return;e.flags|=2;const t=e.dep,n=fe,r=ze;fe=e,ze=!0;try{zi(e);const s=e.fn(e._value);(t.version===0||Dt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{fe=n,ze=r,Ji(e),e.flags&=-3}}function Hs(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)Hs(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function ia(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let ze=!0;const Qi=[];function Et(){Qi.push(ze),ze=!1}function wt(){const e=Qi.pop();ze=e===void 0?!0:e}function fo(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=fe;fe=void 0;try{t()}finally{fe=n}}}let Ln=0;class la{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 Vs{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(!fe||!ze||fe===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==fe)n=this.activeLink=new la(fe,this),fe.deps?(n.prevDep=fe.depsTail,fe.depsTail.nextDep=n,fe.depsTail=n):fe.deps=fe.depsTail=n,Yi(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=fe.depsTail,n.nextDep=void 0,fe.depsTail.nextDep=n,fe.depsTail=n,fe.deps===n&&(fe.deps=r)}return n}trigger(t){this.version++,Ln++,this.notify(t)}notify(t){Us();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{js()}}}function Yi(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Yi(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const ur=new WeakMap,qt=Symbol(""),hs=Symbol(""),Dn=Symbol("");function Ae(e,t,n){if(ze&&fe){let r=ur.get(e);r||ur.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new Vs),s.map=r,s.key=n),s.track()}}function bt(e,t,n,r,s,o){const i=ur.get(e);if(!i){Ln++;return}const l=c=>{c&&c.trigger()};if(Us(),t==="clear")i.forEach(l);else{const c=K(e),u=c&&Ar(n);if(c&&n==="length"){const a=Number(r);i.forEach((f,h)=>{(h==="length"||h===Dn||!St(h)&&h>=a)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(Dn)),t){case"add":c?u&&l(i.get("length")):(l(i.get(qt)),rn(e)&&l(i.get(hs)));break;case"delete":c||(l(i.get(qt)),rn(e)&&l(i.get(hs)));break;case"set":rn(e)&&l(i.get(qt));break}}js()}function ca(e,t){const n=ur.get(e);return n&&n.get(t)}function Qt(e){const t=te(e);return t===e?t:(Ae(t,"iterate",Dn),He(e)?t:t.map(Je))}function xr(e){return Ae(e=te(e),"iterate",Dn),e}function Pt(e,t){return vt(e)?dt(e)?ln(Je(t)):ln(t):Je(t)}const aa={__proto__:null,[Symbol.iterator](){return zr(this,Symbol.iterator,e=>Pt(this,e))},concat(...e){return Qt(this).concat(...e.map(t=>K(t)?Qt(t):t))},entries(){return zr(this,"entries",e=>(e[1]=Pt(this,e[1]),e))},every(e,t){return pt(this,"every",e,t,void 0,arguments)},filter(e,t){return pt(this,"filter",e,t,n=>n.map(r=>Pt(this,r)),arguments)},find(e,t){return pt(this,"find",e,t,n=>Pt(this,n),arguments)},findIndex(e,t){return pt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return pt(this,"findLast",e,t,n=>Pt(this,n),arguments)},findLastIndex(e,t){return pt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return pt(this,"forEach",e,t,void 0,arguments)},includes(...e){return Jr(this,"includes",e)},indexOf(...e){return Jr(this,"indexOf",e)},join(e){return Qt(this).join(e)},lastIndexOf(...e){return Jr(this,"lastIndexOf",e)},map(e,t){return pt(this,"map",e,t,void 0,arguments)},pop(){return gn(this,"pop")},push(...e){return gn(this,"push",e)},reduce(e,...t){return ho(this,"reduce",e,t)},reduceRight(e,...t){return ho(this,"reduceRight",e,t)},shift(){return gn(this,"shift")},some(e,t){return pt(this,"some",e,t,void 0,arguments)},splice(...e){return gn(this,"splice",e)},toReversed(){return Qt(this).toReversed()},toSorted(e){return Qt(this).toSorted(e)},toSpliced(...e){return Qt(this).toSpliced(...e)},unshift(...e){return gn(this,"unshift",e)},values(){return zr(this,"values",e=>Pt(this,e))}};function zr(e,t,n){const r=xr(e),s=r[t]();return r!==e&&!He(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const ua=Array.prototype;function pt(e,t,n,r,s,o){const i=xr(e),l=i!==e&&!He(e),c=i[t];if(c!==ua[t]){const f=c.apply(e,o);return l?Je(f):f}let u=n;i!==e&&(l?u=function(f,h){return n.call(this,Pt(e,f),h,e)}:n.length>2&&(u=function(f,h){return n.call(this,f,h,e)}));const a=c.call(i,u,r);return l&&s?s(a):a}function ho(e,t,n,r){const s=xr(e);let o=n;return s!==e&&(He(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,Pt(e,l),c,e)}),s[t](o,...r)}function Jr(e,t,n){const r=te(e);Ae(r,"iterate",Dn);const s=r[t](...n);return(s===-1||s===!1)&&Tr(n[0])?(n[0]=te(n[0]),r[t](...n)):s}function gn(e,t,n=[]){Et(),Us();const r=te(e)[t].apply(e,n);return js(),wt(),r}const fa=Ds("__proto__,__v_isRef,__isVue"),Zi=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(St));function da(e){St(e)||(e=String(e));const t=te(this);return Ae(t,"has",e),t.hasOwnProperty(e)}class el{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?va:sl:o?rl:nl).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=K(t);if(!s){let c;if(i&&(c=aa[n]))return c;if(n==="hasOwnProperty")return da}const l=Reflect.get(t,n,de(t)?t:r);if((St(n)?Zi.has(n):fa(n))||(s||Ae(t,"get",n),o))return l;if(de(l)){const c=i&&Ar(n)?l:l.value;return s&&ae(c)?ms(c):c}return ae(l)?s?ms(l):dn(l):l}}class tl extends el{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=K(t)&&Ar(n);if(!this._isShallow){const u=vt(o);if(!He(r)&&!vt(r)&&(o=te(o),r=te(r)),!i&&de(o)&&!de(r))return u||(o.value=r),!0}const l=i?Number(n)e,Gn=e=>Reflect.getPrototypeOf(e);function ya(e,t,n){return function(...r){const s=this.__v_raw,o=te(s),i=rn(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=s[e](...r),a=n?ps:t?ln:Je;return!t&&Ae(o,"iterate",c?hs:qt),{next(){const{value:f,done:h}=u.next();return h?{value:f,done:h}:{value:l?[a(f[0]),a(f[1])]:a(f),done:h}},[Symbol.iterator](){return this}}}}function zn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function ba(e,t){const n={get(s){const o=this.__v_raw,i=te(o),l=te(s);e||(Dt(s,l)&&Ae(i,"get",s),Ae(i,"get",l));const{has:c}=Gn(i),u=t?ps:e?ln:Je;if(c.call(i,s))return u(o.get(s));if(c.call(i,l))return u(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&Ae(te(s),"iterate",qt),s.size},has(s){const o=this.__v_raw,i=te(o),l=te(s);return e||(Dt(s,l)&&Ae(i,"has",s),Ae(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,c=te(l),u=t?ps:e?ln:Je;return!e&&Ae(c,"iterate",qt),l.forEach((a,f)=>s.call(o,u(a),u(f),i))}};return Ee(n,e?{add:zn("add"),set:zn("set"),delete:zn("delete"),clear:zn("clear")}:{add(s){!t&&!He(s)&&!vt(s)&&(s=te(s));const o=te(this);return Gn(o).has.call(o,s)||(o.add(s),bt(o,"add",s,s)),this},set(s,o){!t&&!He(o)&&!vt(o)&&(o=te(o));const i=te(this),{has:l,get:c}=Gn(i);let u=l.call(i,s);u||(s=te(s),u=l.call(i,s));const a=c.call(i,s);return i.set(s,o),u?Dt(o,a)&&bt(i,"set",s,o):bt(i,"add",s,o),this},delete(s){const o=te(this),{has:i,get:l}=Gn(o);let c=i.call(o,s);c||(s=te(s),c=i.call(o,s)),l&&l.call(o,s);const u=o.delete(s);return c&&bt(o,"delete",s,void 0),u},clear(){const s=te(this),o=s.size!==0,i=s.clear();return o&&bt(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=ya(s,e,t)}),n}function $s(e,t){const n=ba(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(oe(n,s)&&s in r?n:r,s,o)}const _a={get:$s(!1,!1)},Ea={get:$s(!1,!0)},wa={get:$s(!0,!1)};const nl=new WeakMap,rl=new WeakMap,sl=new WeakMap,va=new WeakMap;function Sa(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Aa(e){return e.__v_skip||!Object.isExtensible(e)?0:Sa(Jc(e))}function dn(e){return vt(e)?e:qs(e,!1,pa,_a,nl)}function ol(e){return qs(e,!1,ga,Ea,rl)}function ms(e){return qs(e,!0,ma,wa,sl)}function qs(e,t,n,r,s){if(!ae(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=Aa(e);if(o===0)return e;const i=s.get(e);if(i)return i;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function dt(e){return vt(e)?dt(e.__v_raw):!!(e&&e.__v_isReactive)}function vt(e){return!!(e&&e.__v_isReadonly)}function He(e){return!!(e&&e.__v_isShallow)}function Tr(e){return e?!!e.__v_raw:!1}function te(e){const t=e&&e.__v_raw;return t?te(t):e}function Ks(e){return!oe(e,"__v_skip")&&Object.isExtensible(e)&&Bi(e,"__v_skip",!0),e}const Je=e=>ae(e)?dn(e):e,ln=e=>ae(e)?ms(e):e;function de(e){return e?e.__v_isRef===!0:!1}function Kt(e){return il(e,!1)}function Ra(e){return il(e,!0)}function il(e,t){return de(e)?e:new Ca(e,t)}class Ca{constructor(t,n){this.dep=new Vs,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:te(t),this._value=n?t:Je(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||He(t)||vt(t);t=r?t:te(t),Dt(t,n)&&(this._rawValue=t,this._value=r?t:Je(t),this.dep.trigger())}}function ht(e){return de(e)?e.value:e}const xa={get:(e,t,n)=>t==="__v_raw"?e:ht(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return de(s)&&!de(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function ll(e){return dt(e)?e:new Proxy(e,xa)}function Ta(e){const t=K(e)?new Array(e.length):{};for(const n in e)t[n]=cl(e,n);return t}class Oa{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._raw=te(t);let s=!0,o=t;if(!K(t)||!Ar(String(n)))do s=!Tr(o)||He(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=ht(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&de(this._raw[this._key])){const n=this._object[this._key];if(de(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return ca(this._raw,this._key)}}class Pa{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Na(e,t,n){return de(e)?e:J(e)?new Pa(e):ae(e)&&arguments.length>1?cl(e,t,n):Kt(e)}function cl(e,t,n){return new Oa(e,t,n)}class Ia{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Vs(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Ln-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&fe!==this)return Gi(this,!0),!0}get value(){const t=this.dep.track();return Xi(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function La(e,t,n=!1){let r,s;return J(e)?r=e:(r=e.get,s=e.set),new Ia(r,s,n)}const Jn={},fr=new WeakMap;let jt;function Da(e,t=!1,n=jt){if(n){let r=fr.get(n);r||fr.set(n,r=[]),r.push(e)}}function Fa(e,t,n=ce){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:c}=n,u=O=>s?O:He(O)||s===!1||s===0?_t(O,1):_t(O);let a,f,h,m,g=!1,_=!1;if(de(e)?(f=()=>e.value,g=He(e)):dt(e)?(f=()=>u(e),g=!0):K(e)?(_=!0,g=e.some(O=>dt(O)||He(O)),f=()=>e.map(O=>{if(de(O))return O.value;if(dt(O))return u(O);if(J(O))return c?c(O,2):O()})):J(e)?t?f=c?()=>c(e,2):e:f=()=>{if(h){Et();try{h()}finally{wt()}}const O=jt;jt=a;try{return c?c(e,3,[m]):e(m)}finally{jt=O}}:f=ft,t&&s){const O=f,B=s===!0?1/0:s;f=()=>_t(O(),B)}const E=qi(),C=()=>{a.stop(),E&&E.active&&Ms(E.effects,a)};if(o&&t){const O=t;t=(...B)=>{O(...B),C()}}let T=_?new Array(e.length).fill(Jn):Jn;const N=O=>{if(!(!(a.flags&1)||!a.dirty&&!O))if(t){const B=a.run();if(s||g||(_?B.some((G,j)=>Dt(G,T[j])):Dt(B,T))){h&&h();const G=jt;jt=a;try{const j=[B,T===Jn?void 0:_&&T[0]===Jn?[]:T,m];T=B,c?c(t,3,j):t(...j)}finally{jt=G}}}else a.run()};return l&&l(N),a=new Ki(f),a.scheduler=i?()=>i(N,!1):N,m=O=>Da(O,!1,a),h=a.onStop=()=>{const O=fr.get(a);if(O){if(c)c(O,4);else for(const B of O)B();fr.delete(a)}},t?r?N(!0):T=a.run():i?i(N.bind(null,!0),!0):a.run(),C.pause=a.pause.bind(a),C.resume=a.resume.bind(a),C.stop=C,C}function _t(e,t=1/0,n){if(t<=0||!ae(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,de(e))_t(e.value,t,n);else if(K(e))for(let r=0;r{_t(r,t,n)});else if(Mi(e)){for(const r in e)_t(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&_t(e[r],t,n)}return e}function Hn(e,t,n,r){try{return r?e(...r):e()}catch(s){Or(s,t,n)}}function Xe(e,t,n,r){if(J(e)){const s=Hn(e,t,n,r);return s&&Di(s)&&s.catch(o=>{Or(o,t,n)}),s}if(K(e)){const s=[];for(let o=0;o>>1,s=Ne[r],o=Fn(s);o=Fn(n)?Ne.push(e):Ne.splice(ka(t),0,e),e.flags|=1,ul()}}function ul(){dr||(dr=al.then(dl))}function Ba(e){K(e)?sn.push(...e):Nt&&e.id===-1?Nt.splice(Zt+1,0,e):e.flags&1||(sn.push(e),e.flags|=1),ul()}function po(e,t,n=at+1){for(;nFn(n)-Fn(r));if(sn.length=0,Nt){Nt.push(...t);return}for(Nt=t,Zt=0;Zte.id==null?e.flags&2?-1:1/0:e.id;function dl(e){try{for(at=0;at{r._d&&gr(-1);const o=hr(t);let i;try{i=e(...s)}finally{hr(o),r._d&&gr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function Dp(e,t){if(xe===null)return e;const n=Mr(xe),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&J(t)?t.call(r&&r.proxy):t}}function Ua(){return!!(Fr()||Wt)}const ja=Symbol.for("v-scx"),Ha=()=>We(ja);function An(e,t,n){return ml(e,t,n)}function ml(e,t,n=ce){const{immediate:r,deep:s,flush:o,once:i}=n,l=Ee({},n),c=t&&r||!t&&o!=="post";let u;if(Un){if(o==="sync"){const m=Ha();u=m.__watcherHandles||(m.__watcherHandles=[])}else if(!c){const m=()=>{};return m.stop=ft,m.resume=ft,m.pause=ft,m}}const a=Ie;l.call=(m,g,_)=>Xe(m,a,g,_);let f=!1;o==="post"?l.scheduler=m=>{Oe(m,a&&a.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(m,g)=>{g?m():Gs(m)}),l.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,a&&(m.id=a.uid,m.i=a))};const h=Fa(e,t,l);return Un&&(u?u.push(h):c&&h()),h}function Va(e,t,n){const r=this.proxy,s=pe(e)?e.includes(".")?gl(r,e):()=>r[e]:e.bind(r,r);let o;J(t)?o=t:(o=t.handler,n=t);const i=Vn(this),l=ml(s,o.bind(r),n);return i(),l}function gl(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,Rn=e=>e&&(e.disabled||e.disabled===""),mo=e=>e&&(e.defer||e.defer===""),go=e=>typeof SVGElement<"u"&&e instanceof SVGElement,yo=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,gs=(e,t)=>{const n=e&&e.to;return pe(n)?t?t(n):null:n},_l={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,u){const{mc:a,pc:f,pbc:h,o:{insert:m,querySelector:g,createText:_,createComment:E}}=u,C=Rn(t.props);let{shapeFlag:T,children:N,dynamicChildren:O}=t;if(e==null){const B=t.el=_(""),G=t.anchor=_("");m(B,n,r),m(G,n,r);const j=(x,H)=>{T&16&&a(N,x,H,s,o,i,l,c)},U=()=>{const x=t.target=gs(t.props,g),H=El(x,t,_,m);x&&(i!=="svg"&&go(x)?i="svg":i!=="mathml"&&yo(x)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(x),C||(j(x,H),rr(t,!1)))};C&&(j(n,G),rr(t,!0)),mo(t.props)?(t.el.__isMounted=!1,Oe(()=>{U(),delete t.el.__isMounted},o)):U()}else{if(mo(t.props)&&e.el.__isMounted===!1){Oe(()=>{_l.process(e,t,n,r,s,o,i,l,c,u)},o);return}t.el=e.el,t.targetStart=e.targetStart;const B=t.anchor=e.anchor,G=t.target=e.target,j=t.targetAnchor=e.targetAnchor,U=Rn(e.props),x=U?n:G,H=U?B:j;if(i==="svg"||go(G)?i="svg":(i==="mathml"||yo(G))&&(i="mathml"),O?(h(e.dynamicChildren,O,x,s,o,i,l),Qs(e,t,!0)):c||f(e,t,x,H,s,o,i,l,!1),C)U?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Xn(t,n,B,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const Y=t.target=gs(t.props,g);Y&&Xn(t,Y,null,u,0)}else U&&Xn(t,G,j,u,1);rr(t,C)}},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetStart:u,targetAnchor:a,target:f,props:h}=e;if(f&&(s(u),s(a)),o&&s(c),i&16){const m=o||!Rn(h);for(let g=0;g{e.isMounted=!0}),Pl(()=>{e.isUnmounting=!0}),e}const qe=[Function,Array],vl={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:qe,onEnter:qe,onAfterEnter:qe,onEnterCancelled:qe,onBeforeLeave:qe,onLeave:qe,onAfterLeave:qe,onLeaveCancelled:qe,onBeforeAppear:qe,onAppear:qe,onAfterAppear:qe,onAppearCancelled:qe},Sl=e=>{const t=e.subTree;return t.component?Sl(t.component):t},Ka={name:"BaseTransition",props:vl,setup(e,{slots:t}){const n=Fr(),r=wl();return()=>{const s=t.default&&zs(t.default(),!0);if(!s||!s.length)return;const o=Al(s),i=te(e),{mode:l}=i;if(r.isLeaving)return Xr(o);const c=bo(o);if(!c)return Xr(o);let u=Mn(c,i,r,n,f=>u=f);c.type!==Re&&zt(c,u);let a=n.subTree&&bo(n.subTree);if(a&&a.type!==Re&&!Ht(a,c)&&Sl(n).type!==Re){let f=Mn(a,i,r,n);if(zt(a,f),l==="out-in"&&c.type!==Re)return r.isLeaving=!0,f.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete f.afterLeave,a=void 0},Xr(o);l==="in-out"&&c.type!==Re?f.delayLeave=(h,m,g)=>{const _=Rl(r,a);_[String(a.key)]=a,h[yt]=()=>{m(),h[yt]=void 0,delete u.delayedLeave,a=void 0},u.delayedLeave=()=>{g(),delete u.delayedLeave,a=void 0}}:a=void 0}else a&&(a=void 0);return o}}};function Al(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==Re){t=n;break}}return t}const Wa=Ka;function Rl(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function Mn(e,t,n,r,s){const{appear:o,mode:i,persisted:l=!1,onBeforeEnter:c,onEnter:u,onAfterEnter:a,onEnterCancelled:f,onBeforeLeave:h,onLeave:m,onAfterLeave:g,onLeaveCancelled:_,onBeforeAppear:E,onAppear:C,onAfterAppear:T,onAppearCancelled:N}=t,O=String(e.key),B=Rl(n,e),G=(x,H)=>{x&&Xe(x,r,9,H)},j=(x,H)=>{const Y=H[1];G(x,H),K(x)?x.every(L=>L.length<=1)&&Y():x.length<=1&&Y()},U={mode:i,persisted:l,beforeEnter(x){let H=c;if(!n.isMounted)if(o)H=E||c;else return;x[yt]&&x[yt](!0);const Y=B[O];Y&&Ht(e,Y)&&Y.el[yt]&&Y.el[yt](),G(H,[x])},enter(x){let H=u,Y=a,L=f;if(!n.isMounted)if(o)H=C||u,Y=T||a,L=N||f;else return;let Q=!1;const le=x[Qn]=we=>{Q||(Q=!0,we?G(L,[x]):G(Y,[x]),U.delayedLeave&&U.delayedLeave(),x[Qn]=void 0)};H?j(H,[x,le]):le()},leave(x,H){const Y=String(e.key);if(x[Qn]&&x[Qn](!0),n.isUnmounting)return H();G(h,[x]);let L=!1;const Q=x[yt]=le=>{L||(L=!0,H(),le?G(_,[x]):G(g,[x]),x[yt]=void 0,B[Y]===e&&delete B[Y])};B[Y]=e,m?j(m,[x,Q]):Q()},clone(x){const H=Mn(x,t,n,r,s);return s&&s(H),H}};return U}function Xr(e){if(Nr(e))return e=Mt(e),e.children=null,e}function bo(e){if(!Nr(e))return bl(e.type)&&e.children?Al(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&J(n.default))return n.default()}}function zt(e,t){e.shapeFlag&6&&e.component?(e.transition=t,zt(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 zs(e,t=!1,n){let r=[],s=0;for(let o=0;o1)for(let o=0;oCn(g,t&&(K(t)?t[_]:t),n,r,s));return}if(on(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&Cn(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?Mr(r.component):r.el,i=s?null:o,{i:l,r:c}=e,u=t&&t.r,a=l.refs===ce?l.refs={}:l.refs,f=l.setupState,h=te(f),m=f===ce?Ii:g=>oe(h,g);if(u!=null&&u!==c){if(_o(t),pe(u))a[u]=null,m(u)&&(f[u]=null);else if(de(u)){u.value=null;const g=t;g.k&&(a[g.k]=null)}}if(J(c))Hn(c,l,12,[i,a]);else{const g=pe(c),_=de(c);if(g||_){const E=()=>{if(e.f){const C=g?m(c)?f[c]:a[c]:c.value;if(s)K(C)&&Ms(C,o);else if(K(C))C.includes(o)||C.push(o);else if(g)a[c]=[o],m(c)&&(f[c]=a[c]);else{const T=[o];c.value=T,e.k&&(a[e.k]=T)}}else g?(a[c]=i,m(c)&&(f[c]=i)):_&&(c.value=i,e.k&&(a[e.k]=i))};if(i){const C=()=>{E(),pr.delete(e)};C.id=-1,pr.set(e,C),Oe(C,n)}else _o(e),E()}}}function _o(e){const t=pr.get(e);t&&(t.flags|=8,pr.delete(e))}Cr().requestIdleCallback;Cr().cancelIdleCallback;const on=e=>!!e.type.__asyncLoader,Nr=e=>e.type.__isKeepAlive;function Ga(e,t){xl(e,"a",t)}function za(e,t){xl(e,"da",t)}function xl(e,t,n=Ie){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Ir(t,r,n),n){let s=n.parent;for(;s&&s.parent;)Nr(s.parent.vnode)&&Ja(r,t,n,s),s=s.parent}}function Ja(e,t,n,r){const s=Ir(t,e,r,!0);Nl(()=>{Ms(r[t],s)},n)}function Ir(e,t,n=Ie,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{Et();const l=Vn(n),c=Xe(t,n,e,i);return l(),wt(),c});return r?s.unshift(o):s.push(o),o}}const At=e=>(t,n=Ie)=>{(!Un||e==="sp")&&Ir(e,(...r)=>t(...r),n)},Xa=At("bm"),Tl=At("m"),Qa=At("bu"),Ol=At("u"),Pl=At("bum"),Nl=At("um"),Ya=At("sp"),Za=At("rtg"),eu=At("rtc");function tu(e,t=Ie){Ir("ec",e,t)}const nu=Symbol.for("v-ndc");function ru(e,t,n,r){let s;const o=n,i=K(e);if(i||pe(e)){const l=i&&dt(e);let c=!1,u=!1;l&&(c=!He(e),u=vt(e),e=xr(e)),s=new Array(e.length);for(let a=0,f=e.length;at(l,c,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let c=0,u=l.length;c0;return Ke(),yr(ve,null,[_e("slot",n,r)],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),Ke();const i=o&&Il(o(n)),l=n.key||i&&i.key,c=yr(ve,{key:(l&&!St(l)?l:`_${t}`)+(!i&&r?"_fb":"")},i||[],i&&e._===1?64:-2);return c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),o&&o._c&&(o._d=!0),c}function Il(e){return e.some(t=>Bn(t)?!(t.type===Re||t.type===ve&&!Il(t.children)):!0)?e:null}const ys=e=>e?Xl(e)?Mr(e):ys(e.parent):null,xn=Ee(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>ys(e.parent),$root:e=>ys(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Dl(e),$forceUpdate:e=>e.f||(e.f=()=>{Gs(e.update)}),$nextTick:e=>e.n||(e.n=Ws.bind(e.proxy)),$watch:e=>Va.bind(e)}),Qr=(e,t)=>e!==ce&&!e.__isScriptSetup&&oe(e,t),su={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:o,accessCache:i,type:l,appContext:c}=e;if(t[0]!=="$"){const h=i[t];if(h!==void 0)switch(h){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(Qr(r,t))return i[t]=1,r[t];if(s!==ce&&oe(s,t))return i[t]=2,s[t];if(oe(o,t))return i[t]=3,o[t];if(n!==ce&&oe(n,t))return i[t]=4,n[t];bs&&(i[t]=0)}}const u=xn[t];let a,f;if(u)return t==="$attrs"&&Ae(e.attrs,"get",""),u(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==ce&&oe(n,t))return i[t]=4,n[t];if(f=c.config.globalProperties,oe(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return Qr(s,t)?(s[t]=n,!0):r!==ce&&oe(r,t)?(r[t]=n,!0):oe(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:o,type:i}},l){let c;return!!(n[l]||e!==ce&&l[0]!=="$"&&oe(e,l)||Qr(t,l)||oe(o,l)||oe(r,l)||oe(xn,l)||oe(s.config.globalProperties,l)||(c=i.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:oe(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Eo(e){return K(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let bs=!0;function ou(e){const t=Dl(e),n=e.proxy,r=e.ctx;bs=!1,t.beforeCreate&&wo(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:u,created:a,beforeMount:f,mounted:h,beforeUpdate:m,updated:g,activated:_,deactivated:E,beforeDestroy:C,beforeUnmount:T,destroyed:N,unmounted:O,render:B,renderTracked:G,renderTriggered:j,errorCaptured:U,serverPrefetch:x,expose:H,inheritAttrs:Y,components:L,directives:Q,filters:le}=t;if(u&&iu(u,r,null),i)for(const z in i){const Z=i[z];J(Z)&&(r[z]=Z.bind(n))}if(s){const z=s.call(n,n);ae(z)&&(e.data=dn(z))}if(bs=!0,o)for(const z in o){const Z=o[z],Ve=J(Z)?Z.bind(n,n):J(Z.get)?Z.get.bind(n,n):ft,Ze=!J(Z)&&J(Z.set)?Z.set.bind(n):ft,ye=Ue({get:Ve,set:Ze});Object.defineProperty(r,z,{enumerable:!0,configurable:!0,get:()=>ye.value,set:me=>ye.value=me})}if(l)for(const z in l)Ll(l[z],r,n,z);if(c){const z=J(c)?c.call(n):c;Reflect.ownKeys(z).forEach(Z=>{nr(Z,z[Z])})}a&&wo(a,e,"c");function ee(z,Z){K(Z)?Z.forEach(Ve=>z(Ve.bind(n))):Z&&z(Z.bind(n))}if(ee(Xa,f),ee(Tl,h),ee(Qa,m),ee(Ol,g),ee(Ga,_),ee(za,E),ee(tu,U),ee(eu,G),ee(Za,j),ee(Pl,T),ee(Nl,O),ee(Ya,x),K(H))if(H.length){const z=e.exposed||(e.exposed={});H.forEach(Z=>{Object.defineProperty(z,Z,{get:()=>n[Z],set:Ve=>n[Z]=Ve,enumerable:!0})})}else e.exposed||(e.exposed={});B&&e.render===ft&&(e.render=B),Y!=null&&(e.inheritAttrs=Y),L&&(e.components=L),Q&&(e.directives=Q),x&&Cl(e)}function iu(e,t,n=ft){K(e)&&(e=_s(e));for(const r in e){const s=e[r];let o;ae(s)?"default"in s?o=We(s.from||r,s.default,!0):o=We(s.from||r):o=We(s),de(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function wo(e,t,n){Xe(K(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Ll(e,t,n,r){let s=r.includes(".")?gl(n,r):()=>n[r];if(pe(e)){const o=t[e];J(o)&&An(s,o)}else if(J(e))An(s,e.bind(n));else if(ae(e))if(K(e))e.forEach(o=>Ll(o,t,n,r));else{const o=J(e.handler)?e.handler.bind(n):t[e.handler];J(o)&&An(s,o,e)}}function Dl(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>mr(c,u,i,!0)),mr(c,t,i)),ae(t)&&o.set(t,c),c}function mr(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&mr(e,o,n,!0),s&&s.forEach(i=>mr(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=lu[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const lu={data:vo,props:So,emits:So,methods:En,computed:En,beforeCreate:Te,created:Te,beforeMount:Te,mounted:Te,beforeUpdate:Te,updated:Te,beforeDestroy:Te,beforeUnmount:Te,destroyed:Te,unmounted:Te,activated:Te,deactivated:Te,errorCaptured:Te,serverPrefetch:Te,components:En,directives:En,watch:au,provide:vo,inject:cu};function vo(e,t){return t?e?function(){return Ee(J(e)?e.call(this,this):e,J(t)?t.call(this,this):t)}:t:e}function cu(e,t){return En(_s(e),_s(t))}function _s(e){if(K(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Ft(t)}Modifiers`]||e[`${Xt(t)}Modifiers`];function hu(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||ce;let s=n;const o=t.startsWith("update:"),i=o&&du(r,t.slice(7));i&&(i.trim&&(s=n.map(a=>pe(a)?a.trim():a)),i.number&&(s=n.map(ks)));let l,c=r[l=Kr(t)]||r[l=Kr(Ft(t))];!c&&o&&(c=r[l=Kr(Xt(t))]),c&&Xe(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Xe(u,e,6,s)}}const pu=new WeakMap;function Ml(e,t,n=!1){const r=n?pu:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!J(e)){const c=u=>{const a=Ml(u,t,!0);a&&(l=!0,Ee(i,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(ae(e)&&r.set(e,null),null):(K(o)?o.forEach(c=>i[c]=null):Ee(i,o),ae(e)&&r.set(e,i),i)}function Lr(e,t){return!e||!vr(t)?!1:(t=t.slice(2).replace(/Once$/,""),oe(e,t[0].toLowerCase()+t.slice(1))||oe(e,Xt(t))||oe(e,t))}function Ao(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:a,props:f,data:h,setupState:m,ctx:g,inheritAttrs:_}=e,E=hr(e);let C,T;try{if(n.shapeFlag&4){const O=s||r,B=O;C=ut(u.call(B,O,a,f,m,h,g)),T=l}else{const O=t;C=ut(O.length>1?O(f,{attrs:l,slots:i,emit:c}):O(f,null)),T=t.props?l:mu(l)}}catch(O){Tn.length=0,Or(O,e,1),C=_e(Re)}let N=C;if(T&&_!==!1){const O=Object.keys(T),{shapeFlag:B}=N;O.length&&B&7&&(o&&O.some(Fs)&&(T=gu(T,o)),N=Mt(N,T,!1,!0))}return n.dirs&&(N=Mt(N,null,!1,!0),N.dirs=N.dirs?N.dirs.concat(n.dirs):n.dirs),n.transition&&zt(N,n.transition),C=N,hr(E),C}const mu=e=>{let t;for(const n in e)(n==="class"||n==="style"||vr(n))&&((t||(t={}))[n]=e[n]);return t},gu=(e,t)=>{const n={};for(const r in e)(!Fs(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function yu(e,t,n){const{props:r,children:s,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 r?Ro(r,i,u):!!i;if(c&8){const a=t.dynamicProps;for(let f=0;fObject.create(kl),Ul=e=>Object.getPrototypeOf(e)===kl;function _u(e,t,n,r=!1){const s={},o=Bl();e.propsDefaults=Object.create(null),jl(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:ol(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function Eu(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=te(s),[c]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const a=e.vnode.dynamicProps;for(let f=0;f{c=!0;const[h,m]=Hl(f,t,!0);Ee(i,h),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!c)return ae(e)&&r.set(e,nn),nn;if(K(o))for(let a=0;ae==="_"||e==="_ctx"||e==="$stable",Xs=e=>K(e)?e.map(ut):[ut(e)],vu=(e,t,n)=>{if(t._n)return t;const r=pl((...s)=>Xs(t(...s)),n);return r._c=!1,r},Vl=(e,t,n)=>{const r=e._ctx;for(const s in e){if(Js(s))continue;const o=e[s];if(J(o))t[s]=vu(s,o,r);else if(o!=null){const i=Xs(o);t[s]=()=>i}}},$l=(e,t)=>{const n=Xs(t);e.slots.default=()=>n},ql=(e,t,n)=>{for(const r in t)(n||!Js(r))&&(e[r]=t[r])},Su=(e,t,n)=>{const r=e.slots=Bl();if(e.vnode.shapeFlag&32){const s=t._;s?(ql(r,t,n),n&&Bi(r,"_",s,!0)):Vl(t,r)}else t&&$l(e,t)},Au=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=ce;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:ql(s,t,n):(o=!t.$stable,Vl(t,s)),i=t}else t&&($l(e,t),i={default:1});if(o)for(const l in s)!Js(l)&&i[l]==null&&delete s[l]},Oe=Ou;function Ru(e){return Cu(e)}function Cu(e,t){const n=Cr();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:a,parentNode:f,nextSibling:h,setScopeId:m=ft,insertStaticContent:g}=e,_=(d,p,y,w=null,A=null,v=null,D=void 0,I=null,P=!!p.dynamicChildren)=>{if(d===p)return;d&&!Ht(d,p)&&(w=S(d),me(d,A,v,!0),d=null),p.patchFlag===-2&&(P=!1,p.dynamicChildren=null);const{type:R,ref:q,shapeFlag:M}=p;switch(R){case Dr:E(d,p,y,w);break;case Re:C(d,p,y,w);break;case sr:d==null&&T(p,y,w,D);break;case ve:L(d,p,y,w,A,v,D,I,P);break;default:M&1?B(d,p,y,w,A,v,D,I,P):M&6?Q(d,p,y,w,A,v,D,I,P):(M&64||M&128)&&R.process(d,p,y,w,A,v,D,I,P,V)}q!=null&&A?Cn(q,d&&d.ref,v,p||d,!p):q==null&&d&&d.ref!=null&&Cn(d.ref,null,v,d,!0)},E=(d,p,y,w)=>{if(d==null)r(p.el=l(p.children),y,w);else{const A=p.el=d.el;p.children!==d.children&&u(A,p.children)}},C=(d,p,y,w)=>{d==null?r(p.el=c(p.children||""),y,w):p.el=d.el},T=(d,p,y,w)=>{[d.el,d.anchor]=g(d.children,p,y,w,d.el,d.anchor)},N=({el:d,anchor:p},y,w)=>{let A;for(;d&&d!==p;)A=h(d),r(d,y,w),d=A;r(p,y,w)},O=({el:d,anchor:p})=>{let y;for(;d&&d!==p;)y=h(d),s(d),d=y;s(p)},B=(d,p,y,w,A,v,D,I,P)=>{if(p.type==="svg"?D="svg":p.type==="math"&&(D="mathml"),d==null)G(p,y,w,A,v,D,I,P);else{const R=d.el&&d.el._isVueCE?d.el:null;try{R&&R._beginPatch(),x(d,p,A,v,D,I,P)}finally{R&&R._endPatch()}}},G=(d,p,y,w,A,v,D,I)=>{let P,R;const{props:q,shapeFlag:M,transition:$,dirs:W}=d;if(P=d.el=i(d.type,v,q&&q.is,q),M&8?a(P,d.children):M&16&&U(d.children,P,null,w,A,Yr(d,v),D,I),W&&kt(d,null,w,"created"),j(P,d,d.scopeId,D,w),q){for(const ue in q)ue!=="value"&&!wn(ue)&&o(P,ue,null,q[ue],v,w);"value"in q&&o(P,"value",null,q.value,v),(R=q.onVnodeBeforeMount)&&ot(R,w,d)}W&&kt(d,null,w,"beforeMount");const re=xu(A,$);re&&$.beforeEnter(P),r(P,p,y),((R=q&&q.onVnodeMounted)||re||W)&&Oe(()=>{R&&ot(R,w,d),re&&$.enter(P),W&&kt(d,null,w,"mounted")},A)},j=(d,p,y,w,A)=>{if(y&&m(d,y),w)for(let v=0;v{for(let R=P;R{const I=p.el=d.el;let{patchFlag:P,dynamicChildren:R,dirs:q}=p;P|=d.patchFlag&16;const M=d.props||ce,$=p.props||ce;let W;if(y&&Bt(y,!1),(W=$.onVnodeBeforeUpdate)&&ot(W,y,p,d),q&&kt(p,d,y,"beforeUpdate"),y&&Bt(y,!0),(M.innerHTML&&$.innerHTML==null||M.textContent&&$.textContent==null)&&a(I,""),R?H(d.dynamicChildren,R,I,y,w,Yr(p,A),v):D||Z(d,p,I,null,y,w,Yr(p,A),v,!1),P>0){if(P&16)Y(I,M,$,y,A);else if(P&2&&M.class!==$.class&&o(I,"class",null,$.class,A),P&4&&o(I,"style",M.style,$.style,A),P&8){const re=p.dynamicProps;for(let ue=0;ue{W&&ot(W,y,p,d),q&&kt(p,d,y,"updated")},w)},H=(d,p,y,w,A,v,D)=>{for(let I=0;I{if(p!==y){if(p!==ce)for(const v in p)!wn(v)&&!(v in y)&&o(d,v,p[v],null,A,w);for(const v in y){if(wn(v))continue;const D=y[v],I=p[v];D!==I&&v!=="value"&&o(d,v,I,D,A,w)}"value"in y&&o(d,"value",p.value,y.value,A)}},L=(d,p,y,w,A,v,D,I,P)=>{const R=p.el=d?d.el:l(""),q=p.anchor=d?d.anchor:l("");let{patchFlag:M,dynamicChildren:$,slotScopeIds:W}=p;W&&(I=I?I.concat(W):W),d==null?(r(R,y,w),r(q,y,w),U(p.children||[],y,q,A,v,D,I,P)):M>0&&M&64&&$&&d.dynamicChildren&&d.dynamicChildren.length===$.length?(H(d.dynamicChildren,$,y,A,v,D,I),(p.key!=null||A&&p===A.subTree)&&Qs(d,p,!0)):Z(d,p,y,q,A,v,D,I,P)},Q=(d,p,y,w,A,v,D,I,P)=>{p.slotScopeIds=I,d==null?p.shapeFlag&512?A.ctx.activate(p,y,w,D,P):le(p,y,w,A,v,D,P):we(d,p,P)},le=(d,p,y,w,A,v,D)=>{const I=d.component=Bu(d,w,A);if(Nr(d)&&(I.ctx.renderer=V),Uu(I,!1,D),I.asyncDep){if(A&&A.registerDep(I,ee,D),!d.el){const P=I.subTree=_e(Re);C(null,P,p,y),d.placeholder=P.el}}else ee(I,d,p,y,A,v,D)},we=(d,p,y)=>{const w=p.component=d.component;if(yu(d,p,y))if(w.asyncDep&&!w.asyncResolved){z(w,p,y);return}else w.next=p,w.update();else p.el=d.el,w.vnode=p},ee=(d,p,y,w,A,v,D)=>{const I=()=>{if(d.isMounted){let{next:M,bu:$,u:W,parent:re,vnode:ue}=d;{const rt=Kl(d);if(rt){M&&(M.el=ue.el,z(d,M,D)),rt.asyncDep.then(()=>{d.isUnmounted||I()});return}}let ie=M,Le;Bt(d,!1),M?(M.el=ue.el,z(d,M,D)):M=ue,$&&tr($),(Le=M.props&&M.props.onVnodeBeforeUpdate)&&ot(Le,re,M,ue),Bt(d,!0);const De=Ao(d),nt=d.subTree;d.subTree=De,_(nt,De,f(nt.el),S(nt),d,A,v),M.el=De.el,ie===null&&bu(d,De.el),W&&Oe(W,A),(Le=M.props&&M.props.onVnodeUpdated)&&Oe(()=>ot(Le,re,M,ue),A)}else{let M;const{el:$,props:W}=p,{bm:re,m:ue,parent:ie,root:Le,type:De}=d,nt=on(p);Bt(d,!1),re&&tr(re),!nt&&(M=W&&W.onVnodeBeforeMount)&&ot(M,ie,p),Bt(d,!0);{Le.ce&&Le.ce._def.shadowRoot!==!1&&Le.ce._injectChildStyle(De);const rt=d.subTree=Ao(d);_(null,rt,y,w,d,A,v),p.el=rt.el}if(ue&&Oe(ue,A),!nt&&(M=W&&W.onVnodeMounted)){const rt=p;Oe(()=>ot(M,ie,rt),A)}(p.shapeFlag&256||ie&&on(ie.vnode)&&ie.vnode.shapeFlag&256)&&d.a&&Oe(d.a,A),d.isMounted=!0,p=y=w=null}};d.scope.on();const P=d.effect=new Ki(I);d.scope.off();const R=d.update=P.run.bind(P),q=d.job=P.runIfDirty.bind(P);q.i=d,q.id=d.uid,P.scheduler=()=>Gs(q),Bt(d,!0),R()},z=(d,p,y)=>{p.component=d;const w=d.vnode.props;d.vnode=p,d.next=null,Eu(d,p.props,w,y),Au(d,p.children,y),Et(),po(d),wt()},Z=(d,p,y,w,A,v,D,I,P=!1)=>{const R=d&&d.children,q=d?d.shapeFlag:0,M=p.children,{patchFlag:$,shapeFlag:W}=p;if($>0){if($&128){Ze(R,M,y,w,A,v,D,I,P);return}else if($&256){Ve(R,M,y,w,A,v,D,I,P);return}}W&8?(q&16&&$e(R,A,v),M!==R&&a(y,M)):q&16?W&16?Ze(R,M,y,w,A,v,D,I,P):$e(R,A,v,!0):(q&8&&a(y,""),W&16&&U(M,y,w,A,v,D,I,P))},Ve=(d,p,y,w,A,v,D,I,P)=>{d=d||nn,p=p||nn;const R=d.length,q=p.length,M=Math.min(R,q);let $;for($=0;$q?$e(d,A,v,!0,!1,M):U(p,y,w,A,v,D,I,P,M)},Ze=(d,p,y,w,A,v,D,I,P)=>{let R=0;const q=p.length;let M=d.length-1,$=q-1;for(;R<=M&&R<=$;){const W=d[R],re=p[R]=P?It(p[R]):ut(p[R]);if(Ht(W,re))_(W,re,y,null,A,v,D,I,P);else break;R++}for(;R<=M&&R<=$;){const W=d[M],re=p[$]=P?It(p[$]):ut(p[$]);if(Ht(W,re))_(W,re,y,null,A,v,D,I,P);else break;M--,$--}if(R>M){if(R<=$){const W=$+1,re=W$)for(;R<=M;)me(d[R],A,v,!0),R++;else{const W=R,re=R,ue=new Map;for(R=re;R<=$;R++){const ke=p[R]=P?It(p[R]):ut(p[R]);ke.key!=null&&ue.set(ke.key,R)}let ie,Le=0;const De=$-re+1;let nt=!1,rt=0;const mn=new Array(De);for(R=0;R=De){me(ke,A,v,!0);continue}let st;if(ke.key!=null)st=ue.get(ke.key);else for(ie=re;ie<=$;ie++)if(mn[ie-re]===0&&Ht(ke,p[ie])){st=ie;break}st===void 0?me(ke,A,v,!0):(mn[st-re]=R+1,st>=rt?rt=st:nt=!0,_(ke,p[st],y,null,A,v,D,I,P),Le++)}const lo=nt?Tu(mn):nn;for(ie=lo.length-1,R=De-1;R>=0;R--){const ke=re+R,st=p[ke],co=p[ke+1],ao=ke+1{const{el:v,type:D,transition:I,children:P,shapeFlag:R}=d;if(R&6){ye(d.component.subTree,p,y,w);return}if(R&128){d.suspense.move(p,y,w);return}if(R&64){D.move(d,p,y,V);return}if(D===ve){r(v,p,y);for(let M=0;MI.enter(v),A);else{const{leave:M,delayLeave:$,afterLeave:W}=I,re=()=>{d.ctx.isUnmounted?s(v):r(v,p,y)},ue=()=>{v._isLeaving&&v[yt](!0),M(v,()=>{re(),W&&W()})};$?$(v,re,ue):ue()}else r(v,p,y)},me=(d,p,y,w=!1,A=!1)=>{const{type:v,props:D,ref:I,children:P,dynamicChildren:R,shapeFlag:q,patchFlag:M,dirs:$,cacheIndex:W}=d;if(M===-2&&(A=!1),I!=null&&(Et(),Cn(I,null,y,d,!0),wt()),W!=null&&(p.renderCache[W]=void 0),q&256){p.ctx.deactivate(d);return}const re=q&1&&$,ue=!on(d);let ie;if(ue&&(ie=D&&D.onVnodeBeforeUnmount)&&ot(ie,p,d),q&6)tt(d.component,y,w);else{if(q&128){d.suspense.unmount(y,w);return}re&&kt(d,null,p,"beforeUnmount"),q&64?d.type.remove(d,p,y,V,w):R&&!R.hasOnce&&(v!==ve||M>0&&M&64)?$e(R,p,y,!1,!0):(v===ve&&M&384||!A&&q&16)&&$e(P,p,y),w&&et(d)}(ue&&(ie=D&&D.onVnodeUnmounted)||re)&&Oe(()=>{ie&&ot(ie,p,d),re&&kt(d,null,p,"unmounted")},y)},et=d=>{const{type:p,el:y,anchor:w,transition:A}=d;if(p===ve){Ge(y,w);return}if(p===sr){O(d);return}const v=()=>{s(y),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(d.shapeFlag&1&&A&&!A.persisted){const{leave:D,delayLeave:I}=A,P=()=>D(y,v);I?I(d.el,v,P):P()}else v()},Ge=(d,p)=>{let y;for(;d!==p;)y=h(d),s(d),d=y;s(p)},tt=(d,p,y)=>{const{bum:w,scope:A,job:v,subTree:D,um:I,m:P,a:R}=d;xo(P),xo(R),w&&tr(w),A.stop(),v&&(v.flags|=8,me(D,d,p,y)),I&&Oe(I,p),Oe(()=>{d.isUnmounted=!0},p)},$e=(d,p,y,w=!1,A=!1,v=0)=>{for(let D=v;D{if(d.shapeFlag&6)return S(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const p=h(d.anchor||d.el),y=p&&p[yl];return y?h(y):p};let k=!1;const F=(d,p,y)=>{let w;d==null?p._vnode&&(me(p._vnode,null,null,!0),w=p._vnode.component):_(p._vnode||null,d,p,null,null,null,y),p._vnode=d,k||(k=!0,po(w),fl(),k=!1)},V={p:_,um:me,m:ye,r:et,mt:le,mc:U,pc:Z,pbc:H,n:S,o:e};return{render:F,hydrate:void 0,createApp:fu(F)}}function Yr({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 Bt({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function xu(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Qs(e,t,n=!1){const r=e.children,s=t.children;if(K(r)&&K(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Kl(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Kl(t)}function xo(e){if(e)for(let t=0;te.__isSuspense;function Ou(e,t){t&&t.pendingBranch?K(e)?t.effects.push(...e):t.effects.push(e):Ba(e)}const ve=Symbol.for("v-fgt"),Dr=Symbol.for("v-txt"),Re=Symbol.for("v-cmt"),sr=Symbol.for("v-stc"),Tn=[];let je=null;function Ke(e=!1){Tn.push(je=e?null:[])}function Pu(){Tn.pop(),je=Tn[Tn.length-1]||null}let kn=1;function gr(e,t=!1){kn+=e,e<0&&je&&t&&(je.hasOnce=!0)}function zl(e){return e.dynamicChildren=kn>0?je||nn:null,Pu(),kn>0&&je&&je.push(e),e}function xt(e,t,n,r,s,o){return zl(Be(e,t,n,r,s,o,!0))}function yr(e,t,n,r,s){return zl(_e(e,t,n,r,s,!0))}function Bn(e){return e?e.__v_isVNode===!0:!1}function Ht(e,t){return e.type===t.type&&e.key===t.key}const Jl=({key:e})=>e??null,or=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?pe(e)||de(e)||J(e)?{i:xe,r:e,k:t,f:!!n}:e:null);function Be(e,t=null,n=null,r=0,s=null,o=e===ve?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Jl(t),ref:t&&or(t),scopeId:hl,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:xe};return l?(Ys(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=pe(n)?8:16),kn>0&&!i&&je&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&je.push(c),c}const _e=Nu;function Nu(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===nu)&&(e=Re),Bn(e)){const l=Mt(e,t,!0);return n&&Ys(l,n),kn>0&&!o&&je&&(l.shapeFlag&6?je[je.indexOf(e)]=l:je.push(l)),l.patchFlag=-2,l}if($u(e)&&(e=e.__vccOpts),t){t=Iu(t);let{class:l,style:c}=t;l&&!pe(l)&&(t.class=In(l)),ae(c)&&(Tr(c)&&!K(c)&&(c=Ee({},c)),t.style=Bs(c))}const i=pe(e)?1:Gl(e)?128:bl(e)?64:ae(e)?4:J(e)?2:0;return Be(e,t,n,r,s,i,o,!0)}function Iu(e){return e?Tr(e)||Ul(e)?Ee({},e):e:null}function Mt(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?Fu(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&Jl(u),ref:t&&t.ref?n&&o?K(o)?o.concat(or(t)):[o,or(t)]:or(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&&Mt(e.ssContent),ssFallback:e.ssFallback&&Mt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&zt(a,c.clone(a)),a}function Lu(e=" ",t=0){return _e(Dr,null,e,t)}function Mp(e,t){const n=_e(sr,null,e);return n.staticCount=t,n}function Du(e="",t=!1){return t?(Ke(),yr(Re,null,e)):_e(Re,null,e)}function ut(e){return e==null||typeof e=="boolean"?_e(Re):K(e)?_e(ve,null,e.slice()):Bn(e)?It(e):_e(Dr,null,String(e))}function It(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Mt(e)}function Ys(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(K(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Ys(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Ul(t)?t._ctx=xe:s===3&&xe&&(xe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else J(t)?(t={default:t,_ctx:xe},n=32):(t=String(t),r&64?(n=16,t=[Lu(t)]):n=8);e.children=t,e.shapeFlag|=n}function Fu(...e){const t={};for(let n=0;nIe||xe;let br,ws;{const e=Cr(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};br=t("__VUE_INSTANCE_SETTERS__",n=>Ie=n),ws=t("__VUE_SSR_SETTERS__",n=>Un=n)}const Vn=e=>{const t=Ie;return br(e),e.scope.on(),()=>{e.scope.off(),br(t)}},To=()=>{Ie&&Ie.scope.off(),br(null)};function Xl(e){return e.vnode.shapeFlag&4}let Un=!1;function Uu(e,t=!1,n=!1){t&&ws(t);const{props:r,children:s}=e.vnode,o=Xl(e);_u(e,r,o,t),Su(e,s,n||t);const i=o?ju(e,t):void 0;return t&&ws(!1),i}function ju(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,su);const{setup:r}=n;if(r){Et();const s=e.setupContext=r.length>1?Vu(e):null,o=Vn(e),i=Hn(r,e,0,[e.props,s]),l=Di(i);if(wt(),o(),(l||e.sp)&&!on(e)&&Cl(e),l){if(i.then(To,To),t)return i.then(c=>{Oo(e,c)}).catch(c=>{Or(c,e,0)});e.asyncDep=i}else Oo(e,i)}else Ql(e)}function Oo(e,t,n){J(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ae(t)&&(e.setupState=ll(t)),Ql(e)}function Ql(e,t,n){const r=e.type;e.render||(e.render=r.render||ft);{const s=Vn(e);Et();try{ou(e)}finally{wt(),s()}}}const Hu={get(e,t){return Ae(e,"get",""),e[t]}};function Vu(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Hu),slots:e.slots,emit:e.emit,expose:t}}function Mr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(ll(Ks(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in xn)return xn[n](e)},has(t,n){return n in t||n in xn}})):e.proxy}function $u(e){return J(e)&&"__vccOpts"in e}const Ue=(e,t)=>La(e,t,Un);function Zs(e,t,n){try{gr(-1);const r=arguments.length;return r===2?ae(t)&&!K(t)?Bn(t)?_e(e,null,[t]):_e(e,t):_e(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Bn(n)&&(n=[n]),_e(e,t,n))}finally{gr(1)}}const qu="3.5.26";let vs;const Po=typeof window<"u"&&window.trustedTypes;if(Po)try{vs=Po.createPolicy("vue",{createHTML:e=>e})}catch{}const Yl=vs?e=>vs.createHTML(e):e=>e,Ku="http://www.w3.org/2000/svg",Wu="http://www.w3.org/1998/Math/MathML",gt=typeof document<"u"?document:null,No=gt&>.createElement("template"),Gu={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?gt.createElementNS(Ku,e):t==="mathml"?gt.createElementNS(Wu,e):n?gt.createElement(e,{is:n}):gt.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>gt.createTextNode(e),createComment:e=>gt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>gt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{No.innerHTML=Yl(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=No.content;if(r==="svg"||r==="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]}},Rt="transition",yn="animation",cn=Symbol("_vtc"),Zl={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},ec=Ee({},vl,Zl),zu=e=>(e.displayName="Transition",e.props=ec,e),kp=zu((e,{slots:t})=>Zs(Wa,tc(e),t)),Ut=(e,t=[])=>{K(e)?e.forEach(n=>n(...t)):e&&e(...t)},Io=e=>e?K(e)?e.some(t=>t.length>1):e.length>1:!1;function tc(e){const t={};for(const L in e)L in Zl||(t[L]=e[L]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=o,appearActiveClass:u=i,appearToClass:a=l,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:h=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,g=Ju(s),_=g&&g[0],E=g&&g[1],{onBeforeEnter:C,onEnter:T,onEnterCancelled:N,onLeave:O,onLeaveCancelled:B,onBeforeAppear:G=C,onAppear:j=T,onAppearCancelled:U=N}=t,x=(L,Q,le,we)=>{L._enterCancelled=we,Tt(L,Q?a:l),Tt(L,Q?u:i),le&&le()},H=(L,Q)=>{L._isLeaving=!1,Tt(L,f),Tt(L,m),Tt(L,h),Q&&Q()},Y=L=>(Q,le)=>{const we=L?j:T,ee=()=>x(Q,L,le);Ut(we,[Q,ee]),Lo(()=>{Tt(Q,L?c:o),ct(Q,L?a:l),Io(we)||Do(Q,r,_,ee)})};return Ee(t,{onBeforeEnter(L){Ut(C,[L]),ct(L,o),ct(L,i)},onBeforeAppear(L){Ut(G,[L]),ct(L,c),ct(L,u)},onEnter:Y(!1),onAppear:Y(!0),onLeave(L,Q){L._isLeaving=!0;const le=()=>H(L,Q);ct(L,f),L._enterCancelled?(ct(L,h),Ss(L)):(Ss(L),ct(L,h)),Lo(()=>{L._isLeaving&&(Tt(L,f),ct(L,m),Io(O)||Do(L,r,E,le))}),Ut(O,[L,le])},onEnterCancelled(L){x(L,!1,void 0,!0),Ut(N,[L])},onAppearCancelled(L){x(L,!0,void 0,!0),Ut(U,[L])},onLeaveCancelled(L){H(L),Ut(B,[L])}})}function Ju(e){if(e==null)return null;if(ae(e))return[Zr(e.enter),Zr(e.leave)];{const t=Zr(e);return[t,t]}}function Zr(e){return Yc(e)}function ct(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[cn]||(e[cn]=new Set)).add(t)}function Tt(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[cn];n&&(n.delete(t),n.size||(e[cn]=void 0))}function Lo(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Xu=0;function Do(e,t,n,r){const s=e._endId=++Xu,o=()=>{s===e._endId&&r()};if(n!=null)return setTimeout(o,n);const{type:i,timeout:l,propCount:c}=nc(e,t);if(!i)return r();const u=i+"end";let a=0;const f=()=>{e.removeEventListener(u,h),o()},h=m=>{m.target===e&&++a>=c&&f()};setTimeout(()=>{a(n[g]||"").split(", "),s=r(`${Rt}Delay`),o=r(`${Rt}Duration`),i=Fo(s,o),l=r(`${yn}Delay`),c=r(`${yn}Duration`),u=Fo(l,c);let a=null,f=0,h=0;t===Rt?i>0&&(a=Rt,f=i,h=o.length):t===yn?u>0&&(a=yn,f=u,h=c.length):(f=Math.max(i,u),a=f>0?i>u?Rt:yn:null,h=a?a===Rt?o.length:c.length:0);const m=a===Rt&&/\b(?:transform|all)(?:,|$)/.test(r(`${Rt}Property`).toString());return{type:a,timeout:f,propCount:h,hasTransform:m}}function Fo(e,t){for(;e.lengthMo(n)+Mo(e[r])))}function Mo(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Ss(e){return(e?e.ownerDocument:document).body.offsetHeight}function Qu(e,t,n){const r=e[cn];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const ko=Symbol("_vod"),Yu=Symbol("_vsh"),Zu=Symbol(""),ef=/(?:^|;)\s*display\s*:/;function tf(e,t,n){const r=e.style,s=pe(n);let o=!1;if(n&&!s){if(t)if(pe(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&ir(r,l,"")}else for(const i in t)n[i]==null&&ir(r,i,"");for(const i in n)i==="display"&&(o=!0),ir(r,i,n[i])}else if(s){if(t!==n){const i=r[Zu];i&&(n+=";"+i),r.cssText=n,o=ef.test(n)}}else t&&e.removeAttribute("style");ko in e&&(e[ko]=o?r.display:"",e[Yu]&&(r.display="none"))}const Bo=/\s*!important$/;function ir(e,t,n){if(K(n))n.forEach(r=>ir(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=nf(e,t);Bo.test(n)?e.setProperty(Xt(r),n.replace(Bo,""),"important"):e[r]=n}}const Uo=["Webkit","Moz","ms"],es={};function nf(e,t){const n=es[t];if(n)return n;let r=Ft(t);if(r!=="filter"&&r in e)return es[t]=r;r=ki(r);for(let s=0;sts||(lf.then(()=>ts=0),ts=Date.now());function af(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Xe(uf(r,n.value),t,5,[r])};return n.value=e,n.attached=cf(),n}function uf(e,t){if(K(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const Ko=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,ff=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?Qu(e,r,i):t==="style"?tf(e,n,r):vr(t)?Fs(t)||sf(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):df(e,t,r,i))?(Vo(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Ho(e,t,r,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!pe(r))?Vo(e,Ft(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Ho(e,t,r,i))};function df(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&Ko(t)&&J(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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return Ko(t)&&pe(n)?!1:t in e}const rc=new WeakMap,sc=new WeakMap,_r=Symbol("_moveCb"),Wo=Symbol("_enterCb"),hf=e=>(delete e.props.mode,e),pf=hf({name:"TransitionGroup",props:Ee({},ec,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=Fr(),r=wl();let s,o;return Ol(()=>{if(!s.length)return;const i=e.moveClass||`${e.name||"v"}-move`;if(!_f(s[0].el,n.vnode.el,i)){s=[];return}s.forEach(gf),s.forEach(yf);const l=s.filter(bf);Ss(n.vnode.el),l.forEach(c=>{const u=c.el,a=u.style;ct(u,i),a.transform=a.webkitTransform=a.transitionDuration="";const f=u[_r]=h=>{h&&h.target!==u||(!h||h.propertyName.endsWith("transform"))&&(u.removeEventListener("transitionend",f),u[_r]=null,Tt(u,i))};u.addEventListener("transitionend",f)}),s=[]}),()=>{const i=te(e),l=tc(i);let c=i.tag||ve;if(s=[],o)for(let u=0;u{l.split(/\s+/).forEach(c=>c&&r.classList.remove(c))}),n.split(/\s+/).forEach(l=>l&&r.classList.add(l)),r.style.display="none";const o=t.nodeType===1?t:t.parentNode;o.appendChild(r);const{hasTransform:i}=nc(r);return o.removeChild(r),i}const Go=e=>{const t=e.props["onUpdate:modelValue"]||!1;return K(t)?n=>tr(t,n):t};function Ef(e){e.target.composing=!0}function zo(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const ns=Symbol("_assign");function Jo(e,t,n){return t&&(e=e.trim()),n&&(e=ks(e)),e}const Bp={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[ns]=Go(s);const o=r||s.props&&s.props.type==="number";en(e,t?"change":"input",i=>{i.target.composing||e[ns](Jo(e.value,n,o))}),(n||o)&&en(e,"change",()=>{e.value=Jo(e.value,n,o)}),t||(en(e,"compositionstart",Ef),en(e,"compositionend",zo),en(e,"change",zo))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[ns]=Go(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?ks(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},wf=["ctrl","shift","alt","meta"],vf={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>wf.some(n=>e[`${n}Key`]&&!t.includes(n))},Up=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const t=Af().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=xf(r);if(!s)return;const o=t._component;!J(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,Cf(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t});function Cf(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function xf(e){return pe(e)?document.querySelector(e):e}let oc;const kr=e=>oc=e,ic=Symbol();function As(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var On;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(On||(On={}));function Tf(){const e=$i(!0),t=e.run(()=>Kt({}));let n=[],r=[];const s=Ks({install(o){kr(s),s._a=o,o.provide(ic,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const lc=()=>{};function Qo(e,t,n,r=lc){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&qi()&&oa(s),s}function Yt(e,...t){e.forEach(n=>{n(...t)})}const Of=e=>e(),Yo=Symbol(),rs=Symbol();function Rs(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];As(s)&&As(r)&&e.hasOwnProperty(n)&&!de(r)&&!dt(r)?e[n]=Rs(s,r):e[n]=r}return e}const Pf=Symbol();function Nf(e){return!As(e)||!Object.prototype.hasOwnProperty.call(e,Pf)}const{assign:Ot}=Object;function If(e){return!!(de(e)&&e.effect)}function Lf(e,t,n,r){const{state:s,actions:o,getters:i}=t,l=n.state.value[e];let c;function u(){l||(n.state.value[e]=s?s():{});const a=Ta(n.state.value[e]);return Ot(a,o,Object.keys(i||{}).reduce((f,h)=>(f[h]=Ks(Ue(()=>{kr(n);const m=n._s.get(e);return i[h].call(m,m)})),f),{}))}return c=cc(e,u,t,n,r,!0),c}function cc(e,t,n={},r,s,o){let i;const l=Ot({actions:{}},n),c={deep:!0};let u,a,f=new Set,h=new Set,m;const g=r.state.value[e];!o&&!g&&(r.state.value[e]={}),Kt({});let _;function E(U){let x;u=a=!1,typeof U=="function"?(U(r.state.value[e]),x={type:On.patchFunction,storeId:e,events:m}):(Rs(r.state.value[e],U),x={type:On.patchObject,payload:U,storeId:e,events:m});const H=_=Symbol();Ws().then(()=>{_===H&&(u=!0)}),a=!0,Yt(f,x,r.state.value[e])}const C=o?function(){const{state:x}=n,H=x?x():{};this.$patch(Y=>{Ot(Y,H)})}:lc;function T(){i.stop(),f.clear(),h.clear(),r._s.delete(e)}const N=(U,x="")=>{if(Yo in U)return U[rs]=x,U;const H=function(){kr(r);const Y=Array.from(arguments),L=new Set,Q=new Set;function le(z){L.add(z)}function we(z){Q.add(z)}Yt(h,{args:Y,name:H[rs],store:B,after:le,onError:we});let ee;try{ee=U.apply(this&&this.$id===e?this:B,Y)}catch(z){throw Yt(Q,z),z}return ee instanceof Promise?ee.then(z=>(Yt(L,z),z)).catch(z=>(Yt(Q,z),Promise.reject(z))):(Yt(L,ee),ee)};return H[Yo]=!0,H[rs]=x,H},O={_p:r,$id:e,$onAction:Qo.bind(null,h),$patch:E,$reset:C,$subscribe(U,x={}){const H=Qo(f,U,x.detached,()=>Y()),Y=i.run(()=>An(()=>r.state.value[e],L=>{(x.flush==="sync"?a:u)&&U({storeId:e,type:On.direct,events:m},L)},Ot({},c,x)));return H},$dispose:T},B=dn(O);r._s.set(e,B);const j=(r._a&&r._a.runWithContext||Of)(()=>r._e.run(()=>(i=$i()).run(()=>t({action:N}))));for(const U in j){const x=j[U];if(de(x)&&!If(x)||dt(x))o||(g&&Nf(x)&&(de(x)?x.value=g[U]:Rs(x,g[U])),r.state.value[e][U]=x);else if(typeof x=="function"){const H=N(x,U);j[U]=H,l.actions[U]=x}}return Ot(B,j),Ot(te(B),j),Object.defineProperty(B,"$state",{get:()=>r.state.value[e],set:U=>{E(x=>{Ot(x,U)})}}),r._p.forEach(U=>{Ot(B,i.run(()=>U({store:B,app:r._a,pinia:r,options:l})))}),g&&o&&n.hydrate&&n.hydrate(B.$state,g),u=!0,a=!0,B}function Df(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,l){const c=Ua();return i=i||(c?We(ic,null):null),i&&kr(i),i=oc,i._s.has(e)||(s?cc(e,t,r,i):Lf(e,r,i)),i._s.get(e)}return o.$id=e,o}function jp(e){const t=te(e),n={};for(const r in t){const s=t[r];s.effect?n[r]=Ue({get:()=>e[r],set(o){e[r]=o}}):(de(s)||dt(s))&&(n[r]=Na(e,r))}return n}const Ff="modulepreload",Mf=function(e){return"/"+e},Zo={},it=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let c=function(u){return Promise.all(u.map(a=>Promise.resolve(a).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=c(n.map(u=>{if(u=Mf(u),u in Zo)return;Zo[u]=!0;const a=u.endsWith(".css"),f=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const h=document.createElement("link");if(h.rel=a?"stylesheet":Ff,a||(h.as="script"),h.crossOrigin="",h.href=u,l&&h.setAttribute("nonce",l),document.head.appendChild(h),a)return new Promise((m,g)=>{h.addEventListener("load",m),h.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})};const tn=typeof document<"u";function ac(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function kf(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&ac(e.default)}const se=Object.assign;function ss(e,t){const n={};for(const r in t){const s=t[r];n[r]=Qe(s)?s.map(e):e(s)}return n}const Pn=()=>{},Qe=Array.isArray;function ei(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const uc=/#/g,Bf=/&/g,Uf=/\//g,jf=/=/g,Hf=/\?/g,fc=/\+/g,Vf=/%5B/g,$f=/%5D/g,dc=/%5E/g,qf=/%60/g,hc=/%7B/g,Kf=/%7C/g,pc=/%7D/g,Wf=/%20/g;function eo(e){return e==null?"":encodeURI(""+e).replace(Kf,"|").replace(Vf,"[").replace($f,"]")}function Gf(e){return eo(e).replace(hc,"{").replace(pc,"}").replace(dc,"^")}function Cs(e){return eo(e).replace(fc,"%2B").replace(Wf,"+").replace(uc,"%23").replace(Bf,"%26").replace(qf,"`").replace(hc,"{").replace(pc,"}").replace(dc,"^")}function zf(e){return Cs(e).replace(jf,"%3D")}function Jf(e){return eo(e).replace(uc,"%23").replace(Hf,"%3F")}function Xf(e){return Jf(e).replace(Uf,"%2F")}function jn(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Qf=/\/$/,Yf=e=>e.replace(Qf,"");function os(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return c=l>=0&&c>l?-1:c,c>=0&&(r=t.slice(0,c),o=t.slice(c,l>0?l:t.length),s=e(o.slice(1))),l>=0&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=nd(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:jn(i)}}function Zf(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function ti(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function ed(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&an(t.matched[r],n.matched[s])&&mc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function an(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function mc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!td(e[n],t[n]))return!1;return!0}function td(e,t){return Qe(e)?ni(e,t):Qe(t)?ni(t,e):e?.valueOf()===t?.valueOf()}function ni(e,t){return Qe(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function nd(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const Ct={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let xs=(function(e){return e.pop="pop",e.push="push",e})({}),is=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function rd(e){if(!e)if(tn){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Yf(e)}const sd=/^[^#]+#/;function od(e,t){return e.replace(sd,"#")+t}function id(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const Br=()=>({left:window.scrollX,top:window.scrollY});function ld(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=id(s,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 ri(e,t){return(history.state?history.state.position-t:-1)+e}const Ts=new Map;function cd(e,t){Ts.set(e,t)}function ad(e){const t=Ts.get(e);return Ts.delete(e),t}function ud(e){return typeof e=="string"||e&&typeof e=="object"}function gc(e){return typeof e=="string"||typeof e=="symbol"}let he=(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 yc=Symbol("");he.MATCHER_NOT_FOUND+"",he.NAVIGATION_GUARD_REDIRECT+"",he.NAVIGATION_ABORTED+"",he.NAVIGATION_CANCELLED+"",he.NAVIGATION_DUPLICATED+"";function un(e,t){return se(new Error,{type:e,[yc]:!0},t)}function mt(e,t){return e instanceof Error&&yc in e&&(t==null||!!(e.type&t))}const fd=["params","query","hash"];function dd(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of fd)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function hd(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&Cs(s)):[r&&Cs(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function pd(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=Qe(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const md=Symbol(""),oi=Symbol(""),Ur=Symbol(""),to=Symbol(""),Os=Symbol("");function bn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Lt(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,c)=>{const u=h=>{h===!1?c(un(he.NAVIGATION_ABORTED,{from:n,to:t})):h instanceof Error?c(h):ud(h)?c(un(he.NAVIGATION_GUARD_REDIRECT,{from:t,to:h})):(i&&r.enterCallbacks[s]===i&&typeof h=="function"&&i.push(h),l())},a=o(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(a);e.length<3&&(f=f.then(u)),f.catch(h=>c(h))})}function ls(e,t,n,r,s=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(ac(c)){const u=(c.__vccOpts||c)[t];u&&o.push(Lt(u,n,r,i,l,s))}else{let u=c();o.push(()=>u.then(a=>{if(!a)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=kf(a)?a.default:a;i.mods[l]=a,i.components[l]=f;const h=(f.__vccOpts||f)[t];return h&&Lt(h,n,r,i,l,s)()}))}}return o}function gd(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;ian(u,l))?r.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(u=>an(u,c))||s.push(c))}return[n,r,s]}let yd=()=>location.protocol+"//"+location.host;function bc(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(i);return l[0]!=="/"&&(l="/"+l),ti(l,"")}return ti(n,e)+r+s}function bd(e,t,n,r){let s=[],o=[],i=null;const l=({state:h})=>{const m=bc(e,location),g=n.value,_=t.value;let E=0;if(h){if(n.value=m,t.value=h,i&&i===g){i=null;return}E=_?h.position-_.position:0}else r(m);s.forEach(C=>{C(n.value,g,{delta:E,type:xs.pop,direction:E?E>0?is.forward:is.back:is.unknown})})};function c(){i=n.value}function u(h){s.push(h);const m=()=>{const g=s.indexOf(h);g>-1&&s.splice(g,1)};return o.push(m),m}function a(){if(document.visibilityState==="hidden"){const{history:h}=window;if(!h.state)return;h.replaceState(se({},h.state,{scroll:Br()}),"")}}function f(){for(const h of o)h();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 ii(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?Br():null}}function _d(e){const{history:t,location:n}=window,r={value:bc(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(c,u,a){const f=e.indexOf("#"),h=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+c:yd()+e+c;try{t[a?"replaceState":"pushState"](u,"",h),s.value=u}catch(m){console.error(m),n[a?"replace":"assign"](h)}}function i(c,u){o(c,se({},t.state,ii(s.value.back,c,s.value.forward,!0),u,{position:s.value.position}),!0),r.value=c}function l(c,u){const a=se({},s.value,t.state,{forward:c,scroll:Br()});o(a.current,a,!0),o(c,se({},ii(r.value,c,null),{position:a.position+1},u),!1),r.value=c}return{location:r,state:s,push:l,replace:i}}function Ed(e){e=rd(e);const t=_d(e),n=bd(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=se({location:"",base:e,go:r,createHref:od.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function wd(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),Ed(e)}let Vt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var be=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e})(be||{});const vd={type:Vt.Static,value:""},Sd=/[a-zA-Z0-9_]/;function Ad(e){if(!e)return[[]];if(e==="/")return[[vd]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${u}": ${m}`)}let n=be.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,c,u="",a="";function f(){u&&(n===be.Static?o.push({type:Vt.Static,value:u}):n===be.Param||n===be.ParamRegExp||n===be.ParamRegExpEnd?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:Vt.Param,value:u,regexp:a,repeatable:c==="*"||c==="+",optional:c==="*"||c==="?"})):t("Invalid state to consume buffer"),u="")}function h(){u+=c}for(;lt.length?t.length===1&&t[0]===Pe.Static+Pe.Segment?1:-1:0}function _c(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const Od={strict:!1,end:!0,sensitive:!1};function Pd(e,t,n){const r=xd(Ad(e.path),n),s=se(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function Nd(e,t){const n=[],r=new Map;t=ei(Od,t);function s(f){return r.get(f)}function o(f,h,m){const g=!m,_=ui(f);_.aliasOf=m&&m.record;const E=ei(t,f),C=[_];if("alias"in f){const O=typeof f.alias=="string"?[f.alias]:f.alias;for(const B of O)C.push(ui(se({},_,{components:m?m.record.components:_.components,path:B,aliasOf:m?m.record:_})))}let T,N;for(const O of C){const{path:B}=O;if(h&&B[0]!=="/"){const G=h.record.path,j=G[G.length-1]==="/"?"":"/";O.path=h.record.path+(B&&j+B)}if(T=Pd(O,h,E),m?m.alias.push(T):(N=N||T,N!==T&&N.alias.push(T),g&&f.name&&!fi(T)&&i(f.name)),Ec(T)&&c(T),_.children){const G=_.children;for(let j=0;j{i(N)}:Pn}function i(f){if(gc(f)){const h=r.get(f);h&&(r.delete(f),n.splice(n.indexOf(h),1),h.children.forEach(i),h.alias.forEach(i))}else{const h=n.indexOf(f);h>-1&&(n.splice(h,1),f.record.name&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function c(f){const h=Dd(f,n);n.splice(h,0,f),f.record.name&&!fi(f)&&r.set(f.record.name,f)}function u(f,h){let m,g={},_,E;if("name"in f&&f.name){if(m=r.get(f.name),!m)throw un(he.MATCHER_NOT_FOUND,{location:f});E=m.record.name,g=se(ai(h.params,m.keys.filter(N=>!N.optional).concat(m.parent?m.parent.keys.filter(N=>N.optional):[]).map(N=>N.name)),f.params&&ai(f.params,m.keys.map(N=>N.name))),_=m.stringify(g)}else if(f.path!=null)_=f.path,m=n.find(N=>N.re.test(_)),m&&(g=m.parse(_),E=m.record.name);else{if(m=h.name?r.get(h.name):n.find(N=>N.re.test(h.path)),!m)throw un(he.MATCHER_NOT_FOUND,{location:f,currentLocation:h});E=m.record.name,g=se({},h.params,f.params),_=m.stringify(g)}const C=[];let T=m;for(;T;)C.unshift(T.record),T=T.parent;return{name:E,path:_,params:g,matched:C,meta:Ld(C)}}e.forEach(f=>o(f));function a(){n.length=0,r.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:a,getRoutes:l,getRecordMatcher:s}}function ai(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function ui(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Id(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 Id(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function fi(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Ld(e){return e.reduce((t,n)=>se(t,n.meta),{})}function Dd(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;_c(e,t[o])<0?r=o:n=o+1}const s=Fd(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function Fd(e){let t=e;for(;t=t.parent;)if(Ec(t)&&_c(e,t)===0)return t}function Ec({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function di(e){const t=We(Ur),n=We(to),r=Ue(()=>{const c=ht(e.to);return t.resolve(c)}),s=Ue(()=>{const{matched:c}=r.value,{length:u}=c,a=c[u-1],f=n.matched;if(!a||!f.length)return-1;const h=f.findIndex(an.bind(null,a));if(h>-1)return h;const m=hi(c[u-2]);return u>1&&hi(a)===m&&f[f.length-1].path!==m?f.findIndex(an.bind(null,c[u-2])):h}),o=Ue(()=>s.value>-1&&jd(n.params,r.value.params)),i=Ue(()=>s.value>-1&&s.value===n.matched.length-1&&mc(n.params,r.value.params));function l(c={}){if(Ud(c)){const u=t[ht(e.replace)?"replace":"push"](ht(e.to)).catch(Pn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Ue(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function Md(e){return e.length===1?e[0]:e}const kd=Pr({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:di,setup(e,{slots:t}){const n=dn(di(e)),{options:r}=We(Ur),s=Ue(()=>({[pi(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[pi(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&Md(t.default(n));return e.custom?o:Zs("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),Bd=kd;function Ud(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 jd(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!Qe(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function hi(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const pi=(e,t,n)=>e??t??n,Hd=Pr({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=We(Os),s=Ue(()=>e.route||r.value),o=We(oi,0),i=Ue(()=>{let u=ht(o);const{matched:a}=s.value;let f;for(;(f=a[u])&&!f.components;)u++;return u}),l=Ue(()=>s.value.matched[i.value]);nr(oi,Ue(()=>i.value+1)),nr(md,l),nr(Os,s);const c=Kt();return An(()=>[c.value,l.value,e.name],([u,a,f],[h,m,g])=>{a&&(a.instances[f]=u,m&&m!==a&&u&&u===h&&(a.leaveGuards.size||(a.leaveGuards=m.leaveGuards),a.updateGuards.size||(a.updateGuards=m.updateGuards))),u&&a&&(!m||!an(a,m)||!h)&&(a.enterCallbacks[f]||[]).forEach(_=>_(u))},{flush:"post"}),()=>{const u=s.value,a=e.name,f=l.value,h=f&&f.components[a];if(!h)return mi(n.default,{Component:h,route:u});const m=f.props[a],g=m?m===!0?u.params:typeof m=="function"?m(u):m:null,E=Zs(h,se({},g,t,{onVnodeUnmounted:C=>{C.component.isUnmounted&&(f.instances[a]=null)},ref:c}));return mi(n.default,{Component:E,route:u})||E}}});function mi(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const wc=Hd;function Vd(e){const t=Nd(e.routes,e),n=e.parseQuery||hd,r=e.stringifyQuery||si,s=e.history,o=bn(),i=bn(),l=bn(),c=Ra(Ct);let u=Ct;tn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const a=ss.bind(null,S=>""+S),f=ss.bind(null,Xf),h=ss.bind(null,jn);function m(S,k){let F,V;return gc(S)?(F=t.getRecordMatcher(S),V=k):V=S,t.addRoute(V,F)}function g(S){const k=t.getRecordMatcher(S);k&&t.removeRoute(k)}function _(){return t.getRoutes().map(S=>S.record)}function E(S){return!!t.getRecordMatcher(S)}function C(S,k){if(k=se({},k||c.value),typeof S=="string"){const y=os(n,S,k.path),w=t.resolve({path:y.path},k),A=s.createHref(y.fullPath);return se(y,w,{params:h(w.params),hash:jn(y.hash),redirectedFrom:void 0,href:A})}let F;if(S.path!=null)F=se({},S,{path:os(n,S.path,k.path).path});else{const y=se({},S.params);for(const w in y)y[w]==null&&delete y[w];F=se({},S,{params:f(y)}),k.params=f(k.params)}const V=t.resolve(F,k),ne=S.hash||"";V.params=a(h(V.params));const d=Zf(r,se({},S,{hash:Gf(ne),path:V.path})),p=s.createHref(d);return se({fullPath:d,hash:ne,query:r===si?pd(S.query):S.query||{}},V,{redirectedFrom:void 0,href:p})}function T(S){return typeof S=="string"?os(n,S,c.value.path):se({},S)}function N(S,k){if(u!==S)return un(he.NAVIGATION_CANCELLED,{from:k,to:S})}function O(S){return j(S)}function B(S){return O(se(T(S),{replace:!0}))}function G(S,k){const F=S.matched[S.matched.length-1];if(F&&F.redirect){const{redirect:V}=F;let ne=typeof V=="function"?V(S,k):V;return typeof ne=="string"&&(ne=ne.includes("?")||ne.includes("#")?ne=T(ne):{path:ne},ne.params={}),se({query:S.query,hash:S.hash,params:ne.path!=null?{}:S.params},ne)}}function j(S,k){const F=u=C(S),V=c.value,ne=S.state,d=S.force,p=S.replace===!0,y=G(F,V);if(y)return j(se(T(y),{state:typeof y=="object"?se({},ne,y.state):ne,force:d,replace:p}),k||F);const w=F;w.redirectedFrom=k;let A;return!d&&ed(r,V,F)&&(A=un(he.NAVIGATION_DUPLICATED,{to:w,from:V}),ye(V,V,!0,!1)),(A?Promise.resolve(A):H(w,V)).catch(v=>mt(v)?mt(v,he.NAVIGATION_GUARD_REDIRECT)?v:Ze(v):Z(v,w,V)).then(v=>{if(v){if(mt(v,he.NAVIGATION_GUARD_REDIRECT))return j(se({replace:p},T(v.to),{state:typeof v.to=="object"?se({},ne,v.to.state):ne,force:d}),k||w)}else v=L(w,V,!0,p,ne);return Y(w,V,v),v})}function U(S,k){const F=N(S,k);return F?Promise.reject(F):Promise.resolve()}function x(S){const k=Ge.values().next().value;return k&&typeof k.runWithContext=="function"?k.runWithContext(S):S()}function H(S,k){let F;const[V,ne,d]=gd(S,k);F=ls(V.reverse(),"beforeRouteLeave",S,k);for(const y of V)y.leaveGuards.forEach(w=>{F.push(Lt(w,S,k))});const p=U.bind(null,S,k);return F.push(p),$e(F).then(()=>{F=[];for(const y of o.list())F.push(Lt(y,S,k));return F.push(p),$e(F)}).then(()=>{F=ls(ne,"beforeRouteUpdate",S,k);for(const y of ne)y.updateGuards.forEach(w=>{F.push(Lt(w,S,k))});return F.push(p),$e(F)}).then(()=>{F=[];for(const y of d)if(y.beforeEnter)if(Qe(y.beforeEnter))for(const w of y.beforeEnter)F.push(Lt(w,S,k));else F.push(Lt(y.beforeEnter,S,k));return F.push(p),$e(F)}).then(()=>(S.matched.forEach(y=>y.enterCallbacks={}),F=ls(d,"beforeRouteEnter",S,k,x),F.push(p),$e(F))).then(()=>{F=[];for(const y of i.list())F.push(Lt(y,S,k));return F.push(p),$e(F)}).catch(y=>mt(y,he.NAVIGATION_CANCELLED)?y:Promise.reject(y))}function Y(S,k,F){l.list().forEach(V=>x(()=>V(S,k,F)))}function L(S,k,F,V,ne){const d=N(S,k);if(d)return d;const p=k===Ct,y=tn?history.state:{};F&&(V||p?s.replace(S.fullPath,se({scroll:p&&y&&y.scroll},ne)):s.push(S.fullPath,ne)),c.value=S,ye(S,k,F,p),Ze()}let Q;function le(){Q||(Q=s.listen((S,k,F)=>{if(!tt.listening)return;const V=C(S),ne=G(V,tt.currentRoute.value);if(ne){j(se(ne,{replace:!0,force:!0}),V).catch(Pn);return}u=V;const d=c.value;tn&&cd(ri(d.fullPath,F.delta),Br()),H(V,d).catch(p=>mt(p,he.NAVIGATION_ABORTED|he.NAVIGATION_CANCELLED)?p:mt(p,he.NAVIGATION_GUARD_REDIRECT)?(j(se(T(p.to),{force:!0}),V).then(y=>{mt(y,he.NAVIGATION_ABORTED|he.NAVIGATION_DUPLICATED)&&!F.delta&&F.type===xs.pop&&s.go(-1,!1)}).catch(Pn),Promise.reject()):(F.delta&&s.go(-F.delta,!1),Z(p,V,d))).then(p=>{p=p||L(V,d,!1),p&&(F.delta&&!mt(p,he.NAVIGATION_CANCELLED)?s.go(-F.delta,!1):F.type===xs.pop&&mt(p,he.NAVIGATION_ABORTED|he.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),Y(V,d,p)}).catch(Pn)}))}let we=bn(),ee=bn(),z;function Z(S,k,F){Ze(S);const V=ee.list();return V.length?V.forEach(ne=>ne(S,k,F)):console.error(S),Promise.reject(S)}function Ve(){return z&&c.value!==Ct?Promise.resolve():new Promise((S,k)=>{we.add([S,k])})}function Ze(S){return z||(z=!S,le(),we.list().forEach(([k,F])=>S?F(S):k()),we.reset()),S}function ye(S,k,F,V){const{scrollBehavior:ne}=e;if(!tn||!ne)return Promise.resolve();const d=!F&&ad(ri(S.fullPath,0))||(V||!F)&&history.state&&history.state.scroll||null;return Ws().then(()=>ne(S,k,d)).then(p=>p&&ld(p)).catch(p=>Z(p,S,k))}const me=S=>s.go(S);let et;const Ge=new Set,tt={currentRoute:c,listening:!0,addRoute:m,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:E,getRoutes:_,resolve:C,options:e,push:O,replace:B,go:me,back:()=>me(-1),forward:()=>me(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:ee.add,isReady:Ve,install(S){S.component("RouterLink",Bd),S.component("RouterView",wc),S.config.globalProperties.$router=tt,Object.defineProperty(S.config.globalProperties,"$route",{enumerable:!0,get:()=>ht(c)}),tn&&!et&&c.value===Ct&&(et=!0,O(s.location).catch(V=>{}));const k={};for(const V in Ct)Object.defineProperty(k,V,{get:()=>c.value[V],enumerable:!0});S.provide(Ur,tt),S.provide(to,ol(k)),S.provide(Os,c);const F=S.unmount;Ge.add(S),S.unmount=function(){Ge.delete(S),Ge.size<1&&(u=Ct,Q&&Q(),Q=null,c.value=Ct,et=!1,z=!1),F()}}};function $e(S){return S.reduce((k,F)=>k.then(()=>x(F)),Promise.resolve())}return tt}function Hp(){return We(Ur)}function Vp(e){return We(to)}function vc(e,t){return function(){return e.apply(t,arguments)}}const{toString:$d}=Object.prototype,{getPrototypeOf:no}=Object,{iterator:jr,toStringTag:Sc}=Symbol,Hr=(e=>t=>{const n=$d.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ye=e=>(e=e.toLowerCase(),t=>Hr(t)===e),Vr=e=>t=>typeof t===e,{isArray:hn}=Array,fn=Vr("undefined");function $n(e){return e!==null&&!fn(e)&&e.constructor!==null&&!fn(e.constructor)&&Fe(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Ac=Ye("ArrayBuffer");function qd(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Ac(e.buffer),t}const Kd=Vr("string"),Fe=Vr("function"),Rc=Vr("number"),qn=e=>e!==null&&typeof e=="object",Wd=e=>e===!0||e===!1,lr=e=>{if(Hr(e)!=="object")return!1;const t=no(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Sc in e)&&!(jr in e)},Gd=e=>{if(!qn(e)||$n(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},zd=Ye("Date"),Jd=Ye("File"),Xd=Ye("Blob"),Qd=Ye("FileList"),Yd=e=>qn(e)&&Fe(e.pipe),Zd=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Fe(e.append)&&((t=Hr(e))==="formdata"||t==="object"&&Fe(e.toString)&&e.toString()==="[object FormData]"))},eh=Ye("URLSearchParams"),[th,nh,rh,sh]=["ReadableStream","Request","Response","Headers"].map(Ye),oh=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Kn(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),hn(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const $t=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,xc=e=>!fn(e)&&e!==$t;function Ps(){const{caseless:e,skipUndefined:t}=xc(this)&&this||{},n={},r=(s,o)=>{const i=e&&Cc(n,o)||o;lr(n[i])&&lr(s)?n[i]=Ps(n[i],s):lr(s)?n[i]=Ps({},s):hn(s)?n[i]=s.slice():(!t||!fn(s))&&(n[i]=s)};for(let s=0,o=arguments.length;s(Kn(t,(s,o)=>{n&&Fe(s)?e[o]=vc(s,n):e[o]=s},{allOwnKeys:r}),e),lh=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),ch=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},ah=(e,t,n,r)=>{let s,o,i;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&no(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},uh=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},fh=e=>{if(!e)return null;if(hn(e))return e;let t=e.length;if(!Rc(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},dh=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&no(Uint8Array)),hh=(e,t)=>{const r=(e&&e[jr]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},ph=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},mh=Ye("HTMLFormElement"),gh=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),gi=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),yh=Ye("RegExp"),Tc=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Kn(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},bh=e=>{Tc(e,(t,n)=>{if(Fe(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Fe(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},_h=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return hn(e)?r(e):r(String(e).split(t)),n},Eh=()=>{},wh=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function vh(e){return!!(e&&Fe(e.append)&&e[Sc]==="FormData"&&e[jr])}const Sh=e=>{const t=new Array(10),n=(r,s)=>{if(qn(r)){if(t.indexOf(r)>=0)return;if($n(r))return r;if(!("toJSON"in r)){t[s]=r;const o=hn(r)?[]:{};return Kn(r,(i,l)=>{const c=n(i,s+1);!fn(c)&&(o[l]=c)}),t[s]=void 0,o}}return r};return n(e,0)},Ah=Ye("AsyncFunction"),Rh=e=>e&&(qn(e)||Fe(e))&&Fe(e.then)&&Fe(e.catch),Oc=((e,t)=>e?setImmediate:t?((n,r)=>($t.addEventListener("message",({source:s,data:o})=>{s===$t&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),$t.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Fe($t.postMessage)),Ch=typeof queueMicrotask<"u"?queueMicrotask.bind($t):typeof process<"u"&&process.nextTick||Oc,xh=e=>e!=null&&Fe(e[jr]),b={isArray:hn,isArrayBuffer:Ac,isBuffer:$n,isFormData:Zd,isArrayBufferView:qd,isString:Kd,isNumber:Rc,isBoolean:Wd,isObject:qn,isPlainObject:lr,isEmptyObject:Gd,isReadableStream:th,isRequest:nh,isResponse:rh,isHeaders:sh,isUndefined:fn,isDate:zd,isFile:Jd,isBlob:Xd,isRegExp:yh,isFunction:Fe,isStream:Yd,isURLSearchParams:eh,isTypedArray:dh,isFileList:Qd,forEach:Kn,merge:Ps,extend:ih,trim:oh,stripBOM:lh,inherits:ch,toFlatObject:ah,kindOf:Hr,kindOfTest:Ye,endsWith:uh,toArray:fh,forEachEntry:hh,matchAll:ph,isHTMLForm:mh,hasOwnProperty:gi,hasOwnProp:gi,reduceDescriptors:Tc,freezeMethods:bh,toObjectSet:_h,toCamelCase:gh,noop:Eh,toFiniteNumber:wh,findKey:Cc,global:$t,isContextDefined:xc,isSpecCompliantForm:vh,toJSONObject:Sh,isAsyncFn:Ah,isThenable:Rh,setImmediate:Oc,asap:Ch,isIterable:xh};function X(e,t,n,r,s){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),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}b.inherits(X,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 Pc=X.prototype,Nc={};["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=>{Nc[e]={value:e}});Object.defineProperties(X,Nc);Object.defineProperty(Pc,"isAxiosError",{value:!0});X.from=(e,t,n,r,s,o)=>{const i=Object.create(Pc);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 X.call(i,l,c,n,r,s),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 Th=null;function Ns(e){return b.isPlainObject(e)||b.isArray(e)}function Ic(e){return b.endsWith(e,"[]")?e.slice(0,-2):e}function yi(e,t,n){return e?e.concat(t).map(function(s,o){return s=Ic(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function Oh(e){return b.isArray(e)&&!e.some(Ns)}const Ph=b.toFlatObject(b,{},null,function(t){return/^is[A-Z]/.test(t)});function $r(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(_,E){return!b.isUndefined(E[_])});const r=n.metaTokens,s=n.visitor||a,o=n.dots,i=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&b.isSpecCompliantForm(t);if(!b.isFunction(s))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 X("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,_,E){let C=g;if(g&&!E&&typeof g=="object"){if(b.endsWith(_,"{}"))_=r?_:_.slice(0,-2),g=JSON.stringify(g);else if(b.isArray(g)&&Oh(g)||(b.isFileList(g)||b.endsWith(_,"[]"))&&(C=b.toArray(g)))return _=Ic(_),C.forEach(function(N,O){!(b.isUndefined(N)||N===null)&&t.append(i===!0?yi([_],O,o):i===null?_:_+"[]",u(N))}),!1}return Ns(g)?!0:(t.append(yi(E,_,o),u(g)),!1)}const f=[],h=Object.assign(Ph,{defaultVisitor:a,convertValue:u,isVisitable:Ns});function m(g,_){if(!b.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+_.join("."));f.push(g),b.forEach(g,function(C,T){(!(b.isUndefined(C)||C===null)&&s.call(t,C,b.isString(T)?T.trim():T,_,h))===!0&&m(C,_?_.concat(T):[T])}),f.pop()}}if(!b.isObject(e))throw new TypeError("data must be an object");return m(e),t}function bi(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function ro(e,t){this._pairs=[],e&&$r(e,this,t)}const Lc=ro.prototype;Lc.append=function(t,n){this._pairs.push([t,n])};Lc.toString=function(t){const n=t?function(r){return t.call(this,r,bi)}:bi;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Nh(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Dc(e,t,n){if(!t)return e;const r=n&&n.encode||Nh;b.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=b.isURLSearchParams(t)?t.toString():new ro(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class _i{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.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(r){r!==null&&t(r)})}}const Fc={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Ih=typeof URLSearchParams<"u"?URLSearchParams:ro,Lh=typeof FormData<"u"?FormData:null,Dh=typeof Blob<"u"?Blob:null,Fh={isBrowser:!0,classes:{URLSearchParams:Ih,FormData:Lh,Blob:Dh},protocols:["http","https","file","blob","url","data"]},so=typeof window<"u"&&typeof document<"u",Is=typeof navigator=="object"&&navigator||void 0,Mh=so&&(!Is||["ReactNative","NativeScript","NS"].indexOf(Is.product)<0),kh=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Bh=so&&window.location.href||"http://localhost",Uh=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:so,hasStandardBrowserEnv:Mh,hasStandardBrowserWebWorkerEnv:kh,navigator:Is,origin:Bh},Symbol.toStringTag,{value:"Module"})),Ce={...Uh,...Fh};function jh(e,t){return $r(e,new Ce.classes.URLSearchParams,{visitor:function(n,r,s,o){return Ce.isNode&&b.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function Hh(e){return b.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Vh(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&b.isArray(s)?s.length:i,c?(b.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!l):((!s[i]||!b.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&b.isArray(s[i])&&(s[i]=Vh(s[i])),!l)}if(b.isFormData(e)&&b.isFunction(e.entries)){const n={};return b.forEachEntry(e,(r,s)=>{t(Hh(r),s,n,0)}),n}return null}function $h(e,t,n){if(b.isString(e))try{return(t||JSON.parse)(e),b.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Wn={transitional:Fc,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=b.isObject(t);if(o&&b.isHTMLForm(t)&&(t=new FormData(t)),b.isFormData(t))return s?JSON.stringify(Mc(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(r.indexOf("application/x-www-form-urlencoded")>-1)return jh(t,this.formSerializer).toString();if((l=b.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return $r(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),$h(t)):t}],transformResponse:[function(t){const n=this.transitional||Wn.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(b.isResponse(t)||b.isReadableStream(t))return t;if(t&&b.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(i)throw l.name==="SyntaxError"?X.from(l,X.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:Ce.classes.FormData,Blob:Ce.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=>{Wn.headers[e]={}});const qh=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"]),Kh=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&qh[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},Ei=Symbol("internals");function _n(e){return e&&String(e).trim().toLowerCase()}function cr(e){return e===!1||e==null?e:b.isArray(e)?e.map(cr):String(e)}function Wh(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const Gh=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function cs(e,t,n,r,s){if(b.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!b.isString(t)){if(b.isString(r))return t.indexOf(r)!==-1;if(b.isRegExp(r))return r.test(t)}}function zh(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Jh(e,t){const n=b.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let Me=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(l,c,u){const a=_n(c);if(!a)throw new Error("header name must be a non-empty string");const f=b.findKey(s,a);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||c]=cr(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())&&!Gh(t))i(Kh(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,r);return this}get(t,n){if(t=_n(t),t){const r=b.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return Wh(s);if(b.isFunction(n))return n.call(this,s,r);if(b.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=_n(t),t){const r=b.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||cs(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=_n(i),i){const l=b.findKey(r,i);l&&(!n||cs(r,r[l],l,n))&&(delete r[l],s=!0)}}return b.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||cs(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return b.forEach(this,(s,o)=>{const i=b.findKey(r,o);if(i){n[i]=cr(s),delete n[o];return}const l=t?zh(o):String(o).trim();l!==o&&delete n[o],n[l]=cr(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return b.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&b.isArray(r)?r.join(", "):r)}),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 r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[Ei]=this[Ei]={accessors:{}}).accessors,s=this.prototype;function o(i){const l=_n(i);r[l]||(Jh(s,i),r[l]=!0)}return b.isArray(t)?t.forEach(o):o(t),this}};Me.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);b.reduceDescriptors(Me.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});b.freezeMethods(Me);function as(e,t){const n=this||Wn,r=t||n,s=Me.from(r.headers);let o=r.data;return b.forEach(e,function(l){o=l.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function kc(e){return!!(e&&e.__CANCEL__)}function pn(e,t,n){X.call(this,e??"canceled",X.ERR_CANCELED,t,n),this.name="CanceledError"}b.inherits(pn,X,{__CANCEL__:!0});function Bc(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new X("Request failed with status code "+n.status,[X.ERR_BAD_REQUEST,X.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function Xh(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function Qh(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),a=r[o];i||(i=u),n[s]=c,r[s]=u;let f=o,h=0;for(;f!==s;)h+=n[f++],f=f%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i{n=a,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const a=Date.now(),f=a-n;f>=r?i(u,a):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-f)))},()=>s&&i(s)]}const Er=(e,t,n=3)=>{let r=0;const s=Qh(50,250);return Yh(o=>{const i=o.loaded,l=o.lengthComputable?o.total:void 0,c=i-r,u=s(c),a=i<=l;r=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)},wi=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},vi=e=>(...t)=>b.asap(()=>e(...t)),Zh=Ce.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Ce.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Ce.origin),Ce.navigator&&/(msie|trident)/i.test(Ce.navigator.userAgent)):()=>!0,ep=Ce.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];b.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),b.isString(r)&&l.push(`path=${r}`),b.isString(s)&&l.push(`domain=${s}`),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 tp(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function np(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Uc(e,t,n){let r=!tp(t);return e&&(r||n==!1)?np(e,t):t}const Si=e=>e instanceof Me?{...e}:e;function Jt(e,t){t=t||{};const n={};function r(u,a,f,h){return b.isPlainObject(u)&&b.isPlainObject(a)?b.merge.call({caseless:h},u,a):b.isPlainObject(a)?b.merge({},a):b.isArray(a)?a.slice():a}function s(u,a,f,h){if(b.isUndefined(a)){if(!b.isUndefined(u))return r(void 0,u,f,h)}else return r(u,a,f,h)}function o(u,a){if(!b.isUndefined(a))return r(void 0,a)}function i(u,a){if(b.isUndefined(a)){if(!b.isUndefined(u))return r(void 0,u)}else return r(void 0,a)}function l(u,a,f){if(f in t)return r(u,a);if(f in e)return r(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)=>s(Si(u),Si(a),f,!0)};return b.forEach(Object.keys({...e,...t}),function(a){const f=c[a]||s,h=f(e[a],t[a],a);b.isUndefined(h)&&f!==l||(n[a]=h)}),n}const jc=e=>{const t=Jt({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:l}=t;if(t.headers=i=Me.from(i),t.url=Dc(Uc(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(Ce.hasStandardBrowserEnv||Ce.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(Ce.hasStandardBrowserEnv&&(r&&b.isFunction(r)&&(r=r(t)),r||r!==!1&&Zh(t.url))){const c=s&&o&&ep.read(o);c&&i.set(s,c)}return t},rp=typeof XMLHttpRequest<"u",sp=rp&&function(e){return new Promise(function(n,r){const s=jc(e);let o=s.data;const i=Me.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,a,f,h,m,g;function _(){m&&m(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(a),s.signal&&s.signal.removeEventListener("abort",a)}let E=new XMLHttpRequest;E.open(s.method.toUpperCase(),s.url,!0),E.timeout=s.timeout;function C(){if(!E)return;const N=Me.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),B={data:!l||l==="text"||l==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:N,config:e,request:E};Bc(function(j){n(j),_()},function(j){r(j),_()},B),E=null}"onloadend"in E?E.onloadend=C:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.indexOf("file:")===0)||setTimeout(C)},E.onabort=function(){E&&(r(new X("Request aborted",X.ECONNABORTED,e,E)),E=null)},E.onerror=function(O){const B=O&&O.message?O.message:"Network Error",G=new X(B,X.ERR_NETWORK,e,E);G.event=O||null,r(G),E=null},E.ontimeout=function(){let O=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const B=s.transitional||Fc;s.timeoutErrorMessage&&(O=s.timeoutErrorMessage),r(new X(O,B.clarifyTimeoutError?X.ETIMEDOUT:X.ECONNABORTED,e,E)),E=null},o===void 0&&i.setContentType(null),"setRequestHeader"in E&&b.forEach(i.toJSON(),function(O,B){E.setRequestHeader(B,O)}),b.isUndefined(s.withCredentials)||(E.withCredentials=!!s.withCredentials),l&&l!=="json"&&(E.responseType=s.responseType),u&&([h,g]=Er(u,!0),E.addEventListener("progress",h)),c&&E.upload&&([f,m]=Er(c),E.upload.addEventListener("progress",f),E.upload.addEventListener("loadend",m)),(s.cancelToken||s.signal)&&(a=N=>{E&&(r(!N||N.type?new pn(null,e,E):N),E.abort(),E=null)},s.cancelToken&&s.cancelToken.subscribe(a),s.signal&&(s.signal.aborted?a():s.signal.addEventListener("abort",a)));const T=Xh(s.url);if(T&&Ce.protocols.indexOf(T)===-1){r(new X("Unsupported protocol "+T+":",X.ERR_BAD_REQUEST,e));return}E.send(o||null)})},op=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,l();const a=u instanceof Error?u:this.reason;r.abort(a instanceof X?a:new pn(a instanceof Error?a.message:a))}};let i=t&&setTimeout(()=>{i=null,o(new X(`timeout ${t} of ms exceeded`,X.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}=r;return c.unsubscribe=()=>b.asap(l),c}},ip=function*(e,t){let n=e.byteLength;if(n{const s=lp(e,t);let o=0,i,l=c=>{i||(i=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:a}=await s.next();if(u){l(),c.close();return}let f=a.byteLength;if(n){let h=o+=f;n(h)}c.enqueue(new Uint8Array(a))}catch(u){throw l(u),u}},cancel(c){return l(c),s.return()}},{highWaterMark:2})},Ri=64*1024,{isFunction:Yn}=b,ap=(({Request:e,Response:t})=>({Request:e,Response:t}))(b.global),{ReadableStream:Ci,TextEncoder:xi}=b.global,Ti=(e,...t)=>{try{return!!e(...t)}catch{return!1}},up=e=>{e=b.merge.call({skipUndefined:!0},ap,e);const{fetch:t,Request:n,Response:r}=e,s=t?Yn(t):typeof fetch=="function",o=Yn(n),i=Yn(r);if(!s)return!1;const l=s&&Yn(Ci),c=s&&(typeof xi=="function"?(g=>_=>g.encode(_))(new xi):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=o&&l&&Ti(()=>{let g=!1;const _=new n(Ce.origin,{body:new Ci,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!_}),a=i&&l&&Ti(()=>b.isReadableStream(new r("").body)),f={stream:a&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(_,E)=>{let C=_&&_[g];if(C)return C.call(_);throw new X(`Response type '${g}' is not supported`,X.ERR_NOT_SUPPORT,E)})});const h=async g=>{if(g==null)return 0;if(b.isBlob(g))return g.size;if(b.isSpecCompliantForm(g))return(await new n(Ce.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},m=async(g,_)=>{const E=b.toFiniteNumber(g.getContentLength());return E??h(_)};return async g=>{let{url:_,method:E,data:C,signal:T,cancelToken:N,timeout:O,onDownloadProgress:B,onUploadProgress:G,responseType:j,headers:U,withCredentials:x="same-origin",fetchOptions:H}=jc(g),Y=t||fetch;j=j?(j+"").toLowerCase():"text";let L=op([T,N&&N.toAbortSignal()],O),Q=null;const le=L&&L.unsubscribe&&(()=>{L.unsubscribe()});let we;try{if(G&&u&&E!=="get"&&E!=="head"&&(we=await m(U,C))!==0){let ye=new n(_,{method:"POST",body:C,duplex:"half"}),me;if(b.isFormData(C)&&(me=ye.headers.get("content-type"))&&U.setContentType(me),ye.body){const[et,Ge]=wi(we,Er(vi(G)));C=Ai(ye.body,Ri,et,Ge)}}b.isString(x)||(x=x?"include":"omit");const ee=o&&"credentials"in n.prototype,z={...H,signal:L,method:E.toUpperCase(),headers:U.normalize().toJSON(),body:C,duplex:"half",credentials:ee?x:void 0};Q=o&&new n(_,z);let Z=await(o?Y(Q,H):Y(_,z));const Ve=a&&(j==="stream"||j==="response");if(a&&(B||Ve&&le)){const ye={};["status","statusText","headers"].forEach(tt=>{ye[tt]=Z[tt]});const me=b.toFiniteNumber(Z.headers.get("content-length")),[et,Ge]=B&&wi(me,Er(vi(B),!0))||[];Z=new r(Ai(Z.body,Ri,et,()=>{Ge&&Ge(),le&&le()}),ye)}j=j||"text";let Ze=await f[b.findKey(f,j)||"text"](Z,g);return!Ve&&le&&le(),await new Promise((ye,me)=>{Bc(ye,me,{data:Ze,headers:Me.from(Z.headers),status:Z.status,statusText:Z.statusText,config:g,request:Q})})}catch(ee){throw le&&le(),ee&&ee.name==="TypeError"&&/Load failed|fetch/i.test(ee.message)?Object.assign(new X("Network Error",X.ERR_NETWORK,g,Q),{cause:ee.cause||ee}):X.from(ee,ee&&ee.code,g,Q)}}},fp=new Map,Hc=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,l=i,c,u,a=fp;for(;l--;)c=o[l],u=a.get(c),u===void 0&&a.set(c,u=l?new Map:up(t)),a=u;return u};Hc();const oo={http:Th,xhr:sp,fetch:{get:Hc}};b.forEach(oo,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Oi=e=>`- ${e}`,dp=e=>b.isFunction(e)||e===null||e===!1;function hp(e,t){e=b.isArray(e)?e:[e];const{length:n}=e;let r,s;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(Oi).join(` +`):" "+Oi(i[0]):"as no adapter specified";throw new X("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const Vc={getAdapter:hp,adapters:oo};function us(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new pn(null,e)}function Pi(e){return us(e),e.headers=Me.from(e.headers),e.data=as.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Vc.getAdapter(e.adapter||Wn.adapter,e)(e).then(function(r){return us(e),r.data=as.call(e,e.transformResponse,r),r.headers=Me.from(r.headers),r},function(r){return kc(r)||(us(e),r&&r.response&&(r.response.data=as.call(e,e.transformResponse,r.response),r.response.headers=Me.from(r.response.headers))),Promise.reject(r)})}const $c="1.13.2",qr={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{qr[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const Ni={};qr.transitional=function(t,n,r){function s(o,i){return"[Axios v"+$c+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,l)=>{if(t===!1)throw new X(s(i," has been removed"+(n?" in "+n:"")),X.ERR_DEPRECATED);return n&&!Ni[i]&&(Ni[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,l):!0}};qr.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function pp(e,t,n){if(typeof e!="object")throw new X("options must be an object",X.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const l=e[o],c=l===void 0||i(l,o,e);if(c!==!0)throw new X("option "+o+" must be "+c,X.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new X("Unknown option "+o,X.ERR_BAD_OPTION)}}const ar={assertOptions:pp,validators:qr},lt=ar.validators;let Gt=class{constructor(t){this.defaults=t||{},this.interceptors={request:new _i,response:new _i}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Jt(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&ar.assertOptions(r,{silentJSONParsing:lt.transitional(lt.boolean),forcedJSONParsing:lt.transitional(lt.boolean),clarifyTimeoutError:lt.transitional(lt.boolean)},!1),s!=null&&(b.isFunction(s)?n.paramsSerializer={serialize:s}:ar.assertOptions(s,{encode:lt.function,serialize:lt.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),ar.assertOptions(n,{baseUrl:lt.spelling("baseURL"),withXsrfToken:lt.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=Me.concat(i,o);const l=[];let c=!0;this.interceptors.request.forEach(function(_){typeof _.runWhen=="function"&&_.runWhen(n)===!1||(c=c&&_.synchronous,l.unshift(_.fulfilled,_.rejected))});const u=[];this.interceptors.response.forEach(function(_){u.push(_.fulfilled,_.rejected)});let a,f=0,h;if(!c){const g=[Pi.bind(this),void 0];for(g.unshift(...l),g.push(...u),h=g.length,a=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(l=>{r.subscribe(l),o=l}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,l){r.reason||(r.reason=new pn(o,i,l),n(r.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=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new qc(function(s){t=s}),cancel:t}}};function gp(e){return function(n){return e.apply(null,n)}}function yp(e){return b.isObject(e)&&e.isAxiosError===!0}const Ls={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(Ls).forEach(([e,t])=>{Ls[t]=e});function Kc(e){const t=new Gt(e),n=vc(Gt.prototype.request,t);return b.extend(n,Gt.prototype,t,{allOwnKeys:!0}),b.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return Kc(Jt(e,s))},n}const ge=Kc(Wn);ge.Axios=Gt;ge.CanceledError=pn;ge.CancelToken=mp;ge.isCancel=kc;ge.VERSION=$c;ge.toFormData=$r;ge.AxiosError=X;ge.Cancel=ge.CanceledError;ge.all=function(t){return Promise.all(t)};ge.spread=gp;ge.isAxiosError=yp;ge.mergeConfig=Jt;ge.AxiosHeaders=Me;ge.formToJSON=e=>Mc(b.isHTMLForm(e)?new FormData(e):e);ge.getAdapter=Vc.getAdapter;ge.HttpStatusCode=Ls;ge.default=ge;const{Axios:Kp,AxiosError:Wp,CanceledError:Gp,isCancel:zp,CancelToken:Jp,VERSION:Xp,all:Qp,Cancel:Yp,isAxiosError:Zp,spread:em,toFormData:tm,AxiosHeaders:nm,HttpStatusCode:rm,formToJSON:sm,getAdapter:om,mergeConfig:im}=ge,Nn=ge.create({baseURL:"",timeout:3e4,withCredentials:!0});Nn.interceptors.request.use(e=>e,e=>Promise.reject(e));Nn.interceptors.response.use(e=>e.data,e=>{e.response?.status===401&&(window.location.hash="#/login");const t=e.response?.data?e.response.data.detail||e.response.data.message:e.message;return Promise.reject(new Error(t||"请求失败"))});const Zn={login:e=>{const t=new URLSearchParams;return t.append("admin_key",e.password),Nn.post("/login",t,{headers:{"Content-Type":"application/x-www-form-urlencoded"}})},logout:()=>Nn.post("/logout"),checkAuth:()=>Nn.get("/admin/health")},bp=Df("auth",()=>{const e=Kt(!1),t=Kt(!1),n=Kt(0),r=1e4;let s=null;async function o(c){t.value=!0;try{return await Zn.login({password:c}),await Zn.checkAuth(),e.value=!0,n.value=Date.now(),!0}catch(u){throw e.value=!1,u}finally{t.value=!1}}async function i(){try{await Zn.logout()}finally{e.value=!1,n.value=0}}async function l(){const c=Date.now();if(e.value&&c-n.value(await Zn.checkAuth(),e.value=!0,!0))(),await s}catch{return e.value=!1,!1}finally{n.value=Date.now(),s=null}}return{isLoggedIn:e,isLoading:t,login:o,logout:i,checkAuth:l}}),Wc=Vd({history:wd("/"),routes:[{path:"/public/uptime",name:"public-uptime",component:()=>it(()=>import("./PublicUptime-CfGkj1AP.js"),__vite__mapDeps([0,1])),meta:{requiresAuth:!1}},{path:"/public/logs",name:"public-logs",component:()=>it(()=>import("./PublicLogs-AX0ic7hO.js"),[]),meta:{requiresAuth:!1}},{path:"/login",name:"login",component:()=>it(()=>import("./Login-C90rUWc3.js"),__vite__mapDeps([2,3])),meta:{requiresAuth:!1}},{path:"/",component:()=>it(()=>import("./AppShell-BQVnOvTQ.js"),__vite__mapDeps([4,5,6,7])),meta:{requiresAuth:!0},children:[{path:"",name:"dashboard",component:()=>it(()=>import("./Dashboard-nS2AdtwZ.js"),__vite__mapDeps([8,9]))},{path:"accounts",name:"accounts",component:()=>it(()=>import("./Accounts-CgsggPDB.js"),__vite__mapDeps([10,11,3,6,7,9]))},{path:"settings",name:"settings",component:()=>it(()=>import("./Settings-DcFLbKTS.js"),__vite__mapDeps([12,5,11,3,9]))},{path:"logs",name:"logs",component:()=>it(()=>import("./Logs-BEIY_CjX.js"),__vite__mapDeps([13,11,6]))},{path:"monitor",name:"monitor",component:()=>it(()=>import("./Monitor-CREo18Oc.js"),__vite__mapDeps([14,1]))},{path:"docs",name:"docs",component:()=>it(()=>import("./Docs-BdBf00gk.js"),[])}]}]});Wc.beforeEach(async e=>{const t=bp();if(e.meta.requiresAuth&&!await t.checkAuth())return{name:"login"};if(e.name==="login"&&t.isLoggedIn)return{name:"dashboard"}});const wr=dn({toasts:[]});let _p=0;const er=e=>{const t=`toast-${++_p}`,n=e.duration??3e3,r={id:t,type:e.type,title:e.title,message:e.message,duration:n};return wr.toasts.push(r),n>0&&setTimeout(()=>{Gc(t)},n),t},Gc=e=>{const t=wr.toasts.findIndex(n=>n.id===e);t>-1&&wr.toasts.splice(t,1)},lm=()=>({success:(e,t,n)=>er({type:"success",message:e,title:t,duration:n}),error:(e,t,n)=>er({type:"error",message:e,title:t,duration:n}),warning:(e,t,n)=>er({type:"warning",message:e,title:t,duration:n}),info:(e,t,n)=>er({type:"info",message:e,title:t,duration:n})}),Ep={class:"fixed right-4 top-4 z-[200] flex flex-col gap-2"},wp={class:"flex-shrink-0"},vp={key:0,class:"h-5 w-5 text-emerald-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},Sp={key:1,class:"h-5 w-5 text-rose-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},Ap={key:2,class:"h-5 w-5 text-amber-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},Rp={key:3,class:"h-5 w-5 text-sky-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},Cp={class:"flex-1"},xp={key:0,class:"text-sm font-medium text-foreground"},Tp=["onClick"],Op=Pr({__name:"Toast",setup(e){const t=wr.toasts,n=r=>{switch(r){case"success":return"border-emerald-200 bg-emerald-50";case"error":return"border-rose-200 bg-rose-50";case"warning":return"border-amber-200 bg-amber-50";default:return"border-sky-200 bg-sky-50"}};return(r,s)=>(Ke(),yr(qa,{to:"body"},[Be("div",Ep,[_e(mf,{name:"toast"},{default:pl(()=>[(Ke(!0),xt(ve,null,ru(ht(t),o=>(Ke(),xt("div",{key:o.id,class:In(["flex min-w-[320px] items-start gap-3 rounded-2xl border border-border bg-card px-4 py-3 shadow-lg",n(o.type)])},[Be("div",wp,[o.type==="success"?(Ke(),xt("svg",vp,[...s[0]||(s[0]=[Be("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"},null,-1)])])):o.type==="error"?(Ke(),xt("svg",Sp,[...s[1]||(s[1]=[Be("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"},null,-1)])])):o.type==="warning"?(Ke(),xt("svg",Ap,[...s[2]||(s[2]=[Be("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"},null,-1)])])):(Ke(),xt("svg",Rp,[...s[3]||(s[3]=[Be("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"},null,-1)])]))]),Be("div",Cp,[o.title?(Ke(),xt("p",xp,fs(o.title),1)):Du("",!0),Be("p",{class:In(["text-sm text-muted-foreground",{"mt-1":o.title}])},fs(o.message),3)]),Be("button",{class:"flex-shrink-0 text-muted-foreground transition-colors hover:text-foreground",onClick:i=>ht(Gc)(o.id)},[...s[4]||(s[4]=[Be("svg",{class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[Be("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])],8,Tp)],2))),128))]),_:1})])]))}}),Pp=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},Np=Pp(Op,[["__scopeId","data-v-cdd21b3c"]]),Ip=Pr({__name:"App",setup(e){return(t,n)=>(Ke(),xt(ve,null,[_e(ht(wc)),_e(Np)],64))}}),io=Rf(Ip),Lp=Tf();io.use(Lp);io.use(Wc);io.mount("#app");export{An as A,Mp as B,wc as C,Df as D,jp as E,ve as F,lm as G,Ws as H,Fp as I,dn as J,Bd as R,kp as T,Be as a,Du as b,xt as c,Pr as d,Ke as e,Lu as f,Nn as g,Kt as h,Ue as i,Pl as j,Bs as k,bp as l,yr as m,In as n,Tl as o,_e as p,Dp as q,ru as r,pl as s,fs as t,ht as u,Bp as v,Up as w,qa as x,Hp as y,Vp as z}; diff --git a/static/assets/index-BRg_yWJl.js b/static/assets/index-BRg_yWJl.js new file mode 100644 index 0000000000000000000000000000000000000000..95eb49e614b9501519e5d20afd4f50df20fd628d --- /dev/null +++ b/static/assets/index-BRg_yWJl.js @@ -0,0 +1,7 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PublicUptime-B25ac8iY.js","assets/useUptimeStatus-yHoqpTV5.js","assets/AppShell-DwEnl3b1.js","assets/settings-AWz-24Iz.js","assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-CZswS7RJ.js","assets/useConfirmDialog-Ds3wJrfU.js","assets/Dashboard-DgbmuyTS.js","assets/HelpTip.vue_vue_type_script_setup_true_lang-D8gzoJNA.js","assets/Accounts-D4WYjY04.js","assets/SelectMenu.vue_vue_type_script_setup_true_lang-DswSmh70.js","assets/Checkbox.vue_vue_type_script_setup_true_lang-CRAgcaHj.js","assets/Settings-CcoISFRv.js","assets/Logs-lKxNVfI0.js","assets/Monitor-CWUF2k9w.js"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function us(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const se={},$t=[],ot=()=>{},ni=()=>!1,or=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),fs=e=>e.startsWith("onUpdate:"),Se=Object.assign,ds=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},oc=Object.prototype.hasOwnProperty,ne=(e,t)=>oc.call(e,t),q=Array.isArray,Kt=e=>ir(e)==="[object Map]",ri=e=>ir(e)==="[object Set]",W=e=>typeof e=="function",de=e=>typeof e=="string",yt=e=>typeof e=="symbol",le=e=>e!==null&&typeof e=="object",si=e=>(le(e)||W(e))&&W(e.then)&&W(e.catch),oi=Object.prototype.toString,ir=e=>oi.call(e),ic=e=>ir(e).slice(8,-1),ii=e=>ir(e)==="[object Object]",lr=e=>de(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,cn=us(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),cr=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},lc=/-\w/g,xt=cr(e=>e.replace(lc,t=>t.slice(1).toUpperCase())),cc=/\B([A-Z])/g,jt=cr(e=>e.replace(cc,"-$1").toLowerCase()),li=cr(e=>e.charAt(0).toUpperCase()+e.slice(1)),vr=cr(e=>e?`on${li(e)}`:""),vt=(e,t)=>!Object.is(e,t),Bn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},hs=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let ks;const ar=()=>ks||(ks=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function ps(e){if(q(e)){const t={};for(let n=0;n{if(n){const r=n.split(uc);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function ms(e){let t="";if(de(e))t=e;else if(q(e))for(let n=0;n!!(e&&e.__v_isRef===!0),mc=e=>de(e)?e:e==null?"":q(e)||le(e)&&(e.toString===oi||!W(e.toString))?ui(e)?mc(e.value):JSON.stringify(e,fi,2):String(e),fi=(e,t)=>ui(t)?fi(e,t.value):Kt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[Or(r,o)+" =>"]=s,n),{})}:ri(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Or(n))}:yt(t)?Or(t):le(t)&&!q(t)&&!ii(t)?String(t):t,Or=(e,t="")=>{var n;return yt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let _e;class di{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=_e,!t&&_e&&(this.index=(_e.scopes||(_e.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&&(_e=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if(un){let t=un;for(un=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;an;){let t=an;for(an=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function _i(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function bi(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),_s(r),yc(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function qr(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===bn)||(e.globalVersion=bn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!qr(e))))return;e.flags|=2;const t=e.dep,n=ie,r=$e;ie=e,$e=!0;try{_i(e);const s=e.fn(e._value);(t.version===0||vt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{ie=n,$e=r,bi(e),e.flags&=-3}}function _s(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)_s(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function yc(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 wi=[];function ht(){wi.push($e),$e=!1}function pt(){const e=wi.pop();$e=e===void 0?!0:e}function Vs(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ie;ie=void 0;try{t()}finally{ie=n}}}let bn=0;class _c{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 bs{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!ie||!$e||ie===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ie)n=this.activeLink=new _c(ie,this),ie.deps?(n.prevDep=ie.depsTail,ie.depsTail.nextDep=n,ie.depsTail=n):ie.deps=ie.depsTail=n,Si(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=ie.depsTail,n.nextDep=void 0,ie.depsTail.nextDep=n,ie.depsTail=n,ie.deps===n&&(ie.deps=r)}return n}trigger(t){this.version++,bn++,this.notify(t)}notify(t){gs();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ys()}}}function Si(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Si(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const zn=new WeakMap,Dt=Symbol(""),$r=Symbol(""),En=Symbol("");function be(e,t,n){if($e&&ie){let r=zn.get(e);r||zn.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new bs),s.map=r,s.key=n),s.track()}}function ft(e,t,n,r,s,o){const i=zn.get(e);if(!i){bn++;return}const l=c=>{c&&c.trigger()};if(gs(),t==="clear")i.forEach(l);else{const c=q(e),u=c&&lr(n);if(c&&n==="length"){const a=Number(r);i.forEach((f,p)=>{(p==="length"||p===En||!yt(p)&&p>=a)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(En)),t){case"add":c?u&&l(i.get("length")):(l(i.get(Dt)),Kt(e)&&l(i.get($r)));break;case"delete":c||(l(i.get(Dt)),Kt(e)&&l(i.get($r)));break;case"set":Kt(e)&&l(i.get(Dt));break}}ys()}function bc(e,t){const n=zn.get(e);return n&&n.get(t)}function Bt(e){const t=Z(e);return t===e?t:(be(t,"iterate",En),je(e)?t:t.map(Ke))}function ur(e){return be(e=Z(e),"iterate",En),e}function wt(e,t){return mt(e)?it(e)?zt(Ke(t)):zt(t):Ke(t)}const Ec={__proto__:null,[Symbol.iterator](){return Tr(this,Symbol.iterator,e=>wt(this,e))},concat(...e){return Bt(this).concat(...e.map(t=>q(t)?Bt(t):t))},entries(){return Tr(this,"entries",e=>(e[1]=wt(this,e[1]),e))},every(e,t){return ct(this,"every",e,t,void 0,arguments)},filter(e,t){return ct(this,"filter",e,t,n=>n.map(r=>wt(this,r)),arguments)},find(e,t){return ct(this,"find",e,t,n=>wt(this,n),arguments)},findIndex(e,t){return ct(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ct(this,"findLast",e,t,n=>wt(this,n),arguments)},findLastIndex(e,t){return ct(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ct(this,"forEach",e,t,void 0,arguments)},includes(...e){return Cr(this,"includes",e)},indexOf(...e){return Cr(this,"indexOf",e)},join(e){return Bt(this).join(e)},lastIndexOf(...e){return Cr(this,"lastIndexOf",e)},map(e,t){return ct(this,"map",e,t,void 0,arguments)},pop(){return nn(this,"pop")},push(...e){return nn(this,"push",e)},reduce(e,...t){return qs(this,"reduce",e,t)},reduceRight(e,...t){return qs(this,"reduceRight",e,t)},shift(){return nn(this,"shift")},some(e,t){return ct(this,"some",e,t,void 0,arguments)},splice(...e){return nn(this,"splice",e)},toReversed(){return Bt(this).toReversed()},toSorted(e){return Bt(this).toSorted(e)},toSpliced(...e){return Bt(this).toSpliced(...e)},unshift(...e){return nn(this,"unshift",e)},values(){return Tr(this,"values",e=>wt(this,e))}};function Tr(e,t,n){const r=ur(e),s=r[t]();return r!==e&&!je(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const wc=Array.prototype;function ct(e,t,n,r,s,o){const i=ur(e),l=i!==e&&!je(e),c=i[t];if(c!==wc[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,wt(e,f),p,e)}:n.length>2&&(u=function(f,p){return n.call(this,f,p,e)}));const a=c.call(i,u,r);return l&&s?s(a):a}function qs(e,t,n,r){const s=ur(e);let o=n;return s!==e&&(je(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,wt(e,l),c,e)}),s[t](o,...r)}function Cr(e,t,n){const r=Z(e);be(r,"iterate",En);const s=r[t](...n);return(s===-1||s===!1)&&fr(n[0])?(n[0]=Z(n[0]),r[t](...n)):s}function nn(e,t,n=[]){ht(),gs();const r=Z(e)[t].apply(e,n);return ys(),pt(),r}const Sc=us("__proto__,__v_isRef,__isVue"),Ri=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(yt));function Rc(e){yt(e)||(e=String(e));const t=Z(this);return be(t,"has",e),t.hasOwnProperty(e)}class Ai{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?Dc:Ti:o?xi:Oi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=q(t);if(!s){let c;if(i&&(c=Ec[n]))return c;if(n==="hasOwnProperty")return Rc}const l=Reflect.get(t,n,ce(t)?t:r);if((yt(n)?Ri.has(n):Sc(n))||(s||be(t,"get",n),o))return l;if(ce(l)){const c=i&&lr(n)?l:l.value;return s&&le(c)?Wr(c):c}return le(l)?s?Wr(l):On(l):l}}class vi extends Ai{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=q(t)&&lr(n);if(!this._isShallow){const u=mt(o);if(!je(r)&&!mt(r)&&(o=Z(o),r=Z(r)),!i&&ce(o)&&!ce(r))return u||(o.value=r),!0}const l=i?Number(n)e,Dn=e=>Reflect.getPrototypeOf(e);function Tc(e,t,n){return function(...r){const s=this.__v_raw,o=Z(s),i=Kt(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=s[e](...r),a=n?Kr:t?zt:Ke;return!t&&be(o,"iterate",c?$r:Dt),{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 Ln(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Cc(e,t){const n={get(s){const o=this.__v_raw,i=Z(o),l=Z(s);e||(vt(s,l)&&be(i,"get",s),be(i,"get",l));const{has:c}=Dn(i),u=t?Kr:e?zt:Ke;if(c.call(i,s))return u(o.get(s));if(c.call(i,l))return u(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&be(Z(s),"iterate",Dt),s.size},has(s){const o=this.__v_raw,i=Z(o),l=Z(s);return e||(vt(s,l)&&be(i,"has",s),be(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,c=Z(l),u=t?Kr:e?zt:Ke;return!e&&be(c,"iterate",Dt),l.forEach((a,f)=>s.call(o,u(a),u(f),i))}};return Se(n,e?{add:Ln("add"),set:Ln("set"),delete:Ln("delete"),clear:Ln("clear")}:{add(s){!t&&!je(s)&&!mt(s)&&(s=Z(s));const o=Z(this);return Dn(o).has.call(o,s)||(o.add(s),ft(o,"add",s,s)),this},set(s,o){!t&&!je(o)&&!mt(o)&&(o=Z(o));const i=Z(this),{has:l,get:c}=Dn(i);let u=l.call(i,s);u||(s=Z(s),u=l.call(i,s));const a=c.call(i,s);return i.set(s,o),u?vt(o,a)&&ft(i,"set",s,o):ft(i,"add",s,o),this},delete(s){const o=Z(this),{has:i,get:l}=Dn(o);let c=i.call(o,s);c||(s=Z(s),c=i.call(o,s)),l&&l.call(o,s);const u=o.delete(s);return c&&ft(o,"delete",s,void 0),u},clear(){const s=Z(this),o=s.size!==0,i=s.clear();return o&&ft(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=Tc(s,e,t)}),n}function Es(e,t){const n=Cc(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(ne(n,s)&&s in r?n:r,s,o)}const Pc={get:Es(!1,!1)},Nc={get:Es(!1,!0)},Ic={get:Es(!0,!1)};const Oi=new WeakMap,xi=new WeakMap,Ti=new WeakMap,Dc=new WeakMap;function Lc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Fc(e){return e.__v_skip||!Object.isExtensible(e)?0:Lc(ic(e))}function On(e){return mt(e)?e:ws(e,!1,vc,Pc,Oi)}function Ci(e){return ws(e,!1,xc,Nc,xi)}function Wr(e){return ws(e,!0,Oc,Ic,Ti)}function ws(e,t,n,r,s){if(!le(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=Fc(e);if(o===0)return e;const i=s.get(e);if(i)return i;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function it(e){return mt(e)?it(e.__v_raw):!!(e&&e.__v_isReactive)}function mt(e){return!!(e&&e.__v_isReadonly)}function je(e){return!!(e&&e.__v_isShallow)}function fr(e){return e?!!e.__v_raw:!1}function Z(e){const t=e&&e.__v_raw;return t?Z(t):e}function Ss(e){return!ne(e,"__v_skip")&&Object.isExtensible(e)&&ci(e,"__v_skip",!0),e}const Ke=e=>le(e)?On(e):e,zt=e=>le(e)?Wr(e):e;function ce(e){return e?e.__v_isRef===!0:!1}function Lt(e){return Pi(e,!1)}function Mc(e){return Pi(e,!0)}function Pi(e,t){return ce(e)?e:new Uc(e,t)}class Uc{constructor(t,n){this.dep=new bs,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:Z(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,r=this.__v_isShallow||je(t)||mt(t);t=r?t:Z(t),vt(t,n)&&(this._rawValue=t,this._value=r?t:Ke(t),this.dep.trigger())}}function Ot(e){return ce(e)?e.value:e}const jc={get:(e,t,n)=>t==="__v_raw"?e:Ot(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return ce(s)&&!ce(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Ni(e){return it(e)?e:new Proxy(e,jc)}function Bc(e){const t=q(e)?new Array(e.length):{};for(const n in e)t[n]=Ii(e,n);return t}class Hc{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._raw=Z(t);let s=!0,o=t;if(!q(t)||!lr(String(n)))do s=!fr(o)||je(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=Ot(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&ce(this._raw[this._key])){const n=this._object[this._key];if(ce(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return bc(this._raw,this._key)}}class kc{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Vc(e,t,n){return ce(e)?e:W(e)?new kc(e):le(e)&&arguments.length>1?Ii(e,t,n):Lt(e)}function Ii(e,t,n){return new Hc(e,t,n)}class qc{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new bs(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=bn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&ie!==this)return yi(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 $c(e,t,n=!1){let r,s;return W(e)?r=e:(r=e.get,s=e.set),new qc(r,s,n)}const Fn={},Jn=new WeakMap;let Pt;function Kc(e,t=!1,n=Pt){if(n){let r=Jn.get(n);r||Jn.set(n,r=[]),r.push(e)}}function Wc(e,t,n=se){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:c}=n,u=P=>s?P:je(P)||s===!1||s===0?dt(P,1):dt(P);let a,f,p,m,g=!1,b=!1;if(ce(e)?(f=()=>e.value,g=je(e)):it(e)?(f=()=>u(e),g=!0):q(e)?(b=!0,g=e.some(P=>it(P)||je(P)),f=()=>e.map(P=>{if(ce(P))return P.value;if(it(P))return u(P);if(W(P))return c?c(P,2):P()})):W(e)?t?f=c?()=>c(e,2):e:f=()=>{if(p){ht();try{p()}finally{pt()}}const P=Pt;Pt=a;try{return c?c(e,3,[m]):e(m)}finally{Pt=P}}:f=ot,t&&s){const P=f,M=s===!0?1/0:s;f=()=>dt(P(),M)}const E=pi(),O=()=>{a.stop(),E&&E.active&&ds(E.effects,a)};if(o&&t){const P=t;t=(...M)=>{P(...M),O()}}let C=b?new Array(e.length).fill(Fn):Fn;const N=P=>{if(!(!(a.flags&1)||!a.dirty&&!P))if(t){const M=a.run();if(s||g||(b?M.some((X,k)=>vt(X,C[k])):vt(M,C))){p&&p();const X=Pt;Pt=a;try{const k=[M,C===Fn?void 0:b&&C[0]===Fn?[]:C,m];C=M,c?c(t,3,k):t(...k)}finally{Pt=X}}}else a.run()};return l&&l(N),a=new mi(f),a.scheduler=i?()=>i(N,!1):N,m=P=>Kc(P,!1,a),p=a.onStop=()=>{const P=Jn.get(a);if(P){if(c)c(P,4);else for(const M of P)M();Jn.delete(a)}},t?r?N(!0):C=a.run():i?i(N.bind(null,!0),!0):a.run(),O.pause=a.pause.bind(a),O.resume=a.resume.bind(a),O.stop=O,O}function dt(e,t=1/0,n){if(t<=0||!le(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,ce(e))dt(e.value,t,n);else if(q(e))for(let r=0;r{dt(r,t,n)});else if(ii(e)){for(const r in e)dt(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&dt(e[r],t,n)}return e}function xn(e,t,n,r){try{return r?e(...r):e()}catch(s){dr(s,t,n)}}function lt(e,t,n,r){if(W(e)){const s=xn(e,t,n,r);return s&&si(s)&&s.catch(o=>{dr(o,t,n)}),s}if(q(e)){const s=[];for(let o=0;o>>1,s=xe[r],o=wn(s);o=wn(n)?xe.push(e):xe.splice(zc(t),0,e),e.flags|=1,Li()}}function Li(){Xn||(Xn=Di.then(Mi))}function Jc(e){q(e)?Wt.push(...e):St&&e.id===-1?St.splice(kt+1,0,e):e.flags&1||(Wt.push(e),e.flags|=1),Li()}function $s(e,t,n=rt+1){for(;nwn(n)-wn(r));if(Wt.length=0,St){St.push(...t);return}for(St=t,kt=0;kte.id==null?e.flags&2?-1:1/0:e.id;function Mi(e){try{for(rt=0;rt{r._d&&tr(-1);const o=Qn(t);let i;try{i=e(...s)}finally{Qn(o),r._d&&tr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function Ah(e,t){if(we===null)return e;const n=gr(we),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&W(t)?t.call(r&&r.proxy):t}}function Qc(){return!!(dl()||Ft)}const Yc=Symbol.for("v-scx"),Zc=()=>ke(Yc);function fn(e,t,n){return ji(e,t,n)}function ji(e,t,n=se){const{immediate:r,deep:s,flush:o,once:i}=n,l=Se({},n),c=t&&r||!t&&o!=="post";let u;if(An){if(o==="sync"){const m=Zc();u=m.__watcherHandles||(m.__watcherHandles=[])}else if(!c){const m=()=>{};return m.stop=ot,m.resume=ot,m.pause=ot,m}}const a=Te;l.call=(m,g,b)=>lt(m,a,g,b);let f=!1;o==="post"?l.scheduler=m=>{ve(m,a&&a.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(m,g)=>{g?m():As(m)}),l.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,a&&(m.id=a.uid,m.i=a))};const p=Wc(e,t,l);return An&&(u?u.push(p):c&&p()),p}function ea(e,t,n){const r=this.proxy,s=de(e)?e.includes(".")?Bi(r,e):()=>r[e]:e.bind(r,r);let o;W(t)?o=t:(o=t.handler,n=t);const i=Tn(this),l=ji(s,o.bind(r),n);return i(),l}function Bi(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,dn=e=>e&&(e.disabled||e.disabled===""),Ks=e=>e&&(e.defer||e.defer===""),Ws=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Gs=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Gr=(e,t)=>{const n=e&&e.to;return de(n)?t?t(n):null:n},ki={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,u){const{mc:a,pc:f,pbc:p,o:{insert:m,querySelector:g,createText:b,createComment:E}}=u,O=dn(t.props);let{shapeFlag:C,children:N,dynamicChildren:P}=t;if(e==null){const M=t.el=b(""),X=t.anchor=b("");m(M,n,r),m(X,n,r);const k=(U,ee)=>{C&16&&a(N,U,ee,s,o,i,l,c)},V=()=>{const U=t.target=Gr(t.props,g),ee=Vi(U,t,b,m);U&&(i!=="svg"&&Ws(U)?i="svg":i!=="mathml"&&Gs(U)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(U),O||(k(U,ee),kn(t,!1)))};O&&(k(n,X),kn(t,!0)),Ks(t.props)?(t.el.__isMounted=!1,ve(()=>{V(),delete t.el.__isMounted},o)):V()}else{if(Ks(t.props)&&e.el.__isMounted===!1){ve(()=>{ki.process(e,t,n,r,s,o,i,l,c,u)},o);return}t.el=e.el,t.targetStart=e.targetStart;const M=t.anchor=e.anchor,X=t.target=e.target,k=t.targetAnchor=e.targetAnchor,V=dn(e.props),U=V?n:X,ee=V?M:k;if(i==="svg"||Ws(X)?i="svg":(i==="mathml"||Gs(X))&&(i="mathml"),P?(p(e.dynamicChildren,P,U,s,o,i,l),Cs(e,t,!0)):c||f(e,t,U,ee,s,o,i,l,!1),O)V?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Mn(t,n,M,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const ue=t.target=Gr(t.props,g);ue&&Mn(t,ue,null,u,0)}else V&&Mn(t,X,k,u,1);kn(t,O)}},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetStart:u,targetAnchor:a,target:f,props:p}=e;if(f&&(s(u),s(a)),o&&s(c),i&16){const m=o||!dn(p);for(let g=0;ghn(g,t&&(q(t)?t[b]:t),n,r,s));return}if(Gt(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&hn(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?gr(r.component):r.el,i=s?null:o,{i:l,r:c}=e,u=t&&t.r,a=l.refs===se?l.refs={}:l.refs,f=l.setupState,p=Z(f),m=f===se?ni:g=>ne(p,g);if(u!=null&&u!==c){if(zs(t),de(u))a[u]=null,m(u)&&(f[u]=null);else if(ce(u)){u.value=null;const g=t;g.k&&(a[g.k]=null)}}if(W(c))xn(c,l,12,[i,a]);else{const g=de(c),b=ce(c);if(g||b){const E=()=>{if(e.f){const O=g?m(c)?f[c]:a[c]:c.value;if(s)q(O)&&ds(O,o);else if(q(O))O.includes(o)||O.push(o);else if(g)a[c]=[o],m(c)&&(f[c]=a[c]);else{const C=[o];c.value=C,e.k&&(a[e.k]=C)}}else g?(a[c]=i,m(c)&&(f[c]=i)):b&&(c.value=i,e.k&&(a[e.k]=i))};if(i){const O=()=>{E(),Yn.delete(e)};O.id=-1,Yn.set(e,O),ve(O,n)}else zs(e),E()}}}function zs(e){const t=Yn.get(e);t&&(t.flags|=8,Yn.delete(e))}ar().requestIdleCallback;ar().cancelIdleCallback;const Gt=e=>!!e.type.__asyncLoader,$i=e=>e.type.__isKeepAlive;function sa(e,t){Ki(e,"a",t)}function oa(e,t){Ki(e,"da",t)}function Ki(e,t,n=Te){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(hr(t,r,n),n){let s=n.parent;for(;s&&s.parent;)$i(s.parent.vnode)&&ia(r,t,n,s),s=s.parent}}function ia(e,t,n,r){const s=hr(t,e,r,!0);Wi(()=>{ds(r[t],s)},n)}function hr(e,t,n=Te,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{ht();const l=Tn(n),c=lt(t,n,e,i);return l(),pt(),c});return r?s.unshift(o):s.push(o),o}}const _t=e=>(t,n=Te)=>{(!An||e==="sp")&&hr(e,(...r)=>t(...r),n)},la=_t("bm"),ca=_t("m"),aa=_t("bu"),ua=_t("u"),fa=_t("bum"),Wi=_t("um"),da=_t("sp"),ha=_t("rtg"),pa=_t("rtc");function ma(e,t=Te){hr("ec",e,t)}const ga=Symbol.for("v-ndc");function Oh(e,t,n,r){let s;const o=n,i=q(e);if(i||de(e)){const l=i&&it(e);let c=!1,u=!1;l&&(c=!je(e),u=mt(e),e=ur(e)),s=new Array(e.length);for(let a=0,f=e.length;at(l,c,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let c=0,u=l.length;c0;return er(),nr(Fe,null,[Ce("slot",n,r)],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),er();const i=o&&Gi(o(n)),l=n.key||i&&i.key,c=nr(Fe,{key:(l&&!yt(l)?l:`_${t}`)+(!i&&r?"_fb":"")},i||[],i&&e._===1?64:-2);return c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),o&&o._c&&(o._d=!0),c}function Gi(e){return e.some(t=>Rn(t)?!(t.type===gt||t.type===Fe&&!Gi(t.children)):!0)?e:null}const zr=e=>e?hl(e)?gr(e):zr(e.parent):null,pn=Se(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=>zr(e.parent),$root:e=>zr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ji(e),$forceUpdate:e=>e.f||(e.f=()=>{As(e.update)}),$nextTick:e=>e.n||(e.n=Rs.bind(e.proxy)),$watch:e=>ea.bind(e)}),Pr=(e,t)=>e!==se&&!e.__isScriptSetup&&ne(e,t),ya={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,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 r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(Pr(r,t))return i[t]=1,r[t];if(s!==se&&ne(s,t))return i[t]=2,s[t];if(ne(o,t))return i[t]=3,o[t];if(n!==se&&ne(n,t))return i[t]=4,n[t];Jr&&(i[t]=0)}}const u=pn[t];let a,f;if(u)return t==="$attrs"&&be(e.attrs,"get",""),u(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==se&&ne(n,t))return i[t]=4,n[t];if(f=c.config.globalProperties,ne(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return Pr(s,t)?(s[t]=n,!0):r!==se&&ne(r,t)?(r[t]=n,!0):ne(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:o,type:i}},l){let c;return!!(n[l]||e!==se&&l[0]!=="$"&&ne(e,l)||Pr(t,l)||ne(o,l)||ne(r,l)||ne(pn,l)||ne(s.config.globalProperties,l)||(c=i.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ne(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Js(e){return q(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Jr=!0;function _a(e){const t=Ji(e),n=e.proxy,r=e.ctx;Jr=!1,t.beforeCreate&&Xs(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:u,created:a,beforeMount:f,mounted:p,beforeUpdate:m,updated:g,activated:b,deactivated:E,beforeDestroy:O,beforeUnmount:C,destroyed:N,unmounted:P,render:M,renderTracked:X,renderTriggered:k,errorCaptured:V,serverPrefetch:U,expose:ee,inheritAttrs:ue,components:ye,directives:pe,filters:Re}=t;if(u&&ba(u,r,null),i)for(const K in i){const z=i[K];W(z)&&(r[K]=z.bind(n))}if(s){const K=s.call(n,n);le(K)&&(e.data=On(K))}if(Jr=!0,o)for(const K in o){const z=o[K],Be=W(z)?z.bind(n,n):W(z.get)?z.get.bind(n,n):ot,ze=!W(z)&&W(z.set)?z.set.bind(n):ot,me=Me({get:Be,set:ze});Object.defineProperty(r,K,{enumerable:!0,configurable:!0,get:()=>me.value,set:fe=>me.value=fe})}if(l)for(const K in l)zi(l[K],r,n,K);if(c){const K=W(c)?c.call(n):c;Reflect.ownKeys(K).forEach(z=>{Hn(z,K[z])})}a&&Xs(a,e,"c");function J(K,z){q(z)?z.forEach(Be=>K(Be.bind(n))):z&&K(z.bind(n))}if(J(la,f),J(ca,p),J(aa,m),J(ua,g),J(sa,b),J(oa,E),J(ma,V),J(pa,X),J(ha,k),J(fa,C),J(Wi,P),J(da,U),q(ee))if(ee.length){const K=e.exposed||(e.exposed={});ee.forEach(z=>{Object.defineProperty(K,z,{get:()=>n[z],set:Be=>n[z]=Be,enumerable:!0})})}else e.exposed||(e.exposed={});M&&e.render===ot&&(e.render=M),ue!=null&&(e.inheritAttrs=ue),ye&&(e.components=ye),pe&&(e.directives=pe),U&&qi(e)}function ba(e,t,n=ot){q(e)&&(e=Xr(e));for(const r in e){const s=e[r];let o;le(s)?"default"in s?o=ke(s.from||r,s.default,!0):o=ke(s.from||r):o=ke(s),ce(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function Xs(e,t,n){lt(q(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function zi(e,t,n,r){let s=r.includes(".")?Bi(n,r):()=>n[r];if(de(e)){const o=t[e];W(o)&&fn(s,o)}else if(W(e))fn(s,e.bind(n));else if(le(e))if(q(e))e.forEach(o=>zi(o,t,n,r));else{const o=W(e.handler)?e.handler.bind(n):t[e.handler];W(o)&&fn(s,o,e)}}function Ji(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>Zn(c,u,i,!0)),Zn(c,t,i)),le(t)&&o.set(t,c),c}function Zn(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&Zn(e,o,n,!0),s&&s.forEach(i=>Zn(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Ea[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Ea={data:Qs,props:Ys,emits:Ys,methods:ln,computed:ln,beforeCreate:Ae,created:Ae,beforeMount:Ae,mounted:Ae,beforeUpdate:Ae,updated:Ae,beforeDestroy:Ae,beforeUnmount:Ae,destroyed:Ae,unmounted:Ae,activated:Ae,deactivated:Ae,errorCaptured:Ae,serverPrefetch:Ae,components:ln,directives:ln,watch:Sa,provide:Qs,inject:wa};function Qs(e,t){return t?e?function(){return Se(W(e)?e.call(this,this):e,W(t)?t.call(this,this):t)}:t:e}function wa(e,t){return ln(Xr(e),Xr(t))}function Xr(e){if(q(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${xt(t)}Modifiers`]||e[`${jt(t)}Modifiers`];function Oa(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||se;let s=n;const o=t.startsWith("update:"),i=o&&va(r,t.slice(7));i&&(i.trim&&(s=n.map(a=>de(a)?a.trim():a)),i.number&&(s=n.map(hs)));let l,c=r[l=vr(t)]||r[l=vr(xt(t))];!c&&o&&(c=r[l=vr(jt(t))]),c&<(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,lt(u,e,6,s)}}const xa=new WeakMap;function Qi(e,t,n=!1){const r=n?xa:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!W(e)){const c=u=>{const a=Qi(u,t,!0);a&&(l=!0,Se(i,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(le(e)&&r.set(e,null),null):(q(o)?o.forEach(c=>i[c]=null):Se(i,o),le(e)&&r.set(e,i),i)}function pr(e,t){return!e||!or(t)?!1:(t=t.slice(2).replace(/Once$/,""),ne(e,t[0].toLowerCase()+t.slice(1))||ne(e,jt(t))||ne(e,t))}function Zs(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:a,props:f,data:p,setupState:m,ctx:g,inheritAttrs:b}=e,E=Qn(e);let O,C;try{if(n.shapeFlag&4){const P=s||r,M=P;O=st(u.call(M,P,a,f,m,p,g)),C=l}else{const P=t;O=st(P.length>1?P(f,{attrs:l,slots:i,emit:c}):P(f,null)),C=t.props?l:Ta(l)}}catch(P){mn.length=0,dr(P,e,1),O=Ce(gt)}let N=O;if(C&&b!==!1){const P=Object.keys(C),{shapeFlag:M}=N;P.length&&M&7&&(o&&P.some(fs)&&(C=Ca(C,o)),N=Jt(N,C,!1,!0))}return n.dirs&&(N=Jt(N,null,!1,!0),N.dirs=N.dirs?N.dirs.concat(n.dirs):n.dirs),n.transition&&vs(N,n.transition),O=N,Qn(E),O}const Ta=e=>{let t;for(const n in e)(n==="class"||n==="style"||or(n))&&((t||(t={}))[n]=e[n]);return t},Ca=(e,t)=>{const n={};for(const r in e)(!fs(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Pa(e,t,n){const{props:r,children:s,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 r?eo(r,i,u):!!i;if(c&8){const a=t.dynamicProps;for(let f=0;fObject.create(Yi),el=e=>Object.getPrototypeOf(e)===Yi;function Ia(e,t,n,r=!1){const s={},o=Zi();e.propsDefaults=Object.create(null),tl(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:Ci(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function Da(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=Z(s),[c]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const a=e.vnode.dynamicProps;for(let f=0;f{c=!0;const[p,m]=nl(f,t,!0);Se(i,p),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!c)return le(e)&&r.set(e,$t),$t;if(q(o))for(let a=0;ae==="_"||e==="_ctx"||e==="$stable",Ts=e=>q(e)?e.map(st):[st(e)],Fa=(e,t,n)=>{if(t._n)return t;const r=Xc((...s)=>Ts(t(...s)),n);return r._c=!1,r},rl=(e,t,n)=>{const r=e._ctx;for(const s in e){if(xs(s))continue;const o=e[s];if(W(o))t[s]=Fa(s,o,r);else if(o!=null){const i=Ts(o);t[s]=()=>i}}},sl=(e,t)=>{const n=Ts(t);e.slots.default=()=>n},ol=(e,t,n)=>{for(const r in t)(n||!xs(r))&&(e[r]=t[r])},Ma=(e,t,n)=>{const r=e.slots=Zi();if(e.vnode.shapeFlag&32){const s=t._;s?(ol(r,t,n),n&&ci(r,"_",s,!0)):rl(t,r)}else t&&sl(e,t)},Ua=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=se;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:ol(s,t,n):(o=!t.$stable,rl(t,s)),i=t}else t&&(sl(e,t),i={default:1});if(o)for(const l in s)!xs(l)&&i[l]==null&&delete s[l]},ve=Va;function ja(e){return Ba(e)}function Ba(e,t){const n=ar();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:a,parentNode:f,nextSibling:p,setScopeId:m=ot,insertStaticContent:g}=e,b=(d,h,y,w=null,A=null,S=null,I=void 0,T=null,x=!!h.dynamicChildren)=>{if(d===h)return;d&&!rn(d,h)&&(w=R(d),fe(d,A,S,!0),d=null),h.patchFlag===-2&&(x=!1,h.dynamicChildren=null);const{type:v,ref:H,shapeFlag:L}=h;switch(v){case mr:E(d,h,y,w);break;case gt:O(d,h,y,w);break;case Vn:d==null&&C(h,y,w,I);break;case Fe:ye(d,h,y,w,A,S,I,T,x);break;default:L&1?M(d,h,y,w,A,S,I,T,x):L&6?pe(d,h,y,w,A,S,I,T,x):(L&64||L&128)&&v.process(d,h,y,w,A,S,I,T,x,j)}H!=null&&A?hn(H,d&&d.ref,S,h||d,!h):H==null&&d&&d.ref!=null&&hn(d.ref,null,S,d,!0)},E=(d,h,y,w)=>{if(d==null)r(h.el=l(h.children),y,w);else{const A=h.el=d.el;h.children!==d.children&&u(A,h.children)}},O=(d,h,y,w)=>{d==null?r(h.el=c(h.children||""),y,w):h.el=d.el},C=(d,h,y,w)=>{[d.el,d.anchor]=g(d.children,h,y,w,d.el,d.anchor)},N=({el:d,anchor:h},y,w)=>{let A;for(;d&&d!==h;)A=p(d),r(d,y,w),d=A;r(h,y,w)},P=({el:d,anchor:h})=>{let y;for(;d&&d!==h;)y=p(d),s(d),d=y;s(h)},M=(d,h,y,w,A,S,I,T,x)=>{if(h.type==="svg"?I="svg":h.type==="math"&&(I="mathml"),d==null)X(h,y,w,A,S,I,T,x);else{const v=d.el&&d.el._isVueCE?d.el:null;try{v&&v._beginPatch(),U(d,h,A,S,I,T,x)}finally{v&&v._endPatch()}}},X=(d,h,y,w,A,S,I,T)=>{let x,v;const{props:H,shapeFlag:L,transition:B,dirs:$}=d;if(x=d.el=i(d.type,S,H&&H.is,H),L&8?a(x,d.children):L&16&&V(d.children,x,null,w,A,Nr(d,S),I,T),$&&Tt(d,null,w,"created"),k(x,d,d.scopeId,I,w),H){for(const oe in H)oe!=="value"&&!cn(oe)&&o(x,oe,null,H[oe],S,w);"value"in H&&o(x,"value",null,H.value,S),(v=H.onVnodeBeforeMount)&&et(v,w,d)}$&&Tt(d,null,w,"beforeMount");const Y=Ha(A,B);Y&&B.beforeEnter(x),r(x,h,y),((v=H&&H.onVnodeMounted)||Y||$)&&ve(()=>{v&&et(v,w,d),Y&&B.enter(x),$&&Tt(d,null,w,"mounted")},A)},k=(d,h,y,w,A)=>{if(y&&m(d,y),w)for(let S=0;S{for(let v=x;v{const T=h.el=d.el;let{patchFlag:x,dynamicChildren:v,dirs:H}=h;x|=d.patchFlag&16;const L=d.props||se,B=h.props||se;let $;if(y&&Ct(y,!1),($=B.onVnodeBeforeUpdate)&&et($,y,h,d),H&&Tt(h,d,y,"beforeUpdate"),y&&Ct(y,!0),(L.innerHTML&&B.innerHTML==null||L.textContent&&B.textContent==null)&&a(T,""),v?ee(d.dynamicChildren,v,T,y,w,Nr(h,A),S):I||z(d,h,T,null,y,w,Nr(h,A),S,!1),x>0){if(x&16)ue(T,L,B,y,A);else if(x&2&&L.class!==B.class&&o(T,"class",null,B.class,A),x&4&&o(T,"style",L.style,B.style,A),x&8){const Y=h.dynamicProps;for(let oe=0;oe{$&&et($,y,h,d),H&&Tt(h,d,y,"updated")},w)},ee=(d,h,y,w,A,S,I)=>{for(let T=0;T{if(h!==y){if(h!==se)for(const S in h)!cn(S)&&!(S in y)&&o(d,S,h[S],null,A,w);for(const S in y){if(cn(S))continue;const I=y[S],T=h[S];I!==T&&S!=="value"&&o(d,S,T,I,A,w)}"value"in y&&o(d,"value",h.value,y.value,A)}},ye=(d,h,y,w,A,S,I,T,x)=>{const v=h.el=d?d.el:l(""),H=h.anchor=d?d.anchor:l("");let{patchFlag:L,dynamicChildren:B,slotScopeIds:$}=h;$&&(T=T?T.concat($):$),d==null?(r(v,y,w),r(H,y,w),V(h.children||[],y,H,A,S,I,T,x)):L>0&&L&64&&B&&d.dynamicChildren&&d.dynamicChildren.length===B.length?(ee(d.dynamicChildren,B,y,A,S,I,T),(h.key!=null||A&&h===A.subTree)&&Cs(d,h,!0)):z(d,h,y,H,A,S,I,T,x)},pe=(d,h,y,w,A,S,I,T,x)=>{h.slotScopeIds=T,d==null?h.shapeFlag&512?A.ctx.activate(h,y,w,I,x):Re(h,y,w,A,S,I,x):Ve(d,h,x)},Re=(d,h,y,w,A,S,I)=>{const T=d.component=Xa(d,w,A);if($i(d)&&(T.ctx.renderer=j),Qa(T,!1,I),T.asyncDep){if(A&&A.registerDep(T,J,I),!d.el){const x=T.subTree=Ce(gt);O(null,x,h,y),d.placeholder=x.el}}else J(T,d,h,y,A,S,I)},Ve=(d,h,y)=>{const w=h.component=d.component;if(Pa(d,h,y))if(w.asyncDep&&!w.asyncResolved){K(w,h,y);return}else w.next=h,w.update();else h.el=d.el,w.vnode=h},J=(d,h,y,w,A,S,I)=>{const T=()=>{if(d.isMounted){let{next:L,bu:B,u:$,parent:Y,vnode:oe}=d;{const Ye=il(d);if(Ye){L&&(L.el=oe.el,K(d,L,I)),Ye.asyncDep.then(()=>{d.isUnmounted||T()});return}}let re=L,Pe;Ct(d,!1),L?(L.el=oe.el,K(d,L,I)):L=oe,B&&Bn(B),(Pe=L.props&&L.props.onVnodeBeforeUpdate)&&et(Pe,Y,L,oe),Ct(d,!0);const Ne=Zs(d),Qe=d.subTree;d.subTree=Ne,b(Qe,Ne,f(Qe.el),R(Qe),d,A,S),L.el=Ne.el,re===null&&Na(d,Ne.el),$&&ve($,A),(Pe=L.props&&L.props.onVnodeUpdated)&&ve(()=>et(Pe,Y,L,oe),A)}else{let L;const{el:B,props:$}=h,{bm:Y,m:oe,parent:re,root:Pe,type:Ne}=d,Qe=Gt(h);Ct(d,!1),Y&&Bn(Y),!Qe&&(L=$&&$.onVnodeBeforeMount)&&et(L,re,h),Ct(d,!0);{Pe.ce&&Pe.ce._def.shadowRoot!==!1&&Pe.ce._injectChildStyle(Ne);const Ye=d.subTree=Zs(d);b(null,Ye,y,w,d,A,S),h.el=Ye.el}if(oe&&ve(oe,A),!Qe&&(L=$&&$.onVnodeMounted)){const Ye=h;ve(()=>et(L,re,Ye),A)}(h.shapeFlag&256||re&&Gt(re.vnode)&&re.vnode.shapeFlag&256)&&d.a&&ve(d.a,A),d.isMounted=!0,h=y=w=null}};d.scope.on();const x=d.effect=new mi(T);d.scope.off();const v=d.update=x.run.bind(x),H=d.job=x.runIfDirty.bind(x);H.i=d,H.id=d.uid,x.scheduler=()=>As(H),Ct(d,!0),v()},K=(d,h,y)=>{h.component=d;const w=d.vnode.props;d.vnode=h,d.next=null,Da(d,h.props,w,y),Ua(d,h.children,y),ht(),$s(d),pt()},z=(d,h,y,w,A,S,I,T,x=!1)=>{const v=d&&d.children,H=d?d.shapeFlag:0,L=h.children,{patchFlag:B,shapeFlag:$}=h;if(B>0){if(B&128){ze(v,L,y,w,A,S,I,T,x);return}else if(B&256){Be(v,L,y,w,A,S,I,T,x);return}}$&8?(H&16&&He(v,A,S),L!==v&&a(y,L)):H&16?$&16?ze(v,L,y,w,A,S,I,T,x):He(v,A,S,!0):(H&8&&a(y,""),$&16&&V(L,y,w,A,S,I,T,x))},Be=(d,h,y,w,A,S,I,T,x)=>{d=d||$t,h=h||$t;const v=d.length,H=h.length,L=Math.min(v,H);let B;for(B=0;BH?He(d,A,S,!0,!1,L):V(h,y,w,A,S,I,T,x,L)},ze=(d,h,y,w,A,S,I,T,x)=>{let v=0;const H=h.length;let L=d.length-1,B=H-1;for(;v<=L&&v<=B;){const $=d[v],Y=h[v]=x?Rt(h[v]):st(h[v]);if(rn($,Y))b($,Y,y,null,A,S,I,T,x);else break;v++}for(;v<=L&&v<=B;){const $=d[L],Y=h[B]=x?Rt(h[B]):st(h[B]);if(rn($,Y))b($,Y,y,null,A,S,I,T,x);else break;L--,B--}if(v>L){if(v<=B){const $=B+1,Y=$B)for(;v<=L;)fe(d[v],A,S,!0),v++;else{const $=v,Y=v,oe=new Map;for(v=Y;v<=B;v++){const Le=h[v]=x?Rt(h[v]):st(h[v]);Le.key!=null&&oe.set(Le.key,v)}let re,Pe=0;const Ne=B-Y+1;let Qe=!1,Ye=0;const tn=new Array(Ne);for(v=0;v=Ne){fe(Le,A,S,!0);continue}let Ze;if(Le.key!=null)Ze=oe.get(Le.key);else for(re=Y;re<=B;re++)if(tn[re-Y]===0&&rn(Le,h[re])){Ze=re;break}Ze===void 0?fe(Le,A,S,!0):(tn[Ze-Y]=v+1,Ze>=Ye?Ye=Ze:Qe=!0,b(Le,h[Ze],y,null,A,S,I,T,x),Pe++)}const js=Qe?ka(tn):$t;for(re=js.length-1,v=Ne-1;v>=0;v--){const Le=Y+v,Ze=h[Le],Bs=h[Le+1],Hs=Le+1{const{el:S,type:I,transition:T,children:x,shapeFlag:v}=d;if(v&6){me(d.component.subTree,h,y,w);return}if(v&128){d.suspense.move(h,y,w);return}if(v&64){I.move(d,h,y,j);return}if(I===Fe){r(S,h,y);for(let L=0;LT.enter(S),A);else{const{leave:L,delayLeave:B,afterLeave:$}=T,Y=()=>{d.ctx.isUnmounted?s(S):r(S,h,y)},oe=()=>{S._isLeaving&&S[ra](!0),L(S,()=>{Y(),$&&$()})};B?B(S,Y,oe):oe()}else r(S,h,y)},fe=(d,h,y,w=!1,A=!1)=>{const{type:S,props:I,ref:T,children:x,dynamicChildren:v,shapeFlag:H,patchFlag:L,dirs:B,cacheIndex:$}=d;if(L===-2&&(A=!1),T!=null&&(ht(),hn(T,null,y,d,!0),pt()),$!=null&&(h.renderCache[$]=void 0),H&256){h.ctx.deactivate(d);return}const Y=H&1&&B,oe=!Gt(d);let re;if(oe&&(re=I&&I.onVnodeBeforeUnmount)&&et(re,h,d),H&6)Xe(d.component,y,w);else{if(H&128){d.suspense.unmount(y,w);return}Y&&Tt(d,null,h,"beforeUnmount"),H&64?d.type.remove(d,h,y,j,w):v&&!v.hasOnce&&(S!==Fe||L>0&&L&64)?He(v,h,y,!1,!0):(S===Fe&&L&384||!A&&H&16)&&He(x,h,y),w&&Je(d)}(oe&&(re=I&&I.onVnodeUnmounted)||Y)&&ve(()=>{re&&et(re,h,d),Y&&Tt(d,null,h,"unmounted")},y)},Je=d=>{const{type:h,el:y,anchor:w,transition:A}=d;if(h===Fe){qe(y,w);return}if(h===Vn){P(d);return}const S=()=>{s(y),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(d.shapeFlag&1&&A&&!A.persisted){const{leave:I,delayLeave:T}=A,x=()=>I(y,S);T?T(d.el,S,x):x()}else S()},qe=(d,h)=>{let y;for(;d!==h;)y=p(d),s(d),d=y;s(h)},Xe=(d,h,y)=>{const{bum:w,scope:A,job:S,subTree:I,um:T,m:x,a:v}=d;no(x),no(v),w&&Bn(w),A.stop(),S&&(S.flags|=8,fe(I,d,h,y)),T&&ve(T,h),ve(()=>{d.isUnmounted=!0},h)},He=(d,h,y,w=!1,A=!1,S=0)=>{for(let I=S;I{if(d.shapeFlag&6)return R(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const h=p(d.anchor||d.el),y=h&&h[Hi];return y?p(y):h};let F=!1;const D=(d,h,y)=>{let w;d==null?h._vnode&&(fe(h._vnode,null,null,!0),w=h._vnode.component):b(h._vnode||null,d,h,null,null,null,y),h._vnode=d,F||(F=!0,$s(w),Fi(),F=!1)},j={p:b,um:fe,m:me,r:Je,mt:Re,mc:V,pc:z,pbc:ee,n:R,o:e};return{render:D,hydrate:void 0,createApp:Aa(D)}}function Nr({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 Ct({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Ha(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Cs(e,t,n=!1){const r=e.children,s=t.children;if(q(r)&&q(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function il(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:il(t)}function no(e){if(e)for(let t=0;te.__isSuspense;function Va(e,t){t&&t.pendingBranch?q(e)?t.effects.push(...e):t.effects.push(e):Jc(e)}const Fe=Symbol.for("v-fgt"),mr=Symbol.for("v-txt"),gt=Symbol.for("v-cmt"),Vn=Symbol.for("v-stc"),mn=[];let Ue=null;function er(e=!1){mn.push(Ue=e?null:[])}function qa(){mn.pop(),Ue=mn[mn.length-1]||null}let Sn=1;function tr(e,t=!1){Sn+=e,e<0&&Ue&&t&&(Ue.hasOnce=!0)}function al(e){return e.dynamicChildren=Sn>0?Ue||$t:null,qa(),Sn>0&&Ue&&Ue.push(e),e}function Th(e,t,n,r,s,o){return al(fl(e,t,n,r,s,o,!0))}function nr(e,t,n,r,s){return al(Ce(e,t,n,r,s,!0))}function Rn(e){return e?e.__v_isVNode===!0:!1}function rn(e,t){return e.type===t.type&&e.key===t.key}const ul=({key:e})=>e??null,qn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?de(e)||ce(e)||W(e)?{i:we,r:e,k:t,f:!!n}:e:null);function fl(e,t=null,n=null,r=0,s=null,o=e===Fe?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ul(t),ref:t&&qn(t),scopeId:Ui,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:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:we};return l?(Ps(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=de(n)?8:16),Sn>0&&!i&&Ue&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Ue.push(c),c}const Ce=$a;function $a(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===ga)&&(e=gt),Rn(e)){const l=Jt(e,t,!0);return n&&Ps(l,n),Sn>0&&!o&&Ue&&(l.shapeFlag&6?Ue[Ue.indexOf(e)]=l:Ue.push(l)),l.patchFlag=-2,l}if(tu(e)&&(e=e.__vccOpts),t){t=Ka(t);let{class:l,style:c}=t;l&&!de(l)&&(t.class=ms(l)),le(c)&&(fr(c)&&!q(c)&&(c=Se({},c)),t.style=ps(c))}const i=de(e)?1:cl(e)?128:ta(e)?64:le(e)?4:W(e)?2:0;return fl(e,t,n,r,s,i,o,!0)}function Ka(e){return e?fr(e)||el(e)?Se({},e):e:null}function Jt(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?Ga(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&ul(u),ref:t&&t.ref?n&&o?q(o)?o.concat(qn(t)):[o,qn(t)]:qn(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!==Fe?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&&Jt(e.ssContent),ssFallback:e.ssFallback&&Jt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&vs(a,c.clone(a)),a}function Wa(e=" ",t=0){return Ce(mr,null,e,t)}function Ch(e,t){const n=Ce(Vn,null,e);return n.staticCount=t,n}function Ph(e="",t=!1){return t?(er(),nr(gt,null,e)):Ce(gt,null,e)}function st(e){return e==null||typeof e=="boolean"?Ce(gt):q(e)?Ce(Fe,null,e.slice()):Rn(e)?Rt(e):Ce(mr,null,String(e))}function Rt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Jt(e)}function Ps(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(q(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Ps(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!el(t)?t._ctx=we:s===3&&we&&(we.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else W(t)?(t={default:t,_ctx:we},n=32):(t=String(t),r&64?(n=16,t=[Wa(t)]):n=8);e.children=t,e.shapeFlag|=n}function Ga(...e){const t={};for(let n=0;nTe||we;let rr,Yr;{const e=ar(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};rr=t("__VUE_INSTANCE_SETTERS__",n=>Te=n),Yr=t("__VUE_SSR_SETTERS__",n=>An=n)}const Tn=e=>{const t=Te;return rr(e),e.scope.on(),()=>{e.scope.off(),rr(t)}},ro=()=>{Te&&Te.scope.off(),rr(null)};function hl(e){return e.vnode.shapeFlag&4}let An=!1;function Qa(e,t=!1,n=!1){t&&Yr(t);const{props:r,children:s}=e.vnode,o=hl(e);Ia(e,r,o,t),Ma(e,s,n||t);const i=o?Ya(e,t):void 0;return t&&Yr(!1),i}function Ya(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,ya);const{setup:r}=n;if(r){ht();const s=e.setupContext=r.length>1?eu(e):null,o=Tn(e),i=xn(r,e,0,[e.props,s]),l=si(i);if(pt(),o(),(l||e.sp)&&!Gt(e)&&qi(e),l){if(i.then(ro,ro),t)return i.then(c=>{so(e,c)}).catch(c=>{dr(c,e,0)});e.asyncDep=i}else so(e,i)}else pl(e)}function so(e,t,n){W(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:le(t)&&(e.setupState=Ni(t)),pl(e)}function pl(e,t,n){const r=e.type;e.render||(e.render=r.render||ot);{const s=Tn(e);ht();try{_a(e)}finally{pt(),s()}}}const Za={get(e,t){return be(e,"get",""),e[t]}};function eu(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Za),slots:e.slots,emit:e.emit,expose:t}}function gr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ni(Ss(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in pn)return pn[n](e)},has(t,n){return n in t||n in pn}})):e.proxy}function tu(e){return W(e)&&"__vccOpts"in e}const Me=(e,t)=>$c(e,t,An);function ml(e,t,n){try{tr(-1);const r=arguments.length;return r===2?le(t)&&!q(t)?Rn(t)?Ce(e,null,[t]):Ce(e,t):Ce(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Rn(n)&&(n=[n]),Ce(e,t,n))}finally{tr(1)}}const nu="3.5.26";let Zr;const oo=typeof window<"u"&&window.trustedTypes;if(oo)try{Zr=oo.createPolicy("vue",{createHTML:e=>e})}catch{}const gl=Zr?e=>Zr.createHTML(e):e=>e,ru="http://www.w3.org/2000/svg",su="http://www.w3.org/1998/Math/MathML",ut=typeof document<"u"?document:null,io=ut&&ut.createElement("template"),ou={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?ut.createElementNS(ru,e):t==="mathml"?ut.createElementNS(su,e):n?ut.createElement(e,{is:n}):ut.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>ut.createTextNode(e),createComment:e=>ut.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ut.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{io.innerHTML=gl(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=io.content;if(r==="svg"||r==="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]}},iu=Symbol("_vtc");function lu(e,t,n){const r=e[iu];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const lo=Symbol("_vod"),cu=Symbol("_vsh"),au=Symbol(""),uu=/(?:^|;)\s*display\s*:/;function fu(e,t,n){const r=e.style,s=de(n);let o=!1;if(n&&!s){if(t)if(de(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&$n(r,l,"")}else for(const i in t)n[i]==null&&$n(r,i,"");for(const i in n)i==="display"&&(o=!0),$n(r,i,n[i])}else if(s){if(t!==n){const i=r[au];i&&(n+=";"+i),r.cssText=n,o=uu.test(n)}}else t&&e.removeAttribute("style");lo in e&&(e[lo]=o?r.display:"",e[cu]&&(r.display="none"))}const co=/\s*!important$/;function $n(e,t,n){if(q(n))n.forEach(r=>$n(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=du(e,t);co.test(n)?e.setProperty(jt(r),n.replace(co,""),"important"):e[r]=n}}const ao=["Webkit","Moz","ms"],Ir={};function du(e,t){const n=Ir[t];if(n)return n;let r=xt(t);if(r!=="filter"&&r in e)return Ir[t]=r;r=li(r);for(let s=0;sDr||(gu.then(()=>Dr=0),Dr=Date.now());function _u(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;lt(bu(r,n.value),t,5,[r])};return n.value=e,n.attached=yu(),n}function bu(e,t){if(q(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const go=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Eu=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?lu(e,r,i):t==="style"?fu(e,n,r):or(t)?fs(t)||pu(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):wu(e,t,r,i))?(ho(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&fo(e,t,r,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!de(r))?ho(e,xt(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),fo(e,t,r,i))};function wu(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&go(t)&&W(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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return go(t)&&de(n)?!1:t in e}const yo=e=>{const t=e.props["onUpdate:modelValue"]||!1;return q(t)?n=>Bn(t,n):t};function Su(e){e.target.composing=!0}function _o(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Lr=Symbol("_assign");function bo(e,t,n){return t&&(e=e.trim()),n&&(e=hs(e)),e}const Nh={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Lr]=yo(s);const o=r||s.props&&s.props.type==="number";Vt(e,t?"change":"input",i=>{i.target.composing||e[Lr](bo(e.value,n,o))}),(n||o)&&Vt(e,"change",()=>{e.value=bo(e.value,n,o)}),t||(Vt(e,"compositionstart",Su),Vt(e,"compositionend",_o),Vt(e,"change",_o))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Lr]=yo(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?hs(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},Ru=["ctrl","shift","alt","meta"],Au={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Ru.some(n=>e[`${n}Key`]&&!t.includes(n))},Ih=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const t=Ou().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Cu(r);if(!s)return;const o=t._component;!W(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,Tu(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t});function Tu(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Cu(e){return de(e)?document.querySelector(e):e}let yl;const yr=e=>yl=e,_l=Symbol();function es(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var gn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(gn||(gn={}));function Pu(){const e=hi(!0),t=e.run(()=>Lt({}));let n=[],r=[];const s=Ss({install(o){yr(s),s._a=o,o.provide(_l,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const bl=()=>{};function wo(e,t,n,r=bl){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&pi()&&gc(s),s}function Ht(e,...t){e.forEach(n=>{n(...t)})}const Nu=e=>e(),So=Symbol(),Fr=Symbol();function ts(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];es(s)&&es(r)&&e.hasOwnProperty(n)&&!ce(r)&&!it(r)?e[n]=ts(s,r):e[n]=r}return e}const Iu=Symbol();function Du(e){return!es(e)||!Object.prototype.hasOwnProperty.call(e,Iu)}const{assign:Et}=Object;function Lu(e){return!!(ce(e)&&e.effect)}function Fu(e,t,n,r){const{state:s,actions:o,getters:i}=t,l=n.state.value[e];let c;function u(){l||(n.state.value[e]=s?s():{});const a=Bc(n.state.value[e]);return Et(a,o,Object.keys(i||{}).reduce((f,p)=>(f[p]=Ss(Me(()=>{yr(n);const m=n._s.get(e);return i[p].call(m,m)})),f),{}))}return c=El(e,u,t,n,r,!0),c}function El(e,t,n={},r,s,o){let i;const l=Et({actions:{}},n),c={deep:!0};let u,a,f=new Set,p=new Set,m;const g=r.state.value[e];!o&&!g&&(r.state.value[e]={}),Lt({});let b;function E(V){let U;u=a=!1,typeof V=="function"?(V(r.state.value[e]),U={type:gn.patchFunction,storeId:e,events:m}):(ts(r.state.value[e],V),U={type:gn.patchObject,payload:V,storeId:e,events:m});const ee=b=Symbol();Rs().then(()=>{b===ee&&(u=!0)}),a=!0,Ht(f,U,r.state.value[e])}const O=o?function(){const{state:U}=n,ee=U?U():{};this.$patch(ue=>{Et(ue,ee)})}:bl;function C(){i.stop(),f.clear(),p.clear(),r._s.delete(e)}const N=(V,U="")=>{if(So in V)return V[Fr]=U,V;const ee=function(){yr(r);const ue=Array.from(arguments),ye=new Set,pe=new Set;function Re(K){ye.add(K)}function Ve(K){pe.add(K)}Ht(p,{args:ue,name:ee[Fr],store:M,after:Re,onError:Ve});let J;try{J=V.apply(this&&this.$id===e?this:M,ue)}catch(K){throw Ht(pe,K),K}return J instanceof Promise?J.then(K=>(Ht(ye,K),K)).catch(K=>(Ht(pe,K),Promise.reject(K))):(Ht(ye,J),J)};return ee[So]=!0,ee[Fr]=U,ee},P={_p:r,$id:e,$onAction:wo.bind(null,p),$patch:E,$reset:O,$subscribe(V,U={}){const ee=wo(f,V,U.detached,()=>ue()),ue=i.run(()=>fn(()=>r.state.value[e],ye=>{(U.flush==="sync"?a:u)&&V({storeId:e,type:gn.direct,events:m},ye)},Et({},c,U)));return ee},$dispose:C},M=On(P);r._s.set(e,M);const k=(r._a&&r._a.runWithContext||Nu)(()=>r._e.run(()=>(i=hi()).run(()=>t({action:N}))));for(const V in k){const U=k[V];if(ce(U)&&!Lu(U)||it(U))o||(g&&Du(U)&&(ce(U)?U.value=g[V]:ts(U,g[V])),r.state.value[e][V]=U);else if(typeof U=="function"){const ee=N(U,V);k[V]=ee,l.actions[V]=U}}return Et(M,k),Et(Z(M),k),Object.defineProperty(M,"$state",{get:()=>r.state.value[e],set:V=>{E(U=>{Et(U,V)})}}),r._p.forEach(V=>{Et(M,i.run(()=>V({store:M,app:r._a,pinia:r,options:l})))}),g&&o&&n.hydrate&&n.hydrate(M.$state,g),u=!0,a=!0,M}function Mu(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,l){const c=Qc();return i=i||(c?ke(_l,null):null),i&&yr(i),i=yl,i._s.has(e)||(s?El(e,t,r,i):Fu(e,r,i)),i._s.get(e)}return o.$id=e,o}function Dh(e){const t=Z(e),n={};for(const r in t){const s=t[r];s.effect?n[r]=Me({get:()=>e[r],set(o){e[r]=o}}):(ce(s)||it(s))&&(n[r]=Vc(e,r))}return n}const Uu="modulepreload",ju=function(e){return"/"+e},Ro={},tt=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let c=function(u){return Promise.all(u.map(a=>Promise.resolve(a).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=c(n.map(u=>{if(u=ju(u),u in Ro)return;Ro[u]=!0;const a=u.endsWith(".css"),f=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const p=document.createElement("link");if(p.rel=a?"stylesheet":Uu,a||(p.as="script"),p.crossOrigin="",p.href=u,l&&p.setAttribute("nonce",l),document.head.appendChild(p),a)return new Promise((m,g)=>{p.addEventListener("load",m),p.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})};const qt=typeof document<"u";function wl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Bu(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&wl(e.default)}const te=Object.assign;function Mr(e,t){const n={};for(const r in t){const s=t[r];n[r]=We(s)?s.map(e):e(s)}return n}const yn=()=>{},We=Array.isArray;function Ao(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const Sl=/#/g,Hu=/&/g,ku=/\//g,Vu=/=/g,qu=/\?/g,Rl=/\+/g,$u=/%5B/g,Ku=/%5D/g,Al=/%5E/g,Wu=/%60/g,vl=/%7B/g,Gu=/%7C/g,Ol=/%7D/g,zu=/%20/g;function Ns(e){return e==null?"":encodeURI(""+e).replace(Gu,"|").replace($u,"[").replace(Ku,"]")}function Ju(e){return Ns(e).replace(vl,"{").replace(Ol,"}").replace(Al,"^")}function ns(e){return Ns(e).replace(Rl,"%2B").replace(zu,"+").replace(Sl,"%23").replace(Hu,"%26").replace(Wu,"`").replace(vl,"{").replace(Ol,"}").replace(Al,"^")}function Xu(e){return ns(e).replace(Vu,"%3D")}function Qu(e){return Ns(e).replace(Sl,"%23").replace(qu,"%3F")}function Yu(e){return Qu(e).replace(ku,"%2F")}function vn(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Zu=/\/$/,ef=e=>e.replace(Zu,"");function Ur(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return c=l>=0&&c>l?-1:c,c>=0&&(r=t.slice(0,c),o=t.slice(c,l>0?l:t.length),s=e(o.slice(1))),l>=0&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=sf(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:vn(i)}}function tf(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function vo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function nf(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&Xt(t.matched[r],n.matched[s])&&xl(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Xt(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function xl(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!rf(e[n],t[n]))return!1;return!0}function rf(e,t){return We(e)?Oo(e,t):We(t)?Oo(t,e):e?.valueOf()===t?.valueOf()}function Oo(e,t){return We(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function sf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const bt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let rs=(function(e){return e.pop="pop",e.push="push",e})({}),jr=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function of(e){if(!e)if(qt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),ef(e)}const lf=/^[^#]+#/;function cf(e,t){return e.replace(lf,"#")+t}function af(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const _r=()=>({left:window.scrollX,top:window.scrollY});function uf(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=af(s,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 xo(e,t){return(history.state?history.state.position-t:-1)+e}const ss=new Map;function ff(e,t){ss.set(e,t)}function df(e){const t=ss.get(e);return ss.delete(e),t}function hf(e){return typeof e=="string"||e&&typeof e=="object"}function Tl(e){return typeof e=="string"||typeof e=="symbol"}let ae=(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 Cl=Symbol("");ae.MATCHER_NOT_FOUND+"",ae.NAVIGATION_GUARD_REDIRECT+"",ae.NAVIGATION_ABORTED+"",ae.NAVIGATION_CANCELLED+"",ae.NAVIGATION_DUPLICATED+"";function Qt(e,t){return te(new Error,{type:e,[Cl]:!0},t)}function at(e,t){return e instanceof Error&&Cl in e&&(t==null||!!(e.type&t))}const pf=["params","query","hash"];function mf(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of pf)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function gf(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&ns(s)):[r&&ns(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function yf(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=We(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const _f=Symbol(""),Co=Symbol(""),br=Symbol(""),Is=Symbol(""),os=Symbol("");function sn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function At(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,c)=>{const u=p=>{p===!1?c(Qt(ae.NAVIGATION_ABORTED,{from:n,to:t})):p instanceof Error?c(p):hf(p)?c(Qt(ae.NAVIGATION_GUARD_REDIRECT,{from:t,to:p})):(i&&r.enterCallbacks[s]===i&&typeof p=="function"&&i.push(p),l())},a=o(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(a);e.length<3&&(f=f.then(u)),f.catch(p=>c(p))})}function Br(e,t,n,r,s=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(wl(c)){const u=(c.__vccOpts||c)[t];u&&o.push(At(u,n,r,i,l,s))}else{let u=c();o.push(()=>u.then(a=>{if(!a)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=Bu(a)?a.default:a;i.mods[l]=a,i.components[l]=f;const p=(f.__vccOpts||f)[t];return p&&At(p,n,r,i,l,s)()}))}}return o}function bf(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;iXt(u,l))?r.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(u=>Xt(u,c))||s.push(c))}return[n,r,s]}let Ef=()=>location.protocol+"//"+location.host;function Pl(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(i);return l[0]!=="/"&&(l="/"+l),vo(l,"")}return vo(n,e)+r+s}function wf(e,t,n,r){let s=[],o=[],i=null;const l=({state:p})=>{const m=Pl(e,location),g=n.value,b=t.value;let E=0;if(p){if(n.value=m,t.value=p,i&&i===g){i=null;return}E=b?p.position-b.position:0}else r(m);s.forEach(O=>{O(n.value,g,{delta:E,type:rs.pop,direction:E?E>0?jr.forward:jr.back:jr.unknown})})};function c(){i=n.value}function u(p){s.push(p);const m=()=>{const g=s.indexOf(p);g>-1&&s.splice(g,1)};return o.push(m),m}function a(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(te({},p.state,{scroll:_r()}),"")}}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,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?_r():null}}function Sf(e){const{history:t,location:n}=window,r={value:Pl(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.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:Ef()+e+c;try{t[a?"replaceState":"pushState"](u,"",p),s.value=u}catch(m){console.error(m),n[a?"replace":"assign"](p)}}function i(c,u){o(c,te({},t.state,Po(s.value.back,c,s.value.forward,!0),u,{position:s.value.position}),!0),r.value=c}function l(c,u){const a=te({},s.value,t.state,{forward:c,scroll:_r()});o(a.current,a,!0),o(c,te({},Po(r.value,c,null),{position:a.position+1},u),!1),r.value=c}return{location:r,state:s,push:l,replace:i}}function Rf(e){e=of(e);const t=Sf(e),n=wf(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=te({location:"",base:e,go:r,createHref:cf.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function Af(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),Rf(e)}let Nt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var ge=(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})(ge||{});const vf={type:Nt.Static,value:""},Of=/[a-zA-Z0-9_]/;function xf(e){if(!e)return[[]];if(e==="/")return[[vf]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${u}": ${m}`)}let n=ge.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,c,u="",a="";function f(){u&&(n===ge.Static?o.push({type:Nt.Static,value:u}):n===ge.Param||n===ge.ParamRegExp||n===ge.ParamRegExpEnd?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:Nt.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]===Oe.Static+Oe.Segment?1:-1:0}function Nl(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const If={strict:!1,end:!0,sensitive:!1};function Df(e,t,n){const r=Pf(xf(e.path),n),s=te(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function Lf(e,t){const n=[],r=new Map;t=Ao(If,t);function s(f){return r.get(f)}function o(f,p,m){const g=!m,b=Lo(f);b.aliasOf=m&&m.record;const E=Ao(t,f),O=[b];if("alias"in f){const P=typeof f.alias=="string"?[f.alias]:f.alias;for(const M of P)O.push(Lo(te({},b,{components:m?m.record.components:b.components,path:M,aliasOf:m?m.record:b})))}let C,N;for(const P of O){const{path:M}=P;if(p&&M[0]!=="/"){const X=p.record.path,k=X[X.length-1]==="/"?"":"/";P.path=p.record.path+(M&&k+M)}if(C=Df(P,p,E),m?m.alias.push(C):(N=N||C,N!==C&&N.alias.push(C),g&&f.name&&!Fo(C)&&i(f.name)),Il(C)&&c(C),b.children){const X=b.children;for(let k=0;k{i(N)}:yn}function i(f){if(Tl(f)){const p=r.get(f);p&&(r.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&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function c(f){const p=Uf(f,n);n.splice(p,0,f),f.record.name&&!Fo(f)&&r.set(f.record.name,f)}function u(f,p){let m,g={},b,E;if("name"in f&&f.name){if(m=r.get(f.name),!m)throw Qt(ae.MATCHER_NOT_FOUND,{location:f});E=m.record.name,g=te(Do(p.params,m.keys.filter(N=>!N.optional).concat(m.parent?m.parent.keys.filter(N=>N.optional):[]).map(N=>N.name)),f.params&&Do(f.params,m.keys.map(N=>N.name))),b=m.stringify(g)}else if(f.path!=null)b=f.path,m=n.find(N=>N.re.test(b)),m&&(g=m.parse(b),E=m.record.name);else{if(m=p.name?r.get(p.name):n.find(N=>N.re.test(p.path)),!m)throw Qt(ae.MATCHER_NOT_FOUND,{location:f,currentLocation:p});E=m.record.name,g=te({},p.params,f.params),b=m.stringify(g)}const O=[];let C=m;for(;C;)O.unshift(C.record),C=C.parent;return{name:E,path:b,params:g,matched:O,meta:Mf(O)}}e.forEach(f=>o(f));function a(){n.length=0,r.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:a,getRoutes:l,getRecordMatcher:s}}function Do(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function Lo(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Ff(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 Ff(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function Fo(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Mf(e){return e.reduce((t,n)=>te(t,n.meta),{})}function Uf(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;Nl(e,t[o])<0?r=o:n=o+1}const s=jf(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function jf(e){let t=e;for(;t=t.parent;)if(Il(t)&&Nl(e,t)===0)return t}function Il({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Mo(e){const t=ke(br),n=ke(Is),r=Me(()=>{const c=Ot(e.to);return t.resolve(c)}),s=Me(()=>{const{matched:c}=r.value,{length:u}=c,a=c[u-1],f=n.matched;if(!a||!f.length)return-1;const p=f.findIndex(Xt.bind(null,a));if(p>-1)return p;const m=Uo(c[u-2]);return u>1&&Uo(a)===m&&f[f.length-1].path!==m?f.findIndex(Xt.bind(null,c[u-2])):p}),o=Me(()=>s.value>-1&&qf(n.params,r.value.params)),i=Me(()=>s.value>-1&&s.value===n.matched.length-1&&xl(n.params,r.value.params));function l(c={}){if(Vf(c)){const u=t[Ot(e.replace)?"replace":"push"](Ot(e.to)).catch(yn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Me(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function Bf(e){return e.length===1?e[0]:e}const Hf=Os({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=On(Mo(e)),{options:r}=ke(br),s=Me(()=>({[jo(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[jo(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&Bf(t.default(n));return e.custom?o:ml("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),kf=Hf;function Vf(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 qf(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!We(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function Uo(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const jo=(e,t,n)=>e??t??n,$f=Os({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=ke(os),s=Me(()=>e.route||r.value),o=ke(Co,0),i=Me(()=>{let u=Ot(o);const{matched:a}=s.value;let f;for(;(f=a[u])&&!f.components;)u++;return u}),l=Me(()=>s.value.matched[i.value]);Hn(Co,Me(()=>i.value+1)),Hn(_f,l),Hn(os,s);const c=Lt();return fn(()=>[c.value,l.value,e.name],([u,a,f],[p,m,g])=>{a&&(a.instances[f]=u,m&&m!==a&&u&&u===p&&(a.leaveGuards.size||(a.leaveGuards=m.leaveGuards),a.updateGuards.size||(a.updateGuards=m.updateGuards))),u&&a&&(!m||!Xt(a,m)||!p)&&(a.enterCallbacks[f]||[]).forEach(b=>b(u))},{flush:"post"}),()=>{const u=s.value,a=e.name,f=l.value,p=f&&f.components[a];if(!p)return Bo(n.default,{Component:p,route:u});const m=f.props[a],g=m?m===!0?u.params:typeof m=="function"?m(u):m:null,E=ml(p,te({},g,t,{onVnodeUnmounted:O=>{O.component.isUnmounted&&(f.instances[a]=null)},ref:c}));return Bo(n.default,{Component:E,route:u})||E}}});function Bo(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Dl=$f;function Kf(e){const t=Lf(e.routes,e),n=e.parseQuery||gf,r=e.stringifyQuery||To,s=e.history,o=sn(),i=sn(),l=sn(),c=Mc(bt);let u=bt;qt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const a=Mr.bind(null,R=>""+R),f=Mr.bind(null,Yu),p=Mr.bind(null,vn);function m(R,F){let D,j;return Tl(R)?(D=t.getRecordMatcher(R),j=F):j=R,t.addRoute(j,D)}function g(R){const F=t.getRecordMatcher(R);F&&t.removeRoute(F)}function b(){return t.getRoutes().map(R=>R.record)}function E(R){return!!t.getRecordMatcher(R)}function O(R,F){if(F=te({},F||c.value),typeof R=="string"){const y=Ur(n,R,F.path),w=t.resolve({path:y.path},F),A=s.createHref(y.fullPath);return te(y,w,{params:p(w.params),hash:vn(y.hash),redirectedFrom:void 0,href:A})}let D;if(R.path!=null)D=te({},R,{path:Ur(n,R.path,F.path).path});else{const y=te({},R.params);for(const w in y)y[w]==null&&delete y[w];D=te({},R,{params:f(y)}),F.params=f(F.params)}const j=t.resolve(D,F),Q=R.hash||"";j.params=a(p(j.params));const d=tf(r,te({},R,{hash:Ju(Q),path:j.path})),h=s.createHref(d);return te({fullPath:d,hash:Q,query:r===To?yf(R.query):R.query||{}},j,{redirectedFrom:void 0,href:h})}function C(R){return typeof R=="string"?Ur(n,R,c.value.path):te({},R)}function N(R,F){if(u!==R)return Qt(ae.NAVIGATION_CANCELLED,{from:F,to:R})}function P(R){return k(R)}function M(R){return P(te(C(R),{replace:!0}))}function X(R,F){const D=R.matched[R.matched.length-1];if(D&&D.redirect){const{redirect:j}=D;let Q=typeof j=="function"?j(R,F):j;return typeof Q=="string"&&(Q=Q.includes("?")||Q.includes("#")?Q=C(Q):{path:Q},Q.params={}),te({query:R.query,hash:R.hash,params:Q.path!=null?{}:R.params},Q)}}function k(R,F){const D=u=O(R),j=c.value,Q=R.state,d=R.force,h=R.replace===!0,y=X(D,j);if(y)return k(te(C(y),{state:typeof y=="object"?te({},Q,y.state):Q,force:d,replace:h}),F||D);const w=D;w.redirectedFrom=F;let A;return!d&&nf(r,j,D)&&(A=Qt(ae.NAVIGATION_DUPLICATED,{to:w,from:j}),me(j,j,!0,!1)),(A?Promise.resolve(A):ee(w,j)).catch(S=>at(S)?at(S,ae.NAVIGATION_GUARD_REDIRECT)?S:ze(S):z(S,w,j)).then(S=>{if(S){if(at(S,ae.NAVIGATION_GUARD_REDIRECT))return k(te({replace:h},C(S.to),{state:typeof S.to=="object"?te({},Q,S.to.state):Q,force:d}),F||w)}else S=ye(w,j,!0,h,Q);return ue(w,j,S),S})}function V(R,F){const D=N(R,F);return D?Promise.reject(D):Promise.resolve()}function U(R){const F=qe.values().next().value;return F&&typeof F.runWithContext=="function"?F.runWithContext(R):R()}function ee(R,F){let D;const[j,Q,d]=bf(R,F);D=Br(j.reverse(),"beforeRouteLeave",R,F);for(const y of j)y.leaveGuards.forEach(w=>{D.push(At(w,R,F))});const h=V.bind(null,R,F);return D.push(h),He(D).then(()=>{D=[];for(const y of o.list())D.push(At(y,R,F));return D.push(h),He(D)}).then(()=>{D=Br(Q,"beforeRouteUpdate",R,F);for(const y of Q)y.updateGuards.forEach(w=>{D.push(At(w,R,F))});return D.push(h),He(D)}).then(()=>{D=[];for(const y of d)if(y.beforeEnter)if(We(y.beforeEnter))for(const w of y.beforeEnter)D.push(At(w,R,F));else D.push(At(y.beforeEnter,R,F));return D.push(h),He(D)}).then(()=>(R.matched.forEach(y=>y.enterCallbacks={}),D=Br(d,"beforeRouteEnter",R,F,U),D.push(h),He(D))).then(()=>{D=[];for(const y of i.list())D.push(At(y,R,F));return D.push(h),He(D)}).catch(y=>at(y,ae.NAVIGATION_CANCELLED)?y:Promise.reject(y))}function ue(R,F,D){l.list().forEach(j=>U(()=>j(R,F,D)))}function ye(R,F,D,j,Q){const d=N(R,F);if(d)return d;const h=F===bt,y=qt?history.state:{};D&&(j||h?s.replace(R.fullPath,te({scroll:h&&y&&y.scroll},Q)):s.push(R.fullPath,Q)),c.value=R,me(R,F,D,h),ze()}let pe;function Re(){pe||(pe=s.listen((R,F,D)=>{if(!Xe.listening)return;const j=O(R),Q=X(j,Xe.currentRoute.value);if(Q){k(te(Q,{replace:!0,force:!0}),j).catch(yn);return}u=j;const d=c.value;qt&&ff(xo(d.fullPath,D.delta),_r()),ee(j,d).catch(h=>at(h,ae.NAVIGATION_ABORTED|ae.NAVIGATION_CANCELLED)?h:at(h,ae.NAVIGATION_GUARD_REDIRECT)?(k(te(C(h.to),{force:!0}),j).then(y=>{at(y,ae.NAVIGATION_ABORTED|ae.NAVIGATION_DUPLICATED)&&!D.delta&&D.type===rs.pop&&s.go(-1,!1)}).catch(yn),Promise.reject()):(D.delta&&s.go(-D.delta,!1),z(h,j,d))).then(h=>{h=h||ye(j,d,!1),h&&(D.delta&&!at(h,ae.NAVIGATION_CANCELLED)?s.go(-D.delta,!1):D.type===rs.pop&&at(h,ae.NAVIGATION_ABORTED|ae.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),ue(j,d,h)}).catch(yn)}))}let Ve=sn(),J=sn(),K;function z(R,F,D){ze(R);const j=J.list();return j.length?j.forEach(Q=>Q(R,F,D)):console.error(R),Promise.reject(R)}function Be(){return K&&c.value!==bt?Promise.resolve():new Promise((R,F)=>{Ve.add([R,F])})}function ze(R){return K||(K=!R,Re(),Ve.list().forEach(([F,D])=>R?D(R):F()),Ve.reset()),R}function me(R,F,D,j){const{scrollBehavior:Q}=e;if(!qt||!Q)return Promise.resolve();const d=!D&&df(xo(R.fullPath,0))||(j||!D)&&history.state&&history.state.scroll||null;return Rs().then(()=>Q(R,F,d)).then(h=>h&&uf(h)).catch(h=>z(h,R,F))}const fe=R=>s.go(R);let Je;const qe=new Set,Xe={currentRoute:c,listening:!0,addRoute:m,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:E,getRoutes:b,resolve:O,options:e,push:P,replace:M,go:fe,back:()=>fe(-1),forward:()=>fe(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:J.add,isReady:Be,install(R){R.component("RouterLink",kf),R.component("RouterView",Dl),R.config.globalProperties.$router=Xe,Object.defineProperty(R.config.globalProperties,"$route",{enumerable:!0,get:()=>Ot(c)}),qt&&!Je&&c.value===bt&&(Je=!0,P(s.location).catch(j=>{}));const F={};for(const j in bt)Object.defineProperty(F,j,{get:()=>c.value[j],enumerable:!0});R.provide(br,Xe),R.provide(Is,Ci(F)),R.provide(os,c);const D=R.unmount;qe.add(R),R.unmount=function(){qe.delete(R),qe.size<1&&(u=bt,pe&&pe(),pe=null,c.value=bt,Je=!1,K=!1),D()}}};function He(R){return R.reduce((F,D)=>F.then(()=>U(D)),Promise.resolve())}return Xe}function Lh(){return ke(br)}function Fh(e){return ke(Is)}function Ll(e,t){return function(){return e.apply(t,arguments)}}const{toString:Wf}=Object.prototype,{getPrototypeOf:Ds}=Object,{iterator:Er,toStringTag:Fl}=Symbol,wr=(e=>t=>{const n=Wf.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ge=e=>(e=e.toLowerCase(),t=>wr(t)===e),Sr=e=>t=>typeof t===e,{isArray:Zt}=Array,Yt=Sr("undefined");function Cn(e){return e!==null&&!Yt(e)&&e.constructor!==null&&!Yt(e.constructor)&&Ie(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Ml=Ge("ArrayBuffer");function Gf(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Ml(e.buffer),t}const zf=Sr("string"),Ie=Sr("function"),Ul=Sr("number"),Pn=e=>e!==null&&typeof e=="object",Jf=e=>e===!0||e===!1,Kn=e=>{if(wr(e)!=="object")return!1;const t=Ds(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Fl in e)&&!(Er in e)},Xf=e=>{if(!Pn(e)||Cn(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},Qf=Ge("Date"),Yf=Ge("File"),Zf=Ge("Blob"),ed=Ge("FileList"),td=e=>Pn(e)&&Ie(e.pipe),nd=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Ie(e.append)&&((t=wr(e))==="formdata"||t==="object"&&Ie(e.toString)&&e.toString()==="[object FormData]"))},rd=Ge("URLSearchParams"),[sd,od,id,ld]=["ReadableStream","Request","Response","Headers"].map(Ge),cd=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Nn(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),Zt(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const It=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Bl=e=>!Yt(e)&&e!==It;function is(){const{caseless:e,skipUndefined:t}=Bl(this)&&this||{},n={},r=(s,o)=>{const i=e&&jl(n,o)||o;Kn(n[i])&&Kn(s)?n[i]=is(n[i],s):Kn(s)?n[i]=is({},s):Zt(s)?n[i]=s.slice():(!t||!Yt(s))&&(n[i]=s)};for(let s=0,o=arguments.length;s(Nn(t,(s,o)=>{n&&Ie(s)?e[o]=Ll(s,n):e[o]=s},{allOwnKeys:r}),e),ud=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),fd=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},dd=(e,t,n,r)=>{let s,o,i;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&Ds(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},hd=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},pd=e=>{if(!e)return null;if(Zt(e))return e;let t=e.length;if(!Ul(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},md=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Ds(Uint8Array)),gd=(e,t)=>{const r=(e&&e[Er]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},yd=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},_d=Ge("HTMLFormElement"),bd=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),Ho=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Ed=Ge("RegExp"),Hl=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Nn(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},wd=e=>{Hl(e,(t,n)=>{if(Ie(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Ie(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Sd=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return Zt(e)?r(e):r(String(e).split(t)),n},Rd=()=>{},Ad=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function vd(e){return!!(e&&Ie(e.append)&&e[Fl]==="FormData"&&e[Er])}const Od=e=>{const t=new Array(10),n=(r,s)=>{if(Pn(r)){if(t.indexOf(r)>=0)return;if(Cn(r))return r;if(!("toJSON"in r)){t[s]=r;const o=Zt(r)?[]:{};return Nn(r,(i,l)=>{const c=n(i,s+1);!Yt(c)&&(o[l]=c)}),t[s]=void 0,o}}return r};return n(e,0)},xd=Ge("AsyncFunction"),Td=e=>e&&(Pn(e)||Ie(e))&&Ie(e.then)&&Ie(e.catch),kl=((e,t)=>e?setImmediate:t?((n,r)=>(It.addEventListener("message",({source:s,data:o})=>{s===It&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),It.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Ie(It.postMessage)),Cd=typeof queueMicrotask<"u"?queueMicrotask.bind(It):typeof process<"u"&&process.nextTick||kl,Pd=e=>e!=null&&Ie(e[Er]),_={isArray:Zt,isArrayBuffer:Ml,isBuffer:Cn,isFormData:nd,isArrayBufferView:Gf,isString:zf,isNumber:Ul,isBoolean:Jf,isObject:Pn,isPlainObject:Kn,isEmptyObject:Xf,isReadableStream:sd,isRequest:od,isResponse:id,isHeaders:ld,isUndefined:Yt,isDate:Qf,isFile:Yf,isBlob:Zf,isRegExp:Ed,isFunction:Ie,isStream:td,isURLSearchParams:rd,isTypedArray:md,isFileList:ed,forEach:Nn,merge:is,extend:ad,trim:cd,stripBOM:ud,inherits:fd,toFlatObject:dd,kindOf:wr,kindOfTest:Ge,endsWith:hd,toArray:pd,forEachEntry:gd,matchAll:yd,isHTMLForm:_d,hasOwnProperty:Ho,hasOwnProp:Ho,reduceDescriptors:Hl,freezeMethods:wd,toObjectSet:Sd,toCamelCase:bd,noop:Rd,toFiniteNumber:Ad,findKey:jl,global:It,isContextDefined:Bl,isSpecCompliantForm:vd,toJSONObject:Od,isAsyncFn:xd,isThenable:Td,setImmediate:kl,asap:Cd,isIterable:Pd};function G(e,t,n,r,s){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),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}_.inherits(G,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:_.toJSONObject(this.config),code:this.code,status:this.status}}});const Vl=G.prototype,ql={};["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=>{ql[e]={value:e}});Object.defineProperties(G,ql);Object.defineProperty(Vl,"isAxiosError",{value:!0});G.from=(e,t,n,r,s,o)=>{const i=Object.create(Vl);_.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 G.call(i,l,c,n,r,s),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 Nd=null;function ls(e){return _.isPlainObject(e)||_.isArray(e)}function $l(e){return _.endsWith(e,"[]")?e.slice(0,-2):e}function ko(e,t,n){return e?e.concat(t).map(function(s,o){return s=$l(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function Id(e){return _.isArray(e)&&!e.some(ls)}const Dd=_.toFlatObject(_,{},null,function(t){return/^is[A-Z]/.test(t)});function Rr(e,t,n){if(!_.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=_.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(b,E){return!_.isUndefined(E[b])});const r=n.metaTokens,s=n.visitor||a,o=n.dots,i=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&_.isSpecCompliantForm(t);if(!_.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(_.isDate(g))return g.toISOString();if(_.isBoolean(g))return g.toString();if(!c&&_.isBlob(g))throw new G("Blob is not supported. Use a Buffer instead.");return _.isArrayBuffer(g)||_.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function a(g,b,E){let O=g;if(g&&!E&&typeof g=="object"){if(_.endsWith(b,"{}"))b=r?b:b.slice(0,-2),g=JSON.stringify(g);else if(_.isArray(g)&&Id(g)||(_.isFileList(g)||_.endsWith(b,"[]"))&&(O=_.toArray(g)))return b=$l(b),O.forEach(function(N,P){!(_.isUndefined(N)||N===null)&&t.append(i===!0?ko([b],P,o):i===null?b:b+"[]",u(N))}),!1}return ls(g)?!0:(t.append(ko(E,b,o),u(g)),!1)}const f=[],p=Object.assign(Dd,{defaultVisitor:a,convertValue:u,isVisitable:ls});function m(g,b){if(!_.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+b.join("."));f.push(g),_.forEach(g,function(O,C){(!(_.isUndefined(O)||O===null)&&s.call(t,O,_.isString(C)?C.trim():C,b,p))===!0&&m(O,b?b.concat(C):[C])}),f.pop()}}if(!_.isObject(e))throw new TypeError("data must be an object");return m(e),t}function Vo(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Ls(e,t){this._pairs=[],e&&Rr(e,this,t)}const Kl=Ls.prototype;Kl.append=function(t,n){this._pairs.push([t,n])};Kl.toString=function(t){const n=t?function(r){return t.call(this,r,Vo)}:Vo;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Ld(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Wl(e,t,n){if(!t)return e;const r=n&&n.encode||Ld;_.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=_.isURLSearchParams(t)?t.toString():new Ls(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class qo{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){_.forEach(this.handlers,function(r){r!==null&&t(r)})}}const Gl={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Fd=typeof URLSearchParams<"u"?URLSearchParams:Ls,Md=typeof FormData<"u"?FormData:null,Ud=typeof Blob<"u"?Blob:null,jd={isBrowser:!0,classes:{URLSearchParams:Fd,FormData:Md,Blob:Ud},protocols:["http","https","file","blob","url","data"]},Fs=typeof window<"u"&&typeof document<"u",cs=typeof navigator=="object"&&navigator||void 0,Bd=Fs&&(!cs||["ReactNative","NativeScript","NS"].indexOf(cs.product)<0),Hd=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",kd=Fs&&window.location.href||"http://localhost",Vd=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Fs,hasStandardBrowserEnv:Bd,hasStandardBrowserWebWorkerEnv:Hd,navigator:cs,origin:kd},Symbol.toStringTag,{value:"Module"})),Ee={...Vd,...jd};function qd(e,t){return Rr(e,new Ee.classes.URLSearchParams,{visitor:function(n,r,s,o){return Ee.isNode&&_.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function $d(e){return _.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Kd(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&_.isArray(s)?s.length:i,c?(_.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!l):((!s[i]||!_.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&_.isArray(s[i])&&(s[i]=Kd(s[i])),!l)}if(_.isFormData(e)&&_.isFunction(e.entries)){const n={};return _.forEachEntry(e,(r,s)=>{t($d(r),s,n,0)}),n}return null}function Wd(e,t,n){if(_.isString(e))try{return(t||JSON.parse)(e),_.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const In={transitional:Gl,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=_.isObject(t);if(o&&_.isHTMLForm(t)&&(t=new FormData(t)),_.isFormData(t))return s?JSON.stringify(zl(t)):t;if(_.isArrayBuffer(t)||_.isBuffer(t)||_.isStream(t)||_.isFile(t)||_.isBlob(t)||_.isReadableStream(t))return t;if(_.isArrayBufferView(t))return t.buffer;if(_.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return qd(t,this.formSerializer).toString();if((l=_.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return Rr(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),Wd(t)):t}],transformResponse:[function(t){const n=this.transitional||In.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(_.isResponse(t)||_.isReadableStream(t))return t;if(t&&_.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(i)throw l.name==="SyntaxError"?G.from(l,G.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:Ee.classes.FormData,Blob:Ee.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};_.forEach(["delete","get","head","post","put","patch"],e=>{In.headers[e]={}});const Gd=_.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"]),zd=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&Gd[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},$o=Symbol("internals");function on(e){return e&&String(e).trim().toLowerCase()}function Wn(e){return e===!1||e==null?e:_.isArray(e)?e.map(Wn):String(e)}function Jd(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const Xd=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Hr(e,t,n,r,s){if(_.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!_.isString(t)){if(_.isString(r))return t.indexOf(r)!==-1;if(_.isRegExp(r))return r.test(t)}}function Qd(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Yd(e,t){const n=_.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let De=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(l,c,u){const a=on(c);if(!a)throw new Error("header name must be a non-empty string");const f=_.findKey(s,a);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||c]=Wn(l))}const i=(l,c)=>_.forEach(l,(u,a)=>o(u,a,c));if(_.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(_.isString(t)&&(t=t.trim())&&!Xd(t))i(zd(t),n);else if(_.isObject(t)&&_.isIterable(t)){let l={},c,u;for(const a of t){if(!_.isArray(a))throw TypeError("Object iterator must return a key-value pair");l[u=a[0]]=(c=l[u])?_.isArray(c)?[...c,a[1]]:[c,a[1]]:a[1]}i(l,n)}else t!=null&&o(n,t,r);return this}get(t,n){if(t=on(t),t){const r=_.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return Jd(s);if(_.isFunction(n))return n.call(this,s,r);if(_.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=on(t),t){const r=_.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Hr(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=on(i),i){const l=_.findKey(r,i);l&&(!n||Hr(r,r[l],l,n))&&(delete r[l],s=!0)}}return _.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||Hr(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return _.forEach(this,(s,o)=>{const i=_.findKey(r,o);if(i){n[i]=Wn(s),delete n[o];return}const l=t?Qd(o):String(o).trim();l!==o&&delete n[o],n[l]=Wn(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return _.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&_.isArray(r)?r.join(", "):r)}),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 r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[$o]=this[$o]={accessors:{}}).accessors,s=this.prototype;function o(i){const l=on(i);r[l]||(Yd(s,i),r[l]=!0)}return _.isArray(t)?t.forEach(o):o(t),this}};De.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);_.reduceDescriptors(De.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});_.freezeMethods(De);function kr(e,t){const n=this||In,r=t||n,s=De.from(r.headers);let o=r.data;return _.forEach(e,function(l){o=l.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function Jl(e){return!!(e&&e.__CANCEL__)}function en(e,t,n){G.call(this,e??"canceled",G.ERR_CANCELED,t,n),this.name="CanceledError"}_.inherits(en,G,{__CANCEL__:!0});function Xl(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new G("Request failed with status code "+n.status,[G.ERR_BAD_REQUEST,G.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function Zd(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function eh(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),a=r[o];i||(i=u),n[s]=c,r[s]=u;let f=o,p=0;for(;f!==s;)p+=n[f++],f=f%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i{n=a,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const a=Date.now(),f=a-n;f>=r?i(u,a):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-f)))},()=>s&&i(s)]}const sr=(e,t,n=3)=>{let r=0;const s=eh(50,250);return th(o=>{const i=o.loaded,l=o.lengthComputable?o.total:void 0,c=i-r,u=s(c),a=i<=l;r=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)},Ko=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Wo=e=>(...t)=>_.asap(()=>e(...t)),nh=Ee.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Ee.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Ee.origin),Ee.navigator&&/(msie|trident)/i.test(Ee.navigator.userAgent)):()=>!0,rh=Ee.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];_.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),_.isString(r)&&l.push(`path=${r}`),_.isString(s)&&l.push(`domain=${s}`),o===!0&&l.push("secure"),_.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 sh(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function oh(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Ql(e,t,n){let r=!sh(t);return e&&(r||n==!1)?oh(e,t):t}const Go=e=>e instanceof De?{...e}:e;function Ut(e,t){t=t||{};const n={};function r(u,a,f,p){return _.isPlainObject(u)&&_.isPlainObject(a)?_.merge.call({caseless:p},u,a):_.isPlainObject(a)?_.merge({},a):_.isArray(a)?a.slice():a}function s(u,a,f,p){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u,f,p)}else return r(u,a,f,p)}function o(u,a){if(!_.isUndefined(a))return r(void 0,a)}function i(u,a){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u)}else return r(void 0,a)}function l(u,a,f){if(f in t)return r(u,a);if(f in e)return r(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)=>s(Go(u),Go(a),f,!0)};return _.forEach(Object.keys({...e,...t}),function(a){const f=c[a]||s,p=f(e[a],t[a],a);_.isUndefined(p)&&f!==l||(n[a]=p)}),n}const Yl=e=>{const t=Ut({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:l}=t;if(t.headers=i=De.from(i),t.url=Wl(Ql(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&i.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),_.isFormData(n)){if(Ee.hasStandardBrowserEnv||Ee.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(_.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(Ee.hasStandardBrowserEnv&&(r&&_.isFunction(r)&&(r=r(t)),r||r!==!1&&nh(t.url))){const c=s&&o&&rh.read(o);c&&i.set(s,c)}return t},ih=typeof XMLHttpRequest<"u",lh=ih&&function(e){return new Promise(function(n,r){const s=Yl(e);let o=s.data;const i=De.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,a,f,p,m,g;function b(){m&&m(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(a),s.signal&&s.signal.removeEventListener("abort",a)}let E=new XMLHttpRequest;E.open(s.method.toUpperCase(),s.url,!0),E.timeout=s.timeout;function O(){if(!E)return;const N=De.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),M={data:!l||l==="text"||l==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:N,config:e,request:E};Xl(function(k){n(k),b()},function(k){r(k),b()},M),E=null}"onloadend"in E?E.onloadend=O:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.indexOf("file:")===0)||setTimeout(O)},E.onabort=function(){E&&(r(new G("Request aborted",G.ECONNABORTED,e,E)),E=null)},E.onerror=function(P){const M=P&&P.message?P.message:"Network Error",X=new G(M,G.ERR_NETWORK,e,E);X.event=P||null,r(X),E=null},E.ontimeout=function(){let P=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const M=s.transitional||Gl;s.timeoutErrorMessage&&(P=s.timeoutErrorMessage),r(new G(P,M.clarifyTimeoutError?G.ETIMEDOUT:G.ECONNABORTED,e,E)),E=null},o===void 0&&i.setContentType(null),"setRequestHeader"in E&&_.forEach(i.toJSON(),function(P,M){E.setRequestHeader(M,P)}),_.isUndefined(s.withCredentials)||(E.withCredentials=!!s.withCredentials),l&&l!=="json"&&(E.responseType=s.responseType),u&&([p,g]=sr(u,!0),E.addEventListener("progress",p)),c&&E.upload&&([f,m]=sr(c),E.upload.addEventListener("progress",f),E.upload.addEventListener("loadend",m)),(s.cancelToken||s.signal)&&(a=N=>{E&&(r(!N||N.type?new en(null,e,E):N),E.abort(),E=null)},s.cancelToken&&s.cancelToken.subscribe(a),s.signal&&(s.signal.aborted?a():s.signal.addEventListener("abort",a)));const C=Zd(s.url);if(C&&Ee.protocols.indexOf(C)===-1){r(new G("Unsupported protocol "+C+":",G.ERR_BAD_REQUEST,e));return}E.send(o||null)})},ch=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,l();const a=u instanceof Error?u:this.reason;r.abort(a instanceof G?a:new en(a instanceof Error?a.message:a))}};let i=t&&setTimeout(()=>{i=null,o(new G(`timeout ${t} of ms exceeded`,G.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}=r;return c.unsubscribe=()=>_.asap(l),c}},ah=function*(e,t){let n=e.byteLength;if(n{const s=uh(e,t);let o=0,i,l=c=>{i||(i=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:a}=await s.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),s.return()}},{highWaterMark:2})},Jo=64*1024,{isFunction:Un}=_,dh=(({Request:e,Response:t})=>({Request:e,Response:t}))(_.global),{ReadableStream:Xo,TextEncoder:Qo}=_.global,Yo=(e,...t)=>{try{return!!e(...t)}catch{return!1}},hh=e=>{e=_.merge.call({skipUndefined:!0},dh,e);const{fetch:t,Request:n,Response:r}=e,s=t?Un(t):typeof fetch=="function",o=Un(n),i=Un(r);if(!s)return!1;const l=s&&Un(Xo),c=s&&(typeof Qo=="function"?(g=>b=>g.encode(b))(new Qo):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=o&&l&&Yo(()=>{let g=!1;const b=new n(Ee.origin,{body:new Xo,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!b}),a=i&&l&&Yo(()=>_.isReadableStream(new r("").body)),f={stream:a&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(b,E)=>{let O=b&&b[g];if(O)return O.call(b);throw new G(`Response type '${g}' is not supported`,G.ERR_NOT_SUPPORT,E)})});const p=async g=>{if(g==null)return 0;if(_.isBlob(g))return g.size;if(_.isSpecCompliantForm(g))return(await new n(Ee.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(_.isArrayBufferView(g)||_.isArrayBuffer(g))return g.byteLength;if(_.isURLSearchParams(g)&&(g=g+""),_.isString(g))return(await c(g)).byteLength},m=async(g,b)=>{const E=_.toFiniteNumber(g.getContentLength());return E??p(b)};return async g=>{let{url:b,method:E,data:O,signal:C,cancelToken:N,timeout:P,onDownloadProgress:M,onUploadProgress:X,responseType:k,headers:V,withCredentials:U="same-origin",fetchOptions:ee}=Yl(g),ue=t||fetch;k=k?(k+"").toLowerCase():"text";let ye=ch([C,N&&N.toAbortSignal()],P),pe=null;const Re=ye&&ye.unsubscribe&&(()=>{ye.unsubscribe()});let Ve;try{if(X&&u&&E!=="get"&&E!=="head"&&(Ve=await m(V,O))!==0){let me=new n(b,{method:"POST",body:O,duplex:"half"}),fe;if(_.isFormData(O)&&(fe=me.headers.get("content-type"))&&V.setContentType(fe),me.body){const[Je,qe]=Ko(Ve,sr(Wo(X)));O=zo(me.body,Jo,Je,qe)}}_.isString(U)||(U=U?"include":"omit");const J=o&&"credentials"in n.prototype,K={...ee,signal:ye,method:E.toUpperCase(),headers:V.normalize().toJSON(),body:O,duplex:"half",credentials:J?U:void 0};pe=o&&new n(b,K);let z=await(o?ue(pe,ee):ue(b,K));const Be=a&&(k==="stream"||k==="response");if(a&&(M||Be&&Re)){const me={};["status","statusText","headers"].forEach(Xe=>{me[Xe]=z[Xe]});const fe=_.toFiniteNumber(z.headers.get("content-length")),[Je,qe]=M&&Ko(fe,sr(Wo(M),!0))||[];z=new r(zo(z.body,Jo,Je,()=>{qe&&qe(),Re&&Re()}),me)}k=k||"text";let ze=await f[_.findKey(f,k)||"text"](z,g);return!Be&&Re&&Re(),await new Promise((me,fe)=>{Xl(me,fe,{data:ze,headers:De.from(z.headers),status:z.status,statusText:z.statusText,config:g,request:pe})})}catch(J){throw Re&&Re(),J&&J.name==="TypeError"&&/Load failed|fetch/i.test(J.message)?Object.assign(new G("Network Error",G.ERR_NETWORK,g,pe),{cause:J.cause||J}):G.from(J,J&&J.code,g,pe)}}},ph=new Map,Zl=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,l=i,c,u,a=ph;for(;l--;)c=o[l],u=a.get(c),u===void 0&&a.set(c,u=l?new Map:hh(t)),a=u;return u};Zl();const Ms={http:Nd,xhr:lh,fetch:{get:Zl}};_.forEach(Ms,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Zo=e=>`- ${e}`,mh=e=>_.isFunction(e)||e===null||e===!1;function gh(e,t){e=_.isArray(e)?e:[e];const{length:n}=e;let r,s;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(Zo).join(` +`):" "+Zo(i[0]):"as no adapter specified";throw new G("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const ec={getAdapter:gh,adapters:Ms};function Vr(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new en(null,e)}function ei(e){return Vr(e),e.headers=De.from(e.headers),e.data=kr.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),ec.getAdapter(e.adapter||In.adapter,e)(e).then(function(r){return Vr(e),r.data=kr.call(e,e.transformResponse,r),r.headers=De.from(r.headers),r},function(r){return Jl(r)||(Vr(e),r&&r.response&&(r.response.data=kr.call(e,e.transformResponse,r.response),r.response.headers=De.from(r.response.headers))),Promise.reject(r)})}const tc="1.13.2",Ar={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Ar[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const ti={};Ar.transitional=function(t,n,r){function s(o,i){return"[Axios v"+tc+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,l)=>{if(t===!1)throw new G(s(i," has been removed"+(n?" in "+n:"")),G.ERR_DEPRECATED);return n&&!ti[i]&&(ti[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,l):!0}};Ar.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function yh(e,t,n){if(typeof e!="object")throw new G("options must be an object",G.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const l=e[o],c=l===void 0||i(l,o,e);if(c!==!0)throw new G("option "+o+" must be "+c,G.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new G("Unknown option "+o,G.ERR_BAD_OPTION)}}const Gn={assertOptions:yh,validators:Ar},nt=Gn.validators;let Mt=class{constructor(t){this.defaults=t||{},this.interceptors={request:new qo,response:new qo}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Ut(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&Gn.assertOptions(r,{silentJSONParsing:nt.transitional(nt.boolean),forcedJSONParsing:nt.transitional(nt.boolean),clarifyTimeoutError:nt.transitional(nt.boolean)},!1),s!=null&&(_.isFunction(s)?n.paramsSerializer={serialize:s}:Gn.assertOptions(s,{encode:nt.function,serialize:nt.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Gn.assertOptions(n,{baseUrl:nt.spelling("baseURL"),withXsrfToken:nt.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&_.merge(o.common,o[n.method]);o&&_.forEach(["delete","get","head","post","put","patch","common"],g=>{delete o[g]}),n.headers=De.concat(i,o);const l=[];let c=!0;this.interceptors.request.forEach(function(b){typeof b.runWhen=="function"&&b.runWhen(n)===!1||(c=c&&b.synchronous,l.unshift(b.fulfilled,b.rejected))});const u=[];this.interceptors.response.forEach(function(b){u.push(b.fulfilled,b.rejected)});let a,f=0,p;if(!c){const g=[ei.bind(this),void 0];for(g.unshift(...l),g.push(...u),p=g.length,a=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(l=>{r.subscribe(l),o=l}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,l){r.reason||(r.reason=new en(o,i,l),n(r.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=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new nc(function(s){t=s}),cancel:t}}};function bh(e){return function(n){return e.apply(null,n)}}function Eh(e){return _.isObject(e)&&e.isAxiosError===!0}const as={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(as).forEach(([e,t])=>{as[t]=e});function rc(e){const t=new Mt(e),n=Ll(Mt.prototype.request,t);return _.extend(n,Mt.prototype,t,{allOwnKeys:!0}),_.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return rc(Ut(e,s))},n}const he=rc(In);he.Axios=Mt;he.CanceledError=en;he.CancelToken=_h;he.isCancel=Jl;he.VERSION=tc;he.toFormData=Rr;he.AxiosError=G;he.Cancel=he.CanceledError;he.all=function(t){return Promise.all(t)};he.spread=bh;he.isAxiosError=Eh;he.mergeConfig=Ut;he.AxiosHeaders=De;he.formToJSON=e=>zl(_.isHTMLForm(e)?new FormData(e):e);he.getAdapter=ec.getAdapter;he.HttpStatusCode=as;he.default=he;const{Axios:jh,AxiosError:Bh,CanceledError:Hh,isCancel:kh,CancelToken:Vh,VERSION:qh,all:$h,Cancel:Kh,isAxiosError:Wh,spread:Gh,toFormData:zh,AxiosHeaders:Jh,HttpStatusCode:Xh,formToJSON:Qh,getAdapter:Yh,mergeConfig:Zh}=he,_n=he.create({baseURL:"",timeout:3e4,withCredentials:!0});_n.interceptors.request.use(e=>e,e=>Promise.reject(e));_n.interceptors.response.use(e=>e.data,e=>{e.response?.status===401&&(window.location.hash="#/login");const t=e.response?.data?e.response.data.detail||e.response.data.message:e.message;return Promise.reject(new Error(t||"请求失败"))});const jn={login:e=>{const t=new URLSearchParams;return t.append("admin_key",e.password),_n.post("/login",t,{headers:{"Content-Type":"application/x-www-form-urlencoded"}})},logout:()=>_n.post("/logout"),checkAuth:()=>_n.get("/admin/health")},wh=Mu("auth",()=>{const e=Lt(!1),t=Lt(!1),n=Lt(0),r=1e4;let s=null;async function o(c){t.value=!0;try{return await jn.login({password:c}),await jn.checkAuth(),e.value=!0,n.value=Date.now(),!0}catch(u){throw e.value=!1,u}finally{t.value=!1}}async function i(){try{await jn.logout()}finally{e.value=!1,n.value=0}}async function l(){const c=Date.now();if(e.value&&c-n.value(await jn.checkAuth(),e.value=!0,!0))(),await s}catch{return e.value=!1,!1}finally{n.value=Date.now(),s=null}}return{isLoggedIn:e,isLoading:t,login:o,logout:i,checkAuth:l}}),sc=Kf({history:Af("/"),routes:[{path:"/public/uptime",name:"public-uptime",component:()=>tt(()=>import("./PublicUptime-B25ac8iY.js"),__vite__mapDeps([0,1])),meta:{requiresAuth:!1}},{path:"/public/logs",name:"public-logs",component:()=>tt(()=>import("./PublicLogs-CAAuf4Bd.js"),[]),meta:{requiresAuth:!1}},{path:"/login",name:"login",component:()=>tt(()=>import("./Login-BRj7Z9UO.js"),[]),meta:{requiresAuth:!1}},{path:"/",component:()=>tt(()=>import("./AppShell-DwEnl3b1.js"),__vite__mapDeps([2,3,4,5])),meta:{requiresAuth:!0},children:[{path:"",name:"dashboard",component:()=>tt(()=>import("./Dashboard-DgbmuyTS.js"),__vite__mapDeps([6,7]))},{path:"accounts",name:"accounts",component:()=>tt(()=>import("./Accounts-D4WYjY04.js"),__vite__mapDeps([8,9,10,4,5,7]))},{path:"settings",name:"settings",component:()=>tt(()=>import("./Settings-CcoISFRv.js"),__vite__mapDeps([11,3,9,10,7]))},{path:"logs",name:"logs",component:()=>tt(()=>import("./Logs-lKxNVfI0.js"),__vite__mapDeps([12,9,4]))},{path:"monitor",name:"monitor",component:()=>tt(()=>import("./Monitor-CWUF2k9w.js"),__vite__mapDeps([13,1]))},{path:"docs",name:"docs",component:()=>tt(()=>import("./Docs-CXRRai6U.js"),[])}]}]});sc.beforeEach(async e=>{const t=wh();if(e.meta.requiresAuth&&!await t.checkAuth())return{name:"login"};if(e.name==="login"&&t.isLoggedIn)return{name:"dashboard"}});const Sh=Os({__name:"App",setup(e){return(t,n)=>(er(),nr(Ot(Dl)))}}),Us=xu(Sh),Rh=Pu();Us.use(Rh);Us.use(sc);Us.mount("#app");export{Xc as A,Dl as B,Mu as C,Dh as D,Rs as E,Fe as F,xh as G,On as H,kf as R,vh as T,fl as a,Ph as b,Th as c,Os as d,er as e,Wa as f,_n as g,Lt as h,Me as i,fa as j,ps as k,wh as l,Ah as m,ms as n,ca as o,Lh as p,Fh as q,Oh as r,fn as s,mc as t,Ot as u,Nh as v,Ih as w,Ce as x,nr as y,Ch as z}; diff --git a/static/assets/index-BYFRJmx0.js b/static/assets/index-BYFRJmx0.js new file mode 100644 index 0000000000000000000000000000000000000000..f9cd35dbe09505883438f6a193e645ef7b222636 --- /dev/null +++ b/static/assets/index-BYFRJmx0.js @@ -0,0 +1,7 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PublicUptime-DJMguAzV.js","assets/useUptimeStatus-DXNkogdR.js","assets/Login-DT_xIWD8.js","assets/Checkbox.vue_vue_type_script_setup_true_lang-BQ4FJTZi.js","assets/AppShell-DKPLDP3H.js","assets/settings-BkhyfuxO.js","assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-BElgd3uY.js","assets/useConfirmDialog-BQNp3TV9.js","assets/Dashboard-B7PdOyI3.js","assets/HelpTip.vue_vue_type_script_setup_true_lang-sPivD74C.js","assets/Accounts-BgTEWmTn.js","assets/SelectMenu.vue_vue_type_script_setup_true_lang-D8K-xqMi.js","assets/Settings-CWtO-B3y.js","assets/Logs-D799eTMz.js","assets/Monitor-CcBOKS6Z.js"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function Ns(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const ce={},tn=[],ut=()=>{},xi=()=>!1,wr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Is=e=>e.startsWith("onUpdate:"),Ee=Object.assign,Ls=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Bc=Object.prototype.hasOwnProperty,oe=(e,t)=>Bc.call(e,t),K=Array.isArray,nn=e=>vr(e)==="[object Map]",Ti=e=>vr(e)==="[object Set]",J=e=>typeof e=="function",pe=e=>typeof e=="string",vt=e=>typeof e=="symbol",ae=e=>e!==null&&typeof e=="object",Oi=e=>(ae(e)||J(e))&&J(e.then)&&J(e.catch),Pi=Object.prototype.toString,vr=e=>Pi.call(e),Uc=e=>vr(e).slice(8,-1),Ni=e=>vr(e)==="[object Object]",Sr=e=>pe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,En=Ns(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ar=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},jc=/-\w/g,Dt=Ar(e=>e.replace(jc,t=>t.slice(1).toUpperCase())),Hc=/\B([A-Z])/g,zt=Ar(e=>e.replace(Hc,"-$1").toLowerCase()),Ii=Ar(e=>e.charAt(0).toUpperCase()+e.slice(1)),Vr=Ar(e=>e?`on${Ii(e)}`:""),Lt=(e,t)=>!Object.is(e,t),er=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},Ds=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Vc=e=>{const t=pe(e)?Number(e):NaN;return isNaN(t)?e:t};let io;const Rr=()=>io||(io=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Fs(e){if(K(e)){const t={};for(let n=0;n{if(n){const r=n.split(qc);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Nn(e){let t="";if(pe(e))t=e;else if(K(e))for(let n=0;n!!(e&&e.__v_isRef===!0),ls=e=>pe(e)?e:e==null?"":K(e)||ae(e)&&(e.toString===Pi||!J(e.toString))?Fi(e)?ls(e.value):JSON.stringify(e,Mi,2):String(e),Mi=(e,t)=>Fi(t)?Mi(e,t.value):nn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[$r(r,o)+" =>"]=s,n),{})}:Ti(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>$r(n))}:vt(t)?$r(t):ae(t)&&!K(t)&&!Ni(t)?String(t):t,$r=(e,t="")=>{var n;return vt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let Se;class ki{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,r;for(n=0,r=this.effects.length;n0)return;if(vn){let t=vn;for(vn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;wn;){let t=wn;for(wn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function $i(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function qi(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),Bs(r),Xc(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function cs(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Ki(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Ki(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===In)||(e.globalVersion=In,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!cs(e))))return;e.flags|=2;const t=e.dep,n=fe,r=Ge;fe=e,Ge=!0;try{$i(e);const s=e.fn(e._value);(t.version===0||Lt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{fe=n,Ge=r,qi(e),e.flags&=-3}}function Bs(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)Bs(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Xc(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Ge=!0;const Wi=[];function bt(){Wi.push(Ge),Ge=!1}function Et(){const e=Wi.pop();Ge=e===void 0?!0:e}function lo(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=fe;fe=void 0;try{t()}finally{fe=n}}}let In=0;class Qc{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 Us{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(!fe||!Ge||fe===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==fe)n=this.activeLink=new Qc(fe,this),fe.deps?(n.prevDep=fe.depsTail,fe.depsTail.nextDep=n,fe.depsTail=n):fe.deps=fe.depsTail=n,Gi(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=fe.depsTail,n.nextDep=void 0,fe.depsTail.nextDep=n,fe.depsTail=n,fe.deps===n&&(fe.deps=r)}return n}trigger(t){this.version++,In++,this.notify(t)}notify(t){Ms();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ks()}}}function Gi(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Gi(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const ar=new WeakMap,Vt=Symbol(""),as=Symbol(""),Ln=Symbol("");function Ae(e,t,n){if(Ge&&fe){let r=ar.get(e);r||ar.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new Us),s.map=r,s.key=n),s.track()}}function yt(e,t,n,r,s,o){const i=ar.get(e);if(!i){In++;return}const l=c=>{c&&c.trigger()};if(Ms(),t==="clear")i.forEach(l);else{const c=K(e),u=c&&Sr(n);if(c&&n==="length"){const a=Number(r);i.forEach((f,h)=>{(h==="length"||h===Ln||!vt(h)&&h>=a)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(Ln)),t){case"add":c?u&&l(i.get("length")):(l(i.get(Vt)),nn(e)&&l(i.get(as)));break;case"delete":c||(l(i.get(Vt)),nn(e)&&l(i.get(as)));break;case"set":nn(e)&&l(i.get(Vt));break}}ks()}function Yc(e,t){const n=ar.get(e);return n&&n.get(t)}function Jt(e){const t=re(e);return t===e?t:(Ae(t,"iterate",Ln),je(e)?t:t.map(ze))}function Cr(e){return Ae(e=re(e),"iterate",Ln),e}function Ot(e,t){return wt(e)?ft(e)?on(ze(t)):on(t):ze(t)}const Zc={__proto__:null,[Symbol.iterator](){return Kr(this,Symbol.iterator,e=>Ot(this,e))},concat(...e){return Jt(this).concat(...e.map(t=>K(t)?Jt(t):t))},entries(){return Kr(this,"entries",e=>(e[1]=Ot(this,e[1]),e))},every(e,t){return pt(this,"every",e,t,void 0,arguments)},filter(e,t){return pt(this,"filter",e,t,n=>n.map(r=>Ot(this,r)),arguments)},find(e,t){return pt(this,"find",e,t,n=>Ot(this,n),arguments)},findIndex(e,t){return pt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return pt(this,"findLast",e,t,n=>Ot(this,n),arguments)},findLastIndex(e,t){return pt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return pt(this,"forEach",e,t,void 0,arguments)},includes(...e){return Wr(this,"includes",e)},indexOf(...e){return Wr(this,"indexOf",e)},join(e){return Jt(this).join(e)},lastIndexOf(...e){return Wr(this,"lastIndexOf",e)},map(e,t){return pt(this,"map",e,t,void 0,arguments)},pop(){return mn(this,"pop")},push(...e){return mn(this,"push",e)},reduce(e,...t){return co(this,"reduce",e,t)},reduceRight(e,...t){return co(this,"reduceRight",e,t)},shift(){return mn(this,"shift")},some(e,t){return pt(this,"some",e,t,void 0,arguments)},splice(...e){return mn(this,"splice",e)},toReversed(){return Jt(this).toReversed()},toSorted(e){return Jt(this).toSorted(e)},toSpliced(...e){return Jt(this).toSpliced(...e)},unshift(...e){return mn(this,"unshift",e)},values(){return Kr(this,"values",e=>Ot(this,e))}};function Kr(e,t,n){const r=Cr(e),s=r[t]();return r!==e&&!je(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const ea=Array.prototype;function pt(e,t,n,r,s,o){const i=Cr(e),l=i!==e&&!je(e),c=i[t];if(c!==ea[t]){const f=c.apply(e,o);return l?ze(f):f}let u=n;i!==e&&(l?u=function(f,h){return n.call(this,Ot(e,f),h,e)}:n.length>2&&(u=function(f,h){return n.call(this,f,h,e)}));const a=c.call(i,u,r);return l&&s?s(a):a}function co(e,t,n,r){const s=Cr(e);let o=n;return s!==e&&(je(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,Ot(e,l),c,e)}),s[t](o,...r)}function Wr(e,t,n){const r=re(e);Ae(r,"iterate",Ln);const s=r[t](...n);return(s===-1||s===!1)&&xr(n[0])?(n[0]=re(n[0]),r[t](...n)):s}function mn(e,t,n=[]){bt(),Ms();const r=re(e)[t].apply(e,n);return ks(),Et(),r}const ta=Ns("__proto__,__v_isRef,__isVue"),zi=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(vt));function na(e){vt(e)||(e=String(e));const t=re(this);return Ae(t,"has",e),t.hasOwnProperty(e)}class Ji{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?da:Zi:o?Yi:Qi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=K(t);if(!s){let c;if(i&&(c=Zc[n]))return c;if(n==="hasOwnProperty")return na}const l=Reflect.get(t,n,de(t)?t:r);if((vt(n)?zi.has(n):ta(n))||(s||Ae(t,"get",n),o))return l;if(de(l)){const c=i&&Sr(n)?l:l.value;return s&&ae(c)?fs(c):c}return ae(l)?s?fs(l):fn(l):l}}class Xi extends Ji{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=K(t)&&Sr(n);if(!this._isShallow){const u=wt(o);if(!je(r)&&!wt(r)&&(o=re(o),r=re(r)),!i&&de(o)&&!de(r))return u||(o.value=r),!0}const l=i?Number(n)e,Wn=e=>Reflect.getPrototypeOf(e);function la(e,t,n){return function(...r){const s=this.__v_raw,o=re(s),i=nn(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=s[e](...r),a=n?us:t?on:ze;return!t&&Ae(o,"iterate",c?as:Vt),{next(){const{value:f,done:h}=u.next();return h?{value:f,done:h}:{value:l?[a(f[0]),a(f[1])]:a(f),done:h}},[Symbol.iterator](){return this}}}}function Gn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function ca(e,t){const n={get(s){const o=this.__v_raw,i=re(o),l=re(s);e||(Lt(s,l)&&Ae(i,"get",s),Ae(i,"get",l));const{has:c}=Wn(i),u=t?us:e?on:ze;if(c.call(i,s))return u(o.get(s));if(c.call(i,l))return u(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&Ae(re(s),"iterate",Vt),s.size},has(s){const o=this.__v_raw,i=re(o),l=re(s);return e||(Lt(s,l)&&Ae(i,"has",s),Ae(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,c=re(l),u=t?us:e?on:ze;return!e&&Ae(c,"iterate",Vt),l.forEach((a,f)=>s.call(o,u(a),u(f),i))}};return Ee(n,e?{add:Gn("add"),set:Gn("set"),delete:Gn("delete"),clear:Gn("clear")}:{add(s){!t&&!je(s)&&!wt(s)&&(s=re(s));const o=re(this);return Wn(o).has.call(o,s)||(o.add(s),yt(o,"add",s,s)),this},set(s,o){!t&&!je(o)&&!wt(o)&&(o=re(o));const i=re(this),{has:l,get:c}=Wn(i);let u=l.call(i,s);u||(s=re(s),u=l.call(i,s));const a=c.call(i,s);return i.set(s,o),u?Lt(o,a)&&yt(i,"set",s,o):yt(i,"add",s,o),this},delete(s){const o=re(this),{has:i,get:l}=Wn(o);let c=i.call(o,s);c||(s=re(s),c=i.call(o,s)),l&&l.call(o,s);const u=o.delete(s);return c&&yt(o,"delete",s,void 0),u},clear(){const s=re(this),o=s.size!==0,i=s.clear();return o&&yt(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=la(s,e,t)}),n}function js(e,t){const n=ca(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(oe(n,s)&&s in r?n:r,s,o)}const aa={get:js(!1,!1)},ua={get:js(!1,!0)},fa={get:js(!0,!1)};const Qi=new WeakMap,Yi=new WeakMap,Zi=new WeakMap,da=new WeakMap;function ha(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function pa(e){return e.__v_skip||!Object.isExtensible(e)?0:ha(Uc(e))}function fn(e){return wt(e)?e:Hs(e,!1,sa,aa,Qi)}function el(e){return Hs(e,!1,ia,ua,Yi)}function fs(e){return Hs(e,!0,oa,fa,Zi)}function Hs(e,t,n,r,s){if(!ae(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=pa(e);if(o===0)return e;const i=s.get(e);if(i)return i;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function ft(e){return wt(e)?ft(e.__v_raw):!!(e&&e.__v_isReactive)}function wt(e){return!!(e&&e.__v_isReadonly)}function je(e){return!!(e&&e.__v_isShallow)}function xr(e){return e?!!e.__v_raw:!1}function re(e){const t=e&&e.__v_raw;return t?re(t):e}function Vs(e){return!oe(e,"__v_skip")&&Object.isExtensible(e)&&Li(e,"__v_skip",!0),e}const ze=e=>ae(e)?fn(e):e,on=e=>ae(e)?fs(e):e;function de(e){return e?e.__v_isRef===!0:!1}function $t(e){return tl(e,!1)}function ma(e){return tl(e,!0)}function tl(e,t){return de(e)?e:new ga(e,t)}class ga{constructor(t,n){this.dep=new Us,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:re(t),this._value=n?t:ze(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||je(t)||wt(t);t=r?t:re(t),Lt(t,n)&&(this._rawValue=t,this._value=r?t:ze(t),this.dep.trigger())}}function dt(e){return de(e)?e.value:e}const ya={get:(e,t,n)=>t==="__v_raw"?e:dt(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return de(s)&&!de(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function nl(e){return ft(e)?e:new Proxy(e,ya)}function _a(e){const t=K(e)?new Array(e.length):{};for(const n in e)t[n]=rl(e,n);return t}class ba{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._raw=re(t);let s=!0,o=t;if(!K(t)||!Sr(String(n)))do s=!xr(o)||je(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=dt(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&de(this._raw[this._key])){const n=this._object[this._key];if(de(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return Yc(this._raw,this._key)}}class Ea{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function wa(e,t,n){return de(e)?e:J(e)?new Ea(e):ae(e)&&arguments.length>1?rl(e,t,n):$t(e)}function rl(e,t,n){return new ba(e,t,n)}class va{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Us(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=In-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&fe!==this)return Vi(this,!0),!0}get value(){const t=this.dep.track();return Ki(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Sa(e,t,n=!1){let r,s;return J(e)?r=e:(r=e.get,s=e.set),new va(r,s,n)}const zn={},ur=new WeakMap;let Bt;function Aa(e,t=!1,n=Bt){if(n){let r=ur.get(n);r||ur.set(n,r=[]),r.push(e)}}function Ra(e,t,n=ce){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:c}=n,u=O=>s?O:je(O)||s===!1||s===0?_t(O,1):_t(O);let a,f,h,m,g=!1,b=!1;if(de(e)?(f=()=>e.value,g=je(e)):ft(e)?(f=()=>u(e),g=!0):K(e)?(b=!0,g=e.some(O=>ft(O)||je(O)),f=()=>e.map(O=>{if(de(O))return O.value;if(ft(O))return u(O);if(J(O))return c?c(O,2):O()})):J(e)?t?f=c?()=>c(e,2):e:f=()=>{if(h){bt();try{h()}finally{Et()}}const O=Bt;Bt=a;try{return c?c(e,3,[m]):e(m)}finally{Bt=O}}:f=ut,t&&s){const O=f,B=s===!0?1/0:s;f=()=>_t(O(),B)}const E=Ui(),C=()=>{a.stop(),E&&E.active&&Ls(E.effects,a)};if(o&&t){const O=t;t=(...B)=>{O(...B),C()}}let T=b?new Array(e.length).fill(zn):zn;const N=O=>{if(!(!(a.flags&1)||!a.dirty&&!O))if(t){const B=a.run();if(s||g||(b?B.some((G,j)=>Lt(G,T[j])):Lt(B,T))){h&&h();const G=Bt;Bt=a;try{const j=[B,T===zn?void 0:b&&T[0]===zn?[]:T,m];T=B,c?c(t,3,j):t(...j)}finally{Bt=G}}}else a.run()};return l&&l(N),a=new ji(f),a.scheduler=i?()=>i(N,!1):N,m=O=>Aa(O,!1,a),h=a.onStop=()=>{const O=ur.get(a);if(O){if(c)c(O,4);else for(const B of O)B();ur.delete(a)}},t?r?N(!0):T=a.run():i?i(N.bind(null,!0),!0):a.run(),C.pause=a.pause.bind(a),C.resume=a.resume.bind(a),C.stop=C,C}function _t(e,t=1/0,n){if(t<=0||!ae(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,de(e))_t(e.value,t,n);else if(K(e))for(let r=0;r{_t(r,t,n)});else if(Ni(e)){for(const r in e)_t(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&_t(e[r],t,n)}return e}function jn(e,t,n,r){try{return r?e(...r):e()}catch(s){Tr(s,t,n)}}function Je(e,t,n,r){if(J(e)){const s=jn(e,t,n,r);return s&&Oi(s)&&s.catch(o=>{Tr(o,t,n)}),s}if(K(e)){const s=[];for(let o=0;o>>1,s=Pe[r],o=Dn(s);o=Dn(n)?Pe.push(e):Pe.splice(xa(t),0,e),e.flags|=1,ol()}}function ol(){fr||(fr=sl.then(ll))}function Ta(e){K(e)?rn.push(...e):Pt&&e.id===-1?Pt.splice(Qt+1,0,e):e.flags&1||(rn.push(e),e.flags|=1),ol()}function ao(e,t,n=ct+1){for(;nDn(n)-Dn(r));if(rn.length=0,Pt){Pt.push(...t);return}for(Pt=t,Qt=0;Qte.id==null?e.flags&2?-1:1/0:e.id;function ll(e){try{for(ct=0;ct{r._d&&mr(-1);const o=dr(t);let i;try{i=e(...s)}finally{dr(o),r._d&&mr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function xp(e,t){if(Ce===null)return e;const n=Lr(Ce),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&J(t)?t.call(r&&r.proxy):t}}function Oa(){return!!(Js()||qt)}const Pa=Symbol.for("v-scx"),Na=()=>Ke(Pa);function Sn(e,t,n){return ul(e,t,n)}function ul(e,t,n=ce){const{immediate:r,deep:s,flush:o,once:i}=n,l=Ee({},n),c=t&&r||!t&&o!=="post";let u;if(Bn){if(o==="sync"){const m=Na();u=m.__watcherHandles||(m.__watcherHandles=[])}else if(!c){const m=()=>{};return m.stop=ut,m.resume=ut,m.pause=ut,m}}const a=Ne;l.call=(m,g,b)=>Je(m,a,g,b);let f=!1;o==="post"?l.scheduler=m=>{Te(m,a&&a.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(m,g)=>{g?m():qs(m)}),l.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,a&&(m.id=a.uid,m.i=a))};const h=Ra(e,t,l);return Bn&&(u?u.push(h):c&&h()),h}function Ia(e,t,n){const r=this.proxy,s=pe(e)?e.includes(".")?fl(r,e):()=>r[e]:e.bind(r,r);let o;J(t)?o=t:(o=t.handler,n=t);const i=Hn(this),l=ul(s,o.bind(r),n);return i(),l}function fl(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,An=e=>e&&(e.disabled||e.disabled===""),uo=e=>e&&(e.defer||e.defer===""),fo=e=>typeof SVGElement<"u"&&e instanceof SVGElement,ho=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,ds=(e,t)=>{const n=e&&e.to;return pe(n)?t?t(n):null:n},hl={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,u){const{mc:a,pc:f,pbc:h,o:{insert:m,querySelector:g,createText:b,createComment:E}}=u,C=An(t.props);let{shapeFlag:T,children:N,dynamicChildren:O}=t;if(e==null){const B=t.el=b(""),G=t.anchor=b("");m(B,n,r),m(G,n,r);const j=(x,$)=>{T&16&&a(N,x,$,s,o,i,l,c)},U=()=>{const x=t.target=ds(t.props,g),$=pl(x,t,b,m);x&&(i!=="svg"&&fo(x)?i="svg":i!=="mathml"&&ho(x)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(x),C||(j(x,$),nr(t,!1)))};C&&(j(n,G),nr(t,!0)),uo(t.props)?(t.el.__isMounted=!1,Te(()=>{U(),delete t.el.__isMounted},o)):U()}else{if(uo(t.props)&&e.el.__isMounted===!1){Te(()=>{hl.process(e,t,n,r,s,o,i,l,c,u)},o);return}t.el=e.el,t.targetStart=e.targetStart;const B=t.anchor=e.anchor,G=t.target=e.target,j=t.targetAnchor=e.targetAnchor,U=An(e.props),x=U?n:G,$=U?B:j;if(i==="svg"||fo(G)?i="svg":(i==="mathml"||ho(G))&&(i="mathml"),O?(h(e.dynamicChildren,O,x,s,o,i,l),Gs(e,t,!0)):c||f(e,t,x,$,s,o,i,l,!1),C)U?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Jn(t,n,B,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const Y=t.target=ds(t.props,g);Y&&Jn(t,Y,null,u,0)}else U&&Jn(t,G,j,u,1);nr(t,C)}},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetStart:u,targetAnchor:a,target:f,props:h}=e;if(f&&(s(u),s(a)),o&&s(c),i&16){const m=o||!An(h);for(let g=0;g{e.isMounted=!0}),wl(()=>{e.isUnmounting=!0}),e}const $e=[Function,Array],ka={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:$e,onEnter:$e,onAfterEnter:$e,onEnterCancelled:$e,onBeforeLeave:$e,onLeave:$e,onAfterLeave:$e,onLeaveCancelled:$e,onBeforeAppear:$e,onAppear:$e,onAfterAppear:$e,onAppearCancelled:$e};function Ba(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function hs(e,t,n,r,s){const{appear:o,mode:i,persisted:l=!1,onBeforeEnter:c,onEnter:u,onAfterEnter:a,onEnterCancelled:f,onBeforeLeave:h,onLeave:m,onAfterLeave:g,onLeaveCancelled:b,onBeforeAppear:E,onAppear:C,onAfterAppear:T,onAppearCancelled:N}=t,O=String(e.key),B=Ba(n,e),G=(x,$)=>{x&&Je(x,r,9,$)},j=(x,$)=>{const Y=$[1];G(x,$),K(x)?x.every(L=>L.length<=1)&&Y():x.length<=1&&Y()},U={mode:i,persisted:l,beforeEnter(x){let $=c;if(!n.isMounted)if(o)$=E||c;else return;x[Ut]&&x[Ut](!0);const Y=B[O];Y&&Yt(e,Y)&&Y.el[Ut]&&Y.el[Ut](),G($,[x])},enter(x){let $=u,Y=a,L=f;if(!n.isMounted)if(o)$=C||u,Y=T||a,L=N||f;else return;let Q=!1;const le=x[Xn]=we=>{Q||(Q=!0,we?G(L,[x]):G(Y,[x]),U.delayedLeave&&U.delayedLeave(),x[Xn]=void 0)};$?j($,[x,le]):le()},leave(x,$){const Y=String(e.key);if(x[Xn]&&x[Xn](!0),n.isUnmounting)return $();G(h,[x]);let L=!1;const Q=x[Ut]=le=>{L||(L=!0,$(),le?G(b,[x]):G(g,[x]),x[Ut]=void 0,B[Y]===e&&delete B[Y])};B[Y]=e,m?j(m,[x,Q]):Q()},clone(x){return hs(x,t,n,r)}};return U}function Fn(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Fn(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 ml(e,t=!1,n){let r=[],s=0;for(let o=0;o1)for(let o=0;oRn(g,t&&(K(t)?t[b]:t),n,r,s));return}if(sn(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&Rn(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?Lr(r.component):r.el,i=s?null:o,{i:l,r:c}=e,u=t&&t.r,a=l.refs===ce?l.refs={}:l.refs,f=l.setupState,h=re(f),m=f===ce?xi:g=>oe(h,g);if(u!=null&&u!==c){if(po(t),pe(u))a[u]=null,m(u)&&(f[u]=null);else if(de(u)){u.value=null;const g=t;g.k&&(a[g.k]=null)}}if(J(c))jn(c,l,12,[i,a]);else{const g=pe(c),b=de(c);if(g||b){const E=()=>{if(e.f){const C=g?m(c)?f[c]:a[c]:c.value;if(s)K(C)&&Ls(C,o);else if(K(C))C.includes(o)||C.push(o);else if(g)a[c]=[o],m(c)&&(f[c]=a[c]);else{const T=[o];c.value=T,e.k&&(a[e.k]=T)}}else g?(a[c]=i,m(c)&&(f[c]=i)):b&&(c.value=i,e.k&&(a[e.k]=i))};if(i){const C=()=>{E(),hr.delete(e)};C.id=-1,hr.set(e,C),Te(C,n)}else po(e),E()}}}function po(e){const t=hr.get(e);t&&(t.flags|=8,hr.delete(e))}Rr().requestIdleCallback;Rr().cancelIdleCallback;const sn=e=>!!e.type.__asyncLoader,yl=e=>e.type.__isKeepAlive;function Ua(e,t){_l(e,"a",t)}function ja(e,t){_l(e,"da",t)}function _l(e,t,n=Ne){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Pr(t,r,n),n){let s=n.parent;for(;s&&s.parent;)yl(s.parent.vnode)&&Ha(r,t,n,s),s=s.parent}}function Ha(e,t,n,r){const s=Pr(t,e,r,!0);vl(()=>{Ls(r[t],s)},n)}function Pr(e,t,n=Ne,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{bt();const l=Hn(n),c=Je(t,n,e,i);return l(),Et(),c});return r?s.unshift(o):s.push(o),o}}const St=e=>(t,n=Ne)=>{(!Bn||e==="sp")&&Pr(e,(...r)=>t(...r),n)},Va=St("bm"),bl=St("m"),$a=St("bu"),El=St("u"),wl=St("bum"),vl=St("um"),qa=St("sp"),Ka=St("rtg"),Wa=St("rtc");function Ga(e,t=Ne){Pr("ec",e,t)}const za=Symbol.for("v-ndc");function Ja(e,t,n,r){let s;const o=n,i=K(e);if(i||pe(e)){const l=i&&ft(e);let c=!1,u=!1;l&&(c=!je(e),u=wt(e),e=Cr(e)),s=new Array(e.length);for(let a=0,f=e.length;at(l,c,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let c=0,u=l.length;c0;return qe(),gr(ve,null,[be("slot",n,r)],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),qe();const i=o&&Sl(o(n)),l=n.key||i&&i.key,c=gr(ve,{key:(l&&!vt(l)?l:`_${t}`)+(!i&&r?"_fb":"")},i||[],i&&e._===1?64:-2);return c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),o&&o._c&&(o._d=!0),c}function Sl(e){return e.some(t=>kn(t)?!(t.type===ht||t.type===ve&&!Sl(t.children)):!0)?e:null}const ps=e=>e?Hl(e)?Lr(e):ps(e.parent):null,Cn=Ee(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=>ps(e.parent),$root:e=>ps(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Rl(e),$forceUpdate:e=>e.f||(e.f=()=>{qs(e.update)}),$nextTick:e=>e.n||(e.n=$s.bind(e.proxy)),$watch:e=>Ia.bind(e)}),Gr=(e,t)=>e!==ce&&!e.__isScriptSetup&&oe(e,t),Xa={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:o,accessCache:i,type:l,appContext:c}=e;if(t[0]!=="$"){const h=i[t];if(h!==void 0)switch(h){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(Gr(r,t))return i[t]=1,r[t];if(s!==ce&&oe(s,t))return i[t]=2,s[t];if(oe(o,t))return i[t]=3,o[t];if(n!==ce&&oe(n,t))return i[t]=4,n[t];ms&&(i[t]=0)}}const u=Cn[t];let a,f;if(u)return t==="$attrs"&&Ae(e.attrs,"get",""),u(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==ce&&oe(n,t))return i[t]=4,n[t];if(f=c.config.globalProperties,oe(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return Gr(s,t)?(s[t]=n,!0):r!==ce&&oe(r,t)?(r[t]=n,!0):oe(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:o,type:i}},l){let c;return!!(n[l]||e!==ce&&l[0]!=="$"&&oe(e,l)||Gr(t,l)||oe(o,l)||oe(r,l)||oe(Cn,l)||oe(s.config.globalProperties,l)||(c=i.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:oe(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function mo(e){return K(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let ms=!0;function Qa(e){const t=Rl(e),n=e.proxy,r=e.ctx;ms=!1,t.beforeCreate&&go(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:u,created:a,beforeMount:f,mounted:h,beforeUpdate:m,updated:g,activated:b,deactivated:E,beforeDestroy:C,beforeUnmount:T,destroyed:N,unmounted:O,render:B,renderTracked:G,renderTriggered:j,errorCaptured:U,serverPrefetch:x,expose:$,inheritAttrs:Y,components:L,directives:Q,filters:le}=t;if(u&&Ya(u,r,null),i)for(const z in i){const Z=i[z];J(Z)&&(r[z]=Z.bind(n))}if(s){const z=s.call(n,n);ae(z)&&(e.data=fn(z))}if(ms=!0,o)for(const z in o){const Z=o[z],He=J(Z)?Z.bind(n,n):J(Z.get)?Z.get.bind(n,n):ut,Ye=!J(Z)&&J(Z.set)?Z.set.bind(n):ut,ye=Be({get:He,set:Ye});Object.defineProperty(r,z,{enumerable:!0,configurable:!0,get:()=>ye.value,set:me=>ye.value=me})}if(l)for(const z in l)Al(l[z],r,n,z);if(c){const z=J(c)?c.call(n):c;Reflect.ownKeys(z).forEach(Z=>{tr(Z,z[Z])})}a&&go(a,e,"c");function ee(z,Z){K(Z)?Z.forEach(He=>z(He.bind(n))):Z&&z(Z.bind(n))}if(ee(Va,f),ee(bl,h),ee($a,m),ee(El,g),ee(Ua,b),ee(ja,E),ee(Ga,U),ee(Wa,G),ee(Ka,j),ee(wl,T),ee(vl,O),ee(qa,x),K($))if($.length){const z=e.exposed||(e.exposed={});$.forEach(Z=>{Object.defineProperty(z,Z,{get:()=>n[Z],set:He=>n[Z]=He,enumerable:!0})})}else e.exposed||(e.exposed={});B&&e.render===ut&&(e.render=B),Y!=null&&(e.inheritAttrs=Y),L&&(e.components=L),Q&&(e.directives=Q),x&&gl(e)}function Ya(e,t,n=ut){K(e)&&(e=gs(e));for(const r in e){const s=e[r];let o;ae(s)?"default"in s?o=Ke(s.from||r,s.default,!0):o=Ke(s.from||r):o=Ke(s),de(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function go(e,t,n){Je(K(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Al(e,t,n,r){let s=r.includes(".")?fl(n,r):()=>n[r];if(pe(e)){const o=t[e];J(o)&&Sn(s,o)}else if(J(e))Sn(s,e.bind(n));else if(ae(e))if(K(e))e.forEach(o=>Al(o,t,n,r));else{const o=J(e.handler)?e.handler.bind(n):t[e.handler];J(o)&&Sn(s,o,e)}}function Rl(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>pr(c,u,i,!0)),pr(c,t,i)),ae(t)&&o.set(t,c),c}function pr(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&pr(e,o,n,!0),s&&s.forEach(i=>pr(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Za[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Za={data:yo,props:_o,emits:_o,methods:bn,computed:bn,beforeCreate:xe,created:xe,beforeMount:xe,mounted:xe,beforeUpdate:xe,updated:xe,beforeDestroy:xe,beforeUnmount:xe,destroyed:xe,unmounted:xe,activated:xe,deactivated:xe,errorCaptured:xe,serverPrefetch:xe,components:bn,directives:bn,watch:tu,provide:yo,inject:eu};function yo(e,t){return t?e?function(){return Ee(J(e)?e.call(this,this):e,J(t)?t.call(this,this):t)}:t:e}function eu(e,t){return bn(gs(e),gs(t))}function gs(e){if(K(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Dt(t)}Modifiers`]||e[`${zt(t)}Modifiers`];function ou(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||ce;let s=n;const o=t.startsWith("update:"),i=o&&su(r,t.slice(7));i&&(i.trim&&(s=n.map(a=>pe(a)?a.trim():a)),i.number&&(s=n.map(Ds)));let l,c=r[l=Vr(t)]||r[l=Vr(Dt(t))];!c&&o&&(c=r[l=Vr(zt(t))]),c&&Je(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Je(u,e,6,s)}}const iu=new WeakMap;function xl(e,t,n=!1){const r=n?iu:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!J(e)){const c=u=>{const a=xl(u,t,!0);a&&(l=!0,Ee(i,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(ae(e)&&r.set(e,null),null):(K(o)?o.forEach(c=>i[c]=null):Ee(i,o),ae(e)&&r.set(e,i),i)}function Nr(e,t){return!e||!wr(t)?!1:(t=t.slice(2).replace(/Once$/,""),oe(e,t[0].toLowerCase()+t.slice(1))||oe(e,zt(t))||oe(e,t))}function bo(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:a,props:f,data:h,setupState:m,ctx:g,inheritAttrs:b}=e,E=dr(e);let C,T;try{if(n.shapeFlag&4){const O=s||r,B=O;C=at(u.call(B,O,a,f,m,h,g)),T=l}else{const O=t;C=at(O.length>1?O(f,{attrs:l,slots:i,emit:c}):O(f,null)),T=t.props?l:lu(l)}}catch(O){xn.length=0,Tr(O,e,1),C=be(ht)}let N=C;if(T&&b!==!1){const O=Object.keys(T),{shapeFlag:B}=N;O.length&&B&7&&(o&&O.some(Is)&&(T=cu(T,o)),N=Wt(N,T,!1,!0))}return n.dirs&&(N=Wt(N,null,!1,!0),N.dirs=N.dirs?N.dirs.concat(n.dirs):n.dirs),n.transition&&Fn(N,n.transition),C=N,dr(E),C}const lu=e=>{let t;for(const n in e)(n==="class"||n==="style"||wr(n))&&((t||(t={}))[n]=e[n]);return t},cu=(e,t)=>{const n={};for(const r in e)(!Is(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function au(e,t,n){const{props:r,children:s,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 r?Eo(r,i,u):!!i;if(c&8){const a=t.dynamicProps;for(let f=0;fObject.create(Tl),Pl=e=>Object.getPrototypeOf(e)===Tl;function fu(e,t,n,r=!1){const s={},o=Ol();e.propsDefaults=Object.create(null),Nl(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:el(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function du(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=re(s),[c]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const a=e.vnode.dynamicProps;for(let f=0;f{c=!0;const[h,m]=Il(f,t,!0);Ee(i,h),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!c)return ae(e)&&r.set(e,tn),tn;if(K(o))for(let a=0;ae==="_"||e==="_ctx"||e==="$stable",Ws=e=>K(e)?e.map(at):[at(e)],pu=(e,t,n)=>{if(t._n)return t;const r=al((...s)=>Ws(t(...s)),n);return r._c=!1,r},Ll=(e,t,n)=>{const r=e._ctx;for(const s in e){if(Ks(s))continue;const o=e[s];if(J(o))t[s]=pu(s,o,r);else if(o!=null){const i=Ws(o);t[s]=()=>i}}},Dl=(e,t)=>{const n=Ws(t);e.slots.default=()=>n},Fl=(e,t,n)=>{for(const r in t)(n||!Ks(r))&&(e[r]=t[r])},mu=(e,t,n)=>{const r=e.slots=Ol();if(e.vnode.shapeFlag&32){const s=t._;s?(Fl(r,t,n),n&&Li(r,"_",s,!0)):Ll(t,r)}else t&&Dl(e,t)},gu=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=ce;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:Fl(s,t,n):(o=!t.$stable,Ll(t,s)),i=t}else t&&(Dl(e,t),i={default:1});if(o)for(const l in s)!Ks(l)&&i[l]==null&&delete s[l]},Te=wu;function yu(e){return _u(e)}function _u(e,t){const n=Rr();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:a,parentNode:f,nextSibling:h,setScopeId:m=ut,insertStaticContent:g}=e,b=(d,p,y,w=null,A=null,v=null,D=void 0,I=null,P=!!p.dynamicChildren)=>{if(d===p)return;d&&!Yt(d,p)&&(w=S(d),me(d,A,v,!0),d=null),p.patchFlag===-2&&(P=!1,p.dynamicChildren=null);const{type:R,ref:q,shapeFlag:M}=p;switch(R){case Ir:E(d,p,y,w);break;case ht:C(d,p,y,w);break;case rr:d==null&&T(p,y,w,D);break;case ve:L(d,p,y,w,A,v,D,I,P);break;default:M&1?B(d,p,y,w,A,v,D,I,P):M&6?Q(d,p,y,w,A,v,D,I,P):(M&64||M&128)&&R.process(d,p,y,w,A,v,D,I,P,H)}q!=null&&A?Rn(q,d&&d.ref,v,p||d,!p):q==null&&d&&d.ref!=null&&Rn(d.ref,null,v,d,!0)},E=(d,p,y,w)=>{if(d==null)r(p.el=l(p.children),y,w);else{const A=p.el=d.el;p.children!==d.children&&u(A,p.children)}},C=(d,p,y,w)=>{d==null?r(p.el=c(p.children||""),y,w):p.el=d.el},T=(d,p,y,w)=>{[d.el,d.anchor]=g(d.children,p,y,w,d.el,d.anchor)},N=({el:d,anchor:p},y,w)=>{let A;for(;d&&d!==p;)A=h(d),r(d,y,w),d=A;r(p,y,w)},O=({el:d,anchor:p})=>{let y;for(;d&&d!==p;)y=h(d),s(d),d=y;s(p)},B=(d,p,y,w,A,v,D,I,P)=>{if(p.type==="svg"?D="svg":p.type==="math"&&(D="mathml"),d==null)G(p,y,w,A,v,D,I,P);else{const R=d.el&&d.el._isVueCE?d.el:null;try{R&&R._beginPatch(),x(d,p,A,v,D,I,P)}finally{R&&R._endPatch()}}},G=(d,p,y,w,A,v,D,I)=>{let P,R;const{props:q,shapeFlag:M,transition:V,dirs:W}=d;if(P=d.el=i(d.type,v,q&&q.is,q),M&8?a(P,d.children):M&16&&U(d.children,P,null,w,A,zr(d,v),D,I),W&&Ft(d,null,w,"created"),j(P,d,d.scopeId,D,w),q){for(const ue in q)ue!=="value"&&!En(ue)&&o(P,ue,null,q[ue],v,w);"value"in q&&o(P,"value",null,q.value,v),(R=q.onVnodeBeforeMount)&&st(R,w,d)}W&&Ft(d,null,w,"beforeMount");const ne=bu(A,V);ne&&V.beforeEnter(P),r(P,p,y),((R=q&&q.onVnodeMounted)||ne||W)&&Te(()=>{R&&st(R,w,d),ne&&V.enter(P),W&&Ft(d,null,w,"mounted")},A)},j=(d,p,y,w,A)=>{if(y&&m(d,y),w)for(let v=0;v{for(let R=P;R{const I=p.el=d.el;let{patchFlag:P,dynamicChildren:R,dirs:q}=p;P|=d.patchFlag&16;const M=d.props||ce,V=p.props||ce;let W;if(y&&Mt(y,!1),(W=V.onVnodeBeforeUpdate)&&st(W,y,p,d),q&&Ft(p,d,y,"beforeUpdate"),y&&Mt(y,!0),(M.innerHTML&&V.innerHTML==null||M.textContent&&V.textContent==null)&&a(I,""),R?$(d.dynamicChildren,R,I,y,w,zr(p,A),v):D||Z(d,p,I,null,y,w,zr(p,A),v,!1),P>0){if(P&16)Y(I,M,V,y,A);else if(P&2&&M.class!==V.class&&o(I,"class",null,V.class,A),P&4&&o(I,"style",M.style,V.style,A),P&8){const ne=p.dynamicProps;for(let ue=0;ue{W&&st(W,y,p,d),q&&Ft(p,d,y,"updated")},w)},$=(d,p,y,w,A,v,D)=>{for(let I=0;I{if(p!==y){if(p!==ce)for(const v in p)!En(v)&&!(v in y)&&o(d,v,p[v],null,A,w);for(const v in y){if(En(v))continue;const D=y[v],I=p[v];D!==I&&v!=="value"&&o(d,v,I,D,A,w)}"value"in y&&o(d,"value",p.value,y.value,A)}},L=(d,p,y,w,A,v,D,I,P)=>{const R=p.el=d?d.el:l(""),q=p.anchor=d?d.anchor:l("");let{patchFlag:M,dynamicChildren:V,slotScopeIds:W}=p;W&&(I=I?I.concat(W):W),d==null?(r(R,y,w),r(q,y,w),U(p.children||[],y,q,A,v,D,I,P)):M>0&&M&64&&V&&d.dynamicChildren&&d.dynamicChildren.length===V.length?($(d.dynamicChildren,V,y,A,v,D,I),(p.key!=null||A&&p===A.subTree)&&Gs(d,p,!0)):Z(d,p,y,q,A,v,D,I,P)},Q=(d,p,y,w,A,v,D,I,P)=>{p.slotScopeIds=I,d==null?p.shapeFlag&512?A.ctx.activate(p,y,w,D,P):le(p,y,w,A,v,D,P):we(d,p,P)},le=(d,p,y,w,A,v,D)=>{const I=d.component=Pu(d,w,A);if(yl(d)&&(I.ctx.renderer=H),Nu(I,!1,D),I.asyncDep){if(A&&A.registerDep(I,ee,D),!d.el){const P=I.subTree=be(ht);C(null,P,p,y),d.placeholder=P.el}}else ee(I,d,p,y,A,v,D)},we=(d,p,y)=>{const w=p.component=d.component;if(au(d,p,y))if(w.asyncDep&&!w.asyncResolved){z(w,p,y);return}else w.next=p,w.update();else p.el=d.el,w.vnode=p},ee=(d,p,y,w,A,v,D)=>{const I=()=>{if(d.isMounted){let{next:M,bu:V,u:W,parent:ne,vnode:ue}=d;{const nt=Ml(d);if(nt){M&&(M.el=ue.el,z(d,M,D)),nt.asyncDep.then(()=>{d.isUnmounted||I()});return}}let ie=M,Ie;Mt(d,!1),M?(M.el=ue.el,z(d,M,D)):M=ue,V&&er(V),(Ie=M.props&&M.props.onVnodeBeforeUpdate)&&st(Ie,ne,M,ue),Mt(d,!0);const Le=bo(d),tt=d.subTree;d.subTree=Le,b(tt,Le,f(tt.el),S(tt),d,A,v),M.el=Le.el,ie===null&&uu(d,Le.el),W&&Te(W,A),(Ie=M.props&&M.props.onVnodeUpdated)&&Te(()=>st(Ie,ne,M,ue),A)}else{let M;const{el:V,props:W}=p,{bm:ne,m:ue,parent:ie,root:Ie,type:Le}=d,tt=sn(p);Mt(d,!1),ne&&er(ne),!tt&&(M=W&&W.onVnodeBeforeMount)&&st(M,ie,p),Mt(d,!0);{Ie.ce&&Ie.ce._def.shadowRoot!==!1&&Ie.ce._injectChildStyle(Le);const nt=d.subTree=bo(d);b(null,nt,y,w,d,A,v),p.el=nt.el}if(ue&&Te(ue,A),!tt&&(M=W&&W.onVnodeMounted)){const nt=p;Te(()=>st(M,ie,nt),A)}(p.shapeFlag&256||ie&&sn(ie.vnode)&&ie.vnode.shapeFlag&256)&&d.a&&Te(d.a,A),d.isMounted=!0,p=y=w=null}};d.scope.on();const P=d.effect=new ji(I);d.scope.off();const R=d.update=P.run.bind(P),q=d.job=P.runIfDirty.bind(P);q.i=d,q.id=d.uid,P.scheduler=()=>qs(q),Mt(d,!0),R()},z=(d,p,y)=>{p.component=d;const w=d.vnode.props;d.vnode=p,d.next=null,du(d,p.props,w,y),gu(d,p.children,y),bt(),ao(d),Et()},Z=(d,p,y,w,A,v,D,I,P=!1)=>{const R=d&&d.children,q=d?d.shapeFlag:0,M=p.children,{patchFlag:V,shapeFlag:W}=p;if(V>0){if(V&128){Ye(R,M,y,w,A,v,D,I,P);return}else if(V&256){He(R,M,y,w,A,v,D,I,P);return}}W&8?(q&16&&Ve(R,A,v),M!==R&&a(y,M)):q&16?W&16?Ye(R,M,y,w,A,v,D,I,P):Ve(R,A,v,!0):(q&8&&a(y,""),W&16&&U(M,y,w,A,v,D,I,P))},He=(d,p,y,w,A,v,D,I,P)=>{d=d||tn,p=p||tn;const R=d.length,q=p.length,M=Math.min(R,q);let V;for(V=0;Vq?Ve(d,A,v,!0,!1,M):U(p,y,w,A,v,D,I,P,M)},Ye=(d,p,y,w,A,v,D,I,P)=>{let R=0;const q=p.length;let M=d.length-1,V=q-1;for(;R<=M&&R<=V;){const W=d[R],ne=p[R]=P?Nt(p[R]):at(p[R]);if(Yt(W,ne))b(W,ne,y,null,A,v,D,I,P);else break;R++}for(;R<=M&&R<=V;){const W=d[M],ne=p[V]=P?Nt(p[V]):at(p[V]);if(Yt(W,ne))b(W,ne,y,null,A,v,D,I,P);else break;M--,V--}if(R>M){if(R<=V){const W=V+1,ne=WV)for(;R<=M;)me(d[R],A,v,!0),R++;else{const W=R,ne=R,ue=new Map;for(R=ne;R<=V;R++){const Me=p[R]=P?Nt(p[R]):at(p[R]);Me.key!=null&&ue.set(Me.key,R)}let ie,Ie=0;const Le=V-ne+1;let tt=!1,nt=0;const pn=new Array(Le);for(R=0;R=Le){me(Me,A,v,!0);continue}let rt;if(Me.key!=null)rt=ue.get(Me.key);else for(ie=ne;ie<=V;ie++)if(pn[ie-ne]===0&&Yt(Me,p[ie])){rt=ie;break}rt===void 0?me(Me,A,v,!0):(pn[rt-ne]=R+1,rt>=nt?nt=rt:tt=!0,b(Me,p[rt],y,null,A,v,D,I,P),Ie++)}const ro=tt?Eu(pn):tn;for(ie=ro.length-1,R=Le-1;R>=0;R--){const Me=ne+R,rt=p[Me],so=p[Me+1],oo=Me+1{const{el:v,type:D,transition:I,children:P,shapeFlag:R}=d;if(R&6){ye(d.component.subTree,p,y,w);return}if(R&128){d.suspense.move(p,y,w);return}if(R&64){D.move(d,p,y,H);return}if(D===ve){r(v,p,y);for(let M=0;MI.enter(v),A);else{const{leave:M,delayLeave:V,afterLeave:W}=I,ne=()=>{d.ctx.isUnmounted?s(v):r(v,p,y)},ue=()=>{v._isLeaving&&v[Ut](!0),M(v,()=>{ne(),W&&W()})};V?V(v,ne,ue):ue()}else r(v,p,y)},me=(d,p,y,w=!1,A=!1)=>{const{type:v,props:D,ref:I,children:P,dynamicChildren:R,shapeFlag:q,patchFlag:M,dirs:V,cacheIndex:W}=d;if(M===-2&&(A=!1),I!=null&&(bt(),Rn(I,null,y,d,!0),Et()),W!=null&&(p.renderCache[W]=void 0),q&256){p.ctx.deactivate(d);return}const ne=q&1&&V,ue=!sn(d);let ie;if(ue&&(ie=D&&D.onVnodeBeforeUnmount)&&st(ie,p,d),q&6)et(d.component,y,w);else{if(q&128){d.suspense.unmount(y,w);return}ne&&Ft(d,null,p,"beforeUnmount"),q&64?d.type.remove(d,p,y,H,w):R&&!R.hasOnce&&(v!==ve||M>0&&M&64)?Ve(R,p,y,!1,!0):(v===ve&&M&384||!A&&q&16)&&Ve(P,p,y),w&&Ze(d)}(ue&&(ie=D&&D.onVnodeUnmounted)||ne)&&Te(()=>{ie&&st(ie,p,d),ne&&Ft(d,null,p,"unmounted")},y)},Ze=d=>{const{type:p,el:y,anchor:w,transition:A}=d;if(p===ve){We(y,w);return}if(p===rr){O(d);return}const v=()=>{s(y),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(d.shapeFlag&1&&A&&!A.persisted){const{leave:D,delayLeave:I}=A,P=()=>D(y,v);I?I(d.el,v,P):P()}else v()},We=(d,p)=>{let y;for(;d!==p;)y=h(d),s(d),d=y;s(p)},et=(d,p,y)=>{const{bum:w,scope:A,job:v,subTree:D,um:I,m:P,a:R}=d;vo(P),vo(R),w&&er(w),A.stop(),v&&(v.flags|=8,me(D,d,p,y)),I&&Te(I,p),Te(()=>{d.isUnmounted=!0},p)},Ve=(d,p,y,w=!1,A=!1,v=0)=>{for(let D=v;D{if(d.shapeFlag&6)return S(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const p=h(d.anchor||d.el),y=p&&p[dl];return y?h(y):p};let k=!1;const F=(d,p,y)=>{let w;d==null?p._vnode&&(me(p._vnode,null,null,!0),w=p._vnode.component):b(p._vnode||null,d,p,null,null,null,y),p._vnode=d,k||(k=!0,ao(w),il(),k=!1)},H={p:b,um:me,m:ye,r:Ze,mt:le,mc:U,pc:Z,pbc:$,n:S,o:e};return{render:F,hydrate:void 0,createApp:ru(F)}}function zr({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 Mt({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function bu(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Gs(e,t,n=!1){const r=e.children,s=t.children;if(K(r)&&K(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Ml(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Ml(t)}function vo(e){if(e)for(let t=0;te.__isSuspense;function wu(e,t){t&&t.pendingBranch?K(e)?t.effects.push(...e):t.effects.push(e):Ta(e)}const ve=Symbol.for("v-fgt"),Ir=Symbol.for("v-txt"),ht=Symbol.for("v-cmt"),rr=Symbol.for("v-stc"),xn=[];let Ue=null;function qe(e=!1){xn.push(Ue=e?null:[])}function vu(){xn.pop(),Ue=xn[xn.length-1]||null}let Mn=1;function mr(e,t=!1){Mn+=e,e<0&&Ue&&t&&(Ue.hasOnce=!0)}function Ul(e){return e.dynamicChildren=Mn>0?Ue||tn:null,vu(),Mn>0&&Ue&&Ue.push(e),e}function Ct(e,t,n,r,s,o){return Ul(ke(e,t,n,r,s,o,!0))}function gr(e,t,n,r,s){return Ul(be(e,t,n,r,s,!0))}function kn(e){return e?e.__v_isVNode===!0:!1}function Yt(e,t){return e.type===t.type&&e.key===t.key}const jl=({key:e})=>e??null,sr=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?pe(e)||de(e)||J(e)?{i:Ce,r:e,k:t,f:!!n}:e:null);function ke(e,t=null,n=null,r=0,s=null,o=e===ve?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&jl(t),ref:t&&sr(t),scopeId:cl,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:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Ce};return l?(zs(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=pe(n)?8:16),Mn>0&&!i&&Ue&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Ue.push(c),c}const be=Su;function Su(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===za)&&(e=ht),kn(e)){const l=Wt(e,t,!0);return n&&zs(l,n),Mn>0&&!o&&Ue&&(l.shapeFlag&6?Ue[Ue.indexOf(e)]=l:Ue.push(l)),l.patchFlag=-2,l}if(Fu(e)&&(e=e.__vccOpts),t){t=Au(t);let{class:l,style:c}=t;l&&!pe(l)&&(t.class=Nn(l)),ae(c)&&(xr(c)&&!K(c)&&(c=Ee({},c)),t.style=Fs(c))}const i=pe(e)?1:Bl(e)?128:La(e)?64:ae(e)?4:J(e)?2:0;return ke(e,t,n,r,s,i,o,!0)}function Au(e){return e?xr(e)||Pl(e)?Ee({},e):e:null}function Wt(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?xu(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&jl(u),ref:t&&t.ref?n&&o?K(o)?o.concat(sr(t)):[o,sr(t)]:sr(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&&r&&Fn(a,c.clone(a)),a}function Ru(e=" ",t=0){return be(Ir,null,e,t)}function Op(e,t){const n=be(rr,null,e);return n.staticCount=t,n}function Cu(e="",t=!1){return t?(qe(),gr(ht,null,e)):be(ht,null,e)}function at(e){return e==null||typeof e=="boolean"?be(ht):K(e)?be(ve,null,e.slice()):kn(e)?Nt(e):be(Ir,null,String(e))}function Nt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Wt(e)}function zs(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(K(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),zs(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Pl(t)?t._ctx=Ce:s===3&&Ce&&(Ce.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else J(t)?(t={default:t,_ctx:Ce},n=32):(t=String(t),r&64?(n=16,t=[Ru(t)]):n=8);e.children=t,e.shapeFlag|=n}function xu(...e){const t={};for(let n=0;nNe||Ce;let yr,_s;{const e=Rr(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};yr=t("__VUE_INSTANCE_SETTERS__",n=>Ne=n),_s=t("__VUE_SSR_SETTERS__",n=>Bn=n)}const Hn=e=>{const t=Ne;return yr(e),e.scope.on(),()=>{e.scope.off(),yr(t)}},So=()=>{Ne&&Ne.scope.off(),yr(null)};function Hl(e){return e.vnode.shapeFlag&4}let Bn=!1;function Nu(e,t=!1,n=!1){t&&_s(t);const{props:r,children:s}=e.vnode,o=Hl(e);fu(e,r,o,t),mu(e,s,n||t);const i=o?Iu(e,t):void 0;return t&&_s(!1),i}function Iu(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Xa);const{setup:r}=n;if(r){bt();const s=e.setupContext=r.length>1?Du(e):null,o=Hn(e),i=jn(r,e,0,[e.props,s]),l=Oi(i);if(Et(),o(),(l||e.sp)&&!sn(e)&&gl(e),l){if(i.then(So,So),t)return i.then(c=>{Ao(e,c)}).catch(c=>{Tr(c,e,0)});e.asyncDep=i}else Ao(e,i)}else Vl(e)}function Ao(e,t,n){J(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ae(t)&&(e.setupState=nl(t)),Vl(e)}function Vl(e,t,n){const r=e.type;e.render||(e.render=r.render||ut);{const s=Hn(e);bt();try{Qa(e)}finally{Et(),s()}}}const Lu={get(e,t){return Ae(e,"get",""),e[t]}};function Du(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Lu),slots:e.slots,emit:e.emit,expose:t}}function Lr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(nl(Vs(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Cn)return Cn[n](e)},has(t,n){return n in t||n in Cn}})):e.proxy}function Fu(e){return J(e)&&"__vccOpts"in e}const Be=(e,t)=>Sa(e,t,Bn);function $l(e,t,n){try{mr(-1);const r=arguments.length;return r===2?ae(t)&&!K(t)?kn(t)?be(e,null,[t]):be(e,t):be(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&kn(n)&&(n=[n]),be(e,t,n))}finally{mr(1)}}const Mu="3.5.26";let bs;const Ro=typeof window<"u"&&window.trustedTypes;if(Ro)try{bs=Ro.createPolicy("vue",{createHTML:e=>e})}catch{}const ql=bs?e=>bs.createHTML(e):e=>e,ku="http://www.w3.org/2000/svg",Bu="http://www.w3.org/1998/Math/MathML",gt=typeof document<"u"?document:null,Co=gt&>.createElement("template"),Uu={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?gt.createElementNS(ku,e):t==="mathml"?gt.createElementNS(Bu,e):n?gt.createElement(e,{is:n}):gt.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>gt.createTextNode(e),createComment:e=>gt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>gt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{Co.innerHTML=ql(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=Co.content;if(r==="svg"||r==="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]}},At="transition",gn="animation",ln=Symbol("_vtc"),Kl={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},ju=Ee({},ka,Kl),kt=(e,t=[])=>{K(e)?e.forEach(n=>n(...t)):e&&e(...t)},xo=e=>e?K(e)?e.some(t=>t.length>1):e.length>1:!1;function Hu(e){const t={};for(const L in e)L in Kl||(t[L]=e[L]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=o,appearActiveClass:u=i,appearToClass:a=l,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:h=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,g=Vu(s),b=g&&g[0],E=g&&g[1],{onBeforeEnter:C,onEnter:T,onEnterCancelled:N,onLeave:O,onLeaveCancelled:B,onBeforeAppear:G=C,onAppear:j=T,onAppearCancelled:U=N}=t,x=(L,Q,le,we)=>{L._enterCancelled=we,xt(L,Q?a:l),xt(L,Q?u:i),le&&le()},$=(L,Q)=>{L._isLeaving=!1,xt(L,f),xt(L,m),xt(L,h),Q&&Q()},Y=L=>(Q,le)=>{const we=L?j:T,ee=()=>x(Q,L,le);kt(we,[Q,ee]),To(()=>{xt(Q,L?c:o),lt(Q,L?a:l),xo(we)||Oo(Q,r,b,ee)})};return Ee(t,{onBeforeEnter(L){kt(C,[L]),lt(L,o),lt(L,i)},onBeforeAppear(L){kt(G,[L]),lt(L,c),lt(L,u)},onEnter:Y(!1),onAppear:Y(!0),onLeave(L,Q){L._isLeaving=!0;const le=()=>$(L,Q);lt(L,f),L._enterCancelled?(lt(L,h),Es(L)):(Es(L),lt(L,h)),To(()=>{L._isLeaving&&(xt(L,f),lt(L,m),xo(O)||Oo(L,r,E,le))}),kt(O,[L,le])},onEnterCancelled(L){x(L,!1,void 0,!0),kt(N,[L])},onAppearCancelled(L){x(L,!0,void 0,!0),kt(U,[L])},onLeaveCancelled(L){$(L),kt(B,[L])}})}function Vu(e){if(e==null)return null;if(ae(e))return[Jr(e.enter),Jr(e.leave)];{const t=Jr(e);return[t,t]}}function Jr(e){return Vc(e)}function lt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[ln]||(e[ln]=new Set)).add(t)}function xt(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[ln];n&&(n.delete(t),n.size||(e[ln]=void 0))}function To(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let $u=0;function Oo(e,t,n,r){const s=e._endId=++$u,o=()=>{s===e._endId&&r()};if(n!=null)return setTimeout(o,n);const{type:i,timeout:l,propCount:c}=Wl(e,t);if(!i)return r();const u=i+"end";let a=0;const f=()=>{e.removeEventListener(u,h),o()},h=m=>{m.target===e&&++a>=c&&f()};setTimeout(()=>{a(n[g]||"").split(", "),s=r(`${At}Delay`),o=r(`${At}Duration`),i=Po(s,o),l=r(`${gn}Delay`),c=r(`${gn}Duration`),u=Po(l,c);let a=null,f=0,h=0;t===At?i>0&&(a=At,f=i,h=o.length):t===gn?u>0&&(a=gn,f=u,h=c.length):(f=Math.max(i,u),a=f>0?i>u?At:gn:null,h=a?a===At?o.length:c.length:0);const m=a===At&&/\b(?:transform|all)(?:,|$)/.test(r(`${At}Property`).toString());return{type:a,timeout:f,propCount:h,hasTransform:m}}function Po(e,t){for(;e.lengthNo(n)+No(e[r])))}function No(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Es(e){return(e?e.ownerDocument:document).body.offsetHeight}function qu(e,t,n){const r=e[ln];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Io=Symbol("_vod"),Ku=Symbol("_vsh"),Wu=Symbol(""),Gu=/(?:^|;)\s*display\s*:/;function zu(e,t,n){const r=e.style,s=pe(n);let o=!1;if(n&&!s){if(t)if(pe(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&or(r,l,"")}else for(const i in t)n[i]==null&&or(r,i,"");for(const i in n)i==="display"&&(o=!0),or(r,i,n[i])}else if(s){if(t!==n){const i=r[Wu];i&&(n+=";"+i),r.cssText=n,o=Gu.test(n)}}else t&&e.removeAttribute("style");Io in e&&(e[Io]=o?r.display:"",e[Ku]&&(r.display="none"))}const Lo=/\s*!important$/;function or(e,t,n){if(K(n))n.forEach(r=>or(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Ju(e,t);Lo.test(n)?e.setProperty(zt(r),n.replace(Lo,""),"important"):e[r]=n}}const Do=["Webkit","Moz","ms"],Xr={};function Ju(e,t){const n=Xr[t];if(n)return n;let r=Dt(t);if(r!=="filter"&&r in e)return Xr[t]=r;r=Ii(r);for(let s=0;sQr||(Zu.then(()=>Qr=0),Qr=Date.now());function tf(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Je(nf(r,n.value),t,5,[r])};return n.value=e,n.attached=ef(),n}function nf(e,t){if(K(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const jo=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,rf=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?qu(e,r,i):t==="style"?zu(e,n,r):wr(t)?Is(t)||Qu(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):sf(e,t,r,i))?(ko(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Mo(e,t,r,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!pe(r))?ko(e,Dt(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Mo(e,t,r,i))};function sf(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&jo(t)&&J(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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return jo(t)&&pe(n)?!1:t in e}const Gl=new WeakMap,zl=new WeakMap,_r=Symbol("_moveCb"),Ho=Symbol("_enterCb"),of=e=>(delete e.props.mode,e),lf=of({name:"TransitionGroup",props:Ee({},ju,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=Js(),r=Ma();let s,o;return El(()=>{if(!s.length)return;const i=e.moveClass||`${e.name||"v"}-move`;if(!df(s[0].el,n.vnode.el,i)){s=[];return}s.forEach(af),s.forEach(uf);const l=s.filter(ff);Es(n.vnode.el),l.forEach(c=>{const u=c.el,a=u.style;lt(u,i),a.transform=a.webkitTransform=a.transitionDuration="";const f=u[_r]=h=>{h&&h.target!==u||(!h||h.propertyName.endsWith("transform"))&&(u.removeEventListener("transitionend",f),u[_r]=null,xt(u,i))};u.addEventListener("transitionend",f)}),s=[]}),()=>{const i=re(e),l=Hu(i);let c=i.tag||ve;if(s=[],o)for(let u=0;u{l.split(/\s+/).forEach(c=>c&&r.classList.remove(c))}),n.split(/\s+/).forEach(l=>l&&r.classList.add(l)),r.style.display="none";const o=t.nodeType===1?t:t.parentNode;o.appendChild(r);const{hasTransform:i}=Wl(r);return o.removeChild(r),i}const Vo=e=>{const t=e.props["onUpdate:modelValue"]||!1;return K(t)?n=>er(t,n):t};function hf(e){e.target.composing=!0}function $o(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Yr=Symbol("_assign");function qo(e,t,n){return t&&(e=e.trim()),n&&(e=Ds(e)),e}const Pp={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Yr]=Vo(s);const o=r||s.props&&s.props.type==="number";Zt(e,t?"change":"input",i=>{i.target.composing||e[Yr](qo(e.value,n,o))}),(n||o)&&Zt(e,"change",()=>{e.value=qo(e.value,n,o)}),t||(Zt(e,"compositionstart",hf),Zt(e,"compositionend",$o),Zt(e,"change",$o))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Yr]=Vo(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?Ds(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},pf=["ctrl","shift","alt","meta"],mf={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>pf.some(n=>e[`${n}Key`]&&!t.includes(n))},Np=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const t=yf().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Ef(r);if(!s)return;const o=t._component;!J(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,bf(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t});function bf(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Ef(e){return pe(e)?document.querySelector(e):e}let Jl;const Dr=e=>Jl=e,Xl=Symbol();function ws(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Tn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Tn||(Tn={}));function wf(){const e=Bi(!0),t=e.run(()=>$t({}));let n=[],r=[];const s=Vs({install(o){Dr(s),s._a=o,o.provide(Xl,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const Ql=()=>{};function Wo(e,t,n,r=Ql){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&Ui()&&Jc(s),s}function Xt(e,...t){e.forEach(n=>{n(...t)})}const vf=e=>e(),Go=Symbol(),Zr=Symbol();function vs(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];ws(s)&&ws(r)&&e.hasOwnProperty(n)&&!de(r)&&!ft(r)?e[n]=vs(s,r):e[n]=r}return e}const Sf=Symbol();function Af(e){return!ws(e)||!Object.prototype.hasOwnProperty.call(e,Sf)}const{assign:Tt}=Object;function Rf(e){return!!(de(e)&&e.effect)}function Cf(e,t,n,r){const{state:s,actions:o,getters:i}=t,l=n.state.value[e];let c;function u(){l||(n.state.value[e]=s?s():{});const a=_a(n.state.value[e]);return Tt(a,o,Object.keys(i||{}).reduce((f,h)=>(f[h]=Vs(Be(()=>{Dr(n);const m=n._s.get(e);return i[h].call(m,m)})),f),{}))}return c=Yl(e,u,t,n,r,!0),c}function Yl(e,t,n={},r,s,o){let i;const l=Tt({actions:{}},n),c={deep:!0};let u,a,f=new Set,h=new Set,m;const g=r.state.value[e];!o&&!g&&(r.state.value[e]={}),$t({});let b;function E(U){let x;u=a=!1,typeof U=="function"?(U(r.state.value[e]),x={type:Tn.patchFunction,storeId:e,events:m}):(vs(r.state.value[e],U),x={type:Tn.patchObject,payload:U,storeId:e,events:m});const $=b=Symbol();$s().then(()=>{b===$&&(u=!0)}),a=!0,Xt(f,x,r.state.value[e])}const C=o?function(){const{state:x}=n,$=x?x():{};this.$patch(Y=>{Tt(Y,$)})}:Ql;function T(){i.stop(),f.clear(),h.clear(),r._s.delete(e)}const N=(U,x="")=>{if(Go in U)return U[Zr]=x,U;const $=function(){Dr(r);const Y=Array.from(arguments),L=new Set,Q=new Set;function le(z){L.add(z)}function we(z){Q.add(z)}Xt(h,{args:Y,name:$[Zr],store:B,after:le,onError:we});let ee;try{ee=U.apply(this&&this.$id===e?this:B,Y)}catch(z){throw Xt(Q,z),z}return ee instanceof Promise?ee.then(z=>(Xt(L,z),z)).catch(z=>(Xt(Q,z),Promise.reject(z))):(Xt(L,ee),ee)};return $[Go]=!0,$[Zr]=x,$},O={_p:r,$id:e,$onAction:Wo.bind(null,h),$patch:E,$reset:C,$subscribe(U,x={}){const $=Wo(f,U,x.detached,()=>Y()),Y=i.run(()=>Sn(()=>r.state.value[e],L=>{(x.flush==="sync"?a:u)&&U({storeId:e,type:Tn.direct,events:m},L)},Tt({},c,x)));return $},$dispose:T},B=fn(O);r._s.set(e,B);const j=(r._a&&r._a.runWithContext||vf)(()=>r._e.run(()=>(i=Bi()).run(()=>t({action:N}))));for(const U in j){const x=j[U];if(de(x)&&!Rf(x)||ft(x))o||(g&&Af(x)&&(de(x)?x.value=g[U]:vs(x,g[U])),r.state.value[e][U]=x);else if(typeof x=="function"){const $=N(x,U);j[U]=$,l.actions[U]=x}}return Tt(B,j),Tt(re(B),j),Object.defineProperty(B,"$state",{get:()=>r.state.value[e],set:U=>{E(x=>{Tt(x,U)})}}),r._p.forEach(U=>{Tt(B,i.run(()=>U({store:B,app:r._a,pinia:r,options:l})))}),g&&o&&n.hydrate&&n.hydrate(B.$state,g),u=!0,a=!0,B}function xf(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,l){const c=Oa();return i=i||(c?Ke(Xl,null):null),i&&Dr(i),i=Jl,i._s.has(e)||(s?Yl(e,t,r,i):Cf(e,r,i)),i._s.get(e)}return o.$id=e,o}function Ip(e){const t=re(e),n={};for(const r in t){const s=t[r];s.effect?n[r]=Be({get:()=>e[r],set(o){e[r]=o}}):(de(s)||ft(s))&&(n[r]=wa(e,r))}return n}const Tf="modulepreload",Of=function(e){return"/"+e},zo={},ot=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let c=function(u){return Promise.all(u.map(a=>Promise.resolve(a).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=c(n.map(u=>{if(u=Of(u),u in zo)return;zo[u]=!0;const a=u.endsWith(".css"),f=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const h=document.createElement("link");if(h.rel=a?"stylesheet":Tf,a||(h.as="script"),h.crossOrigin="",h.href=u,l&&h.setAttribute("nonce",l),document.head.appendChild(h),a)return new Promise((m,g)=>{h.addEventListener("load",m),h.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})};const en=typeof document<"u";function Zl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Pf(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Zl(e.default)}const se=Object.assign;function es(e,t){const n={};for(const r in t){const s=t[r];n[r]=Xe(s)?s.map(e):e(s)}return n}const On=()=>{},Xe=Array.isArray;function Jo(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const ec=/#/g,Nf=/&/g,If=/\//g,Lf=/=/g,Df=/\?/g,tc=/\+/g,Ff=/%5B/g,Mf=/%5D/g,nc=/%5E/g,kf=/%60/g,rc=/%7B/g,Bf=/%7C/g,sc=/%7D/g,Uf=/%20/g;function Xs(e){return e==null?"":encodeURI(""+e).replace(Bf,"|").replace(Ff,"[").replace(Mf,"]")}function jf(e){return Xs(e).replace(rc,"{").replace(sc,"}").replace(nc,"^")}function Ss(e){return Xs(e).replace(tc,"%2B").replace(Uf,"+").replace(ec,"%23").replace(Nf,"%26").replace(kf,"`").replace(rc,"{").replace(sc,"}").replace(nc,"^")}function Hf(e){return Ss(e).replace(Lf,"%3D")}function Vf(e){return Xs(e).replace(ec,"%23").replace(Df,"%3F")}function $f(e){return Vf(e).replace(If,"%2F")}function Un(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const qf=/\/$/,Kf=e=>e.replace(qf,"");function ts(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return c=l>=0&&c>l?-1:c,c>=0&&(r=t.slice(0,c),o=t.slice(c,l>0?l:t.length),s=e(o.slice(1))),l>=0&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=Jf(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:Un(i)}}function Wf(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Xo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Gf(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&cn(t.matched[r],n.matched[s])&&oc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function cn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function oc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!zf(e[n],t[n]))return!1;return!0}function zf(e,t){return Xe(e)?Qo(e,t):Xe(t)?Qo(t,e):e?.valueOf()===t?.valueOf()}function Qo(e,t){return Xe(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function Jf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const Rt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let As=(function(e){return e.pop="pop",e.push="push",e})({}),ns=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function Xf(e){if(!e)if(en){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Kf(e)}const Qf=/^[^#]+#/;function Yf(e,t){return e.replace(Qf,"#")+t}function Zf(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const Fr=()=>({left:window.scrollX,top:window.scrollY});function ed(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=Zf(s,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 Yo(e,t){return(history.state?history.state.position-t:-1)+e}const Rs=new Map;function td(e,t){Rs.set(e,t)}function nd(e){const t=Rs.get(e);return Rs.delete(e),t}function rd(e){return typeof e=="string"||e&&typeof e=="object"}function ic(e){return typeof e=="string"||typeof e=="symbol"}let he=(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 lc=Symbol("");he.MATCHER_NOT_FOUND+"",he.NAVIGATION_GUARD_REDIRECT+"",he.NAVIGATION_ABORTED+"",he.NAVIGATION_CANCELLED+"",he.NAVIGATION_DUPLICATED+"";function an(e,t){return se(new Error,{type:e,[lc]:!0},t)}function mt(e,t){return e instanceof Error&&lc in e&&(t==null||!!(e.type&t))}const sd=["params","query","hash"];function od(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 id(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&Ss(s)):[r&&Ss(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function ld(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=Xe(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const cd=Symbol(""),ei=Symbol(""),Mr=Symbol(""),Qs=Symbol(""),Cs=Symbol("");function yn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function It(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,c)=>{const u=h=>{h===!1?c(an(he.NAVIGATION_ABORTED,{from:n,to:t})):h instanceof Error?c(h):rd(h)?c(an(he.NAVIGATION_GUARD_REDIRECT,{from:t,to:h})):(i&&r.enterCallbacks[s]===i&&typeof h=="function"&&i.push(h),l())},a=o(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(a);e.length<3&&(f=f.then(u)),f.catch(h=>c(h))})}function rs(e,t,n,r,s=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(Zl(c)){const u=(c.__vccOpts||c)[t];u&&o.push(It(u,n,r,i,l,s))}else{let u=c();o.push(()=>u.then(a=>{if(!a)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=Pf(a)?a.default:a;i.mods[l]=a,i.components[l]=f;const h=(f.__vccOpts||f)[t];return h&&It(h,n,r,i,l,s)()}))}}return o}function ad(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;icn(u,l))?r.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(u=>cn(u,c))||s.push(c))}return[n,r,s]}let ud=()=>location.protocol+"//"+location.host;function cc(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(i);return l[0]!=="/"&&(l="/"+l),Xo(l,"")}return Xo(n,e)+r+s}function fd(e,t,n,r){let s=[],o=[],i=null;const l=({state:h})=>{const m=cc(e,location),g=n.value,b=t.value;let E=0;if(h){if(n.value=m,t.value=h,i&&i===g){i=null;return}E=b?h.position-b.position:0}else r(m);s.forEach(C=>{C(n.value,g,{delta:E,type:As.pop,direction:E?E>0?ns.forward:ns.back:ns.unknown})})};function c(){i=n.value}function u(h){s.push(h);const m=()=>{const g=s.indexOf(h);g>-1&&s.splice(g,1)};return o.push(m),m}function a(){if(document.visibilityState==="hidden"){const{history:h}=window;if(!h.state)return;h.replaceState(se({},h.state,{scroll:Fr()}),"")}}function f(){for(const h of o)h();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 ti(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?Fr():null}}function dd(e){const{history:t,location:n}=window,r={value:cc(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(c,u,a){const f=e.indexOf("#"),h=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+c:ud()+e+c;try{t[a?"replaceState":"pushState"](u,"",h),s.value=u}catch(m){console.error(m),n[a?"replace":"assign"](h)}}function i(c,u){o(c,se({},t.state,ti(s.value.back,c,s.value.forward,!0),u,{position:s.value.position}),!0),r.value=c}function l(c,u){const a=se({},s.value,t.state,{forward:c,scroll:Fr()});o(a.current,a,!0),o(c,se({},ti(r.value,c,null),{position:a.position+1},u),!1),r.value=c}return{location:r,state:s,push:l,replace:i}}function hd(e){e=Xf(e);const t=dd(e),n=fd(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=se({location:"",base:e,go:r,createHref:Yf.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function pd(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),hd(e)}let jt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var _e=(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})(_e||{});const md={type:jt.Static,value:""},gd=/[a-zA-Z0-9_]/;function yd(e){if(!e)return[[]];if(e==="/")return[[md]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${u}": ${m}`)}let n=_e.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,c,u="",a="";function f(){u&&(n===_e.Static?o.push({type:jt.Static,value:u}):n===_e.Param||n===_e.ParamRegExp||n===_e.ParamRegExpEnd?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:jt.Param,value:u,regexp:a,repeatable:c==="*"||c==="+",optional:c==="*"||c==="?"})):t("Invalid state to consume buffer"),u="")}function h(){u+=c}for(;lt.length?t.length===1&&t[0]===Oe.Static+Oe.Segment?1:-1:0}function ac(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const vd={strict:!1,end:!0,sensitive:!1};function Sd(e,t,n){const r=Ed(yd(e.path),n),s=se(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function Ad(e,t){const n=[],r=new Map;t=Jo(vd,t);function s(f){return r.get(f)}function o(f,h,m){const g=!m,b=oi(f);b.aliasOf=m&&m.record;const E=Jo(t,f),C=[b];if("alias"in f){const O=typeof f.alias=="string"?[f.alias]:f.alias;for(const B of O)C.push(oi(se({},b,{components:m?m.record.components:b.components,path:B,aliasOf:m?m.record:b})))}let T,N;for(const O of C){const{path:B}=O;if(h&&B[0]!=="/"){const G=h.record.path,j=G[G.length-1]==="/"?"":"/";O.path=h.record.path+(B&&j+B)}if(T=Sd(O,h,E),m?m.alias.push(T):(N=N||T,N!==T&&N.alias.push(T),g&&f.name&&!ii(T)&&i(f.name)),uc(T)&&c(T),b.children){const G=b.children;for(let j=0;j{i(N)}:On}function i(f){if(ic(f)){const h=r.get(f);h&&(r.delete(f),n.splice(n.indexOf(h),1),h.children.forEach(i),h.alias.forEach(i))}else{const h=n.indexOf(f);h>-1&&(n.splice(h,1),f.record.name&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function c(f){const h=xd(f,n);n.splice(h,0,f),f.record.name&&!ii(f)&&r.set(f.record.name,f)}function u(f,h){let m,g={},b,E;if("name"in f&&f.name){if(m=r.get(f.name),!m)throw an(he.MATCHER_NOT_FOUND,{location:f});E=m.record.name,g=se(si(h.params,m.keys.filter(N=>!N.optional).concat(m.parent?m.parent.keys.filter(N=>N.optional):[]).map(N=>N.name)),f.params&&si(f.params,m.keys.map(N=>N.name))),b=m.stringify(g)}else if(f.path!=null)b=f.path,m=n.find(N=>N.re.test(b)),m&&(g=m.parse(b),E=m.record.name);else{if(m=h.name?r.get(h.name):n.find(N=>N.re.test(h.path)),!m)throw an(he.MATCHER_NOT_FOUND,{location:f,currentLocation:h});E=m.record.name,g=se({},h.params,f.params),b=m.stringify(g)}const C=[];let T=m;for(;T;)C.unshift(T.record),T=T.parent;return{name:E,path:b,params:g,matched:C,meta:Cd(C)}}e.forEach(f=>o(f));function a(){n.length=0,r.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:a,getRoutes:l,getRecordMatcher:s}}function si(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function oi(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Rd(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 Rd(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function ii(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Cd(e){return e.reduce((t,n)=>se(t,n.meta),{})}function xd(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;ac(e,t[o])<0?r=o:n=o+1}const s=Td(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function Td(e){let t=e;for(;t=t.parent;)if(uc(t)&&ac(e,t)===0)return t}function uc({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function li(e){const t=Ke(Mr),n=Ke(Qs),r=Be(()=>{const c=dt(e.to);return t.resolve(c)}),s=Be(()=>{const{matched:c}=r.value,{length:u}=c,a=c[u-1],f=n.matched;if(!a||!f.length)return-1;const h=f.findIndex(cn.bind(null,a));if(h>-1)return h;const m=ci(c[u-2]);return u>1&&ci(a)===m&&f[f.length-1].path!==m?f.findIndex(cn.bind(null,c[u-2])):h}),o=Be(()=>s.value>-1&&Ld(n.params,r.value.params)),i=Be(()=>s.value>-1&&s.value===n.matched.length-1&&oc(n.params,r.value.params));function l(c={}){if(Id(c)){const u=t[dt(e.replace)?"replace":"push"](dt(e.to)).catch(On);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Be(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function Od(e){return e.length===1?e[0]:e}const Pd=Or({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:li,setup(e,{slots:t}){const n=fn(li(e)),{options:r}=Ke(Mr),s=Be(()=>({[ai(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[ai(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&Od(t.default(n));return e.custom?o:$l("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),Nd=Pd;function Id(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 Ld(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!Xe(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function ci(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const ai=(e,t,n)=>e??t??n,Dd=Or({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=Ke(Cs),s=Be(()=>e.route||r.value),o=Ke(ei,0),i=Be(()=>{let u=dt(o);const{matched:a}=s.value;let f;for(;(f=a[u])&&!f.components;)u++;return u}),l=Be(()=>s.value.matched[i.value]);tr(ei,Be(()=>i.value+1)),tr(cd,l),tr(Cs,s);const c=$t();return Sn(()=>[c.value,l.value,e.name],([u,a,f],[h,m,g])=>{a&&(a.instances[f]=u,m&&m!==a&&u&&u===h&&(a.leaveGuards.size||(a.leaveGuards=m.leaveGuards),a.updateGuards.size||(a.updateGuards=m.updateGuards))),u&&a&&(!m||!cn(a,m)||!h)&&(a.enterCallbacks[f]||[]).forEach(b=>b(u))},{flush:"post"}),()=>{const u=s.value,a=e.name,f=l.value,h=f&&f.components[a];if(!h)return ui(n.default,{Component:h,route:u});const m=f.props[a],g=m?m===!0?u.params:typeof m=="function"?m(u):m:null,E=$l(h,se({},g,t,{onVnodeUnmounted:C=>{C.component.isUnmounted&&(f.instances[a]=null)},ref:c}));return ui(n.default,{Component:E,route:u})||E}}});function ui(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const fc=Dd;function Fd(e){const t=Ad(e.routes,e),n=e.parseQuery||id,r=e.stringifyQuery||Zo,s=e.history,o=yn(),i=yn(),l=yn(),c=ma(Rt);let u=Rt;en&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const a=es.bind(null,S=>""+S),f=es.bind(null,$f),h=es.bind(null,Un);function m(S,k){let F,H;return ic(S)?(F=t.getRecordMatcher(S),H=k):H=S,t.addRoute(H,F)}function g(S){const k=t.getRecordMatcher(S);k&&t.removeRoute(k)}function b(){return t.getRoutes().map(S=>S.record)}function E(S){return!!t.getRecordMatcher(S)}function C(S,k){if(k=se({},k||c.value),typeof S=="string"){const y=ts(n,S,k.path),w=t.resolve({path:y.path},k),A=s.createHref(y.fullPath);return se(y,w,{params:h(w.params),hash:Un(y.hash),redirectedFrom:void 0,href:A})}let F;if(S.path!=null)F=se({},S,{path:ts(n,S.path,k.path).path});else{const y=se({},S.params);for(const w in y)y[w]==null&&delete y[w];F=se({},S,{params:f(y)}),k.params=f(k.params)}const H=t.resolve(F,k),te=S.hash||"";H.params=a(h(H.params));const d=Wf(r,se({},S,{hash:jf(te),path:H.path})),p=s.createHref(d);return se({fullPath:d,hash:te,query:r===Zo?ld(S.query):S.query||{}},H,{redirectedFrom:void 0,href:p})}function T(S){return typeof S=="string"?ts(n,S,c.value.path):se({},S)}function N(S,k){if(u!==S)return an(he.NAVIGATION_CANCELLED,{from:k,to:S})}function O(S){return j(S)}function B(S){return O(se(T(S),{replace:!0}))}function G(S,k){const F=S.matched[S.matched.length-1];if(F&&F.redirect){const{redirect:H}=F;let te=typeof H=="function"?H(S,k):H;return typeof te=="string"&&(te=te.includes("?")||te.includes("#")?te=T(te):{path:te},te.params={}),se({query:S.query,hash:S.hash,params:te.path!=null?{}:S.params},te)}}function j(S,k){const F=u=C(S),H=c.value,te=S.state,d=S.force,p=S.replace===!0,y=G(F,H);if(y)return j(se(T(y),{state:typeof y=="object"?se({},te,y.state):te,force:d,replace:p}),k||F);const w=F;w.redirectedFrom=k;let A;return!d&&Gf(r,H,F)&&(A=an(he.NAVIGATION_DUPLICATED,{to:w,from:H}),ye(H,H,!0,!1)),(A?Promise.resolve(A):$(w,H)).catch(v=>mt(v)?mt(v,he.NAVIGATION_GUARD_REDIRECT)?v:Ye(v):Z(v,w,H)).then(v=>{if(v){if(mt(v,he.NAVIGATION_GUARD_REDIRECT))return j(se({replace:p},T(v.to),{state:typeof v.to=="object"?se({},te,v.to.state):te,force:d}),k||w)}else v=L(w,H,!0,p,te);return Y(w,H,v),v})}function U(S,k){const F=N(S,k);return F?Promise.reject(F):Promise.resolve()}function x(S){const k=We.values().next().value;return k&&typeof k.runWithContext=="function"?k.runWithContext(S):S()}function $(S,k){let F;const[H,te,d]=ad(S,k);F=rs(H.reverse(),"beforeRouteLeave",S,k);for(const y of H)y.leaveGuards.forEach(w=>{F.push(It(w,S,k))});const p=U.bind(null,S,k);return F.push(p),Ve(F).then(()=>{F=[];for(const y of o.list())F.push(It(y,S,k));return F.push(p),Ve(F)}).then(()=>{F=rs(te,"beforeRouteUpdate",S,k);for(const y of te)y.updateGuards.forEach(w=>{F.push(It(w,S,k))});return F.push(p),Ve(F)}).then(()=>{F=[];for(const y of d)if(y.beforeEnter)if(Xe(y.beforeEnter))for(const w of y.beforeEnter)F.push(It(w,S,k));else F.push(It(y.beforeEnter,S,k));return F.push(p),Ve(F)}).then(()=>(S.matched.forEach(y=>y.enterCallbacks={}),F=rs(d,"beforeRouteEnter",S,k,x),F.push(p),Ve(F))).then(()=>{F=[];for(const y of i.list())F.push(It(y,S,k));return F.push(p),Ve(F)}).catch(y=>mt(y,he.NAVIGATION_CANCELLED)?y:Promise.reject(y))}function Y(S,k,F){l.list().forEach(H=>x(()=>H(S,k,F)))}function L(S,k,F,H,te){const d=N(S,k);if(d)return d;const p=k===Rt,y=en?history.state:{};F&&(H||p?s.replace(S.fullPath,se({scroll:p&&y&&y.scroll},te)):s.push(S.fullPath,te)),c.value=S,ye(S,k,F,p),Ye()}let Q;function le(){Q||(Q=s.listen((S,k,F)=>{if(!et.listening)return;const H=C(S),te=G(H,et.currentRoute.value);if(te){j(se(te,{replace:!0,force:!0}),H).catch(On);return}u=H;const d=c.value;en&&td(Yo(d.fullPath,F.delta),Fr()),$(H,d).catch(p=>mt(p,he.NAVIGATION_ABORTED|he.NAVIGATION_CANCELLED)?p:mt(p,he.NAVIGATION_GUARD_REDIRECT)?(j(se(T(p.to),{force:!0}),H).then(y=>{mt(y,he.NAVIGATION_ABORTED|he.NAVIGATION_DUPLICATED)&&!F.delta&&F.type===As.pop&&s.go(-1,!1)}).catch(On),Promise.reject()):(F.delta&&s.go(-F.delta,!1),Z(p,H,d))).then(p=>{p=p||L(H,d,!1),p&&(F.delta&&!mt(p,he.NAVIGATION_CANCELLED)?s.go(-F.delta,!1):F.type===As.pop&&mt(p,he.NAVIGATION_ABORTED|he.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),Y(H,d,p)}).catch(On)}))}let we=yn(),ee=yn(),z;function Z(S,k,F){Ye(S);const H=ee.list();return H.length?H.forEach(te=>te(S,k,F)):console.error(S),Promise.reject(S)}function He(){return z&&c.value!==Rt?Promise.resolve():new Promise((S,k)=>{we.add([S,k])})}function Ye(S){return z||(z=!S,le(),we.list().forEach(([k,F])=>S?F(S):k()),we.reset()),S}function ye(S,k,F,H){const{scrollBehavior:te}=e;if(!en||!te)return Promise.resolve();const d=!F&&nd(Yo(S.fullPath,0))||(H||!F)&&history.state&&history.state.scroll||null;return $s().then(()=>te(S,k,d)).then(p=>p&&ed(p)).catch(p=>Z(p,S,k))}const me=S=>s.go(S);let Ze;const We=new Set,et={currentRoute:c,listening:!0,addRoute:m,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:E,getRoutes:b,resolve:C,options:e,push:O,replace:B,go:me,back:()=>me(-1),forward:()=>me(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:ee.add,isReady:He,install(S){S.component("RouterLink",Nd),S.component("RouterView",fc),S.config.globalProperties.$router=et,Object.defineProperty(S.config.globalProperties,"$route",{enumerable:!0,get:()=>dt(c)}),en&&!Ze&&c.value===Rt&&(Ze=!0,O(s.location).catch(H=>{}));const k={};for(const H in Rt)Object.defineProperty(k,H,{get:()=>c.value[H],enumerable:!0});S.provide(Mr,et),S.provide(Qs,el(k)),S.provide(Cs,c);const F=S.unmount;We.add(S),S.unmount=function(){We.delete(S),We.size<1&&(u=Rt,Q&&Q(),Q=null,c.value=Rt,Ze=!1,z=!1),F()}}};function Ve(S){return S.reduce((k,F)=>k.then(()=>x(F)),Promise.resolve())}return et}function Lp(){return Ke(Mr)}function Dp(e){return Ke(Qs)}function dc(e,t){return function(){return e.apply(t,arguments)}}const{toString:Md}=Object.prototype,{getPrototypeOf:Ys}=Object,{iterator:kr,toStringTag:hc}=Symbol,Br=(e=>t=>{const n=Md.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Qe=e=>(e=e.toLowerCase(),t=>Br(t)===e),Ur=e=>t=>typeof t===e,{isArray:dn}=Array,un=Ur("undefined");function Vn(e){return e!==null&&!un(e)&&e.constructor!==null&&!un(e.constructor)&&De(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const pc=Qe("ArrayBuffer");function kd(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&pc(e.buffer),t}const Bd=Ur("string"),De=Ur("function"),mc=Ur("number"),$n=e=>e!==null&&typeof e=="object",Ud=e=>e===!0||e===!1,ir=e=>{if(Br(e)!=="object")return!1;const t=Ys(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(hc in e)&&!(kr in e)},jd=e=>{if(!$n(e)||Vn(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},Hd=Qe("Date"),Vd=Qe("File"),$d=Qe("Blob"),qd=Qe("FileList"),Kd=e=>$n(e)&&De(e.pipe),Wd=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||De(e.append)&&((t=Br(e))==="formdata"||t==="object"&&De(e.toString)&&e.toString()==="[object FormData]"))},Gd=Qe("URLSearchParams"),[zd,Jd,Xd,Qd]=["ReadableStream","Request","Response","Headers"].map(Qe),Yd=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function qn(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),dn(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const Ht=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,yc=e=>!un(e)&&e!==Ht;function xs(){const{caseless:e,skipUndefined:t}=yc(this)&&this||{},n={},r=(s,o)=>{const i=e&&gc(n,o)||o;ir(n[i])&&ir(s)?n[i]=xs(n[i],s):ir(s)?n[i]=xs({},s):dn(s)?n[i]=s.slice():(!t||!un(s))&&(n[i]=s)};for(let s=0,o=arguments.length;s(qn(t,(s,o)=>{n&&De(s)?e[o]=dc(s,n):e[o]=s},{allOwnKeys:r}),e),eh=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),th=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},nh=(e,t,n,r)=>{let s,o,i;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&Ys(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},rh=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},sh=e=>{if(!e)return null;if(dn(e))return e;let t=e.length;if(!mc(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},oh=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Ys(Uint8Array)),ih=(e,t)=>{const r=(e&&e[kr]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},lh=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},ch=Qe("HTMLFormElement"),ah=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),fi=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),uh=Qe("RegExp"),_c=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};qn(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},fh=e=>{_c(e,(t,n)=>{if(De(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(De(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},dh=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return dn(e)?r(e):r(String(e).split(t)),n},hh=()=>{},ph=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function mh(e){return!!(e&&De(e.append)&&e[hc]==="FormData"&&e[kr])}const gh=e=>{const t=new Array(10),n=(r,s)=>{if($n(r)){if(t.indexOf(r)>=0)return;if(Vn(r))return r;if(!("toJSON"in r)){t[s]=r;const o=dn(r)?[]:{};return qn(r,(i,l)=>{const c=n(i,s+1);!un(c)&&(o[l]=c)}),t[s]=void 0,o}}return r};return n(e,0)},yh=Qe("AsyncFunction"),_h=e=>e&&($n(e)||De(e))&&De(e.then)&&De(e.catch),bc=((e,t)=>e?setImmediate:t?((n,r)=>(Ht.addEventListener("message",({source:s,data:o})=>{s===Ht&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),Ht.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",De(Ht.postMessage)),bh=typeof queueMicrotask<"u"?queueMicrotask.bind(Ht):typeof process<"u"&&process.nextTick||bc,Eh=e=>e!=null&&De(e[kr]),_={isArray:dn,isArrayBuffer:pc,isBuffer:Vn,isFormData:Wd,isArrayBufferView:kd,isString:Bd,isNumber:mc,isBoolean:Ud,isObject:$n,isPlainObject:ir,isEmptyObject:jd,isReadableStream:zd,isRequest:Jd,isResponse:Xd,isHeaders:Qd,isUndefined:un,isDate:Hd,isFile:Vd,isBlob:$d,isRegExp:uh,isFunction:De,isStream:Kd,isURLSearchParams:Gd,isTypedArray:oh,isFileList:qd,forEach:qn,merge:xs,extend:Zd,trim:Yd,stripBOM:eh,inherits:th,toFlatObject:nh,kindOf:Br,kindOfTest:Qe,endsWith:rh,toArray:sh,forEachEntry:ih,matchAll:lh,isHTMLForm:ch,hasOwnProperty:fi,hasOwnProp:fi,reduceDescriptors:_c,freezeMethods:fh,toObjectSet:dh,toCamelCase:ah,noop:hh,toFiniteNumber:ph,findKey:gc,global:Ht,isContextDefined:yc,isSpecCompliantForm:mh,toJSONObject:gh,isAsyncFn:yh,isThenable:_h,setImmediate:bc,asap:bh,isIterable:Eh};function X(e,t,n,r,s){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),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}_.inherits(X,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:_.toJSONObject(this.config),code:this.code,status:this.status}}});const Ec=X.prototype,wc={};["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=>{wc[e]={value:e}});Object.defineProperties(X,wc);Object.defineProperty(Ec,"isAxiosError",{value:!0});X.from=(e,t,n,r,s,o)=>{const i=Object.create(Ec);_.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 X.call(i,l,c,n,r,s),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 wh=null;function Ts(e){return _.isPlainObject(e)||_.isArray(e)}function vc(e){return _.endsWith(e,"[]")?e.slice(0,-2):e}function di(e,t,n){return e?e.concat(t).map(function(s,o){return s=vc(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function vh(e){return _.isArray(e)&&!e.some(Ts)}const Sh=_.toFlatObject(_,{},null,function(t){return/^is[A-Z]/.test(t)});function jr(e,t,n){if(!_.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=_.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(b,E){return!_.isUndefined(E[b])});const r=n.metaTokens,s=n.visitor||a,o=n.dots,i=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&_.isSpecCompliantForm(t);if(!_.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(_.isDate(g))return g.toISOString();if(_.isBoolean(g))return g.toString();if(!c&&_.isBlob(g))throw new X("Blob is not supported. Use a Buffer instead.");return _.isArrayBuffer(g)||_.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function a(g,b,E){let C=g;if(g&&!E&&typeof g=="object"){if(_.endsWith(b,"{}"))b=r?b:b.slice(0,-2),g=JSON.stringify(g);else if(_.isArray(g)&&vh(g)||(_.isFileList(g)||_.endsWith(b,"[]"))&&(C=_.toArray(g)))return b=vc(b),C.forEach(function(N,O){!(_.isUndefined(N)||N===null)&&t.append(i===!0?di([b],O,o):i===null?b:b+"[]",u(N))}),!1}return Ts(g)?!0:(t.append(di(E,b,o),u(g)),!1)}const f=[],h=Object.assign(Sh,{defaultVisitor:a,convertValue:u,isVisitable:Ts});function m(g,b){if(!_.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+b.join("."));f.push(g),_.forEach(g,function(C,T){(!(_.isUndefined(C)||C===null)&&s.call(t,C,_.isString(T)?T.trim():T,b,h))===!0&&m(C,b?b.concat(T):[T])}),f.pop()}}if(!_.isObject(e))throw new TypeError("data must be an object");return m(e),t}function hi(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Zs(e,t){this._pairs=[],e&&jr(e,this,t)}const Sc=Zs.prototype;Sc.append=function(t,n){this._pairs.push([t,n])};Sc.toString=function(t){const n=t?function(r){return t.call(this,r,hi)}:hi;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Ah(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Ac(e,t,n){if(!t)return e;const r=n&&n.encode||Ah;_.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=_.isURLSearchParams(t)?t.toString():new Zs(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class pi{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){_.forEach(this.handlers,function(r){r!==null&&t(r)})}}const Rc={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Rh=typeof URLSearchParams<"u"?URLSearchParams:Zs,Ch=typeof FormData<"u"?FormData:null,xh=typeof Blob<"u"?Blob:null,Th={isBrowser:!0,classes:{URLSearchParams:Rh,FormData:Ch,Blob:xh},protocols:["http","https","file","blob","url","data"]},eo=typeof window<"u"&&typeof document<"u",Os=typeof navigator=="object"&&navigator||void 0,Oh=eo&&(!Os||["ReactNative","NativeScript","NS"].indexOf(Os.product)<0),Ph=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Nh=eo&&window.location.href||"http://localhost",Ih=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:eo,hasStandardBrowserEnv:Oh,hasStandardBrowserWebWorkerEnv:Ph,navigator:Os,origin:Nh},Symbol.toStringTag,{value:"Module"})),Re={...Ih,...Th};function Lh(e,t){return jr(e,new Re.classes.URLSearchParams,{visitor:function(n,r,s,o){return Re.isNode&&_.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function Dh(e){return _.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Fh(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&_.isArray(s)?s.length:i,c?(_.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!l):((!s[i]||!_.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&_.isArray(s[i])&&(s[i]=Fh(s[i])),!l)}if(_.isFormData(e)&&_.isFunction(e.entries)){const n={};return _.forEachEntry(e,(r,s)=>{t(Dh(r),s,n,0)}),n}return null}function Mh(e,t,n){if(_.isString(e))try{return(t||JSON.parse)(e),_.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Kn={transitional:Rc,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=_.isObject(t);if(o&&_.isHTMLForm(t)&&(t=new FormData(t)),_.isFormData(t))return s?JSON.stringify(Cc(t)):t;if(_.isArrayBuffer(t)||_.isBuffer(t)||_.isStream(t)||_.isFile(t)||_.isBlob(t)||_.isReadableStream(t))return t;if(_.isArrayBufferView(t))return t.buffer;if(_.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return Lh(t,this.formSerializer).toString();if((l=_.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return jr(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),Mh(t)):t}],transformResponse:[function(t){const n=this.transitional||Kn.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(_.isResponse(t)||_.isReadableStream(t))return t;if(t&&_.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(i)throw l.name==="SyntaxError"?X.from(l,X.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:Re.classes.FormData,Blob:Re.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};_.forEach(["delete","get","head","post","put","patch"],e=>{Kn.headers[e]={}});const kh=_.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"]),Bh=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&kh[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},mi=Symbol("internals");function _n(e){return e&&String(e).trim().toLowerCase()}function lr(e){return e===!1||e==null?e:_.isArray(e)?e.map(lr):String(e)}function Uh(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const jh=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function ss(e,t,n,r,s){if(_.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!_.isString(t)){if(_.isString(r))return t.indexOf(r)!==-1;if(_.isRegExp(r))return r.test(t)}}function Hh(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Vh(e,t){const n=_.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let Fe=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(l,c,u){const a=_n(c);if(!a)throw new Error("header name must be a non-empty string");const f=_.findKey(s,a);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||c]=lr(l))}const i=(l,c)=>_.forEach(l,(u,a)=>o(u,a,c));if(_.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(_.isString(t)&&(t=t.trim())&&!jh(t))i(Bh(t),n);else if(_.isObject(t)&&_.isIterable(t)){let l={},c,u;for(const a of t){if(!_.isArray(a))throw TypeError("Object iterator must return a key-value pair");l[u=a[0]]=(c=l[u])?_.isArray(c)?[...c,a[1]]:[c,a[1]]:a[1]}i(l,n)}else t!=null&&o(n,t,r);return this}get(t,n){if(t=_n(t),t){const r=_.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return Uh(s);if(_.isFunction(n))return n.call(this,s,r);if(_.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=_n(t),t){const r=_.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||ss(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=_n(i),i){const l=_.findKey(r,i);l&&(!n||ss(r,r[l],l,n))&&(delete r[l],s=!0)}}return _.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||ss(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return _.forEach(this,(s,o)=>{const i=_.findKey(r,o);if(i){n[i]=lr(s),delete n[o];return}const l=t?Hh(o):String(o).trim();l!==o&&delete n[o],n[l]=lr(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return _.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&_.isArray(r)?r.join(", "):r)}),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 r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[mi]=this[mi]={accessors:{}}).accessors,s=this.prototype;function o(i){const l=_n(i);r[l]||(Vh(s,i),r[l]=!0)}return _.isArray(t)?t.forEach(o):o(t),this}};Fe.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);_.reduceDescriptors(Fe.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});_.freezeMethods(Fe);function os(e,t){const n=this||Kn,r=t||n,s=Fe.from(r.headers);let o=r.data;return _.forEach(e,function(l){o=l.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function xc(e){return!!(e&&e.__CANCEL__)}function hn(e,t,n){X.call(this,e??"canceled",X.ERR_CANCELED,t,n),this.name="CanceledError"}_.inherits(hn,X,{__CANCEL__:!0});function Tc(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new X("Request failed with status code "+n.status,[X.ERR_BAD_REQUEST,X.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function $h(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function qh(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),a=r[o];i||(i=u),n[s]=c,r[s]=u;let f=o,h=0;for(;f!==s;)h+=n[f++],f=f%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i{n=a,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const a=Date.now(),f=a-n;f>=r?i(u,a):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-f)))},()=>s&&i(s)]}const br=(e,t,n=3)=>{let r=0;const s=qh(50,250);return Kh(o=>{const i=o.loaded,l=o.lengthComputable?o.total:void 0,c=i-r,u=s(c),a=i<=l;r=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)},gi=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},yi=e=>(...t)=>_.asap(()=>e(...t)),Wh=Re.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Re.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Re.origin),Re.navigator&&/(msie|trident)/i.test(Re.navigator.userAgent)):()=>!0,Gh=Re.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];_.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),_.isString(r)&&l.push(`path=${r}`),_.isString(s)&&l.push(`domain=${s}`),o===!0&&l.push("secure"),_.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 zh(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function Jh(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Oc(e,t,n){let r=!zh(t);return e&&(r||n==!1)?Jh(e,t):t}const _i=e=>e instanceof Fe?{...e}:e;function Gt(e,t){t=t||{};const n={};function r(u,a,f,h){return _.isPlainObject(u)&&_.isPlainObject(a)?_.merge.call({caseless:h},u,a):_.isPlainObject(a)?_.merge({},a):_.isArray(a)?a.slice():a}function s(u,a,f,h){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u,f,h)}else return r(u,a,f,h)}function o(u,a){if(!_.isUndefined(a))return r(void 0,a)}function i(u,a){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u)}else return r(void 0,a)}function l(u,a,f){if(f in t)return r(u,a);if(f in e)return r(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)=>s(_i(u),_i(a),f,!0)};return _.forEach(Object.keys({...e,...t}),function(a){const f=c[a]||s,h=f(e[a],t[a],a);_.isUndefined(h)&&f!==l||(n[a]=h)}),n}const Pc=e=>{const t=Gt({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:l}=t;if(t.headers=i=Fe.from(i),t.url=Ac(Oc(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&i.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),_.isFormData(n)){if(Re.hasStandardBrowserEnv||Re.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(_.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(Re.hasStandardBrowserEnv&&(r&&_.isFunction(r)&&(r=r(t)),r||r!==!1&&Wh(t.url))){const c=s&&o&&Gh.read(o);c&&i.set(s,c)}return t},Xh=typeof XMLHttpRequest<"u",Qh=Xh&&function(e){return new Promise(function(n,r){const s=Pc(e);let o=s.data;const i=Fe.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,a,f,h,m,g;function b(){m&&m(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(a),s.signal&&s.signal.removeEventListener("abort",a)}let E=new XMLHttpRequest;E.open(s.method.toUpperCase(),s.url,!0),E.timeout=s.timeout;function C(){if(!E)return;const N=Fe.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),B={data:!l||l==="text"||l==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:N,config:e,request:E};Tc(function(j){n(j),b()},function(j){r(j),b()},B),E=null}"onloadend"in E?E.onloadend=C:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.indexOf("file:")===0)||setTimeout(C)},E.onabort=function(){E&&(r(new X("Request aborted",X.ECONNABORTED,e,E)),E=null)},E.onerror=function(O){const B=O&&O.message?O.message:"Network Error",G=new X(B,X.ERR_NETWORK,e,E);G.event=O||null,r(G),E=null},E.ontimeout=function(){let O=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const B=s.transitional||Rc;s.timeoutErrorMessage&&(O=s.timeoutErrorMessage),r(new X(O,B.clarifyTimeoutError?X.ETIMEDOUT:X.ECONNABORTED,e,E)),E=null},o===void 0&&i.setContentType(null),"setRequestHeader"in E&&_.forEach(i.toJSON(),function(O,B){E.setRequestHeader(B,O)}),_.isUndefined(s.withCredentials)||(E.withCredentials=!!s.withCredentials),l&&l!=="json"&&(E.responseType=s.responseType),u&&([h,g]=br(u,!0),E.addEventListener("progress",h)),c&&E.upload&&([f,m]=br(c),E.upload.addEventListener("progress",f),E.upload.addEventListener("loadend",m)),(s.cancelToken||s.signal)&&(a=N=>{E&&(r(!N||N.type?new hn(null,e,E):N),E.abort(),E=null)},s.cancelToken&&s.cancelToken.subscribe(a),s.signal&&(s.signal.aborted?a():s.signal.addEventListener("abort",a)));const T=$h(s.url);if(T&&Re.protocols.indexOf(T)===-1){r(new X("Unsupported protocol "+T+":",X.ERR_BAD_REQUEST,e));return}E.send(o||null)})},Yh=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,l();const a=u instanceof Error?u:this.reason;r.abort(a instanceof X?a:new hn(a instanceof Error?a.message:a))}};let i=t&&setTimeout(()=>{i=null,o(new X(`timeout ${t} of ms exceeded`,X.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}=r;return c.unsubscribe=()=>_.asap(l),c}},Zh=function*(e,t){let n=e.byteLength;if(n{const s=ep(e,t);let o=0,i,l=c=>{i||(i=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:a}=await s.next();if(u){l(),c.close();return}let f=a.byteLength;if(n){let h=o+=f;n(h)}c.enqueue(new Uint8Array(a))}catch(u){throw l(u),u}},cancel(c){return l(c),s.return()}},{highWaterMark:2})},Ei=64*1024,{isFunction:Qn}=_,np=(({Request:e,Response:t})=>({Request:e,Response:t}))(_.global),{ReadableStream:wi,TextEncoder:vi}=_.global,Si=(e,...t)=>{try{return!!e(...t)}catch{return!1}},rp=e=>{e=_.merge.call({skipUndefined:!0},np,e);const{fetch:t,Request:n,Response:r}=e,s=t?Qn(t):typeof fetch=="function",o=Qn(n),i=Qn(r);if(!s)return!1;const l=s&&Qn(wi),c=s&&(typeof vi=="function"?(g=>b=>g.encode(b))(new vi):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=o&&l&&Si(()=>{let g=!1;const b=new n(Re.origin,{body:new wi,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!b}),a=i&&l&&Si(()=>_.isReadableStream(new r("").body)),f={stream:a&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(b,E)=>{let C=b&&b[g];if(C)return C.call(b);throw new X(`Response type '${g}' is not supported`,X.ERR_NOT_SUPPORT,E)})});const h=async g=>{if(g==null)return 0;if(_.isBlob(g))return g.size;if(_.isSpecCompliantForm(g))return(await new n(Re.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(_.isArrayBufferView(g)||_.isArrayBuffer(g))return g.byteLength;if(_.isURLSearchParams(g)&&(g=g+""),_.isString(g))return(await c(g)).byteLength},m=async(g,b)=>{const E=_.toFiniteNumber(g.getContentLength());return E??h(b)};return async g=>{let{url:b,method:E,data:C,signal:T,cancelToken:N,timeout:O,onDownloadProgress:B,onUploadProgress:G,responseType:j,headers:U,withCredentials:x="same-origin",fetchOptions:$}=Pc(g),Y=t||fetch;j=j?(j+"").toLowerCase():"text";let L=Yh([T,N&&N.toAbortSignal()],O),Q=null;const le=L&&L.unsubscribe&&(()=>{L.unsubscribe()});let we;try{if(G&&u&&E!=="get"&&E!=="head"&&(we=await m(U,C))!==0){let ye=new n(b,{method:"POST",body:C,duplex:"half"}),me;if(_.isFormData(C)&&(me=ye.headers.get("content-type"))&&U.setContentType(me),ye.body){const[Ze,We]=gi(we,br(yi(G)));C=bi(ye.body,Ei,Ze,We)}}_.isString(x)||(x=x?"include":"omit");const ee=o&&"credentials"in n.prototype,z={...$,signal:L,method:E.toUpperCase(),headers:U.normalize().toJSON(),body:C,duplex:"half",credentials:ee?x:void 0};Q=o&&new n(b,z);let Z=await(o?Y(Q,$):Y(b,z));const He=a&&(j==="stream"||j==="response");if(a&&(B||He&&le)){const ye={};["status","statusText","headers"].forEach(et=>{ye[et]=Z[et]});const me=_.toFiniteNumber(Z.headers.get("content-length")),[Ze,We]=B&&gi(me,br(yi(B),!0))||[];Z=new r(bi(Z.body,Ei,Ze,()=>{We&&We(),le&&le()}),ye)}j=j||"text";let Ye=await f[_.findKey(f,j)||"text"](Z,g);return!He&&le&&le(),await new Promise((ye,me)=>{Tc(ye,me,{data:Ye,headers:Fe.from(Z.headers),status:Z.status,statusText:Z.statusText,config:g,request:Q})})}catch(ee){throw le&&le(),ee&&ee.name==="TypeError"&&/Load failed|fetch/i.test(ee.message)?Object.assign(new X("Network Error",X.ERR_NETWORK,g,Q),{cause:ee.cause||ee}):X.from(ee,ee&&ee.code,g,Q)}}},sp=new Map,Nc=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,l=i,c,u,a=sp;for(;l--;)c=o[l],u=a.get(c),u===void 0&&a.set(c,u=l?new Map:rp(t)),a=u;return u};Nc();const to={http:wh,xhr:Qh,fetch:{get:Nc}};_.forEach(to,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Ai=e=>`- ${e}`,op=e=>_.isFunction(e)||e===null||e===!1;function ip(e,t){e=_.isArray(e)?e:[e];const{length:n}=e;let r,s;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(Ai).join(` +`):" "+Ai(i[0]):"as no adapter specified";throw new X("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const Ic={getAdapter:ip,adapters:to};function is(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new hn(null,e)}function Ri(e){return is(e),e.headers=Fe.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),Ic.getAdapter(e.adapter||Kn.adapter,e)(e).then(function(r){return is(e),r.data=os.call(e,e.transformResponse,r),r.headers=Fe.from(r.headers),r},function(r){return xc(r)||(is(e),r&&r.response&&(r.response.data=os.call(e,e.transformResponse,r.response),r.response.headers=Fe.from(r.response.headers))),Promise.reject(r)})}const Lc="1.13.2",Hr={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Hr[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const Ci={};Hr.transitional=function(t,n,r){function s(o,i){return"[Axios v"+Lc+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,l)=>{if(t===!1)throw new X(s(i," has been removed"+(n?" in "+n:"")),X.ERR_DEPRECATED);return n&&!Ci[i]&&(Ci[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,l):!0}};Hr.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function lp(e,t,n){if(typeof e!="object")throw new X("options must be an object",X.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const l=e[o],c=l===void 0||i(l,o,e);if(c!==!0)throw new X("option "+o+" must be "+c,X.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new X("Unknown option "+o,X.ERR_BAD_OPTION)}}const cr={assertOptions:lp,validators:Hr},it=cr.validators;let Kt=class{constructor(t){this.defaults=t||{},this.interceptors={request:new pi,response:new pi}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Gt(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&cr.assertOptions(r,{silentJSONParsing:it.transitional(it.boolean),forcedJSONParsing:it.transitional(it.boolean),clarifyTimeoutError:it.transitional(it.boolean)},!1),s!=null&&(_.isFunction(s)?n.paramsSerializer={serialize:s}:cr.assertOptions(s,{encode:it.function,serialize:it.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),cr.assertOptions(n,{baseUrl:it.spelling("baseURL"),withXsrfToken:it.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&_.merge(o.common,o[n.method]);o&&_.forEach(["delete","get","head","post","put","patch","common"],g=>{delete o[g]}),n.headers=Fe.concat(i,o);const l=[];let c=!0;this.interceptors.request.forEach(function(b){typeof b.runWhen=="function"&&b.runWhen(n)===!1||(c=c&&b.synchronous,l.unshift(b.fulfilled,b.rejected))});const u=[];this.interceptors.response.forEach(function(b){u.push(b.fulfilled,b.rejected)});let a,f=0,h;if(!c){const g=[Ri.bind(this),void 0];for(g.unshift(...l),g.push(...u),h=g.length,a=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(l=>{r.subscribe(l),o=l}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,l){r.reason||(r.reason=new hn(o,i,l),n(r.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=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new Dc(function(s){t=s}),cancel:t}}};function ap(e){return function(n){return e.apply(null,n)}}function up(e){return _.isObject(e)&&e.isAxiosError===!0}const Ps={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(Ps).forEach(([e,t])=>{Ps[t]=e});function Fc(e){const t=new Kt(e),n=dc(Kt.prototype.request,t);return _.extend(n,Kt.prototype,t,{allOwnKeys:!0}),_.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return Fc(Gt(e,s))},n}const ge=Fc(Kn);ge.Axios=Kt;ge.CanceledError=hn;ge.CancelToken=cp;ge.isCancel=xc;ge.VERSION=Lc;ge.toFormData=jr;ge.AxiosError=X;ge.Cancel=ge.CanceledError;ge.all=function(t){return Promise.all(t)};ge.spread=ap;ge.isAxiosError=up;ge.mergeConfig=Gt;ge.AxiosHeaders=Fe;ge.formToJSON=e=>Cc(_.isHTMLForm(e)?new FormData(e):e);ge.getAdapter=Ic.getAdapter;ge.HttpStatusCode=Ps;ge.default=ge;const{Axios:kp,AxiosError:Bp,CanceledError:Up,isCancel:jp,CancelToken:Hp,VERSION:Vp,all:$p,Cancel:qp,isAxiosError:Kp,spread:Wp,toFormData:Gp,AxiosHeaders:zp,HttpStatusCode:Jp,formToJSON:Xp,getAdapter:Qp,mergeConfig:Yp}=ge,Pn=ge.create({baseURL:"",timeout:3e4,withCredentials:!0});Pn.interceptors.request.use(e=>e,e=>Promise.reject(e));Pn.interceptors.response.use(e=>e.data,e=>{e.response?.status===401&&(window.location.hash="#/login");const t=e.response?.data?e.response.data.detail||e.response.data.message:e.message;return Promise.reject(new Error(t||"请求失败"))});const Yn={login:e=>{const t=new URLSearchParams;return t.append("admin_key",e.password),Pn.post("/login",t,{headers:{"Content-Type":"application/x-www-form-urlencoded"}})},logout:()=>Pn.post("/logout"),checkAuth:()=>Pn.get("/admin/health")},fp=xf("auth",()=>{const e=$t(!1),t=$t(!1),n=$t(0),r=1e4;let s=null;async function o(c){t.value=!0;try{return await Yn.login({password:c}),await Yn.checkAuth(),e.value=!0,n.value=Date.now(),!0}catch(u){throw e.value=!1,u}finally{t.value=!1}}async function i(){try{await Yn.logout()}finally{e.value=!1,n.value=0}}async function l(){const c=Date.now();if(e.value&&c-n.value(await Yn.checkAuth(),e.value=!0,!0))(),await s}catch{return e.value=!1,!1}finally{n.value=Date.now(),s=null}}return{isLoggedIn:e,isLoading:t,login:o,logout:i,checkAuth:l}}),Mc=Fd({history:pd("/"),routes:[{path:"/public/uptime",name:"public-uptime",component:()=>ot(()=>import("./PublicUptime-DJMguAzV.js"),__vite__mapDeps([0,1])),meta:{requiresAuth:!1}},{path:"/public/logs",name:"public-logs",component:()=>ot(()=>import("./PublicLogs-CpVsU1Cd.js"),[]),meta:{requiresAuth:!1}},{path:"/login",name:"login",component:()=>ot(()=>import("./Login-DT_xIWD8.js"),__vite__mapDeps([2,3])),meta:{requiresAuth:!1}},{path:"/",component:()=>ot(()=>import("./AppShell-DKPLDP3H.js"),__vite__mapDeps([4,5,6,7])),meta:{requiresAuth:!0},children:[{path:"",name:"dashboard",component:()=>ot(()=>import("./Dashboard-B7PdOyI3.js"),__vite__mapDeps([8,9]))},{path:"accounts",name:"accounts",component:()=>ot(()=>import("./Accounts-BgTEWmTn.js"),__vite__mapDeps([10,11,3,6,7,9]))},{path:"settings",name:"settings",component:()=>ot(()=>import("./Settings-CWtO-B3y.js"),__vite__mapDeps([12,5,11,3,9]))},{path:"logs",name:"logs",component:()=>ot(()=>import("./Logs-D799eTMz.js"),__vite__mapDeps([13,11,6]))},{path:"monitor",name:"monitor",component:()=>ot(()=>import("./Monitor-CcBOKS6Z.js"),__vite__mapDeps([14,1]))},{path:"docs",name:"docs",component:()=>ot(()=>import("./Docs-WMoQZyIh.js"),[])}]}]});Mc.beforeEach(async e=>{const t=fp();if(e.meta.requiresAuth&&!await t.checkAuth())return{name:"login"};if(e.name==="login"&&t.isLoggedIn)return{name:"dashboard"}});const Er=fn({toasts:[]});let dp=0;const Zn=e=>{const t=`toast-${++dp}`,n=e.duration??3e3,r={id:t,type:e.type,title:e.title,message:e.message,duration:n};return Er.toasts.push(r),n>0&&setTimeout(()=>{kc(t)},n),t},kc=e=>{const t=Er.toasts.findIndex(n=>n.id===e);t>-1&&Er.toasts.splice(t,1)},Zp=()=>({success:(e,t,n)=>Zn({type:"success",message:e,title:t,duration:n}),error:(e,t,n)=>Zn({type:"error",message:e,title:t,duration:n}),warning:(e,t,n)=>Zn({type:"warning",message:e,title:t,duration:n}),info:(e,t,n)=>Zn({type:"info",message:e,title:t,duration:n})}),hp={class:"fixed right-4 top-4 z-[200] flex flex-col gap-2"},pp={class:"flex-shrink-0"},mp={key:0,class:"h-5 w-5 text-emerald-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},gp={key:1,class:"h-5 w-5 text-rose-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},yp={key:2,class:"h-5 w-5 text-amber-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},_p={key:3,class:"h-5 w-5 text-sky-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},bp={class:"flex-1"},Ep={key:0,class:"text-sm font-medium text-foreground"},wp=["onClick"],vp=Or({__name:"Toast",setup(e){const t=Er.toasts,n=r=>{switch(r){case"success":return"border-emerald-200 bg-emerald-50";case"error":return"border-rose-200 bg-rose-50";case"warning":return"border-amber-200 bg-amber-50";default:return"border-sky-200 bg-sky-50"}};return(r,s)=>(qe(),gr(Fa,{to:"body"},[ke("div",hp,[be(cf,{name:"toast"},{default:al(()=>[(qe(!0),Ct(ve,null,Ja(dt(t),o=>(qe(),Ct("div",{key:o.id,class:Nn(["flex min-w-[320px] items-start gap-3 rounded-2xl border border-border bg-card px-4 py-3 shadow-lg",n(o.type)])},[ke("div",pp,[o.type==="success"?(qe(),Ct("svg",mp,[...s[0]||(s[0]=[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"},null,-1)])])):o.type==="error"?(qe(),Ct("svg",gp,[...s[1]||(s[1]=[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"},null,-1)])])):o.type==="warning"?(qe(),Ct("svg",yp,[...s[2]||(s[2]=[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"},null,-1)])])):(qe(),Ct("svg",_p,[...s[3]||(s[3]=[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"},null,-1)])]))]),ke("div",bp,[o.title?(qe(),Ct("p",Ep,ls(o.title),1)):Cu("",!0),ke("p",{class:Nn(["text-sm text-muted-foreground",{"mt-1":o.title}])},ls(o.message),3)]),ke("button",{class:"flex-shrink-0 text-muted-foreground transition-colors hover:text-foreground",onClick:i=>dt(kc)(o.id)},[...s[4]||(s[4]=[ke("svg",{class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])],8,wp)],2))),128))]),_:1})])]))}}),Sp=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},Ap=Sp(vp,[["__scopeId","data-v-cdd21b3c"]]),Rp=Or({__name:"App",setup(e){return(t,n)=>(qe(),Ct(ve,null,[be(dt(fc)),be(Ap)],64))}}),no=_f(Rp),Cp=wf();no.use(Cp);no.use(Mc);no.mount("#app");export{Op as A,fc as B,xf as C,Ip as D,Zp as E,ve as F,$s as G,Tp as H,fn as I,Nd as R,Fa as T,ke as a,Cu as b,Ct as c,Or as d,qe as e,Ru as f,Pn as g,$t as h,Be as i,wl as j,Fs as k,fp as l,gr as m,Nn as n,bl as o,be as p,xp as q,Ja as r,al as s,ls as t,dt as u,Pp as v,Np as w,Lp as x,Dp as y,Sn as z}; diff --git a/static/assets/index-B_NE-u09.css b/static/assets/index-B_NE-u09.css new file mode 100644 index 0000000000000000000000000000000000000000..e408ee87b81010c33d0b2b479fb5003d65f1bd88 --- /dev/null +++ b/static/assets/index-B_NE-u09.css @@ -0,0 +1 @@ +@import"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=Noto+Serif+SC:wght@600;700&display=swap";*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 97%;--foreground: 0 0% 10%;--card: 0 0% 100%;--card-foreground: 0 0% 10%;--primary: 0 0% 10%;--primary-foreground: 0 0% 100%;--secondary: 0 0% 92%;--secondary-foreground: 0 0% 10%;--muted: 0 0% 92%;--muted-foreground: 0 0% 40%;--accent: 0 0% 90%;--accent-foreground: 0 0% 10%;--destructive: 0 70% 45%;--destructive-foreground: 0 0% 100%;--border: 0 0% 86%;--input: 0 0% 86%;--ring: 0 0% 10%;--radius: 1rem}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:Noto Sans SC,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;overflow-x:hidden;background-image:radial-gradient(900px circle at 10% -20%,rgba(0,0,0,.04),transparent 45%),radial-gradient(700px circle at 90% 0%,rgba(0,0,0,.05),transparent 40%),linear-gradient(180deg,hsl(var(--background)) 0% 100%)}body:before{content:"";position:fixed;inset:0;background-image:linear-gradient(120deg,#ffffff8c,#fff0);opacity:.5;pointer-events:none;z-index:-1}h1,h2,h3{font-family:"Noto Serif SC",Georgia,serif;letter-spacing:-.01em}#app{min-height:100vh}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-y-0{top:0;bottom:0}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.top-full{top:100%}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[9999\]{z-index:9999}.col-span-2{grid-column:span 2 / span 2}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0{height:0px}.h-10{height:2.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-\[80vh\]{height:80vh}.h-full{height:100%}.max-h-\[60vh\]{max-height:60vh}.min-h-0{min-height:0px}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-10{width:2.5rem}.w-2{width:.5rem}.w-20{width:5rem}.w-24{width:6rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-44{width:11rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[200px\]{min-width:200px}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-not-allowed{cursor:not-allowed}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-1{row-gap:.25rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-visible{overflow-y:visible}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[2\.5rem\]{border-radius:2.5rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-x-4{border-left-width:4px;border-right-width:4px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-4{border-top-width:4px}.border-border{border-color:hsl(var(--border))}.border-border\/60{border-color:hsl(var(--border) / .6)}.border-destructive\/30{border-color:hsl(var(--destructive) / .3)}.border-input{border-color:hsl(var(--input))}.border-primary-foreground\/40{border-color:hsl(var(--primary-foreground) / .4)}.border-x-transparent{border-left-color:transparent;border-right-color:transparent}.border-t-foreground{border-top-color:hsl(var(--foreground))}.bg-accent{background-color:hsl(var(--accent))}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-200{--tw-bg-opacity: 1;background-color:rgb(253 230 138 / var(--tw-bg-opacity, 1))}.bg-amber-300{--tw-bg-opacity: 1;background-color:rgb(252 211 77 / var(--tw-bg-opacity, 1))}.bg-amber-400{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-black\/20{background-color:#0003}.bg-black\/30{background-color:#0000004d}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-card{background-color:hsl(var(--card))}.bg-card\/70{background-color:hsl(var(--card) / .7)}.bg-card\/90{background-color:hsl(var(--card) / .9)}.bg-cyan-100{--tw-bg-opacity: 1;background-color:rgb(207 250 254 / var(--tw-bg-opacity, 1))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-400{--tw-bg-opacity: 1;background-color:rgb(52 211 153 / var(--tw-bg-opacity, 1))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground{background-color:hsl(var(--muted-foreground))}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/70{background-color:hsl(var(--muted) / .7)}.bg-primary{background-color:hsl(var(--primary))}.bg-primary-foreground\/15{background-color:hsl(var(--primary-foreground) / .15)}.bg-rose-100{--tw-bg-opacity: 1;background-color:rgb(255 228 230 / var(--tw-bg-opacity, 1))}.bg-rose-500{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity, 1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/30{background-color:hsl(var(--secondary) / .3)}.bg-secondary\/40{background-color:hsl(var(--secondary) / .4)}.bg-secondary\/50{background-color:hsl(var(--secondary) / .5)}.bg-secondary\/60{background-color:hsl(var(--secondary) / .6)}.bg-sky-400{--tw-bg-opacity: 1;background-color:rgb(56 189 248 / var(--tw-bg-opacity, 1))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-violet-100{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.object-contain{-o-object-fit:contain;object-fit:contain}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-10{padding-bottom:2.5rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pl-3{padding-left:.75rem}.pr-1{padding-right:.25rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.tracking-\[0\.12em\]{letter-spacing:.12em}.tracking-\[0\.28em\]{letter-spacing:.28em}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-\[0\.3em\]{letter-spacing:.3em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-background{color:hsl(var(--background))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-cyan-700{--tw-text-opacity: 1;color:rgb(14 116 144 / var(--tw-text-opacity, 1))}.text-destructive{color:hsl(var(--destructive))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-violet-700{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.opacity-0{opacity:0}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-black\/10{--tw-shadow-color: rgb(0 0 0 / .1);--tw-shadow: var(--tw-shadow-colored)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-\[transform\]{will-change:transform}html{scrollbar-gutter:stable}*{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.35) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:#00000059;border-radius:999px;border:2px solid transparent;background-clip:content-box}.scrollbar-slim::-webkit-scrollbar{width:6px;height:6px}.scrollbar-slim::-webkit-scrollbar-thumb{background-color:#0006}.cv-auto{content-visibility:auto;contain-intrinsic-size:0 44px}.monitor-badge--up{background:#d1fae5;color:#065f46}.monitor-badge--warn{background:#fef3c7;color:#b45309}.monitor-badge--down{background:#fee2e2;color:#991b1b}.monitor-badge--unknown{background:#f3f4f6;color:#6b7280}.monitor-card{border-radius:16px;padding:0;background:hsl(var(--card));box-shadow:none}.monitor-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.monitor-card__name{font-size:14px;font-weight:600;color:hsl(var(--foreground))}.monitor-card__badge{padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600}.monitor-card__stats{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:hsl(var(--muted-foreground));margin-bottom:12px}.monitor-card__value{margin-left:4px;color:hsl(var(--foreground));font-weight:600}.monitor-card__beats{display:flex;gap:2px;height:24px;align-items:flex-end}.monitor-beat{flex:1;min-width:4px;max-width:8px;border-radius:2px;transition:all .2s;position:relative}.monitor-beat:hover{opacity:.8;transform:scaleY(1.1)}.monitor-beat--up{background:#34c759;height:100%}.monitor-beat--warn,.monitor-beat--slow{background:#f5c15b;height:100%}.monitor-beat--down{background:#ff3b30;height:100%}.monitor-beat--empty{background:#e5e5ea;height:40%}.monitor-beat__tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#1d1d1f;color:#fff;padding:6px 10px;border-radius:6px;font-size:11px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;margin-bottom:6px;z-index:10}.monitor-beat__tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#1d1d1f}.monitor-beat:hover .monitor-beat__tooltip{opacity:1}.help-dot{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:999px;border:1px solid hsl(var(--border));font-size:10px;line-height:1;color:hsl(var(--muted-foreground));cursor:default}@media(max-width:768px){.monitor-beat{min-width:3px;max-width:6px}}@media(min-width:1024px){.dashboard-split{flex-direction:row;flex-wrap:nowrap}.dashboard-split .dashboard-main{flex:0 0 66.6667%;max-width:66.6667%}.dashboard-split .dashboard-side{flex:0 0 33.3333%;max-width:33.3333%}}@keyframes logo-float{0%{transform:translateY(0)}25%{transform:translateY(6px)}50%{transform:translateY(0)}75%{transform:translateY(-6px)}to{transform:translateY(0)}}@keyframes logo-blink{0%,45%,55%,to{transform:scaleY(1);opacity:1}50%{transform:scaleY(.1);opacity:.6}}.logo-mark .logo-cat-wrapper{animation:logo-float 4s ease-in-out infinite;transform-origin:center}.logo-mark{transform:translateY(2px)}.logo-mark .logo-eye{fill:#00bcd4;filter:drop-shadow(0 0 2px #00bcd4);animation:logo-blink 5s infinite;transform-box:fill-box;transform-origin:center}.hover\:border-destructive:hover{border-color:hsl(var(--destructive))}.hover\:border-destructive\/40:hover{border-color:hsl(var(--destructive) / .4)}.hover\:border-destructive\/60:hover{border-color:hsl(var(--destructive) / .6)}.hover\:border-foreground:hover{border-color:hsl(var(--foreground))}.hover\:border-primary:hover{border-color:hsl(var(--primary))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/10:hover{background-color:hsl(var(--destructive) / .1)}.hover\:bg-secondary\/60:hover{background-color:hsl(var(--secondary) / .6)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-emerald-500:hover{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:opacity-90:hover{opacity:.9}.focus\:border-transparent:focus{border-color:transparent}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:text-accent-foreground{color:hsl(var(--accent-foreground))}.group:hover .group-hover\:opacity-100{opacity:1}.peer:checked~.peer-checked\:border-foreground{border-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:bg-foreground{background-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.peer:disabled~.peer-disabled\:opacity-50{opacity:.5}@media(min-width:640px){.sm\:ml-0{margin-left:0}.sm\:flex{display:flex}.sm\:w-44{width:11rem}.sm\:w-48{width:12rem}.sm\:w-auto{width:auto}.sm\:min-w-0{min-width:0px}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:items-center{align-items:center}}@media(min-width:768px){.md\:w-auto{width:auto}.md\:flex-1{flex:1 1 0%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1024px){.lg\:static{position:static}.lg\:sticky{position:sticky}.lg\:top-0{top:0}.lg\:ml-0{margin-left:0}.lg\:hidden{display:none}.lg\:h-20{height:5rem}.lg\:h-64{height:16rem}.lg\:h-72{height:18rem}.lg\:h-screen{height:100vh}.lg\:w-20{width:5rem}.lg\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:border-b-0{border-bottom-width:0px}.lg\:border-r{border-right-width:1px}.lg\:bg-card\/80{background-color:hsl(var(--card) / .8)}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:py-4{padding-top:1rem;padding-bottom:1rem}.lg\:pt-10{padding-top:2.5rem}.lg\:pt-5{padding-top:1.25rem}.lg\:pt-6{padding-top:1.5rem}.lg\:text-2xl{font-size:1.5rem;line-height:2rem}.lg\:backdrop-blur-none{--tw-backdrop-blur: ;-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}}@media(min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}} diff --git a/static/assets/index-Babp7OwB.js b/static/assets/index-Babp7OwB.js new file mode 100644 index 0000000000000000000000000000000000000000..68cfbb2aefbc64c26c41944eba31f2fc63b5cf3c --- /dev/null +++ b/static/assets/index-Babp7OwB.js @@ -0,0 +1,7 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PublicUptime-LfbaOwmN.js","assets/useUptimeStatus-C3HbC8Ey.js","assets/AppShell-B2wCSsyk.js","assets/settings-AxgaqgWn.js","assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-LOlIelGk.js","assets/useConfirmDialog-CVbCTmLz.js","assets/Dashboard-CWAyHCd_.js","assets/HelpTip.vue_vue_type_script_setup_true_lang-Cx7pOr6m.js","assets/Accounts-D9VhnA3_.js","assets/SelectMenu.vue_vue_type_script_setup_true_lang-BVzlIq4n.js","assets/Checkbox.vue_vue_type_script_setup_true_lang-566L0Qi-.js","assets/Settings-CAoCANb4.js","assets/Logs-CnQ-Y30L.js","assets/Monitor-DmtcAJlL.js"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function us(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const se={},$t=[],ot=()=>{},ni=()=>!1,or=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),fs=e=>e.startsWith("onUpdate:"),Se=Object.assign,ds=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},oc=Object.prototype.hasOwnProperty,ne=(e,t)=>oc.call(e,t),q=Array.isArray,Kt=e=>ir(e)==="[object Map]",ri=e=>ir(e)==="[object Set]",W=e=>typeof e=="function",de=e=>typeof e=="string",yt=e=>typeof e=="symbol",le=e=>e!==null&&typeof e=="object",si=e=>(le(e)||W(e))&&W(e.then)&&W(e.catch),oi=Object.prototype.toString,ir=e=>oi.call(e),ic=e=>ir(e).slice(8,-1),ii=e=>ir(e)==="[object Object]",lr=e=>de(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,cn=us(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),cr=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},lc=/-\w/g,xt=cr(e=>e.replace(lc,t=>t.slice(1).toUpperCase())),cc=/\B([A-Z])/g,jt=cr(e=>e.replace(cc,"-$1").toLowerCase()),li=cr(e=>e.charAt(0).toUpperCase()+e.slice(1)),vr=cr(e=>e?`on${li(e)}`:""),vt=(e,t)=>!Object.is(e,t),Bn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},hs=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let ks;const ar=()=>ks||(ks=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function ps(e){if(q(e)){const t={};for(let n=0;n{if(n){const r=n.split(uc);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function ms(e){let t="";if(de(e))t=e;else if(q(e))for(let n=0;n!!(e&&e.__v_isRef===!0),mc=e=>de(e)?e:e==null?"":q(e)||le(e)&&(e.toString===oi||!W(e.toString))?ui(e)?mc(e.value):JSON.stringify(e,fi,2):String(e),fi=(e,t)=>ui(t)?fi(e,t.value):Kt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[Or(r,o)+" =>"]=s,n),{})}:ri(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Or(n))}:yt(t)?Or(t):le(t)&&!q(t)&&!ii(t)?String(t):t,Or=(e,t="")=>{var n;return yt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let _e;class di{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=_e,!t&&_e&&(this.index=(_e.scopes||(_e.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&&(_e=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if(un){let t=un;for(un=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;an;){let t=an;for(an=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function _i(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function bi(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),_s(r),yc(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function qr(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===bn)||(e.globalVersion=bn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!qr(e))))return;e.flags|=2;const t=e.dep,n=ie,r=$e;ie=e,$e=!0;try{_i(e);const s=e.fn(e._value);(t.version===0||vt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{ie=n,$e=r,bi(e),e.flags&=-3}}function _s(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)_s(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function yc(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 wi=[];function ht(){wi.push($e),$e=!1}function pt(){const e=wi.pop();$e=e===void 0?!0:e}function Vs(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ie;ie=void 0;try{t()}finally{ie=n}}}let bn=0;class _c{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 bs{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!ie||!$e||ie===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ie)n=this.activeLink=new _c(ie,this),ie.deps?(n.prevDep=ie.depsTail,ie.depsTail.nextDep=n,ie.depsTail=n):ie.deps=ie.depsTail=n,Si(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=ie.depsTail,n.nextDep=void 0,ie.depsTail.nextDep=n,ie.depsTail=n,ie.deps===n&&(ie.deps=r)}return n}trigger(t){this.version++,bn++,this.notify(t)}notify(t){gs();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ys()}}}function Si(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Si(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const zn=new WeakMap,Dt=Symbol(""),$r=Symbol(""),En=Symbol("");function be(e,t,n){if($e&&ie){let r=zn.get(e);r||zn.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new bs),s.map=r,s.key=n),s.track()}}function ft(e,t,n,r,s,o){const i=zn.get(e);if(!i){bn++;return}const l=c=>{c&&c.trigger()};if(gs(),t==="clear")i.forEach(l);else{const c=q(e),u=c&&lr(n);if(c&&n==="length"){const a=Number(r);i.forEach((f,p)=>{(p==="length"||p===En||!yt(p)&&p>=a)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(En)),t){case"add":c?u&&l(i.get("length")):(l(i.get(Dt)),Kt(e)&&l(i.get($r)));break;case"delete":c||(l(i.get(Dt)),Kt(e)&&l(i.get($r)));break;case"set":Kt(e)&&l(i.get(Dt));break}}ys()}function bc(e,t){const n=zn.get(e);return n&&n.get(t)}function Bt(e){const t=Z(e);return t===e?t:(be(t,"iterate",En),je(e)?t:t.map(Ke))}function ur(e){return be(e=Z(e),"iterate",En),e}function wt(e,t){return mt(e)?it(e)?zt(Ke(t)):zt(t):Ke(t)}const Ec={__proto__:null,[Symbol.iterator](){return Tr(this,Symbol.iterator,e=>wt(this,e))},concat(...e){return Bt(this).concat(...e.map(t=>q(t)?Bt(t):t))},entries(){return Tr(this,"entries",e=>(e[1]=wt(this,e[1]),e))},every(e,t){return ct(this,"every",e,t,void 0,arguments)},filter(e,t){return ct(this,"filter",e,t,n=>n.map(r=>wt(this,r)),arguments)},find(e,t){return ct(this,"find",e,t,n=>wt(this,n),arguments)},findIndex(e,t){return ct(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ct(this,"findLast",e,t,n=>wt(this,n),arguments)},findLastIndex(e,t){return ct(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ct(this,"forEach",e,t,void 0,arguments)},includes(...e){return Cr(this,"includes",e)},indexOf(...e){return Cr(this,"indexOf",e)},join(e){return Bt(this).join(e)},lastIndexOf(...e){return Cr(this,"lastIndexOf",e)},map(e,t){return ct(this,"map",e,t,void 0,arguments)},pop(){return nn(this,"pop")},push(...e){return nn(this,"push",e)},reduce(e,...t){return qs(this,"reduce",e,t)},reduceRight(e,...t){return qs(this,"reduceRight",e,t)},shift(){return nn(this,"shift")},some(e,t){return ct(this,"some",e,t,void 0,arguments)},splice(...e){return nn(this,"splice",e)},toReversed(){return Bt(this).toReversed()},toSorted(e){return Bt(this).toSorted(e)},toSpliced(...e){return Bt(this).toSpliced(...e)},unshift(...e){return nn(this,"unshift",e)},values(){return Tr(this,"values",e=>wt(this,e))}};function Tr(e,t,n){const r=ur(e),s=r[t]();return r!==e&&!je(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const wc=Array.prototype;function ct(e,t,n,r,s,o){const i=ur(e),l=i!==e&&!je(e),c=i[t];if(c!==wc[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,wt(e,f),p,e)}:n.length>2&&(u=function(f,p){return n.call(this,f,p,e)}));const a=c.call(i,u,r);return l&&s?s(a):a}function qs(e,t,n,r){const s=ur(e);let o=n;return s!==e&&(je(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,wt(e,l),c,e)}),s[t](o,...r)}function Cr(e,t,n){const r=Z(e);be(r,"iterate",En);const s=r[t](...n);return(s===-1||s===!1)&&fr(n[0])?(n[0]=Z(n[0]),r[t](...n)):s}function nn(e,t,n=[]){ht(),gs();const r=Z(e)[t].apply(e,n);return ys(),pt(),r}const Sc=us("__proto__,__v_isRef,__isVue"),Ri=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(yt));function Rc(e){yt(e)||(e=String(e));const t=Z(this);return be(t,"has",e),t.hasOwnProperty(e)}class Ai{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?Dc:Ti:o?xi:Oi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=q(t);if(!s){let c;if(i&&(c=Ec[n]))return c;if(n==="hasOwnProperty")return Rc}const l=Reflect.get(t,n,ce(t)?t:r);if((yt(n)?Ri.has(n):Sc(n))||(s||be(t,"get",n),o))return l;if(ce(l)){const c=i&&lr(n)?l:l.value;return s&&le(c)?Wr(c):c}return le(l)?s?Wr(l):On(l):l}}class vi extends Ai{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=q(t)&&lr(n);if(!this._isShallow){const u=mt(o);if(!je(r)&&!mt(r)&&(o=Z(o),r=Z(r)),!i&&ce(o)&&!ce(r))return u||(o.value=r),!0}const l=i?Number(n)e,Dn=e=>Reflect.getPrototypeOf(e);function Tc(e,t,n){return function(...r){const s=this.__v_raw,o=Z(s),i=Kt(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=s[e](...r),a=n?Kr:t?zt:Ke;return!t&&be(o,"iterate",c?$r:Dt),{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 Ln(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Cc(e,t){const n={get(s){const o=this.__v_raw,i=Z(o),l=Z(s);e||(vt(s,l)&&be(i,"get",s),be(i,"get",l));const{has:c}=Dn(i),u=t?Kr:e?zt:Ke;if(c.call(i,s))return u(o.get(s));if(c.call(i,l))return u(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&be(Z(s),"iterate",Dt),s.size},has(s){const o=this.__v_raw,i=Z(o),l=Z(s);return e||(vt(s,l)&&be(i,"has",s),be(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,c=Z(l),u=t?Kr:e?zt:Ke;return!e&&be(c,"iterate",Dt),l.forEach((a,f)=>s.call(o,u(a),u(f),i))}};return Se(n,e?{add:Ln("add"),set:Ln("set"),delete:Ln("delete"),clear:Ln("clear")}:{add(s){!t&&!je(s)&&!mt(s)&&(s=Z(s));const o=Z(this);return Dn(o).has.call(o,s)||(o.add(s),ft(o,"add",s,s)),this},set(s,o){!t&&!je(o)&&!mt(o)&&(o=Z(o));const i=Z(this),{has:l,get:c}=Dn(i);let u=l.call(i,s);u||(s=Z(s),u=l.call(i,s));const a=c.call(i,s);return i.set(s,o),u?vt(o,a)&&ft(i,"set",s,o):ft(i,"add",s,o),this},delete(s){const o=Z(this),{has:i,get:l}=Dn(o);let c=i.call(o,s);c||(s=Z(s),c=i.call(o,s)),l&&l.call(o,s);const u=o.delete(s);return c&&ft(o,"delete",s,void 0),u},clear(){const s=Z(this),o=s.size!==0,i=s.clear();return o&&ft(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=Tc(s,e,t)}),n}function Es(e,t){const n=Cc(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(ne(n,s)&&s in r?n:r,s,o)}const Pc={get:Es(!1,!1)},Nc={get:Es(!1,!0)},Ic={get:Es(!0,!1)};const Oi=new WeakMap,xi=new WeakMap,Ti=new WeakMap,Dc=new WeakMap;function Lc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Fc(e){return e.__v_skip||!Object.isExtensible(e)?0:Lc(ic(e))}function On(e){return mt(e)?e:ws(e,!1,vc,Pc,Oi)}function Ci(e){return ws(e,!1,xc,Nc,xi)}function Wr(e){return ws(e,!0,Oc,Ic,Ti)}function ws(e,t,n,r,s){if(!le(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=Fc(e);if(o===0)return e;const i=s.get(e);if(i)return i;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function it(e){return mt(e)?it(e.__v_raw):!!(e&&e.__v_isReactive)}function mt(e){return!!(e&&e.__v_isReadonly)}function je(e){return!!(e&&e.__v_isShallow)}function fr(e){return e?!!e.__v_raw:!1}function Z(e){const t=e&&e.__v_raw;return t?Z(t):e}function Ss(e){return!ne(e,"__v_skip")&&Object.isExtensible(e)&&ci(e,"__v_skip",!0),e}const Ke=e=>le(e)?On(e):e,zt=e=>le(e)?Wr(e):e;function ce(e){return e?e.__v_isRef===!0:!1}function Lt(e){return Pi(e,!1)}function Mc(e){return Pi(e,!0)}function Pi(e,t){return ce(e)?e:new Uc(e,t)}class Uc{constructor(t,n){this.dep=new bs,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:Z(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,r=this.__v_isShallow||je(t)||mt(t);t=r?t:Z(t),vt(t,n)&&(this._rawValue=t,this._value=r?t:Ke(t),this.dep.trigger())}}function Ot(e){return ce(e)?e.value:e}const jc={get:(e,t,n)=>t==="__v_raw"?e:Ot(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return ce(s)&&!ce(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Ni(e){return it(e)?e:new Proxy(e,jc)}function Bc(e){const t=q(e)?new Array(e.length):{};for(const n in e)t[n]=Ii(e,n);return t}class Hc{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._raw=Z(t);let s=!0,o=t;if(!q(t)||!lr(String(n)))do s=!fr(o)||je(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=Ot(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&ce(this._raw[this._key])){const n=this._object[this._key];if(ce(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return bc(this._raw,this._key)}}class kc{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Vc(e,t,n){return ce(e)?e:W(e)?new kc(e):le(e)&&arguments.length>1?Ii(e,t,n):Lt(e)}function Ii(e,t,n){return new Hc(e,t,n)}class qc{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new bs(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=bn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&ie!==this)return yi(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 $c(e,t,n=!1){let r,s;return W(e)?r=e:(r=e.get,s=e.set),new qc(r,s,n)}const Fn={},Jn=new WeakMap;let Pt;function Kc(e,t=!1,n=Pt){if(n){let r=Jn.get(n);r||Jn.set(n,r=[]),r.push(e)}}function Wc(e,t,n=se){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:c}=n,u=P=>s?P:je(P)||s===!1||s===0?dt(P,1):dt(P);let a,f,p,m,g=!1,b=!1;if(ce(e)?(f=()=>e.value,g=je(e)):it(e)?(f=()=>u(e),g=!0):q(e)?(b=!0,g=e.some(P=>it(P)||je(P)),f=()=>e.map(P=>{if(ce(P))return P.value;if(it(P))return u(P);if(W(P))return c?c(P,2):P()})):W(e)?t?f=c?()=>c(e,2):e:f=()=>{if(p){ht();try{p()}finally{pt()}}const P=Pt;Pt=a;try{return c?c(e,3,[m]):e(m)}finally{Pt=P}}:f=ot,t&&s){const P=f,M=s===!0?1/0:s;f=()=>dt(P(),M)}const E=pi(),O=()=>{a.stop(),E&&E.active&&ds(E.effects,a)};if(o&&t){const P=t;t=(...M)=>{P(...M),O()}}let C=b?new Array(e.length).fill(Fn):Fn;const N=P=>{if(!(!(a.flags&1)||!a.dirty&&!P))if(t){const M=a.run();if(s||g||(b?M.some((X,k)=>vt(X,C[k])):vt(M,C))){p&&p();const X=Pt;Pt=a;try{const k=[M,C===Fn?void 0:b&&C[0]===Fn?[]:C,m];C=M,c?c(t,3,k):t(...k)}finally{Pt=X}}}else a.run()};return l&&l(N),a=new mi(f),a.scheduler=i?()=>i(N,!1):N,m=P=>Kc(P,!1,a),p=a.onStop=()=>{const P=Jn.get(a);if(P){if(c)c(P,4);else for(const M of P)M();Jn.delete(a)}},t?r?N(!0):C=a.run():i?i(N.bind(null,!0),!0):a.run(),O.pause=a.pause.bind(a),O.resume=a.resume.bind(a),O.stop=O,O}function dt(e,t=1/0,n){if(t<=0||!le(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,ce(e))dt(e.value,t,n);else if(q(e))for(let r=0;r{dt(r,t,n)});else if(ii(e)){for(const r in e)dt(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&dt(e[r],t,n)}return e}function xn(e,t,n,r){try{return r?e(...r):e()}catch(s){dr(s,t,n)}}function lt(e,t,n,r){if(W(e)){const s=xn(e,t,n,r);return s&&si(s)&&s.catch(o=>{dr(o,t,n)}),s}if(q(e)){const s=[];for(let o=0;o>>1,s=xe[r],o=wn(s);o=wn(n)?xe.push(e):xe.splice(zc(t),0,e),e.flags|=1,Li()}}function Li(){Xn||(Xn=Di.then(Mi))}function Jc(e){q(e)?Wt.push(...e):St&&e.id===-1?St.splice(kt+1,0,e):e.flags&1||(Wt.push(e),e.flags|=1),Li()}function $s(e,t,n=rt+1){for(;nwn(n)-wn(r));if(Wt.length=0,St){St.push(...t);return}for(St=t,kt=0;kte.id==null?e.flags&2?-1:1/0:e.id;function Mi(e){try{for(rt=0;rt{r._d&&tr(-1);const o=Qn(t);let i;try{i=e(...s)}finally{Qn(o),r._d&&tr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function Ah(e,t){if(we===null)return e;const n=gr(we),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&W(t)?t.call(r&&r.proxy):t}}function Qc(){return!!(dl()||Ft)}const Yc=Symbol.for("v-scx"),Zc=()=>ke(Yc);function fn(e,t,n){return ji(e,t,n)}function ji(e,t,n=se){const{immediate:r,deep:s,flush:o,once:i}=n,l=Se({},n),c=t&&r||!t&&o!=="post";let u;if(An){if(o==="sync"){const m=Zc();u=m.__watcherHandles||(m.__watcherHandles=[])}else if(!c){const m=()=>{};return m.stop=ot,m.resume=ot,m.pause=ot,m}}const a=Te;l.call=(m,g,b)=>lt(m,a,g,b);let f=!1;o==="post"?l.scheduler=m=>{ve(m,a&&a.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(m,g)=>{g?m():As(m)}),l.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,a&&(m.id=a.uid,m.i=a))};const p=Wc(e,t,l);return An&&(u?u.push(p):c&&p()),p}function ea(e,t,n){const r=this.proxy,s=de(e)?e.includes(".")?Bi(r,e):()=>r[e]:e.bind(r,r);let o;W(t)?o=t:(o=t.handler,n=t);const i=Tn(this),l=ji(s,o.bind(r),n);return i(),l}function Bi(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,dn=e=>e&&(e.disabled||e.disabled===""),Ks=e=>e&&(e.defer||e.defer===""),Ws=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Gs=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Gr=(e,t)=>{const n=e&&e.to;return de(n)?t?t(n):null:n},ki={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,u){const{mc:a,pc:f,pbc:p,o:{insert:m,querySelector:g,createText:b,createComment:E}}=u,O=dn(t.props);let{shapeFlag:C,children:N,dynamicChildren:P}=t;if(e==null){const M=t.el=b(""),X=t.anchor=b("");m(M,n,r),m(X,n,r);const k=(U,ee)=>{C&16&&a(N,U,ee,s,o,i,l,c)},V=()=>{const U=t.target=Gr(t.props,g),ee=Vi(U,t,b,m);U&&(i!=="svg"&&Ws(U)?i="svg":i!=="mathml"&&Gs(U)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(U),O||(k(U,ee),kn(t,!1)))};O&&(k(n,X),kn(t,!0)),Ks(t.props)?(t.el.__isMounted=!1,ve(()=>{V(),delete t.el.__isMounted},o)):V()}else{if(Ks(t.props)&&e.el.__isMounted===!1){ve(()=>{ki.process(e,t,n,r,s,o,i,l,c,u)},o);return}t.el=e.el,t.targetStart=e.targetStart;const M=t.anchor=e.anchor,X=t.target=e.target,k=t.targetAnchor=e.targetAnchor,V=dn(e.props),U=V?n:X,ee=V?M:k;if(i==="svg"||Ws(X)?i="svg":(i==="mathml"||Gs(X))&&(i="mathml"),P?(p(e.dynamicChildren,P,U,s,o,i,l),Cs(e,t,!0)):c||f(e,t,U,ee,s,o,i,l,!1),O)V?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Mn(t,n,M,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const ue=t.target=Gr(t.props,g);ue&&Mn(t,ue,null,u,0)}else V&&Mn(t,X,k,u,1);kn(t,O)}},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetStart:u,targetAnchor:a,target:f,props:p}=e;if(f&&(s(u),s(a)),o&&s(c),i&16){const m=o||!dn(p);for(let g=0;ghn(g,t&&(q(t)?t[b]:t),n,r,s));return}if(Gt(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&hn(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?gr(r.component):r.el,i=s?null:o,{i:l,r:c}=e,u=t&&t.r,a=l.refs===se?l.refs={}:l.refs,f=l.setupState,p=Z(f),m=f===se?ni:g=>ne(p,g);if(u!=null&&u!==c){if(zs(t),de(u))a[u]=null,m(u)&&(f[u]=null);else if(ce(u)){u.value=null;const g=t;g.k&&(a[g.k]=null)}}if(W(c))xn(c,l,12,[i,a]);else{const g=de(c),b=ce(c);if(g||b){const E=()=>{if(e.f){const O=g?m(c)?f[c]:a[c]:c.value;if(s)q(O)&&ds(O,o);else if(q(O))O.includes(o)||O.push(o);else if(g)a[c]=[o],m(c)&&(f[c]=a[c]);else{const C=[o];c.value=C,e.k&&(a[e.k]=C)}}else g?(a[c]=i,m(c)&&(f[c]=i)):b&&(c.value=i,e.k&&(a[e.k]=i))};if(i){const O=()=>{E(),Yn.delete(e)};O.id=-1,Yn.set(e,O),ve(O,n)}else zs(e),E()}}}function zs(e){const t=Yn.get(e);t&&(t.flags|=8,Yn.delete(e))}ar().requestIdleCallback;ar().cancelIdleCallback;const Gt=e=>!!e.type.__asyncLoader,$i=e=>e.type.__isKeepAlive;function sa(e,t){Ki(e,"a",t)}function oa(e,t){Ki(e,"da",t)}function Ki(e,t,n=Te){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(hr(t,r,n),n){let s=n.parent;for(;s&&s.parent;)$i(s.parent.vnode)&&ia(r,t,n,s),s=s.parent}}function ia(e,t,n,r){const s=hr(t,e,r,!0);Wi(()=>{ds(r[t],s)},n)}function hr(e,t,n=Te,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{ht();const l=Tn(n),c=lt(t,n,e,i);return l(),pt(),c});return r?s.unshift(o):s.push(o),o}}const _t=e=>(t,n=Te)=>{(!An||e==="sp")&&hr(e,(...r)=>t(...r),n)},la=_t("bm"),ca=_t("m"),aa=_t("bu"),ua=_t("u"),fa=_t("bum"),Wi=_t("um"),da=_t("sp"),ha=_t("rtg"),pa=_t("rtc");function ma(e,t=Te){hr("ec",e,t)}const ga=Symbol.for("v-ndc");function Oh(e,t,n,r){let s;const o=n,i=q(e);if(i||de(e)){const l=i&&it(e);let c=!1,u=!1;l&&(c=!je(e),u=mt(e),e=ur(e)),s=new Array(e.length);for(let a=0,f=e.length;at(l,c,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let c=0,u=l.length;c0;return er(),nr(Fe,null,[Ce("slot",n,r)],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),er();const i=o&&Gi(o(n)),l=n.key||i&&i.key,c=nr(Fe,{key:(l&&!yt(l)?l:`_${t}`)+(!i&&r?"_fb":"")},i||[],i&&e._===1?64:-2);return c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),o&&o._c&&(o._d=!0),c}function Gi(e){return e.some(t=>Rn(t)?!(t.type===gt||t.type===Fe&&!Gi(t.children)):!0)?e:null}const zr=e=>e?hl(e)?gr(e):zr(e.parent):null,pn=Se(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=>zr(e.parent),$root:e=>zr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ji(e),$forceUpdate:e=>e.f||(e.f=()=>{As(e.update)}),$nextTick:e=>e.n||(e.n=Rs.bind(e.proxy)),$watch:e=>ea.bind(e)}),Pr=(e,t)=>e!==se&&!e.__isScriptSetup&&ne(e,t),ya={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,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 r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(Pr(r,t))return i[t]=1,r[t];if(s!==se&&ne(s,t))return i[t]=2,s[t];if(ne(o,t))return i[t]=3,o[t];if(n!==se&&ne(n,t))return i[t]=4,n[t];Jr&&(i[t]=0)}}const u=pn[t];let a,f;if(u)return t==="$attrs"&&be(e.attrs,"get",""),u(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==se&&ne(n,t))return i[t]=4,n[t];if(f=c.config.globalProperties,ne(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return Pr(s,t)?(s[t]=n,!0):r!==se&&ne(r,t)?(r[t]=n,!0):ne(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:o,type:i}},l){let c;return!!(n[l]||e!==se&&l[0]!=="$"&&ne(e,l)||Pr(t,l)||ne(o,l)||ne(r,l)||ne(pn,l)||ne(s.config.globalProperties,l)||(c=i.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ne(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Js(e){return q(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Jr=!0;function _a(e){const t=Ji(e),n=e.proxy,r=e.ctx;Jr=!1,t.beforeCreate&&Xs(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:u,created:a,beforeMount:f,mounted:p,beforeUpdate:m,updated:g,activated:b,deactivated:E,beforeDestroy:O,beforeUnmount:C,destroyed:N,unmounted:P,render:M,renderTracked:X,renderTriggered:k,errorCaptured:V,serverPrefetch:U,expose:ee,inheritAttrs:ue,components:ye,directives:pe,filters:Re}=t;if(u&&ba(u,r,null),i)for(const K in i){const z=i[K];W(z)&&(r[K]=z.bind(n))}if(s){const K=s.call(n,n);le(K)&&(e.data=On(K))}if(Jr=!0,o)for(const K in o){const z=o[K],Be=W(z)?z.bind(n,n):W(z.get)?z.get.bind(n,n):ot,ze=!W(z)&&W(z.set)?z.set.bind(n):ot,me=Me({get:Be,set:ze});Object.defineProperty(r,K,{enumerable:!0,configurable:!0,get:()=>me.value,set:fe=>me.value=fe})}if(l)for(const K in l)zi(l[K],r,n,K);if(c){const K=W(c)?c.call(n):c;Reflect.ownKeys(K).forEach(z=>{Hn(z,K[z])})}a&&Xs(a,e,"c");function J(K,z){q(z)?z.forEach(Be=>K(Be.bind(n))):z&&K(z.bind(n))}if(J(la,f),J(ca,p),J(aa,m),J(ua,g),J(sa,b),J(oa,E),J(ma,V),J(pa,X),J(ha,k),J(fa,C),J(Wi,P),J(da,U),q(ee))if(ee.length){const K=e.exposed||(e.exposed={});ee.forEach(z=>{Object.defineProperty(K,z,{get:()=>n[z],set:Be=>n[z]=Be,enumerable:!0})})}else e.exposed||(e.exposed={});M&&e.render===ot&&(e.render=M),ue!=null&&(e.inheritAttrs=ue),ye&&(e.components=ye),pe&&(e.directives=pe),U&&qi(e)}function ba(e,t,n=ot){q(e)&&(e=Xr(e));for(const r in e){const s=e[r];let o;le(s)?"default"in s?o=ke(s.from||r,s.default,!0):o=ke(s.from||r):o=ke(s),ce(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function Xs(e,t,n){lt(q(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function zi(e,t,n,r){let s=r.includes(".")?Bi(n,r):()=>n[r];if(de(e)){const o=t[e];W(o)&&fn(s,o)}else if(W(e))fn(s,e.bind(n));else if(le(e))if(q(e))e.forEach(o=>zi(o,t,n,r));else{const o=W(e.handler)?e.handler.bind(n):t[e.handler];W(o)&&fn(s,o,e)}}function Ji(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>Zn(c,u,i,!0)),Zn(c,t,i)),le(t)&&o.set(t,c),c}function Zn(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&Zn(e,o,n,!0),s&&s.forEach(i=>Zn(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Ea[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Ea={data:Qs,props:Ys,emits:Ys,methods:ln,computed:ln,beforeCreate:Ae,created:Ae,beforeMount:Ae,mounted:Ae,beforeUpdate:Ae,updated:Ae,beforeDestroy:Ae,beforeUnmount:Ae,destroyed:Ae,unmounted:Ae,activated:Ae,deactivated:Ae,errorCaptured:Ae,serverPrefetch:Ae,components:ln,directives:ln,watch:Sa,provide:Qs,inject:wa};function Qs(e,t){return t?e?function(){return Se(W(e)?e.call(this,this):e,W(t)?t.call(this,this):t)}:t:e}function wa(e,t){return ln(Xr(e),Xr(t))}function Xr(e){if(q(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${xt(t)}Modifiers`]||e[`${jt(t)}Modifiers`];function Oa(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||se;let s=n;const o=t.startsWith("update:"),i=o&&va(r,t.slice(7));i&&(i.trim&&(s=n.map(a=>de(a)?a.trim():a)),i.number&&(s=n.map(hs)));let l,c=r[l=vr(t)]||r[l=vr(xt(t))];!c&&o&&(c=r[l=vr(jt(t))]),c&<(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,lt(u,e,6,s)}}const xa=new WeakMap;function Qi(e,t,n=!1){const r=n?xa:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!W(e)){const c=u=>{const a=Qi(u,t,!0);a&&(l=!0,Se(i,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(le(e)&&r.set(e,null),null):(q(o)?o.forEach(c=>i[c]=null):Se(i,o),le(e)&&r.set(e,i),i)}function pr(e,t){return!e||!or(t)?!1:(t=t.slice(2).replace(/Once$/,""),ne(e,t[0].toLowerCase()+t.slice(1))||ne(e,jt(t))||ne(e,t))}function Zs(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:a,props:f,data:p,setupState:m,ctx:g,inheritAttrs:b}=e,E=Qn(e);let O,C;try{if(n.shapeFlag&4){const P=s||r,M=P;O=st(u.call(M,P,a,f,m,p,g)),C=l}else{const P=t;O=st(P.length>1?P(f,{attrs:l,slots:i,emit:c}):P(f,null)),C=t.props?l:Ta(l)}}catch(P){mn.length=0,dr(P,e,1),O=Ce(gt)}let N=O;if(C&&b!==!1){const P=Object.keys(C),{shapeFlag:M}=N;P.length&&M&7&&(o&&P.some(fs)&&(C=Ca(C,o)),N=Jt(N,C,!1,!0))}return n.dirs&&(N=Jt(N,null,!1,!0),N.dirs=N.dirs?N.dirs.concat(n.dirs):n.dirs),n.transition&&vs(N,n.transition),O=N,Qn(E),O}const Ta=e=>{let t;for(const n in e)(n==="class"||n==="style"||or(n))&&((t||(t={}))[n]=e[n]);return t},Ca=(e,t)=>{const n={};for(const r in e)(!fs(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Pa(e,t,n){const{props:r,children:s,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 r?eo(r,i,u):!!i;if(c&8){const a=t.dynamicProps;for(let f=0;fObject.create(Yi),el=e=>Object.getPrototypeOf(e)===Yi;function Ia(e,t,n,r=!1){const s={},o=Zi();e.propsDefaults=Object.create(null),tl(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:Ci(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function Da(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=Z(s),[c]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const a=e.vnode.dynamicProps;for(let f=0;f{c=!0;const[p,m]=nl(f,t,!0);Se(i,p),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!c)return le(e)&&r.set(e,$t),$t;if(q(o))for(let a=0;ae==="_"||e==="_ctx"||e==="$stable",Ts=e=>q(e)?e.map(st):[st(e)],Fa=(e,t,n)=>{if(t._n)return t;const r=Xc((...s)=>Ts(t(...s)),n);return r._c=!1,r},rl=(e,t,n)=>{const r=e._ctx;for(const s in e){if(xs(s))continue;const o=e[s];if(W(o))t[s]=Fa(s,o,r);else if(o!=null){const i=Ts(o);t[s]=()=>i}}},sl=(e,t)=>{const n=Ts(t);e.slots.default=()=>n},ol=(e,t,n)=>{for(const r in t)(n||!xs(r))&&(e[r]=t[r])},Ma=(e,t,n)=>{const r=e.slots=Zi();if(e.vnode.shapeFlag&32){const s=t._;s?(ol(r,t,n),n&&ci(r,"_",s,!0)):rl(t,r)}else t&&sl(e,t)},Ua=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=se;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:ol(s,t,n):(o=!t.$stable,rl(t,s)),i=t}else t&&(sl(e,t),i={default:1});if(o)for(const l in s)!xs(l)&&i[l]==null&&delete s[l]},ve=Va;function ja(e){return Ba(e)}function Ba(e,t){const n=ar();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:a,parentNode:f,nextSibling:p,setScopeId:m=ot,insertStaticContent:g}=e,b=(d,h,y,w=null,A=null,S=null,I=void 0,T=null,x=!!h.dynamicChildren)=>{if(d===h)return;d&&!rn(d,h)&&(w=R(d),fe(d,A,S,!0),d=null),h.patchFlag===-2&&(x=!1,h.dynamicChildren=null);const{type:v,ref:H,shapeFlag:L}=h;switch(v){case mr:E(d,h,y,w);break;case gt:O(d,h,y,w);break;case Vn:d==null&&C(h,y,w,I);break;case Fe:ye(d,h,y,w,A,S,I,T,x);break;default:L&1?M(d,h,y,w,A,S,I,T,x):L&6?pe(d,h,y,w,A,S,I,T,x):(L&64||L&128)&&v.process(d,h,y,w,A,S,I,T,x,j)}H!=null&&A?hn(H,d&&d.ref,S,h||d,!h):H==null&&d&&d.ref!=null&&hn(d.ref,null,S,d,!0)},E=(d,h,y,w)=>{if(d==null)r(h.el=l(h.children),y,w);else{const A=h.el=d.el;h.children!==d.children&&u(A,h.children)}},O=(d,h,y,w)=>{d==null?r(h.el=c(h.children||""),y,w):h.el=d.el},C=(d,h,y,w)=>{[d.el,d.anchor]=g(d.children,h,y,w,d.el,d.anchor)},N=({el:d,anchor:h},y,w)=>{let A;for(;d&&d!==h;)A=p(d),r(d,y,w),d=A;r(h,y,w)},P=({el:d,anchor:h})=>{let y;for(;d&&d!==h;)y=p(d),s(d),d=y;s(h)},M=(d,h,y,w,A,S,I,T,x)=>{if(h.type==="svg"?I="svg":h.type==="math"&&(I="mathml"),d==null)X(h,y,w,A,S,I,T,x);else{const v=d.el&&d.el._isVueCE?d.el:null;try{v&&v._beginPatch(),U(d,h,A,S,I,T,x)}finally{v&&v._endPatch()}}},X=(d,h,y,w,A,S,I,T)=>{let x,v;const{props:H,shapeFlag:L,transition:B,dirs:$}=d;if(x=d.el=i(d.type,S,H&&H.is,H),L&8?a(x,d.children):L&16&&V(d.children,x,null,w,A,Nr(d,S),I,T),$&&Tt(d,null,w,"created"),k(x,d,d.scopeId,I,w),H){for(const oe in H)oe!=="value"&&!cn(oe)&&o(x,oe,null,H[oe],S,w);"value"in H&&o(x,"value",null,H.value,S),(v=H.onVnodeBeforeMount)&&et(v,w,d)}$&&Tt(d,null,w,"beforeMount");const Y=Ha(A,B);Y&&B.beforeEnter(x),r(x,h,y),((v=H&&H.onVnodeMounted)||Y||$)&&ve(()=>{v&&et(v,w,d),Y&&B.enter(x),$&&Tt(d,null,w,"mounted")},A)},k=(d,h,y,w,A)=>{if(y&&m(d,y),w)for(let S=0;S{for(let v=x;v{const T=h.el=d.el;let{patchFlag:x,dynamicChildren:v,dirs:H}=h;x|=d.patchFlag&16;const L=d.props||se,B=h.props||se;let $;if(y&&Ct(y,!1),($=B.onVnodeBeforeUpdate)&&et($,y,h,d),H&&Tt(h,d,y,"beforeUpdate"),y&&Ct(y,!0),(L.innerHTML&&B.innerHTML==null||L.textContent&&B.textContent==null)&&a(T,""),v?ee(d.dynamicChildren,v,T,y,w,Nr(h,A),S):I||z(d,h,T,null,y,w,Nr(h,A),S,!1),x>0){if(x&16)ue(T,L,B,y,A);else if(x&2&&L.class!==B.class&&o(T,"class",null,B.class,A),x&4&&o(T,"style",L.style,B.style,A),x&8){const Y=h.dynamicProps;for(let oe=0;oe{$&&et($,y,h,d),H&&Tt(h,d,y,"updated")},w)},ee=(d,h,y,w,A,S,I)=>{for(let T=0;T{if(h!==y){if(h!==se)for(const S in h)!cn(S)&&!(S in y)&&o(d,S,h[S],null,A,w);for(const S in y){if(cn(S))continue;const I=y[S],T=h[S];I!==T&&S!=="value"&&o(d,S,T,I,A,w)}"value"in y&&o(d,"value",h.value,y.value,A)}},ye=(d,h,y,w,A,S,I,T,x)=>{const v=h.el=d?d.el:l(""),H=h.anchor=d?d.anchor:l("");let{patchFlag:L,dynamicChildren:B,slotScopeIds:$}=h;$&&(T=T?T.concat($):$),d==null?(r(v,y,w),r(H,y,w),V(h.children||[],y,H,A,S,I,T,x)):L>0&&L&64&&B&&d.dynamicChildren&&d.dynamicChildren.length===B.length?(ee(d.dynamicChildren,B,y,A,S,I,T),(h.key!=null||A&&h===A.subTree)&&Cs(d,h,!0)):z(d,h,y,H,A,S,I,T,x)},pe=(d,h,y,w,A,S,I,T,x)=>{h.slotScopeIds=T,d==null?h.shapeFlag&512?A.ctx.activate(h,y,w,I,x):Re(h,y,w,A,S,I,x):Ve(d,h,x)},Re=(d,h,y,w,A,S,I)=>{const T=d.component=Xa(d,w,A);if($i(d)&&(T.ctx.renderer=j),Qa(T,!1,I),T.asyncDep){if(A&&A.registerDep(T,J,I),!d.el){const x=T.subTree=Ce(gt);O(null,x,h,y),d.placeholder=x.el}}else J(T,d,h,y,A,S,I)},Ve=(d,h,y)=>{const w=h.component=d.component;if(Pa(d,h,y))if(w.asyncDep&&!w.asyncResolved){K(w,h,y);return}else w.next=h,w.update();else h.el=d.el,w.vnode=h},J=(d,h,y,w,A,S,I)=>{const T=()=>{if(d.isMounted){let{next:L,bu:B,u:$,parent:Y,vnode:oe}=d;{const Ye=il(d);if(Ye){L&&(L.el=oe.el,K(d,L,I)),Ye.asyncDep.then(()=>{d.isUnmounted||T()});return}}let re=L,Pe;Ct(d,!1),L?(L.el=oe.el,K(d,L,I)):L=oe,B&&Bn(B),(Pe=L.props&&L.props.onVnodeBeforeUpdate)&&et(Pe,Y,L,oe),Ct(d,!0);const Ne=Zs(d),Qe=d.subTree;d.subTree=Ne,b(Qe,Ne,f(Qe.el),R(Qe),d,A,S),L.el=Ne.el,re===null&&Na(d,Ne.el),$&&ve($,A),(Pe=L.props&&L.props.onVnodeUpdated)&&ve(()=>et(Pe,Y,L,oe),A)}else{let L;const{el:B,props:$}=h,{bm:Y,m:oe,parent:re,root:Pe,type:Ne}=d,Qe=Gt(h);Ct(d,!1),Y&&Bn(Y),!Qe&&(L=$&&$.onVnodeBeforeMount)&&et(L,re,h),Ct(d,!0);{Pe.ce&&Pe.ce._def.shadowRoot!==!1&&Pe.ce._injectChildStyle(Ne);const Ye=d.subTree=Zs(d);b(null,Ye,y,w,d,A,S),h.el=Ye.el}if(oe&&ve(oe,A),!Qe&&(L=$&&$.onVnodeMounted)){const Ye=h;ve(()=>et(L,re,Ye),A)}(h.shapeFlag&256||re&&Gt(re.vnode)&&re.vnode.shapeFlag&256)&&d.a&&ve(d.a,A),d.isMounted=!0,h=y=w=null}};d.scope.on();const x=d.effect=new mi(T);d.scope.off();const v=d.update=x.run.bind(x),H=d.job=x.runIfDirty.bind(x);H.i=d,H.id=d.uid,x.scheduler=()=>As(H),Ct(d,!0),v()},K=(d,h,y)=>{h.component=d;const w=d.vnode.props;d.vnode=h,d.next=null,Da(d,h.props,w,y),Ua(d,h.children,y),ht(),$s(d),pt()},z=(d,h,y,w,A,S,I,T,x=!1)=>{const v=d&&d.children,H=d?d.shapeFlag:0,L=h.children,{patchFlag:B,shapeFlag:$}=h;if(B>0){if(B&128){ze(v,L,y,w,A,S,I,T,x);return}else if(B&256){Be(v,L,y,w,A,S,I,T,x);return}}$&8?(H&16&&He(v,A,S),L!==v&&a(y,L)):H&16?$&16?ze(v,L,y,w,A,S,I,T,x):He(v,A,S,!0):(H&8&&a(y,""),$&16&&V(L,y,w,A,S,I,T,x))},Be=(d,h,y,w,A,S,I,T,x)=>{d=d||$t,h=h||$t;const v=d.length,H=h.length,L=Math.min(v,H);let B;for(B=0;BH?He(d,A,S,!0,!1,L):V(h,y,w,A,S,I,T,x,L)},ze=(d,h,y,w,A,S,I,T,x)=>{let v=0;const H=h.length;let L=d.length-1,B=H-1;for(;v<=L&&v<=B;){const $=d[v],Y=h[v]=x?Rt(h[v]):st(h[v]);if(rn($,Y))b($,Y,y,null,A,S,I,T,x);else break;v++}for(;v<=L&&v<=B;){const $=d[L],Y=h[B]=x?Rt(h[B]):st(h[B]);if(rn($,Y))b($,Y,y,null,A,S,I,T,x);else break;L--,B--}if(v>L){if(v<=B){const $=B+1,Y=$B)for(;v<=L;)fe(d[v],A,S,!0),v++;else{const $=v,Y=v,oe=new Map;for(v=Y;v<=B;v++){const Le=h[v]=x?Rt(h[v]):st(h[v]);Le.key!=null&&oe.set(Le.key,v)}let re,Pe=0;const Ne=B-Y+1;let Qe=!1,Ye=0;const tn=new Array(Ne);for(v=0;v=Ne){fe(Le,A,S,!0);continue}let Ze;if(Le.key!=null)Ze=oe.get(Le.key);else for(re=Y;re<=B;re++)if(tn[re-Y]===0&&rn(Le,h[re])){Ze=re;break}Ze===void 0?fe(Le,A,S,!0):(tn[Ze-Y]=v+1,Ze>=Ye?Ye=Ze:Qe=!0,b(Le,h[Ze],y,null,A,S,I,T,x),Pe++)}const js=Qe?ka(tn):$t;for(re=js.length-1,v=Ne-1;v>=0;v--){const Le=Y+v,Ze=h[Le],Bs=h[Le+1],Hs=Le+1{const{el:S,type:I,transition:T,children:x,shapeFlag:v}=d;if(v&6){me(d.component.subTree,h,y,w);return}if(v&128){d.suspense.move(h,y,w);return}if(v&64){I.move(d,h,y,j);return}if(I===Fe){r(S,h,y);for(let L=0;LT.enter(S),A);else{const{leave:L,delayLeave:B,afterLeave:$}=T,Y=()=>{d.ctx.isUnmounted?s(S):r(S,h,y)},oe=()=>{S._isLeaving&&S[ra](!0),L(S,()=>{Y(),$&&$()})};B?B(S,Y,oe):oe()}else r(S,h,y)},fe=(d,h,y,w=!1,A=!1)=>{const{type:S,props:I,ref:T,children:x,dynamicChildren:v,shapeFlag:H,patchFlag:L,dirs:B,cacheIndex:$}=d;if(L===-2&&(A=!1),T!=null&&(ht(),hn(T,null,y,d,!0),pt()),$!=null&&(h.renderCache[$]=void 0),H&256){h.ctx.deactivate(d);return}const Y=H&1&&B,oe=!Gt(d);let re;if(oe&&(re=I&&I.onVnodeBeforeUnmount)&&et(re,h,d),H&6)Xe(d.component,y,w);else{if(H&128){d.suspense.unmount(y,w);return}Y&&Tt(d,null,h,"beforeUnmount"),H&64?d.type.remove(d,h,y,j,w):v&&!v.hasOnce&&(S!==Fe||L>0&&L&64)?He(v,h,y,!1,!0):(S===Fe&&L&384||!A&&H&16)&&He(x,h,y),w&&Je(d)}(oe&&(re=I&&I.onVnodeUnmounted)||Y)&&ve(()=>{re&&et(re,h,d),Y&&Tt(d,null,h,"unmounted")},y)},Je=d=>{const{type:h,el:y,anchor:w,transition:A}=d;if(h===Fe){qe(y,w);return}if(h===Vn){P(d);return}const S=()=>{s(y),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(d.shapeFlag&1&&A&&!A.persisted){const{leave:I,delayLeave:T}=A,x=()=>I(y,S);T?T(d.el,S,x):x()}else S()},qe=(d,h)=>{let y;for(;d!==h;)y=p(d),s(d),d=y;s(h)},Xe=(d,h,y)=>{const{bum:w,scope:A,job:S,subTree:I,um:T,m:x,a:v}=d;no(x),no(v),w&&Bn(w),A.stop(),S&&(S.flags|=8,fe(I,d,h,y)),T&&ve(T,h),ve(()=>{d.isUnmounted=!0},h)},He=(d,h,y,w=!1,A=!1,S=0)=>{for(let I=S;I{if(d.shapeFlag&6)return R(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const h=p(d.anchor||d.el),y=h&&h[Hi];return y?p(y):h};let F=!1;const D=(d,h,y)=>{let w;d==null?h._vnode&&(fe(h._vnode,null,null,!0),w=h._vnode.component):b(h._vnode||null,d,h,null,null,null,y),h._vnode=d,F||(F=!0,$s(w),Fi(),F=!1)},j={p:b,um:fe,m:me,r:Je,mt:Re,mc:V,pc:z,pbc:ee,n:R,o:e};return{render:D,hydrate:void 0,createApp:Aa(D)}}function Nr({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 Ct({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Ha(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Cs(e,t,n=!1){const r=e.children,s=t.children;if(q(r)&&q(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function il(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:il(t)}function no(e){if(e)for(let t=0;te.__isSuspense;function Va(e,t){t&&t.pendingBranch?q(e)?t.effects.push(...e):t.effects.push(e):Jc(e)}const Fe=Symbol.for("v-fgt"),mr=Symbol.for("v-txt"),gt=Symbol.for("v-cmt"),Vn=Symbol.for("v-stc"),mn=[];let Ue=null;function er(e=!1){mn.push(Ue=e?null:[])}function qa(){mn.pop(),Ue=mn[mn.length-1]||null}let Sn=1;function tr(e,t=!1){Sn+=e,e<0&&Ue&&t&&(Ue.hasOnce=!0)}function al(e){return e.dynamicChildren=Sn>0?Ue||$t:null,qa(),Sn>0&&Ue&&Ue.push(e),e}function Th(e,t,n,r,s,o){return al(fl(e,t,n,r,s,o,!0))}function nr(e,t,n,r,s){return al(Ce(e,t,n,r,s,!0))}function Rn(e){return e?e.__v_isVNode===!0:!1}function rn(e,t){return e.type===t.type&&e.key===t.key}const ul=({key:e})=>e??null,qn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?de(e)||ce(e)||W(e)?{i:we,r:e,k:t,f:!!n}:e:null);function fl(e,t=null,n=null,r=0,s=null,o=e===Fe?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ul(t),ref:t&&qn(t),scopeId:Ui,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:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:we};return l?(Ps(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=de(n)?8:16),Sn>0&&!i&&Ue&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Ue.push(c),c}const Ce=$a;function $a(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===ga)&&(e=gt),Rn(e)){const l=Jt(e,t,!0);return n&&Ps(l,n),Sn>0&&!o&&Ue&&(l.shapeFlag&6?Ue[Ue.indexOf(e)]=l:Ue.push(l)),l.patchFlag=-2,l}if(tu(e)&&(e=e.__vccOpts),t){t=Ka(t);let{class:l,style:c}=t;l&&!de(l)&&(t.class=ms(l)),le(c)&&(fr(c)&&!q(c)&&(c=Se({},c)),t.style=ps(c))}const i=de(e)?1:cl(e)?128:ta(e)?64:le(e)?4:W(e)?2:0;return fl(e,t,n,r,s,i,o,!0)}function Ka(e){return e?fr(e)||el(e)?Se({},e):e:null}function Jt(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?Ga(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&ul(u),ref:t&&t.ref?n&&o?q(o)?o.concat(qn(t)):[o,qn(t)]:qn(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!==Fe?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&&Jt(e.ssContent),ssFallback:e.ssFallback&&Jt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&vs(a,c.clone(a)),a}function Wa(e=" ",t=0){return Ce(mr,null,e,t)}function Ch(e,t){const n=Ce(Vn,null,e);return n.staticCount=t,n}function Ph(e="",t=!1){return t?(er(),nr(gt,null,e)):Ce(gt,null,e)}function st(e){return e==null||typeof e=="boolean"?Ce(gt):q(e)?Ce(Fe,null,e.slice()):Rn(e)?Rt(e):Ce(mr,null,String(e))}function Rt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Jt(e)}function Ps(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(q(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Ps(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!el(t)?t._ctx=we:s===3&&we&&(we.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else W(t)?(t={default:t,_ctx:we},n=32):(t=String(t),r&64?(n=16,t=[Wa(t)]):n=8);e.children=t,e.shapeFlag|=n}function Ga(...e){const t={};for(let n=0;nTe||we;let rr,Yr;{const e=ar(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};rr=t("__VUE_INSTANCE_SETTERS__",n=>Te=n),Yr=t("__VUE_SSR_SETTERS__",n=>An=n)}const Tn=e=>{const t=Te;return rr(e),e.scope.on(),()=>{e.scope.off(),rr(t)}},ro=()=>{Te&&Te.scope.off(),rr(null)};function hl(e){return e.vnode.shapeFlag&4}let An=!1;function Qa(e,t=!1,n=!1){t&&Yr(t);const{props:r,children:s}=e.vnode,o=hl(e);Ia(e,r,o,t),Ma(e,s,n||t);const i=o?Ya(e,t):void 0;return t&&Yr(!1),i}function Ya(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,ya);const{setup:r}=n;if(r){ht();const s=e.setupContext=r.length>1?eu(e):null,o=Tn(e),i=xn(r,e,0,[e.props,s]),l=si(i);if(pt(),o(),(l||e.sp)&&!Gt(e)&&qi(e),l){if(i.then(ro,ro),t)return i.then(c=>{so(e,c)}).catch(c=>{dr(c,e,0)});e.asyncDep=i}else so(e,i)}else pl(e)}function so(e,t,n){W(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:le(t)&&(e.setupState=Ni(t)),pl(e)}function pl(e,t,n){const r=e.type;e.render||(e.render=r.render||ot);{const s=Tn(e);ht();try{_a(e)}finally{pt(),s()}}}const Za={get(e,t){return be(e,"get",""),e[t]}};function eu(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Za),slots:e.slots,emit:e.emit,expose:t}}function gr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ni(Ss(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in pn)return pn[n](e)},has(t,n){return n in t||n in pn}})):e.proxy}function tu(e){return W(e)&&"__vccOpts"in e}const Me=(e,t)=>$c(e,t,An);function ml(e,t,n){try{tr(-1);const r=arguments.length;return r===2?le(t)&&!q(t)?Rn(t)?Ce(e,null,[t]):Ce(e,t):Ce(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Rn(n)&&(n=[n]),Ce(e,t,n))}finally{tr(1)}}const nu="3.5.26";let Zr;const oo=typeof window<"u"&&window.trustedTypes;if(oo)try{Zr=oo.createPolicy("vue",{createHTML:e=>e})}catch{}const gl=Zr?e=>Zr.createHTML(e):e=>e,ru="http://www.w3.org/2000/svg",su="http://www.w3.org/1998/Math/MathML",ut=typeof document<"u"?document:null,io=ut&&ut.createElement("template"),ou={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?ut.createElementNS(ru,e):t==="mathml"?ut.createElementNS(su,e):n?ut.createElement(e,{is:n}):ut.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>ut.createTextNode(e),createComment:e=>ut.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ut.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{io.innerHTML=gl(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=io.content;if(r==="svg"||r==="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]}},iu=Symbol("_vtc");function lu(e,t,n){const r=e[iu];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const lo=Symbol("_vod"),cu=Symbol("_vsh"),au=Symbol(""),uu=/(?:^|;)\s*display\s*:/;function fu(e,t,n){const r=e.style,s=de(n);let o=!1;if(n&&!s){if(t)if(de(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&$n(r,l,"")}else for(const i in t)n[i]==null&&$n(r,i,"");for(const i in n)i==="display"&&(o=!0),$n(r,i,n[i])}else if(s){if(t!==n){const i=r[au];i&&(n+=";"+i),r.cssText=n,o=uu.test(n)}}else t&&e.removeAttribute("style");lo in e&&(e[lo]=o?r.display:"",e[cu]&&(r.display="none"))}const co=/\s*!important$/;function $n(e,t,n){if(q(n))n.forEach(r=>$n(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=du(e,t);co.test(n)?e.setProperty(jt(r),n.replace(co,""),"important"):e[r]=n}}const ao=["Webkit","Moz","ms"],Ir={};function du(e,t){const n=Ir[t];if(n)return n;let r=xt(t);if(r!=="filter"&&r in e)return Ir[t]=r;r=li(r);for(let s=0;sDr||(gu.then(()=>Dr=0),Dr=Date.now());function _u(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;lt(bu(r,n.value),t,5,[r])};return n.value=e,n.attached=yu(),n}function bu(e,t){if(q(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const go=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Eu=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?lu(e,r,i):t==="style"?fu(e,n,r):or(t)?fs(t)||pu(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):wu(e,t,r,i))?(ho(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&fo(e,t,r,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!de(r))?ho(e,xt(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),fo(e,t,r,i))};function wu(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&go(t)&&W(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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return go(t)&&de(n)?!1:t in e}const yo=e=>{const t=e.props["onUpdate:modelValue"]||!1;return q(t)?n=>Bn(t,n):t};function Su(e){e.target.composing=!0}function _o(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Lr=Symbol("_assign");function bo(e,t,n){return t&&(e=e.trim()),n&&(e=hs(e)),e}const Nh={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Lr]=yo(s);const o=r||s.props&&s.props.type==="number";Vt(e,t?"change":"input",i=>{i.target.composing||e[Lr](bo(e.value,n,o))}),(n||o)&&Vt(e,"change",()=>{e.value=bo(e.value,n,o)}),t||(Vt(e,"compositionstart",Su),Vt(e,"compositionend",_o),Vt(e,"change",_o))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Lr]=yo(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?hs(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},Ru=["ctrl","shift","alt","meta"],Au={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Ru.some(n=>e[`${n}Key`]&&!t.includes(n))},Ih=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const t=Ou().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Cu(r);if(!s)return;const o=t._component;!W(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,Tu(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t});function Tu(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Cu(e){return de(e)?document.querySelector(e):e}let yl;const yr=e=>yl=e,_l=Symbol();function es(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var gn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(gn||(gn={}));function Pu(){const e=hi(!0),t=e.run(()=>Lt({}));let n=[],r=[];const s=Ss({install(o){yr(s),s._a=o,o.provide(_l,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const bl=()=>{};function wo(e,t,n,r=bl){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&pi()&&gc(s),s}function Ht(e,...t){e.forEach(n=>{n(...t)})}const Nu=e=>e(),So=Symbol(),Fr=Symbol();function ts(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];es(s)&&es(r)&&e.hasOwnProperty(n)&&!ce(r)&&!it(r)?e[n]=ts(s,r):e[n]=r}return e}const Iu=Symbol();function Du(e){return!es(e)||!Object.prototype.hasOwnProperty.call(e,Iu)}const{assign:Et}=Object;function Lu(e){return!!(ce(e)&&e.effect)}function Fu(e,t,n,r){const{state:s,actions:o,getters:i}=t,l=n.state.value[e];let c;function u(){l||(n.state.value[e]=s?s():{});const a=Bc(n.state.value[e]);return Et(a,o,Object.keys(i||{}).reduce((f,p)=>(f[p]=Ss(Me(()=>{yr(n);const m=n._s.get(e);return i[p].call(m,m)})),f),{}))}return c=El(e,u,t,n,r,!0),c}function El(e,t,n={},r,s,o){let i;const l=Et({actions:{}},n),c={deep:!0};let u,a,f=new Set,p=new Set,m;const g=r.state.value[e];!o&&!g&&(r.state.value[e]={}),Lt({});let b;function E(V){let U;u=a=!1,typeof V=="function"?(V(r.state.value[e]),U={type:gn.patchFunction,storeId:e,events:m}):(ts(r.state.value[e],V),U={type:gn.patchObject,payload:V,storeId:e,events:m});const ee=b=Symbol();Rs().then(()=>{b===ee&&(u=!0)}),a=!0,Ht(f,U,r.state.value[e])}const O=o?function(){const{state:U}=n,ee=U?U():{};this.$patch(ue=>{Et(ue,ee)})}:bl;function C(){i.stop(),f.clear(),p.clear(),r._s.delete(e)}const N=(V,U="")=>{if(So in V)return V[Fr]=U,V;const ee=function(){yr(r);const ue=Array.from(arguments),ye=new Set,pe=new Set;function Re(K){ye.add(K)}function Ve(K){pe.add(K)}Ht(p,{args:ue,name:ee[Fr],store:M,after:Re,onError:Ve});let J;try{J=V.apply(this&&this.$id===e?this:M,ue)}catch(K){throw Ht(pe,K),K}return J instanceof Promise?J.then(K=>(Ht(ye,K),K)).catch(K=>(Ht(pe,K),Promise.reject(K))):(Ht(ye,J),J)};return ee[So]=!0,ee[Fr]=U,ee},P={_p:r,$id:e,$onAction:wo.bind(null,p),$patch:E,$reset:O,$subscribe(V,U={}){const ee=wo(f,V,U.detached,()=>ue()),ue=i.run(()=>fn(()=>r.state.value[e],ye=>{(U.flush==="sync"?a:u)&&V({storeId:e,type:gn.direct,events:m},ye)},Et({},c,U)));return ee},$dispose:C},M=On(P);r._s.set(e,M);const k=(r._a&&r._a.runWithContext||Nu)(()=>r._e.run(()=>(i=hi()).run(()=>t({action:N}))));for(const V in k){const U=k[V];if(ce(U)&&!Lu(U)||it(U))o||(g&&Du(U)&&(ce(U)?U.value=g[V]:ts(U,g[V])),r.state.value[e][V]=U);else if(typeof U=="function"){const ee=N(U,V);k[V]=ee,l.actions[V]=U}}return Et(M,k),Et(Z(M),k),Object.defineProperty(M,"$state",{get:()=>r.state.value[e],set:V=>{E(U=>{Et(U,V)})}}),r._p.forEach(V=>{Et(M,i.run(()=>V({store:M,app:r._a,pinia:r,options:l})))}),g&&o&&n.hydrate&&n.hydrate(M.$state,g),u=!0,a=!0,M}function Mu(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,l){const c=Qc();return i=i||(c?ke(_l,null):null),i&&yr(i),i=yl,i._s.has(e)||(s?El(e,t,r,i):Fu(e,r,i)),i._s.get(e)}return o.$id=e,o}function Dh(e){const t=Z(e),n={};for(const r in t){const s=t[r];s.effect?n[r]=Me({get:()=>e[r],set(o){e[r]=o}}):(ce(s)||it(s))&&(n[r]=Vc(e,r))}return n}const Uu="modulepreload",ju=function(e){return"/"+e},Ro={},tt=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let c=function(u){return Promise.all(u.map(a=>Promise.resolve(a).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=c(n.map(u=>{if(u=ju(u),u in Ro)return;Ro[u]=!0;const a=u.endsWith(".css"),f=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const p=document.createElement("link");if(p.rel=a?"stylesheet":Uu,a||(p.as="script"),p.crossOrigin="",p.href=u,l&&p.setAttribute("nonce",l),document.head.appendChild(p),a)return new Promise((m,g)=>{p.addEventListener("load",m),p.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})};const qt=typeof document<"u";function wl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Bu(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&wl(e.default)}const te=Object.assign;function Mr(e,t){const n={};for(const r in t){const s=t[r];n[r]=We(s)?s.map(e):e(s)}return n}const yn=()=>{},We=Array.isArray;function Ao(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const Sl=/#/g,Hu=/&/g,ku=/\//g,Vu=/=/g,qu=/\?/g,Rl=/\+/g,$u=/%5B/g,Ku=/%5D/g,Al=/%5E/g,Wu=/%60/g,vl=/%7B/g,Gu=/%7C/g,Ol=/%7D/g,zu=/%20/g;function Ns(e){return e==null?"":encodeURI(""+e).replace(Gu,"|").replace($u,"[").replace(Ku,"]")}function Ju(e){return Ns(e).replace(vl,"{").replace(Ol,"}").replace(Al,"^")}function ns(e){return Ns(e).replace(Rl,"%2B").replace(zu,"+").replace(Sl,"%23").replace(Hu,"%26").replace(Wu,"`").replace(vl,"{").replace(Ol,"}").replace(Al,"^")}function Xu(e){return ns(e).replace(Vu,"%3D")}function Qu(e){return Ns(e).replace(Sl,"%23").replace(qu,"%3F")}function Yu(e){return Qu(e).replace(ku,"%2F")}function vn(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Zu=/\/$/,ef=e=>e.replace(Zu,"");function Ur(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return c=l>=0&&c>l?-1:c,c>=0&&(r=t.slice(0,c),o=t.slice(c,l>0?l:t.length),s=e(o.slice(1))),l>=0&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=sf(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:vn(i)}}function tf(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function vo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function nf(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&Xt(t.matched[r],n.matched[s])&&xl(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Xt(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function xl(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!rf(e[n],t[n]))return!1;return!0}function rf(e,t){return We(e)?Oo(e,t):We(t)?Oo(t,e):e?.valueOf()===t?.valueOf()}function Oo(e,t){return We(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function sf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const bt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let rs=(function(e){return e.pop="pop",e.push="push",e})({}),jr=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function of(e){if(!e)if(qt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),ef(e)}const lf=/^[^#]+#/;function cf(e,t){return e.replace(lf,"#")+t}function af(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const _r=()=>({left:window.scrollX,top:window.scrollY});function uf(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=af(s,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 xo(e,t){return(history.state?history.state.position-t:-1)+e}const ss=new Map;function ff(e,t){ss.set(e,t)}function df(e){const t=ss.get(e);return ss.delete(e),t}function hf(e){return typeof e=="string"||e&&typeof e=="object"}function Tl(e){return typeof e=="string"||typeof e=="symbol"}let ae=(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 Cl=Symbol("");ae.MATCHER_NOT_FOUND+"",ae.NAVIGATION_GUARD_REDIRECT+"",ae.NAVIGATION_ABORTED+"",ae.NAVIGATION_CANCELLED+"",ae.NAVIGATION_DUPLICATED+"";function Qt(e,t){return te(new Error,{type:e,[Cl]:!0},t)}function at(e,t){return e instanceof Error&&Cl in e&&(t==null||!!(e.type&t))}const pf=["params","query","hash"];function mf(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of pf)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function gf(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&ns(s)):[r&&ns(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function yf(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=We(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const _f=Symbol(""),Co=Symbol(""),br=Symbol(""),Is=Symbol(""),os=Symbol("");function sn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function At(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,c)=>{const u=p=>{p===!1?c(Qt(ae.NAVIGATION_ABORTED,{from:n,to:t})):p instanceof Error?c(p):hf(p)?c(Qt(ae.NAVIGATION_GUARD_REDIRECT,{from:t,to:p})):(i&&r.enterCallbacks[s]===i&&typeof p=="function"&&i.push(p),l())},a=o(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(a);e.length<3&&(f=f.then(u)),f.catch(p=>c(p))})}function Br(e,t,n,r,s=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(wl(c)){const u=(c.__vccOpts||c)[t];u&&o.push(At(u,n,r,i,l,s))}else{let u=c();o.push(()=>u.then(a=>{if(!a)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=Bu(a)?a.default:a;i.mods[l]=a,i.components[l]=f;const p=(f.__vccOpts||f)[t];return p&&At(p,n,r,i,l,s)()}))}}return o}function bf(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;iXt(u,l))?r.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(u=>Xt(u,c))||s.push(c))}return[n,r,s]}let Ef=()=>location.protocol+"//"+location.host;function Pl(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(i);return l[0]!=="/"&&(l="/"+l),vo(l,"")}return vo(n,e)+r+s}function wf(e,t,n,r){let s=[],o=[],i=null;const l=({state:p})=>{const m=Pl(e,location),g=n.value,b=t.value;let E=0;if(p){if(n.value=m,t.value=p,i&&i===g){i=null;return}E=b?p.position-b.position:0}else r(m);s.forEach(O=>{O(n.value,g,{delta:E,type:rs.pop,direction:E?E>0?jr.forward:jr.back:jr.unknown})})};function c(){i=n.value}function u(p){s.push(p);const m=()=>{const g=s.indexOf(p);g>-1&&s.splice(g,1)};return o.push(m),m}function a(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(te({},p.state,{scroll:_r()}),"")}}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,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?_r():null}}function Sf(e){const{history:t,location:n}=window,r={value:Pl(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.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:Ef()+e+c;try{t[a?"replaceState":"pushState"](u,"",p),s.value=u}catch(m){console.error(m),n[a?"replace":"assign"](p)}}function i(c,u){o(c,te({},t.state,Po(s.value.back,c,s.value.forward,!0),u,{position:s.value.position}),!0),r.value=c}function l(c,u){const a=te({},s.value,t.state,{forward:c,scroll:_r()});o(a.current,a,!0),o(c,te({},Po(r.value,c,null),{position:a.position+1},u),!1),r.value=c}return{location:r,state:s,push:l,replace:i}}function Rf(e){e=of(e);const t=Sf(e),n=wf(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=te({location:"",base:e,go:r,createHref:cf.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function Af(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),Rf(e)}let Nt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var ge=(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})(ge||{});const vf={type:Nt.Static,value:""},Of=/[a-zA-Z0-9_]/;function xf(e){if(!e)return[[]];if(e==="/")return[[vf]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${u}": ${m}`)}let n=ge.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,c,u="",a="";function f(){u&&(n===ge.Static?o.push({type:Nt.Static,value:u}):n===ge.Param||n===ge.ParamRegExp||n===ge.ParamRegExpEnd?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:Nt.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]===Oe.Static+Oe.Segment?1:-1:0}function Nl(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const If={strict:!1,end:!0,sensitive:!1};function Df(e,t,n){const r=Pf(xf(e.path),n),s=te(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function Lf(e,t){const n=[],r=new Map;t=Ao(If,t);function s(f){return r.get(f)}function o(f,p,m){const g=!m,b=Lo(f);b.aliasOf=m&&m.record;const E=Ao(t,f),O=[b];if("alias"in f){const P=typeof f.alias=="string"?[f.alias]:f.alias;for(const M of P)O.push(Lo(te({},b,{components:m?m.record.components:b.components,path:M,aliasOf:m?m.record:b})))}let C,N;for(const P of O){const{path:M}=P;if(p&&M[0]!=="/"){const X=p.record.path,k=X[X.length-1]==="/"?"":"/";P.path=p.record.path+(M&&k+M)}if(C=Df(P,p,E),m?m.alias.push(C):(N=N||C,N!==C&&N.alias.push(C),g&&f.name&&!Fo(C)&&i(f.name)),Il(C)&&c(C),b.children){const X=b.children;for(let k=0;k{i(N)}:yn}function i(f){if(Tl(f)){const p=r.get(f);p&&(r.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&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function c(f){const p=Uf(f,n);n.splice(p,0,f),f.record.name&&!Fo(f)&&r.set(f.record.name,f)}function u(f,p){let m,g={},b,E;if("name"in f&&f.name){if(m=r.get(f.name),!m)throw Qt(ae.MATCHER_NOT_FOUND,{location:f});E=m.record.name,g=te(Do(p.params,m.keys.filter(N=>!N.optional).concat(m.parent?m.parent.keys.filter(N=>N.optional):[]).map(N=>N.name)),f.params&&Do(f.params,m.keys.map(N=>N.name))),b=m.stringify(g)}else if(f.path!=null)b=f.path,m=n.find(N=>N.re.test(b)),m&&(g=m.parse(b),E=m.record.name);else{if(m=p.name?r.get(p.name):n.find(N=>N.re.test(p.path)),!m)throw Qt(ae.MATCHER_NOT_FOUND,{location:f,currentLocation:p});E=m.record.name,g=te({},p.params,f.params),b=m.stringify(g)}const O=[];let C=m;for(;C;)O.unshift(C.record),C=C.parent;return{name:E,path:b,params:g,matched:O,meta:Mf(O)}}e.forEach(f=>o(f));function a(){n.length=0,r.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:a,getRoutes:l,getRecordMatcher:s}}function Do(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function Lo(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Ff(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 Ff(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function Fo(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Mf(e){return e.reduce((t,n)=>te(t,n.meta),{})}function Uf(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;Nl(e,t[o])<0?r=o:n=o+1}const s=jf(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function jf(e){let t=e;for(;t=t.parent;)if(Il(t)&&Nl(e,t)===0)return t}function Il({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Mo(e){const t=ke(br),n=ke(Is),r=Me(()=>{const c=Ot(e.to);return t.resolve(c)}),s=Me(()=>{const{matched:c}=r.value,{length:u}=c,a=c[u-1],f=n.matched;if(!a||!f.length)return-1;const p=f.findIndex(Xt.bind(null,a));if(p>-1)return p;const m=Uo(c[u-2]);return u>1&&Uo(a)===m&&f[f.length-1].path!==m?f.findIndex(Xt.bind(null,c[u-2])):p}),o=Me(()=>s.value>-1&&qf(n.params,r.value.params)),i=Me(()=>s.value>-1&&s.value===n.matched.length-1&&xl(n.params,r.value.params));function l(c={}){if(Vf(c)){const u=t[Ot(e.replace)?"replace":"push"](Ot(e.to)).catch(yn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Me(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function Bf(e){return e.length===1?e[0]:e}const Hf=Os({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=On(Mo(e)),{options:r}=ke(br),s=Me(()=>({[jo(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[jo(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&Bf(t.default(n));return e.custom?o:ml("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),kf=Hf;function Vf(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 qf(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!We(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function Uo(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const jo=(e,t,n)=>e??t??n,$f=Os({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=ke(os),s=Me(()=>e.route||r.value),o=ke(Co,0),i=Me(()=>{let u=Ot(o);const{matched:a}=s.value;let f;for(;(f=a[u])&&!f.components;)u++;return u}),l=Me(()=>s.value.matched[i.value]);Hn(Co,Me(()=>i.value+1)),Hn(_f,l),Hn(os,s);const c=Lt();return fn(()=>[c.value,l.value,e.name],([u,a,f],[p,m,g])=>{a&&(a.instances[f]=u,m&&m!==a&&u&&u===p&&(a.leaveGuards.size||(a.leaveGuards=m.leaveGuards),a.updateGuards.size||(a.updateGuards=m.updateGuards))),u&&a&&(!m||!Xt(a,m)||!p)&&(a.enterCallbacks[f]||[]).forEach(b=>b(u))},{flush:"post"}),()=>{const u=s.value,a=e.name,f=l.value,p=f&&f.components[a];if(!p)return Bo(n.default,{Component:p,route:u});const m=f.props[a],g=m?m===!0?u.params:typeof m=="function"?m(u):m:null,E=ml(p,te({},g,t,{onVnodeUnmounted:O=>{O.component.isUnmounted&&(f.instances[a]=null)},ref:c}));return Bo(n.default,{Component:E,route:u})||E}}});function Bo(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Dl=$f;function Kf(e){const t=Lf(e.routes,e),n=e.parseQuery||gf,r=e.stringifyQuery||To,s=e.history,o=sn(),i=sn(),l=sn(),c=Mc(bt);let u=bt;qt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const a=Mr.bind(null,R=>""+R),f=Mr.bind(null,Yu),p=Mr.bind(null,vn);function m(R,F){let D,j;return Tl(R)?(D=t.getRecordMatcher(R),j=F):j=R,t.addRoute(j,D)}function g(R){const F=t.getRecordMatcher(R);F&&t.removeRoute(F)}function b(){return t.getRoutes().map(R=>R.record)}function E(R){return!!t.getRecordMatcher(R)}function O(R,F){if(F=te({},F||c.value),typeof R=="string"){const y=Ur(n,R,F.path),w=t.resolve({path:y.path},F),A=s.createHref(y.fullPath);return te(y,w,{params:p(w.params),hash:vn(y.hash),redirectedFrom:void 0,href:A})}let D;if(R.path!=null)D=te({},R,{path:Ur(n,R.path,F.path).path});else{const y=te({},R.params);for(const w in y)y[w]==null&&delete y[w];D=te({},R,{params:f(y)}),F.params=f(F.params)}const j=t.resolve(D,F),Q=R.hash||"";j.params=a(p(j.params));const d=tf(r,te({},R,{hash:Ju(Q),path:j.path})),h=s.createHref(d);return te({fullPath:d,hash:Q,query:r===To?yf(R.query):R.query||{}},j,{redirectedFrom:void 0,href:h})}function C(R){return typeof R=="string"?Ur(n,R,c.value.path):te({},R)}function N(R,F){if(u!==R)return Qt(ae.NAVIGATION_CANCELLED,{from:F,to:R})}function P(R){return k(R)}function M(R){return P(te(C(R),{replace:!0}))}function X(R,F){const D=R.matched[R.matched.length-1];if(D&&D.redirect){const{redirect:j}=D;let Q=typeof j=="function"?j(R,F):j;return typeof Q=="string"&&(Q=Q.includes("?")||Q.includes("#")?Q=C(Q):{path:Q},Q.params={}),te({query:R.query,hash:R.hash,params:Q.path!=null?{}:R.params},Q)}}function k(R,F){const D=u=O(R),j=c.value,Q=R.state,d=R.force,h=R.replace===!0,y=X(D,j);if(y)return k(te(C(y),{state:typeof y=="object"?te({},Q,y.state):Q,force:d,replace:h}),F||D);const w=D;w.redirectedFrom=F;let A;return!d&&nf(r,j,D)&&(A=Qt(ae.NAVIGATION_DUPLICATED,{to:w,from:j}),me(j,j,!0,!1)),(A?Promise.resolve(A):ee(w,j)).catch(S=>at(S)?at(S,ae.NAVIGATION_GUARD_REDIRECT)?S:ze(S):z(S,w,j)).then(S=>{if(S){if(at(S,ae.NAVIGATION_GUARD_REDIRECT))return k(te({replace:h},C(S.to),{state:typeof S.to=="object"?te({},Q,S.to.state):Q,force:d}),F||w)}else S=ye(w,j,!0,h,Q);return ue(w,j,S),S})}function V(R,F){const D=N(R,F);return D?Promise.reject(D):Promise.resolve()}function U(R){const F=qe.values().next().value;return F&&typeof F.runWithContext=="function"?F.runWithContext(R):R()}function ee(R,F){let D;const[j,Q,d]=bf(R,F);D=Br(j.reverse(),"beforeRouteLeave",R,F);for(const y of j)y.leaveGuards.forEach(w=>{D.push(At(w,R,F))});const h=V.bind(null,R,F);return D.push(h),He(D).then(()=>{D=[];for(const y of o.list())D.push(At(y,R,F));return D.push(h),He(D)}).then(()=>{D=Br(Q,"beforeRouteUpdate",R,F);for(const y of Q)y.updateGuards.forEach(w=>{D.push(At(w,R,F))});return D.push(h),He(D)}).then(()=>{D=[];for(const y of d)if(y.beforeEnter)if(We(y.beforeEnter))for(const w of y.beforeEnter)D.push(At(w,R,F));else D.push(At(y.beforeEnter,R,F));return D.push(h),He(D)}).then(()=>(R.matched.forEach(y=>y.enterCallbacks={}),D=Br(d,"beforeRouteEnter",R,F,U),D.push(h),He(D))).then(()=>{D=[];for(const y of i.list())D.push(At(y,R,F));return D.push(h),He(D)}).catch(y=>at(y,ae.NAVIGATION_CANCELLED)?y:Promise.reject(y))}function ue(R,F,D){l.list().forEach(j=>U(()=>j(R,F,D)))}function ye(R,F,D,j,Q){const d=N(R,F);if(d)return d;const h=F===bt,y=qt?history.state:{};D&&(j||h?s.replace(R.fullPath,te({scroll:h&&y&&y.scroll},Q)):s.push(R.fullPath,Q)),c.value=R,me(R,F,D,h),ze()}let pe;function Re(){pe||(pe=s.listen((R,F,D)=>{if(!Xe.listening)return;const j=O(R),Q=X(j,Xe.currentRoute.value);if(Q){k(te(Q,{replace:!0,force:!0}),j).catch(yn);return}u=j;const d=c.value;qt&&ff(xo(d.fullPath,D.delta),_r()),ee(j,d).catch(h=>at(h,ae.NAVIGATION_ABORTED|ae.NAVIGATION_CANCELLED)?h:at(h,ae.NAVIGATION_GUARD_REDIRECT)?(k(te(C(h.to),{force:!0}),j).then(y=>{at(y,ae.NAVIGATION_ABORTED|ae.NAVIGATION_DUPLICATED)&&!D.delta&&D.type===rs.pop&&s.go(-1,!1)}).catch(yn),Promise.reject()):(D.delta&&s.go(-D.delta,!1),z(h,j,d))).then(h=>{h=h||ye(j,d,!1),h&&(D.delta&&!at(h,ae.NAVIGATION_CANCELLED)?s.go(-D.delta,!1):D.type===rs.pop&&at(h,ae.NAVIGATION_ABORTED|ae.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),ue(j,d,h)}).catch(yn)}))}let Ve=sn(),J=sn(),K;function z(R,F,D){ze(R);const j=J.list();return j.length?j.forEach(Q=>Q(R,F,D)):console.error(R),Promise.reject(R)}function Be(){return K&&c.value!==bt?Promise.resolve():new Promise((R,F)=>{Ve.add([R,F])})}function ze(R){return K||(K=!R,Re(),Ve.list().forEach(([F,D])=>R?D(R):F()),Ve.reset()),R}function me(R,F,D,j){const{scrollBehavior:Q}=e;if(!qt||!Q)return Promise.resolve();const d=!D&&df(xo(R.fullPath,0))||(j||!D)&&history.state&&history.state.scroll||null;return Rs().then(()=>Q(R,F,d)).then(h=>h&&uf(h)).catch(h=>z(h,R,F))}const fe=R=>s.go(R);let Je;const qe=new Set,Xe={currentRoute:c,listening:!0,addRoute:m,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:E,getRoutes:b,resolve:O,options:e,push:P,replace:M,go:fe,back:()=>fe(-1),forward:()=>fe(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:J.add,isReady:Be,install(R){R.component("RouterLink",kf),R.component("RouterView",Dl),R.config.globalProperties.$router=Xe,Object.defineProperty(R.config.globalProperties,"$route",{enumerable:!0,get:()=>Ot(c)}),qt&&!Je&&c.value===bt&&(Je=!0,P(s.location).catch(j=>{}));const F={};for(const j in bt)Object.defineProperty(F,j,{get:()=>c.value[j],enumerable:!0});R.provide(br,Xe),R.provide(Is,Ci(F)),R.provide(os,c);const D=R.unmount;qe.add(R),R.unmount=function(){qe.delete(R),qe.size<1&&(u=bt,pe&&pe(),pe=null,c.value=bt,Je=!1,K=!1),D()}}};function He(R){return R.reduce((F,D)=>F.then(()=>U(D)),Promise.resolve())}return Xe}function Lh(){return ke(br)}function Fh(e){return ke(Is)}function Ll(e,t){return function(){return e.apply(t,arguments)}}const{toString:Wf}=Object.prototype,{getPrototypeOf:Ds}=Object,{iterator:Er,toStringTag:Fl}=Symbol,wr=(e=>t=>{const n=Wf.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ge=e=>(e=e.toLowerCase(),t=>wr(t)===e),Sr=e=>t=>typeof t===e,{isArray:Zt}=Array,Yt=Sr("undefined");function Cn(e){return e!==null&&!Yt(e)&&e.constructor!==null&&!Yt(e.constructor)&&Ie(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Ml=Ge("ArrayBuffer");function Gf(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Ml(e.buffer),t}const zf=Sr("string"),Ie=Sr("function"),Ul=Sr("number"),Pn=e=>e!==null&&typeof e=="object",Jf=e=>e===!0||e===!1,Kn=e=>{if(wr(e)!=="object")return!1;const t=Ds(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Fl in e)&&!(Er in e)},Xf=e=>{if(!Pn(e)||Cn(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},Qf=Ge("Date"),Yf=Ge("File"),Zf=Ge("Blob"),ed=Ge("FileList"),td=e=>Pn(e)&&Ie(e.pipe),nd=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Ie(e.append)&&((t=wr(e))==="formdata"||t==="object"&&Ie(e.toString)&&e.toString()==="[object FormData]"))},rd=Ge("URLSearchParams"),[sd,od,id,ld]=["ReadableStream","Request","Response","Headers"].map(Ge),cd=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Nn(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),Zt(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const It=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Bl=e=>!Yt(e)&&e!==It;function is(){const{caseless:e,skipUndefined:t}=Bl(this)&&this||{},n={},r=(s,o)=>{const i=e&&jl(n,o)||o;Kn(n[i])&&Kn(s)?n[i]=is(n[i],s):Kn(s)?n[i]=is({},s):Zt(s)?n[i]=s.slice():(!t||!Yt(s))&&(n[i]=s)};for(let s=0,o=arguments.length;s(Nn(t,(s,o)=>{n&&Ie(s)?e[o]=Ll(s,n):e[o]=s},{allOwnKeys:r}),e),ud=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),fd=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},dd=(e,t,n,r)=>{let s,o,i;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&Ds(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},hd=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},pd=e=>{if(!e)return null;if(Zt(e))return e;let t=e.length;if(!Ul(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},md=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Ds(Uint8Array)),gd=(e,t)=>{const r=(e&&e[Er]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},yd=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},_d=Ge("HTMLFormElement"),bd=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),Ho=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Ed=Ge("RegExp"),Hl=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Nn(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},wd=e=>{Hl(e,(t,n)=>{if(Ie(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Ie(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Sd=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return Zt(e)?r(e):r(String(e).split(t)),n},Rd=()=>{},Ad=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function vd(e){return!!(e&&Ie(e.append)&&e[Fl]==="FormData"&&e[Er])}const Od=e=>{const t=new Array(10),n=(r,s)=>{if(Pn(r)){if(t.indexOf(r)>=0)return;if(Cn(r))return r;if(!("toJSON"in r)){t[s]=r;const o=Zt(r)?[]:{};return Nn(r,(i,l)=>{const c=n(i,s+1);!Yt(c)&&(o[l]=c)}),t[s]=void 0,o}}return r};return n(e,0)},xd=Ge("AsyncFunction"),Td=e=>e&&(Pn(e)||Ie(e))&&Ie(e.then)&&Ie(e.catch),kl=((e,t)=>e?setImmediate:t?((n,r)=>(It.addEventListener("message",({source:s,data:o})=>{s===It&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),It.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Ie(It.postMessage)),Cd=typeof queueMicrotask<"u"?queueMicrotask.bind(It):typeof process<"u"&&process.nextTick||kl,Pd=e=>e!=null&&Ie(e[Er]),_={isArray:Zt,isArrayBuffer:Ml,isBuffer:Cn,isFormData:nd,isArrayBufferView:Gf,isString:zf,isNumber:Ul,isBoolean:Jf,isObject:Pn,isPlainObject:Kn,isEmptyObject:Xf,isReadableStream:sd,isRequest:od,isResponse:id,isHeaders:ld,isUndefined:Yt,isDate:Qf,isFile:Yf,isBlob:Zf,isRegExp:Ed,isFunction:Ie,isStream:td,isURLSearchParams:rd,isTypedArray:md,isFileList:ed,forEach:Nn,merge:is,extend:ad,trim:cd,stripBOM:ud,inherits:fd,toFlatObject:dd,kindOf:wr,kindOfTest:Ge,endsWith:hd,toArray:pd,forEachEntry:gd,matchAll:yd,isHTMLForm:_d,hasOwnProperty:Ho,hasOwnProp:Ho,reduceDescriptors:Hl,freezeMethods:wd,toObjectSet:Sd,toCamelCase:bd,noop:Rd,toFiniteNumber:Ad,findKey:jl,global:It,isContextDefined:Bl,isSpecCompliantForm:vd,toJSONObject:Od,isAsyncFn:xd,isThenable:Td,setImmediate:kl,asap:Cd,isIterable:Pd};function G(e,t,n,r,s){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),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}_.inherits(G,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:_.toJSONObject(this.config),code:this.code,status:this.status}}});const Vl=G.prototype,ql={};["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=>{ql[e]={value:e}});Object.defineProperties(G,ql);Object.defineProperty(Vl,"isAxiosError",{value:!0});G.from=(e,t,n,r,s,o)=>{const i=Object.create(Vl);_.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 G.call(i,l,c,n,r,s),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 Nd=null;function ls(e){return _.isPlainObject(e)||_.isArray(e)}function $l(e){return _.endsWith(e,"[]")?e.slice(0,-2):e}function ko(e,t,n){return e?e.concat(t).map(function(s,o){return s=$l(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function Id(e){return _.isArray(e)&&!e.some(ls)}const Dd=_.toFlatObject(_,{},null,function(t){return/^is[A-Z]/.test(t)});function Rr(e,t,n){if(!_.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=_.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(b,E){return!_.isUndefined(E[b])});const r=n.metaTokens,s=n.visitor||a,o=n.dots,i=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&_.isSpecCompliantForm(t);if(!_.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(_.isDate(g))return g.toISOString();if(_.isBoolean(g))return g.toString();if(!c&&_.isBlob(g))throw new G("Blob is not supported. Use a Buffer instead.");return _.isArrayBuffer(g)||_.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function a(g,b,E){let O=g;if(g&&!E&&typeof g=="object"){if(_.endsWith(b,"{}"))b=r?b:b.slice(0,-2),g=JSON.stringify(g);else if(_.isArray(g)&&Id(g)||(_.isFileList(g)||_.endsWith(b,"[]"))&&(O=_.toArray(g)))return b=$l(b),O.forEach(function(N,P){!(_.isUndefined(N)||N===null)&&t.append(i===!0?ko([b],P,o):i===null?b:b+"[]",u(N))}),!1}return ls(g)?!0:(t.append(ko(E,b,o),u(g)),!1)}const f=[],p=Object.assign(Dd,{defaultVisitor:a,convertValue:u,isVisitable:ls});function m(g,b){if(!_.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+b.join("."));f.push(g),_.forEach(g,function(O,C){(!(_.isUndefined(O)||O===null)&&s.call(t,O,_.isString(C)?C.trim():C,b,p))===!0&&m(O,b?b.concat(C):[C])}),f.pop()}}if(!_.isObject(e))throw new TypeError("data must be an object");return m(e),t}function Vo(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Ls(e,t){this._pairs=[],e&&Rr(e,this,t)}const Kl=Ls.prototype;Kl.append=function(t,n){this._pairs.push([t,n])};Kl.toString=function(t){const n=t?function(r){return t.call(this,r,Vo)}:Vo;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Ld(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Wl(e,t,n){if(!t)return e;const r=n&&n.encode||Ld;_.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=_.isURLSearchParams(t)?t.toString():new Ls(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class qo{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){_.forEach(this.handlers,function(r){r!==null&&t(r)})}}const Gl={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Fd=typeof URLSearchParams<"u"?URLSearchParams:Ls,Md=typeof FormData<"u"?FormData:null,Ud=typeof Blob<"u"?Blob:null,jd={isBrowser:!0,classes:{URLSearchParams:Fd,FormData:Md,Blob:Ud},protocols:["http","https","file","blob","url","data"]},Fs=typeof window<"u"&&typeof document<"u",cs=typeof navigator=="object"&&navigator||void 0,Bd=Fs&&(!cs||["ReactNative","NativeScript","NS"].indexOf(cs.product)<0),Hd=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",kd=Fs&&window.location.href||"http://localhost",Vd=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Fs,hasStandardBrowserEnv:Bd,hasStandardBrowserWebWorkerEnv:Hd,navigator:cs,origin:kd},Symbol.toStringTag,{value:"Module"})),Ee={...Vd,...jd};function qd(e,t){return Rr(e,new Ee.classes.URLSearchParams,{visitor:function(n,r,s,o){return Ee.isNode&&_.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function $d(e){return _.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Kd(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&_.isArray(s)?s.length:i,c?(_.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!l):((!s[i]||!_.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&_.isArray(s[i])&&(s[i]=Kd(s[i])),!l)}if(_.isFormData(e)&&_.isFunction(e.entries)){const n={};return _.forEachEntry(e,(r,s)=>{t($d(r),s,n,0)}),n}return null}function Wd(e,t,n){if(_.isString(e))try{return(t||JSON.parse)(e),_.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const In={transitional:Gl,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=_.isObject(t);if(o&&_.isHTMLForm(t)&&(t=new FormData(t)),_.isFormData(t))return s?JSON.stringify(zl(t)):t;if(_.isArrayBuffer(t)||_.isBuffer(t)||_.isStream(t)||_.isFile(t)||_.isBlob(t)||_.isReadableStream(t))return t;if(_.isArrayBufferView(t))return t.buffer;if(_.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return qd(t,this.formSerializer).toString();if((l=_.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return Rr(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),Wd(t)):t}],transformResponse:[function(t){const n=this.transitional||In.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(_.isResponse(t)||_.isReadableStream(t))return t;if(t&&_.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(i)throw l.name==="SyntaxError"?G.from(l,G.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:Ee.classes.FormData,Blob:Ee.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};_.forEach(["delete","get","head","post","put","patch"],e=>{In.headers[e]={}});const Gd=_.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"]),zd=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&Gd[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},$o=Symbol("internals");function on(e){return e&&String(e).trim().toLowerCase()}function Wn(e){return e===!1||e==null?e:_.isArray(e)?e.map(Wn):String(e)}function Jd(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const Xd=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Hr(e,t,n,r,s){if(_.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!_.isString(t)){if(_.isString(r))return t.indexOf(r)!==-1;if(_.isRegExp(r))return r.test(t)}}function Qd(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Yd(e,t){const n=_.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let De=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(l,c,u){const a=on(c);if(!a)throw new Error("header name must be a non-empty string");const f=_.findKey(s,a);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||c]=Wn(l))}const i=(l,c)=>_.forEach(l,(u,a)=>o(u,a,c));if(_.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(_.isString(t)&&(t=t.trim())&&!Xd(t))i(zd(t),n);else if(_.isObject(t)&&_.isIterable(t)){let l={},c,u;for(const a of t){if(!_.isArray(a))throw TypeError("Object iterator must return a key-value pair");l[u=a[0]]=(c=l[u])?_.isArray(c)?[...c,a[1]]:[c,a[1]]:a[1]}i(l,n)}else t!=null&&o(n,t,r);return this}get(t,n){if(t=on(t),t){const r=_.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return Jd(s);if(_.isFunction(n))return n.call(this,s,r);if(_.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=on(t),t){const r=_.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Hr(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=on(i),i){const l=_.findKey(r,i);l&&(!n||Hr(r,r[l],l,n))&&(delete r[l],s=!0)}}return _.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||Hr(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return _.forEach(this,(s,o)=>{const i=_.findKey(r,o);if(i){n[i]=Wn(s),delete n[o];return}const l=t?Qd(o):String(o).trim();l!==o&&delete n[o],n[l]=Wn(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return _.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&_.isArray(r)?r.join(", "):r)}),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 r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[$o]=this[$o]={accessors:{}}).accessors,s=this.prototype;function o(i){const l=on(i);r[l]||(Yd(s,i),r[l]=!0)}return _.isArray(t)?t.forEach(o):o(t),this}};De.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);_.reduceDescriptors(De.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});_.freezeMethods(De);function kr(e,t){const n=this||In,r=t||n,s=De.from(r.headers);let o=r.data;return _.forEach(e,function(l){o=l.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function Jl(e){return!!(e&&e.__CANCEL__)}function en(e,t,n){G.call(this,e??"canceled",G.ERR_CANCELED,t,n),this.name="CanceledError"}_.inherits(en,G,{__CANCEL__:!0});function Xl(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new G("Request failed with status code "+n.status,[G.ERR_BAD_REQUEST,G.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function Zd(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function eh(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),a=r[o];i||(i=u),n[s]=c,r[s]=u;let f=o,p=0;for(;f!==s;)p+=n[f++],f=f%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i{n=a,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const a=Date.now(),f=a-n;f>=r?i(u,a):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-f)))},()=>s&&i(s)]}const sr=(e,t,n=3)=>{let r=0;const s=eh(50,250);return th(o=>{const i=o.loaded,l=o.lengthComputable?o.total:void 0,c=i-r,u=s(c),a=i<=l;r=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)},Ko=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Wo=e=>(...t)=>_.asap(()=>e(...t)),nh=Ee.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Ee.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Ee.origin),Ee.navigator&&/(msie|trident)/i.test(Ee.navigator.userAgent)):()=>!0,rh=Ee.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];_.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),_.isString(r)&&l.push(`path=${r}`),_.isString(s)&&l.push(`domain=${s}`),o===!0&&l.push("secure"),_.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 sh(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function oh(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Ql(e,t,n){let r=!sh(t);return e&&(r||n==!1)?oh(e,t):t}const Go=e=>e instanceof De?{...e}:e;function Ut(e,t){t=t||{};const n={};function r(u,a,f,p){return _.isPlainObject(u)&&_.isPlainObject(a)?_.merge.call({caseless:p},u,a):_.isPlainObject(a)?_.merge({},a):_.isArray(a)?a.slice():a}function s(u,a,f,p){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u,f,p)}else return r(u,a,f,p)}function o(u,a){if(!_.isUndefined(a))return r(void 0,a)}function i(u,a){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u)}else return r(void 0,a)}function l(u,a,f){if(f in t)return r(u,a);if(f in e)return r(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)=>s(Go(u),Go(a),f,!0)};return _.forEach(Object.keys({...e,...t}),function(a){const f=c[a]||s,p=f(e[a],t[a],a);_.isUndefined(p)&&f!==l||(n[a]=p)}),n}const Yl=e=>{const t=Ut({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:l}=t;if(t.headers=i=De.from(i),t.url=Wl(Ql(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&i.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),_.isFormData(n)){if(Ee.hasStandardBrowserEnv||Ee.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(_.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(Ee.hasStandardBrowserEnv&&(r&&_.isFunction(r)&&(r=r(t)),r||r!==!1&&nh(t.url))){const c=s&&o&&rh.read(o);c&&i.set(s,c)}return t},ih=typeof XMLHttpRequest<"u",lh=ih&&function(e){return new Promise(function(n,r){const s=Yl(e);let o=s.data;const i=De.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,a,f,p,m,g;function b(){m&&m(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(a),s.signal&&s.signal.removeEventListener("abort",a)}let E=new XMLHttpRequest;E.open(s.method.toUpperCase(),s.url,!0),E.timeout=s.timeout;function O(){if(!E)return;const N=De.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),M={data:!l||l==="text"||l==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:N,config:e,request:E};Xl(function(k){n(k),b()},function(k){r(k),b()},M),E=null}"onloadend"in E?E.onloadend=O:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.indexOf("file:")===0)||setTimeout(O)},E.onabort=function(){E&&(r(new G("Request aborted",G.ECONNABORTED,e,E)),E=null)},E.onerror=function(P){const M=P&&P.message?P.message:"Network Error",X=new G(M,G.ERR_NETWORK,e,E);X.event=P||null,r(X),E=null},E.ontimeout=function(){let P=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const M=s.transitional||Gl;s.timeoutErrorMessage&&(P=s.timeoutErrorMessage),r(new G(P,M.clarifyTimeoutError?G.ETIMEDOUT:G.ECONNABORTED,e,E)),E=null},o===void 0&&i.setContentType(null),"setRequestHeader"in E&&_.forEach(i.toJSON(),function(P,M){E.setRequestHeader(M,P)}),_.isUndefined(s.withCredentials)||(E.withCredentials=!!s.withCredentials),l&&l!=="json"&&(E.responseType=s.responseType),u&&([p,g]=sr(u,!0),E.addEventListener("progress",p)),c&&E.upload&&([f,m]=sr(c),E.upload.addEventListener("progress",f),E.upload.addEventListener("loadend",m)),(s.cancelToken||s.signal)&&(a=N=>{E&&(r(!N||N.type?new en(null,e,E):N),E.abort(),E=null)},s.cancelToken&&s.cancelToken.subscribe(a),s.signal&&(s.signal.aborted?a():s.signal.addEventListener("abort",a)));const C=Zd(s.url);if(C&&Ee.protocols.indexOf(C)===-1){r(new G("Unsupported protocol "+C+":",G.ERR_BAD_REQUEST,e));return}E.send(o||null)})},ch=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,l();const a=u instanceof Error?u:this.reason;r.abort(a instanceof G?a:new en(a instanceof Error?a.message:a))}};let i=t&&setTimeout(()=>{i=null,o(new G(`timeout ${t} of ms exceeded`,G.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}=r;return c.unsubscribe=()=>_.asap(l),c}},ah=function*(e,t){let n=e.byteLength;if(n{const s=uh(e,t);let o=0,i,l=c=>{i||(i=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:a}=await s.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),s.return()}},{highWaterMark:2})},Jo=64*1024,{isFunction:Un}=_,dh=(({Request:e,Response:t})=>({Request:e,Response:t}))(_.global),{ReadableStream:Xo,TextEncoder:Qo}=_.global,Yo=(e,...t)=>{try{return!!e(...t)}catch{return!1}},hh=e=>{e=_.merge.call({skipUndefined:!0},dh,e);const{fetch:t,Request:n,Response:r}=e,s=t?Un(t):typeof fetch=="function",o=Un(n),i=Un(r);if(!s)return!1;const l=s&&Un(Xo),c=s&&(typeof Qo=="function"?(g=>b=>g.encode(b))(new Qo):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=o&&l&&Yo(()=>{let g=!1;const b=new n(Ee.origin,{body:new Xo,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!b}),a=i&&l&&Yo(()=>_.isReadableStream(new r("").body)),f={stream:a&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(b,E)=>{let O=b&&b[g];if(O)return O.call(b);throw new G(`Response type '${g}' is not supported`,G.ERR_NOT_SUPPORT,E)})});const p=async g=>{if(g==null)return 0;if(_.isBlob(g))return g.size;if(_.isSpecCompliantForm(g))return(await new n(Ee.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(_.isArrayBufferView(g)||_.isArrayBuffer(g))return g.byteLength;if(_.isURLSearchParams(g)&&(g=g+""),_.isString(g))return(await c(g)).byteLength},m=async(g,b)=>{const E=_.toFiniteNumber(g.getContentLength());return E??p(b)};return async g=>{let{url:b,method:E,data:O,signal:C,cancelToken:N,timeout:P,onDownloadProgress:M,onUploadProgress:X,responseType:k,headers:V,withCredentials:U="same-origin",fetchOptions:ee}=Yl(g),ue=t||fetch;k=k?(k+"").toLowerCase():"text";let ye=ch([C,N&&N.toAbortSignal()],P),pe=null;const Re=ye&&ye.unsubscribe&&(()=>{ye.unsubscribe()});let Ve;try{if(X&&u&&E!=="get"&&E!=="head"&&(Ve=await m(V,O))!==0){let me=new n(b,{method:"POST",body:O,duplex:"half"}),fe;if(_.isFormData(O)&&(fe=me.headers.get("content-type"))&&V.setContentType(fe),me.body){const[Je,qe]=Ko(Ve,sr(Wo(X)));O=zo(me.body,Jo,Je,qe)}}_.isString(U)||(U=U?"include":"omit");const J=o&&"credentials"in n.prototype,K={...ee,signal:ye,method:E.toUpperCase(),headers:V.normalize().toJSON(),body:O,duplex:"half",credentials:J?U:void 0};pe=o&&new n(b,K);let z=await(o?ue(pe,ee):ue(b,K));const Be=a&&(k==="stream"||k==="response");if(a&&(M||Be&&Re)){const me={};["status","statusText","headers"].forEach(Xe=>{me[Xe]=z[Xe]});const fe=_.toFiniteNumber(z.headers.get("content-length")),[Je,qe]=M&&Ko(fe,sr(Wo(M),!0))||[];z=new r(zo(z.body,Jo,Je,()=>{qe&&qe(),Re&&Re()}),me)}k=k||"text";let ze=await f[_.findKey(f,k)||"text"](z,g);return!Be&&Re&&Re(),await new Promise((me,fe)=>{Xl(me,fe,{data:ze,headers:De.from(z.headers),status:z.status,statusText:z.statusText,config:g,request:pe})})}catch(J){throw Re&&Re(),J&&J.name==="TypeError"&&/Load failed|fetch/i.test(J.message)?Object.assign(new G("Network Error",G.ERR_NETWORK,g,pe),{cause:J.cause||J}):G.from(J,J&&J.code,g,pe)}}},ph=new Map,Zl=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,l=i,c,u,a=ph;for(;l--;)c=o[l],u=a.get(c),u===void 0&&a.set(c,u=l?new Map:hh(t)),a=u;return u};Zl();const Ms={http:Nd,xhr:lh,fetch:{get:Zl}};_.forEach(Ms,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Zo=e=>`- ${e}`,mh=e=>_.isFunction(e)||e===null||e===!1;function gh(e,t){e=_.isArray(e)?e:[e];const{length:n}=e;let r,s;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(Zo).join(` +`):" "+Zo(i[0]):"as no adapter specified";throw new G("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const ec={getAdapter:gh,adapters:Ms};function Vr(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new en(null,e)}function ei(e){return Vr(e),e.headers=De.from(e.headers),e.data=kr.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),ec.getAdapter(e.adapter||In.adapter,e)(e).then(function(r){return Vr(e),r.data=kr.call(e,e.transformResponse,r),r.headers=De.from(r.headers),r},function(r){return Jl(r)||(Vr(e),r&&r.response&&(r.response.data=kr.call(e,e.transformResponse,r.response),r.response.headers=De.from(r.response.headers))),Promise.reject(r)})}const tc="1.13.2",Ar={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Ar[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const ti={};Ar.transitional=function(t,n,r){function s(o,i){return"[Axios v"+tc+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,l)=>{if(t===!1)throw new G(s(i," has been removed"+(n?" in "+n:"")),G.ERR_DEPRECATED);return n&&!ti[i]&&(ti[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,l):!0}};Ar.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function yh(e,t,n){if(typeof e!="object")throw new G("options must be an object",G.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const l=e[o],c=l===void 0||i(l,o,e);if(c!==!0)throw new G("option "+o+" must be "+c,G.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new G("Unknown option "+o,G.ERR_BAD_OPTION)}}const Gn={assertOptions:yh,validators:Ar},nt=Gn.validators;let Mt=class{constructor(t){this.defaults=t||{},this.interceptors={request:new qo,response:new qo}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Ut(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&Gn.assertOptions(r,{silentJSONParsing:nt.transitional(nt.boolean),forcedJSONParsing:nt.transitional(nt.boolean),clarifyTimeoutError:nt.transitional(nt.boolean)},!1),s!=null&&(_.isFunction(s)?n.paramsSerializer={serialize:s}:Gn.assertOptions(s,{encode:nt.function,serialize:nt.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Gn.assertOptions(n,{baseUrl:nt.spelling("baseURL"),withXsrfToken:nt.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&_.merge(o.common,o[n.method]);o&&_.forEach(["delete","get","head","post","put","patch","common"],g=>{delete o[g]}),n.headers=De.concat(i,o);const l=[];let c=!0;this.interceptors.request.forEach(function(b){typeof b.runWhen=="function"&&b.runWhen(n)===!1||(c=c&&b.synchronous,l.unshift(b.fulfilled,b.rejected))});const u=[];this.interceptors.response.forEach(function(b){u.push(b.fulfilled,b.rejected)});let a,f=0,p;if(!c){const g=[ei.bind(this),void 0];for(g.unshift(...l),g.push(...u),p=g.length,a=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(l=>{r.subscribe(l),o=l}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,l){r.reason||(r.reason=new en(o,i,l),n(r.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=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new nc(function(s){t=s}),cancel:t}}};function bh(e){return function(n){return e.apply(null,n)}}function Eh(e){return _.isObject(e)&&e.isAxiosError===!0}const as={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(as).forEach(([e,t])=>{as[t]=e});function rc(e){const t=new Mt(e),n=Ll(Mt.prototype.request,t);return _.extend(n,Mt.prototype,t,{allOwnKeys:!0}),_.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return rc(Ut(e,s))},n}const he=rc(In);he.Axios=Mt;he.CanceledError=en;he.CancelToken=_h;he.isCancel=Jl;he.VERSION=tc;he.toFormData=Rr;he.AxiosError=G;he.Cancel=he.CanceledError;he.all=function(t){return Promise.all(t)};he.spread=bh;he.isAxiosError=Eh;he.mergeConfig=Ut;he.AxiosHeaders=De;he.formToJSON=e=>zl(_.isHTMLForm(e)?new FormData(e):e);he.getAdapter=ec.getAdapter;he.HttpStatusCode=as;he.default=he;const{Axios:jh,AxiosError:Bh,CanceledError:Hh,isCancel:kh,CancelToken:Vh,VERSION:qh,all:$h,Cancel:Kh,isAxiosError:Wh,spread:Gh,toFormData:zh,AxiosHeaders:Jh,HttpStatusCode:Xh,formToJSON:Qh,getAdapter:Yh,mergeConfig:Zh}=he,_n=he.create({baseURL:"",timeout:3e4,withCredentials:!0});_n.interceptors.request.use(e=>e,e=>Promise.reject(e));_n.interceptors.response.use(e=>e.data,e=>{e.response?.status===401&&(window.location.hash="#/login");const t=e.response?.data?e.response.data.detail||e.response.data.message:e.message;return Promise.reject(new Error(t||"请求失败"))});const jn={login:e=>{const t=new URLSearchParams;return t.append("admin_key",e.password),_n.post("/login",t,{headers:{"Content-Type":"application/x-www-form-urlencoded"}})},logout:()=>_n.post("/logout"),checkAuth:()=>_n.get("/admin/health")},wh=Mu("auth",()=>{const e=Lt(!1),t=Lt(!1),n=Lt(0),r=1e4;let s=null;async function o(c){t.value=!0;try{return await jn.login({password:c}),await jn.checkAuth(),e.value=!0,n.value=Date.now(),!0}catch(u){throw e.value=!1,u}finally{t.value=!1}}async function i(){try{await jn.logout()}finally{e.value=!1,n.value=0}}async function l(){const c=Date.now();if(e.value&&c-n.value(await jn.checkAuth(),e.value=!0,!0))(),await s}catch{return e.value=!1,!1}finally{n.value=Date.now(),s=null}}return{isLoggedIn:e,isLoading:t,login:o,logout:i,checkAuth:l}}),sc=Kf({history:Af("/"),routes:[{path:"/public/uptime",name:"public-uptime",component:()=>tt(()=>import("./PublicUptime-LfbaOwmN.js"),__vite__mapDeps([0,1])),meta:{requiresAuth:!1}},{path:"/public/logs",name:"public-logs",component:()=>tt(()=>import("./PublicLogs-B2pwR7np.js"),[]),meta:{requiresAuth:!1}},{path:"/login",name:"login",component:()=>tt(()=>import("./Login-CmwC2sUy.js"),[]),meta:{requiresAuth:!1}},{path:"/",component:()=>tt(()=>import("./AppShell-B2wCSsyk.js"),__vite__mapDeps([2,3,4,5])),meta:{requiresAuth:!0},children:[{path:"",name:"dashboard",component:()=>tt(()=>import("./Dashboard-CWAyHCd_.js"),__vite__mapDeps([6,7]))},{path:"accounts",name:"accounts",component:()=>tt(()=>import("./Accounts-D9VhnA3_.js"),__vite__mapDeps([8,9,10,4,5,7]))},{path:"settings",name:"settings",component:()=>tt(()=>import("./Settings-CAoCANb4.js"),__vite__mapDeps([11,3,9,10]))},{path:"logs",name:"logs",component:()=>tt(()=>import("./Logs-CnQ-Y30L.js"),__vite__mapDeps([12,9,4]))},{path:"monitor",name:"monitor",component:()=>tt(()=>import("./Monitor-DmtcAJlL.js"),__vite__mapDeps([13,1]))},{path:"docs",name:"docs",component:()=>tt(()=>import("./Docs-D_79t2cc.js"),[])}]}]});sc.beforeEach(async e=>{const t=wh();if(e.meta.requiresAuth&&!await t.checkAuth())return{name:"login"};if(e.name==="login"&&t.isLoggedIn)return{name:"dashboard"}});const Sh=Os({__name:"App",setup(e){return(t,n)=>(er(),nr(Ot(Dl)))}}),Us=xu(Sh),Rh=Pu();Us.use(Rh);Us.use(sc);Us.mount("#app");export{Xc as A,Dl as B,Mu as C,Dh as D,Rs as E,Fe as F,xh as G,On as H,kf as R,vh as T,fl as a,Ph as b,Th as c,Os as d,er as e,Wa as f,_n as g,Lt as h,Me as i,fa as j,ps as k,wh as l,Ah as m,ms as n,ca as o,Lh as p,Fh as q,Oh as r,fn as s,mc as t,Ot as u,Nh as v,Ih as w,Ce as x,nr as y,Ch as z}; diff --git a/static/assets/index-Bh_hLcqi.js b/static/assets/index-Bh_hLcqi.js new file mode 100644 index 0000000000000000000000000000000000000000..159d3356780537ff6d8dbfed2b8f0838cf3efb7f --- /dev/null +++ b/static/assets/index-Bh_hLcqi.js @@ -0,0 +1,7 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PublicUptime-CU-VgKVz.js","assets/useUptimeStatus-DFTiV01D.js","assets/AppShell-D6boa7bt.js","assets/settings-D1FY5IP9.js","assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-B-fGXmXJ.js","assets/useConfirmDialog-CSNT_h0m.js","assets/Dashboard-XyMK6wF9.js","assets/HelpTip.vue_vue_type_script_setup_true_lang-Be-NxYdK.js","assets/Accounts-YFw0nAMh.js","assets/SelectMenu.vue_vue_type_script_setup_true_lang-8KWxq5-G.js","assets/Checkbox.vue_vue_type_script_setup_true_lang-DsgZPRUK.js","assets/Settings-DfcwScgC.js","assets/Logs-B98yvDJ_.js","assets/Monitor-hjSJvizM.js"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function us(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const se={},$t=[],ot=()=>{},ni=()=>!1,or=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),fs=e=>e.startsWith("onUpdate:"),Se=Object.assign,ds=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},oc=Object.prototype.hasOwnProperty,ne=(e,t)=>oc.call(e,t),q=Array.isArray,Kt=e=>ir(e)==="[object Map]",ri=e=>ir(e)==="[object Set]",W=e=>typeof e=="function",de=e=>typeof e=="string",yt=e=>typeof e=="symbol",le=e=>e!==null&&typeof e=="object",si=e=>(le(e)||W(e))&&W(e.then)&&W(e.catch),oi=Object.prototype.toString,ir=e=>oi.call(e),ic=e=>ir(e).slice(8,-1),ii=e=>ir(e)==="[object Object]",lr=e=>de(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,cn=us(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),cr=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},lc=/-\w/g,xt=cr(e=>e.replace(lc,t=>t.slice(1).toUpperCase())),cc=/\B([A-Z])/g,jt=cr(e=>e.replace(cc,"-$1").toLowerCase()),li=cr(e=>e.charAt(0).toUpperCase()+e.slice(1)),vr=cr(e=>e?`on${li(e)}`:""),vt=(e,t)=>!Object.is(e,t),Bn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},hs=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let ks;const ar=()=>ks||(ks=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function ps(e){if(q(e)){const t={};for(let n=0;n{if(n){const r=n.split(uc);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function ms(e){let t="";if(de(e))t=e;else if(q(e))for(let n=0;n!!(e&&e.__v_isRef===!0),mc=e=>de(e)?e:e==null?"":q(e)||le(e)&&(e.toString===oi||!W(e.toString))?ui(e)?mc(e.value):JSON.stringify(e,fi,2):String(e),fi=(e,t)=>ui(t)?fi(e,t.value):Kt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[Or(r,o)+" =>"]=s,n),{})}:ri(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Or(n))}:yt(t)?Or(t):le(t)&&!q(t)&&!ii(t)?String(t):t,Or=(e,t="")=>{var n;return yt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let _e;class di{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=_e,!t&&_e&&(this.index=(_e.scopes||(_e.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&&(_e=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if(un){let t=un;for(un=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;an;){let t=an;for(an=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function _i(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function bi(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),_s(r),yc(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function qr(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===bn)||(e.globalVersion=bn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!qr(e))))return;e.flags|=2;const t=e.dep,n=ie,r=$e;ie=e,$e=!0;try{_i(e);const s=e.fn(e._value);(t.version===0||vt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{ie=n,$e=r,bi(e),e.flags&=-3}}function _s(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)_s(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function yc(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 wi=[];function ht(){wi.push($e),$e=!1}function pt(){const e=wi.pop();$e=e===void 0?!0:e}function Vs(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ie;ie=void 0;try{t()}finally{ie=n}}}let bn=0;class _c{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 bs{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!ie||!$e||ie===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ie)n=this.activeLink=new _c(ie,this),ie.deps?(n.prevDep=ie.depsTail,ie.depsTail.nextDep=n,ie.depsTail=n):ie.deps=ie.depsTail=n,Si(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=ie.depsTail,n.nextDep=void 0,ie.depsTail.nextDep=n,ie.depsTail=n,ie.deps===n&&(ie.deps=r)}return n}trigger(t){this.version++,bn++,this.notify(t)}notify(t){gs();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ys()}}}function Si(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Si(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const zn=new WeakMap,Dt=Symbol(""),$r=Symbol(""),En=Symbol("");function be(e,t,n){if($e&&ie){let r=zn.get(e);r||zn.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new bs),s.map=r,s.key=n),s.track()}}function ft(e,t,n,r,s,o){const i=zn.get(e);if(!i){bn++;return}const l=c=>{c&&c.trigger()};if(gs(),t==="clear")i.forEach(l);else{const c=q(e),u=c&&lr(n);if(c&&n==="length"){const a=Number(r);i.forEach((f,p)=>{(p==="length"||p===En||!yt(p)&&p>=a)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(En)),t){case"add":c?u&&l(i.get("length")):(l(i.get(Dt)),Kt(e)&&l(i.get($r)));break;case"delete":c||(l(i.get(Dt)),Kt(e)&&l(i.get($r)));break;case"set":Kt(e)&&l(i.get(Dt));break}}ys()}function bc(e,t){const n=zn.get(e);return n&&n.get(t)}function Bt(e){const t=Z(e);return t===e?t:(be(t,"iterate",En),je(e)?t:t.map(Ke))}function ur(e){return be(e=Z(e),"iterate",En),e}function wt(e,t){return mt(e)?it(e)?zt(Ke(t)):zt(t):Ke(t)}const Ec={__proto__:null,[Symbol.iterator](){return Tr(this,Symbol.iterator,e=>wt(this,e))},concat(...e){return Bt(this).concat(...e.map(t=>q(t)?Bt(t):t))},entries(){return Tr(this,"entries",e=>(e[1]=wt(this,e[1]),e))},every(e,t){return ct(this,"every",e,t,void 0,arguments)},filter(e,t){return ct(this,"filter",e,t,n=>n.map(r=>wt(this,r)),arguments)},find(e,t){return ct(this,"find",e,t,n=>wt(this,n),arguments)},findIndex(e,t){return ct(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ct(this,"findLast",e,t,n=>wt(this,n),arguments)},findLastIndex(e,t){return ct(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ct(this,"forEach",e,t,void 0,arguments)},includes(...e){return Cr(this,"includes",e)},indexOf(...e){return Cr(this,"indexOf",e)},join(e){return Bt(this).join(e)},lastIndexOf(...e){return Cr(this,"lastIndexOf",e)},map(e,t){return ct(this,"map",e,t,void 0,arguments)},pop(){return nn(this,"pop")},push(...e){return nn(this,"push",e)},reduce(e,...t){return qs(this,"reduce",e,t)},reduceRight(e,...t){return qs(this,"reduceRight",e,t)},shift(){return nn(this,"shift")},some(e,t){return ct(this,"some",e,t,void 0,arguments)},splice(...e){return nn(this,"splice",e)},toReversed(){return Bt(this).toReversed()},toSorted(e){return Bt(this).toSorted(e)},toSpliced(...e){return Bt(this).toSpliced(...e)},unshift(...e){return nn(this,"unshift",e)},values(){return Tr(this,"values",e=>wt(this,e))}};function Tr(e,t,n){const r=ur(e),s=r[t]();return r!==e&&!je(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const wc=Array.prototype;function ct(e,t,n,r,s,o){const i=ur(e),l=i!==e&&!je(e),c=i[t];if(c!==wc[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,wt(e,f),p,e)}:n.length>2&&(u=function(f,p){return n.call(this,f,p,e)}));const a=c.call(i,u,r);return l&&s?s(a):a}function qs(e,t,n,r){const s=ur(e);let o=n;return s!==e&&(je(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,wt(e,l),c,e)}),s[t](o,...r)}function Cr(e,t,n){const r=Z(e);be(r,"iterate",En);const s=r[t](...n);return(s===-1||s===!1)&&fr(n[0])?(n[0]=Z(n[0]),r[t](...n)):s}function nn(e,t,n=[]){ht(),gs();const r=Z(e)[t].apply(e,n);return ys(),pt(),r}const Sc=us("__proto__,__v_isRef,__isVue"),Ri=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(yt));function Rc(e){yt(e)||(e=String(e));const t=Z(this);return be(t,"has",e),t.hasOwnProperty(e)}class Ai{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?Dc:Ti:o?xi:Oi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=q(t);if(!s){let c;if(i&&(c=Ec[n]))return c;if(n==="hasOwnProperty")return Rc}const l=Reflect.get(t,n,ce(t)?t:r);if((yt(n)?Ri.has(n):Sc(n))||(s||be(t,"get",n),o))return l;if(ce(l)){const c=i&&lr(n)?l:l.value;return s&&le(c)?Wr(c):c}return le(l)?s?Wr(l):On(l):l}}class vi extends Ai{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=q(t)&&lr(n);if(!this._isShallow){const u=mt(o);if(!je(r)&&!mt(r)&&(o=Z(o),r=Z(r)),!i&&ce(o)&&!ce(r))return u||(o.value=r),!0}const l=i?Number(n)e,Dn=e=>Reflect.getPrototypeOf(e);function Tc(e,t,n){return function(...r){const s=this.__v_raw,o=Z(s),i=Kt(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=s[e](...r),a=n?Kr:t?zt:Ke;return!t&&be(o,"iterate",c?$r:Dt),{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 Ln(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Cc(e,t){const n={get(s){const o=this.__v_raw,i=Z(o),l=Z(s);e||(vt(s,l)&&be(i,"get",s),be(i,"get",l));const{has:c}=Dn(i),u=t?Kr:e?zt:Ke;if(c.call(i,s))return u(o.get(s));if(c.call(i,l))return u(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&be(Z(s),"iterate",Dt),s.size},has(s){const o=this.__v_raw,i=Z(o),l=Z(s);return e||(vt(s,l)&&be(i,"has",s),be(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,c=Z(l),u=t?Kr:e?zt:Ke;return!e&&be(c,"iterate",Dt),l.forEach((a,f)=>s.call(o,u(a),u(f),i))}};return Se(n,e?{add:Ln("add"),set:Ln("set"),delete:Ln("delete"),clear:Ln("clear")}:{add(s){!t&&!je(s)&&!mt(s)&&(s=Z(s));const o=Z(this);return Dn(o).has.call(o,s)||(o.add(s),ft(o,"add",s,s)),this},set(s,o){!t&&!je(o)&&!mt(o)&&(o=Z(o));const i=Z(this),{has:l,get:c}=Dn(i);let u=l.call(i,s);u||(s=Z(s),u=l.call(i,s));const a=c.call(i,s);return i.set(s,o),u?vt(o,a)&&ft(i,"set",s,o):ft(i,"add",s,o),this},delete(s){const o=Z(this),{has:i,get:l}=Dn(o);let c=i.call(o,s);c||(s=Z(s),c=i.call(o,s)),l&&l.call(o,s);const u=o.delete(s);return c&&ft(o,"delete",s,void 0),u},clear(){const s=Z(this),o=s.size!==0,i=s.clear();return o&&ft(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=Tc(s,e,t)}),n}function Es(e,t){const n=Cc(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(ne(n,s)&&s in r?n:r,s,o)}const Pc={get:Es(!1,!1)},Nc={get:Es(!1,!0)},Ic={get:Es(!0,!1)};const Oi=new WeakMap,xi=new WeakMap,Ti=new WeakMap,Dc=new WeakMap;function Lc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Fc(e){return e.__v_skip||!Object.isExtensible(e)?0:Lc(ic(e))}function On(e){return mt(e)?e:ws(e,!1,vc,Pc,Oi)}function Ci(e){return ws(e,!1,xc,Nc,xi)}function Wr(e){return ws(e,!0,Oc,Ic,Ti)}function ws(e,t,n,r,s){if(!le(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=Fc(e);if(o===0)return e;const i=s.get(e);if(i)return i;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function it(e){return mt(e)?it(e.__v_raw):!!(e&&e.__v_isReactive)}function mt(e){return!!(e&&e.__v_isReadonly)}function je(e){return!!(e&&e.__v_isShallow)}function fr(e){return e?!!e.__v_raw:!1}function Z(e){const t=e&&e.__v_raw;return t?Z(t):e}function Ss(e){return!ne(e,"__v_skip")&&Object.isExtensible(e)&&ci(e,"__v_skip",!0),e}const Ke=e=>le(e)?On(e):e,zt=e=>le(e)?Wr(e):e;function ce(e){return e?e.__v_isRef===!0:!1}function Lt(e){return Pi(e,!1)}function Mc(e){return Pi(e,!0)}function Pi(e,t){return ce(e)?e:new Uc(e,t)}class Uc{constructor(t,n){this.dep=new bs,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:Z(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,r=this.__v_isShallow||je(t)||mt(t);t=r?t:Z(t),vt(t,n)&&(this._rawValue=t,this._value=r?t:Ke(t),this.dep.trigger())}}function Ot(e){return ce(e)?e.value:e}const jc={get:(e,t,n)=>t==="__v_raw"?e:Ot(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return ce(s)&&!ce(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Ni(e){return it(e)?e:new Proxy(e,jc)}function Bc(e){const t=q(e)?new Array(e.length):{};for(const n in e)t[n]=Ii(e,n);return t}class Hc{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._raw=Z(t);let s=!0,o=t;if(!q(t)||!lr(String(n)))do s=!fr(o)||je(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=Ot(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&ce(this._raw[this._key])){const n=this._object[this._key];if(ce(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return bc(this._raw,this._key)}}class kc{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Vc(e,t,n){return ce(e)?e:W(e)?new kc(e):le(e)&&arguments.length>1?Ii(e,t,n):Lt(e)}function Ii(e,t,n){return new Hc(e,t,n)}class qc{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new bs(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=bn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&ie!==this)return yi(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 $c(e,t,n=!1){let r,s;return W(e)?r=e:(r=e.get,s=e.set),new qc(r,s,n)}const Fn={},Jn=new WeakMap;let Pt;function Kc(e,t=!1,n=Pt){if(n){let r=Jn.get(n);r||Jn.set(n,r=[]),r.push(e)}}function Wc(e,t,n=se){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:c}=n,u=P=>s?P:je(P)||s===!1||s===0?dt(P,1):dt(P);let a,f,p,m,g=!1,b=!1;if(ce(e)?(f=()=>e.value,g=je(e)):it(e)?(f=()=>u(e),g=!0):q(e)?(b=!0,g=e.some(P=>it(P)||je(P)),f=()=>e.map(P=>{if(ce(P))return P.value;if(it(P))return u(P);if(W(P))return c?c(P,2):P()})):W(e)?t?f=c?()=>c(e,2):e:f=()=>{if(p){ht();try{p()}finally{pt()}}const P=Pt;Pt=a;try{return c?c(e,3,[m]):e(m)}finally{Pt=P}}:f=ot,t&&s){const P=f,M=s===!0?1/0:s;f=()=>dt(P(),M)}const E=pi(),O=()=>{a.stop(),E&&E.active&&ds(E.effects,a)};if(o&&t){const P=t;t=(...M)=>{P(...M),O()}}let C=b?new Array(e.length).fill(Fn):Fn;const N=P=>{if(!(!(a.flags&1)||!a.dirty&&!P))if(t){const M=a.run();if(s||g||(b?M.some((X,k)=>vt(X,C[k])):vt(M,C))){p&&p();const X=Pt;Pt=a;try{const k=[M,C===Fn?void 0:b&&C[0]===Fn?[]:C,m];C=M,c?c(t,3,k):t(...k)}finally{Pt=X}}}else a.run()};return l&&l(N),a=new mi(f),a.scheduler=i?()=>i(N,!1):N,m=P=>Kc(P,!1,a),p=a.onStop=()=>{const P=Jn.get(a);if(P){if(c)c(P,4);else for(const M of P)M();Jn.delete(a)}},t?r?N(!0):C=a.run():i?i(N.bind(null,!0),!0):a.run(),O.pause=a.pause.bind(a),O.resume=a.resume.bind(a),O.stop=O,O}function dt(e,t=1/0,n){if(t<=0||!le(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,ce(e))dt(e.value,t,n);else if(q(e))for(let r=0;r{dt(r,t,n)});else if(ii(e)){for(const r in e)dt(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&dt(e[r],t,n)}return e}function xn(e,t,n,r){try{return r?e(...r):e()}catch(s){dr(s,t,n)}}function lt(e,t,n,r){if(W(e)){const s=xn(e,t,n,r);return s&&si(s)&&s.catch(o=>{dr(o,t,n)}),s}if(q(e)){const s=[];for(let o=0;o>>1,s=xe[r],o=wn(s);o=wn(n)?xe.push(e):xe.splice(zc(t),0,e),e.flags|=1,Li()}}function Li(){Xn||(Xn=Di.then(Mi))}function Jc(e){q(e)?Wt.push(...e):St&&e.id===-1?St.splice(kt+1,0,e):e.flags&1||(Wt.push(e),e.flags|=1),Li()}function $s(e,t,n=rt+1){for(;nwn(n)-wn(r));if(Wt.length=0,St){St.push(...t);return}for(St=t,kt=0;kte.id==null?e.flags&2?-1:1/0:e.id;function Mi(e){try{for(rt=0;rt{r._d&&tr(-1);const o=Qn(t);let i;try{i=e(...s)}finally{Qn(o),r._d&&tr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function Ah(e,t){if(we===null)return e;const n=gr(we),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&W(t)?t.call(r&&r.proxy):t}}function Qc(){return!!(dl()||Ft)}const Yc=Symbol.for("v-scx"),Zc=()=>ke(Yc);function fn(e,t,n){return ji(e,t,n)}function ji(e,t,n=se){const{immediate:r,deep:s,flush:o,once:i}=n,l=Se({},n),c=t&&r||!t&&o!=="post";let u;if(An){if(o==="sync"){const m=Zc();u=m.__watcherHandles||(m.__watcherHandles=[])}else if(!c){const m=()=>{};return m.stop=ot,m.resume=ot,m.pause=ot,m}}const a=Te;l.call=(m,g,b)=>lt(m,a,g,b);let f=!1;o==="post"?l.scheduler=m=>{ve(m,a&&a.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(m,g)=>{g?m():As(m)}),l.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,a&&(m.id=a.uid,m.i=a))};const p=Wc(e,t,l);return An&&(u?u.push(p):c&&p()),p}function ea(e,t,n){const r=this.proxy,s=de(e)?e.includes(".")?Bi(r,e):()=>r[e]:e.bind(r,r);let o;W(t)?o=t:(o=t.handler,n=t);const i=Tn(this),l=ji(s,o.bind(r),n);return i(),l}function Bi(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,dn=e=>e&&(e.disabled||e.disabled===""),Ks=e=>e&&(e.defer||e.defer===""),Ws=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Gs=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Gr=(e,t)=>{const n=e&&e.to;return de(n)?t?t(n):null:n},ki={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,u){const{mc:a,pc:f,pbc:p,o:{insert:m,querySelector:g,createText:b,createComment:E}}=u,O=dn(t.props);let{shapeFlag:C,children:N,dynamicChildren:P}=t;if(e==null){const M=t.el=b(""),X=t.anchor=b("");m(M,n,r),m(X,n,r);const k=(U,ee)=>{C&16&&a(N,U,ee,s,o,i,l,c)},V=()=>{const U=t.target=Gr(t.props,g),ee=Vi(U,t,b,m);U&&(i!=="svg"&&Ws(U)?i="svg":i!=="mathml"&&Gs(U)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(U),O||(k(U,ee),kn(t,!1)))};O&&(k(n,X),kn(t,!0)),Ks(t.props)?(t.el.__isMounted=!1,ve(()=>{V(),delete t.el.__isMounted},o)):V()}else{if(Ks(t.props)&&e.el.__isMounted===!1){ve(()=>{ki.process(e,t,n,r,s,o,i,l,c,u)},o);return}t.el=e.el,t.targetStart=e.targetStart;const M=t.anchor=e.anchor,X=t.target=e.target,k=t.targetAnchor=e.targetAnchor,V=dn(e.props),U=V?n:X,ee=V?M:k;if(i==="svg"||Ws(X)?i="svg":(i==="mathml"||Gs(X))&&(i="mathml"),P?(p(e.dynamicChildren,P,U,s,o,i,l),Cs(e,t,!0)):c||f(e,t,U,ee,s,o,i,l,!1),O)V?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Mn(t,n,M,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const ue=t.target=Gr(t.props,g);ue&&Mn(t,ue,null,u,0)}else V&&Mn(t,X,k,u,1);kn(t,O)}},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetStart:u,targetAnchor:a,target:f,props:p}=e;if(f&&(s(u),s(a)),o&&s(c),i&16){const m=o||!dn(p);for(let g=0;ghn(g,t&&(q(t)?t[b]:t),n,r,s));return}if(Gt(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&hn(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?gr(r.component):r.el,i=s?null:o,{i:l,r:c}=e,u=t&&t.r,a=l.refs===se?l.refs={}:l.refs,f=l.setupState,p=Z(f),m=f===se?ni:g=>ne(p,g);if(u!=null&&u!==c){if(zs(t),de(u))a[u]=null,m(u)&&(f[u]=null);else if(ce(u)){u.value=null;const g=t;g.k&&(a[g.k]=null)}}if(W(c))xn(c,l,12,[i,a]);else{const g=de(c),b=ce(c);if(g||b){const E=()=>{if(e.f){const O=g?m(c)?f[c]:a[c]:c.value;if(s)q(O)&&ds(O,o);else if(q(O))O.includes(o)||O.push(o);else if(g)a[c]=[o],m(c)&&(f[c]=a[c]);else{const C=[o];c.value=C,e.k&&(a[e.k]=C)}}else g?(a[c]=i,m(c)&&(f[c]=i)):b&&(c.value=i,e.k&&(a[e.k]=i))};if(i){const O=()=>{E(),Yn.delete(e)};O.id=-1,Yn.set(e,O),ve(O,n)}else zs(e),E()}}}function zs(e){const t=Yn.get(e);t&&(t.flags|=8,Yn.delete(e))}ar().requestIdleCallback;ar().cancelIdleCallback;const Gt=e=>!!e.type.__asyncLoader,$i=e=>e.type.__isKeepAlive;function sa(e,t){Ki(e,"a",t)}function oa(e,t){Ki(e,"da",t)}function Ki(e,t,n=Te){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(hr(t,r,n),n){let s=n.parent;for(;s&&s.parent;)$i(s.parent.vnode)&&ia(r,t,n,s),s=s.parent}}function ia(e,t,n,r){const s=hr(t,e,r,!0);Wi(()=>{ds(r[t],s)},n)}function hr(e,t,n=Te,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{ht();const l=Tn(n),c=lt(t,n,e,i);return l(),pt(),c});return r?s.unshift(o):s.push(o),o}}const _t=e=>(t,n=Te)=>{(!An||e==="sp")&&hr(e,(...r)=>t(...r),n)},la=_t("bm"),ca=_t("m"),aa=_t("bu"),ua=_t("u"),fa=_t("bum"),Wi=_t("um"),da=_t("sp"),ha=_t("rtg"),pa=_t("rtc");function ma(e,t=Te){hr("ec",e,t)}const ga=Symbol.for("v-ndc");function Oh(e,t,n,r){let s;const o=n,i=q(e);if(i||de(e)){const l=i&&it(e);let c=!1,u=!1;l&&(c=!je(e),u=mt(e),e=ur(e)),s=new Array(e.length);for(let a=0,f=e.length;at(l,c,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let c=0,u=l.length;c0;return er(),nr(Fe,null,[Ce("slot",n,r)],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),er();const i=o&&Gi(o(n)),l=n.key||i&&i.key,c=nr(Fe,{key:(l&&!yt(l)?l:`_${t}`)+(!i&&r?"_fb":"")},i||[],i&&e._===1?64:-2);return c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),o&&o._c&&(o._d=!0),c}function Gi(e){return e.some(t=>Rn(t)?!(t.type===gt||t.type===Fe&&!Gi(t.children)):!0)?e:null}const zr=e=>e?hl(e)?gr(e):zr(e.parent):null,pn=Se(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=>zr(e.parent),$root:e=>zr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ji(e),$forceUpdate:e=>e.f||(e.f=()=>{As(e.update)}),$nextTick:e=>e.n||(e.n=Rs.bind(e.proxy)),$watch:e=>ea.bind(e)}),Pr=(e,t)=>e!==se&&!e.__isScriptSetup&&ne(e,t),ya={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,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 r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(Pr(r,t))return i[t]=1,r[t];if(s!==se&&ne(s,t))return i[t]=2,s[t];if(ne(o,t))return i[t]=3,o[t];if(n!==se&&ne(n,t))return i[t]=4,n[t];Jr&&(i[t]=0)}}const u=pn[t];let a,f;if(u)return t==="$attrs"&&be(e.attrs,"get",""),u(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==se&&ne(n,t))return i[t]=4,n[t];if(f=c.config.globalProperties,ne(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return Pr(s,t)?(s[t]=n,!0):r!==se&&ne(r,t)?(r[t]=n,!0):ne(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:o,type:i}},l){let c;return!!(n[l]||e!==se&&l[0]!=="$"&&ne(e,l)||Pr(t,l)||ne(o,l)||ne(r,l)||ne(pn,l)||ne(s.config.globalProperties,l)||(c=i.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ne(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Js(e){return q(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Jr=!0;function _a(e){const t=Ji(e),n=e.proxy,r=e.ctx;Jr=!1,t.beforeCreate&&Xs(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:u,created:a,beforeMount:f,mounted:p,beforeUpdate:m,updated:g,activated:b,deactivated:E,beforeDestroy:O,beforeUnmount:C,destroyed:N,unmounted:P,render:M,renderTracked:X,renderTriggered:k,errorCaptured:V,serverPrefetch:U,expose:ee,inheritAttrs:ue,components:ye,directives:pe,filters:Re}=t;if(u&&ba(u,r,null),i)for(const K in i){const z=i[K];W(z)&&(r[K]=z.bind(n))}if(s){const K=s.call(n,n);le(K)&&(e.data=On(K))}if(Jr=!0,o)for(const K in o){const z=o[K],Be=W(z)?z.bind(n,n):W(z.get)?z.get.bind(n,n):ot,ze=!W(z)&&W(z.set)?z.set.bind(n):ot,me=Me({get:Be,set:ze});Object.defineProperty(r,K,{enumerable:!0,configurable:!0,get:()=>me.value,set:fe=>me.value=fe})}if(l)for(const K in l)zi(l[K],r,n,K);if(c){const K=W(c)?c.call(n):c;Reflect.ownKeys(K).forEach(z=>{Hn(z,K[z])})}a&&Xs(a,e,"c");function J(K,z){q(z)?z.forEach(Be=>K(Be.bind(n))):z&&K(z.bind(n))}if(J(la,f),J(ca,p),J(aa,m),J(ua,g),J(sa,b),J(oa,E),J(ma,V),J(pa,X),J(ha,k),J(fa,C),J(Wi,P),J(da,U),q(ee))if(ee.length){const K=e.exposed||(e.exposed={});ee.forEach(z=>{Object.defineProperty(K,z,{get:()=>n[z],set:Be=>n[z]=Be,enumerable:!0})})}else e.exposed||(e.exposed={});M&&e.render===ot&&(e.render=M),ue!=null&&(e.inheritAttrs=ue),ye&&(e.components=ye),pe&&(e.directives=pe),U&&qi(e)}function ba(e,t,n=ot){q(e)&&(e=Xr(e));for(const r in e){const s=e[r];let o;le(s)?"default"in s?o=ke(s.from||r,s.default,!0):o=ke(s.from||r):o=ke(s),ce(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function Xs(e,t,n){lt(q(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function zi(e,t,n,r){let s=r.includes(".")?Bi(n,r):()=>n[r];if(de(e)){const o=t[e];W(o)&&fn(s,o)}else if(W(e))fn(s,e.bind(n));else if(le(e))if(q(e))e.forEach(o=>zi(o,t,n,r));else{const o=W(e.handler)?e.handler.bind(n):t[e.handler];W(o)&&fn(s,o,e)}}function Ji(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>Zn(c,u,i,!0)),Zn(c,t,i)),le(t)&&o.set(t,c),c}function Zn(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&Zn(e,o,n,!0),s&&s.forEach(i=>Zn(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Ea[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Ea={data:Qs,props:Ys,emits:Ys,methods:ln,computed:ln,beforeCreate:Ae,created:Ae,beforeMount:Ae,mounted:Ae,beforeUpdate:Ae,updated:Ae,beforeDestroy:Ae,beforeUnmount:Ae,destroyed:Ae,unmounted:Ae,activated:Ae,deactivated:Ae,errorCaptured:Ae,serverPrefetch:Ae,components:ln,directives:ln,watch:Sa,provide:Qs,inject:wa};function Qs(e,t){return t?e?function(){return Se(W(e)?e.call(this,this):e,W(t)?t.call(this,this):t)}:t:e}function wa(e,t){return ln(Xr(e),Xr(t))}function Xr(e){if(q(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${xt(t)}Modifiers`]||e[`${jt(t)}Modifiers`];function Oa(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||se;let s=n;const o=t.startsWith("update:"),i=o&&va(r,t.slice(7));i&&(i.trim&&(s=n.map(a=>de(a)?a.trim():a)),i.number&&(s=n.map(hs)));let l,c=r[l=vr(t)]||r[l=vr(xt(t))];!c&&o&&(c=r[l=vr(jt(t))]),c&<(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,lt(u,e,6,s)}}const xa=new WeakMap;function Qi(e,t,n=!1){const r=n?xa:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!W(e)){const c=u=>{const a=Qi(u,t,!0);a&&(l=!0,Se(i,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(le(e)&&r.set(e,null),null):(q(o)?o.forEach(c=>i[c]=null):Se(i,o),le(e)&&r.set(e,i),i)}function pr(e,t){return!e||!or(t)?!1:(t=t.slice(2).replace(/Once$/,""),ne(e,t[0].toLowerCase()+t.slice(1))||ne(e,jt(t))||ne(e,t))}function Zs(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:a,props:f,data:p,setupState:m,ctx:g,inheritAttrs:b}=e,E=Qn(e);let O,C;try{if(n.shapeFlag&4){const P=s||r,M=P;O=st(u.call(M,P,a,f,m,p,g)),C=l}else{const P=t;O=st(P.length>1?P(f,{attrs:l,slots:i,emit:c}):P(f,null)),C=t.props?l:Ta(l)}}catch(P){mn.length=0,dr(P,e,1),O=Ce(gt)}let N=O;if(C&&b!==!1){const P=Object.keys(C),{shapeFlag:M}=N;P.length&&M&7&&(o&&P.some(fs)&&(C=Ca(C,o)),N=Jt(N,C,!1,!0))}return n.dirs&&(N=Jt(N,null,!1,!0),N.dirs=N.dirs?N.dirs.concat(n.dirs):n.dirs),n.transition&&vs(N,n.transition),O=N,Qn(E),O}const Ta=e=>{let t;for(const n in e)(n==="class"||n==="style"||or(n))&&((t||(t={}))[n]=e[n]);return t},Ca=(e,t)=>{const n={};for(const r in e)(!fs(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Pa(e,t,n){const{props:r,children:s,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 r?eo(r,i,u):!!i;if(c&8){const a=t.dynamicProps;for(let f=0;fObject.create(Yi),el=e=>Object.getPrototypeOf(e)===Yi;function Ia(e,t,n,r=!1){const s={},o=Zi();e.propsDefaults=Object.create(null),tl(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:Ci(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function Da(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=Z(s),[c]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const a=e.vnode.dynamicProps;for(let f=0;f{c=!0;const[p,m]=nl(f,t,!0);Se(i,p),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!c)return le(e)&&r.set(e,$t),$t;if(q(o))for(let a=0;ae==="_"||e==="_ctx"||e==="$stable",Ts=e=>q(e)?e.map(st):[st(e)],Fa=(e,t,n)=>{if(t._n)return t;const r=Xc((...s)=>Ts(t(...s)),n);return r._c=!1,r},rl=(e,t,n)=>{const r=e._ctx;for(const s in e){if(xs(s))continue;const o=e[s];if(W(o))t[s]=Fa(s,o,r);else if(o!=null){const i=Ts(o);t[s]=()=>i}}},sl=(e,t)=>{const n=Ts(t);e.slots.default=()=>n},ol=(e,t,n)=>{for(const r in t)(n||!xs(r))&&(e[r]=t[r])},Ma=(e,t,n)=>{const r=e.slots=Zi();if(e.vnode.shapeFlag&32){const s=t._;s?(ol(r,t,n),n&&ci(r,"_",s,!0)):rl(t,r)}else t&&sl(e,t)},Ua=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=se;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:ol(s,t,n):(o=!t.$stable,rl(t,s)),i=t}else t&&(sl(e,t),i={default:1});if(o)for(const l in s)!xs(l)&&i[l]==null&&delete s[l]},ve=Va;function ja(e){return Ba(e)}function Ba(e,t){const n=ar();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:a,parentNode:f,nextSibling:p,setScopeId:m=ot,insertStaticContent:g}=e,b=(d,h,y,w=null,A=null,S=null,I=void 0,T=null,x=!!h.dynamicChildren)=>{if(d===h)return;d&&!rn(d,h)&&(w=R(d),fe(d,A,S,!0),d=null),h.patchFlag===-2&&(x=!1,h.dynamicChildren=null);const{type:v,ref:H,shapeFlag:L}=h;switch(v){case mr:E(d,h,y,w);break;case gt:O(d,h,y,w);break;case Vn:d==null&&C(h,y,w,I);break;case Fe:ye(d,h,y,w,A,S,I,T,x);break;default:L&1?M(d,h,y,w,A,S,I,T,x):L&6?pe(d,h,y,w,A,S,I,T,x):(L&64||L&128)&&v.process(d,h,y,w,A,S,I,T,x,j)}H!=null&&A?hn(H,d&&d.ref,S,h||d,!h):H==null&&d&&d.ref!=null&&hn(d.ref,null,S,d,!0)},E=(d,h,y,w)=>{if(d==null)r(h.el=l(h.children),y,w);else{const A=h.el=d.el;h.children!==d.children&&u(A,h.children)}},O=(d,h,y,w)=>{d==null?r(h.el=c(h.children||""),y,w):h.el=d.el},C=(d,h,y,w)=>{[d.el,d.anchor]=g(d.children,h,y,w,d.el,d.anchor)},N=({el:d,anchor:h},y,w)=>{let A;for(;d&&d!==h;)A=p(d),r(d,y,w),d=A;r(h,y,w)},P=({el:d,anchor:h})=>{let y;for(;d&&d!==h;)y=p(d),s(d),d=y;s(h)},M=(d,h,y,w,A,S,I,T,x)=>{if(h.type==="svg"?I="svg":h.type==="math"&&(I="mathml"),d==null)X(h,y,w,A,S,I,T,x);else{const v=d.el&&d.el._isVueCE?d.el:null;try{v&&v._beginPatch(),U(d,h,A,S,I,T,x)}finally{v&&v._endPatch()}}},X=(d,h,y,w,A,S,I,T)=>{let x,v;const{props:H,shapeFlag:L,transition:B,dirs:$}=d;if(x=d.el=i(d.type,S,H&&H.is,H),L&8?a(x,d.children):L&16&&V(d.children,x,null,w,A,Nr(d,S),I,T),$&&Tt(d,null,w,"created"),k(x,d,d.scopeId,I,w),H){for(const oe in H)oe!=="value"&&!cn(oe)&&o(x,oe,null,H[oe],S,w);"value"in H&&o(x,"value",null,H.value,S),(v=H.onVnodeBeforeMount)&&et(v,w,d)}$&&Tt(d,null,w,"beforeMount");const Y=Ha(A,B);Y&&B.beforeEnter(x),r(x,h,y),((v=H&&H.onVnodeMounted)||Y||$)&&ve(()=>{v&&et(v,w,d),Y&&B.enter(x),$&&Tt(d,null,w,"mounted")},A)},k=(d,h,y,w,A)=>{if(y&&m(d,y),w)for(let S=0;S{for(let v=x;v{const T=h.el=d.el;let{patchFlag:x,dynamicChildren:v,dirs:H}=h;x|=d.patchFlag&16;const L=d.props||se,B=h.props||se;let $;if(y&&Ct(y,!1),($=B.onVnodeBeforeUpdate)&&et($,y,h,d),H&&Tt(h,d,y,"beforeUpdate"),y&&Ct(y,!0),(L.innerHTML&&B.innerHTML==null||L.textContent&&B.textContent==null)&&a(T,""),v?ee(d.dynamicChildren,v,T,y,w,Nr(h,A),S):I||z(d,h,T,null,y,w,Nr(h,A),S,!1),x>0){if(x&16)ue(T,L,B,y,A);else if(x&2&&L.class!==B.class&&o(T,"class",null,B.class,A),x&4&&o(T,"style",L.style,B.style,A),x&8){const Y=h.dynamicProps;for(let oe=0;oe{$&&et($,y,h,d),H&&Tt(h,d,y,"updated")},w)},ee=(d,h,y,w,A,S,I)=>{for(let T=0;T{if(h!==y){if(h!==se)for(const S in h)!cn(S)&&!(S in y)&&o(d,S,h[S],null,A,w);for(const S in y){if(cn(S))continue;const I=y[S],T=h[S];I!==T&&S!=="value"&&o(d,S,T,I,A,w)}"value"in y&&o(d,"value",h.value,y.value,A)}},ye=(d,h,y,w,A,S,I,T,x)=>{const v=h.el=d?d.el:l(""),H=h.anchor=d?d.anchor:l("");let{patchFlag:L,dynamicChildren:B,slotScopeIds:$}=h;$&&(T=T?T.concat($):$),d==null?(r(v,y,w),r(H,y,w),V(h.children||[],y,H,A,S,I,T,x)):L>0&&L&64&&B&&d.dynamicChildren&&d.dynamicChildren.length===B.length?(ee(d.dynamicChildren,B,y,A,S,I,T),(h.key!=null||A&&h===A.subTree)&&Cs(d,h,!0)):z(d,h,y,H,A,S,I,T,x)},pe=(d,h,y,w,A,S,I,T,x)=>{h.slotScopeIds=T,d==null?h.shapeFlag&512?A.ctx.activate(h,y,w,I,x):Re(h,y,w,A,S,I,x):Ve(d,h,x)},Re=(d,h,y,w,A,S,I)=>{const T=d.component=Xa(d,w,A);if($i(d)&&(T.ctx.renderer=j),Qa(T,!1,I),T.asyncDep){if(A&&A.registerDep(T,J,I),!d.el){const x=T.subTree=Ce(gt);O(null,x,h,y),d.placeholder=x.el}}else J(T,d,h,y,A,S,I)},Ve=(d,h,y)=>{const w=h.component=d.component;if(Pa(d,h,y))if(w.asyncDep&&!w.asyncResolved){K(w,h,y);return}else w.next=h,w.update();else h.el=d.el,w.vnode=h},J=(d,h,y,w,A,S,I)=>{const T=()=>{if(d.isMounted){let{next:L,bu:B,u:$,parent:Y,vnode:oe}=d;{const Ye=il(d);if(Ye){L&&(L.el=oe.el,K(d,L,I)),Ye.asyncDep.then(()=>{d.isUnmounted||T()});return}}let re=L,Pe;Ct(d,!1),L?(L.el=oe.el,K(d,L,I)):L=oe,B&&Bn(B),(Pe=L.props&&L.props.onVnodeBeforeUpdate)&&et(Pe,Y,L,oe),Ct(d,!0);const Ne=Zs(d),Qe=d.subTree;d.subTree=Ne,b(Qe,Ne,f(Qe.el),R(Qe),d,A,S),L.el=Ne.el,re===null&&Na(d,Ne.el),$&&ve($,A),(Pe=L.props&&L.props.onVnodeUpdated)&&ve(()=>et(Pe,Y,L,oe),A)}else{let L;const{el:B,props:$}=h,{bm:Y,m:oe,parent:re,root:Pe,type:Ne}=d,Qe=Gt(h);Ct(d,!1),Y&&Bn(Y),!Qe&&(L=$&&$.onVnodeBeforeMount)&&et(L,re,h),Ct(d,!0);{Pe.ce&&Pe.ce._def.shadowRoot!==!1&&Pe.ce._injectChildStyle(Ne);const Ye=d.subTree=Zs(d);b(null,Ye,y,w,d,A,S),h.el=Ye.el}if(oe&&ve(oe,A),!Qe&&(L=$&&$.onVnodeMounted)){const Ye=h;ve(()=>et(L,re,Ye),A)}(h.shapeFlag&256||re&&Gt(re.vnode)&&re.vnode.shapeFlag&256)&&d.a&&ve(d.a,A),d.isMounted=!0,h=y=w=null}};d.scope.on();const x=d.effect=new mi(T);d.scope.off();const v=d.update=x.run.bind(x),H=d.job=x.runIfDirty.bind(x);H.i=d,H.id=d.uid,x.scheduler=()=>As(H),Ct(d,!0),v()},K=(d,h,y)=>{h.component=d;const w=d.vnode.props;d.vnode=h,d.next=null,Da(d,h.props,w,y),Ua(d,h.children,y),ht(),$s(d),pt()},z=(d,h,y,w,A,S,I,T,x=!1)=>{const v=d&&d.children,H=d?d.shapeFlag:0,L=h.children,{patchFlag:B,shapeFlag:$}=h;if(B>0){if(B&128){ze(v,L,y,w,A,S,I,T,x);return}else if(B&256){Be(v,L,y,w,A,S,I,T,x);return}}$&8?(H&16&&He(v,A,S),L!==v&&a(y,L)):H&16?$&16?ze(v,L,y,w,A,S,I,T,x):He(v,A,S,!0):(H&8&&a(y,""),$&16&&V(L,y,w,A,S,I,T,x))},Be=(d,h,y,w,A,S,I,T,x)=>{d=d||$t,h=h||$t;const v=d.length,H=h.length,L=Math.min(v,H);let B;for(B=0;BH?He(d,A,S,!0,!1,L):V(h,y,w,A,S,I,T,x,L)},ze=(d,h,y,w,A,S,I,T,x)=>{let v=0;const H=h.length;let L=d.length-1,B=H-1;for(;v<=L&&v<=B;){const $=d[v],Y=h[v]=x?Rt(h[v]):st(h[v]);if(rn($,Y))b($,Y,y,null,A,S,I,T,x);else break;v++}for(;v<=L&&v<=B;){const $=d[L],Y=h[B]=x?Rt(h[B]):st(h[B]);if(rn($,Y))b($,Y,y,null,A,S,I,T,x);else break;L--,B--}if(v>L){if(v<=B){const $=B+1,Y=$B)for(;v<=L;)fe(d[v],A,S,!0),v++;else{const $=v,Y=v,oe=new Map;for(v=Y;v<=B;v++){const Le=h[v]=x?Rt(h[v]):st(h[v]);Le.key!=null&&oe.set(Le.key,v)}let re,Pe=0;const Ne=B-Y+1;let Qe=!1,Ye=0;const tn=new Array(Ne);for(v=0;v=Ne){fe(Le,A,S,!0);continue}let Ze;if(Le.key!=null)Ze=oe.get(Le.key);else for(re=Y;re<=B;re++)if(tn[re-Y]===0&&rn(Le,h[re])){Ze=re;break}Ze===void 0?fe(Le,A,S,!0):(tn[Ze-Y]=v+1,Ze>=Ye?Ye=Ze:Qe=!0,b(Le,h[Ze],y,null,A,S,I,T,x),Pe++)}const js=Qe?ka(tn):$t;for(re=js.length-1,v=Ne-1;v>=0;v--){const Le=Y+v,Ze=h[Le],Bs=h[Le+1],Hs=Le+1{const{el:S,type:I,transition:T,children:x,shapeFlag:v}=d;if(v&6){me(d.component.subTree,h,y,w);return}if(v&128){d.suspense.move(h,y,w);return}if(v&64){I.move(d,h,y,j);return}if(I===Fe){r(S,h,y);for(let L=0;LT.enter(S),A);else{const{leave:L,delayLeave:B,afterLeave:$}=T,Y=()=>{d.ctx.isUnmounted?s(S):r(S,h,y)},oe=()=>{S._isLeaving&&S[ra](!0),L(S,()=>{Y(),$&&$()})};B?B(S,Y,oe):oe()}else r(S,h,y)},fe=(d,h,y,w=!1,A=!1)=>{const{type:S,props:I,ref:T,children:x,dynamicChildren:v,shapeFlag:H,patchFlag:L,dirs:B,cacheIndex:$}=d;if(L===-2&&(A=!1),T!=null&&(ht(),hn(T,null,y,d,!0),pt()),$!=null&&(h.renderCache[$]=void 0),H&256){h.ctx.deactivate(d);return}const Y=H&1&&B,oe=!Gt(d);let re;if(oe&&(re=I&&I.onVnodeBeforeUnmount)&&et(re,h,d),H&6)Xe(d.component,y,w);else{if(H&128){d.suspense.unmount(y,w);return}Y&&Tt(d,null,h,"beforeUnmount"),H&64?d.type.remove(d,h,y,j,w):v&&!v.hasOnce&&(S!==Fe||L>0&&L&64)?He(v,h,y,!1,!0):(S===Fe&&L&384||!A&&H&16)&&He(x,h,y),w&&Je(d)}(oe&&(re=I&&I.onVnodeUnmounted)||Y)&&ve(()=>{re&&et(re,h,d),Y&&Tt(d,null,h,"unmounted")},y)},Je=d=>{const{type:h,el:y,anchor:w,transition:A}=d;if(h===Fe){qe(y,w);return}if(h===Vn){P(d);return}const S=()=>{s(y),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(d.shapeFlag&1&&A&&!A.persisted){const{leave:I,delayLeave:T}=A,x=()=>I(y,S);T?T(d.el,S,x):x()}else S()},qe=(d,h)=>{let y;for(;d!==h;)y=p(d),s(d),d=y;s(h)},Xe=(d,h,y)=>{const{bum:w,scope:A,job:S,subTree:I,um:T,m:x,a:v}=d;no(x),no(v),w&&Bn(w),A.stop(),S&&(S.flags|=8,fe(I,d,h,y)),T&&ve(T,h),ve(()=>{d.isUnmounted=!0},h)},He=(d,h,y,w=!1,A=!1,S=0)=>{for(let I=S;I{if(d.shapeFlag&6)return R(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const h=p(d.anchor||d.el),y=h&&h[Hi];return y?p(y):h};let F=!1;const D=(d,h,y)=>{let w;d==null?h._vnode&&(fe(h._vnode,null,null,!0),w=h._vnode.component):b(h._vnode||null,d,h,null,null,null,y),h._vnode=d,F||(F=!0,$s(w),Fi(),F=!1)},j={p:b,um:fe,m:me,r:Je,mt:Re,mc:V,pc:z,pbc:ee,n:R,o:e};return{render:D,hydrate:void 0,createApp:Aa(D)}}function Nr({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 Ct({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Ha(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Cs(e,t,n=!1){const r=e.children,s=t.children;if(q(r)&&q(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function il(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:il(t)}function no(e){if(e)for(let t=0;te.__isSuspense;function Va(e,t){t&&t.pendingBranch?q(e)?t.effects.push(...e):t.effects.push(e):Jc(e)}const Fe=Symbol.for("v-fgt"),mr=Symbol.for("v-txt"),gt=Symbol.for("v-cmt"),Vn=Symbol.for("v-stc"),mn=[];let Ue=null;function er(e=!1){mn.push(Ue=e?null:[])}function qa(){mn.pop(),Ue=mn[mn.length-1]||null}let Sn=1;function tr(e,t=!1){Sn+=e,e<0&&Ue&&t&&(Ue.hasOnce=!0)}function al(e){return e.dynamicChildren=Sn>0?Ue||$t:null,qa(),Sn>0&&Ue&&Ue.push(e),e}function Th(e,t,n,r,s,o){return al(fl(e,t,n,r,s,o,!0))}function nr(e,t,n,r,s){return al(Ce(e,t,n,r,s,!0))}function Rn(e){return e?e.__v_isVNode===!0:!1}function rn(e,t){return e.type===t.type&&e.key===t.key}const ul=({key:e})=>e??null,qn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?de(e)||ce(e)||W(e)?{i:we,r:e,k:t,f:!!n}:e:null);function fl(e,t=null,n=null,r=0,s=null,o=e===Fe?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ul(t),ref:t&&qn(t),scopeId:Ui,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:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:we};return l?(Ps(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=de(n)?8:16),Sn>0&&!i&&Ue&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Ue.push(c),c}const Ce=$a;function $a(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===ga)&&(e=gt),Rn(e)){const l=Jt(e,t,!0);return n&&Ps(l,n),Sn>0&&!o&&Ue&&(l.shapeFlag&6?Ue[Ue.indexOf(e)]=l:Ue.push(l)),l.patchFlag=-2,l}if(tu(e)&&(e=e.__vccOpts),t){t=Ka(t);let{class:l,style:c}=t;l&&!de(l)&&(t.class=ms(l)),le(c)&&(fr(c)&&!q(c)&&(c=Se({},c)),t.style=ps(c))}const i=de(e)?1:cl(e)?128:ta(e)?64:le(e)?4:W(e)?2:0;return fl(e,t,n,r,s,i,o,!0)}function Ka(e){return e?fr(e)||el(e)?Se({},e):e:null}function Jt(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?Ga(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&ul(u),ref:t&&t.ref?n&&o?q(o)?o.concat(qn(t)):[o,qn(t)]:qn(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!==Fe?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&&Jt(e.ssContent),ssFallback:e.ssFallback&&Jt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&vs(a,c.clone(a)),a}function Wa(e=" ",t=0){return Ce(mr,null,e,t)}function Ch(e,t){const n=Ce(Vn,null,e);return n.staticCount=t,n}function Ph(e="",t=!1){return t?(er(),nr(gt,null,e)):Ce(gt,null,e)}function st(e){return e==null||typeof e=="boolean"?Ce(gt):q(e)?Ce(Fe,null,e.slice()):Rn(e)?Rt(e):Ce(mr,null,String(e))}function Rt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Jt(e)}function Ps(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(q(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Ps(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!el(t)?t._ctx=we:s===3&&we&&(we.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else W(t)?(t={default:t,_ctx:we},n=32):(t=String(t),r&64?(n=16,t=[Wa(t)]):n=8);e.children=t,e.shapeFlag|=n}function Ga(...e){const t={};for(let n=0;nTe||we;let rr,Yr;{const e=ar(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};rr=t("__VUE_INSTANCE_SETTERS__",n=>Te=n),Yr=t("__VUE_SSR_SETTERS__",n=>An=n)}const Tn=e=>{const t=Te;return rr(e),e.scope.on(),()=>{e.scope.off(),rr(t)}},ro=()=>{Te&&Te.scope.off(),rr(null)};function hl(e){return e.vnode.shapeFlag&4}let An=!1;function Qa(e,t=!1,n=!1){t&&Yr(t);const{props:r,children:s}=e.vnode,o=hl(e);Ia(e,r,o,t),Ma(e,s,n||t);const i=o?Ya(e,t):void 0;return t&&Yr(!1),i}function Ya(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,ya);const{setup:r}=n;if(r){ht();const s=e.setupContext=r.length>1?eu(e):null,o=Tn(e),i=xn(r,e,0,[e.props,s]),l=si(i);if(pt(),o(),(l||e.sp)&&!Gt(e)&&qi(e),l){if(i.then(ro,ro),t)return i.then(c=>{so(e,c)}).catch(c=>{dr(c,e,0)});e.asyncDep=i}else so(e,i)}else pl(e)}function so(e,t,n){W(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:le(t)&&(e.setupState=Ni(t)),pl(e)}function pl(e,t,n){const r=e.type;e.render||(e.render=r.render||ot);{const s=Tn(e);ht();try{_a(e)}finally{pt(),s()}}}const Za={get(e,t){return be(e,"get",""),e[t]}};function eu(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Za),slots:e.slots,emit:e.emit,expose:t}}function gr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ni(Ss(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in pn)return pn[n](e)},has(t,n){return n in t||n in pn}})):e.proxy}function tu(e){return W(e)&&"__vccOpts"in e}const Me=(e,t)=>$c(e,t,An);function ml(e,t,n){try{tr(-1);const r=arguments.length;return r===2?le(t)&&!q(t)?Rn(t)?Ce(e,null,[t]):Ce(e,t):Ce(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Rn(n)&&(n=[n]),Ce(e,t,n))}finally{tr(1)}}const nu="3.5.26";let Zr;const oo=typeof window<"u"&&window.trustedTypes;if(oo)try{Zr=oo.createPolicy("vue",{createHTML:e=>e})}catch{}const gl=Zr?e=>Zr.createHTML(e):e=>e,ru="http://www.w3.org/2000/svg",su="http://www.w3.org/1998/Math/MathML",ut=typeof document<"u"?document:null,io=ut&&ut.createElement("template"),ou={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?ut.createElementNS(ru,e):t==="mathml"?ut.createElementNS(su,e):n?ut.createElement(e,{is:n}):ut.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>ut.createTextNode(e),createComment:e=>ut.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ut.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{io.innerHTML=gl(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=io.content;if(r==="svg"||r==="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]}},iu=Symbol("_vtc");function lu(e,t,n){const r=e[iu];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const lo=Symbol("_vod"),cu=Symbol("_vsh"),au=Symbol(""),uu=/(?:^|;)\s*display\s*:/;function fu(e,t,n){const r=e.style,s=de(n);let o=!1;if(n&&!s){if(t)if(de(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&$n(r,l,"")}else for(const i in t)n[i]==null&&$n(r,i,"");for(const i in n)i==="display"&&(o=!0),$n(r,i,n[i])}else if(s){if(t!==n){const i=r[au];i&&(n+=";"+i),r.cssText=n,o=uu.test(n)}}else t&&e.removeAttribute("style");lo in e&&(e[lo]=o?r.display:"",e[cu]&&(r.display="none"))}const co=/\s*!important$/;function $n(e,t,n){if(q(n))n.forEach(r=>$n(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=du(e,t);co.test(n)?e.setProperty(jt(r),n.replace(co,""),"important"):e[r]=n}}const ao=["Webkit","Moz","ms"],Ir={};function du(e,t){const n=Ir[t];if(n)return n;let r=xt(t);if(r!=="filter"&&r in e)return Ir[t]=r;r=li(r);for(let s=0;sDr||(gu.then(()=>Dr=0),Dr=Date.now());function _u(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;lt(bu(r,n.value),t,5,[r])};return n.value=e,n.attached=yu(),n}function bu(e,t){if(q(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const go=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Eu=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?lu(e,r,i):t==="style"?fu(e,n,r):or(t)?fs(t)||pu(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):wu(e,t,r,i))?(ho(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&fo(e,t,r,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!de(r))?ho(e,xt(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),fo(e,t,r,i))};function wu(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&go(t)&&W(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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return go(t)&&de(n)?!1:t in e}const yo=e=>{const t=e.props["onUpdate:modelValue"]||!1;return q(t)?n=>Bn(t,n):t};function Su(e){e.target.composing=!0}function _o(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Lr=Symbol("_assign");function bo(e,t,n){return t&&(e=e.trim()),n&&(e=hs(e)),e}const Nh={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Lr]=yo(s);const o=r||s.props&&s.props.type==="number";Vt(e,t?"change":"input",i=>{i.target.composing||e[Lr](bo(e.value,n,o))}),(n||o)&&Vt(e,"change",()=>{e.value=bo(e.value,n,o)}),t||(Vt(e,"compositionstart",Su),Vt(e,"compositionend",_o),Vt(e,"change",_o))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Lr]=yo(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?hs(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},Ru=["ctrl","shift","alt","meta"],Au={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Ru.some(n=>e[`${n}Key`]&&!t.includes(n))},Ih=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const t=Ou().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Cu(r);if(!s)return;const o=t._component;!W(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,Tu(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t});function Tu(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Cu(e){return de(e)?document.querySelector(e):e}let yl;const yr=e=>yl=e,_l=Symbol();function es(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var gn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(gn||(gn={}));function Pu(){const e=hi(!0),t=e.run(()=>Lt({}));let n=[],r=[];const s=Ss({install(o){yr(s),s._a=o,o.provide(_l,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const bl=()=>{};function wo(e,t,n,r=bl){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&pi()&&gc(s),s}function Ht(e,...t){e.forEach(n=>{n(...t)})}const Nu=e=>e(),So=Symbol(),Fr=Symbol();function ts(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];es(s)&&es(r)&&e.hasOwnProperty(n)&&!ce(r)&&!it(r)?e[n]=ts(s,r):e[n]=r}return e}const Iu=Symbol();function Du(e){return!es(e)||!Object.prototype.hasOwnProperty.call(e,Iu)}const{assign:Et}=Object;function Lu(e){return!!(ce(e)&&e.effect)}function Fu(e,t,n,r){const{state:s,actions:o,getters:i}=t,l=n.state.value[e];let c;function u(){l||(n.state.value[e]=s?s():{});const a=Bc(n.state.value[e]);return Et(a,o,Object.keys(i||{}).reduce((f,p)=>(f[p]=Ss(Me(()=>{yr(n);const m=n._s.get(e);return i[p].call(m,m)})),f),{}))}return c=El(e,u,t,n,r,!0),c}function El(e,t,n={},r,s,o){let i;const l=Et({actions:{}},n),c={deep:!0};let u,a,f=new Set,p=new Set,m;const g=r.state.value[e];!o&&!g&&(r.state.value[e]={}),Lt({});let b;function E(V){let U;u=a=!1,typeof V=="function"?(V(r.state.value[e]),U={type:gn.patchFunction,storeId:e,events:m}):(ts(r.state.value[e],V),U={type:gn.patchObject,payload:V,storeId:e,events:m});const ee=b=Symbol();Rs().then(()=>{b===ee&&(u=!0)}),a=!0,Ht(f,U,r.state.value[e])}const O=o?function(){const{state:U}=n,ee=U?U():{};this.$patch(ue=>{Et(ue,ee)})}:bl;function C(){i.stop(),f.clear(),p.clear(),r._s.delete(e)}const N=(V,U="")=>{if(So in V)return V[Fr]=U,V;const ee=function(){yr(r);const ue=Array.from(arguments),ye=new Set,pe=new Set;function Re(K){ye.add(K)}function Ve(K){pe.add(K)}Ht(p,{args:ue,name:ee[Fr],store:M,after:Re,onError:Ve});let J;try{J=V.apply(this&&this.$id===e?this:M,ue)}catch(K){throw Ht(pe,K),K}return J instanceof Promise?J.then(K=>(Ht(ye,K),K)).catch(K=>(Ht(pe,K),Promise.reject(K))):(Ht(ye,J),J)};return ee[So]=!0,ee[Fr]=U,ee},P={_p:r,$id:e,$onAction:wo.bind(null,p),$patch:E,$reset:O,$subscribe(V,U={}){const ee=wo(f,V,U.detached,()=>ue()),ue=i.run(()=>fn(()=>r.state.value[e],ye=>{(U.flush==="sync"?a:u)&&V({storeId:e,type:gn.direct,events:m},ye)},Et({},c,U)));return ee},$dispose:C},M=On(P);r._s.set(e,M);const k=(r._a&&r._a.runWithContext||Nu)(()=>r._e.run(()=>(i=hi()).run(()=>t({action:N}))));for(const V in k){const U=k[V];if(ce(U)&&!Lu(U)||it(U))o||(g&&Du(U)&&(ce(U)?U.value=g[V]:ts(U,g[V])),r.state.value[e][V]=U);else if(typeof U=="function"){const ee=N(U,V);k[V]=ee,l.actions[V]=U}}return Et(M,k),Et(Z(M),k),Object.defineProperty(M,"$state",{get:()=>r.state.value[e],set:V=>{E(U=>{Et(U,V)})}}),r._p.forEach(V=>{Et(M,i.run(()=>V({store:M,app:r._a,pinia:r,options:l})))}),g&&o&&n.hydrate&&n.hydrate(M.$state,g),u=!0,a=!0,M}function Mu(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,l){const c=Qc();return i=i||(c?ke(_l,null):null),i&&yr(i),i=yl,i._s.has(e)||(s?El(e,t,r,i):Fu(e,r,i)),i._s.get(e)}return o.$id=e,o}function Dh(e){const t=Z(e),n={};for(const r in t){const s=t[r];s.effect?n[r]=Me({get:()=>e[r],set(o){e[r]=o}}):(ce(s)||it(s))&&(n[r]=Vc(e,r))}return n}const Uu="modulepreload",ju=function(e){return"/"+e},Ro={},tt=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let c=function(u){return Promise.all(u.map(a=>Promise.resolve(a).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=c(n.map(u=>{if(u=ju(u),u in Ro)return;Ro[u]=!0;const a=u.endsWith(".css"),f=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const p=document.createElement("link");if(p.rel=a?"stylesheet":Uu,a||(p.as="script"),p.crossOrigin="",p.href=u,l&&p.setAttribute("nonce",l),document.head.appendChild(p),a)return new Promise((m,g)=>{p.addEventListener("load",m),p.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})};const qt=typeof document<"u";function wl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Bu(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&wl(e.default)}const te=Object.assign;function Mr(e,t){const n={};for(const r in t){const s=t[r];n[r]=We(s)?s.map(e):e(s)}return n}const yn=()=>{},We=Array.isArray;function Ao(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const Sl=/#/g,Hu=/&/g,ku=/\//g,Vu=/=/g,qu=/\?/g,Rl=/\+/g,$u=/%5B/g,Ku=/%5D/g,Al=/%5E/g,Wu=/%60/g,vl=/%7B/g,Gu=/%7C/g,Ol=/%7D/g,zu=/%20/g;function Ns(e){return e==null?"":encodeURI(""+e).replace(Gu,"|").replace($u,"[").replace(Ku,"]")}function Ju(e){return Ns(e).replace(vl,"{").replace(Ol,"}").replace(Al,"^")}function ns(e){return Ns(e).replace(Rl,"%2B").replace(zu,"+").replace(Sl,"%23").replace(Hu,"%26").replace(Wu,"`").replace(vl,"{").replace(Ol,"}").replace(Al,"^")}function Xu(e){return ns(e).replace(Vu,"%3D")}function Qu(e){return Ns(e).replace(Sl,"%23").replace(qu,"%3F")}function Yu(e){return Qu(e).replace(ku,"%2F")}function vn(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Zu=/\/$/,ef=e=>e.replace(Zu,"");function Ur(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return c=l>=0&&c>l?-1:c,c>=0&&(r=t.slice(0,c),o=t.slice(c,l>0?l:t.length),s=e(o.slice(1))),l>=0&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=sf(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:vn(i)}}function tf(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function vo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function nf(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&Xt(t.matched[r],n.matched[s])&&xl(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Xt(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function xl(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!rf(e[n],t[n]))return!1;return!0}function rf(e,t){return We(e)?Oo(e,t):We(t)?Oo(t,e):e?.valueOf()===t?.valueOf()}function Oo(e,t){return We(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function sf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const bt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let rs=(function(e){return e.pop="pop",e.push="push",e})({}),jr=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function of(e){if(!e)if(qt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),ef(e)}const lf=/^[^#]+#/;function cf(e,t){return e.replace(lf,"#")+t}function af(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const _r=()=>({left:window.scrollX,top:window.scrollY});function uf(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=af(s,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 xo(e,t){return(history.state?history.state.position-t:-1)+e}const ss=new Map;function ff(e,t){ss.set(e,t)}function df(e){const t=ss.get(e);return ss.delete(e),t}function hf(e){return typeof e=="string"||e&&typeof e=="object"}function Tl(e){return typeof e=="string"||typeof e=="symbol"}let ae=(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 Cl=Symbol("");ae.MATCHER_NOT_FOUND+"",ae.NAVIGATION_GUARD_REDIRECT+"",ae.NAVIGATION_ABORTED+"",ae.NAVIGATION_CANCELLED+"",ae.NAVIGATION_DUPLICATED+"";function Qt(e,t){return te(new Error,{type:e,[Cl]:!0},t)}function at(e,t){return e instanceof Error&&Cl in e&&(t==null||!!(e.type&t))}const pf=["params","query","hash"];function mf(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of pf)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function gf(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&ns(s)):[r&&ns(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function yf(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=We(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const _f=Symbol(""),Co=Symbol(""),br=Symbol(""),Is=Symbol(""),os=Symbol("");function sn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function At(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,c)=>{const u=p=>{p===!1?c(Qt(ae.NAVIGATION_ABORTED,{from:n,to:t})):p instanceof Error?c(p):hf(p)?c(Qt(ae.NAVIGATION_GUARD_REDIRECT,{from:t,to:p})):(i&&r.enterCallbacks[s]===i&&typeof p=="function"&&i.push(p),l())},a=o(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(a);e.length<3&&(f=f.then(u)),f.catch(p=>c(p))})}function Br(e,t,n,r,s=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(wl(c)){const u=(c.__vccOpts||c)[t];u&&o.push(At(u,n,r,i,l,s))}else{let u=c();o.push(()=>u.then(a=>{if(!a)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=Bu(a)?a.default:a;i.mods[l]=a,i.components[l]=f;const p=(f.__vccOpts||f)[t];return p&&At(p,n,r,i,l,s)()}))}}return o}function bf(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;iXt(u,l))?r.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(u=>Xt(u,c))||s.push(c))}return[n,r,s]}let Ef=()=>location.protocol+"//"+location.host;function Pl(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(i);return l[0]!=="/"&&(l="/"+l),vo(l,"")}return vo(n,e)+r+s}function wf(e,t,n,r){let s=[],o=[],i=null;const l=({state:p})=>{const m=Pl(e,location),g=n.value,b=t.value;let E=0;if(p){if(n.value=m,t.value=p,i&&i===g){i=null;return}E=b?p.position-b.position:0}else r(m);s.forEach(O=>{O(n.value,g,{delta:E,type:rs.pop,direction:E?E>0?jr.forward:jr.back:jr.unknown})})};function c(){i=n.value}function u(p){s.push(p);const m=()=>{const g=s.indexOf(p);g>-1&&s.splice(g,1)};return o.push(m),m}function a(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(te({},p.state,{scroll:_r()}),"")}}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,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?_r():null}}function Sf(e){const{history:t,location:n}=window,r={value:Pl(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.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:Ef()+e+c;try{t[a?"replaceState":"pushState"](u,"",p),s.value=u}catch(m){console.error(m),n[a?"replace":"assign"](p)}}function i(c,u){o(c,te({},t.state,Po(s.value.back,c,s.value.forward,!0),u,{position:s.value.position}),!0),r.value=c}function l(c,u){const a=te({},s.value,t.state,{forward:c,scroll:_r()});o(a.current,a,!0),o(c,te({},Po(r.value,c,null),{position:a.position+1},u),!1),r.value=c}return{location:r,state:s,push:l,replace:i}}function Rf(e){e=of(e);const t=Sf(e),n=wf(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=te({location:"",base:e,go:r,createHref:cf.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function Af(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),Rf(e)}let Nt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var ge=(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})(ge||{});const vf={type:Nt.Static,value:""},Of=/[a-zA-Z0-9_]/;function xf(e){if(!e)return[[]];if(e==="/")return[[vf]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${u}": ${m}`)}let n=ge.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,c,u="",a="";function f(){u&&(n===ge.Static?o.push({type:Nt.Static,value:u}):n===ge.Param||n===ge.ParamRegExp||n===ge.ParamRegExpEnd?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:Nt.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]===Oe.Static+Oe.Segment?1:-1:0}function Nl(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const If={strict:!1,end:!0,sensitive:!1};function Df(e,t,n){const r=Pf(xf(e.path),n),s=te(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function Lf(e,t){const n=[],r=new Map;t=Ao(If,t);function s(f){return r.get(f)}function o(f,p,m){const g=!m,b=Lo(f);b.aliasOf=m&&m.record;const E=Ao(t,f),O=[b];if("alias"in f){const P=typeof f.alias=="string"?[f.alias]:f.alias;for(const M of P)O.push(Lo(te({},b,{components:m?m.record.components:b.components,path:M,aliasOf:m?m.record:b})))}let C,N;for(const P of O){const{path:M}=P;if(p&&M[0]!=="/"){const X=p.record.path,k=X[X.length-1]==="/"?"":"/";P.path=p.record.path+(M&&k+M)}if(C=Df(P,p,E),m?m.alias.push(C):(N=N||C,N!==C&&N.alias.push(C),g&&f.name&&!Fo(C)&&i(f.name)),Il(C)&&c(C),b.children){const X=b.children;for(let k=0;k{i(N)}:yn}function i(f){if(Tl(f)){const p=r.get(f);p&&(r.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&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function c(f){const p=Uf(f,n);n.splice(p,0,f),f.record.name&&!Fo(f)&&r.set(f.record.name,f)}function u(f,p){let m,g={},b,E;if("name"in f&&f.name){if(m=r.get(f.name),!m)throw Qt(ae.MATCHER_NOT_FOUND,{location:f});E=m.record.name,g=te(Do(p.params,m.keys.filter(N=>!N.optional).concat(m.parent?m.parent.keys.filter(N=>N.optional):[]).map(N=>N.name)),f.params&&Do(f.params,m.keys.map(N=>N.name))),b=m.stringify(g)}else if(f.path!=null)b=f.path,m=n.find(N=>N.re.test(b)),m&&(g=m.parse(b),E=m.record.name);else{if(m=p.name?r.get(p.name):n.find(N=>N.re.test(p.path)),!m)throw Qt(ae.MATCHER_NOT_FOUND,{location:f,currentLocation:p});E=m.record.name,g=te({},p.params,f.params),b=m.stringify(g)}const O=[];let C=m;for(;C;)O.unshift(C.record),C=C.parent;return{name:E,path:b,params:g,matched:O,meta:Mf(O)}}e.forEach(f=>o(f));function a(){n.length=0,r.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:a,getRoutes:l,getRecordMatcher:s}}function Do(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function Lo(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Ff(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 Ff(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function Fo(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Mf(e){return e.reduce((t,n)=>te(t,n.meta),{})}function Uf(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;Nl(e,t[o])<0?r=o:n=o+1}const s=jf(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function jf(e){let t=e;for(;t=t.parent;)if(Il(t)&&Nl(e,t)===0)return t}function Il({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Mo(e){const t=ke(br),n=ke(Is),r=Me(()=>{const c=Ot(e.to);return t.resolve(c)}),s=Me(()=>{const{matched:c}=r.value,{length:u}=c,a=c[u-1],f=n.matched;if(!a||!f.length)return-1;const p=f.findIndex(Xt.bind(null,a));if(p>-1)return p;const m=Uo(c[u-2]);return u>1&&Uo(a)===m&&f[f.length-1].path!==m?f.findIndex(Xt.bind(null,c[u-2])):p}),o=Me(()=>s.value>-1&&qf(n.params,r.value.params)),i=Me(()=>s.value>-1&&s.value===n.matched.length-1&&xl(n.params,r.value.params));function l(c={}){if(Vf(c)){const u=t[Ot(e.replace)?"replace":"push"](Ot(e.to)).catch(yn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Me(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function Bf(e){return e.length===1?e[0]:e}const Hf=Os({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=On(Mo(e)),{options:r}=ke(br),s=Me(()=>({[jo(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[jo(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&Bf(t.default(n));return e.custom?o:ml("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),kf=Hf;function Vf(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 qf(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!We(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function Uo(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const jo=(e,t,n)=>e??t??n,$f=Os({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=ke(os),s=Me(()=>e.route||r.value),o=ke(Co,0),i=Me(()=>{let u=Ot(o);const{matched:a}=s.value;let f;for(;(f=a[u])&&!f.components;)u++;return u}),l=Me(()=>s.value.matched[i.value]);Hn(Co,Me(()=>i.value+1)),Hn(_f,l),Hn(os,s);const c=Lt();return fn(()=>[c.value,l.value,e.name],([u,a,f],[p,m,g])=>{a&&(a.instances[f]=u,m&&m!==a&&u&&u===p&&(a.leaveGuards.size||(a.leaveGuards=m.leaveGuards),a.updateGuards.size||(a.updateGuards=m.updateGuards))),u&&a&&(!m||!Xt(a,m)||!p)&&(a.enterCallbacks[f]||[]).forEach(b=>b(u))},{flush:"post"}),()=>{const u=s.value,a=e.name,f=l.value,p=f&&f.components[a];if(!p)return Bo(n.default,{Component:p,route:u});const m=f.props[a],g=m?m===!0?u.params:typeof m=="function"?m(u):m:null,E=ml(p,te({},g,t,{onVnodeUnmounted:O=>{O.component.isUnmounted&&(f.instances[a]=null)},ref:c}));return Bo(n.default,{Component:E,route:u})||E}}});function Bo(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Dl=$f;function Kf(e){const t=Lf(e.routes,e),n=e.parseQuery||gf,r=e.stringifyQuery||To,s=e.history,o=sn(),i=sn(),l=sn(),c=Mc(bt);let u=bt;qt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const a=Mr.bind(null,R=>""+R),f=Mr.bind(null,Yu),p=Mr.bind(null,vn);function m(R,F){let D,j;return Tl(R)?(D=t.getRecordMatcher(R),j=F):j=R,t.addRoute(j,D)}function g(R){const F=t.getRecordMatcher(R);F&&t.removeRoute(F)}function b(){return t.getRoutes().map(R=>R.record)}function E(R){return!!t.getRecordMatcher(R)}function O(R,F){if(F=te({},F||c.value),typeof R=="string"){const y=Ur(n,R,F.path),w=t.resolve({path:y.path},F),A=s.createHref(y.fullPath);return te(y,w,{params:p(w.params),hash:vn(y.hash),redirectedFrom:void 0,href:A})}let D;if(R.path!=null)D=te({},R,{path:Ur(n,R.path,F.path).path});else{const y=te({},R.params);for(const w in y)y[w]==null&&delete y[w];D=te({},R,{params:f(y)}),F.params=f(F.params)}const j=t.resolve(D,F),Q=R.hash||"";j.params=a(p(j.params));const d=tf(r,te({},R,{hash:Ju(Q),path:j.path})),h=s.createHref(d);return te({fullPath:d,hash:Q,query:r===To?yf(R.query):R.query||{}},j,{redirectedFrom:void 0,href:h})}function C(R){return typeof R=="string"?Ur(n,R,c.value.path):te({},R)}function N(R,F){if(u!==R)return Qt(ae.NAVIGATION_CANCELLED,{from:F,to:R})}function P(R){return k(R)}function M(R){return P(te(C(R),{replace:!0}))}function X(R,F){const D=R.matched[R.matched.length-1];if(D&&D.redirect){const{redirect:j}=D;let Q=typeof j=="function"?j(R,F):j;return typeof Q=="string"&&(Q=Q.includes("?")||Q.includes("#")?Q=C(Q):{path:Q},Q.params={}),te({query:R.query,hash:R.hash,params:Q.path!=null?{}:R.params},Q)}}function k(R,F){const D=u=O(R),j=c.value,Q=R.state,d=R.force,h=R.replace===!0,y=X(D,j);if(y)return k(te(C(y),{state:typeof y=="object"?te({},Q,y.state):Q,force:d,replace:h}),F||D);const w=D;w.redirectedFrom=F;let A;return!d&&nf(r,j,D)&&(A=Qt(ae.NAVIGATION_DUPLICATED,{to:w,from:j}),me(j,j,!0,!1)),(A?Promise.resolve(A):ee(w,j)).catch(S=>at(S)?at(S,ae.NAVIGATION_GUARD_REDIRECT)?S:ze(S):z(S,w,j)).then(S=>{if(S){if(at(S,ae.NAVIGATION_GUARD_REDIRECT))return k(te({replace:h},C(S.to),{state:typeof S.to=="object"?te({},Q,S.to.state):Q,force:d}),F||w)}else S=ye(w,j,!0,h,Q);return ue(w,j,S),S})}function V(R,F){const D=N(R,F);return D?Promise.reject(D):Promise.resolve()}function U(R){const F=qe.values().next().value;return F&&typeof F.runWithContext=="function"?F.runWithContext(R):R()}function ee(R,F){let D;const[j,Q,d]=bf(R,F);D=Br(j.reverse(),"beforeRouteLeave",R,F);for(const y of j)y.leaveGuards.forEach(w=>{D.push(At(w,R,F))});const h=V.bind(null,R,F);return D.push(h),He(D).then(()=>{D=[];for(const y of o.list())D.push(At(y,R,F));return D.push(h),He(D)}).then(()=>{D=Br(Q,"beforeRouteUpdate",R,F);for(const y of Q)y.updateGuards.forEach(w=>{D.push(At(w,R,F))});return D.push(h),He(D)}).then(()=>{D=[];for(const y of d)if(y.beforeEnter)if(We(y.beforeEnter))for(const w of y.beforeEnter)D.push(At(w,R,F));else D.push(At(y.beforeEnter,R,F));return D.push(h),He(D)}).then(()=>(R.matched.forEach(y=>y.enterCallbacks={}),D=Br(d,"beforeRouteEnter",R,F,U),D.push(h),He(D))).then(()=>{D=[];for(const y of i.list())D.push(At(y,R,F));return D.push(h),He(D)}).catch(y=>at(y,ae.NAVIGATION_CANCELLED)?y:Promise.reject(y))}function ue(R,F,D){l.list().forEach(j=>U(()=>j(R,F,D)))}function ye(R,F,D,j,Q){const d=N(R,F);if(d)return d;const h=F===bt,y=qt?history.state:{};D&&(j||h?s.replace(R.fullPath,te({scroll:h&&y&&y.scroll},Q)):s.push(R.fullPath,Q)),c.value=R,me(R,F,D,h),ze()}let pe;function Re(){pe||(pe=s.listen((R,F,D)=>{if(!Xe.listening)return;const j=O(R),Q=X(j,Xe.currentRoute.value);if(Q){k(te(Q,{replace:!0,force:!0}),j).catch(yn);return}u=j;const d=c.value;qt&&ff(xo(d.fullPath,D.delta),_r()),ee(j,d).catch(h=>at(h,ae.NAVIGATION_ABORTED|ae.NAVIGATION_CANCELLED)?h:at(h,ae.NAVIGATION_GUARD_REDIRECT)?(k(te(C(h.to),{force:!0}),j).then(y=>{at(y,ae.NAVIGATION_ABORTED|ae.NAVIGATION_DUPLICATED)&&!D.delta&&D.type===rs.pop&&s.go(-1,!1)}).catch(yn),Promise.reject()):(D.delta&&s.go(-D.delta,!1),z(h,j,d))).then(h=>{h=h||ye(j,d,!1),h&&(D.delta&&!at(h,ae.NAVIGATION_CANCELLED)?s.go(-D.delta,!1):D.type===rs.pop&&at(h,ae.NAVIGATION_ABORTED|ae.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),ue(j,d,h)}).catch(yn)}))}let Ve=sn(),J=sn(),K;function z(R,F,D){ze(R);const j=J.list();return j.length?j.forEach(Q=>Q(R,F,D)):console.error(R),Promise.reject(R)}function Be(){return K&&c.value!==bt?Promise.resolve():new Promise((R,F)=>{Ve.add([R,F])})}function ze(R){return K||(K=!R,Re(),Ve.list().forEach(([F,D])=>R?D(R):F()),Ve.reset()),R}function me(R,F,D,j){const{scrollBehavior:Q}=e;if(!qt||!Q)return Promise.resolve();const d=!D&&df(xo(R.fullPath,0))||(j||!D)&&history.state&&history.state.scroll||null;return Rs().then(()=>Q(R,F,d)).then(h=>h&&uf(h)).catch(h=>z(h,R,F))}const fe=R=>s.go(R);let Je;const qe=new Set,Xe={currentRoute:c,listening:!0,addRoute:m,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:E,getRoutes:b,resolve:O,options:e,push:P,replace:M,go:fe,back:()=>fe(-1),forward:()=>fe(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:J.add,isReady:Be,install(R){R.component("RouterLink",kf),R.component("RouterView",Dl),R.config.globalProperties.$router=Xe,Object.defineProperty(R.config.globalProperties,"$route",{enumerable:!0,get:()=>Ot(c)}),qt&&!Je&&c.value===bt&&(Je=!0,P(s.location).catch(j=>{}));const F={};for(const j in bt)Object.defineProperty(F,j,{get:()=>c.value[j],enumerable:!0});R.provide(br,Xe),R.provide(Is,Ci(F)),R.provide(os,c);const D=R.unmount;qe.add(R),R.unmount=function(){qe.delete(R),qe.size<1&&(u=bt,pe&&pe(),pe=null,c.value=bt,Je=!1,K=!1),D()}}};function He(R){return R.reduce((F,D)=>F.then(()=>U(D)),Promise.resolve())}return Xe}function Lh(){return ke(br)}function Fh(e){return ke(Is)}function Ll(e,t){return function(){return e.apply(t,arguments)}}const{toString:Wf}=Object.prototype,{getPrototypeOf:Ds}=Object,{iterator:Er,toStringTag:Fl}=Symbol,wr=(e=>t=>{const n=Wf.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ge=e=>(e=e.toLowerCase(),t=>wr(t)===e),Sr=e=>t=>typeof t===e,{isArray:Zt}=Array,Yt=Sr("undefined");function Cn(e){return e!==null&&!Yt(e)&&e.constructor!==null&&!Yt(e.constructor)&&Ie(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Ml=Ge("ArrayBuffer");function Gf(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Ml(e.buffer),t}const zf=Sr("string"),Ie=Sr("function"),Ul=Sr("number"),Pn=e=>e!==null&&typeof e=="object",Jf=e=>e===!0||e===!1,Kn=e=>{if(wr(e)!=="object")return!1;const t=Ds(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Fl in e)&&!(Er in e)},Xf=e=>{if(!Pn(e)||Cn(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},Qf=Ge("Date"),Yf=Ge("File"),Zf=Ge("Blob"),ed=Ge("FileList"),td=e=>Pn(e)&&Ie(e.pipe),nd=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Ie(e.append)&&((t=wr(e))==="formdata"||t==="object"&&Ie(e.toString)&&e.toString()==="[object FormData]"))},rd=Ge("URLSearchParams"),[sd,od,id,ld]=["ReadableStream","Request","Response","Headers"].map(Ge),cd=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Nn(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),Zt(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const It=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Bl=e=>!Yt(e)&&e!==It;function is(){const{caseless:e,skipUndefined:t}=Bl(this)&&this||{},n={},r=(s,o)=>{const i=e&&jl(n,o)||o;Kn(n[i])&&Kn(s)?n[i]=is(n[i],s):Kn(s)?n[i]=is({},s):Zt(s)?n[i]=s.slice():(!t||!Yt(s))&&(n[i]=s)};for(let s=0,o=arguments.length;s(Nn(t,(s,o)=>{n&&Ie(s)?e[o]=Ll(s,n):e[o]=s},{allOwnKeys:r}),e),ud=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),fd=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},dd=(e,t,n,r)=>{let s,o,i;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&Ds(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},hd=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},pd=e=>{if(!e)return null;if(Zt(e))return e;let t=e.length;if(!Ul(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},md=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Ds(Uint8Array)),gd=(e,t)=>{const r=(e&&e[Er]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},yd=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},_d=Ge("HTMLFormElement"),bd=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),Ho=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Ed=Ge("RegExp"),Hl=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Nn(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},wd=e=>{Hl(e,(t,n)=>{if(Ie(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Ie(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Sd=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return Zt(e)?r(e):r(String(e).split(t)),n},Rd=()=>{},Ad=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function vd(e){return!!(e&&Ie(e.append)&&e[Fl]==="FormData"&&e[Er])}const Od=e=>{const t=new Array(10),n=(r,s)=>{if(Pn(r)){if(t.indexOf(r)>=0)return;if(Cn(r))return r;if(!("toJSON"in r)){t[s]=r;const o=Zt(r)?[]:{};return Nn(r,(i,l)=>{const c=n(i,s+1);!Yt(c)&&(o[l]=c)}),t[s]=void 0,o}}return r};return n(e,0)},xd=Ge("AsyncFunction"),Td=e=>e&&(Pn(e)||Ie(e))&&Ie(e.then)&&Ie(e.catch),kl=((e,t)=>e?setImmediate:t?((n,r)=>(It.addEventListener("message",({source:s,data:o})=>{s===It&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),It.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Ie(It.postMessage)),Cd=typeof queueMicrotask<"u"?queueMicrotask.bind(It):typeof process<"u"&&process.nextTick||kl,Pd=e=>e!=null&&Ie(e[Er]),_={isArray:Zt,isArrayBuffer:Ml,isBuffer:Cn,isFormData:nd,isArrayBufferView:Gf,isString:zf,isNumber:Ul,isBoolean:Jf,isObject:Pn,isPlainObject:Kn,isEmptyObject:Xf,isReadableStream:sd,isRequest:od,isResponse:id,isHeaders:ld,isUndefined:Yt,isDate:Qf,isFile:Yf,isBlob:Zf,isRegExp:Ed,isFunction:Ie,isStream:td,isURLSearchParams:rd,isTypedArray:md,isFileList:ed,forEach:Nn,merge:is,extend:ad,trim:cd,stripBOM:ud,inherits:fd,toFlatObject:dd,kindOf:wr,kindOfTest:Ge,endsWith:hd,toArray:pd,forEachEntry:gd,matchAll:yd,isHTMLForm:_d,hasOwnProperty:Ho,hasOwnProp:Ho,reduceDescriptors:Hl,freezeMethods:wd,toObjectSet:Sd,toCamelCase:bd,noop:Rd,toFiniteNumber:Ad,findKey:jl,global:It,isContextDefined:Bl,isSpecCompliantForm:vd,toJSONObject:Od,isAsyncFn:xd,isThenable:Td,setImmediate:kl,asap:Cd,isIterable:Pd};function G(e,t,n,r,s){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),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}_.inherits(G,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:_.toJSONObject(this.config),code:this.code,status:this.status}}});const Vl=G.prototype,ql={};["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=>{ql[e]={value:e}});Object.defineProperties(G,ql);Object.defineProperty(Vl,"isAxiosError",{value:!0});G.from=(e,t,n,r,s,o)=>{const i=Object.create(Vl);_.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 G.call(i,l,c,n,r,s),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 Nd=null;function ls(e){return _.isPlainObject(e)||_.isArray(e)}function $l(e){return _.endsWith(e,"[]")?e.slice(0,-2):e}function ko(e,t,n){return e?e.concat(t).map(function(s,o){return s=$l(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function Id(e){return _.isArray(e)&&!e.some(ls)}const Dd=_.toFlatObject(_,{},null,function(t){return/^is[A-Z]/.test(t)});function Rr(e,t,n){if(!_.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=_.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(b,E){return!_.isUndefined(E[b])});const r=n.metaTokens,s=n.visitor||a,o=n.dots,i=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&_.isSpecCompliantForm(t);if(!_.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(_.isDate(g))return g.toISOString();if(_.isBoolean(g))return g.toString();if(!c&&_.isBlob(g))throw new G("Blob is not supported. Use a Buffer instead.");return _.isArrayBuffer(g)||_.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function a(g,b,E){let O=g;if(g&&!E&&typeof g=="object"){if(_.endsWith(b,"{}"))b=r?b:b.slice(0,-2),g=JSON.stringify(g);else if(_.isArray(g)&&Id(g)||(_.isFileList(g)||_.endsWith(b,"[]"))&&(O=_.toArray(g)))return b=$l(b),O.forEach(function(N,P){!(_.isUndefined(N)||N===null)&&t.append(i===!0?ko([b],P,o):i===null?b:b+"[]",u(N))}),!1}return ls(g)?!0:(t.append(ko(E,b,o),u(g)),!1)}const f=[],p=Object.assign(Dd,{defaultVisitor:a,convertValue:u,isVisitable:ls});function m(g,b){if(!_.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+b.join("."));f.push(g),_.forEach(g,function(O,C){(!(_.isUndefined(O)||O===null)&&s.call(t,O,_.isString(C)?C.trim():C,b,p))===!0&&m(O,b?b.concat(C):[C])}),f.pop()}}if(!_.isObject(e))throw new TypeError("data must be an object");return m(e),t}function Vo(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Ls(e,t){this._pairs=[],e&&Rr(e,this,t)}const Kl=Ls.prototype;Kl.append=function(t,n){this._pairs.push([t,n])};Kl.toString=function(t){const n=t?function(r){return t.call(this,r,Vo)}:Vo;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Ld(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Wl(e,t,n){if(!t)return e;const r=n&&n.encode||Ld;_.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=_.isURLSearchParams(t)?t.toString():new Ls(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class qo{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){_.forEach(this.handlers,function(r){r!==null&&t(r)})}}const Gl={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Fd=typeof URLSearchParams<"u"?URLSearchParams:Ls,Md=typeof FormData<"u"?FormData:null,Ud=typeof Blob<"u"?Blob:null,jd={isBrowser:!0,classes:{URLSearchParams:Fd,FormData:Md,Blob:Ud},protocols:["http","https","file","blob","url","data"]},Fs=typeof window<"u"&&typeof document<"u",cs=typeof navigator=="object"&&navigator||void 0,Bd=Fs&&(!cs||["ReactNative","NativeScript","NS"].indexOf(cs.product)<0),Hd=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",kd=Fs&&window.location.href||"http://localhost",Vd=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Fs,hasStandardBrowserEnv:Bd,hasStandardBrowserWebWorkerEnv:Hd,navigator:cs,origin:kd},Symbol.toStringTag,{value:"Module"})),Ee={...Vd,...jd};function qd(e,t){return Rr(e,new Ee.classes.URLSearchParams,{visitor:function(n,r,s,o){return Ee.isNode&&_.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function $d(e){return _.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Kd(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&_.isArray(s)?s.length:i,c?(_.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!l):((!s[i]||!_.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&_.isArray(s[i])&&(s[i]=Kd(s[i])),!l)}if(_.isFormData(e)&&_.isFunction(e.entries)){const n={};return _.forEachEntry(e,(r,s)=>{t($d(r),s,n,0)}),n}return null}function Wd(e,t,n){if(_.isString(e))try{return(t||JSON.parse)(e),_.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const In={transitional:Gl,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=_.isObject(t);if(o&&_.isHTMLForm(t)&&(t=new FormData(t)),_.isFormData(t))return s?JSON.stringify(zl(t)):t;if(_.isArrayBuffer(t)||_.isBuffer(t)||_.isStream(t)||_.isFile(t)||_.isBlob(t)||_.isReadableStream(t))return t;if(_.isArrayBufferView(t))return t.buffer;if(_.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return qd(t,this.formSerializer).toString();if((l=_.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return Rr(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),Wd(t)):t}],transformResponse:[function(t){const n=this.transitional||In.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(_.isResponse(t)||_.isReadableStream(t))return t;if(t&&_.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(i)throw l.name==="SyntaxError"?G.from(l,G.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:Ee.classes.FormData,Blob:Ee.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};_.forEach(["delete","get","head","post","put","patch"],e=>{In.headers[e]={}});const Gd=_.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"]),zd=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&Gd[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},$o=Symbol("internals");function on(e){return e&&String(e).trim().toLowerCase()}function Wn(e){return e===!1||e==null?e:_.isArray(e)?e.map(Wn):String(e)}function Jd(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const Xd=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Hr(e,t,n,r,s){if(_.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!_.isString(t)){if(_.isString(r))return t.indexOf(r)!==-1;if(_.isRegExp(r))return r.test(t)}}function Qd(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Yd(e,t){const n=_.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let De=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(l,c,u){const a=on(c);if(!a)throw new Error("header name must be a non-empty string");const f=_.findKey(s,a);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||c]=Wn(l))}const i=(l,c)=>_.forEach(l,(u,a)=>o(u,a,c));if(_.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(_.isString(t)&&(t=t.trim())&&!Xd(t))i(zd(t),n);else if(_.isObject(t)&&_.isIterable(t)){let l={},c,u;for(const a of t){if(!_.isArray(a))throw TypeError("Object iterator must return a key-value pair");l[u=a[0]]=(c=l[u])?_.isArray(c)?[...c,a[1]]:[c,a[1]]:a[1]}i(l,n)}else t!=null&&o(n,t,r);return this}get(t,n){if(t=on(t),t){const r=_.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return Jd(s);if(_.isFunction(n))return n.call(this,s,r);if(_.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=on(t),t){const r=_.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Hr(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=on(i),i){const l=_.findKey(r,i);l&&(!n||Hr(r,r[l],l,n))&&(delete r[l],s=!0)}}return _.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||Hr(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return _.forEach(this,(s,o)=>{const i=_.findKey(r,o);if(i){n[i]=Wn(s),delete n[o];return}const l=t?Qd(o):String(o).trim();l!==o&&delete n[o],n[l]=Wn(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return _.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&_.isArray(r)?r.join(", "):r)}),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 r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[$o]=this[$o]={accessors:{}}).accessors,s=this.prototype;function o(i){const l=on(i);r[l]||(Yd(s,i),r[l]=!0)}return _.isArray(t)?t.forEach(o):o(t),this}};De.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);_.reduceDescriptors(De.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});_.freezeMethods(De);function kr(e,t){const n=this||In,r=t||n,s=De.from(r.headers);let o=r.data;return _.forEach(e,function(l){o=l.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function Jl(e){return!!(e&&e.__CANCEL__)}function en(e,t,n){G.call(this,e??"canceled",G.ERR_CANCELED,t,n),this.name="CanceledError"}_.inherits(en,G,{__CANCEL__:!0});function Xl(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new G("Request failed with status code "+n.status,[G.ERR_BAD_REQUEST,G.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function Zd(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function eh(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),a=r[o];i||(i=u),n[s]=c,r[s]=u;let f=o,p=0;for(;f!==s;)p+=n[f++],f=f%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i{n=a,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const a=Date.now(),f=a-n;f>=r?i(u,a):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-f)))},()=>s&&i(s)]}const sr=(e,t,n=3)=>{let r=0;const s=eh(50,250);return th(o=>{const i=o.loaded,l=o.lengthComputable?o.total:void 0,c=i-r,u=s(c),a=i<=l;r=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)},Ko=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Wo=e=>(...t)=>_.asap(()=>e(...t)),nh=Ee.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Ee.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Ee.origin),Ee.navigator&&/(msie|trident)/i.test(Ee.navigator.userAgent)):()=>!0,rh=Ee.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];_.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),_.isString(r)&&l.push(`path=${r}`),_.isString(s)&&l.push(`domain=${s}`),o===!0&&l.push("secure"),_.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 sh(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function oh(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Ql(e,t,n){let r=!sh(t);return e&&(r||n==!1)?oh(e,t):t}const Go=e=>e instanceof De?{...e}:e;function Ut(e,t){t=t||{};const n={};function r(u,a,f,p){return _.isPlainObject(u)&&_.isPlainObject(a)?_.merge.call({caseless:p},u,a):_.isPlainObject(a)?_.merge({},a):_.isArray(a)?a.slice():a}function s(u,a,f,p){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u,f,p)}else return r(u,a,f,p)}function o(u,a){if(!_.isUndefined(a))return r(void 0,a)}function i(u,a){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u)}else return r(void 0,a)}function l(u,a,f){if(f in t)return r(u,a);if(f in e)return r(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)=>s(Go(u),Go(a),f,!0)};return _.forEach(Object.keys({...e,...t}),function(a){const f=c[a]||s,p=f(e[a],t[a],a);_.isUndefined(p)&&f!==l||(n[a]=p)}),n}const Yl=e=>{const t=Ut({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:l}=t;if(t.headers=i=De.from(i),t.url=Wl(Ql(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&i.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),_.isFormData(n)){if(Ee.hasStandardBrowserEnv||Ee.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(_.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(Ee.hasStandardBrowserEnv&&(r&&_.isFunction(r)&&(r=r(t)),r||r!==!1&&nh(t.url))){const c=s&&o&&rh.read(o);c&&i.set(s,c)}return t},ih=typeof XMLHttpRequest<"u",lh=ih&&function(e){return new Promise(function(n,r){const s=Yl(e);let o=s.data;const i=De.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,a,f,p,m,g;function b(){m&&m(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(a),s.signal&&s.signal.removeEventListener("abort",a)}let E=new XMLHttpRequest;E.open(s.method.toUpperCase(),s.url,!0),E.timeout=s.timeout;function O(){if(!E)return;const N=De.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),M={data:!l||l==="text"||l==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:N,config:e,request:E};Xl(function(k){n(k),b()},function(k){r(k),b()},M),E=null}"onloadend"in E?E.onloadend=O:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.indexOf("file:")===0)||setTimeout(O)},E.onabort=function(){E&&(r(new G("Request aborted",G.ECONNABORTED,e,E)),E=null)},E.onerror=function(P){const M=P&&P.message?P.message:"Network Error",X=new G(M,G.ERR_NETWORK,e,E);X.event=P||null,r(X),E=null},E.ontimeout=function(){let P=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const M=s.transitional||Gl;s.timeoutErrorMessage&&(P=s.timeoutErrorMessage),r(new G(P,M.clarifyTimeoutError?G.ETIMEDOUT:G.ECONNABORTED,e,E)),E=null},o===void 0&&i.setContentType(null),"setRequestHeader"in E&&_.forEach(i.toJSON(),function(P,M){E.setRequestHeader(M,P)}),_.isUndefined(s.withCredentials)||(E.withCredentials=!!s.withCredentials),l&&l!=="json"&&(E.responseType=s.responseType),u&&([p,g]=sr(u,!0),E.addEventListener("progress",p)),c&&E.upload&&([f,m]=sr(c),E.upload.addEventListener("progress",f),E.upload.addEventListener("loadend",m)),(s.cancelToken||s.signal)&&(a=N=>{E&&(r(!N||N.type?new en(null,e,E):N),E.abort(),E=null)},s.cancelToken&&s.cancelToken.subscribe(a),s.signal&&(s.signal.aborted?a():s.signal.addEventListener("abort",a)));const C=Zd(s.url);if(C&&Ee.protocols.indexOf(C)===-1){r(new G("Unsupported protocol "+C+":",G.ERR_BAD_REQUEST,e));return}E.send(o||null)})},ch=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,l();const a=u instanceof Error?u:this.reason;r.abort(a instanceof G?a:new en(a instanceof Error?a.message:a))}};let i=t&&setTimeout(()=>{i=null,o(new G(`timeout ${t} of ms exceeded`,G.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}=r;return c.unsubscribe=()=>_.asap(l),c}},ah=function*(e,t){let n=e.byteLength;if(n{const s=uh(e,t);let o=0,i,l=c=>{i||(i=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:a}=await s.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),s.return()}},{highWaterMark:2})},Jo=64*1024,{isFunction:Un}=_,dh=(({Request:e,Response:t})=>({Request:e,Response:t}))(_.global),{ReadableStream:Xo,TextEncoder:Qo}=_.global,Yo=(e,...t)=>{try{return!!e(...t)}catch{return!1}},hh=e=>{e=_.merge.call({skipUndefined:!0},dh,e);const{fetch:t,Request:n,Response:r}=e,s=t?Un(t):typeof fetch=="function",o=Un(n),i=Un(r);if(!s)return!1;const l=s&&Un(Xo),c=s&&(typeof Qo=="function"?(g=>b=>g.encode(b))(new Qo):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=o&&l&&Yo(()=>{let g=!1;const b=new n(Ee.origin,{body:new Xo,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!b}),a=i&&l&&Yo(()=>_.isReadableStream(new r("").body)),f={stream:a&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(b,E)=>{let O=b&&b[g];if(O)return O.call(b);throw new G(`Response type '${g}' is not supported`,G.ERR_NOT_SUPPORT,E)})});const p=async g=>{if(g==null)return 0;if(_.isBlob(g))return g.size;if(_.isSpecCompliantForm(g))return(await new n(Ee.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(_.isArrayBufferView(g)||_.isArrayBuffer(g))return g.byteLength;if(_.isURLSearchParams(g)&&(g=g+""),_.isString(g))return(await c(g)).byteLength},m=async(g,b)=>{const E=_.toFiniteNumber(g.getContentLength());return E??p(b)};return async g=>{let{url:b,method:E,data:O,signal:C,cancelToken:N,timeout:P,onDownloadProgress:M,onUploadProgress:X,responseType:k,headers:V,withCredentials:U="same-origin",fetchOptions:ee}=Yl(g),ue=t||fetch;k=k?(k+"").toLowerCase():"text";let ye=ch([C,N&&N.toAbortSignal()],P),pe=null;const Re=ye&&ye.unsubscribe&&(()=>{ye.unsubscribe()});let Ve;try{if(X&&u&&E!=="get"&&E!=="head"&&(Ve=await m(V,O))!==0){let me=new n(b,{method:"POST",body:O,duplex:"half"}),fe;if(_.isFormData(O)&&(fe=me.headers.get("content-type"))&&V.setContentType(fe),me.body){const[Je,qe]=Ko(Ve,sr(Wo(X)));O=zo(me.body,Jo,Je,qe)}}_.isString(U)||(U=U?"include":"omit");const J=o&&"credentials"in n.prototype,K={...ee,signal:ye,method:E.toUpperCase(),headers:V.normalize().toJSON(),body:O,duplex:"half",credentials:J?U:void 0};pe=o&&new n(b,K);let z=await(o?ue(pe,ee):ue(b,K));const Be=a&&(k==="stream"||k==="response");if(a&&(M||Be&&Re)){const me={};["status","statusText","headers"].forEach(Xe=>{me[Xe]=z[Xe]});const fe=_.toFiniteNumber(z.headers.get("content-length")),[Je,qe]=M&&Ko(fe,sr(Wo(M),!0))||[];z=new r(zo(z.body,Jo,Je,()=>{qe&&qe(),Re&&Re()}),me)}k=k||"text";let ze=await f[_.findKey(f,k)||"text"](z,g);return!Be&&Re&&Re(),await new Promise((me,fe)=>{Xl(me,fe,{data:ze,headers:De.from(z.headers),status:z.status,statusText:z.statusText,config:g,request:pe})})}catch(J){throw Re&&Re(),J&&J.name==="TypeError"&&/Load failed|fetch/i.test(J.message)?Object.assign(new G("Network Error",G.ERR_NETWORK,g,pe),{cause:J.cause||J}):G.from(J,J&&J.code,g,pe)}}},ph=new Map,Zl=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,l=i,c,u,a=ph;for(;l--;)c=o[l],u=a.get(c),u===void 0&&a.set(c,u=l?new Map:hh(t)),a=u;return u};Zl();const Ms={http:Nd,xhr:lh,fetch:{get:Zl}};_.forEach(Ms,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Zo=e=>`- ${e}`,mh=e=>_.isFunction(e)||e===null||e===!1;function gh(e,t){e=_.isArray(e)?e:[e];const{length:n}=e;let r,s;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(Zo).join(` +`):" "+Zo(i[0]):"as no adapter specified";throw new G("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const ec={getAdapter:gh,adapters:Ms};function Vr(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new en(null,e)}function ei(e){return Vr(e),e.headers=De.from(e.headers),e.data=kr.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),ec.getAdapter(e.adapter||In.adapter,e)(e).then(function(r){return Vr(e),r.data=kr.call(e,e.transformResponse,r),r.headers=De.from(r.headers),r},function(r){return Jl(r)||(Vr(e),r&&r.response&&(r.response.data=kr.call(e,e.transformResponse,r.response),r.response.headers=De.from(r.response.headers))),Promise.reject(r)})}const tc="1.13.2",Ar={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Ar[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const ti={};Ar.transitional=function(t,n,r){function s(o,i){return"[Axios v"+tc+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,l)=>{if(t===!1)throw new G(s(i," has been removed"+(n?" in "+n:"")),G.ERR_DEPRECATED);return n&&!ti[i]&&(ti[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,l):!0}};Ar.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function yh(e,t,n){if(typeof e!="object")throw new G("options must be an object",G.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const l=e[o],c=l===void 0||i(l,o,e);if(c!==!0)throw new G("option "+o+" must be "+c,G.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new G("Unknown option "+o,G.ERR_BAD_OPTION)}}const Gn={assertOptions:yh,validators:Ar},nt=Gn.validators;let Mt=class{constructor(t){this.defaults=t||{},this.interceptors={request:new qo,response:new qo}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Ut(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&Gn.assertOptions(r,{silentJSONParsing:nt.transitional(nt.boolean),forcedJSONParsing:nt.transitional(nt.boolean),clarifyTimeoutError:nt.transitional(nt.boolean)},!1),s!=null&&(_.isFunction(s)?n.paramsSerializer={serialize:s}:Gn.assertOptions(s,{encode:nt.function,serialize:nt.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Gn.assertOptions(n,{baseUrl:nt.spelling("baseURL"),withXsrfToken:nt.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&_.merge(o.common,o[n.method]);o&&_.forEach(["delete","get","head","post","put","patch","common"],g=>{delete o[g]}),n.headers=De.concat(i,o);const l=[];let c=!0;this.interceptors.request.forEach(function(b){typeof b.runWhen=="function"&&b.runWhen(n)===!1||(c=c&&b.synchronous,l.unshift(b.fulfilled,b.rejected))});const u=[];this.interceptors.response.forEach(function(b){u.push(b.fulfilled,b.rejected)});let a,f=0,p;if(!c){const g=[ei.bind(this),void 0];for(g.unshift(...l),g.push(...u),p=g.length,a=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(l=>{r.subscribe(l),o=l}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,l){r.reason||(r.reason=new en(o,i,l),n(r.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=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new nc(function(s){t=s}),cancel:t}}};function bh(e){return function(n){return e.apply(null,n)}}function Eh(e){return _.isObject(e)&&e.isAxiosError===!0}const as={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(as).forEach(([e,t])=>{as[t]=e});function rc(e){const t=new Mt(e),n=Ll(Mt.prototype.request,t);return _.extend(n,Mt.prototype,t,{allOwnKeys:!0}),_.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return rc(Ut(e,s))},n}const he=rc(In);he.Axios=Mt;he.CanceledError=en;he.CancelToken=_h;he.isCancel=Jl;he.VERSION=tc;he.toFormData=Rr;he.AxiosError=G;he.Cancel=he.CanceledError;he.all=function(t){return Promise.all(t)};he.spread=bh;he.isAxiosError=Eh;he.mergeConfig=Ut;he.AxiosHeaders=De;he.formToJSON=e=>zl(_.isHTMLForm(e)?new FormData(e):e);he.getAdapter=ec.getAdapter;he.HttpStatusCode=as;he.default=he;const{Axios:jh,AxiosError:Bh,CanceledError:Hh,isCancel:kh,CancelToken:Vh,VERSION:qh,all:$h,Cancel:Kh,isAxiosError:Wh,spread:Gh,toFormData:zh,AxiosHeaders:Jh,HttpStatusCode:Xh,formToJSON:Qh,getAdapter:Yh,mergeConfig:Zh}=he,_n=he.create({baseURL:"",timeout:3e4,withCredentials:!0});_n.interceptors.request.use(e=>e,e=>Promise.reject(e));_n.interceptors.response.use(e=>e.data,e=>{e.response?.status===401&&(window.location.hash="#/login");const t=e.response?.data?e.response.data.detail||e.response.data.message:e.message;return Promise.reject(new Error(t||"请求失败"))});const jn={login:e=>{const t=new URLSearchParams;return t.append("admin_key",e.password),_n.post("/login",t,{headers:{"Content-Type":"application/x-www-form-urlencoded"}})},logout:()=>_n.post("/logout"),checkAuth:()=>_n.get("/admin/health")},wh=Mu("auth",()=>{const e=Lt(!1),t=Lt(!1),n=Lt(0),r=1e4;let s=null;async function o(c){t.value=!0;try{return await jn.login({password:c}),await jn.checkAuth(),e.value=!0,n.value=Date.now(),!0}catch(u){throw e.value=!1,u}finally{t.value=!1}}async function i(){try{await jn.logout()}finally{e.value=!1,n.value=0}}async function l(){const c=Date.now();if(e.value&&c-n.value(await jn.checkAuth(),e.value=!0,!0))(),await s}catch{return e.value=!1,!1}finally{n.value=Date.now(),s=null}}return{isLoggedIn:e,isLoading:t,login:o,logout:i,checkAuth:l}}),sc=Kf({history:Af("/"),routes:[{path:"/public/uptime",name:"public-uptime",component:()=>tt(()=>import("./PublicUptime-CU-VgKVz.js"),__vite__mapDeps([0,1])),meta:{requiresAuth:!1}},{path:"/public/logs",name:"public-logs",component:()=>tt(()=>import("./PublicLogs-Dq0IZVPI.js"),[]),meta:{requiresAuth:!1}},{path:"/login",name:"login",component:()=>tt(()=>import("./Login-D756Ktyu.js"),[]),meta:{requiresAuth:!1}},{path:"/",component:()=>tt(()=>import("./AppShell-D6boa7bt.js"),__vite__mapDeps([2,3,4,5])),meta:{requiresAuth:!0},children:[{path:"",name:"dashboard",component:()=>tt(()=>import("./Dashboard-XyMK6wF9.js"),__vite__mapDeps([6,7]))},{path:"accounts",name:"accounts",component:()=>tt(()=>import("./Accounts-YFw0nAMh.js"),__vite__mapDeps([8,9,10,4,5,7]))},{path:"settings",name:"settings",component:()=>tt(()=>import("./Settings-DfcwScgC.js"),__vite__mapDeps([11,3,9,10]))},{path:"logs",name:"logs",component:()=>tt(()=>import("./Logs-B98yvDJ_.js"),__vite__mapDeps([12,9,4]))},{path:"monitor",name:"monitor",component:()=>tt(()=>import("./Monitor-hjSJvizM.js"),__vite__mapDeps([13,1]))},{path:"docs",name:"docs",component:()=>tt(()=>import("./Docs-DIGqcqIE.js"),[])}]}]});sc.beforeEach(async e=>{const t=wh();if(e.meta.requiresAuth&&!await t.checkAuth())return{name:"login"};if(e.name==="login"&&t.isLoggedIn)return{name:"dashboard"}});const Sh=Os({__name:"App",setup(e){return(t,n)=>(er(),nr(Ot(Dl)))}}),Us=xu(Sh),Rh=Pu();Us.use(Rh);Us.use(sc);Us.mount("#app");export{Xc as A,Dl as B,Mu as C,Dh as D,xh as E,Fe as F,Rs as G,On as H,kf as R,vh as T,fl as a,Ph as b,Th as c,Os as d,er as e,Wa as f,_n as g,Lt as h,Me as i,fa as j,ps as k,wh as l,Ah as m,ms as n,ca as o,Lh as p,Fh as q,Oh as r,fn as s,mc as t,Ot as u,Nh as v,Ih as w,Ce as x,nr as y,Ch as z}; diff --git a/static/assets/index-Bjh6Z8Zq.js b/static/assets/index-Bjh6Z8Zq.js new file mode 100644 index 0000000000000000000000000000000000000000..65216cf95dbb4865ec7f7d5451e32496298e2a4b --- /dev/null +++ b/static/assets/index-Bjh6Z8Zq.js @@ -0,0 +1,7 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PublicUptime-BGMR85hP.js","assets/useUptimeStatus-Cxcf3uxZ.js","assets/Login-dw5Ee5N0.js","assets/Checkbox.vue_vue_type_script_setup_true_lang-zogPNTWE.js","assets/AppShell-CI3sE0H8.js","assets/settings-BgKIn-YY.js","assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-NECRqKOO.js","assets/useConfirmDialog-GDc9JuxO.js","assets/Dashboard-VSjcqlN8.js","assets/HelpTip.vue_vue_type_script_setup_true_lang-D_8sK7BY.js","assets/Accounts-DIoN-Ccm.js","assets/SelectMenu.vue_vue_type_script_setup_true_lang-DG1nunQt.js","assets/Settings-UhS0WpSG.js","assets/Logs-CMgCLVvO.js","assets/Monitor-DMikmVDB.js"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function Ns(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const ce={},tn=[],ut=()=>{},xi=()=>!1,wr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Is=e=>e.startsWith("onUpdate:"),Ee=Object.assign,Ls=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Bc=Object.prototype.hasOwnProperty,oe=(e,t)=>Bc.call(e,t),K=Array.isArray,nn=e=>vr(e)==="[object Map]",Ti=e=>vr(e)==="[object Set]",J=e=>typeof e=="function",pe=e=>typeof e=="string",vt=e=>typeof e=="symbol",ae=e=>e!==null&&typeof e=="object",Oi=e=>(ae(e)||J(e))&&J(e.then)&&J(e.catch),Pi=Object.prototype.toString,vr=e=>Pi.call(e),Uc=e=>vr(e).slice(8,-1),Ni=e=>vr(e)==="[object Object]",Sr=e=>pe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,En=Ns(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ar=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},jc=/-\w/g,Dt=Ar(e=>e.replace(jc,t=>t.slice(1).toUpperCase())),Hc=/\B([A-Z])/g,zt=Ar(e=>e.replace(Hc,"-$1").toLowerCase()),Ii=Ar(e=>e.charAt(0).toUpperCase()+e.slice(1)),Vr=Ar(e=>e?`on${Ii(e)}`:""),Lt=(e,t)=>!Object.is(e,t),er=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},Ds=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Vc=e=>{const t=pe(e)?Number(e):NaN;return isNaN(t)?e:t};let io;const Rr=()=>io||(io=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Fs(e){if(K(e)){const t={};for(let n=0;n{if(n){const r=n.split(qc);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Nn(e){let t="";if(pe(e))t=e;else if(K(e))for(let n=0;n!!(e&&e.__v_isRef===!0),ls=e=>pe(e)?e:e==null?"":K(e)||ae(e)&&(e.toString===Pi||!J(e.toString))?Fi(e)?ls(e.value):JSON.stringify(e,Mi,2):String(e),Mi=(e,t)=>Fi(t)?Mi(e,t.value):nn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[$r(r,o)+" =>"]=s,n),{})}:Ti(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>$r(n))}:vt(t)?$r(t):ae(t)&&!K(t)&&!Ni(t)?String(t):t,$r=(e,t="")=>{var n;return vt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let Se;class ki{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,r;for(n=0,r=this.effects.length;n0)return;if(vn){let t=vn;for(vn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;wn;){let t=wn;for(wn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function $i(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function qi(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),Bs(r),Xc(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function cs(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Ki(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Ki(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===In)||(e.globalVersion=In,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!cs(e))))return;e.flags|=2;const t=e.dep,n=fe,r=Ge;fe=e,Ge=!0;try{$i(e);const s=e.fn(e._value);(t.version===0||Lt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{fe=n,Ge=r,qi(e),e.flags&=-3}}function Bs(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)Bs(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Xc(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Ge=!0;const Wi=[];function bt(){Wi.push(Ge),Ge=!1}function Et(){const e=Wi.pop();Ge=e===void 0?!0:e}function lo(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=fe;fe=void 0;try{t()}finally{fe=n}}}let In=0;class Qc{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 Us{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(!fe||!Ge||fe===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==fe)n=this.activeLink=new Qc(fe,this),fe.deps?(n.prevDep=fe.depsTail,fe.depsTail.nextDep=n,fe.depsTail=n):fe.deps=fe.depsTail=n,Gi(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=fe.depsTail,n.nextDep=void 0,fe.depsTail.nextDep=n,fe.depsTail=n,fe.deps===n&&(fe.deps=r)}return n}trigger(t){this.version++,In++,this.notify(t)}notify(t){Ms();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ks()}}}function Gi(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Gi(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const ar=new WeakMap,Vt=Symbol(""),as=Symbol(""),Ln=Symbol("");function Ae(e,t,n){if(Ge&&fe){let r=ar.get(e);r||ar.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new Us),s.map=r,s.key=n),s.track()}}function yt(e,t,n,r,s,o){const i=ar.get(e);if(!i){In++;return}const l=c=>{c&&c.trigger()};if(Ms(),t==="clear")i.forEach(l);else{const c=K(e),u=c&&Sr(n);if(c&&n==="length"){const a=Number(r);i.forEach((f,h)=>{(h==="length"||h===Ln||!vt(h)&&h>=a)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(Ln)),t){case"add":c?u&&l(i.get("length")):(l(i.get(Vt)),nn(e)&&l(i.get(as)));break;case"delete":c||(l(i.get(Vt)),nn(e)&&l(i.get(as)));break;case"set":nn(e)&&l(i.get(Vt));break}}ks()}function Yc(e,t){const n=ar.get(e);return n&&n.get(t)}function Jt(e){const t=re(e);return t===e?t:(Ae(t,"iterate",Ln),je(e)?t:t.map(ze))}function Cr(e){return Ae(e=re(e),"iterate",Ln),e}function Ot(e,t){return wt(e)?ft(e)?on(ze(t)):on(t):ze(t)}const Zc={__proto__:null,[Symbol.iterator](){return Kr(this,Symbol.iterator,e=>Ot(this,e))},concat(...e){return Jt(this).concat(...e.map(t=>K(t)?Jt(t):t))},entries(){return Kr(this,"entries",e=>(e[1]=Ot(this,e[1]),e))},every(e,t){return pt(this,"every",e,t,void 0,arguments)},filter(e,t){return pt(this,"filter",e,t,n=>n.map(r=>Ot(this,r)),arguments)},find(e,t){return pt(this,"find",e,t,n=>Ot(this,n),arguments)},findIndex(e,t){return pt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return pt(this,"findLast",e,t,n=>Ot(this,n),arguments)},findLastIndex(e,t){return pt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return pt(this,"forEach",e,t,void 0,arguments)},includes(...e){return Wr(this,"includes",e)},indexOf(...e){return Wr(this,"indexOf",e)},join(e){return Jt(this).join(e)},lastIndexOf(...e){return Wr(this,"lastIndexOf",e)},map(e,t){return pt(this,"map",e,t,void 0,arguments)},pop(){return mn(this,"pop")},push(...e){return mn(this,"push",e)},reduce(e,...t){return co(this,"reduce",e,t)},reduceRight(e,...t){return co(this,"reduceRight",e,t)},shift(){return mn(this,"shift")},some(e,t){return pt(this,"some",e,t,void 0,arguments)},splice(...e){return mn(this,"splice",e)},toReversed(){return Jt(this).toReversed()},toSorted(e){return Jt(this).toSorted(e)},toSpliced(...e){return Jt(this).toSpliced(...e)},unshift(...e){return mn(this,"unshift",e)},values(){return Kr(this,"values",e=>Ot(this,e))}};function Kr(e,t,n){const r=Cr(e),s=r[t]();return r!==e&&!je(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const ea=Array.prototype;function pt(e,t,n,r,s,o){const i=Cr(e),l=i!==e&&!je(e),c=i[t];if(c!==ea[t]){const f=c.apply(e,o);return l?ze(f):f}let u=n;i!==e&&(l?u=function(f,h){return n.call(this,Ot(e,f),h,e)}:n.length>2&&(u=function(f,h){return n.call(this,f,h,e)}));const a=c.call(i,u,r);return l&&s?s(a):a}function co(e,t,n,r){const s=Cr(e);let o=n;return s!==e&&(je(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,Ot(e,l),c,e)}),s[t](o,...r)}function Wr(e,t,n){const r=re(e);Ae(r,"iterate",Ln);const s=r[t](...n);return(s===-1||s===!1)&&xr(n[0])?(n[0]=re(n[0]),r[t](...n)):s}function mn(e,t,n=[]){bt(),Ms();const r=re(e)[t].apply(e,n);return ks(),Et(),r}const ta=Ns("__proto__,__v_isRef,__isVue"),zi=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(vt));function na(e){vt(e)||(e=String(e));const t=re(this);return Ae(t,"has",e),t.hasOwnProperty(e)}class Ji{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?da:Zi:o?Yi:Qi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=K(t);if(!s){let c;if(i&&(c=Zc[n]))return c;if(n==="hasOwnProperty")return na}const l=Reflect.get(t,n,de(t)?t:r);if((vt(n)?zi.has(n):ta(n))||(s||Ae(t,"get",n),o))return l;if(de(l)){const c=i&&Sr(n)?l:l.value;return s&&ae(c)?fs(c):c}return ae(l)?s?fs(l):fn(l):l}}class Xi extends Ji{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=K(t)&&Sr(n);if(!this._isShallow){const u=wt(o);if(!je(r)&&!wt(r)&&(o=re(o),r=re(r)),!i&&de(o)&&!de(r))return u||(o.value=r),!0}const l=i?Number(n)e,Wn=e=>Reflect.getPrototypeOf(e);function la(e,t,n){return function(...r){const s=this.__v_raw,o=re(s),i=nn(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=s[e](...r),a=n?us:t?on:ze;return!t&&Ae(o,"iterate",c?as:Vt),{next(){const{value:f,done:h}=u.next();return h?{value:f,done:h}:{value:l?[a(f[0]),a(f[1])]:a(f),done:h}},[Symbol.iterator](){return this}}}}function Gn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function ca(e,t){const n={get(s){const o=this.__v_raw,i=re(o),l=re(s);e||(Lt(s,l)&&Ae(i,"get",s),Ae(i,"get",l));const{has:c}=Wn(i),u=t?us:e?on:ze;if(c.call(i,s))return u(o.get(s));if(c.call(i,l))return u(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&Ae(re(s),"iterate",Vt),s.size},has(s){const o=this.__v_raw,i=re(o),l=re(s);return e||(Lt(s,l)&&Ae(i,"has",s),Ae(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,c=re(l),u=t?us:e?on:ze;return!e&&Ae(c,"iterate",Vt),l.forEach((a,f)=>s.call(o,u(a),u(f),i))}};return Ee(n,e?{add:Gn("add"),set:Gn("set"),delete:Gn("delete"),clear:Gn("clear")}:{add(s){!t&&!je(s)&&!wt(s)&&(s=re(s));const o=re(this);return Wn(o).has.call(o,s)||(o.add(s),yt(o,"add",s,s)),this},set(s,o){!t&&!je(o)&&!wt(o)&&(o=re(o));const i=re(this),{has:l,get:c}=Wn(i);let u=l.call(i,s);u||(s=re(s),u=l.call(i,s));const a=c.call(i,s);return i.set(s,o),u?Lt(o,a)&&yt(i,"set",s,o):yt(i,"add",s,o),this},delete(s){const o=re(this),{has:i,get:l}=Wn(o);let c=i.call(o,s);c||(s=re(s),c=i.call(o,s)),l&&l.call(o,s);const u=o.delete(s);return c&&yt(o,"delete",s,void 0),u},clear(){const s=re(this),o=s.size!==0,i=s.clear();return o&&yt(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=la(s,e,t)}),n}function js(e,t){const n=ca(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(oe(n,s)&&s in r?n:r,s,o)}const aa={get:js(!1,!1)},ua={get:js(!1,!0)},fa={get:js(!0,!1)};const Qi=new WeakMap,Yi=new WeakMap,Zi=new WeakMap,da=new WeakMap;function ha(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function pa(e){return e.__v_skip||!Object.isExtensible(e)?0:ha(Uc(e))}function fn(e){return wt(e)?e:Hs(e,!1,sa,aa,Qi)}function el(e){return Hs(e,!1,ia,ua,Yi)}function fs(e){return Hs(e,!0,oa,fa,Zi)}function Hs(e,t,n,r,s){if(!ae(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=pa(e);if(o===0)return e;const i=s.get(e);if(i)return i;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function ft(e){return wt(e)?ft(e.__v_raw):!!(e&&e.__v_isReactive)}function wt(e){return!!(e&&e.__v_isReadonly)}function je(e){return!!(e&&e.__v_isShallow)}function xr(e){return e?!!e.__v_raw:!1}function re(e){const t=e&&e.__v_raw;return t?re(t):e}function Vs(e){return!oe(e,"__v_skip")&&Object.isExtensible(e)&&Li(e,"__v_skip",!0),e}const ze=e=>ae(e)?fn(e):e,on=e=>ae(e)?fs(e):e;function de(e){return e?e.__v_isRef===!0:!1}function $t(e){return tl(e,!1)}function ma(e){return tl(e,!0)}function tl(e,t){return de(e)?e:new ga(e,t)}class ga{constructor(t,n){this.dep=new Us,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:re(t),this._value=n?t:ze(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||je(t)||wt(t);t=r?t:re(t),Lt(t,n)&&(this._rawValue=t,this._value=r?t:ze(t),this.dep.trigger())}}function dt(e){return de(e)?e.value:e}const ya={get:(e,t,n)=>t==="__v_raw"?e:dt(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return de(s)&&!de(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function nl(e){return ft(e)?e:new Proxy(e,ya)}function _a(e){const t=K(e)?new Array(e.length):{};for(const n in e)t[n]=rl(e,n);return t}class ba{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._raw=re(t);let s=!0,o=t;if(!K(t)||!Sr(String(n)))do s=!xr(o)||je(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=dt(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&de(this._raw[this._key])){const n=this._object[this._key];if(de(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return Yc(this._raw,this._key)}}class Ea{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function wa(e,t,n){return de(e)?e:J(e)?new Ea(e):ae(e)&&arguments.length>1?rl(e,t,n):$t(e)}function rl(e,t,n){return new ba(e,t,n)}class va{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Us(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=In-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&fe!==this)return Vi(this,!0),!0}get value(){const t=this.dep.track();return Ki(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Sa(e,t,n=!1){let r,s;return J(e)?r=e:(r=e.get,s=e.set),new va(r,s,n)}const zn={},ur=new WeakMap;let Bt;function Aa(e,t=!1,n=Bt){if(n){let r=ur.get(n);r||ur.set(n,r=[]),r.push(e)}}function Ra(e,t,n=ce){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:c}=n,u=O=>s?O:je(O)||s===!1||s===0?_t(O,1):_t(O);let a,f,h,m,g=!1,b=!1;if(de(e)?(f=()=>e.value,g=je(e)):ft(e)?(f=()=>u(e),g=!0):K(e)?(b=!0,g=e.some(O=>ft(O)||je(O)),f=()=>e.map(O=>{if(de(O))return O.value;if(ft(O))return u(O);if(J(O))return c?c(O,2):O()})):J(e)?t?f=c?()=>c(e,2):e:f=()=>{if(h){bt();try{h()}finally{Et()}}const O=Bt;Bt=a;try{return c?c(e,3,[m]):e(m)}finally{Bt=O}}:f=ut,t&&s){const O=f,B=s===!0?1/0:s;f=()=>_t(O(),B)}const E=Ui(),C=()=>{a.stop(),E&&E.active&&Ls(E.effects,a)};if(o&&t){const O=t;t=(...B)=>{O(...B),C()}}let T=b?new Array(e.length).fill(zn):zn;const N=O=>{if(!(!(a.flags&1)||!a.dirty&&!O))if(t){const B=a.run();if(s||g||(b?B.some((G,j)=>Lt(G,T[j])):Lt(B,T))){h&&h();const G=Bt;Bt=a;try{const j=[B,T===zn?void 0:b&&T[0]===zn?[]:T,m];T=B,c?c(t,3,j):t(...j)}finally{Bt=G}}}else a.run()};return l&&l(N),a=new ji(f),a.scheduler=i?()=>i(N,!1):N,m=O=>Aa(O,!1,a),h=a.onStop=()=>{const O=ur.get(a);if(O){if(c)c(O,4);else for(const B of O)B();ur.delete(a)}},t?r?N(!0):T=a.run():i?i(N.bind(null,!0),!0):a.run(),C.pause=a.pause.bind(a),C.resume=a.resume.bind(a),C.stop=C,C}function _t(e,t=1/0,n){if(t<=0||!ae(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,de(e))_t(e.value,t,n);else if(K(e))for(let r=0;r{_t(r,t,n)});else if(Ni(e)){for(const r in e)_t(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&_t(e[r],t,n)}return e}function jn(e,t,n,r){try{return r?e(...r):e()}catch(s){Tr(s,t,n)}}function Je(e,t,n,r){if(J(e)){const s=jn(e,t,n,r);return s&&Oi(s)&&s.catch(o=>{Tr(o,t,n)}),s}if(K(e)){const s=[];for(let o=0;o>>1,s=Pe[r],o=Dn(s);o=Dn(n)?Pe.push(e):Pe.splice(xa(t),0,e),e.flags|=1,ol()}}function ol(){fr||(fr=sl.then(ll))}function Ta(e){K(e)?rn.push(...e):Pt&&e.id===-1?Pt.splice(Qt+1,0,e):e.flags&1||(rn.push(e),e.flags|=1),ol()}function ao(e,t,n=ct+1){for(;nDn(n)-Dn(r));if(rn.length=0,Pt){Pt.push(...t);return}for(Pt=t,Qt=0;Qte.id==null?e.flags&2?-1:1/0:e.id;function ll(e){try{for(ct=0;ct{r._d&&mr(-1);const o=dr(t);let i;try{i=e(...s)}finally{dr(o),r._d&&mr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function xp(e,t){if(Ce===null)return e;const n=Lr(Ce),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&J(t)?t.call(r&&r.proxy):t}}function Oa(){return!!(Js()||qt)}const Pa=Symbol.for("v-scx"),Na=()=>Ke(Pa);function Sn(e,t,n){return ul(e,t,n)}function ul(e,t,n=ce){const{immediate:r,deep:s,flush:o,once:i}=n,l=Ee({},n),c=t&&r||!t&&o!=="post";let u;if(Bn){if(o==="sync"){const m=Na();u=m.__watcherHandles||(m.__watcherHandles=[])}else if(!c){const m=()=>{};return m.stop=ut,m.resume=ut,m.pause=ut,m}}const a=Ne;l.call=(m,g,b)=>Je(m,a,g,b);let f=!1;o==="post"?l.scheduler=m=>{Te(m,a&&a.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(m,g)=>{g?m():qs(m)}),l.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,a&&(m.id=a.uid,m.i=a))};const h=Ra(e,t,l);return Bn&&(u?u.push(h):c&&h()),h}function Ia(e,t,n){const r=this.proxy,s=pe(e)?e.includes(".")?fl(r,e):()=>r[e]:e.bind(r,r);let o;J(t)?o=t:(o=t.handler,n=t);const i=Hn(this),l=ul(s,o.bind(r),n);return i(),l}function fl(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,An=e=>e&&(e.disabled||e.disabled===""),uo=e=>e&&(e.defer||e.defer===""),fo=e=>typeof SVGElement<"u"&&e instanceof SVGElement,ho=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,ds=(e,t)=>{const n=e&&e.to;return pe(n)?t?t(n):null:n},hl={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,u){const{mc:a,pc:f,pbc:h,o:{insert:m,querySelector:g,createText:b,createComment:E}}=u,C=An(t.props);let{shapeFlag:T,children:N,dynamicChildren:O}=t;if(e==null){const B=t.el=b(""),G=t.anchor=b("");m(B,n,r),m(G,n,r);const j=(x,$)=>{T&16&&a(N,x,$,s,o,i,l,c)},U=()=>{const x=t.target=ds(t.props,g),$=pl(x,t,b,m);x&&(i!=="svg"&&fo(x)?i="svg":i!=="mathml"&&ho(x)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(x),C||(j(x,$),nr(t,!1)))};C&&(j(n,G),nr(t,!0)),uo(t.props)?(t.el.__isMounted=!1,Te(()=>{U(),delete t.el.__isMounted},o)):U()}else{if(uo(t.props)&&e.el.__isMounted===!1){Te(()=>{hl.process(e,t,n,r,s,o,i,l,c,u)},o);return}t.el=e.el,t.targetStart=e.targetStart;const B=t.anchor=e.anchor,G=t.target=e.target,j=t.targetAnchor=e.targetAnchor,U=An(e.props),x=U?n:G,$=U?B:j;if(i==="svg"||fo(G)?i="svg":(i==="mathml"||ho(G))&&(i="mathml"),O?(h(e.dynamicChildren,O,x,s,o,i,l),Gs(e,t,!0)):c||f(e,t,x,$,s,o,i,l,!1),C)U?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Jn(t,n,B,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const Y=t.target=ds(t.props,g);Y&&Jn(t,Y,null,u,0)}else U&&Jn(t,G,j,u,1);nr(t,C)}},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetStart:u,targetAnchor:a,target:f,props:h}=e;if(f&&(s(u),s(a)),o&&s(c),i&16){const m=o||!An(h);for(let g=0;g{e.isMounted=!0}),wl(()=>{e.isUnmounting=!0}),e}const $e=[Function,Array],ka={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:$e,onEnter:$e,onAfterEnter:$e,onEnterCancelled:$e,onBeforeLeave:$e,onLeave:$e,onAfterLeave:$e,onLeaveCancelled:$e,onBeforeAppear:$e,onAppear:$e,onAfterAppear:$e,onAppearCancelled:$e};function Ba(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function hs(e,t,n,r,s){const{appear:o,mode:i,persisted:l=!1,onBeforeEnter:c,onEnter:u,onAfterEnter:a,onEnterCancelled:f,onBeforeLeave:h,onLeave:m,onAfterLeave:g,onLeaveCancelled:b,onBeforeAppear:E,onAppear:C,onAfterAppear:T,onAppearCancelled:N}=t,O=String(e.key),B=Ba(n,e),G=(x,$)=>{x&&Je(x,r,9,$)},j=(x,$)=>{const Y=$[1];G(x,$),K(x)?x.every(L=>L.length<=1)&&Y():x.length<=1&&Y()},U={mode:i,persisted:l,beforeEnter(x){let $=c;if(!n.isMounted)if(o)$=E||c;else return;x[Ut]&&x[Ut](!0);const Y=B[O];Y&&Yt(e,Y)&&Y.el[Ut]&&Y.el[Ut](),G($,[x])},enter(x){let $=u,Y=a,L=f;if(!n.isMounted)if(o)$=C||u,Y=T||a,L=N||f;else return;let Q=!1;const le=x[Xn]=we=>{Q||(Q=!0,we?G(L,[x]):G(Y,[x]),U.delayedLeave&&U.delayedLeave(),x[Xn]=void 0)};$?j($,[x,le]):le()},leave(x,$){const Y=String(e.key);if(x[Xn]&&x[Xn](!0),n.isUnmounting)return $();G(h,[x]);let L=!1;const Q=x[Ut]=le=>{L||(L=!0,$(),le?G(b,[x]):G(g,[x]),x[Ut]=void 0,B[Y]===e&&delete B[Y])};B[Y]=e,m?j(m,[x,Q]):Q()},clone(x){return hs(x,t,n,r)}};return U}function Fn(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Fn(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 ml(e,t=!1,n){let r=[],s=0;for(let o=0;o1)for(let o=0;oRn(g,t&&(K(t)?t[b]:t),n,r,s));return}if(sn(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&Rn(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?Lr(r.component):r.el,i=s?null:o,{i:l,r:c}=e,u=t&&t.r,a=l.refs===ce?l.refs={}:l.refs,f=l.setupState,h=re(f),m=f===ce?xi:g=>oe(h,g);if(u!=null&&u!==c){if(po(t),pe(u))a[u]=null,m(u)&&(f[u]=null);else if(de(u)){u.value=null;const g=t;g.k&&(a[g.k]=null)}}if(J(c))jn(c,l,12,[i,a]);else{const g=pe(c),b=de(c);if(g||b){const E=()=>{if(e.f){const C=g?m(c)?f[c]:a[c]:c.value;if(s)K(C)&&Ls(C,o);else if(K(C))C.includes(o)||C.push(o);else if(g)a[c]=[o],m(c)&&(f[c]=a[c]);else{const T=[o];c.value=T,e.k&&(a[e.k]=T)}}else g?(a[c]=i,m(c)&&(f[c]=i)):b&&(c.value=i,e.k&&(a[e.k]=i))};if(i){const C=()=>{E(),hr.delete(e)};C.id=-1,hr.set(e,C),Te(C,n)}else po(e),E()}}}function po(e){const t=hr.get(e);t&&(t.flags|=8,hr.delete(e))}Rr().requestIdleCallback;Rr().cancelIdleCallback;const sn=e=>!!e.type.__asyncLoader,yl=e=>e.type.__isKeepAlive;function Ua(e,t){_l(e,"a",t)}function ja(e,t){_l(e,"da",t)}function _l(e,t,n=Ne){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Pr(t,r,n),n){let s=n.parent;for(;s&&s.parent;)yl(s.parent.vnode)&&Ha(r,t,n,s),s=s.parent}}function Ha(e,t,n,r){const s=Pr(t,e,r,!0);vl(()=>{Ls(r[t],s)},n)}function Pr(e,t,n=Ne,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{bt();const l=Hn(n),c=Je(t,n,e,i);return l(),Et(),c});return r?s.unshift(o):s.push(o),o}}const St=e=>(t,n=Ne)=>{(!Bn||e==="sp")&&Pr(e,(...r)=>t(...r),n)},Va=St("bm"),bl=St("m"),$a=St("bu"),El=St("u"),wl=St("bum"),vl=St("um"),qa=St("sp"),Ka=St("rtg"),Wa=St("rtc");function Ga(e,t=Ne){Pr("ec",e,t)}const za=Symbol.for("v-ndc");function Ja(e,t,n,r){let s;const o=n,i=K(e);if(i||pe(e)){const l=i&&ft(e);let c=!1,u=!1;l&&(c=!je(e),u=wt(e),e=Cr(e)),s=new Array(e.length);for(let a=0,f=e.length;at(l,c,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let c=0,u=l.length;c0;return qe(),gr(ve,null,[be("slot",n,r)],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),qe();const i=o&&Sl(o(n)),l=n.key||i&&i.key,c=gr(ve,{key:(l&&!vt(l)?l:`_${t}`)+(!i&&r?"_fb":"")},i||[],i&&e._===1?64:-2);return c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),o&&o._c&&(o._d=!0),c}function Sl(e){return e.some(t=>kn(t)?!(t.type===ht||t.type===ve&&!Sl(t.children)):!0)?e:null}const ps=e=>e?Hl(e)?Lr(e):ps(e.parent):null,Cn=Ee(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=>ps(e.parent),$root:e=>ps(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Rl(e),$forceUpdate:e=>e.f||(e.f=()=>{qs(e.update)}),$nextTick:e=>e.n||(e.n=$s.bind(e.proxy)),$watch:e=>Ia.bind(e)}),Gr=(e,t)=>e!==ce&&!e.__isScriptSetup&&oe(e,t),Xa={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:o,accessCache:i,type:l,appContext:c}=e;if(t[0]!=="$"){const h=i[t];if(h!==void 0)switch(h){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(Gr(r,t))return i[t]=1,r[t];if(s!==ce&&oe(s,t))return i[t]=2,s[t];if(oe(o,t))return i[t]=3,o[t];if(n!==ce&&oe(n,t))return i[t]=4,n[t];ms&&(i[t]=0)}}const u=Cn[t];let a,f;if(u)return t==="$attrs"&&Ae(e.attrs,"get",""),u(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==ce&&oe(n,t))return i[t]=4,n[t];if(f=c.config.globalProperties,oe(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return Gr(s,t)?(s[t]=n,!0):r!==ce&&oe(r,t)?(r[t]=n,!0):oe(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:o,type:i}},l){let c;return!!(n[l]||e!==ce&&l[0]!=="$"&&oe(e,l)||Gr(t,l)||oe(o,l)||oe(r,l)||oe(Cn,l)||oe(s.config.globalProperties,l)||(c=i.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:oe(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function mo(e){return K(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let ms=!0;function Qa(e){const t=Rl(e),n=e.proxy,r=e.ctx;ms=!1,t.beforeCreate&&go(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:u,created:a,beforeMount:f,mounted:h,beforeUpdate:m,updated:g,activated:b,deactivated:E,beforeDestroy:C,beforeUnmount:T,destroyed:N,unmounted:O,render:B,renderTracked:G,renderTriggered:j,errorCaptured:U,serverPrefetch:x,expose:$,inheritAttrs:Y,components:L,directives:Q,filters:le}=t;if(u&&Ya(u,r,null),i)for(const z in i){const Z=i[z];J(Z)&&(r[z]=Z.bind(n))}if(s){const z=s.call(n,n);ae(z)&&(e.data=fn(z))}if(ms=!0,o)for(const z in o){const Z=o[z],He=J(Z)?Z.bind(n,n):J(Z.get)?Z.get.bind(n,n):ut,Ye=!J(Z)&&J(Z.set)?Z.set.bind(n):ut,ye=Be({get:He,set:Ye});Object.defineProperty(r,z,{enumerable:!0,configurable:!0,get:()=>ye.value,set:me=>ye.value=me})}if(l)for(const z in l)Al(l[z],r,n,z);if(c){const z=J(c)?c.call(n):c;Reflect.ownKeys(z).forEach(Z=>{tr(Z,z[Z])})}a&&go(a,e,"c");function ee(z,Z){K(Z)?Z.forEach(He=>z(He.bind(n))):Z&&z(Z.bind(n))}if(ee(Va,f),ee(bl,h),ee($a,m),ee(El,g),ee(Ua,b),ee(ja,E),ee(Ga,U),ee(Wa,G),ee(Ka,j),ee(wl,T),ee(vl,O),ee(qa,x),K($))if($.length){const z=e.exposed||(e.exposed={});$.forEach(Z=>{Object.defineProperty(z,Z,{get:()=>n[Z],set:He=>n[Z]=He,enumerable:!0})})}else e.exposed||(e.exposed={});B&&e.render===ut&&(e.render=B),Y!=null&&(e.inheritAttrs=Y),L&&(e.components=L),Q&&(e.directives=Q),x&&gl(e)}function Ya(e,t,n=ut){K(e)&&(e=gs(e));for(const r in e){const s=e[r];let o;ae(s)?"default"in s?o=Ke(s.from||r,s.default,!0):o=Ke(s.from||r):o=Ke(s),de(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function go(e,t,n){Je(K(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Al(e,t,n,r){let s=r.includes(".")?fl(n,r):()=>n[r];if(pe(e)){const o=t[e];J(o)&&Sn(s,o)}else if(J(e))Sn(s,e.bind(n));else if(ae(e))if(K(e))e.forEach(o=>Al(o,t,n,r));else{const o=J(e.handler)?e.handler.bind(n):t[e.handler];J(o)&&Sn(s,o,e)}}function Rl(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>pr(c,u,i,!0)),pr(c,t,i)),ae(t)&&o.set(t,c),c}function pr(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&pr(e,o,n,!0),s&&s.forEach(i=>pr(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Za[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Za={data:yo,props:_o,emits:_o,methods:bn,computed:bn,beforeCreate:xe,created:xe,beforeMount:xe,mounted:xe,beforeUpdate:xe,updated:xe,beforeDestroy:xe,beforeUnmount:xe,destroyed:xe,unmounted:xe,activated:xe,deactivated:xe,errorCaptured:xe,serverPrefetch:xe,components:bn,directives:bn,watch:tu,provide:yo,inject:eu};function yo(e,t){return t?e?function(){return Ee(J(e)?e.call(this,this):e,J(t)?t.call(this,this):t)}:t:e}function eu(e,t){return bn(gs(e),gs(t))}function gs(e){if(K(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Dt(t)}Modifiers`]||e[`${zt(t)}Modifiers`];function ou(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||ce;let s=n;const o=t.startsWith("update:"),i=o&&su(r,t.slice(7));i&&(i.trim&&(s=n.map(a=>pe(a)?a.trim():a)),i.number&&(s=n.map(Ds)));let l,c=r[l=Vr(t)]||r[l=Vr(Dt(t))];!c&&o&&(c=r[l=Vr(zt(t))]),c&&Je(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Je(u,e,6,s)}}const iu=new WeakMap;function xl(e,t,n=!1){const r=n?iu:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!J(e)){const c=u=>{const a=xl(u,t,!0);a&&(l=!0,Ee(i,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(ae(e)&&r.set(e,null),null):(K(o)?o.forEach(c=>i[c]=null):Ee(i,o),ae(e)&&r.set(e,i),i)}function Nr(e,t){return!e||!wr(t)?!1:(t=t.slice(2).replace(/Once$/,""),oe(e,t[0].toLowerCase()+t.slice(1))||oe(e,zt(t))||oe(e,t))}function bo(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:a,props:f,data:h,setupState:m,ctx:g,inheritAttrs:b}=e,E=dr(e);let C,T;try{if(n.shapeFlag&4){const O=s||r,B=O;C=at(u.call(B,O,a,f,m,h,g)),T=l}else{const O=t;C=at(O.length>1?O(f,{attrs:l,slots:i,emit:c}):O(f,null)),T=t.props?l:lu(l)}}catch(O){xn.length=0,Tr(O,e,1),C=be(ht)}let N=C;if(T&&b!==!1){const O=Object.keys(T),{shapeFlag:B}=N;O.length&&B&7&&(o&&O.some(Is)&&(T=cu(T,o)),N=Wt(N,T,!1,!0))}return n.dirs&&(N=Wt(N,null,!1,!0),N.dirs=N.dirs?N.dirs.concat(n.dirs):n.dirs),n.transition&&Fn(N,n.transition),C=N,dr(E),C}const lu=e=>{let t;for(const n in e)(n==="class"||n==="style"||wr(n))&&((t||(t={}))[n]=e[n]);return t},cu=(e,t)=>{const n={};for(const r in e)(!Is(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function au(e,t,n){const{props:r,children:s,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 r?Eo(r,i,u):!!i;if(c&8){const a=t.dynamicProps;for(let f=0;fObject.create(Tl),Pl=e=>Object.getPrototypeOf(e)===Tl;function fu(e,t,n,r=!1){const s={},o=Ol();e.propsDefaults=Object.create(null),Nl(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:el(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function du(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=re(s),[c]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const a=e.vnode.dynamicProps;for(let f=0;f{c=!0;const[h,m]=Il(f,t,!0);Ee(i,h),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!c)return ae(e)&&r.set(e,tn),tn;if(K(o))for(let a=0;ae==="_"||e==="_ctx"||e==="$stable",Ws=e=>K(e)?e.map(at):[at(e)],pu=(e,t,n)=>{if(t._n)return t;const r=al((...s)=>Ws(t(...s)),n);return r._c=!1,r},Ll=(e,t,n)=>{const r=e._ctx;for(const s in e){if(Ks(s))continue;const o=e[s];if(J(o))t[s]=pu(s,o,r);else if(o!=null){const i=Ws(o);t[s]=()=>i}}},Dl=(e,t)=>{const n=Ws(t);e.slots.default=()=>n},Fl=(e,t,n)=>{for(const r in t)(n||!Ks(r))&&(e[r]=t[r])},mu=(e,t,n)=>{const r=e.slots=Ol();if(e.vnode.shapeFlag&32){const s=t._;s?(Fl(r,t,n),n&&Li(r,"_",s,!0)):Ll(t,r)}else t&&Dl(e,t)},gu=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=ce;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:Fl(s,t,n):(o=!t.$stable,Ll(t,s)),i=t}else t&&(Dl(e,t),i={default:1});if(o)for(const l in s)!Ks(l)&&i[l]==null&&delete s[l]},Te=wu;function yu(e){return _u(e)}function _u(e,t){const n=Rr();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:a,parentNode:f,nextSibling:h,setScopeId:m=ut,insertStaticContent:g}=e,b=(d,p,y,w=null,A=null,v=null,D=void 0,I=null,P=!!p.dynamicChildren)=>{if(d===p)return;d&&!Yt(d,p)&&(w=S(d),me(d,A,v,!0),d=null),p.patchFlag===-2&&(P=!1,p.dynamicChildren=null);const{type:R,ref:q,shapeFlag:M}=p;switch(R){case Ir:E(d,p,y,w);break;case ht:C(d,p,y,w);break;case rr:d==null&&T(p,y,w,D);break;case ve:L(d,p,y,w,A,v,D,I,P);break;default:M&1?B(d,p,y,w,A,v,D,I,P):M&6?Q(d,p,y,w,A,v,D,I,P):(M&64||M&128)&&R.process(d,p,y,w,A,v,D,I,P,H)}q!=null&&A?Rn(q,d&&d.ref,v,p||d,!p):q==null&&d&&d.ref!=null&&Rn(d.ref,null,v,d,!0)},E=(d,p,y,w)=>{if(d==null)r(p.el=l(p.children),y,w);else{const A=p.el=d.el;p.children!==d.children&&u(A,p.children)}},C=(d,p,y,w)=>{d==null?r(p.el=c(p.children||""),y,w):p.el=d.el},T=(d,p,y,w)=>{[d.el,d.anchor]=g(d.children,p,y,w,d.el,d.anchor)},N=({el:d,anchor:p},y,w)=>{let A;for(;d&&d!==p;)A=h(d),r(d,y,w),d=A;r(p,y,w)},O=({el:d,anchor:p})=>{let y;for(;d&&d!==p;)y=h(d),s(d),d=y;s(p)},B=(d,p,y,w,A,v,D,I,P)=>{if(p.type==="svg"?D="svg":p.type==="math"&&(D="mathml"),d==null)G(p,y,w,A,v,D,I,P);else{const R=d.el&&d.el._isVueCE?d.el:null;try{R&&R._beginPatch(),x(d,p,A,v,D,I,P)}finally{R&&R._endPatch()}}},G=(d,p,y,w,A,v,D,I)=>{let P,R;const{props:q,shapeFlag:M,transition:V,dirs:W}=d;if(P=d.el=i(d.type,v,q&&q.is,q),M&8?a(P,d.children):M&16&&U(d.children,P,null,w,A,zr(d,v),D,I),W&&Ft(d,null,w,"created"),j(P,d,d.scopeId,D,w),q){for(const ue in q)ue!=="value"&&!En(ue)&&o(P,ue,null,q[ue],v,w);"value"in q&&o(P,"value",null,q.value,v),(R=q.onVnodeBeforeMount)&&st(R,w,d)}W&&Ft(d,null,w,"beforeMount");const ne=bu(A,V);ne&&V.beforeEnter(P),r(P,p,y),((R=q&&q.onVnodeMounted)||ne||W)&&Te(()=>{R&&st(R,w,d),ne&&V.enter(P),W&&Ft(d,null,w,"mounted")},A)},j=(d,p,y,w,A)=>{if(y&&m(d,y),w)for(let v=0;v{for(let R=P;R{const I=p.el=d.el;let{patchFlag:P,dynamicChildren:R,dirs:q}=p;P|=d.patchFlag&16;const M=d.props||ce,V=p.props||ce;let W;if(y&&Mt(y,!1),(W=V.onVnodeBeforeUpdate)&&st(W,y,p,d),q&&Ft(p,d,y,"beforeUpdate"),y&&Mt(y,!0),(M.innerHTML&&V.innerHTML==null||M.textContent&&V.textContent==null)&&a(I,""),R?$(d.dynamicChildren,R,I,y,w,zr(p,A),v):D||Z(d,p,I,null,y,w,zr(p,A),v,!1),P>0){if(P&16)Y(I,M,V,y,A);else if(P&2&&M.class!==V.class&&o(I,"class",null,V.class,A),P&4&&o(I,"style",M.style,V.style,A),P&8){const ne=p.dynamicProps;for(let ue=0;ue{W&&st(W,y,p,d),q&&Ft(p,d,y,"updated")},w)},$=(d,p,y,w,A,v,D)=>{for(let I=0;I{if(p!==y){if(p!==ce)for(const v in p)!En(v)&&!(v in y)&&o(d,v,p[v],null,A,w);for(const v in y){if(En(v))continue;const D=y[v],I=p[v];D!==I&&v!=="value"&&o(d,v,I,D,A,w)}"value"in y&&o(d,"value",p.value,y.value,A)}},L=(d,p,y,w,A,v,D,I,P)=>{const R=p.el=d?d.el:l(""),q=p.anchor=d?d.anchor:l("");let{patchFlag:M,dynamicChildren:V,slotScopeIds:W}=p;W&&(I=I?I.concat(W):W),d==null?(r(R,y,w),r(q,y,w),U(p.children||[],y,q,A,v,D,I,P)):M>0&&M&64&&V&&d.dynamicChildren&&d.dynamicChildren.length===V.length?($(d.dynamicChildren,V,y,A,v,D,I),(p.key!=null||A&&p===A.subTree)&&Gs(d,p,!0)):Z(d,p,y,q,A,v,D,I,P)},Q=(d,p,y,w,A,v,D,I,P)=>{p.slotScopeIds=I,d==null?p.shapeFlag&512?A.ctx.activate(p,y,w,D,P):le(p,y,w,A,v,D,P):we(d,p,P)},le=(d,p,y,w,A,v,D)=>{const I=d.component=Pu(d,w,A);if(yl(d)&&(I.ctx.renderer=H),Nu(I,!1,D),I.asyncDep){if(A&&A.registerDep(I,ee,D),!d.el){const P=I.subTree=be(ht);C(null,P,p,y),d.placeholder=P.el}}else ee(I,d,p,y,A,v,D)},we=(d,p,y)=>{const w=p.component=d.component;if(au(d,p,y))if(w.asyncDep&&!w.asyncResolved){z(w,p,y);return}else w.next=p,w.update();else p.el=d.el,w.vnode=p},ee=(d,p,y,w,A,v,D)=>{const I=()=>{if(d.isMounted){let{next:M,bu:V,u:W,parent:ne,vnode:ue}=d;{const nt=Ml(d);if(nt){M&&(M.el=ue.el,z(d,M,D)),nt.asyncDep.then(()=>{d.isUnmounted||I()});return}}let ie=M,Ie;Mt(d,!1),M?(M.el=ue.el,z(d,M,D)):M=ue,V&&er(V),(Ie=M.props&&M.props.onVnodeBeforeUpdate)&&st(Ie,ne,M,ue),Mt(d,!0);const Le=bo(d),tt=d.subTree;d.subTree=Le,b(tt,Le,f(tt.el),S(tt),d,A,v),M.el=Le.el,ie===null&&uu(d,Le.el),W&&Te(W,A),(Ie=M.props&&M.props.onVnodeUpdated)&&Te(()=>st(Ie,ne,M,ue),A)}else{let M;const{el:V,props:W}=p,{bm:ne,m:ue,parent:ie,root:Ie,type:Le}=d,tt=sn(p);Mt(d,!1),ne&&er(ne),!tt&&(M=W&&W.onVnodeBeforeMount)&&st(M,ie,p),Mt(d,!0);{Ie.ce&&Ie.ce._def.shadowRoot!==!1&&Ie.ce._injectChildStyle(Le);const nt=d.subTree=bo(d);b(null,nt,y,w,d,A,v),p.el=nt.el}if(ue&&Te(ue,A),!tt&&(M=W&&W.onVnodeMounted)){const nt=p;Te(()=>st(M,ie,nt),A)}(p.shapeFlag&256||ie&&sn(ie.vnode)&&ie.vnode.shapeFlag&256)&&d.a&&Te(d.a,A),d.isMounted=!0,p=y=w=null}};d.scope.on();const P=d.effect=new ji(I);d.scope.off();const R=d.update=P.run.bind(P),q=d.job=P.runIfDirty.bind(P);q.i=d,q.id=d.uid,P.scheduler=()=>qs(q),Mt(d,!0),R()},z=(d,p,y)=>{p.component=d;const w=d.vnode.props;d.vnode=p,d.next=null,du(d,p.props,w,y),gu(d,p.children,y),bt(),ao(d),Et()},Z=(d,p,y,w,A,v,D,I,P=!1)=>{const R=d&&d.children,q=d?d.shapeFlag:0,M=p.children,{patchFlag:V,shapeFlag:W}=p;if(V>0){if(V&128){Ye(R,M,y,w,A,v,D,I,P);return}else if(V&256){He(R,M,y,w,A,v,D,I,P);return}}W&8?(q&16&&Ve(R,A,v),M!==R&&a(y,M)):q&16?W&16?Ye(R,M,y,w,A,v,D,I,P):Ve(R,A,v,!0):(q&8&&a(y,""),W&16&&U(M,y,w,A,v,D,I,P))},He=(d,p,y,w,A,v,D,I,P)=>{d=d||tn,p=p||tn;const R=d.length,q=p.length,M=Math.min(R,q);let V;for(V=0;Vq?Ve(d,A,v,!0,!1,M):U(p,y,w,A,v,D,I,P,M)},Ye=(d,p,y,w,A,v,D,I,P)=>{let R=0;const q=p.length;let M=d.length-1,V=q-1;for(;R<=M&&R<=V;){const W=d[R],ne=p[R]=P?Nt(p[R]):at(p[R]);if(Yt(W,ne))b(W,ne,y,null,A,v,D,I,P);else break;R++}for(;R<=M&&R<=V;){const W=d[M],ne=p[V]=P?Nt(p[V]):at(p[V]);if(Yt(W,ne))b(W,ne,y,null,A,v,D,I,P);else break;M--,V--}if(R>M){if(R<=V){const W=V+1,ne=WV)for(;R<=M;)me(d[R],A,v,!0),R++;else{const W=R,ne=R,ue=new Map;for(R=ne;R<=V;R++){const Me=p[R]=P?Nt(p[R]):at(p[R]);Me.key!=null&&ue.set(Me.key,R)}let ie,Ie=0;const Le=V-ne+1;let tt=!1,nt=0;const pn=new Array(Le);for(R=0;R=Le){me(Me,A,v,!0);continue}let rt;if(Me.key!=null)rt=ue.get(Me.key);else for(ie=ne;ie<=V;ie++)if(pn[ie-ne]===0&&Yt(Me,p[ie])){rt=ie;break}rt===void 0?me(Me,A,v,!0):(pn[rt-ne]=R+1,rt>=nt?nt=rt:tt=!0,b(Me,p[rt],y,null,A,v,D,I,P),Ie++)}const ro=tt?Eu(pn):tn;for(ie=ro.length-1,R=Le-1;R>=0;R--){const Me=ne+R,rt=p[Me],so=p[Me+1],oo=Me+1{const{el:v,type:D,transition:I,children:P,shapeFlag:R}=d;if(R&6){ye(d.component.subTree,p,y,w);return}if(R&128){d.suspense.move(p,y,w);return}if(R&64){D.move(d,p,y,H);return}if(D===ve){r(v,p,y);for(let M=0;MI.enter(v),A);else{const{leave:M,delayLeave:V,afterLeave:W}=I,ne=()=>{d.ctx.isUnmounted?s(v):r(v,p,y)},ue=()=>{v._isLeaving&&v[Ut](!0),M(v,()=>{ne(),W&&W()})};V?V(v,ne,ue):ue()}else r(v,p,y)},me=(d,p,y,w=!1,A=!1)=>{const{type:v,props:D,ref:I,children:P,dynamicChildren:R,shapeFlag:q,patchFlag:M,dirs:V,cacheIndex:W}=d;if(M===-2&&(A=!1),I!=null&&(bt(),Rn(I,null,y,d,!0),Et()),W!=null&&(p.renderCache[W]=void 0),q&256){p.ctx.deactivate(d);return}const ne=q&1&&V,ue=!sn(d);let ie;if(ue&&(ie=D&&D.onVnodeBeforeUnmount)&&st(ie,p,d),q&6)et(d.component,y,w);else{if(q&128){d.suspense.unmount(y,w);return}ne&&Ft(d,null,p,"beforeUnmount"),q&64?d.type.remove(d,p,y,H,w):R&&!R.hasOnce&&(v!==ve||M>0&&M&64)?Ve(R,p,y,!1,!0):(v===ve&&M&384||!A&&q&16)&&Ve(P,p,y),w&&Ze(d)}(ue&&(ie=D&&D.onVnodeUnmounted)||ne)&&Te(()=>{ie&&st(ie,p,d),ne&&Ft(d,null,p,"unmounted")},y)},Ze=d=>{const{type:p,el:y,anchor:w,transition:A}=d;if(p===ve){We(y,w);return}if(p===rr){O(d);return}const v=()=>{s(y),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(d.shapeFlag&1&&A&&!A.persisted){const{leave:D,delayLeave:I}=A,P=()=>D(y,v);I?I(d.el,v,P):P()}else v()},We=(d,p)=>{let y;for(;d!==p;)y=h(d),s(d),d=y;s(p)},et=(d,p,y)=>{const{bum:w,scope:A,job:v,subTree:D,um:I,m:P,a:R}=d;vo(P),vo(R),w&&er(w),A.stop(),v&&(v.flags|=8,me(D,d,p,y)),I&&Te(I,p),Te(()=>{d.isUnmounted=!0},p)},Ve=(d,p,y,w=!1,A=!1,v=0)=>{for(let D=v;D{if(d.shapeFlag&6)return S(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const p=h(d.anchor||d.el),y=p&&p[dl];return y?h(y):p};let k=!1;const F=(d,p,y)=>{let w;d==null?p._vnode&&(me(p._vnode,null,null,!0),w=p._vnode.component):b(p._vnode||null,d,p,null,null,null,y),p._vnode=d,k||(k=!0,ao(w),il(),k=!1)},H={p:b,um:me,m:ye,r:Ze,mt:le,mc:U,pc:Z,pbc:$,n:S,o:e};return{render:F,hydrate:void 0,createApp:ru(F)}}function zr({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 Mt({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function bu(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Gs(e,t,n=!1){const r=e.children,s=t.children;if(K(r)&&K(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Ml(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Ml(t)}function vo(e){if(e)for(let t=0;te.__isSuspense;function wu(e,t){t&&t.pendingBranch?K(e)?t.effects.push(...e):t.effects.push(e):Ta(e)}const ve=Symbol.for("v-fgt"),Ir=Symbol.for("v-txt"),ht=Symbol.for("v-cmt"),rr=Symbol.for("v-stc"),xn=[];let Ue=null;function qe(e=!1){xn.push(Ue=e?null:[])}function vu(){xn.pop(),Ue=xn[xn.length-1]||null}let Mn=1;function mr(e,t=!1){Mn+=e,e<0&&Ue&&t&&(Ue.hasOnce=!0)}function Ul(e){return e.dynamicChildren=Mn>0?Ue||tn:null,vu(),Mn>0&&Ue&&Ue.push(e),e}function Ct(e,t,n,r,s,o){return Ul(ke(e,t,n,r,s,o,!0))}function gr(e,t,n,r,s){return Ul(be(e,t,n,r,s,!0))}function kn(e){return e?e.__v_isVNode===!0:!1}function Yt(e,t){return e.type===t.type&&e.key===t.key}const jl=({key:e})=>e??null,sr=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?pe(e)||de(e)||J(e)?{i:Ce,r:e,k:t,f:!!n}:e:null);function ke(e,t=null,n=null,r=0,s=null,o=e===ve?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&jl(t),ref:t&&sr(t),scopeId:cl,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:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Ce};return l?(zs(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=pe(n)?8:16),Mn>0&&!i&&Ue&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Ue.push(c),c}const be=Su;function Su(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===za)&&(e=ht),kn(e)){const l=Wt(e,t,!0);return n&&zs(l,n),Mn>0&&!o&&Ue&&(l.shapeFlag&6?Ue[Ue.indexOf(e)]=l:Ue.push(l)),l.patchFlag=-2,l}if(Fu(e)&&(e=e.__vccOpts),t){t=Au(t);let{class:l,style:c}=t;l&&!pe(l)&&(t.class=Nn(l)),ae(c)&&(xr(c)&&!K(c)&&(c=Ee({},c)),t.style=Fs(c))}const i=pe(e)?1:Bl(e)?128:La(e)?64:ae(e)?4:J(e)?2:0;return ke(e,t,n,r,s,i,o,!0)}function Au(e){return e?xr(e)||Pl(e)?Ee({},e):e:null}function Wt(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?xu(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&jl(u),ref:t&&t.ref?n&&o?K(o)?o.concat(sr(t)):[o,sr(t)]:sr(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&&r&&Fn(a,c.clone(a)),a}function Ru(e=" ",t=0){return be(Ir,null,e,t)}function Op(e,t){const n=be(rr,null,e);return n.staticCount=t,n}function Cu(e="",t=!1){return t?(qe(),gr(ht,null,e)):be(ht,null,e)}function at(e){return e==null||typeof e=="boolean"?be(ht):K(e)?be(ve,null,e.slice()):kn(e)?Nt(e):be(Ir,null,String(e))}function Nt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Wt(e)}function zs(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(K(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),zs(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Pl(t)?t._ctx=Ce:s===3&&Ce&&(Ce.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else J(t)?(t={default:t,_ctx:Ce},n=32):(t=String(t),r&64?(n=16,t=[Ru(t)]):n=8);e.children=t,e.shapeFlag|=n}function xu(...e){const t={};for(let n=0;nNe||Ce;let yr,_s;{const e=Rr(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};yr=t("__VUE_INSTANCE_SETTERS__",n=>Ne=n),_s=t("__VUE_SSR_SETTERS__",n=>Bn=n)}const Hn=e=>{const t=Ne;return yr(e),e.scope.on(),()=>{e.scope.off(),yr(t)}},So=()=>{Ne&&Ne.scope.off(),yr(null)};function Hl(e){return e.vnode.shapeFlag&4}let Bn=!1;function Nu(e,t=!1,n=!1){t&&_s(t);const{props:r,children:s}=e.vnode,o=Hl(e);fu(e,r,o,t),mu(e,s,n||t);const i=o?Iu(e,t):void 0;return t&&_s(!1),i}function Iu(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Xa);const{setup:r}=n;if(r){bt();const s=e.setupContext=r.length>1?Du(e):null,o=Hn(e),i=jn(r,e,0,[e.props,s]),l=Oi(i);if(Et(),o(),(l||e.sp)&&!sn(e)&&gl(e),l){if(i.then(So,So),t)return i.then(c=>{Ao(e,c)}).catch(c=>{Tr(c,e,0)});e.asyncDep=i}else Ao(e,i)}else Vl(e)}function Ao(e,t,n){J(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ae(t)&&(e.setupState=nl(t)),Vl(e)}function Vl(e,t,n){const r=e.type;e.render||(e.render=r.render||ut);{const s=Hn(e);bt();try{Qa(e)}finally{Et(),s()}}}const Lu={get(e,t){return Ae(e,"get",""),e[t]}};function Du(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Lu),slots:e.slots,emit:e.emit,expose:t}}function Lr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(nl(Vs(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Cn)return Cn[n](e)},has(t,n){return n in t||n in Cn}})):e.proxy}function Fu(e){return J(e)&&"__vccOpts"in e}const Be=(e,t)=>Sa(e,t,Bn);function $l(e,t,n){try{mr(-1);const r=arguments.length;return r===2?ae(t)&&!K(t)?kn(t)?be(e,null,[t]):be(e,t):be(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&kn(n)&&(n=[n]),be(e,t,n))}finally{mr(1)}}const Mu="3.5.26";let bs;const Ro=typeof window<"u"&&window.trustedTypes;if(Ro)try{bs=Ro.createPolicy("vue",{createHTML:e=>e})}catch{}const ql=bs?e=>bs.createHTML(e):e=>e,ku="http://www.w3.org/2000/svg",Bu="http://www.w3.org/1998/Math/MathML",gt=typeof document<"u"?document:null,Co=gt&>.createElement("template"),Uu={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?gt.createElementNS(ku,e):t==="mathml"?gt.createElementNS(Bu,e):n?gt.createElement(e,{is:n}):gt.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>gt.createTextNode(e),createComment:e=>gt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>gt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{Co.innerHTML=ql(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=Co.content;if(r==="svg"||r==="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]}},At="transition",gn="animation",ln=Symbol("_vtc"),Kl={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},ju=Ee({},ka,Kl),kt=(e,t=[])=>{K(e)?e.forEach(n=>n(...t)):e&&e(...t)},xo=e=>e?K(e)?e.some(t=>t.length>1):e.length>1:!1;function Hu(e){const t={};for(const L in e)L in Kl||(t[L]=e[L]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=o,appearActiveClass:u=i,appearToClass:a=l,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:h=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,g=Vu(s),b=g&&g[0],E=g&&g[1],{onBeforeEnter:C,onEnter:T,onEnterCancelled:N,onLeave:O,onLeaveCancelled:B,onBeforeAppear:G=C,onAppear:j=T,onAppearCancelled:U=N}=t,x=(L,Q,le,we)=>{L._enterCancelled=we,xt(L,Q?a:l),xt(L,Q?u:i),le&&le()},$=(L,Q)=>{L._isLeaving=!1,xt(L,f),xt(L,m),xt(L,h),Q&&Q()},Y=L=>(Q,le)=>{const we=L?j:T,ee=()=>x(Q,L,le);kt(we,[Q,ee]),To(()=>{xt(Q,L?c:o),lt(Q,L?a:l),xo(we)||Oo(Q,r,b,ee)})};return Ee(t,{onBeforeEnter(L){kt(C,[L]),lt(L,o),lt(L,i)},onBeforeAppear(L){kt(G,[L]),lt(L,c),lt(L,u)},onEnter:Y(!1),onAppear:Y(!0),onLeave(L,Q){L._isLeaving=!0;const le=()=>$(L,Q);lt(L,f),L._enterCancelled?(lt(L,h),Es(L)):(Es(L),lt(L,h)),To(()=>{L._isLeaving&&(xt(L,f),lt(L,m),xo(O)||Oo(L,r,E,le))}),kt(O,[L,le])},onEnterCancelled(L){x(L,!1,void 0,!0),kt(N,[L])},onAppearCancelled(L){x(L,!0,void 0,!0),kt(U,[L])},onLeaveCancelled(L){$(L),kt(B,[L])}})}function Vu(e){if(e==null)return null;if(ae(e))return[Jr(e.enter),Jr(e.leave)];{const t=Jr(e);return[t,t]}}function Jr(e){return Vc(e)}function lt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[ln]||(e[ln]=new Set)).add(t)}function xt(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[ln];n&&(n.delete(t),n.size||(e[ln]=void 0))}function To(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let $u=0;function Oo(e,t,n,r){const s=e._endId=++$u,o=()=>{s===e._endId&&r()};if(n!=null)return setTimeout(o,n);const{type:i,timeout:l,propCount:c}=Wl(e,t);if(!i)return r();const u=i+"end";let a=0;const f=()=>{e.removeEventListener(u,h),o()},h=m=>{m.target===e&&++a>=c&&f()};setTimeout(()=>{a(n[g]||"").split(", "),s=r(`${At}Delay`),o=r(`${At}Duration`),i=Po(s,o),l=r(`${gn}Delay`),c=r(`${gn}Duration`),u=Po(l,c);let a=null,f=0,h=0;t===At?i>0&&(a=At,f=i,h=o.length):t===gn?u>0&&(a=gn,f=u,h=c.length):(f=Math.max(i,u),a=f>0?i>u?At:gn:null,h=a?a===At?o.length:c.length:0);const m=a===At&&/\b(?:transform|all)(?:,|$)/.test(r(`${At}Property`).toString());return{type:a,timeout:f,propCount:h,hasTransform:m}}function Po(e,t){for(;e.lengthNo(n)+No(e[r])))}function No(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Es(e){return(e?e.ownerDocument:document).body.offsetHeight}function qu(e,t,n){const r=e[ln];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Io=Symbol("_vod"),Ku=Symbol("_vsh"),Wu=Symbol(""),Gu=/(?:^|;)\s*display\s*:/;function zu(e,t,n){const r=e.style,s=pe(n);let o=!1;if(n&&!s){if(t)if(pe(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&or(r,l,"")}else for(const i in t)n[i]==null&&or(r,i,"");for(const i in n)i==="display"&&(o=!0),or(r,i,n[i])}else if(s){if(t!==n){const i=r[Wu];i&&(n+=";"+i),r.cssText=n,o=Gu.test(n)}}else t&&e.removeAttribute("style");Io in e&&(e[Io]=o?r.display:"",e[Ku]&&(r.display="none"))}const Lo=/\s*!important$/;function or(e,t,n){if(K(n))n.forEach(r=>or(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Ju(e,t);Lo.test(n)?e.setProperty(zt(r),n.replace(Lo,""),"important"):e[r]=n}}const Do=["Webkit","Moz","ms"],Xr={};function Ju(e,t){const n=Xr[t];if(n)return n;let r=Dt(t);if(r!=="filter"&&r in e)return Xr[t]=r;r=Ii(r);for(let s=0;sQr||(Zu.then(()=>Qr=0),Qr=Date.now());function tf(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Je(nf(r,n.value),t,5,[r])};return n.value=e,n.attached=ef(),n}function nf(e,t){if(K(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const jo=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,rf=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?qu(e,r,i):t==="style"?zu(e,n,r):wr(t)?Is(t)||Qu(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):sf(e,t,r,i))?(ko(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Mo(e,t,r,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!pe(r))?ko(e,Dt(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Mo(e,t,r,i))};function sf(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&jo(t)&&J(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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return jo(t)&&pe(n)?!1:t in e}const Gl=new WeakMap,zl=new WeakMap,_r=Symbol("_moveCb"),Ho=Symbol("_enterCb"),of=e=>(delete e.props.mode,e),lf=of({name:"TransitionGroup",props:Ee({},ju,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=Js(),r=Ma();let s,o;return El(()=>{if(!s.length)return;const i=e.moveClass||`${e.name||"v"}-move`;if(!df(s[0].el,n.vnode.el,i)){s=[];return}s.forEach(af),s.forEach(uf);const l=s.filter(ff);Es(n.vnode.el),l.forEach(c=>{const u=c.el,a=u.style;lt(u,i),a.transform=a.webkitTransform=a.transitionDuration="";const f=u[_r]=h=>{h&&h.target!==u||(!h||h.propertyName.endsWith("transform"))&&(u.removeEventListener("transitionend",f),u[_r]=null,xt(u,i))};u.addEventListener("transitionend",f)}),s=[]}),()=>{const i=re(e),l=Hu(i);let c=i.tag||ve;if(s=[],o)for(let u=0;u{l.split(/\s+/).forEach(c=>c&&r.classList.remove(c))}),n.split(/\s+/).forEach(l=>l&&r.classList.add(l)),r.style.display="none";const o=t.nodeType===1?t:t.parentNode;o.appendChild(r);const{hasTransform:i}=Wl(r);return o.removeChild(r),i}const Vo=e=>{const t=e.props["onUpdate:modelValue"]||!1;return K(t)?n=>er(t,n):t};function hf(e){e.target.composing=!0}function $o(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Yr=Symbol("_assign");function qo(e,t,n){return t&&(e=e.trim()),n&&(e=Ds(e)),e}const Pp={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Yr]=Vo(s);const o=r||s.props&&s.props.type==="number";Zt(e,t?"change":"input",i=>{i.target.composing||e[Yr](qo(e.value,n,o))}),(n||o)&&Zt(e,"change",()=>{e.value=qo(e.value,n,o)}),t||(Zt(e,"compositionstart",hf),Zt(e,"compositionend",$o),Zt(e,"change",$o))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Yr]=Vo(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?Ds(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},pf=["ctrl","shift","alt","meta"],mf={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>pf.some(n=>e[`${n}Key`]&&!t.includes(n))},Np=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const t=yf().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Ef(r);if(!s)return;const o=t._component;!J(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,bf(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t});function bf(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Ef(e){return pe(e)?document.querySelector(e):e}let Jl;const Dr=e=>Jl=e,Xl=Symbol();function ws(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Tn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Tn||(Tn={}));function wf(){const e=Bi(!0),t=e.run(()=>$t({}));let n=[],r=[];const s=Vs({install(o){Dr(s),s._a=o,o.provide(Xl,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const Ql=()=>{};function Wo(e,t,n,r=Ql){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&Ui()&&Jc(s),s}function Xt(e,...t){e.forEach(n=>{n(...t)})}const vf=e=>e(),Go=Symbol(),Zr=Symbol();function vs(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];ws(s)&&ws(r)&&e.hasOwnProperty(n)&&!de(r)&&!ft(r)?e[n]=vs(s,r):e[n]=r}return e}const Sf=Symbol();function Af(e){return!ws(e)||!Object.prototype.hasOwnProperty.call(e,Sf)}const{assign:Tt}=Object;function Rf(e){return!!(de(e)&&e.effect)}function Cf(e,t,n,r){const{state:s,actions:o,getters:i}=t,l=n.state.value[e];let c;function u(){l||(n.state.value[e]=s?s():{});const a=_a(n.state.value[e]);return Tt(a,o,Object.keys(i||{}).reduce((f,h)=>(f[h]=Vs(Be(()=>{Dr(n);const m=n._s.get(e);return i[h].call(m,m)})),f),{}))}return c=Yl(e,u,t,n,r,!0),c}function Yl(e,t,n={},r,s,o){let i;const l=Tt({actions:{}},n),c={deep:!0};let u,a,f=new Set,h=new Set,m;const g=r.state.value[e];!o&&!g&&(r.state.value[e]={}),$t({});let b;function E(U){let x;u=a=!1,typeof U=="function"?(U(r.state.value[e]),x={type:Tn.patchFunction,storeId:e,events:m}):(vs(r.state.value[e],U),x={type:Tn.patchObject,payload:U,storeId:e,events:m});const $=b=Symbol();$s().then(()=>{b===$&&(u=!0)}),a=!0,Xt(f,x,r.state.value[e])}const C=o?function(){const{state:x}=n,$=x?x():{};this.$patch(Y=>{Tt(Y,$)})}:Ql;function T(){i.stop(),f.clear(),h.clear(),r._s.delete(e)}const N=(U,x="")=>{if(Go in U)return U[Zr]=x,U;const $=function(){Dr(r);const Y=Array.from(arguments),L=new Set,Q=new Set;function le(z){L.add(z)}function we(z){Q.add(z)}Xt(h,{args:Y,name:$[Zr],store:B,after:le,onError:we});let ee;try{ee=U.apply(this&&this.$id===e?this:B,Y)}catch(z){throw Xt(Q,z),z}return ee instanceof Promise?ee.then(z=>(Xt(L,z),z)).catch(z=>(Xt(Q,z),Promise.reject(z))):(Xt(L,ee),ee)};return $[Go]=!0,$[Zr]=x,$},O={_p:r,$id:e,$onAction:Wo.bind(null,h),$patch:E,$reset:C,$subscribe(U,x={}){const $=Wo(f,U,x.detached,()=>Y()),Y=i.run(()=>Sn(()=>r.state.value[e],L=>{(x.flush==="sync"?a:u)&&U({storeId:e,type:Tn.direct,events:m},L)},Tt({},c,x)));return $},$dispose:T},B=fn(O);r._s.set(e,B);const j=(r._a&&r._a.runWithContext||vf)(()=>r._e.run(()=>(i=Bi()).run(()=>t({action:N}))));for(const U in j){const x=j[U];if(de(x)&&!Rf(x)||ft(x))o||(g&&Af(x)&&(de(x)?x.value=g[U]:vs(x,g[U])),r.state.value[e][U]=x);else if(typeof x=="function"){const $=N(x,U);j[U]=$,l.actions[U]=x}}return Tt(B,j),Tt(re(B),j),Object.defineProperty(B,"$state",{get:()=>r.state.value[e],set:U=>{E(x=>{Tt(x,U)})}}),r._p.forEach(U=>{Tt(B,i.run(()=>U({store:B,app:r._a,pinia:r,options:l})))}),g&&o&&n.hydrate&&n.hydrate(B.$state,g),u=!0,a=!0,B}function xf(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,l){const c=Oa();return i=i||(c?Ke(Xl,null):null),i&&Dr(i),i=Jl,i._s.has(e)||(s?Yl(e,t,r,i):Cf(e,r,i)),i._s.get(e)}return o.$id=e,o}function Ip(e){const t=re(e),n={};for(const r in t){const s=t[r];s.effect?n[r]=Be({get:()=>e[r],set(o){e[r]=o}}):(de(s)||ft(s))&&(n[r]=wa(e,r))}return n}const Tf="modulepreload",Of=function(e){return"/"+e},zo={},ot=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let c=function(u){return Promise.all(u.map(a=>Promise.resolve(a).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=c(n.map(u=>{if(u=Of(u),u in zo)return;zo[u]=!0;const a=u.endsWith(".css"),f=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const h=document.createElement("link");if(h.rel=a?"stylesheet":Tf,a||(h.as="script"),h.crossOrigin="",h.href=u,l&&h.setAttribute("nonce",l),document.head.appendChild(h),a)return new Promise((m,g)=>{h.addEventListener("load",m),h.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})};const en=typeof document<"u";function Zl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Pf(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Zl(e.default)}const se=Object.assign;function es(e,t){const n={};for(const r in t){const s=t[r];n[r]=Xe(s)?s.map(e):e(s)}return n}const On=()=>{},Xe=Array.isArray;function Jo(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const ec=/#/g,Nf=/&/g,If=/\//g,Lf=/=/g,Df=/\?/g,tc=/\+/g,Ff=/%5B/g,Mf=/%5D/g,nc=/%5E/g,kf=/%60/g,rc=/%7B/g,Bf=/%7C/g,sc=/%7D/g,Uf=/%20/g;function Xs(e){return e==null?"":encodeURI(""+e).replace(Bf,"|").replace(Ff,"[").replace(Mf,"]")}function jf(e){return Xs(e).replace(rc,"{").replace(sc,"}").replace(nc,"^")}function Ss(e){return Xs(e).replace(tc,"%2B").replace(Uf,"+").replace(ec,"%23").replace(Nf,"%26").replace(kf,"`").replace(rc,"{").replace(sc,"}").replace(nc,"^")}function Hf(e){return Ss(e).replace(Lf,"%3D")}function Vf(e){return Xs(e).replace(ec,"%23").replace(Df,"%3F")}function $f(e){return Vf(e).replace(If,"%2F")}function Un(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const qf=/\/$/,Kf=e=>e.replace(qf,"");function ts(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return c=l>=0&&c>l?-1:c,c>=0&&(r=t.slice(0,c),o=t.slice(c,l>0?l:t.length),s=e(o.slice(1))),l>=0&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=Jf(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:Un(i)}}function Wf(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Xo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Gf(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&cn(t.matched[r],n.matched[s])&&oc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function cn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function oc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!zf(e[n],t[n]))return!1;return!0}function zf(e,t){return Xe(e)?Qo(e,t):Xe(t)?Qo(t,e):e?.valueOf()===t?.valueOf()}function Qo(e,t){return Xe(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function Jf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const Rt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let As=(function(e){return e.pop="pop",e.push="push",e})({}),ns=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function Xf(e){if(!e)if(en){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Kf(e)}const Qf=/^[^#]+#/;function Yf(e,t){return e.replace(Qf,"#")+t}function Zf(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const Fr=()=>({left:window.scrollX,top:window.scrollY});function ed(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=Zf(s,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 Yo(e,t){return(history.state?history.state.position-t:-1)+e}const Rs=new Map;function td(e,t){Rs.set(e,t)}function nd(e){const t=Rs.get(e);return Rs.delete(e),t}function rd(e){return typeof e=="string"||e&&typeof e=="object"}function ic(e){return typeof e=="string"||typeof e=="symbol"}let he=(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 lc=Symbol("");he.MATCHER_NOT_FOUND+"",he.NAVIGATION_GUARD_REDIRECT+"",he.NAVIGATION_ABORTED+"",he.NAVIGATION_CANCELLED+"",he.NAVIGATION_DUPLICATED+"";function an(e,t){return se(new Error,{type:e,[lc]:!0},t)}function mt(e,t){return e instanceof Error&&lc in e&&(t==null||!!(e.type&t))}const sd=["params","query","hash"];function od(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 id(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&Ss(s)):[r&&Ss(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function ld(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=Xe(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const cd=Symbol(""),ei=Symbol(""),Mr=Symbol(""),Qs=Symbol(""),Cs=Symbol("");function yn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function It(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,c)=>{const u=h=>{h===!1?c(an(he.NAVIGATION_ABORTED,{from:n,to:t})):h instanceof Error?c(h):rd(h)?c(an(he.NAVIGATION_GUARD_REDIRECT,{from:t,to:h})):(i&&r.enterCallbacks[s]===i&&typeof h=="function"&&i.push(h),l())},a=o(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(a);e.length<3&&(f=f.then(u)),f.catch(h=>c(h))})}function rs(e,t,n,r,s=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(Zl(c)){const u=(c.__vccOpts||c)[t];u&&o.push(It(u,n,r,i,l,s))}else{let u=c();o.push(()=>u.then(a=>{if(!a)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=Pf(a)?a.default:a;i.mods[l]=a,i.components[l]=f;const h=(f.__vccOpts||f)[t];return h&&It(h,n,r,i,l,s)()}))}}return o}function ad(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;icn(u,l))?r.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(u=>cn(u,c))||s.push(c))}return[n,r,s]}let ud=()=>location.protocol+"//"+location.host;function cc(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(i);return l[0]!=="/"&&(l="/"+l),Xo(l,"")}return Xo(n,e)+r+s}function fd(e,t,n,r){let s=[],o=[],i=null;const l=({state:h})=>{const m=cc(e,location),g=n.value,b=t.value;let E=0;if(h){if(n.value=m,t.value=h,i&&i===g){i=null;return}E=b?h.position-b.position:0}else r(m);s.forEach(C=>{C(n.value,g,{delta:E,type:As.pop,direction:E?E>0?ns.forward:ns.back:ns.unknown})})};function c(){i=n.value}function u(h){s.push(h);const m=()=>{const g=s.indexOf(h);g>-1&&s.splice(g,1)};return o.push(m),m}function a(){if(document.visibilityState==="hidden"){const{history:h}=window;if(!h.state)return;h.replaceState(se({},h.state,{scroll:Fr()}),"")}}function f(){for(const h of o)h();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 ti(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?Fr():null}}function dd(e){const{history:t,location:n}=window,r={value:cc(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(c,u,a){const f=e.indexOf("#"),h=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+c:ud()+e+c;try{t[a?"replaceState":"pushState"](u,"",h),s.value=u}catch(m){console.error(m),n[a?"replace":"assign"](h)}}function i(c,u){o(c,se({},t.state,ti(s.value.back,c,s.value.forward,!0),u,{position:s.value.position}),!0),r.value=c}function l(c,u){const a=se({},s.value,t.state,{forward:c,scroll:Fr()});o(a.current,a,!0),o(c,se({},ti(r.value,c,null),{position:a.position+1},u),!1),r.value=c}return{location:r,state:s,push:l,replace:i}}function hd(e){e=Xf(e);const t=dd(e),n=fd(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=se({location:"",base:e,go:r,createHref:Yf.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function pd(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),hd(e)}let jt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var _e=(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})(_e||{});const md={type:jt.Static,value:""},gd=/[a-zA-Z0-9_]/;function yd(e){if(!e)return[[]];if(e==="/")return[[md]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${u}": ${m}`)}let n=_e.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,c,u="",a="";function f(){u&&(n===_e.Static?o.push({type:jt.Static,value:u}):n===_e.Param||n===_e.ParamRegExp||n===_e.ParamRegExpEnd?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:jt.Param,value:u,regexp:a,repeatable:c==="*"||c==="+",optional:c==="*"||c==="?"})):t("Invalid state to consume buffer"),u="")}function h(){u+=c}for(;lt.length?t.length===1&&t[0]===Oe.Static+Oe.Segment?1:-1:0}function ac(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const vd={strict:!1,end:!0,sensitive:!1};function Sd(e,t,n){const r=Ed(yd(e.path),n),s=se(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function Ad(e,t){const n=[],r=new Map;t=Jo(vd,t);function s(f){return r.get(f)}function o(f,h,m){const g=!m,b=oi(f);b.aliasOf=m&&m.record;const E=Jo(t,f),C=[b];if("alias"in f){const O=typeof f.alias=="string"?[f.alias]:f.alias;for(const B of O)C.push(oi(se({},b,{components:m?m.record.components:b.components,path:B,aliasOf:m?m.record:b})))}let T,N;for(const O of C){const{path:B}=O;if(h&&B[0]!=="/"){const G=h.record.path,j=G[G.length-1]==="/"?"":"/";O.path=h.record.path+(B&&j+B)}if(T=Sd(O,h,E),m?m.alias.push(T):(N=N||T,N!==T&&N.alias.push(T),g&&f.name&&!ii(T)&&i(f.name)),uc(T)&&c(T),b.children){const G=b.children;for(let j=0;j{i(N)}:On}function i(f){if(ic(f)){const h=r.get(f);h&&(r.delete(f),n.splice(n.indexOf(h),1),h.children.forEach(i),h.alias.forEach(i))}else{const h=n.indexOf(f);h>-1&&(n.splice(h,1),f.record.name&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function c(f){const h=xd(f,n);n.splice(h,0,f),f.record.name&&!ii(f)&&r.set(f.record.name,f)}function u(f,h){let m,g={},b,E;if("name"in f&&f.name){if(m=r.get(f.name),!m)throw an(he.MATCHER_NOT_FOUND,{location:f});E=m.record.name,g=se(si(h.params,m.keys.filter(N=>!N.optional).concat(m.parent?m.parent.keys.filter(N=>N.optional):[]).map(N=>N.name)),f.params&&si(f.params,m.keys.map(N=>N.name))),b=m.stringify(g)}else if(f.path!=null)b=f.path,m=n.find(N=>N.re.test(b)),m&&(g=m.parse(b),E=m.record.name);else{if(m=h.name?r.get(h.name):n.find(N=>N.re.test(h.path)),!m)throw an(he.MATCHER_NOT_FOUND,{location:f,currentLocation:h});E=m.record.name,g=se({},h.params,f.params),b=m.stringify(g)}const C=[];let T=m;for(;T;)C.unshift(T.record),T=T.parent;return{name:E,path:b,params:g,matched:C,meta:Cd(C)}}e.forEach(f=>o(f));function a(){n.length=0,r.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:a,getRoutes:l,getRecordMatcher:s}}function si(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function oi(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Rd(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 Rd(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function ii(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Cd(e){return e.reduce((t,n)=>se(t,n.meta),{})}function xd(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;ac(e,t[o])<0?r=o:n=o+1}const s=Td(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function Td(e){let t=e;for(;t=t.parent;)if(uc(t)&&ac(e,t)===0)return t}function uc({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function li(e){const t=Ke(Mr),n=Ke(Qs),r=Be(()=>{const c=dt(e.to);return t.resolve(c)}),s=Be(()=>{const{matched:c}=r.value,{length:u}=c,a=c[u-1],f=n.matched;if(!a||!f.length)return-1;const h=f.findIndex(cn.bind(null,a));if(h>-1)return h;const m=ci(c[u-2]);return u>1&&ci(a)===m&&f[f.length-1].path!==m?f.findIndex(cn.bind(null,c[u-2])):h}),o=Be(()=>s.value>-1&&Ld(n.params,r.value.params)),i=Be(()=>s.value>-1&&s.value===n.matched.length-1&&oc(n.params,r.value.params));function l(c={}){if(Id(c)){const u=t[dt(e.replace)?"replace":"push"](dt(e.to)).catch(On);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Be(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function Od(e){return e.length===1?e[0]:e}const Pd=Or({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:li,setup(e,{slots:t}){const n=fn(li(e)),{options:r}=Ke(Mr),s=Be(()=>({[ai(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[ai(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&Od(t.default(n));return e.custom?o:$l("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),Nd=Pd;function Id(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 Ld(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!Xe(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function ci(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const ai=(e,t,n)=>e??t??n,Dd=Or({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=Ke(Cs),s=Be(()=>e.route||r.value),o=Ke(ei,0),i=Be(()=>{let u=dt(o);const{matched:a}=s.value;let f;for(;(f=a[u])&&!f.components;)u++;return u}),l=Be(()=>s.value.matched[i.value]);tr(ei,Be(()=>i.value+1)),tr(cd,l),tr(Cs,s);const c=$t();return Sn(()=>[c.value,l.value,e.name],([u,a,f],[h,m,g])=>{a&&(a.instances[f]=u,m&&m!==a&&u&&u===h&&(a.leaveGuards.size||(a.leaveGuards=m.leaveGuards),a.updateGuards.size||(a.updateGuards=m.updateGuards))),u&&a&&(!m||!cn(a,m)||!h)&&(a.enterCallbacks[f]||[]).forEach(b=>b(u))},{flush:"post"}),()=>{const u=s.value,a=e.name,f=l.value,h=f&&f.components[a];if(!h)return ui(n.default,{Component:h,route:u});const m=f.props[a],g=m?m===!0?u.params:typeof m=="function"?m(u):m:null,E=$l(h,se({},g,t,{onVnodeUnmounted:C=>{C.component.isUnmounted&&(f.instances[a]=null)},ref:c}));return ui(n.default,{Component:E,route:u})||E}}});function ui(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const fc=Dd;function Fd(e){const t=Ad(e.routes,e),n=e.parseQuery||id,r=e.stringifyQuery||Zo,s=e.history,o=yn(),i=yn(),l=yn(),c=ma(Rt);let u=Rt;en&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const a=es.bind(null,S=>""+S),f=es.bind(null,$f),h=es.bind(null,Un);function m(S,k){let F,H;return ic(S)?(F=t.getRecordMatcher(S),H=k):H=S,t.addRoute(H,F)}function g(S){const k=t.getRecordMatcher(S);k&&t.removeRoute(k)}function b(){return t.getRoutes().map(S=>S.record)}function E(S){return!!t.getRecordMatcher(S)}function C(S,k){if(k=se({},k||c.value),typeof S=="string"){const y=ts(n,S,k.path),w=t.resolve({path:y.path},k),A=s.createHref(y.fullPath);return se(y,w,{params:h(w.params),hash:Un(y.hash),redirectedFrom:void 0,href:A})}let F;if(S.path!=null)F=se({},S,{path:ts(n,S.path,k.path).path});else{const y=se({},S.params);for(const w in y)y[w]==null&&delete y[w];F=se({},S,{params:f(y)}),k.params=f(k.params)}const H=t.resolve(F,k),te=S.hash||"";H.params=a(h(H.params));const d=Wf(r,se({},S,{hash:jf(te),path:H.path})),p=s.createHref(d);return se({fullPath:d,hash:te,query:r===Zo?ld(S.query):S.query||{}},H,{redirectedFrom:void 0,href:p})}function T(S){return typeof S=="string"?ts(n,S,c.value.path):se({},S)}function N(S,k){if(u!==S)return an(he.NAVIGATION_CANCELLED,{from:k,to:S})}function O(S){return j(S)}function B(S){return O(se(T(S),{replace:!0}))}function G(S,k){const F=S.matched[S.matched.length-1];if(F&&F.redirect){const{redirect:H}=F;let te=typeof H=="function"?H(S,k):H;return typeof te=="string"&&(te=te.includes("?")||te.includes("#")?te=T(te):{path:te},te.params={}),se({query:S.query,hash:S.hash,params:te.path!=null?{}:S.params},te)}}function j(S,k){const F=u=C(S),H=c.value,te=S.state,d=S.force,p=S.replace===!0,y=G(F,H);if(y)return j(se(T(y),{state:typeof y=="object"?se({},te,y.state):te,force:d,replace:p}),k||F);const w=F;w.redirectedFrom=k;let A;return!d&&Gf(r,H,F)&&(A=an(he.NAVIGATION_DUPLICATED,{to:w,from:H}),ye(H,H,!0,!1)),(A?Promise.resolve(A):$(w,H)).catch(v=>mt(v)?mt(v,he.NAVIGATION_GUARD_REDIRECT)?v:Ye(v):Z(v,w,H)).then(v=>{if(v){if(mt(v,he.NAVIGATION_GUARD_REDIRECT))return j(se({replace:p},T(v.to),{state:typeof v.to=="object"?se({},te,v.to.state):te,force:d}),k||w)}else v=L(w,H,!0,p,te);return Y(w,H,v),v})}function U(S,k){const F=N(S,k);return F?Promise.reject(F):Promise.resolve()}function x(S){const k=We.values().next().value;return k&&typeof k.runWithContext=="function"?k.runWithContext(S):S()}function $(S,k){let F;const[H,te,d]=ad(S,k);F=rs(H.reverse(),"beforeRouteLeave",S,k);for(const y of H)y.leaveGuards.forEach(w=>{F.push(It(w,S,k))});const p=U.bind(null,S,k);return F.push(p),Ve(F).then(()=>{F=[];for(const y of o.list())F.push(It(y,S,k));return F.push(p),Ve(F)}).then(()=>{F=rs(te,"beforeRouteUpdate",S,k);for(const y of te)y.updateGuards.forEach(w=>{F.push(It(w,S,k))});return F.push(p),Ve(F)}).then(()=>{F=[];for(const y of d)if(y.beforeEnter)if(Xe(y.beforeEnter))for(const w of y.beforeEnter)F.push(It(w,S,k));else F.push(It(y.beforeEnter,S,k));return F.push(p),Ve(F)}).then(()=>(S.matched.forEach(y=>y.enterCallbacks={}),F=rs(d,"beforeRouteEnter",S,k,x),F.push(p),Ve(F))).then(()=>{F=[];for(const y of i.list())F.push(It(y,S,k));return F.push(p),Ve(F)}).catch(y=>mt(y,he.NAVIGATION_CANCELLED)?y:Promise.reject(y))}function Y(S,k,F){l.list().forEach(H=>x(()=>H(S,k,F)))}function L(S,k,F,H,te){const d=N(S,k);if(d)return d;const p=k===Rt,y=en?history.state:{};F&&(H||p?s.replace(S.fullPath,se({scroll:p&&y&&y.scroll},te)):s.push(S.fullPath,te)),c.value=S,ye(S,k,F,p),Ye()}let Q;function le(){Q||(Q=s.listen((S,k,F)=>{if(!et.listening)return;const H=C(S),te=G(H,et.currentRoute.value);if(te){j(se(te,{replace:!0,force:!0}),H).catch(On);return}u=H;const d=c.value;en&&td(Yo(d.fullPath,F.delta),Fr()),$(H,d).catch(p=>mt(p,he.NAVIGATION_ABORTED|he.NAVIGATION_CANCELLED)?p:mt(p,he.NAVIGATION_GUARD_REDIRECT)?(j(se(T(p.to),{force:!0}),H).then(y=>{mt(y,he.NAVIGATION_ABORTED|he.NAVIGATION_DUPLICATED)&&!F.delta&&F.type===As.pop&&s.go(-1,!1)}).catch(On),Promise.reject()):(F.delta&&s.go(-F.delta,!1),Z(p,H,d))).then(p=>{p=p||L(H,d,!1),p&&(F.delta&&!mt(p,he.NAVIGATION_CANCELLED)?s.go(-F.delta,!1):F.type===As.pop&&mt(p,he.NAVIGATION_ABORTED|he.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),Y(H,d,p)}).catch(On)}))}let we=yn(),ee=yn(),z;function Z(S,k,F){Ye(S);const H=ee.list();return H.length?H.forEach(te=>te(S,k,F)):console.error(S),Promise.reject(S)}function He(){return z&&c.value!==Rt?Promise.resolve():new Promise((S,k)=>{we.add([S,k])})}function Ye(S){return z||(z=!S,le(),we.list().forEach(([k,F])=>S?F(S):k()),we.reset()),S}function ye(S,k,F,H){const{scrollBehavior:te}=e;if(!en||!te)return Promise.resolve();const d=!F&&nd(Yo(S.fullPath,0))||(H||!F)&&history.state&&history.state.scroll||null;return $s().then(()=>te(S,k,d)).then(p=>p&&ed(p)).catch(p=>Z(p,S,k))}const me=S=>s.go(S);let Ze;const We=new Set,et={currentRoute:c,listening:!0,addRoute:m,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:E,getRoutes:b,resolve:C,options:e,push:O,replace:B,go:me,back:()=>me(-1),forward:()=>me(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:ee.add,isReady:He,install(S){S.component("RouterLink",Nd),S.component("RouterView",fc),S.config.globalProperties.$router=et,Object.defineProperty(S.config.globalProperties,"$route",{enumerable:!0,get:()=>dt(c)}),en&&!Ze&&c.value===Rt&&(Ze=!0,O(s.location).catch(H=>{}));const k={};for(const H in Rt)Object.defineProperty(k,H,{get:()=>c.value[H],enumerable:!0});S.provide(Mr,et),S.provide(Qs,el(k)),S.provide(Cs,c);const F=S.unmount;We.add(S),S.unmount=function(){We.delete(S),We.size<1&&(u=Rt,Q&&Q(),Q=null,c.value=Rt,Ze=!1,z=!1),F()}}};function Ve(S){return S.reduce((k,F)=>k.then(()=>x(F)),Promise.resolve())}return et}function Lp(){return Ke(Mr)}function Dp(e){return Ke(Qs)}function dc(e,t){return function(){return e.apply(t,arguments)}}const{toString:Md}=Object.prototype,{getPrototypeOf:Ys}=Object,{iterator:kr,toStringTag:hc}=Symbol,Br=(e=>t=>{const n=Md.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Qe=e=>(e=e.toLowerCase(),t=>Br(t)===e),Ur=e=>t=>typeof t===e,{isArray:dn}=Array,un=Ur("undefined");function Vn(e){return e!==null&&!un(e)&&e.constructor!==null&&!un(e.constructor)&&De(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const pc=Qe("ArrayBuffer");function kd(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&pc(e.buffer),t}const Bd=Ur("string"),De=Ur("function"),mc=Ur("number"),$n=e=>e!==null&&typeof e=="object",Ud=e=>e===!0||e===!1,ir=e=>{if(Br(e)!=="object")return!1;const t=Ys(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(hc in e)&&!(kr in e)},jd=e=>{if(!$n(e)||Vn(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},Hd=Qe("Date"),Vd=Qe("File"),$d=Qe("Blob"),qd=Qe("FileList"),Kd=e=>$n(e)&&De(e.pipe),Wd=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||De(e.append)&&((t=Br(e))==="formdata"||t==="object"&&De(e.toString)&&e.toString()==="[object FormData]"))},Gd=Qe("URLSearchParams"),[zd,Jd,Xd,Qd]=["ReadableStream","Request","Response","Headers"].map(Qe),Yd=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function qn(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),dn(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const Ht=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,yc=e=>!un(e)&&e!==Ht;function xs(){const{caseless:e,skipUndefined:t}=yc(this)&&this||{},n={},r=(s,o)=>{const i=e&&gc(n,o)||o;ir(n[i])&&ir(s)?n[i]=xs(n[i],s):ir(s)?n[i]=xs({},s):dn(s)?n[i]=s.slice():(!t||!un(s))&&(n[i]=s)};for(let s=0,o=arguments.length;s(qn(t,(s,o)=>{n&&De(s)?e[o]=dc(s,n):e[o]=s},{allOwnKeys:r}),e),eh=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),th=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},nh=(e,t,n,r)=>{let s,o,i;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&Ys(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},rh=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},sh=e=>{if(!e)return null;if(dn(e))return e;let t=e.length;if(!mc(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},oh=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Ys(Uint8Array)),ih=(e,t)=>{const r=(e&&e[kr]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},lh=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},ch=Qe("HTMLFormElement"),ah=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),fi=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),uh=Qe("RegExp"),_c=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};qn(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},fh=e=>{_c(e,(t,n)=>{if(De(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(De(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},dh=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return dn(e)?r(e):r(String(e).split(t)),n},hh=()=>{},ph=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function mh(e){return!!(e&&De(e.append)&&e[hc]==="FormData"&&e[kr])}const gh=e=>{const t=new Array(10),n=(r,s)=>{if($n(r)){if(t.indexOf(r)>=0)return;if(Vn(r))return r;if(!("toJSON"in r)){t[s]=r;const o=dn(r)?[]:{};return qn(r,(i,l)=>{const c=n(i,s+1);!un(c)&&(o[l]=c)}),t[s]=void 0,o}}return r};return n(e,0)},yh=Qe("AsyncFunction"),_h=e=>e&&($n(e)||De(e))&&De(e.then)&&De(e.catch),bc=((e,t)=>e?setImmediate:t?((n,r)=>(Ht.addEventListener("message",({source:s,data:o})=>{s===Ht&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),Ht.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",De(Ht.postMessage)),bh=typeof queueMicrotask<"u"?queueMicrotask.bind(Ht):typeof process<"u"&&process.nextTick||bc,Eh=e=>e!=null&&De(e[kr]),_={isArray:dn,isArrayBuffer:pc,isBuffer:Vn,isFormData:Wd,isArrayBufferView:kd,isString:Bd,isNumber:mc,isBoolean:Ud,isObject:$n,isPlainObject:ir,isEmptyObject:jd,isReadableStream:zd,isRequest:Jd,isResponse:Xd,isHeaders:Qd,isUndefined:un,isDate:Hd,isFile:Vd,isBlob:$d,isRegExp:uh,isFunction:De,isStream:Kd,isURLSearchParams:Gd,isTypedArray:oh,isFileList:qd,forEach:qn,merge:xs,extend:Zd,trim:Yd,stripBOM:eh,inherits:th,toFlatObject:nh,kindOf:Br,kindOfTest:Qe,endsWith:rh,toArray:sh,forEachEntry:ih,matchAll:lh,isHTMLForm:ch,hasOwnProperty:fi,hasOwnProp:fi,reduceDescriptors:_c,freezeMethods:fh,toObjectSet:dh,toCamelCase:ah,noop:hh,toFiniteNumber:ph,findKey:gc,global:Ht,isContextDefined:yc,isSpecCompliantForm:mh,toJSONObject:gh,isAsyncFn:yh,isThenable:_h,setImmediate:bc,asap:bh,isIterable:Eh};function X(e,t,n,r,s){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),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}_.inherits(X,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:_.toJSONObject(this.config),code:this.code,status:this.status}}});const Ec=X.prototype,wc={};["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=>{wc[e]={value:e}});Object.defineProperties(X,wc);Object.defineProperty(Ec,"isAxiosError",{value:!0});X.from=(e,t,n,r,s,o)=>{const i=Object.create(Ec);_.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 X.call(i,l,c,n,r,s),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 wh=null;function Ts(e){return _.isPlainObject(e)||_.isArray(e)}function vc(e){return _.endsWith(e,"[]")?e.slice(0,-2):e}function di(e,t,n){return e?e.concat(t).map(function(s,o){return s=vc(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function vh(e){return _.isArray(e)&&!e.some(Ts)}const Sh=_.toFlatObject(_,{},null,function(t){return/^is[A-Z]/.test(t)});function jr(e,t,n){if(!_.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=_.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(b,E){return!_.isUndefined(E[b])});const r=n.metaTokens,s=n.visitor||a,o=n.dots,i=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&_.isSpecCompliantForm(t);if(!_.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(_.isDate(g))return g.toISOString();if(_.isBoolean(g))return g.toString();if(!c&&_.isBlob(g))throw new X("Blob is not supported. Use a Buffer instead.");return _.isArrayBuffer(g)||_.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function a(g,b,E){let C=g;if(g&&!E&&typeof g=="object"){if(_.endsWith(b,"{}"))b=r?b:b.slice(0,-2),g=JSON.stringify(g);else if(_.isArray(g)&&vh(g)||(_.isFileList(g)||_.endsWith(b,"[]"))&&(C=_.toArray(g)))return b=vc(b),C.forEach(function(N,O){!(_.isUndefined(N)||N===null)&&t.append(i===!0?di([b],O,o):i===null?b:b+"[]",u(N))}),!1}return Ts(g)?!0:(t.append(di(E,b,o),u(g)),!1)}const f=[],h=Object.assign(Sh,{defaultVisitor:a,convertValue:u,isVisitable:Ts});function m(g,b){if(!_.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+b.join("."));f.push(g),_.forEach(g,function(C,T){(!(_.isUndefined(C)||C===null)&&s.call(t,C,_.isString(T)?T.trim():T,b,h))===!0&&m(C,b?b.concat(T):[T])}),f.pop()}}if(!_.isObject(e))throw new TypeError("data must be an object");return m(e),t}function hi(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Zs(e,t){this._pairs=[],e&&jr(e,this,t)}const Sc=Zs.prototype;Sc.append=function(t,n){this._pairs.push([t,n])};Sc.toString=function(t){const n=t?function(r){return t.call(this,r,hi)}:hi;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Ah(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Ac(e,t,n){if(!t)return e;const r=n&&n.encode||Ah;_.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=_.isURLSearchParams(t)?t.toString():new Zs(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class pi{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){_.forEach(this.handlers,function(r){r!==null&&t(r)})}}const Rc={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Rh=typeof URLSearchParams<"u"?URLSearchParams:Zs,Ch=typeof FormData<"u"?FormData:null,xh=typeof Blob<"u"?Blob:null,Th={isBrowser:!0,classes:{URLSearchParams:Rh,FormData:Ch,Blob:xh},protocols:["http","https","file","blob","url","data"]},eo=typeof window<"u"&&typeof document<"u",Os=typeof navigator=="object"&&navigator||void 0,Oh=eo&&(!Os||["ReactNative","NativeScript","NS"].indexOf(Os.product)<0),Ph=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Nh=eo&&window.location.href||"http://localhost",Ih=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:eo,hasStandardBrowserEnv:Oh,hasStandardBrowserWebWorkerEnv:Ph,navigator:Os,origin:Nh},Symbol.toStringTag,{value:"Module"})),Re={...Ih,...Th};function Lh(e,t){return jr(e,new Re.classes.URLSearchParams,{visitor:function(n,r,s,o){return Re.isNode&&_.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function Dh(e){return _.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Fh(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&_.isArray(s)?s.length:i,c?(_.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!l):((!s[i]||!_.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&_.isArray(s[i])&&(s[i]=Fh(s[i])),!l)}if(_.isFormData(e)&&_.isFunction(e.entries)){const n={};return _.forEachEntry(e,(r,s)=>{t(Dh(r),s,n,0)}),n}return null}function Mh(e,t,n){if(_.isString(e))try{return(t||JSON.parse)(e),_.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Kn={transitional:Rc,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=_.isObject(t);if(o&&_.isHTMLForm(t)&&(t=new FormData(t)),_.isFormData(t))return s?JSON.stringify(Cc(t)):t;if(_.isArrayBuffer(t)||_.isBuffer(t)||_.isStream(t)||_.isFile(t)||_.isBlob(t)||_.isReadableStream(t))return t;if(_.isArrayBufferView(t))return t.buffer;if(_.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return Lh(t,this.formSerializer).toString();if((l=_.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return jr(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),Mh(t)):t}],transformResponse:[function(t){const n=this.transitional||Kn.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(_.isResponse(t)||_.isReadableStream(t))return t;if(t&&_.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(i)throw l.name==="SyntaxError"?X.from(l,X.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:Re.classes.FormData,Blob:Re.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};_.forEach(["delete","get","head","post","put","patch"],e=>{Kn.headers[e]={}});const kh=_.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"]),Bh=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&kh[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},mi=Symbol("internals");function _n(e){return e&&String(e).trim().toLowerCase()}function lr(e){return e===!1||e==null?e:_.isArray(e)?e.map(lr):String(e)}function Uh(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const jh=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function ss(e,t,n,r,s){if(_.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!_.isString(t)){if(_.isString(r))return t.indexOf(r)!==-1;if(_.isRegExp(r))return r.test(t)}}function Hh(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Vh(e,t){const n=_.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let Fe=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(l,c,u){const a=_n(c);if(!a)throw new Error("header name must be a non-empty string");const f=_.findKey(s,a);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||c]=lr(l))}const i=(l,c)=>_.forEach(l,(u,a)=>o(u,a,c));if(_.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(_.isString(t)&&(t=t.trim())&&!jh(t))i(Bh(t),n);else if(_.isObject(t)&&_.isIterable(t)){let l={},c,u;for(const a of t){if(!_.isArray(a))throw TypeError("Object iterator must return a key-value pair");l[u=a[0]]=(c=l[u])?_.isArray(c)?[...c,a[1]]:[c,a[1]]:a[1]}i(l,n)}else t!=null&&o(n,t,r);return this}get(t,n){if(t=_n(t),t){const r=_.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return Uh(s);if(_.isFunction(n))return n.call(this,s,r);if(_.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=_n(t),t){const r=_.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||ss(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=_n(i),i){const l=_.findKey(r,i);l&&(!n||ss(r,r[l],l,n))&&(delete r[l],s=!0)}}return _.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||ss(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return _.forEach(this,(s,o)=>{const i=_.findKey(r,o);if(i){n[i]=lr(s),delete n[o];return}const l=t?Hh(o):String(o).trim();l!==o&&delete n[o],n[l]=lr(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return _.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&_.isArray(r)?r.join(", "):r)}),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 r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[mi]=this[mi]={accessors:{}}).accessors,s=this.prototype;function o(i){const l=_n(i);r[l]||(Vh(s,i),r[l]=!0)}return _.isArray(t)?t.forEach(o):o(t),this}};Fe.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);_.reduceDescriptors(Fe.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});_.freezeMethods(Fe);function os(e,t){const n=this||Kn,r=t||n,s=Fe.from(r.headers);let o=r.data;return _.forEach(e,function(l){o=l.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function xc(e){return!!(e&&e.__CANCEL__)}function hn(e,t,n){X.call(this,e??"canceled",X.ERR_CANCELED,t,n),this.name="CanceledError"}_.inherits(hn,X,{__CANCEL__:!0});function Tc(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new X("Request failed with status code "+n.status,[X.ERR_BAD_REQUEST,X.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function $h(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function qh(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),a=r[o];i||(i=u),n[s]=c,r[s]=u;let f=o,h=0;for(;f!==s;)h+=n[f++],f=f%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i{n=a,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const a=Date.now(),f=a-n;f>=r?i(u,a):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-f)))},()=>s&&i(s)]}const br=(e,t,n=3)=>{let r=0;const s=qh(50,250);return Kh(o=>{const i=o.loaded,l=o.lengthComputable?o.total:void 0,c=i-r,u=s(c),a=i<=l;r=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)},gi=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},yi=e=>(...t)=>_.asap(()=>e(...t)),Wh=Re.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Re.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Re.origin),Re.navigator&&/(msie|trident)/i.test(Re.navigator.userAgent)):()=>!0,Gh=Re.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];_.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),_.isString(r)&&l.push(`path=${r}`),_.isString(s)&&l.push(`domain=${s}`),o===!0&&l.push("secure"),_.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 zh(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function Jh(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Oc(e,t,n){let r=!zh(t);return e&&(r||n==!1)?Jh(e,t):t}const _i=e=>e instanceof Fe?{...e}:e;function Gt(e,t){t=t||{};const n={};function r(u,a,f,h){return _.isPlainObject(u)&&_.isPlainObject(a)?_.merge.call({caseless:h},u,a):_.isPlainObject(a)?_.merge({},a):_.isArray(a)?a.slice():a}function s(u,a,f,h){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u,f,h)}else return r(u,a,f,h)}function o(u,a){if(!_.isUndefined(a))return r(void 0,a)}function i(u,a){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u)}else return r(void 0,a)}function l(u,a,f){if(f in t)return r(u,a);if(f in e)return r(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)=>s(_i(u),_i(a),f,!0)};return _.forEach(Object.keys({...e,...t}),function(a){const f=c[a]||s,h=f(e[a],t[a],a);_.isUndefined(h)&&f!==l||(n[a]=h)}),n}const Pc=e=>{const t=Gt({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:l}=t;if(t.headers=i=Fe.from(i),t.url=Ac(Oc(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&i.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),_.isFormData(n)){if(Re.hasStandardBrowserEnv||Re.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(_.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(Re.hasStandardBrowserEnv&&(r&&_.isFunction(r)&&(r=r(t)),r||r!==!1&&Wh(t.url))){const c=s&&o&&Gh.read(o);c&&i.set(s,c)}return t},Xh=typeof XMLHttpRequest<"u",Qh=Xh&&function(e){return new Promise(function(n,r){const s=Pc(e);let o=s.data;const i=Fe.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,a,f,h,m,g;function b(){m&&m(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(a),s.signal&&s.signal.removeEventListener("abort",a)}let E=new XMLHttpRequest;E.open(s.method.toUpperCase(),s.url,!0),E.timeout=s.timeout;function C(){if(!E)return;const N=Fe.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),B={data:!l||l==="text"||l==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:N,config:e,request:E};Tc(function(j){n(j),b()},function(j){r(j),b()},B),E=null}"onloadend"in E?E.onloadend=C:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.indexOf("file:")===0)||setTimeout(C)},E.onabort=function(){E&&(r(new X("Request aborted",X.ECONNABORTED,e,E)),E=null)},E.onerror=function(O){const B=O&&O.message?O.message:"Network Error",G=new X(B,X.ERR_NETWORK,e,E);G.event=O||null,r(G),E=null},E.ontimeout=function(){let O=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const B=s.transitional||Rc;s.timeoutErrorMessage&&(O=s.timeoutErrorMessage),r(new X(O,B.clarifyTimeoutError?X.ETIMEDOUT:X.ECONNABORTED,e,E)),E=null},o===void 0&&i.setContentType(null),"setRequestHeader"in E&&_.forEach(i.toJSON(),function(O,B){E.setRequestHeader(B,O)}),_.isUndefined(s.withCredentials)||(E.withCredentials=!!s.withCredentials),l&&l!=="json"&&(E.responseType=s.responseType),u&&([h,g]=br(u,!0),E.addEventListener("progress",h)),c&&E.upload&&([f,m]=br(c),E.upload.addEventListener("progress",f),E.upload.addEventListener("loadend",m)),(s.cancelToken||s.signal)&&(a=N=>{E&&(r(!N||N.type?new hn(null,e,E):N),E.abort(),E=null)},s.cancelToken&&s.cancelToken.subscribe(a),s.signal&&(s.signal.aborted?a():s.signal.addEventListener("abort",a)));const T=$h(s.url);if(T&&Re.protocols.indexOf(T)===-1){r(new X("Unsupported protocol "+T+":",X.ERR_BAD_REQUEST,e));return}E.send(o||null)})},Yh=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,l();const a=u instanceof Error?u:this.reason;r.abort(a instanceof X?a:new hn(a instanceof Error?a.message:a))}};let i=t&&setTimeout(()=>{i=null,o(new X(`timeout ${t} of ms exceeded`,X.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}=r;return c.unsubscribe=()=>_.asap(l),c}},Zh=function*(e,t){let n=e.byteLength;if(n{const s=ep(e,t);let o=0,i,l=c=>{i||(i=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:a}=await s.next();if(u){l(),c.close();return}let f=a.byteLength;if(n){let h=o+=f;n(h)}c.enqueue(new Uint8Array(a))}catch(u){throw l(u),u}},cancel(c){return l(c),s.return()}},{highWaterMark:2})},Ei=64*1024,{isFunction:Qn}=_,np=(({Request:e,Response:t})=>({Request:e,Response:t}))(_.global),{ReadableStream:wi,TextEncoder:vi}=_.global,Si=(e,...t)=>{try{return!!e(...t)}catch{return!1}},rp=e=>{e=_.merge.call({skipUndefined:!0},np,e);const{fetch:t,Request:n,Response:r}=e,s=t?Qn(t):typeof fetch=="function",o=Qn(n),i=Qn(r);if(!s)return!1;const l=s&&Qn(wi),c=s&&(typeof vi=="function"?(g=>b=>g.encode(b))(new vi):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=o&&l&&Si(()=>{let g=!1;const b=new n(Re.origin,{body:new wi,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!b}),a=i&&l&&Si(()=>_.isReadableStream(new r("").body)),f={stream:a&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(b,E)=>{let C=b&&b[g];if(C)return C.call(b);throw new X(`Response type '${g}' is not supported`,X.ERR_NOT_SUPPORT,E)})});const h=async g=>{if(g==null)return 0;if(_.isBlob(g))return g.size;if(_.isSpecCompliantForm(g))return(await new n(Re.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(_.isArrayBufferView(g)||_.isArrayBuffer(g))return g.byteLength;if(_.isURLSearchParams(g)&&(g=g+""),_.isString(g))return(await c(g)).byteLength},m=async(g,b)=>{const E=_.toFiniteNumber(g.getContentLength());return E??h(b)};return async g=>{let{url:b,method:E,data:C,signal:T,cancelToken:N,timeout:O,onDownloadProgress:B,onUploadProgress:G,responseType:j,headers:U,withCredentials:x="same-origin",fetchOptions:$}=Pc(g),Y=t||fetch;j=j?(j+"").toLowerCase():"text";let L=Yh([T,N&&N.toAbortSignal()],O),Q=null;const le=L&&L.unsubscribe&&(()=>{L.unsubscribe()});let we;try{if(G&&u&&E!=="get"&&E!=="head"&&(we=await m(U,C))!==0){let ye=new n(b,{method:"POST",body:C,duplex:"half"}),me;if(_.isFormData(C)&&(me=ye.headers.get("content-type"))&&U.setContentType(me),ye.body){const[Ze,We]=gi(we,br(yi(G)));C=bi(ye.body,Ei,Ze,We)}}_.isString(x)||(x=x?"include":"omit");const ee=o&&"credentials"in n.prototype,z={...$,signal:L,method:E.toUpperCase(),headers:U.normalize().toJSON(),body:C,duplex:"half",credentials:ee?x:void 0};Q=o&&new n(b,z);let Z=await(o?Y(Q,$):Y(b,z));const He=a&&(j==="stream"||j==="response");if(a&&(B||He&&le)){const ye={};["status","statusText","headers"].forEach(et=>{ye[et]=Z[et]});const me=_.toFiniteNumber(Z.headers.get("content-length")),[Ze,We]=B&&gi(me,br(yi(B),!0))||[];Z=new r(bi(Z.body,Ei,Ze,()=>{We&&We(),le&&le()}),ye)}j=j||"text";let Ye=await f[_.findKey(f,j)||"text"](Z,g);return!He&&le&&le(),await new Promise((ye,me)=>{Tc(ye,me,{data:Ye,headers:Fe.from(Z.headers),status:Z.status,statusText:Z.statusText,config:g,request:Q})})}catch(ee){throw le&&le(),ee&&ee.name==="TypeError"&&/Load failed|fetch/i.test(ee.message)?Object.assign(new X("Network Error",X.ERR_NETWORK,g,Q),{cause:ee.cause||ee}):X.from(ee,ee&&ee.code,g,Q)}}},sp=new Map,Nc=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,l=i,c,u,a=sp;for(;l--;)c=o[l],u=a.get(c),u===void 0&&a.set(c,u=l?new Map:rp(t)),a=u;return u};Nc();const to={http:wh,xhr:Qh,fetch:{get:Nc}};_.forEach(to,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Ai=e=>`- ${e}`,op=e=>_.isFunction(e)||e===null||e===!1;function ip(e,t){e=_.isArray(e)?e:[e];const{length:n}=e;let r,s;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(Ai).join(` +`):" "+Ai(i[0]):"as no adapter specified";throw new X("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const Ic={getAdapter:ip,adapters:to};function is(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new hn(null,e)}function Ri(e){return is(e),e.headers=Fe.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),Ic.getAdapter(e.adapter||Kn.adapter,e)(e).then(function(r){return is(e),r.data=os.call(e,e.transformResponse,r),r.headers=Fe.from(r.headers),r},function(r){return xc(r)||(is(e),r&&r.response&&(r.response.data=os.call(e,e.transformResponse,r.response),r.response.headers=Fe.from(r.response.headers))),Promise.reject(r)})}const Lc="1.13.2",Hr={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Hr[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const Ci={};Hr.transitional=function(t,n,r){function s(o,i){return"[Axios v"+Lc+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,l)=>{if(t===!1)throw new X(s(i," has been removed"+(n?" in "+n:"")),X.ERR_DEPRECATED);return n&&!Ci[i]&&(Ci[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,l):!0}};Hr.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function lp(e,t,n){if(typeof e!="object")throw new X("options must be an object",X.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const l=e[o],c=l===void 0||i(l,o,e);if(c!==!0)throw new X("option "+o+" must be "+c,X.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new X("Unknown option "+o,X.ERR_BAD_OPTION)}}const cr={assertOptions:lp,validators:Hr},it=cr.validators;let Kt=class{constructor(t){this.defaults=t||{},this.interceptors={request:new pi,response:new pi}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Gt(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&cr.assertOptions(r,{silentJSONParsing:it.transitional(it.boolean),forcedJSONParsing:it.transitional(it.boolean),clarifyTimeoutError:it.transitional(it.boolean)},!1),s!=null&&(_.isFunction(s)?n.paramsSerializer={serialize:s}:cr.assertOptions(s,{encode:it.function,serialize:it.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),cr.assertOptions(n,{baseUrl:it.spelling("baseURL"),withXsrfToken:it.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&_.merge(o.common,o[n.method]);o&&_.forEach(["delete","get","head","post","put","patch","common"],g=>{delete o[g]}),n.headers=Fe.concat(i,o);const l=[];let c=!0;this.interceptors.request.forEach(function(b){typeof b.runWhen=="function"&&b.runWhen(n)===!1||(c=c&&b.synchronous,l.unshift(b.fulfilled,b.rejected))});const u=[];this.interceptors.response.forEach(function(b){u.push(b.fulfilled,b.rejected)});let a,f=0,h;if(!c){const g=[Ri.bind(this),void 0];for(g.unshift(...l),g.push(...u),h=g.length,a=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(l=>{r.subscribe(l),o=l}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,l){r.reason||(r.reason=new hn(o,i,l),n(r.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=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new Dc(function(s){t=s}),cancel:t}}};function ap(e){return function(n){return e.apply(null,n)}}function up(e){return _.isObject(e)&&e.isAxiosError===!0}const Ps={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(Ps).forEach(([e,t])=>{Ps[t]=e});function Fc(e){const t=new Kt(e),n=dc(Kt.prototype.request,t);return _.extend(n,Kt.prototype,t,{allOwnKeys:!0}),_.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return Fc(Gt(e,s))},n}const ge=Fc(Kn);ge.Axios=Kt;ge.CanceledError=hn;ge.CancelToken=cp;ge.isCancel=xc;ge.VERSION=Lc;ge.toFormData=jr;ge.AxiosError=X;ge.Cancel=ge.CanceledError;ge.all=function(t){return Promise.all(t)};ge.spread=ap;ge.isAxiosError=up;ge.mergeConfig=Gt;ge.AxiosHeaders=Fe;ge.formToJSON=e=>Cc(_.isHTMLForm(e)?new FormData(e):e);ge.getAdapter=Ic.getAdapter;ge.HttpStatusCode=Ps;ge.default=ge;const{Axios:kp,AxiosError:Bp,CanceledError:Up,isCancel:jp,CancelToken:Hp,VERSION:Vp,all:$p,Cancel:qp,isAxiosError:Kp,spread:Wp,toFormData:Gp,AxiosHeaders:zp,HttpStatusCode:Jp,formToJSON:Xp,getAdapter:Qp,mergeConfig:Yp}=ge,Pn=ge.create({baseURL:"",timeout:3e4,withCredentials:!0});Pn.interceptors.request.use(e=>e,e=>Promise.reject(e));Pn.interceptors.response.use(e=>e.data,e=>{e.response?.status===401&&(window.location.hash="#/login");const t=e.response?.data?e.response.data.detail||e.response.data.message:e.message;return Promise.reject(new Error(t||"请求失败"))});const Yn={login:e=>{const t=new URLSearchParams;return t.append("admin_key",e.password),Pn.post("/login",t,{headers:{"Content-Type":"application/x-www-form-urlencoded"}})},logout:()=>Pn.post("/logout"),checkAuth:()=>Pn.get("/admin/health")},fp=xf("auth",()=>{const e=$t(!1),t=$t(!1),n=$t(0),r=1e4;let s=null;async function o(c){t.value=!0;try{return await Yn.login({password:c}),await Yn.checkAuth(),e.value=!0,n.value=Date.now(),!0}catch(u){throw e.value=!1,u}finally{t.value=!1}}async function i(){try{await Yn.logout()}finally{e.value=!1,n.value=0}}async function l(){const c=Date.now();if(e.value&&c-n.value(await Yn.checkAuth(),e.value=!0,!0))(),await s}catch{return e.value=!1,!1}finally{n.value=Date.now(),s=null}}return{isLoggedIn:e,isLoading:t,login:o,logout:i,checkAuth:l}}),Mc=Fd({history:pd("/"),routes:[{path:"/public/uptime",name:"public-uptime",component:()=>ot(()=>import("./PublicUptime-BGMR85hP.js"),__vite__mapDeps([0,1])),meta:{requiresAuth:!1}},{path:"/public/logs",name:"public-logs",component:()=>ot(()=>import("./PublicLogs-BEDbsbPT.js"),[]),meta:{requiresAuth:!1}},{path:"/login",name:"login",component:()=>ot(()=>import("./Login-dw5Ee5N0.js"),__vite__mapDeps([2,3])),meta:{requiresAuth:!1}},{path:"/",component:()=>ot(()=>import("./AppShell-CI3sE0H8.js"),__vite__mapDeps([4,5,6,7])),meta:{requiresAuth:!0},children:[{path:"",name:"dashboard",component:()=>ot(()=>import("./Dashboard-VSjcqlN8.js"),__vite__mapDeps([8,9]))},{path:"accounts",name:"accounts",component:()=>ot(()=>import("./Accounts-DIoN-Ccm.js"),__vite__mapDeps([10,11,3,6,7,9]))},{path:"settings",name:"settings",component:()=>ot(()=>import("./Settings-UhS0WpSG.js"),__vite__mapDeps([12,5,11,3,9]))},{path:"logs",name:"logs",component:()=>ot(()=>import("./Logs-CMgCLVvO.js"),__vite__mapDeps([13,11,6]))},{path:"monitor",name:"monitor",component:()=>ot(()=>import("./Monitor-DMikmVDB.js"),__vite__mapDeps([14,1]))},{path:"docs",name:"docs",component:()=>ot(()=>import("./Docs-07xuh_jo.js"),[])}]}]});Mc.beforeEach(async e=>{const t=fp();if(e.meta.requiresAuth&&!await t.checkAuth())return{name:"login"};if(e.name==="login"&&t.isLoggedIn)return{name:"dashboard"}});const Er=fn({toasts:[]});let dp=0;const Zn=e=>{const t=`toast-${++dp}`,n=e.duration??3e3,r={id:t,type:e.type,title:e.title,message:e.message,duration:n};return Er.toasts.push(r),n>0&&setTimeout(()=>{kc(t)},n),t},kc=e=>{const t=Er.toasts.findIndex(n=>n.id===e);t>-1&&Er.toasts.splice(t,1)},Zp=()=>({success:(e,t,n)=>Zn({type:"success",message:e,title:t,duration:n}),error:(e,t,n)=>Zn({type:"error",message:e,title:t,duration:n}),warning:(e,t,n)=>Zn({type:"warning",message:e,title:t,duration:n}),info:(e,t,n)=>Zn({type:"info",message:e,title:t,duration:n})}),hp={class:"fixed right-4 top-4 z-[200] flex flex-col gap-2"},pp={class:"flex-shrink-0"},mp={key:0,class:"h-5 w-5 text-emerald-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},gp={key:1,class:"h-5 w-5 text-rose-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},yp={key:2,class:"h-5 w-5 text-amber-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},_p={key:3,class:"h-5 w-5 text-sky-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},bp={class:"flex-1"},Ep={key:0,class:"text-sm font-medium text-foreground"},wp=["onClick"],vp=Or({__name:"Toast",setup(e){const t=Er.toasts,n=r=>{switch(r){case"success":return"border-emerald-200 bg-emerald-50";case"error":return"border-rose-200 bg-rose-50";case"warning":return"border-amber-200 bg-amber-50";default:return"border-sky-200 bg-sky-50"}};return(r,s)=>(qe(),gr(Fa,{to:"body"},[ke("div",hp,[be(cf,{name:"toast"},{default:al(()=>[(qe(!0),Ct(ve,null,Ja(dt(t),o=>(qe(),Ct("div",{key:o.id,class:Nn(["flex min-w-[320px] items-start gap-3 rounded-2xl border border-border bg-card px-4 py-3 shadow-lg",n(o.type)])},[ke("div",pp,[o.type==="success"?(qe(),Ct("svg",mp,[...s[0]||(s[0]=[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"},null,-1)])])):o.type==="error"?(qe(),Ct("svg",gp,[...s[1]||(s[1]=[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"},null,-1)])])):o.type==="warning"?(qe(),Ct("svg",yp,[...s[2]||(s[2]=[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"},null,-1)])])):(qe(),Ct("svg",_p,[...s[3]||(s[3]=[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"},null,-1)])]))]),ke("div",bp,[o.title?(qe(),Ct("p",Ep,ls(o.title),1)):Cu("",!0),ke("p",{class:Nn(["text-sm text-muted-foreground",{"mt-1":o.title}])},ls(o.message),3)]),ke("button",{class:"flex-shrink-0 text-muted-foreground transition-colors hover:text-foreground",onClick:i=>dt(kc)(o.id)},[...s[4]||(s[4]=[ke("svg",{class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])],8,wp)],2))),128))]),_:1})])]))}}),Sp=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},Ap=Sp(vp,[["__scopeId","data-v-cdd21b3c"]]),Rp=Or({__name:"App",setup(e){return(t,n)=>(qe(),Ct(ve,null,[be(dt(fc)),be(Ap)],64))}}),no=_f(Rp),Cp=wf();no.use(Cp);no.use(Mc);no.mount("#app");export{Op as A,fc as B,xf as C,Ip as D,Zp as E,ve as F,$s as G,Tp as H,fn as I,Nd as R,Fa as T,ke as a,Cu as b,Ct as c,Or as d,qe as e,Ru as f,Pn as g,$t as h,Be as i,wl as j,Fs as k,fp as l,gr as m,Nn as n,bl as o,be as p,xp as q,Ja as r,al as s,ls as t,dt as u,Pp as v,Np as w,Lp as x,Dp as y,Sn as z}; diff --git a/static/assets/index-Bk9ifWq6.css b/static/assets/index-Bk9ifWq6.css new file mode 100644 index 0000000000000000000000000000000000000000..7cd887ff35fbf511c6c3002d98c1b9bcd6763552 --- /dev/null +++ b/static/assets/index-Bk9ifWq6.css @@ -0,0 +1 @@ +@import"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=Noto+Serif+SC:wght@600;700&display=swap";*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 97%;--foreground: 0 0% 10%;--card: 0 0% 100%;--card-foreground: 0 0% 10%;--primary: 0 0% 10%;--primary-foreground: 0 0% 100%;--secondary: 0 0% 92%;--secondary-foreground: 0 0% 10%;--muted: 0 0% 92%;--muted-foreground: 0 0% 40%;--accent: 0 0% 90%;--accent-foreground: 0 0% 10%;--destructive: 0 70% 45%;--destructive-foreground: 0 0% 100%;--border: 0 0% 86%;--input: 0 0% 86%;--ring: 0 0% 10%;--radius: 1rem}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:Noto Sans SC,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;overflow-x:hidden;background-image:radial-gradient(900px circle at 10% -20%,rgba(0,0,0,.04),transparent 45%),radial-gradient(700px circle at 90% 0%,rgba(0,0,0,.05),transparent 40%),linear-gradient(180deg,hsl(var(--background)) 0% 100%)}body:before{content:"";position:fixed;inset:0;background-image:linear-gradient(120deg,#ffffff8c,#fff0);opacity:.5;pointer-events:none;z-index:-1}h1,h2,h3{font-family:"Noto Serif SC",Georgia,serif;letter-spacing:-.01em}#app{min-height:100vh}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-y-0{top:0;bottom:0}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.top-full{top:100%}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[9999\]{z-index:9999}.col-span-2{grid-column:span 2 / span 2}.mx-auto{margin-left:auto;margin-right:auto}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-2{margin-left:.5rem}.ml-auto{margin-left:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0{height:0px}.h-10{height:2.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-full{height:100%}.max-h-\[60vh\]{max-height:60vh}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-10{width:2.5rem}.w-20{width:5rem}.w-24{width:6rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-40{width:10rem}.w-44{width:11rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[200px\]{min-width:200px}.min-w-full{min-width:100%}.max-w-3xl{max-width:48rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-visible{overflow-y:visible}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[2\.5rem\]{border-radius:2.5rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-x-4{border-left-width:4px;border-right-width:4px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-4{border-top-width:4px}.border-border{border-color:hsl(var(--border))}.border-destructive\/30{border-color:hsl(var(--destructive) / .3)}.border-input{border-color:hsl(var(--input))}.border-primary-foreground\/40{border-color:hsl(var(--primary-foreground) / .4)}.border-x-transparent{border-left-color:transparent;border-right-color:transparent}.border-t-foreground{border-top-color:hsl(var(--foreground))}.bg-accent{background-color:hsl(var(--accent))}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-200{--tw-bg-opacity: 1;background-color:rgb(253 230 138 / var(--tw-bg-opacity, 1))}.bg-amber-300{--tw-bg-opacity: 1;background-color:rgb(252 211 77 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/20{background-color:#0003}.bg-black\/30{background-color:#0000004d}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-card{background-color:hsl(var(--card))}.bg-card\/70{background-color:hsl(var(--card) / .7)}.bg-card\/90{background-color:hsl(var(--card) / .9)}.bg-cyan-100{--tw-bg-opacity: 1;background-color:rgb(207 250 254 / var(--tw-bg-opacity, 1))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/70{background-color:hsl(var(--muted) / .7)}.bg-primary{background-color:hsl(var(--primary))}.bg-primary-foreground\/15{background-color:hsl(var(--primary-foreground) / .15)}.bg-rose-100{--tw-bg-opacity: 1;background-color:rgb(255 228 230 / var(--tw-bg-opacity, 1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/30{background-color:hsl(var(--secondary) / .3)}.bg-secondary\/40{background-color:hsl(var(--secondary) / .4)}.bg-secondary\/50{background-color:hsl(var(--secondary) / .5)}.bg-secondary\/60{background-color:hsl(var(--secondary) / .6)}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-violet-100{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.object-contain{-o-object-fit:contain;object-fit:contain}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-10{padding-bottom:2.5rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pr-1{padding-right:.25rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.tracking-\[0\.12em\]{letter-spacing:.12em}.tracking-\[0\.28em\]{letter-spacing:.28em}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-\[0\.3em\]{letter-spacing:.3em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-background{color:hsl(var(--background))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-cyan-700{--tw-text-opacity: 1;color:rgb(14 116 144 / var(--tw-text-opacity, 1))}.text-destructive{color:hsl(var(--destructive))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-green-200{--tw-text-opacity: 1;color:rgb(187 247 208 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-violet-700{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.opacity-0{opacity:0}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-black\/10{--tw-shadow-color: rgb(0 0 0 / .1);--tw-shadow: var(--tw-shadow-colored)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-\[transform\]{will-change:transform}html{scrollbar-gutter:stable}*{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.35) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:#00000059;border-radius:999px;border:2px solid transparent;background-clip:content-box}.scrollbar-slim::-webkit-scrollbar{width:6px;height:6px}.scrollbar-slim::-webkit-scrollbar-thumb{background-color:#0006}.cv-auto{content-visibility:auto;contain-intrinsic-size:0 44px}.monitor-badge--up{background:#d1fae5;color:#065f46}.monitor-badge--warn{background:#fef3c7;color:#b45309}.monitor-badge--down{background:#fee2e2;color:#991b1b}.monitor-badge--unknown{background:#f3f4f6;color:#6b7280}.monitor-card{border-radius:16px;padding:0;background:hsl(var(--card));box-shadow:none}.monitor-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.monitor-card__name{font-size:14px;font-weight:600;color:hsl(var(--foreground))}.monitor-card__badge{padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600}.monitor-card__stats{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:hsl(var(--muted-foreground));margin-bottom:12px}.monitor-card__value{margin-left:4px;color:hsl(var(--foreground));font-weight:600}.monitor-card__beats{display:flex;gap:2px;height:24px;align-items:flex-end}.monitor-beat{flex:1;min-width:4px;max-width:8px;border-radius:2px;transition:all .2s;position:relative}.monitor-beat:hover{opacity:.8;transform:scaleY(1.1)}.monitor-beat--up{background:#34c759;height:100%}.monitor-beat--warn,.monitor-beat--slow{background:#f5c15b;height:100%}.monitor-beat--down{background:#ff3b30;height:100%}.monitor-beat--empty{background:#e5e5ea;height:40%}.monitor-beat__tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#1d1d1f;color:#fff;padding:6px 10px;border-radius:6px;font-size:11px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;margin-bottom:6px;z-index:10}.monitor-beat__tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#1d1d1f}.monitor-beat:hover .monitor-beat__tooltip{opacity:1}.help-dot{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:999px;border:1px solid hsl(var(--border));font-size:10px;line-height:1;color:hsl(var(--muted-foreground));cursor:default}@media(max-width:768px){.monitor-beat{min-width:3px;max-width:6px}}@media(min-width:1024px){.dashboard-split{flex-direction:row;flex-wrap:nowrap}.dashboard-split .dashboard-main{flex:0 0 66.6667%;max-width:66.6667%}.dashboard-split .dashboard-side{flex:0 0 33.3333%;max-width:33.3333%}}@keyframes logo-float{0%{transform:translateY(0)}25%{transform:translateY(6px)}50%{transform:translateY(0)}75%{transform:translateY(-6px)}to{transform:translateY(0)}}@keyframes logo-blink{0%,45%,55%,to{transform:scaleY(1);opacity:1}50%{transform:scaleY(.1);opacity:.6}}.logo-mark .logo-cat-wrapper{animation:logo-float 4s ease-in-out infinite;transform-origin:center}.logo-mark{transform:translateY(2px)}.logo-mark .logo-eye{fill:#00bcd4;filter:drop-shadow(0 0 2px #00bcd4);animation:logo-blink 5s infinite;transform-box:fill-box;transform-origin:center}.hover\:border-destructive:hover{border-color:hsl(var(--destructive))}.hover\:border-destructive\/40:hover{border-color:hsl(var(--destructive) / .4)}.hover\:border-destructive\/60:hover{border-color:hsl(var(--destructive) / .6)}.hover\:border-foreground:hover{border-color:hsl(var(--foreground))}.hover\:border-primary:hover{border-color:hsl(var(--primary))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-secondary\/60:hover{background-color:hsl(var(--secondary) / .6)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-emerald-500:hover{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:opacity-90:hover{opacity:.9}.focus\:border-transparent:focus{border-color:transparent}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:text-accent-foreground{color:hsl(var(--accent-foreground))}.group:hover .group-hover\:opacity-100{opacity:1}.peer:checked~.peer-checked\:border-foreground{border-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:bg-foreground{background-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.peer:disabled~.peer-disabled\:opacity-50{opacity:.5}@media(min-width:640px){.sm\:ml-0{margin-left:0}.sm\:flex{display:flex}.sm\:w-44{width:11rem}.sm\:w-48{width:12rem}.sm\:w-auto{width:auto}.sm\:min-w-0{min-width:0px}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:items-center{align-items:center}}@media(min-width:768px){.md\:w-auto{width:auto}.md\:flex-1{flex:1 1 0%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1024px){.lg\:static{position:static}.lg\:sticky{position:sticky}.lg\:top-0{top:0}.lg\:ml-0{margin-left:0}.lg\:hidden{display:none}.lg\:h-20{height:5rem}.lg\:h-64{height:16rem}.lg\:h-72{height:18rem}.lg\:h-screen{height:100vh}.lg\:w-20{width:5rem}.lg\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:border-b-0{border-bottom-width:0px}.lg\:border-r{border-right-width:1px}.lg\:bg-card\/80{background-color:hsl(var(--card) / .8)}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:py-4{padding-top:1rem;padding-bottom:1rem}.lg\:pt-10{padding-top:2.5rem}.lg\:pt-5{padding-top:1.25rem}.lg\:pt-6{padding-top:1.5rem}.lg\:text-2xl{font-size:1.5rem;line-height:2rem}.lg\:backdrop-blur-none{--tw-backdrop-blur: ;-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}}@media(min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}} diff --git a/static/assets/index-BlxpJPM8.css b/static/assets/index-BlxpJPM8.css new file mode 100644 index 0000000000000000000000000000000000000000..e2de75179c12ce807914a6d6a4c935621fffb96a --- /dev/null +++ b/static/assets/index-BlxpJPM8.css @@ -0,0 +1 @@ +@import"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=Noto+Serif+SC:wght@600;700&display=swap";*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 97%;--foreground: 0 0% 10%;--card: 0 0% 100%;--card-foreground: 0 0% 10%;--primary: 0 0% 10%;--primary-foreground: 0 0% 100%;--secondary: 0 0% 92%;--secondary-foreground: 0 0% 10%;--muted: 0 0% 92%;--muted-foreground: 0 0% 40%;--accent: 0 0% 90%;--accent-foreground: 0 0% 10%;--destructive: 0 70% 45%;--destructive-foreground: 0 0% 100%;--border: 0 0% 86%;--input: 0 0% 86%;--ring: 0 0% 10%;--radius: 1rem}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:Noto Sans SC,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;overflow-x:hidden;background-image:radial-gradient(900px circle at 10% -20%,rgba(0,0,0,.04),transparent 45%),radial-gradient(700px circle at 90% 0%,rgba(0,0,0,.05),transparent 40%),linear-gradient(180deg,hsl(var(--background)) 0% 100%)}body:before{content:"";position:fixed;inset:0;background-image:linear-gradient(120deg,#ffffff8c,#fff0);opacity:.5;pointer-events:none;z-index:-1}h1,h2,h3{font-family:"Noto Serif SC",Georgia,serif;letter-spacing:-.01em}#app{min-height:100vh}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-y-0{top:0;bottom:0}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.top-full{top:100%}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[9999\]{z-index:9999}.col-span-2{grid-column:span 2 / span 2}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0{height:0px}.h-10{height:2.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-\[80vh\]{height:80vh}.h-full{height:100%}.max-h-\[60vh\]{max-height:60vh}.min-h-0{min-height:0px}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-10{width:2.5rem}.w-2{width:.5rem}.w-20{width:5rem}.w-24{width:6rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-44{width:11rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[200px\]{min-width:200px}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-not-allowed{cursor:not-allowed}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-1{row-gap:.25rem}.gap-y-2{row-gap:.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.justify-self-end{justify-self:end}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-visible{overflow-y:visible}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[2\.5rem\]{border-radius:2.5rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-x-4{border-left-width:4px;border-right-width:4px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-4{border-top-width:4px}.border-border{border-color:hsl(var(--border))}.border-border\/60{border-color:hsl(var(--border) / .6)}.border-destructive\/30{border-color:hsl(var(--destructive) / .3)}.border-input{border-color:hsl(var(--input))}.border-primary-foreground\/40{border-color:hsl(var(--primary-foreground) / .4)}.border-x-transparent{border-left-color:transparent;border-right-color:transparent}.border-t-foreground{border-top-color:hsl(var(--foreground))}.bg-accent{background-color:hsl(var(--accent))}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-200{--tw-bg-opacity: 1;background-color:rgb(253 230 138 / var(--tw-bg-opacity, 1))}.bg-amber-300{--tw-bg-opacity: 1;background-color:rgb(252 211 77 / var(--tw-bg-opacity, 1))}.bg-amber-400{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-black\/20{background-color:#0003}.bg-black\/30{background-color:#0000004d}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-card{background-color:hsl(var(--card))}.bg-card\/70{background-color:hsl(var(--card) / .7)}.bg-card\/90{background-color:hsl(var(--card) / .9)}.bg-cyan-100{--tw-bg-opacity: 1;background-color:rgb(207 250 254 / var(--tw-bg-opacity, 1))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-400{--tw-bg-opacity: 1;background-color:rgb(52 211 153 / var(--tw-bg-opacity, 1))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground{background-color:hsl(var(--muted-foreground))}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/70{background-color:hsl(var(--muted) / .7)}.bg-primary{background-color:hsl(var(--primary))}.bg-primary-foreground\/15{background-color:hsl(var(--primary-foreground) / .15)}.bg-rose-100{--tw-bg-opacity: 1;background-color:rgb(255 228 230 / var(--tw-bg-opacity, 1))}.bg-rose-500{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity, 1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/30{background-color:hsl(var(--secondary) / .3)}.bg-secondary\/40{background-color:hsl(var(--secondary) / .4)}.bg-secondary\/50{background-color:hsl(var(--secondary) / .5)}.bg-secondary\/60{background-color:hsl(var(--secondary) / .6)}.bg-sky-400{--tw-bg-opacity: 1;background-color:rgb(56 189 248 / var(--tw-bg-opacity, 1))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-violet-100{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.object-contain{-o-object-fit:contain;object-fit:contain}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-10{padding-bottom:2.5rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pl-3{padding-left:.75rem}.pr-1{padding-right:.25rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.tracking-\[0\.12em\]{letter-spacing:.12em}.tracking-\[0\.28em\]{letter-spacing:.28em}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-\[0\.3em\]{letter-spacing:.3em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-background{color:hsl(var(--background))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-cyan-700{--tw-text-opacity: 1;color:rgb(14 116 144 / var(--tw-text-opacity, 1))}.text-destructive{color:hsl(var(--destructive))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-violet-700{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.opacity-0{opacity:0}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-black\/10{--tw-shadow-color: rgb(0 0 0 / .1);--tw-shadow: var(--tw-shadow-colored)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,transform\]{transition-property:width,transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-\[transform\]{will-change:transform}html{scrollbar-gutter:stable}*{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.35) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:#00000059;border-radius:999px;border:2px solid transparent;background-clip:content-box}.scrollbar-slim::-webkit-scrollbar{width:6px;height:6px}.scrollbar-slim::-webkit-scrollbar-thumb{background-color:#0006}.cv-auto{content-visibility:auto;contain-intrinsic-size:0 44px}.monitor-badge--up{background:#d1fae5;color:#065f46}.monitor-badge--warn{background:#fef3c7;color:#b45309}.monitor-badge--down{background:#fee2e2;color:#991b1b}.monitor-badge--unknown{background:#f3f4f6;color:#6b7280}.monitor-card{border-radius:16px;padding:0;background:hsl(var(--card));box-shadow:none}.monitor-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.monitor-card__name{font-size:14px;font-weight:600;color:hsl(var(--foreground))}.monitor-card__badge{padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600}.monitor-card__stats{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:hsl(var(--muted-foreground));margin-bottom:12px}.monitor-card__value{margin-left:4px;color:hsl(var(--foreground));font-weight:600}.monitor-card__beats{display:flex;gap:2px;height:24px;align-items:flex-end}.monitor-beat{flex:1;min-width:4px;max-width:8px;border-radius:2px;transition:all .2s;position:relative}.monitor-beat:hover{opacity:.8;transform:scaleY(1.1)}.monitor-beat--up{background:#34c759;height:100%}.monitor-beat--warn,.monitor-beat--slow{background:#f5c15b;height:100%}.monitor-beat--down{background:#ff3b30;height:100%}.monitor-beat--empty{background:#e5e5ea;height:40%}.monitor-beat__tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#1d1d1f;color:#fff;padding:6px 10px;border-radius:6px;font-size:11px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;margin-bottom:6px;z-index:10}.monitor-beat__tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#1d1d1f}.monitor-beat:hover .monitor-beat__tooltip{opacity:1}.help-dot{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:999px;border:1px solid hsl(var(--border));font-size:10px;line-height:1;color:hsl(var(--muted-foreground));cursor:default}@media(max-width:768px){.monitor-beat{min-width:3px;max-width:6px}}@media(min-width:1024px){.dashboard-split{flex-direction:row;flex-wrap:nowrap}.dashboard-split .dashboard-main{flex:0 0 66.6667%;max-width:66.6667%}.dashboard-split .dashboard-side{flex:0 0 33.3333%;max-width:33.3333%}}@keyframes logo-float{0%{transform:translateY(0)}25%{transform:translateY(6px)}50%{transform:translateY(0)}75%{transform:translateY(-6px)}to{transform:translateY(0)}}@keyframes logo-blink{0%,45%,55%,to{transform:scaleY(1);opacity:1}50%{transform:scaleY(.1);opacity:.6}}.logo-mark .logo-cat-wrapper{animation:logo-float 4s ease-in-out infinite;transform-origin:center}.logo-mark{transform:translateY(2px)}.logo-mark .logo-eye{fill:#00bcd4;filter:drop-shadow(0 0 2px #00bcd4);animation:logo-blink 5s infinite;transform-box:fill-box;transform-origin:center}.hover\:border-destructive:hover{border-color:hsl(var(--destructive))}.hover\:border-destructive\/40:hover{border-color:hsl(var(--destructive) / .4)}.hover\:border-destructive\/60:hover{border-color:hsl(var(--destructive) / .6)}.hover\:border-foreground:hover{border-color:hsl(var(--foreground))}.hover\:border-primary:hover{border-color:hsl(var(--primary))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/10:hover{background-color:hsl(var(--destructive) / .1)}.hover\:bg-secondary\/60:hover{background-color:hsl(var(--secondary) / .6)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-emerald-500:hover{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:opacity-90:hover{opacity:.9}.focus\:border-transparent:focus{border-color:transparent}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:text-accent-foreground{color:hsl(var(--accent-foreground))}.group:hover .group-hover\:opacity-100{opacity:1}.peer:checked~.peer-checked\:border-foreground{border-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:bg-foreground{background-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.peer:disabled~.peer-disabled\:opacity-50{opacity:.5}@media(min-width:640px){.sm\:ml-0{margin-left:0}.sm\:flex{display:flex}.sm\:w-44{width:11rem}.sm\:w-48{width:12rem}.sm\:w-auto{width:auto}.sm\:min-w-0{min-width:0px}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:items-center{align-items:center}}@media(min-width:768px){.md\:w-auto{width:auto}.md\:flex-1{flex:1 1 0%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1024px){.lg\:static{position:static}.lg\:sticky{position:sticky}.lg\:top-0{top:0}.lg\:ml-0{margin-left:0}.lg\:hidden{display:none}.lg\:h-20{height:5rem}.lg\:h-64{height:16rem}.lg\:h-72{height:18rem}.lg\:h-screen{height:100vh}.lg\:w-20{width:5rem}.lg\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:border-b-0{border-bottom-width:0px}.lg\:border-r{border-right-width:1px}.lg\:bg-card\/80{background-color:hsl(var(--card) / .8)}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:py-4{padding-top:1rem;padding-bottom:1rem}.lg\:pt-10{padding-top:2.5rem}.lg\:pt-5{padding-top:1.25rem}.lg\:pt-6{padding-top:1.5rem}.lg\:text-2xl{font-size:1.5rem;line-height:2rem}.lg\:backdrop-blur-none{--tw-backdrop-blur: ;-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}}@media(min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}} diff --git a/static/assets/index-BmQNB-qr.css b/static/assets/index-BmQNB-qr.css new file mode 100644 index 0000000000000000000000000000000000000000..7753236631de2cda39bfb34b4a042ecafdd13a7f --- /dev/null +++ b/static/assets/index-BmQNB-qr.css @@ -0,0 +1 @@ +@import"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=Noto+Serif+SC:wght@600;700&display=swap";*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 97%;--foreground: 0 0% 10%;--card: 0 0% 100%;--card-foreground: 0 0% 10%;--primary: 0 0% 10%;--primary-foreground: 0 0% 100%;--secondary: 0 0% 92%;--secondary-foreground: 0 0% 10%;--muted: 0 0% 92%;--muted-foreground: 0 0% 40%;--accent: 0 0% 90%;--accent-foreground: 0 0% 10%;--destructive: 0 70% 45%;--destructive-foreground: 0 0% 100%;--border: 0 0% 86%;--input: 0 0% 86%;--ring: 0 0% 10%;--radius: 1rem}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:Noto Sans SC,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;overflow-x:hidden;background-image:radial-gradient(900px circle at 10% -20%,rgba(0,0,0,.04),transparent 45%),radial-gradient(700px circle at 90% 0%,rgba(0,0,0,.05),transparent 40%),linear-gradient(180deg,hsl(var(--background)) 0% 100%)}body:before{content:"";position:fixed;inset:0;background-image:linear-gradient(120deg,#ffffff8c,#fff0);opacity:.5;pointer-events:none;z-index:-1}h1,h2,h3{font-family:"Noto Serif SC",Georgia,serif;letter-spacing:-.01em}#app{min-height:100vh}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-y-0{top:0;bottom:0}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.top-full{top:100%}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[9999\]{z-index:9999}.col-span-2{grid-column:span 2 / span 2}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-auto{margin-left:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0{height:0px}.h-10{height:2.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-full{height:100%}.max-h-\[60vh\]{max-height:60vh}.max-h-\[80vh\]{max-height:80vh}.max-h-\[calc\(80vh-92px\)\]{max-height:calc(80vh - 92px)}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-10{width:2.5rem}.w-2{width:.5rem}.w-20{width:5rem}.w-24{width:6rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-44{width:11rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[200px\]{min-width:200px}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-not-allowed{cursor:not-allowed}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-visible{overflow-y:visible}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[2\.5rem\]{border-radius:2.5rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-x-4{border-left-width:4px;border-right-width:4px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-4{border-top-width:4px}.border-border{border-color:hsl(var(--border))}.border-border\/60{border-color:hsl(var(--border) / .6)}.border-destructive\/30{border-color:hsl(var(--destructive) / .3)}.border-input{border-color:hsl(var(--input))}.border-primary-foreground\/40{border-color:hsl(var(--primary-foreground) / .4)}.border-x-transparent{border-left-color:transparent;border-right-color:transparent}.border-t-foreground{border-top-color:hsl(var(--foreground))}.bg-accent{background-color:hsl(var(--accent))}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-200{--tw-bg-opacity: 1;background-color:rgb(253 230 138 / var(--tw-bg-opacity, 1))}.bg-amber-300{--tw-bg-opacity: 1;background-color:rgb(252 211 77 / var(--tw-bg-opacity, 1))}.bg-amber-400{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-black\/20{background-color:#0003}.bg-black\/30{background-color:#0000004d}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-card{background-color:hsl(var(--card))}.bg-card\/70{background-color:hsl(var(--card) / .7)}.bg-card\/90{background-color:hsl(var(--card) / .9)}.bg-cyan-100{--tw-bg-opacity: 1;background-color:rgb(207 250 254 / var(--tw-bg-opacity, 1))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-400{--tw-bg-opacity: 1;background-color:rgb(52 211 153 / var(--tw-bg-opacity, 1))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground{background-color:hsl(var(--muted-foreground))}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/70{background-color:hsl(var(--muted) / .7)}.bg-primary{background-color:hsl(var(--primary))}.bg-primary-foreground\/15{background-color:hsl(var(--primary-foreground) / .15)}.bg-rose-100{--tw-bg-opacity: 1;background-color:rgb(255 228 230 / var(--tw-bg-opacity, 1))}.bg-rose-500{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity, 1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/30{background-color:hsl(var(--secondary) / .3)}.bg-secondary\/40{background-color:hsl(var(--secondary) / .4)}.bg-secondary\/50{background-color:hsl(var(--secondary) / .5)}.bg-secondary\/60{background-color:hsl(var(--secondary) / .6)}.bg-sky-400{--tw-bg-opacity: 1;background-color:rgb(56 189 248 / var(--tw-bg-opacity, 1))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-violet-100{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.object-contain{-o-object-fit:contain;object-fit:contain}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-10{padding-bottom:2.5rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pr-1{padding-right:.25rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.tracking-\[0\.12em\]{letter-spacing:.12em}.tracking-\[0\.28em\]{letter-spacing:.28em}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-\[0\.3em\]{letter-spacing:.3em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-background{color:hsl(var(--background))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-cyan-700{--tw-text-opacity: 1;color:rgb(14 116 144 / var(--tw-text-opacity, 1))}.text-destructive{color:hsl(var(--destructive))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-violet-700{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.opacity-0{opacity:0}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-black\/10{--tw-shadow-color: rgb(0 0 0 / .1);--tw-shadow: var(--tw-shadow-colored)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-\[transform\]{will-change:transform}html{scrollbar-gutter:stable}*{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.35) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:#00000059;border-radius:999px;border:2px solid transparent;background-clip:content-box}.scrollbar-slim::-webkit-scrollbar{width:6px;height:6px}.scrollbar-slim::-webkit-scrollbar-thumb{background-color:#0006}.cv-auto{content-visibility:auto;contain-intrinsic-size:0 44px}.monitor-badge--up{background:#d1fae5;color:#065f46}.monitor-badge--warn{background:#fef3c7;color:#b45309}.monitor-badge--down{background:#fee2e2;color:#991b1b}.monitor-badge--unknown{background:#f3f4f6;color:#6b7280}.monitor-card{border-radius:16px;padding:0;background:hsl(var(--card));box-shadow:none}.monitor-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.monitor-card__name{font-size:14px;font-weight:600;color:hsl(var(--foreground))}.monitor-card__badge{padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600}.monitor-card__stats{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:hsl(var(--muted-foreground));margin-bottom:12px}.monitor-card__value{margin-left:4px;color:hsl(var(--foreground));font-weight:600}.monitor-card__beats{display:flex;gap:2px;height:24px;align-items:flex-end}.monitor-beat{flex:1;min-width:4px;max-width:8px;border-radius:2px;transition:all .2s;position:relative}.monitor-beat:hover{opacity:.8;transform:scaleY(1.1)}.monitor-beat--up{background:#34c759;height:100%}.monitor-beat--warn,.monitor-beat--slow{background:#f5c15b;height:100%}.monitor-beat--down{background:#ff3b30;height:100%}.monitor-beat--empty{background:#e5e5ea;height:40%}.monitor-beat__tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#1d1d1f;color:#fff;padding:6px 10px;border-radius:6px;font-size:11px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;margin-bottom:6px;z-index:10}.monitor-beat__tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#1d1d1f}.monitor-beat:hover .monitor-beat__tooltip{opacity:1}.help-dot{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:999px;border:1px solid hsl(var(--border));font-size:10px;line-height:1;color:hsl(var(--muted-foreground));cursor:default}@media(max-width:768px){.monitor-beat{min-width:3px;max-width:6px}}@media(min-width:1024px){.dashboard-split{flex-direction:row;flex-wrap:nowrap}.dashboard-split .dashboard-main{flex:0 0 66.6667%;max-width:66.6667%}.dashboard-split .dashboard-side{flex:0 0 33.3333%;max-width:33.3333%}}@keyframes logo-float{0%{transform:translateY(0)}25%{transform:translateY(6px)}50%{transform:translateY(0)}75%{transform:translateY(-6px)}to{transform:translateY(0)}}@keyframes logo-blink{0%,45%,55%,to{transform:scaleY(1);opacity:1}50%{transform:scaleY(.1);opacity:.6}}.logo-mark .logo-cat-wrapper{animation:logo-float 4s ease-in-out infinite;transform-origin:center}.logo-mark{transform:translateY(2px)}.logo-mark .logo-eye{fill:#00bcd4;filter:drop-shadow(0 0 2px #00bcd4);animation:logo-blink 5s infinite;transform-box:fill-box;transform-origin:center}.hover\:border-destructive:hover{border-color:hsl(var(--destructive))}.hover\:border-destructive\/40:hover{border-color:hsl(var(--destructive) / .4)}.hover\:border-destructive\/60:hover{border-color:hsl(var(--destructive) / .6)}.hover\:border-foreground:hover{border-color:hsl(var(--foreground))}.hover\:border-primary:hover{border-color:hsl(var(--primary))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/10:hover{background-color:hsl(var(--destructive) / .1)}.hover\:bg-secondary\/60:hover{background-color:hsl(var(--secondary) / .6)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-emerald-500:hover{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:opacity-90:hover{opacity:.9}.focus\:border-transparent:focus{border-color:transparent}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:text-accent-foreground{color:hsl(var(--accent-foreground))}.group:hover .group-hover\:opacity-100{opacity:1}.peer:checked~.peer-checked\:border-foreground{border-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:bg-foreground{background-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.peer:disabled~.peer-disabled\:opacity-50{opacity:.5}@media(min-width:640px){.sm\:ml-0{margin-left:0}.sm\:flex{display:flex}.sm\:w-44{width:11rem}.sm\:w-48{width:12rem}.sm\:w-auto{width:auto}.sm\:min-w-0{min-width:0px}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:items-center{align-items:center}}@media(min-width:768px){.md\:w-auto{width:auto}.md\:flex-1{flex:1 1 0%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1024px){.lg\:static{position:static}.lg\:sticky{position:sticky}.lg\:top-0{top:0}.lg\:ml-0{margin-left:0}.lg\:hidden{display:none}.lg\:h-20{height:5rem}.lg\:h-64{height:16rem}.lg\:h-72{height:18rem}.lg\:h-screen{height:100vh}.lg\:w-20{width:5rem}.lg\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:border-b-0{border-bottom-width:0px}.lg\:border-r{border-right-width:1px}.lg\:bg-card\/80{background-color:hsl(var(--card) / .8)}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:py-4{padding-top:1rem;padding-bottom:1rem}.lg\:pt-10{padding-top:2.5rem}.lg\:pt-5{padding-top:1.25rem}.lg\:pt-6{padding-top:1.5rem}.lg\:text-2xl{font-size:1.5rem;line-height:2rem}.lg\:backdrop-blur-none{--tw-backdrop-blur: ;-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}}@media(min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}} diff --git a/static/assets/index-Bx7qSams.js b/static/assets/index-Bx7qSams.js new file mode 100644 index 0000000000000000000000000000000000000000..9e0e9a2adaa2c7892bd8a392362c8597dbe20744 --- /dev/null +++ b/static/assets/index-Bx7qSams.js @@ -0,0 +1,7 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PublicUptime-Bcu4-dB9.js","assets/useUptimeStatus-BGiG3-jw.js","assets/AppShell-_I1IX8_9.js","assets/settings-Br7FkzDa.js","assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-CLzCrpfO.js","assets/useConfirmDialog-DIY3VaSP.js","assets/Dashboard-CcTQaln-.js","assets/HelpTip.vue_vue_type_script_setup_true_lang-BaMbEJhq.js","assets/Accounts-B-ft7iE1.js","assets/SelectMenu.vue_vue_type_script_setup_true_lang-CJjLLYhZ.js","assets/Checkbox.vue_vue_type_script_setup_true_lang-BCrOKjX_.js","assets/Settings-Cau8Y7zz.js","assets/Logs-CECdzzbe.js","assets/Monitor-CJoyZd31.js"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function us(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const se={},$t=[],ot=()=>{},ni=()=>!1,or=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),fs=e=>e.startsWith("onUpdate:"),Se=Object.assign,ds=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},oc=Object.prototype.hasOwnProperty,ne=(e,t)=>oc.call(e,t),q=Array.isArray,Kt=e=>ir(e)==="[object Map]",ri=e=>ir(e)==="[object Set]",W=e=>typeof e=="function",de=e=>typeof e=="string",yt=e=>typeof e=="symbol",le=e=>e!==null&&typeof e=="object",si=e=>(le(e)||W(e))&&W(e.then)&&W(e.catch),oi=Object.prototype.toString,ir=e=>oi.call(e),ic=e=>ir(e).slice(8,-1),ii=e=>ir(e)==="[object Object]",lr=e=>de(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,cn=us(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),cr=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},lc=/-\w/g,xt=cr(e=>e.replace(lc,t=>t.slice(1).toUpperCase())),cc=/\B([A-Z])/g,jt=cr(e=>e.replace(cc,"-$1").toLowerCase()),li=cr(e=>e.charAt(0).toUpperCase()+e.slice(1)),vr=cr(e=>e?`on${li(e)}`:""),vt=(e,t)=>!Object.is(e,t),Bn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},hs=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let ks;const ar=()=>ks||(ks=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function ps(e){if(q(e)){const t={};for(let n=0;n{if(n){const r=n.split(uc);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function ms(e){let t="";if(de(e))t=e;else if(q(e))for(let n=0;n!!(e&&e.__v_isRef===!0),mc=e=>de(e)?e:e==null?"":q(e)||le(e)&&(e.toString===oi||!W(e.toString))?ui(e)?mc(e.value):JSON.stringify(e,fi,2):String(e),fi=(e,t)=>ui(t)?fi(e,t.value):Kt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[Or(r,o)+" =>"]=s,n),{})}:ri(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Or(n))}:yt(t)?Or(t):le(t)&&!q(t)&&!ii(t)?String(t):t,Or=(e,t="")=>{var n;return yt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let _e;class di{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=_e,!t&&_e&&(this.index=(_e.scopes||(_e.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&&(_e=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if(un){let t=un;for(un=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;an;){let t=an;for(an=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function _i(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function bi(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),_s(r),yc(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function qr(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===bn)||(e.globalVersion=bn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!qr(e))))return;e.flags|=2;const t=e.dep,n=ie,r=$e;ie=e,$e=!0;try{_i(e);const s=e.fn(e._value);(t.version===0||vt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{ie=n,$e=r,bi(e),e.flags&=-3}}function _s(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)_s(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function yc(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 wi=[];function ht(){wi.push($e),$e=!1}function pt(){const e=wi.pop();$e=e===void 0?!0:e}function Vs(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ie;ie=void 0;try{t()}finally{ie=n}}}let bn=0;class _c{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 bs{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!ie||!$e||ie===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ie)n=this.activeLink=new _c(ie,this),ie.deps?(n.prevDep=ie.depsTail,ie.depsTail.nextDep=n,ie.depsTail=n):ie.deps=ie.depsTail=n,Si(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=ie.depsTail,n.nextDep=void 0,ie.depsTail.nextDep=n,ie.depsTail=n,ie.deps===n&&(ie.deps=r)}return n}trigger(t){this.version++,bn++,this.notify(t)}notify(t){gs();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ys()}}}function Si(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Si(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const zn=new WeakMap,Dt=Symbol(""),$r=Symbol(""),En=Symbol("");function be(e,t,n){if($e&&ie){let r=zn.get(e);r||zn.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new bs),s.map=r,s.key=n),s.track()}}function ft(e,t,n,r,s,o){const i=zn.get(e);if(!i){bn++;return}const l=c=>{c&&c.trigger()};if(gs(),t==="clear")i.forEach(l);else{const c=q(e),u=c&&lr(n);if(c&&n==="length"){const a=Number(r);i.forEach((f,p)=>{(p==="length"||p===En||!yt(p)&&p>=a)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(En)),t){case"add":c?u&&l(i.get("length")):(l(i.get(Dt)),Kt(e)&&l(i.get($r)));break;case"delete":c||(l(i.get(Dt)),Kt(e)&&l(i.get($r)));break;case"set":Kt(e)&&l(i.get(Dt));break}}ys()}function bc(e,t){const n=zn.get(e);return n&&n.get(t)}function Bt(e){const t=Z(e);return t===e?t:(be(t,"iterate",En),je(e)?t:t.map(Ke))}function ur(e){return be(e=Z(e),"iterate",En),e}function wt(e,t){return mt(e)?it(e)?zt(Ke(t)):zt(t):Ke(t)}const Ec={__proto__:null,[Symbol.iterator](){return Tr(this,Symbol.iterator,e=>wt(this,e))},concat(...e){return Bt(this).concat(...e.map(t=>q(t)?Bt(t):t))},entries(){return Tr(this,"entries",e=>(e[1]=wt(this,e[1]),e))},every(e,t){return ct(this,"every",e,t,void 0,arguments)},filter(e,t){return ct(this,"filter",e,t,n=>n.map(r=>wt(this,r)),arguments)},find(e,t){return ct(this,"find",e,t,n=>wt(this,n),arguments)},findIndex(e,t){return ct(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ct(this,"findLast",e,t,n=>wt(this,n),arguments)},findLastIndex(e,t){return ct(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ct(this,"forEach",e,t,void 0,arguments)},includes(...e){return Cr(this,"includes",e)},indexOf(...e){return Cr(this,"indexOf",e)},join(e){return Bt(this).join(e)},lastIndexOf(...e){return Cr(this,"lastIndexOf",e)},map(e,t){return ct(this,"map",e,t,void 0,arguments)},pop(){return nn(this,"pop")},push(...e){return nn(this,"push",e)},reduce(e,...t){return qs(this,"reduce",e,t)},reduceRight(e,...t){return qs(this,"reduceRight",e,t)},shift(){return nn(this,"shift")},some(e,t){return ct(this,"some",e,t,void 0,arguments)},splice(...e){return nn(this,"splice",e)},toReversed(){return Bt(this).toReversed()},toSorted(e){return Bt(this).toSorted(e)},toSpliced(...e){return Bt(this).toSpliced(...e)},unshift(...e){return nn(this,"unshift",e)},values(){return Tr(this,"values",e=>wt(this,e))}};function Tr(e,t,n){const r=ur(e),s=r[t]();return r!==e&&!je(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const wc=Array.prototype;function ct(e,t,n,r,s,o){const i=ur(e),l=i!==e&&!je(e),c=i[t];if(c!==wc[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,wt(e,f),p,e)}:n.length>2&&(u=function(f,p){return n.call(this,f,p,e)}));const a=c.call(i,u,r);return l&&s?s(a):a}function qs(e,t,n,r){const s=ur(e);let o=n;return s!==e&&(je(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,wt(e,l),c,e)}),s[t](o,...r)}function Cr(e,t,n){const r=Z(e);be(r,"iterate",En);const s=r[t](...n);return(s===-1||s===!1)&&fr(n[0])?(n[0]=Z(n[0]),r[t](...n)):s}function nn(e,t,n=[]){ht(),gs();const r=Z(e)[t].apply(e,n);return ys(),pt(),r}const Sc=us("__proto__,__v_isRef,__isVue"),Ri=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(yt));function Rc(e){yt(e)||(e=String(e));const t=Z(this);return be(t,"has",e),t.hasOwnProperty(e)}class Ai{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?Dc:Ti:o?xi:Oi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=q(t);if(!s){let c;if(i&&(c=Ec[n]))return c;if(n==="hasOwnProperty")return Rc}const l=Reflect.get(t,n,ce(t)?t:r);if((yt(n)?Ri.has(n):Sc(n))||(s||be(t,"get",n),o))return l;if(ce(l)){const c=i&&lr(n)?l:l.value;return s&&le(c)?Wr(c):c}return le(l)?s?Wr(l):On(l):l}}class vi extends Ai{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=q(t)&&lr(n);if(!this._isShallow){const u=mt(o);if(!je(r)&&!mt(r)&&(o=Z(o),r=Z(r)),!i&&ce(o)&&!ce(r))return u||(o.value=r),!0}const l=i?Number(n)e,Dn=e=>Reflect.getPrototypeOf(e);function Tc(e,t,n){return function(...r){const s=this.__v_raw,o=Z(s),i=Kt(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=s[e](...r),a=n?Kr:t?zt:Ke;return!t&&be(o,"iterate",c?$r:Dt),{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 Ln(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Cc(e,t){const n={get(s){const o=this.__v_raw,i=Z(o),l=Z(s);e||(vt(s,l)&&be(i,"get",s),be(i,"get",l));const{has:c}=Dn(i),u=t?Kr:e?zt:Ke;if(c.call(i,s))return u(o.get(s));if(c.call(i,l))return u(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&be(Z(s),"iterate",Dt),s.size},has(s){const o=this.__v_raw,i=Z(o),l=Z(s);return e||(vt(s,l)&&be(i,"has",s),be(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,c=Z(l),u=t?Kr:e?zt:Ke;return!e&&be(c,"iterate",Dt),l.forEach((a,f)=>s.call(o,u(a),u(f),i))}};return Se(n,e?{add:Ln("add"),set:Ln("set"),delete:Ln("delete"),clear:Ln("clear")}:{add(s){!t&&!je(s)&&!mt(s)&&(s=Z(s));const o=Z(this);return Dn(o).has.call(o,s)||(o.add(s),ft(o,"add",s,s)),this},set(s,o){!t&&!je(o)&&!mt(o)&&(o=Z(o));const i=Z(this),{has:l,get:c}=Dn(i);let u=l.call(i,s);u||(s=Z(s),u=l.call(i,s));const a=c.call(i,s);return i.set(s,o),u?vt(o,a)&&ft(i,"set",s,o):ft(i,"add",s,o),this},delete(s){const o=Z(this),{has:i,get:l}=Dn(o);let c=i.call(o,s);c||(s=Z(s),c=i.call(o,s)),l&&l.call(o,s);const u=o.delete(s);return c&&ft(o,"delete",s,void 0),u},clear(){const s=Z(this),o=s.size!==0,i=s.clear();return o&&ft(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=Tc(s,e,t)}),n}function Es(e,t){const n=Cc(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(ne(n,s)&&s in r?n:r,s,o)}const Pc={get:Es(!1,!1)},Nc={get:Es(!1,!0)},Ic={get:Es(!0,!1)};const Oi=new WeakMap,xi=new WeakMap,Ti=new WeakMap,Dc=new WeakMap;function Lc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Fc(e){return e.__v_skip||!Object.isExtensible(e)?0:Lc(ic(e))}function On(e){return mt(e)?e:ws(e,!1,vc,Pc,Oi)}function Ci(e){return ws(e,!1,xc,Nc,xi)}function Wr(e){return ws(e,!0,Oc,Ic,Ti)}function ws(e,t,n,r,s){if(!le(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=Fc(e);if(o===0)return e;const i=s.get(e);if(i)return i;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function it(e){return mt(e)?it(e.__v_raw):!!(e&&e.__v_isReactive)}function mt(e){return!!(e&&e.__v_isReadonly)}function je(e){return!!(e&&e.__v_isShallow)}function fr(e){return e?!!e.__v_raw:!1}function Z(e){const t=e&&e.__v_raw;return t?Z(t):e}function Ss(e){return!ne(e,"__v_skip")&&Object.isExtensible(e)&&ci(e,"__v_skip",!0),e}const Ke=e=>le(e)?On(e):e,zt=e=>le(e)?Wr(e):e;function ce(e){return e?e.__v_isRef===!0:!1}function Lt(e){return Pi(e,!1)}function Mc(e){return Pi(e,!0)}function Pi(e,t){return ce(e)?e:new Uc(e,t)}class Uc{constructor(t,n){this.dep=new bs,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:Z(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,r=this.__v_isShallow||je(t)||mt(t);t=r?t:Z(t),vt(t,n)&&(this._rawValue=t,this._value=r?t:Ke(t),this.dep.trigger())}}function Ot(e){return ce(e)?e.value:e}const jc={get:(e,t,n)=>t==="__v_raw"?e:Ot(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return ce(s)&&!ce(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Ni(e){return it(e)?e:new Proxy(e,jc)}function Bc(e){const t=q(e)?new Array(e.length):{};for(const n in e)t[n]=Ii(e,n);return t}class Hc{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._raw=Z(t);let s=!0,o=t;if(!q(t)||!lr(String(n)))do s=!fr(o)||je(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=Ot(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&ce(this._raw[this._key])){const n=this._object[this._key];if(ce(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return bc(this._raw,this._key)}}class kc{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Vc(e,t,n){return ce(e)?e:W(e)?new kc(e):le(e)&&arguments.length>1?Ii(e,t,n):Lt(e)}function Ii(e,t,n){return new Hc(e,t,n)}class qc{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new bs(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=bn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&ie!==this)return yi(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 $c(e,t,n=!1){let r,s;return W(e)?r=e:(r=e.get,s=e.set),new qc(r,s,n)}const Fn={},Jn=new WeakMap;let Pt;function Kc(e,t=!1,n=Pt){if(n){let r=Jn.get(n);r||Jn.set(n,r=[]),r.push(e)}}function Wc(e,t,n=se){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:c}=n,u=P=>s?P:je(P)||s===!1||s===0?dt(P,1):dt(P);let a,f,p,m,g=!1,b=!1;if(ce(e)?(f=()=>e.value,g=je(e)):it(e)?(f=()=>u(e),g=!0):q(e)?(b=!0,g=e.some(P=>it(P)||je(P)),f=()=>e.map(P=>{if(ce(P))return P.value;if(it(P))return u(P);if(W(P))return c?c(P,2):P()})):W(e)?t?f=c?()=>c(e,2):e:f=()=>{if(p){ht();try{p()}finally{pt()}}const P=Pt;Pt=a;try{return c?c(e,3,[m]):e(m)}finally{Pt=P}}:f=ot,t&&s){const P=f,M=s===!0?1/0:s;f=()=>dt(P(),M)}const E=pi(),O=()=>{a.stop(),E&&E.active&&ds(E.effects,a)};if(o&&t){const P=t;t=(...M)=>{P(...M),O()}}let C=b?new Array(e.length).fill(Fn):Fn;const N=P=>{if(!(!(a.flags&1)||!a.dirty&&!P))if(t){const M=a.run();if(s||g||(b?M.some((X,k)=>vt(X,C[k])):vt(M,C))){p&&p();const X=Pt;Pt=a;try{const k=[M,C===Fn?void 0:b&&C[0]===Fn?[]:C,m];C=M,c?c(t,3,k):t(...k)}finally{Pt=X}}}else a.run()};return l&&l(N),a=new mi(f),a.scheduler=i?()=>i(N,!1):N,m=P=>Kc(P,!1,a),p=a.onStop=()=>{const P=Jn.get(a);if(P){if(c)c(P,4);else for(const M of P)M();Jn.delete(a)}},t?r?N(!0):C=a.run():i?i(N.bind(null,!0),!0):a.run(),O.pause=a.pause.bind(a),O.resume=a.resume.bind(a),O.stop=O,O}function dt(e,t=1/0,n){if(t<=0||!le(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,ce(e))dt(e.value,t,n);else if(q(e))for(let r=0;r{dt(r,t,n)});else if(ii(e)){for(const r in e)dt(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&dt(e[r],t,n)}return e}function xn(e,t,n,r){try{return r?e(...r):e()}catch(s){dr(s,t,n)}}function lt(e,t,n,r){if(W(e)){const s=xn(e,t,n,r);return s&&si(s)&&s.catch(o=>{dr(o,t,n)}),s}if(q(e)){const s=[];for(let o=0;o>>1,s=xe[r],o=wn(s);o=wn(n)?xe.push(e):xe.splice(zc(t),0,e),e.flags|=1,Li()}}function Li(){Xn||(Xn=Di.then(Mi))}function Jc(e){q(e)?Wt.push(...e):St&&e.id===-1?St.splice(kt+1,0,e):e.flags&1||(Wt.push(e),e.flags|=1),Li()}function $s(e,t,n=rt+1){for(;nwn(n)-wn(r));if(Wt.length=0,St){St.push(...t);return}for(St=t,kt=0;kte.id==null?e.flags&2?-1:1/0:e.id;function Mi(e){try{for(rt=0;rt{r._d&&tr(-1);const o=Qn(t);let i;try{i=e(...s)}finally{Qn(o),r._d&&tr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function Ah(e,t){if(we===null)return e;const n=gr(we),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&W(t)?t.call(r&&r.proxy):t}}function Qc(){return!!(dl()||Ft)}const Yc=Symbol.for("v-scx"),Zc=()=>ke(Yc);function fn(e,t,n){return ji(e,t,n)}function ji(e,t,n=se){const{immediate:r,deep:s,flush:o,once:i}=n,l=Se({},n),c=t&&r||!t&&o!=="post";let u;if(An){if(o==="sync"){const m=Zc();u=m.__watcherHandles||(m.__watcherHandles=[])}else if(!c){const m=()=>{};return m.stop=ot,m.resume=ot,m.pause=ot,m}}const a=Te;l.call=(m,g,b)=>lt(m,a,g,b);let f=!1;o==="post"?l.scheduler=m=>{ve(m,a&&a.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(m,g)=>{g?m():As(m)}),l.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,a&&(m.id=a.uid,m.i=a))};const p=Wc(e,t,l);return An&&(u?u.push(p):c&&p()),p}function ea(e,t,n){const r=this.proxy,s=de(e)?e.includes(".")?Bi(r,e):()=>r[e]:e.bind(r,r);let o;W(t)?o=t:(o=t.handler,n=t);const i=Tn(this),l=ji(s,o.bind(r),n);return i(),l}function Bi(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,dn=e=>e&&(e.disabled||e.disabled===""),Ks=e=>e&&(e.defer||e.defer===""),Ws=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Gs=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Gr=(e,t)=>{const n=e&&e.to;return de(n)?t?t(n):null:n},ki={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,u){const{mc:a,pc:f,pbc:p,o:{insert:m,querySelector:g,createText:b,createComment:E}}=u,O=dn(t.props);let{shapeFlag:C,children:N,dynamicChildren:P}=t;if(e==null){const M=t.el=b(""),X=t.anchor=b("");m(M,n,r),m(X,n,r);const k=(U,ee)=>{C&16&&a(N,U,ee,s,o,i,l,c)},V=()=>{const U=t.target=Gr(t.props,g),ee=Vi(U,t,b,m);U&&(i!=="svg"&&Ws(U)?i="svg":i!=="mathml"&&Gs(U)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(U),O||(k(U,ee),kn(t,!1)))};O&&(k(n,X),kn(t,!0)),Ks(t.props)?(t.el.__isMounted=!1,ve(()=>{V(),delete t.el.__isMounted},o)):V()}else{if(Ks(t.props)&&e.el.__isMounted===!1){ve(()=>{ki.process(e,t,n,r,s,o,i,l,c,u)},o);return}t.el=e.el,t.targetStart=e.targetStart;const M=t.anchor=e.anchor,X=t.target=e.target,k=t.targetAnchor=e.targetAnchor,V=dn(e.props),U=V?n:X,ee=V?M:k;if(i==="svg"||Ws(X)?i="svg":(i==="mathml"||Gs(X))&&(i="mathml"),P?(p(e.dynamicChildren,P,U,s,o,i,l),Cs(e,t,!0)):c||f(e,t,U,ee,s,o,i,l,!1),O)V?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Mn(t,n,M,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const ue=t.target=Gr(t.props,g);ue&&Mn(t,ue,null,u,0)}else V&&Mn(t,X,k,u,1);kn(t,O)}},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetStart:u,targetAnchor:a,target:f,props:p}=e;if(f&&(s(u),s(a)),o&&s(c),i&16){const m=o||!dn(p);for(let g=0;ghn(g,t&&(q(t)?t[b]:t),n,r,s));return}if(Gt(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&hn(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?gr(r.component):r.el,i=s?null:o,{i:l,r:c}=e,u=t&&t.r,a=l.refs===se?l.refs={}:l.refs,f=l.setupState,p=Z(f),m=f===se?ni:g=>ne(p,g);if(u!=null&&u!==c){if(zs(t),de(u))a[u]=null,m(u)&&(f[u]=null);else if(ce(u)){u.value=null;const g=t;g.k&&(a[g.k]=null)}}if(W(c))xn(c,l,12,[i,a]);else{const g=de(c),b=ce(c);if(g||b){const E=()=>{if(e.f){const O=g?m(c)?f[c]:a[c]:c.value;if(s)q(O)&&ds(O,o);else if(q(O))O.includes(o)||O.push(o);else if(g)a[c]=[o],m(c)&&(f[c]=a[c]);else{const C=[o];c.value=C,e.k&&(a[e.k]=C)}}else g?(a[c]=i,m(c)&&(f[c]=i)):b&&(c.value=i,e.k&&(a[e.k]=i))};if(i){const O=()=>{E(),Yn.delete(e)};O.id=-1,Yn.set(e,O),ve(O,n)}else zs(e),E()}}}function zs(e){const t=Yn.get(e);t&&(t.flags|=8,Yn.delete(e))}ar().requestIdleCallback;ar().cancelIdleCallback;const Gt=e=>!!e.type.__asyncLoader,$i=e=>e.type.__isKeepAlive;function sa(e,t){Ki(e,"a",t)}function oa(e,t){Ki(e,"da",t)}function Ki(e,t,n=Te){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(hr(t,r,n),n){let s=n.parent;for(;s&&s.parent;)$i(s.parent.vnode)&&ia(r,t,n,s),s=s.parent}}function ia(e,t,n,r){const s=hr(t,e,r,!0);Wi(()=>{ds(r[t],s)},n)}function hr(e,t,n=Te,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{ht();const l=Tn(n),c=lt(t,n,e,i);return l(),pt(),c});return r?s.unshift(o):s.push(o),o}}const _t=e=>(t,n=Te)=>{(!An||e==="sp")&&hr(e,(...r)=>t(...r),n)},la=_t("bm"),ca=_t("m"),aa=_t("bu"),ua=_t("u"),fa=_t("bum"),Wi=_t("um"),da=_t("sp"),ha=_t("rtg"),pa=_t("rtc");function ma(e,t=Te){hr("ec",e,t)}const ga=Symbol.for("v-ndc");function Oh(e,t,n,r){let s;const o=n,i=q(e);if(i||de(e)){const l=i&&it(e);let c=!1,u=!1;l&&(c=!je(e),u=mt(e),e=ur(e)),s=new Array(e.length);for(let a=0,f=e.length;at(l,c,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let c=0,u=l.length;c0;return er(),nr(Fe,null,[Ce("slot",n,r)],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),er();const i=o&&Gi(o(n)),l=n.key||i&&i.key,c=nr(Fe,{key:(l&&!yt(l)?l:`_${t}`)+(!i&&r?"_fb":"")},i||[],i&&e._===1?64:-2);return c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),o&&o._c&&(o._d=!0),c}function Gi(e){return e.some(t=>Rn(t)?!(t.type===gt||t.type===Fe&&!Gi(t.children)):!0)?e:null}const zr=e=>e?hl(e)?gr(e):zr(e.parent):null,pn=Se(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=>zr(e.parent),$root:e=>zr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ji(e),$forceUpdate:e=>e.f||(e.f=()=>{As(e.update)}),$nextTick:e=>e.n||(e.n=Rs.bind(e.proxy)),$watch:e=>ea.bind(e)}),Pr=(e,t)=>e!==se&&!e.__isScriptSetup&&ne(e,t),ya={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,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 r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(Pr(r,t))return i[t]=1,r[t];if(s!==se&&ne(s,t))return i[t]=2,s[t];if(ne(o,t))return i[t]=3,o[t];if(n!==se&&ne(n,t))return i[t]=4,n[t];Jr&&(i[t]=0)}}const u=pn[t];let a,f;if(u)return t==="$attrs"&&be(e.attrs,"get",""),u(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==se&&ne(n,t))return i[t]=4,n[t];if(f=c.config.globalProperties,ne(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return Pr(s,t)?(s[t]=n,!0):r!==se&&ne(r,t)?(r[t]=n,!0):ne(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:o,type:i}},l){let c;return!!(n[l]||e!==se&&l[0]!=="$"&&ne(e,l)||Pr(t,l)||ne(o,l)||ne(r,l)||ne(pn,l)||ne(s.config.globalProperties,l)||(c=i.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ne(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Js(e){return q(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Jr=!0;function _a(e){const t=Ji(e),n=e.proxy,r=e.ctx;Jr=!1,t.beforeCreate&&Xs(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:u,created:a,beforeMount:f,mounted:p,beforeUpdate:m,updated:g,activated:b,deactivated:E,beforeDestroy:O,beforeUnmount:C,destroyed:N,unmounted:P,render:M,renderTracked:X,renderTriggered:k,errorCaptured:V,serverPrefetch:U,expose:ee,inheritAttrs:ue,components:ye,directives:pe,filters:Re}=t;if(u&&ba(u,r,null),i)for(const K in i){const z=i[K];W(z)&&(r[K]=z.bind(n))}if(s){const K=s.call(n,n);le(K)&&(e.data=On(K))}if(Jr=!0,o)for(const K in o){const z=o[K],Be=W(z)?z.bind(n,n):W(z.get)?z.get.bind(n,n):ot,ze=!W(z)&&W(z.set)?z.set.bind(n):ot,me=Me({get:Be,set:ze});Object.defineProperty(r,K,{enumerable:!0,configurable:!0,get:()=>me.value,set:fe=>me.value=fe})}if(l)for(const K in l)zi(l[K],r,n,K);if(c){const K=W(c)?c.call(n):c;Reflect.ownKeys(K).forEach(z=>{Hn(z,K[z])})}a&&Xs(a,e,"c");function J(K,z){q(z)?z.forEach(Be=>K(Be.bind(n))):z&&K(z.bind(n))}if(J(la,f),J(ca,p),J(aa,m),J(ua,g),J(sa,b),J(oa,E),J(ma,V),J(pa,X),J(ha,k),J(fa,C),J(Wi,P),J(da,U),q(ee))if(ee.length){const K=e.exposed||(e.exposed={});ee.forEach(z=>{Object.defineProperty(K,z,{get:()=>n[z],set:Be=>n[z]=Be,enumerable:!0})})}else e.exposed||(e.exposed={});M&&e.render===ot&&(e.render=M),ue!=null&&(e.inheritAttrs=ue),ye&&(e.components=ye),pe&&(e.directives=pe),U&&qi(e)}function ba(e,t,n=ot){q(e)&&(e=Xr(e));for(const r in e){const s=e[r];let o;le(s)?"default"in s?o=ke(s.from||r,s.default,!0):o=ke(s.from||r):o=ke(s),ce(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function Xs(e,t,n){lt(q(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function zi(e,t,n,r){let s=r.includes(".")?Bi(n,r):()=>n[r];if(de(e)){const o=t[e];W(o)&&fn(s,o)}else if(W(e))fn(s,e.bind(n));else if(le(e))if(q(e))e.forEach(o=>zi(o,t,n,r));else{const o=W(e.handler)?e.handler.bind(n):t[e.handler];W(o)&&fn(s,o,e)}}function Ji(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>Zn(c,u,i,!0)),Zn(c,t,i)),le(t)&&o.set(t,c),c}function Zn(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&Zn(e,o,n,!0),s&&s.forEach(i=>Zn(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Ea[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Ea={data:Qs,props:Ys,emits:Ys,methods:ln,computed:ln,beforeCreate:Ae,created:Ae,beforeMount:Ae,mounted:Ae,beforeUpdate:Ae,updated:Ae,beforeDestroy:Ae,beforeUnmount:Ae,destroyed:Ae,unmounted:Ae,activated:Ae,deactivated:Ae,errorCaptured:Ae,serverPrefetch:Ae,components:ln,directives:ln,watch:Sa,provide:Qs,inject:wa};function Qs(e,t){return t?e?function(){return Se(W(e)?e.call(this,this):e,W(t)?t.call(this,this):t)}:t:e}function wa(e,t){return ln(Xr(e),Xr(t))}function Xr(e){if(q(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${xt(t)}Modifiers`]||e[`${jt(t)}Modifiers`];function Oa(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||se;let s=n;const o=t.startsWith("update:"),i=o&&va(r,t.slice(7));i&&(i.trim&&(s=n.map(a=>de(a)?a.trim():a)),i.number&&(s=n.map(hs)));let l,c=r[l=vr(t)]||r[l=vr(xt(t))];!c&&o&&(c=r[l=vr(jt(t))]),c&<(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,lt(u,e,6,s)}}const xa=new WeakMap;function Qi(e,t,n=!1){const r=n?xa:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!W(e)){const c=u=>{const a=Qi(u,t,!0);a&&(l=!0,Se(i,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(le(e)&&r.set(e,null),null):(q(o)?o.forEach(c=>i[c]=null):Se(i,o),le(e)&&r.set(e,i),i)}function pr(e,t){return!e||!or(t)?!1:(t=t.slice(2).replace(/Once$/,""),ne(e,t[0].toLowerCase()+t.slice(1))||ne(e,jt(t))||ne(e,t))}function Zs(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:a,props:f,data:p,setupState:m,ctx:g,inheritAttrs:b}=e,E=Qn(e);let O,C;try{if(n.shapeFlag&4){const P=s||r,M=P;O=st(u.call(M,P,a,f,m,p,g)),C=l}else{const P=t;O=st(P.length>1?P(f,{attrs:l,slots:i,emit:c}):P(f,null)),C=t.props?l:Ta(l)}}catch(P){mn.length=0,dr(P,e,1),O=Ce(gt)}let N=O;if(C&&b!==!1){const P=Object.keys(C),{shapeFlag:M}=N;P.length&&M&7&&(o&&P.some(fs)&&(C=Ca(C,o)),N=Jt(N,C,!1,!0))}return n.dirs&&(N=Jt(N,null,!1,!0),N.dirs=N.dirs?N.dirs.concat(n.dirs):n.dirs),n.transition&&vs(N,n.transition),O=N,Qn(E),O}const Ta=e=>{let t;for(const n in e)(n==="class"||n==="style"||or(n))&&((t||(t={}))[n]=e[n]);return t},Ca=(e,t)=>{const n={};for(const r in e)(!fs(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Pa(e,t,n){const{props:r,children:s,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 r?eo(r,i,u):!!i;if(c&8){const a=t.dynamicProps;for(let f=0;fObject.create(Yi),el=e=>Object.getPrototypeOf(e)===Yi;function Ia(e,t,n,r=!1){const s={},o=Zi();e.propsDefaults=Object.create(null),tl(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:Ci(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function Da(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=Z(s),[c]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const a=e.vnode.dynamicProps;for(let f=0;f{c=!0;const[p,m]=nl(f,t,!0);Se(i,p),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!c)return le(e)&&r.set(e,$t),$t;if(q(o))for(let a=0;ae==="_"||e==="_ctx"||e==="$stable",Ts=e=>q(e)?e.map(st):[st(e)],Fa=(e,t,n)=>{if(t._n)return t;const r=Xc((...s)=>Ts(t(...s)),n);return r._c=!1,r},rl=(e,t,n)=>{const r=e._ctx;for(const s in e){if(xs(s))continue;const o=e[s];if(W(o))t[s]=Fa(s,o,r);else if(o!=null){const i=Ts(o);t[s]=()=>i}}},sl=(e,t)=>{const n=Ts(t);e.slots.default=()=>n},ol=(e,t,n)=>{for(const r in t)(n||!xs(r))&&(e[r]=t[r])},Ma=(e,t,n)=>{const r=e.slots=Zi();if(e.vnode.shapeFlag&32){const s=t._;s?(ol(r,t,n),n&&ci(r,"_",s,!0)):rl(t,r)}else t&&sl(e,t)},Ua=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=se;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:ol(s,t,n):(o=!t.$stable,rl(t,s)),i=t}else t&&(sl(e,t),i={default:1});if(o)for(const l in s)!xs(l)&&i[l]==null&&delete s[l]},ve=Va;function ja(e){return Ba(e)}function Ba(e,t){const n=ar();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:a,parentNode:f,nextSibling:p,setScopeId:m=ot,insertStaticContent:g}=e,b=(d,h,y,w=null,A=null,S=null,I=void 0,T=null,x=!!h.dynamicChildren)=>{if(d===h)return;d&&!rn(d,h)&&(w=R(d),fe(d,A,S,!0),d=null),h.patchFlag===-2&&(x=!1,h.dynamicChildren=null);const{type:v,ref:H,shapeFlag:L}=h;switch(v){case mr:E(d,h,y,w);break;case gt:O(d,h,y,w);break;case Vn:d==null&&C(h,y,w,I);break;case Fe:ye(d,h,y,w,A,S,I,T,x);break;default:L&1?M(d,h,y,w,A,S,I,T,x):L&6?pe(d,h,y,w,A,S,I,T,x):(L&64||L&128)&&v.process(d,h,y,w,A,S,I,T,x,j)}H!=null&&A?hn(H,d&&d.ref,S,h||d,!h):H==null&&d&&d.ref!=null&&hn(d.ref,null,S,d,!0)},E=(d,h,y,w)=>{if(d==null)r(h.el=l(h.children),y,w);else{const A=h.el=d.el;h.children!==d.children&&u(A,h.children)}},O=(d,h,y,w)=>{d==null?r(h.el=c(h.children||""),y,w):h.el=d.el},C=(d,h,y,w)=>{[d.el,d.anchor]=g(d.children,h,y,w,d.el,d.anchor)},N=({el:d,anchor:h},y,w)=>{let A;for(;d&&d!==h;)A=p(d),r(d,y,w),d=A;r(h,y,w)},P=({el:d,anchor:h})=>{let y;for(;d&&d!==h;)y=p(d),s(d),d=y;s(h)},M=(d,h,y,w,A,S,I,T,x)=>{if(h.type==="svg"?I="svg":h.type==="math"&&(I="mathml"),d==null)X(h,y,w,A,S,I,T,x);else{const v=d.el&&d.el._isVueCE?d.el:null;try{v&&v._beginPatch(),U(d,h,A,S,I,T,x)}finally{v&&v._endPatch()}}},X=(d,h,y,w,A,S,I,T)=>{let x,v;const{props:H,shapeFlag:L,transition:B,dirs:$}=d;if(x=d.el=i(d.type,S,H&&H.is,H),L&8?a(x,d.children):L&16&&V(d.children,x,null,w,A,Nr(d,S),I,T),$&&Tt(d,null,w,"created"),k(x,d,d.scopeId,I,w),H){for(const oe in H)oe!=="value"&&!cn(oe)&&o(x,oe,null,H[oe],S,w);"value"in H&&o(x,"value",null,H.value,S),(v=H.onVnodeBeforeMount)&&et(v,w,d)}$&&Tt(d,null,w,"beforeMount");const Y=Ha(A,B);Y&&B.beforeEnter(x),r(x,h,y),((v=H&&H.onVnodeMounted)||Y||$)&&ve(()=>{v&&et(v,w,d),Y&&B.enter(x),$&&Tt(d,null,w,"mounted")},A)},k=(d,h,y,w,A)=>{if(y&&m(d,y),w)for(let S=0;S{for(let v=x;v{const T=h.el=d.el;let{patchFlag:x,dynamicChildren:v,dirs:H}=h;x|=d.patchFlag&16;const L=d.props||se,B=h.props||se;let $;if(y&&Ct(y,!1),($=B.onVnodeBeforeUpdate)&&et($,y,h,d),H&&Tt(h,d,y,"beforeUpdate"),y&&Ct(y,!0),(L.innerHTML&&B.innerHTML==null||L.textContent&&B.textContent==null)&&a(T,""),v?ee(d.dynamicChildren,v,T,y,w,Nr(h,A),S):I||z(d,h,T,null,y,w,Nr(h,A),S,!1),x>0){if(x&16)ue(T,L,B,y,A);else if(x&2&&L.class!==B.class&&o(T,"class",null,B.class,A),x&4&&o(T,"style",L.style,B.style,A),x&8){const Y=h.dynamicProps;for(let oe=0;oe{$&&et($,y,h,d),H&&Tt(h,d,y,"updated")},w)},ee=(d,h,y,w,A,S,I)=>{for(let T=0;T{if(h!==y){if(h!==se)for(const S in h)!cn(S)&&!(S in y)&&o(d,S,h[S],null,A,w);for(const S in y){if(cn(S))continue;const I=y[S],T=h[S];I!==T&&S!=="value"&&o(d,S,T,I,A,w)}"value"in y&&o(d,"value",h.value,y.value,A)}},ye=(d,h,y,w,A,S,I,T,x)=>{const v=h.el=d?d.el:l(""),H=h.anchor=d?d.anchor:l("");let{patchFlag:L,dynamicChildren:B,slotScopeIds:$}=h;$&&(T=T?T.concat($):$),d==null?(r(v,y,w),r(H,y,w),V(h.children||[],y,H,A,S,I,T,x)):L>0&&L&64&&B&&d.dynamicChildren&&d.dynamicChildren.length===B.length?(ee(d.dynamicChildren,B,y,A,S,I,T),(h.key!=null||A&&h===A.subTree)&&Cs(d,h,!0)):z(d,h,y,H,A,S,I,T,x)},pe=(d,h,y,w,A,S,I,T,x)=>{h.slotScopeIds=T,d==null?h.shapeFlag&512?A.ctx.activate(h,y,w,I,x):Re(h,y,w,A,S,I,x):Ve(d,h,x)},Re=(d,h,y,w,A,S,I)=>{const T=d.component=Xa(d,w,A);if($i(d)&&(T.ctx.renderer=j),Qa(T,!1,I),T.asyncDep){if(A&&A.registerDep(T,J,I),!d.el){const x=T.subTree=Ce(gt);O(null,x,h,y),d.placeholder=x.el}}else J(T,d,h,y,A,S,I)},Ve=(d,h,y)=>{const w=h.component=d.component;if(Pa(d,h,y))if(w.asyncDep&&!w.asyncResolved){K(w,h,y);return}else w.next=h,w.update();else h.el=d.el,w.vnode=h},J=(d,h,y,w,A,S,I)=>{const T=()=>{if(d.isMounted){let{next:L,bu:B,u:$,parent:Y,vnode:oe}=d;{const Ye=il(d);if(Ye){L&&(L.el=oe.el,K(d,L,I)),Ye.asyncDep.then(()=>{d.isUnmounted||T()});return}}let re=L,Pe;Ct(d,!1),L?(L.el=oe.el,K(d,L,I)):L=oe,B&&Bn(B),(Pe=L.props&&L.props.onVnodeBeforeUpdate)&&et(Pe,Y,L,oe),Ct(d,!0);const Ne=Zs(d),Qe=d.subTree;d.subTree=Ne,b(Qe,Ne,f(Qe.el),R(Qe),d,A,S),L.el=Ne.el,re===null&&Na(d,Ne.el),$&&ve($,A),(Pe=L.props&&L.props.onVnodeUpdated)&&ve(()=>et(Pe,Y,L,oe),A)}else{let L;const{el:B,props:$}=h,{bm:Y,m:oe,parent:re,root:Pe,type:Ne}=d,Qe=Gt(h);Ct(d,!1),Y&&Bn(Y),!Qe&&(L=$&&$.onVnodeBeforeMount)&&et(L,re,h),Ct(d,!0);{Pe.ce&&Pe.ce._def.shadowRoot!==!1&&Pe.ce._injectChildStyle(Ne);const Ye=d.subTree=Zs(d);b(null,Ye,y,w,d,A,S),h.el=Ye.el}if(oe&&ve(oe,A),!Qe&&(L=$&&$.onVnodeMounted)){const Ye=h;ve(()=>et(L,re,Ye),A)}(h.shapeFlag&256||re&&Gt(re.vnode)&&re.vnode.shapeFlag&256)&&d.a&&ve(d.a,A),d.isMounted=!0,h=y=w=null}};d.scope.on();const x=d.effect=new mi(T);d.scope.off();const v=d.update=x.run.bind(x),H=d.job=x.runIfDirty.bind(x);H.i=d,H.id=d.uid,x.scheduler=()=>As(H),Ct(d,!0),v()},K=(d,h,y)=>{h.component=d;const w=d.vnode.props;d.vnode=h,d.next=null,Da(d,h.props,w,y),Ua(d,h.children,y),ht(),$s(d),pt()},z=(d,h,y,w,A,S,I,T,x=!1)=>{const v=d&&d.children,H=d?d.shapeFlag:0,L=h.children,{patchFlag:B,shapeFlag:$}=h;if(B>0){if(B&128){ze(v,L,y,w,A,S,I,T,x);return}else if(B&256){Be(v,L,y,w,A,S,I,T,x);return}}$&8?(H&16&&He(v,A,S),L!==v&&a(y,L)):H&16?$&16?ze(v,L,y,w,A,S,I,T,x):He(v,A,S,!0):(H&8&&a(y,""),$&16&&V(L,y,w,A,S,I,T,x))},Be=(d,h,y,w,A,S,I,T,x)=>{d=d||$t,h=h||$t;const v=d.length,H=h.length,L=Math.min(v,H);let B;for(B=0;BH?He(d,A,S,!0,!1,L):V(h,y,w,A,S,I,T,x,L)},ze=(d,h,y,w,A,S,I,T,x)=>{let v=0;const H=h.length;let L=d.length-1,B=H-1;for(;v<=L&&v<=B;){const $=d[v],Y=h[v]=x?Rt(h[v]):st(h[v]);if(rn($,Y))b($,Y,y,null,A,S,I,T,x);else break;v++}for(;v<=L&&v<=B;){const $=d[L],Y=h[B]=x?Rt(h[B]):st(h[B]);if(rn($,Y))b($,Y,y,null,A,S,I,T,x);else break;L--,B--}if(v>L){if(v<=B){const $=B+1,Y=$B)for(;v<=L;)fe(d[v],A,S,!0),v++;else{const $=v,Y=v,oe=new Map;for(v=Y;v<=B;v++){const Le=h[v]=x?Rt(h[v]):st(h[v]);Le.key!=null&&oe.set(Le.key,v)}let re,Pe=0;const Ne=B-Y+1;let Qe=!1,Ye=0;const tn=new Array(Ne);for(v=0;v=Ne){fe(Le,A,S,!0);continue}let Ze;if(Le.key!=null)Ze=oe.get(Le.key);else for(re=Y;re<=B;re++)if(tn[re-Y]===0&&rn(Le,h[re])){Ze=re;break}Ze===void 0?fe(Le,A,S,!0):(tn[Ze-Y]=v+1,Ze>=Ye?Ye=Ze:Qe=!0,b(Le,h[Ze],y,null,A,S,I,T,x),Pe++)}const js=Qe?ka(tn):$t;for(re=js.length-1,v=Ne-1;v>=0;v--){const Le=Y+v,Ze=h[Le],Bs=h[Le+1],Hs=Le+1{const{el:S,type:I,transition:T,children:x,shapeFlag:v}=d;if(v&6){me(d.component.subTree,h,y,w);return}if(v&128){d.suspense.move(h,y,w);return}if(v&64){I.move(d,h,y,j);return}if(I===Fe){r(S,h,y);for(let L=0;LT.enter(S),A);else{const{leave:L,delayLeave:B,afterLeave:$}=T,Y=()=>{d.ctx.isUnmounted?s(S):r(S,h,y)},oe=()=>{S._isLeaving&&S[ra](!0),L(S,()=>{Y(),$&&$()})};B?B(S,Y,oe):oe()}else r(S,h,y)},fe=(d,h,y,w=!1,A=!1)=>{const{type:S,props:I,ref:T,children:x,dynamicChildren:v,shapeFlag:H,patchFlag:L,dirs:B,cacheIndex:$}=d;if(L===-2&&(A=!1),T!=null&&(ht(),hn(T,null,y,d,!0),pt()),$!=null&&(h.renderCache[$]=void 0),H&256){h.ctx.deactivate(d);return}const Y=H&1&&B,oe=!Gt(d);let re;if(oe&&(re=I&&I.onVnodeBeforeUnmount)&&et(re,h,d),H&6)Xe(d.component,y,w);else{if(H&128){d.suspense.unmount(y,w);return}Y&&Tt(d,null,h,"beforeUnmount"),H&64?d.type.remove(d,h,y,j,w):v&&!v.hasOnce&&(S!==Fe||L>0&&L&64)?He(v,h,y,!1,!0):(S===Fe&&L&384||!A&&H&16)&&He(x,h,y),w&&Je(d)}(oe&&(re=I&&I.onVnodeUnmounted)||Y)&&ve(()=>{re&&et(re,h,d),Y&&Tt(d,null,h,"unmounted")},y)},Je=d=>{const{type:h,el:y,anchor:w,transition:A}=d;if(h===Fe){qe(y,w);return}if(h===Vn){P(d);return}const S=()=>{s(y),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(d.shapeFlag&1&&A&&!A.persisted){const{leave:I,delayLeave:T}=A,x=()=>I(y,S);T?T(d.el,S,x):x()}else S()},qe=(d,h)=>{let y;for(;d!==h;)y=p(d),s(d),d=y;s(h)},Xe=(d,h,y)=>{const{bum:w,scope:A,job:S,subTree:I,um:T,m:x,a:v}=d;no(x),no(v),w&&Bn(w),A.stop(),S&&(S.flags|=8,fe(I,d,h,y)),T&&ve(T,h),ve(()=>{d.isUnmounted=!0},h)},He=(d,h,y,w=!1,A=!1,S=0)=>{for(let I=S;I{if(d.shapeFlag&6)return R(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const h=p(d.anchor||d.el),y=h&&h[Hi];return y?p(y):h};let F=!1;const D=(d,h,y)=>{let w;d==null?h._vnode&&(fe(h._vnode,null,null,!0),w=h._vnode.component):b(h._vnode||null,d,h,null,null,null,y),h._vnode=d,F||(F=!0,$s(w),Fi(),F=!1)},j={p:b,um:fe,m:me,r:Je,mt:Re,mc:V,pc:z,pbc:ee,n:R,o:e};return{render:D,hydrate:void 0,createApp:Aa(D)}}function Nr({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 Ct({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Ha(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Cs(e,t,n=!1){const r=e.children,s=t.children;if(q(r)&&q(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function il(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:il(t)}function no(e){if(e)for(let t=0;te.__isSuspense;function Va(e,t){t&&t.pendingBranch?q(e)?t.effects.push(...e):t.effects.push(e):Jc(e)}const Fe=Symbol.for("v-fgt"),mr=Symbol.for("v-txt"),gt=Symbol.for("v-cmt"),Vn=Symbol.for("v-stc"),mn=[];let Ue=null;function er(e=!1){mn.push(Ue=e?null:[])}function qa(){mn.pop(),Ue=mn[mn.length-1]||null}let Sn=1;function tr(e,t=!1){Sn+=e,e<0&&Ue&&t&&(Ue.hasOnce=!0)}function al(e){return e.dynamicChildren=Sn>0?Ue||$t:null,qa(),Sn>0&&Ue&&Ue.push(e),e}function Th(e,t,n,r,s,o){return al(fl(e,t,n,r,s,o,!0))}function nr(e,t,n,r,s){return al(Ce(e,t,n,r,s,!0))}function Rn(e){return e?e.__v_isVNode===!0:!1}function rn(e,t){return e.type===t.type&&e.key===t.key}const ul=({key:e})=>e??null,qn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?de(e)||ce(e)||W(e)?{i:we,r:e,k:t,f:!!n}:e:null);function fl(e,t=null,n=null,r=0,s=null,o=e===Fe?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ul(t),ref:t&&qn(t),scopeId:Ui,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:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:we};return l?(Ps(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=de(n)?8:16),Sn>0&&!i&&Ue&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Ue.push(c),c}const Ce=$a;function $a(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===ga)&&(e=gt),Rn(e)){const l=Jt(e,t,!0);return n&&Ps(l,n),Sn>0&&!o&&Ue&&(l.shapeFlag&6?Ue[Ue.indexOf(e)]=l:Ue.push(l)),l.patchFlag=-2,l}if(tu(e)&&(e=e.__vccOpts),t){t=Ka(t);let{class:l,style:c}=t;l&&!de(l)&&(t.class=ms(l)),le(c)&&(fr(c)&&!q(c)&&(c=Se({},c)),t.style=ps(c))}const i=de(e)?1:cl(e)?128:ta(e)?64:le(e)?4:W(e)?2:0;return fl(e,t,n,r,s,i,o,!0)}function Ka(e){return e?fr(e)||el(e)?Se({},e):e:null}function Jt(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?Ga(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&ul(u),ref:t&&t.ref?n&&o?q(o)?o.concat(qn(t)):[o,qn(t)]:qn(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!==Fe?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&&Jt(e.ssContent),ssFallback:e.ssFallback&&Jt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&vs(a,c.clone(a)),a}function Wa(e=" ",t=0){return Ce(mr,null,e,t)}function Ch(e,t){const n=Ce(Vn,null,e);return n.staticCount=t,n}function Ph(e="",t=!1){return t?(er(),nr(gt,null,e)):Ce(gt,null,e)}function st(e){return e==null||typeof e=="boolean"?Ce(gt):q(e)?Ce(Fe,null,e.slice()):Rn(e)?Rt(e):Ce(mr,null,String(e))}function Rt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Jt(e)}function Ps(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(q(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Ps(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!el(t)?t._ctx=we:s===3&&we&&(we.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else W(t)?(t={default:t,_ctx:we},n=32):(t=String(t),r&64?(n=16,t=[Wa(t)]):n=8);e.children=t,e.shapeFlag|=n}function Ga(...e){const t={};for(let n=0;nTe||we;let rr,Yr;{const e=ar(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};rr=t("__VUE_INSTANCE_SETTERS__",n=>Te=n),Yr=t("__VUE_SSR_SETTERS__",n=>An=n)}const Tn=e=>{const t=Te;return rr(e),e.scope.on(),()=>{e.scope.off(),rr(t)}},ro=()=>{Te&&Te.scope.off(),rr(null)};function hl(e){return e.vnode.shapeFlag&4}let An=!1;function Qa(e,t=!1,n=!1){t&&Yr(t);const{props:r,children:s}=e.vnode,o=hl(e);Ia(e,r,o,t),Ma(e,s,n||t);const i=o?Ya(e,t):void 0;return t&&Yr(!1),i}function Ya(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,ya);const{setup:r}=n;if(r){ht();const s=e.setupContext=r.length>1?eu(e):null,o=Tn(e),i=xn(r,e,0,[e.props,s]),l=si(i);if(pt(),o(),(l||e.sp)&&!Gt(e)&&qi(e),l){if(i.then(ro,ro),t)return i.then(c=>{so(e,c)}).catch(c=>{dr(c,e,0)});e.asyncDep=i}else so(e,i)}else pl(e)}function so(e,t,n){W(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:le(t)&&(e.setupState=Ni(t)),pl(e)}function pl(e,t,n){const r=e.type;e.render||(e.render=r.render||ot);{const s=Tn(e);ht();try{_a(e)}finally{pt(),s()}}}const Za={get(e,t){return be(e,"get",""),e[t]}};function eu(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Za),slots:e.slots,emit:e.emit,expose:t}}function gr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ni(Ss(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in pn)return pn[n](e)},has(t,n){return n in t||n in pn}})):e.proxy}function tu(e){return W(e)&&"__vccOpts"in e}const Me=(e,t)=>$c(e,t,An);function ml(e,t,n){try{tr(-1);const r=arguments.length;return r===2?le(t)&&!q(t)?Rn(t)?Ce(e,null,[t]):Ce(e,t):Ce(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Rn(n)&&(n=[n]),Ce(e,t,n))}finally{tr(1)}}const nu="3.5.26";let Zr;const oo=typeof window<"u"&&window.trustedTypes;if(oo)try{Zr=oo.createPolicy("vue",{createHTML:e=>e})}catch{}const gl=Zr?e=>Zr.createHTML(e):e=>e,ru="http://www.w3.org/2000/svg",su="http://www.w3.org/1998/Math/MathML",ut=typeof document<"u"?document:null,io=ut&&ut.createElement("template"),ou={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?ut.createElementNS(ru,e):t==="mathml"?ut.createElementNS(su,e):n?ut.createElement(e,{is:n}):ut.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>ut.createTextNode(e),createComment:e=>ut.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ut.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{io.innerHTML=gl(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=io.content;if(r==="svg"||r==="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]}},iu=Symbol("_vtc");function lu(e,t,n){const r=e[iu];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const lo=Symbol("_vod"),cu=Symbol("_vsh"),au=Symbol(""),uu=/(?:^|;)\s*display\s*:/;function fu(e,t,n){const r=e.style,s=de(n);let o=!1;if(n&&!s){if(t)if(de(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&$n(r,l,"")}else for(const i in t)n[i]==null&&$n(r,i,"");for(const i in n)i==="display"&&(o=!0),$n(r,i,n[i])}else if(s){if(t!==n){const i=r[au];i&&(n+=";"+i),r.cssText=n,o=uu.test(n)}}else t&&e.removeAttribute("style");lo in e&&(e[lo]=o?r.display:"",e[cu]&&(r.display="none"))}const co=/\s*!important$/;function $n(e,t,n){if(q(n))n.forEach(r=>$n(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=du(e,t);co.test(n)?e.setProperty(jt(r),n.replace(co,""),"important"):e[r]=n}}const ao=["Webkit","Moz","ms"],Ir={};function du(e,t){const n=Ir[t];if(n)return n;let r=xt(t);if(r!=="filter"&&r in e)return Ir[t]=r;r=li(r);for(let s=0;sDr||(gu.then(()=>Dr=0),Dr=Date.now());function _u(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;lt(bu(r,n.value),t,5,[r])};return n.value=e,n.attached=yu(),n}function bu(e,t){if(q(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const go=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Eu=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?lu(e,r,i):t==="style"?fu(e,n,r):or(t)?fs(t)||pu(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):wu(e,t,r,i))?(ho(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&fo(e,t,r,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!de(r))?ho(e,xt(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),fo(e,t,r,i))};function wu(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&go(t)&&W(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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return go(t)&&de(n)?!1:t in e}const yo=e=>{const t=e.props["onUpdate:modelValue"]||!1;return q(t)?n=>Bn(t,n):t};function Su(e){e.target.composing=!0}function _o(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Lr=Symbol("_assign");function bo(e,t,n){return t&&(e=e.trim()),n&&(e=hs(e)),e}const Nh={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Lr]=yo(s);const o=r||s.props&&s.props.type==="number";Vt(e,t?"change":"input",i=>{i.target.composing||e[Lr](bo(e.value,n,o))}),(n||o)&&Vt(e,"change",()=>{e.value=bo(e.value,n,o)}),t||(Vt(e,"compositionstart",Su),Vt(e,"compositionend",_o),Vt(e,"change",_o))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Lr]=yo(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?hs(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},Ru=["ctrl","shift","alt","meta"],Au={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Ru.some(n=>e[`${n}Key`]&&!t.includes(n))},Ih=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const t=Ou().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Cu(r);if(!s)return;const o=t._component;!W(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,Tu(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t});function Tu(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Cu(e){return de(e)?document.querySelector(e):e}let yl;const yr=e=>yl=e,_l=Symbol();function es(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var gn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(gn||(gn={}));function Pu(){const e=hi(!0),t=e.run(()=>Lt({}));let n=[],r=[];const s=Ss({install(o){yr(s),s._a=o,o.provide(_l,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const bl=()=>{};function wo(e,t,n,r=bl){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&pi()&&gc(s),s}function Ht(e,...t){e.forEach(n=>{n(...t)})}const Nu=e=>e(),So=Symbol(),Fr=Symbol();function ts(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];es(s)&&es(r)&&e.hasOwnProperty(n)&&!ce(r)&&!it(r)?e[n]=ts(s,r):e[n]=r}return e}const Iu=Symbol();function Du(e){return!es(e)||!Object.prototype.hasOwnProperty.call(e,Iu)}const{assign:Et}=Object;function Lu(e){return!!(ce(e)&&e.effect)}function Fu(e,t,n,r){const{state:s,actions:o,getters:i}=t,l=n.state.value[e];let c;function u(){l||(n.state.value[e]=s?s():{});const a=Bc(n.state.value[e]);return Et(a,o,Object.keys(i||{}).reduce((f,p)=>(f[p]=Ss(Me(()=>{yr(n);const m=n._s.get(e);return i[p].call(m,m)})),f),{}))}return c=El(e,u,t,n,r,!0),c}function El(e,t,n={},r,s,o){let i;const l=Et({actions:{}},n),c={deep:!0};let u,a,f=new Set,p=new Set,m;const g=r.state.value[e];!o&&!g&&(r.state.value[e]={}),Lt({});let b;function E(V){let U;u=a=!1,typeof V=="function"?(V(r.state.value[e]),U={type:gn.patchFunction,storeId:e,events:m}):(ts(r.state.value[e],V),U={type:gn.patchObject,payload:V,storeId:e,events:m});const ee=b=Symbol();Rs().then(()=>{b===ee&&(u=!0)}),a=!0,Ht(f,U,r.state.value[e])}const O=o?function(){const{state:U}=n,ee=U?U():{};this.$patch(ue=>{Et(ue,ee)})}:bl;function C(){i.stop(),f.clear(),p.clear(),r._s.delete(e)}const N=(V,U="")=>{if(So in V)return V[Fr]=U,V;const ee=function(){yr(r);const ue=Array.from(arguments),ye=new Set,pe=new Set;function Re(K){ye.add(K)}function Ve(K){pe.add(K)}Ht(p,{args:ue,name:ee[Fr],store:M,after:Re,onError:Ve});let J;try{J=V.apply(this&&this.$id===e?this:M,ue)}catch(K){throw Ht(pe,K),K}return J instanceof Promise?J.then(K=>(Ht(ye,K),K)).catch(K=>(Ht(pe,K),Promise.reject(K))):(Ht(ye,J),J)};return ee[So]=!0,ee[Fr]=U,ee},P={_p:r,$id:e,$onAction:wo.bind(null,p),$patch:E,$reset:O,$subscribe(V,U={}){const ee=wo(f,V,U.detached,()=>ue()),ue=i.run(()=>fn(()=>r.state.value[e],ye=>{(U.flush==="sync"?a:u)&&V({storeId:e,type:gn.direct,events:m},ye)},Et({},c,U)));return ee},$dispose:C},M=On(P);r._s.set(e,M);const k=(r._a&&r._a.runWithContext||Nu)(()=>r._e.run(()=>(i=hi()).run(()=>t({action:N}))));for(const V in k){const U=k[V];if(ce(U)&&!Lu(U)||it(U))o||(g&&Du(U)&&(ce(U)?U.value=g[V]:ts(U,g[V])),r.state.value[e][V]=U);else if(typeof U=="function"){const ee=N(U,V);k[V]=ee,l.actions[V]=U}}return Et(M,k),Et(Z(M),k),Object.defineProperty(M,"$state",{get:()=>r.state.value[e],set:V=>{E(U=>{Et(U,V)})}}),r._p.forEach(V=>{Et(M,i.run(()=>V({store:M,app:r._a,pinia:r,options:l})))}),g&&o&&n.hydrate&&n.hydrate(M.$state,g),u=!0,a=!0,M}function Mu(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,l){const c=Qc();return i=i||(c?ke(_l,null):null),i&&yr(i),i=yl,i._s.has(e)||(s?El(e,t,r,i):Fu(e,r,i)),i._s.get(e)}return o.$id=e,o}function Dh(e){const t=Z(e),n={};for(const r in t){const s=t[r];s.effect?n[r]=Me({get:()=>e[r],set(o){e[r]=o}}):(ce(s)||it(s))&&(n[r]=Vc(e,r))}return n}const Uu="modulepreload",ju=function(e){return"/"+e},Ro={},tt=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let c=function(u){return Promise.all(u.map(a=>Promise.resolve(a).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=c(n.map(u=>{if(u=ju(u),u in Ro)return;Ro[u]=!0;const a=u.endsWith(".css"),f=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const p=document.createElement("link");if(p.rel=a?"stylesheet":Uu,a||(p.as="script"),p.crossOrigin="",p.href=u,l&&p.setAttribute("nonce",l),document.head.appendChild(p),a)return new Promise((m,g)=>{p.addEventListener("load",m),p.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})};const qt=typeof document<"u";function wl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Bu(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&wl(e.default)}const te=Object.assign;function Mr(e,t){const n={};for(const r in t){const s=t[r];n[r]=We(s)?s.map(e):e(s)}return n}const yn=()=>{},We=Array.isArray;function Ao(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const Sl=/#/g,Hu=/&/g,ku=/\//g,Vu=/=/g,qu=/\?/g,Rl=/\+/g,$u=/%5B/g,Ku=/%5D/g,Al=/%5E/g,Wu=/%60/g,vl=/%7B/g,Gu=/%7C/g,Ol=/%7D/g,zu=/%20/g;function Ns(e){return e==null?"":encodeURI(""+e).replace(Gu,"|").replace($u,"[").replace(Ku,"]")}function Ju(e){return Ns(e).replace(vl,"{").replace(Ol,"}").replace(Al,"^")}function ns(e){return Ns(e).replace(Rl,"%2B").replace(zu,"+").replace(Sl,"%23").replace(Hu,"%26").replace(Wu,"`").replace(vl,"{").replace(Ol,"}").replace(Al,"^")}function Xu(e){return ns(e).replace(Vu,"%3D")}function Qu(e){return Ns(e).replace(Sl,"%23").replace(qu,"%3F")}function Yu(e){return Qu(e).replace(ku,"%2F")}function vn(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Zu=/\/$/,ef=e=>e.replace(Zu,"");function Ur(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return c=l>=0&&c>l?-1:c,c>=0&&(r=t.slice(0,c),o=t.slice(c,l>0?l:t.length),s=e(o.slice(1))),l>=0&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=sf(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:vn(i)}}function tf(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function vo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function nf(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&Xt(t.matched[r],n.matched[s])&&xl(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Xt(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function xl(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!rf(e[n],t[n]))return!1;return!0}function rf(e,t){return We(e)?Oo(e,t):We(t)?Oo(t,e):e?.valueOf()===t?.valueOf()}function Oo(e,t){return We(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function sf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const bt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let rs=(function(e){return e.pop="pop",e.push="push",e})({}),jr=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function of(e){if(!e)if(qt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),ef(e)}const lf=/^[^#]+#/;function cf(e,t){return e.replace(lf,"#")+t}function af(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const _r=()=>({left:window.scrollX,top:window.scrollY});function uf(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=af(s,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 xo(e,t){return(history.state?history.state.position-t:-1)+e}const ss=new Map;function ff(e,t){ss.set(e,t)}function df(e){const t=ss.get(e);return ss.delete(e),t}function hf(e){return typeof e=="string"||e&&typeof e=="object"}function Tl(e){return typeof e=="string"||typeof e=="symbol"}let ae=(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 Cl=Symbol("");ae.MATCHER_NOT_FOUND+"",ae.NAVIGATION_GUARD_REDIRECT+"",ae.NAVIGATION_ABORTED+"",ae.NAVIGATION_CANCELLED+"",ae.NAVIGATION_DUPLICATED+"";function Qt(e,t){return te(new Error,{type:e,[Cl]:!0},t)}function at(e,t){return e instanceof Error&&Cl in e&&(t==null||!!(e.type&t))}const pf=["params","query","hash"];function mf(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of pf)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function gf(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&ns(s)):[r&&ns(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function yf(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=We(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const _f=Symbol(""),Co=Symbol(""),br=Symbol(""),Is=Symbol(""),os=Symbol("");function sn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function At(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,c)=>{const u=p=>{p===!1?c(Qt(ae.NAVIGATION_ABORTED,{from:n,to:t})):p instanceof Error?c(p):hf(p)?c(Qt(ae.NAVIGATION_GUARD_REDIRECT,{from:t,to:p})):(i&&r.enterCallbacks[s]===i&&typeof p=="function"&&i.push(p),l())},a=o(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(a);e.length<3&&(f=f.then(u)),f.catch(p=>c(p))})}function Br(e,t,n,r,s=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(wl(c)){const u=(c.__vccOpts||c)[t];u&&o.push(At(u,n,r,i,l,s))}else{let u=c();o.push(()=>u.then(a=>{if(!a)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=Bu(a)?a.default:a;i.mods[l]=a,i.components[l]=f;const p=(f.__vccOpts||f)[t];return p&&At(p,n,r,i,l,s)()}))}}return o}function bf(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;iXt(u,l))?r.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(u=>Xt(u,c))||s.push(c))}return[n,r,s]}let Ef=()=>location.protocol+"//"+location.host;function Pl(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(i);return l[0]!=="/"&&(l="/"+l),vo(l,"")}return vo(n,e)+r+s}function wf(e,t,n,r){let s=[],o=[],i=null;const l=({state:p})=>{const m=Pl(e,location),g=n.value,b=t.value;let E=0;if(p){if(n.value=m,t.value=p,i&&i===g){i=null;return}E=b?p.position-b.position:0}else r(m);s.forEach(O=>{O(n.value,g,{delta:E,type:rs.pop,direction:E?E>0?jr.forward:jr.back:jr.unknown})})};function c(){i=n.value}function u(p){s.push(p);const m=()=>{const g=s.indexOf(p);g>-1&&s.splice(g,1)};return o.push(m),m}function a(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(te({},p.state,{scroll:_r()}),"")}}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,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?_r():null}}function Sf(e){const{history:t,location:n}=window,r={value:Pl(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.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:Ef()+e+c;try{t[a?"replaceState":"pushState"](u,"",p),s.value=u}catch(m){console.error(m),n[a?"replace":"assign"](p)}}function i(c,u){o(c,te({},t.state,Po(s.value.back,c,s.value.forward,!0),u,{position:s.value.position}),!0),r.value=c}function l(c,u){const a=te({},s.value,t.state,{forward:c,scroll:_r()});o(a.current,a,!0),o(c,te({},Po(r.value,c,null),{position:a.position+1},u),!1),r.value=c}return{location:r,state:s,push:l,replace:i}}function Rf(e){e=of(e);const t=Sf(e),n=wf(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=te({location:"",base:e,go:r,createHref:cf.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function Af(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),Rf(e)}let Nt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var ge=(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})(ge||{});const vf={type:Nt.Static,value:""},Of=/[a-zA-Z0-9_]/;function xf(e){if(!e)return[[]];if(e==="/")return[[vf]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${u}": ${m}`)}let n=ge.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,c,u="",a="";function f(){u&&(n===ge.Static?o.push({type:Nt.Static,value:u}):n===ge.Param||n===ge.ParamRegExp||n===ge.ParamRegExpEnd?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:Nt.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]===Oe.Static+Oe.Segment?1:-1:0}function Nl(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const If={strict:!1,end:!0,sensitive:!1};function Df(e,t,n){const r=Pf(xf(e.path),n),s=te(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function Lf(e,t){const n=[],r=new Map;t=Ao(If,t);function s(f){return r.get(f)}function o(f,p,m){const g=!m,b=Lo(f);b.aliasOf=m&&m.record;const E=Ao(t,f),O=[b];if("alias"in f){const P=typeof f.alias=="string"?[f.alias]:f.alias;for(const M of P)O.push(Lo(te({},b,{components:m?m.record.components:b.components,path:M,aliasOf:m?m.record:b})))}let C,N;for(const P of O){const{path:M}=P;if(p&&M[0]!=="/"){const X=p.record.path,k=X[X.length-1]==="/"?"":"/";P.path=p.record.path+(M&&k+M)}if(C=Df(P,p,E),m?m.alias.push(C):(N=N||C,N!==C&&N.alias.push(C),g&&f.name&&!Fo(C)&&i(f.name)),Il(C)&&c(C),b.children){const X=b.children;for(let k=0;k{i(N)}:yn}function i(f){if(Tl(f)){const p=r.get(f);p&&(r.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&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function c(f){const p=Uf(f,n);n.splice(p,0,f),f.record.name&&!Fo(f)&&r.set(f.record.name,f)}function u(f,p){let m,g={},b,E;if("name"in f&&f.name){if(m=r.get(f.name),!m)throw Qt(ae.MATCHER_NOT_FOUND,{location:f});E=m.record.name,g=te(Do(p.params,m.keys.filter(N=>!N.optional).concat(m.parent?m.parent.keys.filter(N=>N.optional):[]).map(N=>N.name)),f.params&&Do(f.params,m.keys.map(N=>N.name))),b=m.stringify(g)}else if(f.path!=null)b=f.path,m=n.find(N=>N.re.test(b)),m&&(g=m.parse(b),E=m.record.name);else{if(m=p.name?r.get(p.name):n.find(N=>N.re.test(p.path)),!m)throw Qt(ae.MATCHER_NOT_FOUND,{location:f,currentLocation:p});E=m.record.name,g=te({},p.params,f.params),b=m.stringify(g)}const O=[];let C=m;for(;C;)O.unshift(C.record),C=C.parent;return{name:E,path:b,params:g,matched:O,meta:Mf(O)}}e.forEach(f=>o(f));function a(){n.length=0,r.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:a,getRoutes:l,getRecordMatcher:s}}function Do(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function Lo(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Ff(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 Ff(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function Fo(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Mf(e){return e.reduce((t,n)=>te(t,n.meta),{})}function Uf(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;Nl(e,t[o])<0?r=o:n=o+1}const s=jf(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function jf(e){let t=e;for(;t=t.parent;)if(Il(t)&&Nl(e,t)===0)return t}function Il({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Mo(e){const t=ke(br),n=ke(Is),r=Me(()=>{const c=Ot(e.to);return t.resolve(c)}),s=Me(()=>{const{matched:c}=r.value,{length:u}=c,a=c[u-1],f=n.matched;if(!a||!f.length)return-1;const p=f.findIndex(Xt.bind(null,a));if(p>-1)return p;const m=Uo(c[u-2]);return u>1&&Uo(a)===m&&f[f.length-1].path!==m?f.findIndex(Xt.bind(null,c[u-2])):p}),o=Me(()=>s.value>-1&&qf(n.params,r.value.params)),i=Me(()=>s.value>-1&&s.value===n.matched.length-1&&xl(n.params,r.value.params));function l(c={}){if(Vf(c)){const u=t[Ot(e.replace)?"replace":"push"](Ot(e.to)).catch(yn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Me(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function Bf(e){return e.length===1?e[0]:e}const Hf=Os({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=On(Mo(e)),{options:r}=ke(br),s=Me(()=>({[jo(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[jo(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&Bf(t.default(n));return e.custom?o:ml("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),kf=Hf;function Vf(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 qf(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!We(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function Uo(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const jo=(e,t,n)=>e??t??n,$f=Os({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=ke(os),s=Me(()=>e.route||r.value),o=ke(Co,0),i=Me(()=>{let u=Ot(o);const{matched:a}=s.value;let f;for(;(f=a[u])&&!f.components;)u++;return u}),l=Me(()=>s.value.matched[i.value]);Hn(Co,Me(()=>i.value+1)),Hn(_f,l),Hn(os,s);const c=Lt();return fn(()=>[c.value,l.value,e.name],([u,a,f],[p,m,g])=>{a&&(a.instances[f]=u,m&&m!==a&&u&&u===p&&(a.leaveGuards.size||(a.leaveGuards=m.leaveGuards),a.updateGuards.size||(a.updateGuards=m.updateGuards))),u&&a&&(!m||!Xt(a,m)||!p)&&(a.enterCallbacks[f]||[]).forEach(b=>b(u))},{flush:"post"}),()=>{const u=s.value,a=e.name,f=l.value,p=f&&f.components[a];if(!p)return Bo(n.default,{Component:p,route:u});const m=f.props[a],g=m?m===!0?u.params:typeof m=="function"?m(u):m:null,E=ml(p,te({},g,t,{onVnodeUnmounted:O=>{O.component.isUnmounted&&(f.instances[a]=null)},ref:c}));return Bo(n.default,{Component:E,route:u})||E}}});function Bo(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Dl=$f;function Kf(e){const t=Lf(e.routes,e),n=e.parseQuery||gf,r=e.stringifyQuery||To,s=e.history,o=sn(),i=sn(),l=sn(),c=Mc(bt);let u=bt;qt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const a=Mr.bind(null,R=>""+R),f=Mr.bind(null,Yu),p=Mr.bind(null,vn);function m(R,F){let D,j;return Tl(R)?(D=t.getRecordMatcher(R),j=F):j=R,t.addRoute(j,D)}function g(R){const F=t.getRecordMatcher(R);F&&t.removeRoute(F)}function b(){return t.getRoutes().map(R=>R.record)}function E(R){return!!t.getRecordMatcher(R)}function O(R,F){if(F=te({},F||c.value),typeof R=="string"){const y=Ur(n,R,F.path),w=t.resolve({path:y.path},F),A=s.createHref(y.fullPath);return te(y,w,{params:p(w.params),hash:vn(y.hash),redirectedFrom:void 0,href:A})}let D;if(R.path!=null)D=te({},R,{path:Ur(n,R.path,F.path).path});else{const y=te({},R.params);for(const w in y)y[w]==null&&delete y[w];D=te({},R,{params:f(y)}),F.params=f(F.params)}const j=t.resolve(D,F),Q=R.hash||"";j.params=a(p(j.params));const d=tf(r,te({},R,{hash:Ju(Q),path:j.path})),h=s.createHref(d);return te({fullPath:d,hash:Q,query:r===To?yf(R.query):R.query||{}},j,{redirectedFrom:void 0,href:h})}function C(R){return typeof R=="string"?Ur(n,R,c.value.path):te({},R)}function N(R,F){if(u!==R)return Qt(ae.NAVIGATION_CANCELLED,{from:F,to:R})}function P(R){return k(R)}function M(R){return P(te(C(R),{replace:!0}))}function X(R,F){const D=R.matched[R.matched.length-1];if(D&&D.redirect){const{redirect:j}=D;let Q=typeof j=="function"?j(R,F):j;return typeof Q=="string"&&(Q=Q.includes("?")||Q.includes("#")?Q=C(Q):{path:Q},Q.params={}),te({query:R.query,hash:R.hash,params:Q.path!=null?{}:R.params},Q)}}function k(R,F){const D=u=O(R),j=c.value,Q=R.state,d=R.force,h=R.replace===!0,y=X(D,j);if(y)return k(te(C(y),{state:typeof y=="object"?te({},Q,y.state):Q,force:d,replace:h}),F||D);const w=D;w.redirectedFrom=F;let A;return!d&&nf(r,j,D)&&(A=Qt(ae.NAVIGATION_DUPLICATED,{to:w,from:j}),me(j,j,!0,!1)),(A?Promise.resolve(A):ee(w,j)).catch(S=>at(S)?at(S,ae.NAVIGATION_GUARD_REDIRECT)?S:ze(S):z(S,w,j)).then(S=>{if(S){if(at(S,ae.NAVIGATION_GUARD_REDIRECT))return k(te({replace:h},C(S.to),{state:typeof S.to=="object"?te({},Q,S.to.state):Q,force:d}),F||w)}else S=ye(w,j,!0,h,Q);return ue(w,j,S),S})}function V(R,F){const D=N(R,F);return D?Promise.reject(D):Promise.resolve()}function U(R){const F=qe.values().next().value;return F&&typeof F.runWithContext=="function"?F.runWithContext(R):R()}function ee(R,F){let D;const[j,Q,d]=bf(R,F);D=Br(j.reverse(),"beforeRouteLeave",R,F);for(const y of j)y.leaveGuards.forEach(w=>{D.push(At(w,R,F))});const h=V.bind(null,R,F);return D.push(h),He(D).then(()=>{D=[];for(const y of o.list())D.push(At(y,R,F));return D.push(h),He(D)}).then(()=>{D=Br(Q,"beforeRouteUpdate",R,F);for(const y of Q)y.updateGuards.forEach(w=>{D.push(At(w,R,F))});return D.push(h),He(D)}).then(()=>{D=[];for(const y of d)if(y.beforeEnter)if(We(y.beforeEnter))for(const w of y.beforeEnter)D.push(At(w,R,F));else D.push(At(y.beforeEnter,R,F));return D.push(h),He(D)}).then(()=>(R.matched.forEach(y=>y.enterCallbacks={}),D=Br(d,"beforeRouteEnter",R,F,U),D.push(h),He(D))).then(()=>{D=[];for(const y of i.list())D.push(At(y,R,F));return D.push(h),He(D)}).catch(y=>at(y,ae.NAVIGATION_CANCELLED)?y:Promise.reject(y))}function ue(R,F,D){l.list().forEach(j=>U(()=>j(R,F,D)))}function ye(R,F,D,j,Q){const d=N(R,F);if(d)return d;const h=F===bt,y=qt?history.state:{};D&&(j||h?s.replace(R.fullPath,te({scroll:h&&y&&y.scroll},Q)):s.push(R.fullPath,Q)),c.value=R,me(R,F,D,h),ze()}let pe;function Re(){pe||(pe=s.listen((R,F,D)=>{if(!Xe.listening)return;const j=O(R),Q=X(j,Xe.currentRoute.value);if(Q){k(te(Q,{replace:!0,force:!0}),j).catch(yn);return}u=j;const d=c.value;qt&&ff(xo(d.fullPath,D.delta),_r()),ee(j,d).catch(h=>at(h,ae.NAVIGATION_ABORTED|ae.NAVIGATION_CANCELLED)?h:at(h,ae.NAVIGATION_GUARD_REDIRECT)?(k(te(C(h.to),{force:!0}),j).then(y=>{at(y,ae.NAVIGATION_ABORTED|ae.NAVIGATION_DUPLICATED)&&!D.delta&&D.type===rs.pop&&s.go(-1,!1)}).catch(yn),Promise.reject()):(D.delta&&s.go(-D.delta,!1),z(h,j,d))).then(h=>{h=h||ye(j,d,!1),h&&(D.delta&&!at(h,ae.NAVIGATION_CANCELLED)?s.go(-D.delta,!1):D.type===rs.pop&&at(h,ae.NAVIGATION_ABORTED|ae.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),ue(j,d,h)}).catch(yn)}))}let Ve=sn(),J=sn(),K;function z(R,F,D){ze(R);const j=J.list();return j.length?j.forEach(Q=>Q(R,F,D)):console.error(R),Promise.reject(R)}function Be(){return K&&c.value!==bt?Promise.resolve():new Promise((R,F)=>{Ve.add([R,F])})}function ze(R){return K||(K=!R,Re(),Ve.list().forEach(([F,D])=>R?D(R):F()),Ve.reset()),R}function me(R,F,D,j){const{scrollBehavior:Q}=e;if(!qt||!Q)return Promise.resolve();const d=!D&&df(xo(R.fullPath,0))||(j||!D)&&history.state&&history.state.scroll||null;return Rs().then(()=>Q(R,F,d)).then(h=>h&&uf(h)).catch(h=>z(h,R,F))}const fe=R=>s.go(R);let Je;const qe=new Set,Xe={currentRoute:c,listening:!0,addRoute:m,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:E,getRoutes:b,resolve:O,options:e,push:P,replace:M,go:fe,back:()=>fe(-1),forward:()=>fe(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:J.add,isReady:Be,install(R){R.component("RouterLink",kf),R.component("RouterView",Dl),R.config.globalProperties.$router=Xe,Object.defineProperty(R.config.globalProperties,"$route",{enumerable:!0,get:()=>Ot(c)}),qt&&!Je&&c.value===bt&&(Je=!0,P(s.location).catch(j=>{}));const F={};for(const j in bt)Object.defineProperty(F,j,{get:()=>c.value[j],enumerable:!0});R.provide(br,Xe),R.provide(Is,Ci(F)),R.provide(os,c);const D=R.unmount;qe.add(R),R.unmount=function(){qe.delete(R),qe.size<1&&(u=bt,pe&&pe(),pe=null,c.value=bt,Je=!1,K=!1),D()}}};function He(R){return R.reduce((F,D)=>F.then(()=>U(D)),Promise.resolve())}return Xe}function Lh(){return ke(br)}function Fh(e){return ke(Is)}function Ll(e,t){return function(){return e.apply(t,arguments)}}const{toString:Wf}=Object.prototype,{getPrototypeOf:Ds}=Object,{iterator:Er,toStringTag:Fl}=Symbol,wr=(e=>t=>{const n=Wf.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ge=e=>(e=e.toLowerCase(),t=>wr(t)===e),Sr=e=>t=>typeof t===e,{isArray:Zt}=Array,Yt=Sr("undefined");function Cn(e){return e!==null&&!Yt(e)&&e.constructor!==null&&!Yt(e.constructor)&&Ie(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Ml=Ge("ArrayBuffer");function Gf(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Ml(e.buffer),t}const zf=Sr("string"),Ie=Sr("function"),Ul=Sr("number"),Pn=e=>e!==null&&typeof e=="object",Jf=e=>e===!0||e===!1,Kn=e=>{if(wr(e)!=="object")return!1;const t=Ds(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Fl in e)&&!(Er in e)},Xf=e=>{if(!Pn(e)||Cn(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},Qf=Ge("Date"),Yf=Ge("File"),Zf=Ge("Blob"),ed=Ge("FileList"),td=e=>Pn(e)&&Ie(e.pipe),nd=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Ie(e.append)&&((t=wr(e))==="formdata"||t==="object"&&Ie(e.toString)&&e.toString()==="[object FormData]"))},rd=Ge("URLSearchParams"),[sd,od,id,ld]=["ReadableStream","Request","Response","Headers"].map(Ge),cd=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Nn(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),Zt(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const It=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Bl=e=>!Yt(e)&&e!==It;function is(){const{caseless:e,skipUndefined:t}=Bl(this)&&this||{},n={},r=(s,o)=>{const i=e&&jl(n,o)||o;Kn(n[i])&&Kn(s)?n[i]=is(n[i],s):Kn(s)?n[i]=is({},s):Zt(s)?n[i]=s.slice():(!t||!Yt(s))&&(n[i]=s)};for(let s=0,o=arguments.length;s(Nn(t,(s,o)=>{n&&Ie(s)?e[o]=Ll(s,n):e[o]=s},{allOwnKeys:r}),e),ud=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),fd=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},dd=(e,t,n,r)=>{let s,o,i;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&Ds(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},hd=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},pd=e=>{if(!e)return null;if(Zt(e))return e;let t=e.length;if(!Ul(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},md=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Ds(Uint8Array)),gd=(e,t)=>{const r=(e&&e[Er]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},yd=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},_d=Ge("HTMLFormElement"),bd=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),Ho=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Ed=Ge("RegExp"),Hl=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Nn(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},wd=e=>{Hl(e,(t,n)=>{if(Ie(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Ie(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Sd=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return Zt(e)?r(e):r(String(e).split(t)),n},Rd=()=>{},Ad=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function vd(e){return!!(e&&Ie(e.append)&&e[Fl]==="FormData"&&e[Er])}const Od=e=>{const t=new Array(10),n=(r,s)=>{if(Pn(r)){if(t.indexOf(r)>=0)return;if(Cn(r))return r;if(!("toJSON"in r)){t[s]=r;const o=Zt(r)?[]:{};return Nn(r,(i,l)=>{const c=n(i,s+1);!Yt(c)&&(o[l]=c)}),t[s]=void 0,o}}return r};return n(e,0)},xd=Ge("AsyncFunction"),Td=e=>e&&(Pn(e)||Ie(e))&&Ie(e.then)&&Ie(e.catch),kl=((e,t)=>e?setImmediate:t?((n,r)=>(It.addEventListener("message",({source:s,data:o})=>{s===It&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),It.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Ie(It.postMessage)),Cd=typeof queueMicrotask<"u"?queueMicrotask.bind(It):typeof process<"u"&&process.nextTick||kl,Pd=e=>e!=null&&Ie(e[Er]),_={isArray:Zt,isArrayBuffer:Ml,isBuffer:Cn,isFormData:nd,isArrayBufferView:Gf,isString:zf,isNumber:Ul,isBoolean:Jf,isObject:Pn,isPlainObject:Kn,isEmptyObject:Xf,isReadableStream:sd,isRequest:od,isResponse:id,isHeaders:ld,isUndefined:Yt,isDate:Qf,isFile:Yf,isBlob:Zf,isRegExp:Ed,isFunction:Ie,isStream:td,isURLSearchParams:rd,isTypedArray:md,isFileList:ed,forEach:Nn,merge:is,extend:ad,trim:cd,stripBOM:ud,inherits:fd,toFlatObject:dd,kindOf:wr,kindOfTest:Ge,endsWith:hd,toArray:pd,forEachEntry:gd,matchAll:yd,isHTMLForm:_d,hasOwnProperty:Ho,hasOwnProp:Ho,reduceDescriptors:Hl,freezeMethods:wd,toObjectSet:Sd,toCamelCase:bd,noop:Rd,toFiniteNumber:Ad,findKey:jl,global:It,isContextDefined:Bl,isSpecCompliantForm:vd,toJSONObject:Od,isAsyncFn:xd,isThenable:Td,setImmediate:kl,asap:Cd,isIterable:Pd};function G(e,t,n,r,s){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),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}_.inherits(G,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:_.toJSONObject(this.config),code:this.code,status:this.status}}});const Vl=G.prototype,ql={};["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=>{ql[e]={value:e}});Object.defineProperties(G,ql);Object.defineProperty(Vl,"isAxiosError",{value:!0});G.from=(e,t,n,r,s,o)=>{const i=Object.create(Vl);_.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 G.call(i,l,c,n,r,s),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 Nd=null;function ls(e){return _.isPlainObject(e)||_.isArray(e)}function $l(e){return _.endsWith(e,"[]")?e.slice(0,-2):e}function ko(e,t,n){return e?e.concat(t).map(function(s,o){return s=$l(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function Id(e){return _.isArray(e)&&!e.some(ls)}const Dd=_.toFlatObject(_,{},null,function(t){return/^is[A-Z]/.test(t)});function Rr(e,t,n){if(!_.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=_.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(b,E){return!_.isUndefined(E[b])});const r=n.metaTokens,s=n.visitor||a,o=n.dots,i=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&_.isSpecCompliantForm(t);if(!_.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(_.isDate(g))return g.toISOString();if(_.isBoolean(g))return g.toString();if(!c&&_.isBlob(g))throw new G("Blob is not supported. Use a Buffer instead.");return _.isArrayBuffer(g)||_.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function a(g,b,E){let O=g;if(g&&!E&&typeof g=="object"){if(_.endsWith(b,"{}"))b=r?b:b.slice(0,-2),g=JSON.stringify(g);else if(_.isArray(g)&&Id(g)||(_.isFileList(g)||_.endsWith(b,"[]"))&&(O=_.toArray(g)))return b=$l(b),O.forEach(function(N,P){!(_.isUndefined(N)||N===null)&&t.append(i===!0?ko([b],P,o):i===null?b:b+"[]",u(N))}),!1}return ls(g)?!0:(t.append(ko(E,b,o),u(g)),!1)}const f=[],p=Object.assign(Dd,{defaultVisitor:a,convertValue:u,isVisitable:ls});function m(g,b){if(!_.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+b.join("."));f.push(g),_.forEach(g,function(O,C){(!(_.isUndefined(O)||O===null)&&s.call(t,O,_.isString(C)?C.trim():C,b,p))===!0&&m(O,b?b.concat(C):[C])}),f.pop()}}if(!_.isObject(e))throw new TypeError("data must be an object");return m(e),t}function Vo(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Ls(e,t){this._pairs=[],e&&Rr(e,this,t)}const Kl=Ls.prototype;Kl.append=function(t,n){this._pairs.push([t,n])};Kl.toString=function(t){const n=t?function(r){return t.call(this,r,Vo)}:Vo;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Ld(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Wl(e,t,n){if(!t)return e;const r=n&&n.encode||Ld;_.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=_.isURLSearchParams(t)?t.toString():new Ls(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class qo{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){_.forEach(this.handlers,function(r){r!==null&&t(r)})}}const Gl={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Fd=typeof URLSearchParams<"u"?URLSearchParams:Ls,Md=typeof FormData<"u"?FormData:null,Ud=typeof Blob<"u"?Blob:null,jd={isBrowser:!0,classes:{URLSearchParams:Fd,FormData:Md,Blob:Ud},protocols:["http","https","file","blob","url","data"]},Fs=typeof window<"u"&&typeof document<"u",cs=typeof navigator=="object"&&navigator||void 0,Bd=Fs&&(!cs||["ReactNative","NativeScript","NS"].indexOf(cs.product)<0),Hd=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",kd=Fs&&window.location.href||"http://localhost",Vd=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Fs,hasStandardBrowserEnv:Bd,hasStandardBrowserWebWorkerEnv:Hd,navigator:cs,origin:kd},Symbol.toStringTag,{value:"Module"})),Ee={...Vd,...jd};function qd(e,t){return Rr(e,new Ee.classes.URLSearchParams,{visitor:function(n,r,s,o){return Ee.isNode&&_.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function $d(e){return _.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Kd(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&_.isArray(s)?s.length:i,c?(_.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!l):((!s[i]||!_.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&_.isArray(s[i])&&(s[i]=Kd(s[i])),!l)}if(_.isFormData(e)&&_.isFunction(e.entries)){const n={};return _.forEachEntry(e,(r,s)=>{t($d(r),s,n,0)}),n}return null}function Wd(e,t,n){if(_.isString(e))try{return(t||JSON.parse)(e),_.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const In={transitional:Gl,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=_.isObject(t);if(o&&_.isHTMLForm(t)&&(t=new FormData(t)),_.isFormData(t))return s?JSON.stringify(zl(t)):t;if(_.isArrayBuffer(t)||_.isBuffer(t)||_.isStream(t)||_.isFile(t)||_.isBlob(t)||_.isReadableStream(t))return t;if(_.isArrayBufferView(t))return t.buffer;if(_.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return qd(t,this.formSerializer).toString();if((l=_.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return Rr(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),Wd(t)):t}],transformResponse:[function(t){const n=this.transitional||In.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(_.isResponse(t)||_.isReadableStream(t))return t;if(t&&_.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(i)throw l.name==="SyntaxError"?G.from(l,G.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:Ee.classes.FormData,Blob:Ee.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};_.forEach(["delete","get","head","post","put","patch"],e=>{In.headers[e]={}});const Gd=_.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"]),zd=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&Gd[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},$o=Symbol("internals");function on(e){return e&&String(e).trim().toLowerCase()}function Wn(e){return e===!1||e==null?e:_.isArray(e)?e.map(Wn):String(e)}function Jd(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const Xd=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Hr(e,t,n,r,s){if(_.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!_.isString(t)){if(_.isString(r))return t.indexOf(r)!==-1;if(_.isRegExp(r))return r.test(t)}}function Qd(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Yd(e,t){const n=_.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let De=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(l,c,u){const a=on(c);if(!a)throw new Error("header name must be a non-empty string");const f=_.findKey(s,a);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||c]=Wn(l))}const i=(l,c)=>_.forEach(l,(u,a)=>o(u,a,c));if(_.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(_.isString(t)&&(t=t.trim())&&!Xd(t))i(zd(t),n);else if(_.isObject(t)&&_.isIterable(t)){let l={},c,u;for(const a of t){if(!_.isArray(a))throw TypeError("Object iterator must return a key-value pair");l[u=a[0]]=(c=l[u])?_.isArray(c)?[...c,a[1]]:[c,a[1]]:a[1]}i(l,n)}else t!=null&&o(n,t,r);return this}get(t,n){if(t=on(t),t){const r=_.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return Jd(s);if(_.isFunction(n))return n.call(this,s,r);if(_.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=on(t),t){const r=_.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Hr(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=on(i),i){const l=_.findKey(r,i);l&&(!n||Hr(r,r[l],l,n))&&(delete r[l],s=!0)}}return _.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||Hr(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return _.forEach(this,(s,o)=>{const i=_.findKey(r,o);if(i){n[i]=Wn(s),delete n[o];return}const l=t?Qd(o):String(o).trim();l!==o&&delete n[o],n[l]=Wn(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return _.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&_.isArray(r)?r.join(", "):r)}),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 r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[$o]=this[$o]={accessors:{}}).accessors,s=this.prototype;function o(i){const l=on(i);r[l]||(Yd(s,i),r[l]=!0)}return _.isArray(t)?t.forEach(o):o(t),this}};De.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);_.reduceDescriptors(De.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});_.freezeMethods(De);function kr(e,t){const n=this||In,r=t||n,s=De.from(r.headers);let o=r.data;return _.forEach(e,function(l){o=l.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function Jl(e){return!!(e&&e.__CANCEL__)}function en(e,t,n){G.call(this,e??"canceled",G.ERR_CANCELED,t,n),this.name="CanceledError"}_.inherits(en,G,{__CANCEL__:!0});function Xl(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new G("Request failed with status code "+n.status,[G.ERR_BAD_REQUEST,G.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function Zd(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function eh(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),a=r[o];i||(i=u),n[s]=c,r[s]=u;let f=o,p=0;for(;f!==s;)p+=n[f++],f=f%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i{n=a,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const a=Date.now(),f=a-n;f>=r?i(u,a):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-f)))},()=>s&&i(s)]}const sr=(e,t,n=3)=>{let r=0;const s=eh(50,250);return th(o=>{const i=o.loaded,l=o.lengthComputable?o.total:void 0,c=i-r,u=s(c),a=i<=l;r=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)},Ko=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Wo=e=>(...t)=>_.asap(()=>e(...t)),nh=Ee.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Ee.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Ee.origin),Ee.navigator&&/(msie|trident)/i.test(Ee.navigator.userAgent)):()=>!0,rh=Ee.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];_.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),_.isString(r)&&l.push(`path=${r}`),_.isString(s)&&l.push(`domain=${s}`),o===!0&&l.push("secure"),_.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 sh(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function oh(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Ql(e,t,n){let r=!sh(t);return e&&(r||n==!1)?oh(e,t):t}const Go=e=>e instanceof De?{...e}:e;function Ut(e,t){t=t||{};const n={};function r(u,a,f,p){return _.isPlainObject(u)&&_.isPlainObject(a)?_.merge.call({caseless:p},u,a):_.isPlainObject(a)?_.merge({},a):_.isArray(a)?a.slice():a}function s(u,a,f,p){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u,f,p)}else return r(u,a,f,p)}function o(u,a){if(!_.isUndefined(a))return r(void 0,a)}function i(u,a){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u)}else return r(void 0,a)}function l(u,a,f){if(f in t)return r(u,a);if(f in e)return r(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)=>s(Go(u),Go(a),f,!0)};return _.forEach(Object.keys({...e,...t}),function(a){const f=c[a]||s,p=f(e[a],t[a],a);_.isUndefined(p)&&f!==l||(n[a]=p)}),n}const Yl=e=>{const t=Ut({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:l}=t;if(t.headers=i=De.from(i),t.url=Wl(Ql(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&i.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),_.isFormData(n)){if(Ee.hasStandardBrowserEnv||Ee.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(_.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(Ee.hasStandardBrowserEnv&&(r&&_.isFunction(r)&&(r=r(t)),r||r!==!1&&nh(t.url))){const c=s&&o&&rh.read(o);c&&i.set(s,c)}return t},ih=typeof XMLHttpRequest<"u",lh=ih&&function(e){return new Promise(function(n,r){const s=Yl(e);let o=s.data;const i=De.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,a,f,p,m,g;function b(){m&&m(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(a),s.signal&&s.signal.removeEventListener("abort",a)}let E=new XMLHttpRequest;E.open(s.method.toUpperCase(),s.url,!0),E.timeout=s.timeout;function O(){if(!E)return;const N=De.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),M={data:!l||l==="text"||l==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:N,config:e,request:E};Xl(function(k){n(k),b()},function(k){r(k),b()},M),E=null}"onloadend"in E?E.onloadend=O:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.indexOf("file:")===0)||setTimeout(O)},E.onabort=function(){E&&(r(new G("Request aborted",G.ECONNABORTED,e,E)),E=null)},E.onerror=function(P){const M=P&&P.message?P.message:"Network Error",X=new G(M,G.ERR_NETWORK,e,E);X.event=P||null,r(X),E=null},E.ontimeout=function(){let P=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const M=s.transitional||Gl;s.timeoutErrorMessage&&(P=s.timeoutErrorMessage),r(new G(P,M.clarifyTimeoutError?G.ETIMEDOUT:G.ECONNABORTED,e,E)),E=null},o===void 0&&i.setContentType(null),"setRequestHeader"in E&&_.forEach(i.toJSON(),function(P,M){E.setRequestHeader(M,P)}),_.isUndefined(s.withCredentials)||(E.withCredentials=!!s.withCredentials),l&&l!=="json"&&(E.responseType=s.responseType),u&&([p,g]=sr(u,!0),E.addEventListener("progress",p)),c&&E.upload&&([f,m]=sr(c),E.upload.addEventListener("progress",f),E.upload.addEventListener("loadend",m)),(s.cancelToken||s.signal)&&(a=N=>{E&&(r(!N||N.type?new en(null,e,E):N),E.abort(),E=null)},s.cancelToken&&s.cancelToken.subscribe(a),s.signal&&(s.signal.aborted?a():s.signal.addEventListener("abort",a)));const C=Zd(s.url);if(C&&Ee.protocols.indexOf(C)===-1){r(new G("Unsupported protocol "+C+":",G.ERR_BAD_REQUEST,e));return}E.send(o||null)})},ch=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,l();const a=u instanceof Error?u:this.reason;r.abort(a instanceof G?a:new en(a instanceof Error?a.message:a))}};let i=t&&setTimeout(()=>{i=null,o(new G(`timeout ${t} of ms exceeded`,G.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}=r;return c.unsubscribe=()=>_.asap(l),c}},ah=function*(e,t){let n=e.byteLength;if(n{const s=uh(e,t);let o=0,i,l=c=>{i||(i=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:a}=await s.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),s.return()}},{highWaterMark:2})},Jo=64*1024,{isFunction:Un}=_,dh=(({Request:e,Response:t})=>({Request:e,Response:t}))(_.global),{ReadableStream:Xo,TextEncoder:Qo}=_.global,Yo=(e,...t)=>{try{return!!e(...t)}catch{return!1}},hh=e=>{e=_.merge.call({skipUndefined:!0},dh,e);const{fetch:t,Request:n,Response:r}=e,s=t?Un(t):typeof fetch=="function",o=Un(n),i=Un(r);if(!s)return!1;const l=s&&Un(Xo),c=s&&(typeof Qo=="function"?(g=>b=>g.encode(b))(new Qo):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=o&&l&&Yo(()=>{let g=!1;const b=new n(Ee.origin,{body:new Xo,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!b}),a=i&&l&&Yo(()=>_.isReadableStream(new r("").body)),f={stream:a&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(b,E)=>{let O=b&&b[g];if(O)return O.call(b);throw new G(`Response type '${g}' is not supported`,G.ERR_NOT_SUPPORT,E)})});const p=async g=>{if(g==null)return 0;if(_.isBlob(g))return g.size;if(_.isSpecCompliantForm(g))return(await new n(Ee.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(_.isArrayBufferView(g)||_.isArrayBuffer(g))return g.byteLength;if(_.isURLSearchParams(g)&&(g=g+""),_.isString(g))return(await c(g)).byteLength},m=async(g,b)=>{const E=_.toFiniteNumber(g.getContentLength());return E??p(b)};return async g=>{let{url:b,method:E,data:O,signal:C,cancelToken:N,timeout:P,onDownloadProgress:M,onUploadProgress:X,responseType:k,headers:V,withCredentials:U="same-origin",fetchOptions:ee}=Yl(g),ue=t||fetch;k=k?(k+"").toLowerCase():"text";let ye=ch([C,N&&N.toAbortSignal()],P),pe=null;const Re=ye&&ye.unsubscribe&&(()=>{ye.unsubscribe()});let Ve;try{if(X&&u&&E!=="get"&&E!=="head"&&(Ve=await m(V,O))!==0){let me=new n(b,{method:"POST",body:O,duplex:"half"}),fe;if(_.isFormData(O)&&(fe=me.headers.get("content-type"))&&V.setContentType(fe),me.body){const[Je,qe]=Ko(Ve,sr(Wo(X)));O=zo(me.body,Jo,Je,qe)}}_.isString(U)||(U=U?"include":"omit");const J=o&&"credentials"in n.prototype,K={...ee,signal:ye,method:E.toUpperCase(),headers:V.normalize().toJSON(),body:O,duplex:"half",credentials:J?U:void 0};pe=o&&new n(b,K);let z=await(o?ue(pe,ee):ue(b,K));const Be=a&&(k==="stream"||k==="response");if(a&&(M||Be&&Re)){const me={};["status","statusText","headers"].forEach(Xe=>{me[Xe]=z[Xe]});const fe=_.toFiniteNumber(z.headers.get("content-length")),[Je,qe]=M&&Ko(fe,sr(Wo(M),!0))||[];z=new r(zo(z.body,Jo,Je,()=>{qe&&qe(),Re&&Re()}),me)}k=k||"text";let ze=await f[_.findKey(f,k)||"text"](z,g);return!Be&&Re&&Re(),await new Promise((me,fe)=>{Xl(me,fe,{data:ze,headers:De.from(z.headers),status:z.status,statusText:z.statusText,config:g,request:pe})})}catch(J){throw Re&&Re(),J&&J.name==="TypeError"&&/Load failed|fetch/i.test(J.message)?Object.assign(new G("Network Error",G.ERR_NETWORK,g,pe),{cause:J.cause||J}):G.from(J,J&&J.code,g,pe)}}},ph=new Map,Zl=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,l=i,c,u,a=ph;for(;l--;)c=o[l],u=a.get(c),u===void 0&&a.set(c,u=l?new Map:hh(t)),a=u;return u};Zl();const Ms={http:Nd,xhr:lh,fetch:{get:Zl}};_.forEach(Ms,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Zo=e=>`- ${e}`,mh=e=>_.isFunction(e)||e===null||e===!1;function gh(e,t){e=_.isArray(e)?e:[e];const{length:n}=e;let r,s;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(Zo).join(` +`):" "+Zo(i[0]):"as no adapter specified";throw new G("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const ec={getAdapter:gh,adapters:Ms};function Vr(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new en(null,e)}function ei(e){return Vr(e),e.headers=De.from(e.headers),e.data=kr.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),ec.getAdapter(e.adapter||In.adapter,e)(e).then(function(r){return Vr(e),r.data=kr.call(e,e.transformResponse,r),r.headers=De.from(r.headers),r},function(r){return Jl(r)||(Vr(e),r&&r.response&&(r.response.data=kr.call(e,e.transformResponse,r.response),r.response.headers=De.from(r.response.headers))),Promise.reject(r)})}const tc="1.13.2",Ar={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Ar[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const ti={};Ar.transitional=function(t,n,r){function s(o,i){return"[Axios v"+tc+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,l)=>{if(t===!1)throw new G(s(i," has been removed"+(n?" in "+n:"")),G.ERR_DEPRECATED);return n&&!ti[i]&&(ti[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,l):!0}};Ar.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function yh(e,t,n){if(typeof e!="object")throw new G("options must be an object",G.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const l=e[o],c=l===void 0||i(l,o,e);if(c!==!0)throw new G("option "+o+" must be "+c,G.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new G("Unknown option "+o,G.ERR_BAD_OPTION)}}const Gn={assertOptions:yh,validators:Ar},nt=Gn.validators;let Mt=class{constructor(t){this.defaults=t||{},this.interceptors={request:new qo,response:new qo}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Ut(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&Gn.assertOptions(r,{silentJSONParsing:nt.transitional(nt.boolean),forcedJSONParsing:nt.transitional(nt.boolean),clarifyTimeoutError:nt.transitional(nt.boolean)},!1),s!=null&&(_.isFunction(s)?n.paramsSerializer={serialize:s}:Gn.assertOptions(s,{encode:nt.function,serialize:nt.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Gn.assertOptions(n,{baseUrl:nt.spelling("baseURL"),withXsrfToken:nt.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&_.merge(o.common,o[n.method]);o&&_.forEach(["delete","get","head","post","put","patch","common"],g=>{delete o[g]}),n.headers=De.concat(i,o);const l=[];let c=!0;this.interceptors.request.forEach(function(b){typeof b.runWhen=="function"&&b.runWhen(n)===!1||(c=c&&b.synchronous,l.unshift(b.fulfilled,b.rejected))});const u=[];this.interceptors.response.forEach(function(b){u.push(b.fulfilled,b.rejected)});let a,f=0,p;if(!c){const g=[ei.bind(this),void 0];for(g.unshift(...l),g.push(...u),p=g.length,a=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(l=>{r.subscribe(l),o=l}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,l){r.reason||(r.reason=new en(o,i,l),n(r.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=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new nc(function(s){t=s}),cancel:t}}};function bh(e){return function(n){return e.apply(null,n)}}function Eh(e){return _.isObject(e)&&e.isAxiosError===!0}const as={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(as).forEach(([e,t])=>{as[t]=e});function rc(e){const t=new Mt(e),n=Ll(Mt.prototype.request,t);return _.extend(n,Mt.prototype,t,{allOwnKeys:!0}),_.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return rc(Ut(e,s))},n}const he=rc(In);he.Axios=Mt;he.CanceledError=en;he.CancelToken=_h;he.isCancel=Jl;he.VERSION=tc;he.toFormData=Rr;he.AxiosError=G;he.Cancel=he.CanceledError;he.all=function(t){return Promise.all(t)};he.spread=bh;he.isAxiosError=Eh;he.mergeConfig=Ut;he.AxiosHeaders=De;he.formToJSON=e=>zl(_.isHTMLForm(e)?new FormData(e):e);he.getAdapter=ec.getAdapter;he.HttpStatusCode=as;he.default=he;const{Axios:jh,AxiosError:Bh,CanceledError:Hh,isCancel:kh,CancelToken:Vh,VERSION:qh,all:$h,Cancel:Kh,isAxiosError:Wh,spread:Gh,toFormData:zh,AxiosHeaders:Jh,HttpStatusCode:Xh,formToJSON:Qh,getAdapter:Yh,mergeConfig:Zh}=he,_n=he.create({baseURL:"",timeout:3e4,withCredentials:!0});_n.interceptors.request.use(e=>e,e=>Promise.reject(e));_n.interceptors.response.use(e=>e.data,e=>{e.response?.status===401&&(window.location.hash="#/login");const t=e.response?.data?e.response.data.detail||e.response.data.message:e.message;return Promise.reject(new Error(t||"请求失败"))});const jn={login:e=>{const t=new URLSearchParams;return t.append("admin_key",e.password),_n.post("/login",t,{headers:{"Content-Type":"application/x-www-form-urlencoded"}})},logout:()=>_n.post("/logout"),checkAuth:()=>_n.get("/admin/health")},wh=Mu("auth",()=>{const e=Lt(!1),t=Lt(!1),n=Lt(0),r=1e4;let s=null;async function o(c){t.value=!0;try{return await jn.login({password:c}),await jn.checkAuth(),e.value=!0,n.value=Date.now(),!0}catch(u){throw e.value=!1,u}finally{t.value=!1}}async function i(){try{await jn.logout()}finally{e.value=!1,n.value=0}}async function l(){const c=Date.now();if(e.value&&c-n.value(await jn.checkAuth(),e.value=!0,!0))(),await s}catch{return e.value=!1,!1}finally{n.value=Date.now(),s=null}}return{isLoggedIn:e,isLoading:t,login:o,logout:i,checkAuth:l}}),sc=Kf({history:Af("/"),routes:[{path:"/public/uptime",name:"public-uptime",component:()=>tt(()=>import("./PublicUptime-Bcu4-dB9.js"),__vite__mapDeps([0,1])),meta:{requiresAuth:!1}},{path:"/public/logs",name:"public-logs",component:()=>tt(()=>import("./PublicLogs-DqhTfMql.js"),[]),meta:{requiresAuth:!1}},{path:"/login",name:"login",component:()=>tt(()=>import("./Login-BuxlvrlO.js"),[]),meta:{requiresAuth:!1}},{path:"/",component:()=>tt(()=>import("./AppShell-_I1IX8_9.js"),__vite__mapDeps([2,3,4,5])),meta:{requiresAuth:!0},children:[{path:"",name:"dashboard",component:()=>tt(()=>import("./Dashboard-CcTQaln-.js"),__vite__mapDeps([6,7]))},{path:"accounts",name:"accounts",component:()=>tt(()=>import("./Accounts-B-ft7iE1.js"),__vite__mapDeps([8,9,10,4,5,7]))},{path:"settings",name:"settings",component:()=>tt(()=>import("./Settings-Cau8Y7zz.js"),__vite__mapDeps([11,3,9,10,7]))},{path:"logs",name:"logs",component:()=>tt(()=>import("./Logs-CECdzzbe.js"),__vite__mapDeps([12,9,4]))},{path:"monitor",name:"monitor",component:()=>tt(()=>import("./Monitor-CJoyZd31.js"),__vite__mapDeps([13,1]))},{path:"docs",name:"docs",component:()=>tt(()=>import("./Docs-CSE-oDMg.js"),[])}]}]});sc.beforeEach(async e=>{const t=wh();if(e.meta.requiresAuth&&!await t.checkAuth())return{name:"login"};if(e.name==="login"&&t.isLoggedIn)return{name:"dashboard"}});const Sh=Os({__name:"App",setup(e){return(t,n)=>(er(),nr(Ot(Dl)))}}),Us=xu(Sh),Rh=Pu();Us.use(Rh);Us.use(sc);Us.mount("#app");export{Xc as A,Dl as B,Mu as C,Dh as D,Rs as E,Fe as F,xh as G,On as H,kf as R,vh as T,fl as a,Ph as b,Th as c,Os as d,er as e,Wa as f,_n as g,Lt as h,Me as i,fa as j,ps as k,wh as l,Ch as m,ms as n,ca as o,Ah as p,Lh as q,Oh as r,Fh as s,mc as t,Ot as u,Nh as v,Ih as w,fn as x,Ce as y,nr as z}; diff --git a/static/assets/index-C4edAQLF.js b/static/assets/index-C4edAQLF.js new file mode 100644 index 0000000000000000000000000000000000000000..caa22de4750857e47422fce24e4551b2cc688b7c --- /dev/null +++ b/static/assets/index-C4edAQLF.js @@ -0,0 +1,7 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PublicUptime-65SUPpJU.js","assets/useUptimeStatus-CwWFJXPV.js","assets/Login-BLaoqV5L.js","assets/Checkbox.vue_vue_type_script_setup_true_lang-41XRw3c5.js","assets/AppShell-Bk_f20v2.js","assets/settings-C6i6OeZ-.js","assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-DW0P4Bk8.js","assets/useConfirmDialog-wyft8rf-.js","assets/Dashboard-DEboHVHw.js","assets/HelpTip.vue_vue_type_script_setup_true_lang-CWJidBqq.js","assets/Accounts-BBKUc_zD.js","assets/SelectMenu.vue_vue_type_script_setup_true_lang-Cu_3WwPc.js","assets/Settings-9EHJjy5x.js","assets/Logs-B618ke8W.js","assets/Monitor-BFbBdfH4.js"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function Ns(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const ce={},tn=[],ut=()=>{},xi=()=>!1,wr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Is=e=>e.startsWith("onUpdate:"),Ee=Object.assign,Ls=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Bc=Object.prototype.hasOwnProperty,oe=(e,t)=>Bc.call(e,t),K=Array.isArray,nn=e=>vr(e)==="[object Map]",Ti=e=>vr(e)==="[object Set]",J=e=>typeof e=="function",pe=e=>typeof e=="string",vt=e=>typeof e=="symbol",ae=e=>e!==null&&typeof e=="object",Oi=e=>(ae(e)||J(e))&&J(e.then)&&J(e.catch),Pi=Object.prototype.toString,vr=e=>Pi.call(e),Uc=e=>vr(e).slice(8,-1),Ni=e=>vr(e)==="[object Object]",Sr=e=>pe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,En=Ns(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ar=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},jc=/-\w/g,Dt=Ar(e=>e.replace(jc,t=>t.slice(1).toUpperCase())),Hc=/\B([A-Z])/g,zt=Ar(e=>e.replace(Hc,"-$1").toLowerCase()),Ii=Ar(e=>e.charAt(0).toUpperCase()+e.slice(1)),Vr=Ar(e=>e?`on${Ii(e)}`:""),Lt=(e,t)=>!Object.is(e,t),er=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},Ds=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Vc=e=>{const t=pe(e)?Number(e):NaN;return isNaN(t)?e:t};let io;const Rr=()=>io||(io=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Fs(e){if(K(e)){const t={};for(let n=0;n{if(n){const r=n.split(qc);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Nn(e){let t="";if(pe(e))t=e;else if(K(e))for(let n=0;n!!(e&&e.__v_isRef===!0),ls=e=>pe(e)?e:e==null?"":K(e)||ae(e)&&(e.toString===Pi||!J(e.toString))?Fi(e)?ls(e.value):JSON.stringify(e,Mi,2):String(e),Mi=(e,t)=>Fi(t)?Mi(e,t.value):nn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[$r(r,o)+" =>"]=s,n),{})}:Ti(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>$r(n))}:vt(t)?$r(t):ae(t)&&!K(t)&&!Ni(t)?String(t):t,$r=(e,t="")=>{var n;return vt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let Se;class ki{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,r;for(n=0,r=this.effects.length;n0)return;if(vn){let t=vn;for(vn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;wn;){let t=wn;for(wn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function $i(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function qi(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),Bs(r),Xc(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function cs(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Ki(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Ki(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===In)||(e.globalVersion=In,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!cs(e))))return;e.flags|=2;const t=e.dep,n=fe,r=Ge;fe=e,Ge=!0;try{$i(e);const s=e.fn(e._value);(t.version===0||Lt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{fe=n,Ge=r,qi(e),e.flags&=-3}}function Bs(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)Bs(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Xc(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Ge=!0;const Wi=[];function bt(){Wi.push(Ge),Ge=!1}function Et(){const e=Wi.pop();Ge=e===void 0?!0:e}function lo(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=fe;fe=void 0;try{t()}finally{fe=n}}}let In=0;class Qc{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 Us{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(!fe||!Ge||fe===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==fe)n=this.activeLink=new Qc(fe,this),fe.deps?(n.prevDep=fe.depsTail,fe.depsTail.nextDep=n,fe.depsTail=n):fe.deps=fe.depsTail=n,Gi(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=fe.depsTail,n.nextDep=void 0,fe.depsTail.nextDep=n,fe.depsTail=n,fe.deps===n&&(fe.deps=r)}return n}trigger(t){this.version++,In++,this.notify(t)}notify(t){Ms();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ks()}}}function Gi(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Gi(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const ar=new WeakMap,Vt=Symbol(""),as=Symbol(""),Ln=Symbol("");function Ae(e,t,n){if(Ge&&fe){let r=ar.get(e);r||ar.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new Us),s.map=r,s.key=n),s.track()}}function yt(e,t,n,r,s,o){const i=ar.get(e);if(!i){In++;return}const l=c=>{c&&c.trigger()};if(Ms(),t==="clear")i.forEach(l);else{const c=K(e),u=c&&Sr(n);if(c&&n==="length"){const a=Number(r);i.forEach((f,h)=>{(h==="length"||h===Ln||!vt(h)&&h>=a)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(Ln)),t){case"add":c?u&&l(i.get("length")):(l(i.get(Vt)),nn(e)&&l(i.get(as)));break;case"delete":c||(l(i.get(Vt)),nn(e)&&l(i.get(as)));break;case"set":nn(e)&&l(i.get(Vt));break}}ks()}function Yc(e,t){const n=ar.get(e);return n&&n.get(t)}function Jt(e){const t=re(e);return t===e?t:(Ae(t,"iterate",Ln),je(e)?t:t.map(ze))}function Cr(e){return Ae(e=re(e),"iterate",Ln),e}function Ot(e,t){return wt(e)?ft(e)?on(ze(t)):on(t):ze(t)}const Zc={__proto__:null,[Symbol.iterator](){return Kr(this,Symbol.iterator,e=>Ot(this,e))},concat(...e){return Jt(this).concat(...e.map(t=>K(t)?Jt(t):t))},entries(){return Kr(this,"entries",e=>(e[1]=Ot(this,e[1]),e))},every(e,t){return pt(this,"every",e,t,void 0,arguments)},filter(e,t){return pt(this,"filter",e,t,n=>n.map(r=>Ot(this,r)),arguments)},find(e,t){return pt(this,"find",e,t,n=>Ot(this,n),arguments)},findIndex(e,t){return pt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return pt(this,"findLast",e,t,n=>Ot(this,n),arguments)},findLastIndex(e,t){return pt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return pt(this,"forEach",e,t,void 0,arguments)},includes(...e){return Wr(this,"includes",e)},indexOf(...e){return Wr(this,"indexOf",e)},join(e){return Jt(this).join(e)},lastIndexOf(...e){return Wr(this,"lastIndexOf",e)},map(e,t){return pt(this,"map",e,t,void 0,arguments)},pop(){return mn(this,"pop")},push(...e){return mn(this,"push",e)},reduce(e,...t){return co(this,"reduce",e,t)},reduceRight(e,...t){return co(this,"reduceRight",e,t)},shift(){return mn(this,"shift")},some(e,t){return pt(this,"some",e,t,void 0,arguments)},splice(...e){return mn(this,"splice",e)},toReversed(){return Jt(this).toReversed()},toSorted(e){return Jt(this).toSorted(e)},toSpliced(...e){return Jt(this).toSpliced(...e)},unshift(...e){return mn(this,"unshift",e)},values(){return Kr(this,"values",e=>Ot(this,e))}};function Kr(e,t,n){const r=Cr(e),s=r[t]();return r!==e&&!je(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const ea=Array.prototype;function pt(e,t,n,r,s,o){const i=Cr(e),l=i!==e&&!je(e),c=i[t];if(c!==ea[t]){const f=c.apply(e,o);return l?ze(f):f}let u=n;i!==e&&(l?u=function(f,h){return n.call(this,Ot(e,f),h,e)}:n.length>2&&(u=function(f,h){return n.call(this,f,h,e)}));const a=c.call(i,u,r);return l&&s?s(a):a}function co(e,t,n,r){const s=Cr(e);let o=n;return s!==e&&(je(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,Ot(e,l),c,e)}),s[t](o,...r)}function Wr(e,t,n){const r=re(e);Ae(r,"iterate",Ln);const s=r[t](...n);return(s===-1||s===!1)&&xr(n[0])?(n[0]=re(n[0]),r[t](...n)):s}function mn(e,t,n=[]){bt(),Ms();const r=re(e)[t].apply(e,n);return ks(),Et(),r}const ta=Ns("__proto__,__v_isRef,__isVue"),zi=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(vt));function na(e){vt(e)||(e=String(e));const t=re(this);return Ae(t,"has",e),t.hasOwnProperty(e)}class Ji{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?da:Zi:o?Yi:Qi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=K(t);if(!s){let c;if(i&&(c=Zc[n]))return c;if(n==="hasOwnProperty")return na}const l=Reflect.get(t,n,de(t)?t:r);if((vt(n)?zi.has(n):ta(n))||(s||Ae(t,"get",n),o))return l;if(de(l)){const c=i&&Sr(n)?l:l.value;return s&&ae(c)?fs(c):c}return ae(l)?s?fs(l):fn(l):l}}class Xi extends Ji{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=K(t)&&Sr(n);if(!this._isShallow){const u=wt(o);if(!je(r)&&!wt(r)&&(o=re(o),r=re(r)),!i&&de(o)&&!de(r))return u||(o.value=r),!0}const l=i?Number(n)e,Wn=e=>Reflect.getPrototypeOf(e);function la(e,t,n){return function(...r){const s=this.__v_raw,o=re(s),i=nn(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=s[e](...r),a=n?us:t?on:ze;return!t&&Ae(o,"iterate",c?as:Vt),{next(){const{value:f,done:h}=u.next();return h?{value:f,done:h}:{value:l?[a(f[0]),a(f[1])]:a(f),done:h}},[Symbol.iterator](){return this}}}}function Gn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function ca(e,t){const n={get(s){const o=this.__v_raw,i=re(o),l=re(s);e||(Lt(s,l)&&Ae(i,"get",s),Ae(i,"get",l));const{has:c}=Wn(i),u=t?us:e?on:ze;if(c.call(i,s))return u(o.get(s));if(c.call(i,l))return u(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&Ae(re(s),"iterate",Vt),s.size},has(s){const o=this.__v_raw,i=re(o),l=re(s);return e||(Lt(s,l)&&Ae(i,"has",s),Ae(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,c=re(l),u=t?us:e?on:ze;return!e&&Ae(c,"iterate",Vt),l.forEach((a,f)=>s.call(o,u(a),u(f),i))}};return Ee(n,e?{add:Gn("add"),set:Gn("set"),delete:Gn("delete"),clear:Gn("clear")}:{add(s){!t&&!je(s)&&!wt(s)&&(s=re(s));const o=re(this);return Wn(o).has.call(o,s)||(o.add(s),yt(o,"add",s,s)),this},set(s,o){!t&&!je(o)&&!wt(o)&&(o=re(o));const i=re(this),{has:l,get:c}=Wn(i);let u=l.call(i,s);u||(s=re(s),u=l.call(i,s));const a=c.call(i,s);return i.set(s,o),u?Lt(o,a)&&yt(i,"set",s,o):yt(i,"add",s,o),this},delete(s){const o=re(this),{has:i,get:l}=Wn(o);let c=i.call(o,s);c||(s=re(s),c=i.call(o,s)),l&&l.call(o,s);const u=o.delete(s);return c&&yt(o,"delete",s,void 0),u},clear(){const s=re(this),o=s.size!==0,i=s.clear();return o&&yt(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=la(s,e,t)}),n}function js(e,t){const n=ca(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(oe(n,s)&&s in r?n:r,s,o)}const aa={get:js(!1,!1)},ua={get:js(!1,!0)},fa={get:js(!0,!1)};const Qi=new WeakMap,Yi=new WeakMap,Zi=new WeakMap,da=new WeakMap;function ha(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function pa(e){return e.__v_skip||!Object.isExtensible(e)?0:ha(Uc(e))}function fn(e){return wt(e)?e:Hs(e,!1,sa,aa,Qi)}function el(e){return Hs(e,!1,ia,ua,Yi)}function fs(e){return Hs(e,!0,oa,fa,Zi)}function Hs(e,t,n,r,s){if(!ae(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=pa(e);if(o===0)return e;const i=s.get(e);if(i)return i;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function ft(e){return wt(e)?ft(e.__v_raw):!!(e&&e.__v_isReactive)}function wt(e){return!!(e&&e.__v_isReadonly)}function je(e){return!!(e&&e.__v_isShallow)}function xr(e){return e?!!e.__v_raw:!1}function re(e){const t=e&&e.__v_raw;return t?re(t):e}function Vs(e){return!oe(e,"__v_skip")&&Object.isExtensible(e)&&Li(e,"__v_skip",!0),e}const ze=e=>ae(e)?fn(e):e,on=e=>ae(e)?fs(e):e;function de(e){return e?e.__v_isRef===!0:!1}function $t(e){return tl(e,!1)}function ma(e){return tl(e,!0)}function tl(e,t){return de(e)?e:new ga(e,t)}class ga{constructor(t,n){this.dep=new Us,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:re(t),this._value=n?t:ze(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||je(t)||wt(t);t=r?t:re(t),Lt(t,n)&&(this._rawValue=t,this._value=r?t:ze(t),this.dep.trigger())}}function dt(e){return de(e)?e.value:e}const ya={get:(e,t,n)=>t==="__v_raw"?e:dt(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return de(s)&&!de(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function nl(e){return ft(e)?e:new Proxy(e,ya)}function _a(e){const t=K(e)?new Array(e.length):{};for(const n in e)t[n]=rl(e,n);return t}class ba{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._raw=re(t);let s=!0,o=t;if(!K(t)||!Sr(String(n)))do s=!xr(o)||je(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=dt(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&de(this._raw[this._key])){const n=this._object[this._key];if(de(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return Yc(this._raw,this._key)}}class Ea{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function wa(e,t,n){return de(e)?e:J(e)?new Ea(e):ae(e)&&arguments.length>1?rl(e,t,n):$t(e)}function rl(e,t,n){return new ba(e,t,n)}class va{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Us(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=In-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&fe!==this)return Vi(this,!0),!0}get value(){const t=this.dep.track();return Ki(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Sa(e,t,n=!1){let r,s;return J(e)?r=e:(r=e.get,s=e.set),new va(r,s,n)}const zn={},ur=new WeakMap;let Bt;function Aa(e,t=!1,n=Bt){if(n){let r=ur.get(n);r||ur.set(n,r=[]),r.push(e)}}function Ra(e,t,n=ce){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:c}=n,u=O=>s?O:je(O)||s===!1||s===0?_t(O,1):_t(O);let a,f,h,m,g=!1,b=!1;if(de(e)?(f=()=>e.value,g=je(e)):ft(e)?(f=()=>u(e),g=!0):K(e)?(b=!0,g=e.some(O=>ft(O)||je(O)),f=()=>e.map(O=>{if(de(O))return O.value;if(ft(O))return u(O);if(J(O))return c?c(O,2):O()})):J(e)?t?f=c?()=>c(e,2):e:f=()=>{if(h){bt();try{h()}finally{Et()}}const O=Bt;Bt=a;try{return c?c(e,3,[m]):e(m)}finally{Bt=O}}:f=ut,t&&s){const O=f,B=s===!0?1/0:s;f=()=>_t(O(),B)}const E=Ui(),C=()=>{a.stop(),E&&E.active&&Ls(E.effects,a)};if(o&&t){const O=t;t=(...B)=>{O(...B),C()}}let T=b?new Array(e.length).fill(zn):zn;const N=O=>{if(!(!(a.flags&1)||!a.dirty&&!O))if(t){const B=a.run();if(s||g||(b?B.some((G,j)=>Lt(G,T[j])):Lt(B,T))){h&&h();const G=Bt;Bt=a;try{const j=[B,T===zn?void 0:b&&T[0]===zn?[]:T,m];T=B,c?c(t,3,j):t(...j)}finally{Bt=G}}}else a.run()};return l&&l(N),a=new ji(f),a.scheduler=i?()=>i(N,!1):N,m=O=>Aa(O,!1,a),h=a.onStop=()=>{const O=ur.get(a);if(O){if(c)c(O,4);else for(const B of O)B();ur.delete(a)}},t?r?N(!0):T=a.run():i?i(N.bind(null,!0),!0):a.run(),C.pause=a.pause.bind(a),C.resume=a.resume.bind(a),C.stop=C,C}function _t(e,t=1/0,n){if(t<=0||!ae(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,de(e))_t(e.value,t,n);else if(K(e))for(let r=0;r{_t(r,t,n)});else if(Ni(e)){for(const r in e)_t(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&_t(e[r],t,n)}return e}function jn(e,t,n,r){try{return r?e(...r):e()}catch(s){Tr(s,t,n)}}function Je(e,t,n,r){if(J(e)){const s=jn(e,t,n,r);return s&&Oi(s)&&s.catch(o=>{Tr(o,t,n)}),s}if(K(e)){const s=[];for(let o=0;o>>1,s=Pe[r],o=Dn(s);o=Dn(n)?Pe.push(e):Pe.splice(xa(t),0,e),e.flags|=1,ol()}}function ol(){fr||(fr=sl.then(ll))}function Ta(e){K(e)?rn.push(...e):Pt&&e.id===-1?Pt.splice(Qt+1,0,e):e.flags&1||(rn.push(e),e.flags|=1),ol()}function ao(e,t,n=ct+1){for(;nDn(n)-Dn(r));if(rn.length=0,Pt){Pt.push(...t);return}for(Pt=t,Qt=0;Qte.id==null?e.flags&2?-1:1/0:e.id;function ll(e){try{for(ct=0;ct{r._d&&mr(-1);const o=dr(t);let i;try{i=e(...s)}finally{dr(o),r._d&&mr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function xp(e,t){if(Ce===null)return e;const n=Lr(Ce),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&J(t)?t.call(r&&r.proxy):t}}function Oa(){return!!(Js()||qt)}const Pa=Symbol.for("v-scx"),Na=()=>Ke(Pa);function Sn(e,t,n){return ul(e,t,n)}function ul(e,t,n=ce){const{immediate:r,deep:s,flush:o,once:i}=n,l=Ee({},n),c=t&&r||!t&&o!=="post";let u;if(Bn){if(o==="sync"){const m=Na();u=m.__watcherHandles||(m.__watcherHandles=[])}else if(!c){const m=()=>{};return m.stop=ut,m.resume=ut,m.pause=ut,m}}const a=Ne;l.call=(m,g,b)=>Je(m,a,g,b);let f=!1;o==="post"?l.scheduler=m=>{Te(m,a&&a.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(m,g)=>{g?m():qs(m)}),l.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,a&&(m.id=a.uid,m.i=a))};const h=Ra(e,t,l);return Bn&&(u?u.push(h):c&&h()),h}function Ia(e,t,n){const r=this.proxy,s=pe(e)?e.includes(".")?fl(r,e):()=>r[e]:e.bind(r,r);let o;J(t)?o=t:(o=t.handler,n=t);const i=Hn(this),l=ul(s,o.bind(r),n);return i(),l}function fl(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,An=e=>e&&(e.disabled||e.disabled===""),uo=e=>e&&(e.defer||e.defer===""),fo=e=>typeof SVGElement<"u"&&e instanceof SVGElement,ho=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,ds=(e,t)=>{const n=e&&e.to;return pe(n)?t?t(n):null:n},hl={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,u){const{mc:a,pc:f,pbc:h,o:{insert:m,querySelector:g,createText:b,createComment:E}}=u,C=An(t.props);let{shapeFlag:T,children:N,dynamicChildren:O}=t;if(e==null){const B=t.el=b(""),G=t.anchor=b("");m(B,n,r),m(G,n,r);const j=(x,$)=>{T&16&&a(N,x,$,s,o,i,l,c)},U=()=>{const x=t.target=ds(t.props,g),$=pl(x,t,b,m);x&&(i!=="svg"&&fo(x)?i="svg":i!=="mathml"&&ho(x)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(x),C||(j(x,$),nr(t,!1)))};C&&(j(n,G),nr(t,!0)),uo(t.props)?(t.el.__isMounted=!1,Te(()=>{U(),delete t.el.__isMounted},o)):U()}else{if(uo(t.props)&&e.el.__isMounted===!1){Te(()=>{hl.process(e,t,n,r,s,o,i,l,c,u)},o);return}t.el=e.el,t.targetStart=e.targetStart;const B=t.anchor=e.anchor,G=t.target=e.target,j=t.targetAnchor=e.targetAnchor,U=An(e.props),x=U?n:G,$=U?B:j;if(i==="svg"||fo(G)?i="svg":(i==="mathml"||ho(G))&&(i="mathml"),O?(h(e.dynamicChildren,O,x,s,o,i,l),Gs(e,t,!0)):c||f(e,t,x,$,s,o,i,l,!1),C)U?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Jn(t,n,B,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const Y=t.target=ds(t.props,g);Y&&Jn(t,Y,null,u,0)}else U&&Jn(t,G,j,u,1);nr(t,C)}},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetStart:u,targetAnchor:a,target:f,props:h}=e;if(f&&(s(u),s(a)),o&&s(c),i&16){const m=o||!An(h);for(let g=0;g{e.isMounted=!0}),wl(()=>{e.isUnmounting=!0}),e}const $e=[Function,Array],ka={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:$e,onEnter:$e,onAfterEnter:$e,onEnterCancelled:$e,onBeforeLeave:$e,onLeave:$e,onAfterLeave:$e,onLeaveCancelled:$e,onBeforeAppear:$e,onAppear:$e,onAfterAppear:$e,onAppearCancelled:$e};function Ba(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function hs(e,t,n,r,s){const{appear:o,mode:i,persisted:l=!1,onBeforeEnter:c,onEnter:u,onAfterEnter:a,onEnterCancelled:f,onBeforeLeave:h,onLeave:m,onAfterLeave:g,onLeaveCancelled:b,onBeforeAppear:E,onAppear:C,onAfterAppear:T,onAppearCancelled:N}=t,O=String(e.key),B=Ba(n,e),G=(x,$)=>{x&&Je(x,r,9,$)},j=(x,$)=>{const Y=$[1];G(x,$),K(x)?x.every(L=>L.length<=1)&&Y():x.length<=1&&Y()},U={mode:i,persisted:l,beforeEnter(x){let $=c;if(!n.isMounted)if(o)$=E||c;else return;x[Ut]&&x[Ut](!0);const Y=B[O];Y&&Yt(e,Y)&&Y.el[Ut]&&Y.el[Ut](),G($,[x])},enter(x){let $=u,Y=a,L=f;if(!n.isMounted)if(o)$=C||u,Y=T||a,L=N||f;else return;let Q=!1;const le=x[Xn]=we=>{Q||(Q=!0,we?G(L,[x]):G(Y,[x]),U.delayedLeave&&U.delayedLeave(),x[Xn]=void 0)};$?j($,[x,le]):le()},leave(x,$){const Y=String(e.key);if(x[Xn]&&x[Xn](!0),n.isUnmounting)return $();G(h,[x]);let L=!1;const Q=x[Ut]=le=>{L||(L=!0,$(),le?G(b,[x]):G(g,[x]),x[Ut]=void 0,B[Y]===e&&delete B[Y])};B[Y]=e,m?j(m,[x,Q]):Q()},clone(x){return hs(x,t,n,r)}};return U}function Fn(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Fn(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 ml(e,t=!1,n){let r=[],s=0;for(let o=0;o1)for(let o=0;oRn(g,t&&(K(t)?t[b]:t),n,r,s));return}if(sn(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&Rn(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?Lr(r.component):r.el,i=s?null:o,{i:l,r:c}=e,u=t&&t.r,a=l.refs===ce?l.refs={}:l.refs,f=l.setupState,h=re(f),m=f===ce?xi:g=>oe(h,g);if(u!=null&&u!==c){if(po(t),pe(u))a[u]=null,m(u)&&(f[u]=null);else if(de(u)){u.value=null;const g=t;g.k&&(a[g.k]=null)}}if(J(c))jn(c,l,12,[i,a]);else{const g=pe(c),b=de(c);if(g||b){const E=()=>{if(e.f){const C=g?m(c)?f[c]:a[c]:c.value;if(s)K(C)&&Ls(C,o);else if(K(C))C.includes(o)||C.push(o);else if(g)a[c]=[o],m(c)&&(f[c]=a[c]);else{const T=[o];c.value=T,e.k&&(a[e.k]=T)}}else g?(a[c]=i,m(c)&&(f[c]=i)):b&&(c.value=i,e.k&&(a[e.k]=i))};if(i){const C=()=>{E(),hr.delete(e)};C.id=-1,hr.set(e,C),Te(C,n)}else po(e),E()}}}function po(e){const t=hr.get(e);t&&(t.flags|=8,hr.delete(e))}Rr().requestIdleCallback;Rr().cancelIdleCallback;const sn=e=>!!e.type.__asyncLoader,yl=e=>e.type.__isKeepAlive;function Ua(e,t){_l(e,"a",t)}function ja(e,t){_l(e,"da",t)}function _l(e,t,n=Ne){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Pr(t,r,n),n){let s=n.parent;for(;s&&s.parent;)yl(s.parent.vnode)&&Ha(r,t,n,s),s=s.parent}}function Ha(e,t,n,r){const s=Pr(t,e,r,!0);vl(()=>{Ls(r[t],s)},n)}function Pr(e,t,n=Ne,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{bt();const l=Hn(n),c=Je(t,n,e,i);return l(),Et(),c});return r?s.unshift(o):s.push(o),o}}const St=e=>(t,n=Ne)=>{(!Bn||e==="sp")&&Pr(e,(...r)=>t(...r),n)},Va=St("bm"),bl=St("m"),$a=St("bu"),El=St("u"),wl=St("bum"),vl=St("um"),qa=St("sp"),Ka=St("rtg"),Wa=St("rtc");function Ga(e,t=Ne){Pr("ec",e,t)}const za=Symbol.for("v-ndc");function Ja(e,t,n,r){let s;const o=n,i=K(e);if(i||pe(e)){const l=i&&ft(e);let c=!1,u=!1;l&&(c=!je(e),u=wt(e),e=Cr(e)),s=new Array(e.length);for(let a=0,f=e.length;at(l,c,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let c=0,u=l.length;c0;return qe(),gr(ve,null,[be("slot",n,r)],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),qe();const i=o&&Sl(o(n)),l=n.key||i&&i.key,c=gr(ve,{key:(l&&!vt(l)?l:`_${t}`)+(!i&&r?"_fb":"")},i||[],i&&e._===1?64:-2);return c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),o&&o._c&&(o._d=!0),c}function Sl(e){return e.some(t=>kn(t)?!(t.type===ht||t.type===ve&&!Sl(t.children)):!0)?e:null}const ps=e=>e?Hl(e)?Lr(e):ps(e.parent):null,Cn=Ee(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=>ps(e.parent),$root:e=>ps(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Rl(e),$forceUpdate:e=>e.f||(e.f=()=>{qs(e.update)}),$nextTick:e=>e.n||(e.n=$s.bind(e.proxy)),$watch:e=>Ia.bind(e)}),Gr=(e,t)=>e!==ce&&!e.__isScriptSetup&&oe(e,t),Xa={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:o,accessCache:i,type:l,appContext:c}=e;if(t[0]!=="$"){const h=i[t];if(h!==void 0)switch(h){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(Gr(r,t))return i[t]=1,r[t];if(s!==ce&&oe(s,t))return i[t]=2,s[t];if(oe(o,t))return i[t]=3,o[t];if(n!==ce&&oe(n,t))return i[t]=4,n[t];ms&&(i[t]=0)}}const u=Cn[t];let a,f;if(u)return t==="$attrs"&&Ae(e.attrs,"get",""),u(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==ce&&oe(n,t))return i[t]=4,n[t];if(f=c.config.globalProperties,oe(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return Gr(s,t)?(s[t]=n,!0):r!==ce&&oe(r,t)?(r[t]=n,!0):oe(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:o,type:i}},l){let c;return!!(n[l]||e!==ce&&l[0]!=="$"&&oe(e,l)||Gr(t,l)||oe(o,l)||oe(r,l)||oe(Cn,l)||oe(s.config.globalProperties,l)||(c=i.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:oe(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function mo(e){return K(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let ms=!0;function Qa(e){const t=Rl(e),n=e.proxy,r=e.ctx;ms=!1,t.beforeCreate&&go(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:u,created:a,beforeMount:f,mounted:h,beforeUpdate:m,updated:g,activated:b,deactivated:E,beforeDestroy:C,beforeUnmount:T,destroyed:N,unmounted:O,render:B,renderTracked:G,renderTriggered:j,errorCaptured:U,serverPrefetch:x,expose:$,inheritAttrs:Y,components:L,directives:Q,filters:le}=t;if(u&&Ya(u,r,null),i)for(const z in i){const Z=i[z];J(Z)&&(r[z]=Z.bind(n))}if(s){const z=s.call(n,n);ae(z)&&(e.data=fn(z))}if(ms=!0,o)for(const z in o){const Z=o[z],He=J(Z)?Z.bind(n,n):J(Z.get)?Z.get.bind(n,n):ut,Ye=!J(Z)&&J(Z.set)?Z.set.bind(n):ut,ye=Be({get:He,set:Ye});Object.defineProperty(r,z,{enumerable:!0,configurable:!0,get:()=>ye.value,set:me=>ye.value=me})}if(l)for(const z in l)Al(l[z],r,n,z);if(c){const z=J(c)?c.call(n):c;Reflect.ownKeys(z).forEach(Z=>{tr(Z,z[Z])})}a&&go(a,e,"c");function ee(z,Z){K(Z)?Z.forEach(He=>z(He.bind(n))):Z&&z(Z.bind(n))}if(ee(Va,f),ee(bl,h),ee($a,m),ee(El,g),ee(Ua,b),ee(ja,E),ee(Ga,U),ee(Wa,G),ee(Ka,j),ee(wl,T),ee(vl,O),ee(qa,x),K($))if($.length){const z=e.exposed||(e.exposed={});$.forEach(Z=>{Object.defineProperty(z,Z,{get:()=>n[Z],set:He=>n[Z]=He,enumerable:!0})})}else e.exposed||(e.exposed={});B&&e.render===ut&&(e.render=B),Y!=null&&(e.inheritAttrs=Y),L&&(e.components=L),Q&&(e.directives=Q),x&&gl(e)}function Ya(e,t,n=ut){K(e)&&(e=gs(e));for(const r in e){const s=e[r];let o;ae(s)?"default"in s?o=Ke(s.from||r,s.default,!0):o=Ke(s.from||r):o=Ke(s),de(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function go(e,t,n){Je(K(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Al(e,t,n,r){let s=r.includes(".")?fl(n,r):()=>n[r];if(pe(e)){const o=t[e];J(o)&&Sn(s,o)}else if(J(e))Sn(s,e.bind(n));else if(ae(e))if(K(e))e.forEach(o=>Al(o,t,n,r));else{const o=J(e.handler)?e.handler.bind(n):t[e.handler];J(o)&&Sn(s,o,e)}}function Rl(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>pr(c,u,i,!0)),pr(c,t,i)),ae(t)&&o.set(t,c),c}function pr(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&pr(e,o,n,!0),s&&s.forEach(i=>pr(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Za[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Za={data:yo,props:_o,emits:_o,methods:bn,computed:bn,beforeCreate:xe,created:xe,beforeMount:xe,mounted:xe,beforeUpdate:xe,updated:xe,beforeDestroy:xe,beforeUnmount:xe,destroyed:xe,unmounted:xe,activated:xe,deactivated:xe,errorCaptured:xe,serverPrefetch:xe,components:bn,directives:bn,watch:tu,provide:yo,inject:eu};function yo(e,t){return t?e?function(){return Ee(J(e)?e.call(this,this):e,J(t)?t.call(this,this):t)}:t:e}function eu(e,t){return bn(gs(e),gs(t))}function gs(e){if(K(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Dt(t)}Modifiers`]||e[`${zt(t)}Modifiers`];function ou(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||ce;let s=n;const o=t.startsWith("update:"),i=o&&su(r,t.slice(7));i&&(i.trim&&(s=n.map(a=>pe(a)?a.trim():a)),i.number&&(s=n.map(Ds)));let l,c=r[l=Vr(t)]||r[l=Vr(Dt(t))];!c&&o&&(c=r[l=Vr(zt(t))]),c&&Je(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Je(u,e,6,s)}}const iu=new WeakMap;function xl(e,t,n=!1){const r=n?iu:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!J(e)){const c=u=>{const a=xl(u,t,!0);a&&(l=!0,Ee(i,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(ae(e)&&r.set(e,null),null):(K(o)?o.forEach(c=>i[c]=null):Ee(i,o),ae(e)&&r.set(e,i),i)}function Nr(e,t){return!e||!wr(t)?!1:(t=t.slice(2).replace(/Once$/,""),oe(e,t[0].toLowerCase()+t.slice(1))||oe(e,zt(t))||oe(e,t))}function bo(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:a,props:f,data:h,setupState:m,ctx:g,inheritAttrs:b}=e,E=dr(e);let C,T;try{if(n.shapeFlag&4){const O=s||r,B=O;C=at(u.call(B,O,a,f,m,h,g)),T=l}else{const O=t;C=at(O.length>1?O(f,{attrs:l,slots:i,emit:c}):O(f,null)),T=t.props?l:lu(l)}}catch(O){xn.length=0,Tr(O,e,1),C=be(ht)}let N=C;if(T&&b!==!1){const O=Object.keys(T),{shapeFlag:B}=N;O.length&&B&7&&(o&&O.some(Is)&&(T=cu(T,o)),N=Wt(N,T,!1,!0))}return n.dirs&&(N=Wt(N,null,!1,!0),N.dirs=N.dirs?N.dirs.concat(n.dirs):n.dirs),n.transition&&Fn(N,n.transition),C=N,dr(E),C}const lu=e=>{let t;for(const n in e)(n==="class"||n==="style"||wr(n))&&((t||(t={}))[n]=e[n]);return t},cu=(e,t)=>{const n={};for(const r in e)(!Is(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function au(e,t,n){const{props:r,children:s,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 r?Eo(r,i,u):!!i;if(c&8){const a=t.dynamicProps;for(let f=0;fObject.create(Tl),Pl=e=>Object.getPrototypeOf(e)===Tl;function fu(e,t,n,r=!1){const s={},o=Ol();e.propsDefaults=Object.create(null),Nl(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:el(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function du(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=re(s),[c]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const a=e.vnode.dynamicProps;for(let f=0;f{c=!0;const[h,m]=Il(f,t,!0);Ee(i,h),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!c)return ae(e)&&r.set(e,tn),tn;if(K(o))for(let a=0;ae==="_"||e==="_ctx"||e==="$stable",Ws=e=>K(e)?e.map(at):[at(e)],pu=(e,t,n)=>{if(t._n)return t;const r=al((...s)=>Ws(t(...s)),n);return r._c=!1,r},Ll=(e,t,n)=>{const r=e._ctx;for(const s in e){if(Ks(s))continue;const o=e[s];if(J(o))t[s]=pu(s,o,r);else if(o!=null){const i=Ws(o);t[s]=()=>i}}},Dl=(e,t)=>{const n=Ws(t);e.slots.default=()=>n},Fl=(e,t,n)=>{for(const r in t)(n||!Ks(r))&&(e[r]=t[r])},mu=(e,t,n)=>{const r=e.slots=Ol();if(e.vnode.shapeFlag&32){const s=t._;s?(Fl(r,t,n),n&&Li(r,"_",s,!0)):Ll(t,r)}else t&&Dl(e,t)},gu=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=ce;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:Fl(s,t,n):(o=!t.$stable,Ll(t,s)),i=t}else t&&(Dl(e,t),i={default:1});if(o)for(const l in s)!Ks(l)&&i[l]==null&&delete s[l]},Te=wu;function yu(e){return _u(e)}function _u(e,t){const n=Rr();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:a,parentNode:f,nextSibling:h,setScopeId:m=ut,insertStaticContent:g}=e,b=(d,p,y,w=null,A=null,v=null,D=void 0,I=null,P=!!p.dynamicChildren)=>{if(d===p)return;d&&!Yt(d,p)&&(w=S(d),me(d,A,v,!0),d=null),p.patchFlag===-2&&(P=!1,p.dynamicChildren=null);const{type:R,ref:q,shapeFlag:M}=p;switch(R){case Ir:E(d,p,y,w);break;case ht:C(d,p,y,w);break;case rr:d==null&&T(p,y,w,D);break;case ve:L(d,p,y,w,A,v,D,I,P);break;default:M&1?B(d,p,y,w,A,v,D,I,P):M&6?Q(d,p,y,w,A,v,D,I,P):(M&64||M&128)&&R.process(d,p,y,w,A,v,D,I,P,H)}q!=null&&A?Rn(q,d&&d.ref,v,p||d,!p):q==null&&d&&d.ref!=null&&Rn(d.ref,null,v,d,!0)},E=(d,p,y,w)=>{if(d==null)r(p.el=l(p.children),y,w);else{const A=p.el=d.el;p.children!==d.children&&u(A,p.children)}},C=(d,p,y,w)=>{d==null?r(p.el=c(p.children||""),y,w):p.el=d.el},T=(d,p,y,w)=>{[d.el,d.anchor]=g(d.children,p,y,w,d.el,d.anchor)},N=({el:d,anchor:p},y,w)=>{let A;for(;d&&d!==p;)A=h(d),r(d,y,w),d=A;r(p,y,w)},O=({el:d,anchor:p})=>{let y;for(;d&&d!==p;)y=h(d),s(d),d=y;s(p)},B=(d,p,y,w,A,v,D,I,P)=>{if(p.type==="svg"?D="svg":p.type==="math"&&(D="mathml"),d==null)G(p,y,w,A,v,D,I,P);else{const R=d.el&&d.el._isVueCE?d.el:null;try{R&&R._beginPatch(),x(d,p,A,v,D,I,P)}finally{R&&R._endPatch()}}},G=(d,p,y,w,A,v,D,I)=>{let P,R;const{props:q,shapeFlag:M,transition:V,dirs:W}=d;if(P=d.el=i(d.type,v,q&&q.is,q),M&8?a(P,d.children):M&16&&U(d.children,P,null,w,A,zr(d,v),D,I),W&&Ft(d,null,w,"created"),j(P,d,d.scopeId,D,w),q){for(const ue in q)ue!=="value"&&!En(ue)&&o(P,ue,null,q[ue],v,w);"value"in q&&o(P,"value",null,q.value,v),(R=q.onVnodeBeforeMount)&&st(R,w,d)}W&&Ft(d,null,w,"beforeMount");const ne=bu(A,V);ne&&V.beforeEnter(P),r(P,p,y),((R=q&&q.onVnodeMounted)||ne||W)&&Te(()=>{R&&st(R,w,d),ne&&V.enter(P),W&&Ft(d,null,w,"mounted")},A)},j=(d,p,y,w,A)=>{if(y&&m(d,y),w)for(let v=0;v{for(let R=P;R{const I=p.el=d.el;let{patchFlag:P,dynamicChildren:R,dirs:q}=p;P|=d.patchFlag&16;const M=d.props||ce,V=p.props||ce;let W;if(y&&Mt(y,!1),(W=V.onVnodeBeforeUpdate)&&st(W,y,p,d),q&&Ft(p,d,y,"beforeUpdate"),y&&Mt(y,!0),(M.innerHTML&&V.innerHTML==null||M.textContent&&V.textContent==null)&&a(I,""),R?$(d.dynamicChildren,R,I,y,w,zr(p,A),v):D||Z(d,p,I,null,y,w,zr(p,A),v,!1),P>0){if(P&16)Y(I,M,V,y,A);else if(P&2&&M.class!==V.class&&o(I,"class",null,V.class,A),P&4&&o(I,"style",M.style,V.style,A),P&8){const ne=p.dynamicProps;for(let ue=0;ue{W&&st(W,y,p,d),q&&Ft(p,d,y,"updated")},w)},$=(d,p,y,w,A,v,D)=>{for(let I=0;I{if(p!==y){if(p!==ce)for(const v in p)!En(v)&&!(v in y)&&o(d,v,p[v],null,A,w);for(const v in y){if(En(v))continue;const D=y[v],I=p[v];D!==I&&v!=="value"&&o(d,v,I,D,A,w)}"value"in y&&o(d,"value",p.value,y.value,A)}},L=(d,p,y,w,A,v,D,I,P)=>{const R=p.el=d?d.el:l(""),q=p.anchor=d?d.anchor:l("");let{patchFlag:M,dynamicChildren:V,slotScopeIds:W}=p;W&&(I=I?I.concat(W):W),d==null?(r(R,y,w),r(q,y,w),U(p.children||[],y,q,A,v,D,I,P)):M>0&&M&64&&V&&d.dynamicChildren&&d.dynamicChildren.length===V.length?($(d.dynamicChildren,V,y,A,v,D,I),(p.key!=null||A&&p===A.subTree)&&Gs(d,p,!0)):Z(d,p,y,q,A,v,D,I,P)},Q=(d,p,y,w,A,v,D,I,P)=>{p.slotScopeIds=I,d==null?p.shapeFlag&512?A.ctx.activate(p,y,w,D,P):le(p,y,w,A,v,D,P):we(d,p,P)},le=(d,p,y,w,A,v,D)=>{const I=d.component=Pu(d,w,A);if(yl(d)&&(I.ctx.renderer=H),Nu(I,!1,D),I.asyncDep){if(A&&A.registerDep(I,ee,D),!d.el){const P=I.subTree=be(ht);C(null,P,p,y),d.placeholder=P.el}}else ee(I,d,p,y,A,v,D)},we=(d,p,y)=>{const w=p.component=d.component;if(au(d,p,y))if(w.asyncDep&&!w.asyncResolved){z(w,p,y);return}else w.next=p,w.update();else p.el=d.el,w.vnode=p},ee=(d,p,y,w,A,v,D)=>{const I=()=>{if(d.isMounted){let{next:M,bu:V,u:W,parent:ne,vnode:ue}=d;{const nt=Ml(d);if(nt){M&&(M.el=ue.el,z(d,M,D)),nt.asyncDep.then(()=>{d.isUnmounted||I()});return}}let ie=M,Ie;Mt(d,!1),M?(M.el=ue.el,z(d,M,D)):M=ue,V&&er(V),(Ie=M.props&&M.props.onVnodeBeforeUpdate)&&st(Ie,ne,M,ue),Mt(d,!0);const Le=bo(d),tt=d.subTree;d.subTree=Le,b(tt,Le,f(tt.el),S(tt),d,A,v),M.el=Le.el,ie===null&&uu(d,Le.el),W&&Te(W,A),(Ie=M.props&&M.props.onVnodeUpdated)&&Te(()=>st(Ie,ne,M,ue),A)}else{let M;const{el:V,props:W}=p,{bm:ne,m:ue,parent:ie,root:Ie,type:Le}=d,tt=sn(p);Mt(d,!1),ne&&er(ne),!tt&&(M=W&&W.onVnodeBeforeMount)&&st(M,ie,p),Mt(d,!0);{Ie.ce&&Ie.ce._def.shadowRoot!==!1&&Ie.ce._injectChildStyle(Le);const nt=d.subTree=bo(d);b(null,nt,y,w,d,A,v),p.el=nt.el}if(ue&&Te(ue,A),!tt&&(M=W&&W.onVnodeMounted)){const nt=p;Te(()=>st(M,ie,nt),A)}(p.shapeFlag&256||ie&&sn(ie.vnode)&&ie.vnode.shapeFlag&256)&&d.a&&Te(d.a,A),d.isMounted=!0,p=y=w=null}};d.scope.on();const P=d.effect=new ji(I);d.scope.off();const R=d.update=P.run.bind(P),q=d.job=P.runIfDirty.bind(P);q.i=d,q.id=d.uid,P.scheduler=()=>qs(q),Mt(d,!0),R()},z=(d,p,y)=>{p.component=d;const w=d.vnode.props;d.vnode=p,d.next=null,du(d,p.props,w,y),gu(d,p.children,y),bt(),ao(d),Et()},Z=(d,p,y,w,A,v,D,I,P=!1)=>{const R=d&&d.children,q=d?d.shapeFlag:0,M=p.children,{patchFlag:V,shapeFlag:W}=p;if(V>0){if(V&128){Ye(R,M,y,w,A,v,D,I,P);return}else if(V&256){He(R,M,y,w,A,v,D,I,P);return}}W&8?(q&16&&Ve(R,A,v),M!==R&&a(y,M)):q&16?W&16?Ye(R,M,y,w,A,v,D,I,P):Ve(R,A,v,!0):(q&8&&a(y,""),W&16&&U(M,y,w,A,v,D,I,P))},He=(d,p,y,w,A,v,D,I,P)=>{d=d||tn,p=p||tn;const R=d.length,q=p.length,M=Math.min(R,q);let V;for(V=0;Vq?Ve(d,A,v,!0,!1,M):U(p,y,w,A,v,D,I,P,M)},Ye=(d,p,y,w,A,v,D,I,P)=>{let R=0;const q=p.length;let M=d.length-1,V=q-1;for(;R<=M&&R<=V;){const W=d[R],ne=p[R]=P?Nt(p[R]):at(p[R]);if(Yt(W,ne))b(W,ne,y,null,A,v,D,I,P);else break;R++}for(;R<=M&&R<=V;){const W=d[M],ne=p[V]=P?Nt(p[V]):at(p[V]);if(Yt(W,ne))b(W,ne,y,null,A,v,D,I,P);else break;M--,V--}if(R>M){if(R<=V){const W=V+1,ne=WV)for(;R<=M;)me(d[R],A,v,!0),R++;else{const W=R,ne=R,ue=new Map;for(R=ne;R<=V;R++){const Me=p[R]=P?Nt(p[R]):at(p[R]);Me.key!=null&&ue.set(Me.key,R)}let ie,Ie=0;const Le=V-ne+1;let tt=!1,nt=0;const pn=new Array(Le);for(R=0;R=Le){me(Me,A,v,!0);continue}let rt;if(Me.key!=null)rt=ue.get(Me.key);else for(ie=ne;ie<=V;ie++)if(pn[ie-ne]===0&&Yt(Me,p[ie])){rt=ie;break}rt===void 0?me(Me,A,v,!0):(pn[rt-ne]=R+1,rt>=nt?nt=rt:tt=!0,b(Me,p[rt],y,null,A,v,D,I,P),Ie++)}const ro=tt?Eu(pn):tn;for(ie=ro.length-1,R=Le-1;R>=0;R--){const Me=ne+R,rt=p[Me],so=p[Me+1],oo=Me+1{const{el:v,type:D,transition:I,children:P,shapeFlag:R}=d;if(R&6){ye(d.component.subTree,p,y,w);return}if(R&128){d.suspense.move(p,y,w);return}if(R&64){D.move(d,p,y,H);return}if(D===ve){r(v,p,y);for(let M=0;MI.enter(v),A);else{const{leave:M,delayLeave:V,afterLeave:W}=I,ne=()=>{d.ctx.isUnmounted?s(v):r(v,p,y)},ue=()=>{v._isLeaving&&v[Ut](!0),M(v,()=>{ne(),W&&W()})};V?V(v,ne,ue):ue()}else r(v,p,y)},me=(d,p,y,w=!1,A=!1)=>{const{type:v,props:D,ref:I,children:P,dynamicChildren:R,shapeFlag:q,patchFlag:M,dirs:V,cacheIndex:W}=d;if(M===-2&&(A=!1),I!=null&&(bt(),Rn(I,null,y,d,!0),Et()),W!=null&&(p.renderCache[W]=void 0),q&256){p.ctx.deactivate(d);return}const ne=q&1&&V,ue=!sn(d);let ie;if(ue&&(ie=D&&D.onVnodeBeforeUnmount)&&st(ie,p,d),q&6)et(d.component,y,w);else{if(q&128){d.suspense.unmount(y,w);return}ne&&Ft(d,null,p,"beforeUnmount"),q&64?d.type.remove(d,p,y,H,w):R&&!R.hasOnce&&(v!==ve||M>0&&M&64)?Ve(R,p,y,!1,!0):(v===ve&&M&384||!A&&q&16)&&Ve(P,p,y),w&&Ze(d)}(ue&&(ie=D&&D.onVnodeUnmounted)||ne)&&Te(()=>{ie&&st(ie,p,d),ne&&Ft(d,null,p,"unmounted")},y)},Ze=d=>{const{type:p,el:y,anchor:w,transition:A}=d;if(p===ve){We(y,w);return}if(p===rr){O(d);return}const v=()=>{s(y),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(d.shapeFlag&1&&A&&!A.persisted){const{leave:D,delayLeave:I}=A,P=()=>D(y,v);I?I(d.el,v,P):P()}else v()},We=(d,p)=>{let y;for(;d!==p;)y=h(d),s(d),d=y;s(p)},et=(d,p,y)=>{const{bum:w,scope:A,job:v,subTree:D,um:I,m:P,a:R}=d;vo(P),vo(R),w&&er(w),A.stop(),v&&(v.flags|=8,me(D,d,p,y)),I&&Te(I,p),Te(()=>{d.isUnmounted=!0},p)},Ve=(d,p,y,w=!1,A=!1,v=0)=>{for(let D=v;D{if(d.shapeFlag&6)return S(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const p=h(d.anchor||d.el),y=p&&p[dl];return y?h(y):p};let k=!1;const F=(d,p,y)=>{let w;d==null?p._vnode&&(me(p._vnode,null,null,!0),w=p._vnode.component):b(p._vnode||null,d,p,null,null,null,y),p._vnode=d,k||(k=!0,ao(w),il(),k=!1)},H={p:b,um:me,m:ye,r:Ze,mt:le,mc:U,pc:Z,pbc:$,n:S,o:e};return{render:F,hydrate:void 0,createApp:ru(F)}}function zr({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 Mt({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function bu(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Gs(e,t,n=!1){const r=e.children,s=t.children;if(K(r)&&K(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Ml(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Ml(t)}function vo(e){if(e)for(let t=0;te.__isSuspense;function wu(e,t){t&&t.pendingBranch?K(e)?t.effects.push(...e):t.effects.push(e):Ta(e)}const ve=Symbol.for("v-fgt"),Ir=Symbol.for("v-txt"),ht=Symbol.for("v-cmt"),rr=Symbol.for("v-stc"),xn=[];let Ue=null;function qe(e=!1){xn.push(Ue=e?null:[])}function vu(){xn.pop(),Ue=xn[xn.length-1]||null}let Mn=1;function mr(e,t=!1){Mn+=e,e<0&&Ue&&t&&(Ue.hasOnce=!0)}function Ul(e){return e.dynamicChildren=Mn>0?Ue||tn:null,vu(),Mn>0&&Ue&&Ue.push(e),e}function Ct(e,t,n,r,s,o){return Ul(ke(e,t,n,r,s,o,!0))}function gr(e,t,n,r,s){return Ul(be(e,t,n,r,s,!0))}function kn(e){return e?e.__v_isVNode===!0:!1}function Yt(e,t){return e.type===t.type&&e.key===t.key}const jl=({key:e})=>e??null,sr=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?pe(e)||de(e)||J(e)?{i:Ce,r:e,k:t,f:!!n}:e:null);function ke(e,t=null,n=null,r=0,s=null,o=e===ve?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&jl(t),ref:t&&sr(t),scopeId:cl,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:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Ce};return l?(zs(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=pe(n)?8:16),Mn>0&&!i&&Ue&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Ue.push(c),c}const be=Su;function Su(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===za)&&(e=ht),kn(e)){const l=Wt(e,t,!0);return n&&zs(l,n),Mn>0&&!o&&Ue&&(l.shapeFlag&6?Ue[Ue.indexOf(e)]=l:Ue.push(l)),l.patchFlag=-2,l}if(Fu(e)&&(e=e.__vccOpts),t){t=Au(t);let{class:l,style:c}=t;l&&!pe(l)&&(t.class=Nn(l)),ae(c)&&(xr(c)&&!K(c)&&(c=Ee({},c)),t.style=Fs(c))}const i=pe(e)?1:Bl(e)?128:La(e)?64:ae(e)?4:J(e)?2:0;return ke(e,t,n,r,s,i,o,!0)}function Au(e){return e?xr(e)||Pl(e)?Ee({},e):e:null}function Wt(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?xu(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&jl(u),ref:t&&t.ref?n&&o?K(o)?o.concat(sr(t)):[o,sr(t)]:sr(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&&r&&Fn(a,c.clone(a)),a}function Ru(e=" ",t=0){return be(Ir,null,e,t)}function Op(e,t){const n=be(rr,null,e);return n.staticCount=t,n}function Cu(e="",t=!1){return t?(qe(),gr(ht,null,e)):be(ht,null,e)}function at(e){return e==null||typeof e=="boolean"?be(ht):K(e)?be(ve,null,e.slice()):kn(e)?Nt(e):be(Ir,null,String(e))}function Nt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Wt(e)}function zs(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(K(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),zs(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Pl(t)?t._ctx=Ce:s===3&&Ce&&(Ce.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else J(t)?(t={default:t,_ctx:Ce},n=32):(t=String(t),r&64?(n=16,t=[Ru(t)]):n=8);e.children=t,e.shapeFlag|=n}function xu(...e){const t={};for(let n=0;nNe||Ce;let yr,_s;{const e=Rr(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};yr=t("__VUE_INSTANCE_SETTERS__",n=>Ne=n),_s=t("__VUE_SSR_SETTERS__",n=>Bn=n)}const Hn=e=>{const t=Ne;return yr(e),e.scope.on(),()=>{e.scope.off(),yr(t)}},So=()=>{Ne&&Ne.scope.off(),yr(null)};function Hl(e){return e.vnode.shapeFlag&4}let Bn=!1;function Nu(e,t=!1,n=!1){t&&_s(t);const{props:r,children:s}=e.vnode,o=Hl(e);fu(e,r,o,t),mu(e,s,n||t);const i=o?Iu(e,t):void 0;return t&&_s(!1),i}function Iu(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Xa);const{setup:r}=n;if(r){bt();const s=e.setupContext=r.length>1?Du(e):null,o=Hn(e),i=jn(r,e,0,[e.props,s]),l=Oi(i);if(Et(),o(),(l||e.sp)&&!sn(e)&&gl(e),l){if(i.then(So,So),t)return i.then(c=>{Ao(e,c)}).catch(c=>{Tr(c,e,0)});e.asyncDep=i}else Ao(e,i)}else Vl(e)}function Ao(e,t,n){J(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ae(t)&&(e.setupState=nl(t)),Vl(e)}function Vl(e,t,n){const r=e.type;e.render||(e.render=r.render||ut);{const s=Hn(e);bt();try{Qa(e)}finally{Et(),s()}}}const Lu={get(e,t){return Ae(e,"get",""),e[t]}};function Du(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Lu),slots:e.slots,emit:e.emit,expose:t}}function Lr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(nl(Vs(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Cn)return Cn[n](e)},has(t,n){return n in t||n in Cn}})):e.proxy}function Fu(e){return J(e)&&"__vccOpts"in e}const Be=(e,t)=>Sa(e,t,Bn);function $l(e,t,n){try{mr(-1);const r=arguments.length;return r===2?ae(t)&&!K(t)?kn(t)?be(e,null,[t]):be(e,t):be(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&kn(n)&&(n=[n]),be(e,t,n))}finally{mr(1)}}const Mu="3.5.26";let bs;const Ro=typeof window<"u"&&window.trustedTypes;if(Ro)try{bs=Ro.createPolicy("vue",{createHTML:e=>e})}catch{}const ql=bs?e=>bs.createHTML(e):e=>e,ku="http://www.w3.org/2000/svg",Bu="http://www.w3.org/1998/Math/MathML",gt=typeof document<"u"?document:null,Co=gt&>.createElement("template"),Uu={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?gt.createElementNS(ku,e):t==="mathml"?gt.createElementNS(Bu,e):n?gt.createElement(e,{is:n}):gt.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>gt.createTextNode(e),createComment:e=>gt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>gt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{Co.innerHTML=ql(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=Co.content;if(r==="svg"||r==="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]}},At="transition",gn="animation",ln=Symbol("_vtc"),Kl={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},ju=Ee({},ka,Kl),kt=(e,t=[])=>{K(e)?e.forEach(n=>n(...t)):e&&e(...t)},xo=e=>e?K(e)?e.some(t=>t.length>1):e.length>1:!1;function Hu(e){const t={};for(const L in e)L in Kl||(t[L]=e[L]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=o,appearActiveClass:u=i,appearToClass:a=l,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:h=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,g=Vu(s),b=g&&g[0],E=g&&g[1],{onBeforeEnter:C,onEnter:T,onEnterCancelled:N,onLeave:O,onLeaveCancelled:B,onBeforeAppear:G=C,onAppear:j=T,onAppearCancelled:U=N}=t,x=(L,Q,le,we)=>{L._enterCancelled=we,xt(L,Q?a:l),xt(L,Q?u:i),le&&le()},$=(L,Q)=>{L._isLeaving=!1,xt(L,f),xt(L,m),xt(L,h),Q&&Q()},Y=L=>(Q,le)=>{const we=L?j:T,ee=()=>x(Q,L,le);kt(we,[Q,ee]),To(()=>{xt(Q,L?c:o),lt(Q,L?a:l),xo(we)||Oo(Q,r,b,ee)})};return Ee(t,{onBeforeEnter(L){kt(C,[L]),lt(L,o),lt(L,i)},onBeforeAppear(L){kt(G,[L]),lt(L,c),lt(L,u)},onEnter:Y(!1),onAppear:Y(!0),onLeave(L,Q){L._isLeaving=!0;const le=()=>$(L,Q);lt(L,f),L._enterCancelled?(lt(L,h),Es(L)):(Es(L),lt(L,h)),To(()=>{L._isLeaving&&(xt(L,f),lt(L,m),xo(O)||Oo(L,r,E,le))}),kt(O,[L,le])},onEnterCancelled(L){x(L,!1,void 0,!0),kt(N,[L])},onAppearCancelled(L){x(L,!0,void 0,!0),kt(U,[L])},onLeaveCancelled(L){$(L),kt(B,[L])}})}function Vu(e){if(e==null)return null;if(ae(e))return[Jr(e.enter),Jr(e.leave)];{const t=Jr(e);return[t,t]}}function Jr(e){return Vc(e)}function lt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[ln]||(e[ln]=new Set)).add(t)}function xt(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[ln];n&&(n.delete(t),n.size||(e[ln]=void 0))}function To(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let $u=0;function Oo(e,t,n,r){const s=e._endId=++$u,o=()=>{s===e._endId&&r()};if(n!=null)return setTimeout(o,n);const{type:i,timeout:l,propCount:c}=Wl(e,t);if(!i)return r();const u=i+"end";let a=0;const f=()=>{e.removeEventListener(u,h),o()},h=m=>{m.target===e&&++a>=c&&f()};setTimeout(()=>{a(n[g]||"").split(", "),s=r(`${At}Delay`),o=r(`${At}Duration`),i=Po(s,o),l=r(`${gn}Delay`),c=r(`${gn}Duration`),u=Po(l,c);let a=null,f=0,h=0;t===At?i>0&&(a=At,f=i,h=o.length):t===gn?u>0&&(a=gn,f=u,h=c.length):(f=Math.max(i,u),a=f>0?i>u?At:gn:null,h=a?a===At?o.length:c.length:0);const m=a===At&&/\b(?:transform|all)(?:,|$)/.test(r(`${At}Property`).toString());return{type:a,timeout:f,propCount:h,hasTransform:m}}function Po(e,t){for(;e.lengthNo(n)+No(e[r])))}function No(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Es(e){return(e?e.ownerDocument:document).body.offsetHeight}function qu(e,t,n){const r=e[ln];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Io=Symbol("_vod"),Ku=Symbol("_vsh"),Wu=Symbol(""),Gu=/(?:^|;)\s*display\s*:/;function zu(e,t,n){const r=e.style,s=pe(n);let o=!1;if(n&&!s){if(t)if(pe(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&or(r,l,"")}else for(const i in t)n[i]==null&&or(r,i,"");for(const i in n)i==="display"&&(o=!0),or(r,i,n[i])}else if(s){if(t!==n){const i=r[Wu];i&&(n+=";"+i),r.cssText=n,o=Gu.test(n)}}else t&&e.removeAttribute("style");Io in e&&(e[Io]=o?r.display:"",e[Ku]&&(r.display="none"))}const Lo=/\s*!important$/;function or(e,t,n){if(K(n))n.forEach(r=>or(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Ju(e,t);Lo.test(n)?e.setProperty(zt(r),n.replace(Lo,""),"important"):e[r]=n}}const Do=["Webkit","Moz","ms"],Xr={};function Ju(e,t){const n=Xr[t];if(n)return n;let r=Dt(t);if(r!=="filter"&&r in e)return Xr[t]=r;r=Ii(r);for(let s=0;sQr||(Zu.then(()=>Qr=0),Qr=Date.now());function tf(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Je(nf(r,n.value),t,5,[r])};return n.value=e,n.attached=ef(),n}function nf(e,t){if(K(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const jo=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,rf=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?qu(e,r,i):t==="style"?zu(e,n,r):wr(t)?Is(t)||Qu(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):sf(e,t,r,i))?(ko(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Mo(e,t,r,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!pe(r))?ko(e,Dt(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Mo(e,t,r,i))};function sf(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&jo(t)&&J(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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return jo(t)&&pe(n)?!1:t in e}const Gl=new WeakMap,zl=new WeakMap,_r=Symbol("_moveCb"),Ho=Symbol("_enterCb"),of=e=>(delete e.props.mode,e),lf=of({name:"TransitionGroup",props:Ee({},ju,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=Js(),r=Ma();let s,o;return El(()=>{if(!s.length)return;const i=e.moveClass||`${e.name||"v"}-move`;if(!df(s[0].el,n.vnode.el,i)){s=[];return}s.forEach(af),s.forEach(uf);const l=s.filter(ff);Es(n.vnode.el),l.forEach(c=>{const u=c.el,a=u.style;lt(u,i),a.transform=a.webkitTransform=a.transitionDuration="";const f=u[_r]=h=>{h&&h.target!==u||(!h||h.propertyName.endsWith("transform"))&&(u.removeEventListener("transitionend",f),u[_r]=null,xt(u,i))};u.addEventListener("transitionend",f)}),s=[]}),()=>{const i=re(e),l=Hu(i);let c=i.tag||ve;if(s=[],o)for(let u=0;u{l.split(/\s+/).forEach(c=>c&&r.classList.remove(c))}),n.split(/\s+/).forEach(l=>l&&r.classList.add(l)),r.style.display="none";const o=t.nodeType===1?t:t.parentNode;o.appendChild(r);const{hasTransform:i}=Wl(r);return o.removeChild(r),i}const Vo=e=>{const t=e.props["onUpdate:modelValue"]||!1;return K(t)?n=>er(t,n):t};function hf(e){e.target.composing=!0}function $o(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Yr=Symbol("_assign");function qo(e,t,n){return t&&(e=e.trim()),n&&(e=Ds(e)),e}const Pp={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Yr]=Vo(s);const o=r||s.props&&s.props.type==="number";Zt(e,t?"change":"input",i=>{i.target.composing||e[Yr](qo(e.value,n,o))}),(n||o)&&Zt(e,"change",()=>{e.value=qo(e.value,n,o)}),t||(Zt(e,"compositionstart",hf),Zt(e,"compositionend",$o),Zt(e,"change",$o))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Yr]=Vo(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?Ds(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},pf=["ctrl","shift","alt","meta"],mf={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>pf.some(n=>e[`${n}Key`]&&!t.includes(n))},Np=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const t=yf().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Ef(r);if(!s)return;const o=t._component;!J(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,bf(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t});function bf(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Ef(e){return pe(e)?document.querySelector(e):e}let Jl;const Dr=e=>Jl=e,Xl=Symbol();function ws(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Tn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Tn||(Tn={}));function wf(){const e=Bi(!0),t=e.run(()=>$t({}));let n=[],r=[];const s=Vs({install(o){Dr(s),s._a=o,o.provide(Xl,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const Ql=()=>{};function Wo(e,t,n,r=Ql){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&Ui()&&Jc(s),s}function Xt(e,...t){e.forEach(n=>{n(...t)})}const vf=e=>e(),Go=Symbol(),Zr=Symbol();function vs(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];ws(s)&&ws(r)&&e.hasOwnProperty(n)&&!de(r)&&!ft(r)?e[n]=vs(s,r):e[n]=r}return e}const Sf=Symbol();function Af(e){return!ws(e)||!Object.prototype.hasOwnProperty.call(e,Sf)}const{assign:Tt}=Object;function Rf(e){return!!(de(e)&&e.effect)}function Cf(e,t,n,r){const{state:s,actions:o,getters:i}=t,l=n.state.value[e];let c;function u(){l||(n.state.value[e]=s?s():{});const a=_a(n.state.value[e]);return Tt(a,o,Object.keys(i||{}).reduce((f,h)=>(f[h]=Vs(Be(()=>{Dr(n);const m=n._s.get(e);return i[h].call(m,m)})),f),{}))}return c=Yl(e,u,t,n,r,!0),c}function Yl(e,t,n={},r,s,o){let i;const l=Tt({actions:{}},n),c={deep:!0};let u,a,f=new Set,h=new Set,m;const g=r.state.value[e];!o&&!g&&(r.state.value[e]={}),$t({});let b;function E(U){let x;u=a=!1,typeof U=="function"?(U(r.state.value[e]),x={type:Tn.patchFunction,storeId:e,events:m}):(vs(r.state.value[e],U),x={type:Tn.patchObject,payload:U,storeId:e,events:m});const $=b=Symbol();$s().then(()=>{b===$&&(u=!0)}),a=!0,Xt(f,x,r.state.value[e])}const C=o?function(){const{state:x}=n,$=x?x():{};this.$patch(Y=>{Tt(Y,$)})}:Ql;function T(){i.stop(),f.clear(),h.clear(),r._s.delete(e)}const N=(U,x="")=>{if(Go in U)return U[Zr]=x,U;const $=function(){Dr(r);const Y=Array.from(arguments),L=new Set,Q=new Set;function le(z){L.add(z)}function we(z){Q.add(z)}Xt(h,{args:Y,name:$[Zr],store:B,after:le,onError:we});let ee;try{ee=U.apply(this&&this.$id===e?this:B,Y)}catch(z){throw Xt(Q,z),z}return ee instanceof Promise?ee.then(z=>(Xt(L,z),z)).catch(z=>(Xt(Q,z),Promise.reject(z))):(Xt(L,ee),ee)};return $[Go]=!0,$[Zr]=x,$},O={_p:r,$id:e,$onAction:Wo.bind(null,h),$patch:E,$reset:C,$subscribe(U,x={}){const $=Wo(f,U,x.detached,()=>Y()),Y=i.run(()=>Sn(()=>r.state.value[e],L=>{(x.flush==="sync"?a:u)&&U({storeId:e,type:Tn.direct,events:m},L)},Tt({},c,x)));return $},$dispose:T},B=fn(O);r._s.set(e,B);const j=(r._a&&r._a.runWithContext||vf)(()=>r._e.run(()=>(i=Bi()).run(()=>t({action:N}))));for(const U in j){const x=j[U];if(de(x)&&!Rf(x)||ft(x))o||(g&&Af(x)&&(de(x)?x.value=g[U]:vs(x,g[U])),r.state.value[e][U]=x);else if(typeof x=="function"){const $=N(x,U);j[U]=$,l.actions[U]=x}}return Tt(B,j),Tt(re(B),j),Object.defineProperty(B,"$state",{get:()=>r.state.value[e],set:U=>{E(x=>{Tt(x,U)})}}),r._p.forEach(U=>{Tt(B,i.run(()=>U({store:B,app:r._a,pinia:r,options:l})))}),g&&o&&n.hydrate&&n.hydrate(B.$state,g),u=!0,a=!0,B}function xf(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,l){const c=Oa();return i=i||(c?Ke(Xl,null):null),i&&Dr(i),i=Jl,i._s.has(e)||(s?Yl(e,t,r,i):Cf(e,r,i)),i._s.get(e)}return o.$id=e,o}function Ip(e){const t=re(e),n={};for(const r in t){const s=t[r];s.effect?n[r]=Be({get:()=>e[r],set(o){e[r]=o}}):(de(s)||ft(s))&&(n[r]=wa(e,r))}return n}const Tf="modulepreload",Of=function(e){return"/"+e},zo={},ot=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let c=function(u){return Promise.all(u.map(a=>Promise.resolve(a).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=c(n.map(u=>{if(u=Of(u),u in zo)return;zo[u]=!0;const a=u.endsWith(".css"),f=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const h=document.createElement("link");if(h.rel=a?"stylesheet":Tf,a||(h.as="script"),h.crossOrigin="",h.href=u,l&&h.setAttribute("nonce",l),document.head.appendChild(h),a)return new Promise((m,g)=>{h.addEventListener("load",m),h.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})};const en=typeof document<"u";function Zl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Pf(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Zl(e.default)}const se=Object.assign;function es(e,t){const n={};for(const r in t){const s=t[r];n[r]=Xe(s)?s.map(e):e(s)}return n}const On=()=>{},Xe=Array.isArray;function Jo(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const ec=/#/g,Nf=/&/g,If=/\//g,Lf=/=/g,Df=/\?/g,tc=/\+/g,Ff=/%5B/g,Mf=/%5D/g,nc=/%5E/g,kf=/%60/g,rc=/%7B/g,Bf=/%7C/g,sc=/%7D/g,Uf=/%20/g;function Xs(e){return e==null?"":encodeURI(""+e).replace(Bf,"|").replace(Ff,"[").replace(Mf,"]")}function jf(e){return Xs(e).replace(rc,"{").replace(sc,"}").replace(nc,"^")}function Ss(e){return Xs(e).replace(tc,"%2B").replace(Uf,"+").replace(ec,"%23").replace(Nf,"%26").replace(kf,"`").replace(rc,"{").replace(sc,"}").replace(nc,"^")}function Hf(e){return Ss(e).replace(Lf,"%3D")}function Vf(e){return Xs(e).replace(ec,"%23").replace(Df,"%3F")}function $f(e){return Vf(e).replace(If,"%2F")}function Un(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const qf=/\/$/,Kf=e=>e.replace(qf,"");function ts(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return c=l>=0&&c>l?-1:c,c>=0&&(r=t.slice(0,c),o=t.slice(c,l>0?l:t.length),s=e(o.slice(1))),l>=0&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=Jf(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:Un(i)}}function Wf(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Xo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Gf(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&cn(t.matched[r],n.matched[s])&&oc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function cn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function oc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!zf(e[n],t[n]))return!1;return!0}function zf(e,t){return Xe(e)?Qo(e,t):Xe(t)?Qo(t,e):e?.valueOf()===t?.valueOf()}function Qo(e,t){return Xe(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function Jf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const Rt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let As=(function(e){return e.pop="pop",e.push="push",e})({}),ns=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function Xf(e){if(!e)if(en){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Kf(e)}const Qf=/^[^#]+#/;function Yf(e,t){return e.replace(Qf,"#")+t}function Zf(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const Fr=()=>({left:window.scrollX,top:window.scrollY});function ed(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=Zf(s,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 Yo(e,t){return(history.state?history.state.position-t:-1)+e}const Rs=new Map;function td(e,t){Rs.set(e,t)}function nd(e){const t=Rs.get(e);return Rs.delete(e),t}function rd(e){return typeof e=="string"||e&&typeof e=="object"}function ic(e){return typeof e=="string"||typeof e=="symbol"}let he=(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 lc=Symbol("");he.MATCHER_NOT_FOUND+"",he.NAVIGATION_GUARD_REDIRECT+"",he.NAVIGATION_ABORTED+"",he.NAVIGATION_CANCELLED+"",he.NAVIGATION_DUPLICATED+"";function an(e,t){return se(new Error,{type:e,[lc]:!0},t)}function mt(e,t){return e instanceof Error&&lc in e&&(t==null||!!(e.type&t))}const sd=["params","query","hash"];function od(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 id(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&Ss(s)):[r&&Ss(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function ld(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=Xe(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const cd=Symbol(""),ei=Symbol(""),Mr=Symbol(""),Qs=Symbol(""),Cs=Symbol("");function yn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function It(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,c)=>{const u=h=>{h===!1?c(an(he.NAVIGATION_ABORTED,{from:n,to:t})):h instanceof Error?c(h):rd(h)?c(an(he.NAVIGATION_GUARD_REDIRECT,{from:t,to:h})):(i&&r.enterCallbacks[s]===i&&typeof h=="function"&&i.push(h),l())},a=o(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(a);e.length<3&&(f=f.then(u)),f.catch(h=>c(h))})}function rs(e,t,n,r,s=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(Zl(c)){const u=(c.__vccOpts||c)[t];u&&o.push(It(u,n,r,i,l,s))}else{let u=c();o.push(()=>u.then(a=>{if(!a)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=Pf(a)?a.default:a;i.mods[l]=a,i.components[l]=f;const h=(f.__vccOpts||f)[t];return h&&It(h,n,r,i,l,s)()}))}}return o}function ad(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;icn(u,l))?r.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(u=>cn(u,c))||s.push(c))}return[n,r,s]}let ud=()=>location.protocol+"//"+location.host;function cc(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(i);return l[0]!=="/"&&(l="/"+l),Xo(l,"")}return Xo(n,e)+r+s}function fd(e,t,n,r){let s=[],o=[],i=null;const l=({state:h})=>{const m=cc(e,location),g=n.value,b=t.value;let E=0;if(h){if(n.value=m,t.value=h,i&&i===g){i=null;return}E=b?h.position-b.position:0}else r(m);s.forEach(C=>{C(n.value,g,{delta:E,type:As.pop,direction:E?E>0?ns.forward:ns.back:ns.unknown})})};function c(){i=n.value}function u(h){s.push(h);const m=()=>{const g=s.indexOf(h);g>-1&&s.splice(g,1)};return o.push(m),m}function a(){if(document.visibilityState==="hidden"){const{history:h}=window;if(!h.state)return;h.replaceState(se({},h.state,{scroll:Fr()}),"")}}function f(){for(const h of o)h();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 ti(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?Fr():null}}function dd(e){const{history:t,location:n}=window,r={value:cc(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(c,u,a){const f=e.indexOf("#"),h=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+c:ud()+e+c;try{t[a?"replaceState":"pushState"](u,"",h),s.value=u}catch(m){console.error(m),n[a?"replace":"assign"](h)}}function i(c,u){o(c,se({},t.state,ti(s.value.back,c,s.value.forward,!0),u,{position:s.value.position}),!0),r.value=c}function l(c,u){const a=se({},s.value,t.state,{forward:c,scroll:Fr()});o(a.current,a,!0),o(c,se({},ti(r.value,c,null),{position:a.position+1},u),!1),r.value=c}return{location:r,state:s,push:l,replace:i}}function hd(e){e=Xf(e);const t=dd(e),n=fd(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=se({location:"",base:e,go:r,createHref:Yf.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function pd(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),hd(e)}let jt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var _e=(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})(_e||{});const md={type:jt.Static,value:""},gd=/[a-zA-Z0-9_]/;function yd(e){if(!e)return[[]];if(e==="/")return[[md]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${u}": ${m}`)}let n=_e.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,c,u="",a="";function f(){u&&(n===_e.Static?o.push({type:jt.Static,value:u}):n===_e.Param||n===_e.ParamRegExp||n===_e.ParamRegExpEnd?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:jt.Param,value:u,regexp:a,repeatable:c==="*"||c==="+",optional:c==="*"||c==="?"})):t("Invalid state to consume buffer"),u="")}function h(){u+=c}for(;lt.length?t.length===1&&t[0]===Oe.Static+Oe.Segment?1:-1:0}function ac(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const vd={strict:!1,end:!0,sensitive:!1};function Sd(e,t,n){const r=Ed(yd(e.path),n),s=se(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function Ad(e,t){const n=[],r=new Map;t=Jo(vd,t);function s(f){return r.get(f)}function o(f,h,m){const g=!m,b=oi(f);b.aliasOf=m&&m.record;const E=Jo(t,f),C=[b];if("alias"in f){const O=typeof f.alias=="string"?[f.alias]:f.alias;for(const B of O)C.push(oi(se({},b,{components:m?m.record.components:b.components,path:B,aliasOf:m?m.record:b})))}let T,N;for(const O of C){const{path:B}=O;if(h&&B[0]!=="/"){const G=h.record.path,j=G[G.length-1]==="/"?"":"/";O.path=h.record.path+(B&&j+B)}if(T=Sd(O,h,E),m?m.alias.push(T):(N=N||T,N!==T&&N.alias.push(T),g&&f.name&&!ii(T)&&i(f.name)),uc(T)&&c(T),b.children){const G=b.children;for(let j=0;j{i(N)}:On}function i(f){if(ic(f)){const h=r.get(f);h&&(r.delete(f),n.splice(n.indexOf(h),1),h.children.forEach(i),h.alias.forEach(i))}else{const h=n.indexOf(f);h>-1&&(n.splice(h,1),f.record.name&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function c(f){const h=xd(f,n);n.splice(h,0,f),f.record.name&&!ii(f)&&r.set(f.record.name,f)}function u(f,h){let m,g={},b,E;if("name"in f&&f.name){if(m=r.get(f.name),!m)throw an(he.MATCHER_NOT_FOUND,{location:f});E=m.record.name,g=se(si(h.params,m.keys.filter(N=>!N.optional).concat(m.parent?m.parent.keys.filter(N=>N.optional):[]).map(N=>N.name)),f.params&&si(f.params,m.keys.map(N=>N.name))),b=m.stringify(g)}else if(f.path!=null)b=f.path,m=n.find(N=>N.re.test(b)),m&&(g=m.parse(b),E=m.record.name);else{if(m=h.name?r.get(h.name):n.find(N=>N.re.test(h.path)),!m)throw an(he.MATCHER_NOT_FOUND,{location:f,currentLocation:h});E=m.record.name,g=se({},h.params,f.params),b=m.stringify(g)}const C=[];let T=m;for(;T;)C.unshift(T.record),T=T.parent;return{name:E,path:b,params:g,matched:C,meta:Cd(C)}}e.forEach(f=>o(f));function a(){n.length=0,r.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:a,getRoutes:l,getRecordMatcher:s}}function si(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function oi(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Rd(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 Rd(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function ii(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Cd(e){return e.reduce((t,n)=>se(t,n.meta),{})}function xd(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;ac(e,t[o])<0?r=o:n=o+1}const s=Td(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function Td(e){let t=e;for(;t=t.parent;)if(uc(t)&&ac(e,t)===0)return t}function uc({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function li(e){const t=Ke(Mr),n=Ke(Qs),r=Be(()=>{const c=dt(e.to);return t.resolve(c)}),s=Be(()=>{const{matched:c}=r.value,{length:u}=c,a=c[u-1],f=n.matched;if(!a||!f.length)return-1;const h=f.findIndex(cn.bind(null,a));if(h>-1)return h;const m=ci(c[u-2]);return u>1&&ci(a)===m&&f[f.length-1].path!==m?f.findIndex(cn.bind(null,c[u-2])):h}),o=Be(()=>s.value>-1&&Ld(n.params,r.value.params)),i=Be(()=>s.value>-1&&s.value===n.matched.length-1&&oc(n.params,r.value.params));function l(c={}){if(Id(c)){const u=t[dt(e.replace)?"replace":"push"](dt(e.to)).catch(On);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Be(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function Od(e){return e.length===1?e[0]:e}const Pd=Or({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:li,setup(e,{slots:t}){const n=fn(li(e)),{options:r}=Ke(Mr),s=Be(()=>({[ai(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[ai(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&Od(t.default(n));return e.custom?o:$l("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),Nd=Pd;function Id(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 Ld(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!Xe(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function ci(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const ai=(e,t,n)=>e??t??n,Dd=Or({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=Ke(Cs),s=Be(()=>e.route||r.value),o=Ke(ei,0),i=Be(()=>{let u=dt(o);const{matched:a}=s.value;let f;for(;(f=a[u])&&!f.components;)u++;return u}),l=Be(()=>s.value.matched[i.value]);tr(ei,Be(()=>i.value+1)),tr(cd,l),tr(Cs,s);const c=$t();return Sn(()=>[c.value,l.value,e.name],([u,a,f],[h,m,g])=>{a&&(a.instances[f]=u,m&&m!==a&&u&&u===h&&(a.leaveGuards.size||(a.leaveGuards=m.leaveGuards),a.updateGuards.size||(a.updateGuards=m.updateGuards))),u&&a&&(!m||!cn(a,m)||!h)&&(a.enterCallbacks[f]||[]).forEach(b=>b(u))},{flush:"post"}),()=>{const u=s.value,a=e.name,f=l.value,h=f&&f.components[a];if(!h)return ui(n.default,{Component:h,route:u});const m=f.props[a],g=m?m===!0?u.params:typeof m=="function"?m(u):m:null,E=$l(h,se({},g,t,{onVnodeUnmounted:C=>{C.component.isUnmounted&&(f.instances[a]=null)},ref:c}));return ui(n.default,{Component:E,route:u})||E}}});function ui(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const fc=Dd;function Fd(e){const t=Ad(e.routes,e),n=e.parseQuery||id,r=e.stringifyQuery||Zo,s=e.history,o=yn(),i=yn(),l=yn(),c=ma(Rt);let u=Rt;en&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const a=es.bind(null,S=>""+S),f=es.bind(null,$f),h=es.bind(null,Un);function m(S,k){let F,H;return ic(S)?(F=t.getRecordMatcher(S),H=k):H=S,t.addRoute(H,F)}function g(S){const k=t.getRecordMatcher(S);k&&t.removeRoute(k)}function b(){return t.getRoutes().map(S=>S.record)}function E(S){return!!t.getRecordMatcher(S)}function C(S,k){if(k=se({},k||c.value),typeof S=="string"){const y=ts(n,S,k.path),w=t.resolve({path:y.path},k),A=s.createHref(y.fullPath);return se(y,w,{params:h(w.params),hash:Un(y.hash),redirectedFrom:void 0,href:A})}let F;if(S.path!=null)F=se({},S,{path:ts(n,S.path,k.path).path});else{const y=se({},S.params);for(const w in y)y[w]==null&&delete y[w];F=se({},S,{params:f(y)}),k.params=f(k.params)}const H=t.resolve(F,k),te=S.hash||"";H.params=a(h(H.params));const d=Wf(r,se({},S,{hash:jf(te),path:H.path})),p=s.createHref(d);return se({fullPath:d,hash:te,query:r===Zo?ld(S.query):S.query||{}},H,{redirectedFrom:void 0,href:p})}function T(S){return typeof S=="string"?ts(n,S,c.value.path):se({},S)}function N(S,k){if(u!==S)return an(he.NAVIGATION_CANCELLED,{from:k,to:S})}function O(S){return j(S)}function B(S){return O(se(T(S),{replace:!0}))}function G(S,k){const F=S.matched[S.matched.length-1];if(F&&F.redirect){const{redirect:H}=F;let te=typeof H=="function"?H(S,k):H;return typeof te=="string"&&(te=te.includes("?")||te.includes("#")?te=T(te):{path:te},te.params={}),se({query:S.query,hash:S.hash,params:te.path!=null?{}:S.params},te)}}function j(S,k){const F=u=C(S),H=c.value,te=S.state,d=S.force,p=S.replace===!0,y=G(F,H);if(y)return j(se(T(y),{state:typeof y=="object"?se({},te,y.state):te,force:d,replace:p}),k||F);const w=F;w.redirectedFrom=k;let A;return!d&&Gf(r,H,F)&&(A=an(he.NAVIGATION_DUPLICATED,{to:w,from:H}),ye(H,H,!0,!1)),(A?Promise.resolve(A):$(w,H)).catch(v=>mt(v)?mt(v,he.NAVIGATION_GUARD_REDIRECT)?v:Ye(v):Z(v,w,H)).then(v=>{if(v){if(mt(v,he.NAVIGATION_GUARD_REDIRECT))return j(se({replace:p},T(v.to),{state:typeof v.to=="object"?se({},te,v.to.state):te,force:d}),k||w)}else v=L(w,H,!0,p,te);return Y(w,H,v),v})}function U(S,k){const F=N(S,k);return F?Promise.reject(F):Promise.resolve()}function x(S){const k=We.values().next().value;return k&&typeof k.runWithContext=="function"?k.runWithContext(S):S()}function $(S,k){let F;const[H,te,d]=ad(S,k);F=rs(H.reverse(),"beforeRouteLeave",S,k);for(const y of H)y.leaveGuards.forEach(w=>{F.push(It(w,S,k))});const p=U.bind(null,S,k);return F.push(p),Ve(F).then(()=>{F=[];for(const y of o.list())F.push(It(y,S,k));return F.push(p),Ve(F)}).then(()=>{F=rs(te,"beforeRouteUpdate",S,k);for(const y of te)y.updateGuards.forEach(w=>{F.push(It(w,S,k))});return F.push(p),Ve(F)}).then(()=>{F=[];for(const y of d)if(y.beforeEnter)if(Xe(y.beforeEnter))for(const w of y.beforeEnter)F.push(It(w,S,k));else F.push(It(y.beforeEnter,S,k));return F.push(p),Ve(F)}).then(()=>(S.matched.forEach(y=>y.enterCallbacks={}),F=rs(d,"beforeRouteEnter",S,k,x),F.push(p),Ve(F))).then(()=>{F=[];for(const y of i.list())F.push(It(y,S,k));return F.push(p),Ve(F)}).catch(y=>mt(y,he.NAVIGATION_CANCELLED)?y:Promise.reject(y))}function Y(S,k,F){l.list().forEach(H=>x(()=>H(S,k,F)))}function L(S,k,F,H,te){const d=N(S,k);if(d)return d;const p=k===Rt,y=en?history.state:{};F&&(H||p?s.replace(S.fullPath,se({scroll:p&&y&&y.scroll},te)):s.push(S.fullPath,te)),c.value=S,ye(S,k,F,p),Ye()}let Q;function le(){Q||(Q=s.listen((S,k,F)=>{if(!et.listening)return;const H=C(S),te=G(H,et.currentRoute.value);if(te){j(se(te,{replace:!0,force:!0}),H).catch(On);return}u=H;const d=c.value;en&&td(Yo(d.fullPath,F.delta),Fr()),$(H,d).catch(p=>mt(p,he.NAVIGATION_ABORTED|he.NAVIGATION_CANCELLED)?p:mt(p,he.NAVIGATION_GUARD_REDIRECT)?(j(se(T(p.to),{force:!0}),H).then(y=>{mt(y,he.NAVIGATION_ABORTED|he.NAVIGATION_DUPLICATED)&&!F.delta&&F.type===As.pop&&s.go(-1,!1)}).catch(On),Promise.reject()):(F.delta&&s.go(-F.delta,!1),Z(p,H,d))).then(p=>{p=p||L(H,d,!1),p&&(F.delta&&!mt(p,he.NAVIGATION_CANCELLED)?s.go(-F.delta,!1):F.type===As.pop&&mt(p,he.NAVIGATION_ABORTED|he.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),Y(H,d,p)}).catch(On)}))}let we=yn(),ee=yn(),z;function Z(S,k,F){Ye(S);const H=ee.list();return H.length?H.forEach(te=>te(S,k,F)):console.error(S),Promise.reject(S)}function He(){return z&&c.value!==Rt?Promise.resolve():new Promise((S,k)=>{we.add([S,k])})}function Ye(S){return z||(z=!S,le(),we.list().forEach(([k,F])=>S?F(S):k()),we.reset()),S}function ye(S,k,F,H){const{scrollBehavior:te}=e;if(!en||!te)return Promise.resolve();const d=!F&&nd(Yo(S.fullPath,0))||(H||!F)&&history.state&&history.state.scroll||null;return $s().then(()=>te(S,k,d)).then(p=>p&&ed(p)).catch(p=>Z(p,S,k))}const me=S=>s.go(S);let Ze;const We=new Set,et={currentRoute:c,listening:!0,addRoute:m,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:E,getRoutes:b,resolve:C,options:e,push:O,replace:B,go:me,back:()=>me(-1),forward:()=>me(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:ee.add,isReady:He,install(S){S.component("RouterLink",Nd),S.component("RouterView",fc),S.config.globalProperties.$router=et,Object.defineProperty(S.config.globalProperties,"$route",{enumerable:!0,get:()=>dt(c)}),en&&!Ze&&c.value===Rt&&(Ze=!0,O(s.location).catch(H=>{}));const k={};for(const H in Rt)Object.defineProperty(k,H,{get:()=>c.value[H],enumerable:!0});S.provide(Mr,et),S.provide(Qs,el(k)),S.provide(Cs,c);const F=S.unmount;We.add(S),S.unmount=function(){We.delete(S),We.size<1&&(u=Rt,Q&&Q(),Q=null,c.value=Rt,Ze=!1,z=!1),F()}}};function Ve(S){return S.reduce((k,F)=>k.then(()=>x(F)),Promise.resolve())}return et}function Lp(){return Ke(Mr)}function Dp(e){return Ke(Qs)}function dc(e,t){return function(){return e.apply(t,arguments)}}const{toString:Md}=Object.prototype,{getPrototypeOf:Ys}=Object,{iterator:kr,toStringTag:hc}=Symbol,Br=(e=>t=>{const n=Md.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Qe=e=>(e=e.toLowerCase(),t=>Br(t)===e),Ur=e=>t=>typeof t===e,{isArray:dn}=Array,un=Ur("undefined");function Vn(e){return e!==null&&!un(e)&&e.constructor!==null&&!un(e.constructor)&&De(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const pc=Qe("ArrayBuffer");function kd(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&pc(e.buffer),t}const Bd=Ur("string"),De=Ur("function"),mc=Ur("number"),$n=e=>e!==null&&typeof e=="object",Ud=e=>e===!0||e===!1,ir=e=>{if(Br(e)!=="object")return!1;const t=Ys(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(hc in e)&&!(kr in e)},jd=e=>{if(!$n(e)||Vn(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},Hd=Qe("Date"),Vd=Qe("File"),$d=Qe("Blob"),qd=Qe("FileList"),Kd=e=>$n(e)&&De(e.pipe),Wd=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||De(e.append)&&((t=Br(e))==="formdata"||t==="object"&&De(e.toString)&&e.toString()==="[object FormData]"))},Gd=Qe("URLSearchParams"),[zd,Jd,Xd,Qd]=["ReadableStream","Request","Response","Headers"].map(Qe),Yd=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function qn(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),dn(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const Ht=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,yc=e=>!un(e)&&e!==Ht;function xs(){const{caseless:e,skipUndefined:t}=yc(this)&&this||{},n={},r=(s,o)=>{const i=e&&gc(n,o)||o;ir(n[i])&&ir(s)?n[i]=xs(n[i],s):ir(s)?n[i]=xs({},s):dn(s)?n[i]=s.slice():(!t||!un(s))&&(n[i]=s)};for(let s=0,o=arguments.length;s(qn(t,(s,o)=>{n&&De(s)?e[o]=dc(s,n):e[o]=s},{allOwnKeys:r}),e),eh=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),th=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},nh=(e,t,n,r)=>{let s,o,i;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&Ys(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},rh=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},sh=e=>{if(!e)return null;if(dn(e))return e;let t=e.length;if(!mc(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},oh=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Ys(Uint8Array)),ih=(e,t)=>{const r=(e&&e[kr]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},lh=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},ch=Qe("HTMLFormElement"),ah=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),fi=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),uh=Qe("RegExp"),_c=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};qn(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},fh=e=>{_c(e,(t,n)=>{if(De(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(De(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},dh=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return dn(e)?r(e):r(String(e).split(t)),n},hh=()=>{},ph=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function mh(e){return!!(e&&De(e.append)&&e[hc]==="FormData"&&e[kr])}const gh=e=>{const t=new Array(10),n=(r,s)=>{if($n(r)){if(t.indexOf(r)>=0)return;if(Vn(r))return r;if(!("toJSON"in r)){t[s]=r;const o=dn(r)?[]:{};return qn(r,(i,l)=>{const c=n(i,s+1);!un(c)&&(o[l]=c)}),t[s]=void 0,o}}return r};return n(e,0)},yh=Qe("AsyncFunction"),_h=e=>e&&($n(e)||De(e))&&De(e.then)&&De(e.catch),bc=((e,t)=>e?setImmediate:t?((n,r)=>(Ht.addEventListener("message",({source:s,data:o})=>{s===Ht&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),Ht.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",De(Ht.postMessage)),bh=typeof queueMicrotask<"u"?queueMicrotask.bind(Ht):typeof process<"u"&&process.nextTick||bc,Eh=e=>e!=null&&De(e[kr]),_={isArray:dn,isArrayBuffer:pc,isBuffer:Vn,isFormData:Wd,isArrayBufferView:kd,isString:Bd,isNumber:mc,isBoolean:Ud,isObject:$n,isPlainObject:ir,isEmptyObject:jd,isReadableStream:zd,isRequest:Jd,isResponse:Xd,isHeaders:Qd,isUndefined:un,isDate:Hd,isFile:Vd,isBlob:$d,isRegExp:uh,isFunction:De,isStream:Kd,isURLSearchParams:Gd,isTypedArray:oh,isFileList:qd,forEach:qn,merge:xs,extend:Zd,trim:Yd,stripBOM:eh,inherits:th,toFlatObject:nh,kindOf:Br,kindOfTest:Qe,endsWith:rh,toArray:sh,forEachEntry:ih,matchAll:lh,isHTMLForm:ch,hasOwnProperty:fi,hasOwnProp:fi,reduceDescriptors:_c,freezeMethods:fh,toObjectSet:dh,toCamelCase:ah,noop:hh,toFiniteNumber:ph,findKey:gc,global:Ht,isContextDefined:yc,isSpecCompliantForm:mh,toJSONObject:gh,isAsyncFn:yh,isThenable:_h,setImmediate:bc,asap:bh,isIterable:Eh};function X(e,t,n,r,s){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),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}_.inherits(X,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:_.toJSONObject(this.config),code:this.code,status:this.status}}});const Ec=X.prototype,wc={};["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=>{wc[e]={value:e}});Object.defineProperties(X,wc);Object.defineProperty(Ec,"isAxiosError",{value:!0});X.from=(e,t,n,r,s,o)=>{const i=Object.create(Ec);_.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 X.call(i,l,c,n,r,s),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 wh=null;function Ts(e){return _.isPlainObject(e)||_.isArray(e)}function vc(e){return _.endsWith(e,"[]")?e.slice(0,-2):e}function di(e,t,n){return e?e.concat(t).map(function(s,o){return s=vc(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function vh(e){return _.isArray(e)&&!e.some(Ts)}const Sh=_.toFlatObject(_,{},null,function(t){return/^is[A-Z]/.test(t)});function jr(e,t,n){if(!_.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=_.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(b,E){return!_.isUndefined(E[b])});const r=n.metaTokens,s=n.visitor||a,o=n.dots,i=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&_.isSpecCompliantForm(t);if(!_.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(_.isDate(g))return g.toISOString();if(_.isBoolean(g))return g.toString();if(!c&&_.isBlob(g))throw new X("Blob is not supported. Use a Buffer instead.");return _.isArrayBuffer(g)||_.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function a(g,b,E){let C=g;if(g&&!E&&typeof g=="object"){if(_.endsWith(b,"{}"))b=r?b:b.slice(0,-2),g=JSON.stringify(g);else if(_.isArray(g)&&vh(g)||(_.isFileList(g)||_.endsWith(b,"[]"))&&(C=_.toArray(g)))return b=vc(b),C.forEach(function(N,O){!(_.isUndefined(N)||N===null)&&t.append(i===!0?di([b],O,o):i===null?b:b+"[]",u(N))}),!1}return Ts(g)?!0:(t.append(di(E,b,o),u(g)),!1)}const f=[],h=Object.assign(Sh,{defaultVisitor:a,convertValue:u,isVisitable:Ts});function m(g,b){if(!_.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+b.join("."));f.push(g),_.forEach(g,function(C,T){(!(_.isUndefined(C)||C===null)&&s.call(t,C,_.isString(T)?T.trim():T,b,h))===!0&&m(C,b?b.concat(T):[T])}),f.pop()}}if(!_.isObject(e))throw new TypeError("data must be an object");return m(e),t}function hi(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Zs(e,t){this._pairs=[],e&&jr(e,this,t)}const Sc=Zs.prototype;Sc.append=function(t,n){this._pairs.push([t,n])};Sc.toString=function(t){const n=t?function(r){return t.call(this,r,hi)}:hi;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Ah(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Ac(e,t,n){if(!t)return e;const r=n&&n.encode||Ah;_.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=_.isURLSearchParams(t)?t.toString():new Zs(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class pi{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){_.forEach(this.handlers,function(r){r!==null&&t(r)})}}const Rc={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Rh=typeof URLSearchParams<"u"?URLSearchParams:Zs,Ch=typeof FormData<"u"?FormData:null,xh=typeof Blob<"u"?Blob:null,Th={isBrowser:!0,classes:{URLSearchParams:Rh,FormData:Ch,Blob:xh},protocols:["http","https","file","blob","url","data"]},eo=typeof window<"u"&&typeof document<"u",Os=typeof navigator=="object"&&navigator||void 0,Oh=eo&&(!Os||["ReactNative","NativeScript","NS"].indexOf(Os.product)<0),Ph=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Nh=eo&&window.location.href||"http://localhost",Ih=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:eo,hasStandardBrowserEnv:Oh,hasStandardBrowserWebWorkerEnv:Ph,navigator:Os,origin:Nh},Symbol.toStringTag,{value:"Module"})),Re={...Ih,...Th};function Lh(e,t){return jr(e,new Re.classes.URLSearchParams,{visitor:function(n,r,s,o){return Re.isNode&&_.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function Dh(e){return _.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Fh(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&_.isArray(s)?s.length:i,c?(_.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!l):((!s[i]||!_.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&_.isArray(s[i])&&(s[i]=Fh(s[i])),!l)}if(_.isFormData(e)&&_.isFunction(e.entries)){const n={};return _.forEachEntry(e,(r,s)=>{t(Dh(r),s,n,0)}),n}return null}function Mh(e,t,n){if(_.isString(e))try{return(t||JSON.parse)(e),_.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Kn={transitional:Rc,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=_.isObject(t);if(o&&_.isHTMLForm(t)&&(t=new FormData(t)),_.isFormData(t))return s?JSON.stringify(Cc(t)):t;if(_.isArrayBuffer(t)||_.isBuffer(t)||_.isStream(t)||_.isFile(t)||_.isBlob(t)||_.isReadableStream(t))return t;if(_.isArrayBufferView(t))return t.buffer;if(_.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return Lh(t,this.formSerializer).toString();if((l=_.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return jr(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),Mh(t)):t}],transformResponse:[function(t){const n=this.transitional||Kn.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(_.isResponse(t)||_.isReadableStream(t))return t;if(t&&_.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(i)throw l.name==="SyntaxError"?X.from(l,X.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:Re.classes.FormData,Blob:Re.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};_.forEach(["delete","get","head","post","put","patch"],e=>{Kn.headers[e]={}});const kh=_.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"]),Bh=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&kh[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},mi=Symbol("internals");function _n(e){return e&&String(e).trim().toLowerCase()}function lr(e){return e===!1||e==null?e:_.isArray(e)?e.map(lr):String(e)}function Uh(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const jh=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function ss(e,t,n,r,s){if(_.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!_.isString(t)){if(_.isString(r))return t.indexOf(r)!==-1;if(_.isRegExp(r))return r.test(t)}}function Hh(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Vh(e,t){const n=_.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let Fe=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(l,c,u){const a=_n(c);if(!a)throw new Error("header name must be a non-empty string");const f=_.findKey(s,a);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||c]=lr(l))}const i=(l,c)=>_.forEach(l,(u,a)=>o(u,a,c));if(_.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(_.isString(t)&&(t=t.trim())&&!jh(t))i(Bh(t),n);else if(_.isObject(t)&&_.isIterable(t)){let l={},c,u;for(const a of t){if(!_.isArray(a))throw TypeError("Object iterator must return a key-value pair");l[u=a[0]]=(c=l[u])?_.isArray(c)?[...c,a[1]]:[c,a[1]]:a[1]}i(l,n)}else t!=null&&o(n,t,r);return this}get(t,n){if(t=_n(t),t){const r=_.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return Uh(s);if(_.isFunction(n))return n.call(this,s,r);if(_.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=_n(t),t){const r=_.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||ss(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=_n(i),i){const l=_.findKey(r,i);l&&(!n||ss(r,r[l],l,n))&&(delete r[l],s=!0)}}return _.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||ss(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return _.forEach(this,(s,o)=>{const i=_.findKey(r,o);if(i){n[i]=lr(s),delete n[o];return}const l=t?Hh(o):String(o).trim();l!==o&&delete n[o],n[l]=lr(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return _.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&_.isArray(r)?r.join(", "):r)}),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 r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[mi]=this[mi]={accessors:{}}).accessors,s=this.prototype;function o(i){const l=_n(i);r[l]||(Vh(s,i),r[l]=!0)}return _.isArray(t)?t.forEach(o):o(t),this}};Fe.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);_.reduceDescriptors(Fe.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});_.freezeMethods(Fe);function os(e,t){const n=this||Kn,r=t||n,s=Fe.from(r.headers);let o=r.data;return _.forEach(e,function(l){o=l.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function xc(e){return!!(e&&e.__CANCEL__)}function hn(e,t,n){X.call(this,e??"canceled",X.ERR_CANCELED,t,n),this.name="CanceledError"}_.inherits(hn,X,{__CANCEL__:!0});function Tc(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new X("Request failed with status code "+n.status,[X.ERR_BAD_REQUEST,X.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function $h(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function qh(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),a=r[o];i||(i=u),n[s]=c,r[s]=u;let f=o,h=0;for(;f!==s;)h+=n[f++],f=f%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i{n=a,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const a=Date.now(),f=a-n;f>=r?i(u,a):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-f)))},()=>s&&i(s)]}const br=(e,t,n=3)=>{let r=0;const s=qh(50,250);return Kh(o=>{const i=o.loaded,l=o.lengthComputable?o.total:void 0,c=i-r,u=s(c),a=i<=l;r=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)},gi=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},yi=e=>(...t)=>_.asap(()=>e(...t)),Wh=Re.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Re.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Re.origin),Re.navigator&&/(msie|trident)/i.test(Re.navigator.userAgent)):()=>!0,Gh=Re.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];_.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),_.isString(r)&&l.push(`path=${r}`),_.isString(s)&&l.push(`domain=${s}`),o===!0&&l.push("secure"),_.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 zh(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function Jh(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Oc(e,t,n){let r=!zh(t);return e&&(r||n==!1)?Jh(e,t):t}const _i=e=>e instanceof Fe?{...e}:e;function Gt(e,t){t=t||{};const n={};function r(u,a,f,h){return _.isPlainObject(u)&&_.isPlainObject(a)?_.merge.call({caseless:h},u,a):_.isPlainObject(a)?_.merge({},a):_.isArray(a)?a.slice():a}function s(u,a,f,h){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u,f,h)}else return r(u,a,f,h)}function o(u,a){if(!_.isUndefined(a))return r(void 0,a)}function i(u,a){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u)}else return r(void 0,a)}function l(u,a,f){if(f in t)return r(u,a);if(f in e)return r(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)=>s(_i(u),_i(a),f,!0)};return _.forEach(Object.keys({...e,...t}),function(a){const f=c[a]||s,h=f(e[a],t[a],a);_.isUndefined(h)&&f!==l||(n[a]=h)}),n}const Pc=e=>{const t=Gt({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:l}=t;if(t.headers=i=Fe.from(i),t.url=Ac(Oc(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&i.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),_.isFormData(n)){if(Re.hasStandardBrowserEnv||Re.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(_.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(Re.hasStandardBrowserEnv&&(r&&_.isFunction(r)&&(r=r(t)),r||r!==!1&&Wh(t.url))){const c=s&&o&&Gh.read(o);c&&i.set(s,c)}return t},Xh=typeof XMLHttpRequest<"u",Qh=Xh&&function(e){return new Promise(function(n,r){const s=Pc(e);let o=s.data;const i=Fe.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,a,f,h,m,g;function b(){m&&m(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(a),s.signal&&s.signal.removeEventListener("abort",a)}let E=new XMLHttpRequest;E.open(s.method.toUpperCase(),s.url,!0),E.timeout=s.timeout;function C(){if(!E)return;const N=Fe.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),B={data:!l||l==="text"||l==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:N,config:e,request:E};Tc(function(j){n(j),b()},function(j){r(j),b()},B),E=null}"onloadend"in E?E.onloadend=C:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.indexOf("file:")===0)||setTimeout(C)},E.onabort=function(){E&&(r(new X("Request aborted",X.ECONNABORTED,e,E)),E=null)},E.onerror=function(O){const B=O&&O.message?O.message:"Network Error",G=new X(B,X.ERR_NETWORK,e,E);G.event=O||null,r(G),E=null},E.ontimeout=function(){let O=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const B=s.transitional||Rc;s.timeoutErrorMessage&&(O=s.timeoutErrorMessage),r(new X(O,B.clarifyTimeoutError?X.ETIMEDOUT:X.ECONNABORTED,e,E)),E=null},o===void 0&&i.setContentType(null),"setRequestHeader"in E&&_.forEach(i.toJSON(),function(O,B){E.setRequestHeader(B,O)}),_.isUndefined(s.withCredentials)||(E.withCredentials=!!s.withCredentials),l&&l!=="json"&&(E.responseType=s.responseType),u&&([h,g]=br(u,!0),E.addEventListener("progress",h)),c&&E.upload&&([f,m]=br(c),E.upload.addEventListener("progress",f),E.upload.addEventListener("loadend",m)),(s.cancelToken||s.signal)&&(a=N=>{E&&(r(!N||N.type?new hn(null,e,E):N),E.abort(),E=null)},s.cancelToken&&s.cancelToken.subscribe(a),s.signal&&(s.signal.aborted?a():s.signal.addEventListener("abort",a)));const T=$h(s.url);if(T&&Re.protocols.indexOf(T)===-1){r(new X("Unsupported protocol "+T+":",X.ERR_BAD_REQUEST,e));return}E.send(o||null)})},Yh=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,l();const a=u instanceof Error?u:this.reason;r.abort(a instanceof X?a:new hn(a instanceof Error?a.message:a))}};let i=t&&setTimeout(()=>{i=null,o(new X(`timeout ${t} of ms exceeded`,X.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}=r;return c.unsubscribe=()=>_.asap(l),c}},Zh=function*(e,t){let n=e.byteLength;if(n{const s=ep(e,t);let o=0,i,l=c=>{i||(i=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:a}=await s.next();if(u){l(),c.close();return}let f=a.byteLength;if(n){let h=o+=f;n(h)}c.enqueue(new Uint8Array(a))}catch(u){throw l(u),u}},cancel(c){return l(c),s.return()}},{highWaterMark:2})},Ei=64*1024,{isFunction:Qn}=_,np=(({Request:e,Response:t})=>({Request:e,Response:t}))(_.global),{ReadableStream:wi,TextEncoder:vi}=_.global,Si=(e,...t)=>{try{return!!e(...t)}catch{return!1}},rp=e=>{e=_.merge.call({skipUndefined:!0},np,e);const{fetch:t,Request:n,Response:r}=e,s=t?Qn(t):typeof fetch=="function",o=Qn(n),i=Qn(r);if(!s)return!1;const l=s&&Qn(wi),c=s&&(typeof vi=="function"?(g=>b=>g.encode(b))(new vi):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=o&&l&&Si(()=>{let g=!1;const b=new n(Re.origin,{body:new wi,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!b}),a=i&&l&&Si(()=>_.isReadableStream(new r("").body)),f={stream:a&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(b,E)=>{let C=b&&b[g];if(C)return C.call(b);throw new X(`Response type '${g}' is not supported`,X.ERR_NOT_SUPPORT,E)})});const h=async g=>{if(g==null)return 0;if(_.isBlob(g))return g.size;if(_.isSpecCompliantForm(g))return(await new n(Re.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(_.isArrayBufferView(g)||_.isArrayBuffer(g))return g.byteLength;if(_.isURLSearchParams(g)&&(g=g+""),_.isString(g))return(await c(g)).byteLength},m=async(g,b)=>{const E=_.toFiniteNumber(g.getContentLength());return E??h(b)};return async g=>{let{url:b,method:E,data:C,signal:T,cancelToken:N,timeout:O,onDownloadProgress:B,onUploadProgress:G,responseType:j,headers:U,withCredentials:x="same-origin",fetchOptions:$}=Pc(g),Y=t||fetch;j=j?(j+"").toLowerCase():"text";let L=Yh([T,N&&N.toAbortSignal()],O),Q=null;const le=L&&L.unsubscribe&&(()=>{L.unsubscribe()});let we;try{if(G&&u&&E!=="get"&&E!=="head"&&(we=await m(U,C))!==0){let ye=new n(b,{method:"POST",body:C,duplex:"half"}),me;if(_.isFormData(C)&&(me=ye.headers.get("content-type"))&&U.setContentType(me),ye.body){const[Ze,We]=gi(we,br(yi(G)));C=bi(ye.body,Ei,Ze,We)}}_.isString(x)||(x=x?"include":"omit");const ee=o&&"credentials"in n.prototype,z={...$,signal:L,method:E.toUpperCase(),headers:U.normalize().toJSON(),body:C,duplex:"half",credentials:ee?x:void 0};Q=o&&new n(b,z);let Z=await(o?Y(Q,$):Y(b,z));const He=a&&(j==="stream"||j==="response");if(a&&(B||He&&le)){const ye={};["status","statusText","headers"].forEach(et=>{ye[et]=Z[et]});const me=_.toFiniteNumber(Z.headers.get("content-length")),[Ze,We]=B&&gi(me,br(yi(B),!0))||[];Z=new r(bi(Z.body,Ei,Ze,()=>{We&&We(),le&&le()}),ye)}j=j||"text";let Ye=await f[_.findKey(f,j)||"text"](Z,g);return!He&&le&&le(),await new Promise((ye,me)=>{Tc(ye,me,{data:Ye,headers:Fe.from(Z.headers),status:Z.status,statusText:Z.statusText,config:g,request:Q})})}catch(ee){throw le&&le(),ee&&ee.name==="TypeError"&&/Load failed|fetch/i.test(ee.message)?Object.assign(new X("Network Error",X.ERR_NETWORK,g,Q),{cause:ee.cause||ee}):X.from(ee,ee&&ee.code,g,Q)}}},sp=new Map,Nc=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,l=i,c,u,a=sp;for(;l--;)c=o[l],u=a.get(c),u===void 0&&a.set(c,u=l?new Map:rp(t)),a=u;return u};Nc();const to={http:wh,xhr:Qh,fetch:{get:Nc}};_.forEach(to,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Ai=e=>`- ${e}`,op=e=>_.isFunction(e)||e===null||e===!1;function ip(e,t){e=_.isArray(e)?e:[e];const{length:n}=e;let r,s;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(Ai).join(` +`):" "+Ai(i[0]):"as no adapter specified";throw new X("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const Ic={getAdapter:ip,adapters:to};function is(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new hn(null,e)}function Ri(e){return is(e),e.headers=Fe.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),Ic.getAdapter(e.adapter||Kn.adapter,e)(e).then(function(r){return is(e),r.data=os.call(e,e.transformResponse,r),r.headers=Fe.from(r.headers),r},function(r){return xc(r)||(is(e),r&&r.response&&(r.response.data=os.call(e,e.transformResponse,r.response),r.response.headers=Fe.from(r.response.headers))),Promise.reject(r)})}const Lc="1.13.2",Hr={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Hr[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const Ci={};Hr.transitional=function(t,n,r){function s(o,i){return"[Axios v"+Lc+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,l)=>{if(t===!1)throw new X(s(i," has been removed"+(n?" in "+n:"")),X.ERR_DEPRECATED);return n&&!Ci[i]&&(Ci[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,l):!0}};Hr.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function lp(e,t,n){if(typeof e!="object")throw new X("options must be an object",X.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const l=e[o],c=l===void 0||i(l,o,e);if(c!==!0)throw new X("option "+o+" must be "+c,X.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new X("Unknown option "+o,X.ERR_BAD_OPTION)}}const cr={assertOptions:lp,validators:Hr},it=cr.validators;let Kt=class{constructor(t){this.defaults=t||{},this.interceptors={request:new pi,response:new pi}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Gt(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&cr.assertOptions(r,{silentJSONParsing:it.transitional(it.boolean),forcedJSONParsing:it.transitional(it.boolean),clarifyTimeoutError:it.transitional(it.boolean)},!1),s!=null&&(_.isFunction(s)?n.paramsSerializer={serialize:s}:cr.assertOptions(s,{encode:it.function,serialize:it.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),cr.assertOptions(n,{baseUrl:it.spelling("baseURL"),withXsrfToken:it.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&_.merge(o.common,o[n.method]);o&&_.forEach(["delete","get","head","post","put","patch","common"],g=>{delete o[g]}),n.headers=Fe.concat(i,o);const l=[];let c=!0;this.interceptors.request.forEach(function(b){typeof b.runWhen=="function"&&b.runWhen(n)===!1||(c=c&&b.synchronous,l.unshift(b.fulfilled,b.rejected))});const u=[];this.interceptors.response.forEach(function(b){u.push(b.fulfilled,b.rejected)});let a,f=0,h;if(!c){const g=[Ri.bind(this),void 0];for(g.unshift(...l),g.push(...u),h=g.length,a=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(l=>{r.subscribe(l),o=l}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,l){r.reason||(r.reason=new hn(o,i,l),n(r.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=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new Dc(function(s){t=s}),cancel:t}}};function ap(e){return function(n){return e.apply(null,n)}}function up(e){return _.isObject(e)&&e.isAxiosError===!0}const Ps={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(Ps).forEach(([e,t])=>{Ps[t]=e});function Fc(e){const t=new Kt(e),n=dc(Kt.prototype.request,t);return _.extend(n,Kt.prototype,t,{allOwnKeys:!0}),_.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return Fc(Gt(e,s))},n}const ge=Fc(Kn);ge.Axios=Kt;ge.CanceledError=hn;ge.CancelToken=cp;ge.isCancel=xc;ge.VERSION=Lc;ge.toFormData=jr;ge.AxiosError=X;ge.Cancel=ge.CanceledError;ge.all=function(t){return Promise.all(t)};ge.spread=ap;ge.isAxiosError=up;ge.mergeConfig=Gt;ge.AxiosHeaders=Fe;ge.formToJSON=e=>Cc(_.isHTMLForm(e)?new FormData(e):e);ge.getAdapter=Ic.getAdapter;ge.HttpStatusCode=Ps;ge.default=ge;const{Axios:kp,AxiosError:Bp,CanceledError:Up,isCancel:jp,CancelToken:Hp,VERSION:Vp,all:$p,Cancel:qp,isAxiosError:Kp,spread:Wp,toFormData:Gp,AxiosHeaders:zp,HttpStatusCode:Jp,formToJSON:Xp,getAdapter:Qp,mergeConfig:Yp}=ge,Pn=ge.create({baseURL:"",timeout:3e4,withCredentials:!0});Pn.interceptors.request.use(e=>e,e=>Promise.reject(e));Pn.interceptors.response.use(e=>e.data,e=>{e.response?.status===401&&(window.location.hash="#/login");const t=e.response?.data?e.response.data.detail||e.response.data.message:e.message;return Promise.reject(new Error(t||"请求失败"))});const Yn={login:e=>{const t=new URLSearchParams;return t.append("admin_key",e.password),Pn.post("/login",t,{headers:{"Content-Type":"application/x-www-form-urlencoded"}})},logout:()=>Pn.post("/logout"),checkAuth:()=>Pn.get("/admin/health")},fp=xf("auth",()=>{const e=$t(!1),t=$t(!1),n=$t(0),r=1e4;let s=null;async function o(c){t.value=!0;try{return await Yn.login({password:c}),await Yn.checkAuth(),e.value=!0,n.value=Date.now(),!0}catch(u){throw e.value=!1,u}finally{t.value=!1}}async function i(){try{await Yn.logout()}finally{e.value=!1,n.value=0}}async function l(){const c=Date.now();if(e.value&&c-n.value(await Yn.checkAuth(),e.value=!0,!0))(),await s}catch{return e.value=!1,!1}finally{n.value=Date.now(),s=null}}return{isLoggedIn:e,isLoading:t,login:o,logout:i,checkAuth:l}}),Mc=Fd({history:pd("/"),routes:[{path:"/public/uptime",name:"public-uptime",component:()=>ot(()=>import("./PublicUptime-65SUPpJU.js"),__vite__mapDeps([0,1])),meta:{requiresAuth:!1}},{path:"/public/logs",name:"public-logs",component:()=>ot(()=>import("./PublicLogs-Cb76bLb8.js"),[]),meta:{requiresAuth:!1}},{path:"/login",name:"login",component:()=>ot(()=>import("./Login-BLaoqV5L.js"),__vite__mapDeps([2,3])),meta:{requiresAuth:!1}},{path:"/",component:()=>ot(()=>import("./AppShell-Bk_f20v2.js"),__vite__mapDeps([4,5,6,7])),meta:{requiresAuth:!0},children:[{path:"",name:"dashboard",component:()=>ot(()=>import("./Dashboard-DEboHVHw.js"),__vite__mapDeps([8,9]))},{path:"accounts",name:"accounts",component:()=>ot(()=>import("./Accounts-BBKUc_zD.js"),__vite__mapDeps([10,11,3,6,7,9]))},{path:"settings",name:"settings",component:()=>ot(()=>import("./Settings-9EHJjy5x.js"),__vite__mapDeps([12,5,11,3,9]))},{path:"logs",name:"logs",component:()=>ot(()=>import("./Logs-B618ke8W.js"),__vite__mapDeps([13,11,6]))},{path:"monitor",name:"monitor",component:()=>ot(()=>import("./Monitor-BFbBdfH4.js"),__vite__mapDeps([14,1]))},{path:"docs",name:"docs",component:()=>ot(()=>import("./Docs-WfTxP6YO.js"),[])}]}]});Mc.beforeEach(async e=>{const t=fp();if(e.meta.requiresAuth&&!await t.checkAuth())return{name:"login"};if(e.name==="login"&&t.isLoggedIn)return{name:"dashboard"}});const Er=fn({toasts:[]});let dp=0;const Zn=e=>{const t=`toast-${++dp}`,n=e.duration??3e3,r={id:t,type:e.type,title:e.title,message:e.message,duration:n};return Er.toasts.push(r),n>0&&setTimeout(()=>{kc(t)},n),t},kc=e=>{const t=Er.toasts.findIndex(n=>n.id===e);t>-1&&Er.toasts.splice(t,1)},Zp=()=>({success:(e,t,n)=>Zn({type:"success",message:e,title:t,duration:n}),error:(e,t,n)=>Zn({type:"error",message:e,title:t,duration:n}),warning:(e,t,n)=>Zn({type:"warning",message:e,title:t,duration:n}),info:(e,t,n)=>Zn({type:"info",message:e,title:t,duration:n})}),hp={class:"fixed right-4 top-4 z-[200] flex flex-col gap-2"},pp={class:"flex-shrink-0"},mp={key:0,class:"h-5 w-5 text-emerald-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},gp={key:1,class:"h-5 w-5 text-rose-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},yp={key:2,class:"h-5 w-5 text-amber-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},_p={key:3,class:"h-5 w-5 text-sky-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},bp={class:"flex-1"},Ep={key:0,class:"text-sm font-medium text-foreground"},wp=["onClick"],vp=Or({__name:"Toast",setup(e){const t=Er.toasts,n=r=>{switch(r){case"success":return"border-emerald-200 bg-emerald-50";case"error":return"border-rose-200 bg-rose-50";case"warning":return"border-amber-200 bg-amber-50";default:return"border-sky-200 bg-sky-50"}};return(r,s)=>(qe(),gr(Fa,{to:"body"},[ke("div",hp,[be(cf,{name:"toast"},{default:al(()=>[(qe(!0),Ct(ve,null,Ja(dt(t),o=>(qe(),Ct("div",{key:o.id,class:Nn(["flex min-w-[320px] items-start gap-3 rounded-2xl border border-border bg-card px-4 py-3 shadow-lg",n(o.type)])},[ke("div",pp,[o.type==="success"?(qe(),Ct("svg",mp,[...s[0]||(s[0]=[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"},null,-1)])])):o.type==="error"?(qe(),Ct("svg",gp,[...s[1]||(s[1]=[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"},null,-1)])])):o.type==="warning"?(qe(),Ct("svg",yp,[...s[2]||(s[2]=[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"},null,-1)])])):(qe(),Ct("svg",_p,[...s[3]||(s[3]=[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"},null,-1)])]))]),ke("div",bp,[o.title?(qe(),Ct("p",Ep,ls(o.title),1)):Cu("",!0),ke("p",{class:Nn(["text-sm text-muted-foreground",{"mt-1":o.title}])},ls(o.message),3)]),ke("button",{class:"flex-shrink-0 text-muted-foreground transition-colors hover:text-foreground",onClick:i=>dt(kc)(o.id)},[...s[4]||(s[4]=[ke("svg",{class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])],8,wp)],2))),128))]),_:1})])]))}}),Sp=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},Ap=Sp(vp,[["__scopeId","data-v-cdd21b3c"]]),Rp=Or({__name:"App",setup(e){return(t,n)=>(qe(),Ct(ve,null,[be(dt(fc)),be(Ap)],64))}}),no=_f(Rp),Cp=wf();no.use(Cp);no.use(Mc);no.mount("#app");export{Op as A,fc as B,xf as C,Ip as D,Zp as E,ve as F,$s as G,Tp as H,fn as I,Nd as R,Fa as T,ke as a,Cu as b,Ct as c,Or as d,qe as e,Ru as f,Pn as g,$t as h,Be as i,wl as j,Fs as k,fp as l,gr as m,Nn as n,bl as o,be as p,xp as q,Ja as r,al as s,ls as t,dt as u,Pp as v,Np as w,Lp as x,Dp as y,Sn as z}; diff --git a/static/assets/index-C7QtVLks.js b/static/assets/index-C7QtVLks.js new file mode 100644 index 0000000000000000000000000000000000000000..0ac2dbad000ab35c663efcf1cdeff5aeef16f892 --- /dev/null +++ b/static/assets/index-C7QtVLks.js @@ -0,0 +1,7 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PublicUptime-sd-LMOGE.js","assets/useUptimeStatus-DSC-vSsG.js","assets/AppShell-By1VIFEt.js","assets/settings-_wJjBPdz.js","assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-Cf0ef7-g.js","assets/useConfirmDialog-0WVRfuk6.js","assets/Dashboard-BvLH4lOG.js","assets/HelpTip.vue_vue_type_script_setup_true_lang-C9YlQcyS.js","assets/Accounts-Dzw6xcVv.js","assets/SelectMenu.vue_vue_type_script_setup_true_lang-bF-MPrxc.js","assets/Checkbox.vue_vue_type_script_setup_true_lang-ChgTHjuD.js","assets/Settings-0_2SUCPB.js","assets/Logs-DHB6fZHX.js","assets/Monitor-BtkOUZKg.js"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function us(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const se={},$t=[],ot=()=>{},ni=()=>!1,or=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),fs=e=>e.startsWith("onUpdate:"),Se=Object.assign,ds=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},oc=Object.prototype.hasOwnProperty,ne=(e,t)=>oc.call(e,t),q=Array.isArray,Kt=e=>ir(e)==="[object Map]",ri=e=>ir(e)==="[object Set]",W=e=>typeof e=="function",de=e=>typeof e=="string",yt=e=>typeof e=="symbol",le=e=>e!==null&&typeof e=="object",si=e=>(le(e)||W(e))&&W(e.then)&&W(e.catch),oi=Object.prototype.toString,ir=e=>oi.call(e),ic=e=>ir(e).slice(8,-1),ii=e=>ir(e)==="[object Object]",lr=e=>de(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,cn=us(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),cr=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},lc=/-\w/g,xt=cr(e=>e.replace(lc,t=>t.slice(1).toUpperCase())),cc=/\B([A-Z])/g,jt=cr(e=>e.replace(cc,"-$1").toLowerCase()),li=cr(e=>e.charAt(0).toUpperCase()+e.slice(1)),vr=cr(e=>e?`on${li(e)}`:""),vt=(e,t)=>!Object.is(e,t),Bn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},hs=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let ks;const ar=()=>ks||(ks=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function ps(e){if(q(e)){const t={};for(let n=0;n{if(n){const r=n.split(uc);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function ms(e){let t="";if(de(e))t=e;else if(q(e))for(let n=0;n!!(e&&e.__v_isRef===!0),mc=e=>de(e)?e:e==null?"":q(e)||le(e)&&(e.toString===oi||!W(e.toString))?ui(e)?mc(e.value):JSON.stringify(e,fi,2):String(e),fi=(e,t)=>ui(t)?fi(e,t.value):Kt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[Or(r,o)+" =>"]=s,n),{})}:ri(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Or(n))}:yt(t)?Or(t):le(t)&&!q(t)&&!ii(t)?String(t):t,Or=(e,t="")=>{var n;return yt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let _e;class di{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=_e,!t&&_e&&(this.index=(_e.scopes||(_e.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&&(_e=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if(un){let t=un;for(un=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;an;){let t=an;for(an=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function _i(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function bi(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),_s(r),yc(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function qr(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===bn)||(e.globalVersion=bn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!qr(e))))return;e.flags|=2;const t=e.dep,n=ie,r=$e;ie=e,$e=!0;try{_i(e);const s=e.fn(e._value);(t.version===0||vt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{ie=n,$e=r,bi(e),e.flags&=-3}}function _s(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)_s(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function yc(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 wi=[];function ht(){wi.push($e),$e=!1}function pt(){const e=wi.pop();$e=e===void 0?!0:e}function Vs(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ie;ie=void 0;try{t()}finally{ie=n}}}let bn=0;class _c{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 bs{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!ie||!$e||ie===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ie)n=this.activeLink=new _c(ie,this),ie.deps?(n.prevDep=ie.depsTail,ie.depsTail.nextDep=n,ie.depsTail=n):ie.deps=ie.depsTail=n,Si(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=ie.depsTail,n.nextDep=void 0,ie.depsTail.nextDep=n,ie.depsTail=n,ie.deps===n&&(ie.deps=r)}return n}trigger(t){this.version++,bn++,this.notify(t)}notify(t){gs();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ys()}}}function Si(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Si(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const zn=new WeakMap,Dt=Symbol(""),$r=Symbol(""),En=Symbol("");function be(e,t,n){if($e&&ie){let r=zn.get(e);r||zn.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new bs),s.map=r,s.key=n),s.track()}}function ft(e,t,n,r,s,o){const i=zn.get(e);if(!i){bn++;return}const l=c=>{c&&c.trigger()};if(gs(),t==="clear")i.forEach(l);else{const c=q(e),u=c&&lr(n);if(c&&n==="length"){const a=Number(r);i.forEach((f,p)=>{(p==="length"||p===En||!yt(p)&&p>=a)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(En)),t){case"add":c?u&&l(i.get("length")):(l(i.get(Dt)),Kt(e)&&l(i.get($r)));break;case"delete":c||(l(i.get(Dt)),Kt(e)&&l(i.get($r)));break;case"set":Kt(e)&&l(i.get(Dt));break}}ys()}function bc(e,t){const n=zn.get(e);return n&&n.get(t)}function Bt(e){const t=Z(e);return t===e?t:(be(t,"iterate",En),je(e)?t:t.map(Ke))}function ur(e){return be(e=Z(e),"iterate",En),e}function wt(e,t){return mt(e)?it(e)?zt(Ke(t)):zt(t):Ke(t)}const Ec={__proto__:null,[Symbol.iterator](){return Tr(this,Symbol.iterator,e=>wt(this,e))},concat(...e){return Bt(this).concat(...e.map(t=>q(t)?Bt(t):t))},entries(){return Tr(this,"entries",e=>(e[1]=wt(this,e[1]),e))},every(e,t){return ct(this,"every",e,t,void 0,arguments)},filter(e,t){return ct(this,"filter",e,t,n=>n.map(r=>wt(this,r)),arguments)},find(e,t){return ct(this,"find",e,t,n=>wt(this,n),arguments)},findIndex(e,t){return ct(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ct(this,"findLast",e,t,n=>wt(this,n),arguments)},findLastIndex(e,t){return ct(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ct(this,"forEach",e,t,void 0,arguments)},includes(...e){return Cr(this,"includes",e)},indexOf(...e){return Cr(this,"indexOf",e)},join(e){return Bt(this).join(e)},lastIndexOf(...e){return Cr(this,"lastIndexOf",e)},map(e,t){return ct(this,"map",e,t,void 0,arguments)},pop(){return nn(this,"pop")},push(...e){return nn(this,"push",e)},reduce(e,...t){return qs(this,"reduce",e,t)},reduceRight(e,...t){return qs(this,"reduceRight",e,t)},shift(){return nn(this,"shift")},some(e,t){return ct(this,"some",e,t,void 0,arguments)},splice(...e){return nn(this,"splice",e)},toReversed(){return Bt(this).toReversed()},toSorted(e){return Bt(this).toSorted(e)},toSpliced(...e){return Bt(this).toSpliced(...e)},unshift(...e){return nn(this,"unshift",e)},values(){return Tr(this,"values",e=>wt(this,e))}};function Tr(e,t,n){const r=ur(e),s=r[t]();return r!==e&&!je(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const wc=Array.prototype;function ct(e,t,n,r,s,o){const i=ur(e),l=i!==e&&!je(e),c=i[t];if(c!==wc[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,wt(e,f),p,e)}:n.length>2&&(u=function(f,p){return n.call(this,f,p,e)}));const a=c.call(i,u,r);return l&&s?s(a):a}function qs(e,t,n,r){const s=ur(e);let o=n;return s!==e&&(je(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,wt(e,l),c,e)}),s[t](o,...r)}function Cr(e,t,n){const r=Z(e);be(r,"iterate",En);const s=r[t](...n);return(s===-1||s===!1)&&fr(n[0])?(n[0]=Z(n[0]),r[t](...n)):s}function nn(e,t,n=[]){ht(),gs();const r=Z(e)[t].apply(e,n);return ys(),pt(),r}const Sc=us("__proto__,__v_isRef,__isVue"),Ri=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(yt));function Rc(e){yt(e)||(e=String(e));const t=Z(this);return be(t,"has",e),t.hasOwnProperty(e)}class Ai{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?Dc:Ti:o?xi:Oi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=q(t);if(!s){let c;if(i&&(c=Ec[n]))return c;if(n==="hasOwnProperty")return Rc}const l=Reflect.get(t,n,ce(t)?t:r);if((yt(n)?Ri.has(n):Sc(n))||(s||be(t,"get",n),o))return l;if(ce(l)){const c=i&&lr(n)?l:l.value;return s&&le(c)?Wr(c):c}return le(l)?s?Wr(l):On(l):l}}class vi extends Ai{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=q(t)&&lr(n);if(!this._isShallow){const u=mt(o);if(!je(r)&&!mt(r)&&(o=Z(o),r=Z(r)),!i&&ce(o)&&!ce(r))return u||(o.value=r),!0}const l=i?Number(n)e,Dn=e=>Reflect.getPrototypeOf(e);function Tc(e,t,n){return function(...r){const s=this.__v_raw,o=Z(s),i=Kt(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=s[e](...r),a=n?Kr:t?zt:Ke;return!t&&be(o,"iterate",c?$r:Dt),{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 Ln(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Cc(e,t){const n={get(s){const o=this.__v_raw,i=Z(o),l=Z(s);e||(vt(s,l)&&be(i,"get",s),be(i,"get",l));const{has:c}=Dn(i),u=t?Kr:e?zt:Ke;if(c.call(i,s))return u(o.get(s));if(c.call(i,l))return u(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&be(Z(s),"iterate",Dt),s.size},has(s){const o=this.__v_raw,i=Z(o),l=Z(s);return e||(vt(s,l)&&be(i,"has",s),be(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,c=Z(l),u=t?Kr:e?zt:Ke;return!e&&be(c,"iterate",Dt),l.forEach((a,f)=>s.call(o,u(a),u(f),i))}};return Se(n,e?{add:Ln("add"),set:Ln("set"),delete:Ln("delete"),clear:Ln("clear")}:{add(s){!t&&!je(s)&&!mt(s)&&(s=Z(s));const o=Z(this);return Dn(o).has.call(o,s)||(o.add(s),ft(o,"add",s,s)),this},set(s,o){!t&&!je(o)&&!mt(o)&&(o=Z(o));const i=Z(this),{has:l,get:c}=Dn(i);let u=l.call(i,s);u||(s=Z(s),u=l.call(i,s));const a=c.call(i,s);return i.set(s,o),u?vt(o,a)&&ft(i,"set",s,o):ft(i,"add",s,o),this},delete(s){const o=Z(this),{has:i,get:l}=Dn(o);let c=i.call(o,s);c||(s=Z(s),c=i.call(o,s)),l&&l.call(o,s);const u=o.delete(s);return c&&ft(o,"delete",s,void 0),u},clear(){const s=Z(this),o=s.size!==0,i=s.clear();return o&&ft(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=Tc(s,e,t)}),n}function Es(e,t){const n=Cc(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(ne(n,s)&&s in r?n:r,s,o)}const Pc={get:Es(!1,!1)},Nc={get:Es(!1,!0)},Ic={get:Es(!0,!1)};const Oi=new WeakMap,xi=new WeakMap,Ti=new WeakMap,Dc=new WeakMap;function Lc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Fc(e){return e.__v_skip||!Object.isExtensible(e)?0:Lc(ic(e))}function On(e){return mt(e)?e:ws(e,!1,vc,Pc,Oi)}function Ci(e){return ws(e,!1,xc,Nc,xi)}function Wr(e){return ws(e,!0,Oc,Ic,Ti)}function ws(e,t,n,r,s){if(!le(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=Fc(e);if(o===0)return e;const i=s.get(e);if(i)return i;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function it(e){return mt(e)?it(e.__v_raw):!!(e&&e.__v_isReactive)}function mt(e){return!!(e&&e.__v_isReadonly)}function je(e){return!!(e&&e.__v_isShallow)}function fr(e){return e?!!e.__v_raw:!1}function Z(e){const t=e&&e.__v_raw;return t?Z(t):e}function Ss(e){return!ne(e,"__v_skip")&&Object.isExtensible(e)&&ci(e,"__v_skip",!0),e}const Ke=e=>le(e)?On(e):e,zt=e=>le(e)?Wr(e):e;function ce(e){return e?e.__v_isRef===!0:!1}function Lt(e){return Pi(e,!1)}function Mc(e){return Pi(e,!0)}function Pi(e,t){return ce(e)?e:new Uc(e,t)}class Uc{constructor(t,n){this.dep=new bs,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:Z(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,r=this.__v_isShallow||je(t)||mt(t);t=r?t:Z(t),vt(t,n)&&(this._rawValue=t,this._value=r?t:Ke(t),this.dep.trigger())}}function Ot(e){return ce(e)?e.value:e}const jc={get:(e,t,n)=>t==="__v_raw"?e:Ot(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return ce(s)&&!ce(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Ni(e){return it(e)?e:new Proxy(e,jc)}function Bc(e){const t=q(e)?new Array(e.length):{};for(const n in e)t[n]=Ii(e,n);return t}class Hc{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._raw=Z(t);let s=!0,o=t;if(!q(t)||!lr(String(n)))do s=!fr(o)||je(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=Ot(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&ce(this._raw[this._key])){const n=this._object[this._key];if(ce(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return bc(this._raw,this._key)}}class kc{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Vc(e,t,n){return ce(e)?e:W(e)?new kc(e):le(e)&&arguments.length>1?Ii(e,t,n):Lt(e)}function Ii(e,t,n){return new Hc(e,t,n)}class qc{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new bs(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=bn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&ie!==this)return yi(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 $c(e,t,n=!1){let r,s;return W(e)?r=e:(r=e.get,s=e.set),new qc(r,s,n)}const Fn={},Jn=new WeakMap;let Pt;function Kc(e,t=!1,n=Pt){if(n){let r=Jn.get(n);r||Jn.set(n,r=[]),r.push(e)}}function Wc(e,t,n=se){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:c}=n,u=P=>s?P:je(P)||s===!1||s===0?dt(P,1):dt(P);let a,f,p,m,g=!1,b=!1;if(ce(e)?(f=()=>e.value,g=je(e)):it(e)?(f=()=>u(e),g=!0):q(e)?(b=!0,g=e.some(P=>it(P)||je(P)),f=()=>e.map(P=>{if(ce(P))return P.value;if(it(P))return u(P);if(W(P))return c?c(P,2):P()})):W(e)?t?f=c?()=>c(e,2):e:f=()=>{if(p){ht();try{p()}finally{pt()}}const P=Pt;Pt=a;try{return c?c(e,3,[m]):e(m)}finally{Pt=P}}:f=ot,t&&s){const P=f,M=s===!0?1/0:s;f=()=>dt(P(),M)}const E=pi(),O=()=>{a.stop(),E&&E.active&&ds(E.effects,a)};if(o&&t){const P=t;t=(...M)=>{P(...M),O()}}let C=b?new Array(e.length).fill(Fn):Fn;const N=P=>{if(!(!(a.flags&1)||!a.dirty&&!P))if(t){const M=a.run();if(s||g||(b?M.some((X,k)=>vt(X,C[k])):vt(M,C))){p&&p();const X=Pt;Pt=a;try{const k=[M,C===Fn?void 0:b&&C[0]===Fn?[]:C,m];C=M,c?c(t,3,k):t(...k)}finally{Pt=X}}}else a.run()};return l&&l(N),a=new mi(f),a.scheduler=i?()=>i(N,!1):N,m=P=>Kc(P,!1,a),p=a.onStop=()=>{const P=Jn.get(a);if(P){if(c)c(P,4);else for(const M of P)M();Jn.delete(a)}},t?r?N(!0):C=a.run():i?i(N.bind(null,!0),!0):a.run(),O.pause=a.pause.bind(a),O.resume=a.resume.bind(a),O.stop=O,O}function dt(e,t=1/0,n){if(t<=0||!le(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,ce(e))dt(e.value,t,n);else if(q(e))for(let r=0;r{dt(r,t,n)});else if(ii(e)){for(const r in e)dt(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&dt(e[r],t,n)}return e}function xn(e,t,n,r){try{return r?e(...r):e()}catch(s){dr(s,t,n)}}function lt(e,t,n,r){if(W(e)){const s=xn(e,t,n,r);return s&&si(s)&&s.catch(o=>{dr(o,t,n)}),s}if(q(e)){const s=[];for(let o=0;o>>1,s=xe[r],o=wn(s);o=wn(n)?xe.push(e):xe.splice(zc(t),0,e),e.flags|=1,Li()}}function Li(){Xn||(Xn=Di.then(Mi))}function Jc(e){q(e)?Wt.push(...e):St&&e.id===-1?St.splice(kt+1,0,e):e.flags&1||(Wt.push(e),e.flags|=1),Li()}function $s(e,t,n=rt+1){for(;nwn(n)-wn(r));if(Wt.length=0,St){St.push(...t);return}for(St=t,kt=0;kte.id==null?e.flags&2?-1:1/0:e.id;function Mi(e){try{for(rt=0;rt{r._d&&tr(-1);const o=Qn(t);let i;try{i=e(...s)}finally{Qn(o),r._d&&tr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function Ah(e,t){if(we===null)return e;const n=gr(we),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&W(t)?t.call(r&&r.proxy):t}}function Qc(){return!!(dl()||Ft)}const Yc=Symbol.for("v-scx"),Zc=()=>ke(Yc);function fn(e,t,n){return ji(e,t,n)}function ji(e,t,n=se){const{immediate:r,deep:s,flush:o,once:i}=n,l=Se({},n),c=t&&r||!t&&o!=="post";let u;if(An){if(o==="sync"){const m=Zc();u=m.__watcherHandles||(m.__watcherHandles=[])}else if(!c){const m=()=>{};return m.stop=ot,m.resume=ot,m.pause=ot,m}}const a=Te;l.call=(m,g,b)=>lt(m,a,g,b);let f=!1;o==="post"?l.scheduler=m=>{ve(m,a&&a.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(m,g)=>{g?m():As(m)}),l.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,a&&(m.id=a.uid,m.i=a))};const p=Wc(e,t,l);return An&&(u?u.push(p):c&&p()),p}function ea(e,t,n){const r=this.proxy,s=de(e)?e.includes(".")?Bi(r,e):()=>r[e]:e.bind(r,r);let o;W(t)?o=t:(o=t.handler,n=t);const i=Tn(this),l=ji(s,o.bind(r),n);return i(),l}function Bi(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,dn=e=>e&&(e.disabled||e.disabled===""),Ks=e=>e&&(e.defer||e.defer===""),Ws=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Gs=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Gr=(e,t)=>{const n=e&&e.to;return de(n)?t?t(n):null:n},ki={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,u){const{mc:a,pc:f,pbc:p,o:{insert:m,querySelector:g,createText:b,createComment:E}}=u,O=dn(t.props);let{shapeFlag:C,children:N,dynamicChildren:P}=t;if(e==null){const M=t.el=b(""),X=t.anchor=b("");m(M,n,r),m(X,n,r);const k=(U,ee)=>{C&16&&a(N,U,ee,s,o,i,l,c)},V=()=>{const U=t.target=Gr(t.props,g),ee=Vi(U,t,b,m);U&&(i!=="svg"&&Ws(U)?i="svg":i!=="mathml"&&Gs(U)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(U),O||(k(U,ee),kn(t,!1)))};O&&(k(n,X),kn(t,!0)),Ks(t.props)?(t.el.__isMounted=!1,ve(()=>{V(),delete t.el.__isMounted},o)):V()}else{if(Ks(t.props)&&e.el.__isMounted===!1){ve(()=>{ki.process(e,t,n,r,s,o,i,l,c,u)},o);return}t.el=e.el,t.targetStart=e.targetStart;const M=t.anchor=e.anchor,X=t.target=e.target,k=t.targetAnchor=e.targetAnchor,V=dn(e.props),U=V?n:X,ee=V?M:k;if(i==="svg"||Ws(X)?i="svg":(i==="mathml"||Gs(X))&&(i="mathml"),P?(p(e.dynamicChildren,P,U,s,o,i,l),Cs(e,t,!0)):c||f(e,t,U,ee,s,o,i,l,!1),O)V?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Mn(t,n,M,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const ue=t.target=Gr(t.props,g);ue&&Mn(t,ue,null,u,0)}else V&&Mn(t,X,k,u,1);kn(t,O)}},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetStart:u,targetAnchor:a,target:f,props:p}=e;if(f&&(s(u),s(a)),o&&s(c),i&16){const m=o||!dn(p);for(let g=0;ghn(g,t&&(q(t)?t[b]:t),n,r,s));return}if(Gt(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&hn(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?gr(r.component):r.el,i=s?null:o,{i:l,r:c}=e,u=t&&t.r,a=l.refs===se?l.refs={}:l.refs,f=l.setupState,p=Z(f),m=f===se?ni:g=>ne(p,g);if(u!=null&&u!==c){if(zs(t),de(u))a[u]=null,m(u)&&(f[u]=null);else if(ce(u)){u.value=null;const g=t;g.k&&(a[g.k]=null)}}if(W(c))xn(c,l,12,[i,a]);else{const g=de(c),b=ce(c);if(g||b){const E=()=>{if(e.f){const O=g?m(c)?f[c]:a[c]:c.value;if(s)q(O)&&ds(O,o);else if(q(O))O.includes(o)||O.push(o);else if(g)a[c]=[o],m(c)&&(f[c]=a[c]);else{const C=[o];c.value=C,e.k&&(a[e.k]=C)}}else g?(a[c]=i,m(c)&&(f[c]=i)):b&&(c.value=i,e.k&&(a[e.k]=i))};if(i){const O=()=>{E(),Yn.delete(e)};O.id=-1,Yn.set(e,O),ve(O,n)}else zs(e),E()}}}function zs(e){const t=Yn.get(e);t&&(t.flags|=8,Yn.delete(e))}ar().requestIdleCallback;ar().cancelIdleCallback;const Gt=e=>!!e.type.__asyncLoader,$i=e=>e.type.__isKeepAlive;function sa(e,t){Ki(e,"a",t)}function oa(e,t){Ki(e,"da",t)}function Ki(e,t,n=Te){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(hr(t,r,n),n){let s=n.parent;for(;s&&s.parent;)$i(s.parent.vnode)&&ia(r,t,n,s),s=s.parent}}function ia(e,t,n,r){const s=hr(t,e,r,!0);Wi(()=>{ds(r[t],s)},n)}function hr(e,t,n=Te,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{ht();const l=Tn(n),c=lt(t,n,e,i);return l(),pt(),c});return r?s.unshift(o):s.push(o),o}}const _t=e=>(t,n=Te)=>{(!An||e==="sp")&&hr(e,(...r)=>t(...r),n)},la=_t("bm"),ca=_t("m"),aa=_t("bu"),ua=_t("u"),fa=_t("bum"),Wi=_t("um"),da=_t("sp"),ha=_t("rtg"),pa=_t("rtc");function ma(e,t=Te){hr("ec",e,t)}const ga=Symbol.for("v-ndc");function Oh(e,t,n,r){let s;const o=n,i=q(e);if(i||de(e)){const l=i&&it(e);let c=!1,u=!1;l&&(c=!je(e),u=mt(e),e=ur(e)),s=new Array(e.length);for(let a=0,f=e.length;at(l,c,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let c=0,u=l.length;c0;return er(),nr(Fe,null,[Ce("slot",n,r)],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),er();const i=o&&Gi(o(n)),l=n.key||i&&i.key,c=nr(Fe,{key:(l&&!yt(l)?l:`_${t}`)+(!i&&r?"_fb":"")},i||[],i&&e._===1?64:-2);return c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),o&&o._c&&(o._d=!0),c}function Gi(e){return e.some(t=>Rn(t)?!(t.type===gt||t.type===Fe&&!Gi(t.children)):!0)?e:null}const zr=e=>e?hl(e)?gr(e):zr(e.parent):null,pn=Se(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=>zr(e.parent),$root:e=>zr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ji(e),$forceUpdate:e=>e.f||(e.f=()=>{As(e.update)}),$nextTick:e=>e.n||(e.n=Rs.bind(e.proxy)),$watch:e=>ea.bind(e)}),Pr=(e,t)=>e!==se&&!e.__isScriptSetup&&ne(e,t),ya={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,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 r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(Pr(r,t))return i[t]=1,r[t];if(s!==se&&ne(s,t))return i[t]=2,s[t];if(ne(o,t))return i[t]=3,o[t];if(n!==se&&ne(n,t))return i[t]=4,n[t];Jr&&(i[t]=0)}}const u=pn[t];let a,f;if(u)return t==="$attrs"&&be(e.attrs,"get",""),u(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==se&&ne(n,t))return i[t]=4,n[t];if(f=c.config.globalProperties,ne(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return Pr(s,t)?(s[t]=n,!0):r!==se&&ne(r,t)?(r[t]=n,!0):ne(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:o,type:i}},l){let c;return!!(n[l]||e!==se&&l[0]!=="$"&&ne(e,l)||Pr(t,l)||ne(o,l)||ne(r,l)||ne(pn,l)||ne(s.config.globalProperties,l)||(c=i.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ne(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Js(e){return q(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Jr=!0;function _a(e){const t=Ji(e),n=e.proxy,r=e.ctx;Jr=!1,t.beforeCreate&&Xs(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:u,created:a,beforeMount:f,mounted:p,beforeUpdate:m,updated:g,activated:b,deactivated:E,beforeDestroy:O,beforeUnmount:C,destroyed:N,unmounted:P,render:M,renderTracked:X,renderTriggered:k,errorCaptured:V,serverPrefetch:U,expose:ee,inheritAttrs:ue,components:ye,directives:pe,filters:Re}=t;if(u&&ba(u,r,null),i)for(const K in i){const z=i[K];W(z)&&(r[K]=z.bind(n))}if(s){const K=s.call(n,n);le(K)&&(e.data=On(K))}if(Jr=!0,o)for(const K in o){const z=o[K],Be=W(z)?z.bind(n,n):W(z.get)?z.get.bind(n,n):ot,ze=!W(z)&&W(z.set)?z.set.bind(n):ot,me=Me({get:Be,set:ze});Object.defineProperty(r,K,{enumerable:!0,configurable:!0,get:()=>me.value,set:fe=>me.value=fe})}if(l)for(const K in l)zi(l[K],r,n,K);if(c){const K=W(c)?c.call(n):c;Reflect.ownKeys(K).forEach(z=>{Hn(z,K[z])})}a&&Xs(a,e,"c");function J(K,z){q(z)?z.forEach(Be=>K(Be.bind(n))):z&&K(z.bind(n))}if(J(la,f),J(ca,p),J(aa,m),J(ua,g),J(sa,b),J(oa,E),J(ma,V),J(pa,X),J(ha,k),J(fa,C),J(Wi,P),J(da,U),q(ee))if(ee.length){const K=e.exposed||(e.exposed={});ee.forEach(z=>{Object.defineProperty(K,z,{get:()=>n[z],set:Be=>n[z]=Be,enumerable:!0})})}else e.exposed||(e.exposed={});M&&e.render===ot&&(e.render=M),ue!=null&&(e.inheritAttrs=ue),ye&&(e.components=ye),pe&&(e.directives=pe),U&&qi(e)}function ba(e,t,n=ot){q(e)&&(e=Xr(e));for(const r in e){const s=e[r];let o;le(s)?"default"in s?o=ke(s.from||r,s.default,!0):o=ke(s.from||r):o=ke(s),ce(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function Xs(e,t,n){lt(q(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function zi(e,t,n,r){let s=r.includes(".")?Bi(n,r):()=>n[r];if(de(e)){const o=t[e];W(o)&&fn(s,o)}else if(W(e))fn(s,e.bind(n));else if(le(e))if(q(e))e.forEach(o=>zi(o,t,n,r));else{const o=W(e.handler)?e.handler.bind(n):t[e.handler];W(o)&&fn(s,o,e)}}function Ji(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>Zn(c,u,i,!0)),Zn(c,t,i)),le(t)&&o.set(t,c),c}function Zn(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&Zn(e,o,n,!0),s&&s.forEach(i=>Zn(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Ea[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Ea={data:Qs,props:Ys,emits:Ys,methods:ln,computed:ln,beforeCreate:Ae,created:Ae,beforeMount:Ae,mounted:Ae,beforeUpdate:Ae,updated:Ae,beforeDestroy:Ae,beforeUnmount:Ae,destroyed:Ae,unmounted:Ae,activated:Ae,deactivated:Ae,errorCaptured:Ae,serverPrefetch:Ae,components:ln,directives:ln,watch:Sa,provide:Qs,inject:wa};function Qs(e,t){return t?e?function(){return Se(W(e)?e.call(this,this):e,W(t)?t.call(this,this):t)}:t:e}function wa(e,t){return ln(Xr(e),Xr(t))}function Xr(e){if(q(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${xt(t)}Modifiers`]||e[`${jt(t)}Modifiers`];function Oa(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||se;let s=n;const o=t.startsWith("update:"),i=o&&va(r,t.slice(7));i&&(i.trim&&(s=n.map(a=>de(a)?a.trim():a)),i.number&&(s=n.map(hs)));let l,c=r[l=vr(t)]||r[l=vr(xt(t))];!c&&o&&(c=r[l=vr(jt(t))]),c&<(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,lt(u,e,6,s)}}const xa=new WeakMap;function Qi(e,t,n=!1){const r=n?xa:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!W(e)){const c=u=>{const a=Qi(u,t,!0);a&&(l=!0,Se(i,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(le(e)&&r.set(e,null),null):(q(o)?o.forEach(c=>i[c]=null):Se(i,o),le(e)&&r.set(e,i),i)}function pr(e,t){return!e||!or(t)?!1:(t=t.slice(2).replace(/Once$/,""),ne(e,t[0].toLowerCase()+t.slice(1))||ne(e,jt(t))||ne(e,t))}function Zs(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:a,props:f,data:p,setupState:m,ctx:g,inheritAttrs:b}=e,E=Qn(e);let O,C;try{if(n.shapeFlag&4){const P=s||r,M=P;O=st(u.call(M,P,a,f,m,p,g)),C=l}else{const P=t;O=st(P.length>1?P(f,{attrs:l,slots:i,emit:c}):P(f,null)),C=t.props?l:Ta(l)}}catch(P){mn.length=0,dr(P,e,1),O=Ce(gt)}let N=O;if(C&&b!==!1){const P=Object.keys(C),{shapeFlag:M}=N;P.length&&M&7&&(o&&P.some(fs)&&(C=Ca(C,o)),N=Jt(N,C,!1,!0))}return n.dirs&&(N=Jt(N,null,!1,!0),N.dirs=N.dirs?N.dirs.concat(n.dirs):n.dirs),n.transition&&vs(N,n.transition),O=N,Qn(E),O}const Ta=e=>{let t;for(const n in e)(n==="class"||n==="style"||or(n))&&((t||(t={}))[n]=e[n]);return t},Ca=(e,t)=>{const n={};for(const r in e)(!fs(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Pa(e,t,n){const{props:r,children:s,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 r?eo(r,i,u):!!i;if(c&8){const a=t.dynamicProps;for(let f=0;fObject.create(Yi),el=e=>Object.getPrototypeOf(e)===Yi;function Ia(e,t,n,r=!1){const s={},o=Zi();e.propsDefaults=Object.create(null),tl(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:Ci(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function Da(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=Z(s),[c]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const a=e.vnode.dynamicProps;for(let f=0;f{c=!0;const[p,m]=nl(f,t,!0);Se(i,p),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!c)return le(e)&&r.set(e,$t),$t;if(q(o))for(let a=0;ae==="_"||e==="_ctx"||e==="$stable",Ts=e=>q(e)?e.map(st):[st(e)],Fa=(e,t,n)=>{if(t._n)return t;const r=Xc((...s)=>Ts(t(...s)),n);return r._c=!1,r},rl=(e,t,n)=>{const r=e._ctx;for(const s in e){if(xs(s))continue;const o=e[s];if(W(o))t[s]=Fa(s,o,r);else if(o!=null){const i=Ts(o);t[s]=()=>i}}},sl=(e,t)=>{const n=Ts(t);e.slots.default=()=>n},ol=(e,t,n)=>{for(const r in t)(n||!xs(r))&&(e[r]=t[r])},Ma=(e,t,n)=>{const r=e.slots=Zi();if(e.vnode.shapeFlag&32){const s=t._;s?(ol(r,t,n),n&&ci(r,"_",s,!0)):rl(t,r)}else t&&sl(e,t)},Ua=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=se;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:ol(s,t,n):(o=!t.$stable,rl(t,s)),i=t}else t&&(sl(e,t),i={default:1});if(o)for(const l in s)!xs(l)&&i[l]==null&&delete s[l]},ve=Va;function ja(e){return Ba(e)}function Ba(e,t){const n=ar();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:a,parentNode:f,nextSibling:p,setScopeId:m=ot,insertStaticContent:g}=e,b=(d,h,y,w=null,A=null,S=null,I=void 0,T=null,x=!!h.dynamicChildren)=>{if(d===h)return;d&&!rn(d,h)&&(w=R(d),fe(d,A,S,!0),d=null),h.patchFlag===-2&&(x=!1,h.dynamicChildren=null);const{type:v,ref:H,shapeFlag:L}=h;switch(v){case mr:E(d,h,y,w);break;case gt:O(d,h,y,w);break;case Vn:d==null&&C(h,y,w,I);break;case Fe:ye(d,h,y,w,A,S,I,T,x);break;default:L&1?M(d,h,y,w,A,S,I,T,x):L&6?pe(d,h,y,w,A,S,I,T,x):(L&64||L&128)&&v.process(d,h,y,w,A,S,I,T,x,j)}H!=null&&A?hn(H,d&&d.ref,S,h||d,!h):H==null&&d&&d.ref!=null&&hn(d.ref,null,S,d,!0)},E=(d,h,y,w)=>{if(d==null)r(h.el=l(h.children),y,w);else{const A=h.el=d.el;h.children!==d.children&&u(A,h.children)}},O=(d,h,y,w)=>{d==null?r(h.el=c(h.children||""),y,w):h.el=d.el},C=(d,h,y,w)=>{[d.el,d.anchor]=g(d.children,h,y,w,d.el,d.anchor)},N=({el:d,anchor:h},y,w)=>{let A;for(;d&&d!==h;)A=p(d),r(d,y,w),d=A;r(h,y,w)},P=({el:d,anchor:h})=>{let y;for(;d&&d!==h;)y=p(d),s(d),d=y;s(h)},M=(d,h,y,w,A,S,I,T,x)=>{if(h.type==="svg"?I="svg":h.type==="math"&&(I="mathml"),d==null)X(h,y,w,A,S,I,T,x);else{const v=d.el&&d.el._isVueCE?d.el:null;try{v&&v._beginPatch(),U(d,h,A,S,I,T,x)}finally{v&&v._endPatch()}}},X=(d,h,y,w,A,S,I,T)=>{let x,v;const{props:H,shapeFlag:L,transition:B,dirs:$}=d;if(x=d.el=i(d.type,S,H&&H.is,H),L&8?a(x,d.children):L&16&&V(d.children,x,null,w,A,Nr(d,S),I,T),$&&Tt(d,null,w,"created"),k(x,d,d.scopeId,I,w),H){for(const oe in H)oe!=="value"&&!cn(oe)&&o(x,oe,null,H[oe],S,w);"value"in H&&o(x,"value",null,H.value,S),(v=H.onVnodeBeforeMount)&&et(v,w,d)}$&&Tt(d,null,w,"beforeMount");const Y=Ha(A,B);Y&&B.beforeEnter(x),r(x,h,y),((v=H&&H.onVnodeMounted)||Y||$)&&ve(()=>{v&&et(v,w,d),Y&&B.enter(x),$&&Tt(d,null,w,"mounted")},A)},k=(d,h,y,w,A)=>{if(y&&m(d,y),w)for(let S=0;S{for(let v=x;v{const T=h.el=d.el;let{patchFlag:x,dynamicChildren:v,dirs:H}=h;x|=d.patchFlag&16;const L=d.props||se,B=h.props||se;let $;if(y&&Ct(y,!1),($=B.onVnodeBeforeUpdate)&&et($,y,h,d),H&&Tt(h,d,y,"beforeUpdate"),y&&Ct(y,!0),(L.innerHTML&&B.innerHTML==null||L.textContent&&B.textContent==null)&&a(T,""),v?ee(d.dynamicChildren,v,T,y,w,Nr(h,A),S):I||z(d,h,T,null,y,w,Nr(h,A),S,!1),x>0){if(x&16)ue(T,L,B,y,A);else if(x&2&&L.class!==B.class&&o(T,"class",null,B.class,A),x&4&&o(T,"style",L.style,B.style,A),x&8){const Y=h.dynamicProps;for(let oe=0;oe{$&&et($,y,h,d),H&&Tt(h,d,y,"updated")},w)},ee=(d,h,y,w,A,S,I)=>{for(let T=0;T{if(h!==y){if(h!==se)for(const S in h)!cn(S)&&!(S in y)&&o(d,S,h[S],null,A,w);for(const S in y){if(cn(S))continue;const I=y[S],T=h[S];I!==T&&S!=="value"&&o(d,S,T,I,A,w)}"value"in y&&o(d,"value",h.value,y.value,A)}},ye=(d,h,y,w,A,S,I,T,x)=>{const v=h.el=d?d.el:l(""),H=h.anchor=d?d.anchor:l("");let{patchFlag:L,dynamicChildren:B,slotScopeIds:$}=h;$&&(T=T?T.concat($):$),d==null?(r(v,y,w),r(H,y,w),V(h.children||[],y,H,A,S,I,T,x)):L>0&&L&64&&B&&d.dynamicChildren&&d.dynamicChildren.length===B.length?(ee(d.dynamicChildren,B,y,A,S,I,T),(h.key!=null||A&&h===A.subTree)&&Cs(d,h,!0)):z(d,h,y,H,A,S,I,T,x)},pe=(d,h,y,w,A,S,I,T,x)=>{h.slotScopeIds=T,d==null?h.shapeFlag&512?A.ctx.activate(h,y,w,I,x):Re(h,y,w,A,S,I,x):Ve(d,h,x)},Re=(d,h,y,w,A,S,I)=>{const T=d.component=Xa(d,w,A);if($i(d)&&(T.ctx.renderer=j),Qa(T,!1,I),T.asyncDep){if(A&&A.registerDep(T,J,I),!d.el){const x=T.subTree=Ce(gt);O(null,x,h,y),d.placeholder=x.el}}else J(T,d,h,y,A,S,I)},Ve=(d,h,y)=>{const w=h.component=d.component;if(Pa(d,h,y))if(w.asyncDep&&!w.asyncResolved){K(w,h,y);return}else w.next=h,w.update();else h.el=d.el,w.vnode=h},J=(d,h,y,w,A,S,I)=>{const T=()=>{if(d.isMounted){let{next:L,bu:B,u:$,parent:Y,vnode:oe}=d;{const Ye=il(d);if(Ye){L&&(L.el=oe.el,K(d,L,I)),Ye.asyncDep.then(()=>{d.isUnmounted||T()});return}}let re=L,Pe;Ct(d,!1),L?(L.el=oe.el,K(d,L,I)):L=oe,B&&Bn(B),(Pe=L.props&&L.props.onVnodeBeforeUpdate)&&et(Pe,Y,L,oe),Ct(d,!0);const Ne=Zs(d),Qe=d.subTree;d.subTree=Ne,b(Qe,Ne,f(Qe.el),R(Qe),d,A,S),L.el=Ne.el,re===null&&Na(d,Ne.el),$&&ve($,A),(Pe=L.props&&L.props.onVnodeUpdated)&&ve(()=>et(Pe,Y,L,oe),A)}else{let L;const{el:B,props:$}=h,{bm:Y,m:oe,parent:re,root:Pe,type:Ne}=d,Qe=Gt(h);Ct(d,!1),Y&&Bn(Y),!Qe&&(L=$&&$.onVnodeBeforeMount)&&et(L,re,h),Ct(d,!0);{Pe.ce&&Pe.ce._def.shadowRoot!==!1&&Pe.ce._injectChildStyle(Ne);const Ye=d.subTree=Zs(d);b(null,Ye,y,w,d,A,S),h.el=Ye.el}if(oe&&ve(oe,A),!Qe&&(L=$&&$.onVnodeMounted)){const Ye=h;ve(()=>et(L,re,Ye),A)}(h.shapeFlag&256||re&&Gt(re.vnode)&&re.vnode.shapeFlag&256)&&d.a&&ve(d.a,A),d.isMounted=!0,h=y=w=null}};d.scope.on();const x=d.effect=new mi(T);d.scope.off();const v=d.update=x.run.bind(x),H=d.job=x.runIfDirty.bind(x);H.i=d,H.id=d.uid,x.scheduler=()=>As(H),Ct(d,!0),v()},K=(d,h,y)=>{h.component=d;const w=d.vnode.props;d.vnode=h,d.next=null,Da(d,h.props,w,y),Ua(d,h.children,y),ht(),$s(d),pt()},z=(d,h,y,w,A,S,I,T,x=!1)=>{const v=d&&d.children,H=d?d.shapeFlag:0,L=h.children,{patchFlag:B,shapeFlag:$}=h;if(B>0){if(B&128){ze(v,L,y,w,A,S,I,T,x);return}else if(B&256){Be(v,L,y,w,A,S,I,T,x);return}}$&8?(H&16&&He(v,A,S),L!==v&&a(y,L)):H&16?$&16?ze(v,L,y,w,A,S,I,T,x):He(v,A,S,!0):(H&8&&a(y,""),$&16&&V(L,y,w,A,S,I,T,x))},Be=(d,h,y,w,A,S,I,T,x)=>{d=d||$t,h=h||$t;const v=d.length,H=h.length,L=Math.min(v,H);let B;for(B=0;BH?He(d,A,S,!0,!1,L):V(h,y,w,A,S,I,T,x,L)},ze=(d,h,y,w,A,S,I,T,x)=>{let v=0;const H=h.length;let L=d.length-1,B=H-1;for(;v<=L&&v<=B;){const $=d[v],Y=h[v]=x?Rt(h[v]):st(h[v]);if(rn($,Y))b($,Y,y,null,A,S,I,T,x);else break;v++}for(;v<=L&&v<=B;){const $=d[L],Y=h[B]=x?Rt(h[B]):st(h[B]);if(rn($,Y))b($,Y,y,null,A,S,I,T,x);else break;L--,B--}if(v>L){if(v<=B){const $=B+1,Y=$B)for(;v<=L;)fe(d[v],A,S,!0),v++;else{const $=v,Y=v,oe=new Map;for(v=Y;v<=B;v++){const Le=h[v]=x?Rt(h[v]):st(h[v]);Le.key!=null&&oe.set(Le.key,v)}let re,Pe=0;const Ne=B-Y+1;let Qe=!1,Ye=0;const tn=new Array(Ne);for(v=0;v=Ne){fe(Le,A,S,!0);continue}let Ze;if(Le.key!=null)Ze=oe.get(Le.key);else for(re=Y;re<=B;re++)if(tn[re-Y]===0&&rn(Le,h[re])){Ze=re;break}Ze===void 0?fe(Le,A,S,!0):(tn[Ze-Y]=v+1,Ze>=Ye?Ye=Ze:Qe=!0,b(Le,h[Ze],y,null,A,S,I,T,x),Pe++)}const js=Qe?ka(tn):$t;for(re=js.length-1,v=Ne-1;v>=0;v--){const Le=Y+v,Ze=h[Le],Bs=h[Le+1],Hs=Le+1{const{el:S,type:I,transition:T,children:x,shapeFlag:v}=d;if(v&6){me(d.component.subTree,h,y,w);return}if(v&128){d.suspense.move(h,y,w);return}if(v&64){I.move(d,h,y,j);return}if(I===Fe){r(S,h,y);for(let L=0;LT.enter(S),A);else{const{leave:L,delayLeave:B,afterLeave:$}=T,Y=()=>{d.ctx.isUnmounted?s(S):r(S,h,y)},oe=()=>{S._isLeaving&&S[ra](!0),L(S,()=>{Y(),$&&$()})};B?B(S,Y,oe):oe()}else r(S,h,y)},fe=(d,h,y,w=!1,A=!1)=>{const{type:S,props:I,ref:T,children:x,dynamicChildren:v,shapeFlag:H,patchFlag:L,dirs:B,cacheIndex:$}=d;if(L===-2&&(A=!1),T!=null&&(ht(),hn(T,null,y,d,!0),pt()),$!=null&&(h.renderCache[$]=void 0),H&256){h.ctx.deactivate(d);return}const Y=H&1&&B,oe=!Gt(d);let re;if(oe&&(re=I&&I.onVnodeBeforeUnmount)&&et(re,h,d),H&6)Xe(d.component,y,w);else{if(H&128){d.suspense.unmount(y,w);return}Y&&Tt(d,null,h,"beforeUnmount"),H&64?d.type.remove(d,h,y,j,w):v&&!v.hasOnce&&(S!==Fe||L>0&&L&64)?He(v,h,y,!1,!0):(S===Fe&&L&384||!A&&H&16)&&He(x,h,y),w&&Je(d)}(oe&&(re=I&&I.onVnodeUnmounted)||Y)&&ve(()=>{re&&et(re,h,d),Y&&Tt(d,null,h,"unmounted")},y)},Je=d=>{const{type:h,el:y,anchor:w,transition:A}=d;if(h===Fe){qe(y,w);return}if(h===Vn){P(d);return}const S=()=>{s(y),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(d.shapeFlag&1&&A&&!A.persisted){const{leave:I,delayLeave:T}=A,x=()=>I(y,S);T?T(d.el,S,x):x()}else S()},qe=(d,h)=>{let y;for(;d!==h;)y=p(d),s(d),d=y;s(h)},Xe=(d,h,y)=>{const{bum:w,scope:A,job:S,subTree:I,um:T,m:x,a:v}=d;no(x),no(v),w&&Bn(w),A.stop(),S&&(S.flags|=8,fe(I,d,h,y)),T&&ve(T,h),ve(()=>{d.isUnmounted=!0},h)},He=(d,h,y,w=!1,A=!1,S=0)=>{for(let I=S;I{if(d.shapeFlag&6)return R(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const h=p(d.anchor||d.el),y=h&&h[Hi];return y?p(y):h};let F=!1;const D=(d,h,y)=>{let w;d==null?h._vnode&&(fe(h._vnode,null,null,!0),w=h._vnode.component):b(h._vnode||null,d,h,null,null,null,y),h._vnode=d,F||(F=!0,$s(w),Fi(),F=!1)},j={p:b,um:fe,m:me,r:Je,mt:Re,mc:V,pc:z,pbc:ee,n:R,o:e};return{render:D,hydrate:void 0,createApp:Aa(D)}}function Nr({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 Ct({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Ha(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Cs(e,t,n=!1){const r=e.children,s=t.children;if(q(r)&&q(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function il(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:il(t)}function no(e){if(e)for(let t=0;te.__isSuspense;function Va(e,t){t&&t.pendingBranch?q(e)?t.effects.push(...e):t.effects.push(e):Jc(e)}const Fe=Symbol.for("v-fgt"),mr=Symbol.for("v-txt"),gt=Symbol.for("v-cmt"),Vn=Symbol.for("v-stc"),mn=[];let Ue=null;function er(e=!1){mn.push(Ue=e?null:[])}function qa(){mn.pop(),Ue=mn[mn.length-1]||null}let Sn=1;function tr(e,t=!1){Sn+=e,e<0&&Ue&&t&&(Ue.hasOnce=!0)}function al(e){return e.dynamicChildren=Sn>0?Ue||$t:null,qa(),Sn>0&&Ue&&Ue.push(e),e}function Th(e,t,n,r,s,o){return al(fl(e,t,n,r,s,o,!0))}function nr(e,t,n,r,s){return al(Ce(e,t,n,r,s,!0))}function Rn(e){return e?e.__v_isVNode===!0:!1}function rn(e,t){return e.type===t.type&&e.key===t.key}const ul=({key:e})=>e??null,qn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?de(e)||ce(e)||W(e)?{i:we,r:e,k:t,f:!!n}:e:null);function fl(e,t=null,n=null,r=0,s=null,o=e===Fe?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ul(t),ref:t&&qn(t),scopeId:Ui,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:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:we};return l?(Ps(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=de(n)?8:16),Sn>0&&!i&&Ue&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Ue.push(c),c}const Ce=$a;function $a(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===ga)&&(e=gt),Rn(e)){const l=Jt(e,t,!0);return n&&Ps(l,n),Sn>0&&!o&&Ue&&(l.shapeFlag&6?Ue[Ue.indexOf(e)]=l:Ue.push(l)),l.patchFlag=-2,l}if(tu(e)&&(e=e.__vccOpts),t){t=Ka(t);let{class:l,style:c}=t;l&&!de(l)&&(t.class=ms(l)),le(c)&&(fr(c)&&!q(c)&&(c=Se({},c)),t.style=ps(c))}const i=de(e)?1:cl(e)?128:ta(e)?64:le(e)?4:W(e)?2:0;return fl(e,t,n,r,s,i,o,!0)}function Ka(e){return e?fr(e)||el(e)?Se({},e):e:null}function Jt(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?Ga(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&ul(u),ref:t&&t.ref?n&&o?q(o)?o.concat(qn(t)):[o,qn(t)]:qn(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!==Fe?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&&Jt(e.ssContent),ssFallback:e.ssFallback&&Jt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&vs(a,c.clone(a)),a}function Wa(e=" ",t=0){return Ce(mr,null,e,t)}function Ch(e,t){const n=Ce(Vn,null,e);return n.staticCount=t,n}function Ph(e="",t=!1){return t?(er(),nr(gt,null,e)):Ce(gt,null,e)}function st(e){return e==null||typeof e=="boolean"?Ce(gt):q(e)?Ce(Fe,null,e.slice()):Rn(e)?Rt(e):Ce(mr,null,String(e))}function Rt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Jt(e)}function Ps(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(q(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Ps(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!el(t)?t._ctx=we:s===3&&we&&(we.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else W(t)?(t={default:t,_ctx:we},n=32):(t=String(t),r&64?(n=16,t=[Wa(t)]):n=8);e.children=t,e.shapeFlag|=n}function Ga(...e){const t={};for(let n=0;nTe||we;let rr,Yr;{const e=ar(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};rr=t("__VUE_INSTANCE_SETTERS__",n=>Te=n),Yr=t("__VUE_SSR_SETTERS__",n=>An=n)}const Tn=e=>{const t=Te;return rr(e),e.scope.on(),()=>{e.scope.off(),rr(t)}},ro=()=>{Te&&Te.scope.off(),rr(null)};function hl(e){return e.vnode.shapeFlag&4}let An=!1;function Qa(e,t=!1,n=!1){t&&Yr(t);const{props:r,children:s}=e.vnode,o=hl(e);Ia(e,r,o,t),Ma(e,s,n||t);const i=o?Ya(e,t):void 0;return t&&Yr(!1),i}function Ya(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,ya);const{setup:r}=n;if(r){ht();const s=e.setupContext=r.length>1?eu(e):null,o=Tn(e),i=xn(r,e,0,[e.props,s]),l=si(i);if(pt(),o(),(l||e.sp)&&!Gt(e)&&qi(e),l){if(i.then(ro,ro),t)return i.then(c=>{so(e,c)}).catch(c=>{dr(c,e,0)});e.asyncDep=i}else so(e,i)}else pl(e)}function so(e,t,n){W(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:le(t)&&(e.setupState=Ni(t)),pl(e)}function pl(e,t,n){const r=e.type;e.render||(e.render=r.render||ot);{const s=Tn(e);ht();try{_a(e)}finally{pt(),s()}}}const Za={get(e,t){return be(e,"get",""),e[t]}};function eu(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Za),slots:e.slots,emit:e.emit,expose:t}}function gr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ni(Ss(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in pn)return pn[n](e)},has(t,n){return n in t||n in pn}})):e.proxy}function tu(e){return W(e)&&"__vccOpts"in e}const Me=(e,t)=>$c(e,t,An);function ml(e,t,n){try{tr(-1);const r=arguments.length;return r===2?le(t)&&!q(t)?Rn(t)?Ce(e,null,[t]):Ce(e,t):Ce(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Rn(n)&&(n=[n]),Ce(e,t,n))}finally{tr(1)}}const nu="3.5.26";let Zr;const oo=typeof window<"u"&&window.trustedTypes;if(oo)try{Zr=oo.createPolicy("vue",{createHTML:e=>e})}catch{}const gl=Zr?e=>Zr.createHTML(e):e=>e,ru="http://www.w3.org/2000/svg",su="http://www.w3.org/1998/Math/MathML",ut=typeof document<"u"?document:null,io=ut&&ut.createElement("template"),ou={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?ut.createElementNS(ru,e):t==="mathml"?ut.createElementNS(su,e):n?ut.createElement(e,{is:n}):ut.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>ut.createTextNode(e),createComment:e=>ut.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ut.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{io.innerHTML=gl(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=io.content;if(r==="svg"||r==="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]}},iu=Symbol("_vtc");function lu(e,t,n){const r=e[iu];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const lo=Symbol("_vod"),cu=Symbol("_vsh"),au=Symbol(""),uu=/(?:^|;)\s*display\s*:/;function fu(e,t,n){const r=e.style,s=de(n);let o=!1;if(n&&!s){if(t)if(de(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&$n(r,l,"")}else for(const i in t)n[i]==null&&$n(r,i,"");for(const i in n)i==="display"&&(o=!0),$n(r,i,n[i])}else if(s){if(t!==n){const i=r[au];i&&(n+=";"+i),r.cssText=n,o=uu.test(n)}}else t&&e.removeAttribute("style");lo in e&&(e[lo]=o?r.display:"",e[cu]&&(r.display="none"))}const co=/\s*!important$/;function $n(e,t,n){if(q(n))n.forEach(r=>$n(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=du(e,t);co.test(n)?e.setProperty(jt(r),n.replace(co,""),"important"):e[r]=n}}const ao=["Webkit","Moz","ms"],Ir={};function du(e,t){const n=Ir[t];if(n)return n;let r=xt(t);if(r!=="filter"&&r in e)return Ir[t]=r;r=li(r);for(let s=0;sDr||(gu.then(()=>Dr=0),Dr=Date.now());function _u(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;lt(bu(r,n.value),t,5,[r])};return n.value=e,n.attached=yu(),n}function bu(e,t){if(q(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const go=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Eu=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?lu(e,r,i):t==="style"?fu(e,n,r):or(t)?fs(t)||pu(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):wu(e,t,r,i))?(ho(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&fo(e,t,r,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!de(r))?ho(e,xt(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),fo(e,t,r,i))};function wu(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&go(t)&&W(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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return go(t)&&de(n)?!1:t in e}const yo=e=>{const t=e.props["onUpdate:modelValue"]||!1;return q(t)?n=>Bn(t,n):t};function Su(e){e.target.composing=!0}function _o(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Lr=Symbol("_assign");function bo(e,t,n){return t&&(e=e.trim()),n&&(e=hs(e)),e}const Nh={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Lr]=yo(s);const o=r||s.props&&s.props.type==="number";Vt(e,t?"change":"input",i=>{i.target.composing||e[Lr](bo(e.value,n,o))}),(n||o)&&Vt(e,"change",()=>{e.value=bo(e.value,n,o)}),t||(Vt(e,"compositionstart",Su),Vt(e,"compositionend",_o),Vt(e,"change",_o))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Lr]=yo(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?hs(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},Ru=["ctrl","shift","alt","meta"],Au={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Ru.some(n=>e[`${n}Key`]&&!t.includes(n))},Ih=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const t=Ou().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Cu(r);if(!s)return;const o=t._component;!W(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,Tu(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t});function Tu(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Cu(e){return de(e)?document.querySelector(e):e}let yl;const yr=e=>yl=e,_l=Symbol();function es(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var gn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(gn||(gn={}));function Pu(){const e=hi(!0),t=e.run(()=>Lt({}));let n=[],r=[];const s=Ss({install(o){yr(s),s._a=o,o.provide(_l,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const bl=()=>{};function wo(e,t,n,r=bl){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&pi()&&gc(s),s}function Ht(e,...t){e.forEach(n=>{n(...t)})}const Nu=e=>e(),So=Symbol(),Fr=Symbol();function ts(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];es(s)&&es(r)&&e.hasOwnProperty(n)&&!ce(r)&&!it(r)?e[n]=ts(s,r):e[n]=r}return e}const Iu=Symbol();function Du(e){return!es(e)||!Object.prototype.hasOwnProperty.call(e,Iu)}const{assign:Et}=Object;function Lu(e){return!!(ce(e)&&e.effect)}function Fu(e,t,n,r){const{state:s,actions:o,getters:i}=t,l=n.state.value[e];let c;function u(){l||(n.state.value[e]=s?s():{});const a=Bc(n.state.value[e]);return Et(a,o,Object.keys(i||{}).reduce((f,p)=>(f[p]=Ss(Me(()=>{yr(n);const m=n._s.get(e);return i[p].call(m,m)})),f),{}))}return c=El(e,u,t,n,r,!0),c}function El(e,t,n={},r,s,o){let i;const l=Et({actions:{}},n),c={deep:!0};let u,a,f=new Set,p=new Set,m;const g=r.state.value[e];!o&&!g&&(r.state.value[e]={}),Lt({});let b;function E(V){let U;u=a=!1,typeof V=="function"?(V(r.state.value[e]),U={type:gn.patchFunction,storeId:e,events:m}):(ts(r.state.value[e],V),U={type:gn.patchObject,payload:V,storeId:e,events:m});const ee=b=Symbol();Rs().then(()=>{b===ee&&(u=!0)}),a=!0,Ht(f,U,r.state.value[e])}const O=o?function(){const{state:U}=n,ee=U?U():{};this.$patch(ue=>{Et(ue,ee)})}:bl;function C(){i.stop(),f.clear(),p.clear(),r._s.delete(e)}const N=(V,U="")=>{if(So in V)return V[Fr]=U,V;const ee=function(){yr(r);const ue=Array.from(arguments),ye=new Set,pe=new Set;function Re(K){ye.add(K)}function Ve(K){pe.add(K)}Ht(p,{args:ue,name:ee[Fr],store:M,after:Re,onError:Ve});let J;try{J=V.apply(this&&this.$id===e?this:M,ue)}catch(K){throw Ht(pe,K),K}return J instanceof Promise?J.then(K=>(Ht(ye,K),K)).catch(K=>(Ht(pe,K),Promise.reject(K))):(Ht(ye,J),J)};return ee[So]=!0,ee[Fr]=U,ee},P={_p:r,$id:e,$onAction:wo.bind(null,p),$patch:E,$reset:O,$subscribe(V,U={}){const ee=wo(f,V,U.detached,()=>ue()),ue=i.run(()=>fn(()=>r.state.value[e],ye=>{(U.flush==="sync"?a:u)&&V({storeId:e,type:gn.direct,events:m},ye)},Et({},c,U)));return ee},$dispose:C},M=On(P);r._s.set(e,M);const k=(r._a&&r._a.runWithContext||Nu)(()=>r._e.run(()=>(i=hi()).run(()=>t({action:N}))));for(const V in k){const U=k[V];if(ce(U)&&!Lu(U)||it(U))o||(g&&Du(U)&&(ce(U)?U.value=g[V]:ts(U,g[V])),r.state.value[e][V]=U);else if(typeof U=="function"){const ee=N(U,V);k[V]=ee,l.actions[V]=U}}return Et(M,k),Et(Z(M),k),Object.defineProperty(M,"$state",{get:()=>r.state.value[e],set:V=>{E(U=>{Et(U,V)})}}),r._p.forEach(V=>{Et(M,i.run(()=>V({store:M,app:r._a,pinia:r,options:l})))}),g&&o&&n.hydrate&&n.hydrate(M.$state,g),u=!0,a=!0,M}function Mu(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,l){const c=Qc();return i=i||(c?ke(_l,null):null),i&&yr(i),i=yl,i._s.has(e)||(s?El(e,t,r,i):Fu(e,r,i)),i._s.get(e)}return o.$id=e,o}function Dh(e){const t=Z(e),n={};for(const r in t){const s=t[r];s.effect?n[r]=Me({get:()=>e[r],set(o){e[r]=o}}):(ce(s)||it(s))&&(n[r]=Vc(e,r))}return n}const Uu="modulepreload",ju=function(e){return"/"+e},Ro={},tt=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let c=function(u){return Promise.all(u.map(a=>Promise.resolve(a).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=c(n.map(u=>{if(u=ju(u),u in Ro)return;Ro[u]=!0;const a=u.endsWith(".css"),f=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const p=document.createElement("link");if(p.rel=a?"stylesheet":Uu,a||(p.as="script"),p.crossOrigin="",p.href=u,l&&p.setAttribute("nonce",l),document.head.appendChild(p),a)return new Promise((m,g)=>{p.addEventListener("load",m),p.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})};const qt=typeof document<"u";function wl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Bu(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&wl(e.default)}const te=Object.assign;function Mr(e,t){const n={};for(const r in t){const s=t[r];n[r]=We(s)?s.map(e):e(s)}return n}const yn=()=>{},We=Array.isArray;function Ao(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const Sl=/#/g,Hu=/&/g,ku=/\//g,Vu=/=/g,qu=/\?/g,Rl=/\+/g,$u=/%5B/g,Ku=/%5D/g,Al=/%5E/g,Wu=/%60/g,vl=/%7B/g,Gu=/%7C/g,Ol=/%7D/g,zu=/%20/g;function Ns(e){return e==null?"":encodeURI(""+e).replace(Gu,"|").replace($u,"[").replace(Ku,"]")}function Ju(e){return Ns(e).replace(vl,"{").replace(Ol,"}").replace(Al,"^")}function ns(e){return Ns(e).replace(Rl,"%2B").replace(zu,"+").replace(Sl,"%23").replace(Hu,"%26").replace(Wu,"`").replace(vl,"{").replace(Ol,"}").replace(Al,"^")}function Xu(e){return ns(e).replace(Vu,"%3D")}function Qu(e){return Ns(e).replace(Sl,"%23").replace(qu,"%3F")}function Yu(e){return Qu(e).replace(ku,"%2F")}function vn(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Zu=/\/$/,ef=e=>e.replace(Zu,"");function Ur(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return c=l>=0&&c>l?-1:c,c>=0&&(r=t.slice(0,c),o=t.slice(c,l>0?l:t.length),s=e(o.slice(1))),l>=0&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=sf(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:vn(i)}}function tf(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function vo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function nf(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&Xt(t.matched[r],n.matched[s])&&xl(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Xt(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function xl(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!rf(e[n],t[n]))return!1;return!0}function rf(e,t){return We(e)?Oo(e,t):We(t)?Oo(t,e):e?.valueOf()===t?.valueOf()}function Oo(e,t){return We(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function sf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const bt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let rs=(function(e){return e.pop="pop",e.push="push",e})({}),jr=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function of(e){if(!e)if(qt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),ef(e)}const lf=/^[^#]+#/;function cf(e,t){return e.replace(lf,"#")+t}function af(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const _r=()=>({left:window.scrollX,top:window.scrollY});function uf(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=af(s,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 xo(e,t){return(history.state?history.state.position-t:-1)+e}const ss=new Map;function ff(e,t){ss.set(e,t)}function df(e){const t=ss.get(e);return ss.delete(e),t}function hf(e){return typeof e=="string"||e&&typeof e=="object"}function Tl(e){return typeof e=="string"||typeof e=="symbol"}let ae=(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 Cl=Symbol("");ae.MATCHER_NOT_FOUND+"",ae.NAVIGATION_GUARD_REDIRECT+"",ae.NAVIGATION_ABORTED+"",ae.NAVIGATION_CANCELLED+"",ae.NAVIGATION_DUPLICATED+"";function Qt(e,t){return te(new Error,{type:e,[Cl]:!0},t)}function at(e,t){return e instanceof Error&&Cl in e&&(t==null||!!(e.type&t))}const pf=["params","query","hash"];function mf(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of pf)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function gf(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&ns(s)):[r&&ns(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function yf(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=We(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const _f=Symbol(""),Co=Symbol(""),br=Symbol(""),Is=Symbol(""),os=Symbol("");function sn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function At(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,c)=>{const u=p=>{p===!1?c(Qt(ae.NAVIGATION_ABORTED,{from:n,to:t})):p instanceof Error?c(p):hf(p)?c(Qt(ae.NAVIGATION_GUARD_REDIRECT,{from:t,to:p})):(i&&r.enterCallbacks[s]===i&&typeof p=="function"&&i.push(p),l())},a=o(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(a);e.length<3&&(f=f.then(u)),f.catch(p=>c(p))})}function Br(e,t,n,r,s=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(wl(c)){const u=(c.__vccOpts||c)[t];u&&o.push(At(u,n,r,i,l,s))}else{let u=c();o.push(()=>u.then(a=>{if(!a)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=Bu(a)?a.default:a;i.mods[l]=a,i.components[l]=f;const p=(f.__vccOpts||f)[t];return p&&At(p,n,r,i,l,s)()}))}}return o}function bf(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;iXt(u,l))?r.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(u=>Xt(u,c))||s.push(c))}return[n,r,s]}let Ef=()=>location.protocol+"//"+location.host;function Pl(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(i);return l[0]!=="/"&&(l="/"+l),vo(l,"")}return vo(n,e)+r+s}function wf(e,t,n,r){let s=[],o=[],i=null;const l=({state:p})=>{const m=Pl(e,location),g=n.value,b=t.value;let E=0;if(p){if(n.value=m,t.value=p,i&&i===g){i=null;return}E=b?p.position-b.position:0}else r(m);s.forEach(O=>{O(n.value,g,{delta:E,type:rs.pop,direction:E?E>0?jr.forward:jr.back:jr.unknown})})};function c(){i=n.value}function u(p){s.push(p);const m=()=>{const g=s.indexOf(p);g>-1&&s.splice(g,1)};return o.push(m),m}function a(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(te({},p.state,{scroll:_r()}),"")}}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,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?_r():null}}function Sf(e){const{history:t,location:n}=window,r={value:Pl(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.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:Ef()+e+c;try{t[a?"replaceState":"pushState"](u,"",p),s.value=u}catch(m){console.error(m),n[a?"replace":"assign"](p)}}function i(c,u){o(c,te({},t.state,Po(s.value.back,c,s.value.forward,!0),u,{position:s.value.position}),!0),r.value=c}function l(c,u){const a=te({},s.value,t.state,{forward:c,scroll:_r()});o(a.current,a,!0),o(c,te({},Po(r.value,c,null),{position:a.position+1},u),!1),r.value=c}return{location:r,state:s,push:l,replace:i}}function Rf(e){e=of(e);const t=Sf(e),n=wf(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=te({location:"",base:e,go:r,createHref:cf.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function Af(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),Rf(e)}let Nt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var ge=(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})(ge||{});const vf={type:Nt.Static,value:""},Of=/[a-zA-Z0-9_]/;function xf(e){if(!e)return[[]];if(e==="/")return[[vf]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${u}": ${m}`)}let n=ge.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,c,u="",a="";function f(){u&&(n===ge.Static?o.push({type:Nt.Static,value:u}):n===ge.Param||n===ge.ParamRegExp||n===ge.ParamRegExpEnd?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:Nt.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]===Oe.Static+Oe.Segment?1:-1:0}function Nl(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const If={strict:!1,end:!0,sensitive:!1};function Df(e,t,n){const r=Pf(xf(e.path),n),s=te(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function Lf(e,t){const n=[],r=new Map;t=Ao(If,t);function s(f){return r.get(f)}function o(f,p,m){const g=!m,b=Lo(f);b.aliasOf=m&&m.record;const E=Ao(t,f),O=[b];if("alias"in f){const P=typeof f.alias=="string"?[f.alias]:f.alias;for(const M of P)O.push(Lo(te({},b,{components:m?m.record.components:b.components,path:M,aliasOf:m?m.record:b})))}let C,N;for(const P of O){const{path:M}=P;if(p&&M[0]!=="/"){const X=p.record.path,k=X[X.length-1]==="/"?"":"/";P.path=p.record.path+(M&&k+M)}if(C=Df(P,p,E),m?m.alias.push(C):(N=N||C,N!==C&&N.alias.push(C),g&&f.name&&!Fo(C)&&i(f.name)),Il(C)&&c(C),b.children){const X=b.children;for(let k=0;k{i(N)}:yn}function i(f){if(Tl(f)){const p=r.get(f);p&&(r.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&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function c(f){const p=Uf(f,n);n.splice(p,0,f),f.record.name&&!Fo(f)&&r.set(f.record.name,f)}function u(f,p){let m,g={},b,E;if("name"in f&&f.name){if(m=r.get(f.name),!m)throw Qt(ae.MATCHER_NOT_FOUND,{location:f});E=m.record.name,g=te(Do(p.params,m.keys.filter(N=>!N.optional).concat(m.parent?m.parent.keys.filter(N=>N.optional):[]).map(N=>N.name)),f.params&&Do(f.params,m.keys.map(N=>N.name))),b=m.stringify(g)}else if(f.path!=null)b=f.path,m=n.find(N=>N.re.test(b)),m&&(g=m.parse(b),E=m.record.name);else{if(m=p.name?r.get(p.name):n.find(N=>N.re.test(p.path)),!m)throw Qt(ae.MATCHER_NOT_FOUND,{location:f,currentLocation:p});E=m.record.name,g=te({},p.params,f.params),b=m.stringify(g)}const O=[];let C=m;for(;C;)O.unshift(C.record),C=C.parent;return{name:E,path:b,params:g,matched:O,meta:Mf(O)}}e.forEach(f=>o(f));function a(){n.length=0,r.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:a,getRoutes:l,getRecordMatcher:s}}function Do(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function Lo(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Ff(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 Ff(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function Fo(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Mf(e){return e.reduce((t,n)=>te(t,n.meta),{})}function Uf(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;Nl(e,t[o])<0?r=o:n=o+1}const s=jf(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function jf(e){let t=e;for(;t=t.parent;)if(Il(t)&&Nl(e,t)===0)return t}function Il({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Mo(e){const t=ke(br),n=ke(Is),r=Me(()=>{const c=Ot(e.to);return t.resolve(c)}),s=Me(()=>{const{matched:c}=r.value,{length:u}=c,a=c[u-1],f=n.matched;if(!a||!f.length)return-1;const p=f.findIndex(Xt.bind(null,a));if(p>-1)return p;const m=Uo(c[u-2]);return u>1&&Uo(a)===m&&f[f.length-1].path!==m?f.findIndex(Xt.bind(null,c[u-2])):p}),o=Me(()=>s.value>-1&&qf(n.params,r.value.params)),i=Me(()=>s.value>-1&&s.value===n.matched.length-1&&xl(n.params,r.value.params));function l(c={}){if(Vf(c)){const u=t[Ot(e.replace)?"replace":"push"](Ot(e.to)).catch(yn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Me(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function Bf(e){return e.length===1?e[0]:e}const Hf=Os({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=On(Mo(e)),{options:r}=ke(br),s=Me(()=>({[jo(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[jo(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&Bf(t.default(n));return e.custom?o:ml("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),kf=Hf;function Vf(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 qf(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!We(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function Uo(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const jo=(e,t,n)=>e??t??n,$f=Os({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=ke(os),s=Me(()=>e.route||r.value),o=ke(Co,0),i=Me(()=>{let u=Ot(o);const{matched:a}=s.value;let f;for(;(f=a[u])&&!f.components;)u++;return u}),l=Me(()=>s.value.matched[i.value]);Hn(Co,Me(()=>i.value+1)),Hn(_f,l),Hn(os,s);const c=Lt();return fn(()=>[c.value,l.value,e.name],([u,a,f],[p,m,g])=>{a&&(a.instances[f]=u,m&&m!==a&&u&&u===p&&(a.leaveGuards.size||(a.leaveGuards=m.leaveGuards),a.updateGuards.size||(a.updateGuards=m.updateGuards))),u&&a&&(!m||!Xt(a,m)||!p)&&(a.enterCallbacks[f]||[]).forEach(b=>b(u))},{flush:"post"}),()=>{const u=s.value,a=e.name,f=l.value,p=f&&f.components[a];if(!p)return Bo(n.default,{Component:p,route:u});const m=f.props[a],g=m?m===!0?u.params:typeof m=="function"?m(u):m:null,E=ml(p,te({},g,t,{onVnodeUnmounted:O=>{O.component.isUnmounted&&(f.instances[a]=null)},ref:c}));return Bo(n.default,{Component:E,route:u})||E}}});function Bo(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Dl=$f;function Kf(e){const t=Lf(e.routes,e),n=e.parseQuery||gf,r=e.stringifyQuery||To,s=e.history,o=sn(),i=sn(),l=sn(),c=Mc(bt);let u=bt;qt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const a=Mr.bind(null,R=>""+R),f=Mr.bind(null,Yu),p=Mr.bind(null,vn);function m(R,F){let D,j;return Tl(R)?(D=t.getRecordMatcher(R),j=F):j=R,t.addRoute(j,D)}function g(R){const F=t.getRecordMatcher(R);F&&t.removeRoute(F)}function b(){return t.getRoutes().map(R=>R.record)}function E(R){return!!t.getRecordMatcher(R)}function O(R,F){if(F=te({},F||c.value),typeof R=="string"){const y=Ur(n,R,F.path),w=t.resolve({path:y.path},F),A=s.createHref(y.fullPath);return te(y,w,{params:p(w.params),hash:vn(y.hash),redirectedFrom:void 0,href:A})}let D;if(R.path!=null)D=te({},R,{path:Ur(n,R.path,F.path).path});else{const y=te({},R.params);for(const w in y)y[w]==null&&delete y[w];D=te({},R,{params:f(y)}),F.params=f(F.params)}const j=t.resolve(D,F),Q=R.hash||"";j.params=a(p(j.params));const d=tf(r,te({},R,{hash:Ju(Q),path:j.path})),h=s.createHref(d);return te({fullPath:d,hash:Q,query:r===To?yf(R.query):R.query||{}},j,{redirectedFrom:void 0,href:h})}function C(R){return typeof R=="string"?Ur(n,R,c.value.path):te({},R)}function N(R,F){if(u!==R)return Qt(ae.NAVIGATION_CANCELLED,{from:F,to:R})}function P(R){return k(R)}function M(R){return P(te(C(R),{replace:!0}))}function X(R,F){const D=R.matched[R.matched.length-1];if(D&&D.redirect){const{redirect:j}=D;let Q=typeof j=="function"?j(R,F):j;return typeof Q=="string"&&(Q=Q.includes("?")||Q.includes("#")?Q=C(Q):{path:Q},Q.params={}),te({query:R.query,hash:R.hash,params:Q.path!=null?{}:R.params},Q)}}function k(R,F){const D=u=O(R),j=c.value,Q=R.state,d=R.force,h=R.replace===!0,y=X(D,j);if(y)return k(te(C(y),{state:typeof y=="object"?te({},Q,y.state):Q,force:d,replace:h}),F||D);const w=D;w.redirectedFrom=F;let A;return!d&&nf(r,j,D)&&(A=Qt(ae.NAVIGATION_DUPLICATED,{to:w,from:j}),me(j,j,!0,!1)),(A?Promise.resolve(A):ee(w,j)).catch(S=>at(S)?at(S,ae.NAVIGATION_GUARD_REDIRECT)?S:ze(S):z(S,w,j)).then(S=>{if(S){if(at(S,ae.NAVIGATION_GUARD_REDIRECT))return k(te({replace:h},C(S.to),{state:typeof S.to=="object"?te({},Q,S.to.state):Q,force:d}),F||w)}else S=ye(w,j,!0,h,Q);return ue(w,j,S),S})}function V(R,F){const D=N(R,F);return D?Promise.reject(D):Promise.resolve()}function U(R){const F=qe.values().next().value;return F&&typeof F.runWithContext=="function"?F.runWithContext(R):R()}function ee(R,F){let D;const[j,Q,d]=bf(R,F);D=Br(j.reverse(),"beforeRouteLeave",R,F);for(const y of j)y.leaveGuards.forEach(w=>{D.push(At(w,R,F))});const h=V.bind(null,R,F);return D.push(h),He(D).then(()=>{D=[];for(const y of o.list())D.push(At(y,R,F));return D.push(h),He(D)}).then(()=>{D=Br(Q,"beforeRouteUpdate",R,F);for(const y of Q)y.updateGuards.forEach(w=>{D.push(At(w,R,F))});return D.push(h),He(D)}).then(()=>{D=[];for(const y of d)if(y.beforeEnter)if(We(y.beforeEnter))for(const w of y.beforeEnter)D.push(At(w,R,F));else D.push(At(y.beforeEnter,R,F));return D.push(h),He(D)}).then(()=>(R.matched.forEach(y=>y.enterCallbacks={}),D=Br(d,"beforeRouteEnter",R,F,U),D.push(h),He(D))).then(()=>{D=[];for(const y of i.list())D.push(At(y,R,F));return D.push(h),He(D)}).catch(y=>at(y,ae.NAVIGATION_CANCELLED)?y:Promise.reject(y))}function ue(R,F,D){l.list().forEach(j=>U(()=>j(R,F,D)))}function ye(R,F,D,j,Q){const d=N(R,F);if(d)return d;const h=F===bt,y=qt?history.state:{};D&&(j||h?s.replace(R.fullPath,te({scroll:h&&y&&y.scroll},Q)):s.push(R.fullPath,Q)),c.value=R,me(R,F,D,h),ze()}let pe;function Re(){pe||(pe=s.listen((R,F,D)=>{if(!Xe.listening)return;const j=O(R),Q=X(j,Xe.currentRoute.value);if(Q){k(te(Q,{replace:!0,force:!0}),j).catch(yn);return}u=j;const d=c.value;qt&&ff(xo(d.fullPath,D.delta),_r()),ee(j,d).catch(h=>at(h,ae.NAVIGATION_ABORTED|ae.NAVIGATION_CANCELLED)?h:at(h,ae.NAVIGATION_GUARD_REDIRECT)?(k(te(C(h.to),{force:!0}),j).then(y=>{at(y,ae.NAVIGATION_ABORTED|ae.NAVIGATION_DUPLICATED)&&!D.delta&&D.type===rs.pop&&s.go(-1,!1)}).catch(yn),Promise.reject()):(D.delta&&s.go(-D.delta,!1),z(h,j,d))).then(h=>{h=h||ye(j,d,!1),h&&(D.delta&&!at(h,ae.NAVIGATION_CANCELLED)?s.go(-D.delta,!1):D.type===rs.pop&&at(h,ae.NAVIGATION_ABORTED|ae.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),ue(j,d,h)}).catch(yn)}))}let Ve=sn(),J=sn(),K;function z(R,F,D){ze(R);const j=J.list();return j.length?j.forEach(Q=>Q(R,F,D)):console.error(R),Promise.reject(R)}function Be(){return K&&c.value!==bt?Promise.resolve():new Promise((R,F)=>{Ve.add([R,F])})}function ze(R){return K||(K=!R,Re(),Ve.list().forEach(([F,D])=>R?D(R):F()),Ve.reset()),R}function me(R,F,D,j){const{scrollBehavior:Q}=e;if(!qt||!Q)return Promise.resolve();const d=!D&&df(xo(R.fullPath,0))||(j||!D)&&history.state&&history.state.scroll||null;return Rs().then(()=>Q(R,F,d)).then(h=>h&&uf(h)).catch(h=>z(h,R,F))}const fe=R=>s.go(R);let Je;const qe=new Set,Xe={currentRoute:c,listening:!0,addRoute:m,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:E,getRoutes:b,resolve:O,options:e,push:P,replace:M,go:fe,back:()=>fe(-1),forward:()=>fe(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:J.add,isReady:Be,install(R){R.component("RouterLink",kf),R.component("RouterView",Dl),R.config.globalProperties.$router=Xe,Object.defineProperty(R.config.globalProperties,"$route",{enumerable:!0,get:()=>Ot(c)}),qt&&!Je&&c.value===bt&&(Je=!0,P(s.location).catch(j=>{}));const F={};for(const j in bt)Object.defineProperty(F,j,{get:()=>c.value[j],enumerable:!0});R.provide(br,Xe),R.provide(Is,Ci(F)),R.provide(os,c);const D=R.unmount;qe.add(R),R.unmount=function(){qe.delete(R),qe.size<1&&(u=bt,pe&&pe(),pe=null,c.value=bt,Je=!1,K=!1),D()}}};function He(R){return R.reduce((F,D)=>F.then(()=>U(D)),Promise.resolve())}return Xe}function Lh(){return ke(br)}function Fh(e){return ke(Is)}function Ll(e,t){return function(){return e.apply(t,arguments)}}const{toString:Wf}=Object.prototype,{getPrototypeOf:Ds}=Object,{iterator:Er,toStringTag:Fl}=Symbol,wr=(e=>t=>{const n=Wf.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ge=e=>(e=e.toLowerCase(),t=>wr(t)===e),Sr=e=>t=>typeof t===e,{isArray:Zt}=Array,Yt=Sr("undefined");function Cn(e){return e!==null&&!Yt(e)&&e.constructor!==null&&!Yt(e.constructor)&&Ie(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Ml=Ge("ArrayBuffer");function Gf(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Ml(e.buffer),t}const zf=Sr("string"),Ie=Sr("function"),Ul=Sr("number"),Pn=e=>e!==null&&typeof e=="object",Jf=e=>e===!0||e===!1,Kn=e=>{if(wr(e)!=="object")return!1;const t=Ds(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Fl in e)&&!(Er in e)},Xf=e=>{if(!Pn(e)||Cn(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},Qf=Ge("Date"),Yf=Ge("File"),Zf=Ge("Blob"),ed=Ge("FileList"),td=e=>Pn(e)&&Ie(e.pipe),nd=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Ie(e.append)&&((t=wr(e))==="formdata"||t==="object"&&Ie(e.toString)&&e.toString()==="[object FormData]"))},rd=Ge("URLSearchParams"),[sd,od,id,ld]=["ReadableStream","Request","Response","Headers"].map(Ge),cd=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Nn(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),Zt(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const It=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Bl=e=>!Yt(e)&&e!==It;function is(){const{caseless:e,skipUndefined:t}=Bl(this)&&this||{},n={},r=(s,o)=>{const i=e&&jl(n,o)||o;Kn(n[i])&&Kn(s)?n[i]=is(n[i],s):Kn(s)?n[i]=is({},s):Zt(s)?n[i]=s.slice():(!t||!Yt(s))&&(n[i]=s)};for(let s=0,o=arguments.length;s(Nn(t,(s,o)=>{n&&Ie(s)?e[o]=Ll(s,n):e[o]=s},{allOwnKeys:r}),e),ud=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),fd=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},dd=(e,t,n,r)=>{let s,o,i;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&Ds(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},hd=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},pd=e=>{if(!e)return null;if(Zt(e))return e;let t=e.length;if(!Ul(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},md=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Ds(Uint8Array)),gd=(e,t)=>{const r=(e&&e[Er]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},yd=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},_d=Ge("HTMLFormElement"),bd=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),Ho=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Ed=Ge("RegExp"),Hl=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Nn(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},wd=e=>{Hl(e,(t,n)=>{if(Ie(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Ie(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Sd=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return Zt(e)?r(e):r(String(e).split(t)),n},Rd=()=>{},Ad=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function vd(e){return!!(e&&Ie(e.append)&&e[Fl]==="FormData"&&e[Er])}const Od=e=>{const t=new Array(10),n=(r,s)=>{if(Pn(r)){if(t.indexOf(r)>=0)return;if(Cn(r))return r;if(!("toJSON"in r)){t[s]=r;const o=Zt(r)?[]:{};return Nn(r,(i,l)=>{const c=n(i,s+1);!Yt(c)&&(o[l]=c)}),t[s]=void 0,o}}return r};return n(e,0)},xd=Ge("AsyncFunction"),Td=e=>e&&(Pn(e)||Ie(e))&&Ie(e.then)&&Ie(e.catch),kl=((e,t)=>e?setImmediate:t?((n,r)=>(It.addEventListener("message",({source:s,data:o})=>{s===It&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),It.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Ie(It.postMessage)),Cd=typeof queueMicrotask<"u"?queueMicrotask.bind(It):typeof process<"u"&&process.nextTick||kl,Pd=e=>e!=null&&Ie(e[Er]),_={isArray:Zt,isArrayBuffer:Ml,isBuffer:Cn,isFormData:nd,isArrayBufferView:Gf,isString:zf,isNumber:Ul,isBoolean:Jf,isObject:Pn,isPlainObject:Kn,isEmptyObject:Xf,isReadableStream:sd,isRequest:od,isResponse:id,isHeaders:ld,isUndefined:Yt,isDate:Qf,isFile:Yf,isBlob:Zf,isRegExp:Ed,isFunction:Ie,isStream:td,isURLSearchParams:rd,isTypedArray:md,isFileList:ed,forEach:Nn,merge:is,extend:ad,trim:cd,stripBOM:ud,inherits:fd,toFlatObject:dd,kindOf:wr,kindOfTest:Ge,endsWith:hd,toArray:pd,forEachEntry:gd,matchAll:yd,isHTMLForm:_d,hasOwnProperty:Ho,hasOwnProp:Ho,reduceDescriptors:Hl,freezeMethods:wd,toObjectSet:Sd,toCamelCase:bd,noop:Rd,toFiniteNumber:Ad,findKey:jl,global:It,isContextDefined:Bl,isSpecCompliantForm:vd,toJSONObject:Od,isAsyncFn:xd,isThenable:Td,setImmediate:kl,asap:Cd,isIterable:Pd};function G(e,t,n,r,s){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),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}_.inherits(G,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:_.toJSONObject(this.config),code:this.code,status:this.status}}});const Vl=G.prototype,ql={};["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=>{ql[e]={value:e}});Object.defineProperties(G,ql);Object.defineProperty(Vl,"isAxiosError",{value:!0});G.from=(e,t,n,r,s,o)=>{const i=Object.create(Vl);_.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 G.call(i,l,c,n,r,s),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 Nd=null;function ls(e){return _.isPlainObject(e)||_.isArray(e)}function $l(e){return _.endsWith(e,"[]")?e.slice(0,-2):e}function ko(e,t,n){return e?e.concat(t).map(function(s,o){return s=$l(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function Id(e){return _.isArray(e)&&!e.some(ls)}const Dd=_.toFlatObject(_,{},null,function(t){return/^is[A-Z]/.test(t)});function Rr(e,t,n){if(!_.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=_.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(b,E){return!_.isUndefined(E[b])});const r=n.metaTokens,s=n.visitor||a,o=n.dots,i=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&_.isSpecCompliantForm(t);if(!_.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(_.isDate(g))return g.toISOString();if(_.isBoolean(g))return g.toString();if(!c&&_.isBlob(g))throw new G("Blob is not supported. Use a Buffer instead.");return _.isArrayBuffer(g)||_.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function a(g,b,E){let O=g;if(g&&!E&&typeof g=="object"){if(_.endsWith(b,"{}"))b=r?b:b.slice(0,-2),g=JSON.stringify(g);else if(_.isArray(g)&&Id(g)||(_.isFileList(g)||_.endsWith(b,"[]"))&&(O=_.toArray(g)))return b=$l(b),O.forEach(function(N,P){!(_.isUndefined(N)||N===null)&&t.append(i===!0?ko([b],P,o):i===null?b:b+"[]",u(N))}),!1}return ls(g)?!0:(t.append(ko(E,b,o),u(g)),!1)}const f=[],p=Object.assign(Dd,{defaultVisitor:a,convertValue:u,isVisitable:ls});function m(g,b){if(!_.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+b.join("."));f.push(g),_.forEach(g,function(O,C){(!(_.isUndefined(O)||O===null)&&s.call(t,O,_.isString(C)?C.trim():C,b,p))===!0&&m(O,b?b.concat(C):[C])}),f.pop()}}if(!_.isObject(e))throw new TypeError("data must be an object");return m(e),t}function Vo(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Ls(e,t){this._pairs=[],e&&Rr(e,this,t)}const Kl=Ls.prototype;Kl.append=function(t,n){this._pairs.push([t,n])};Kl.toString=function(t){const n=t?function(r){return t.call(this,r,Vo)}:Vo;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Ld(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Wl(e,t,n){if(!t)return e;const r=n&&n.encode||Ld;_.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=_.isURLSearchParams(t)?t.toString():new Ls(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class qo{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){_.forEach(this.handlers,function(r){r!==null&&t(r)})}}const Gl={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Fd=typeof URLSearchParams<"u"?URLSearchParams:Ls,Md=typeof FormData<"u"?FormData:null,Ud=typeof Blob<"u"?Blob:null,jd={isBrowser:!0,classes:{URLSearchParams:Fd,FormData:Md,Blob:Ud},protocols:["http","https","file","blob","url","data"]},Fs=typeof window<"u"&&typeof document<"u",cs=typeof navigator=="object"&&navigator||void 0,Bd=Fs&&(!cs||["ReactNative","NativeScript","NS"].indexOf(cs.product)<0),Hd=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",kd=Fs&&window.location.href||"http://localhost",Vd=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Fs,hasStandardBrowserEnv:Bd,hasStandardBrowserWebWorkerEnv:Hd,navigator:cs,origin:kd},Symbol.toStringTag,{value:"Module"})),Ee={...Vd,...jd};function qd(e,t){return Rr(e,new Ee.classes.URLSearchParams,{visitor:function(n,r,s,o){return Ee.isNode&&_.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function $d(e){return _.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Kd(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&_.isArray(s)?s.length:i,c?(_.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!l):((!s[i]||!_.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&_.isArray(s[i])&&(s[i]=Kd(s[i])),!l)}if(_.isFormData(e)&&_.isFunction(e.entries)){const n={};return _.forEachEntry(e,(r,s)=>{t($d(r),s,n,0)}),n}return null}function Wd(e,t,n){if(_.isString(e))try{return(t||JSON.parse)(e),_.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const In={transitional:Gl,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=_.isObject(t);if(o&&_.isHTMLForm(t)&&(t=new FormData(t)),_.isFormData(t))return s?JSON.stringify(zl(t)):t;if(_.isArrayBuffer(t)||_.isBuffer(t)||_.isStream(t)||_.isFile(t)||_.isBlob(t)||_.isReadableStream(t))return t;if(_.isArrayBufferView(t))return t.buffer;if(_.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return qd(t,this.formSerializer).toString();if((l=_.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return Rr(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),Wd(t)):t}],transformResponse:[function(t){const n=this.transitional||In.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(_.isResponse(t)||_.isReadableStream(t))return t;if(t&&_.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(i)throw l.name==="SyntaxError"?G.from(l,G.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:Ee.classes.FormData,Blob:Ee.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};_.forEach(["delete","get","head","post","put","patch"],e=>{In.headers[e]={}});const Gd=_.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"]),zd=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&Gd[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},$o=Symbol("internals");function on(e){return e&&String(e).trim().toLowerCase()}function Wn(e){return e===!1||e==null?e:_.isArray(e)?e.map(Wn):String(e)}function Jd(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const Xd=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Hr(e,t,n,r,s){if(_.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!_.isString(t)){if(_.isString(r))return t.indexOf(r)!==-1;if(_.isRegExp(r))return r.test(t)}}function Qd(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Yd(e,t){const n=_.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let De=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(l,c,u){const a=on(c);if(!a)throw new Error("header name must be a non-empty string");const f=_.findKey(s,a);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||c]=Wn(l))}const i=(l,c)=>_.forEach(l,(u,a)=>o(u,a,c));if(_.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(_.isString(t)&&(t=t.trim())&&!Xd(t))i(zd(t),n);else if(_.isObject(t)&&_.isIterable(t)){let l={},c,u;for(const a of t){if(!_.isArray(a))throw TypeError("Object iterator must return a key-value pair");l[u=a[0]]=(c=l[u])?_.isArray(c)?[...c,a[1]]:[c,a[1]]:a[1]}i(l,n)}else t!=null&&o(n,t,r);return this}get(t,n){if(t=on(t),t){const r=_.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return Jd(s);if(_.isFunction(n))return n.call(this,s,r);if(_.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=on(t),t){const r=_.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Hr(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=on(i),i){const l=_.findKey(r,i);l&&(!n||Hr(r,r[l],l,n))&&(delete r[l],s=!0)}}return _.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||Hr(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return _.forEach(this,(s,o)=>{const i=_.findKey(r,o);if(i){n[i]=Wn(s),delete n[o];return}const l=t?Qd(o):String(o).trim();l!==o&&delete n[o],n[l]=Wn(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return _.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&_.isArray(r)?r.join(", "):r)}),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 r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[$o]=this[$o]={accessors:{}}).accessors,s=this.prototype;function o(i){const l=on(i);r[l]||(Yd(s,i),r[l]=!0)}return _.isArray(t)?t.forEach(o):o(t),this}};De.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);_.reduceDescriptors(De.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});_.freezeMethods(De);function kr(e,t){const n=this||In,r=t||n,s=De.from(r.headers);let o=r.data;return _.forEach(e,function(l){o=l.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function Jl(e){return!!(e&&e.__CANCEL__)}function en(e,t,n){G.call(this,e??"canceled",G.ERR_CANCELED,t,n),this.name="CanceledError"}_.inherits(en,G,{__CANCEL__:!0});function Xl(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new G("Request failed with status code "+n.status,[G.ERR_BAD_REQUEST,G.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function Zd(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function eh(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),a=r[o];i||(i=u),n[s]=c,r[s]=u;let f=o,p=0;for(;f!==s;)p+=n[f++],f=f%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i{n=a,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const a=Date.now(),f=a-n;f>=r?i(u,a):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-f)))},()=>s&&i(s)]}const sr=(e,t,n=3)=>{let r=0;const s=eh(50,250);return th(o=>{const i=o.loaded,l=o.lengthComputable?o.total:void 0,c=i-r,u=s(c),a=i<=l;r=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)},Ko=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Wo=e=>(...t)=>_.asap(()=>e(...t)),nh=Ee.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Ee.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Ee.origin),Ee.navigator&&/(msie|trident)/i.test(Ee.navigator.userAgent)):()=>!0,rh=Ee.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];_.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),_.isString(r)&&l.push(`path=${r}`),_.isString(s)&&l.push(`domain=${s}`),o===!0&&l.push("secure"),_.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 sh(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function oh(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Ql(e,t,n){let r=!sh(t);return e&&(r||n==!1)?oh(e,t):t}const Go=e=>e instanceof De?{...e}:e;function Ut(e,t){t=t||{};const n={};function r(u,a,f,p){return _.isPlainObject(u)&&_.isPlainObject(a)?_.merge.call({caseless:p},u,a):_.isPlainObject(a)?_.merge({},a):_.isArray(a)?a.slice():a}function s(u,a,f,p){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u,f,p)}else return r(u,a,f,p)}function o(u,a){if(!_.isUndefined(a))return r(void 0,a)}function i(u,a){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u)}else return r(void 0,a)}function l(u,a,f){if(f in t)return r(u,a);if(f in e)return r(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)=>s(Go(u),Go(a),f,!0)};return _.forEach(Object.keys({...e,...t}),function(a){const f=c[a]||s,p=f(e[a],t[a],a);_.isUndefined(p)&&f!==l||(n[a]=p)}),n}const Yl=e=>{const t=Ut({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:l}=t;if(t.headers=i=De.from(i),t.url=Wl(Ql(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&i.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),_.isFormData(n)){if(Ee.hasStandardBrowserEnv||Ee.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(_.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(Ee.hasStandardBrowserEnv&&(r&&_.isFunction(r)&&(r=r(t)),r||r!==!1&&nh(t.url))){const c=s&&o&&rh.read(o);c&&i.set(s,c)}return t},ih=typeof XMLHttpRequest<"u",lh=ih&&function(e){return new Promise(function(n,r){const s=Yl(e);let o=s.data;const i=De.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,a,f,p,m,g;function b(){m&&m(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(a),s.signal&&s.signal.removeEventListener("abort",a)}let E=new XMLHttpRequest;E.open(s.method.toUpperCase(),s.url,!0),E.timeout=s.timeout;function O(){if(!E)return;const N=De.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),M={data:!l||l==="text"||l==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:N,config:e,request:E};Xl(function(k){n(k),b()},function(k){r(k),b()},M),E=null}"onloadend"in E?E.onloadend=O:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.indexOf("file:")===0)||setTimeout(O)},E.onabort=function(){E&&(r(new G("Request aborted",G.ECONNABORTED,e,E)),E=null)},E.onerror=function(P){const M=P&&P.message?P.message:"Network Error",X=new G(M,G.ERR_NETWORK,e,E);X.event=P||null,r(X),E=null},E.ontimeout=function(){let P=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const M=s.transitional||Gl;s.timeoutErrorMessage&&(P=s.timeoutErrorMessage),r(new G(P,M.clarifyTimeoutError?G.ETIMEDOUT:G.ECONNABORTED,e,E)),E=null},o===void 0&&i.setContentType(null),"setRequestHeader"in E&&_.forEach(i.toJSON(),function(P,M){E.setRequestHeader(M,P)}),_.isUndefined(s.withCredentials)||(E.withCredentials=!!s.withCredentials),l&&l!=="json"&&(E.responseType=s.responseType),u&&([p,g]=sr(u,!0),E.addEventListener("progress",p)),c&&E.upload&&([f,m]=sr(c),E.upload.addEventListener("progress",f),E.upload.addEventListener("loadend",m)),(s.cancelToken||s.signal)&&(a=N=>{E&&(r(!N||N.type?new en(null,e,E):N),E.abort(),E=null)},s.cancelToken&&s.cancelToken.subscribe(a),s.signal&&(s.signal.aborted?a():s.signal.addEventListener("abort",a)));const C=Zd(s.url);if(C&&Ee.protocols.indexOf(C)===-1){r(new G("Unsupported protocol "+C+":",G.ERR_BAD_REQUEST,e));return}E.send(o||null)})},ch=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,l();const a=u instanceof Error?u:this.reason;r.abort(a instanceof G?a:new en(a instanceof Error?a.message:a))}};let i=t&&setTimeout(()=>{i=null,o(new G(`timeout ${t} of ms exceeded`,G.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}=r;return c.unsubscribe=()=>_.asap(l),c}},ah=function*(e,t){let n=e.byteLength;if(n{const s=uh(e,t);let o=0,i,l=c=>{i||(i=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:a}=await s.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),s.return()}},{highWaterMark:2})},Jo=64*1024,{isFunction:Un}=_,dh=(({Request:e,Response:t})=>({Request:e,Response:t}))(_.global),{ReadableStream:Xo,TextEncoder:Qo}=_.global,Yo=(e,...t)=>{try{return!!e(...t)}catch{return!1}},hh=e=>{e=_.merge.call({skipUndefined:!0},dh,e);const{fetch:t,Request:n,Response:r}=e,s=t?Un(t):typeof fetch=="function",o=Un(n),i=Un(r);if(!s)return!1;const l=s&&Un(Xo),c=s&&(typeof Qo=="function"?(g=>b=>g.encode(b))(new Qo):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=o&&l&&Yo(()=>{let g=!1;const b=new n(Ee.origin,{body:new Xo,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!b}),a=i&&l&&Yo(()=>_.isReadableStream(new r("").body)),f={stream:a&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(b,E)=>{let O=b&&b[g];if(O)return O.call(b);throw new G(`Response type '${g}' is not supported`,G.ERR_NOT_SUPPORT,E)})});const p=async g=>{if(g==null)return 0;if(_.isBlob(g))return g.size;if(_.isSpecCompliantForm(g))return(await new n(Ee.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(_.isArrayBufferView(g)||_.isArrayBuffer(g))return g.byteLength;if(_.isURLSearchParams(g)&&(g=g+""),_.isString(g))return(await c(g)).byteLength},m=async(g,b)=>{const E=_.toFiniteNumber(g.getContentLength());return E??p(b)};return async g=>{let{url:b,method:E,data:O,signal:C,cancelToken:N,timeout:P,onDownloadProgress:M,onUploadProgress:X,responseType:k,headers:V,withCredentials:U="same-origin",fetchOptions:ee}=Yl(g),ue=t||fetch;k=k?(k+"").toLowerCase():"text";let ye=ch([C,N&&N.toAbortSignal()],P),pe=null;const Re=ye&&ye.unsubscribe&&(()=>{ye.unsubscribe()});let Ve;try{if(X&&u&&E!=="get"&&E!=="head"&&(Ve=await m(V,O))!==0){let me=new n(b,{method:"POST",body:O,duplex:"half"}),fe;if(_.isFormData(O)&&(fe=me.headers.get("content-type"))&&V.setContentType(fe),me.body){const[Je,qe]=Ko(Ve,sr(Wo(X)));O=zo(me.body,Jo,Je,qe)}}_.isString(U)||(U=U?"include":"omit");const J=o&&"credentials"in n.prototype,K={...ee,signal:ye,method:E.toUpperCase(),headers:V.normalize().toJSON(),body:O,duplex:"half",credentials:J?U:void 0};pe=o&&new n(b,K);let z=await(o?ue(pe,ee):ue(b,K));const Be=a&&(k==="stream"||k==="response");if(a&&(M||Be&&Re)){const me={};["status","statusText","headers"].forEach(Xe=>{me[Xe]=z[Xe]});const fe=_.toFiniteNumber(z.headers.get("content-length")),[Je,qe]=M&&Ko(fe,sr(Wo(M),!0))||[];z=new r(zo(z.body,Jo,Je,()=>{qe&&qe(),Re&&Re()}),me)}k=k||"text";let ze=await f[_.findKey(f,k)||"text"](z,g);return!Be&&Re&&Re(),await new Promise((me,fe)=>{Xl(me,fe,{data:ze,headers:De.from(z.headers),status:z.status,statusText:z.statusText,config:g,request:pe})})}catch(J){throw Re&&Re(),J&&J.name==="TypeError"&&/Load failed|fetch/i.test(J.message)?Object.assign(new G("Network Error",G.ERR_NETWORK,g,pe),{cause:J.cause||J}):G.from(J,J&&J.code,g,pe)}}},ph=new Map,Zl=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,l=i,c,u,a=ph;for(;l--;)c=o[l],u=a.get(c),u===void 0&&a.set(c,u=l?new Map:hh(t)),a=u;return u};Zl();const Ms={http:Nd,xhr:lh,fetch:{get:Zl}};_.forEach(Ms,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Zo=e=>`- ${e}`,mh=e=>_.isFunction(e)||e===null||e===!1;function gh(e,t){e=_.isArray(e)?e:[e];const{length:n}=e;let r,s;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(Zo).join(` +`):" "+Zo(i[0]):"as no adapter specified";throw new G("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const ec={getAdapter:gh,adapters:Ms};function Vr(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new en(null,e)}function ei(e){return Vr(e),e.headers=De.from(e.headers),e.data=kr.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),ec.getAdapter(e.adapter||In.adapter,e)(e).then(function(r){return Vr(e),r.data=kr.call(e,e.transformResponse,r),r.headers=De.from(r.headers),r},function(r){return Jl(r)||(Vr(e),r&&r.response&&(r.response.data=kr.call(e,e.transformResponse,r.response),r.response.headers=De.from(r.response.headers))),Promise.reject(r)})}const tc="1.13.2",Ar={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Ar[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const ti={};Ar.transitional=function(t,n,r){function s(o,i){return"[Axios v"+tc+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,l)=>{if(t===!1)throw new G(s(i," has been removed"+(n?" in "+n:"")),G.ERR_DEPRECATED);return n&&!ti[i]&&(ti[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,l):!0}};Ar.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function yh(e,t,n){if(typeof e!="object")throw new G("options must be an object",G.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const l=e[o],c=l===void 0||i(l,o,e);if(c!==!0)throw new G("option "+o+" must be "+c,G.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new G("Unknown option "+o,G.ERR_BAD_OPTION)}}const Gn={assertOptions:yh,validators:Ar},nt=Gn.validators;let Mt=class{constructor(t){this.defaults=t||{},this.interceptors={request:new qo,response:new qo}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Ut(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&Gn.assertOptions(r,{silentJSONParsing:nt.transitional(nt.boolean),forcedJSONParsing:nt.transitional(nt.boolean),clarifyTimeoutError:nt.transitional(nt.boolean)},!1),s!=null&&(_.isFunction(s)?n.paramsSerializer={serialize:s}:Gn.assertOptions(s,{encode:nt.function,serialize:nt.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Gn.assertOptions(n,{baseUrl:nt.spelling("baseURL"),withXsrfToken:nt.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&_.merge(o.common,o[n.method]);o&&_.forEach(["delete","get","head","post","put","patch","common"],g=>{delete o[g]}),n.headers=De.concat(i,o);const l=[];let c=!0;this.interceptors.request.forEach(function(b){typeof b.runWhen=="function"&&b.runWhen(n)===!1||(c=c&&b.synchronous,l.unshift(b.fulfilled,b.rejected))});const u=[];this.interceptors.response.forEach(function(b){u.push(b.fulfilled,b.rejected)});let a,f=0,p;if(!c){const g=[ei.bind(this),void 0];for(g.unshift(...l),g.push(...u),p=g.length,a=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(l=>{r.subscribe(l),o=l}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,l){r.reason||(r.reason=new en(o,i,l),n(r.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=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new nc(function(s){t=s}),cancel:t}}};function bh(e){return function(n){return e.apply(null,n)}}function Eh(e){return _.isObject(e)&&e.isAxiosError===!0}const as={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(as).forEach(([e,t])=>{as[t]=e});function rc(e){const t=new Mt(e),n=Ll(Mt.prototype.request,t);return _.extend(n,Mt.prototype,t,{allOwnKeys:!0}),_.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return rc(Ut(e,s))},n}const he=rc(In);he.Axios=Mt;he.CanceledError=en;he.CancelToken=_h;he.isCancel=Jl;he.VERSION=tc;he.toFormData=Rr;he.AxiosError=G;he.Cancel=he.CanceledError;he.all=function(t){return Promise.all(t)};he.spread=bh;he.isAxiosError=Eh;he.mergeConfig=Ut;he.AxiosHeaders=De;he.formToJSON=e=>zl(_.isHTMLForm(e)?new FormData(e):e);he.getAdapter=ec.getAdapter;he.HttpStatusCode=as;he.default=he;const{Axios:jh,AxiosError:Bh,CanceledError:Hh,isCancel:kh,CancelToken:Vh,VERSION:qh,all:$h,Cancel:Kh,isAxiosError:Wh,spread:Gh,toFormData:zh,AxiosHeaders:Jh,HttpStatusCode:Xh,formToJSON:Qh,getAdapter:Yh,mergeConfig:Zh}=he,_n=he.create({baseURL:"",timeout:3e4,withCredentials:!0});_n.interceptors.request.use(e=>e,e=>Promise.reject(e));_n.interceptors.response.use(e=>e.data,e=>{e.response?.status===401&&(window.location.hash="#/login");const t=e.response?.data?e.response.data.detail||e.response.data.message:e.message;return Promise.reject(new Error(t||"请求失败"))});const jn={login:e=>{const t=new URLSearchParams;return t.append("admin_key",e.password),_n.post("/login",t,{headers:{"Content-Type":"application/x-www-form-urlencoded"}})},logout:()=>_n.post("/logout"),checkAuth:()=>_n.get("/admin/health")},wh=Mu("auth",()=>{const e=Lt(!1),t=Lt(!1),n=Lt(0),r=1e4;let s=null;async function o(c){t.value=!0;try{return await jn.login({password:c}),await jn.checkAuth(),e.value=!0,n.value=Date.now(),!0}catch(u){throw e.value=!1,u}finally{t.value=!1}}async function i(){try{await jn.logout()}finally{e.value=!1,n.value=0}}async function l(){const c=Date.now();if(e.value&&c-n.value(await jn.checkAuth(),e.value=!0,!0))(),await s}catch{return e.value=!1,!1}finally{n.value=Date.now(),s=null}}return{isLoggedIn:e,isLoading:t,login:o,logout:i,checkAuth:l}}),sc=Kf({history:Af("/"),routes:[{path:"/public/uptime",name:"public-uptime",component:()=>tt(()=>import("./PublicUptime-sd-LMOGE.js"),__vite__mapDeps([0,1])),meta:{requiresAuth:!1}},{path:"/public/logs",name:"public-logs",component:()=>tt(()=>import("./PublicLogs-CIURA4Vp.js"),[]),meta:{requiresAuth:!1}},{path:"/login",name:"login",component:()=>tt(()=>import("./Login-DfTg_BXb.js"),[]),meta:{requiresAuth:!1}},{path:"/",component:()=>tt(()=>import("./AppShell-By1VIFEt.js"),__vite__mapDeps([2,3,4,5])),meta:{requiresAuth:!0},children:[{path:"",name:"dashboard",component:()=>tt(()=>import("./Dashboard-BvLH4lOG.js"),__vite__mapDeps([6,7]))},{path:"accounts",name:"accounts",component:()=>tt(()=>import("./Accounts-Dzw6xcVv.js"),__vite__mapDeps([8,9,10,4,5,7]))},{path:"settings",name:"settings",component:()=>tt(()=>import("./Settings-0_2SUCPB.js"),__vite__mapDeps([11,3,9,10,7]))},{path:"logs",name:"logs",component:()=>tt(()=>import("./Logs-DHB6fZHX.js"),__vite__mapDeps([12,9,4]))},{path:"monitor",name:"monitor",component:()=>tt(()=>import("./Monitor-BtkOUZKg.js"),__vite__mapDeps([13,1]))},{path:"docs",name:"docs",component:()=>tt(()=>import("./Docs-BlNbnnVo.js"),[])}]}]});sc.beforeEach(async e=>{const t=wh();if(e.meta.requiresAuth&&!await t.checkAuth())return{name:"login"};if(e.name==="login"&&t.isLoggedIn)return{name:"dashboard"}});const Sh=Os({__name:"App",setup(e){return(t,n)=>(er(),nr(Ot(Dl)))}}),Us=xu(Sh),Rh=Pu();Us.use(Rh);Us.use(sc);Us.mount("#app");export{Xc as A,Dl as B,Mu as C,Dh as D,Rs as E,Fe as F,xh as G,On as H,kf as R,vh as T,fl as a,Ph as b,Th as c,Os as d,er as e,Wa as f,_n as g,Lt as h,Me as i,fa as j,ps as k,wh as l,Ah as m,ms as n,ca as o,Lh as p,Fh as q,Oh as r,fn as s,mc as t,Ot as u,Nh as v,Ih as w,Ce as x,nr as y,Ch as z}; diff --git a/static/assets/index-C9KL0lrc.js b/static/assets/index-C9KL0lrc.js new file mode 100644 index 0000000000000000000000000000000000000000..7233288e3f7309db549b331e08bdc75d738218fc --- /dev/null +++ b/static/assets/index-C9KL0lrc.js @@ -0,0 +1,7 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PublicUptime-DsxFW7_H.js","assets/useUptimeStatus-DidGh3C9.js","assets/AppShell-78CtCTQC.js","assets/settings-DpDmWAP6.js","assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-pFdqEtiD.js","assets/useConfirmDialog-DHNXQEiw.js","assets/Dashboard-BhMzfqb7.js","assets/HelpTip.vue_vue_type_script_setup_true_lang-q6qcDogV.js","assets/Accounts-JKhKShMC.js","assets/SelectMenu.vue_vue_type_script_setup_true_lang-gwg2tONM.js","assets/Checkbox.vue_vue_type_script_setup_true_lang-DQLrRLI4.js","assets/Settings-B0lzmwzl.js","assets/Logs-DOuqT7BC.js","assets/Monitor-B1aYbSP1.js"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function us(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const se={},$t=[],ot=()=>{},ni=()=>!1,or=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),fs=e=>e.startsWith("onUpdate:"),Se=Object.assign,ds=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},oc=Object.prototype.hasOwnProperty,ne=(e,t)=>oc.call(e,t),q=Array.isArray,Kt=e=>ir(e)==="[object Map]",ri=e=>ir(e)==="[object Set]",W=e=>typeof e=="function",de=e=>typeof e=="string",yt=e=>typeof e=="symbol",le=e=>e!==null&&typeof e=="object",si=e=>(le(e)||W(e))&&W(e.then)&&W(e.catch),oi=Object.prototype.toString,ir=e=>oi.call(e),ic=e=>ir(e).slice(8,-1),ii=e=>ir(e)==="[object Object]",lr=e=>de(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,cn=us(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),cr=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},lc=/-\w/g,xt=cr(e=>e.replace(lc,t=>t.slice(1).toUpperCase())),cc=/\B([A-Z])/g,jt=cr(e=>e.replace(cc,"-$1").toLowerCase()),li=cr(e=>e.charAt(0).toUpperCase()+e.slice(1)),vr=cr(e=>e?`on${li(e)}`:""),vt=(e,t)=>!Object.is(e,t),Bn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},hs=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let ks;const ar=()=>ks||(ks=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function ps(e){if(q(e)){const t={};for(let n=0;n{if(n){const r=n.split(uc);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function ms(e){let t="";if(de(e))t=e;else if(q(e))for(let n=0;n!!(e&&e.__v_isRef===!0),mc=e=>de(e)?e:e==null?"":q(e)||le(e)&&(e.toString===oi||!W(e.toString))?ui(e)?mc(e.value):JSON.stringify(e,fi,2):String(e),fi=(e,t)=>ui(t)?fi(e,t.value):Kt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[Or(r,o)+" =>"]=s,n),{})}:ri(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Or(n))}:yt(t)?Or(t):le(t)&&!q(t)&&!ii(t)?String(t):t,Or=(e,t="")=>{var n;return yt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let _e;class di{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=_e,!t&&_e&&(this.index=(_e.scopes||(_e.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&&(_e=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if(un){let t=un;for(un=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;an;){let t=an;for(an=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function _i(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function bi(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),_s(r),yc(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function qr(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===bn)||(e.globalVersion=bn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!qr(e))))return;e.flags|=2;const t=e.dep,n=ie,r=$e;ie=e,$e=!0;try{_i(e);const s=e.fn(e._value);(t.version===0||vt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{ie=n,$e=r,bi(e),e.flags&=-3}}function _s(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)_s(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function yc(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 wi=[];function ht(){wi.push($e),$e=!1}function pt(){const e=wi.pop();$e=e===void 0?!0:e}function Vs(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ie;ie=void 0;try{t()}finally{ie=n}}}let bn=0;class _c{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 bs{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!ie||!$e||ie===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ie)n=this.activeLink=new _c(ie,this),ie.deps?(n.prevDep=ie.depsTail,ie.depsTail.nextDep=n,ie.depsTail=n):ie.deps=ie.depsTail=n,Si(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=ie.depsTail,n.nextDep=void 0,ie.depsTail.nextDep=n,ie.depsTail=n,ie.deps===n&&(ie.deps=r)}return n}trigger(t){this.version++,bn++,this.notify(t)}notify(t){gs();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ys()}}}function Si(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Si(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const zn=new WeakMap,Dt=Symbol(""),$r=Symbol(""),En=Symbol("");function be(e,t,n){if($e&&ie){let r=zn.get(e);r||zn.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new bs),s.map=r,s.key=n),s.track()}}function ft(e,t,n,r,s,o){const i=zn.get(e);if(!i){bn++;return}const l=c=>{c&&c.trigger()};if(gs(),t==="clear")i.forEach(l);else{const c=q(e),u=c&&lr(n);if(c&&n==="length"){const a=Number(r);i.forEach((f,p)=>{(p==="length"||p===En||!yt(p)&&p>=a)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(En)),t){case"add":c?u&&l(i.get("length")):(l(i.get(Dt)),Kt(e)&&l(i.get($r)));break;case"delete":c||(l(i.get(Dt)),Kt(e)&&l(i.get($r)));break;case"set":Kt(e)&&l(i.get(Dt));break}}ys()}function bc(e,t){const n=zn.get(e);return n&&n.get(t)}function Bt(e){const t=Z(e);return t===e?t:(be(t,"iterate",En),je(e)?t:t.map(Ke))}function ur(e){return be(e=Z(e),"iterate",En),e}function wt(e,t){return mt(e)?it(e)?zt(Ke(t)):zt(t):Ke(t)}const Ec={__proto__:null,[Symbol.iterator](){return Tr(this,Symbol.iterator,e=>wt(this,e))},concat(...e){return Bt(this).concat(...e.map(t=>q(t)?Bt(t):t))},entries(){return Tr(this,"entries",e=>(e[1]=wt(this,e[1]),e))},every(e,t){return ct(this,"every",e,t,void 0,arguments)},filter(e,t){return ct(this,"filter",e,t,n=>n.map(r=>wt(this,r)),arguments)},find(e,t){return ct(this,"find",e,t,n=>wt(this,n),arguments)},findIndex(e,t){return ct(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ct(this,"findLast",e,t,n=>wt(this,n),arguments)},findLastIndex(e,t){return ct(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ct(this,"forEach",e,t,void 0,arguments)},includes(...e){return Cr(this,"includes",e)},indexOf(...e){return Cr(this,"indexOf",e)},join(e){return Bt(this).join(e)},lastIndexOf(...e){return Cr(this,"lastIndexOf",e)},map(e,t){return ct(this,"map",e,t,void 0,arguments)},pop(){return nn(this,"pop")},push(...e){return nn(this,"push",e)},reduce(e,...t){return qs(this,"reduce",e,t)},reduceRight(e,...t){return qs(this,"reduceRight",e,t)},shift(){return nn(this,"shift")},some(e,t){return ct(this,"some",e,t,void 0,arguments)},splice(...e){return nn(this,"splice",e)},toReversed(){return Bt(this).toReversed()},toSorted(e){return Bt(this).toSorted(e)},toSpliced(...e){return Bt(this).toSpliced(...e)},unshift(...e){return nn(this,"unshift",e)},values(){return Tr(this,"values",e=>wt(this,e))}};function Tr(e,t,n){const r=ur(e),s=r[t]();return r!==e&&!je(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const wc=Array.prototype;function ct(e,t,n,r,s,o){const i=ur(e),l=i!==e&&!je(e),c=i[t];if(c!==wc[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,wt(e,f),p,e)}:n.length>2&&(u=function(f,p){return n.call(this,f,p,e)}));const a=c.call(i,u,r);return l&&s?s(a):a}function qs(e,t,n,r){const s=ur(e);let o=n;return s!==e&&(je(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,wt(e,l),c,e)}),s[t](o,...r)}function Cr(e,t,n){const r=Z(e);be(r,"iterate",En);const s=r[t](...n);return(s===-1||s===!1)&&fr(n[0])?(n[0]=Z(n[0]),r[t](...n)):s}function nn(e,t,n=[]){ht(),gs();const r=Z(e)[t].apply(e,n);return ys(),pt(),r}const Sc=us("__proto__,__v_isRef,__isVue"),Ri=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(yt));function Rc(e){yt(e)||(e=String(e));const t=Z(this);return be(t,"has",e),t.hasOwnProperty(e)}class Ai{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?Dc:Ti:o?xi:Oi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=q(t);if(!s){let c;if(i&&(c=Ec[n]))return c;if(n==="hasOwnProperty")return Rc}const l=Reflect.get(t,n,ce(t)?t:r);if((yt(n)?Ri.has(n):Sc(n))||(s||be(t,"get",n),o))return l;if(ce(l)){const c=i&&lr(n)?l:l.value;return s&&le(c)?Wr(c):c}return le(l)?s?Wr(l):On(l):l}}class vi extends Ai{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=q(t)&&lr(n);if(!this._isShallow){const u=mt(o);if(!je(r)&&!mt(r)&&(o=Z(o),r=Z(r)),!i&&ce(o)&&!ce(r))return u||(o.value=r),!0}const l=i?Number(n)e,Dn=e=>Reflect.getPrototypeOf(e);function Tc(e,t,n){return function(...r){const s=this.__v_raw,o=Z(s),i=Kt(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=s[e](...r),a=n?Kr:t?zt:Ke;return!t&&be(o,"iterate",c?$r:Dt),{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 Ln(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Cc(e,t){const n={get(s){const o=this.__v_raw,i=Z(o),l=Z(s);e||(vt(s,l)&&be(i,"get",s),be(i,"get",l));const{has:c}=Dn(i),u=t?Kr:e?zt:Ke;if(c.call(i,s))return u(o.get(s));if(c.call(i,l))return u(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&be(Z(s),"iterate",Dt),s.size},has(s){const o=this.__v_raw,i=Z(o),l=Z(s);return e||(vt(s,l)&&be(i,"has",s),be(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,c=Z(l),u=t?Kr:e?zt:Ke;return!e&&be(c,"iterate",Dt),l.forEach((a,f)=>s.call(o,u(a),u(f),i))}};return Se(n,e?{add:Ln("add"),set:Ln("set"),delete:Ln("delete"),clear:Ln("clear")}:{add(s){!t&&!je(s)&&!mt(s)&&(s=Z(s));const o=Z(this);return Dn(o).has.call(o,s)||(o.add(s),ft(o,"add",s,s)),this},set(s,o){!t&&!je(o)&&!mt(o)&&(o=Z(o));const i=Z(this),{has:l,get:c}=Dn(i);let u=l.call(i,s);u||(s=Z(s),u=l.call(i,s));const a=c.call(i,s);return i.set(s,o),u?vt(o,a)&&ft(i,"set",s,o):ft(i,"add",s,o),this},delete(s){const o=Z(this),{has:i,get:l}=Dn(o);let c=i.call(o,s);c||(s=Z(s),c=i.call(o,s)),l&&l.call(o,s);const u=o.delete(s);return c&&ft(o,"delete",s,void 0),u},clear(){const s=Z(this),o=s.size!==0,i=s.clear();return o&&ft(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=Tc(s,e,t)}),n}function Es(e,t){const n=Cc(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(ne(n,s)&&s in r?n:r,s,o)}const Pc={get:Es(!1,!1)},Nc={get:Es(!1,!0)},Ic={get:Es(!0,!1)};const Oi=new WeakMap,xi=new WeakMap,Ti=new WeakMap,Dc=new WeakMap;function Lc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Fc(e){return e.__v_skip||!Object.isExtensible(e)?0:Lc(ic(e))}function On(e){return mt(e)?e:ws(e,!1,vc,Pc,Oi)}function Ci(e){return ws(e,!1,xc,Nc,xi)}function Wr(e){return ws(e,!0,Oc,Ic,Ti)}function ws(e,t,n,r,s){if(!le(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=Fc(e);if(o===0)return e;const i=s.get(e);if(i)return i;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function it(e){return mt(e)?it(e.__v_raw):!!(e&&e.__v_isReactive)}function mt(e){return!!(e&&e.__v_isReadonly)}function je(e){return!!(e&&e.__v_isShallow)}function fr(e){return e?!!e.__v_raw:!1}function Z(e){const t=e&&e.__v_raw;return t?Z(t):e}function Ss(e){return!ne(e,"__v_skip")&&Object.isExtensible(e)&&ci(e,"__v_skip",!0),e}const Ke=e=>le(e)?On(e):e,zt=e=>le(e)?Wr(e):e;function ce(e){return e?e.__v_isRef===!0:!1}function Lt(e){return Pi(e,!1)}function Mc(e){return Pi(e,!0)}function Pi(e,t){return ce(e)?e:new Uc(e,t)}class Uc{constructor(t,n){this.dep=new bs,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:Z(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,r=this.__v_isShallow||je(t)||mt(t);t=r?t:Z(t),vt(t,n)&&(this._rawValue=t,this._value=r?t:Ke(t),this.dep.trigger())}}function Ot(e){return ce(e)?e.value:e}const jc={get:(e,t,n)=>t==="__v_raw"?e:Ot(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return ce(s)&&!ce(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Ni(e){return it(e)?e:new Proxy(e,jc)}function Bc(e){const t=q(e)?new Array(e.length):{};for(const n in e)t[n]=Ii(e,n);return t}class Hc{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._raw=Z(t);let s=!0,o=t;if(!q(t)||!lr(String(n)))do s=!fr(o)||je(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=Ot(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&ce(this._raw[this._key])){const n=this._object[this._key];if(ce(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return bc(this._raw,this._key)}}class kc{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Vc(e,t,n){return ce(e)?e:W(e)?new kc(e):le(e)&&arguments.length>1?Ii(e,t,n):Lt(e)}function Ii(e,t,n){return new Hc(e,t,n)}class qc{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new bs(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=bn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&ie!==this)return yi(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 $c(e,t,n=!1){let r,s;return W(e)?r=e:(r=e.get,s=e.set),new qc(r,s,n)}const Fn={},Jn=new WeakMap;let Pt;function Kc(e,t=!1,n=Pt){if(n){let r=Jn.get(n);r||Jn.set(n,r=[]),r.push(e)}}function Wc(e,t,n=se){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:c}=n,u=P=>s?P:je(P)||s===!1||s===0?dt(P,1):dt(P);let a,f,p,m,g=!1,b=!1;if(ce(e)?(f=()=>e.value,g=je(e)):it(e)?(f=()=>u(e),g=!0):q(e)?(b=!0,g=e.some(P=>it(P)||je(P)),f=()=>e.map(P=>{if(ce(P))return P.value;if(it(P))return u(P);if(W(P))return c?c(P,2):P()})):W(e)?t?f=c?()=>c(e,2):e:f=()=>{if(p){ht();try{p()}finally{pt()}}const P=Pt;Pt=a;try{return c?c(e,3,[m]):e(m)}finally{Pt=P}}:f=ot,t&&s){const P=f,M=s===!0?1/0:s;f=()=>dt(P(),M)}const E=pi(),O=()=>{a.stop(),E&&E.active&&ds(E.effects,a)};if(o&&t){const P=t;t=(...M)=>{P(...M),O()}}let C=b?new Array(e.length).fill(Fn):Fn;const N=P=>{if(!(!(a.flags&1)||!a.dirty&&!P))if(t){const M=a.run();if(s||g||(b?M.some((X,k)=>vt(X,C[k])):vt(M,C))){p&&p();const X=Pt;Pt=a;try{const k=[M,C===Fn?void 0:b&&C[0]===Fn?[]:C,m];C=M,c?c(t,3,k):t(...k)}finally{Pt=X}}}else a.run()};return l&&l(N),a=new mi(f),a.scheduler=i?()=>i(N,!1):N,m=P=>Kc(P,!1,a),p=a.onStop=()=>{const P=Jn.get(a);if(P){if(c)c(P,4);else for(const M of P)M();Jn.delete(a)}},t?r?N(!0):C=a.run():i?i(N.bind(null,!0),!0):a.run(),O.pause=a.pause.bind(a),O.resume=a.resume.bind(a),O.stop=O,O}function dt(e,t=1/0,n){if(t<=0||!le(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,ce(e))dt(e.value,t,n);else if(q(e))for(let r=0;r{dt(r,t,n)});else if(ii(e)){for(const r in e)dt(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&dt(e[r],t,n)}return e}function xn(e,t,n,r){try{return r?e(...r):e()}catch(s){dr(s,t,n)}}function lt(e,t,n,r){if(W(e)){const s=xn(e,t,n,r);return s&&si(s)&&s.catch(o=>{dr(o,t,n)}),s}if(q(e)){const s=[];for(let o=0;o>>1,s=xe[r],o=wn(s);o=wn(n)?xe.push(e):xe.splice(zc(t),0,e),e.flags|=1,Li()}}function Li(){Xn||(Xn=Di.then(Mi))}function Jc(e){q(e)?Wt.push(...e):St&&e.id===-1?St.splice(kt+1,0,e):e.flags&1||(Wt.push(e),e.flags|=1),Li()}function $s(e,t,n=rt+1){for(;nwn(n)-wn(r));if(Wt.length=0,St){St.push(...t);return}for(St=t,kt=0;kte.id==null?e.flags&2?-1:1/0:e.id;function Mi(e){try{for(rt=0;rt{r._d&&tr(-1);const o=Qn(t);let i;try{i=e(...s)}finally{Qn(o),r._d&&tr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function Ah(e,t){if(we===null)return e;const n=gr(we),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&W(t)?t.call(r&&r.proxy):t}}function Qc(){return!!(dl()||Ft)}const Yc=Symbol.for("v-scx"),Zc=()=>ke(Yc);function fn(e,t,n){return ji(e,t,n)}function ji(e,t,n=se){const{immediate:r,deep:s,flush:o,once:i}=n,l=Se({},n),c=t&&r||!t&&o!=="post";let u;if(An){if(o==="sync"){const m=Zc();u=m.__watcherHandles||(m.__watcherHandles=[])}else if(!c){const m=()=>{};return m.stop=ot,m.resume=ot,m.pause=ot,m}}const a=Te;l.call=(m,g,b)=>lt(m,a,g,b);let f=!1;o==="post"?l.scheduler=m=>{ve(m,a&&a.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(m,g)=>{g?m():As(m)}),l.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,a&&(m.id=a.uid,m.i=a))};const p=Wc(e,t,l);return An&&(u?u.push(p):c&&p()),p}function ea(e,t,n){const r=this.proxy,s=de(e)?e.includes(".")?Bi(r,e):()=>r[e]:e.bind(r,r);let o;W(t)?o=t:(o=t.handler,n=t);const i=Tn(this),l=ji(s,o.bind(r),n);return i(),l}function Bi(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,dn=e=>e&&(e.disabled||e.disabled===""),Ks=e=>e&&(e.defer||e.defer===""),Ws=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Gs=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Gr=(e,t)=>{const n=e&&e.to;return de(n)?t?t(n):null:n},ki={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,u){const{mc:a,pc:f,pbc:p,o:{insert:m,querySelector:g,createText:b,createComment:E}}=u,O=dn(t.props);let{shapeFlag:C,children:N,dynamicChildren:P}=t;if(e==null){const M=t.el=b(""),X=t.anchor=b("");m(M,n,r),m(X,n,r);const k=(U,ee)=>{C&16&&a(N,U,ee,s,o,i,l,c)},V=()=>{const U=t.target=Gr(t.props,g),ee=Vi(U,t,b,m);U&&(i!=="svg"&&Ws(U)?i="svg":i!=="mathml"&&Gs(U)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(U),O||(k(U,ee),kn(t,!1)))};O&&(k(n,X),kn(t,!0)),Ks(t.props)?(t.el.__isMounted=!1,ve(()=>{V(),delete t.el.__isMounted},o)):V()}else{if(Ks(t.props)&&e.el.__isMounted===!1){ve(()=>{ki.process(e,t,n,r,s,o,i,l,c,u)},o);return}t.el=e.el,t.targetStart=e.targetStart;const M=t.anchor=e.anchor,X=t.target=e.target,k=t.targetAnchor=e.targetAnchor,V=dn(e.props),U=V?n:X,ee=V?M:k;if(i==="svg"||Ws(X)?i="svg":(i==="mathml"||Gs(X))&&(i="mathml"),P?(p(e.dynamicChildren,P,U,s,o,i,l),Cs(e,t,!0)):c||f(e,t,U,ee,s,o,i,l,!1),O)V?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Mn(t,n,M,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const ue=t.target=Gr(t.props,g);ue&&Mn(t,ue,null,u,0)}else V&&Mn(t,X,k,u,1);kn(t,O)}},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetStart:u,targetAnchor:a,target:f,props:p}=e;if(f&&(s(u),s(a)),o&&s(c),i&16){const m=o||!dn(p);for(let g=0;ghn(g,t&&(q(t)?t[b]:t),n,r,s));return}if(Gt(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&hn(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?gr(r.component):r.el,i=s?null:o,{i:l,r:c}=e,u=t&&t.r,a=l.refs===se?l.refs={}:l.refs,f=l.setupState,p=Z(f),m=f===se?ni:g=>ne(p,g);if(u!=null&&u!==c){if(zs(t),de(u))a[u]=null,m(u)&&(f[u]=null);else if(ce(u)){u.value=null;const g=t;g.k&&(a[g.k]=null)}}if(W(c))xn(c,l,12,[i,a]);else{const g=de(c),b=ce(c);if(g||b){const E=()=>{if(e.f){const O=g?m(c)?f[c]:a[c]:c.value;if(s)q(O)&&ds(O,o);else if(q(O))O.includes(o)||O.push(o);else if(g)a[c]=[o],m(c)&&(f[c]=a[c]);else{const C=[o];c.value=C,e.k&&(a[e.k]=C)}}else g?(a[c]=i,m(c)&&(f[c]=i)):b&&(c.value=i,e.k&&(a[e.k]=i))};if(i){const O=()=>{E(),Yn.delete(e)};O.id=-1,Yn.set(e,O),ve(O,n)}else zs(e),E()}}}function zs(e){const t=Yn.get(e);t&&(t.flags|=8,Yn.delete(e))}ar().requestIdleCallback;ar().cancelIdleCallback;const Gt=e=>!!e.type.__asyncLoader,$i=e=>e.type.__isKeepAlive;function sa(e,t){Ki(e,"a",t)}function oa(e,t){Ki(e,"da",t)}function Ki(e,t,n=Te){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(hr(t,r,n),n){let s=n.parent;for(;s&&s.parent;)$i(s.parent.vnode)&&ia(r,t,n,s),s=s.parent}}function ia(e,t,n,r){const s=hr(t,e,r,!0);Wi(()=>{ds(r[t],s)},n)}function hr(e,t,n=Te,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{ht();const l=Tn(n),c=lt(t,n,e,i);return l(),pt(),c});return r?s.unshift(o):s.push(o),o}}const _t=e=>(t,n=Te)=>{(!An||e==="sp")&&hr(e,(...r)=>t(...r),n)},la=_t("bm"),ca=_t("m"),aa=_t("bu"),ua=_t("u"),fa=_t("bum"),Wi=_t("um"),da=_t("sp"),ha=_t("rtg"),pa=_t("rtc");function ma(e,t=Te){hr("ec",e,t)}const ga=Symbol.for("v-ndc");function Oh(e,t,n,r){let s;const o=n,i=q(e);if(i||de(e)){const l=i&&it(e);let c=!1,u=!1;l&&(c=!je(e),u=mt(e),e=ur(e)),s=new Array(e.length);for(let a=0,f=e.length;at(l,c,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let c=0,u=l.length;c0;return er(),nr(Fe,null,[Ce("slot",n,r)],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),er();const i=o&&Gi(o(n)),l=n.key||i&&i.key,c=nr(Fe,{key:(l&&!yt(l)?l:`_${t}`)+(!i&&r?"_fb":"")},i||[],i&&e._===1?64:-2);return c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),o&&o._c&&(o._d=!0),c}function Gi(e){return e.some(t=>Rn(t)?!(t.type===gt||t.type===Fe&&!Gi(t.children)):!0)?e:null}const zr=e=>e?hl(e)?gr(e):zr(e.parent):null,pn=Se(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=>zr(e.parent),$root:e=>zr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ji(e),$forceUpdate:e=>e.f||(e.f=()=>{As(e.update)}),$nextTick:e=>e.n||(e.n=Rs.bind(e.proxy)),$watch:e=>ea.bind(e)}),Pr=(e,t)=>e!==se&&!e.__isScriptSetup&&ne(e,t),ya={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,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 r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(Pr(r,t))return i[t]=1,r[t];if(s!==se&&ne(s,t))return i[t]=2,s[t];if(ne(o,t))return i[t]=3,o[t];if(n!==se&&ne(n,t))return i[t]=4,n[t];Jr&&(i[t]=0)}}const u=pn[t];let a,f;if(u)return t==="$attrs"&&be(e.attrs,"get",""),u(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==se&&ne(n,t))return i[t]=4,n[t];if(f=c.config.globalProperties,ne(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return Pr(s,t)?(s[t]=n,!0):r!==se&&ne(r,t)?(r[t]=n,!0):ne(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:o,type:i}},l){let c;return!!(n[l]||e!==se&&l[0]!=="$"&&ne(e,l)||Pr(t,l)||ne(o,l)||ne(r,l)||ne(pn,l)||ne(s.config.globalProperties,l)||(c=i.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ne(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Js(e){return q(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Jr=!0;function _a(e){const t=Ji(e),n=e.proxy,r=e.ctx;Jr=!1,t.beforeCreate&&Xs(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:u,created:a,beforeMount:f,mounted:p,beforeUpdate:m,updated:g,activated:b,deactivated:E,beforeDestroy:O,beforeUnmount:C,destroyed:N,unmounted:P,render:M,renderTracked:X,renderTriggered:k,errorCaptured:V,serverPrefetch:U,expose:ee,inheritAttrs:ue,components:ye,directives:pe,filters:Re}=t;if(u&&ba(u,r,null),i)for(const K in i){const z=i[K];W(z)&&(r[K]=z.bind(n))}if(s){const K=s.call(n,n);le(K)&&(e.data=On(K))}if(Jr=!0,o)for(const K in o){const z=o[K],Be=W(z)?z.bind(n,n):W(z.get)?z.get.bind(n,n):ot,ze=!W(z)&&W(z.set)?z.set.bind(n):ot,me=Me({get:Be,set:ze});Object.defineProperty(r,K,{enumerable:!0,configurable:!0,get:()=>me.value,set:fe=>me.value=fe})}if(l)for(const K in l)zi(l[K],r,n,K);if(c){const K=W(c)?c.call(n):c;Reflect.ownKeys(K).forEach(z=>{Hn(z,K[z])})}a&&Xs(a,e,"c");function J(K,z){q(z)?z.forEach(Be=>K(Be.bind(n))):z&&K(z.bind(n))}if(J(la,f),J(ca,p),J(aa,m),J(ua,g),J(sa,b),J(oa,E),J(ma,V),J(pa,X),J(ha,k),J(fa,C),J(Wi,P),J(da,U),q(ee))if(ee.length){const K=e.exposed||(e.exposed={});ee.forEach(z=>{Object.defineProperty(K,z,{get:()=>n[z],set:Be=>n[z]=Be,enumerable:!0})})}else e.exposed||(e.exposed={});M&&e.render===ot&&(e.render=M),ue!=null&&(e.inheritAttrs=ue),ye&&(e.components=ye),pe&&(e.directives=pe),U&&qi(e)}function ba(e,t,n=ot){q(e)&&(e=Xr(e));for(const r in e){const s=e[r];let o;le(s)?"default"in s?o=ke(s.from||r,s.default,!0):o=ke(s.from||r):o=ke(s),ce(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function Xs(e,t,n){lt(q(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function zi(e,t,n,r){let s=r.includes(".")?Bi(n,r):()=>n[r];if(de(e)){const o=t[e];W(o)&&fn(s,o)}else if(W(e))fn(s,e.bind(n));else if(le(e))if(q(e))e.forEach(o=>zi(o,t,n,r));else{const o=W(e.handler)?e.handler.bind(n):t[e.handler];W(o)&&fn(s,o,e)}}function Ji(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>Zn(c,u,i,!0)),Zn(c,t,i)),le(t)&&o.set(t,c),c}function Zn(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&Zn(e,o,n,!0),s&&s.forEach(i=>Zn(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Ea[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Ea={data:Qs,props:Ys,emits:Ys,methods:ln,computed:ln,beforeCreate:Ae,created:Ae,beforeMount:Ae,mounted:Ae,beforeUpdate:Ae,updated:Ae,beforeDestroy:Ae,beforeUnmount:Ae,destroyed:Ae,unmounted:Ae,activated:Ae,deactivated:Ae,errorCaptured:Ae,serverPrefetch:Ae,components:ln,directives:ln,watch:Sa,provide:Qs,inject:wa};function Qs(e,t){return t?e?function(){return Se(W(e)?e.call(this,this):e,W(t)?t.call(this,this):t)}:t:e}function wa(e,t){return ln(Xr(e),Xr(t))}function Xr(e){if(q(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${xt(t)}Modifiers`]||e[`${jt(t)}Modifiers`];function Oa(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||se;let s=n;const o=t.startsWith("update:"),i=o&&va(r,t.slice(7));i&&(i.trim&&(s=n.map(a=>de(a)?a.trim():a)),i.number&&(s=n.map(hs)));let l,c=r[l=vr(t)]||r[l=vr(xt(t))];!c&&o&&(c=r[l=vr(jt(t))]),c&<(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,lt(u,e,6,s)}}const xa=new WeakMap;function Qi(e,t,n=!1){const r=n?xa:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!W(e)){const c=u=>{const a=Qi(u,t,!0);a&&(l=!0,Se(i,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(le(e)&&r.set(e,null),null):(q(o)?o.forEach(c=>i[c]=null):Se(i,o),le(e)&&r.set(e,i),i)}function pr(e,t){return!e||!or(t)?!1:(t=t.slice(2).replace(/Once$/,""),ne(e,t[0].toLowerCase()+t.slice(1))||ne(e,jt(t))||ne(e,t))}function Zs(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:a,props:f,data:p,setupState:m,ctx:g,inheritAttrs:b}=e,E=Qn(e);let O,C;try{if(n.shapeFlag&4){const P=s||r,M=P;O=st(u.call(M,P,a,f,m,p,g)),C=l}else{const P=t;O=st(P.length>1?P(f,{attrs:l,slots:i,emit:c}):P(f,null)),C=t.props?l:Ta(l)}}catch(P){mn.length=0,dr(P,e,1),O=Ce(gt)}let N=O;if(C&&b!==!1){const P=Object.keys(C),{shapeFlag:M}=N;P.length&&M&7&&(o&&P.some(fs)&&(C=Ca(C,o)),N=Jt(N,C,!1,!0))}return n.dirs&&(N=Jt(N,null,!1,!0),N.dirs=N.dirs?N.dirs.concat(n.dirs):n.dirs),n.transition&&vs(N,n.transition),O=N,Qn(E),O}const Ta=e=>{let t;for(const n in e)(n==="class"||n==="style"||or(n))&&((t||(t={}))[n]=e[n]);return t},Ca=(e,t)=>{const n={};for(const r in e)(!fs(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Pa(e,t,n){const{props:r,children:s,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 r?eo(r,i,u):!!i;if(c&8){const a=t.dynamicProps;for(let f=0;fObject.create(Yi),el=e=>Object.getPrototypeOf(e)===Yi;function Ia(e,t,n,r=!1){const s={},o=Zi();e.propsDefaults=Object.create(null),tl(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:Ci(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function Da(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=Z(s),[c]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const a=e.vnode.dynamicProps;for(let f=0;f{c=!0;const[p,m]=nl(f,t,!0);Se(i,p),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!c)return le(e)&&r.set(e,$t),$t;if(q(o))for(let a=0;ae==="_"||e==="_ctx"||e==="$stable",Ts=e=>q(e)?e.map(st):[st(e)],Fa=(e,t,n)=>{if(t._n)return t;const r=Xc((...s)=>Ts(t(...s)),n);return r._c=!1,r},rl=(e,t,n)=>{const r=e._ctx;for(const s in e){if(xs(s))continue;const o=e[s];if(W(o))t[s]=Fa(s,o,r);else if(o!=null){const i=Ts(o);t[s]=()=>i}}},sl=(e,t)=>{const n=Ts(t);e.slots.default=()=>n},ol=(e,t,n)=>{for(const r in t)(n||!xs(r))&&(e[r]=t[r])},Ma=(e,t,n)=>{const r=e.slots=Zi();if(e.vnode.shapeFlag&32){const s=t._;s?(ol(r,t,n),n&&ci(r,"_",s,!0)):rl(t,r)}else t&&sl(e,t)},Ua=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=se;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:ol(s,t,n):(o=!t.$stable,rl(t,s)),i=t}else t&&(sl(e,t),i={default:1});if(o)for(const l in s)!xs(l)&&i[l]==null&&delete s[l]},ve=Va;function ja(e){return Ba(e)}function Ba(e,t){const n=ar();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:a,parentNode:f,nextSibling:p,setScopeId:m=ot,insertStaticContent:g}=e,b=(d,h,y,w=null,A=null,S=null,I=void 0,T=null,x=!!h.dynamicChildren)=>{if(d===h)return;d&&!rn(d,h)&&(w=R(d),fe(d,A,S,!0),d=null),h.patchFlag===-2&&(x=!1,h.dynamicChildren=null);const{type:v,ref:H,shapeFlag:L}=h;switch(v){case mr:E(d,h,y,w);break;case gt:O(d,h,y,w);break;case Vn:d==null&&C(h,y,w,I);break;case Fe:ye(d,h,y,w,A,S,I,T,x);break;default:L&1?M(d,h,y,w,A,S,I,T,x):L&6?pe(d,h,y,w,A,S,I,T,x):(L&64||L&128)&&v.process(d,h,y,w,A,S,I,T,x,j)}H!=null&&A?hn(H,d&&d.ref,S,h||d,!h):H==null&&d&&d.ref!=null&&hn(d.ref,null,S,d,!0)},E=(d,h,y,w)=>{if(d==null)r(h.el=l(h.children),y,w);else{const A=h.el=d.el;h.children!==d.children&&u(A,h.children)}},O=(d,h,y,w)=>{d==null?r(h.el=c(h.children||""),y,w):h.el=d.el},C=(d,h,y,w)=>{[d.el,d.anchor]=g(d.children,h,y,w,d.el,d.anchor)},N=({el:d,anchor:h},y,w)=>{let A;for(;d&&d!==h;)A=p(d),r(d,y,w),d=A;r(h,y,w)},P=({el:d,anchor:h})=>{let y;for(;d&&d!==h;)y=p(d),s(d),d=y;s(h)},M=(d,h,y,w,A,S,I,T,x)=>{if(h.type==="svg"?I="svg":h.type==="math"&&(I="mathml"),d==null)X(h,y,w,A,S,I,T,x);else{const v=d.el&&d.el._isVueCE?d.el:null;try{v&&v._beginPatch(),U(d,h,A,S,I,T,x)}finally{v&&v._endPatch()}}},X=(d,h,y,w,A,S,I,T)=>{let x,v;const{props:H,shapeFlag:L,transition:B,dirs:$}=d;if(x=d.el=i(d.type,S,H&&H.is,H),L&8?a(x,d.children):L&16&&V(d.children,x,null,w,A,Nr(d,S),I,T),$&&Tt(d,null,w,"created"),k(x,d,d.scopeId,I,w),H){for(const oe in H)oe!=="value"&&!cn(oe)&&o(x,oe,null,H[oe],S,w);"value"in H&&o(x,"value",null,H.value,S),(v=H.onVnodeBeforeMount)&&et(v,w,d)}$&&Tt(d,null,w,"beforeMount");const Y=Ha(A,B);Y&&B.beforeEnter(x),r(x,h,y),((v=H&&H.onVnodeMounted)||Y||$)&&ve(()=>{v&&et(v,w,d),Y&&B.enter(x),$&&Tt(d,null,w,"mounted")},A)},k=(d,h,y,w,A)=>{if(y&&m(d,y),w)for(let S=0;S{for(let v=x;v{const T=h.el=d.el;let{patchFlag:x,dynamicChildren:v,dirs:H}=h;x|=d.patchFlag&16;const L=d.props||se,B=h.props||se;let $;if(y&&Ct(y,!1),($=B.onVnodeBeforeUpdate)&&et($,y,h,d),H&&Tt(h,d,y,"beforeUpdate"),y&&Ct(y,!0),(L.innerHTML&&B.innerHTML==null||L.textContent&&B.textContent==null)&&a(T,""),v?ee(d.dynamicChildren,v,T,y,w,Nr(h,A),S):I||z(d,h,T,null,y,w,Nr(h,A),S,!1),x>0){if(x&16)ue(T,L,B,y,A);else if(x&2&&L.class!==B.class&&o(T,"class",null,B.class,A),x&4&&o(T,"style",L.style,B.style,A),x&8){const Y=h.dynamicProps;for(let oe=0;oe{$&&et($,y,h,d),H&&Tt(h,d,y,"updated")},w)},ee=(d,h,y,w,A,S,I)=>{for(let T=0;T{if(h!==y){if(h!==se)for(const S in h)!cn(S)&&!(S in y)&&o(d,S,h[S],null,A,w);for(const S in y){if(cn(S))continue;const I=y[S],T=h[S];I!==T&&S!=="value"&&o(d,S,T,I,A,w)}"value"in y&&o(d,"value",h.value,y.value,A)}},ye=(d,h,y,w,A,S,I,T,x)=>{const v=h.el=d?d.el:l(""),H=h.anchor=d?d.anchor:l("");let{patchFlag:L,dynamicChildren:B,slotScopeIds:$}=h;$&&(T=T?T.concat($):$),d==null?(r(v,y,w),r(H,y,w),V(h.children||[],y,H,A,S,I,T,x)):L>0&&L&64&&B&&d.dynamicChildren&&d.dynamicChildren.length===B.length?(ee(d.dynamicChildren,B,y,A,S,I,T),(h.key!=null||A&&h===A.subTree)&&Cs(d,h,!0)):z(d,h,y,H,A,S,I,T,x)},pe=(d,h,y,w,A,S,I,T,x)=>{h.slotScopeIds=T,d==null?h.shapeFlag&512?A.ctx.activate(h,y,w,I,x):Re(h,y,w,A,S,I,x):Ve(d,h,x)},Re=(d,h,y,w,A,S,I)=>{const T=d.component=Xa(d,w,A);if($i(d)&&(T.ctx.renderer=j),Qa(T,!1,I),T.asyncDep){if(A&&A.registerDep(T,J,I),!d.el){const x=T.subTree=Ce(gt);O(null,x,h,y),d.placeholder=x.el}}else J(T,d,h,y,A,S,I)},Ve=(d,h,y)=>{const w=h.component=d.component;if(Pa(d,h,y))if(w.asyncDep&&!w.asyncResolved){K(w,h,y);return}else w.next=h,w.update();else h.el=d.el,w.vnode=h},J=(d,h,y,w,A,S,I)=>{const T=()=>{if(d.isMounted){let{next:L,bu:B,u:$,parent:Y,vnode:oe}=d;{const Ye=il(d);if(Ye){L&&(L.el=oe.el,K(d,L,I)),Ye.asyncDep.then(()=>{d.isUnmounted||T()});return}}let re=L,Pe;Ct(d,!1),L?(L.el=oe.el,K(d,L,I)):L=oe,B&&Bn(B),(Pe=L.props&&L.props.onVnodeBeforeUpdate)&&et(Pe,Y,L,oe),Ct(d,!0);const Ne=Zs(d),Qe=d.subTree;d.subTree=Ne,b(Qe,Ne,f(Qe.el),R(Qe),d,A,S),L.el=Ne.el,re===null&&Na(d,Ne.el),$&&ve($,A),(Pe=L.props&&L.props.onVnodeUpdated)&&ve(()=>et(Pe,Y,L,oe),A)}else{let L;const{el:B,props:$}=h,{bm:Y,m:oe,parent:re,root:Pe,type:Ne}=d,Qe=Gt(h);Ct(d,!1),Y&&Bn(Y),!Qe&&(L=$&&$.onVnodeBeforeMount)&&et(L,re,h),Ct(d,!0);{Pe.ce&&Pe.ce._def.shadowRoot!==!1&&Pe.ce._injectChildStyle(Ne);const Ye=d.subTree=Zs(d);b(null,Ye,y,w,d,A,S),h.el=Ye.el}if(oe&&ve(oe,A),!Qe&&(L=$&&$.onVnodeMounted)){const Ye=h;ve(()=>et(L,re,Ye),A)}(h.shapeFlag&256||re&&Gt(re.vnode)&&re.vnode.shapeFlag&256)&&d.a&&ve(d.a,A),d.isMounted=!0,h=y=w=null}};d.scope.on();const x=d.effect=new mi(T);d.scope.off();const v=d.update=x.run.bind(x),H=d.job=x.runIfDirty.bind(x);H.i=d,H.id=d.uid,x.scheduler=()=>As(H),Ct(d,!0),v()},K=(d,h,y)=>{h.component=d;const w=d.vnode.props;d.vnode=h,d.next=null,Da(d,h.props,w,y),Ua(d,h.children,y),ht(),$s(d),pt()},z=(d,h,y,w,A,S,I,T,x=!1)=>{const v=d&&d.children,H=d?d.shapeFlag:0,L=h.children,{patchFlag:B,shapeFlag:$}=h;if(B>0){if(B&128){ze(v,L,y,w,A,S,I,T,x);return}else if(B&256){Be(v,L,y,w,A,S,I,T,x);return}}$&8?(H&16&&He(v,A,S),L!==v&&a(y,L)):H&16?$&16?ze(v,L,y,w,A,S,I,T,x):He(v,A,S,!0):(H&8&&a(y,""),$&16&&V(L,y,w,A,S,I,T,x))},Be=(d,h,y,w,A,S,I,T,x)=>{d=d||$t,h=h||$t;const v=d.length,H=h.length,L=Math.min(v,H);let B;for(B=0;BH?He(d,A,S,!0,!1,L):V(h,y,w,A,S,I,T,x,L)},ze=(d,h,y,w,A,S,I,T,x)=>{let v=0;const H=h.length;let L=d.length-1,B=H-1;for(;v<=L&&v<=B;){const $=d[v],Y=h[v]=x?Rt(h[v]):st(h[v]);if(rn($,Y))b($,Y,y,null,A,S,I,T,x);else break;v++}for(;v<=L&&v<=B;){const $=d[L],Y=h[B]=x?Rt(h[B]):st(h[B]);if(rn($,Y))b($,Y,y,null,A,S,I,T,x);else break;L--,B--}if(v>L){if(v<=B){const $=B+1,Y=$B)for(;v<=L;)fe(d[v],A,S,!0),v++;else{const $=v,Y=v,oe=new Map;for(v=Y;v<=B;v++){const Le=h[v]=x?Rt(h[v]):st(h[v]);Le.key!=null&&oe.set(Le.key,v)}let re,Pe=0;const Ne=B-Y+1;let Qe=!1,Ye=0;const tn=new Array(Ne);for(v=0;v=Ne){fe(Le,A,S,!0);continue}let Ze;if(Le.key!=null)Ze=oe.get(Le.key);else for(re=Y;re<=B;re++)if(tn[re-Y]===0&&rn(Le,h[re])){Ze=re;break}Ze===void 0?fe(Le,A,S,!0):(tn[Ze-Y]=v+1,Ze>=Ye?Ye=Ze:Qe=!0,b(Le,h[Ze],y,null,A,S,I,T,x),Pe++)}const js=Qe?ka(tn):$t;for(re=js.length-1,v=Ne-1;v>=0;v--){const Le=Y+v,Ze=h[Le],Bs=h[Le+1],Hs=Le+1{const{el:S,type:I,transition:T,children:x,shapeFlag:v}=d;if(v&6){me(d.component.subTree,h,y,w);return}if(v&128){d.suspense.move(h,y,w);return}if(v&64){I.move(d,h,y,j);return}if(I===Fe){r(S,h,y);for(let L=0;LT.enter(S),A);else{const{leave:L,delayLeave:B,afterLeave:$}=T,Y=()=>{d.ctx.isUnmounted?s(S):r(S,h,y)},oe=()=>{S._isLeaving&&S[ra](!0),L(S,()=>{Y(),$&&$()})};B?B(S,Y,oe):oe()}else r(S,h,y)},fe=(d,h,y,w=!1,A=!1)=>{const{type:S,props:I,ref:T,children:x,dynamicChildren:v,shapeFlag:H,patchFlag:L,dirs:B,cacheIndex:$}=d;if(L===-2&&(A=!1),T!=null&&(ht(),hn(T,null,y,d,!0),pt()),$!=null&&(h.renderCache[$]=void 0),H&256){h.ctx.deactivate(d);return}const Y=H&1&&B,oe=!Gt(d);let re;if(oe&&(re=I&&I.onVnodeBeforeUnmount)&&et(re,h,d),H&6)Xe(d.component,y,w);else{if(H&128){d.suspense.unmount(y,w);return}Y&&Tt(d,null,h,"beforeUnmount"),H&64?d.type.remove(d,h,y,j,w):v&&!v.hasOnce&&(S!==Fe||L>0&&L&64)?He(v,h,y,!1,!0):(S===Fe&&L&384||!A&&H&16)&&He(x,h,y),w&&Je(d)}(oe&&(re=I&&I.onVnodeUnmounted)||Y)&&ve(()=>{re&&et(re,h,d),Y&&Tt(d,null,h,"unmounted")},y)},Je=d=>{const{type:h,el:y,anchor:w,transition:A}=d;if(h===Fe){qe(y,w);return}if(h===Vn){P(d);return}const S=()=>{s(y),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(d.shapeFlag&1&&A&&!A.persisted){const{leave:I,delayLeave:T}=A,x=()=>I(y,S);T?T(d.el,S,x):x()}else S()},qe=(d,h)=>{let y;for(;d!==h;)y=p(d),s(d),d=y;s(h)},Xe=(d,h,y)=>{const{bum:w,scope:A,job:S,subTree:I,um:T,m:x,a:v}=d;no(x),no(v),w&&Bn(w),A.stop(),S&&(S.flags|=8,fe(I,d,h,y)),T&&ve(T,h),ve(()=>{d.isUnmounted=!0},h)},He=(d,h,y,w=!1,A=!1,S=0)=>{for(let I=S;I{if(d.shapeFlag&6)return R(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const h=p(d.anchor||d.el),y=h&&h[Hi];return y?p(y):h};let F=!1;const D=(d,h,y)=>{let w;d==null?h._vnode&&(fe(h._vnode,null,null,!0),w=h._vnode.component):b(h._vnode||null,d,h,null,null,null,y),h._vnode=d,F||(F=!0,$s(w),Fi(),F=!1)},j={p:b,um:fe,m:me,r:Je,mt:Re,mc:V,pc:z,pbc:ee,n:R,o:e};return{render:D,hydrate:void 0,createApp:Aa(D)}}function Nr({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 Ct({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Ha(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Cs(e,t,n=!1){const r=e.children,s=t.children;if(q(r)&&q(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function il(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:il(t)}function no(e){if(e)for(let t=0;te.__isSuspense;function Va(e,t){t&&t.pendingBranch?q(e)?t.effects.push(...e):t.effects.push(e):Jc(e)}const Fe=Symbol.for("v-fgt"),mr=Symbol.for("v-txt"),gt=Symbol.for("v-cmt"),Vn=Symbol.for("v-stc"),mn=[];let Ue=null;function er(e=!1){mn.push(Ue=e?null:[])}function qa(){mn.pop(),Ue=mn[mn.length-1]||null}let Sn=1;function tr(e,t=!1){Sn+=e,e<0&&Ue&&t&&(Ue.hasOnce=!0)}function al(e){return e.dynamicChildren=Sn>0?Ue||$t:null,qa(),Sn>0&&Ue&&Ue.push(e),e}function Th(e,t,n,r,s,o){return al(fl(e,t,n,r,s,o,!0))}function nr(e,t,n,r,s){return al(Ce(e,t,n,r,s,!0))}function Rn(e){return e?e.__v_isVNode===!0:!1}function rn(e,t){return e.type===t.type&&e.key===t.key}const ul=({key:e})=>e??null,qn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?de(e)||ce(e)||W(e)?{i:we,r:e,k:t,f:!!n}:e:null);function fl(e,t=null,n=null,r=0,s=null,o=e===Fe?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ul(t),ref:t&&qn(t),scopeId:Ui,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:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:we};return l?(Ps(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=de(n)?8:16),Sn>0&&!i&&Ue&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Ue.push(c),c}const Ce=$a;function $a(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===ga)&&(e=gt),Rn(e)){const l=Jt(e,t,!0);return n&&Ps(l,n),Sn>0&&!o&&Ue&&(l.shapeFlag&6?Ue[Ue.indexOf(e)]=l:Ue.push(l)),l.patchFlag=-2,l}if(tu(e)&&(e=e.__vccOpts),t){t=Ka(t);let{class:l,style:c}=t;l&&!de(l)&&(t.class=ms(l)),le(c)&&(fr(c)&&!q(c)&&(c=Se({},c)),t.style=ps(c))}const i=de(e)?1:cl(e)?128:ta(e)?64:le(e)?4:W(e)?2:0;return fl(e,t,n,r,s,i,o,!0)}function Ka(e){return e?fr(e)||el(e)?Se({},e):e:null}function Jt(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?Ga(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&ul(u),ref:t&&t.ref?n&&o?q(o)?o.concat(qn(t)):[o,qn(t)]:qn(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!==Fe?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&&Jt(e.ssContent),ssFallback:e.ssFallback&&Jt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&vs(a,c.clone(a)),a}function Wa(e=" ",t=0){return Ce(mr,null,e,t)}function Ch(e,t){const n=Ce(Vn,null,e);return n.staticCount=t,n}function Ph(e="",t=!1){return t?(er(),nr(gt,null,e)):Ce(gt,null,e)}function st(e){return e==null||typeof e=="boolean"?Ce(gt):q(e)?Ce(Fe,null,e.slice()):Rn(e)?Rt(e):Ce(mr,null,String(e))}function Rt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Jt(e)}function Ps(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(q(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Ps(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!el(t)?t._ctx=we:s===3&&we&&(we.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else W(t)?(t={default:t,_ctx:we},n=32):(t=String(t),r&64?(n=16,t=[Wa(t)]):n=8);e.children=t,e.shapeFlag|=n}function Ga(...e){const t={};for(let n=0;nTe||we;let rr,Yr;{const e=ar(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};rr=t("__VUE_INSTANCE_SETTERS__",n=>Te=n),Yr=t("__VUE_SSR_SETTERS__",n=>An=n)}const Tn=e=>{const t=Te;return rr(e),e.scope.on(),()=>{e.scope.off(),rr(t)}},ro=()=>{Te&&Te.scope.off(),rr(null)};function hl(e){return e.vnode.shapeFlag&4}let An=!1;function Qa(e,t=!1,n=!1){t&&Yr(t);const{props:r,children:s}=e.vnode,o=hl(e);Ia(e,r,o,t),Ma(e,s,n||t);const i=o?Ya(e,t):void 0;return t&&Yr(!1),i}function Ya(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,ya);const{setup:r}=n;if(r){ht();const s=e.setupContext=r.length>1?eu(e):null,o=Tn(e),i=xn(r,e,0,[e.props,s]),l=si(i);if(pt(),o(),(l||e.sp)&&!Gt(e)&&qi(e),l){if(i.then(ro,ro),t)return i.then(c=>{so(e,c)}).catch(c=>{dr(c,e,0)});e.asyncDep=i}else so(e,i)}else pl(e)}function so(e,t,n){W(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:le(t)&&(e.setupState=Ni(t)),pl(e)}function pl(e,t,n){const r=e.type;e.render||(e.render=r.render||ot);{const s=Tn(e);ht();try{_a(e)}finally{pt(),s()}}}const Za={get(e,t){return be(e,"get",""),e[t]}};function eu(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Za),slots:e.slots,emit:e.emit,expose:t}}function gr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ni(Ss(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in pn)return pn[n](e)},has(t,n){return n in t||n in pn}})):e.proxy}function tu(e){return W(e)&&"__vccOpts"in e}const Me=(e,t)=>$c(e,t,An);function ml(e,t,n){try{tr(-1);const r=arguments.length;return r===2?le(t)&&!q(t)?Rn(t)?Ce(e,null,[t]):Ce(e,t):Ce(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Rn(n)&&(n=[n]),Ce(e,t,n))}finally{tr(1)}}const nu="3.5.26";let Zr;const oo=typeof window<"u"&&window.trustedTypes;if(oo)try{Zr=oo.createPolicy("vue",{createHTML:e=>e})}catch{}const gl=Zr?e=>Zr.createHTML(e):e=>e,ru="http://www.w3.org/2000/svg",su="http://www.w3.org/1998/Math/MathML",ut=typeof document<"u"?document:null,io=ut&&ut.createElement("template"),ou={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?ut.createElementNS(ru,e):t==="mathml"?ut.createElementNS(su,e):n?ut.createElement(e,{is:n}):ut.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>ut.createTextNode(e),createComment:e=>ut.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ut.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{io.innerHTML=gl(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=io.content;if(r==="svg"||r==="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]}},iu=Symbol("_vtc");function lu(e,t,n){const r=e[iu];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const lo=Symbol("_vod"),cu=Symbol("_vsh"),au=Symbol(""),uu=/(?:^|;)\s*display\s*:/;function fu(e,t,n){const r=e.style,s=de(n);let o=!1;if(n&&!s){if(t)if(de(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&$n(r,l,"")}else for(const i in t)n[i]==null&&$n(r,i,"");for(const i in n)i==="display"&&(o=!0),$n(r,i,n[i])}else if(s){if(t!==n){const i=r[au];i&&(n+=";"+i),r.cssText=n,o=uu.test(n)}}else t&&e.removeAttribute("style");lo in e&&(e[lo]=o?r.display:"",e[cu]&&(r.display="none"))}const co=/\s*!important$/;function $n(e,t,n){if(q(n))n.forEach(r=>$n(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=du(e,t);co.test(n)?e.setProperty(jt(r),n.replace(co,""),"important"):e[r]=n}}const ao=["Webkit","Moz","ms"],Ir={};function du(e,t){const n=Ir[t];if(n)return n;let r=xt(t);if(r!=="filter"&&r in e)return Ir[t]=r;r=li(r);for(let s=0;sDr||(gu.then(()=>Dr=0),Dr=Date.now());function _u(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;lt(bu(r,n.value),t,5,[r])};return n.value=e,n.attached=yu(),n}function bu(e,t){if(q(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const go=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Eu=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?lu(e,r,i):t==="style"?fu(e,n,r):or(t)?fs(t)||pu(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):wu(e,t,r,i))?(ho(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&fo(e,t,r,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!de(r))?ho(e,xt(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),fo(e,t,r,i))};function wu(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&go(t)&&W(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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return go(t)&&de(n)?!1:t in e}const yo=e=>{const t=e.props["onUpdate:modelValue"]||!1;return q(t)?n=>Bn(t,n):t};function Su(e){e.target.composing=!0}function _o(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Lr=Symbol("_assign");function bo(e,t,n){return t&&(e=e.trim()),n&&(e=hs(e)),e}const Nh={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Lr]=yo(s);const o=r||s.props&&s.props.type==="number";Vt(e,t?"change":"input",i=>{i.target.composing||e[Lr](bo(e.value,n,o))}),(n||o)&&Vt(e,"change",()=>{e.value=bo(e.value,n,o)}),t||(Vt(e,"compositionstart",Su),Vt(e,"compositionend",_o),Vt(e,"change",_o))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Lr]=yo(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?hs(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},Ru=["ctrl","shift","alt","meta"],Au={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Ru.some(n=>e[`${n}Key`]&&!t.includes(n))},Ih=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const t=Ou().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Cu(r);if(!s)return;const o=t._component;!W(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,Tu(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t});function Tu(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Cu(e){return de(e)?document.querySelector(e):e}let yl;const yr=e=>yl=e,_l=Symbol();function es(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var gn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(gn||(gn={}));function Pu(){const e=hi(!0),t=e.run(()=>Lt({}));let n=[],r=[];const s=Ss({install(o){yr(s),s._a=o,o.provide(_l,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const bl=()=>{};function wo(e,t,n,r=bl){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&pi()&&gc(s),s}function Ht(e,...t){e.forEach(n=>{n(...t)})}const Nu=e=>e(),So=Symbol(),Fr=Symbol();function ts(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];es(s)&&es(r)&&e.hasOwnProperty(n)&&!ce(r)&&!it(r)?e[n]=ts(s,r):e[n]=r}return e}const Iu=Symbol();function Du(e){return!es(e)||!Object.prototype.hasOwnProperty.call(e,Iu)}const{assign:Et}=Object;function Lu(e){return!!(ce(e)&&e.effect)}function Fu(e,t,n,r){const{state:s,actions:o,getters:i}=t,l=n.state.value[e];let c;function u(){l||(n.state.value[e]=s?s():{});const a=Bc(n.state.value[e]);return Et(a,o,Object.keys(i||{}).reduce((f,p)=>(f[p]=Ss(Me(()=>{yr(n);const m=n._s.get(e);return i[p].call(m,m)})),f),{}))}return c=El(e,u,t,n,r,!0),c}function El(e,t,n={},r,s,o){let i;const l=Et({actions:{}},n),c={deep:!0};let u,a,f=new Set,p=new Set,m;const g=r.state.value[e];!o&&!g&&(r.state.value[e]={}),Lt({});let b;function E(V){let U;u=a=!1,typeof V=="function"?(V(r.state.value[e]),U={type:gn.patchFunction,storeId:e,events:m}):(ts(r.state.value[e],V),U={type:gn.patchObject,payload:V,storeId:e,events:m});const ee=b=Symbol();Rs().then(()=>{b===ee&&(u=!0)}),a=!0,Ht(f,U,r.state.value[e])}const O=o?function(){const{state:U}=n,ee=U?U():{};this.$patch(ue=>{Et(ue,ee)})}:bl;function C(){i.stop(),f.clear(),p.clear(),r._s.delete(e)}const N=(V,U="")=>{if(So in V)return V[Fr]=U,V;const ee=function(){yr(r);const ue=Array.from(arguments),ye=new Set,pe=new Set;function Re(K){ye.add(K)}function Ve(K){pe.add(K)}Ht(p,{args:ue,name:ee[Fr],store:M,after:Re,onError:Ve});let J;try{J=V.apply(this&&this.$id===e?this:M,ue)}catch(K){throw Ht(pe,K),K}return J instanceof Promise?J.then(K=>(Ht(ye,K),K)).catch(K=>(Ht(pe,K),Promise.reject(K))):(Ht(ye,J),J)};return ee[So]=!0,ee[Fr]=U,ee},P={_p:r,$id:e,$onAction:wo.bind(null,p),$patch:E,$reset:O,$subscribe(V,U={}){const ee=wo(f,V,U.detached,()=>ue()),ue=i.run(()=>fn(()=>r.state.value[e],ye=>{(U.flush==="sync"?a:u)&&V({storeId:e,type:gn.direct,events:m},ye)},Et({},c,U)));return ee},$dispose:C},M=On(P);r._s.set(e,M);const k=(r._a&&r._a.runWithContext||Nu)(()=>r._e.run(()=>(i=hi()).run(()=>t({action:N}))));for(const V in k){const U=k[V];if(ce(U)&&!Lu(U)||it(U))o||(g&&Du(U)&&(ce(U)?U.value=g[V]:ts(U,g[V])),r.state.value[e][V]=U);else if(typeof U=="function"){const ee=N(U,V);k[V]=ee,l.actions[V]=U}}return Et(M,k),Et(Z(M),k),Object.defineProperty(M,"$state",{get:()=>r.state.value[e],set:V=>{E(U=>{Et(U,V)})}}),r._p.forEach(V=>{Et(M,i.run(()=>V({store:M,app:r._a,pinia:r,options:l})))}),g&&o&&n.hydrate&&n.hydrate(M.$state,g),u=!0,a=!0,M}function Mu(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,l){const c=Qc();return i=i||(c?ke(_l,null):null),i&&yr(i),i=yl,i._s.has(e)||(s?El(e,t,r,i):Fu(e,r,i)),i._s.get(e)}return o.$id=e,o}function Dh(e){const t=Z(e),n={};for(const r in t){const s=t[r];s.effect?n[r]=Me({get:()=>e[r],set(o){e[r]=o}}):(ce(s)||it(s))&&(n[r]=Vc(e,r))}return n}const Uu="modulepreload",ju=function(e){return"/"+e},Ro={},tt=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let c=function(u){return Promise.all(u.map(a=>Promise.resolve(a).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=c(n.map(u=>{if(u=ju(u),u in Ro)return;Ro[u]=!0;const a=u.endsWith(".css"),f=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const p=document.createElement("link");if(p.rel=a?"stylesheet":Uu,a||(p.as="script"),p.crossOrigin="",p.href=u,l&&p.setAttribute("nonce",l),document.head.appendChild(p),a)return new Promise((m,g)=>{p.addEventListener("load",m),p.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})};const qt=typeof document<"u";function wl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Bu(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&wl(e.default)}const te=Object.assign;function Mr(e,t){const n={};for(const r in t){const s=t[r];n[r]=We(s)?s.map(e):e(s)}return n}const yn=()=>{},We=Array.isArray;function Ao(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const Sl=/#/g,Hu=/&/g,ku=/\//g,Vu=/=/g,qu=/\?/g,Rl=/\+/g,$u=/%5B/g,Ku=/%5D/g,Al=/%5E/g,Wu=/%60/g,vl=/%7B/g,Gu=/%7C/g,Ol=/%7D/g,zu=/%20/g;function Ns(e){return e==null?"":encodeURI(""+e).replace(Gu,"|").replace($u,"[").replace(Ku,"]")}function Ju(e){return Ns(e).replace(vl,"{").replace(Ol,"}").replace(Al,"^")}function ns(e){return Ns(e).replace(Rl,"%2B").replace(zu,"+").replace(Sl,"%23").replace(Hu,"%26").replace(Wu,"`").replace(vl,"{").replace(Ol,"}").replace(Al,"^")}function Xu(e){return ns(e).replace(Vu,"%3D")}function Qu(e){return Ns(e).replace(Sl,"%23").replace(qu,"%3F")}function Yu(e){return Qu(e).replace(ku,"%2F")}function vn(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Zu=/\/$/,ef=e=>e.replace(Zu,"");function Ur(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return c=l>=0&&c>l?-1:c,c>=0&&(r=t.slice(0,c),o=t.slice(c,l>0?l:t.length),s=e(o.slice(1))),l>=0&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=sf(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:vn(i)}}function tf(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function vo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function nf(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&Xt(t.matched[r],n.matched[s])&&xl(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Xt(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function xl(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!rf(e[n],t[n]))return!1;return!0}function rf(e,t){return We(e)?Oo(e,t):We(t)?Oo(t,e):e?.valueOf()===t?.valueOf()}function Oo(e,t){return We(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function sf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const bt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let rs=(function(e){return e.pop="pop",e.push="push",e})({}),jr=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function of(e){if(!e)if(qt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),ef(e)}const lf=/^[^#]+#/;function cf(e,t){return e.replace(lf,"#")+t}function af(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const _r=()=>({left:window.scrollX,top:window.scrollY});function uf(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=af(s,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 xo(e,t){return(history.state?history.state.position-t:-1)+e}const ss=new Map;function ff(e,t){ss.set(e,t)}function df(e){const t=ss.get(e);return ss.delete(e),t}function hf(e){return typeof e=="string"||e&&typeof e=="object"}function Tl(e){return typeof e=="string"||typeof e=="symbol"}let ae=(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 Cl=Symbol("");ae.MATCHER_NOT_FOUND+"",ae.NAVIGATION_GUARD_REDIRECT+"",ae.NAVIGATION_ABORTED+"",ae.NAVIGATION_CANCELLED+"",ae.NAVIGATION_DUPLICATED+"";function Qt(e,t){return te(new Error,{type:e,[Cl]:!0},t)}function at(e,t){return e instanceof Error&&Cl in e&&(t==null||!!(e.type&t))}const pf=["params","query","hash"];function mf(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of pf)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function gf(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&ns(s)):[r&&ns(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function yf(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=We(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const _f=Symbol(""),Co=Symbol(""),br=Symbol(""),Is=Symbol(""),os=Symbol("");function sn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function At(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,c)=>{const u=p=>{p===!1?c(Qt(ae.NAVIGATION_ABORTED,{from:n,to:t})):p instanceof Error?c(p):hf(p)?c(Qt(ae.NAVIGATION_GUARD_REDIRECT,{from:t,to:p})):(i&&r.enterCallbacks[s]===i&&typeof p=="function"&&i.push(p),l())},a=o(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(a);e.length<3&&(f=f.then(u)),f.catch(p=>c(p))})}function Br(e,t,n,r,s=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(wl(c)){const u=(c.__vccOpts||c)[t];u&&o.push(At(u,n,r,i,l,s))}else{let u=c();o.push(()=>u.then(a=>{if(!a)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=Bu(a)?a.default:a;i.mods[l]=a,i.components[l]=f;const p=(f.__vccOpts||f)[t];return p&&At(p,n,r,i,l,s)()}))}}return o}function bf(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;iXt(u,l))?r.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(u=>Xt(u,c))||s.push(c))}return[n,r,s]}let Ef=()=>location.protocol+"//"+location.host;function Pl(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(i);return l[0]!=="/"&&(l="/"+l),vo(l,"")}return vo(n,e)+r+s}function wf(e,t,n,r){let s=[],o=[],i=null;const l=({state:p})=>{const m=Pl(e,location),g=n.value,b=t.value;let E=0;if(p){if(n.value=m,t.value=p,i&&i===g){i=null;return}E=b?p.position-b.position:0}else r(m);s.forEach(O=>{O(n.value,g,{delta:E,type:rs.pop,direction:E?E>0?jr.forward:jr.back:jr.unknown})})};function c(){i=n.value}function u(p){s.push(p);const m=()=>{const g=s.indexOf(p);g>-1&&s.splice(g,1)};return o.push(m),m}function a(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(te({},p.state,{scroll:_r()}),"")}}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,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?_r():null}}function Sf(e){const{history:t,location:n}=window,r={value:Pl(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.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:Ef()+e+c;try{t[a?"replaceState":"pushState"](u,"",p),s.value=u}catch(m){console.error(m),n[a?"replace":"assign"](p)}}function i(c,u){o(c,te({},t.state,Po(s.value.back,c,s.value.forward,!0),u,{position:s.value.position}),!0),r.value=c}function l(c,u){const a=te({},s.value,t.state,{forward:c,scroll:_r()});o(a.current,a,!0),o(c,te({},Po(r.value,c,null),{position:a.position+1},u),!1),r.value=c}return{location:r,state:s,push:l,replace:i}}function Rf(e){e=of(e);const t=Sf(e),n=wf(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=te({location:"",base:e,go:r,createHref:cf.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function Af(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),Rf(e)}let Nt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var ge=(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})(ge||{});const vf={type:Nt.Static,value:""},Of=/[a-zA-Z0-9_]/;function xf(e){if(!e)return[[]];if(e==="/")return[[vf]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${u}": ${m}`)}let n=ge.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,c,u="",a="";function f(){u&&(n===ge.Static?o.push({type:Nt.Static,value:u}):n===ge.Param||n===ge.ParamRegExp||n===ge.ParamRegExpEnd?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:Nt.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]===Oe.Static+Oe.Segment?1:-1:0}function Nl(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const If={strict:!1,end:!0,sensitive:!1};function Df(e,t,n){const r=Pf(xf(e.path),n),s=te(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function Lf(e,t){const n=[],r=new Map;t=Ao(If,t);function s(f){return r.get(f)}function o(f,p,m){const g=!m,b=Lo(f);b.aliasOf=m&&m.record;const E=Ao(t,f),O=[b];if("alias"in f){const P=typeof f.alias=="string"?[f.alias]:f.alias;for(const M of P)O.push(Lo(te({},b,{components:m?m.record.components:b.components,path:M,aliasOf:m?m.record:b})))}let C,N;for(const P of O){const{path:M}=P;if(p&&M[0]!=="/"){const X=p.record.path,k=X[X.length-1]==="/"?"":"/";P.path=p.record.path+(M&&k+M)}if(C=Df(P,p,E),m?m.alias.push(C):(N=N||C,N!==C&&N.alias.push(C),g&&f.name&&!Fo(C)&&i(f.name)),Il(C)&&c(C),b.children){const X=b.children;for(let k=0;k{i(N)}:yn}function i(f){if(Tl(f)){const p=r.get(f);p&&(r.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&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function c(f){const p=Uf(f,n);n.splice(p,0,f),f.record.name&&!Fo(f)&&r.set(f.record.name,f)}function u(f,p){let m,g={},b,E;if("name"in f&&f.name){if(m=r.get(f.name),!m)throw Qt(ae.MATCHER_NOT_FOUND,{location:f});E=m.record.name,g=te(Do(p.params,m.keys.filter(N=>!N.optional).concat(m.parent?m.parent.keys.filter(N=>N.optional):[]).map(N=>N.name)),f.params&&Do(f.params,m.keys.map(N=>N.name))),b=m.stringify(g)}else if(f.path!=null)b=f.path,m=n.find(N=>N.re.test(b)),m&&(g=m.parse(b),E=m.record.name);else{if(m=p.name?r.get(p.name):n.find(N=>N.re.test(p.path)),!m)throw Qt(ae.MATCHER_NOT_FOUND,{location:f,currentLocation:p});E=m.record.name,g=te({},p.params,f.params),b=m.stringify(g)}const O=[];let C=m;for(;C;)O.unshift(C.record),C=C.parent;return{name:E,path:b,params:g,matched:O,meta:Mf(O)}}e.forEach(f=>o(f));function a(){n.length=0,r.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:a,getRoutes:l,getRecordMatcher:s}}function Do(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function Lo(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Ff(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 Ff(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function Fo(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Mf(e){return e.reduce((t,n)=>te(t,n.meta),{})}function Uf(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;Nl(e,t[o])<0?r=o:n=o+1}const s=jf(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function jf(e){let t=e;for(;t=t.parent;)if(Il(t)&&Nl(e,t)===0)return t}function Il({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Mo(e){const t=ke(br),n=ke(Is),r=Me(()=>{const c=Ot(e.to);return t.resolve(c)}),s=Me(()=>{const{matched:c}=r.value,{length:u}=c,a=c[u-1],f=n.matched;if(!a||!f.length)return-1;const p=f.findIndex(Xt.bind(null,a));if(p>-1)return p;const m=Uo(c[u-2]);return u>1&&Uo(a)===m&&f[f.length-1].path!==m?f.findIndex(Xt.bind(null,c[u-2])):p}),o=Me(()=>s.value>-1&&qf(n.params,r.value.params)),i=Me(()=>s.value>-1&&s.value===n.matched.length-1&&xl(n.params,r.value.params));function l(c={}){if(Vf(c)){const u=t[Ot(e.replace)?"replace":"push"](Ot(e.to)).catch(yn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Me(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function Bf(e){return e.length===1?e[0]:e}const Hf=Os({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=On(Mo(e)),{options:r}=ke(br),s=Me(()=>({[jo(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[jo(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&Bf(t.default(n));return e.custom?o:ml("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),kf=Hf;function Vf(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 qf(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!We(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function Uo(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const jo=(e,t,n)=>e??t??n,$f=Os({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=ke(os),s=Me(()=>e.route||r.value),o=ke(Co,0),i=Me(()=>{let u=Ot(o);const{matched:a}=s.value;let f;for(;(f=a[u])&&!f.components;)u++;return u}),l=Me(()=>s.value.matched[i.value]);Hn(Co,Me(()=>i.value+1)),Hn(_f,l),Hn(os,s);const c=Lt();return fn(()=>[c.value,l.value,e.name],([u,a,f],[p,m,g])=>{a&&(a.instances[f]=u,m&&m!==a&&u&&u===p&&(a.leaveGuards.size||(a.leaveGuards=m.leaveGuards),a.updateGuards.size||(a.updateGuards=m.updateGuards))),u&&a&&(!m||!Xt(a,m)||!p)&&(a.enterCallbacks[f]||[]).forEach(b=>b(u))},{flush:"post"}),()=>{const u=s.value,a=e.name,f=l.value,p=f&&f.components[a];if(!p)return Bo(n.default,{Component:p,route:u});const m=f.props[a],g=m?m===!0?u.params:typeof m=="function"?m(u):m:null,E=ml(p,te({},g,t,{onVnodeUnmounted:O=>{O.component.isUnmounted&&(f.instances[a]=null)},ref:c}));return Bo(n.default,{Component:E,route:u})||E}}});function Bo(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Dl=$f;function Kf(e){const t=Lf(e.routes,e),n=e.parseQuery||gf,r=e.stringifyQuery||To,s=e.history,o=sn(),i=sn(),l=sn(),c=Mc(bt);let u=bt;qt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const a=Mr.bind(null,R=>""+R),f=Mr.bind(null,Yu),p=Mr.bind(null,vn);function m(R,F){let D,j;return Tl(R)?(D=t.getRecordMatcher(R),j=F):j=R,t.addRoute(j,D)}function g(R){const F=t.getRecordMatcher(R);F&&t.removeRoute(F)}function b(){return t.getRoutes().map(R=>R.record)}function E(R){return!!t.getRecordMatcher(R)}function O(R,F){if(F=te({},F||c.value),typeof R=="string"){const y=Ur(n,R,F.path),w=t.resolve({path:y.path},F),A=s.createHref(y.fullPath);return te(y,w,{params:p(w.params),hash:vn(y.hash),redirectedFrom:void 0,href:A})}let D;if(R.path!=null)D=te({},R,{path:Ur(n,R.path,F.path).path});else{const y=te({},R.params);for(const w in y)y[w]==null&&delete y[w];D=te({},R,{params:f(y)}),F.params=f(F.params)}const j=t.resolve(D,F),Q=R.hash||"";j.params=a(p(j.params));const d=tf(r,te({},R,{hash:Ju(Q),path:j.path})),h=s.createHref(d);return te({fullPath:d,hash:Q,query:r===To?yf(R.query):R.query||{}},j,{redirectedFrom:void 0,href:h})}function C(R){return typeof R=="string"?Ur(n,R,c.value.path):te({},R)}function N(R,F){if(u!==R)return Qt(ae.NAVIGATION_CANCELLED,{from:F,to:R})}function P(R){return k(R)}function M(R){return P(te(C(R),{replace:!0}))}function X(R,F){const D=R.matched[R.matched.length-1];if(D&&D.redirect){const{redirect:j}=D;let Q=typeof j=="function"?j(R,F):j;return typeof Q=="string"&&(Q=Q.includes("?")||Q.includes("#")?Q=C(Q):{path:Q},Q.params={}),te({query:R.query,hash:R.hash,params:Q.path!=null?{}:R.params},Q)}}function k(R,F){const D=u=O(R),j=c.value,Q=R.state,d=R.force,h=R.replace===!0,y=X(D,j);if(y)return k(te(C(y),{state:typeof y=="object"?te({},Q,y.state):Q,force:d,replace:h}),F||D);const w=D;w.redirectedFrom=F;let A;return!d&&nf(r,j,D)&&(A=Qt(ae.NAVIGATION_DUPLICATED,{to:w,from:j}),me(j,j,!0,!1)),(A?Promise.resolve(A):ee(w,j)).catch(S=>at(S)?at(S,ae.NAVIGATION_GUARD_REDIRECT)?S:ze(S):z(S,w,j)).then(S=>{if(S){if(at(S,ae.NAVIGATION_GUARD_REDIRECT))return k(te({replace:h},C(S.to),{state:typeof S.to=="object"?te({},Q,S.to.state):Q,force:d}),F||w)}else S=ye(w,j,!0,h,Q);return ue(w,j,S),S})}function V(R,F){const D=N(R,F);return D?Promise.reject(D):Promise.resolve()}function U(R){const F=qe.values().next().value;return F&&typeof F.runWithContext=="function"?F.runWithContext(R):R()}function ee(R,F){let D;const[j,Q,d]=bf(R,F);D=Br(j.reverse(),"beforeRouteLeave",R,F);for(const y of j)y.leaveGuards.forEach(w=>{D.push(At(w,R,F))});const h=V.bind(null,R,F);return D.push(h),He(D).then(()=>{D=[];for(const y of o.list())D.push(At(y,R,F));return D.push(h),He(D)}).then(()=>{D=Br(Q,"beforeRouteUpdate",R,F);for(const y of Q)y.updateGuards.forEach(w=>{D.push(At(w,R,F))});return D.push(h),He(D)}).then(()=>{D=[];for(const y of d)if(y.beforeEnter)if(We(y.beforeEnter))for(const w of y.beforeEnter)D.push(At(w,R,F));else D.push(At(y.beforeEnter,R,F));return D.push(h),He(D)}).then(()=>(R.matched.forEach(y=>y.enterCallbacks={}),D=Br(d,"beforeRouteEnter",R,F,U),D.push(h),He(D))).then(()=>{D=[];for(const y of i.list())D.push(At(y,R,F));return D.push(h),He(D)}).catch(y=>at(y,ae.NAVIGATION_CANCELLED)?y:Promise.reject(y))}function ue(R,F,D){l.list().forEach(j=>U(()=>j(R,F,D)))}function ye(R,F,D,j,Q){const d=N(R,F);if(d)return d;const h=F===bt,y=qt?history.state:{};D&&(j||h?s.replace(R.fullPath,te({scroll:h&&y&&y.scroll},Q)):s.push(R.fullPath,Q)),c.value=R,me(R,F,D,h),ze()}let pe;function Re(){pe||(pe=s.listen((R,F,D)=>{if(!Xe.listening)return;const j=O(R),Q=X(j,Xe.currentRoute.value);if(Q){k(te(Q,{replace:!0,force:!0}),j).catch(yn);return}u=j;const d=c.value;qt&&ff(xo(d.fullPath,D.delta),_r()),ee(j,d).catch(h=>at(h,ae.NAVIGATION_ABORTED|ae.NAVIGATION_CANCELLED)?h:at(h,ae.NAVIGATION_GUARD_REDIRECT)?(k(te(C(h.to),{force:!0}),j).then(y=>{at(y,ae.NAVIGATION_ABORTED|ae.NAVIGATION_DUPLICATED)&&!D.delta&&D.type===rs.pop&&s.go(-1,!1)}).catch(yn),Promise.reject()):(D.delta&&s.go(-D.delta,!1),z(h,j,d))).then(h=>{h=h||ye(j,d,!1),h&&(D.delta&&!at(h,ae.NAVIGATION_CANCELLED)?s.go(-D.delta,!1):D.type===rs.pop&&at(h,ae.NAVIGATION_ABORTED|ae.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),ue(j,d,h)}).catch(yn)}))}let Ve=sn(),J=sn(),K;function z(R,F,D){ze(R);const j=J.list();return j.length?j.forEach(Q=>Q(R,F,D)):console.error(R),Promise.reject(R)}function Be(){return K&&c.value!==bt?Promise.resolve():new Promise((R,F)=>{Ve.add([R,F])})}function ze(R){return K||(K=!R,Re(),Ve.list().forEach(([F,D])=>R?D(R):F()),Ve.reset()),R}function me(R,F,D,j){const{scrollBehavior:Q}=e;if(!qt||!Q)return Promise.resolve();const d=!D&&df(xo(R.fullPath,0))||(j||!D)&&history.state&&history.state.scroll||null;return Rs().then(()=>Q(R,F,d)).then(h=>h&&uf(h)).catch(h=>z(h,R,F))}const fe=R=>s.go(R);let Je;const qe=new Set,Xe={currentRoute:c,listening:!0,addRoute:m,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:E,getRoutes:b,resolve:O,options:e,push:P,replace:M,go:fe,back:()=>fe(-1),forward:()=>fe(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:J.add,isReady:Be,install(R){R.component("RouterLink",kf),R.component("RouterView",Dl),R.config.globalProperties.$router=Xe,Object.defineProperty(R.config.globalProperties,"$route",{enumerable:!0,get:()=>Ot(c)}),qt&&!Je&&c.value===bt&&(Je=!0,P(s.location).catch(j=>{}));const F={};for(const j in bt)Object.defineProperty(F,j,{get:()=>c.value[j],enumerable:!0});R.provide(br,Xe),R.provide(Is,Ci(F)),R.provide(os,c);const D=R.unmount;qe.add(R),R.unmount=function(){qe.delete(R),qe.size<1&&(u=bt,pe&&pe(),pe=null,c.value=bt,Je=!1,K=!1),D()}}};function He(R){return R.reduce((F,D)=>F.then(()=>U(D)),Promise.resolve())}return Xe}function Lh(){return ke(br)}function Fh(e){return ke(Is)}function Ll(e,t){return function(){return e.apply(t,arguments)}}const{toString:Wf}=Object.prototype,{getPrototypeOf:Ds}=Object,{iterator:Er,toStringTag:Fl}=Symbol,wr=(e=>t=>{const n=Wf.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ge=e=>(e=e.toLowerCase(),t=>wr(t)===e),Sr=e=>t=>typeof t===e,{isArray:Zt}=Array,Yt=Sr("undefined");function Cn(e){return e!==null&&!Yt(e)&&e.constructor!==null&&!Yt(e.constructor)&&Ie(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Ml=Ge("ArrayBuffer");function Gf(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Ml(e.buffer),t}const zf=Sr("string"),Ie=Sr("function"),Ul=Sr("number"),Pn=e=>e!==null&&typeof e=="object",Jf=e=>e===!0||e===!1,Kn=e=>{if(wr(e)!=="object")return!1;const t=Ds(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Fl in e)&&!(Er in e)},Xf=e=>{if(!Pn(e)||Cn(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},Qf=Ge("Date"),Yf=Ge("File"),Zf=Ge("Blob"),ed=Ge("FileList"),td=e=>Pn(e)&&Ie(e.pipe),nd=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Ie(e.append)&&((t=wr(e))==="formdata"||t==="object"&&Ie(e.toString)&&e.toString()==="[object FormData]"))},rd=Ge("URLSearchParams"),[sd,od,id,ld]=["ReadableStream","Request","Response","Headers"].map(Ge),cd=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Nn(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),Zt(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const It=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Bl=e=>!Yt(e)&&e!==It;function is(){const{caseless:e,skipUndefined:t}=Bl(this)&&this||{},n={},r=(s,o)=>{const i=e&&jl(n,o)||o;Kn(n[i])&&Kn(s)?n[i]=is(n[i],s):Kn(s)?n[i]=is({},s):Zt(s)?n[i]=s.slice():(!t||!Yt(s))&&(n[i]=s)};for(let s=0,o=arguments.length;s(Nn(t,(s,o)=>{n&&Ie(s)?e[o]=Ll(s,n):e[o]=s},{allOwnKeys:r}),e),ud=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),fd=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},dd=(e,t,n,r)=>{let s,o,i;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&Ds(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},hd=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},pd=e=>{if(!e)return null;if(Zt(e))return e;let t=e.length;if(!Ul(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},md=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Ds(Uint8Array)),gd=(e,t)=>{const r=(e&&e[Er]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},yd=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},_d=Ge("HTMLFormElement"),bd=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),Ho=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Ed=Ge("RegExp"),Hl=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Nn(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},wd=e=>{Hl(e,(t,n)=>{if(Ie(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Ie(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Sd=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return Zt(e)?r(e):r(String(e).split(t)),n},Rd=()=>{},Ad=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function vd(e){return!!(e&&Ie(e.append)&&e[Fl]==="FormData"&&e[Er])}const Od=e=>{const t=new Array(10),n=(r,s)=>{if(Pn(r)){if(t.indexOf(r)>=0)return;if(Cn(r))return r;if(!("toJSON"in r)){t[s]=r;const o=Zt(r)?[]:{};return Nn(r,(i,l)=>{const c=n(i,s+1);!Yt(c)&&(o[l]=c)}),t[s]=void 0,o}}return r};return n(e,0)},xd=Ge("AsyncFunction"),Td=e=>e&&(Pn(e)||Ie(e))&&Ie(e.then)&&Ie(e.catch),kl=((e,t)=>e?setImmediate:t?((n,r)=>(It.addEventListener("message",({source:s,data:o})=>{s===It&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),It.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Ie(It.postMessage)),Cd=typeof queueMicrotask<"u"?queueMicrotask.bind(It):typeof process<"u"&&process.nextTick||kl,Pd=e=>e!=null&&Ie(e[Er]),_={isArray:Zt,isArrayBuffer:Ml,isBuffer:Cn,isFormData:nd,isArrayBufferView:Gf,isString:zf,isNumber:Ul,isBoolean:Jf,isObject:Pn,isPlainObject:Kn,isEmptyObject:Xf,isReadableStream:sd,isRequest:od,isResponse:id,isHeaders:ld,isUndefined:Yt,isDate:Qf,isFile:Yf,isBlob:Zf,isRegExp:Ed,isFunction:Ie,isStream:td,isURLSearchParams:rd,isTypedArray:md,isFileList:ed,forEach:Nn,merge:is,extend:ad,trim:cd,stripBOM:ud,inherits:fd,toFlatObject:dd,kindOf:wr,kindOfTest:Ge,endsWith:hd,toArray:pd,forEachEntry:gd,matchAll:yd,isHTMLForm:_d,hasOwnProperty:Ho,hasOwnProp:Ho,reduceDescriptors:Hl,freezeMethods:wd,toObjectSet:Sd,toCamelCase:bd,noop:Rd,toFiniteNumber:Ad,findKey:jl,global:It,isContextDefined:Bl,isSpecCompliantForm:vd,toJSONObject:Od,isAsyncFn:xd,isThenable:Td,setImmediate:kl,asap:Cd,isIterable:Pd};function G(e,t,n,r,s){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),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}_.inherits(G,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:_.toJSONObject(this.config),code:this.code,status:this.status}}});const Vl=G.prototype,ql={};["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=>{ql[e]={value:e}});Object.defineProperties(G,ql);Object.defineProperty(Vl,"isAxiosError",{value:!0});G.from=(e,t,n,r,s,o)=>{const i=Object.create(Vl);_.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 G.call(i,l,c,n,r,s),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 Nd=null;function ls(e){return _.isPlainObject(e)||_.isArray(e)}function $l(e){return _.endsWith(e,"[]")?e.slice(0,-2):e}function ko(e,t,n){return e?e.concat(t).map(function(s,o){return s=$l(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function Id(e){return _.isArray(e)&&!e.some(ls)}const Dd=_.toFlatObject(_,{},null,function(t){return/^is[A-Z]/.test(t)});function Rr(e,t,n){if(!_.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=_.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(b,E){return!_.isUndefined(E[b])});const r=n.metaTokens,s=n.visitor||a,o=n.dots,i=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&_.isSpecCompliantForm(t);if(!_.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(_.isDate(g))return g.toISOString();if(_.isBoolean(g))return g.toString();if(!c&&_.isBlob(g))throw new G("Blob is not supported. Use a Buffer instead.");return _.isArrayBuffer(g)||_.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function a(g,b,E){let O=g;if(g&&!E&&typeof g=="object"){if(_.endsWith(b,"{}"))b=r?b:b.slice(0,-2),g=JSON.stringify(g);else if(_.isArray(g)&&Id(g)||(_.isFileList(g)||_.endsWith(b,"[]"))&&(O=_.toArray(g)))return b=$l(b),O.forEach(function(N,P){!(_.isUndefined(N)||N===null)&&t.append(i===!0?ko([b],P,o):i===null?b:b+"[]",u(N))}),!1}return ls(g)?!0:(t.append(ko(E,b,o),u(g)),!1)}const f=[],p=Object.assign(Dd,{defaultVisitor:a,convertValue:u,isVisitable:ls});function m(g,b){if(!_.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+b.join("."));f.push(g),_.forEach(g,function(O,C){(!(_.isUndefined(O)||O===null)&&s.call(t,O,_.isString(C)?C.trim():C,b,p))===!0&&m(O,b?b.concat(C):[C])}),f.pop()}}if(!_.isObject(e))throw new TypeError("data must be an object");return m(e),t}function Vo(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Ls(e,t){this._pairs=[],e&&Rr(e,this,t)}const Kl=Ls.prototype;Kl.append=function(t,n){this._pairs.push([t,n])};Kl.toString=function(t){const n=t?function(r){return t.call(this,r,Vo)}:Vo;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Ld(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Wl(e,t,n){if(!t)return e;const r=n&&n.encode||Ld;_.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=_.isURLSearchParams(t)?t.toString():new Ls(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class qo{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){_.forEach(this.handlers,function(r){r!==null&&t(r)})}}const Gl={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Fd=typeof URLSearchParams<"u"?URLSearchParams:Ls,Md=typeof FormData<"u"?FormData:null,Ud=typeof Blob<"u"?Blob:null,jd={isBrowser:!0,classes:{URLSearchParams:Fd,FormData:Md,Blob:Ud},protocols:["http","https","file","blob","url","data"]},Fs=typeof window<"u"&&typeof document<"u",cs=typeof navigator=="object"&&navigator||void 0,Bd=Fs&&(!cs||["ReactNative","NativeScript","NS"].indexOf(cs.product)<0),Hd=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",kd=Fs&&window.location.href||"http://localhost",Vd=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Fs,hasStandardBrowserEnv:Bd,hasStandardBrowserWebWorkerEnv:Hd,navigator:cs,origin:kd},Symbol.toStringTag,{value:"Module"})),Ee={...Vd,...jd};function qd(e,t){return Rr(e,new Ee.classes.URLSearchParams,{visitor:function(n,r,s,o){return Ee.isNode&&_.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function $d(e){return _.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Kd(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&_.isArray(s)?s.length:i,c?(_.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!l):((!s[i]||!_.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&_.isArray(s[i])&&(s[i]=Kd(s[i])),!l)}if(_.isFormData(e)&&_.isFunction(e.entries)){const n={};return _.forEachEntry(e,(r,s)=>{t($d(r),s,n,0)}),n}return null}function Wd(e,t,n){if(_.isString(e))try{return(t||JSON.parse)(e),_.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const In={transitional:Gl,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=_.isObject(t);if(o&&_.isHTMLForm(t)&&(t=new FormData(t)),_.isFormData(t))return s?JSON.stringify(zl(t)):t;if(_.isArrayBuffer(t)||_.isBuffer(t)||_.isStream(t)||_.isFile(t)||_.isBlob(t)||_.isReadableStream(t))return t;if(_.isArrayBufferView(t))return t.buffer;if(_.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return qd(t,this.formSerializer).toString();if((l=_.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return Rr(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),Wd(t)):t}],transformResponse:[function(t){const n=this.transitional||In.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(_.isResponse(t)||_.isReadableStream(t))return t;if(t&&_.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(i)throw l.name==="SyntaxError"?G.from(l,G.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:Ee.classes.FormData,Blob:Ee.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};_.forEach(["delete","get","head","post","put","patch"],e=>{In.headers[e]={}});const Gd=_.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"]),zd=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&Gd[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},$o=Symbol("internals");function on(e){return e&&String(e).trim().toLowerCase()}function Wn(e){return e===!1||e==null?e:_.isArray(e)?e.map(Wn):String(e)}function Jd(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const Xd=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Hr(e,t,n,r,s){if(_.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!_.isString(t)){if(_.isString(r))return t.indexOf(r)!==-1;if(_.isRegExp(r))return r.test(t)}}function Qd(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Yd(e,t){const n=_.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let De=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(l,c,u){const a=on(c);if(!a)throw new Error("header name must be a non-empty string");const f=_.findKey(s,a);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||c]=Wn(l))}const i=(l,c)=>_.forEach(l,(u,a)=>o(u,a,c));if(_.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(_.isString(t)&&(t=t.trim())&&!Xd(t))i(zd(t),n);else if(_.isObject(t)&&_.isIterable(t)){let l={},c,u;for(const a of t){if(!_.isArray(a))throw TypeError("Object iterator must return a key-value pair");l[u=a[0]]=(c=l[u])?_.isArray(c)?[...c,a[1]]:[c,a[1]]:a[1]}i(l,n)}else t!=null&&o(n,t,r);return this}get(t,n){if(t=on(t),t){const r=_.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return Jd(s);if(_.isFunction(n))return n.call(this,s,r);if(_.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=on(t),t){const r=_.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Hr(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=on(i),i){const l=_.findKey(r,i);l&&(!n||Hr(r,r[l],l,n))&&(delete r[l],s=!0)}}return _.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||Hr(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return _.forEach(this,(s,o)=>{const i=_.findKey(r,o);if(i){n[i]=Wn(s),delete n[o];return}const l=t?Qd(o):String(o).trim();l!==o&&delete n[o],n[l]=Wn(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return _.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&_.isArray(r)?r.join(", "):r)}),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 r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[$o]=this[$o]={accessors:{}}).accessors,s=this.prototype;function o(i){const l=on(i);r[l]||(Yd(s,i),r[l]=!0)}return _.isArray(t)?t.forEach(o):o(t),this}};De.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);_.reduceDescriptors(De.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});_.freezeMethods(De);function kr(e,t){const n=this||In,r=t||n,s=De.from(r.headers);let o=r.data;return _.forEach(e,function(l){o=l.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function Jl(e){return!!(e&&e.__CANCEL__)}function en(e,t,n){G.call(this,e??"canceled",G.ERR_CANCELED,t,n),this.name="CanceledError"}_.inherits(en,G,{__CANCEL__:!0});function Xl(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new G("Request failed with status code "+n.status,[G.ERR_BAD_REQUEST,G.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function Zd(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function eh(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),a=r[o];i||(i=u),n[s]=c,r[s]=u;let f=o,p=0;for(;f!==s;)p+=n[f++],f=f%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i{n=a,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const a=Date.now(),f=a-n;f>=r?i(u,a):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-f)))},()=>s&&i(s)]}const sr=(e,t,n=3)=>{let r=0;const s=eh(50,250);return th(o=>{const i=o.loaded,l=o.lengthComputable?o.total:void 0,c=i-r,u=s(c),a=i<=l;r=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)},Ko=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Wo=e=>(...t)=>_.asap(()=>e(...t)),nh=Ee.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Ee.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Ee.origin),Ee.navigator&&/(msie|trident)/i.test(Ee.navigator.userAgent)):()=>!0,rh=Ee.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];_.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),_.isString(r)&&l.push(`path=${r}`),_.isString(s)&&l.push(`domain=${s}`),o===!0&&l.push("secure"),_.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 sh(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function oh(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Ql(e,t,n){let r=!sh(t);return e&&(r||n==!1)?oh(e,t):t}const Go=e=>e instanceof De?{...e}:e;function Ut(e,t){t=t||{};const n={};function r(u,a,f,p){return _.isPlainObject(u)&&_.isPlainObject(a)?_.merge.call({caseless:p},u,a):_.isPlainObject(a)?_.merge({},a):_.isArray(a)?a.slice():a}function s(u,a,f,p){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u,f,p)}else return r(u,a,f,p)}function o(u,a){if(!_.isUndefined(a))return r(void 0,a)}function i(u,a){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u)}else return r(void 0,a)}function l(u,a,f){if(f in t)return r(u,a);if(f in e)return r(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)=>s(Go(u),Go(a),f,!0)};return _.forEach(Object.keys({...e,...t}),function(a){const f=c[a]||s,p=f(e[a],t[a],a);_.isUndefined(p)&&f!==l||(n[a]=p)}),n}const Yl=e=>{const t=Ut({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:l}=t;if(t.headers=i=De.from(i),t.url=Wl(Ql(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&i.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),_.isFormData(n)){if(Ee.hasStandardBrowserEnv||Ee.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(_.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(Ee.hasStandardBrowserEnv&&(r&&_.isFunction(r)&&(r=r(t)),r||r!==!1&&nh(t.url))){const c=s&&o&&rh.read(o);c&&i.set(s,c)}return t},ih=typeof XMLHttpRequest<"u",lh=ih&&function(e){return new Promise(function(n,r){const s=Yl(e);let o=s.data;const i=De.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,a,f,p,m,g;function b(){m&&m(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(a),s.signal&&s.signal.removeEventListener("abort",a)}let E=new XMLHttpRequest;E.open(s.method.toUpperCase(),s.url,!0),E.timeout=s.timeout;function O(){if(!E)return;const N=De.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),M={data:!l||l==="text"||l==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:N,config:e,request:E};Xl(function(k){n(k),b()},function(k){r(k),b()},M),E=null}"onloadend"in E?E.onloadend=O:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.indexOf("file:")===0)||setTimeout(O)},E.onabort=function(){E&&(r(new G("Request aborted",G.ECONNABORTED,e,E)),E=null)},E.onerror=function(P){const M=P&&P.message?P.message:"Network Error",X=new G(M,G.ERR_NETWORK,e,E);X.event=P||null,r(X),E=null},E.ontimeout=function(){let P=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const M=s.transitional||Gl;s.timeoutErrorMessage&&(P=s.timeoutErrorMessage),r(new G(P,M.clarifyTimeoutError?G.ETIMEDOUT:G.ECONNABORTED,e,E)),E=null},o===void 0&&i.setContentType(null),"setRequestHeader"in E&&_.forEach(i.toJSON(),function(P,M){E.setRequestHeader(M,P)}),_.isUndefined(s.withCredentials)||(E.withCredentials=!!s.withCredentials),l&&l!=="json"&&(E.responseType=s.responseType),u&&([p,g]=sr(u,!0),E.addEventListener("progress",p)),c&&E.upload&&([f,m]=sr(c),E.upload.addEventListener("progress",f),E.upload.addEventListener("loadend",m)),(s.cancelToken||s.signal)&&(a=N=>{E&&(r(!N||N.type?new en(null,e,E):N),E.abort(),E=null)},s.cancelToken&&s.cancelToken.subscribe(a),s.signal&&(s.signal.aborted?a():s.signal.addEventListener("abort",a)));const C=Zd(s.url);if(C&&Ee.protocols.indexOf(C)===-1){r(new G("Unsupported protocol "+C+":",G.ERR_BAD_REQUEST,e));return}E.send(o||null)})},ch=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,l();const a=u instanceof Error?u:this.reason;r.abort(a instanceof G?a:new en(a instanceof Error?a.message:a))}};let i=t&&setTimeout(()=>{i=null,o(new G(`timeout ${t} of ms exceeded`,G.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}=r;return c.unsubscribe=()=>_.asap(l),c}},ah=function*(e,t){let n=e.byteLength;if(n{const s=uh(e,t);let o=0,i,l=c=>{i||(i=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:a}=await s.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),s.return()}},{highWaterMark:2})},Jo=64*1024,{isFunction:Un}=_,dh=(({Request:e,Response:t})=>({Request:e,Response:t}))(_.global),{ReadableStream:Xo,TextEncoder:Qo}=_.global,Yo=(e,...t)=>{try{return!!e(...t)}catch{return!1}},hh=e=>{e=_.merge.call({skipUndefined:!0},dh,e);const{fetch:t,Request:n,Response:r}=e,s=t?Un(t):typeof fetch=="function",o=Un(n),i=Un(r);if(!s)return!1;const l=s&&Un(Xo),c=s&&(typeof Qo=="function"?(g=>b=>g.encode(b))(new Qo):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=o&&l&&Yo(()=>{let g=!1;const b=new n(Ee.origin,{body:new Xo,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!b}),a=i&&l&&Yo(()=>_.isReadableStream(new r("").body)),f={stream:a&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(b,E)=>{let O=b&&b[g];if(O)return O.call(b);throw new G(`Response type '${g}' is not supported`,G.ERR_NOT_SUPPORT,E)})});const p=async g=>{if(g==null)return 0;if(_.isBlob(g))return g.size;if(_.isSpecCompliantForm(g))return(await new n(Ee.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(_.isArrayBufferView(g)||_.isArrayBuffer(g))return g.byteLength;if(_.isURLSearchParams(g)&&(g=g+""),_.isString(g))return(await c(g)).byteLength},m=async(g,b)=>{const E=_.toFiniteNumber(g.getContentLength());return E??p(b)};return async g=>{let{url:b,method:E,data:O,signal:C,cancelToken:N,timeout:P,onDownloadProgress:M,onUploadProgress:X,responseType:k,headers:V,withCredentials:U="same-origin",fetchOptions:ee}=Yl(g),ue=t||fetch;k=k?(k+"").toLowerCase():"text";let ye=ch([C,N&&N.toAbortSignal()],P),pe=null;const Re=ye&&ye.unsubscribe&&(()=>{ye.unsubscribe()});let Ve;try{if(X&&u&&E!=="get"&&E!=="head"&&(Ve=await m(V,O))!==0){let me=new n(b,{method:"POST",body:O,duplex:"half"}),fe;if(_.isFormData(O)&&(fe=me.headers.get("content-type"))&&V.setContentType(fe),me.body){const[Je,qe]=Ko(Ve,sr(Wo(X)));O=zo(me.body,Jo,Je,qe)}}_.isString(U)||(U=U?"include":"omit");const J=o&&"credentials"in n.prototype,K={...ee,signal:ye,method:E.toUpperCase(),headers:V.normalize().toJSON(),body:O,duplex:"half",credentials:J?U:void 0};pe=o&&new n(b,K);let z=await(o?ue(pe,ee):ue(b,K));const Be=a&&(k==="stream"||k==="response");if(a&&(M||Be&&Re)){const me={};["status","statusText","headers"].forEach(Xe=>{me[Xe]=z[Xe]});const fe=_.toFiniteNumber(z.headers.get("content-length")),[Je,qe]=M&&Ko(fe,sr(Wo(M),!0))||[];z=new r(zo(z.body,Jo,Je,()=>{qe&&qe(),Re&&Re()}),me)}k=k||"text";let ze=await f[_.findKey(f,k)||"text"](z,g);return!Be&&Re&&Re(),await new Promise((me,fe)=>{Xl(me,fe,{data:ze,headers:De.from(z.headers),status:z.status,statusText:z.statusText,config:g,request:pe})})}catch(J){throw Re&&Re(),J&&J.name==="TypeError"&&/Load failed|fetch/i.test(J.message)?Object.assign(new G("Network Error",G.ERR_NETWORK,g,pe),{cause:J.cause||J}):G.from(J,J&&J.code,g,pe)}}},ph=new Map,Zl=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,l=i,c,u,a=ph;for(;l--;)c=o[l],u=a.get(c),u===void 0&&a.set(c,u=l?new Map:hh(t)),a=u;return u};Zl();const Ms={http:Nd,xhr:lh,fetch:{get:Zl}};_.forEach(Ms,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Zo=e=>`- ${e}`,mh=e=>_.isFunction(e)||e===null||e===!1;function gh(e,t){e=_.isArray(e)?e:[e];const{length:n}=e;let r,s;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(Zo).join(` +`):" "+Zo(i[0]):"as no adapter specified";throw new G("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const ec={getAdapter:gh,adapters:Ms};function Vr(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new en(null,e)}function ei(e){return Vr(e),e.headers=De.from(e.headers),e.data=kr.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),ec.getAdapter(e.adapter||In.adapter,e)(e).then(function(r){return Vr(e),r.data=kr.call(e,e.transformResponse,r),r.headers=De.from(r.headers),r},function(r){return Jl(r)||(Vr(e),r&&r.response&&(r.response.data=kr.call(e,e.transformResponse,r.response),r.response.headers=De.from(r.response.headers))),Promise.reject(r)})}const tc="1.13.2",Ar={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Ar[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const ti={};Ar.transitional=function(t,n,r){function s(o,i){return"[Axios v"+tc+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,l)=>{if(t===!1)throw new G(s(i," has been removed"+(n?" in "+n:"")),G.ERR_DEPRECATED);return n&&!ti[i]&&(ti[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,l):!0}};Ar.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function yh(e,t,n){if(typeof e!="object")throw new G("options must be an object",G.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const l=e[o],c=l===void 0||i(l,o,e);if(c!==!0)throw new G("option "+o+" must be "+c,G.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new G("Unknown option "+o,G.ERR_BAD_OPTION)}}const Gn={assertOptions:yh,validators:Ar},nt=Gn.validators;let Mt=class{constructor(t){this.defaults=t||{},this.interceptors={request:new qo,response:new qo}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Ut(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&Gn.assertOptions(r,{silentJSONParsing:nt.transitional(nt.boolean),forcedJSONParsing:nt.transitional(nt.boolean),clarifyTimeoutError:nt.transitional(nt.boolean)},!1),s!=null&&(_.isFunction(s)?n.paramsSerializer={serialize:s}:Gn.assertOptions(s,{encode:nt.function,serialize:nt.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Gn.assertOptions(n,{baseUrl:nt.spelling("baseURL"),withXsrfToken:nt.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&_.merge(o.common,o[n.method]);o&&_.forEach(["delete","get","head","post","put","patch","common"],g=>{delete o[g]}),n.headers=De.concat(i,o);const l=[];let c=!0;this.interceptors.request.forEach(function(b){typeof b.runWhen=="function"&&b.runWhen(n)===!1||(c=c&&b.synchronous,l.unshift(b.fulfilled,b.rejected))});const u=[];this.interceptors.response.forEach(function(b){u.push(b.fulfilled,b.rejected)});let a,f=0,p;if(!c){const g=[ei.bind(this),void 0];for(g.unshift(...l),g.push(...u),p=g.length,a=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(l=>{r.subscribe(l),o=l}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,l){r.reason||(r.reason=new en(o,i,l),n(r.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=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new nc(function(s){t=s}),cancel:t}}};function bh(e){return function(n){return e.apply(null,n)}}function Eh(e){return _.isObject(e)&&e.isAxiosError===!0}const as={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(as).forEach(([e,t])=>{as[t]=e});function rc(e){const t=new Mt(e),n=Ll(Mt.prototype.request,t);return _.extend(n,Mt.prototype,t,{allOwnKeys:!0}),_.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return rc(Ut(e,s))},n}const he=rc(In);he.Axios=Mt;he.CanceledError=en;he.CancelToken=_h;he.isCancel=Jl;he.VERSION=tc;he.toFormData=Rr;he.AxiosError=G;he.Cancel=he.CanceledError;he.all=function(t){return Promise.all(t)};he.spread=bh;he.isAxiosError=Eh;he.mergeConfig=Ut;he.AxiosHeaders=De;he.formToJSON=e=>zl(_.isHTMLForm(e)?new FormData(e):e);he.getAdapter=ec.getAdapter;he.HttpStatusCode=as;he.default=he;const{Axios:jh,AxiosError:Bh,CanceledError:Hh,isCancel:kh,CancelToken:Vh,VERSION:qh,all:$h,Cancel:Kh,isAxiosError:Wh,spread:Gh,toFormData:zh,AxiosHeaders:Jh,HttpStatusCode:Xh,formToJSON:Qh,getAdapter:Yh,mergeConfig:Zh}=he,_n=he.create({baseURL:"",timeout:3e4,withCredentials:!0});_n.interceptors.request.use(e=>e,e=>Promise.reject(e));_n.interceptors.response.use(e=>e.data,e=>{e.response?.status===401&&(window.location.hash="#/login");const t=e.response?.data?e.response.data.detail||e.response.data.message:e.message;return Promise.reject(new Error(t||"请求失败"))});const jn={login:e=>{const t=new URLSearchParams;return t.append("admin_key",e.password),_n.post("/login",t,{headers:{"Content-Type":"application/x-www-form-urlencoded"}})},logout:()=>_n.post("/logout"),checkAuth:()=>_n.get("/admin/health")},wh=Mu("auth",()=>{const e=Lt(!1),t=Lt(!1),n=Lt(0),r=1e4;let s=null;async function o(c){t.value=!0;try{return await jn.login({password:c}),await jn.checkAuth(),e.value=!0,n.value=Date.now(),!0}catch(u){throw e.value=!1,u}finally{t.value=!1}}async function i(){try{await jn.logout()}finally{e.value=!1,n.value=0}}async function l(){const c=Date.now();if(e.value&&c-n.value(await jn.checkAuth(),e.value=!0,!0))(),await s}catch{return e.value=!1,!1}finally{n.value=Date.now(),s=null}}return{isLoggedIn:e,isLoading:t,login:o,logout:i,checkAuth:l}}),sc=Kf({history:Af("/"),routes:[{path:"/public/uptime",name:"public-uptime",component:()=>tt(()=>import("./PublicUptime-DsxFW7_H.js"),__vite__mapDeps([0,1])),meta:{requiresAuth:!1}},{path:"/public/logs",name:"public-logs",component:()=>tt(()=>import("./PublicLogs-CoBk2Owz.js"),[]),meta:{requiresAuth:!1}},{path:"/login",name:"login",component:()=>tt(()=>import("./Login-CDlvpJj-.js"),[]),meta:{requiresAuth:!1}},{path:"/",component:()=>tt(()=>import("./AppShell-78CtCTQC.js"),__vite__mapDeps([2,3,4,5])),meta:{requiresAuth:!0},children:[{path:"",name:"dashboard",component:()=>tt(()=>import("./Dashboard-BhMzfqb7.js"),__vite__mapDeps([6,7]))},{path:"accounts",name:"accounts",component:()=>tt(()=>import("./Accounts-JKhKShMC.js"),__vite__mapDeps([8,9,10,4,5,7]))},{path:"settings",name:"settings",component:()=>tt(()=>import("./Settings-B0lzmwzl.js"),__vite__mapDeps([11,3,9,10]))},{path:"logs",name:"logs",component:()=>tt(()=>import("./Logs-DOuqT7BC.js"),__vite__mapDeps([12,9,4]))},{path:"monitor",name:"monitor",component:()=>tt(()=>import("./Monitor-B1aYbSP1.js"),__vite__mapDeps([13,1]))},{path:"docs",name:"docs",component:()=>tt(()=>import("./Docs-CIarDU0f.js"),[])}]}]});sc.beforeEach(async e=>{const t=wh();if(e.meta.requiresAuth&&!await t.checkAuth())return{name:"login"};if(e.name==="login"&&t.isLoggedIn)return{name:"dashboard"}});const Sh=Os({__name:"App",setup(e){return(t,n)=>(er(),nr(Ot(Dl)))}}),Us=xu(Sh),Rh=Pu();Us.use(Rh);Us.use(sc);Us.mount("#app");export{Xc as A,Dl as B,Mu as C,Dh as D,xh as E,Fe as F,Rs as G,On as H,kf as R,vh as T,fl as a,Ph as b,Th as c,Os as d,er as e,Wa as f,_n as g,Lt as h,Me as i,fa as j,ps as k,wh as l,Ah as m,ms as n,ca as o,Lh as p,Fh as q,Oh as r,fn as s,mc as t,Ot as u,Nh as v,Ih as w,Ce as x,nr as y,Ch as z}; diff --git a/static/assets/index-CDbQWWUi.js b/static/assets/index-CDbQWWUi.js new file mode 100644 index 0000000000000000000000000000000000000000..1ce4e806fbbd5bf6f86bcea8728a20e34de963f5 --- /dev/null +++ b/static/assets/index-CDbQWWUi.js @@ -0,0 +1,7 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PublicUptime-L_oTuMgV.js","assets/useUptimeStatus-BhuHuhDk.js","assets/AppShell-5WTn-3Ed.js","assets/settings-CqbT_C8Q.js","assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-BA1J4R7-.js","assets/useConfirmDialog-qOidKSEY.js","assets/Dashboard-DmuyjUdf.js","assets/HelpTip.vue_vue_type_script_setup_true_lang-Cw2hnECN.js","assets/Accounts-DW_IBG7n.js","assets/SelectMenu.vue_vue_type_script_setup_true_lang-DebMUA1u.js","assets/Checkbox.vue_vue_type_script_setup_true_lang-B6kSOS_e.js","assets/Settings-DKLaTN3U.js","assets/Logs-DtASF2GN.js","assets/Monitor-DlXrjsV6.js"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function us(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const se={},$t=[],ot=()=>{},ni=()=>!1,or=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),fs=e=>e.startsWith("onUpdate:"),Se=Object.assign,ds=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},oc=Object.prototype.hasOwnProperty,ne=(e,t)=>oc.call(e,t),q=Array.isArray,Kt=e=>ir(e)==="[object Map]",ri=e=>ir(e)==="[object Set]",W=e=>typeof e=="function",de=e=>typeof e=="string",yt=e=>typeof e=="symbol",le=e=>e!==null&&typeof e=="object",si=e=>(le(e)||W(e))&&W(e.then)&&W(e.catch),oi=Object.prototype.toString,ir=e=>oi.call(e),ic=e=>ir(e).slice(8,-1),ii=e=>ir(e)==="[object Object]",lr=e=>de(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,cn=us(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),cr=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},lc=/-\w/g,xt=cr(e=>e.replace(lc,t=>t.slice(1).toUpperCase())),cc=/\B([A-Z])/g,jt=cr(e=>e.replace(cc,"-$1").toLowerCase()),li=cr(e=>e.charAt(0).toUpperCase()+e.slice(1)),vr=cr(e=>e?`on${li(e)}`:""),vt=(e,t)=>!Object.is(e,t),Bn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},hs=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let ks;const ar=()=>ks||(ks=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function ps(e){if(q(e)){const t={};for(let n=0;n{if(n){const r=n.split(uc);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function ms(e){let t="";if(de(e))t=e;else if(q(e))for(let n=0;n!!(e&&e.__v_isRef===!0),mc=e=>de(e)?e:e==null?"":q(e)||le(e)&&(e.toString===oi||!W(e.toString))?ui(e)?mc(e.value):JSON.stringify(e,fi,2):String(e),fi=(e,t)=>ui(t)?fi(e,t.value):Kt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[Or(r,o)+" =>"]=s,n),{})}:ri(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Or(n))}:yt(t)?Or(t):le(t)&&!q(t)&&!ii(t)?String(t):t,Or=(e,t="")=>{var n;return yt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let _e;class di{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=_e,!t&&_e&&(this.index=(_e.scopes||(_e.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&&(_e=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if(un){let t=un;for(un=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;an;){let t=an;for(an=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function _i(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function bi(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),_s(r),yc(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function qr(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===bn)||(e.globalVersion=bn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!qr(e))))return;e.flags|=2;const t=e.dep,n=ie,r=$e;ie=e,$e=!0;try{_i(e);const s=e.fn(e._value);(t.version===0||vt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{ie=n,$e=r,bi(e),e.flags&=-3}}function _s(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)_s(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function yc(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 wi=[];function ht(){wi.push($e),$e=!1}function pt(){const e=wi.pop();$e=e===void 0?!0:e}function Vs(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ie;ie=void 0;try{t()}finally{ie=n}}}let bn=0;class _c{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 bs{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!ie||!$e||ie===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ie)n=this.activeLink=new _c(ie,this),ie.deps?(n.prevDep=ie.depsTail,ie.depsTail.nextDep=n,ie.depsTail=n):ie.deps=ie.depsTail=n,Si(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=ie.depsTail,n.nextDep=void 0,ie.depsTail.nextDep=n,ie.depsTail=n,ie.deps===n&&(ie.deps=r)}return n}trigger(t){this.version++,bn++,this.notify(t)}notify(t){gs();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ys()}}}function Si(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Si(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const zn=new WeakMap,Dt=Symbol(""),$r=Symbol(""),En=Symbol("");function be(e,t,n){if($e&&ie){let r=zn.get(e);r||zn.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new bs),s.map=r,s.key=n),s.track()}}function ft(e,t,n,r,s,o){const i=zn.get(e);if(!i){bn++;return}const l=c=>{c&&c.trigger()};if(gs(),t==="clear")i.forEach(l);else{const c=q(e),u=c&&lr(n);if(c&&n==="length"){const a=Number(r);i.forEach((f,p)=>{(p==="length"||p===En||!yt(p)&&p>=a)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(En)),t){case"add":c?u&&l(i.get("length")):(l(i.get(Dt)),Kt(e)&&l(i.get($r)));break;case"delete":c||(l(i.get(Dt)),Kt(e)&&l(i.get($r)));break;case"set":Kt(e)&&l(i.get(Dt));break}}ys()}function bc(e,t){const n=zn.get(e);return n&&n.get(t)}function Bt(e){const t=Z(e);return t===e?t:(be(t,"iterate",En),je(e)?t:t.map(Ke))}function ur(e){return be(e=Z(e),"iterate",En),e}function wt(e,t){return mt(e)?it(e)?zt(Ke(t)):zt(t):Ke(t)}const Ec={__proto__:null,[Symbol.iterator](){return Tr(this,Symbol.iterator,e=>wt(this,e))},concat(...e){return Bt(this).concat(...e.map(t=>q(t)?Bt(t):t))},entries(){return Tr(this,"entries",e=>(e[1]=wt(this,e[1]),e))},every(e,t){return ct(this,"every",e,t,void 0,arguments)},filter(e,t){return ct(this,"filter",e,t,n=>n.map(r=>wt(this,r)),arguments)},find(e,t){return ct(this,"find",e,t,n=>wt(this,n),arguments)},findIndex(e,t){return ct(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ct(this,"findLast",e,t,n=>wt(this,n),arguments)},findLastIndex(e,t){return ct(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ct(this,"forEach",e,t,void 0,arguments)},includes(...e){return Cr(this,"includes",e)},indexOf(...e){return Cr(this,"indexOf",e)},join(e){return Bt(this).join(e)},lastIndexOf(...e){return Cr(this,"lastIndexOf",e)},map(e,t){return ct(this,"map",e,t,void 0,arguments)},pop(){return nn(this,"pop")},push(...e){return nn(this,"push",e)},reduce(e,...t){return qs(this,"reduce",e,t)},reduceRight(e,...t){return qs(this,"reduceRight",e,t)},shift(){return nn(this,"shift")},some(e,t){return ct(this,"some",e,t,void 0,arguments)},splice(...e){return nn(this,"splice",e)},toReversed(){return Bt(this).toReversed()},toSorted(e){return Bt(this).toSorted(e)},toSpliced(...e){return Bt(this).toSpliced(...e)},unshift(...e){return nn(this,"unshift",e)},values(){return Tr(this,"values",e=>wt(this,e))}};function Tr(e,t,n){const r=ur(e),s=r[t]();return r!==e&&!je(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const wc=Array.prototype;function ct(e,t,n,r,s,o){const i=ur(e),l=i!==e&&!je(e),c=i[t];if(c!==wc[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,wt(e,f),p,e)}:n.length>2&&(u=function(f,p){return n.call(this,f,p,e)}));const a=c.call(i,u,r);return l&&s?s(a):a}function qs(e,t,n,r){const s=ur(e);let o=n;return s!==e&&(je(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,wt(e,l),c,e)}),s[t](o,...r)}function Cr(e,t,n){const r=Z(e);be(r,"iterate",En);const s=r[t](...n);return(s===-1||s===!1)&&fr(n[0])?(n[0]=Z(n[0]),r[t](...n)):s}function nn(e,t,n=[]){ht(),gs();const r=Z(e)[t].apply(e,n);return ys(),pt(),r}const Sc=us("__proto__,__v_isRef,__isVue"),Ri=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(yt));function Rc(e){yt(e)||(e=String(e));const t=Z(this);return be(t,"has",e),t.hasOwnProperty(e)}class Ai{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?Dc:Ti:o?xi:Oi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=q(t);if(!s){let c;if(i&&(c=Ec[n]))return c;if(n==="hasOwnProperty")return Rc}const l=Reflect.get(t,n,ce(t)?t:r);if((yt(n)?Ri.has(n):Sc(n))||(s||be(t,"get",n),o))return l;if(ce(l)){const c=i&&lr(n)?l:l.value;return s&&le(c)?Wr(c):c}return le(l)?s?Wr(l):On(l):l}}class vi extends Ai{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=q(t)&&lr(n);if(!this._isShallow){const u=mt(o);if(!je(r)&&!mt(r)&&(o=Z(o),r=Z(r)),!i&&ce(o)&&!ce(r))return u||(o.value=r),!0}const l=i?Number(n)e,Dn=e=>Reflect.getPrototypeOf(e);function Tc(e,t,n){return function(...r){const s=this.__v_raw,o=Z(s),i=Kt(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=s[e](...r),a=n?Kr:t?zt:Ke;return!t&&be(o,"iterate",c?$r:Dt),{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 Ln(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Cc(e,t){const n={get(s){const o=this.__v_raw,i=Z(o),l=Z(s);e||(vt(s,l)&&be(i,"get",s),be(i,"get",l));const{has:c}=Dn(i),u=t?Kr:e?zt:Ke;if(c.call(i,s))return u(o.get(s));if(c.call(i,l))return u(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&be(Z(s),"iterate",Dt),s.size},has(s){const o=this.__v_raw,i=Z(o),l=Z(s);return e||(vt(s,l)&&be(i,"has",s),be(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,c=Z(l),u=t?Kr:e?zt:Ke;return!e&&be(c,"iterate",Dt),l.forEach((a,f)=>s.call(o,u(a),u(f),i))}};return Se(n,e?{add:Ln("add"),set:Ln("set"),delete:Ln("delete"),clear:Ln("clear")}:{add(s){!t&&!je(s)&&!mt(s)&&(s=Z(s));const o=Z(this);return Dn(o).has.call(o,s)||(o.add(s),ft(o,"add",s,s)),this},set(s,o){!t&&!je(o)&&!mt(o)&&(o=Z(o));const i=Z(this),{has:l,get:c}=Dn(i);let u=l.call(i,s);u||(s=Z(s),u=l.call(i,s));const a=c.call(i,s);return i.set(s,o),u?vt(o,a)&&ft(i,"set",s,o):ft(i,"add",s,o),this},delete(s){const o=Z(this),{has:i,get:l}=Dn(o);let c=i.call(o,s);c||(s=Z(s),c=i.call(o,s)),l&&l.call(o,s);const u=o.delete(s);return c&&ft(o,"delete",s,void 0),u},clear(){const s=Z(this),o=s.size!==0,i=s.clear();return o&&ft(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=Tc(s,e,t)}),n}function Es(e,t){const n=Cc(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(ne(n,s)&&s in r?n:r,s,o)}const Pc={get:Es(!1,!1)},Nc={get:Es(!1,!0)},Ic={get:Es(!0,!1)};const Oi=new WeakMap,xi=new WeakMap,Ti=new WeakMap,Dc=new WeakMap;function Lc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Fc(e){return e.__v_skip||!Object.isExtensible(e)?0:Lc(ic(e))}function On(e){return mt(e)?e:ws(e,!1,vc,Pc,Oi)}function Ci(e){return ws(e,!1,xc,Nc,xi)}function Wr(e){return ws(e,!0,Oc,Ic,Ti)}function ws(e,t,n,r,s){if(!le(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=Fc(e);if(o===0)return e;const i=s.get(e);if(i)return i;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function it(e){return mt(e)?it(e.__v_raw):!!(e&&e.__v_isReactive)}function mt(e){return!!(e&&e.__v_isReadonly)}function je(e){return!!(e&&e.__v_isShallow)}function fr(e){return e?!!e.__v_raw:!1}function Z(e){const t=e&&e.__v_raw;return t?Z(t):e}function Ss(e){return!ne(e,"__v_skip")&&Object.isExtensible(e)&&ci(e,"__v_skip",!0),e}const Ke=e=>le(e)?On(e):e,zt=e=>le(e)?Wr(e):e;function ce(e){return e?e.__v_isRef===!0:!1}function Lt(e){return Pi(e,!1)}function Mc(e){return Pi(e,!0)}function Pi(e,t){return ce(e)?e:new Uc(e,t)}class Uc{constructor(t,n){this.dep=new bs,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:Z(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,r=this.__v_isShallow||je(t)||mt(t);t=r?t:Z(t),vt(t,n)&&(this._rawValue=t,this._value=r?t:Ke(t),this.dep.trigger())}}function Ot(e){return ce(e)?e.value:e}const jc={get:(e,t,n)=>t==="__v_raw"?e:Ot(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return ce(s)&&!ce(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Ni(e){return it(e)?e:new Proxy(e,jc)}function Bc(e){const t=q(e)?new Array(e.length):{};for(const n in e)t[n]=Ii(e,n);return t}class Hc{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._raw=Z(t);let s=!0,o=t;if(!q(t)||!lr(String(n)))do s=!fr(o)||je(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=Ot(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&ce(this._raw[this._key])){const n=this._object[this._key];if(ce(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return bc(this._raw,this._key)}}class kc{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Vc(e,t,n){return ce(e)?e:W(e)?new kc(e):le(e)&&arguments.length>1?Ii(e,t,n):Lt(e)}function Ii(e,t,n){return new Hc(e,t,n)}class qc{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new bs(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=bn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&ie!==this)return yi(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 $c(e,t,n=!1){let r,s;return W(e)?r=e:(r=e.get,s=e.set),new qc(r,s,n)}const Fn={},Jn=new WeakMap;let Pt;function Kc(e,t=!1,n=Pt){if(n){let r=Jn.get(n);r||Jn.set(n,r=[]),r.push(e)}}function Wc(e,t,n=se){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:c}=n,u=P=>s?P:je(P)||s===!1||s===0?dt(P,1):dt(P);let a,f,p,m,g=!1,b=!1;if(ce(e)?(f=()=>e.value,g=je(e)):it(e)?(f=()=>u(e),g=!0):q(e)?(b=!0,g=e.some(P=>it(P)||je(P)),f=()=>e.map(P=>{if(ce(P))return P.value;if(it(P))return u(P);if(W(P))return c?c(P,2):P()})):W(e)?t?f=c?()=>c(e,2):e:f=()=>{if(p){ht();try{p()}finally{pt()}}const P=Pt;Pt=a;try{return c?c(e,3,[m]):e(m)}finally{Pt=P}}:f=ot,t&&s){const P=f,M=s===!0?1/0:s;f=()=>dt(P(),M)}const E=pi(),O=()=>{a.stop(),E&&E.active&&ds(E.effects,a)};if(o&&t){const P=t;t=(...M)=>{P(...M),O()}}let C=b?new Array(e.length).fill(Fn):Fn;const N=P=>{if(!(!(a.flags&1)||!a.dirty&&!P))if(t){const M=a.run();if(s||g||(b?M.some((X,k)=>vt(X,C[k])):vt(M,C))){p&&p();const X=Pt;Pt=a;try{const k=[M,C===Fn?void 0:b&&C[0]===Fn?[]:C,m];C=M,c?c(t,3,k):t(...k)}finally{Pt=X}}}else a.run()};return l&&l(N),a=new mi(f),a.scheduler=i?()=>i(N,!1):N,m=P=>Kc(P,!1,a),p=a.onStop=()=>{const P=Jn.get(a);if(P){if(c)c(P,4);else for(const M of P)M();Jn.delete(a)}},t?r?N(!0):C=a.run():i?i(N.bind(null,!0),!0):a.run(),O.pause=a.pause.bind(a),O.resume=a.resume.bind(a),O.stop=O,O}function dt(e,t=1/0,n){if(t<=0||!le(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,ce(e))dt(e.value,t,n);else if(q(e))for(let r=0;r{dt(r,t,n)});else if(ii(e)){for(const r in e)dt(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&dt(e[r],t,n)}return e}function xn(e,t,n,r){try{return r?e(...r):e()}catch(s){dr(s,t,n)}}function lt(e,t,n,r){if(W(e)){const s=xn(e,t,n,r);return s&&si(s)&&s.catch(o=>{dr(o,t,n)}),s}if(q(e)){const s=[];for(let o=0;o>>1,s=xe[r],o=wn(s);o=wn(n)?xe.push(e):xe.splice(zc(t),0,e),e.flags|=1,Li()}}function Li(){Xn||(Xn=Di.then(Mi))}function Jc(e){q(e)?Wt.push(...e):St&&e.id===-1?St.splice(kt+1,0,e):e.flags&1||(Wt.push(e),e.flags|=1),Li()}function $s(e,t,n=rt+1){for(;nwn(n)-wn(r));if(Wt.length=0,St){St.push(...t);return}for(St=t,kt=0;kte.id==null?e.flags&2?-1:1/0:e.id;function Mi(e){try{for(rt=0;rt{r._d&&tr(-1);const o=Qn(t);let i;try{i=e(...s)}finally{Qn(o),r._d&&tr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function Ah(e,t){if(we===null)return e;const n=gr(we),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&W(t)?t.call(r&&r.proxy):t}}function Qc(){return!!(dl()||Ft)}const Yc=Symbol.for("v-scx"),Zc=()=>ke(Yc);function fn(e,t,n){return ji(e,t,n)}function ji(e,t,n=se){const{immediate:r,deep:s,flush:o,once:i}=n,l=Se({},n),c=t&&r||!t&&o!=="post";let u;if(An){if(o==="sync"){const m=Zc();u=m.__watcherHandles||(m.__watcherHandles=[])}else if(!c){const m=()=>{};return m.stop=ot,m.resume=ot,m.pause=ot,m}}const a=Te;l.call=(m,g,b)=>lt(m,a,g,b);let f=!1;o==="post"?l.scheduler=m=>{ve(m,a&&a.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(m,g)=>{g?m():As(m)}),l.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,a&&(m.id=a.uid,m.i=a))};const p=Wc(e,t,l);return An&&(u?u.push(p):c&&p()),p}function ea(e,t,n){const r=this.proxy,s=de(e)?e.includes(".")?Bi(r,e):()=>r[e]:e.bind(r,r);let o;W(t)?o=t:(o=t.handler,n=t);const i=Tn(this),l=ji(s,o.bind(r),n);return i(),l}function Bi(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,dn=e=>e&&(e.disabled||e.disabled===""),Ks=e=>e&&(e.defer||e.defer===""),Ws=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Gs=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Gr=(e,t)=>{const n=e&&e.to;return de(n)?t?t(n):null:n},ki={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,u){const{mc:a,pc:f,pbc:p,o:{insert:m,querySelector:g,createText:b,createComment:E}}=u,O=dn(t.props);let{shapeFlag:C,children:N,dynamicChildren:P}=t;if(e==null){const M=t.el=b(""),X=t.anchor=b("");m(M,n,r),m(X,n,r);const k=(U,ee)=>{C&16&&a(N,U,ee,s,o,i,l,c)},V=()=>{const U=t.target=Gr(t.props,g),ee=Vi(U,t,b,m);U&&(i!=="svg"&&Ws(U)?i="svg":i!=="mathml"&&Gs(U)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(U),O||(k(U,ee),kn(t,!1)))};O&&(k(n,X),kn(t,!0)),Ks(t.props)?(t.el.__isMounted=!1,ve(()=>{V(),delete t.el.__isMounted},o)):V()}else{if(Ks(t.props)&&e.el.__isMounted===!1){ve(()=>{ki.process(e,t,n,r,s,o,i,l,c,u)},o);return}t.el=e.el,t.targetStart=e.targetStart;const M=t.anchor=e.anchor,X=t.target=e.target,k=t.targetAnchor=e.targetAnchor,V=dn(e.props),U=V?n:X,ee=V?M:k;if(i==="svg"||Ws(X)?i="svg":(i==="mathml"||Gs(X))&&(i="mathml"),P?(p(e.dynamicChildren,P,U,s,o,i,l),Cs(e,t,!0)):c||f(e,t,U,ee,s,o,i,l,!1),O)V?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Mn(t,n,M,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const ue=t.target=Gr(t.props,g);ue&&Mn(t,ue,null,u,0)}else V&&Mn(t,X,k,u,1);kn(t,O)}},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetStart:u,targetAnchor:a,target:f,props:p}=e;if(f&&(s(u),s(a)),o&&s(c),i&16){const m=o||!dn(p);for(let g=0;ghn(g,t&&(q(t)?t[b]:t),n,r,s));return}if(Gt(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&hn(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?gr(r.component):r.el,i=s?null:o,{i:l,r:c}=e,u=t&&t.r,a=l.refs===se?l.refs={}:l.refs,f=l.setupState,p=Z(f),m=f===se?ni:g=>ne(p,g);if(u!=null&&u!==c){if(zs(t),de(u))a[u]=null,m(u)&&(f[u]=null);else if(ce(u)){u.value=null;const g=t;g.k&&(a[g.k]=null)}}if(W(c))xn(c,l,12,[i,a]);else{const g=de(c),b=ce(c);if(g||b){const E=()=>{if(e.f){const O=g?m(c)?f[c]:a[c]:c.value;if(s)q(O)&&ds(O,o);else if(q(O))O.includes(o)||O.push(o);else if(g)a[c]=[o],m(c)&&(f[c]=a[c]);else{const C=[o];c.value=C,e.k&&(a[e.k]=C)}}else g?(a[c]=i,m(c)&&(f[c]=i)):b&&(c.value=i,e.k&&(a[e.k]=i))};if(i){const O=()=>{E(),Yn.delete(e)};O.id=-1,Yn.set(e,O),ve(O,n)}else zs(e),E()}}}function zs(e){const t=Yn.get(e);t&&(t.flags|=8,Yn.delete(e))}ar().requestIdleCallback;ar().cancelIdleCallback;const Gt=e=>!!e.type.__asyncLoader,$i=e=>e.type.__isKeepAlive;function sa(e,t){Ki(e,"a",t)}function oa(e,t){Ki(e,"da",t)}function Ki(e,t,n=Te){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(hr(t,r,n),n){let s=n.parent;for(;s&&s.parent;)$i(s.parent.vnode)&&ia(r,t,n,s),s=s.parent}}function ia(e,t,n,r){const s=hr(t,e,r,!0);Wi(()=>{ds(r[t],s)},n)}function hr(e,t,n=Te,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{ht();const l=Tn(n),c=lt(t,n,e,i);return l(),pt(),c});return r?s.unshift(o):s.push(o),o}}const _t=e=>(t,n=Te)=>{(!An||e==="sp")&&hr(e,(...r)=>t(...r),n)},la=_t("bm"),ca=_t("m"),aa=_t("bu"),ua=_t("u"),fa=_t("bum"),Wi=_t("um"),da=_t("sp"),ha=_t("rtg"),pa=_t("rtc");function ma(e,t=Te){hr("ec",e,t)}const ga=Symbol.for("v-ndc");function Oh(e,t,n,r){let s;const o=n,i=q(e);if(i||de(e)){const l=i&&it(e);let c=!1,u=!1;l&&(c=!je(e),u=mt(e),e=ur(e)),s=new Array(e.length);for(let a=0,f=e.length;at(l,c,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let c=0,u=l.length;c0;return er(),nr(Fe,null,[Ce("slot",n,r)],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),er();const i=o&&Gi(o(n)),l=n.key||i&&i.key,c=nr(Fe,{key:(l&&!yt(l)?l:`_${t}`)+(!i&&r?"_fb":"")},i||[],i&&e._===1?64:-2);return c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),o&&o._c&&(o._d=!0),c}function Gi(e){return e.some(t=>Rn(t)?!(t.type===gt||t.type===Fe&&!Gi(t.children)):!0)?e:null}const zr=e=>e?hl(e)?gr(e):zr(e.parent):null,pn=Se(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=>zr(e.parent),$root:e=>zr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ji(e),$forceUpdate:e=>e.f||(e.f=()=>{As(e.update)}),$nextTick:e=>e.n||(e.n=Rs.bind(e.proxy)),$watch:e=>ea.bind(e)}),Pr=(e,t)=>e!==se&&!e.__isScriptSetup&&ne(e,t),ya={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,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 r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(Pr(r,t))return i[t]=1,r[t];if(s!==se&&ne(s,t))return i[t]=2,s[t];if(ne(o,t))return i[t]=3,o[t];if(n!==se&&ne(n,t))return i[t]=4,n[t];Jr&&(i[t]=0)}}const u=pn[t];let a,f;if(u)return t==="$attrs"&&be(e.attrs,"get",""),u(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==se&&ne(n,t))return i[t]=4,n[t];if(f=c.config.globalProperties,ne(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return Pr(s,t)?(s[t]=n,!0):r!==se&&ne(r,t)?(r[t]=n,!0):ne(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:o,type:i}},l){let c;return!!(n[l]||e!==se&&l[0]!=="$"&&ne(e,l)||Pr(t,l)||ne(o,l)||ne(r,l)||ne(pn,l)||ne(s.config.globalProperties,l)||(c=i.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ne(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Js(e){return q(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Jr=!0;function _a(e){const t=Ji(e),n=e.proxy,r=e.ctx;Jr=!1,t.beforeCreate&&Xs(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:u,created:a,beforeMount:f,mounted:p,beforeUpdate:m,updated:g,activated:b,deactivated:E,beforeDestroy:O,beforeUnmount:C,destroyed:N,unmounted:P,render:M,renderTracked:X,renderTriggered:k,errorCaptured:V,serverPrefetch:U,expose:ee,inheritAttrs:ue,components:ye,directives:pe,filters:Re}=t;if(u&&ba(u,r,null),i)for(const K in i){const z=i[K];W(z)&&(r[K]=z.bind(n))}if(s){const K=s.call(n,n);le(K)&&(e.data=On(K))}if(Jr=!0,o)for(const K in o){const z=o[K],Be=W(z)?z.bind(n,n):W(z.get)?z.get.bind(n,n):ot,ze=!W(z)&&W(z.set)?z.set.bind(n):ot,me=Me({get:Be,set:ze});Object.defineProperty(r,K,{enumerable:!0,configurable:!0,get:()=>me.value,set:fe=>me.value=fe})}if(l)for(const K in l)zi(l[K],r,n,K);if(c){const K=W(c)?c.call(n):c;Reflect.ownKeys(K).forEach(z=>{Hn(z,K[z])})}a&&Xs(a,e,"c");function J(K,z){q(z)?z.forEach(Be=>K(Be.bind(n))):z&&K(z.bind(n))}if(J(la,f),J(ca,p),J(aa,m),J(ua,g),J(sa,b),J(oa,E),J(ma,V),J(pa,X),J(ha,k),J(fa,C),J(Wi,P),J(da,U),q(ee))if(ee.length){const K=e.exposed||(e.exposed={});ee.forEach(z=>{Object.defineProperty(K,z,{get:()=>n[z],set:Be=>n[z]=Be,enumerable:!0})})}else e.exposed||(e.exposed={});M&&e.render===ot&&(e.render=M),ue!=null&&(e.inheritAttrs=ue),ye&&(e.components=ye),pe&&(e.directives=pe),U&&qi(e)}function ba(e,t,n=ot){q(e)&&(e=Xr(e));for(const r in e){const s=e[r];let o;le(s)?"default"in s?o=ke(s.from||r,s.default,!0):o=ke(s.from||r):o=ke(s),ce(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function Xs(e,t,n){lt(q(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function zi(e,t,n,r){let s=r.includes(".")?Bi(n,r):()=>n[r];if(de(e)){const o=t[e];W(o)&&fn(s,o)}else if(W(e))fn(s,e.bind(n));else if(le(e))if(q(e))e.forEach(o=>zi(o,t,n,r));else{const o=W(e.handler)?e.handler.bind(n):t[e.handler];W(o)&&fn(s,o,e)}}function Ji(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>Zn(c,u,i,!0)),Zn(c,t,i)),le(t)&&o.set(t,c),c}function Zn(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&Zn(e,o,n,!0),s&&s.forEach(i=>Zn(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Ea[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Ea={data:Qs,props:Ys,emits:Ys,methods:ln,computed:ln,beforeCreate:Ae,created:Ae,beforeMount:Ae,mounted:Ae,beforeUpdate:Ae,updated:Ae,beforeDestroy:Ae,beforeUnmount:Ae,destroyed:Ae,unmounted:Ae,activated:Ae,deactivated:Ae,errorCaptured:Ae,serverPrefetch:Ae,components:ln,directives:ln,watch:Sa,provide:Qs,inject:wa};function Qs(e,t){return t?e?function(){return Se(W(e)?e.call(this,this):e,W(t)?t.call(this,this):t)}:t:e}function wa(e,t){return ln(Xr(e),Xr(t))}function Xr(e){if(q(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${xt(t)}Modifiers`]||e[`${jt(t)}Modifiers`];function Oa(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||se;let s=n;const o=t.startsWith("update:"),i=o&&va(r,t.slice(7));i&&(i.trim&&(s=n.map(a=>de(a)?a.trim():a)),i.number&&(s=n.map(hs)));let l,c=r[l=vr(t)]||r[l=vr(xt(t))];!c&&o&&(c=r[l=vr(jt(t))]),c&<(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,lt(u,e,6,s)}}const xa=new WeakMap;function Qi(e,t,n=!1){const r=n?xa:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!W(e)){const c=u=>{const a=Qi(u,t,!0);a&&(l=!0,Se(i,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(le(e)&&r.set(e,null),null):(q(o)?o.forEach(c=>i[c]=null):Se(i,o),le(e)&&r.set(e,i),i)}function pr(e,t){return!e||!or(t)?!1:(t=t.slice(2).replace(/Once$/,""),ne(e,t[0].toLowerCase()+t.slice(1))||ne(e,jt(t))||ne(e,t))}function Zs(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:a,props:f,data:p,setupState:m,ctx:g,inheritAttrs:b}=e,E=Qn(e);let O,C;try{if(n.shapeFlag&4){const P=s||r,M=P;O=st(u.call(M,P,a,f,m,p,g)),C=l}else{const P=t;O=st(P.length>1?P(f,{attrs:l,slots:i,emit:c}):P(f,null)),C=t.props?l:Ta(l)}}catch(P){mn.length=0,dr(P,e,1),O=Ce(gt)}let N=O;if(C&&b!==!1){const P=Object.keys(C),{shapeFlag:M}=N;P.length&&M&7&&(o&&P.some(fs)&&(C=Ca(C,o)),N=Jt(N,C,!1,!0))}return n.dirs&&(N=Jt(N,null,!1,!0),N.dirs=N.dirs?N.dirs.concat(n.dirs):n.dirs),n.transition&&vs(N,n.transition),O=N,Qn(E),O}const Ta=e=>{let t;for(const n in e)(n==="class"||n==="style"||or(n))&&((t||(t={}))[n]=e[n]);return t},Ca=(e,t)=>{const n={};for(const r in e)(!fs(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Pa(e,t,n){const{props:r,children:s,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 r?eo(r,i,u):!!i;if(c&8){const a=t.dynamicProps;for(let f=0;fObject.create(Yi),el=e=>Object.getPrototypeOf(e)===Yi;function Ia(e,t,n,r=!1){const s={},o=Zi();e.propsDefaults=Object.create(null),tl(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:Ci(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function Da(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=Z(s),[c]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const a=e.vnode.dynamicProps;for(let f=0;f{c=!0;const[p,m]=nl(f,t,!0);Se(i,p),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!c)return le(e)&&r.set(e,$t),$t;if(q(o))for(let a=0;ae==="_"||e==="_ctx"||e==="$stable",Ts=e=>q(e)?e.map(st):[st(e)],Fa=(e,t,n)=>{if(t._n)return t;const r=Xc((...s)=>Ts(t(...s)),n);return r._c=!1,r},rl=(e,t,n)=>{const r=e._ctx;for(const s in e){if(xs(s))continue;const o=e[s];if(W(o))t[s]=Fa(s,o,r);else if(o!=null){const i=Ts(o);t[s]=()=>i}}},sl=(e,t)=>{const n=Ts(t);e.slots.default=()=>n},ol=(e,t,n)=>{for(const r in t)(n||!xs(r))&&(e[r]=t[r])},Ma=(e,t,n)=>{const r=e.slots=Zi();if(e.vnode.shapeFlag&32){const s=t._;s?(ol(r,t,n),n&&ci(r,"_",s,!0)):rl(t,r)}else t&&sl(e,t)},Ua=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=se;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:ol(s,t,n):(o=!t.$stable,rl(t,s)),i=t}else t&&(sl(e,t),i={default:1});if(o)for(const l in s)!xs(l)&&i[l]==null&&delete s[l]},ve=Va;function ja(e){return Ba(e)}function Ba(e,t){const n=ar();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:a,parentNode:f,nextSibling:p,setScopeId:m=ot,insertStaticContent:g}=e,b=(d,h,y,w=null,A=null,S=null,I=void 0,T=null,x=!!h.dynamicChildren)=>{if(d===h)return;d&&!rn(d,h)&&(w=R(d),fe(d,A,S,!0),d=null),h.patchFlag===-2&&(x=!1,h.dynamicChildren=null);const{type:v,ref:H,shapeFlag:L}=h;switch(v){case mr:E(d,h,y,w);break;case gt:O(d,h,y,w);break;case Vn:d==null&&C(h,y,w,I);break;case Fe:ye(d,h,y,w,A,S,I,T,x);break;default:L&1?M(d,h,y,w,A,S,I,T,x):L&6?pe(d,h,y,w,A,S,I,T,x):(L&64||L&128)&&v.process(d,h,y,w,A,S,I,T,x,j)}H!=null&&A?hn(H,d&&d.ref,S,h||d,!h):H==null&&d&&d.ref!=null&&hn(d.ref,null,S,d,!0)},E=(d,h,y,w)=>{if(d==null)r(h.el=l(h.children),y,w);else{const A=h.el=d.el;h.children!==d.children&&u(A,h.children)}},O=(d,h,y,w)=>{d==null?r(h.el=c(h.children||""),y,w):h.el=d.el},C=(d,h,y,w)=>{[d.el,d.anchor]=g(d.children,h,y,w,d.el,d.anchor)},N=({el:d,anchor:h},y,w)=>{let A;for(;d&&d!==h;)A=p(d),r(d,y,w),d=A;r(h,y,w)},P=({el:d,anchor:h})=>{let y;for(;d&&d!==h;)y=p(d),s(d),d=y;s(h)},M=(d,h,y,w,A,S,I,T,x)=>{if(h.type==="svg"?I="svg":h.type==="math"&&(I="mathml"),d==null)X(h,y,w,A,S,I,T,x);else{const v=d.el&&d.el._isVueCE?d.el:null;try{v&&v._beginPatch(),U(d,h,A,S,I,T,x)}finally{v&&v._endPatch()}}},X=(d,h,y,w,A,S,I,T)=>{let x,v;const{props:H,shapeFlag:L,transition:B,dirs:$}=d;if(x=d.el=i(d.type,S,H&&H.is,H),L&8?a(x,d.children):L&16&&V(d.children,x,null,w,A,Nr(d,S),I,T),$&&Tt(d,null,w,"created"),k(x,d,d.scopeId,I,w),H){for(const oe in H)oe!=="value"&&!cn(oe)&&o(x,oe,null,H[oe],S,w);"value"in H&&o(x,"value",null,H.value,S),(v=H.onVnodeBeforeMount)&&et(v,w,d)}$&&Tt(d,null,w,"beforeMount");const Y=Ha(A,B);Y&&B.beforeEnter(x),r(x,h,y),((v=H&&H.onVnodeMounted)||Y||$)&&ve(()=>{v&&et(v,w,d),Y&&B.enter(x),$&&Tt(d,null,w,"mounted")},A)},k=(d,h,y,w,A)=>{if(y&&m(d,y),w)for(let S=0;S{for(let v=x;v{const T=h.el=d.el;let{patchFlag:x,dynamicChildren:v,dirs:H}=h;x|=d.patchFlag&16;const L=d.props||se,B=h.props||se;let $;if(y&&Ct(y,!1),($=B.onVnodeBeforeUpdate)&&et($,y,h,d),H&&Tt(h,d,y,"beforeUpdate"),y&&Ct(y,!0),(L.innerHTML&&B.innerHTML==null||L.textContent&&B.textContent==null)&&a(T,""),v?ee(d.dynamicChildren,v,T,y,w,Nr(h,A),S):I||z(d,h,T,null,y,w,Nr(h,A),S,!1),x>0){if(x&16)ue(T,L,B,y,A);else if(x&2&&L.class!==B.class&&o(T,"class",null,B.class,A),x&4&&o(T,"style",L.style,B.style,A),x&8){const Y=h.dynamicProps;for(let oe=0;oe{$&&et($,y,h,d),H&&Tt(h,d,y,"updated")},w)},ee=(d,h,y,w,A,S,I)=>{for(let T=0;T{if(h!==y){if(h!==se)for(const S in h)!cn(S)&&!(S in y)&&o(d,S,h[S],null,A,w);for(const S in y){if(cn(S))continue;const I=y[S],T=h[S];I!==T&&S!=="value"&&o(d,S,T,I,A,w)}"value"in y&&o(d,"value",h.value,y.value,A)}},ye=(d,h,y,w,A,S,I,T,x)=>{const v=h.el=d?d.el:l(""),H=h.anchor=d?d.anchor:l("");let{patchFlag:L,dynamicChildren:B,slotScopeIds:$}=h;$&&(T=T?T.concat($):$),d==null?(r(v,y,w),r(H,y,w),V(h.children||[],y,H,A,S,I,T,x)):L>0&&L&64&&B&&d.dynamicChildren&&d.dynamicChildren.length===B.length?(ee(d.dynamicChildren,B,y,A,S,I,T),(h.key!=null||A&&h===A.subTree)&&Cs(d,h,!0)):z(d,h,y,H,A,S,I,T,x)},pe=(d,h,y,w,A,S,I,T,x)=>{h.slotScopeIds=T,d==null?h.shapeFlag&512?A.ctx.activate(h,y,w,I,x):Re(h,y,w,A,S,I,x):Ve(d,h,x)},Re=(d,h,y,w,A,S,I)=>{const T=d.component=Xa(d,w,A);if($i(d)&&(T.ctx.renderer=j),Qa(T,!1,I),T.asyncDep){if(A&&A.registerDep(T,J,I),!d.el){const x=T.subTree=Ce(gt);O(null,x,h,y),d.placeholder=x.el}}else J(T,d,h,y,A,S,I)},Ve=(d,h,y)=>{const w=h.component=d.component;if(Pa(d,h,y))if(w.asyncDep&&!w.asyncResolved){K(w,h,y);return}else w.next=h,w.update();else h.el=d.el,w.vnode=h},J=(d,h,y,w,A,S,I)=>{const T=()=>{if(d.isMounted){let{next:L,bu:B,u:$,parent:Y,vnode:oe}=d;{const Ye=il(d);if(Ye){L&&(L.el=oe.el,K(d,L,I)),Ye.asyncDep.then(()=>{d.isUnmounted||T()});return}}let re=L,Pe;Ct(d,!1),L?(L.el=oe.el,K(d,L,I)):L=oe,B&&Bn(B),(Pe=L.props&&L.props.onVnodeBeforeUpdate)&&et(Pe,Y,L,oe),Ct(d,!0);const Ne=Zs(d),Qe=d.subTree;d.subTree=Ne,b(Qe,Ne,f(Qe.el),R(Qe),d,A,S),L.el=Ne.el,re===null&&Na(d,Ne.el),$&&ve($,A),(Pe=L.props&&L.props.onVnodeUpdated)&&ve(()=>et(Pe,Y,L,oe),A)}else{let L;const{el:B,props:$}=h,{bm:Y,m:oe,parent:re,root:Pe,type:Ne}=d,Qe=Gt(h);Ct(d,!1),Y&&Bn(Y),!Qe&&(L=$&&$.onVnodeBeforeMount)&&et(L,re,h),Ct(d,!0);{Pe.ce&&Pe.ce._def.shadowRoot!==!1&&Pe.ce._injectChildStyle(Ne);const Ye=d.subTree=Zs(d);b(null,Ye,y,w,d,A,S),h.el=Ye.el}if(oe&&ve(oe,A),!Qe&&(L=$&&$.onVnodeMounted)){const Ye=h;ve(()=>et(L,re,Ye),A)}(h.shapeFlag&256||re&&Gt(re.vnode)&&re.vnode.shapeFlag&256)&&d.a&&ve(d.a,A),d.isMounted=!0,h=y=w=null}};d.scope.on();const x=d.effect=new mi(T);d.scope.off();const v=d.update=x.run.bind(x),H=d.job=x.runIfDirty.bind(x);H.i=d,H.id=d.uid,x.scheduler=()=>As(H),Ct(d,!0),v()},K=(d,h,y)=>{h.component=d;const w=d.vnode.props;d.vnode=h,d.next=null,Da(d,h.props,w,y),Ua(d,h.children,y),ht(),$s(d),pt()},z=(d,h,y,w,A,S,I,T,x=!1)=>{const v=d&&d.children,H=d?d.shapeFlag:0,L=h.children,{patchFlag:B,shapeFlag:$}=h;if(B>0){if(B&128){ze(v,L,y,w,A,S,I,T,x);return}else if(B&256){Be(v,L,y,w,A,S,I,T,x);return}}$&8?(H&16&&He(v,A,S),L!==v&&a(y,L)):H&16?$&16?ze(v,L,y,w,A,S,I,T,x):He(v,A,S,!0):(H&8&&a(y,""),$&16&&V(L,y,w,A,S,I,T,x))},Be=(d,h,y,w,A,S,I,T,x)=>{d=d||$t,h=h||$t;const v=d.length,H=h.length,L=Math.min(v,H);let B;for(B=0;BH?He(d,A,S,!0,!1,L):V(h,y,w,A,S,I,T,x,L)},ze=(d,h,y,w,A,S,I,T,x)=>{let v=0;const H=h.length;let L=d.length-1,B=H-1;for(;v<=L&&v<=B;){const $=d[v],Y=h[v]=x?Rt(h[v]):st(h[v]);if(rn($,Y))b($,Y,y,null,A,S,I,T,x);else break;v++}for(;v<=L&&v<=B;){const $=d[L],Y=h[B]=x?Rt(h[B]):st(h[B]);if(rn($,Y))b($,Y,y,null,A,S,I,T,x);else break;L--,B--}if(v>L){if(v<=B){const $=B+1,Y=$B)for(;v<=L;)fe(d[v],A,S,!0),v++;else{const $=v,Y=v,oe=new Map;for(v=Y;v<=B;v++){const Le=h[v]=x?Rt(h[v]):st(h[v]);Le.key!=null&&oe.set(Le.key,v)}let re,Pe=0;const Ne=B-Y+1;let Qe=!1,Ye=0;const tn=new Array(Ne);for(v=0;v=Ne){fe(Le,A,S,!0);continue}let Ze;if(Le.key!=null)Ze=oe.get(Le.key);else for(re=Y;re<=B;re++)if(tn[re-Y]===0&&rn(Le,h[re])){Ze=re;break}Ze===void 0?fe(Le,A,S,!0):(tn[Ze-Y]=v+1,Ze>=Ye?Ye=Ze:Qe=!0,b(Le,h[Ze],y,null,A,S,I,T,x),Pe++)}const js=Qe?ka(tn):$t;for(re=js.length-1,v=Ne-1;v>=0;v--){const Le=Y+v,Ze=h[Le],Bs=h[Le+1],Hs=Le+1{const{el:S,type:I,transition:T,children:x,shapeFlag:v}=d;if(v&6){me(d.component.subTree,h,y,w);return}if(v&128){d.suspense.move(h,y,w);return}if(v&64){I.move(d,h,y,j);return}if(I===Fe){r(S,h,y);for(let L=0;LT.enter(S),A);else{const{leave:L,delayLeave:B,afterLeave:$}=T,Y=()=>{d.ctx.isUnmounted?s(S):r(S,h,y)},oe=()=>{S._isLeaving&&S[ra](!0),L(S,()=>{Y(),$&&$()})};B?B(S,Y,oe):oe()}else r(S,h,y)},fe=(d,h,y,w=!1,A=!1)=>{const{type:S,props:I,ref:T,children:x,dynamicChildren:v,shapeFlag:H,patchFlag:L,dirs:B,cacheIndex:$}=d;if(L===-2&&(A=!1),T!=null&&(ht(),hn(T,null,y,d,!0),pt()),$!=null&&(h.renderCache[$]=void 0),H&256){h.ctx.deactivate(d);return}const Y=H&1&&B,oe=!Gt(d);let re;if(oe&&(re=I&&I.onVnodeBeforeUnmount)&&et(re,h,d),H&6)Xe(d.component,y,w);else{if(H&128){d.suspense.unmount(y,w);return}Y&&Tt(d,null,h,"beforeUnmount"),H&64?d.type.remove(d,h,y,j,w):v&&!v.hasOnce&&(S!==Fe||L>0&&L&64)?He(v,h,y,!1,!0):(S===Fe&&L&384||!A&&H&16)&&He(x,h,y),w&&Je(d)}(oe&&(re=I&&I.onVnodeUnmounted)||Y)&&ve(()=>{re&&et(re,h,d),Y&&Tt(d,null,h,"unmounted")},y)},Je=d=>{const{type:h,el:y,anchor:w,transition:A}=d;if(h===Fe){qe(y,w);return}if(h===Vn){P(d);return}const S=()=>{s(y),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(d.shapeFlag&1&&A&&!A.persisted){const{leave:I,delayLeave:T}=A,x=()=>I(y,S);T?T(d.el,S,x):x()}else S()},qe=(d,h)=>{let y;for(;d!==h;)y=p(d),s(d),d=y;s(h)},Xe=(d,h,y)=>{const{bum:w,scope:A,job:S,subTree:I,um:T,m:x,a:v}=d;no(x),no(v),w&&Bn(w),A.stop(),S&&(S.flags|=8,fe(I,d,h,y)),T&&ve(T,h),ve(()=>{d.isUnmounted=!0},h)},He=(d,h,y,w=!1,A=!1,S=0)=>{for(let I=S;I{if(d.shapeFlag&6)return R(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const h=p(d.anchor||d.el),y=h&&h[Hi];return y?p(y):h};let F=!1;const D=(d,h,y)=>{let w;d==null?h._vnode&&(fe(h._vnode,null,null,!0),w=h._vnode.component):b(h._vnode||null,d,h,null,null,null,y),h._vnode=d,F||(F=!0,$s(w),Fi(),F=!1)},j={p:b,um:fe,m:me,r:Je,mt:Re,mc:V,pc:z,pbc:ee,n:R,o:e};return{render:D,hydrate:void 0,createApp:Aa(D)}}function Nr({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 Ct({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Ha(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Cs(e,t,n=!1){const r=e.children,s=t.children;if(q(r)&&q(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function il(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:il(t)}function no(e){if(e)for(let t=0;te.__isSuspense;function Va(e,t){t&&t.pendingBranch?q(e)?t.effects.push(...e):t.effects.push(e):Jc(e)}const Fe=Symbol.for("v-fgt"),mr=Symbol.for("v-txt"),gt=Symbol.for("v-cmt"),Vn=Symbol.for("v-stc"),mn=[];let Ue=null;function er(e=!1){mn.push(Ue=e?null:[])}function qa(){mn.pop(),Ue=mn[mn.length-1]||null}let Sn=1;function tr(e,t=!1){Sn+=e,e<0&&Ue&&t&&(Ue.hasOnce=!0)}function al(e){return e.dynamicChildren=Sn>0?Ue||$t:null,qa(),Sn>0&&Ue&&Ue.push(e),e}function Th(e,t,n,r,s,o){return al(fl(e,t,n,r,s,o,!0))}function nr(e,t,n,r,s){return al(Ce(e,t,n,r,s,!0))}function Rn(e){return e?e.__v_isVNode===!0:!1}function rn(e,t){return e.type===t.type&&e.key===t.key}const ul=({key:e})=>e??null,qn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?de(e)||ce(e)||W(e)?{i:we,r:e,k:t,f:!!n}:e:null);function fl(e,t=null,n=null,r=0,s=null,o=e===Fe?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ul(t),ref:t&&qn(t),scopeId:Ui,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:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:we};return l?(Ps(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=de(n)?8:16),Sn>0&&!i&&Ue&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Ue.push(c),c}const Ce=$a;function $a(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===ga)&&(e=gt),Rn(e)){const l=Jt(e,t,!0);return n&&Ps(l,n),Sn>0&&!o&&Ue&&(l.shapeFlag&6?Ue[Ue.indexOf(e)]=l:Ue.push(l)),l.patchFlag=-2,l}if(tu(e)&&(e=e.__vccOpts),t){t=Ka(t);let{class:l,style:c}=t;l&&!de(l)&&(t.class=ms(l)),le(c)&&(fr(c)&&!q(c)&&(c=Se({},c)),t.style=ps(c))}const i=de(e)?1:cl(e)?128:ta(e)?64:le(e)?4:W(e)?2:0;return fl(e,t,n,r,s,i,o,!0)}function Ka(e){return e?fr(e)||el(e)?Se({},e):e:null}function Jt(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?Ga(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&ul(u),ref:t&&t.ref?n&&o?q(o)?o.concat(qn(t)):[o,qn(t)]:qn(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!==Fe?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&&Jt(e.ssContent),ssFallback:e.ssFallback&&Jt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&vs(a,c.clone(a)),a}function Wa(e=" ",t=0){return Ce(mr,null,e,t)}function Ch(e,t){const n=Ce(Vn,null,e);return n.staticCount=t,n}function Ph(e="",t=!1){return t?(er(),nr(gt,null,e)):Ce(gt,null,e)}function st(e){return e==null||typeof e=="boolean"?Ce(gt):q(e)?Ce(Fe,null,e.slice()):Rn(e)?Rt(e):Ce(mr,null,String(e))}function Rt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Jt(e)}function Ps(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(q(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Ps(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!el(t)?t._ctx=we:s===3&&we&&(we.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else W(t)?(t={default:t,_ctx:we},n=32):(t=String(t),r&64?(n=16,t=[Wa(t)]):n=8);e.children=t,e.shapeFlag|=n}function Ga(...e){const t={};for(let n=0;nTe||we;let rr,Yr;{const e=ar(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};rr=t("__VUE_INSTANCE_SETTERS__",n=>Te=n),Yr=t("__VUE_SSR_SETTERS__",n=>An=n)}const Tn=e=>{const t=Te;return rr(e),e.scope.on(),()=>{e.scope.off(),rr(t)}},ro=()=>{Te&&Te.scope.off(),rr(null)};function hl(e){return e.vnode.shapeFlag&4}let An=!1;function Qa(e,t=!1,n=!1){t&&Yr(t);const{props:r,children:s}=e.vnode,o=hl(e);Ia(e,r,o,t),Ma(e,s,n||t);const i=o?Ya(e,t):void 0;return t&&Yr(!1),i}function Ya(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,ya);const{setup:r}=n;if(r){ht();const s=e.setupContext=r.length>1?eu(e):null,o=Tn(e),i=xn(r,e,0,[e.props,s]),l=si(i);if(pt(),o(),(l||e.sp)&&!Gt(e)&&qi(e),l){if(i.then(ro,ro),t)return i.then(c=>{so(e,c)}).catch(c=>{dr(c,e,0)});e.asyncDep=i}else so(e,i)}else pl(e)}function so(e,t,n){W(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:le(t)&&(e.setupState=Ni(t)),pl(e)}function pl(e,t,n){const r=e.type;e.render||(e.render=r.render||ot);{const s=Tn(e);ht();try{_a(e)}finally{pt(),s()}}}const Za={get(e,t){return be(e,"get",""),e[t]}};function eu(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Za),slots:e.slots,emit:e.emit,expose:t}}function gr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ni(Ss(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in pn)return pn[n](e)},has(t,n){return n in t||n in pn}})):e.proxy}function tu(e){return W(e)&&"__vccOpts"in e}const Me=(e,t)=>$c(e,t,An);function ml(e,t,n){try{tr(-1);const r=arguments.length;return r===2?le(t)&&!q(t)?Rn(t)?Ce(e,null,[t]):Ce(e,t):Ce(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Rn(n)&&(n=[n]),Ce(e,t,n))}finally{tr(1)}}const nu="3.5.26";let Zr;const oo=typeof window<"u"&&window.trustedTypes;if(oo)try{Zr=oo.createPolicy("vue",{createHTML:e=>e})}catch{}const gl=Zr?e=>Zr.createHTML(e):e=>e,ru="http://www.w3.org/2000/svg",su="http://www.w3.org/1998/Math/MathML",ut=typeof document<"u"?document:null,io=ut&&ut.createElement("template"),ou={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?ut.createElementNS(ru,e):t==="mathml"?ut.createElementNS(su,e):n?ut.createElement(e,{is:n}):ut.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>ut.createTextNode(e),createComment:e=>ut.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ut.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{io.innerHTML=gl(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=io.content;if(r==="svg"||r==="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]}},iu=Symbol("_vtc");function lu(e,t,n){const r=e[iu];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const lo=Symbol("_vod"),cu=Symbol("_vsh"),au=Symbol(""),uu=/(?:^|;)\s*display\s*:/;function fu(e,t,n){const r=e.style,s=de(n);let o=!1;if(n&&!s){if(t)if(de(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&$n(r,l,"")}else for(const i in t)n[i]==null&&$n(r,i,"");for(const i in n)i==="display"&&(o=!0),$n(r,i,n[i])}else if(s){if(t!==n){const i=r[au];i&&(n+=";"+i),r.cssText=n,o=uu.test(n)}}else t&&e.removeAttribute("style");lo in e&&(e[lo]=o?r.display:"",e[cu]&&(r.display="none"))}const co=/\s*!important$/;function $n(e,t,n){if(q(n))n.forEach(r=>$n(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=du(e,t);co.test(n)?e.setProperty(jt(r),n.replace(co,""),"important"):e[r]=n}}const ao=["Webkit","Moz","ms"],Ir={};function du(e,t){const n=Ir[t];if(n)return n;let r=xt(t);if(r!=="filter"&&r in e)return Ir[t]=r;r=li(r);for(let s=0;sDr||(gu.then(()=>Dr=0),Dr=Date.now());function _u(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;lt(bu(r,n.value),t,5,[r])};return n.value=e,n.attached=yu(),n}function bu(e,t){if(q(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const go=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Eu=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?lu(e,r,i):t==="style"?fu(e,n,r):or(t)?fs(t)||pu(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):wu(e,t,r,i))?(ho(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&fo(e,t,r,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!de(r))?ho(e,xt(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),fo(e,t,r,i))};function wu(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&go(t)&&W(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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return go(t)&&de(n)?!1:t in e}const yo=e=>{const t=e.props["onUpdate:modelValue"]||!1;return q(t)?n=>Bn(t,n):t};function Su(e){e.target.composing=!0}function _o(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Lr=Symbol("_assign");function bo(e,t,n){return t&&(e=e.trim()),n&&(e=hs(e)),e}const Nh={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Lr]=yo(s);const o=r||s.props&&s.props.type==="number";Vt(e,t?"change":"input",i=>{i.target.composing||e[Lr](bo(e.value,n,o))}),(n||o)&&Vt(e,"change",()=>{e.value=bo(e.value,n,o)}),t||(Vt(e,"compositionstart",Su),Vt(e,"compositionend",_o),Vt(e,"change",_o))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Lr]=yo(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?hs(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},Ru=["ctrl","shift","alt","meta"],Au={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Ru.some(n=>e[`${n}Key`]&&!t.includes(n))},Ih=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const t=Ou().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Cu(r);if(!s)return;const o=t._component;!W(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,Tu(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t});function Tu(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Cu(e){return de(e)?document.querySelector(e):e}let yl;const yr=e=>yl=e,_l=Symbol();function es(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var gn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(gn||(gn={}));function Pu(){const e=hi(!0),t=e.run(()=>Lt({}));let n=[],r=[];const s=Ss({install(o){yr(s),s._a=o,o.provide(_l,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const bl=()=>{};function wo(e,t,n,r=bl){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&pi()&&gc(s),s}function Ht(e,...t){e.forEach(n=>{n(...t)})}const Nu=e=>e(),So=Symbol(),Fr=Symbol();function ts(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];es(s)&&es(r)&&e.hasOwnProperty(n)&&!ce(r)&&!it(r)?e[n]=ts(s,r):e[n]=r}return e}const Iu=Symbol();function Du(e){return!es(e)||!Object.prototype.hasOwnProperty.call(e,Iu)}const{assign:Et}=Object;function Lu(e){return!!(ce(e)&&e.effect)}function Fu(e,t,n,r){const{state:s,actions:o,getters:i}=t,l=n.state.value[e];let c;function u(){l||(n.state.value[e]=s?s():{});const a=Bc(n.state.value[e]);return Et(a,o,Object.keys(i||{}).reduce((f,p)=>(f[p]=Ss(Me(()=>{yr(n);const m=n._s.get(e);return i[p].call(m,m)})),f),{}))}return c=El(e,u,t,n,r,!0),c}function El(e,t,n={},r,s,o){let i;const l=Et({actions:{}},n),c={deep:!0};let u,a,f=new Set,p=new Set,m;const g=r.state.value[e];!o&&!g&&(r.state.value[e]={}),Lt({});let b;function E(V){let U;u=a=!1,typeof V=="function"?(V(r.state.value[e]),U={type:gn.patchFunction,storeId:e,events:m}):(ts(r.state.value[e],V),U={type:gn.patchObject,payload:V,storeId:e,events:m});const ee=b=Symbol();Rs().then(()=>{b===ee&&(u=!0)}),a=!0,Ht(f,U,r.state.value[e])}const O=o?function(){const{state:U}=n,ee=U?U():{};this.$patch(ue=>{Et(ue,ee)})}:bl;function C(){i.stop(),f.clear(),p.clear(),r._s.delete(e)}const N=(V,U="")=>{if(So in V)return V[Fr]=U,V;const ee=function(){yr(r);const ue=Array.from(arguments),ye=new Set,pe=new Set;function Re(K){ye.add(K)}function Ve(K){pe.add(K)}Ht(p,{args:ue,name:ee[Fr],store:M,after:Re,onError:Ve});let J;try{J=V.apply(this&&this.$id===e?this:M,ue)}catch(K){throw Ht(pe,K),K}return J instanceof Promise?J.then(K=>(Ht(ye,K),K)).catch(K=>(Ht(pe,K),Promise.reject(K))):(Ht(ye,J),J)};return ee[So]=!0,ee[Fr]=U,ee},P={_p:r,$id:e,$onAction:wo.bind(null,p),$patch:E,$reset:O,$subscribe(V,U={}){const ee=wo(f,V,U.detached,()=>ue()),ue=i.run(()=>fn(()=>r.state.value[e],ye=>{(U.flush==="sync"?a:u)&&V({storeId:e,type:gn.direct,events:m},ye)},Et({},c,U)));return ee},$dispose:C},M=On(P);r._s.set(e,M);const k=(r._a&&r._a.runWithContext||Nu)(()=>r._e.run(()=>(i=hi()).run(()=>t({action:N}))));for(const V in k){const U=k[V];if(ce(U)&&!Lu(U)||it(U))o||(g&&Du(U)&&(ce(U)?U.value=g[V]:ts(U,g[V])),r.state.value[e][V]=U);else if(typeof U=="function"){const ee=N(U,V);k[V]=ee,l.actions[V]=U}}return Et(M,k),Et(Z(M),k),Object.defineProperty(M,"$state",{get:()=>r.state.value[e],set:V=>{E(U=>{Et(U,V)})}}),r._p.forEach(V=>{Et(M,i.run(()=>V({store:M,app:r._a,pinia:r,options:l})))}),g&&o&&n.hydrate&&n.hydrate(M.$state,g),u=!0,a=!0,M}function Mu(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,l){const c=Qc();return i=i||(c?ke(_l,null):null),i&&yr(i),i=yl,i._s.has(e)||(s?El(e,t,r,i):Fu(e,r,i)),i._s.get(e)}return o.$id=e,o}function Dh(e){const t=Z(e),n={};for(const r in t){const s=t[r];s.effect?n[r]=Me({get:()=>e[r],set(o){e[r]=o}}):(ce(s)||it(s))&&(n[r]=Vc(e,r))}return n}const Uu="modulepreload",ju=function(e){return"/"+e},Ro={},tt=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let c=function(u){return Promise.all(u.map(a=>Promise.resolve(a).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=c(n.map(u=>{if(u=ju(u),u in Ro)return;Ro[u]=!0;const a=u.endsWith(".css"),f=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const p=document.createElement("link");if(p.rel=a?"stylesheet":Uu,a||(p.as="script"),p.crossOrigin="",p.href=u,l&&p.setAttribute("nonce",l),document.head.appendChild(p),a)return new Promise((m,g)=>{p.addEventListener("load",m),p.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})};const qt=typeof document<"u";function wl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Bu(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&wl(e.default)}const te=Object.assign;function Mr(e,t){const n={};for(const r in t){const s=t[r];n[r]=We(s)?s.map(e):e(s)}return n}const yn=()=>{},We=Array.isArray;function Ao(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const Sl=/#/g,Hu=/&/g,ku=/\//g,Vu=/=/g,qu=/\?/g,Rl=/\+/g,$u=/%5B/g,Ku=/%5D/g,Al=/%5E/g,Wu=/%60/g,vl=/%7B/g,Gu=/%7C/g,Ol=/%7D/g,zu=/%20/g;function Ns(e){return e==null?"":encodeURI(""+e).replace(Gu,"|").replace($u,"[").replace(Ku,"]")}function Ju(e){return Ns(e).replace(vl,"{").replace(Ol,"}").replace(Al,"^")}function ns(e){return Ns(e).replace(Rl,"%2B").replace(zu,"+").replace(Sl,"%23").replace(Hu,"%26").replace(Wu,"`").replace(vl,"{").replace(Ol,"}").replace(Al,"^")}function Xu(e){return ns(e).replace(Vu,"%3D")}function Qu(e){return Ns(e).replace(Sl,"%23").replace(qu,"%3F")}function Yu(e){return Qu(e).replace(ku,"%2F")}function vn(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Zu=/\/$/,ef=e=>e.replace(Zu,"");function Ur(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return c=l>=0&&c>l?-1:c,c>=0&&(r=t.slice(0,c),o=t.slice(c,l>0?l:t.length),s=e(o.slice(1))),l>=0&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=sf(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:vn(i)}}function tf(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function vo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function nf(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&Xt(t.matched[r],n.matched[s])&&xl(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Xt(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function xl(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!rf(e[n],t[n]))return!1;return!0}function rf(e,t){return We(e)?Oo(e,t):We(t)?Oo(t,e):e?.valueOf()===t?.valueOf()}function Oo(e,t){return We(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function sf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const bt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let rs=(function(e){return e.pop="pop",e.push="push",e})({}),jr=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function of(e){if(!e)if(qt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),ef(e)}const lf=/^[^#]+#/;function cf(e,t){return e.replace(lf,"#")+t}function af(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const _r=()=>({left:window.scrollX,top:window.scrollY});function uf(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=af(s,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 xo(e,t){return(history.state?history.state.position-t:-1)+e}const ss=new Map;function ff(e,t){ss.set(e,t)}function df(e){const t=ss.get(e);return ss.delete(e),t}function hf(e){return typeof e=="string"||e&&typeof e=="object"}function Tl(e){return typeof e=="string"||typeof e=="symbol"}let ae=(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 Cl=Symbol("");ae.MATCHER_NOT_FOUND+"",ae.NAVIGATION_GUARD_REDIRECT+"",ae.NAVIGATION_ABORTED+"",ae.NAVIGATION_CANCELLED+"",ae.NAVIGATION_DUPLICATED+"";function Qt(e,t){return te(new Error,{type:e,[Cl]:!0},t)}function at(e,t){return e instanceof Error&&Cl in e&&(t==null||!!(e.type&t))}const pf=["params","query","hash"];function mf(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of pf)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function gf(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&ns(s)):[r&&ns(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function yf(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=We(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const _f=Symbol(""),Co=Symbol(""),br=Symbol(""),Is=Symbol(""),os=Symbol("");function sn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function At(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,c)=>{const u=p=>{p===!1?c(Qt(ae.NAVIGATION_ABORTED,{from:n,to:t})):p instanceof Error?c(p):hf(p)?c(Qt(ae.NAVIGATION_GUARD_REDIRECT,{from:t,to:p})):(i&&r.enterCallbacks[s]===i&&typeof p=="function"&&i.push(p),l())},a=o(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(a);e.length<3&&(f=f.then(u)),f.catch(p=>c(p))})}function Br(e,t,n,r,s=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(wl(c)){const u=(c.__vccOpts||c)[t];u&&o.push(At(u,n,r,i,l,s))}else{let u=c();o.push(()=>u.then(a=>{if(!a)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=Bu(a)?a.default:a;i.mods[l]=a,i.components[l]=f;const p=(f.__vccOpts||f)[t];return p&&At(p,n,r,i,l,s)()}))}}return o}function bf(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;iXt(u,l))?r.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(u=>Xt(u,c))||s.push(c))}return[n,r,s]}let Ef=()=>location.protocol+"//"+location.host;function Pl(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(i);return l[0]!=="/"&&(l="/"+l),vo(l,"")}return vo(n,e)+r+s}function wf(e,t,n,r){let s=[],o=[],i=null;const l=({state:p})=>{const m=Pl(e,location),g=n.value,b=t.value;let E=0;if(p){if(n.value=m,t.value=p,i&&i===g){i=null;return}E=b?p.position-b.position:0}else r(m);s.forEach(O=>{O(n.value,g,{delta:E,type:rs.pop,direction:E?E>0?jr.forward:jr.back:jr.unknown})})};function c(){i=n.value}function u(p){s.push(p);const m=()=>{const g=s.indexOf(p);g>-1&&s.splice(g,1)};return o.push(m),m}function a(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(te({},p.state,{scroll:_r()}),"")}}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,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?_r():null}}function Sf(e){const{history:t,location:n}=window,r={value:Pl(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.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:Ef()+e+c;try{t[a?"replaceState":"pushState"](u,"",p),s.value=u}catch(m){console.error(m),n[a?"replace":"assign"](p)}}function i(c,u){o(c,te({},t.state,Po(s.value.back,c,s.value.forward,!0),u,{position:s.value.position}),!0),r.value=c}function l(c,u){const a=te({},s.value,t.state,{forward:c,scroll:_r()});o(a.current,a,!0),o(c,te({},Po(r.value,c,null),{position:a.position+1},u),!1),r.value=c}return{location:r,state:s,push:l,replace:i}}function Rf(e){e=of(e);const t=Sf(e),n=wf(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=te({location:"",base:e,go:r,createHref:cf.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function Af(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),Rf(e)}let Nt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var ge=(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})(ge||{});const vf={type:Nt.Static,value:""},Of=/[a-zA-Z0-9_]/;function xf(e){if(!e)return[[]];if(e==="/")return[[vf]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${u}": ${m}`)}let n=ge.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,c,u="",a="";function f(){u&&(n===ge.Static?o.push({type:Nt.Static,value:u}):n===ge.Param||n===ge.ParamRegExp||n===ge.ParamRegExpEnd?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:Nt.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]===Oe.Static+Oe.Segment?1:-1:0}function Nl(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const If={strict:!1,end:!0,sensitive:!1};function Df(e,t,n){const r=Pf(xf(e.path),n),s=te(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function Lf(e,t){const n=[],r=new Map;t=Ao(If,t);function s(f){return r.get(f)}function o(f,p,m){const g=!m,b=Lo(f);b.aliasOf=m&&m.record;const E=Ao(t,f),O=[b];if("alias"in f){const P=typeof f.alias=="string"?[f.alias]:f.alias;for(const M of P)O.push(Lo(te({},b,{components:m?m.record.components:b.components,path:M,aliasOf:m?m.record:b})))}let C,N;for(const P of O){const{path:M}=P;if(p&&M[0]!=="/"){const X=p.record.path,k=X[X.length-1]==="/"?"":"/";P.path=p.record.path+(M&&k+M)}if(C=Df(P,p,E),m?m.alias.push(C):(N=N||C,N!==C&&N.alias.push(C),g&&f.name&&!Fo(C)&&i(f.name)),Il(C)&&c(C),b.children){const X=b.children;for(let k=0;k{i(N)}:yn}function i(f){if(Tl(f)){const p=r.get(f);p&&(r.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&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function c(f){const p=Uf(f,n);n.splice(p,0,f),f.record.name&&!Fo(f)&&r.set(f.record.name,f)}function u(f,p){let m,g={},b,E;if("name"in f&&f.name){if(m=r.get(f.name),!m)throw Qt(ae.MATCHER_NOT_FOUND,{location:f});E=m.record.name,g=te(Do(p.params,m.keys.filter(N=>!N.optional).concat(m.parent?m.parent.keys.filter(N=>N.optional):[]).map(N=>N.name)),f.params&&Do(f.params,m.keys.map(N=>N.name))),b=m.stringify(g)}else if(f.path!=null)b=f.path,m=n.find(N=>N.re.test(b)),m&&(g=m.parse(b),E=m.record.name);else{if(m=p.name?r.get(p.name):n.find(N=>N.re.test(p.path)),!m)throw Qt(ae.MATCHER_NOT_FOUND,{location:f,currentLocation:p});E=m.record.name,g=te({},p.params,f.params),b=m.stringify(g)}const O=[];let C=m;for(;C;)O.unshift(C.record),C=C.parent;return{name:E,path:b,params:g,matched:O,meta:Mf(O)}}e.forEach(f=>o(f));function a(){n.length=0,r.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:a,getRoutes:l,getRecordMatcher:s}}function Do(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function Lo(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Ff(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 Ff(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function Fo(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Mf(e){return e.reduce((t,n)=>te(t,n.meta),{})}function Uf(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;Nl(e,t[o])<0?r=o:n=o+1}const s=jf(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function jf(e){let t=e;for(;t=t.parent;)if(Il(t)&&Nl(e,t)===0)return t}function Il({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Mo(e){const t=ke(br),n=ke(Is),r=Me(()=>{const c=Ot(e.to);return t.resolve(c)}),s=Me(()=>{const{matched:c}=r.value,{length:u}=c,a=c[u-1],f=n.matched;if(!a||!f.length)return-1;const p=f.findIndex(Xt.bind(null,a));if(p>-1)return p;const m=Uo(c[u-2]);return u>1&&Uo(a)===m&&f[f.length-1].path!==m?f.findIndex(Xt.bind(null,c[u-2])):p}),o=Me(()=>s.value>-1&&qf(n.params,r.value.params)),i=Me(()=>s.value>-1&&s.value===n.matched.length-1&&xl(n.params,r.value.params));function l(c={}){if(Vf(c)){const u=t[Ot(e.replace)?"replace":"push"](Ot(e.to)).catch(yn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Me(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function Bf(e){return e.length===1?e[0]:e}const Hf=Os({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=On(Mo(e)),{options:r}=ke(br),s=Me(()=>({[jo(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[jo(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&Bf(t.default(n));return e.custom?o:ml("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),kf=Hf;function Vf(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 qf(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!We(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function Uo(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const jo=(e,t,n)=>e??t??n,$f=Os({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=ke(os),s=Me(()=>e.route||r.value),o=ke(Co,0),i=Me(()=>{let u=Ot(o);const{matched:a}=s.value;let f;for(;(f=a[u])&&!f.components;)u++;return u}),l=Me(()=>s.value.matched[i.value]);Hn(Co,Me(()=>i.value+1)),Hn(_f,l),Hn(os,s);const c=Lt();return fn(()=>[c.value,l.value,e.name],([u,a,f],[p,m,g])=>{a&&(a.instances[f]=u,m&&m!==a&&u&&u===p&&(a.leaveGuards.size||(a.leaveGuards=m.leaveGuards),a.updateGuards.size||(a.updateGuards=m.updateGuards))),u&&a&&(!m||!Xt(a,m)||!p)&&(a.enterCallbacks[f]||[]).forEach(b=>b(u))},{flush:"post"}),()=>{const u=s.value,a=e.name,f=l.value,p=f&&f.components[a];if(!p)return Bo(n.default,{Component:p,route:u});const m=f.props[a],g=m?m===!0?u.params:typeof m=="function"?m(u):m:null,E=ml(p,te({},g,t,{onVnodeUnmounted:O=>{O.component.isUnmounted&&(f.instances[a]=null)},ref:c}));return Bo(n.default,{Component:E,route:u})||E}}});function Bo(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Dl=$f;function Kf(e){const t=Lf(e.routes,e),n=e.parseQuery||gf,r=e.stringifyQuery||To,s=e.history,o=sn(),i=sn(),l=sn(),c=Mc(bt);let u=bt;qt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const a=Mr.bind(null,R=>""+R),f=Mr.bind(null,Yu),p=Mr.bind(null,vn);function m(R,F){let D,j;return Tl(R)?(D=t.getRecordMatcher(R),j=F):j=R,t.addRoute(j,D)}function g(R){const F=t.getRecordMatcher(R);F&&t.removeRoute(F)}function b(){return t.getRoutes().map(R=>R.record)}function E(R){return!!t.getRecordMatcher(R)}function O(R,F){if(F=te({},F||c.value),typeof R=="string"){const y=Ur(n,R,F.path),w=t.resolve({path:y.path},F),A=s.createHref(y.fullPath);return te(y,w,{params:p(w.params),hash:vn(y.hash),redirectedFrom:void 0,href:A})}let D;if(R.path!=null)D=te({},R,{path:Ur(n,R.path,F.path).path});else{const y=te({},R.params);for(const w in y)y[w]==null&&delete y[w];D=te({},R,{params:f(y)}),F.params=f(F.params)}const j=t.resolve(D,F),Q=R.hash||"";j.params=a(p(j.params));const d=tf(r,te({},R,{hash:Ju(Q),path:j.path})),h=s.createHref(d);return te({fullPath:d,hash:Q,query:r===To?yf(R.query):R.query||{}},j,{redirectedFrom:void 0,href:h})}function C(R){return typeof R=="string"?Ur(n,R,c.value.path):te({},R)}function N(R,F){if(u!==R)return Qt(ae.NAVIGATION_CANCELLED,{from:F,to:R})}function P(R){return k(R)}function M(R){return P(te(C(R),{replace:!0}))}function X(R,F){const D=R.matched[R.matched.length-1];if(D&&D.redirect){const{redirect:j}=D;let Q=typeof j=="function"?j(R,F):j;return typeof Q=="string"&&(Q=Q.includes("?")||Q.includes("#")?Q=C(Q):{path:Q},Q.params={}),te({query:R.query,hash:R.hash,params:Q.path!=null?{}:R.params},Q)}}function k(R,F){const D=u=O(R),j=c.value,Q=R.state,d=R.force,h=R.replace===!0,y=X(D,j);if(y)return k(te(C(y),{state:typeof y=="object"?te({},Q,y.state):Q,force:d,replace:h}),F||D);const w=D;w.redirectedFrom=F;let A;return!d&&nf(r,j,D)&&(A=Qt(ae.NAVIGATION_DUPLICATED,{to:w,from:j}),me(j,j,!0,!1)),(A?Promise.resolve(A):ee(w,j)).catch(S=>at(S)?at(S,ae.NAVIGATION_GUARD_REDIRECT)?S:ze(S):z(S,w,j)).then(S=>{if(S){if(at(S,ae.NAVIGATION_GUARD_REDIRECT))return k(te({replace:h},C(S.to),{state:typeof S.to=="object"?te({},Q,S.to.state):Q,force:d}),F||w)}else S=ye(w,j,!0,h,Q);return ue(w,j,S),S})}function V(R,F){const D=N(R,F);return D?Promise.reject(D):Promise.resolve()}function U(R){const F=qe.values().next().value;return F&&typeof F.runWithContext=="function"?F.runWithContext(R):R()}function ee(R,F){let D;const[j,Q,d]=bf(R,F);D=Br(j.reverse(),"beforeRouteLeave",R,F);for(const y of j)y.leaveGuards.forEach(w=>{D.push(At(w,R,F))});const h=V.bind(null,R,F);return D.push(h),He(D).then(()=>{D=[];for(const y of o.list())D.push(At(y,R,F));return D.push(h),He(D)}).then(()=>{D=Br(Q,"beforeRouteUpdate",R,F);for(const y of Q)y.updateGuards.forEach(w=>{D.push(At(w,R,F))});return D.push(h),He(D)}).then(()=>{D=[];for(const y of d)if(y.beforeEnter)if(We(y.beforeEnter))for(const w of y.beforeEnter)D.push(At(w,R,F));else D.push(At(y.beforeEnter,R,F));return D.push(h),He(D)}).then(()=>(R.matched.forEach(y=>y.enterCallbacks={}),D=Br(d,"beforeRouteEnter",R,F,U),D.push(h),He(D))).then(()=>{D=[];for(const y of i.list())D.push(At(y,R,F));return D.push(h),He(D)}).catch(y=>at(y,ae.NAVIGATION_CANCELLED)?y:Promise.reject(y))}function ue(R,F,D){l.list().forEach(j=>U(()=>j(R,F,D)))}function ye(R,F,D,j,Q){const d=N(R,F);if(d)return d;const h=F===bt,y=qt?history.state:{};D&&(j||h?s.replace(R.fullPath,te({scroll:h&&y&&y.scroll},Q)):s.push(R.fullPath,Q)),c.value=R,me(R,F,D,h),ze()}let pe;function Re(){pe||(pe=s.listen((R,F,D)=>{if(!Xe.listening)return;const j=O(R),Q=X(j,Xe.currentRoute.value);if(Q){k(te(Q,{replace:!0,force:!0}),j).catch(yn);return}u=j;const d=c.value;qt&&ff(xo(d.fullPath,D.delta),_r()),ee(j,d).catch(h=>at(h,ae.NAVIGATION_ABORTED|ae.NAVIGATION_CANCELLED)?h:at(h,ae.NAVIGATION_GUARD_REDIRECT)?(k(te(C(h.to),{force:!0}),j).then(y=>{at(y,ae.NAVIGATION_ABORTED|ae.NAVIGATION_DUPLICATED)&&!D.delta&&D.type===rs.pop&&s.go(-1,!1)}).catch(yn),Promise.reject()):(D.delta&&s.go(-D.delta,!1),z(h,j,d))).then(h=>{h=h||ye(j,d,!1),h&&(D.delta&&!at(h,ae.NAVIGATION_CANCELLED)?s.go(-D.delta,!1):D.type===rs.pop&&at(h,ae.NAVIGATION_ABORTED|ae.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),ue(j,d,h)}).catch(yn)}))}let Ve=sn(),J=sn(),K;function z(R,F,D){ze(R);const j=J.list();return j.length?j.forEach(Q=>Q(R,F,D)):console.error(R),Promise.reject(R)}function Be(){return K&&c.value!==bt?Promise.resolve():new Promise((R,F)=>{Ve.add([R,F])})}function ze(R){return K||(K=!R,Re(),Ve.list().forEach(([F,D])=>R?D(R):F()),Ve.reset()),R}function me(R,F,D,j){const{scrollBehavior:Q}=e;if(!qt||!Q)return Promise.resolve();const d=!D&&df(xo(R.fullPath,0))||(j||!D)&&history.state&&history.state.scroll||null;return Rs().then(()=>Q(R,F,d)).then(h=>h&&uf(h)).catch(h=>z(h,R,F))}const fe=R=>s.go(R);let Je;const qe=new Set,Xe={currentRoute:c,listening:!0,addRoute:m,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:E,getRoutes:b,resolve:O,options:e,push:P,replace:M,go:fe,back:()=>fe(-1),forward:()=>fe(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:J.add,isReady:Be,install(R){R.component("RouterLink",kf),R.component("RouterView",Dl),R.config.globalProperties.$router=Xe,Object.defineProperty(R.config.globalProperties,"$route",{enumerable:!0,get:()=>Ot(c)}),qt&&!Je&&c.value===bt&&(Je=!0,P(s.location).catch(j=>{}));const F={};for(const j in bt)Object.defineProperty(F,j,{get:()=>c.value[j],enumerable:!0});R.provide(br,Xe),R.provide(Is,Ci(F)),R.provide(os,c);const D=R.unmount;qe.add(R),R.unmount=function(){qe.delete(R),qe.size<1&&(u=bt,pe&&pe(),pe=null,c.value=bt,Je=!1,K=!1),D()}}};function He(R){return R.reduce((F,D)=>F.then(()=>U(D)),Promise.resolve())}return Xe}function Lh(){return ke(br)}function Fh(e){return ke(Is)}function Ll(e,t){return function(){return e.apply(t,arguments)}}const{toString:Wf}=Object.prototype,{getPrototypeOf:Ds}=Object,{iterator:Er,toStringTag:Fl}=Symbol,wr=(e=>t=>{const n=Wf.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ge=e=>(e=e.toLowerCase(),t=>wr(t)===e),Sr=e=>t=>typeof t===e,{isArray:Zt}=Array,Yt=Sr("undefined");function Cn(e){return e!==null&&!Yt(e)&&e.constructor!==null&&!Yt(e.constructor)&&Ie(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Ml=Ge("ArrayBuffer");function Gf(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Ml(e.buffer),t}const zf=Sr("string"),Ie=Sr("function"),Ul=Sr("number"),Pn=e=>e!==null&&typeof e=="object",Jf=e=>e===!0||e===!1,Kn=e=>{if(wr(e)!=="object")return!1;const t=Ds(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Fl in e)&&!(Er in e)},Xf=e=>{if(!Pn(e)||Cn(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},Qf=Ge("Date"),Yf=Ge("File"),Zf=Ge("Blob"),ed=Ge("FileList"),td=e=>Pn(e)&&Ie(e.pipe),nd=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Ie(e.append)&&((t=wr(e))==="formdata"||t==="object"&&Ie(e.toString)&&e.toString()==="[object FormData]"))},rd=Ge("URLSearchParams"),[sd,od,id,ld]=["ReadableStream","Request","Response","Headers"].map(Ge),cd=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Nn(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),Zt(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const It=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Bl=e=>!Yt(e)&&e!==It;function is(){const{caseless:e,skipUndefined:t}=Bl(this)&&this||{},n={},r=(s,o)=>{const i=e&&jl(n,o)||o;Kn(n[i])&&Kn(s)?n[i]=is(n[i],s):Kn(s)?n[i]=is({},s):Zt(s)?n[i]=s.slice():(!t||!Yt(s))&&(n[i]=s)};for(let s=0,o=arguments.length;s(Nn(t,(s,o)=>{n&&Ie(s)?e[o]=Ll(s,n):e[o]=s},{allOwnKeys:r}),e),ud=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),fd=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},dd=(e,t,n,r)=>{let s,o,i;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&Ds(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},hd=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},pd=e=>{if(!e)return null;if(Zt(e))return e;let t=e.length;if(!Ul(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},md=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Ds(Uint8Array)),gd=(e,t)=>{const r=(e&&e[Er]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},yd=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},_d=Ge("HTMLFormElement"),bd=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),Ho=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Ed=Ge("RegExp"),Hl=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Nn(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},wd=e=>{Hl(e,(t,n)=>{if(Ie(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Ie(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Sd=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return Zt(e)?r(e):r(String(e).split(t)),n},Rd=()=>{},Ad=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function vd(e){return!!(e&&Ie(e.append)&&e[Fl]==="FormData"&&e[Er])}const Od=e=>{const t=new Array(10),n=(r,s)=>{if(Pn(r)){if(t.indexOf(r)>=0)return;if(Cn(r))return r;if(!("toJSON"in r)){t[s]=r;const o=Zt(r)?[]:{};return Nn(r,(i,l)=>{const c=n(i,s+1);!Yt(c)&&(o[l]=c)}),t[s]=void 0,o}}return r};return n(e,0)},xd=Ge("AsyncFunction"),Td=e=>e&&(Pn(e)||Ie(e))&&Ie(e.then)&&Ie(e.catch),kl=((e,t)=>e?setImmediate:t?((n,r)=>(It.addEventListener("message",({source:s,data:o})=>{s===It&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),It.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Ie(It.postMessage)),Cd=typeof queueMicrotask<"u"?queueMicrotask.bind(It):typeof process<"u"&&process.nextTick||kl,Pd=e=>e!=null&&Ie(e[Er]),_={isArray:Zt,isArrayBuffer:Ml,isBuffer:Cn,isFormData:nd,isArrayBufferView:Gf,isString:zf,isNumber:Ul,isBoolean:Jf,isObject:Pn,isPlainObject:Kn,isEmptyObject:Xf,isReadableStream:sd,isRequest:od,isResponse:id,isHeaders:ld,isUndefined:Yt,isDate:Qf,isFile:Yf,isBlob:Zf,isRegExp:Ed,isFunction:Ie,isStream:td,isURLSearchParams:rd,isTypedArray:md,isFileList:ed,forEach:Nn,merge:is,extend:ad,trim:cd,stripBOM:ud,inherits:fd,toFlatObject:dd,kindOf:wr,kindOfTest:Ge,endsWith:hd,toArray:pd,forEachEntry:gd,matchAll:yd,isHTMLForm:_d,hasOwnProperty:Ho,hasOwnProp:Ho,reduceDescriptors:Hl,freezeMethods:wd,toObjectSet:Sd,toCamelCase:bd,noop:Rd,toFiniteNumber:Ad,findKey:jl,global:It,isContextDefined:Bl,isSpecCompliantForm:vd,toJSONObject:Od,isAsyncFn:xd,isThenable:Td,setImmediate:kl,asap:Cd,isIterable:Pd};function G(e,t,n,r,s){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),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}_.inherits(G,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:_.toJSONObject(this.config),code:this.code,status:this.status}}});const Vl=G.prototype,ql={};["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=>{ql[e]={value:e}});Object.defineProperties(G,ql);Object.defineProperty(Vl,"isAxiosError",{value:!0});G.from=(e,t,n,r,s,o)=>{const i=Object.create(Vl);_.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 G.call(i,l,c,n,r,s),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 Nd=null;function ls(e){return _.isPlainObject(e)||_.isArray(e)}function $l(e){return _.endsWith(e,"[]")?e.slice(0,-2):e}function ko(e,t,n){return e?e.concat(t).map(function(s,o){return s=$l(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function Id(e){return _.isArray(e)&&!e.some(ls)}const Dd=_.toFlatObject(_,{},null,function(t){return/^is[A-Z]/.test(t)});function Rr(e,t,n){if(!_.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=_.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(b,E){return!_.isUndefined(E[b])});const r=n.metaTokens,s=n.visitor||a,o=n.dots,i=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&_.isSpecCompliantForm(t);if(!_.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(_.isDate(g))return g.toISOString();if(_.isBoolean(g))return g.toString();if(!c&&_.isBlob(g))throw new G("Blob is not supported. Use a Buffer instead.");return _.isArrayBuffer(g)||_.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function a(g,b,E){let O=g;if(g&&!E&&typeof g=="object"){if(_.endsWith(b,"{}"))b=r?b:b.slice(0,-2),g=JSON.stringify(g);else if(_.isArray(g)&&Id(g)||(_.isFileList(g)||_.endsWith(b,"[]"))&&(O=_.toArray(g)))return b=$l(b),O.forEach(function(N,P){!(_.isUndefined(N)||N===null)&&t.append(i===!0?ko([b],P,o):i===null?b:b+"[]",u(N))}),!1}return ls(g)?!0:(t.append(ko(E,b,o),u(g)),!1)}const f=[],p=Object.assign(Dd,{defaultVisitor:a,convertValue:u,isVisitable:ls});function m(g,b){if(!_.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+b.join("."));f.push(g),_.forEach(g,function(O,C){(!(_.isUndefined(O)||O===null)&&s.call(t,O,_.isString(C)?C.trim():C,b,p))===!0&&m(O,b?b.concat(C):[C])}),f.pop()}}if(!_.isObject(e))throw new TypeError("data must be an object");return m(e),t}function Vo(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Ls(e,t){this._pairs=[],e&&Rr(e,this,t)}const Kl=Ls.prototype;Kl.append=function(t,n){this._pairs.push([t,n])};Kl.toString=function(t){const n=t?function(r){return t.call(this,r,Vo)}:Vo;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Ld(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Wl(e,t,n){if(!t)return e;const r=n&&n.encode||Ld;_.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=_.isURLSearchParams(t)?t.toString():new Ls(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class qo{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){_.forEach(this.handlers,function(r){r!==null&&t(r)})}}const Gl={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Fd=typeof URLSearchParams<"u"?URLSearchParams:Ls,Md=typeof FormData<"u"?FormData:null,Ud=typeof Blob<"u"?Blob:null,jd={isBrowser:!0,classes:{URLSearchParams:Fd,FormData:Md,Blob:Ud},protocols:["http","https","file","blob","url","data"]},Fs=typeof window<"u"&&typeof document<"u",cs=typeof navigator=="object"&&navigator||void 0,Bd=Fs&&(!cs||["ReactNative","NativeScript","NS"].indexOf(cs.product)<0),Hd=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",kd=Fs&&window.location.href||"http://localhost",Vd=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Fs,hasStandardBrowserEnv:Bd,hasStandardBrowserWebWorkerEnv:Hd,navigator:cs,origin:kd},Symbol.toStringTag,{value:"Module"})),Ee={...Vd,...jd};function qd(e,t){return Rr(e,new Ee.classes.URLSearchParams,{visitor:function(n,r,s,o){return Ee.isNode&&_.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function $d(e){return _.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Kd(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&_.isArray(s)?s.length:i,c?(_.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!l):((!s[i]||!_.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&_.isArray(s[i])&&(s[i]=Kd(s[i])),!l)}if(_.isFormData(e)&&_.isFunction(e.entries)){const n={};return _.forEachEntry(e,(r,s)=>{t($d(r),s,n,0)}),n}return null}function Wd(e,t,n){if(_.isString(e))try{return(t||JSON.parse)(e),_.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const In={transitional:Gl,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=_.isObject(t);if(o&&_.isHTMLForm(t)&&(t=new FormData(t)),_.isFormData(t))return s?JSON.stringify(zl(t)):t;if(_.isArrayBuffer(t)||_.isBuffer(t)||_.isStream(t)||_.isFile(t)||_.isBlob(t)||_.isReadableStream(t))return t;if(_.isArrayBufferView(t))return t.buffer;if(_.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return qd(t,this.formSerializer).toString();if((l=_.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return Rr(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),Wd(t)):t}],transformResponse:[function(t){const n=this.transitional||In.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(_.isResponse(t)||_.isReadableStream(t))return t;if(t&&_.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(i)throw l.name==="SyntaxError"?G.from(l,G.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:Ee.classes.FormData,Blob:Ee.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};_.forEach(["delete","get","head","post","put","patch"],e=>{In.headers[e]={}});const Gd=_.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"]),zd=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&Gd[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},$o=Symbol("internals");function on(e){return e&&String(e).trim().toLowerCase()}function Wn(e){return e===!1||e==null?e:_.isArray(e)?e.map(Wn):String(e)}function Jd(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const Xd=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Hr(e,t,n,r,s){if(_.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!_.isString(t)){if(_.isString(r))return t.indexOf(r)!==-1;if(_.isRegExp(r))return r.test(t)}}function Qd(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Yd(e,t){const n=_.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let De=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(l,c,u){const a=on(c);if(!a)throw new Error("header name must be a non-empty string");const f=_.findKey(s,a);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||c]=Wn(l))}const i=(l,c)=>_.forEach(l,(u,a)=>o(u,a,c));if(_.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(_.isString(t)&&(t=t.trim())&&!Xd(t))i(zd(t),n);else if(_.isObject(t)&&_.isIterable(t)){let l={},c,u;for(const a of t){if(!_.isArray(a))throw TypeError("Object iterator must return a key-value pair");l[u=a[0]]=(c=l[u])?_.isArray(c)?[...c,a[1]]:[c,a[1]]:a[1]}i(l,n)}else t!=null&&o(n,t,r);return this}get(t,n){if(t=on(t),t){const r=_.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return Jd(s);if(_.isFunction(n))return n.call(this,s,r);if(_.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=on(t),t){const r=_.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Hr(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=on(i),i){const l=_.findKey(r,i);l&&(!n||Hr(r,r[l],l,n))&&(delete r[l],s=!0)}}return _.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||Hr(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return _.forEach(this,(s,o)=>{const i=_.findKey(r,o);if(i){n[i]=Wn(s),delete n[o];return}const l=t?Qd(o):String(o).trim();l!==o&&delete n[o],n[l]=Wn(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return _.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&_.isArray(r)?r.join(", "):r)}),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 r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[$o]=this[$o]={accessors:{}}).accessors,s=this.prototype;function o(i){const l=on(i);r[l]||(Yd(s,i),r[l]=!0)}return _.isArray(t)?t.forEach(o):o(t),this}};De.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);_.reduceDescriptors(De.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});_.freezeMethods(De);function kr(e,t){const n=this||In,r=t||n,s=De.from(r.headers);let o=r.data;return _.forEach(e,function(l){o=l.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function Jl(e){return!!(e&&e.__CANCEL__)}function en(e,t,n){G.call(this,e??"canceled",G.ERR_CANCELED,t,n),this.name="CanceledError"}_.inherits(en,G,{__CANCEL__:!0});function Xl(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new G("Request failed with status code "+n.status,[G.ERR_BAD_REQUEST,G.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function Zd(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function eh(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),a=r[o];i||(i=u),n[s]=c,r[s]=u;let f=o,p=0;for(;f!==s;)p+=n[f++],f=f%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i{n=a,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const a=Date.now(),f=a-n;f>=r?i(u,a):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-f)))},()=>s&&i(s)]}const sr=(e,t,n=3)=>{let r=0;const s=eh(50,250);return th(o=>{const i=o.loaded,l=o.lengthComputable?o.total:void 0,c=i-r,u=s(c),a=i<=l;r=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)},Ko=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Wo=e=>(...t)=>_.asap(()=>e(...t)),nh=Ee.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Ee.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Ee.origin),Ee.navigator&&/(msie|trident)/i.test(Ee.navigator.userAgent)):()=>!0,rh=Ee.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];_.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),_.isString(r)&&l.push(`path=${r}`),_.isString(s)&&l.push(`domain=${s}`),o===!0&&l.push("secure"),_.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 sh(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function oh(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Ql(e,t,n){let r=!sh(t);return e&&(r||n==!1)?oh(e,t):t}const Go=e=>e instanceof De?{...e}:e;function Ut(e,t){t=t||{};const n={};function r(u,a,f,p){return _.isPlainObject(u)&&_.isPlainObject(a)?_.merge.call({caseless:p},u,a):_.isPlainObject(a)?_.merge({},a):_.isArray(a)?a.slice():a}function s(u,a,f,p){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u,f,p)}else return r(u,a,f,p)}function o(u,a){if(!_.isUndefined(a))return r(void 0,a)}function i(u,a){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u)}else return r(void 0,a)}function l(u,a,f){if(f in t)return r(u,a);if(f in e)return r(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)=>s(Go(u),Go(a),f,!0)};return _.forEach(Object.keys({...e,...t}),function(a){const f=c[a]||s,p=f(e[a],t[a],a);_.isUndefined(p)&&f!==l||(n[a]=p)}),n}const Yl=e=>{const t=Ut({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:l}=t;if(t.headers=i=De.from(i),t.url=Wl(Ql(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&i.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),_.isFormData(n)){if(Ee.hasStandardBrowserEnv||Ee.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(_.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(Ee.hasStandardBrowserEnv&&(r&&_.isFunction(r)&&(r=r(t)),r||r!==!1&&nh(t.url))){const c=s&&o&&rh.read(o);c&&i.set(s,c)}return t},ih=typeof XMLHttpRequest<"u",lh=ih&&function(e){return new Promise(function(n,r){const s=Yl(e);let o=s.data;const i=De.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,a,f,p,m,g;function b(){m&&m(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(a),s.signal&&s.signal.removeEventListener("abort",a)}let E=new XMLHttpRequest;E.open(s.method.toUpperCase(),s.url,!0),E.timeout=s.timeout;function O(){if(!E)return;const N=De.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),M={data:!l||l==="text"||l==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:N,config:e,request:E};Xl(function(k){n(k),b()},function(k){r(k),b()},M),E=null}"onloadend"in E?E.onloadend=O:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.indexOf("file:")===0)||setTimeout(O)},E.onabort=function(){E&&(r(new G("Request aborted",G.ECONNABORTED,e,E)),E=null)},E.onerror=function(P){const M=P&&P.message?P.message:"Network Error",X=new G(M,G.ERR_NETWORK,e,E);X.event=P||null,r(X),E=null},E.ontimeout=function(){let P=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const M=s.transitional||Gl;s.timeoutErrorMessage&&(P=s.timeoutErrorMessage),r(new G(P,M.clarifyTimeoutError?G.ETIMEDOUT:G.ECONNABORTED,e,E)),E=null},o===void 0&&i.setContentType(null),"setRequestHeader"in E&&_.forEach(i.toJSON(),function(P,M){E.setRequestHeader(M,P)}),_.isUndefined(s.withCredentials)||(E.withCredentials=!!s.withCredentials),l&&l!=="json"&&(E.responseType=s.responseType),u&&([p,g]=sr(u,!0),E.addEventListener("progress",p)),c&&E.upload&&([f,m]=sr(c),E.upload.addEventListener("progress",f),E.upload.addEventListener("loadend",m)),(s.cancelToken||s.signal)&&(a=N=>{E&&(r(!N||N.type?new en(null,e,E):N),E.abort(),E=null)},s.cancelToken&&s.cancelToken.subscribe(a),s.signal&&(s.signal.aborted?a():s.signal.addEventListener("abort",a)));const C=Zd(s.url);if(C&&Ee.protocols.indexOf(C)===-1){r(new G("Unsupported protocol "+C+":",G.ERR_BAD_REQUEST,e));return}E.send(o||null)})},ch=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,l();const a=u instanceof Error?u:this.reason;r.abort(a instanceof G?a:new en(a instanceof Error?a.message:a))}};let i=t&&setTimeout(()=>{i=null,o(new G(`timeout ${t} of ms exceeded`,G.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}=r;return c.unsubscribe=()=>_.asap(l),c}},ah=function*(e,t){let n=e.byteLength;if(n{const s=uh(e,t);let o=0,i,l=c=>{i||(i=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:a}=await s.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),s.return()}},{highWaterMark:2})},Jo=64*1024,{isFunction:Un}=_,dh=(({Request:e,Response:t})=>({Request:e,Response:t}))(_.global),{ReadableStream:Xo,TextEncoder:Qo}=_.global,Yo=(e,...t)=>{try{return!!e(...t)}catch{return!1}},hh=e=>{e=_.merge.call({skipUndefined:!0},dh,e);const{fetch:t,Request:n,Response:r}=e,s=t?Un(t):typeof fetch=="function",o=Un(n),i=Un(r);if(!s)return!1;const l=s&&Un(Xo),c=s&&(typeof Qo=="function"?(g=>b=>g.encode(b))(new Qo):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=o&&l&&Yo(()=>{let g=!1;const b=new n(Ee.origin,{body:new Xo,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!b}),a=i&&l&&Yo(()=>_.isReadableStream(new r("").body)),f={stream:a&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(b,E)=>{let O=b&&b[g];if(O)return O.call(b);throw new G(`Response type '${g}' is not supported`,G.ERR_NOT_SUPPORT,E)})});const p=async g=>{if(g==null)return 0;if(_.isBlob(g))return g.size;if(_.isSpecCompliantForm(g))return(await new n(Ee.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(_.isArrayBufferView(g)||_.isArrayBuffer(g))return g.byteLength;if(_.isURLSearchParams(g)&&(g=g+""),_.isString(g))return(await c(g)).byteLength},m=async(g,b)=>{const E=_.toFiniteNumber(g.getContentLength());return E??p(b)};return async g=>{let{url:b,method:E,data:O,signal:C,cancelToken:N,timeout:P,onDownloadProgress:M,onUploadProgress:X,responseType:k,headers:V,withCredentials:U="same-origin",fetchOptions:ee}=Yl(g),ue=t||fetch;k=k?(k+"").toLowerCase():"text";let ye=ch([C,N&&N.toAbortSignal()],P),pe=null;const Re=ye&&ye.unsubscribe&&(()=>{ye.unsubscribe()});let Ve;try{if(X&&u&&E!=="get"&&E!=="head"&&(Ve=await m(V,O))!==0){let me=new n(b,{method:"POST",body:O,duplex:"half"}),fe;if(_.isFormData(O)&&(fe=me.headers.get("content-type"))&&V.setContentType(fe),me.body){const[Je,qe]=Ko(Ve,sr(Wo(X)));O=zo(me.body,Jo,Je,qe)}}_.isString(U)||(U=U?"include":"omit");const J=o&&"credentials"in n.prototype,K={...ee,signal:ye,method:E.toUpperCase(),headers:V.normalize().toJSON(),body:O,duplex:"half",credentials:J?U:void 0};pe=o&&new n(b,K);let z=await(o?ue(pe,ee):ue(b,K));const Be=a&&(k==="stream"||k==="response");if(a&&(M||Be&&Re)){const me={};["status","statusText","headers"].forEach(Xe=>{me[Xe]=z[Xe]});const fe=_.toFiniteNumber(z.headers.get("content-length")),[Je,qe]=M&&Ko(fe,sr(Wo(M),!0))||[];z=new r(zo(z.body,Jo,Je,()=>{qe&&qe(),Re&&Re()}),me)}k=k||"text";let ze=await f[_.findKey(f,k)||"text"](z,g);return!Be&&Re&&Re(),await new Promise((me,fe)=>{Xl(me,fe,{data:ze,headers:De.from(z.headers),status:z.status,statusText:z.statusText,config:g,request:pe})})}catch(J){throw Re&&Re(),J&&J.name==="TypeError"&&/Load failed|fetch/i.test(J.message)?Object.assign(new G("Network Error",G.ERR_NETWORK,g,pe),{cause:J.cause||J}):G.from(J,J&&J.code,g,pe)}}},ph=new Map,Zl=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,l=i,c,u,a=ph;for(;l--;)c=o[l],u=a.get(c),u===void 0&&a.set(c,u=l?new Map:hh(t)),a=u;return u};Zl();const Ms={http:Nd,xhr:lh,fetch:{get:Zl}};_.forEach(Ms,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Zo=e=>`- ${e}`,mh=e=>_.isFunction(e)||e===null||e===!1;function gh(e,t){e=_.isArray(e)?e:[e];const{length:n}=e;let r,s;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(Zo).join(` +`):" "+Zo(i[0]):"as no adapter specified";throw new G("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const ec={getAdapter:gh,adapters:Ms};function Vr(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new en(null,e)}function ei(e){return Vr(e),e.headers=De.from(e.headers),e.data=kr.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),ec.getAdapter(e.adapter||In.adapter,e)(e).then(function(r){return Vr(e),r.data=kr.call(e,e.transformResponse,r),r.headers=De.from(r.headers),r},function(r){return Jl(r)||(Vr(e),r&&r.response&&(r.response.data=kr.call(e,e.transformResponse,r.response),r.response.headers=De.from(r.response.headers))),Promise.reject(r)})}const tc="1.13.2",Ar={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Ar[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const ti={};Ar.transitional=function(t,n,r){function s(o,i){return"[Axios v"+tc+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,l)=>{if(t===!1)throw new G(s(i," has been removed"+(n?" in "+n:"")),G.ERR_DEPRECATED);return n&&!ti[i]&&(ti[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,l):!0}};Ar.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function yh(e,t,n){if(typeof e!="object")throw new G("options must be an object",G.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const l=e[o],c=l===void 0||i(l,o,e);if(c!==!0)throw new G("option "+o+" must be "+c,G.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new G("Unknown option "+o,G.ERR_BAD_OPTION)}}const Gn={assertOptions:yh,validators:Ar},nt=Gn.validators;let Mt=class{constructor(t){this.defaults=t||{},this.interceptors={request:new qo,response:new qo}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Ut(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&Gn.assertOptions(r,{silentJSONParsing:nt.transitional(nt.boolean),forcedJSONParsing:nt.transitional(nt.boolean),clarifyTimeoutError:nt.transitional(nt.boolean)},!1),s!=null&&(_.isFunction(s)?n.paramsSerializer={serialize:s}:Gn.assertOptions(s,{encode:nt.function,serialize:nt.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Gn.assertOptions(n,{baseUrl:nt.spelling("baseURL"),withXsrfToken:nt.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&_.merge(o.common,o[n.method]);o&&_.forEach(["delete","get","head","post","put","patch","common"],g=>{delete o[g]}),n.headers=De.concat(i,o);const l=[];let c=!0;this.interceptors.request.forEach(function(b){typeof b.runWhen=="function"&&b.runWhen(n)===!1||(c=c&&b.synchronous,l.unshift(b.fulfilled,b.rejected))});const u=[];this.interceptors.response.forEach(function(b){u.push(b.fulfilled,b.rejected)});let a,f=0,p;if(!c){const g=[ei.bind(this),void 0];for(g.unshift(...l),g.push(...u),p=g.length,a=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(l=>{r.subscribe(l),o=l}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,l){r.reason||(r.reason=new en(o,i,l),n(r.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=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new nc(function(s){t=s}),cancel:t}}};function bh(e){return function(n){return e.apply(null,n)}}function Eh(e){return _.isObject(e)&&e.isAxiosError===!0}const as={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(as).forEach(([e,t])=>{as[t]=e});function rc(e){const t=new Mt(e),n=Ll(Mt.prototype.request,t);return _.extend(n,Mt.prototype,t,{allOwnKeys:!0}),_.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return rc(Ut(e,s))},n}const he=rc(In);he.Axios=Mt;he.CanceledError=en;he.CancelToken=_h;he.isCancel=Jl;he.VERSION=tc;he.toFormData=Rr;he.AxiosError=G;he.Cancel=he.CanceledError;he.all=function(t){return Promise.all(t)};he.spread=bh;he.isAxiosError=Eh;he.mergeConfig=Ut;he.AxiosHeaders=De;he.formToJSON=e=>zl(_.isHTMLForm(e)?new FormData(e):e);he.getAdapter=ec.getAdapter;he.HttpStatusCode=as;he.default=he;const{Axios:jh,AxiosError:Bh,CanceledError:Hh,isCancel:kh,CancelToken:Vh,VERSION:qh,all:$h,Cancel:Kh,isAxiosError:Wh,spread:Gh,toFormData:zh,AxiosHeaders:Jh,HttpStatusCode:Xh,formToJSON:Qh,getAdapter:Yh,mergeConfig:Zh}=he,_n=he.create({baseURL:"",timeout:3e4,withCredentials:!0});_n.interceptors.request.use(e=>e,e=>Promise.reject(e));_n.interceptors.response.use(e=>e.data,e=>{e.response?.status===401&&(window.location.hash="#/login");const t=e.response?.data?e.response.data.detail||e.response.data.message:e.message;return Promise.reject(new Error(t||"请求失败"))});const jn={login:e=>{const t=new URLSearchParams;return t.append("admin_key",e.password),_n.post("/login",t,{headers:{"Content-Type":"application/x-www-form-urlencoded"}})},logout:()=>_n.post("/logout"),checkAuth:()=>_n.get("/admin/health")},wh=Mu("auth",()=>{const e=Lt(!1),t=Lt(!1),n=Lt(0),r=1e4;let s=null;async function o(c){t.value=!0;try{return await jn.login({password:c}),await jn.checkAuth(),e.value=!0,n.value=Date.now(),!0}catch(u){throw e.value=!1,u}finally{t.value=!1}}async function i(){try{await jn.logout()}finally{e.value=!1,n.value=0}}async function l(){const c=Date.now();if(e.value&&c-n.value(await jn.checkAuth(),e.value=!0,!0))(),await s}catch{return e.value=!1,!1}finally{n.value=Date.now(),s=null}}return{isLoggedIn:e,isLoading:t,login:o,logout:i,checkAuth:l}}),sc=Kf({history:Af("/"),routes:[{path:"/public/uptime",name:"public-uptime",component:()=>tt(()=>import("./PublicUptime-L_oTuMgV.js"),__vite__mapDeps([0,1])),meta:{requiresAuth:!1}},{path:"/public/logs",name:"public-logs",component:()=>tt(()=>import("./PublicLogs-C7WvVvkQ.js"),[]),meta:{requiresAuth:!1}},{path:"/login",name:"login",component:()=>tt(()=>import("./Login-elrgSqQt.js"),[]),meta:{requiresAuth:!1}},{path:"/",component:()=>tt(()=>import("./AppShell-5WTn-3Ed.js"),__vite__mapDeps([2,3,4,5])),meta:{requiresAuth:!0},children:[{path:"",name:"dashboard",component:()=>tt(()=>import("./Dashboard-DmuyjUdf.js"),__vite__mapDeps([6,7]))},{path:"accounts",name:"accounts",component:()=>tt(()=>import("./Accounts-DW_IBG7n.js"),__vite__mapDeps([8,9,10,4,5,7]))},{path:"settings",name:"settings",component:()=>tt(()=>import("./Settings-DKLaTN3U.js"),__vite__mapDeps([11,3,9,10,7]))},{path:"logs",name:"logs",component:()=>tt(()=>import("./Logs-DtASF2GN.js"),__vite__mapDeps([12,9,4]))},{path:"monitor",name:"monitor",component:()=>tt(()=>import("./Monitor-DlXrjsV6.js"),__vite__mapDeps([13,1]))},{path:"docs",name:"docs",component:()=>tt(()=>import("./Docs-BxhwQs_N.js"),[])}]}]});sc.beforeEach(async e=>{const t=wh();if(e.meta.requiresAuth&&!await t.checkAuth())return{name:"login"};if(e.name==="login"&&t.isLoggedIn)return{name:"dashboard"}});const Sh=Os({__name:"App",setup(e){return(t,n)=>(er(),nr(Ot(Dl)))}}),Us=xu(Sh),Rh=Pu();Us.use(Rh);Us.use(sc);Us.mount("#app");export{Xc as A,Dl as B,Mu as C,Dh as D,Rs as E,Fe as F,xh as G,On as H,kf as R,vh as T,fl as a,Ph as b,Th as c,Os as d,er as e,Wa as f,_n as g,Lt as h,Me as i,fa as j,ps as k,wh as l,Ah as m,ms as n,ca as o,Lh as p,Fh as q,Oh as r,fn as s,mc as t,Ot as u,Nh as v,Ih as w,Ce as x,nr as y,Ch as z}; diff --git a/static/assets/index-CKTDvvRO.css b/static/assets/index-CKTDvvRO.css new file mode 100644 index 0000000000000000000000000000000000000000..11d7ee5d3e5dfdbb44505e1a4fc30c2303d1e874 --- /dev/null +++ b/static/assets/index-CKTDvvRO.css @@ -0,0 +1 @@ +@import"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=Noto+Serif+SC:wght@600;700&display=swap";*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 97%;--foreground: 0 0% 10%;--card: 0 0% 100%;--card-foreground: 0 0% 10%;--primary: 0 0% 10%;--primary-foreground: 0 0% 100%;--secondary: 0 0% 92%;--secondary-foreground: 0 0% 10%;--muted: 0 0% 92%;--muted-foreground: 0 0% 40%;--accent: 0 0% 90%;--accent-foreground: 0 0% 10%;--destructive: 0 70% 45%;--destructive-foreground: 0 0% 100%;--border: 0 0% 86%;--input: 0 0% 86%;--ring: 0 0% 10%;--radius: 1rem}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:Noto Sans SC,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;overflow-x:hidden;background-image:radial-gradient(900px circle at 10% -20%,rgba(0,0,0,.04),transparent 45%),radial-gradient(700px circle at 90% 0%,rgba(0,0,0,.05),transparent 40%),linear-gradient(180deg,hsl(var(--background)) 0% 100%)}body:before{content:"";position:fixed;inset:0;background-image:linear-gradient(120deg,#ffffff8c,#fff0);opacity:.5;pointer-events:none;z-index:-1}h1,h2,h3{font-family:"Noto Serif SC",Georgia,serif;letter-spacing:-.01em}#app{min-height:100vh}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-y-0{top:0;bottom:0}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.top-full{top:100%}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[9999\]{z-index:9999}.col-span-2{grid-column:span 2 / span 2}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0{height:0px}.h-10{height:2.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-\[80vh\]{height:80vh}.h-full{height:100%}.max-h-\[60vh\]{max-height:60vh}.max-h-\[90vh\]{max-height:90vh}.min-h-0{min-height:0px}.min-h-\[140px\]{min-height:140px}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-10{width:2.5rem}.w-2{width:.5rem}.w-20{width:5rem}.w-24{width:6rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-44{width:11rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[200px\]{min-width:200px}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-not-allowed{cursor:not-allowed}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-1{row-gap:.25rem}.gap-y-2{row-gap:.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.justify-self-end{justify-self:end}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-visible{overflow-y:visible}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[2\.5rem\]{border-radius:2.5rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-x-4{border-left-width:4px;border-right-width:4px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-4{border-top-width:4px}.border-border{border-color:hsl(var(--border))}.border-border\/60{border-color:hsl(var(--border) / .6)}.border-destructive\/30{border-color:hsl(var(--destructive) / .3)}.border-input{border-color:hsl(var(--input))}.border-primary-foreground\/40{border-color:hsl(var(--primary-foreground) / .4)}.border-rose-200{--tw-border-opacity: 1;border-color:rgb(254 205 211 / var(--tw-border-opacity, 1))}.border-x-transparent{border-left-color:transparent;border-right-color:transparent}.border-t-foreground{border-top-color:hsl(var(--foreground))}.bg-accent{background-color:hsl(var(--accent))}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-200{--tw-bg-opacity: 1;background-color:rgb(253 230 138 / var(--tw-bg-opacity, 1))}.bg-amber-300{--tw-bg-opacity: 1;background-color:rgb(252 211 77 / var(--tw-bg-opacity, 1))}.bg-amber-400{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-black\/20{background-color:#0003}.bg-black\/30{background-color:#0000004d}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-card{background-color:hsl(var(--card))}.bg-card\/70{background-color:hsl(var(--card) / .7)}.bg-card\/90{background-color:hsl(var(--card) / .9)}.bg-cyan-100{--tw-bg-opacity: 1;background-color:rgb(207 250 254 / var(--tw-bg-opacity, 1))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-400{--tw-bg-opacity: 1;background-color:rgb(52 211 153 / var(--tw-bg-opacity, 1))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground{background-color:hsl(var(--muted-foreground))}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/70{background-color:hsl(var(--muted) / .7)}.bg-primary{background-color:hsl(var(--primary))}.bg-primary-foreground\/15{background-color:hsl(var(--primary-foreground) / .15)}.bg-rose-100{--tw-bg-opacity: 1;background-color:rgb(255 228 230 / var(--tw-bg-opacity, 1))}.bg-rose-50{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.bg-rose-500{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity, 1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/30{background-color:hsl(var(--secondary) / .3)}.bg-secondary\/40{background-color:hsl(var(--secondary) / .4)}.bg-secondary\/50{background-color:hsl(var(--secondary) / .5)}.bg-secondary\/60{background-color:hsl(var(--secondary) / .6)}.bg-sky-400{--tw-bg-opacity: 1;background-color:rgb(56 189 248 / var(--tw-bg-opacity, 1))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-violet-100{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.object-contain{-o-object-fit:contain;object-fit:contain}.p-1{padding:.25rem}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-10{padding-bottom:2.5rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pl-3{padding-left:.75rem}.pr-1{padding-right:.25rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.tracking-\[0\.12em\]{letter-spacing:.12em}.tracking-\[0\.28em\]{letter-spacing:.28em}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-\[0\.3em\]{letter-spacing:.3em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-background{color:hsl(var(--background))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-cyan-700{--tw-text-opacity: 1;color:rgb(14 116 144 / var(--tw-text-opacity, 1))}.text-destructive{color:hsl(var(--destructive))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-violet-700{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.opacity-0{opacity:0}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-black\/10{--tw-shadow-color: rgb(0 0 0 / .1);--tw-shadow: var(--tw-shadow-colored)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,transform\]{transition-property:width,transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-\[transform\]{will-change:transform}html{scrollbar-gutter:stable}*{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.35) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:#00000059;border-radius:999px;border:2px solid transparent;background-clip:content-box}.scrollbar-slim::-webkit-scrollbar{width:6px;height:6px}.scrollbar-slim::-webkit-scrollbar-thumb{background-color:#0006}.cv-auto{content-visibility:auto;contain-intrinsic-size:0 44px}.monitor-badge--up{background:#d1fae5;color:#065f46}.monitor-badge--warn{background:#fef3c7;color:#b45309}.monitor-badge--down{background:#fee2e2;color:#991b1b}.monitor-badge--unknown{background:#f3f4f6;color:#6b7280}.monitor-card{border-radius:16px;padding:0;background:hsl(var(--card));box-shadow:none}.monitor-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.monitor-card__name{font-size:14px;font-weight:600;color:hsl(var(--foreground))}.monitor-card__badge{padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600}.monitor-card__stats{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:hsl(var(--muted-foreground));margin-bottom:12px}.monitor-card__value{margin-left:4px;color:hsl(var(--foreground));font-weight:600}.monitor-card__beats{display:flex;gap:2px;height:24px;align-items:flex-end}.monitor-beat{flex:1;min-width:4px;max-width:8px;border-radius:2px;transition:all .2s;position:relative}.monitor-beat:hover{opacity:.8;transform:scaleY(1.1)}.monitor-beat--up{background:#34c759;height:100%}.monitor-beat--warn,.monitor-beat--slow{background:#f5c15b;height:100%}.monitor-beat--down{background:#ff3b30;height:100%}.monitor-beat--empty{background:#e5e5ea;height:40%}.monitor-beat__tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#1d1d1f;color:#fff;padding:6px 10px;border-radius:6px;font-size:11px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;margin-bottom:6px;z-index:10}.monitor-beat__tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#1d1d1f}.monitor-beat:hover .monitor-beat__tooltip{opacity:1}.help-dot{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:999px;border:1px solid hsl(var(--border));font-size:10px;line-height:1;color:hsl(var(--muted-foreground));cursor:default}@media(max-width:768px){.monitor-beat{min-width:3px;max-width:6px}}@media(min-width:1024px){.dashboard-split{flex-direction:row;flex-wrap:nowrap}.dashboard-split .dashboard-main{flex:0 0 66.6667%;max-width:66.6667%}.dashboard-split .dashboard-side{flex:0 0 33.3333%;max-width:33.3333%}}@keyframes logo-float{0%{transform:translateY(0)}25%{transform:translateY(6px)}50%{transform:translateY(0)}75%{transform:translateY(-6px)}to{transform:translateY(0)}}@keyframes logo-blink{0%,45%,55%,to{transform:scaleY(1);opacity:1}50%{transform:scaleY(.1);opacity:.6}}.logo-mark .logo-cat-wrapper{animation:logo-float 4s ease-in-out infinite;transform-origin:center}.logo-mark{transform:translateY(2px)}.logo-mark .logo-eye{fill:#00bcd4;filter:drop-shadow(0 0 2px #00bcd4);animation:logo-blink 5s infinite;transform-box:fill-box;transform-origin:center}.hover\:border-destructive:hover{border-color:hsl(var(--destructive))}.hover\:border-destructive\/40:hover{border-color:hsl(var(--destructive) / .4)}.hover\:border-destructive\/60:hover{border-color:hsl(var(--destructive) / .6)}.hover\:border-foreground:hover{border-color:hsl(var(--foreground))}.hover\:border-primary:hover{border-color:hsl(var(--primary))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/10:hover{background-color:hsl(var(--destructive) / .1)}.hover\:bg-secondary\/60:hover{background-color:hsl(var(--secondary) / .6)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-emerald-500:hover{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:opacity-90:hover{opacity:.9}.focus\:border-transparent:focus{border-color:transparent}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:text-accent-foreground{color:hsl(var(--accent-foreground))}.group:hover .group-hover\:opacity-100{opacity:1}.peer:checked~.peer-checked\:border-foreground{border-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:bg-foreground{background-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.peer:disabled~.peer-disabled\:opacity-50{opacity:.5}@media(min-width:640px){.sm\:ml-0{margin-left:0}.sm\:flex{display:flex}.sm\:w-44{width:11rem}.sm\:w-48{width:12rem}.sm\:w-auto{width:auto}.sm\:min-w-0{min-width:0px}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:items-center{align-items:center}}@media(min-width:768px){.md\:w-auto{width:auto}.md\:flex-1{flex:1 1 0%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1024px){.lg\:static{position:static}.lg\:sticky{position:sticky}.lg\:top-0{top:0}.lg\:ml-0{margin-left:0}.lg\:hidden{display:none}.lg\:h-20{height:5rem}.lg\:h-64{height:16rem}.lg\:h-72{height:18rem}.lg\:h-screen{height:100vh}.lg\:w-20{width:5rem}.lg\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:border-b-0{border-bottom-width:0px}.lg\:border-r{border-right-width:1px}.lg\:bg-card\/80{background-color:hsl(var(--card) / .8)}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:py-4{padding-top:1rem;padding-bottom:1rem}.lg\:pt-10{padding-top:2.5rem}.lg\:pt-5{padding-top:1.25rem}.lg\:pt-6{padding-top:1.5rem}.lg\:text-2xl{font-size:1.5rem;line-height:2rem}.lg\:backdrop-blur-none{--tw-backdrop-blur: ;-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}}@media(min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}} diff --git a/static/assets/index-CM73xqTK.js b/static/assets/index-CM73xqTK.js new file mode 100644 index 0000000000000000000000000000000000000000..5541e0107b7450b3b05dcfc35fe020e552f38ed8 --- /dev/null +++ b/static/assets/index-CM73xqTK.js @@ -0,0 +1,7 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PublicUptime-CLa0lCLs.js","assets/useUptimeStatus-CGA8KpnU.js","assets/AppShell-C6gOM0Kd.js","assets/settings-vReTlwTm.js","assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-szV8KRsH.js","assets/useConfirmDialog-WjrHNzIy.js","assets/Dashboard-GAFTK7sS.js","assets/HelpTip.vue_vue_type_script_setup_true_lang-D0920Okk.js","assets/Accounts-DnG8de1F.js","assets/SelectMenu.vue_vue_type_script_setup_true_lang-CmlylKNl.js","assets/Checkbox.vue_vue_type_script_setup_true_lang-D3YmChBg.js","assets/Settings-D4KuXVKT.js","assets/Logs-DmJ1nuVv.js","assets/Monitor-DcpsqeaS.js"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function Os(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const ae={},Yt=[],at=()=>{},Ti=()=>!1,_r=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Ts=e=>e.startsWith("onUpdate:"),Ee=Object.assign,xs=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Uc=Object.prototype.hasOwnProperty,oe=(e,t)=>Uc.call(e,t),q=Array.isArray,Zt=e=>Mn(e)==="[object Map]",br=e=>Mn(e)==="[object Set]",oo=e=>Mn(e)==="[object Date]",J=e=>typeof e=="function",pe=e=>typeof e=="string",Ge=e=>typeof e=="symbol",le=e=>e!==null&&typeof e=="object",xi=e=>(le(e)||J(e))&&J(e.then)&&J(e.catch),Pi=Object.prototype.toString,Mn=e=>Pi.call(e),jc=e=>Mn(e).slice(8,-1),Ni=e=>Mn(e)==="[object Object]",Er=e=>pe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,gn=Os(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),wr=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},kc=/-\w/g,Nt=wr(e=>e.replace(kc,t=>t.slice(1).toUpperCase())),Hc=/\B([A-Z])/g,Gt=wr(e=>e.replace(Hc,"-$1").toLowerCase()),Ii=wr(e=>e.charAt(0).toUpperCase()+e.slice(1)),kr=wr(e=>e?`on${Ii(e)}`:""),xt=(e,t)=>!Object.is(e,t),Qn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},Ps=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Vc=e=>{const t=pe(e)?Number(e):NaN;return isNaN(t)?e:t};let io;const Sr=()=>io||(io=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ns(e){if(q(e)){const t={};for(let n=0;n{if(n){const r=n.split(qc);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Is(e){let t="";if(pe(e))t=e;else if(q(e))for(let n=0;nvr(n,t))}const Mi=e=>!!(e&&e.__v_isRef===!0),Xc=e=>pe(e)?e:e==null?"":q(e)||le(e)&&(e.toString===Pi||!J(e.toString))?Mi(e)?Xc(e.value):JSON.stringify(e,Bi,2):String(e),Bi=(e,t)=>Mi(t)?Bi(e,t.value):Zt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[Hr(r,o)+" =>"]=s,n),{})}:br(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Hr(n))}:Ge(t)?Hr(t):le(t)&&!q(t)&&!Ni(t)?String(t):t,Hr=(e,t="")=>{var n;return Ge(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let we;class Ui{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=we,!t&&we&&(this.index=(we.scopes||(we.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&&(we=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if(_n){let t=_n;for(_n=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;yn;){let t=yn;for(yn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function qi(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Ki(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),Fs(r),Yc(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function os(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Wi(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Wi(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===On)||(e.globalVersion=On,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!os(e))))return;e.flags|=2;const t=e.dep,n=fe,r=We;fe=e,We=!0;try{qi(e);const s=e.fn(e._value);(t.version===0||xt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{fe=n,We=r,Ki(e),e.flags&=-3}}function Fs(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)Fs(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Yc(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let We=!0;const Gi=[];function _t(){Gi.push(We),We=!1}function bt(){const e=Gi.pop();We=e===void 0?!0:e}function lo(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=fe;fe=void 0;try{t()}finally{fe=n}}}let On=0;class Zc{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 Ms{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(!fe||!We||fe===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==fe)n=this.activeLink=new Zc(fe,this),fe.deps?(n.prevDep=fe.depsTail,fe.depsTail.nextDep=n,fe.depsTail=n):fe.deps=fe.depsTail=n,zi(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=fe.depsTail,n.nextDep=void 0,fe.depsTail.nextDep=n,fe.depsTail=n,fe.deps===n&&(fe.deps=r)}return n}trigger(t){this.version++,On++,this.notify(t)}notify(t){Ls();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Ds()}}}function zi(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)zi(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const ir=new WeakMap,Vt=Symbol(""),is=Symbol(""),Tn=Symbol("");function Se(e,t,n){if(We&&fe){let r=ir.get(e);r||ir.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new Ms),s.map=r,s.key=n),s.track()}}function gt(e,t,n,r,s,o){const i=ir.get(e);if(!i){On++;return}const l=c=>{c&&c.trigger()};if(Ls(),t==="clear")i.forEach(l);else{const c=q(e),u=c&&Er(n);if(c&&n==="length"){const a=Number(r);i.forEach((f,p)=>{(p==="length"||p===Tn||!Ge(p)&&p>=a)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(Tn)),t){case"add":c?u&&l(i.get("length")):(l(i.get(Vt)),Zt(e)&&l(i.get(is)));break;case"delete":c||(l(i.get(Vt)),Zt(e)&&l(i.get(is)));break;case"set":Zt(e)&&l(i.get(Vt));break}}Ds()}function ea(e,t){const n=ir.get(e);return n&&n.get(t)}function zt(e){const t=re(e);return t===e?t:(Se(t,"iterate",Tn),ke(e)?t:t.map(ze))}function Ar(e){return Se(e=re(e),"iterate",Tn),e}function Rt(e,t){return Et(e)?ut(e)?rn(ze(t)):rn(t):ze(t)}const ta={__proto__:null,[Symbol.iterator](){return $r(this,Symbol.iterator,e=>Rt(this,e))},concat(...e){return zt(this).concat(...e.map(t=>q(t)?zt(t):t))},entries(){return $r(this,"entries",e=>(e[1]=Rt(this,e[1]),e))},every(e,t){return ft(this,"every",e,t,void 0,arguments)},filter(e,t){return ft(this,"filter",e,t,n=>n.map(r=>Rt(this,r)),arguments)},find(e,t){return ft(this,"find",e,t,n=>Rt(this,n),arguments)},findIndex(e,t){return ft(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ft(this,"findLast",e,t,n=>Rt(this,n),arguments)},findLastIndex(e,t){return ft(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ft(this,"forEach",e,t,void 0,arguments)},includes(...e){return qr(this,"includes",e)},indexOf(...e){return qr(this,"indexOf",e)},join(e){return zt(this).join(e)},lastIndexOf(...e){return qr(this,"lastIndexOf",e)},map(e,t){return ft(this,"map",e,t,void 0,arguments)},pop(){return fn(this,"pop")},push(...e){return fn(this,"push",e)},reduce(e,...t){return co(this,"reduce",e,t)},reduceRight(e,...t){return co(this,"reduceRight",e,t)},shift(){return fn(this,"shift")},some(e,t){return ft(this,"some",e,t,void 0,arguments)},splice(...e){return fn(this,"splice",e)},toReversed(){return zt(this).toReversed()},toSorted(e){return zt(this).toSorted(e)},toSpliced(...e){return zt(this).toSpliced(...e)},unshift(...e){return fn(this,"unshift",e)},values(){return $r(this,"values",e=>Rt(this,e))}};function $r(e,t,n){const r=Ar(e),s=r[t]();return r!==e&&!ke(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const na=Array.prototype;function ft(e,t,n,r,s,o){const i=Ar(e),l=i!==e&&!ke(e),c=i[t];if(c!==na[t]){const f=c.apply(e,o);return l?ze(f):f}let u=n;i!==e&&(l?u=function(f,p){return n.call(this,Rt(e,f),p,e)}:n.length>2&&(u=function(f,p){return n.call(this,f,p,e)}));const a=c.call(i,u,r);return l&&s?s(a):a}function co(e,t,n,r){const s=Ar(e);let o=n;return s!==e&&(ke(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,Rt(e,l),c,e)}),s[t](o,...r)}function qr(e,t,n){const r=re(e);Se(r,"iterate",Tn);const s=r[t](...n);return(s===-1||s===!1)&&Rr(n[0])?(n[0]=re(n[0]),r[t](...n)):s}function fn(e,t,n=[]){_t(),Ls();const r=re(e)[t].apply(e,n);return Ds(),bt(),r}const ra=Os("__proto__,__v_isRef,__isVue"),Ji=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Ge));function sa(e){Ge(e)||(e=String(e));const t=re(this);return Se(t,"has",e),t.hasOwnProperty(e)}class Xi{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?pa:el:o?Zi:Yi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=q(t);if(!s){let c;if(i&&(c=ta[n]))return c;if(n==="hasOwnProperty")return sa}const l=Reflect.get(t,n,de(t)?t:r);if((Ge(n)?Ji.has(n):ra(n))||(s||Se(t,"get",n),o))return l;if(de(l)){const c=i&&Er(n)?l:l.value;return s&&le(c)?cs(c):c}return le(l)?s?cs(l):Bn(l):l}}class Qi extends Xi{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=q(t)&&Er(n);if(!this._isShallow){const u=Et(o);if(!ke(r)&&!Et(r)&&(o=re(o),r=re(r)),!i&&de(o)&&!de(r))return u||(o.value=r),!0}const l=i?Number(n)e,qn=e=>Reflect.getPrototypeOf(e);function aa(e,t,n){return function(...r){const s=this.__v_raw,o=re(s),i=Zt(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=s[e](...r),a=n?ls:t?rn:ze;return!t&&Se(o,"iterate",c?is:Vt),{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 Kn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function ua(e,t){const n={get(s){const o=this.__v_raw,i=re(o),l=re(s);e||(xt(s,l)&&Se(i,"get",s),Se(i,"get",l));const{has:c}=qn(i),u=t?ls:e?rn:ze;if(c.call(i,s))return u(o.get(s));if(c.call(i,l))return u(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&Se(re(s),"iterate",Vt),s.size},has(s){const o=this.__v_raw,i=re(o),l=re(s);return e||(xt(s,l)&&Se(i,"has",s),Se(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,c=re(l),u=t?ls:e?rn:ze;return!e&&Se(c,"iterate",Vt),l.forEach((a,f)=>s.call(o,u(a),u(f),i))}};return Ee(n,e?{add:Kn("add"),set:Kn("set"),delete:Kn("delete"),clear:Kn("clear")}:{add(s){!t&&!ke(s)&&!Et(s)&&(s=re(s));const o=re(this);return qn(o).has.call(o,s)||(o.add(s),gt(o,"add",s,s)),this},set(s,o){!t&&!ke(o)&&!Et(o)&&(o=re(o));const i=re(this),{has:l,get:c}=qn(i);let u=l.call(i,s);u||(s=re(s),u=l.call(i,s));const a=c.call(i,s);return i.set(s,o),u?xt(o,a)&>(i,"set",s,o):gt(i,"add",s,o),this},delete(s){const o=re(this),{has:i,get:l}=qn(o);let c=i.call(o,s);c||(s=re(s),c=i.call(o,s)),l&&l.call(o,s);const u=o.delete(s);return c&>(o,"delete",s,void 0),u},clear(){const s=re(this),o=s.size!==0,i=s.clear();return o&>(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=aa(s,e,t)}),n}function Bs(e,t){const n=ua(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(oe(n,s)&&s in r?n:r,s,o)}const fa={get:Bs(!1,!1)},da={get:Bs(!1,!0)},ha={get:Bs(!0,!1)};const Yi=new WeakMap,Zi=new WeakMap,el=new WeakMap,pa=new WeakMap;function ma(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ga(e){return e.__v_skip||!Object.isExtensible(e)?0:ma(jc(e))}function Bn(e){return Et(e)?e:Us(e,!1,ia,fa,Yi)}function tl(e){return Us(e,!1,ca,da,Zi)}function cs(e){return Us(e,!0,la,ha,el)}function Us(e,t,n,r,s){if(!le(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=ga(e);if(o===0)return e;const i=s.get(e);if(i)return i;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function ut(e){return Et(e)?ut(e.__v_raw):!!(e&&e.__v_isReactive)}function Et(e){return!!(e&&e.__v_isReadonly)}function ke(e){return!!(e&&e.__v_isShallow)}function Rr(e){return e?!!e.__v_raw:!1}function re(e){const t=e&&e.__v_raw;return t?re(t):e}function js(e){return!oe(e,"__v_skip")&&Object.isExtensible(e)&&Li(e,"__v_skip",!0),e}const ze=e=>le(e)?Bn(e):e,rn=e=>le(e)?cs(e):e;function de(e){return e?e.__v_isRef===!0:!1}function $t(e){return nl(e,!1)}function ya(e){return nl(e,!0)}function nl(e,t){return de(e)?e:new _a(e,t)}class _a{constructor(t,n){this.dep=new Ms,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:re(t),this._value=n?t:ze(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||ke(t)||Et(t);t=r?t:re(t),xt(t,n)&&(this._rawValue=t,this._value=r?t:ze(t),this.dep.trigger())}}function Pt(e){return de(e)?e.value:e}const ba={get:(e,t,n)=>t==="__v_raw"?e:Pt(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return de(s)&&!de(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function rl(e){return ut(e)?e:new Proxy(e,ba)}function Ea(e){const t=q(e)?new Array(e.length):{};for(const n in e)t[n]=sl(e,n);return t}class wa{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._raw=re(t);let s=!0,o=t;if(!q(t)||!Er(String(n)))do s=!Rr(o)||ke(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=Pt(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&de(this._raw[this._key])){const n=this._object[this._key];if(de(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return ea(this._raw,this._key)}}class Sa{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function va(e,t,n){return de(e)?e:J(e)?new Sa(e):le(e)&&arguments.length>1?sl(e,t,n):$t(e)}function sl(e,t,n){return new wa(e,t,n)}class Aa{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Ms(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=On-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&fe!==this)return $i(this,!0),!0}get value(){const t=this.dep.track();return Wi(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Ra(e,t,n=!1){let r,s;return J(e)?r=e:(r=e.get,s=e.set),new Aa(r,s,n)}const Wn={},lr=new WeakMap;let Bt;function Ca(e,t=!1,n=Bt){if(n){let r=lr.get(n);r||lr.set(n,r=[]),r.push(e)}}function Oa(e,t,n=ae){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:c}=n,u=x=>s?x:ke(x)||s===!1||s===0?yt(x,1):yt(x);let a,f,p,m,g=!1,b=!1;if(de(e)?(f=()=>e.value,g=ke(e)):ut(e)?(f=()=>u(e),g=!0):q(e)?(b=!0,g=e.some(x=>ut(x)||ke(x)),f=()=>e.map(x=>{if(de(x))return x.value;if(ut(x))return u(x);if(J(x))return c?c(x,2):x()})):J(e)?t?f=c?()=>c(e,2):e:f=()=>{if(p){_t();try{p()}finally{bt()}}const x=Bt;Bt=a;try{return c?c(e,3,[m]):e(m)}finally{Bt=x}}:f=at,t&&s){const x=f,U=s===!0?1/0:s;f=()=>yt(x(),U)}const E=ki(),C=()=>{a.stop(),E&&E.active&&xs(E.effects,a)};if(o&&t){const x=t;t=(...U)=>{x(...U),C()}}let T=b?new Array(e.length).fill(Wn):Wn;const N=x=>{if(!(!(a.flags&1)||!a.dirty&&!x))if(t){const U=a.run();if(s||g||(b?U.some((G,k)=>xt(G,T[k])):xt(U,T))){p&&p();const G=Bt;Bt=a;try{const k=[U,T===Wn?void 0:b&&T[0]===Wn?[]:T,m];T=U,c?c(t,3,k):t(...k)}finally{Bt=G}}}else a.run()};return l&&l(N),a=new Hi(f),a.scheduler=i?()=>i(N,!1):N,m=x=>Ca(x,!1,a),p=a.onStop=()=>{const x=lr.get(a);if(x){if(c)c(x,4);else for(const U of x)U();lr.delete(a)}},t?r?N(!0):T=a.run():i?i(N.bind(null,!0),!0):a.run(),C.pause=a.pause.bind(a),C.resume=a.resume.bind(a),C.stop=C,C}function yt(e,t=1/0,n){if(t<=0||!le(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,de(e))yt(e.value,t,n);else if(q(e))for(let r=0;r{yt(r,t,n)});else if(Ni(e)){for(const r in e)yt(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&yt(e[r],t,n)}return e}function Un(e,t,n,r){try{return r?e(...r):e()}catch(s){Cr(s,t,n)}}function Je(e,t,n,r){if(J(e)){const s=Un(e,t,n,r);return s&&xi(s)&&s.catch(o=>{Cr(o,t,n)}),s}if(q(e)){const s=[];for(let o=0;o>>1,s=xe[r],o=xn(s);o=xn(n)?xe.push(e):xe.splice(xa(t),0,e),e.flags|=1,il()}}function il(){cr||(cr=ol.then(cl))}function Pa(e){q(e)?en.push(...e):Ct&&e.id===-1?Ct.splice(Xt+1,0,e):e.flags&1||(en.push(e),e.flags|=1),il()}function ao(e,t,n=lt+1){for(;nxn(n)-xn(r));if(en.length=0,Ct){Ct.push(...t);return}for(Ct=t,Xt=0;Xte.id==null?e.flags&2?-1:1/0:e.id;function cl(e){try{for(lt=0;lt{r._d&&hr(-1);const o=ar(t);let i;try{i=e(...s)}finally{ar(o),r._d&&hr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function up(e,t){if(Re===null)return e;const n=Nr(Re),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&J(t)?t.call(r&&r.proxy):t}}function Ia(){return!!(Gs()||qt)}const La=Symbol.for("v-scx"),Da=()=>qe(La);function bn(e,t,n){return ul(e,t,n)}function ul(e,t,n=ae){const{immediate:r,deep:s,flush:o,once:i}=n,l=Ee({},n),c=t&&r||!t&&o!=="post";let u;if(Ln){if(o==="sync"){const m=Da();u=m.__watcherHandles||(m.__watcherHandles=[])}else if(!c){const m=()=>{};return m.stop=at,m.resume=at,m.pause=at,m}}const a=Pe;l.call=(m,g,b)=>Je(m,a,g,b);let f=!1;o==="post"?l.scheduler=m=>{Oe(m,a&&a.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(m,g)=>{g?m():Hs(m)}),l.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,a&&(m.id=a.uid,m.i=a))};const p=Oa(e,t,l);return Ln&&(u?u.push(p):c&&p()),p}function Fa(e,t,n){const r=this.proxy,s=pe(e)?e.includes(".")?fl(r,e):()=>r[e]:e.bind(r,r);let o;J(t)?o=t:(o=t.handler,n=t);const i=jn(this),l=ul(s,o.bind(r),n);return i(),l}function fl(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,En=e=>e&&(e.disabled||e.disabled===""),uo=e=>e&&(e.defer||e.defer===""),fo=e=>typeof SVGElement<"u"&&e instanceof SVGElement,ho=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,as=(e,t)=>{const n=e&&e.to;return pe(n)?t?t(n):null:n},pl={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,u){const{mc:a,pc:f,pbc:p,o:{insert:m,querySelector:g,createText:b,createComment:E}}=u,C=En(t.props);let{shapeFlag:T,children:N,dynamicChildren:x}=t;if(e==null){const U=t.el=b(""),G=t.anchor=b("");m(U,n,r),m(G,n,r);const k=(O,H)=>{T&16&&a(N,O,H,s,o,i,l,c)},j=()=>{const O=t.target=as(t.props,g),H=ml(O,t,b,m);O&&(i!=="svg"&&fo(O)?i="svg":i!=="mathml"&&ho(O)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(O),C||(k(O,H),Zn(t,!1)))};C&&(k(n,G),Zn(t,!0)),uo(t.props)?(t.el.__isMounted=!1,Oe(()=>{j(),delete t.el.__isMounted},o)):j()}else{if(uo(t.props)&&e.el.__isMounted===!1){Oe(()=>{pl.process(e,t,n,r,s,o,i,l,c,u)},o);return}t.el=e.el,t.targetStart=e.targetStart;const U=t.anchor=e.anchor,G=t.target=e.target,k=t.targetAnchor=e.targetAnchor,j=En(e.props),O=j?n:G,H=j?U:k;if(i==="svg"||fo(G)?i="svg":(i==="mathml"||ho(G))&&(i="mathml"),x?(p(e.dynamicChildren,x,O,s,o,i,l),Ks(e,t,!0)):c||f(e,t,O,H,s,o,i,l,!1),C)j?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Gn(t,n,U,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const Y=t.target=as(t.props,g);Y&&Gn(t,Y,null,u,0)}else j&&Gn(t,G,k,u,1);Zn(t,C)}},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetStart:u,targetAnchor:a,target:f,props:p}=e;if(f&&(s(u),s(a)),o&&s(c),i&16){const m=o||!En(p);for(let g=0;g{e.isMounted=!0}),Al(()=>{e.isUnmounting=!0}),e}const $e=[Function,Array],gl={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:$e,onEnter:$e,onAfterEnter:$e,onEnterCancelled:$e,onBeforeLeave:$e,onLeave:$e,onAfterLeave:$e,onLeaveCancelled:$e,onBeforeAppear:$e,onAppear:$e,onAfterAppear:$e,onAppearCancelled:$e},yl=e=>{const t=e.subTree;return t.component?yl(t.component):t},Ua={name:"BaseTransition",props:gl,setup(e,{slots:t}){const n=Gs(),r=Ba();return()=>{const s=t.default&&El(t.default(),!0);if(!s||!s.length)return;const o=_l(s),i=re(e),{mode:l}=i;if(r.isLeaving)return Kr(o);const c=po(o);if(!c)return Kr(o);let u=us(c,i,r,n,f=>u=f);c.type!==ve&&Pn(c,u);let a=n.subTree&&po(n.subTree);if(a&&a.type!==ve&&!Ut(a,c)&&yl(n).type!==ve){let f=us(a,i,r,n);if(Pn(a,f),l==="out-in"&&c.type!==ve)return r.isLeaving=!0,f.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete f.afterLeave,a=void 0},Kr(o);l==="in-out"&&c.type!==ve?f.delayLeave=(p,m,g)=>{const b=bl(r,a);b[String(a.key)]=a,p[mt]=()=>{m(),p[mt]=void 0,delete u.delayedLeave,a=void 0},u.delayedLeave=()=>{g(),delete u.delayedLeave,a=void 0}}:a=void 0}else a&&(a=void 0);return o}}};function _l(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==ve){t=n;break}}return t}const ja=Ua;function bl(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function us(e,t,n,r,s){const{appear:o,mode:i,persisted:l=!1,onBeforeEnter:c,onEnter:u,onAfterEnter:a,onEnterCancelled:f,onBeforeLeave:p,onLeave:m,onAfterLeave:g,onLeaveCancelled:b,onBeforeAppear:E,onAppear:C,onAfterAppear:T,onAppearCancelled:N}=t,x=String(e.key),U=bl(n,e),G=(O,H)=>{O&&Je(O,r,9,H)},k=(O,H)=>{const Y=H[1];G(O,H),q(O)?O.every(L=>L.length<=1)&&Y():O.length<=1&&Y()},j={mode:i,persisted:l,beforeEnter(O){let H=c;if(!n.isMounted)if(o)H=E||c;else return;O[mt]&&O[mt](!0);const Y=U[x];Y&&Ut(e,Y)&&Y.el[mt]&&Y.el[mt](),G(H,[O])},enter(O){let H=u,Y=a,L=f;if(!n.isMounted)if(o)H=C||u,Y=T||a,L=N||f;else return;let Q=!1;const ce=O[zn]=be=>{Q||(Q=!0,be?G(L,[O]):G(Y,[O]),j.delayedLeave&&j.delayedLeave(),O[zn]=void 0)};H?k(H,[O,ce]):ce()},leave(O,H){const Y=String(e.key);if(O[zn]&&O[zn](!0),n.isUnmounting)return H();G(p,[O]);let L=!1;const Q=O[mt]=ce=>{L||(L=!0,H(),ce?G(b,[O]):G(g,[O]),O[mt]=void 0,U[Y]===e&&delete U[Y])};U[Y]=e,m?k(m,[O,Q]):Q()},clone(O){const H=us(O,t,n,r,s);return s&&s(H),H}};return j}function Kr(e){if(Or(e))return e=It(e),e.children=null,e}function po(e){if(!Or(e))return hl(e.type)&&e.children?_l(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&J(n.default))return n.default()}}function Pn(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Pn(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 El(e,t=!1,n){let r=[],s=0;for(let o=0;o1)for(let o=0;own(g,t&&(q(t)?t[b]:t),n,r,s));return}if(tn(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&wn(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?Nr(r.component):r.el,i=s?null:o,{i:l,r:c}=e,u=t&&t.r,a=l.refs===ae?l.refs={}:l.refs,f=l.setupState,p=re(f),m=f===ae?Ti:g=>oe(p,g);if(u!=null&&u!==c){if(mo(t),pe(u))a[u]=null,m(u)&&(f[u]=null);else if(de(u)){u.value=null;const g=t;g.k&&(a[g.k]=null)}}if(J(c))Un(c,l,12,[i,a]);else{const g=pe(c),b=de(c);if(g||b){const E=()=>{if(e.f){const C=g?m(c)?f[c]:a[c]:c.value;if(s)q(C)&&xs(C,o);else if(q(C))C.includes(o)||C.push(o);else if(g)a[c]=[o],m(c)&&(f[c]=a[c]);else{const T=[o];c.value=T,e.k&&(a[e.k]=T)}}else g?(a[c]=i,m(c)&&(f[c]=i)):b&&(c.value=i,e.k&&(a[e.k]=i))};if(i){const C=()=>{E(),ur.delete(e)};C.id=-1,ur.set(e,C),Oe(C,n)}else mo(e),E()}}}function mo(e){const t=ur.get(e);t&&(t.flags|=8,ur.delete(e))}Sr().requestIdleCallback;Sr().cancelIdleCallback;const tn=e=>!!e.type.__asyncLoader,Or=e=>e.type.__isKeepAlive;function ka(e,t){Sl(e,"a",t)}function Ha(e,t){Sl(e,"da",t)}function Sl(e,t,n=Pe){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Tr(t,r,n),n){let s=n.parent;for(;s&&s.parent;)Or(s.parent.vnode)&&Va(r,t,n,s),s=s.parent}}function Va(e,t,n,r){const s=Tr(t,e,r,!0);Rl(()=>{xs(r[t],s)},n)}function Tr(e,t,n=Pe,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{_t();const l=jn(n),c=Je(t,n,e,i);return l(),bt(),c});return r?s.unshift(o):s.push(o),o}}const wt=e=>(t,n=Pe)=>{(!Ln||e==="sp")&&Tr(e,(...r)=>t(...r),n)},$a=wt("bm"),vl=wt("m"),qa=wt("bu"),Ka=wt("u"),Al=wt("bum"),Rl=wt("um"),Wa=wt("sp"),Ga=wt("rtg"),za=wt("rtc");function Ja(e,t=Pe){Tr("ec",e,t)}const Xa=Symbol.for("v-ndc");function dp(e,t,n,r){let s;const o=n,i=q(e);if(i||pe(e)){const l=i&&ut(e);let c=!1,u=!1;l&&(c=!ke(e),u=Et(e),e=Ar(e)),s=new Array(e.length);for(let a=0,f=e.length;at(l,c,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let c=0,u=l.length;c0;return dr(),pr(De,null,[Ne("slot",n,r)],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),dr();const i=o&&Cl(o(n)),l=n.key||i&&i.key,c=pr(De,{key:(l&&!Ge(l)?l:`_${t}`)+(!i&&r?"_fb":"")},i||[],i&&e._===1?64:-2);return c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),o&&o._c&&(o._d=!0),c}function Cl(e){return e.some(t=>In(t)?!(t.type===ve||t.type===De&&!Cl(t.children)):!0)?e:null}const fs=e=>e?Kl(e)?Nr(e):fs(e.parent):null,Sn=Ee(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=>fs(e.parent),$root:e=>fs(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Tl(e),$forceUpdate:e=>e.f||(e.f=()=>{Hs(e.update)}),$nextTick:e=>e.n||(e.n=ks.bind(e.proxy)),$watch:e=>Fa.bind(e)}),Wr=(e,t)=>e!==ae&&!e.__isScriptSetup&&oe(e,t),Qa={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,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 r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(Wr(r,t))return i[t]=1,r[t];if(s!==ae&&oe(s,t))return i[t]=2,s[t];if(oe(o,t))return i[t]=3,o[t];if(n!==ae&&oe(n,t))return i[t]=4,n[t];ds&&(i[t]=0)}}const u=Sn[t];let a,f;if(u)return t==="$attrs"&&Se(e.attrs,"get",""),u(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==ae&&oe(n,t))return i[t]=4,n[t];if(f=c.config.globalProperties,oe(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return Wr(s,t)?(s[t]=n,!0):r!==ae&&oe(r,t)?(r[t]=n,!0):oe(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:o,type:i}},l){let c;return!!(n[l]||e!==ae&&l[0]!=="$"&&oe(e,l)||Wr(t,l)||oe(o,l)||oe(r,l)||oe(Sn,l)||oe(s.config.globalProperties,l)||(c=i.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:oe(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function go(e){return q(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let ds=!0;function Ya(e){const t=Tl(e),n=e.proxy,r=e.ctx;ds=!1,t.beforeCreate&&yo(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:u,created:a,beforeMount:f,mounted:p,beforeUpdate:m,updated:g,activated:b,deactivated:E,beforeDestroy:C,beforeUnmount:T,destroyed:N,unmounted:x,render:U,renderTracked:G,renderTriggered:k,errorCaptured:j,serverPrefetch:O,expose:H,inheritAttrs:Y,components:L,directives:Q,filters:ce}=t;if(u&&Za(u,r,null),i)for(const z in i){const Z=i[z];J(Z)&&(r[z]=Z.bind(n))}if(s){const z=s.call(n,n);le(z)&&(e.data=Bn(z))}if(ds=!0,o)for(const z in o){const Z=o[z],He=J(Z)?Z.bind(n,n):J(Z.get)?Z.get.bind(n,n):at,Ye=!J(Z)&&J(Z.set)?Z.set.bind(n):at,ye=Ue({get:He,set:Ye});Object.defineProperty(r,z,{enumerable:!0,configurable:!0,get:()=>ye.value,set:me=>ye.value=me})}if(l)for(const z in l)Ol(l[z],r,n,z);if(c){const z=J(c)?c.call(n):c;Reflect.ownKeys(z).forEach(Z=>{Yn(Z,z[Z])})}a&&yo(a,e,"c");function ee(z,Z){q(Z)?Z.forEach(He=>z(He.bind(n))):Z&&z(Z.bind(n))}if(ee($a,f),ee(vl,p),ee(qa,m),ee(Ka,g),ee(ka,b),ee(Ha,E),ee(Ja,j),ee(za,G),ee(Ga,k),ee(Al,T),ee(Rl,x),ee(Wa,O),q(H))if(H.length){const z=e.exposed||(e.exposed={});H.forEach(Z=>{Object.defineProperty(z,Z,{get:()=>n[Z],set:He=>n[Z]=He,enumerable:!0})})}else e.exposed||(e.exposed={});U&&e.render===at&&(e.render=U),Y!=null&&(e.inheritAttrs=Y),L&&(e.components=L),Q&&(e.directives=Q),O&&wl(e)}function Za(e,t,n=at){q(e)&&(e=hs(e));for(const r in e){const s=e[r];let o;le(s)?"default"in s?o=qe(s.from||r,s.default,!0):o=qe(s.from||r):o=qe(s),de(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function yo(e,t,n){Je(q(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Ol(e,t,n,r){let s=r.includes(".")?fl(n,r):()=>n[r];if(pe(e)){const o=t[e];J(o)&&bn(s,o)}else if(J(e))bn(s,e.bind(n));else if(le(e))if(q(e))e.forEach(o=>Ol(o,t,n,r));else{const o=J(e.handler)?e.handler.bind(n):t[e.handler];J(o)&&bn(s,o,e)}}function Tl(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>fr(c,u,i,!0)),fr(c,t,i)),le(t)&&o.set(t,c),c}function fr(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&fr(e,o,n,!0),s&&s.forEach(i=>fr(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=eu[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const eu={data:_o,props:bo,emits:bo,methods:mn,computed:mn,beforeCreate:Ce,created:Ce,beforeMount:Ce,mounted:Ce,beforeUpdate:Ce,updated:Ce,beforeDestroy:Ce,beforeUnmount:Ce,destroyed:Ce,unmounted:Ce,activated:Ce,deactivated:Ce,errorCaptured:Ce,serverPrefetch:Ce,components:mn,directives:mn,watch:nu,provide:_o,inject:tu};function _o(e,t){return t?e?function(){return Ee(J(e)?e.call(this,this):e,J(t)?t.call(this,this):t)}:t:e}function tu(e,t){return mn(hs(e),hs(t))}function hs(e){if(q(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Nt(t)}Modifiers`]||e[`${Gt(t)}Modifiers`];function iu(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||ae;let s=n;const o=t.startsWith("update:"),i=o&&ou(r,t.slice(7));i&&(i.trim&&(s=n.map(a=>pe(a)?a.trim():a)),i.number&&(s=n.map(Ps)));let l,c=r[l=kr(t)]||r[l=kr(Nt(t))];!c&&o&&(c=r[l=kr(Gt(t))]),c&&Je(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Je(u,e,6,s)}}const lu=new WeakMap;function Pl(e,t,n=!1){const r=n?lu:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!J(e)){const c=u=>{const a=Pl(u,t,!0);a&&(l=!0,Ee(i,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(le(e)&&r.set(e,null),null):(q(o)?o.forEach(c=>i[c]=null):Ee(i,o),le(e)&&r.set(e,i),i)}function xr(e,t){return!e||!_r(t)?!1:(t=t.slice(2).replace(/Once$/,""),oe(e,t[0].toLowerCase()+t.slice(1))||oe(e,Gt(t))||oe(e,t))}function Eo(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:a,props:f,data:p,setupState:m,ctx:g,inheritAttrs:b}=e,E=ar(e);let C,T;try{if(n.shapeFlag&4){const x=s||r,U=x;C=ct(u.call(U,x,a,f,m,p,g)),T=l}else{const x=t;C=ct(x.length>1?x(f,{attrs:l,slots:i,emit:c}):x(f,null)),T=t.props?l:cu(l)}}catch(x){vn.length=0,Cr(x,e,1),C=Ne(ve)}let N=C;if(T&&b!==!1){const x=Object.keys(T),{shapeFlag:U}=N;x.length&&U&7&&(o&&x.some(Ts)&&(T=au(T,o)),N=It(N,T,!1,!0))}return n.dirs&&(N=It(N,null,!1,!0),N.dirs=N.dirs?N.dirs.concat(n.dirs):n.dirs),n.transition&&Pn(N,n.transition),C=N,ar(E),C}const cu=e=>{let t;for(const n in e)(n==="class"||n==="style"||_r(n))&&((t||(t={}))[n]=e[n]);return t},au=(e,t)=>{const n={};for(const r in e)(!Ts(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function uu(e,t,n){const{props:r,children:s,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 r?wo(r,i,u):!!i;if(c&8){const a=t.dynamicProps;for(let f=0;fObject.create(Nl),Ll=e=>Object.getPrototypeOf(e)===Nl;function du(e,t,n,r=!1){const s={},o=Il();e.propsDefaults=Object.create(null),Dl(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:tl(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function hu(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=re(s),[c]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const a=e.vnode.dynamicProps;for(let f=0;f{c=!0;const[p,m]=Fl(f,t,!0);Ee(i,p),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!c)return le(e)&&r.set(e,Yt),Yt;if(q(o))for(let a=0;ae==="_"||e==="_ctx"||e==="$stable",qs=e=>q(e)?e.map(ct):[ct(e)],mu=(e,t,n)=>{if(t._n)return t;const r=Na((...s)=>qs(t(...s)),n);return r._c=!1,r},Ml=(e,t,n)=>{const r=e._ctx;for(const s in e){if($s(s))continue;const o=e[s];if(J(o))t[s]=mu(s,o,r);else if(o!=null){const i=qs(o);t[s]=()=>i}}},Bl=(e,t)=>{const n=qs(t);e.slots.default=()=>n},Ul=(e,t,n)=>{for(const r in t)(n||!$s(r))&&(e[r]=t[r])},gu=(e,t,n)=>{const r=e.slots=Il();if(e.vnode.shapeFlag&32){const s=t._;s?(Ul(r,t,n),n&&Li(r,"_",s,!0)):Ml(t,r)}else t&&Bl(e,t)},yu=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=ae;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:Ul(s,t,n):(o=!t.$stable,Ml(t,s)),i=t}else t&&(Bl(e,t),i={default:1});if(o)for(const l in s)!$s(l)&&i[l]==null&&delete s[l]},Oe=Su;function _u(e){return bu(e)}function bu(e,t){const n=Sr();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:a,parentNode:f,nextSibling:p,setScopeId:m=at,insertStaticContent:g}=e,b=(d,h,y,w=null,A=null,S=null,D=void 0,I=null,P=!!h.dynamicChildren)=>{if(d===h)return;d&&!Ut(d,h)&&(w=v(d),me(d,A,S,!0),d=null),h.patchFlag===-2&&(P=!1,h.dynamicChildren=null);const{type:R,ref:K,shapeFlag:M}=h;switch(R){case Pr:E(d,h,y,w);break;case ve:C(d,h,y,w);break;case er:d==null&&T(h,y,w,D);break;case De:L(d,h,y,w,A,S,D,I,P);break;default:M&1?U(d,h,y,w,A,S,D,I,P):M&6?Q(d,h,y,w,A,S,D,I,P):(M&64||M&128)&&R.process(d,h,y,w,A,S,D,I,P,V)}K!=null&&A?wn(K,d&&d.ref,S,h||d,!h):K==null&&d&&d.ref!=null&&wn(d.ref,null,S,d,!0)},E=(d,h,y,w)=>{if(d==null)r(h.el=l(h.children),y,w);else{const A=h.el=d.el;h.children!==d.children&&u(A,h.children)}},C=(d,h,y,w)=>{d==null?r(h.el=c(h.children||""),y,w):h.el=d.el},T=(d,h,y,w)=>{[d.el,d.anchor]=g(d.children,h,y,w,d.el,d.anchor)},N=({el:d,anchor:h},y,w)=>{let A;for(;d&&d!==h;)A=p(d),r(d,y,w),d=A;r(h,y,w)},x=({el:d,anchor:h})=>{let y;for(;d&&d!==h;)y=p(d),s(d),d=y;s(h)},U=(d,h,y,w,A,S,D,I,P)=>{if(h.type==="svg"?D="svg":h.type==="math"&&(D="mathml"),d==null)G(h,y,w,A,S,D,I,P);else{const R=d.el&&d.el._isVueCE?d.el:null;try{R&&R._beginPatch(),O(d,h,A,S,D,I,P)}finally{R&&R._endPatch()}}},G=(d,h,y,w,A,S,D,I)=>{let P,R;const{props:K,shapeFlag:M,transition:$,dirs:W}=d;if(P=d.el=i(d.type,S,K&&K.is,K),M&8?a(P,d.children):M&16&&j(d.children,P,null,w,A,Gr(d,S),D,I),W&&Lt(d,null,w,"created"),k(P,d,d.scopeId,D,w),K){for(const ue in K)ue!=="value"&&!gn(ue)&&o(P,ue,null,K[ue],S,w);"value"in K&&o(P,"value",null,K.value,S),(R=K.onVnodeBeforeMount)&&st(R,w,d)}W&&Lt(d,null,w,"beforeMount");const ne=Eu(A,$);ne&&$.beforeEnter(P),r(P,h,y),((R=K&&K.onVnodeMounted)||ne||W)&&Oe(()=>{R&&st(R,w,d),ne&&$.enter(P),W&&Lt(d,null,w,"mounted")},A)},k=(d,h,y,w,A)=>{if(y&&m(d,y),w)for(let S=0;S{for(let R=P;R{const I=h.el=d.el;let{patchFlag:P,dynamicChildren:R,dirs:K}=h;P|=d.patchFlag&16;const M=d.props||ae,$=h.props||ae;let W;if(y&&Dt(y,!1),(W=$.onVnodeBeforeUpdate)&&st(W,y,h,d),K&&Lt(h,d,y,"beforeUpdate"),y&&Dt(y,!0),(M.innerHTML&&$.innerHTML==null||M.textContent&&$.textContent==null)&&a(I,""),R?H(d.dynamicChildren,R,I,y,w,Gr(h,A),S):D||Z(d,h,I,null,y,w,Gr(h,A),S,!1),P>0){if(P&16)Y(I,M,$,y,A);else if(P&2&&M.class!==$.class&&o(I,"class",null,$.class,A),P&4&&o(I,"style",M.style,$.style,A),P&8){const ne=h.dynamicProps;for(let ue=0;ue{W&&st(W,y,h,d),K&&Lt(h,d,y,"updated")},w)},H=(d,h,y,w,A,S,D)=>{for(let I=0;I{if(h!==y){if(h!==ae)for(const S in h)!gn(S)&&!(S in y)&&o(d,S,h[S],null,A,w);for(const S in y){if(gn(S))continue;const D=y[S],I=h[S];D!==I&&S!=="value"&&o(d,S,I,D,A,w)}"value"in y&&o(d,"value",h.value,y.value,A)}},L=(d,h,y,w,A,S,D,I,P)=>{const R=h.el=d?d.el:l(""),K=h.anchor=d?d.anchor:l("");let{patchFlag:M,dynamicChildren:$,slotScopeIds:W}=h;W&&(I=I?I.concat(W):W),d==null?(r(R,y,w),r(K,y,w),j(h.children||[],y,K,A,S,D,I,P)):M>0&&M&64&&$&&d.dynamicChildren&&d.dynamicChildren.length===$.length?(H(d.dynamicChildren,$,y,A,S,D,I),(h.key!=null||A&&h===A.subTree)&&Ks(d,h,!0)):Z(d,h,y,K,A,S,D,I,P)},Q=(d,h,y,w,A,S,D,I,P)=>{h.slotScopeIds=I,d==null?h.shapeFlag&512?A.ctx.activate(h,y,w,D,P):ce(h,y,w,A,S,D,P):be(d,h,P)},ce=(d,h,y,w,A,S,D)=>{const I=d.component=Pu(d,w,A);if(Or(d)&&(I.ctx.renderer=V),Nu(I,!1,D),I.asyncDep){if(A&&A.registerDep(I,ee,D),!d.el){const P=I.subTree=Ne(ve);C(null,P,h,y),d.placeholder=P.el}}else ee(I,d,h,y,A,S,D)},be=(d,h,y)=>{const w=h.component=d.component;if(uu(d,h,y))if(w.asyncDep&&!w.asyncResolved){z(w,h,y);return}else w.next=h,w.update();else h.el=d.el,w.vnode=h},ee=(d,h,y,w,A,S,D)=>{const I=()=>{if(d.isMounted){let{next:M,bu:$,u:W,parent:ne,vnode:ue}=d;{const nt=jl(d);if(nt){M&&(M.el=ue.el,z(d,M,D)),nt.asyncDep.then(()=>{d.isUnmounted||I()});return}}let ie=M,Ie;Dt(d,!1),M?(M.el=ue.el,z(d,M,D)):M=ue,$&&Qn($),(Ie=M.props&&M.props.onVnodeBeforeUpdate)&&st(Ie,ne,M,ue),Dt(d,!0);const Le=Eo(d),tt=d.subTree;d.subTree=Le,b(tt,Le,f(tt.el),v(tt),d,A,S),M.el=Le.el,ie===null&&fu(d,Le.el),W&&Oe(W,A),(Ie=M.props&&M.props.onVnodeUpdated)&&Oe(()=>st(Ie,ne,M,ue),A)}else{let M;const{el:$,props:W}=h,{bm:ne,m:ue,parent:ie,root:Ie,type:Le}=d,tt=tn(h);Dt(d,!1),ne&&Qn(ne),!tt&&(M=W&&W.onVnodeBeforeMount)&&st(M,ie,h),Dt(d,!0);{Ie.ce&&Ie.ce._def.shadowRoot!==!1&&Ie.ce._injectChildStyle(Le);const nt=d.subTree=Eo(d);b(null,nt,y,w,d,A,S),h.el=nt.el}if(ue&&Oe(ue,A),!tt&&(M=W&&W.onVnodeMounted)){const nt=h;Oe(()=>st(M,ie,nt),A)}(h.shapeFlag&256||ie&&tn(ie.vnode)&&ie.vnode.shapeFlag&256)&&d.a&&Oe(d.a,A),d.isMounted=!0,h=y=w=null}};d.scope.on();const P=d.effect=new Hi(I);d.scope.off();const R=d.update=P.run.bind(P),K=d.job=P.runIfDirty.bind(P);K.i=d,K.id=d.uid,P.scheduler=()=>Hs(K),Dt(d,!0),R()},z=(d,h,y)=>{h.component=d;const w=d.vnode.props;d.vnode=h,d.next=null,hu(d,h.props,w,y),yu(d,h.children,y),_t(),ao(d),bt()},Z=(d,h,y,w,A,S,D,I,P=!1)=>{const R=d&&d.children,K=d?d.shapeFlag:0,M=h.children,{patchFlag:$,shapeFlag:W}=h;if($>0){if($&128){Ye(R,M,y,w,A,S,D,I,P);return}else if($&256){He(R,M,y,w,A,S,D,I,P);return}}W&8?(K&16&&Ve(R,A,S),M!==R&&a(y,M)):K&16?W&16?Ye(R,M,y,w,A,S,D,I,P):Ve(R,A,S,!0):(K&8&&a(y,""),W&16&&j(M,y,w,A,S,D,I,P))},He=(d,h,y,w,A,S,D,I,P)=>{d=d||Yt,h=h||Yt;const R=d.length,K=h.length,M=Math.min(R,K);let $;for($=0;$K?Ve(d,A,S,!0,!1,M):j(h,y,w,A,S,D,I,P,M)},Ye=(d,h,y,w,A,S,D,I,P)=>{let R=0;const K=h.length;let M=d.length-1,$=K-1;for(;R<=M&&R<=$;){const W=d[R],ne=h[R]=P?Ot(h[R]):ct(h[R]);if(Ut(W,ne))b(W,ne,y,null,A,S,D,I,P);else break;R++}for(;R<=M&&R<=$;){const W=d[M],ne=h[$]=P?Ot(h[$]):ct(h[$]);if(Ut(W,ne))b(W,ne,y,null,A,S,D,I,P);else break;M--,$--}if(R>M){if(R<=$){const W=$+1,ne=W$)for(;R<=M;)me(d[R],A,S,!0),R++;else{const W=R,ne=R,ue=new Map;for(R=ne;R<=$;R++){const Be=h[R]=P?Ot(h[R]):ct(h[R]);Be.key!=null&&ue.set(Be.key,R)}let ie,Ie=0;const Le=$-ne+1;let tt=!1,nt=0;const un=new Array(Le);for(R=0;R=Le){me(Be,A,S,!0);continue}let rt;if(Be.key!=null)rt=ue.get(Be.key);else for(ie=ne;ie<=$;ie++)if(un[ie-ne]===0&&Ut(Be,h[ie])){rt=ie;break}rt===void 0?me(Be,A,S,!0):(un[rt-ne]=R+1,rt>=nt?nt=rt:tt=!0,b(Be,h[rt],y,null,A,S,D,I,P),Ie++)}const no=tt?wu(un):Yt;for(ie=no.length-1,R=Le-1;R>=0;R--){const Be=ne+R,rt=h[Be],ro=h[Be+1],so=Be+1{const{el:S,type:D,transition:I,children:P,shapeFlag:R}=d;if(R&6){ye(d.component.subTree,h,y,w);return}if(R&128){d.suspense.move(h,y,w);return}if(R&64){D.move(d,h,y,V);return}if(D===De){r(S,h,y);for(let M=0;MI.enter(S),A);else{const{leave:M,delayLeave:$,afterLeave:W}=I,ne=()=>{d.ctx.isUnmounted?s(S):r(S,h,y)},ue=()=>{S._isLeaving&&S[mt](!0),M(S,()=>{ne(),W&&W()})};$?$(S,ne,ue):ue()}else r(S,h,y)},me=(d,h,y,w=!1,A=!1)=>{const{type:S,props:D,ref:I,children:P,dynamicChildren:R,shapeFlag:K,patchFlag:M,dirs:$,cacheIndex:W}=d;if(M===-2&&(A=!1),I!=null&&(_t(),wn(I,null,y,d,!0),bt()),W!=null&&(h.renderCache[W]=void 0),K&256){h.ctx.deactivate(d);return}const ne=K&1&&$,ue=!tn(d);let ie;if(ue&&(ie=D&&D.onVnodeBeforeUnmount)&&st(ie,h,d),K&6)et(d.component,y,w);else{if(K&128){d.suspense.unmount(y,w);return}ne&&Lt(d,null,h,"beforeUnmount"),K&64?d.type.remove(d,h,y,V,w):R&&!R.hasOnce&&(S!==De||M>0&&M&64)?Ve(R,h,y,!1,!0):(S===De&&M&384||!A&&K&16)&&Ve(P,h,y),w&&Ze(d)}(ue&&(ie=D&&D.onVnodeUnmounted)||ne)&&Oe(()=>{ie&&st(ie,h,d),ne&&Lt(d,null,h,"unmounted")},y)},Ze=d=>{const{type:h,el:y,anchor:w,transition:A}=d;if(h===De){Ke(y,w);return}if(h===er){x(d);return}const S=()=>{s(y),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(d.shapeFlag&1&&A&&!A.persisted){const{leave:D,delayLeave:I}=A,P=()=>D(y,S);I?I(d.el,S,P):P()}else S()},Ke=(d,h)=>{let y;for(;d!==h;)y=p(d),s(d),d=y;s(h)},et=(d,h,y)=>{const{bum:w,scope:A,job:S,subTree:D,um:I,m:P,a:R}=d;vo(P),vo(R),w&&Qn(w),A.stop(),S&&(S.flags|=8,me(D,d,h,y)),I&&Oe(I,h),Oe(()=>{d.isUnmounted=!0},h)},Ve=(d,h,y,w=!1,A=!1,S=0)=>{for(let D=S;D{if(d.shapeFlag&6)return v(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const h=p(d.anchor||d.el),y=h&&h[dl];return y?p(y):h};let B=!1;const F=(d,h,y)=>{let w;d==null?h._vnode&&(me(h._vnode,null,null,!0),w=h._vnode.component):b(h._vnode||null,d,h,null,null,null,y),h._vnode=d,B||(B=!0,ao(w),ll(),B=!1)},V={p:b,um:me,m:ye,r:Ze,mt:ce,mc:j,pc:Z,pbc:H,n:v,o:e};return{render:F,hydrate:void 0,createApp:su(F)}}function Gr({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 Dt({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Eu(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Ks(e,t,n=!1){const r=e.children,s=t.children;if(q(r)&&q(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function jl(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:jl(t)}function vo(e){if(e)for(let t=0;te.__isSuspense;function Su(e,t){t&&t.pendingBranch?q(e)?t.effects.push(...e):t.effects.push(e):Pa(e)}const De=Symbol.for("v-fgt"),Pr=Symbol.for("v-txt"),ve=Symbol.for("v-cmt"),er=Symbol.for("v-stc"),vn=[];let je=null;function dr(e=!1){vn.push(je=e?null:[])}function vu(){vn.pop(),je=vn[vn.length-1]||null}let Nn=1;function hr(e,t=!1){Nn+=e,e<0&&je&&t&&(je.hasOnce=!0)}function Vl(e){return e.dynamicChildren=Nn>0?je||Yt:null,vu(),Nn>0&&je&&je.push(e),e}function pp(e,t,n,r,s,o){return Vl(ql(e,t,n,r,s,o,!0))}function pr(e,t,n,r,s){return Vl(Ne(e,t,n,r,s,!0))}function In(e){return e?e.__v_isVNode===!0:!1}function Ut(e,t){return e.type===t.type&&e.key===t.key}const $l=({key:e})=>e??null,tr=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?pe(e)||de(e)||J(e)?{i:Re,r:e,k:t,f:!!n}:e:null);function ql(e,t=null,n=null,r=0,s=null,o=e===De?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&$l(t),ref:t&&tr(t),scopeId:al,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:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Re};return l?(Ws(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=pe(n)?8:16),Nn>0&&!i&&je&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&je.push(c),c}const Ne=Au;function Au(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===Xa)&&(e=ve),In(e)){const l=It(e,t,!0);return n&&Ws(l,n),Nn>0&&!o&&je&&(l.shapeFlag&6?je[je.indexOf(e)]=l:je.push(l)),l.patchFlag=-2,l}if(Fu(e)&&(e=e.__vccOpts),t){t=Ru(t);let{class:l,style:c}=t;l&&!pe(l)&&(t.class=Is(l)),le(c)&&(Rr(c)&&!q(c)&&(c=Ee({},c)),t.style=Ns(c))}const i=pe(e)?1:Hl(e)?128:hl(e)?64:le(e)?4:J(e)?2:0;return ql(e,t,n,r,s,i,o,!0)}function Ru(e){return e?Rr(e)||Ll(e)?Ee({},e):e:null}function It(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?Ou(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&$l(u),ref:t&&t.ref?n&&o?q(o)?o.concat(tr(t)):[o,tr(t)]:tr(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!==De?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&&It(e.ssContent),ssFallback:e.ssFallback&&It(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&Pn(a,c.clone(a)),a}function Cu(e=" ",t=0){return Ne(Pr,null,e,t)}function mp(e,t){const n=Ne(er,null,e);return n.staticCount=t,n}function gp(e="",t=!1){return t?(dr(),pr(ve,null,e)):Ne(ve,null,e)}function ct(e){return e==null||typeof e=="boolean"?Ne(ve):q(e)?Ne(De,null,e.slice()):In(e)?Ot(e):Ne(Pr,null,String(e))}function Ot(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:It(e)}function Ws(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(q(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Ws(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Ll(t)?t._ctx=Re:s===3&&Re&&(Re.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else J(t)?(t={default:t,_ctx:Re},n=32):(t=String(t),r&64?(n=16,t=[Cu(t)]):n=8);e.children=t,e.shapeFlag|=n}function Ou(...e){const t={};for(let n=0;nPe||Re;let mr,ms;{const e=Sr(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};mr=t("__VUE_INSTANCE_SETTERS__",n=>Pe=n),ms=t("__VUE_SSR_SETTERS__",n=>Ln=n)}const jn=e=>{const t=Pe;return mr(e),e.scope.on(),()=>{e.scope.off(),mr(t)}},Ao=()=>{Pe&&Pe.scope.off(),mr(null)};function Kl(e){return e.vnode.shapeFlag&4}let Ln=!1;function Nu(e,t=!1,n=!1){t&&ms(t);const{props:r,children:s}=e.vnode,o=Kl(e);du(e,r,o,t),gu(e,s,n||t);const i=o?Iu(e,t):void 0;return t&&ms(!1),i}function Iu(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Qa);const{setup:r}=n;if(r){_t();const s=e.setupContext=r.length>1?Du(e):null,o=jn(e),i=Un(r,e,0,[e.props,s]),l=xi(i);if(bt(),o(),(l||e.sp)&&!tn(e)&&wl(e),l){if(i.then(Ao,Ao),t)return i.then(c=>{Ro(e,c)}).catch(c=>{Cr(c,e,0)});e.asyncDep=i}else Ro(e,i)}else Wl(e)}function Ro(e,t,n){J(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:le(t)&&(e.setupState=rl(t)),Wl(e)}function Wl(e,t,n){const r=e.type;e.render||(e.render=r.render||at);{const s=jn(e);_t();try{Ya(e)}finally{bt(),s()}}}const Lu={get(e,t){return Se(e,"get",""),e[t]}};function Du(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Lu),slots:e.slots,emit:e.emit,expose:t}}function Nr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(rl(js(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Sn)return Sn[n](e)},has(t,n){return n in t||n in Sn}})):e.proxy}function Fu(e){return J(e)&&"__vccOpts"in e}const Ue=(e,t)=>Ra(e,t,Ln);function zs(e,t,n){try{hr(-1);const r=arguments.length;return r===2?le(t)&&!q(t)?In(t)?Ne(e,null,[t]):Ne(e,t):Ne(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&In(n)&&(n=[n]),Ne(e,t,n))}finally{hr(1)}}const Mu="3.5.26";let gs;const Co=typeof window<"u"&&window.trustedTypes;if(Co)try{gs=Co.createPolicy("vue",{createHTML:e=>e})}catch{}const Gl=gs?e=>gs.createHTML(e):e=>e,Bu="http://www.w3.org/2000/svg",Uu="http://www.w3.org/1998/Math/MathML",pt=typeof document<"u"?document:null,Oo=pt&&pt.createElement("template"),ju={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?pt.createElementNS(Bu,e):t==="mathml"?pt.createElementNS(Uu,e):n?pt.createElement(e,{is:n}):pt.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>pt.createTextNode(e),createComment:e=>pt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>pt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{Oo.innerHTML=Gl(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=Oo.content;if(r==="svg"||r==="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]}},St="transition",dn="animation",Dn=Symbol("_vtc"),zl={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},ku=Ee({},gl,zl),Hu=e=>(e.displayName="Transition",e.props=ku,e),yp=Hu((e,{slots:t})=>zs(ja,Vu(e),t)),Ft=(e,t=[])=>{q(e)?e.forEach(n=>n(...t)):e&&e(...t)},To=e=>e?q(e)?e.some(t=>t.length>1):e.length>1:!1;function Vu(e){const t={};for(const L in e)L in zl||(t[L]=e[L]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=o,appearActiveClass:u=i,appearToClass:a=l,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,g=$u(s),b=g&&g[0],E=g&&g[1],{onBeforeEnter:C,onEnter:T,onEnterCancelled:N,onLeave:x,onLeaveCancelled:U,onBeforeAppear:G=C,onAppear:k=T,onAppearCancelled:j=N}=t,O=(L,Q,ce,be)=>{L._enterCancelled=be,Mt(L,Q?a:l),Mt(L,Q?u:i),ce&&ce()},H=(L,Q)=>{L._isLeaving=!1,Mt(L,f),Mt(L,m),Mt(L,p),Q&&Q()},Y=L=>(Q,ce)=>{const be=L?k:T,ee=()=>O(Q,L,ce);Ft(be,[Q,ee]),xo(()=>{Mt(Q,L?c:o),dt(Q,L?a:l),To(be)||Po(Q,r,b,ee)})};return Ee(t,{onBeforeEnter(L){Ft(C,[L]),dt(L,o),dt(L,i)},onBeforeAppear(L){Ft(G,[L]),dt(L,c),dt(L,u)},onEnter:Y(!1),onAppear:Y(!0),onLeave(L,Q){L._isLeaving=!0;const ce=()=>H(L,Q);dt(L,f),L._enterCancelled?(dt(L,p),Lo(L)):(Lo(L),dt(L,p)),xo(()=>{L._isLeaving&&(Mt(L,f),dt(L,m),To(x)||Po(L,r,E,ce))}),Ft(x,[L,ce])},onEnterCancelled(L){O(L,!1,void 0,!0),Ft(N,[L])},onAppearCancelled(L){O(L,!0,void 0,!0),Ft(j,[L])},onLeaveCancelled(L){H(L),Ft(U,[L])}})}function $u(e){if(e==null)return null;if(le(e))return[zr(e.enter),zr(e.leave)];{const t=zr(e);return[t,t]}}function zr(e){return Vc(e)}function dt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Dn]||(e[Dn]=new Set)).add(t)}function Mt(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[Dn];n&&(n.delete(t),n.size||(e[Dn]=void 0))}function xo(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let qu=0;function Po(e,t,n,r){const s=e._endId=++qu,o=()=>{s===e._endId&&r()};if(n!=null)return setTimeout(o,n);const{type:i,timeout:l,propCount:c}=Ku(e,t);if(!i)return r();const u=i+"end";let a=0;const f=()=>{e.removeEventListener(u,p),o()},p=m=>{m.target===e&&++a>=c&&f()};setTimeout(()=>{a(n[g]||"").split(", "),s=r(`${St}Delay`),o=r(`${St}Duration`),i=No(s,o),l=r(`${dn}Delay`),c=r(`${dn}Duration`),u=No(l,c);let a=null,f=0,p=0;t===St?i>0&&(a=St,f=i,p=o.length):t===dn?u>0&&(a=dn,f=u,p=c.length):(f=Math.max(i,u),a=f>0?i>u?St:dn:null,p=a?a===St?o.length:c.length:0);const m=a===St&&/\b(?:transform|all)(?:,|$)/.test(r(`${St}Property`).toString());return{type:a,timeout:f,propCount:p,hasTransform:m}}function No(e,t){for(;e.lengthIo(n)+Io(e[r])))}function Io(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Lo(e){return(e?e.ownerDocument:document).body.offsetHeight}function Wu(e,t,n){const r=e[Dn];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Do=Symbol("_vod"),Gu=Symbol("_vsh"),zu=Symbol(""),Ju=/(?:^|;)\s*display\s*:/;function Xu(e,t,n){const r=e.style,s=pe(n);let o=!1;if(n&&!s){if(t)if(pe(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&nr(r,l,"")}else for(const i in t)n[i]==null&&nr(r,i,"");for(const i in n)i==="display"&&(o=!0),nr(r,i,n[i])}else if(s){if(t!==n){const i=r[zu];i&&(n+=";"+i),r.cssText=n,o=Ju.test(n)}}else t&&e.removeAttribute("style");Do in e&&(e[Do]=o?r.display:"",e[Gu]&&(r.display="none"))}const Fo=/\s*!important$/;function nr(e,t,n){if(q(n))n.forEach(r=>nr(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Qu(e,t);Fo.test(n)?e.setProperty(Gt(r),n.replace(Fo,""),"important"):e[r]=n}}const Mo=["Webkit","Moz","ms"],Jr={};function Qu(e,t){const n=Jr[t];if(n)return n;let r=Nt(t);if(r!=="filter"&&r in e)return Jr[t]=r;r=Ii(r);for(let s=0;sXr||(tf.then(()=>Xr=0),Xr=Date.now());function rf(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Je(sf(r,n.value),t,5,[r])};return n.value=e,n.attached=nf(),n}function sf(e,t){if(q(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const Vo=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,of=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?Wu(e,r,i):t==="style"?Xu(e,n,r):_r(t)?Ts(t)||Zu(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):lf(e,t,r,i))?(jo(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Uo(e,t,r,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!pe(r))?jo(e,Nt(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Uo(e,t,r,i))};function lf(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&Vo(t)&&J(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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return Vo(t)&&pe(n)?!1:t in e}const gr=e=>{const t=e.props["onUpdate:modelValue"]||!1;return q(t)?n=>Qn(t,n):t};function cf(e){e.target.composing=!0}function $o(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const nn=Symbol("_assign");function qo(e,t,n){return t&&(e=e.trim()),n&&(e=Ps(e)),e}const _p={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[nn]=gr(s);const o=r||s.props&&s.props.type==="number";jt(e,t?"change":"input",i=>{i.target.composing||e[nn](qo(e.value,n,o))}),(n||o)&&jt(e,"change",()=>{e.value=qo(e.value,n,o)}),t||(jt(e,"compositionstart",cf),jt(e,"compositionend",$o),jt(e,"change",$o))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[nn]=gr(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?Ps(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},bp={deep:!0,created(e,t,n){e[nn]=gr(n),jt(e,"change",()=>{const r=e._modelValue,s=af(e),o=e.checked,i=e[nn];if(q(r)){const l=Fi(r,s),c=l!==-1;if(o&&!c)i(r.concat(s));else if(!o&&c){const u=[...r];u.splice(l,1),i(u)}}else if(br(r)){const l=new Set(r);o?l.add(s):l.delete(s),i(l)}else i(Jl(e,o))})},mounted:Ko,beforeUpdate(e,t,n){e[nn]=gr(n),Ko(e,t,n)}};function Ko(e,{value:t,oldValue:n},r){e._modelValue=t;let s;if(q(t))s=Fi(t,r.props.value)>-1;else if(br(t))s=t.has(r.props.value);else{if(t===n)return;s=vr(t,Jl(e,!0))}e.checked!==s&&(e.checked=s)}function af(e){return"_value"in e?e._value:e.value}function Jl(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const uf=["ctrl","shift","alt","meta"],ff={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>uf.some(n=>e[`${n}Key`]&&!t.includes(n))},Ep=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const t=hf().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=gf(r);if(!s)return;const o=t._component;!J(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,mf(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t});function mf(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function gf(e){return pe(e)?document.querySelector(e):e}let Xl;const Ir=e=>Xl=e,Ql=Symbol();function ys(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var An;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(An||(An={}));function yf(){const e=ji(!0),t=e.run(()=>$t({}));let n=[],r=[];const s=js({install(o){Ir(s),s._a=o,o.provide(Ql,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const Yl=()=>{};function Go(e,t,n,r=Yl){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&ki()&&Qc(s),s}function Jt(e,...t){e.forEach(n=>{n(...t)})}const _f=e=>e(),zo=Symbol(),Qr=Symbol();function _s(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];ys(s)&&ys(r)&&e.hasOwnProperty(n)&&!de(r)&&!ut(r)?e[n]=_s(s,r):e[n]=r}return e}const bf=Symbol();function Ef(e){return!ys(e)||!Object.prototype.hasOwnProperty.call(e,bf)}const{assign:At}=Object;function wf(e){return!!(de(e)&&e.effect)}function Sf(e,t,n,r){const{state:s,actions:o,getters:i}=t,l=n.state.value[e];let c;function u(){l||(n.state.value[e]=s?s():{});const a=Ea(n.state.value[e]);return At(a,o,Object.keys(i||{}).reduce((f,p)=>(f[p]=js(Ue(()=>{Ir(n);const m=n._s.get(e);return i[p].call(m,m)})),f),{}))}return c=Zl(e,u,t,n,r,!0),c}function Zl(e,t,n={},r,s,o){let i;const l=At({actions:{}},n),c={deep:!0};let u,a,f=new Set,p=new Set,m;const g=r.state.value[e];!o&&!g&&(r.state.value[e]={}),$t({});let b;function E(j){let O;u=a=!1,typeof j=="function"?(j(r.state.value[e]),O={type:An.patchFunction,storeId:e,events:m}):(_s(r.state.value[e],j),O={type:An.patchObject,payload:j,storeId:e,events:m});const H=b=Symbol();ks().then(()=>{b===H&&(u=!0)}),a=!0,Jt(f,O,r.state.value[e])}const C=o?function(){const{state:O}=n,H=O?O():{};this.$patch(Y=>{At(Y,H)})}:Yl;function T(){i.stop(),f.clear(),p.clear(),r._s.delete(e)}const N=(j,O="")=>{if(zo in j)return j[Qr]=O,j;const H=function(){Ir(r);const Y=Array.from(arguments),L=new Set,Q=new Set;function ce(z){L.add(z)}function be(z){Q.add(z)}Jt(p,{args:Y,name:H[Qr],store:U,after:ce,onError:be});let ee;try{ee=j.apply(this&&this.$id===e?this:U,Y)}catch(z){throw Jt(Q,z),z}return ee instanceof Promise?ee.then(z=>(Jt(L,z),z)).catch(z=>(Jt(Q,z),Promise.reject(z))):(Jt(L,ee),ee)};return H[zo]=!0,H[Qr]=O,H},x={_p:r,$id:e,$onAction:Go.bind(null,p),$patch:E,$reset:C,$subscribe(j,O={}){const H=Go(f,j,O.detached,()=>Y()),Y=i.run(()=>bn(()=>r.state.value[e],L=>{(O.flush==="sync"?a:u)&&j({storeId:e,type:An.direct,events:m},L)},At({},c,O)));return H},$dispose:T},U=Bn(x);r._s.set(e,U);const k=(r._a&&r._a.runWithContext||_f)(()=>r._e.run(()=>(i=ji()).run(()=>t({action:N}))));for(const j in k){const O=k[j];if(de(O)&&!wf(O)||ut(O))o||(g&&Ef(O)&&(de(O)?O.value=g[j]:_s(O,g[j])),r.state.value[e][j]=O);else if(typeof O=="function"){const H=N(O,j);k[j]=H,l.actions[j]=O}}return At(U,k),At(re(U),k),Object.defineProperty(U,"$state",{get:()=>r.state.value[e],set:j=>{E(O=>{At(O,j)})}}),r._p.forEach(j=>{At(U,i.run(()=>j({store:U,app:r._a,pinia:r,options:l})))}),g&&o&&n.hydrate&&n.hydrate(U.$state,g),u=!0,a=!0,U}function vf(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,l){const c=Ia();return i=i||(c?qe(Ql,null):null),i&&Ir(i),i=Xl,i._s.has(e)||(s?Zl(e,t,r,i):Sf(e,r,i)),i._s.get(e)}return o.$id=e,o}function wp(e){const t=re(e),n={};for(const r in t){const s=t[r];s.effect?n[r]=Ue({get:()=>e[r],set(o){e[r]=o}}):(de(s)||ut(s))&&(n[r]=va(e,r))}return n}const Af="modulepreload",Rf=function(e){return"/"+e},Jo={},ot=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let c=function(u){return Promise.all(u.map(a=>Promise.resolve(a).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=c(n.map(u=>{if(u=Rf(u),u in Jo)return;Jo[u]=!0;const a=u.endsWith(".css"),f=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const p=document.createElement("link");if(p.rel=a?"stylesheet":Af,a||(p.as="script"),p.crossOrigin="",p.href=u,l&&p.setAttribute("nonce",l),document.head.appendChild(p),a)return new Promise((m,g)=>{p.addEventListener("load",m),p.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})};const Qt=typeof document<"u";function ec(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Cf(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&ec(e.default)}const se=Object.assign;function Yr(e,t){const n={};for(const r in t){const s=t[r];n[r]=Xe(s)?s.map(e):e(s)}return n}const Rn=()=>{},Xe=Array.isArray;function Xo(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const tc=/#/g,Of=/&/g,Tf=/\//g,xf=/=/g,Pf=/\?/g,nc=/\+/g,Nf=/%5B/g,If=/%5D/g,rc=/%5E/g,Lf=/%60/g,sc=/%7B/g,Df=/%7C/g,oc=/%7D/g,Ff=/%20/g;function Js(e){return e==null?"":encodeURI(""+e).replace(Df,"|").replace(Nf,"[").replace(If,"]")}function Mf(e){return Js(e).replace(sc,"{").replace(oc,"}").replace(rc,"^")}function bs(e){return Js(e).replace(nc,"%2B").replace(Ff,"+").replace(tc,"%23").replace(Of,"%26").replace(Lf,"`").replace(sc,"{").replace(oc,"}").replace(rc,"^")}function Bf(e){return bs(e).replace(xf,"%3D")}function Uf(e){return Js(e).replace(tc,"%23").replace(Pf,"%3F")}function jf(e){return Uf(e).replace(Tf,"%2F")}function Fn(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const kf=/\/$/,Hf=e=>e.replace(kf,"");function Zr(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return c=l>=0&&c>l?-1:c,c>=0&&(r=t.slice(0,c),o=t.slice(c,l>0?l:t.length),s=e(o.slice(1))),l>=0&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=Kf(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:Fn(i)}}function Vf(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Qo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function $f(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&sn(t.matched[r],n.matched[s])&&ic(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function sn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function ic(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!qf(e[n],t[n]))return!1;return!0}function qf(e,t){return Xe(e)?Yo(e,t):Xe(t)?Yo(t,e):e?.valueOf()===t?.valueOf()}function Yo(e,t){return Xe(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function Kf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const vt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let Es=(function(e){return e.pop="pop",e.push="push",e})({}),es=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function Wf(e){if(!e)if(Qt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Hf(e)}const Gf=/^[^#]+#/;function zf(e,t){return e.replace(Gf,"#")+t}function Jf(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const Lr=()=>({left:window.scrollX,top:window.scrollY});function Xf(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=Jf(s,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 Zo(e,t){return(history.state?history.state.position-t:-1)+e}const ws=new Map;function Qf(e,t){ws.set(e,t)}function Yf(e){const t=ws.get(e);return ws.delete(e),t}function Zf(e){return typeof e=="string"||e&&typeof e=="object"}function lc(e){return typeof e=="string"||typeof e=="symbol"}let he=(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 cc=Symbol("");he.MATCHER_NOT_FOUND+"",he.NAVIGATION_GUARD_REDIRECT+"",he.NAVIGATION_ABORTED+"",he.NAVIGATION_CANCELLED+"",he.NAVIGATION_DUPLICATED+"";function on(e,t){return se(new Error,{type:e,[cc]:!0},t)}function ht(e,t){return e instanceof Error&&cc in e&&(t==null||!!(e.type&t))}const ed=["params","query","hash"];function td(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of ed)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function nd(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&bs(s)):[r&&bs(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function rd(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=Xe(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const sd=Symbol(""),ti=Symbol(""),Dr=Symbol(""),Xs=Symbol(""),Ss=Symbol("");function hn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Tt(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,c)=>{const u=p=>{p===!1?c(on(he.NAVIGATION_ABORTED,{from:n,to:t})):p instanceof Error?c(p):Zf(p)?c(on(he.NAVIGATION_GUARD_REDIRECT,{from:t,to:p})):(i&&r.enterCallbacks[s]===i&&typeof p=="function"&&i.push(p),l())},a=o(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(a);e.length<3&&(f=f.then(u)),f.catch(p=>c(p))})}function ts(e,t,n,r,s=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(ec(c)){const u=(c.__vccOpts||c)[t];u&&o.push(Tt(u,n,r,i,l,s))}else{let u=c();o.push(()=>u.then(a=>{if(!a)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=Cf(a)?a.default:a;i.mods[l]=a,i.components[l]=f;const p=(f.__vccOpts||f)[t];return p&&Tt(p,n,r,i,l,s)()}))}}return o}function od(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;isn(u,l))?r.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(u=>sn(u,c))||s.push(c))}return[n,r,s]}let id=()=>location.protocol+"//"+location.host;function ac(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(i);return l[0]!=="/"&&(l="/"+l),Qo(l,"")}return Qo(n,e)+r+s}function ld(e,t,n,r){let s=[],o=[],i=null;const l=({state:p})=>{const m=ac(e,location),g=n.value,b=t.value;let E=0;if(p){if(n.value=m,t.value=p,i&&i===g){i=null;return}E=b?p.position-b.position:0}else r(m);s.forEach(C=>{C(n.value,g,{delta:E,type:Es.pop,direction:E?E>0?es.forward:es.back:es.unknown})})};function c(){i=n.value}function u(p){s.push(p);const m=()=>{const g=s.indexOf(p);g>-1&&s.splice(g,1)};return o.push(m),m}function a(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(se({},p.state,{scroll:Lr()}),"")}}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 ni(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?Lr():null}}function cd(e){const{history:t,location:n}=window,r={value:ac(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.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:id()+e+c;try{t[a?"replaceState":"pushState"](u,"",p),s.value=u}catch(m){console.error(m),n[a?"replace":"assign"](p)}}function i(c,u){o(c,se({},t.state,ni(s.value.back,c,s.value.forward,!0),u,{position:s.value.position}),!0),r.value=c}function l(c,u){const a=se({},s.value,t.state,{forward:c,scroll:Lr()});o(a.current,a,!0),o(c,se({},ni(r.value,c,null),{position:a.position+1},u),!1),r.value=c}return{location:r,state:s,push:l,replace:i}}function ad(e){e=Wf(e);const t=cd(e),n=ld(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=se({location:"",base:e,go:r,createHref:zf.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function ud(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),ad(e)}let kt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var _e=(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})(_e||{});const fd={type:kt.Static,value:""},dd=/[a-zA-Z0-9_]/;function hd(e){if(!e)return[[]];if(e==="/")return[[fd]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${u}": ${m}`)}let n=_e.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,c,u="",a="";function f(){u&&(n===_e.Static?o.push({type:kt.Static,value:u}):n===_e.Param||n===_e.ParamRegExp||n===_e.ParamRegExpEnd?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:kt.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]===Te.Static+Te.Segment?1:-1:0}function uc(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const _d={strict:!1,end:!0,sensitive:!1};function bd(e,t,n){const r=gd(hd(e.path),n),s=se(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function Ed(e,t){const n=[],r=new Map;t=Xo(_d,t);function s(f){return r.get(f)}function o(f,p,m){const g=!m,b=ii(f);b.aliasOf=m&&m.record;const E=Xo(t,f),C=[b];if("alias"in f){const x=typeof f.alias=="string"?[f.alias]:f.alias;for(const U of x)C.push(ii(se({},b,{components:m?m.record.components:b.components,path:U,aliasOf:m?m.record:b})))}let T,N;for(const x of C){const{path:U}=x;if(p&&U[0]!=="/"){const G=p.record.path,k=G[G.length-1]==="/"?"":"/";x.path=p.record.path+(U&&k+U)}if(T=bd(x,p,E),m?m.alias.push(T):(N=N||T,N!==T&&N.alias.push(T),g&&f.name&&!li(T)&&i(f.name)),fc(T)&&c(T),b.children){const G=b.children;for(let k=0;k{i(N)}:Rn}function i(f){if(lc(f)){const p=r.get(f);p&&(r.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&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function c(f){const p=vd(f,n);n.splice(p,0,f),f.record.name&&!li(f)&&r.set(f.record.name,f)}function u(f,p){let m,g={},b,E;if("name"in f&&f.name){if(m=r.get(f.name),!m)throw on(he.MATCHER_NOT_FOUND,{location:f});E=m.record.name,g=se(oi(p.params,m.keys.filter(N=>!N.optional).concat(m.parent?m.parent.keys.filter(N=>N.optional):[]).map(N=>N.name)),f.params&&oi(f.params,m.keys.map(N=>N.name))),b=m.stringify(g)}else if(f.path!=null)b=f.path,m=n.find(N=>N.re.test(b)),m&&(g=m.parse(b),E=m.record.name);else{if(m=p.name?r.get(p.name):n.find(N=>N.re.test(p.path)),!m)throw on(he.MATCHER_NOT_FOUND,{location:f,currentLocation:p});E=m.record.name,g=se({},p.params,f.params),b=m.stringify(g)}const C=[];let T=m;for(;T;)C.unshift(T.record),T=T.parent;return{name:E,path:b,params:g,matched:C,meta:Sd(C)}}e.forEach(f=>o(f));function a(){n.length=0,r.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:a,getRoutes:l,getRecordMatcher:s}}function oi(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function ii(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:wd(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 wd(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function li(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Sd(e){return e.reduce((t,n)=>se(t,n.meta),{})}function vd(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;uc(e,t[o])<0?r=o:n=o+1}const s=Ad(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function Ad(e){let t=e;for(;t=t.parent;)if(fc(t)&&uc(e,t)===0)return t}function fc({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function ci(e){const t=qe(Dr),n=qe(Xs),r=Ue(()=>{const c=Pt(e.to);return t.resolve(c)}),s=Ue(()=>{const{matched:c}=r.value,{length:u}=c,a=c[u-1],f=n.matched;if(!a||!f.length)return-1;const p=f.findIndex(sn.bind(null,a));if(p>-1)return p;const m=ai(c[u-2]);return u>1&&ai(a)===m&&f[f.length-1].path!==m?f.findIndex(sn.bind(null,c[u-2])):p}),o=Ue(()=>s.value>-1&&xd(n.params,r.value.params)),i=Ue(()=>s.value>-1&&s.value===n.matched.length-1&&ic(n.params,r.value.params));function l(c={}){if(Td(c)){const u=t[Pt(e.replace)?"replace":"push"](Pt(e.to)).catch(Rn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Ue(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function Rd(e){return e.length===1?e[0]:e}const Cd=Vs({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:ci,setup(e,{slots:t}){const n=Bn(ci(e)),{options:r}=qe(Dr),s=Ue(()=>({[ui(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[ui(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&Rd(t.default(n));return e.custom?o:zs("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),Od=Cd;function Td(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 xd(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!Xe(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function ai(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const ui=(e,t,n)=>e??t??n,Pd=Vs({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=qe(Ss),s=Ue(()=>e.route||r.value),o=qe(ti,0),i=Ue(()=>{let u=Pt(o);const{matched:a}=s.value;let f;for(;(f=a[u])&&!f.components;)u++;return u}),l=Ue(()=>s.value.matched[i.value]);Yn(ti,Ue(()=>i.value+1)),Yn(sd,l),Yn(Ss,s);const c=$t();return bn(()=>[c.value,l.value,e.name],([u,a,f],[p,m,g])=>{a&&(a.instances[f]=u,m&&m!==a&&u&&u===p&&(a.leaveGuards.size||(a.leaveGuards=m.leaveGuards),a.updateGuards.size||(a.updateGuards=m.updateGuards))),u&&a&&(!m||!sn(a,m)||!p)&&(a.enterCallbacks[f]||[]).forEach(b=>b(u))},{flush:"post"}),()=>{const u=s.value,a=e.name,f=l.value,p=f&&f.components[a];if(!p)return fi(n.default,{Component:p,route:u});const m=f.props[a],g=m?m===!0?u.params:typeof m=="function"?m(u):m:null,E=zs(p,se({},g,t,{onVnodeUnmounted:C=>{C.component.isUnmounted&&(f.instances[a]=null)},ref:c}));return fi(n.default,{Component:E,route:u})||E}}});function fi(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const dc=Pd;function Nd(e){const t=Ed(e.routes,e),n=e.parseQuery||nd,r=e.stringifyQuery||ei,s=e.history,o=hn(),i=hn(),l=hn(),c=ya(vt);let u=vt;Qt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const a=Yr.bind(null,v=>""+v),f=Yr.bind(null,jf),p=Yr.bind(null,Fn);function m(v,B){let F,V;return lc(v)?(F=t.getRecordMatcher(v),V=B):V=v,t.addRoute(V,F)}function g(v){const B=t.getRecordMatcher(v);B&&t.removeRoute(B)}function b(){return t.getRoutes().map(v=>v.record)}function E(v){return!!t.getRecordMatcher(v)}function C(v,B){if(B=se({},B||c.value),typeof v=="string"){const y=Zr(n,v,B.path),w=t.resolve({path:y.path},B),A=s.createHref(y.fullPath);return se(y,w,{params:p(w.params),hash:Fn(y.hash),redirectedFrom:void 0,href:A})}let F;if(v.path!=null)F=se({},v,{path:Zr(n,v.path,B.path).path});else{const y=se({},v.params);for(const w in y)y[w]==null&&delete y[w];F=se({},v,{params:f(y)}),B.params=f(B.params)}const V=t.resolve(F,B),te=v.hash||"";V.params=a(p(V.params));const d=Vf(r,se({},v,{hash:Mf(te),path:V.path})),h=s.createHref(d);return se({fullPath:d,hash:te,query:r===ei?rd(v.query):v.query||{}},V,{redirectedFrom:void 0,href:h})}function T(v){return typeof v=="string"?Zr(n,v,c.value.path):se({},v)}function N(v,B){if(u!==v)return on(he.NAVIGATION_CANCELLED,{from:B,to:v})}function x(v){return k(v)}function U(v){return x(se(T(v),{replace:!0}))}function G(v,B){const F=v.matched[v.matched.length-1];if(F&&F.redirect){const{redirect:V}=F;let te=typeof V=="function"?V(v,B):V;return typeof te=="string"&&(te=te.includes("?")||te.includes("#")?te=T(te):{path:te},te.params={}),se({query:v.query,hash:v.hash,params:te.path!=null?{}:v.params},te)}}function k(v,B){const F=u=C(v),V=c.value,te=v.state,d=v.force,h=v.replace===!0,y=G(F,V);if(y)return k(se(T(y),{state:typeof y=="object"?se({},te,y.state):te,force:d,replace:h}),B||F);const w=F;w.redirectedFrom=B;let A;return!d&&$f(r,V,F)&&(A=on(he.NAVIGATION_DUPLICATED,{to:w,from:V}),ye(V,V,!0,!1)),(A?Promise.resolve(A):H(w,V)).catch(S=>ht(S)?ht(S,he.NAVIGATION_GUARD_REDIRECT)?S:Ye(S):Z(S,w,V)).then(S=>{if(S){if(ht(S,he.NAVIGATION_GUARD_REDIRECT))return k(se({replace:h},T(S.to),{state:typeof S.to=="object"?se({},te,S.to.state):te,force:d}),B||w)}else S=L(w,V,!0,h,te);return Y(w,V,S),S})}function j(v,B){const F=N(v,B);return F?Promise.reject(F):Promise.resolve()}function O(v){const B=Ke.values().next().value;return B&&typeof B.runWithContext=="function"?B.runWithContext(v):v()}function H(v,B){let F;const[V,te,d]=od(v,B);F=ts(V.reverse(),"beforeRouteLeave",v,B);for(const y of V)y.leaveGuards.forEach(w=>{F.push(Tt(w,v,B))});const h=j.bind(null,v,B);return F.push(h),Ve(F).then(()=>{F=[];for(const y of o.list())F.push(Tt(y,v,B));return F.push(h),Ve(F)}).then(()=>{F=ts(te,"beforeRouteUpdate",v,B);for(const y of te)y.updateGuards.forEach(w=>{F.push(Tt(w,v,B))});return F.push(h),Ve(F)}).then(()=>{F=[];for(const y of d)if(y.beforeEnter)if(Xe(y.beforeEnter))for(const w of y.beforeEnter)F.push(Tt(w,v,B));else F.push(Tt(y.beforeEnter,v,B));return F.push(h),Ve(F)}).then(()=>(v.matched.forEach(y=>y.enterCallbacks={}),F=ts(d,"beforeRouteEnter",v,B,O),F.push(h),Ve(F))).then(()=>{F=[];for(const y of i.list())F.push(Tt(y,v,B));return F.push(h),Ve(F)}).catch(y=>ht(y,he.NAVIGATION_CANCELLED)?y:Promise.reject(y))}function Y(v,B,F){l.list().forEach(V=>O(()=>V(v,B,F)))}function L(v,B,F,V,te){const d=N(v,B);if(d)return d;const h=B===vt,y=Qt?history.state:{};F&&(V||h?s.replace(v.fullPath,se({scroll:h&&y&&y.scroll},te)):s.push(v.fullPath,te)),c.value=v,ye(v,B,F,h),Ye()}let Q;function ce(){Q||(Q=s.listen((v,B,F)=>{if(!et.listening)return;const V=C(v),te=G(V,et.currentRoute.value);if(te){k(se(te,{replace:!0,force:!0}),V).catch(Rn);return}u=V;const d=c.value;Qt&&Qf(Zo(d.fullPath,F.delta),Lr()),H(V,d).catch(h=>ht(h,he.NAVIGATION_ABORTED|he.NAVIGATION_CANCELLED)?h:ht(h,he.NAVIGATION_GUARD_REDIRECT)?(k(se(T(h.to),{force:!0}),V).then(y=>{ht(y,he.NAVIGATION_ABORTED|he.NAVIGATION_DUPLICATED)&&!F.delta&&F.type===Es.pop&&s.go(-1,!1)}).catch(Rn),Promise.reject()):(F.delta&&s.go(-F.delta,!1),Z(h,V,d))).then(h=>{h=h||L(V,d,!1),h&&(F.delta&&!ht(h,he.NAVIGATION_CANCELLED)?s.go(-F.delta,!1):F.type===Es.pop&&ht(h,he.NAVIGATION_ABORTED|he.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),Y(V,d,h)}).catch(Rn)}))}let be=hn(),ee=hn(),z;function Z(v,B,F){Ye(v);const V=ee.list();return V.length?V.forEach(te=>te(v,B,F)):console.error(v),Promise.reject(v)}function He(){return z&&c.value!==vt?Promise.resolve():new Promise((v,B)=>{be.add([v,B])})}function Ye(v){return z||(z=!v,ce(),be.list().forEach(([B,F])=>v?F(v):B()),be.reset()),v}function ye(v,B,F,V){const{scrollBehavior:te}=e;if(!Qt||!te)return Promise.resolve();const d=!F&&Yf(Zo(v.fullPath,0))||(V||!F)&&history.state&&history.state.scroll||null;return ks().then(()=>te(v,B,d)).then(h=>h&&Xf(h)).catch(h=>Z(h,v,B))}const me=v=>s.go(v);let Ze;const Ke=new Set,et={currentRoute:c,listening:!0,addRoute:m,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:E,getRoutes:b,resolve:C,options:e,push:x,replace:U,go:me,back:()=>me(-1),forward:()=>me(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:ee.add,isReady:He,install(v){v.component("RouterLink",Od),v.component("RouterView",dc),v.config.globalProperties.$router=et,Object.defineProperty(v.config.globalProperties,"$route",{enumerable:!0,get:()=>Pt(c)}),Qt&&!Ze&&c.value===vt&&(Ze=!0,x(s.location).catch(V=>{}));const B={};for(const V in vt)Object.defineProperty(B,V,{get:()=>c.value[V],enumerable:!0});v.provide(Dr,et),v.provide(Xs,tl(B)),v.provide(Ss,c);const F=v.unmount;Ke.add(v),v.unmount=function(){Ke.delete(v),Ke.size<1&&(u=vt,Q&&Q(),Q=null,c.value=vt,Ze=!1,z=!1),F()}}};function Ve(v){return v.reduce((B,F)=>B.then(()=>O(F)),Promise.resolve())}return et}function Sp(){return qe(Dr)}function vp(e){return qe(Xs)}function hc(e,t){return function(){return e.apply(t,arguments)}}const{toString:Id}=Object.prototype,{getPrototypeOf:Qs}=Object,{iterator:Fr,toStringTag:pc}=Symbol,Mr=(e=>t=>{const n=Id.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Qe=e=>(e=e.toLowerCase(),t=>Mr(t)===e),Br=e=>t=>typeof t===e,{isArray:cn}=Array,ln=Br("undefined");function kn(e){return e!==null&&!ln(e)&&e.constructor!==null&&!ln(e.constructor)&&Fe(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const mc=Qe("ArrayBuffer");function Ld(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&mc(e.buffer),t}const Dd=Br("string"),Fe=Br("function"),gc=Br("number"),Hn=e=>e!==null&&typeof e=="object",Fd=e=>e===!0||e===!1,rr=e=>{if(Mr(e)!=="object")return!1;const t=Qs(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(pc in e)&&!(Fr in e)},Md=e=>{if(!Hn(e)||kn(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},Bd=Qe("Date"),Ud=Qe("File"),jd=Qe("Blob"),kd=Qe("FileList"),Hd=e=>Hn(e)&&Fe(e.pipe),Vd=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Fe(e.append)&&((t=Mr(e))==="formdata"||t==="object"&&Fe(e.toString)&&e.toString()==="[object FormData]"))},$d=Qe("URLSearchParams"),[qd,Kd,Wd,Gd]=["ReadableStream","Request","Response","Headers"].map(Qe),zd=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Vn(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),cn(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const Ht=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,_c=e=>!ln(e)&&e!==Ht;function vs(){const{caseless:e,skipUndefined:t}=_c(this)&&this||{},n={},r=(s,o)=>{const i=e&&yc(n,o)||o;rr(n[i])&&rr(s)?n[i]=vs(n[i],s):rr(s)?n[i]=vs({},s):cn(s)?n[i]=s.slice():(!t||!ln(s))&&(n[i]=s)};for(let s=0,o=arguments.length;s(Vn(t,(s,o)=>{n&&Fe(s)?e[o]=hc(s,n):e[o]=s},{allOwnKeys:r}),e),Xd=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),Qd=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},Yd=(e,t,n,r)=>{let s,o,i;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&Qs(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},Zd=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},eh=e=>{if(!e)return null;if(cn(e))return e;let t=e.length;if(!gc(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},th=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Qs(Uint8Array)),nh=(e,t)=>{const r=(e&&e[Fr]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},rh=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},sh=Qe("HTMLFormElement"),oh=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),di=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),ih=Qe("RegExp"),bc=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Vn(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},lh=e=>{bc(e,(t,n)=>{if(Fe(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Fe(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},ch=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return cn(e)?r(e):r(String(e).split(t)),n},ah=()=>{},uh=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function fh(e){return!!(e&&Fe(e.append)&&e[pc]==="FormData"&&e[Fr])}const dh=e=>{const t=new Array(10),n=(r,s)=>{if(Hn(r)){if(t.indexOf(r)>=0)return;if(kn(r))return r;if(!("toJSON"in r)){t[s]=r;const o=cn(r)?[]:{};return Vn(r,(i,l)=>{const c=n(i,s+1);!ln(c)&&(o[l]=c)}),t[s]=void 0,o}}return r};return n(e,0)},hh=Qe("AsyncFunction"),ph=e=>e&&(Hn(e)||Fe(e))&&Fe(e.then)&&Fe(e.catch),Ec=((e,t)=>e?setImmediate:t?((n,r)=>(Ht.addEventListener("message",({source:s,data:o})=>{s===Ht&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),Ht.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Fe(Ht.postMessage)),mh=typeof queueMicrotask<"u"?queueMicrotask.bind(Ht):typeof process<"u"&&process.nextTick||Ec,gh=e=>e!=null&&Fe(e[Fr]),_={isArray:cn,isArrayBuffer:mc,isBuffer:kn,isFormData:Vd,isArrayBufferView:Ld,isString:Dd,isNumber:gc,isBoolean:Fd,isObject:Hn,isPlainObject:rr,isEmptyObject:Md,isReadableStream:qd,isRequest:Kd,isResponse:Wd,isHeaders:Gd,isUndefined:ln,isDate:Bd,isFile:Ud,isBlob:jd,isRegExp:ih,isFunction:Fe,isStream:Hd,isURLSearchParams:$d,isTypedArray:th,isFileList:kd,forEach:Vn,merge:vs,extend:Jd,trim:zd,stripBOM:Xd,inherits:Qd,toFlatObject:Yd,kindOf:Mr,kindOfTest:Qe,endsWith:Zd,toArray:eh,forEachEntry:nh,matchAll:rh,isHTMLForm:sh,hasOwnProperty:di,hasOwnProp:di,reduceDescriptors:bc,freezeMethods:lh,toObjectSet:ch,toCamelCase:oh,noop:ah,toFiniteNumber:uh,findKey:yc,global:Ht,isContextDefined:_c,isSpecCompliantForm:fh,toJSONObject:dh,isAsyncFn:hh,isThenable:ph,setImmediate:Ec,asap:mh,isIterable:gh};function X(e,t,n,r,s){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),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}_.inherits(X,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:_.toJSONObject(this.config),code:this.code,status:this.status}}});const wc=X.prototype,Sc={};["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=>{Sc[e]={value:e}});Object.defineProperties(X,Sc);Object.defineProperty(wc,"isAxiosError",{value:!0});X.from=(e,t,n,r,s,o)=>{const i=Object.create(wc);_.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 X.call(i,l,c,n,r,s),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 yh=null;function As(e){return _.isPlainObject(e)||_.isArray(e)}function vc(e){return _.endsWith(e,"[]")?e.slice(0,-2):e}function hi(e,t,n){return e?e.concat(t).map(function(s,o){return s=vc(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function _h(e){return _.isArray(e)&&!e.some(As)}const bh=_.toFlatObject(_,{},null,function(t){return/^is[A-Z]/.test(t)});function Ur(e,t,n){if(!_.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=_.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(b,E){return!_.isUndefined(E[b])});const r=n.metaTokens,s=n.visitor||a,o=n.dots,i=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&_.isSpecCompliantForm(t);if(!_.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(_.isDate(g))return g.toISOString();if(_.isBoolean(g))return g.toString();if(!c&&_.isBlob(g))throw new X("Blob is not supported. Use a Buffer instead.");return _.isArrayBuffer(g)||_.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function a(g,b,E){let C=g;if(g&&!E&&typeof g=="object"){if(_.endsWith(b,"{}"))b=r?b:b.slice(0,-2),g=JSON.stringify(g);else if(_.isArray(g)&&_h(g)||(_.isFileList(g)||_.endsWith(b,"[]"))&&(C=_.toArray(g)))return b=vc(b),C.forEach(function(N,x){!(_.isUndefined(N)||N===null)&&t.append(i===!0?hi([b],x,o):i===null?b:b+"[]",u(N))}),!1}return As(g)?!0:(t.append(hi(E,b,o),u(g)),!1)}const f=[],p=Object.assign(bh,{defaultVisitor:a,convertValue:u,isVisitable:As});function m(g,b){if(!_.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+b.join("."));f.push(g),_.forEach(g,function(C,T){(!(_.isUndefined(C)||C===null)&&s.call(t,C,_.isString(T)?T.trim():T,b,p))===!0&&m(C,b?b.concat(T):[T])}),f.pop()}}if(!_.isObject(e))throw new TypeError("data must be an object");return m(e),t}function pi(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Ys(e,t){this._pairs=[],e&&Ur(e,this,t)}const Ac=Ys.prototype;Ac.append=function(t,n){this._pairs.push([t,n])};Ac.toString=function(t){const n=t?function(r){return t.call(this,r,pi)}:pi;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Eh(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Rc(e,t,n){if(!t)return e;const r=n&&n.encode||Eh;_.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=_.isURLSearchParams(t)?t.toString():new Ys(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class mi{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){_.forEach(this.handlers,function(r){r!==null&&t(r)})}}const Cc={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},wh=typeof URLSearchParams<"u"?URLSearchParams:Ys,Sh=typeof FormData<"u"?FormData:null,vh=typeof Blob<"u"?Blob:null,Ah={isBrowser:!0,classes:{URLSearchParams:wh,FormData:Sh,Blob:vh},protocols:["http","https","file","blob","url","data"]},Zs=typeof window<"u"&&typeof document<"u",Rs=typeof navigator=="object"&&navigator||void 0,Rh=Zs&&(!Rs||["ReactNative","NativeScript","NS"].indexOf(Rs.product)<0),Ch=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Oh=Zs&&window.location.href||"http://localhost",Th=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Zs,hasStandardBrowserEnv:Rh,hasStandardBrowserWebWorkerEnv:Ch,navigator:Rs,origin:Oh},Symbol.toStringTag,{value:"Module"})),Ae={...Th,...Ah};function xh(e,t){return Ur(e,new Ae.classes.URLSearchParams,{visitor:function(n,r,s,o){return Ae.isNode&&_.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function Ph(e){return _.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Nh(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&_.isArray(s)?s.length:i,c?(_.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!l):((!s[i]||!_.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&_.isArray(s[i])&&(s[i]=Nh(s[i])),!l)}if(_.isFormData(e)&&_.isFunction(e.entries)){const n={};return _.forEachEntry(e,(r,s)=>{t(Ph(r),s,n,0)}),n}return null}function Ih(e,t,n){if(_.isString(e))try{return(t||JSON.parse)(e),_.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const $n={transitional:Cc,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=_.isObject(t);if(o&&_.isHTMLForm(t)&&(t=new FormData(t)),_.isFormData(t))return s?JSON.stringify(Oc(t)):t;if(_.isArrayBuffer(t)||_.isBuffer(t)||_.isStream(t)||_.isFile(t)||_.isBlob(t)||_.isReadableStream(t))return t;if(_.isArrayBufferView(t))return t.buffer;if(_.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return xh(t,this.formSerializer).toString();if((l=_.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return Ur(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),Ih(t)):t}],transformResponse:[function(t){const n=this.transitional||$n.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(_.isResponse(t)||_.isReadableStream(t))return t;if(t&&_.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(i)throw l.name==="SyntaxError"?X.from(l,X.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:Ae.classes.FormData,Blob:Ae.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};_.forEach(["delete","get","head","post","put","patch"],e=>{$n.headers[e]={}});const Lh=_.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"]),Dh=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&Lh[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},gi=Symbol("internals");function pn(e){return e&&String(e).trim().toLowerCase()}function sr(e){return e===!1||e==null?e:_.isArray(e)?e.map(sr):String(e)}function Fh(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const Mh=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function ns(e,t,n,r,s){if(_.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!_.isString(t)){if(_.isString(r))return t.indexOf(r)!==-1;if(_.isRegExp(r))return r.test(t)}}function Bh(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Uh(e,t){const n=_.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let Me=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(l,c,u){const a=pn(c);if(!a)throw new Error("header name must be a non-empty string");const f=_.findKey(s,a);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||c]=sr(l))}const i=(l,c)=>_.forEach(l,(u,a)=>o(u,a,c));if(_.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(_.isString(t)&&(t=t.trim())&&!Mh(t))i(Dh(t),n);else if(_.isObject(t)&&_.isIterable(t)){let l={},c,u;for(const a of t){if(!_.isArray(a))throw TypeError("Object iterator must return a key-value pair");l[u=a[0]]=(c=l[u])?_.isArray(c)?[...c,a[1]]:[c,a[1]]:a[1]}i(l,n)}else t!=null&&o(n,t,r);return this}get(t,n){if(t=pn(t),t){const r=_.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return Fh(s);if(_.isFunction(n))return n.call(this,s,r);if(_.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=pn(t),t){const r=_.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||ns(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=pn(i),i){const l=_.findKey(r,i);l&&(!n||ns(r,r[l],l,n))&&(delete r[l],s=!0)}}return _.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||ns(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return _.forEach(this,(s,o)=>{const i=_.findKey(r,o);if(i){n[i]=sr(s),delete n[o];return}const l=t?Bh(o):String(o).trim();l!==o&&delete n[o],n[l]=sr(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return _.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&_.isArray(r)?r.join(", "):r)}),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 r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[gi]=this[gi]={accessors:{}}).accessors,s=this.prototype;function o(i){const l=pn(i);r[l]||(Uh(s,i),r[l]=!0)}return _.isArray(t)?t.forEach(o):o(t),this}};Me.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);_.reduceDescriptors(Me.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});_.freezeMethods(Me);function rs(e,t){const n=this||$n,r=t||n,s=Me.from(r.headers);let o=r.data;return _.forEach(e,function(l){o=l.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function Tc(e){return!!(e&&e.__CANCEL__)}function an(e,t,n){X.call(this,e??"canceled",X.ERR_CANCELED,t,n),this.name="CanceledError"}_.inherits(an,X,{__CANCEL__:!0});function xc(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new X("Request failed with status code "+n.status,[X.ERR_BAD_REQUEST,X.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function jh(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function kh(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),a=r[o];i||(i=u),n[s]=c,r[s]=u;let f=o,p=0;for(;f!==s;)p+=n[f++],f=f%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i{n=a,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const a=Date.now(),f=a-n;f>=r?i(u,a):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-f)))},()=>s&&i(s)]}const yr=(e,t,n=3)=>{let r=0;const s=kh(50,250);return Hh(o=>{const i=o.loaded,l=o.lengthComputable?o.total:void 0,c=i-r,u=s(c),a=i<=l;r=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)},yi=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},_i=e=>(...t)=>_.asap(()=>e(...t)),Vh=Ae.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Ae.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Ae.origin),Ae.navigator&&/(msie|trident)/i.test(Ae.navigator.userAgent)):()=>!0,$h=Ae.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];_.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),_.isString(r)&&l.push(`path=${r}`),_.isString(s)&&l.push(`domain=${s}`),o===!0&&l.push("secure"),_.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 qh(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function Kh(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Pc(e,t,n){let r=!qh(t);return e&&(r||n==!1)?Kh(e,t):t}const bi=e=>e instanceof Me?{...e}:e;function Wt(e,t){t=t||{};const n={};function r(u,a,f,p){return _.isPlainObject(u)&&_.isPlainObject(a)?_.merge.call({caseless:p},u,a):_.isPlainObject(a)?_.merge({},a):_.isArray(a)?a.slice():a}function s(u,a,f,p){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u,f,p)}else return r(u,a,f,p)}function o(u,a){if(!_.isUndefined(a))return r(void 0,a)}function i(u,a){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u)}else return r(void 0,a)}function l(u,a,f){if(f in t)return r(u,a);if(f in e)return r(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)=>s(bi(u),bi(a),f,!0)};return _.forEach(Object.keys({...e,...t}),function(a){const f=c[a]||s,p=f(e[a],t[a],a);_.isUndefined(p)&&f!==l||(n[a]=p)}),n}const Nc=e=>{const t=Wt({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:l}=t;if(t.headers=i=Me.from(i),t.url=Rc(Pc(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&i.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),_.isFormData(n)){if(Ae.hasStandardBrowserEnv||Ae.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(_.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(Ae.hasStandardBrowserEnv&&(r&&_.isFunction(r)&&(r=r(t)),r||r!==!1&&Vh(t.url))){const c=s&&o&&$h.read(o);c&&i.set(s,c)}return t},Wh=typeof XMLHttpRequest<"u",Gh=Wh&&function(e){return new Promise(function(n,r){const s=Nc(e);let o=s.data;const i=Me.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,a,f,p,m,g;function b(){m&&m(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(a),s.signal&&s.signal.removeEventListener("abort",a)}let E=new XMLHttpRequest;E.open(s.method.toUpperCase(),s.url,!0),E.timeout=s.timeout;function C(){if(!E)return;const N=Me.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),U={data:!l||l==="text"||l==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:N,config:e,request:E};xc(function(k){n(k),b()},function(k){r(k),b()},U),E=null}"onloadend"in E?E.onloadend=C:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.indexOf("file:")===0)||setTimeout(C)},E.onabort=function(){E&&(r(new X("Request aborted",X.ECONNABORTED,e,E)),E=null)},E.onerror=function(x){const U=x&&x.message?x.message:"Network Error",G=new X(U,X.ERR_NETWORK,e,E);G.event=x||null,r(G),E=null},E.ontimeout=function(){let x=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const U=s.transitional||Cc;s.timeoutErrorMessage&&(x=s.timeoutErrorMessage),r(new X(x,U.clarifyTimeoutError?X.ETIMEDOUT:X.ECONNABORTED,e,E)),E=null},o===void 0&&i.setContentType(null),"setRequestHeader"in E&&_.forEach(i.toJSON(),function(x,U){E.setRequestHeader(U,x)}),_.isUndefined(s.withCredentials)||(E.withCredentials=!!s.withCredentials),l&&l!=="json"&&(E.responseType=s.responseType),u&&([p,g]=yr(u,!0),E.addEventListener("progress",p)),c&&E.upload&&([f,m]=yr(c),E.upload.addEventListener("progress",f),E.upload.addEventListener("loadend",m)),(s.cancelToken||s.signal)&&(a=N=>{E&&(r(!N||N.type?new an(null,e,E):N),E.abort(),E=null)},s.cancelToken&&s.cancelToken.subscribe(a),s.signal&&(s.signal.aborted?a():s.signal.addEventListener("abort",a)));const T=jh(s.url);if(T&&Ae.protocols.indexOf(T)===-1){r(new X("Unsupported protocol "+T+":",X.ERR_BAD_REQUEST,e));return}E.send(o||null)})},zh=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,l();const a=u instanceof Error?u:this.reason;r.abort(a instanceof X?a:new an(a instanceof Error?a.message:a))}};let i=t&&setTimeout(()=>{i=null,o(new X(`timeout ${t} of ms exceeded`,X.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}=r;return c.unsubscribe=()=>_.asap(l),c}},Jh=function*(e,t){let n=e.byteLength;if(n{const s=Xh(e,t);let o=0,i,l=c=>{i||(i=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:a}=await s.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),s.return()}},{highWaterMark:2})},wi=64*1024,{isFunction:Jn}=_,Yh=(({Request:e,Response:t})=>({Request:e,Response:t}))(_.global),{ReadableStream:Si,TextEncoder:vi}=_.global,Ai=(e,...t)=>{try{return!!e(...t)}catch{return!1}},Zh=e=>{e=_.merge.call({skipUndefined:!0},Yh,e);const{fetch:t,Request:n,Response:r}=e,s=t?Jn(t):typeof fetch=="function",o=Jn(n),i=Jn(r);if(!s)return!1;const l=s&&Jn(Si),c=s&&(typeof vi=="function"?(g=>b=>g.encode(b))(new vi):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=o&&l&&Ai(()=>{let g=!1;const b=new n(Ae.origin,{body:new Si,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!b}),a=i&&l&&Ai(()=>_.isReadableStream(new r("").body)),f={stream:a&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(b,E)=>{let C=b&&b[g];if(C)return C.call(b);throw new X(`Response type '${g}' is not supported`,X.ERR_NOT_SUPPORT,E)})});const p=async g=>{if(g==null)return 0;if(_.isBlob(g))return g.size;if(_.isSpecCompliantForm(g))return(await new n(Ae.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(_.isArrayBufferView(g)||_.isArrayBuffer(g))return g.byteLength;if(_.isURLSearchParams(g)&&(g=g+""),_.isString(g))return(await c(g)).byteLength},m=async(g,b)=>{const E=_.toFiniteNumber(g.getContentLength());return E??p(b)};return async g=>{let{url:b,method:E,data:C,signal:T,cancelToken:N,timeout:x,onDownloadProgress:U,onUploadProgress:G,responseType:k,headers:j,withCredentials:O="same-origin",fetchOptions:H}=Nc(g),Y=t||fetch;k=k?(k+"").toLowerCase():"text";let L=zh([T,N&&N.toAbortSignal()],x),Q=null;const ce=L&&L.unsubscribe&&(()=>{L.unsubscribe()});let be;try{if(G&&u&&E!=="get"&&E!=="head"&&(be=await m(j,C))!==0){let ye=new n(b,{method:"POST",body:C,duplex:"half"}),me;if(_.isFormData(C)&&(me=ye.headers.get("content-type"))&&j.setContentType(me),ye.body){const[Ze,Ke]=yi(be,yr(_i(G)));C=Ei(ye.body,wi,Ze,Ke)}}_.isString(O)||(O=O?"include":"omit");const ee=o&&"credentials"in n.prototype,z={...H,signal:L,method:E.toUpperCase(),headers:j.normalize().toJSON(),body:C,duplex:"half",credentials:ee?O:void 0};Q=o&&new n(b,z);let Z=await(o?Y(Q,H):Y(b,z));const He=a&&(k==="stream"||k==="response");if(a&&(U||He&&ce)){const ye={};["status","statusText","headers"].forEach(et=>{ye[et]=Z[et]});const me=_.toFiniteNumber(Z.headers.get("content-length")),[Ze,Ke]=U&&yi(me,yr(_i(U),!0))||[];Z=new r(Ei(Z.body,wi,Ze,()=>{Ke&&Ke(),ce&&ce()}),ye)}k=k||"text";let Ye=await f[_.findKey(f,k)||"text"](Z,g);return!He&&ce&&ce(),await new Promise((ye,me)=>{xc(ye,me,{data:Ye,headers:Me.from(Z.headers),status:Z.status,statusText:Z.statusText,config:g,request:Q})})}catch(ee){throw ce&&ce(),ee&&ee.name==="TypeError"&&/Load failed|fetch/i.test(ee.message)?Object.assign(new X("Network Error",X.ERR_NETWORK,g,Q),{cause:ee.cause||ee}):X.from(ee,ee&&ee.code,g,Q)}}},ep=new Map,Ic=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,l=i,c,u,a=ep;for(;l--;)c=o[l],u=a.get(c),u===void 0&&a.set(c,u=l?new Map:Zh(t)),a=u;return u};Ic();const eo={http:yh,xhr:Gh,fetch:{get:Ic}};_.forEach(eo,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Ri=e=>`- ${e}`,tp=e=>_.isFunction(e)||e===null||e===!1;function np(e,t){e=_.isArray(e)?e:[e];const{length:n}=e;let r,s;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(Ri).join(` +`):" "+Ri(i[0]):"as no adapter specified";throw new X("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const Lc={getAdapter:np,adapters:eo};function ss(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new an(null,e)}function Ci(e){return ss(e),e.headers=Me.from(e.headers),e.data=rs.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Lc.getAdapter(e.adapter||$n.adapter,e)(e).then(function(r){return ss(e),r.data=rs.call(e,e.transformResponse,r),r.headers=Me.from(r.headers),r},function(r){return Tc(r)||(ss(e),r&&r.response&&(r.response.data=rs.call(e,e.transformResponse,r.response),r.response.headers=Me.from(r.response.headers))),Promise.reject(r)})}const Dc="1.13.2",jr={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{jr[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const Oi={};jr.transitional=function(t,n,r){function s(o,i){return"[Axios v"+Dc+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,l)=>{if(t===!1)throw new X(s(i," has been removed"+(n?" in "+n:"")),X.ERR_DEPRECATED);return n&&!Oi[i]&&(Oi[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,l):!0}};jr.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function rp(e,t,n){if(typeof e!="object")throw new X("options must be an object",X.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const l=e[o],c=l===void 0||i(l,o,e);if(c!==!0)throw new X("option "+o+" must be "+c,X.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new X("Unknown option "+o,X.ERR_BAD_OPTION)}}const or={assertOptions:rp,validators:jr},it=or.validators;let Kt=class{constructor(t){this.defaults=t||{},this.interceptors={request:new mi,response:new mi}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Wt(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&or.assertOptions(r,{silentJSONParsing:it.transitional(it.boolean),forcedJSONParsing:it.transitional(it.boolean),clarifyTimeoutError:it.transitional(it.boolean)},!1),s!=null&&(_.isFunction(s)?n.paramsSerializer={serialize:s}:or.assertOptions(s,{encode:it.function,serialize:it.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),or.assertOptions(n,{baseUrl:it.spelling("baseURL"),withXsrfToken:it.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&_.merge(o.common,o[n.method]);o&&_.forEach(["delete","get","head","post","put","patch","common"],g=>{delete o[g]}),n.headers=Me.concat(i,o);const l=[];let c=!0;this.interceptors.request.forEach(function(b){typeof b.runWhen=="function"&&b.runWhen(n)===!1||(c=c&&b.synchronous,l.unshift(b.fulfilled,b.rejected))});const u=[];this.interceptors.response.forEach(function(b){u.push(b.fulfilled,b.rejected)});let a,f=0,p;if(!c){const g=[Ci.bind(this),void 0];for(g.unshift(...l),g.push(...u),p=g.length,a=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(l=>{r.subscribe(l),o=l}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,l){r.reason||(r.reason=new an(o,i,l),n(r.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=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new Fc(function(s){t=s}),cancel:t}}};function op(e){return function(n){return e.apply(null,n)}}function ip(e){return _.isObject(e)&&e.isAxiosError===!0}const Cs={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(Cs).forEach(([e,t])=>{Cs[t]=e});function Mc(e){const t=new Kt(e),n=hc(Kt.prototype.request,t);return _.extend(n,Kt.prototype,t,{allOwnKeys:!0}),_.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return Mc(Wt(e,s))},n}const ge=Mc($n);ge.Axios=Kt;ge.CanceledError=an;ge.CancelToken=sp;ge.isCancel=Tc;ge.VERSION=Dc;ge.toFormData=Ur;ge.AxiosError=X;ge.Cancel=ge.CanceledError;ge.all=function(t){return Promise.all(t)};ge.spread=op;ge.isAxiosError=ip;ge.mergeConfig=Wt;ge.AxiosHeaders=Me;ge.formToJSON=e=>Oc(_.isHTMLForm(e)?new FormData(e):e);ge.getAdapter=Lc.getAdapter;ge.HttpStatusCode=Cs;ge.default=ge;const{Axios:Cp,AxiosError:Op,CanceledError:Tp,isCancel:xp,CancelToken:Pp,VERSION:Np,all:Ip,Cancel:Lp,isAxiosError:Dp,spread:Fp,toFormData:Mp,AxiosHeaders:Bp,HttpStatusCode:Up,formToJSON:jp,getAdapter:kp,mergeConfig:Hp}=ge,Cn=ge.create({baseURL:"",timeout:3e4,withCredentials:!0});Cn.interceptors.request.use(e=>e,e=>Promise.reject(e));Cn.interceptors.response.use(e=>e.data,e=>{e.response?.status===401&&(window.location.hash="#/login");const t=e.response?.data?e.response.data.detail||e.response.data.message:e.message;return Promise.reject(new Error(t||"请求失败"))});const Xn={login:e=>{const t=new URLSearchParams;return t.append("admin_key",e.password),Cn.post("/login",t,{headers:{"Content-Type":"application/x-www-form-urlencoded"}})},logout:()=>Cn.post("/logout"),checkAuth:()=>Cn.get("/admin/health")},lp=vf("auth",()=>{const e=$t(!1),t=$t(!1),n=$t(0),r=1e4;let s=null;async function o(c){t.value=!0;try{return await Xn.login({password:c}),await Xn.checkAuth(),e.value=!0,n.value=Date.now(),!0}catch(u){throw e.value=!1,u}finally{t.value=!1}}async function i(){try{await Xn.logout()}finally{e.value=!1,n.value=0}}async function l(){const c=Date.now();if(e.value&&c-n.value(await Xn.checkAuth(),e.value=!0,!0))(),await s}catch{return e.value=!1,!1}finally{n.value=Date.now(),s=null}}return{isLoggedIn:e,isLoading:t,login:o,logout:i,checkAuth:l}}),Bc=Nd({history:ud("/"),routes:[{path:"/public/uptime",name:"public-uptime",component:()=>ot(()=>import("./PublicUptime-CLa0lCLs.js"),__vite__mapDeps([0,1])),meta:{requiresAuth:!1}},{path:"/public/logs",name:"public-logs",component:()=>ot(()=>import("./PublicLogs-DgCHiocP.js"),[]),meta:{requiresAuth:!1}},{path:"/login",name:"login",component:()=>ot(()=>import("./Login-BBfMy3ab.js"),[]),meta:{requiresAuth:!1}},{path:"/",component:()=>ot(()=>import("./AppShell-C6gOM0Kd.js"),__vite__mapDeps([2,3,4,5])),meta:{requiresAuth:!0},children:[{path:"",name:"dashboard",component:()=>ot(()=>import("./Dashboard-GAFTK7sS.js"),__vite__mapDeps([6,7]))},{path:"accounts",name:"accounts",component:()=>ot(()=>import("./Accounts-DnG8de1F.js"),__vite__mapDeps([8,9,10,4,5,7]))},{path:"settings",name:"settings",component:()=>ot(()=>import("./Settings-D4KuXVKT.js"),__vite__mapDeps([11,3,9,10,7]))},{path:"logs",name:"logs",component:()=>ot(()=>import("./Logs-DmJ1nuVv.js"),__vite__mapDeps([12,9,4]))},{path:"monitor",name:"monitor",component:()=>ot(()=>import("./Monitor-DcpsqeaS.js"),__vite__mapDeps([13,1]))},{path:"docs",name:"docs",component:()=>ot(()=>import("./Docs-QnQDmoUp.js"),[])}]}]});Bc.beforeEach(async e=>{const t=lp();if(e.meta.requiresAuth&&!await t.checkAuth())return{name:"login"};if(e.name==="login"&&t.isLoggedIn)return{name:"dashboard"}});const cp=Vs({__name:"App",setup(e){return(t,n)=>(dr(),pr(Pt(dc)))}}),to=pf(cp),ap=yf();to.use(ap);to.use(Bc);to.mount("#app");export{Sp as A,vp as B,mp as C,dc as D,vf as E,De as F,wp as G,ks as H,hp as I,Bn as J,Od as R,yp as T,ql as a,gp as b,pp as c,Vs as d,dr as e,Cu as f,Cn as g,$t as h,Ue as i,Al as j,Ns as k,lp as l,pr as m,Is as n,vl as o,Ep as p,up as q,dp as r,bp as s,Xc as t,Pt as u,_p as v,bn as w,Ne as x,Na as y,fp as z}; diff --git a/static/assets/index-CQv2QMzB.js b/static/assets/index-CQv2QMzB.js new file mode 100644 index 0000000000000000000000000000000000000000..56b501a1e47179dc1f21ddf3731c4ae0e8f8ff7a --- /dev/null +++ b/static/assets/index-CQv2QMzB.js @@ -0,0 +1,7 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PublicUptime-BbcdsmiG.js","assets/useUptimeStatus-D9UpA0jd.js","assets/Login-C5mFe4VZ.js","assets/Checkbox.vue_vue_type_script_setup_true_lang-D9NLz7h-.js","assets/AppShell-Dz-ViePQ.js","assets/settings-D7bt90ge.js","assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-BRmG52AD.js","assets/useConfirmDialog-BeyA60E7.js","assets/Dashboard-DYON8fDZ.js","assets/HelpTip.vue_vue_type_script_setup_true_lang-Dt22lg9h.js","assets/Accounts-rG9Hbj71.js","assets/SelectMenu.vue_vue_type_script_setup_true_lang-BVovBIaU.js","assets/Settings-CxdyQWMh.js","assets/Logs-Cvle7lXJ.js","assets/Monitor--IyXttaS.js"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function Ns(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const ce={},tn=[],ut=()=>{},xi=()=>!1,wr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Is=e=>e.startsWith("onUpdate:"),Ee=Object.assign,Ls=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Bc=Object.prototype.hasOwnProperty,oe=(e,t)=>Bc.call(e,t),K=Array.isArray,nn=e=>vr(e)==="[object Map]",Ti=e=>vr(e)==="[object Set]",J=e=>typeof e=="function",pe=e=>typeof e=="string",vt=e=>typeof e=="symbol",ae=e=>e!==null&&typeof e=="object",Oi=e=>(ae(e)||J(e))&&J(e.then)&&J(e.catch),Pi=Object.prototype.toString,vr=e=>Pi.call(e),Uc=e=>vr(e).slice(8,-1),Ni=e=>vr(e)==="[object Object]",Sr=e=>pe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,En=Ns(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ar=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},jc=/-\w/g,Dt=Ar(e=>e.replace(jc,t=>t.slice(1).toUpperCase())),Hc=/\B([A-Z])/g,zt=Ar(e=>e.replace(Hc,"-$1").toLowerCase()),Ii=Ar(e=>e.charAt(0).toUpperCase()+e.slice(1)),Vr=Ar(e=>e?`on${Ii(e)}`:""),Lt=(e,t)=>!Object.is(e,t),er=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},Ds=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Vc=e=>{const t=pe(e)?Number(e):NaN;return isNaN(t)?e:t};let io;const Rr=()=>io||(io=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Fs(e){if(K(e)){const t={};for(let n=0;n{if(n){const r=n.split(qc);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Nn(e){let t="";if(pe(e))t=e;else if(K(e))for(let n=0;n!!(e&&e.__v_isRef===!0),ls=e=>pe(e)?e:e==null?"":K(e)||ae(e)&&(e.toString===Pi||!J(e.toString))?Fi(e)?ls(e.value):JSON.stringify(e,Mi,2):String(e),Mi=(e,t)=>Fi(t)?Mi(e,t.value):nn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[$r(r,o)+" =>"]=s,n),{})}:Ti(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>$r(n))}:vt(t)?$r(t):ae(t)&&!K(t)&&!Ni(t)?String(t):t,$r=(e,t="")=>{var n;return vt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let Se;class ki{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,r;for(n=0,r=this.effects.length;n0)return;if(vn){let t=vn;for(vn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;wn;){let t=wn;for(wn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function $i(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function qi(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),Bs(r),Xc(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function cs(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Ki(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Ki(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===In)||(e.globalVersion=In,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!cs(e))))return;e.flags|=2;const t=e.dep,n=fe,r=Ge;fe=e,Ge=!0;try{$i(e);const s=e.fn(e._value);(t.version===0||Lt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{fe=n,Ge=r,qi(e),e.flags&=-3}}function Bs(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)Bs(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Xc(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Ge=!0;const Wi=[];function bt(){Wi.push(Ge),Ge=!1}function Et(){const e=Wi.pop();Ge=e===void 0?!0:e}function lo(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=fe;fe=void 0;try{t()}finally{fe=n}}}let In=0;class Qc{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 Us{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(!fe||!Ge||fe===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==fe)n=this.activeLink=new Qc(fe,this),fe.deps?(n.prevDep=fe.depsTail,fe.depsTail.nextDep=n,fe.depsTail=n):fe.deps=fe.depsTail=n,Gi(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=fe.depsTail,n.nextDep=void 0,fe.depsTail.nextDep=n,fe.depsTail=n,fe.deps===n&&(fe.deps=r)}return n}trigger(t){this.version++,In++,this.notify(t)}notify(t){Ms();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ks()}}}function Gi(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Gi(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const ar=new WeakMap,Vt=Symbol(""),as=Symbol(""),Ln=Symbol("");function Ae(e,t,n){if(Ge&&fe){let r=ar.get(e);r||ar.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new Us),s.map=r,s.key=n),s.track()}}function yt(e,t,n,r,s,o){const i=ar.get(e);if(!i){In++;return}const l=c=>{c&&c.trigger()};if(Ms(),t==="clear")i.forEach(l);else{const c=K(e),u=c&&Sr(n);if(c&&n==="length"){const a=Number(r);i.forEach((f,h)=>{(h==="length"||h===Ln||!vt(h)&&h>=a)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(Ln)),t){case"add":c?u&&l(i.get("length")):(l(i.get(Vt)),nn(e)&&l(i.get(as)));break;case"delete":c||(l(i.get(Vt)),nn(e)&&l(i.get(as)));break;case"set":nn(e)&&l(i.get(Vt));break}}ks()}function Yc(e,t){const n=ar.get(e);return n&&n.get(t)}function Jt(e){const t=re(e);return t===e?t:(Ae(t,"iterate",Ln),je(e)?t:t.map(ze))}function Cr(e){return Ae(e=re(e),"iterate",Ln),e}function Ot(e,t){return wt(e)?ft(e)?on(ze(t)):on(t):ze(t)}const Zc={__proto__:null,[Symbol.iterator](){return Kr(this,Symbol.iterator,e=>Ot(this,e))},concat(...e){return Jt(this).concat(...e.map(t=>K(t)?Jt(t):t))},entries(){return Kr(this,"entries",e=>(e[1]=Ot(this,e[1]),e))},every(e,t){return pt(this,"every",e,t,void 0,arguments)},filter(e,t){return pt(this,"filter",e,t,n=>n.map(r=>Ot(this,r)),arguments)},find(e,t){return pt(this,"find",e,t,n=>Ot(this,n),arguments)},findIndex(e,t){return pt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return pt(this,"findLast",e,t,n=>Ot(this,n),arguments)},findLastIndex(e,t){return pt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return pt(this,"forEach",e,t,void 0,arguments)},includes(...e){return Wr(this,"includes",e)},indexOf(...e){return Wr(this,"indexOf",e)},join(e){return Jt(this).join(e)},lastIndexOf(...e){return Wr(this,"lastIndexOf",e)},map(e,t){return pt(this,"map",e,t,void 0,arguments)},pop(){return mn(this,"pop")},push(...e){return mn(this,"push",e)},reduce(e,...t){return co(this,"reduce",e,t)},reduceRight(e,...t){return co(this,"reduceRight",e,t)},shift(){return mn(this,"shift")},some(e,t){return pt(this,"some",e,t,void 0,arguments)},splice(...e){return mn(this,"splice",e)},toReversed(){return Jt(this).toReversed()},toSorted(e){return Jt(this).toSorted(e)},toSpliced(...e){return Jt(this).toSpliced(...e)},unshift(...e){return mn(this,"unshift",e)},values(){return Kr(this,"values",e=>Ot(this,e))}};function Kr(e,t,n){const r=Cr(e),s=r[t]();return r!==e&&!je(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const ea=Array.prototype;function pt(e,t,n,r,s,o){const i=Cr(e),l=i!==e&&!je(e),c=i[t];if(c!==ea[t]){const f=c.apply(e,o);return l?ze(f):f}let u=n;i!==e&&(l?u=function(f,h){return n.call(this,Ot(e,f),h,e)}:n.length>2&&(u=function(f,h){return n.call(this,f,h,e)}));const a=c.call(i,u,r);return l&&s?s(a):a}function co(e,t,n,r){const s=Cr(e);let o=n;return s!==e&&(je(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,Ot(e,l),c,e)}),s[t](o,...r)}function Wr(e,t,n){const r=re(e);Ae(r,"iterate",Ln);const s=r[t](...n);return(s===-1||s===!1)&&xr(n[0])?(n[0]=re(n[0]),r[t](...n)):s}function mn(e,t,n=[]){bt(),Ms();const r=re(e)[t].apply(e,n);return ks(),Et(),r}const ta=Ns("__proto__,__v_isRef,__isVue"),zi=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(vt));function na(e){vt(e)||(e=String(e));const t=re(this);return Ae(t,"has",e),t.hasOwnProperty(e)}class Ji{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?da:Zi:o?Yi:Qi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=K(t);if(!s){let c;if(i&&(c=Zc[n]))return c;if(n==="hasOwnProperty")return na}const l=Reflect.get(t,n,de(t)?t:r);if((vt(n)?zi.has(n):ta(n))||(s||Ae(t,"get",n),o))return l;if(de(l)){const c=i&&Sr(n)?l:l.value;return s&&ae(c)?fs(c):c}return ae(l)?s?fs(l):fn(l):l}}class Xi extends Ji{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=K(t)&&Sr(n);if(!this._isShallow){const u=wt(o);if(!je(r)&&!wt(r)&&(o=re(o),r=re(r)),!i&&de(o)&&!de(r))return u||(o.value=r),!0}const l=i?Number(n)e,Wn=e=>Reflect.getPrototypeOf(e);function la(e,t,n){return function(...r){const s=this.__v_raw,o=re(s),i=nn(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=s[e](...r),a=n?us:t?on:ze;return!t&&Ae(o,"iterate",c?as:Vt),{next(){const{value:f,done:h}=u.next();return h?{value:f,done:h}:{value:l?[a(f[0]),a(f[1])]:a(f),done:h}},[Symbol.iterator](){return this}}}}function Gn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function ca(e,t){const n={get(s){const o=this.__v_raw,i=re(o),l=re(s);e||(Lt(s,l)&&Ae(i,"get",s),Ae(i,"get",l));const{has:c}=Wn(i),u=t?us:e?on:ze;if(c.call(i,s))return u(o.get(s));if(c.call(i,l))return u(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&Ae(re(s),"iterate",Vt),s.size},has(s){const o=this.__v_raw,i=re(o),l=re(s);return e||(Lt(s,l)&&Ae(i,"has",s),Ae(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,c=re(l),u=t?us:e?on:ze;return!e&&Ae(c,"iterate",Vt),l.forEach((a,f)=>s.call(o,u(a),u(f),i))}};return Ee(n,e?{add:Gn("add"),set:Gn("set"),delete:Gn("delete"),clear:Gn("clear")}:{add(s){!t&&!je(s)&&!wt(s)&&(s=re(s));const o=re(this);return Wn(o).has.call(o,s)||(o.add(s),yt(o,"add",s,s)),this},set(s,o){!t&&!je(o)&&!wt(o)&&(o=re(o));const i=re(this),{has:l,get:c}=Wn(i);let u=l.call(i,s);u||(s=re(s),u=l.call(i,s));const a=c.call(i,s);return i.set(s,o),u?Lt(o,a)&&yt(i,"set",s,o):yt(i,"add",s,o),this},delete(s){const o=re(this),{has:i,get:l}=Wn(o);let c=i.call(o,s);c||(s=re(s),c=i.call(o,s)),l&&l.call(o,s);const u=o.delete(s);return c&&yt(o,"delete",s,void 0),u},clear(){const s=re(this),o=s.size!==0,i=s.clear();return o&&yt(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=la(s,e,t)}),n}function js(e,t){const n=ca(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(oe(n,s)&&s in r?n:r,s,o)}const aa={get:js(!1,!1)},ua={get:js(!1,!0)},fa={get:js(!0,!1)};const Qi=new WeakMap,Yi=new WeakMap,Zi=new WeakMap,da=new WeakMap;function ha(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function pa(e){return e.__v_skip||!Object.isExtensible(e)?0:ha(Uc(e))}function fn(e){return wt(e)?e:Hs(e,!1,sa,aa,Qi)}function el(e){return Hs(e,!1,ia,ua,Yi)}function fs(e){return Hs(e,!0,oa,fa,Zi)}function Hs(e,t,n,r,s){if(!ae(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=pa(e);if(o===0)return e;const i=s.get(e);if(i)return i;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function ft(e){return wt(e)?ft(e.__v_raw):!!(e&&e.__v_isReactive)}function wt(e){return!!(e&&e.__v_isReadonly)}function je(e){return!!(e&&e.__v_isShallow)}function xr(e){return e?!!e.__v_raw:!1}function re(e){const t=e&&e.__v_raw;return t?re(t):e}function Vs(e){return!oe(e,"__v_skip")&&Object.isExtensible(e)&&Li(e,"__v_skip",!0),e}const ze=e=>ae(e)?fn(e):e,on=e=>ae(e)?fs(e):e;function de(e){return e?e.__v_isRef===!0:!1}function $t(e){return tl(e,!1)}function ma(e){return tl(e,!0)}function tl(e,t){return de(e)?e:new ga(e,t)}class ga{constructor(t,n){this.dep=new Us,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:re(t),this._value=n?t:ze(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||je(t)||wt(t);t=r?t:re(t),Lt(t,n)&&(this._rawValue=t,this._value=r?t:ze(t),this.dep.trigger())}}function dt(e){return de(e)?e.value:e}const ya={get:(e,t,n)=>t==="__v_raw"?e:dt(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return de(s)&&!de(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function nl(e){return ft(e)?e:new Proxy(e,ya)}function _a(e){const t=K(e)?new Array(e.length):{};for(const n in e)t[n]=rl(e,n);return t}class ba{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._raw=re(t);let s=!0,o=t;if(!K(t)||!Sr(String(n)))do s=!xr(o)||je(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=dt(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&de(this._raw[this._key])){const n=this._object[this._key];if(de(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return Yc(this._raw,this._key)}}class Ea{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function wa(e,t,n){return de(e)?e:J(e)?new Ea(e):ae(e)&&arguments.length>1?rl(e,t,n):$t(e)}function rl(e,t,n){return new ba(e,t,n)}class va{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Us(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=In-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&fe!==this)return Vi(this,!0),!0}get value(){const t=this.dep.track();return Ki(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Sa(e,t,n=!1){let r,s;return J(e)?r=e:(r=e.get,s=e.set),new va(r,s,n)}const zn={},ur=new WeakMap;let Bt;function Aa(e,t=!1,n=Bt){if(n){let r=ur.get(n);r||ur.set(n,r=[]),r.push(e)}}function Ra(e,t,n=ce){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:c}=n,u=O=>s?O:je(O)||s===!1||s===0?_t(O,1):_t(O);let a,f,h,m,g=!1,b=!1;if(de(e)?(f=()=>e.value,g=je(e)):ft(e)?(f=()=>u(e),g=!0):K(e)?(b=!0,g=e.some(O=>ft(O)||je(O)),f=()=>e.map(O=>{if(de(O))return O.value;if(ft(O))return u(O);if(J(O))return c?c(O,2):O()})):J(e)?t?f=c?()=>c(e,2):e:f=()=>{if(h){bt();try{h()}finally{Et()}}const O=Bt;Bt=a;try{return c?c(e,3,[m]):e(m)}finally{Bt=O}}:f=ut,t&&s){const O=f,B=s===!0?1/0:s;f=()=>_t(O(),B)}const E=Ui(),C=()=>{a.stop(),E&&E.active&&Ls(E.effects,a)};if(o&&t){const O=t;t=(...B)=>{O(...B),C()}}let T=b?new Array(e.length).fill(zn):zn;const N=O=>{if(!(!(a.flags&1)||!a.dirty&&!O))if(t){const B=a.run();if(s||g||(b?B.some((G,j)=>Lt(G,T[j])):Lt(B,T))){h&&h();const G=Bt;Bt=a;try{const j=[B,T===zn?void 0:b&&T[0]===zn?[]:T,m];T=B,c?c(t,3,j):t(...j)}finally{Bt=G}}}else a.run()};return l&&l(N),a=new ji(f),a.scheduler=i?()=>i(N,!1):N,m=O=>Aa(O,!1,a),h=a.onStop=()=>{const O=ur.get(a);if(O){if(c)c(O,4);else for(const B of O)B();ur.delete(a)}},t?r?N(!0):T=a.run():i?i(N.bind(null,!0),!0):a.run(),C.pause=a.pause.bind(a),C.resume=a.resume.bind(a),C.stop=C,C}function _t(e,t=1/0,n){if(t<=0||!ae(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,de(e))_t(e.value,t,n);else if(K(e))for(let r=0;r{_t(r,t,n)});else if(Ni(e)){for(const r in e)_t(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&_t(e[r],t,n)}return e}function jn(e,t,n,r){try{return r?e(...r):e()}catch(s){Tr(s,t,n)}}function Je(e,t,n,r){if(J(e)){const s=jn(e,t,n,r);return s&&Oi(s)&&s.catch(o=>{Tr(o,t,n)}),s}if(K(e)){const s=[];for(let o=0;o>>1,s=Pe[r],o=Dn(s);o=Dn(n)?Pe.push(e):Pe.splice(xa(t),0,e),e.flags|=1,ol()}}function ol(){fr||(fr=sl.then(ll))}function Ta(e){K(e)?rn.push(...e):Pt&&e.id===-1?Pt.splice(Qt+1,0,e):e.flags&1||(rn.push(e),e.flags|=1),ol()}function ao(e,t,n=ct+1){for(;nDn(n)-Dn(r));if(rn.length=0,Pt){Pt.push(...t);return}for(Pt=t,Qt=0;Qte.id==null?e.flags&2?-1:1/0:e.id;function ll(e){try{for(ct=0;ct{r._d&&mr(-1);const o=dr(t);let i;try{i=e(...s)}finally{dr(o),r._d&&mr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function xp(e,t){if(Ce===null)return e;const n=Lr(Ce),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&J(t)?t.call(r&&r.proxy):t}}function Oa(){return!!(Js()||qt)}const Pa=Symbol.for("v-scx"),Na=()=>Ke(Pa);function Sn(e,t,n){return ul(e,t,n)}function ul(e,t,n=ce){const{immediate:r,deep:s,flush:o,once:i}=n,l=Ee({},n),c=t&&r||!t&&o!=="post";let u;if(Bn){if(o==="sync"){const m=Na();u=m.__watcherHandles||(m.__watcherHandles=[])}else if(!c){const m=()=>{};return m.stop=ut,m.resume=ut,m.pause=ut,m}}const a=Ne;l.call=(m,g,b)=>Je(m,a,g,b);let f=!1;o==="post"?l.scheduler=m=>{Te(m,a&&a.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(m,g)=>{g?m():qs(m)}),l.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,a&&(m.id=a.uid,m.i=a))};const h=Ra(e,t,l);return Bn&&(u?u.push(h):c&&h()),h}function Ia(e,t,n){const r=this.proxy,s=pe(e)?e.includes(".")?fl(r,e):()=>r[e]:e.bind(r,r);let o;J(t)?o=t:(o=t.handler,n=t);const i=Hn(this),l=ul(s,o.bind(r),n);return i(),l}function fl(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,An=e=>e&&(e.disabled||e.disabled===""),uo=e=>e&&(e.defer||e.defer===""),fo=e=>typeof SVGElement<"u"&&e instanceof SVGElement,ho=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,ds=(e,t)=>{const n=e&&e.to;return pe(n)?t?t(n):null:n},hl={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,u){const{mc:a,pc:f,pbc:h,o:{insert:m,querySelector:g,createText:b,createComment:E}}=u,C=An(t.props);let{shapeFlag:T,children:N,dynamicChildren:O}=t;if(e==null){const B=t.el=b(""),G=t.anchor=b("");m(B,n,r),m(G,n,r);const j=(x,$)=>{T&16&&a(N,x,$,s,o,i,l,c)},U=()=>{const x=t.target=ds(t.props,g),$=pl(x,t,b,m);x&&(i!=="svg"&&fo(x)?i="svg":i!=="mathml"&&ho(x)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(x),C||(j(x,$),nr(t,!1)))};C&&(j(n,G),nr(t,!0)),uo(t.props)?(t.el.__isMounted=!1,Te(()=>{U(),delete t.el.__isMounted},o)):U()}else{if(uo(t.props)&&e.el.__isMounted===!1){Te(()=>{hl.process(e,t,n,r,s,o,i,l,c,u)},o);return}t.el=e.el,t.targetStart=e.targetStart;const B=t.anchor=e.anchor,G=t.target=e.target,j=t.targetAnchor=e.targetAnchor,U=An(e.props),x=U?n:G,$=U?B:j;if(i==="svg"||fo(G)?i="svg":(i==="mathml"||ho(G))&&(i="mathml"),O?(h(e.dynamicChildren,O,x,s,o,i,l),Gs(e,t,!0)):c||f(e,t,x,$,s,o,i,l,!1),C)U?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Jn(t,n,B,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const Y=t.target=ds(t.props,g);Y&&Jn(t,Y,null,u,0)}else U&&Jn(t,G,j,u,1);nr(t,C)}},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetStart:u,targetAnchor:a,target:f,props:h}=e;if(f&&(s(u),s(a)),o&&s(c),i&16){const m=o||!An(h);for(let g=0;g{e.isMounted=!0}),wl(()=>{e.isUnmounting=!0}),e}const $e=[Function,Array],ka={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:$e,onEnter:$e,onAfterEnter:$e,onEnterCancelled:$e,onBeforeLeave:$e,onLeave:$e,onAfterLeave:$e,onLeaveCancelled:$e,onBeforeAppear:$e,onAppear:$e,onAfterAppear:$e,onAppearCancelled:$e};function Ba(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function hs(e,t,n,r,s){const{appear:o,mode:i,persisted:l=!1,onBeforeEnter:c,onEnter:u,onAfterEnter:a,onEnterCancelled:f,onBeforeLeave:h,onLeave:m,onAfterLeave:g,onLeaveCancelled:b,onBeforeAppear:E,onAppear:C,onAfterAppear:T,onAppearCancelled:N}=t,O=String(e.key),B=Ba(n,e),G=(x,$)=>{x&&Je(x,r,9,$)},j=(x,$)=>{const Y=$[1];G(x,$),K(x)?x.every(L=>L.length<=1)&&Y():x.length<=1&&Y()},U={mode:i,persisted:l,beforeEnter(x){let $=c;if(!n.isMounted)if(o)$=E||c;else return;x[Ut]&&x[Ut](!0);const Y=B[O];Y&&Yt(e,Y)&&Y.el[Ut]&&Y.el[Ut](),G($,[x])},enter(x){let $=u,Y=a,L=f;if(!n.isMounted)if(o)$=C||u,Y=T||a,L=N||f;else return;let Q=!1;const le=x[Xn]=we=>{Q||(Q=!0,we?G(L,[x]):G(Y,[x]),U.delayedLeave&&U.delayedLeave(),x[Xn]=void 0)};$?j($,[x,le]):le()},leave(x,$){const Y=String(e.key);if(x[Xn]&&x[Xn](!0),n.isUnmounting)return $();G(h,[x]);let L=!1;const Q=x[Ut]=le=>{L||(L=!0,$(),le?G(b,[x]):G(g,[x]),x[Ut]=void 0,B[Y]===e&&delete B[Y])};B[Y]=e,m?j(m,[x,Q]):Q()},clone(x){return hs(x,t,n,r)}};return U}function Fn(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Fn(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 ml(e,t=!1,n){let r=[],s=0;for(let o=0;o1)for(let o=0;oRn(g,t&&(K(t)?t[b]:t),n,r,s));return}if(sn(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&Rn(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?Lr(r.component):r.el,i=s?null:o,{i:l,r:c}=e,u=t&&t.r,a=l.refs===ce?l.refs={}:l.refs,f=l.setupState,h=re(f),m=f===ce?xi:g=>oe(h,g);if(u!=null&&u!==c){if(po(t),pe(u))a[u]=null,m(u)&&(f[u]=null);else if(de(u)){u.value=null;const g=t;g.k&&(a[g.k]=null)}}if(J(c))jn(c,l,12,[i,a]);else{const g=pe(c),b=de(c);if(g||b){const E=()=>{if(e.f){const C=g?m(c)?f[c]:a[c]:c.value;if(s)K(C)&&Ls(C,o);else if(K(C))C.includes(o)||C.push(o);else if(g)a[c]=[o],m(c)&&(f[c]=a[c]);else{const T=[o];c.value=T,e.k&&(a[e.k]=T)}}else g?(a[c]=i,m(c)&&(f[c]=i)):b&&(c.value=i,e.k&&(a[e.k]=i))};if(i){const C=()=>{E(),hr.delete(e)};C.id=-1,hr.set(e,C),Te(C,n)}else po(e),E()}}}function po(e){const t=hr.get(e);t&&(t.flags|=8,hr.delete(e))}Rr().requestIdleCallback;Rr().cancelIdleCallback;const sn=e=>!!e.type.__asyncLoader,yl=e=>e.type.__isKeepAlive;function Ua(e,t){_l(e,"a",t)}function ja(e,t){_l(e,"da",t)}function _l(e,t,n=Ne){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Pr(t,r,n),n){let s=n.parent;for(;s&&s.parent;)yl(s.parent.vnode)&&Ha(r,t,n,s),s=s.parent}}function Ha(e,t,n,r){const s=Pr(t,e,r,!0);vl(()=>{Ls(r[t],s)},n)}function Pr(e,t,n=Ne,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{bt();const l=Hn(n),c=Je(t,n,e,i);return l(),Et(),c});return r?s.unshift(o):s.push(o),o}}const St=e=>(t,n=Ne)=>{(!Bn||e==="sp")&&Pr(e,(...r)=>t(...r),n)},Va=St("bm"),bl=St("m"),$a=St("bu"),El=St("u"),wl=St("bum"),vl=St("um"),qa=St("sp"),Ka=St("rtg"),Wa=St("rtc");function Ga(e,t=Ne){Pr("ec",e,t)}const za=Symbol.for("v-ndc");function Ja(e,t,n,r){let s;const o=n,i=K(e);if(i||pe(e)){const l=i&&ft(e);let c=!1,u=!1;l&&(c=!je(e),u=wt(e),e=Cr(e)),s=new Array(e.length);for(let a=0,f=e.length;at(l,c,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let c=0,u=l.length;c0;return qe(),gr(ve,null,[be("slot",n,r)],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),qe();const i=o&&Sl(o(n)),l=n.key||i&&i.key,c=gr(ve,{key:(l&&!vt(l)?l:`_${t}`)+(!i&&r?"_fb":"")},i||[],i&&e._===1?64:-2);return c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),o&&o._c&&(o._d=!0),c}function Sl(e){return e.some(t=>kn(t)?!(t.type===ht||t.type===ve&&!Sl(t.children)):!0)?e:null}const ps=e=>e?Hl(e)?Lr(e):ps(e.parent):null,Cn=Ee(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=>ps(e.parent),$root:e=>ps(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Rl(e),$forceUpdate:e=>e.f||(e.f=()=>{qs(e.update)}),$nextTick:e=>e.n||(e.n=$s.bind(e.proxy)),$watch:e=>Ia.bind(e)}),Gr=(e,t)=>e!==ce&&!e.__isScriptSetup&&oe(e,t),Xa={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:o,accessCache:i,type:l,appContext:c}=e;if(t[0]!=="$"){const h=i[t];if(h!==void 0)switch(h){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(Gr(r,t))return i[t]=1,r[t];if(s!==ce&&oe(s,t))return i[t]=2,s[t];if(oe(o,t))return i[t]=3,o[t];if(n!==ce&&oe(n,t))return i[t]=4,n[t];ms&&(i[t]=0)}}const u=Cn[t];let a,f;if(u)return t==="$attrs"&&Ae(e.attrs,"get",""),u(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==ce&&oe(n,t))return i[t]=4,n[t];if(f=c.config.globalProperties,oe(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return Gr(s,t)?(s[t]=n,!0):r!==ce&&oe(r,t)?(r[t]=n,!0):oe(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:o,type:i}},l){let c;return!!(n[l]||e!==ce&&l[0]!=="$"&&oe(e,l)||Gr(t,l)||oe(o,l)||oe(r,l)||oe(Cn,l)||oe(s.config.globalProperties,l)||(c=i.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:oe(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function mo(e){return K(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let ms=!0;function Qa(e){const t=Rl(e),n=e.proxy,r=e.ctx;ms=!1,t.beforeCreate&&go(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:u,created:a,beforeMount:f,mounted:h,beforeUpdate:m,updated:g,activated:b,deactivated:E,beforeDestroy:C,beforeUnmount:T,destroyed:N,unmounted:O,render:B,renderTracked:G,renderTriggered:j,errorCaptured:U,serverPrefetch:x,expose:$,inheritAttrs:Y,components:L,directives:Q,filters:le}=t;if(u&&Ya(u,r,null),i)for(const z in i){const Z=i[z];J(Z)&&(r[z]=Z.bind(n))}if(s){const z=s.call(n,n);ae(z)&&(e.data=fn(z))}if(ms=!0,o)for(const z in o){const Z=o[z],He=J(Z)?Z.bind(n,n):J(Z.get)?Z.get.bind(n,n):ut,Ye=!J(Z)&&J(Z.set)?Z.set.bind(n):ut,ye=Be({get:He,set:Ye});Object.defineProperty(r,z,{enumerable:!0,configurable:!0,get:()=>ye.value,set:me=>ye.value=me})}if(l)for(const z in l)Al(l[z],r,n,z);if(c){const z=J(c)?c.call(n):c;Reflect.ownKeys(z).forEach(Z=>{tr(Z,z[Z])})}a&&go(a,e,"c");function ee(z,Z){K(Z)?Z.forEach(He=>z(He.bind(n))):Z&&z(Z.bind(n))}if(ee(Va,f),ee(bl,h),ee($a,m),ee(El,g),ee(Ua,b),ee(ja,E),ee(Ga,U),ee(Wa,G),ee(Ka,j),ee(wl,T),ee(vl,O),ee(qa,x),K($))if($.length){const z=e.exposed||(e.exposed={});$.forEach(Z=>{Object.defineProperty(z,Z,{get:()=>n[Z],set:He=>n[Z]=He,enumerable:!0})})}else e.exposed||(e.exposed={});B&&e.render===ut&&(e.render=B),Y!=null&&(e.inheritAttrs=Y),L&&(e.components=L),Q&&(e.directives=Q),x&&gl(e)}function Ya(e,t,n=ut){K(e)&&(e=gs(e));for(const r in e){const s=e[r];let o;ae(s)?"default"in s?o=Ke(s.from||r,s.default,!0):o=Ke(s.from||r):o=Ke(s),de(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function go(e,t,n){Je(K(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Al(e,t,n,r){let s=r.includes(".")?fl(n,r):()=>n[r];if(pe(e)){const o=t[e];J(o)&&Sn(s,o)}else if(J(e))Sn(s,e.bind(n));else if(ae(e))if(K(e))e.forEach(o=>Al(o,t,n,r));else{const o=J(e.handler)?e.handler.bind(n):t[e.handler];J(o)&&Sn(s,o,e)}}function Rl(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>pr(c,u,i,!0)),pr(c,t,i)),ae(t)&&o.set(t,c),c}function pr(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&pr(e,o,n,!0),s&&s.forEach(i=>pr(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Za[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Za={data:yo,props:_o,emits:_o,methods:bn,computed:bn,beforeCreate:xe,created:xe,beforeMount:xe,mounted:xe,beforeUpdate:xe,updated:xe,beforeDestroy:xe,beforeUnmount:xe,destroyed:xe,unmounted:xe,activated:xe,deactivated:xe,errorCaptured:xe,serverPrefetch:xe,components:bn,directives:bn,watch:tu,provide:yo,inject:eu};function yo(e,t){return t?e?function(){return Ee(J(e)?e.call(this,this):e,J(t)?t.call(this,this):t)}:t:e}function eu(e,t){return bn(gs(e),gs(t))}function gs(e){if(K(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Dt(t)}Modifiers`]||e[`${zt(t)}Modifiers`];function ou(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||ce;let s=n;const o=t.startsWith("update:"),i=o&&su(r,t.slice(7));i&&(i.trim&&(s=n.map(a=>pe(a)?a.trim():a)),i.number&&(s=n.map(Ds)));let l,c=r[l=Vr(t)]||r[l=Vr(Dt(t))];!c&&o&&(c=r[l=Vr(zt(t))]),c&&Je(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Je(u,e,6,s)}}const iu=new WeakMap;function xl(e,t,n=!1){const r=n?iu:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!J(e)){const c=u=>{const a=xl(u,t,!0);a&&(l=!0,Ee(i,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(ae(e)&&r.set(e,null),null):(K(o)?o.forEach(c=>i[c]=null):Ee(i,o),ae(e)&&r.set(e,i),i)}function Nr(e,t){return!e||!wr(t)?!1:(t=t.slice(2).replace(/Once$/,""),oe(e,t[0].toLowerCase()+t.slice(1))||oe(e,zt(t))||oe(e,t))}function bo(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:a,props:f,data:h,setupState:m,ctx:g,inheritAttrs:b}=e,E=dr(e);let C,T;try{if(n.shapeFlag&4){const O=s||r,B=O;C=at(u.call(B,O,a,f,m,h,g)),T=l}else{const O=t;C=at(O.length>1?O(f,{attrs:l,slots:i,emit:c}):O(f,null)),T=t.props?l:lu(l)}}catch(O){xn.length=0,Tr(O,e,1),C=be(ht)}let N=C;if(T&&b!==!1){const O=Object.keys(T),{shapeFlag:B}=N;O.length&&B&7&&(o&&O.some(Is)&&(T=cu(T,o)),N=Wt(N,T,!1,!0))}return n.dirs&&(N=Wt(N,null,!1,!0),N.dirs=N.dirs?N.dirs.concat(n.dirs):n.dirs),n.transition&&Fn(N,n.transition),C=N,dr(E),C}const lu=e=>{let t;for(const n in e)(n==="class"||n==="style"||wr(n))&&((t||(t={}))[n]=e[n]);return t},cu=(e,t)=>{const n={};for(const r in e)(!Is(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function au(e,t,n){const{props:r,children:s,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 r?Eo(r,i,u):!!i;if(c&8){const a=t.dynamicProps;for(let f=0;fObject.create(Tl),Pl=e=>Object.getPrototypeOf(e)===Tl;function fu(e,t,n,r=!1){const s={},o=Ol();e.propsDefaults=Object.create(null),Nl(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:el(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function du(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=re(s),[c]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const a=e.vnode.dynamicProps;for(let f=0;f{c=!0;const[h,m]=Il(f,t,!0);Ee(i,h),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!c)return ae(e)&&r.set(e,tn),tn;if(K(o))for(let a=0;ae==="_"||e==="_ctx"||e==="$stable",Ws=e=>K(e)?e.map(at):[at(e)],pu=(e,t,n)=>{if(t._n)return t;const r=al((...s)=>Ws(t(...s)),n);return r._c=!1,r},Ll=(e,t,n)=>{const r=e._ctx;for(const s in e){if(Ks(s))continue;const o=e[s];if(J(o))t[s]=pu(s,o,r);else if(o!=null){const i=Ws(o);t[s]=()=>i}}},Dl=(e,t)=>{const n=Ws(t);e.slots.default=()=>n},Fl=(e,t,n)=>{for(const r in t)(n||!Ks(r))&&(e[r]=t[r])},mu=(e,t,n)=>{const r=e.slots=Ol();if(e.vnode.shapeFlag&32){const s=t._;s?(Fl(r,t,n),n&&Li(r,"_",s,!0)):Ll(t,r)}else t&&Dl(e,t)},gu=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=ce;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:Fl(s,t,n):(o=!t.$stable,Ll(t,s)),i=t}else t&&(Dl(e,t),i={default:1});if(o)for(const l in s)!Ks(l)&&i[l]==null&&delete s[l]},Te=wu;function yu(e){return _u(e)}function _u(e,t){const n=Rr();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:a,parentNode:f,nextSibling:h,setScopeId:m=ut,insertStaticContent:g}=e,b=(d,p,y,w=null,A=null,v=null,D=void 0,I=null,P=!!p.dynamicChildren)=>{if(d===p)return;d&&!Yt(d,p)&&(w=S(d),me(d,A,v,!0),d=null),p.patchFlag===-2&&(P=!1,p.dynamicChildren=null);const{type:R,ref:q,shapeFlag:M}=p;switch(R){case Ir:E(d,p,y,w);break;case ht:C(d,p,y,w);break;case rr:d==null&&T(p,y,w,D);break;case ve:L(d,p,y,w,A,v,D,I,P);break;default:M&1?B(d,p,y,w,A,v,D,I,P):M&6?Q(d,p,y,w,A,v,D,I,P):(M&64||M&128)&&R.process(d,p,y,w,A,v,D,I,P,H)}q!=null&&A?Rn(q,d&&d.ref,v,p||d,!p):q==null&&d&&d.ref!=null&&Rn(d.ref,null,v,d,!0)},E=(d,p,y,w)=>{if(d==null)r(p.el=l(p.children),y,w);else{const A=p.el=d.el;p.children!==d.children&&u(A,p.children)}},C=(d,p,y,w)=>{d==null?r(p.el=c(p.children||""),y,w):p.el=d.el},T=(d,p,y,w)=>{[d.el,d.anchor]=g(d.children,p,y,w,d.el,d.anchor)},N=({el:d,anchor:p},y,w)=>{let A;for(;d&&d!==p;)A=h(d),r(d,y,w),d=A;r(p,y,w)},O=({el:d,anchor:p})=>{let y;for(;d&&d!==p;)y=h(d),s(d),d=y;s(p)},B=(d,p,y,w,A,v,D,I,P)=>{if(p.type==="svg"?D="svg":p.type==="math"&&(D="mathml"),d==null)G(p,y,w,A,v,D,I,P);else{const R=d.el&&d.el._isVueCE?d.el:null;try{R&&R._beginPatch(),x(d,p,A,v,D,I,P)}finally{R&&R._endPatch()}}},G=(d,p,y,w,A,v,D,I)=>{let P,R;const{props:q,shapeFlag:M,transition:V,dirs:W}=d;if(P=d.el=i(d.type,v,q&&q.is,q),M&8?a(P,d.children):M&16&&U(d.children,P,null,w,A,zr(d,v),D,I),W&&Ft(d,null,w,"created"),j(P,d,d.scopeId,D,w),q){for(const ue in q)ue!=="value"&&!En(ue)&&o(P,ue,null,q[ue],v,w);"value"in q&&o(P,"value",null,q.value,v),(R=q.onVnodeBeforeMount)&&st(R,w,d)}W&&Ft(d,null,w,"beforeMount");const ne=bu(A,V);ne&&V.beforeEnter(P),r(P,p,y),((R=q&&q.onVnodeMounted)||ne||W)&&Te(()=>{R&&st(R,w,d),ne&&V.enter(P),W&&Ft(d,null,w,"mounted")},A)},j=(d,p,y,w,A)=>{if(y&&m(d,y),w)for(let v=0;v{for(let R=P;R{const I=p.el=d.el;let{patchFlag:P,dynamicChildren:R,dirs:q}=p;P|=d.patchFlag&16;const M=d.props||ce,V=p.props||ce;let W;if(y&&Mt(y,!1),(W=V.onVnodeBeforeUpdate)&&st(W,y,p,d),q&&Ft(p,d,y,"beforeUpdate"),y&&Mt(y,!0),(M.innerHTML&&V.innerHTML==null||M.textContent&&V.textContent==null)&&a(I,""),R?$(d.dynamicChildren,R,I,y,w,zr(p,A),v):D||Z(d,p,I,null,y,w,zr(p,A),v,!1),P>0){if(P&16)Y(I,M,V,y,A);else if(P&2&&M.class!==V.class&&o(I,"class",null,V.class,A),P&4&&o(I,"style",M.style,V.style,A),P&8){const ne=p.dynamicProps;for(let ue=0;ue{W&&st(W,y,p,d),q&&Ft(p,d,y,"updated")},w)},$=(d,p,y,w,A,v,D)=>{for(let I=0;I{if(p!==y){if(p!==ce)for(const v in p)!En(v)&&!(v in y)&&o(d,v,p[v],null,A,w);for(const v in y){if(En(v))continue;const D=y[v],I=p[v];D!==I&&v!=="value"&&o(d,v,I,D,A,w)}"value"in y&&o(d,"value",p.value,y.value,A)}},L=(d,p,y,w,A,v,D,I,P)=>{const R=p.el=d?d.el:l(""),q=p.anchor=d?d.anchor:l("");let{patchFlag:M,dynamicChildren:V,slotScopeIds:W}=p;W&&(I=I?I.concat(W):W),d==null?(r(R,y,w),r(q,y,w),U(p.children||[],y,q,A,v,D,I,P)):M>0&&M&64&&V&&d.dynamicChildren&&d.dynamicChildren.length===V.length?($(d.dynamicChildren,V,y,A,v,D,I),(p.key!=null||A&&p===A.subTree)&&Gs(d,p,!0)):Z(d,p,y,q,A,v,D,I,P)},Q=(d,p,y,w,A,v,D,I,P)=>{p.slotScopeIds=I,d==null?p.shapeFlag&512?A.ctx.activate(p,y,w,D,P):le(p,y,w,A,v,D,P):we(d,p,P)},le=(d,p,y,w,A,v,D)=>{const I=d.component=Pu(d,w,A);if(yl(d)&&(I.ctx.renderer=H),Nu(I,!1,D),I.asyncDep){if(A&&A.registerDep(I,ee,D),!d.el){const P=I.subTree=be(ht);C(null,P,p,y),d.placeholder=P.el}}else ee(I,d,p,y,A,v,D)},we=(d,p,y)=>{const w=p.component=d.component;if(au(d,p,y))if(w.asyncDep&&!w.asyncResolved){z(w,p,y);return}else w.next=p,w.update();else p.el=d.el,w.vnode=p},ee=(d,p,y,w,A,v,D)=>{const I=()=>{if(d.isMounted){let{next:M,bu:V,u:W,parent:ne,vnode:ue}=d;{const nt=Ml(d);if(nt){M&&(M.el=ue.el,z(d,M,D)),nt.asyncDep.then(()=>{d.isUnmounted||I()});return}}let ie=M,Ie;Mt(d,!1),M?(M.el=ue.el,z(d,M,D)):M=ue,V&&er(V),(Ie=M.props&&M.props.onVnodeBeforeUpdate)&&st(Ie,ne,M,ue),Mt(d,!0);const Le=bo(d),tt=d.subTree;d.subTree=Le,b(tt,Le,f(tt.el),S(tt),d,A,v),M.el=Le.el,ie===null&&uu(d,Le.el),W&&Te(W,A),(Ie=M.props&&M.props.onVnodeUpdated)&&Te(()=>st(Ie,ne,M,ue),A)}else{let M;const{el:V,props:W}=p,{bm:ne,m:ue,parent:ie,root:Ie,type:Le}=d,tt=sn(p);Mt(d,!1),ne&&er(ne),!tt&&(M=W&&W.onVnodeBeforeMount)&&st(M,ie,p),Mt(d,!0);{Ie.ce&&Ie.ce._def.shadowRoot!==!1&&Ie.ce._injectChildStyle(Le);const nt=d.subTree=bo(d);b(null,nt,y,w,d,A,v),p.el=nt.el}if(ue&&Te(ue,A),!tt&&(M=W&&W.onVnodeMounted)){const nt=p;Te(()=>st(M,ie,nt),A)}(p.shapeFlag&256||ie&&sn(ie.vnode)&&ie.vnode.shapeFlag&256)&&d.a&&Te(d.a,A),d.isMounted=!0,p=y=w=null}};d.scope.on();const P=d.effect=new ji(I);d.scope.off();const R=d.update=P.run.bind(P),q=d.job=P.runIfDirty.bind(P);q.i=d,q.id=d.uid,P.scheduler=()=>qs(q),Mt(d,!0),R()},z=(d,p,y)=>{p.component=d;const w=d.vnode.props;d.vnode=p,d.next=null,du(d,p.props,w,y),gu(d,p.children,y),bt(),ao(d),Et()},Z=(d,p,y,w,A,v,D,I,P=!1)=>{const R=d&&d.children,q=d?d.shapeFlag:0,M=p.children,{patchFlag:V,shapeFlag:W}=p;if(V>0){if(V&128){Ye(R,M,y,w,A,v,D,I,P);return}else if(V&256){He(R,M,y,w,A,v,D,I,P);return}}W&8?(q&16&&Ve(R,A,v),M!==R&&a(y,M)):q&16?W&16?Ye(R,M,y,w,A,v,D,I,P):Ve(R,A,v,!0):(q&8&&a(y,""),W&16&&U(M,y,w,A,v,D,I,P))},He=(d,p,y,w,A,v,D,I,P)=>{d=d||tn,p=p||tn;const R=d.length,q=p.length,M=Math.min(R,q);let V;for(V=0;Vq?Ve(d,A,v,!0,!1,M):U(p,y,w,A,v,D,I,P,M)},Ye=(d,p,y,w,A,v,D,I,P)=>{let R=0;const q=p.length;let M=d.length-1,V=q-1;for(;R<=M&&R<=V;){const W=d[R],ne=p[R]=P?Nt(p[R]):at(p[R]);if(Yt(W,ne))b(W,ne,y,null,A,v,D,I,P);else break;R++}for(;R<=M&&R<=V;){const W=d[M],ne=p[V]=P?Nt(p[V]):at(p[V]);if(Yt(W,ne))b(W,ne,y,null,A,v,D,I,P);else break;M--,V--}if(R>M){if(R<=V){const W=V+1,ne=WV)for(;R<=M;)me(d[R],A,v,!0),R++;else{const W=R,ne=R,ue=new Map;for(R=ne;R<=V;R++){const Me=p[R]=P?Nt(p[R]):at(p[R]);Me.key!=null&&ue.set(Me.key,R)}let ie,Ie=0;const Le=V-ne+1;let tt=!1,nt=0;const pn=new Array(Le);for(R=0;R=Le){me(Me,A,v,!0);continue}let rt;if(Me.key!=null)rt=ue.get(Me.key);else for(ie=ne;ie<=V;ie++)if(pn[ie-ne]===0&&Yt(Me,p[ie])){rt=ie;break}rt===void 0?me(Me,A,v,!0):(pn[rt-ne]=R+1,rt>=nt?nt=rt:tt=!0,b(Me,p[rt],y,null,A,v,D,I,P),Ie++)}const ro=tt?Eu(pn):tn;for(ie=ro.length-1,R=Le-1;R>=0;R--){const Me=ne+R,rt=p[Me],so=p[Me+1],oo=Me+1{const{el:v,type:D,transition:I,children:P,shapeFlag:R}=d;if(R&6){ye(d.component.subTree,p,y,w);return}if(R&128){d.suspense.move(p,y,w);return}if(R&64){D.move(d,p,y,H);return}if(D===ve){r(v,p,y);for(let M=0;MI.enter(v),A);else{const{leave:M,delayLeave:V,afterLeave:W}=I,ne=()=>{d.ctx.isUnmounted?s(v):r(v,p,y)},ue=()=>{v._isLeaving&&v[Ut](!0),M(v,()=>{ne(),W&&W()})};V?V(v,ne,ue):ue()}else r(v,p,y)},me=(d,p,y,w=!1,A=!1)=>{const{type:v,props:D,ref:I,children:P,dynamicChildren:R,shapeFlag:q,patchFlag:M,dirs:V,cacheIndex:W}=d;if(M===-2&&(A=!1),I!=null&&(bt(),Rn(I,null,y,d,!0),Et()),W!=null&&(p.renderCache[W]=void 0),q&256){p.ctx.deactivate(d);return}const ne=q&1&&V,ue=!sn(d);let ie;if(ue&&(ie=D&&D.onVnodeBeforeUnmount)&&st(ie,p,d),q&6)et(d.component,y,w);else{if(q&128){d.suspense.unmount(y,w);return}ne&&Ft(d,null,p,"beforeUnmount"),q&64?d.type.remove(d,p,y,H,w):R&&!R.hasOnce&&(v!==ve||M>0&&M&64)?Ve(R,p,y,!1,!0):(v===ve&&M&384||!A&&q&16)&&Ve(P,p,y),w&&Ze(d)}(ue&&(ie=D&&D.onVnodeUnmounted)||ne)&&Te(()=>{ie&&st(ie,p,d),ne&&Ft(d,null,p,"unmounted")},y)},Ze=d=>{const{type:p,el:y,anchor:w,transition:A}=d;if(p===ve){We(y,w);return}if(p===rr){O(d);return}const v=()=>{s(y),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(d.shapeFlag&1&&A&&!A.persisted){const{leave:D,delayLeave:I}=A,P=()=>D(y,v);I?I(d.el,v,P):P()}else v()},We=(d,p)=>{let y;for(;d!==p;)y=h(d),s(d),d=y;s(p)},et=(d,p,y)=>{const{bum:w,scope:A,job:v,subTree:D,um:I,m:P,a:R}=d;vo(P),vo(R),w&&er(w),A.stop(),v&&(v.flags|=8,me(D,d,p,y)),I&&Te(I,p),Te(()=>{d.isUnmounted=!0},p)},Ve=(d,p,y,w=!1,A=!1,v=0)=>{for(let D=v;D{if(d.shapeFlag&6)return S(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const p=h(d.anchor||d.el),y=p&&p[dl];return y?h(y):p};let k=!1;const F=(d,p,y)=>{let w;d==null?p._vnode&&(me(p._vnode,null,null,!0),w=p._vnode.component):b(p._vnode||null,d,p,null,null,null,y),p._vnode=d,k||(k=!0,ao(w),il(),k=!1)},H={p:b,um:me,m:ye,r:Ze,mt:le,mc:U,pc:Z,pbc:$,n:S,o:e};return{render:F,hydrate:void 0,createApp:ru(F)}}function zr({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 Mt({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function bu(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Gs(e,t,n=!1){const r=e.children,s=t.children;if(K(r)&&K(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Ml(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Ml(t)}function vo(e){if(e)for(let t=0;te.__isSuspense;function wu(e,t){t&&t.pendingBranch?K(e)?t.effects.push(...e):t.effects.push(e):Ta(e)}const ve=Symbol.for("v-fgt"),Ir=Symbol.for("v-txt"),ht=Symbol.for("v-cmt"),rr=Symbol.for("v-stc"),xn=[];let Ue=null;function qe(e=!1){xn.push(Ue=e?null:[])}function vu(){xn.pop(),Ue=xn[xn.length-1]||null}let Mn=1;function mr(e,t=!1){Mn+=e,e<0&&Ue&&t&&(Ue.hasOnce=!0)}function Ul(e){return e.dynamicChildren=Mn>0?Ue||tn:null,vu(),Mn>0&&Ue&&Ue.push(e),e}function Ct(e,t,n,r,s,o){return Ul(ke(e,t,n,r,s,o,!0))}function gr(e,t,n,r,s){return Ul(be(e,t,n,r,s,!0))}function kn(e){return e?e.__v_isVNode===!0:!1}function Yt(e,t){return e.type===t.type&&e.key===t.key}const jl=({key:e})=>e??null,sr=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?pe(e)||de(e)||J(e)?{i:Ce,r:e,k:t,f:!!n}:e:null);function ke(e,t=null,n=null,r=0,s=null,o=e===ve?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&jl(t),ref:t&&sr(t),scopeId:cl,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:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Ce};return l?(zs(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=pe(n)?8:16),Mn>0&&!i&&Ue&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Ue.push(c),c}const be=Su;function Su(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===za)&&(e=ht),kn(e)){const l=Wt(e,t,!0);return n&&zs(l,n),Mn>0&&!o&&Ue&&(l.shapeFlag&6?Ue[Ue.indexOf(e)]=l:Ue.push(l)),l.patchFlag=-2,l}if(Fu(e)&&(e=e.__vccOpts),t){t=Au(t);let{class:l,style:c}=t;l&&!pe(l)&&(t.class=Nn(l)),ae(c)&&(xr(c)&&!K(c)&&(c=Ee({},c)),t.style=Fs(c))}const i=pe(e)?1:Bl(e)?128:La(e)?64:ae(e)?4:J(e)?2:0;return ke(e,t,n,r,s,i,o,!0)}function Au(e){return e?xr(e)||Pl(e)?Ee({},e):e:null}function Wt(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?xu(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&jl(u),ref:t&&t.ref?n&&o?K(o)?o.concat(sr(t)):[o,sr(t)]:sr(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&&r&&Fn(a,c.clone(a)),a}function Ru(e=" ",t=0){return be(Ir,null,e,t)}function Op(e,t){const n=be(rr,null,e);return n.staticCount=t,n}function Cu(e="",t=!1){return t?(qe(),gr(ht,null,e)):be(ht,null,e)}function at(e){return e==null||typeof e=="boolean"?be(ht):K(e)?be(ve,null,e.slice()):kn(e)?Nt(e):be(Ir,null,String(e))}function Nt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Wt(e)}function zs(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(K(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),zs(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Pl(t)?t._ctx=Ce:s===3&&Ce&&(Ce.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else J(t)?(t={default:t,_ctx:Ce},n=32):(t=String(t),r&64?(n=16,t=[Ru(t)]):n=8);e.children=t,e.shapeFlag|=n}function xu(...e){const t={};for(let n=0;nNe||Ce;let yr,_s;{const e=Rr(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};yr=t("__VUE_INSTANCE_SETTERS__",n=>Ne=n),_s=t("__VUE_SSR_SETTERS__",n=>Bn=n)}const Hn=e=>{const t=Ne;return yr(e),e.scope.on(),()=>{e.scope.off(),yr(t)}},So=()=>{Ne&&Ne.scope.off(),yr(null)};function Hl(e){return e.vnode.shapeFlag&4}let Bn=!1;function Nu(e,t=!1,n=!1){t&&_s(t);const{props:r,children:s}=e.vnode,o=Hl(e);fu(e,r,o,t),mu(e,s,n||t);const i=o?Iu(e,t):void 0;return t&&_s(!1),i}function Iu(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Xa);const{setup:r}=n;if(r){bt();const s=e.setupContext=r.length>1?Du(e):null,o=Hn(e),i=jn(r,e,0,[e.props,s]),l=Oi(i);if(Et(),o(),(l||e.sp)&&!sn(e)&&gl(e),l){if(i.then(So,So),t)return i.then(c=>{Ao(e,c)}).catch(c=>{Tr(c,e,0)});e.asyncDep=i}else Ao(e,i)}else Vl(e)}function Ao(e,t,n){J(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ae(t)&&(e.setupState=nl(t)),Vl(e)}function Vl(e,t,n){const r=e.type;e.render||(e.render=r.render||ut);{const s=Hn(e);bt();try{Qa(e)}finally{Et(),s()}}}const Lu={get(e,t){return Ae(e,"get",""),e[t]}};function Du(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Lu),slots:e.slots,emit:e.emit,expose:t}}function Lr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(nl(Vs(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Cn)return Cn[n](e)},has(t,n){return n in t||n in Cn}})):e.proxy}function Fu(e){return J(e)&&"__vccOpts"in e}const Be=(e,t)=>Sa(e,t,Bn);function $l(e,t,n){try{mr(-1);const r=arguments.length;return r===2?ae(t)&&!K(t)?kn(t)?be(e,null,[t]):be(e,t):be(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&kn(n)&&(n=[n]),be(e,t,n))}finally{mr(1)}}const Mu="3.5.26";let bs;const Ro=typeof window<"u"&&window.trustedTypes;if(Ro)try{bs=Ro.createPolicy("vue",{createHTML:e=>e})}catch{}const ql=bs?e=>bs.createHTML(e):e=>e,ku="http://www.w3.org/2000/svg",Bu="http://www.w3.org/1998/Math/MathML",gt=typeof document<"u"?document:null,Co=gt&>.createElement("template"),Uu={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?gt.createElementNS(ku,e):t==="mathml"?gt.createElementNS(Bu,e):n?gt.createElement(e,{is:n}):gt.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>gt.createTextNode(e),createComment:e=>gt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>gt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{Co.innerHTML=ql(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=Co.content;if(r==="svg"||r==="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]}},At="transition",gn="animation",ln=Symbol("_vtc"),Kl={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},ju=Ee({},ka,Kl),kt=(e,t=[])=>{K(e)?e.forEach(n=>n(...t)):e&&e(...t)},xo=e=>e?K(e)?e.some(t=>t.length>1):e.length>1:!1;function Hu(e){const t={};for(const L in e)L in Kl||(t[L]=e[L]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=o,appearActiveClass:u=i,appearToClass:a=l,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:h=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,g=Vu(s),b=g&&g[0],E=g&&g[1],{onBeforeEnter:C,onEnter:T,onEnterCancelled:N,onLeave:O,onLeaveCancelled:B,onBeforeAppear:G=C,onAppear:j=T,onAppearCancelled:U=N}=t,x=(L,Q,le,we)=>{L._enterCancelled=we,xt(L,Q?a:l),xt(L,Q?u:i),le&&le()},$=(L,Q)=>{L._isLeaving=!1,xt(L,f),xt(L,m),xt(L,h),Q&&Q()},Y=L=>(Q,le)=>{const we=L?j:T,ee=()=>x(Q,L,le);kt(we,[Q,ee]),To(()=>{xt(Q,L?c:o),lt(Q,L?a:l),xo(we)||Oo(Q,r,b,ee)})};return Ee(t,{onBeforeEnter(L){kt(C,[L]),lt(L,o),lt(L,i)},onBeforeAppear(L){kt(G,[L]),lt(L,c),lt(L,u)},onEnter:Y(!1),onAppear:Y(!0),onLeave(L,Q){L._isLeaving=!0;const le=()=>$(L,Q);lt(L,f),L._enterCancelled?(lt(L,h),Es(L)):(Es(L),lt(L,h)),To(()=>{L._isLeaving&&(xt(L,f),lt(L,m),xo(O)||Oo(L,r,E,le))}),kt(O,[L,le])},onEnterCancelled(L){x(L,!1,void 0,!0),kt(N,[L])},onAppearCancelled(L){x(L,!0,void 0,!0),kt(U,[L])},onLeaveCancelled(L){$(L),kt(B,[L])}})}function Vu(e){if(e==null)return null;if(ae(e))return[Jr(e.enter),Jr(e.leave)];{const t=Jr(e);return[t,t]}}function Jr(e){return Vc(e)}function lt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[ln]||(e[ln]=new Set)).add(t)}function xt(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[ln];n&&(n.delete(t),n.size||(e[ln]=void 0))}function To(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let $u=0;function Oo(e,t,n,r){const s=e._endId=++$u,o=()=>{s===e._endId&&r()};if(n!=null)return setTimeout(o,n);const{type:i,timeout:l,propCount:c}=Wl(e,t);if(!i)return r();const u=i+"end";let a=0;const f=()=>{e.removeEventListener(u,h),o()},h=m=>{m.target===e&&++a>=c&&f()};setTimeout(()=>{a(n[g]||"").split(", "),s=r(`${At}Delay`),o=r(`${At}Duration`),i=Po(s,o),l=r(`${gn}Delay`),c=r(`${gn}Duration`),u=Po(l,c);let a=null,f=0,h=0;t===At?i>0&&(a=At,f=i,h=o.length):t===gn?u>0&&(a=gn,f=u,h=c.length):(f=Math.max(i,u),a=f>0?i>u?At:gn:null,h=a?a===At?o.length:c.length:0);const m=a===At&&/\b(?:transform|all)(?:,|$)/.test(r(`${At}Property`).toString());return{type:a,timeout:f,propCount:h,hasTransform:m}}function Po(e,t){for(;e.lengthNo(n)+No(e[r])))}function No(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Es(e){return(e?e.ownerDocument:document).body.offsetHeight}function qu(e,t,n){const r=e[ln];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Io=Symbol("_vod"),Ku=Symbol("_vsh"),Wu=Symbol(""),Gu=/(?:^|;)\s*display\s*:/;function zu(e,t,n){const r=e.style,s=pe(n);let o=!1;if(n&&!s){if(t)if(pe(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&or(r,l,"")}else for(const i in t)n[i]==null&&or(r,i,"");for(const i in n)i==="display"&&(o=!0),or(r,i,n[i])}else if(s){if(t!==n){const i=r[Wu];i&&(n+=";"+i),r.cssText=n,o=Gu.test(n)}}else t&&e.removeAttribute("style");Io in e&&(e[Io]=o?r.display:"",e[Ku]&&(r.display="none"))}const Lo=/\s*!important$/;function or(e,t,n){if(K(n))n.forEach(r=>or(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Ju(e,t);Lo.test(n)?e.setProperty(zt(r),n.replace(Lo,""),"important"):e[r]=n}}const Do=["Webkit","Moz","ms"],Xr={};function Ju(e,t){const n=Xr[t];if(n)return n;let r=Dt(t);if(r!=="filter"&&r in e)return Xr[t]=r;r=Ii(r);for(let s=0;sQr||(Zu.then(()=>Qr=0),Qr=Date.now());function tf(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Je(nf(r,n.value),t,5,[r])};return n.value=e,n.attached=ef(),n}function nf(e,t){if(K(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const jo=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,rf=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?qu(e,r,i):t==="style"?zu(e,n,r):wr(t)?Is(t)||Qu(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):sf(e,t,r,i))?(ko(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Mo(e,t,r,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!pe(r))?ko(e,Dt(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Mo(e,t,r,i))};function sf(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&jo(t)&&J(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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return jo(t)&&pe(n)?!1:t in e}const Gl=new WeakMap,zl=new WeakMap,_r=Symbol("_moveCb"),Ho=Symbol("_enterCb"),of=e=>(delete e.props.mode,e),lf=of({name:"TransitionGroup",props:Ee({},ju,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=Js(),r=Ma();let s,o;return El(()=>{if(!s.length)return;const i=e.moveClass||`${e.name||"v"}-move`;if(!df(s[0].el,n.vnode.el,i)){s=[];return}s.forEach(af),s.forEach(uf);const l=s.filter(ff);Es(n.vnode.el),l.forEach(c=>{const u=c.el,a=u.style;lt(u,i),a.transform=a.webkitTransform=a.transitionDuration="";const f=u[_r]=h=>{h&&h.target!==u||(!h||h.propertyName.endsWith("transform"))&&(u.removeEventListener("transitionend",f),u[_r]=null,xt(u,i))};u.addEventListener("transitionend",f)}),s=[]}),()=>{const i=re(e),l=Hu(i);let c=i.tag||ve;if(s=[],o)for(let u=0;u{l.split(/\s+/).forEach(c=>c&&r.classList.remove(c))}),n.split(/\s+/).forEach(l=>l&&r.classList.add(l)),r.style.display="none";const o=t.nodeType===1?t:t.parentNode;o.appendChild(r);const{hasTransform:i}=Wl(r);return o.removeChild(r),i}const Vo=e=>{const t=e.props["onUpdate:modelValue"]||!1;return K(t)?n=>er(t,n):t};function hf(e){e.target.composing=!0}function $o(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Yr=Symbol("_assign");function qo(e,t,n){return t&&(e=e.trim()),n&&(e=Ds(e)),e}const Pp={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Yr]=Vo(s);const o=r||s.props&&s.props.type==="number";Zt(e,t?"change":"input",i=>{i.target.composing||e[Yr](qo(e.value,n,o))}),(n||o)&&Zt(e,"change",()=>{e.value=qo(e.value,n,o)}),t||(Zt(e,"compositionstart",hf),Zt(e,"compositionend",$o),Zt(e,"change",$o))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Yr]=Vo(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?Ds(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},pf=["ctrl","shift","alt","meta"],mf={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>pf.some(n=>e[`${n}Key`]&&!t.includes(n))},Np=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const t=yf().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Ef(r);if(!s)return;const o=t._component;!J(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,bf(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t});function bf(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Ef(e){return pe(e)?document.querySelector(e):e}let Jl;const Dr=e=>Jl=e,Xl=Symbol();function ws(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Tn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Tn||(Tn={}));function wf(){const e=Bi(!0),t=e.run(()=>$t({}));let n=[],r=[];const s=Vs({install(o){Dr(s),s._a=o,o.provide(Xl,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const Ql=()=>{};function Wo(e,t,n,r=Ql){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&Ui()&&Jc(s),s}function Xt(e,...t){e.forEach(n=>{n(...t)})}const vf=e=>e(),Go=Symbol(),Zr=Symbol();function vs(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];ws(s)&&ws(r)&&e.hasOwnProperty(n)&&!de(r)&&!ft(r)?e[n]=vs(s,r):e[n]=r}return e}const Sf=Symbol();function Af(e){return!ws(e)||!Object.prototype.hasOwnProperty.call(e,Sf)}const{assign:Tt}=Object;function Rf(e){return!!(de(e)&&e.effect)}function Cf(e,t,n,r){const{state:s,actions:o,getters:i}=t,l=n.state.value[e];let c;function u(){l||(n.state.value[e]=s?s():{});const a=_a(n.state.value[e]);return Tt(a,o,Object.keys(i||{}).reduce((f,h)=>(f[h]=Vs(Be(()=>{Dr(n);const m=n._s.get(e);return i[h].call(m,m)})),f),{}))}return c=Yl(e,u,t,n,r,!0),c}function Yl(e,t,n={},r,s,o){let i;const l=Tt({actions:{}},n),c={deep:!0};let u,a,f=new Set,h=new Set,m;const g=r.state.value[e];!o&&!g&&(r.state.value[e]={}),$t({});let b;function E(U){let x;u=a=!1,typeof U=="function"?(U(r.state.value[e]),x={type:Tn.patchFunction,storeId:e,events:m}):(vs(r.state.value[e],U),x={type:Tn.patchObject,payload:U,storeId:e,events:m});const $=b=Symbol();$s().then(()=>{b===$&&(u=!0)}),a=!0,Xt(f,x,r.state.value[e])}const C=o?function(){const{state:x}=n,$=x?x():{};this.$patch(Y=>{Tt(Y,$)})}:Ql;function T(){i.stop(),f.clear(),h.clear(),r._s.delete(e)}const N=(U,x="")=>{if(Go in U)return U[Zr]=x,U;const $=function(){Dr(r);const Y=Array.from(arguments),L=new Set,Q=new Set;function le(z){L.add(z)}function we(z){Q.add(z)}Xt(h,{args:Y,name:$[Zr],store:B,after:le,onError:we});let ee;try{ee=U.apply(this&&this.$id===e?this:B,Y)}catch(z){throw Xt(Q,z),z}return ee instanceof Promise?ee.then(z=>(Xt(L,z),z)).catch(z=>(Xt(Q,z),Promise.reject(z))):(Xt(L,ee),ee)};return $[Go]=!0,$[Zr]=x,$},O={_p:r,$id:e,$onAction:Wo.bind(null,h),$patch:E,$reset:C,$subscribe(U,x={}){const $=Wo(f,U,x.detached,()=>Y()),Y=i.run(()=>Sn(()=>r.state.value[e],L=>{(x.flush==="sync"?a:u)&&U({storeId:e,type:Tn.direct,events:m},L)},Tt({},c,x)));return $},$dispose:T},B=fn(O);r._s.set(e,B);const j=(r._a&&r._a.runWithContext||vf)(()=>r._e.run(()=>(i=Bi()).run(()=>t({action:N}))));for(const U in j){const x=j[U];if(de(x)&&!Rf(x)||ft(x))o||(g&&Af(x)&&(de(x)?x.value=g[U]:vs(x,g[U])),r.state.value[e][U]=x);else if(typeof x=="function"){const $=N(x,U);j[U]=$,l.actions[U]=x}}return Tt(B,j),Tt(re(B),j),Object.defineProperty(B,"$state",{get:()=>r.state.value[e],set:U=>{E(x=>{Tt(x,U)})}}),r._p.forEach(U=>{Tt(B,i.run(()=>U({store:B,app:r._a,pinia:r,options:l})))}),g&&o&&n.hydrate&&n.hydrate(B.$state,g),u=!0,a=!0,B}function xf(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,l){const c=Oa();return i=i||(c?Ke(Xl,null):null),i&&Dr(i),i=Jl,i._s.has(e)||(s?Yl(e,t,r,i):Cf(e,r,i)),i._s.get(e)}return o.$id=e,o}function Ip(e){const t=re(e),n={};for(const r in t){const s=t[r];s.effect?n[r]=Be({get:()=>e[r],set(o){e[r]=o}}):(de(s)||ft(s))&&(n[r]=wa(e,r))}return n}const Tf="modulepreload",Of=function(e){return"/"+e},zo={},ot=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let c=function(u){return Promise.all(u.map(a=>Promise.resolve(a).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=c(n.map(u=>{if(u=Of(u),u in zo)return;zo[u]=!0;const a=u.endsWith(".css"),f=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const h=document.createElement("link");if(h.rel=a?"stylesheet":Tf,a||(h.as="script"),h.crossOrigin="",h.href=u,l&&h.setAttribute("nonce",l),document.head.appendChild(h),a)return new Promise((m,g)=>{h.addEventListener("load",m),h.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})};const en=typeof document<"u";function Zl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Pf(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Zl(e.default)}const se=Object.assign;function es(e,t){const n={};for(const r in t){const s=t[r];n[r]=Xe(s)?s.map(e):e(s)}return n}const On=()=>{},Xe=Array.isArray;function Jo(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const ec=/#/g,Nf=/&/g,If=/\//g,Lf=/=/g,Df=/\?/g,tc=/\+/g,Ff=/%5B/g,Mf=/%5D/g,nc=/%5E/g,kf=/%60/g,rc=/%7B/g,Bf=/%7C/g,sc=/%7D/g,Uf=/%20/g;function Xs(e){return e==null?"":encodeURI(""+e).replace(Bf,"|").replace(Ff,"[").replace(Mf,"]")}function jf(e){return Xs(e).replace(rc,"{").replace(sc,"}").replace(nc,"^")}function Ss(e){return Xs(e).replace(tc,"%2B").replace(Uf,"+").replace(ec,"%23").replace(Nf,"%26").replace(kf,"`").replace(rc,"{").replace(sc,"}").replace(nc,"^")}function Hf(e){return Ss(e).replace(Lf,"%3D")}function Vf(e){return Xs(e).replace(ec,"%23").replace(Df,"%3F")}function $f(e){return Vf(e).replace(If,"%2F")}function Un(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const qf=/\/$/,Kf=e=>e.replace(qf,"");function ts(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return c=l>=0&&c>l?-1:c,c>=0&&(r=t.slice(0,c),o=t.slice(c,l>0?l:t.length),s=e(o.slice(1))),l>=0&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=Jf(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:Un(i)}}function Wf(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Xo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Gf(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&cn(t.matched[r],n.matched[s])&&oc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function cn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function oc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!zf(e[n],t[n]))return!1;return!0}function zf(e,t){return Xe(e)?Qo(e,t):Xe(t)?Qo(t,e):e?.valueOf()===t?.valueOf()}function Qo(e,t){return Xe(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function Jf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const Rt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let As=(function(e){return e.pop="pop",e.push="push",e})({}),ns=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function Xf(e){if(!e)if(en){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Kf(e)}const Qf=/^[^#]+#/;function Yf(e,t){return e.replace(Qf,"#")+t}function Zf(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const Fr=()=>({left:window.scrollX,top:window.scrollY});function ed(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=Zf(s,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 Yo(e,t){return(history.state?history.state.position-t:-1)+e}const Rs=new Map;function td(e,t){Rs.set(e,t)}function nd(e){const t=Rs.get(e);return Rs.delete(e),t}function rd(e){return typeof e=="string"||e&&typeof e=="object"}function ic(e){return typeof e=="string"||typeof e=="symbol"}let he=(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 lc=Symbol("");he.MATCHER_NOT_FOUND+"",he.NAVIGATION_GUARD_REDIRECT+"",he.NAVIGATION_ABORTED+"",he.NAVIGATION_CANCELLED+"",he.NAVIGATION_DUPLICATED+"";function an(e,t){return se(new Error,{type:e,[lc]:!0},t)}function mt(e,t){return e instanceof Error&&lc in e&&(t==null||!!(e.type&t))}const sd=["params","query","hash"];function od(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 id(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&Ss(s)):[r&&Ss(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function ld(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=Xe(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const cd=Symbol(""),ei=Symbol(""),Mr=Symbol(""),Qs=Symbol(""),Cs=Symbol("");function yn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function It(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,c)=>{const u=h=>{h===!1?c(an(he.NAVIGATION_ABORTED,{from:n,to:t})):h instanceof Error?c(h):rd(h)?c(an(he.NAVIGATION_GUARD_REDIRECT,{from:t,to:h})):(i&&r.enterCallbacks[s]===i&&typeof h=="function"&&i.push(h),l())},a=o(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(a);e.length<3&&(f=f.then(u)),f.catch(h=>c(h))})}function rs(e,t,n,r,s=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(Zl(c)){const u=(c.__vccOpts||c)[t];u&&o.push(It(u,n,r,i,l,s))}else{let u=c();o.push(()=>u.then(a=>{if(!a)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=Pf(a)?a.default:a;i.mods[l]=a,i.components[l]=f;const h=(f.__vccOpts||f)[t];return h&&It(h,n,r,i,l,s)()}))}}return o}function ad(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;icn(u,l))?r.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(u=>cn(u,c))||s.push(c))}return[n,r,s]}let ud=()=>location.protocol+"//"+location.host;function cc(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(i);return l[0]!=="/"&&(l="/"+l),Xo(l,"")}return Xo(n,e)+r+s}function fd(e,t,n,r){let s=[],o=[],i=null;const l=({state:h})=>{const m=cc(e,location),g=n.value,b=t.value;let E=0;if(h){if(n.value=m,t.value=h,i&&i===g){i=null;return}E=b?h.position-b.position:0}else r(m);s.forEach(C=>{C(n.value,g,{delta:E,type:As.pop,direction:E?E>0?ns.forward:ns.back:ns.unknown})})};function c(){i=n.value}function u(h){s.push(h);const m=()=>{const g=s.indexOf(h);g>-1&&s.splice(g,1)};return o.push(m),m}function a(){if(document.visibilityState==="hidden"){const{history:h}=window;if(!h.state)return;h.replaceState(se({},h.state,{scroll:Fr()}),"")}}function f(){for(const h of o)h();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 ti(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?Fr():null}}function dd(e){const{history:t,location:n}=window,r={value:cc(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(c,u,a){const f=e.indexOf("#"),h=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+c:ud()+e+c;try{t[a?"replaceState":"pushState"](u,"",h),s.value=u}catch(m){console.error(m),n[a?"replace":"assign"](h)}}function i(c,u){o(c,se({},t.state,ti(s.value.back,c,s.value.forward,!0),u,{position:s.value.position}),!0),r.value=c}function l(c,u){const a=se({},s.value,t.state,{forward:c,scroll:Fr()});o(a.current,a,!0),o(c,se({},ti(r.value,c,null),{position:a.position+1},u),!1),r.value=c}return{location:r,state:s,push:l,replace:i}}function hd(e){e=Xf(e);const t=dd(e),n=fd(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=se({location:"",base:e,go:r,createHref:Yf.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function pd(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),hd(e)}let jt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var _e=(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})(_e||{});const md={type:jt.Static,value:""},gd=/[a-zA-Z0-9_]/;function yd(e){if(!e)return[[]];if(e==="/")return[[md]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${u}": ${m}`)}let n=_e.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,c,u="",a="";function f(){u&&(n===_e.Static?o.push({type:jt.Static,value:u}):n===_e.Param||n===_e.ParamRegExp||n===_e.ParamRegExpEnd?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:jt.Param,value:u,regexp:a,repeatable:c==="*"||c==="+",optional:c==="*"||c==="?"})):t("Invalid state to consume buffer"),u="")}function h(){u+=c}for(;lt.length?t.length===1&&t[0]===Oe.Static+Oe.Segment?1:-1:0}function ac(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const vd={strict:!1,end:!0,sensitive:!1};function Sd(e,t,n){const r=Ed(yd(e.path),n),s=se(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function Ad(e,t){const n=[],r=new Map;t=Jo(vd,t);function s(f){return r.get(f)}function o(f,h,m){const g=!m,b=oi(f);b.aliasOf=m&&m.record;const E=Jo(t,f),C=[b];if("alias"in f){const O=typeof f.alias=="string"?[f.alias]:f.alias;for(const B of O)C.push(oi(se({},b,{components:m?m.record.components:b.components,path:B,aliasOf:m?m.record:b})))}let T,N;for(const O of C){const{path:B}=O;if(h&&B[0]!=="/"){const G=h.record.path,j=G[G.length-1]==="/"?"":"/";O.path=h.record.path+(B&&j+B)}if(T=Sd(O,h,E),m?m.alias.push(T):(N=N||T,N!==T&&N.alias.push(T),g&&f.name&&!ii(T)&&i(f.name)),uc(T)&&c(T),b.children){const G=b.children;for(let j=0;j{i(N)}:On}function i(f){if(ic(f)){const h=r.get(f);h&&(r.delete(f),n.splice(n.indexOf(h),1),h.children.forEach(i),h.alias.forEach(i))}else{const h=n.indexOf(f);h>-1&&(n.splice(h,1),f.record.name&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function c(f){const h=xd(f,n);n.splice(h,0,f),f.record.name&&!ii(f)&&r.set(f.record.name,f)}function u(f,h){let m,g={},b,E;if("name"in f&&f.name){if(m=r.get(f.name),!m)throw an(he.MATCHER_NOT_FOUND,{location:f});E=m.record.name,g=se(si(h.params,m.keys.filter(N=>!N.optional).concat(m.parent?m.parent.keys.filter(N=>N.optional):[]).map(N=>N.name)),f.params&&si(f.params,m.keys.map(N=>N.name))),b=m.stringify(g)}else if(f.path!=null)b=f.path,m=n.find(N=>N.re.test(b)),m&&(g=m.parse(b),E=m.record.name);else{if(m=h.name?r.get(h.name):n.find(N=>N.re.test(h.path)),!m)throw an(he.MATCHER_NOT_FOUND,{location:f,currentLocation:h});E=m.record.name,g=se({},h.params,f.params),b=m.stringify(g)}const C=[];let T=m;for(;T;)C.unshift(T.record),T=T.parent;return{name:E,path:b,params:g,matched:C,meta:Cd(C)}}e.forEach(f=>o(f));function a(){n.length=0,r.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:a,getRoutes:l,getRecordMatcher:s}}function si(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function oi(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Rd(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 Rd(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function ii(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Cd(e){return e.reduce((t,n)=>se(t,n.meta),{})}function xd(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;ac(e,t[o])<0?r=o:n=o+1}const s=Td(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function Td(e){let t=e;for(;t=t.parent;)if(uc(t)&&ac(e,t)===0)return t}function uc({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function li(e){const t=Ke(Mr),n=Ke(Qs),r=Be(()=>{const c=dt(e.to);return t.resolve(c)}),s=Be(()=>{const{matched:c}=r.value,{length:u}=c,a=c[u-1],f=n.matched;if(!a||!f.length)return-1;const h=f.findIndex(cn.bind(null,a));if(h>-1)return h;const m=ci(c[u-2]);return u>1&&ci(a)===m&&f[f.length-1].path!==m?f.findIndex(cn.bind(null,c[u-2])):h}),o=Be(()=>s.value>-1&&Ld(n.params,r.value.params)),i=Be(()=>s.value>-1&&s.value===n.matched.length-1&&oc(n.params,r.value.params));function l(c={}){if(Id(c)){const u=t[dt(e.replace)?"replace":"push"](dt(e.to)).catch(On);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Be(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function Od(e){return e.length===1?e[0]:e}const Pd=Or({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:li,setup(e,{slots:t}){const n=fn(li(e)),{options:r}=Ke(Mr),s=Be(()=>({[ai(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[ai(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&Od(t.default(n));return e.custom?o:$l("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),Nd=Pd;function Id(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 Ld(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!Xe(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function ci(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const ai=(e,t,n)=>e??t??n,Dd=Or({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=Ke(Cs),s=Be(()=>e.route||r.value),o=Ke(ei,0),i=Be(()=>{let u=dt(o);const{matched:a}=s.value;let f;for(;(f=a[u])&&!f.components;)u++;return u}),l=Be(()=>s.value.matched[i.value]);tr(ei,Be(()=>i.value+1)),tr(cd,l),tr(Cs,s);const c=$t();return Sn(()=>[c.value,l.value,e.name],([u,a,f],[h,m,g])=>{a&&(a.instances[f]=u,m&&m!==a&&u&&u===h&&(a.leaveGuards.size||(a.leaveGuards=m.leaveGuards),a.updateGuards.size||(a.updateGuards=m.updateGuards))),u&&a&&(!m||!cn(a,m)||!h)&&(a.enterCallbacks[f]||[]).forEach(b=>b(u))},{flush:"post"}),()=>{const u=s.value,a=e.name,f=l.value,h=f&&f.components[a];if(!h)return ui(n.default,{Component:h,route:u});const m=f.props[a],g=m?m===!0?u.params:typeof m=="function"?m(u):m:null,E=$l(h,se({},g,t,{onVnodeUnmounted:C=>{C.component.isUnmounted&&(f.instances[a]=null)},ref:c}));return ui(n.default,{Component:E,route:u})||E}}});function ui(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const fc=Dd;function Fd(e){const t=Ad(e.routes,e),n=e.parseQuery||id,r=e.stringifyQuery||Zo,s=e.history,o=yn(),i=yn(),l=yn(),c=ma(Rt);let u=Rt;en&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const a=es.bind(null,S=>""+S),f=es.bind(null,$f),h=es.bind(null,Un);function m(S,k){let F,H;return ic(S)?(F=t.getRecordMatcher(S),H=k):H=S,t.addRoute(H,F)}function g(S){const k=t.getRecordMatcher(S);k&&t.removeRoute(k)}function b(){return t.getRoutes().map(S=>S.record)}function E(S){return!!t.getRecordMatcher(S)}function C(S,k){if(k=se({},k||c.value),typeof S=="string"){const y=ts(n,S,k.path),w=t.resolve({path:y.path},k),A=s.createHref(y.fullPath);return se(y,w,{params:h(w.params),hash:Un(y.hash),redirectedFrom:void 0,href:A})}let F;if(S.path!=null)F=se({},S,{path:ts(n,S.path,k.path).path});else{const y=se({},S.params);for(const w in y)y[w]==null&&delete y[w];F=se({},S,{params:f(y)}),k.params=f(k.params)}const H=t.resolve(F,k),te=S.hash||"";H.params=a(h(H.params));const d=Wf(r,se({},S,{hash:jf(te),path:H.path})),p=s.createHref(d);return se({fullPath:d,hash:te,query:r===Zo?ld(S.query):S.query||{}},H,{redirectedFrom:void 0,href:p})}function T(S){return typeof S=="string"?ts(n,S,c.value.path):se({},S)}function N(S,k){if(u!==S)return an(he.NAVIGATION_CANCELLED,{from:k,to:S})}function O(S){return j(S)}function B(S){return O(se(T(S),{replace:!0}))}function G(S,k){const F=S.matched[S.matched.length-1];if(F&&F.redirect){const{redirect:H}=F;let te=typeof H=="function"?H(S,k):H;return typeof te=="string"&&(te=te.includes("?")||te.includes("#")?te=T(te):{path:te},te.params={}),se({query:S.query,hash:S.hash,params:te.path!=null?{}:S.params},te)}}function j(S,k){const F=u=C(S),H=c.value,te=S.state,d=S.force,p=S.replace===!0,y=G(F,H);if(y)return j(se(T(y),{state:typeof y=="object"?se({},te,y.state):te,force:d,replace:p}),k||F);const w=F;w.redirectedFrom=k;let A;return!d&&Gf(r,H,F)&&(A=an(he.NAVIGATION_DUPLICATED,{to:w,from:H}),ye(H,H,!0,!1)),(A?Promise.resolve(A):$(w,H)).catch(v=>mt(v)?mt(v,he.NAVIGATION_GUARD_REDIRECT)?v:Ye(v):Z(v,w,H)).then(v=>{if(v){if(mt(v,he.NAVIGATION_GUARD_REDIRECT))return j(se({replace:p},T(v.to),{state:typeof v.to=="object"?se({},te,v.to.state):te,force:d}),k||w)}else v=L(w,H,!0,p,te);return Y(w,H,v),v})}function U(S,k){const F=N(S,k);return F?Promise.reject(F):Promise.resolve()}function x(S){const k=We.values().next().value;return k&&typeof k.runWithContext=="function"?k.runWithContext(S):S()}function $(S,k){let F;const[H,te,d]=ad(S,k);F=rs(H.reverse(),"beforeRouteLeave",S,k);for(const y of H)y.leaveGuards.forEach(w=>{F.push(It(w,S,k))});const p=U.bind(null,S,k);return F.push(p),Ve(F).then(()=>{F=[];for(const y of o.list())F.push(It(y,S,k));return F.push(p),Ve(F)}).then(()=>{F=rs(te,"beforeRouteUpdate",S,k);for(const y of te)y.updateGuards.forEach(w=>{F.push(It(w,S,k))});return F.push(p),Ve(F)}).then(()=>{F=[];for(const y of d)if(y.beforeEnter)if(Xe(y.beforeEnter))for(const w of y.beforeEnter)F.push(It(w,S,k));else F.push(It(y.beforeEnter,S,k));return F.push(p),Ve(F)}).then(()=>(S.matched.forEach(y=>y.enterCallbacks={}),F=rs(d,"beforeRouteEnter",S,k,x),F.push(p),Ve(F))).then(()=>{F=[];for(const y of i.list())F.push(It(y,S,k));return F.push(p),Ve(F)}).catch(y=>mt(y,he.NAVIGATION_CANCELLED)?y:Promise.reject(y))}function Y(S,k,F){l.list().forEach(H=>x(()=>H(S,k,F)))}function L(S,k,F,H,te){const d=N(S,k);if(d)return d;const p=k===Rt,y=en?history.state:{};F&&(H||p?s.replace(S.fullPath,se({scroll:p&&y&&y.scroll},te)):s.push(S.fullPath,te)),c.value=S,ye(S,k,F,p),Ye()}let Q;function le(){Q||(Q=s.listen((S,k,F)=>{if(!et.listening)return;const H=C(S),te=G(H,et.currentRoute.value);if(te){j(se(te,{replace:!0,force:!0}),H).catch(On);return}u=H;const d=c.value;en&&td(Yo(d.fullPath,F.delta),Fr()),$(H,d).catch(p=>mt(p,he.NAVIGATION_ABORTED|he.NAVIGATION_CANCELLED)?p:mt(p,he.NAVIGATION_GUARD_REDIRECT)?(j(se(T(p.to),{force:!0}),H).then(y=>{mt(y,he.NAVIGATION_ABORTED|he.NAVIGATION_DUPLICATED)&&!F.delta&&F.type===As.pop&&s.go(-1,!1)}).catch(On),Promise.reject()):(F.delta&&s.go(-F.delta,!1),Z(p,H,d))).then(p=>{p=p||L(H,d,!1),p&&(F.delta&&!mt(p,he.NAVIGATION_CANCELLED)?s.go(-F.delta,!1):F.type===As.pop&&mt(p,he.NAVIGATION_ABORTED|he.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),Y(H,d,p)}).catch(On)}))}let we=yn(),ee=yn(),z;function Z(S,k,F){Ye(S);const H=ee.list();return H.length?H.forEach(te=>te(S,k,F)):console.error(S),Promise.reject(S)}function He(){return z&&c.value!==Rt?Promise.resolve():new Promise((S,k)=>{we.add([S,k])})}function Ye(S){return z||(z=!S,le(),we.list().forEach(([k,F])=>S?F(S):k()),we.reset()),S}function ye(S,k,F,H){const{scrollBehavior:te}=e;if(!en||!te)return Promise.resolve();const d=!F&&nd(Yo(S.fullPath,0))||(H||!F)&&history.state&&history.state.scroll||null;return $s().then(()=>te(S,k,d)).then(p=>p&&ed(p)).catch(p=>Z(p,S,k))}const me=S=>s.go(S);let Ze;const We=new Set,et={currentRoute:c,listening:!0,addRoute:m,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:E,getRoutes:b,resolve:C,options:e,push:O,replace:B,go:me,back:()=>me(-1),forward:()=>me(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:ee.add,isReady:He,install(S){S.component("RouterLink",Nd),S.component("RouterView",fc),S.config.globalProperties.$router=et,Object.defineProperty(S.config.globalProperties,"$route",{enumerable:!0,get:()=>dt(c)}),en&&!Ze&&c.value===Rt&&(Ze=!0,O(s.location).catch(H=>{}));const k={};for(const H in Rt)Object.defineProperty(k,H,{get:()=>c.value[H],enumerable:!0});S.provide(Mr,et),S.provide(Qs,el(k)),S.provide(Cs,c);const F=S.unmount;We.add(S),S.unmount=function(){We.delete(S),We.size<1&&(u=Rt,Q&&Q(),Q=null,c.value=Rt,Ze=!1,z=!1),F()}}};function Ve(S){return S.reduce((k,F)=>k.then(()=>x(F)),Promise.resolve())}return et}function Lp(){return Ke(Mr)}function Dp(e){return Ke(Qs)}function dc(e,t){return function(){return e.apply(t,arguments)}}const{toString:Md}=Object.prototype,{getPrototypeOf:Ys}=Object,{iterator:kr,toStringTag:hc}=Symbol,Br=(e=>t=>{const n=Md.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Qe=e=>(e=e.toLowerCase(),t=>Br(t)===e),Ur=e=>t=>typeof t===e,{isArray:dn}=Array,un=Ur("undefined");function Vn(e){return e!==null&&!un(e)&&e.constructor!==null&&!un(e.constructor)&&De(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const pc=Qe("ArrayBuffer");function kd(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&pc(e.buffer),t}const Bd=Ur("string"),De=Ur("function"),mc=Ur("number"),$n=e=>e!==null&&typeof e=="object",Ud=e=>e===!0||e===!1,ir=e=>{if(Br(e)!=="object")return!1;const t=Ys(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(hc in e)&&!(kr in e)},jd=e=>{if(!$n(e)||Vn(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},Hd=Qe("Date"),Vd=Qe("File"),$d=Qe("Blob"),qd=Qe("FileList"),Kd=e=>$n(e)&&De(e.pipe),Wd=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||De(e.append)&&((t=Br(e))==="formdata"||t==="object"&&De(e.toString)&&e.toString()==="[object FormData]"))},Gd=Qe("URLSearchParams"),[zd,Jd,Xd,Qd]=["ReadableStream","Request","Response","Headers"].map(Qe),Yd=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function qn(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),dn(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const Ht=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,yc=e=>!un(e)&&e!==Ht;function xs(){const{caseless:e,skipUndefined:t}=yc(this)&&this||{},n={},r=(s,o)=>{const i=e&&gc(n,o)||o;ir(n[i])&&ir(s)?n[i]=xs(n[i],s):ir(s)?n[i]=xs({},s):dn(s)?n[i]=s.slice():(!t||!un(s))&&(n[i]=s)};for(let s=0,o=arguments.length;s(qn(t,(s,o)=>{n&&De(s)?e[o]=dc(s,n):e[o]=s},{allOwnKeys:r}),e),eh=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),th=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},nh=(e,t,n,r)=>{let s,o,i;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&Ys(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},rh=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},sh=e=>{if(!e)return null;if(dn(e))return e;let t=e.length;if(!mc(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},oh=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Ys(Uint8Array)),ih=(e,t)=>{const r=(e&&e[kr]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},lh=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},ch=Qe("HTMLFormElement"),ah=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),fi=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),uh=Qe("RegExp"),_c=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};qn(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},fh=e=>{_c(e,(t,n)=>{if(De(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(De(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},dh=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return dn(e)?r(e):r(String(e).split(t)),n},hh=()=>{},ph=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function mh(e){return!!(e&&De(e.append)&&e[hc]==="FormData"&&e[kr])}const gh=e=>{const t=new Array(10),n=(r,s)=>{if($n(r)){if(t.indexOf(r)>=0)return;if(Vn(r))return r;if(!("toJSON"in r)){t[s]=r;const o=dn(r)?[]:{};return qn(r,(i,l)=>{const c=n(i,s+1);!un(c)&&(o[l]=c)}),t[s]=void 0,o}}return r};return n(e,0)},yh=Qe("AsyncFunction"),_h=e=>e&&($n(e)||De(e))&&De(e.then)&&De(e.catch),bc=((e,t)=>e?setImmediate:t?((n,r)=>(Ht.addEventListener("message",({source:s,data:o})=>{s===Ht&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),Ht.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",De(Ht.postMessage)),bh=typeof queueMicrotask<"u"?queueMicrotask.bind(Ht):typeof process<"u"&&process.nextTick||bc,Eh=e=>e!=null&&De(e[kr]),_={isArray:dn,isArrayBuffer:pc,isBuffer:Vn,isFormData:Wd,isArrayBufferView:kd,isString:Bd,isNumber:mc,isBoolean:Ud,isObject:$n,isPlainObject:ir,isEmptyObject:jd,isReadableStream:zd,isRequest:Jd,isResponse:Xd,isHeaders:Qd,isUndefined:un,isDate:Hd,isFile:Vd,isBlob:$d,isRegExp:uh,isFunction:De,isStream:Kd,isURLSearchParams:Gd,isTypedArray:oh,isFileList:qd,forEach:qn,merge:xs,extend:Zd,trim:Yd,stripBOM:eh,inherits:th,toFlatObject:nh,kindOf:Br,kindOfTest:Qe,endsWith:rh,toArray:sh,forEachEntry:ih,matchAll:lh,isHTMLForm:ch,hasOwnProperty:fi,hasOwnProp:fi,reduceDescriptors:_c,freezeMethods:fh,toObjectSet:dh,toCamelCase:ah,noop:hh,toFiniteNumber:ph,findKey:gc,global:Ht,isContextDefined:yc,isSpecCompliantForm:mh,toJSONObject:gh,isAsyncFn:yh,isThenable:_h,setImmediate:bc,asap:bh,isIterable:Eh};function X(e,t,n,r,s){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),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}_.inherits(X,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:_.toJSONObject(this.config),code:this.code,status:this.status}}});const Ec=X.prototype,wc={};["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=>{wc[e]={value:e}});Object.defineProperties(X,wc);Object.defineProperty(Ec,"isAxiosError",{value:!0});X.from=(e,t,n,r,s,o)=>{const i=Object.create(Ec);_.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 X.call(i,l,c,n,r,s),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 wh=null;function Ts(e){return _.isPlainObject(e)||_.isArray(e)}function vc(e){return _.endsWith(e,"[]")?e.slice(0,-2):e}function di(e,t,n){return e?e.concat(t).map(function(s,o){return s=vc(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function vh(e){return _.isArray(e)&&!e.some(Ts)}const Sh=_.toFlatObject(_,{},null,function(t){return/^is[A-Z]/.test(t)});function jr(e,t,n){if(!_.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=_.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(b,E){return!_.isUndefined(E[b])});const r=n.metaTokens,s=n.visitor||a,o=n.dots,i=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&_.isSpecCompliantForm(t);if(!_.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(_.isDate(g))return g.toISOString();if(_.isBoolean(g))return g.toString();if(!c&&_.isBlob(g))throw new X("Blob is not supported. Use a Buffer instead.");return _.isArrayBuffer(g)||_.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function a(g,b,E){let C=g;if(g&&!E&&typeof g=="object"){if(_.endsWith(b,"{}"))b=r?b:b.slice(0,-2),g=JSON.stringify(g);else if(_.isArray(g)&&vh(g)||(_.isFileList(g)||_.endsWith(b,"[]"))&&(C=_.toArray(g)))return b=vc(b),C.forEach(function(N,O){!(_.isUndefined(N)||N===null)&&t.append(i===!0?di([b],O,o):i===null?b:b+"[]",u(N))}),!1}return Ts(g)?!0:(t.append(di(E,b,o),u(g)),!1)}const f=[],h=Object.assign(Sh,{defaultVisitor:a,convertValue:u,isVisitable:Ts});function m(g,b){if(!_.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+b.join("."));f.push(g),_.forEach(g,function(C,T){(!(_.isUndefined(C)||C===null)&&s.call(t,C,_.isString(T)?T.trim():T,b,h))===!0&&m(C,b?b.concat(T):[T])}),f.pop()}}if(!_.isObject(e))throw new TypeError("data must be an object");return m(e),t}function hi(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Zs(e,t){this._pairs=[],e&&jr(e,this,t)}const Sc=Zs.prototype;Sc.append=function(t,n){this._pairs.push([t,n])};Sc.toString=function(t){const n=t?function(r){return t.call(this,r,hi)}:hi;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Ah(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Ac(e,t,n){if(!t)return e;const r=n&&n.encode||Ah;_.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=_.isURLSearchParams(t)?t.toString():new Zs(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class pi{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){_.forEach(this.handlers,function(r){r!==null&&t(r)})}}const Rc={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Rh=typeof URLSearchParams<"u"?URLSearchParams:Zs,Ch=typeof FormData<"u"?FormData:null,xh=typeof Blob<"u"?Blob:null,Th={isBrowser:!0,classes:{URLSearchParams:Rh,FormData:Ch,Blob:xh},protocols:["http","https","file","blob","url","data"]},eo=typeof window<"u"&&typeof document<"u",Os=typeof navigator=="object"&&navigator||void 0,Oh=eo&&(!Os||["ReactNative","NativeScript","NS"].indexOf(Os.product)<0),Ph=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Nh=eo&&window.location.href||"http://localhost",Ih=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:eo,hasStandardBrowserEnv:Oh,hasStandardBrowserWebWorkerEnv:Ph,navigator:Os,origin:Nh},Symbol.toStringTag,{value:"Module"})),Re={...Ih,...Th};function Lh(e,t){return jr(e,new Re.classes.URLSearchParams,{visitor:function(n,r,s,o){return Re.isNode&&_.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function Dh(e){return _.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Fh(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&_.isArray(s)?s.length:i,c?(_.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!l):((!s[i]||!_.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&_.isArray(s[i])&&(s[i]=Fh(s[i])),!l)}if(_.isFormData(e)&&_.isFunction(e.entries)){const n={};return _.forEachEntry(e,(r,s)=>{t(Dh(r),s,n,0)}),n}return null}function Mh(e,t,n){if(_.isString(e))try{return(t||JSON.parse)(e),_.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Kn={transitional:Rc,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=_.isObject(t);if(o&&_.isHTMLForm(t)&&(t=new FormData(t)),_.isFormData(t))return s?JSON.stringify(Cc(t)):t;if(_.isArrayBuffer(t)||_.isBuffer(t)||_.isStream(t)||_.isFile(t)||_.isBlob(t)||_.isReadableStream(t))return t;if(_.isArrayBufferView(t))return t.buffer;if(_.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return Lh(t,this.formSerializer).toString();if((l=_.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return jr(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),Mh(t)):t}],transformResponse:[function(t){const n=this.transitional||Kn.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(_.isResponse(t)||_.isReadableStream(t))return t;if(t&&_.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(i)throw l.name==="SyntaxError"?X.from(l,X.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:Re.classes.FormData,Blob:Re.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};_.forEach(["delete","get","head","post","put","patch"],e=>{Kn.headers[e]={}});const kh=_.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"]),Bh=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&kh[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},mi=Symbol("internals");function _n(e){return e&&String(e).trim().toLowerCase()}function lr(e){return e===!1||e==null?e:_.isArray(e)?e.map(lr):String(e)}function Uh(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const jh=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function ss(e,t,n,r,s){if(_.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!_.isString(t)){if(_.isString(r))return t.indexOf(r)!==-1;if(_.isRegExp(r))return r.test(t)}}function Hh(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Vh(e,t){const n=_.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let Fe=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(l,c,u){const a=_n(c);if(!a)throw new Error("header name must be a non-empty string");const f=_.findKey(s,a);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||c]=lr(l))}const i=(l,c)=>_.forEach(l,(u,a)=>o(u,a,c));if(_.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(_.isString(t)&&(t=t.trim())&&!jh(t))i(Bh(t),n);else if(_.isObject(t)&&_.isIterable(t)){let l={},c,u;for(const a of t){if(!_.isArray(a))throw TypeError("Object iterator must return a key-value pair");l[u=a[0]]=(c=l[u])?_.isArray(c)?[...c,a[1]]:[c,a[1]]:a[1]}i(l,n)}else t!=null&&o(n,t,r);return this}get(t,n){if(t=_n(t),t){const r=_.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return Uh(s);if(_.isFunction(n))return n.call(this,s,r);if(_.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=_n(t),t){const r=_.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||ss(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=_n(i),i){const l=_.findKey(r,i);l&&(!n||ss(r,r[l],l,n))&&(delete r[l],s=!0)}}return _.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||ss(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return _.forEach(this,(s,o)=>{const i=_.findKey(r,o);if(i){n[i]=lr(s),delete n[o];return}const l=t?Hh(o):String(o).trim();l!==o&&delete n[o],n[l]=lr(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return _.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&_.isArray(r)?r.join(", "):r)}),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 r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[mi]=this[mi]={accessors:{}}).accessors,s=this.prototype;function o(i){const l=_n(i);r[l]||(Vh(s,i),r[l]=!0)}return _.isArray(t)?t.forEach(o):o(t),this}};Fe.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);_.reduceDescriptors(Fe.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});_.freezeMethods(Fe);function os(e,t){const n=this||Kn,r=t||n,s=Fe.from(r.headers);let o=r.data;return _.forEach(e,function(l){o=l.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function xc(e){return!!(e&&e.__CANCEL__)}function hn(e,t,n){X.call(this,e??"canceled",X.ERR_CANCELED,t,n),this.name="CanceledError"}_.inherits(hn,X,{__CANCEL__:!0});function Tc(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new X("Request failed with status code "+n.status,[X.ERR_BAD_REQUEST,X.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function $h(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function qh(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),a=r[o];i||(i=u),n[s]=c,r[s]=u;let f=o,h=0;for(;f!==s;)h+=n[f++],f=f%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i{n=a,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const a=Date.now(),f=a-n;f>=r?i(u,a):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-f)))},()=>s&&i(s)]}const br=(e,t,n=3)=>{let r=0;const s=qh(50,250);return Kh(o=>{const i=o.loaded,l=o.lengthComputable?o.total:void 0,c=i-r,u=s(c),a=i<=l;r=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)},gi=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},yi=e=>(...t)=>_.asap(()=>e(...t)),Wh=Re.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Re.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Re.origin),Re.navigator&&/(msie|trident)/i.test(Re.navigator.userAgent)):()=>!0,Gh=Re.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];_.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),_.isString(r)&&l.push(`path=${r}`),_.isString(s)&&l.push(`domain=${s}`),o===!0&&l.push("secure"),_.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 zh(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function Jh(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Oc(e,t,n){let r=!zh(t);return e&&(r||n==!1)?Jh(e,t):t}const _i=e=>e instanceof Fe?{...e}:e;function Gt(e,t){t=t||{};const n={};function r(u,a,f,h){return _.isPlainObject(u)&&_.isPlainObject(a)?_.merge.call({caseless:h},u,a):_.isPlainObject(a)?_.merge({},a):_.isArray(a)?a.slice():a}function s(u,a,f,h){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u,f,h)}else return r(u,a,f,h)}function o(u,a){if(!_.isUndefined(a))return r(void 0,a)}function i(u,a){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u)}else return r(void 0,a)}function l(u,a,f){if(f in t)return r(u,a);if(f in e)return r(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)=>s(_i(u),_i(a),f,!0)};return _.forEach(Object.keys({...e,...t}),function(a){const f=c[a]||s,h=f(e[a],t[a],a);_.isUndefined(h)&&f!==l||(n[a]=h)}),n}const Pc=e=>{const t=Gt({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:l}=t;if(t.headers=i=Fe.from(i),t.url=Ac(Oc(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&i.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),_.isFormData(n)){if(Re.hasStandardBrowserEnv||Re.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(_.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(Re.hasStandardBrowserEnv&&(r&&_.isFunction(r)&&(r=r(t)),r||r!==!1&&Wh(t.url))){const c=s&&o&&Gh.read(o);c&&i.set(s,c)}return t},Xh=typeof XMLHttpRequest<"u",Qh=Xh&&function(e){return new Promise(function(n,r){const s=Pc(e);let o=s.data;const i=Fe.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,a,f,h,m,g;function b(){m&&m(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(a),s.signal&&s.signal.removeEventListener("abort",a)}let E=new XMLHttpRequest;E.open(s.method.toUpperCase(),s.url,!0),E.timeout=s.timeout;function C(){if(!E)return;const N=Fe.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),B={data:!l||l==="text"||l==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:N,config:e,request:E};Tc(function(j){n(j),b()},function(j){r(j),b()},B),E=null}"onloadend"in E?E.onloadend=C:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.indexOf("file:")===0)||setTimeout(C)},E.onabort=function(){E&&(r(new X("Request aborted",X.ECONNABORTED,e,E)),E=null)},E.onerror=function(O){const B=O&&O.message?O.message:"Network Error",G=new X(B,X.ERR_NETWORK,e,E);G.event=O||null,r(G),E=null},E.ontimeout=function(){let O=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const B=s.transitional||Rc;s.timeoutErrorMessage&&(O=s.timeoutErrorMessage),r(new X(O,B.clarifyTimeoutError?X.ETIMEDOUT:X.ECONNABORTED,e,E)),E=null},o===void 0&&i.setContentType(null),"setRequestHeader"in E&&_.forEach(i.toJSON(),function(O,B){E.setRequestHeader(B,O)}),_.isUndefined(s.withCredentials)||(E.withCredentials=!!s.withCredentials),l&&l!=="json"&&(E.responseType=s.responseType),u&&([h,g]=br(u,!0),E.addEventListener("progress",h)),c&&E.upload&&([f,m]=br(c),E.upload.addEventListener("progress",f),E.upload.addEventListener("loadend",m)),(s.cancelToken||s.signal)&&(a=N=>{E&&(r(!N||N.type?new hn(null,e,E):N),E.abort(),E=null)},s.cancelToken&&s.cancelToken.subscribe(a),s.signal&&(s.signal.aborted?a():s.signal.addEventListener("abort",a)));const T=$h(s.url);if(T&&Re.protocols.indexOf(T)===-1){r(new X("Unsupported protocol "+T+":",X.ERR_BAD_REQUEST,e));return}E.send(o||null)})},Yh=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,l();const a=u instanceof Error?u:this.reason;r.abort(a instanceof X?a:new hn(a instanceof Error?a.message:a))}};let i=t&&setTimeout(()=>{i=null,o(new X(`timeout ${t} of ms exceeded`,X.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}=r;return c.unsubscribe=()=>_.asap(l),c}},Zh=function*(e,t){let n=e.byteLength;if(n{const s=ep(e,t);let o=0,i,l=c=>{i||(i=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:a}=await s.next();if(u){l(),c.close();return}let f=a.byteLength;if(n){let h=o+=f;n(h)}c.enqueue(new Uint8Array(a))}catch(u){throw l(u),u}},cancel(c){return l(c),s.return()}},{highWaterMark:2})},Ei=64*1024,{isFunction:Qn}=_,np=(({Request:e,Response:t})=>({Request:e,Response:t}))(_.global),{ReadableStream:wi,TextEncoder:vi}=_.global,Si=(e,...t)=>{try{return!!e(...t)}catch{return!1}},rp=e=>{e=_.merge.call({skipUndefined:!0},np,e);const{fetch:t,Request:n,Response:r}=e,s=t?Qn(t):typeof fetch=="function",o=Qn(n),i=Qn(r);if(!s)return!1;const l=s&&Qn(wi),c=s&&(typeof vi=="function"?(g=>b=>g.encode(b))(new vi):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=o&&l&&Si(()=>{let g=!1;const b=new n(Re.origin,{body:new wi,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!b}),a=i&&l&&Si(()=>_.isReadableStream(new r("").body)),f={stream:a&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(b,E)=>{let C=b&&b[g];if(C)return C.call(b);throw new X(`Response type '${g}' is not supported`,X.ERR_NOT_SUPPORT,E)})});const h=async g=>{if(g==null)return 0;if(_.isBlob(g))return g.size;if(_.isSpecCompliantForm(g))return(await new n(Re.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(_.isArrayBufferView(g)||_.isArrayBuffer(g))return g.byteLength;if(_.isURLSearchParams(g)&&(g=g+""),_.isString(g))return(await c(g)).byteLength},m=async(g,b)=>{const E=_.toFiniteNumber(g.getContentLength());return E??h(b)};return async g=>{let{url:b,method:E,data:C,signal:T,cancelToken:N,timeout:O,onDownloadProgress:B,onUploadProgress:G,responseType:j,headers:U,withCredentials:x="same-origin",fetchOptions:$}=Pc(g),Y=t||fetch;j=j?(j+"").toLowerCase():"text";let L=Yh([T,N&&N.toAbortSignal()],O),Q=null;const le=L&&L.unsubscribe&&(()=>{L.unsubscribe()});let we;try{if(G&&u&&E!=="get"&&E!=="head"&&(we=await m(U,C))!==0){let ye=new n(b,{method:"POST",body:C,duplex:"half"}),me;if(_.isFormData(C)&&(me=ye.headers.get("content-type"))&&U.setContentType(me),ye.body){const[Ze,We]=gi(we,br(yi(G)));C=bi(ye.body,Ei,Ze,We)}}_.isString(x)||(x=x?"include":"omit");const ee=o&&"credentials"in n.prototype,z={...$,signal:L,method:E.toUpperCase(),headers:U.normalize().toJSON(),body:C,duplex:"half",credentials:ee?x:void 0};Q=o&&new n(b,z);let Z=await(o?Y(Q,$):Y(b,z));const He=a&&(j==="stream"||j==="response");if(a&&(B||He&&le)){const ye={};["status","statusText","headers"].forEach(et=>{ye[et]=Z[et]});const me=_.toFiniteNumber(Z.headers.get("content-length")),[Ze,We]=B&&gi(me,br(yi(B),!0))||[];Z=new r(bi(Z.body,Ei,Ze,()=>{We&&We(),le&&le()}),ye)}j=j||"text";let Ye=await f[_.findKey(f,j)||"text"](Z,g);return!He&&le&&le(),await new Promise((ye,me)=>{Tc(ye,me,{data:Ye,headers:Fe.from(Z.headers),status:Z.status,statusText:Z.statusText,config:g,request:Q})})}catch(ee){throw le&&le(),ee&&ee.name==="TypeError"&&/Load failed|fetch/i.test(ee.message)?Object.assign(new X("Network Error",X.ERR_NETWORK,g,Q),{cause:ee.cause||ee}):X.from(ee,ee&&ee.code,g,Q)}}},sp=new Map,Nc=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,l=i,c,u,a=sp;for(;l--;)c=o[l],u=a.get(c),u===void 0&&a.set(c,u=l?new Map:rp(t)),a=u;return u};Nc();const to={http:wh,xhr:Qh,fetch:{get:Nc}};_.forEach(to,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Ai=e=>`- ${e}`,op=e=>_.isFunction(e)||e===null||e===!1;function ip(e,t){e=_.isArray(e)?e:[e];const{length:n}=e;let r,s;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(Ai).join(` +`):" "+Ai(i[0]):"as no adapter specified";throw new X("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const Ic={getAdapter:ip,adapters:to};function is(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new hn(null,e)}function Ri(e){return is(e),e.headers=Fe.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),Ic.getAdapter(e.adapter||Kn.adapter,e)(e).then(function(r){return is(e),r.data=os.call(e,e.transformResponse,r),r.headers=Fe.from(r.headers),r},function(r){return xc(r)||(is(e),r&&r.response&&(r.response.data=os.call(e,e.transformResponse,r.response),r.response.headers=Fe.from(r.response.headers))),Promise.reject(r)})}const Lc="1.13.2",Hr={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Hr[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const Ci={};Hr.transitional=function(t,n,r){function s(o,i){return"[Axios v"+Lc+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,l)=>{if(t===!1)throw new X(s(i," has been removed"+(n?" in "+n:"")),X.ERR_DEPRECATED);return n&&!Ci[i]&&(Ci[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,l):!0}};Hr.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function lp(e,t,n){if(typeof e!="object")throw new X("options must be an object",X.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const l=e[o],c=l===void 0||i(l,o,e);if(c!==!0)throw new X("option "+o+" must be "+c,X.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new X("Unknown option "+o,X.ERR_BAD_OPTION)}}const cr={assertOptions:lp,validators:Hr},it=cr.validators;let Kt=class{constructor(t){this.defaults=t||{},this.interceptors={request:new pi,response:new pi}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Gt(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&cr.assertOptions(r,{silentJSONParsing:it.transitional(it.boolean),forcedJSONParsing:it.transitional(it.boolean),clarifyTimeoutError:it.transitional(it.boolean)},!1),s!=null&&(_.isFunction(s)?n.paramsSerializer={serialize:s}:cr.assertOptions(s,{encode:it.function,serialize:it.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),cr.assertOptions(n,{baseUrl:it.spelling("baseURL"),withXsrfToken:it.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&_.merge(o.common,o[n.method]);o&&_.forEach(["delete","get","head","post","put","patch","common"],g=>{delete o[g]}),n.headers=Fe.concat(i,o);const l=[];let c=!0;this.interceptors.request.forEach(function(b){typeof b.runWhen=="function"&&b.runWhen(n)===!1||(c=c&&b.synchronous,l.unshift(b.fulfilled,b.rejected))});const u=[];this.interceptors.response.forEach(function(b){u.push(b.fulfilled,b.rejected)});let a,f=0,h;if(!c){const g=[Ri.bind(this),void 0];for(g.unshift(...l),g.push(...u),h=g.length,a=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(l=>{r.subscribe(l),o=l}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,l){r.reason||(r.reason=new hn(o,i,l),n(r.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=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new Dc(function(s){t=s}),cancel:t}}};function ap(e){return function(n){return e.apply(null,n)}}function up(e){return _.isObject(e)&&e.isAxiosError===!0}const Ps={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(Ps).forEach(([e,t])=>{Ps[t]=e});function Fc(e){const t=new Kt(e),n=dc(Kt.prototype.request,t);return _.extend(n,Kt.prototype,t,{allOwnKeys:!0}),_.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return Fc(Gt(e,s))},n}const ge=Fc(Kn);ge.Axios=Kt;ge.CanceledError=hn;ge.CancelToken=cp;ge.isCancel=xc;ge.VERSION=Lc;ge.toFormData=jr;ge.AxiosError=X;ge.Cancel=ge.CanceledError;ge.all=function(t){return Promise.all(t)};ge.spread=ap;ge.isAxiosError=up;ge.mergeConfig=Gt;ge.AxiosHeaders=Fe;ge.formToJSON=e=>Cc(_.isHTMLForm(e)?new FormData(e):e);ge.getAdapter=Ic.getAdapter;ge.HttpStatusCode=Ps;ge.default=ge;const{Axios:kp,AxiosError:Bp,CanceledError:Up,isCancel:jp,CancelToken:Hp,VERSION:Vp,all:$p,Cancel:qp,isAxiosError:Kp,spread:Wp,toFormData:Gp,AxiosHeaders:zp,HttpStatusCode:Jp,formToJSON:Xp,getAdapter:Qp,mergeConfig:Yp}=ge,Pn=ge.create({baseURL:"",timeout:3e4,withCredentials:!0});Pn.interceptors.request.use(e=>e,e=>Promise.reject(e));Pn.interceptors.response.use(e=>e.data,e=>{e.response?.status===401&&(window.location.hash="#/login");const t=e.response?.data?e.response.data.detail||e.response.data.message:e.message;return Promise.reject(new Error(t||"请求失败"))});const Yn={login:e=>{const t=new URLSearchParams;return t.append("admin_key",e.password),Pn.post("/login",t,{headers:{"Content-Type":"application/x-www-form-urlencoded"}})},logout:()=>Pn.post("/logout"),checkAuth:()=>Pn.get("/admin/health")},fp=xf("auth",()=>{const e=$t(!1),t=$t(!1),n=$t(0),r=1e4;let s=null;async function o(c){t.value=!0;try{return await Yn.login({password:c}),await Yn.checkAuth(),e.value=!0,n.value=Date.now(),!0}catch(u){throw e.value=!1,u}finally{t.value=!1}}async function i(){try{await Yn.logout()}finally{e.value=!1,n.value=0}}async function l(){const c=Date.now();if(e.value&&c-n.value(await Yn.checkAuth(),e.value=!0,!0))(),await s}catch{return e.value=!1,!1}finally{n.value=Date.now(),s=null}}return{isLoggedIn:e,isLoading:t,login:o,logout:i,checkAuth:l}}),Mc=Fd({history:pd("/"),routes:[{path:"/public/uptime",name:"public-uptime",component:()=>ot(()=>import("./PublicUptime-BbcdsmiG.js"),__vite__mapDeps([0,1])),meta:{requiresAuth:!1}},{path:"/public/logs",name:"public-logs",component:()=>ot(()=>import("./PublicLogs-BTHqHSMr.js"),[]),meta:{requiresAuth:!1}},{path:"/login",name:"login",component:()=>ot(()=>import("./Login-C5mFe4VZ.js"),__vite__mapDeps([2,3])),meta:{requiresAuth:!1}},{path:"/",component:()=>ot(()=>import("./AppShell-Dz-ViePQ.js"),__vite__mapDeps([4,5,6,7])),meta:{requiresAuth:!0},children:[{path:"",name:"dashboard",component:()=>ot(()=>import("./Dashboard-DYON8fDZ.js"),__vite__mapDeps([8,9]))},{path:"accounts",name:"accounts",component:()=>ot(()=>import("./Accounts-rG9Hbj71.js"),__vite__mapDeps([10,11,3,6,7,9]))},{path:"settings",name:"settings",component:()=>ot(()=>import("./Settings-CxdyQWMh.js"),__vite__mapDeps([12,5,11,3,9]))},{path:"logs",name:"logs",component:()=>ot(()=>import("./Logs-Cvle7lXJ.js"),__vite__mapDeps([13,11,6]))},{path:"monitor",name:"monitor",component:()=>ot(()=>import("./Monitor--IyXttaS.js"),__vite__mapDeps([14,1]))},{path:"docs",name:"docs",component:()=>ot(()=>import("./Docs-C8WEJJNJ.js"),[])}]}]});Mc.beforeEach(async e=>{const t=fp();if(e.meta.requiresAuth&&!await t.checkAuth())return{name:"login"};if(e.name==="login"&&t.isLoggedIn)return{name:"dashboard"}});const Er=fn({toasts:[]});let dp=0;const Zn=e=>{const t=`toast-${++dp}`,n=e.duration??3e3,r={id:t,type:e.type,title:e.title,message:e.message,duration:n};return Er.toasts.push(r),n>0&&setTimeout(()=>{kc(t)},n),t},kc=e=>{const t=Er.toasts.findIndex(n=>n.id===e);t>-1&&Er.toasts.splice(t,1)},Zp=()=>({success:(e,t,n)=>Zn({type:"success",message:e,title:t,duration:n}),error:(e,t,n)=>Zn({type:"error",message:e,title:t,duration:n}),warning:(e,t,n)=>Zn({type:"warning",message:e,title:t,duration:n}),info:(e,t,n)=>Zn({type:"info",message:e,title:t,duration:n})}),hp={class:"fixed right-4 top-4 z-[200] flex flex-col gap-2"},pp={class:"flex-shrink-0"},mp={key:0,class:"h-5 w-5 text-emerald-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},gp={key:1,class:"h-5 w-5 text-rose-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},yp={key:2,class:"h-5 w-5 text-amber-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},_p={key:3,class:"h-5 w-5 text-sky-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},bp={class:"flex-1"},Ep={key:0,class:"text-sm font-medium text-foreground"},wp=["onClick"],vp=Or({__name:"Toast",setup(e){const t=Er.toasts,n=r=>{switch(r){case"success":return"border-emerald-200 bg-emerald-50";case"error":return"border-rose-200 bg-rose-50";case"warning":return"border-amber-200 bg-amber-50";default:return"border-sky-200 bg-sky-50"}};return(r,s)=>(qe(),gr(Fa,{to:"body"},[ke("div",hp,[be(cf,{name:"toast"},{default:al(()=>[(qe(!0),Ct(ve,null,Ja(dt(t),o=>(qe(),Ct("div",{key:o.id,class:Nn(["flex min-w-[320px] items-start gap-3 rounded-2xl border border-border bg-card px-4 py-3 shadow-lg",n(o.type)])},[ke("div",pp,[o.type==="success"?(qe(),Ct("svg",mp,[...s[0]||(s[0]=[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"},null,-1)])])):o.type==="error"?(qe(),Ct("svg",gp,[...s[1]||(s[1]=[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"},null,-1)])])):o.type==="warning"?(qe(),Ct("svg",yp,[...s[2]||(s[2]=[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"},null,-1)])])):(qe(),Ct("svg",_p,[...s[3]||(s[3]=[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"},null,-1)])]))]),ke("div",bp,[o.title?(qe(),Ct("p",Ep,ls(o.title),1)):Cu("",!0),ke("p",{class:Nn(["text-sm text-muted-foreground",{"mt-1":o.title}])},ls(o.message),3)]),ke("button",{class:"flex-shrink-0 text-muted-foreground transition-colors hover:text-foreground",onClick:i=>dt(kc)(o.id)},[...s[4]||(s[4]=[ke("svg",{class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])],8,wp)],2))),128))]),_:1})])]))}}),Sp=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},Ap=Sp(vp,[["__scopeId","data-v-cdd21b3c"]]),Rp=Or({__name:"App",setup(e){return(t,n)=>(qe(),Ct(ve,null,[be(dt(fc)),be(Ap)],64))}}),no=_f(Rp),Cp=wf();no.use(Cp);no.use(Mc);no.mount("#app");export{Op as A,fc as B,xf as C,Ip as D,Zp as E,ve as F,$s as G,Tp as H,fn as I,Nd as R,Fa as T,ke as a,Cu as b,Ct as c,Or as d,qe as e,Ru as f,Pn as g,$t as h,Be as i,wl as j,Fs as k,fp as l,gr as m,Nn as n,bl as o,be as p,xp as q,Ja as r,al as s,ls as t,dt as u,Pp as v,Np as w,Lp as x,Dp as y,Sn as z}; diff --git a/static/assets/index-CWOdPlPE.css b/static/assets/index-CWOdPlPE.css new file mode 100644 index 0000000000000000000000000000000000000000..53dbeb638f99ba2c8255daad97ff8701cd648ff9 --- /dev/null +++ b/static/assets/index-CWOdPlPE.css @@ -0,0 +1 @@ +@import"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=Noto+Serif+SC:wght@600;700&display=swap";*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 97%;--foreground: 0 0% 10%;--card: 0 0% 100%;--card-foreground: 0 0% 10%;--primary: 0 0% 10%;--primary-foreground: 0 0% 100%;--secondary: 0 0% 92%;--secondary-foreground: 0 0% 10%;--muted: 0 0% 92%;--muted-foreground: 0 0% 40%;--accent: 0 0% 90%;--accent-foreground: 0 0% 10%;--destructive: 0 70% 45%;--destructive-foreground: 0 0% 100%;--border: 0 0% 86%;--input: 0 0% 86%;--ring: 0 0% 10%;--radius: 1rem}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:Noto Sans SC,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;overflow-x:hidden;background-image:radial-gradient(900px circle at 10% -20%,rgba(0,0,0,.04),transparent 45%),radial-gradient(700px circle at 90% 0%,rgba(0,0,0,.05),transparent 40%),linear-gradient(180deg,hsl(var(--background)) 0% 100%)}body:before{content:"";position:fixed;inset:0;background-image:linear-gradient(120deg,#ffffff8c,#fff0);opacity:.5;pointer-events:none;z-index:-1}h1,h2,h3{font-family:"Noto Serif SC",Georgia,serif;letter-spacing:-.01em}#app{min-height:100vh}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-y-0{top:0;bottom:0}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.top-full{top:100%}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[9999\]{z-index:9999}.col-span-2{grid-column:span 2 / span 2}.mx-auto{margin-left:auto;margin-right:auto}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-auto{margin-left:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0{height:0px}.h-10{height:2.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-full{height:100%}.max-h-\[60vh\]{max-height:60vh}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-10{width:2.5rem}.w-20{width:5rem}.w-24{width:6rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-44{width:11rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[200px\]{min-width:200px}.min-w-full{min-width:100%}.max-w-3xl{max-width:48rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-visible{overflow-y:visible}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[2\.5rem\]{border-radius:2.5rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-x-4{border-left-width:4px;border-right-width:4px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-4{border-top-width:4px}.border-border{border-color:hsl(var(--border))}.border-destructive\/30{border-color:hsl(var(--destructive) / .3)}.border-input{border-color:hsl(var(--input))}.border-primary-foreground\/40{border-color:hsl(var(--primary-foreground) / .4)}.border-x-transparent{border-left-color:transparent;border-right-color:transparent}.border-t-foreground{border-top-color:hsl(var(--foreground))}.bg-accent{background-color:hsl(var(--accent))}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-200{--tw-bg-opacity: 1;background-color:rgb(253 230 138 / var(--tw-bg-opacity, 1))}.bg-amber-300{--tw-bg-opacity: 1;background-color:rgb(252 211 77 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/20{background-color:#0003}.bg-black\/30{background-color:#0000004d}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-card{background-color:hsl(var(--card))}.bg-card\/70{background-color:hsl(var(--card) / .7)}.bg-card\/90{background-color:hsl(var(--card) / .9)}.bg-cyan-100{--tw-bg-opacity: 1;background-color:rgb(207 250 254 / var(--tw-bg-opacity, 1))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/70{background-color:hsl(var(--muted) / .7)}.bg-primary{background-color:hsl(var(--primary))}.bg-primary-foreground\/15{background-color:hsl(var(--primary-foreground) / .15)}.bg-rose-100{--tw-bg-opacity: 1;background-color:rgb(255 228 230 / var(--tw-bg-opacity, 1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/30{background-color:hsl(var(--secondary) / .3)}.bg-secondary\/40{background-color:hsl(var(--secondary) / .4)}.bg-secondary\/50{background-color:hsl(var(--secondary) / .5)}.bg-secondary\/60{background-color:hsl(var(--secondary) / .6)}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-violet-100{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.object-contain{-o-object-fit:contain;object-fit:contain}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-10{padding-bottom:2.5rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pr-1{padding-right:.25rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.tracking-\[0\.12em\]{letter-spacing:.12em}.tracking-\[0\.28em\]{letter-spacing:.28em}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-\[0\.3em\]{letter-spacing:.3em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-background{color:hsl(var(--background))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-cyan-700{--tw-text-opacity: 1;color:rgb(14 116 144 / var(--tw-text-opacity, 1))}.text-destructive{color:hsl(var(--destructive))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-green-200{--tw-text-opacity: 1;color:rgb(187 247 208 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-violet-700{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.opacity-0{opacity:0}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-black\/10{--tw-shadow-color: rgb(0 0 0 / .1);--tw-shadow: var(--tw-shadow-colored)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-\[transform\]{will-change:transform}html{scrollbar-gutter:stable}*{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.35) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:#00000059;border-radius:999px;border:2px solid transparent;background-clip:content-box}.scrollbar-slim::-webkit-scrollbar{width:6px;height:6px}.scrollbar-slim::-webkit-scrollbar-thumb{background-color:#0006}.cv-auto{content-visibility:auto;contain-intrinsic-size:0 44px}.monitor-badge--up{background:#d1fae5;color:#065f46}.monitor-badge--warn{background:#fef3c7;color:#b45309}.monitor-badge--down{background:#fee2e2;color:#991b1b}.monitor-badge--unknown{background:#f3f4f6;color:#6b7280}.monitor-card{border-radius:16px;padding:0;background:hsl(var(--card));box-shadow:none}.monitor-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.monitor-card__name{font-size:14px;font-weight:600;color:hsl(var(--foreground))}.monitor-card__badge{padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600}.monitor-card__stats{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:hsl(var(--muted-foreground));margin-bottom:12px}.monitor-card__value{margin-left:4px;color:hsl(var(--foreground));font-weight:600}.monitor-card__beats{display:flex;gap:2px;height:24px;align-items:flex-end}.monitor-beat{flex:1;min-width:4px;max-width:8px;border-radius:2px;transition:all .2s;position:relative}.monitor-beat:hover{opacity:.8;transform:scaleY(1.1)}.monitor-beat--up{background:#34c759;height:100%}.monitor-beat--warn,.monitor-beat--slow{background:#f5c15b;height:100%}.monitor-beat--down{background:#ff3b30;height:100%}.monitor-beat--empty{background:#e5e5ea;height:40%}.monitor-beat__tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#1d1d1f;color:#fff;padding:6px 10px;border-radius:6px;font-size:11px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;margin-bottom:6px;z-index:10}.monitor-beat__tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#1d1d1f}.monitor-beat:hover .monitor-beat__tooltip{opacity:1}.help-dot{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:999px;border:1px solid hsl(var(--border));font-size:10px;line-height:1;color:hsl(var(--muted-foreground));cursor:default}@media(max-width:768px){.monitor-beat{min-width:3px;max-width:6px}}@media(min-width:1024px){.dashboard-split{flex-direction:row;flex-wrap:nowrap}.dashboard-split .dashboard-main{flex:0 0 66.6667%;max-width:66.6667%}.dashboard-split .dashboard-side{flex:0 0 33.3333%;max-width:33.3333%}}@keyframes logo-float{0%{transform:translateY(0)}25%{transform:translateY(6px)}50%{transform:translateY(0)}75%{transform:translateY(-6px)}to{transform:translateY(0)}}@keyframes logo-blink{0%,45%,55%,to{transform:scaleY(1);opacity:1}50%{transform:scaleY(.1);opacity:.6}}.logo-mark .logo-cat-wrapper{animation:logo-float 4s ease-in-out infinite;transform-origin:center}.logo-mark{transform:translateY(2px)}.logo-mark .logo-eye{fill:#00bcd4;filter:drop-shadow(0 0 2px #00bcd4);animation:logo-blink 5s infinite;transform-box:fill-box;transform-origin:center}.hover\:border-destructive:hover{border-color:hsl(var(--destructive))}.hover\:border-destructive\/40:hover{border-color:hsl(var(--destructive) / .4)}.hover\:border-destructive\/60:hover{border-color:hsl(var(--destructive) / .6)}.hover\:border-foreground:hover{border-color:hsl(var(--foreground))}.hover\:border-primary:hover{border-color:hsl(var(--primary))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-secondary\/60:hover{background-color:hsl(var(--secondary) / .6)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-emerald-500:hover{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:opacity-90:hover{opacity:.9}.focus\:border-transparent:focus{border-color:transparent}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:text-accent-foreground{color:hsl(var(--accent-foreground))}.group:hover .group-hover\:opacity-100{opacity:1}.peer:checked~.peer-checked\:border-foreground{border-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:bg-foreground{background-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.peer:disabled~.peer-disabled\:opacity-50{opacity:.5}@media(min-width:640px){.sm\:ml-0{margin-left:0}.sm\:flex{display:flex}.sm\:w-44{width:11rem}.sm\:w-48{width:12rem}.sm\:w-auto{width:auto}.sm\:min-w-0{min-width:0px}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:items-center{align-items:center}}@media(min-width:768px){.md\:w-auto{width:auto}.md\:flex-1{flex:1 1 0%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1024px){.lg\:static{position:static}.lg\:sticky{position:sticky}.lg\:top-0{top:0}.lg\:ml-0{margin-left:0}.lg\:hidden{display:none}.lg\:h-20{height:5rem}.lg\:h-64{height:16rem}.lg\:h-72{height:18rem}.lg\:h-screen{height:100vh}.lg\:w-20{width:5rem}.lg\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:border-b-0{border-bottom-width:0px}.lg\:border-r{border-right-width:1px}.lg\:bg-card\/80{background-color:hsl(var(--card) / .8)}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:py-4{padding-top:1rem;padding-bottom:1rem}.lg\:pt-10{padding-top:2.5rem}.lg\:pt-5{padding-top:1.25rem}.lg\:pt-6{padding-top:1.5rem}.lg\:text-2xl{font-size:1.5rem;line-height:2rem}.lg\:backdrop-blur-none{--tw-backdrop-blur: ;-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}}@media(min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}} diff --git a/static/assets/index-Cdlg6n3S.css b/static/assets/index-Cdlg6n3S.css new file mode 100644 index 0000000000000000000000000000000000000000..ef1eaff99c0b990472dd17bd5a725ada5c096ba7 --- /dev/null +++ b/static/assets/index-Cdlg6n3S.css @@ -0,0 +1 @@ +@import"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=Noto+Serif+SC:wght@600;700&display=swap";*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 97%;--foreground: 0 0% 10%;--card: 0 0% 100%;--card-foreground: 0 0% 10%;--primary: 0 0% 10%;--primary-foreground: 0 0% 100%;--secondary: 0 0% 92%;--secondary-foreground: 0 0% 10%;--muted: 0 0% 92%;--muted-foreground: 0 0% 40%;--accent: 0 0% 90%;--accent-foreground: 0 0% 10%;--destructive: 0 70% 45%;--destructive-foreground: 0 0% 100%;--border: 0 0% 86%;--input: 0 0% 86%;--ring: 0 0% 10%;--radius: 1rem}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:Noto Sans SC,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;overflow-x:hidden;background-image:radial-gradient(900px circle at 10% -20%,rgba(0,0,0,.04),transparent 45%),radial-gradient(700px circle at 90% 0%,rgba(0,0,0,.05),transparent 40%),linear-gradient(180deg,hsl(var(--background)) 0% 100%)}body:before{content:"";position:fixed;inset:0;background-image:linear-gradient(120deg,#ffffff8c,#fff0);opacity:.5;pointer-events:none;z-index:-1}h1,h2,h3{font-family:"Noto Serif SC",Georgia,serif;letter-spacing:-.01em}#app{min-height:100vh}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-y-0{top:0;bottom:0}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.top-full{top:100%}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[9999\]{z-index:9999}.col-span-2{grid-column:span 2 / span 2}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0{height:0px}.h-10{height:2.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-\[80vh\]{height:80vh}.h-full{height:100%}.max-h-\[60vh\]{max-height:60vh}.max-h-\[90vh\]{max-height:90vh}.min-h-0{min-height:0px}.min-h-\[140px\]{min-height:140px}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-10{width:2.5rem}.w-2{width:.5rem}.w-20{width:5rem}.w-24{width:6rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-44{width:11rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[200px\]{min-width:200px}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-not-allowed{cursor:not-allowed}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-1{row-gap:.25rem}.gap-y-2{row-gap:.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.justify-self-end{justify-self:end}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-visible{overflow-y:visible}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[2\.5rem\]{border-radius:2.5rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-x-4{border-left-width:4px;border-right-width:4px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-4{border-top-width:4px}.border-border{border-color:hsl(var(--border))}.border-border\/60{border-color:hsl(var(--border) / .6)}.border-destructive\/30{border-color:hsl(var(--destructive) / .3)}.border-input{border-color:hsl(var(--input))}.border-primary-foreground\/40{border-color:hsl(var(--primary-foreground) / .4)}.border-rose-200{--tw-border-opacity: 1;border-color:rgb(254 205 211 / var(--tw-border-opacity, 1))}.border-x-transparent{border-left-color:transparent;border-right-color:transparent}.border-t-foreground{border-top-color:hsl(var(--foreground))}.bg-accent{background-color:hsl(var(--accent))}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-200{--tw-bg-opacity: 1;background-color:rgb(253 230 138 / var(--tw-bg-opacity, 1))}.bg-amber-300{--tw-bg-opacity: 1;background-color:rgb(252 211 77 / var(--tw-bg-opacity, 1))}.bg-amber-400{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-black\/20{background-color:#0003}.bg-black\/30{background-color:#0000004d}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-card{background-color:hsl(var(--card))}.bg-card\/70{background-color:hsl(var(--card) / .7)}.bg-card\/90{background-color:hsl(var(--card) / .9)}.bg-cyan-100{--tw-bg-opacity: 1;background-color:rgb(207 250 254 / var(--tw-bg-opacity, 1))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-400{--tw-bg-opacity: 1;background-color:rgb(52 211 153 / var(--tw-bg-opacity, 1))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground{background-color:hsl(var(--muted-foreground))}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/70{background-color:hsl(var(--muted) / .7)}.bg-primary{background-color:hsl(var(--primary))}.bg-primary-foreground\/15{background-color:hsl(var(--primary-foreground) / .15)}.bg-rose-100{--tw-bg-opacity: 1;background-color:rgb(255 228 230 / var(--tw-bg-opacity, 1))}.bg-rose-50{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.bg-rose-500{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity, 1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/30{background-color:hsl(var(--secondary) / .3)}.bg-secondary\/40{background-color:hsl(var(--secondary) / .4)}.bg-secondary\/50{background-color:hsl(var(--secondary) / .5)}.bg-secondary\/60{background-color:hsl(var(--secondary) / .6)}.bg-sky-400{--tw-bg-opacity: 1;background-color:rgb(56 189 248 / var(--tw-bg-opacity, 1))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-violet-100{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.object-contain{-o-object-fit:contain;object-fit:contain}.p-1{padding:.25rem}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-10{padding-bottom:2.5rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pl-3{padding-left:.75rem}.pr-1{padding-right:.25rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.tracking-\[0\.12em\]{letter-spacing:.12em}.tracking-\[0\.28em\]{letter-spacing:.28em}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-\[0\.3em\]{letter-spacing:.3em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-background{color:hsl(var(--background))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-cyan-700{--tw-text-opacity: 1;color:rgb(14 116 144 / var(--tw-text-opacity, 1))}.text-destructive{color:hsl(var(--destructive))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-violet-700{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.opacity-0{opacity:0}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-black\/10{--tw-shadow-color: rgb(0 0 0 / .1);--tw-shadow: var(--tw-shadow-colored)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,transform\]{transition-property:width,transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-\[transform\]{will-change:transform}html{scrollbar-gutter:stable}*{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.35) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:#00000059;border-radius:999px;border:2px solid transparent;background-clip:content-box}.scrollbar-slim::-webkit-scrollbar{width:6px;height:6px}.scrollbar-slim::-webkit-scrollbar-thumb{background-color:#0006}.cv-auto{content-visibility:auto;contain-intrinsic-size:0 44px}.monitor-badge--up{background:#d1fae5;color:#065f46}.monitor-badge--warn{background:#fef3c7;color:#b45309}.monitor-badge--down{background:#fee2e2;color:#991b1b}.monitor-badge--unknown{background:#f3f4f6;color:#6b7280}.monitor-card{border-radius:16px;padding:0;background:hsl(var(--card));box-shadow:none}.monitor-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.monitor-card__name{font-size:14px;font-weight:600;color:hsl(var(--foreground))}.monitor-card__badge{padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600}.monitor-card__stats{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:hsl(var(--muted-foreground));margin-bottom:12px}.monitor-card__value{margin-left:4px;color:hsl(var(--foreground));font-weight:600}.monitor-card__beats{display:flex;gap:2px;height:24px;align-items:flex-end}.monitor-beat{flex:1;min-width:4px;max-width:8px;border-radius:2px;transition:all .2s;position:relative}.monitor-beat:hover{opacity:.8;transform:scaleY(1.1)}.monitor-beat--up{background:#34c759;height:100%}.monitor-beat--warn,.monitor-beat--slow{background:#f5c15b;height:100%}.monitor-beat--down{background:#ff3b30;height:100%}.monitor-beat--empty{background:#e5e5ea;height:40%}.monitor-beat__tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#1d1d1f;color:#fff;padding:6px 10px;border-radius:6px;font-size:11px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;margin-bottom:6px;z-index:10}.monitor-beat__tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#1d1d1f}.monitor-beat:hover .monitor-beat__tooltip{opacity:1}.help-dot{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:999px;border:1px solid hsl(var(--border));font-size:10px;line-height:1;color:hsl(var(--muted-foreground));cursor:default}@media(max-width:768px){.monitor-beat{min-width:3px;max-width:6px}}@media(min-width:1024px){.dashboard-split{flex-direction:row;flex-wrap:nowrap}.dashboard-split .dashboard-main{flex:0 0 66.6667%;max-width:66.6667%}.dashboard-split .dashboard-side{flex:0 0 33.3333%;max-width:33.3333%}}@keyframes logo-float{0%{transform:translateY(0)}25%{transform:translateY(6px)}50%{transform:translateY(0)}75%{transform:translateY(-6px)}to{transform:translateY(0)}}@keyframes logo-blink{0%,45%,55%,to{transform:scaleY(1);opacity:1}50%{transform:scaleY(.1);opacity:.6}}.logo-mark .logo-cat-wrapper{animation:logo-float 4s ease-in-out infinite;transform-origin:center}.logo-mark{transform:translateY(2px)}.logo-mark .logo-eye{fill:#00bcd4;filter:drop-shadow(0 0 2px #00bcd4);animation:logo-blink 5s infinite;transform-box:fill-box;transform-origin:center}.hover\:border-destructive:hover{border-color:hsl(var(--destructive))}.hover\:border-destructive\/40:hover{border-color:hsl(var(--destructive) / .4)}.hover\:border-destructive\/60:hover{border-color:hsl(var(--destructive) / .6)}.hover\:border-foreground:hover{border-color:hsl(var(--foreground))}.hover\:border-primary:hover{border-color:hsl(var(--primary))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/10:hover{background-color:hsl(var(--destructive) / .1)}.hover\:bg-secondary\/60:hover{background-color:hsl(var(--secondary) / .6)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-emerald-500:hover{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.focus\:border-transparent:focus{border-color:transparent}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:text-accent-foreground{color:hsl(var(--accent-foreground))}.group:hover .group-hover\:opacity-100{opacity:1}.peer:checked~.peer-checked\:border-foreground{border-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:bg-foreground{background-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.peer:disabled~.peer-disabled\:opacity-50{opacity:.5}@media(min-width:640px){.sm\:ml-0{margin-left:0}.sm\:flex{display:flex}.sm\:w-44{width:11rem}.sm\:w-48{width:12rem}.sm\:w-auto{width:auto}.sm\:min-w-0{min-width:0px}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:items-center{align-items:center}}@media(min-width:768px){.md\:w-auto{width:auto}.md\:flex-1{flex:1 1 0%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1024px){.lg\:static{position:static}.lg\:sticky{position:sticky}.lg\:top-0{top:0}.lg\:ml-0{margin-left:0}.lg\:hidden{display:none}.lg\:h-20{height:5rem}.lg\:h-64{height:16rem}.lg\:h-72{height:18rem}.lg\:h-screen{height:100vh}.lg\:w-20{width:5rem}.lg\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:border-b-0{border-bottom-width:0px}.lg\:border-r{border-right-width:1px}.lg\:bg-card\/80{background-color:hsl(var(--card) / .8)}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:py-4{padding-top:1rem;padding-bottom:1rem}.lg\:pt-10{padding-top:2.5rem}.lg\:pt-5{padding-top:1.25rem}.lg\:pt-6{padding-top:1.5rem}.lg\:text-2xl{font-size:1.5rem;line-height:2rem}.lg\:backdrop-blur-none{--tw-backdrop-blur: ;-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}}@media(min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}} diff --git a/static/assets/index-CkXB0iyt.js b/static/assets/index-CkXB0iyt.js new file mode 100644 index 0000000000000000000000000000000000000000..b2cac0e53087b1f2918e3481105fd980f9c7909c --- /dev/null +++ b/static/assets/index-CkXB0iyt.js @@ -0,0 +1,7 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PublicUptime-CFeeFWLB.js","assets/useUptimeStatus-CKkLWAt7.js","assets/AppShell-CXOssFu_.js","assets/settings-B_knXf3v.js","assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-87LA-h3c.js","assets/useConfirmDialog-BpSB-4KN.js","assets/Dashboard-Dj9ZvQRR.js","assets/HelpTip.vue_vue_type_script_setup_true_lang-PWvzGrPg.js","assets/Accounts-DanJ5qVz.js","assets/SelectMenu.vue_vue_type_script_setup_true_lang-DEvRak0a.js","assets/Checkbox.vue_vue_type_script_setup_true_lang-Bn84CDew.js","assets/Settings-Z9wuXkbU.js","assets/Logs-Bm_tHokg.js","assets/Monitor-BZlxN0Z7.js"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function us(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const se={},$t=[],ot=()=>{},ni=()=>!1,or=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),fs=e=>e.startsWith("onUpdate:"),Se=Object.assign,ds=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},oc=Object.prototype.hasOwnProperty,ne=(e,t)=>oc.call(e,t),q=Array.isArray,Kt=e=>ir(e)==="[object Map]",ri=e=>ir(e)==="[object Set]",W=e=>typeof e=="function",de=e=>typeof e=="string",yt=e=>typeof e=="symbol",le=e=>e!==null&&typeof e=="object",si=e=>(le(e)||W(e))&&W(e.then)&&W(e.catch),oi=Object.prototype.toString,ir=e=>oi.call(e),ic=e=>ir(e).slice(8,-1),ii=e=>ir(e)==="[object Object]",lr=e=>de(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,cn=us(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),cr=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},lc=/-\w/g,xt=cr(e=>e.replace(lc,t=>t.slice(1).toUpperCase())),cc=/\B([A-Z])/g,jt=cr(e=>e.replace(cc,"-$1").toLowerCase()),li=cr(e=>e.charAt(0).toUpperCase()+e.slice(1)),vr=cr(e=>e?`on${li(e)}`:""),vt=(e,t)=>!Object.is(e,t),Bn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},hs=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let ks;const ar=()=>ks||(ks=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function ps(e){if(q(e)){const t={};for(let n=0;n{if(n){const r=n.split(uc);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function ms(e){let t="";if(de(e))t=e;else if(q(e))for(let n=0;n!!(e&&e.__v_isRef===!0),mc=e=>de(e)?e:e==null?"":q(e)||le(e)&&(e.toString===oi||!W(e.toString))?ui(e)?mc(e.value):JSON.stringify(e,fi,2):String(e),fi=(e,t)=>ui(t)?fi(e,t.value):Kt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[Or(r,o)+" =>"]=s,n),{})}:ri(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Or(n))}:yt(t)?Or(t):le(t)&&!q(t)&&!ii(t)?String(t):t,Or=(e,t="")=>{var n;return yt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let _e;class di{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=_e,!t&&_e&&(this.index=(_e.scopes||(_e.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&&(_e=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if(un){let t=un;for(un=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;an;){let t=an;for(an=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function _i(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function bi(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),_s(r),yc(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function qr(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===bn)||(e.globalVersion=bn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!qr(e))))return;e.flags|=2;const t=e.dep,n=ie,r=$e;ie=e,$e=!0;try{_i(e);const s=e.fn(e._value);(t.version===0||vt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{ie=n,$e=r,bi(e),e.flags&=-3}}function _s(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)_s(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function yc(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 wi=[];function ht(){wi.push($e),$e=!1}function pt(){const e=wi.pop();$e=e===void 0?!0:e}function Vs(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ie;ie=void 0;try{t()}finally{ie=n}}}let bn=0;class _c{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 bs{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!ie||!$e||ie===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ie)n=this.activeLink=new _c(ie,this),ie.deps?(n.prevDep=ie.depsTail,ie.depsTail.nextDep=n,ie.depsTail=n):ie.deps=ie.depsTail=n,Si(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=ie.depsTail,n.nextDep=void 0,ie.depsTail.nextDep=n,ie.depsTail=n,ie.deps===n&&(ie.deps=r)}return n}trigger(t){this.version++,bn++,this.notify(t)}notify(t){gs();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ys()}}}function Si(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Si(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const zn=new WeakMap,Dt=Symbol(""),$r=Symbol(""),En=Symbol("");function be(e,t,n){if($e&&ie){let r=zn.get(e);r||zn.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new bs),s.map=r,s.key=n),s.track()}}function ft(e,t,n,r,s,o){const i=zn.get(e);if(!i){bn++;return}const l=c=>{c&&c.trigger()};if(gs(),t==="clear")i.forEach(l);else{const c=q(e),u=c&&lr(n);if(c&&n==="length"){const a=Number(r);i.forEach((f,p)=>{(p==="length"||p===En||!yt(p)&&p>=a)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(En)),t){case"add":c?u&&l(i.get("length")):(l(i.get(Dt)),Kt(e)&&l(i.get($r)));break;case"delete":c||(l(i.get(Dt)),Kt(e)&&l(i.get($r)));break;case"set":Kt(e)&&l(i.get(Dt));break}}ys()}function bc(e,t){const n=zn.get(e);return n&&n.get(t)}function Bt(e){const t=Z(e);return t===e?t:(be(t,"iterate",En),je(e)?t:t.map(Ke))}function ur(e){return be(e=Z(e),"iterate",En),e}function wt(e,t){return mt(e)?it(e)?zt(Ke(t)):zt(t):Ke(t)}const Ec={__proto__:null,[Symbol.iterator](){return Tr(this,Symbol.iterator,e=>wt(this,e))},concat(...e){return Bt(this).concat(...e.map(t=>q(t)?Bt(t):t))},entries(){return Tr(this,"entries",e=>(e[1]=wt(this,e[1]),e))},every(e,t){return ct(this,"every",e,t,void 0,arguments)},filter(e,t){return ct(this,"filter",e,t,n=>n.map(r=>wt(this,r)),arguments)},find(e,t){return ct(this,"find",e,t,n=>wt(this,n),arguments)},findIndex(e,t){return ct(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ct(this,"findLast",e,t,n=>wt(this,n),arguments)},findLastIndex(e,t){return ct(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ct(this,"forEach",e,t,void 0,arguments)},includes(...e){return Cr(this,"includes",e)},indexOf(...e){return Cr(this,"indexOf",e)},join(e){return Bt(this).join(e)},lastIndexOf(...e){return Cr(this,"lastIndexOf",e)},map(e,t){return ct(this,"map",e,t,void 0,arguments)},pop(){return nn(this,"pop")},push(...e){return nn(this,"push",e)},reduce(e,...t){return qs(this,"reduce",e,t)},reduceRight(e,...t){return qs(this,"reduceRight",e,t)},shift(){return nn(this,"shift")},some(e,t){return ct(this,"some",e,t,void 0,arguments)},splice(...e){return nn(this,"splice",e)},toReversed(){return Bt(this).toReversed()},toSorted(e){return Bt(this).toSorted(e)},toSpliced(...e){return Bt(this).toSpliced(...e)},unshift(...e){return nn(this,"unshift",e)},values(){return Tr(this,"values",e=>wt(this,e))}};function Tr(e,t,n){const r=ur(e),s=r[t]();return r!==e&&!je(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const wc=Array.prototype;function ct(e,t,n,r,s,o){const i=ur(e),l=i!==e&&!je(e),c=i[t];if(c!==wc[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,wt(e,f),p,e)}:n.length>2&&(u=function(f,p){return n.call(this,f,p,e)}));const a=c.call(i,u,r);return l&&s?s(a):a}function qs(e,t,n,r){const s=ur(e);let o=n;return s!==e&&(je(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,wt(e,l),c,e)}),s[t](o,...r)}function Cr(e,t,n){const r=Z(e);be(r,"iterate",En);const s=r[t](...n);return(s===-1||s===!1)&&fr(n[0])?(n[0]=Z(n[0]),r[t](...n)):s}function nn(e,t,n=[]){ht(),gs();const r=Z(e)[t].apply(e,n);return ys(),pt(),r}const Sc=us("__proto__,__v_isRef,__isVue"),Ri=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(yt));function Rc(e){yt(e)||(e=String(e));const t=Z(this);return be(t,"has",e),t.hasOwnProperty(e)}class Ai{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?Dc:Ti:o?xi:Oi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=q(t);if(!s){let c;if(i&&(c=Ec[n]))return c;if(n==="hasOwnProperty")return Rc}const l=Reflect.get(t,n,ce(t)?t:r);if((yt(n)?Ri.has(n):Sc(n))||(s||be(t,"get",n),o))return l;if(ce(l)){const c=i&&lr(n)?l:l.value;return s&&le(c)?Wr(c):c}return le(l)?s?Wr(l):On(l):l}}class vi extends Ai{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=q(t)&&lr(n);if(!this._isShallow){const u=mt(o);if(!je(r)&&!mt(r)&&(o=Z(o),r=Z(r)),!i&&ce(o)&&!ce(r))return u||(o.value=r),!0}const l=i?Number(n)e,Dn=e=>Reflect.getPrototypeOf(e);function Tc(e,t,n){return function(...r){const s=this.__v_raw,o=Z(s),i=Kt(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=s[e](...r),a=n?Kr:t?zt:Ke;return!t&&be(o,"iterate",c?$r:Dt),{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 Ln(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Cc(e,t){const n={get(s){const o=this.__v_raw,i=Z(o),l=Z(s);e||(vt(s,l)&&be(i,"get",s),be(i,"get",l));const{has:c}=Dn(i),u=t?Kr:e?zt:Ke;if(c.call(i,s))return u(o.get(s));if(c.call(i,l))return u(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&be(Z(s),"iterate",Dt),s.size},has(s){const o=this.__v_raw,i=Z(o),l=Z(s);return e||(vt(s,l)&&be(i,"has",s),be(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,c=Z(l),u=t?Kr:e?zt:Ke;return!e&&be(c,"iterate",Dt),l.forEach((a,f)=>s.call(o,u(a),u(f),i))}};return Se(n,e?{add:Ln("add"),set:Ln("set"),delete:Ln("delete"),clear:Ln("clear")}:{add(s){!t&&!je(s)&&!mt(s)&&(s=Z(s));const o=Z(this);return Dn(o).has.call(o,s)||(o.add(s),ft(o,"add",s,s)),this},set(s,o){!t&&!je(o)&&!mt(o)&&(o=Z(o));const i=Z(this),{has:l,get:c}=Dn(i);let u=l.call(i,s);u||(s=Z(s),u=l.call(i,s));const a=c.call(i,s);return i.set(s,o),u?vt(o,a)&&ft(i,"set",s,o):ft(i,"add",s,o),this},delete(s){const o=Z(this),{has:i,get:l}=Dn(o);let c=i.call(o,s);c||(s=Z(s),c=i.call(o,s)),l&&l.call(o,s);const u=o.delete(s);return c&&ft(o,"delete",s,void 0),u},clear(){const s=Z(this),o=s.size!==0,i=s.clear();return o&&ft(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=Tc(s,e,t)}),n}function Es(e,t){const n=Cc(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(ne(n,s)&&s in r?n:r,s,o)}const Pc={get:Es(!1,!1)},Nc={get:Es(!1,!0)},Ic={get:Es(!0,!1)};const Oi=new WeakMap,xi=new WeakMap,Ti=new WeakMap,Dc=new WeakMap;function Lc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Fc(e){return e.__v_skip||!Object.isExtensible(e)?0:Lc(ic(e))}function On(e){return mt(e)?e:ws(e,!1,vc,Pc,Oi)}function Ci(e){return ws(e,!1,xc,Nc,xi)}function Wr(e){return ws(e,!0,Oc,Ic,Ti)}function ws(e,t,n,r,s){if(!le(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=Fc(e);if(o===0)return e;const i=s.get(e);if(i)return i;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function it(e){return mt(e)?it(e.__v_raw):!!(e&&e.__v_isReactive)}function mt(e){return!!(e&&e.__v_isReadonly)}function je(e){return!!(e&&e.__v_isShallow)}function fr(e){return e?!!e.__v_raw:!1}function Z(e){const t=e&&e.__v_raw;return t?Z(t):e}function Ss(e){return!ne(e,"__v_skip")&&Object.isExtensible(e)&&ci(e,"__v_skip",!0),e}const Ke=e=>le(e)?On(e):e,zt=e=>le(e)?Wr(e):e;function ce(e){return e?e.__v_isRef===!0:!1}function Lt(e){return Pi(e,!1)}function Mc(e){return Pi(e,!0)}function Pi(e,t){return ce(e)?e:new Uc(e,t)}class Uc{constructor(t,n){this.dep=new bs,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:Z(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,r=this.__v_isShallow||je(t)||mt(t);t=r?t:Z(t),vt(t,n)&&(this._rawValue=t,this._value=r?t:Ke(t),this.dep.trigger())}}function Ot(e){return ce(e)?e.value:e}const jc={get:(e,t,n)=>t==="__v_raw"?e:Ot(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return ce(s)&&!ce(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Ni(e){return it(e)?e:new Proxy(e,jc)}function Bc(e){const t=q(e)?new Array(e.length):{};for(const n in e)t[n]=Ii(e,n);return t}class Hc{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._raw=Z(t);let s=!0,o=t;if(!q(t)||!lr(String(n)))do s=!fr(o)||je(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=Ot(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&ce(this._raw[this._key])){const n=this._object[this._key];if(ce(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return bc(this._raw,this._key)}}class kc{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Vc(e,t,n){return ce(e)?e:W(e)?new kc(e):le(e)&&arguments.length>1?Ii(e,t,n):Lt(e)}function Ii(e,t,n){return new Hc(e,t,n)}class qc{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new bs(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=bn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&ie!==this)return yi(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 $c(e,t,n=!1){let r,s;return W(e)?r=e:(r=e.get,s=e.set),new qc(r,s,n)}const Fn={},Jn=new WeakMap;let Pt;function Kc(e,t=!1,n=Pt){if(n){let r=Jn.get(n);r||Jn.set(n,r=[]),r.push(e)}}function Wc(e,t,n=se){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:c}=n,u=P=>s?P:je(P)||s===!1||s===0?dt(P,1):dt(P);let a,f,p,m,g=!1,b=!1;if(ce(e)?(f=()=>e.value,g=je(e)):it(e)?(f=()=>u(e),g=!0):q(e)?(b=!0,g=e.some(P=>it(P)||je(P)),f=()=>e.map(P=>{if(ce(P))return P.value;if(it(P))return u(P);if(W(P))return c?c(P,2):P()})):W(e)?t?f=c?()=>c(e,2):e:f=()=>{if(p){ht();try{p()}finally{pt()}}const P=Pt;Pt=a;try{return c?c(e,3,[m]):e(m)}finally{Pt=P}}:f=ot,t&&s){const P=f,M=s===!0?1/0:s;f=()=>dt(P(),M)}const E=pi(),O=()=>{a.stop(),E&&E.active&&ds(E.effects,a)};if(o&&t){const P=t;t=(...M)=>{P(...M),O()}}let C=b?new Array(e.length).fill(Fn):Fn;const N=P=>{if(!(!(a.flags&1)||!a.dirty&&!P))if(t){const M=a.run();if(s||g||(b?M.some((X,k)=>vt(X,C[k])):vt(M,C))){p&&p();const X=Pt;Pt=a;try{const k=[M,C===Fn?void 0:b&&C[0]===Fn?[]:C,m];C=M,c?c(t,3,k):t(...k)}finally{Pt=X}}}else a.run()};return l&&l(N),a=new mi(f),a.scheduler=i?()=>i(N,!1):N,m=P=>Kc(P,!1,a),p=a.onStop=()=>{const P=Jn.get(a);if(P){if(c)c(P,4);else for(const M of P)M();Jn.delete(a)}},t?r?N(!0):C=a.run():i?i(N.bind(null,!0),!0):a.run(),O.pause=a.pause.bind(a),O.resume=a.resume.bind(a),O.stop=O,O}function dt(e,t=1/0,n){if(t<=0||!le(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,ce(e))dt(e.value,t,n);else if(q(e))for(let r=0;r{dt(r,t,n)});else if(ii(e)){for(const r in e)dt(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&dt(e[r],t,n)}return e}function xn(e,t,n,r){try{return r?e(...r):e()}catch(s){dr(s,t,n)}}function lt(e,t,n,r){if(W(e)){const s=xn(e,t,n,r);return s&&si(s)&&s.catch(o=>{dr(o,t,n)}),s}if(q(e)){const s=[];for(let o=0;o>>1,s=xe[r],o=wn(s);o=wn(n)?xe.push(e):xe.splice(zc(t),0,e),e.flags|=1,Li()}}function Li(){Xn||(Xn=Di.then(Mi))}function Jc(e){q(e)?Wt.push(...e):St&&e.id===-1?St.splice(kt+1,0,e):e.flags&1||(Wt.push(e),e.flags|=1),Li()}function $s(e,t,n=rt+1){for(;nwn(n)-wn(r));if(Wt.length=0,St){St.push(...t);return}for(St=t,kt=0;kte.id==null?e.flags&2?-1:1/0:e.id;function Mi(e){try{for(rt=0;rt{r._d&&tr(-1);const o=Qn(t);let i;try{i=e(...s)}finally{Qn(o),r._d&&tr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function Ah(e,t){if(we===null)return e;const n=gr(we),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&W(t)?t.call(r&&r.proxy):t}}function Qc(){return!!(dl()||Ft)}const Yc=Symbol.for("v-scx"),Zc=()=>ke(Yc);function fn(e,t,n){return ji(e,t,n)}function ji(e,t,n=se){const{immediate:r,deep:s,flush:o,once:i}=n,l=Se({},n),c=t&&r||!t&&o!=="post";let u;if(An){if(o==="sync"){const m=Zc();u=m.__watcherHandles||(m.__watcherHandles=[])}else if(!c){const m=()=>{};return m.stop=ot,m.resume=ot,m.pause=ot,m}}const a=Te;l.call=(m,g,b)=>lt(m,a,g,b);let f=!1;o==="post"?l.scheduler=m=>{ve(m,a&&a.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(m,g)=>{g?m():As(m)}),l.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,a&&(m.id=a.uid,m.i=a))};const p=Wc(e,t,l);return An&&(u?u.push(p):c&&p()),p}function ea(e,t,n){const r=this.proxy,s=de(e)?e.includes(".")?Bi(r,e):()=>r[e]:e.bind(r,r);let o;W(t)?o=t:(o=t.handler,n=t);const i=Tn(this),l=ji(s,o.bind(r),n);return i(),l}function Bi(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,dn=e=>e&&(e.disabled||e.disabled===""),Ks=e=>e&&(e.defer||e.defer===""),Ws=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Gs=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Gr=(e,t)=>{const n=e&&e.to;return de(n)?t?t(n):null:n},ki={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,u){const{mc:a,pc:f,pbc:p,o:{insert:m,querySelector:g,createText:b,createComment:E}}=u,O=dn(t.props);let{shapeFlag:C,children:N,dynamicChildren:P}=t;if(e==null){const M=t.el=b(""),X=t.anchor=b("");m(M,n,r),m(X,n,r);const k=(U,ee)=>{C&16&&a(N,U,ee,s,o,i,l,c)},V=()=>{const U=t.target=Gr(t.props,g),ee=Vi(U,t,b,m);U&&(i!=="svg"&&Ws(U)?i="svg":i!=="mathml"&&Gs(U)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(U),O||(k(U,ee),kn(t,!1)))};O&&(k(n,X),kn(t,!0)),Ks(t.props)?(t.el.__isMounted=!1,ve(()=>{V(),delete t.el.__isMounted},o)):V()}else{if(Ks(t.props)&&e.el.__isMounted===!1){ve(()=>{ki.process(e,t,n,r,s,o,i,l,c,u)},o);return}t.el=e.el,t.targetStart=e.targetStart;const M=t.anchor=e.anchor,X=t.target=e.target,k=t.targetAnchor=e.targetAnchor,V=dn(e.props),U=V?n:X,ee=V?M:k;if(i==="svg"||Ws(X)?i="svg":(i==="mathml"||Gs(X))&&(i="mathml"),P?(p(e.dynamicChildren,P,U,s,o,i,l),Cs(e,t,!0)):c||f(e,t,U,ee,s,o,i,l,!1),O)V?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Mn(t,n,M,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const ue=t.target=Gr(t.props,g);ue&&Mn(t,ue,null,u,0)}else V&&Mn(t,X,k,u,1);kn(t,O)}},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetStart:u,targetAnchor:a,target:f,props:p}=e;if(f&&(s(u),s(a)),o&&s(c),i&16){const m=o||!dn(p);for(let g=0;ghn(g,t&&(q(t)?t[b]:t),n,r,s));return}if(Gt(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&hn(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?gr(r.component):r.el,i=s?null:o,{i:l,r:c}=e,u=t&&t.r,a=l.refs===se?l.refs={}:l.refs,f=l.setupState,p=Z(f),m=f===se?ni:g=>ne(p,g);if(u!=null&&u!==c){if(zs(t),de(u))a[u]=null,m(u)&&(f[u]=null);else if(ce(u)){u.value=null;const g=t;g.k&&(a[g.k]=null)}}if(W(c))xn(c,l,12,[i,a]);else{const g=de(c),b=ce(c);if(g||b){const E=()=>{if(e.f){const O=g?m(c)?f[c]:a[c]:c.value;if(s)q(O)&&ds(O,o);else if(q(O))O.includes(o)||O.push(o);else if(g)a[c]=[o],m(c)&&(f[c]=a[c]);else{const C=[o];c.value=C,e.k&&(a[e.k]=C)}}else g?(a[c]=i,m(c)&&(f[c]=i)):b&&(c.value=i,e.k&&(a[e.k]=i))};if(i){const O=()=>{E(),Yn.delete(e)};O.id=-1,Yn.set(e,O),ve(O,n)}else zs(e),E()}}}function zs(e){const t=Yn.get(e);t&&(t.flags|=8,Yn.delete(e))}ar().requestIdleCallback;ar().cancelIdleCallback;const Gt=e=>!!e.type.__asyncLoader,$i=e=>e.type.__isKeepAlive;function sa(e,t){Ki(e,"a",t)}function oa(e,t){Ki(e,"da",t)}function Ki(e,t,n=Te){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(hr(t,r,n),n){let s=n.parent;for(;s&&s.parent;)$i(s.parent.vnode)&&ia(r,t,n,s),s=s.parent}}function ia(e,t,n,r){const s=hr(t,e,r,!0);Wi(()=>{ds(r[t],s)},n)}function hr(e,t,n=Te,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{ht();const l=Tn(n),c=lt(t,n,e,i);return l(),pt(),c});return r?s.unshift(o):s.push(o),o}}const _t=e=>(t,n=Te)=>{(!An||e==="sp")&&hr(e,(...r)=>t(...r),n)},la=_t("bm"),ca=_t("m"),aa=_t("bu"),ua=_t("u"),fa=_t("bum"),Wi=_t("um"),da=_t("sp"),ha=_t("rtg"),pa=_t("rtc");function ma(e,t=Te){hr("ec",e,t)}const ga=Symbol.for("v-ndc");function Oh(e,t,n,r){let s;const o=n,i=q(e);if(i||de(e)){const l=i&&it(e);let c=!1,u=!1;l&&(c=!je(e),u=mt(e),e=ur(e)),s=new Array(e.length);for(let a=0,f=e.length;at(l,c,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let c=0,u=l.length;c0;return er(),nr(Fe,null,[Ce("slot",n,r)],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),er();const i=o&&Gi(o(n)),l=n.key||i&&i.key,c=nr(Fe,{key:(l&&!yt(l)?l:`_${t}`)+(!i&&r?"_fb":"")},i||[],i&&e._===1?64:-2);return c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),o&&o._c&&(o._d=!0),c}function Gi(e){return e.some(t=>Rn(t)?!(t.type===gt||t.type===Fe&&!Gi(t.children)):!0)?e:null}const zr=e=>e?hl(e)?gr(e):zr(e.parent):null,pn=Se(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=>zr(e.parent),$root:e=>zr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ji(e),$forceUpdate:e=>e.f||(e.f=()=>{As(e.update)}),$nextTick:e=>e.n||(e.n=Rs.bind(e.proxy)),$watch:e=>ea.bind(e)}),Pr=(e,t)=>e!==se&&!e.__isScriptSetup&&ne(e,t),ya={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,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 r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(Pr(r,t))return i[t]=1,r[t];if(s!==se&&ne(s,t))return i[t]=2,s[t];if(ne(o,t))return i[t]=3,o[t];if(n!==se&&ne(n,t))return i[t]=4,n[t];Jr&&(i[t]=0)}}const u=pn[t];let a,f;if(u)return t==="$attrs"&&be(e.attrs,"get",""),u(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==se&&ne(n,t))return i[t]=4,n[t];if(f=c.config.globalProperties,ne(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return Pr(s,t)?(s[t]=n,!0):r!==se&&ne(r,t)?(r[t]=n,!0):ne(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:o,type:i}},l){let c;return!!(n[l]||e!==se&&l[0]!=="$"&&ne(e,l)||Pr(t,l)||ne(o,l)||ne(r,l)||ne(pn,l)||ne(s.config.globalProperties,l)||(c=i.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ne(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Js(e){return q(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Jr=!0;function _a(e){const t=Ji(e),n=e.proxy,r=e.ctx;Jr=!1,t.beforeCreate&&Xs(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:u,created:a,beforeMount:f,mounted:p,beforeUpdate:m,updated:g,activated:b,deactivated:E,beforeDestroy:O,beforeUnmount:C,destroyed:N,unmounted:P,render:M,renderTracked:X,renderTriggered:k,errorCaptured:V,serverPrefetch:U,expose:ee,inheritAttrs:ue,components:ye,directives:pe,filters:Re}=t;if(u&&ba(u,r,null),i)for(const K in i){const z=i[K];W(z)&&(r[K]=z.bind(n))}if(s){const K=s.call(n,n);le(K)&&(e.data=On(K))}if(Jr=!0,o)for(const K in o){const z=o[K],Be=W(z)?z.bind(n,n):W(z.get)?z.get.bind(n,n):ot,ze=!W(z)&&W(z.set)?z.set.bind(n):ot,me=Me({get:Be,set:ze});Object.defineProperty(r,K,{enumerable:!0,configurable:!0,get:()=>me.value,set:fe=>me.value=fe})}if(l)for(const K in l)zi(l[K],r,n,K);if(c){const K=W(c)?c.call(n):c;Reflect.ownKeys(K).forEach(z=>{Hn(z,K[z])})}a&&Xs(a,e,"c");function J(K,z){q(z)?z.forEach(Be=>K(Be.bind(n))):z&&K(z.bind(n))}if(J(la,f),J(ca,p),J(aa,m),J(ua,g),J(sa,b),J(oa,E),J(ma,V),J(pa,X),J(ha,k),J(fa,C),J(Wi,P),J(da,U),q(ee))if(ee.length){const K=e.exposed||(e.exposed={});ee.forEach(z=>{Object.defineProperty(K,z,{get:()=>n[z],set:Be=>n[z]=Be,enumerable:!0})})}else e.exposed||(e.exposed={});M&&e.render===ot&&(e.render=M),ue!=null&&(e.inheritAttrs=ue),ye&&(e.components=ye),pe&&(e.directives=pe),U&&qi(e)}function ba(e,t,n=ot){q(e)&&(e=Xr(e));for(const r in e){const s=e[r];let o;le(s)?"default"in s?o=ke(s.from||r,s.default,!0):o=ke(s.from||r):o=ke(s),ce(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function Xs(e,t,n){lt(q(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function zi(e,t,n,r){let s=r.includes(".")?Bi(n,r):()=>n[r];if(de(e)){const o=t[e];W(o)&&fn(s,o)}else if(W(e))fn(s,e.bind(n));else if(le(e))if(q(e))e.forEach(o=>zi(o,t,n,r));else{const o=W(e.handler)?e.handler.bind(n):t[e.handler];W(o)&&fn(s,o,e)}}function Ji(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>Zn(c,u,i,!0)),Zn(c,t,i)),le(t)&&o.set(t,c),c}function Zn(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&Zn(e,o,n,!0),s&&s.forEach(i=>Zn(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Ea[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Ea={data:Qs,props:Ys,emits:Ys,methods:ln,computed:ln,beforeCreate:Ae,created:Ae,beforeMount:Ae,mounted:Ae,beforeUpdate:Ae,updated:Ae,beforeDestroy:Ae,beforeUnmount:Ae,destroyed:Ae,unmounted:Ae,activated:Ae,deactivated:Ae,errorCaptured:Ae,serverPrefetch:Ae,components:ln,directives:ln,watch:Sa,provide:Qs,inject:wa};function Qs(e,t){return t?e?function(){return Se(W(e)?e.call(this,this):e,W(t)?t.call(this,this):t)}:t:e}function wa(e,t){return ln(Xr(e),Xr(t))}function Xr(e){if(q(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${xt(t)}Modifiers`]||e[`${jt(t)}Modifiers`];function Oa(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||se;let s=n;const o=t.startsWith("update:"),i=o&&va(r,t.slice(7));i&&(i.trim&&(s=n.map(a=>de(a)?a.trim():a)),i.number&&(s=n.map(hs)));let l,c=r[l=vr(t)]||r[l=vr(xt(t))];!c&&o&&(c=r[l=vr(jt(t))]),c&<(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,lt(u,e,6,s)}}const xa=new WeakMap;function Qi(e,t,n=!1){const r=n?xa:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!W(e)){const c=u=>{const a=Qi(u,t,!0);a&&(l=!0,Se(i,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(le(e)&&r.set(e,null),null):(q(o)?o.forEach(c=>i[c]=null):Se(i,o),le(e)&&r.set(e,i),i)}function pr(e,t){return!e||!or(t)?!1:(t=t.slice(2).replace(/Once$/,""),ne(e,t[0].toLowerCase()+t.slice(1))||ne(e,jt(t))||ne(e,t))}function Zs(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:a,props:f,data:p,setupState:m,ctx:g,inheritAttrs:b}=e,E=Qn(e);let O,C;try{if(n.shapeFlag&4){const P=s||r,M=P;O=st(u.call(M,P,a,f,m,p,g)),C=l}else{const P=t;O=st(P.length>1?P(f,{attrs:l,slots:i,emit:c}):P(f,null)),C=t.props?l:Ta(l)}}catch(P){mn.length=0,dr(P,e,1),O=Ce(gt)}let N=O;if(C&&b!==!1){const P=Object.keys(C),{shapeFlag:M}=N;P.length&&M&7&&(o&&P.some(fs)&&(C=Ca(C,o)),N=Jt(N,C,!1,!0))}return n.dirs&&(N=Jt(N,null,!1,!0),N.dirs=N.dirs?N.dirs.concat(n.dirs):n.dirs),n.transition&&vs(N,n.transition),O=N,Qn(E),O}const Ta=e=>{let t;for(const n in e)(n==="class"||n==="style"||or(n))&&((t||(t={}))[n]=e[n]);return t},Ca=(e,t)=>{const n={};for(const r in e)(!fs(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Pa(e,t,n){const{props:r,children:s,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 r?eo(r,i,u):!!i;if(c&8){const a=t.dynamicProps;for(let f=0;fObject.create(Yi),el=e=>Object.getPrototypeOf(e)===Yi;function Ia(e,t,n,r=!1){const s={},o=Zi();e.propsDefaults=Object.create(null),tl(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:Ci(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function Da(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=Z(s),[c]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const a=e.vnode.dynamicProps;for(let f=0;f{c=!0;const[p,m]=nl(f,t,!0);Se(i,p),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!c)return le(e)&&r.set(e,$t),$t;if(q(o))for(let a=0;ae==="_"||e==="_ctx"||e==="$stable",Ts=e=>q(e)?e.map(st):[st(e)],Fa=(e,t,n)=>{if(t._n)return t;const r=Xc((...s)=>Ts(t(...s)),n);return r._c=!1,r},rl=(e,t,n)=>{const r=e._ctx;for(const s in e){if(xs(s))continue;const o=e[s];if(W(o))t[s]=Fa(s,o,r);else if(o!=null){const i=Ts(o);t[s]=()=>i}}},sl=(e,t)=>{const n=Ts(t);e.slots.default=()=>n},ol=(e,t,n)=>{for(const r in t)(n||!xs(r))&&(e[r]=t[r])},Ma=(e,t,n)=>{const r=e.slots=Zi();if(e.vnode.shapeFlag&32){const s=t._;s?(ol(r,t,n),n&&ci(r,"_",s,!0)):rl(t,r)}else t&&sl(e,t)},Ua=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=se;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:ol(s,t,n):(o=!t.$stable,rl(t,s)),i=t}else t&&(sl(e,t),i={default:1});if(o)for(const l in s)!xs(l)&&i[l]==null&&delete s[l]},ve=Va;function ja(e){return Ba(e)}function Ba(e,t){const n=ar();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:a,parentNode:f,nextSibling:p,setScopeId:m=ot,insertStaticContent:g}=e,b=(d,h,y,w=null,A=null,S=null,I=void 0,T=null,x=!!h.dynamicChildren)=>{if(d===h)return;d&&!rn(d,h)&&(w=R(d),fe(d,A,S,!0),d=null),h.patchFlag===-2&&(x=!1,h.dynamicChildren=null);const{type:v,ref:H,shapeFlag:L}=h;switch(v){case mr:E(d,h,y,w);break;case gt:O(d,h,y,w);break;case Vn:d==null&&C(h,y,w,I);break;case Fe:ye(d,h,y,w,A,S,I,T,x);break;default:L&1?M(d,h,y,w,A,S,I,T,x):L&6?pe(d,h,y,w,A,S,I,T,x):(L&64||L&128)&&v.process(d,h,y,w,A,S,I,T,x,j)}H!=null&&A?hn(H,d&&d.ref,S,h||d,!h):H==null&&d&&d.ref!=null&&hn(d.ref,null,S,d,!0)},E=(d,h,y,w)=>{if(d==null)r(h.el=l(h.children),y,w);else{const A=h.el=d.el;h.children!==d.children&&u(A,h.children)}},O=(d,h,y,w)=>{d==null?r(h.el=c(h.children||""),y,w):h.el=d.el},C=(d,h,y,w)=>{[d.el,d.anchor]=g(d.children,h,y,w,d.el,d.anchor)},N=({el:d,anchor:h},y,w)=>{let A;for(;d&&d!==h;)A=p(d),r(d,y,w),d=A;r(h,y,w)},P=({el:d,anchor:h})=>{let y;for(;d&&d!==h;)y=p(d),s(d),d=y;s(h)},M=(d,h,y,w,A,S,I,T,x)=>{if(h.type==="svg"?I="svg":h.type==="math"&&(I="mathml"),d==null)X(h,y,w,A,S,I,T,x);else{const v=d.el&&d.el._isVueCE?d.el:null;try{v&&v._beginPatch(),U(d,h,A,S,I,T,x)}finally{v&&v._endPatch()}}},X=(d,h,y,w,A,S,I,T)=>{let x,v;const{props:H,shapeFlag:L,transition:B,dirs:$}=d;if(x=d.el=i(d.type,S,H&&H.is,H),L&8?a(x,d.children):L&16&&V(d.children,x,null,w,A,Nr(d,S),I,T),$&&Tt(d,null,w,"created"),k(x,d,d.scopeId,I,w),H){for(const oe in H)oe!=="value"&&!cn(oe)&&o(x,oe,null,H[oe],S,w);"value"in H&&o(x,"value",null,H.value,S),(v=H.onVnodeBeforeMount)&&et(v,w,d)}$&&Tt(d,null,w,"beforeMount");const Y=Ha(A,B);Y&&B.beforeEnter(x),r(x,h,y),((v=H&&H.onVnodeMounted)||Y||$)&&ve(()=>{v&&et(v,w,d),Y&&B.enter(x),$&&Tt(d,null,w,"mounted")},A)},k=(d,h,y,w,A)=>{if(y&&m(d,y),w)for(let S=0;S{for(let v=x;v{const T=h.el=d.el;let{patchFlag:x,dynamicChildren:v,dirs:H}=h;x|=d.patchFlag&16;const L=d.props||se,B=h.props||se;let $;if(y&&Ct(y,!1),($=B.onVnodeBeforeUpdate)&&et($,y,h,d),H&&Tt(h,d,y,"beforeUpdate"),y&&Ct(y,!0),(L.innerHTML&&B.innerHTML==null||L.textContent&&B.textContent==null)&&a(T,""),v?ee(d.dynamicChildren,v,T,y,w,Nr(h,A),S):I||z(d,h,T,null,y,w,Nr(h,A),S,!1),x>0){if(x&16)ue(T,L,B,y,A);else if(x&2&&L.class!==B.class&&o(T,"class",null,B.class,A),x&4&&o(T,"style",L.style,B.style,A),x&8){const Y=h.dynamicProps;for(let oe=0;oe{$&&et($,y,h,d),H&&Tt(h,d,y,"updated")},w)},ee=(d,h,y,w,A,S,I)=>{for(let T=0;T{if(h!==y){if(h!==se)for(const S in h)!cn(S)&&!(S in y)&&o(d,S,h[S],null,A,w);for(const S in y){if(cn(S))continue;const I=y[S],T=h[S];I!==T&&S!=="value"&&o(d,S,T,I,A,w)}"value"in y&&o(d,"value",h.value,y.value,A)}},ye=(d,h,y,w,A,S,I,T,x)=>{const v=h.el=d?d.el:l(""),H=h.anchor=d?d.anchor:l("");let{patchFlag:L,dynamicChildren:B,slotScopeIds:$}=h;$&&(T=T?T.concat($):$),d==null?(r(v,y,w),r(H,y,w),V(h.children||[],y,H,A,S,I,T,x)):L>0&&L&64&&B&&d.dynamicChildren&&d.dynamicChildren.length===B.length?(ee(d.dynamicChildren,B,y,A,S,I,T),(h.key!=null||A&&h===A.subTree)&&Cs(d,h,!0)):z(d,h,y,H,A,S,I,T,x)},pe=(d,h,y,w,A,S,I,T,x)=>{h.slotScopeIds=T,d==null?h.shapeFlag&512?A.ctx.activate(h,y,w,I,x):Re(h,y,w,A,S,I,x):Ve(d,h,x)},Re=(d,h,y,w,A,S,I)=>{const T=d.component=Xa(d,w,A);if($i(d)&&(T.ctx.renderer=j),Qa(T,!1,I),T.asyncDep){if(A&&A.registerDep(T,J,I),!d.el){const x=T.subTree=Ce(gt);O(null,x,h,y),d.placeholder=x.el}}else J(T,d,h,y,A,S,I)},Ve=(d,h,y)=>{const w=h.component=d.component;if(Pa(d,h,y))if(w.asyncDep&&!w.asyncResolved){K(w,h,y);return}else w.next=h,w.update();else h.el=d.el,w.vnode=h},J=(d,h,y,w,A,S,I)=>{const T=()=>{if(d.isMounted){let{next:L,bu:B,u:$,parent:Y,vnode:oe}=d;{const Ye=il(d);if(Ye){L&&(L.el=oe.el,K(d,L,I)),Ye.asyncDep.then(()=>{d.isUnmounted||T()});return}}let re=L,Pe;Ct(d,!1),L?(L.el=oe.el,K(d,L,I)):L=oe,B&&Bn(B),(Pe=L.props&&L.props.onVnodeBeforeUpdate)&&et(Pe,Y,L,oe),Ct(d,!0);const Ne=Zs(d),Qe=d.subTree;d.subTree=Ne,b(Qe,Ne,f(Qe.el),R(Qe),d,A,S),L.el=Ne.el,re===null&&Na(d,Ne.el),$&&ve($,A),(Pe=L.props&&L.props.onVnodeUpdated)&&ve(()=>et(Pe,Y,L,oe),A)}else{let L;const{el:B,props:$}=h,{bm:Y,m:oe,parent:re,root:Pe,type:Ne}=d,Qe=Gt(h);Ct(d,!1),Y&&Bn(Y),!Qe&&(L=$&&$.onVnodeBeforeMount)&&et(L,re,h),Ct(d,!0);{Pe.ce&&Pe.ce._def.shadowRoot!==!1&&Pe.ce._injectChildStyle(Ne);const Ye=d.subTree=Zs(d);b(null,Ye,y,w,d,A,S),h.el=Ye.el}if(oe&&ve(oe,A),!Qe&&(L=$&&$.onVnodeMounted)){const Ye=h;ve(()=>et(L,re,Ye),A)}(h.shapeFlag&256||re&&Gt(re.vnode)&&re.vnode.shapeFlag&256)&&d.a&&ve(d.a,A),d.isMounted=!0,h=y=w=null}};d.scope.on();const x=d.effect=new mi(T);d.scope.off();const v=d.update=x.run.bind(x),H=d.job=x.runIfDirty.bind(x);H.i=d,H.id=d.uid,x.scheduler=()=>As(H),Ct(d,!0),v()},K=(d,h,y)=>{h.component=d;const w=d.vnode.props;d.vnode=h,d.next=null,Da(d,h.props,w,y),Ua(d,h.children,y),ht(),$s(d),pt()},z=(d,h,y,w,A,S,I,T,x=!1)=>{const v=d&&d.children,H=d?d.shapeFlag:0,L=h.children,{patchFlag:B,shapeFlag:$}=h;if(B>0){if(B&128){ze(v,L,y,w,A,S,I,T,x);return}else if(B&256){Be(v,L,y,w,A,S,I,T,x);return}}$&8?(H&16&&He(v,A,S),L!==v&&a(y,L)):H&16?$&16?ze(v,L,y,w,A,S,I,T,x):He(v,A,S,!0):(H&8&&a(y,""),$&16&&V(L,y,w,A,S,I,T,x))},Be=(d,h,y,w,A,S,I,T,x)=>{d=d||$t,h=h||$t;const v=d.length,H=h.length,L=Math.min(v,H);let B;for(B=0;BH?He(d,A,S,!0,!1,L):V(h,y,w,A,S,I,T,x,L)},ze=(d,h,y,w,A,S,I,T,x)=>{let v=0;const H=h.length;let L=d.length-1,B=H-1;for(;v<=L&&v<=B;){const $=d[v],Y=h[v]=x?Rt(h[v]):st(h[v]);if(rn($,Y))b($,Y,y,null,A,S,I,T,x);else break;v++}for(;v<=L&&v<=B;){const $=d[L],Y=h[B]=x?Rt(h[B]):st(h[B]);if(rn($,Y))b($,Y,y,null,A,S,I,T,x);else break;L--,B--}if(v>L){if(v<=B){const $=B+1,Y=$B)for(;v<=L;)fe(d[v],A,S,!0),v++;else{const $=v,Y=v,oe=new Map;for(v=Y;v<=B;v++){const Le=h[v]=x?Rt(h[v]):st(h[v]);Le.key!=null&&oe.set(Le.key,v)}let re,Pe=0;const Ne=B-Y+1;let Qe=!1,Ye=0;const tn=new Array(Ne);for(v=0;v=Ne){fe(Le,A,S,!0);continue}let Ze;if(Le.key!=null)Ze=oe.get(Le.key);else for(re=Y;re<=B;re++)if(tn[re-Y]===0&&rn(Le,h[re])){Ze=re;break}Ze===void 0?fe(Le,A,S,!0):(tn[Ze-Y]=v+1,Ze>=Ye?Ye=Ze:Qe=!0,b(Le,h[Ze],y,null,A,S,I,T,x),Pe++)}const js=Qe?ka(tn):$t;for(re=js.length-1,v=Ne-1;v>=0;v--){const Le=Y+v,Ze=h[Le],Bs=h[Le+1],Hs=Le+1{const{el:S,type:I,transition:T,children:x,shapeFlag:v}=d;if(v&6){me(d.component.subTree,h,y,w);return}if(v&128){d.suspense.move(h,y,w);return}if(v&64){I.move(d,h,y,j);return}if(I===Fe){r(S,h,y);for(let L=0;LT.enter(S),A);else{const{leave:L,delayLeave:B,afterLeave:$}=T,Y=()=>{d.ctx.isUnmounted?s(S):r(S,h,y)},oe=()=>{S._isLeaving&&S[ra](!0),L(S,()=>{Y(),$&&$()})};B?B(S,Y,oe):oe()}else r(S,h,y)},fe=(d,h,y,w=!1,A=!1)=>{const{type:S,props:I,ref:T,children:x,dynamicChildren:v,shapeFlag:H,patchFlag:L,dirs:B,cacheIndex:$}=d;if(L===-2&&(A=!1),T!=null&&(ht(),hn(T,null,y,d,!0),pt()),$!=null&&(h.renderCache[$]=void 0),H&256){h.ctx.deactivate(d);return}const Y=H&1&&B,oe=!Gt(d);let re;if(oe&&(re=I&&I.onVnodeBeforeUnmount)&&et(re,h,d),H&6)Xe(d.component,y,w);else{if(H&128){d.suspense.unmount(y,w);return}Y&&Tt(d,null,h,"beforeUnmount"),H&64?d.type.remove(d,h,y,j,w):v&&!v.hasOnce&&(S!==Fe||L>0&&L&64)?He(v,h,y,!1,!0):(S===Fe&&L&384||!A&&H&16)&&He(x,h,y),w&&Je(d)}(oe&&(re=I&&I.onVnodeUnmounted)||Y)&&ve(()=>{re&&et(re,h,d),Y&&Tt(d,null,h,"unmounted")},y)},Je=d=>{const{type:h,el:y,anchor:w,transition:A}=d;if(h===Fe){qe(y,w);return}if(h===Vn){P(d);return}const S=()=>{s(y),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(d.shapeFlag&1&&A&&!A.persisted){const{leave:I,delayLeave:T}=A,x=()=>I(y,S);T?T(d.el,S,x):x()}else S()},qe=(d,h)=>{let y;for(;d!==h;)y=p(d),s(d),d=y;s(h)},Xe=(d,h,y)=>{const{bum:w,scope:A,job:S,subTree:I,um:T,m:x,a:v}=d;no(x),no(v),w&&Bn(w),A.stop(),S&&(S.flags|=8,fe(I,d,h,y)),T&&ve(T,h),ve(()=>{d.isUnmounted=!0},h)},He=(d,h,y,w=!1,A=!1,S=0)=>{for(let I=S;I{if(d.shapeFlag&6)return R(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const h=p(d.anchor||d.el),y=h&&h[Hi];return y?p(y):h};let F=!1;const D=(d,h,y)=>{let w;d==null?h._vnode&&(fe(h._vnode,null,null,!0),w=h._vnode.component):b(h._vnode||null,d,h,null,null,null,y),h._vnode=d,F||(F=!0,$s(w),Fi(),F=!1)},j={p:b,um:fe,m:me,r:Je,mt:Re,mc:V,pc:z,pbc:ee,n:R,o:e};return{render:D,hydrate:void 0,createApp:Aa(D)}}function Nr({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 Ct({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Ha(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Cs(e,t,n=!1){const r=e.children,s=t.children;if(q(r)&&q(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function il(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:il(t)}function no(e){if(e)for(let t=0;te.__isSuspense;function Va(e,t){t&&t.pendingBranch?q(e)?t.effects.push(...e):t.effects.push(e):Jc(e)}const Fe=Symbol.for("v-fgt"),mr=Symbol.for("v-txt"),gt=Symbol.for("v-cmt"),Vn=Symbol.for("v-stc"),mn=[];let Ue=null;function er(e=!1){mn.push(Ue=e?null:[])}function qa(){mn.pop(),Ue=mn[mn.length-1]||null}let Sn=1;function tr(e,t=!1){Sn+=e,e<0&&Ue&&t&&(Ue.hasOnce=!0)}function al(e){return e.dynamicChildren=Sn>0?Ue||$t:null,qa(),Sn>0&&Ue&&Ue.push(e),e}function Th(e,t,n,r,s,o){return al(fl(e,t,n,r,s,o,!0))}function nr(e,t,n,r,s){return al(Ce(e,t,n,r,s,!0))}function Rn(e){return e?e.__v_isVNode===!0:!1}function rn(e,t){return e.type===t.type&&e.key===t.key}const ul=({key:e})=>e??null,qn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?de(e)||ce(e)||W(e)?{i:we,r:e,k:t,f:!!n}:e:null);function fl(e,t=null,n=null,r=0,s=null,o=e===Fe?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ul(t),ref:t&&qn(t),scopeId:Ui,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:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:we};return l?(Ps(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=de(n)?8:16),Sn>0&&!i&&Ue&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Ue.push(c),c}const Ce=$a;function $a(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===ga)&&(e=gt),Rn(e)){const l=Jt(e,t,!0);return n&&Ps(l,n),Sn>0&&!o&&Ue&&(l.shapeFlag&6?Ue[Ue.indexOf(e)]=l:Ue.push(l)),l.patchFlag=-2,l}if(tu(e)&&(e=e.__vccOpts),t){t=Ka(t);let{class:l,style:c}=t;l&&!de(l)&&(t.class=ms(l)),le(c)&&(fr(c)&&!q(c)&&(c=Se({},c)),t.style=ps(c))}const i=de(e)?1:cl(e)?128:ta(e)?64:le(e)?4:W(e)?2:0;return fl(e,t,n,r,s,i,o,!0)}function Ka(e){return e?fr(e)||el(e)?Se({},e):e:null}function Jt(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?Ga(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&ul(u),ref:t&&t.ref?n&&o?q(o)?o.concat(qn(t)):[o,qn(t)]:qn(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!==Fe?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&&Jt(e.ssContent),ssFallback:e.ssFallback&&Jt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&vs(a,c.clone(a)),a}function Wa(e=" ",t=0){return Ce(mr,null,e,t)}function Ch(e,t){const n=Ce(Vn,null,e);return n.staticCount=t,n}function Ph(e="",t=!1){return t?(er(),nr(gt,null,e)):Ce(gt,null,e)}function st(e){return e==null||typeof e=="boolean"?Ce(gt):q(e)?Ce(Fe,null,e.slice()):Rn(e)?Rt(e):Ce(mr,null,String(e))}function Rt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Jt(e)}function Ps(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(q(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Ps(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!el(t)?t._ctx=we:s===3&&we&&(we.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else W(t)?(t={default:t,_ctx:we},n=32):(t=String(t),r&64?(n=16,t=[Wa(t)]):n=8);e.children=t,e.shapeFlag|=n}function Ga(...e){const t={};for(let n=0;nTe||we;let rr,Yr;{const e=ar(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};rr=t("__VUE_INSTANCE_SETTERS__",n=>Te=n),Yr=t("__VUE_SSR_SETTERS__",n=>An=n)}const Tn=e=>{const t=Te;return rr(e),e.scope.on(),()=>{e.scope.off(),rr(t)}},ro=()=>{Te&&Te.scope.off(),rr(null)};function hl(e){return e.vnode.shapeFlag&4}let An=!1;function Qa(e,t=!1,n=!1){t&&Yr(t);const{props:r,children:s}=e.vnode,o=hl(e);Ia(e,r,o,t),Ma(e,s,n||t);const i=o?Ya(e,t):void 0;return t&&Yr(!1),i}function Ya(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,ya);const{setup:r}=n;if(r){ht();const s=e.setupContext=r.length>1?eu(e):null,o=Tn(e),i=xn(r,e,0,[e.props,s]),l=si(i);if(pt(),o(),(l||e.sp)&&!Gt(e)&&qi(e),l){if(i.then(ro,ro),t)return i.then(c=>{so(e,c)}).catch(c=>{dr(c,e,0)});e.asyncDep=i}else so(e,i)}else pl(e)}function so(e,t,n){W(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:le(t)&&(e.setupState=Ni(t)),pl(e)}function pl(e,t,n){const r=e.type;e.render||(e.render=r.render||ot);{const s=Tn(e);ht();try{_a(e)}finally{pt(),s()}}}const Za={get(e,t){return be(e,"get",""),e[t]}};function eu(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Za),slots:e.slots,emit:e.emit,expose:t}}function gr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ni(Ss(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in pn)return pn[n](e)},has(t,n){return n in t||n in pn}})):e.proxy}function tu(e){return W(e)&&"__vccOpts"in e}const Me=(e,t)=>$c(e,t,An);function ml(e,t,n){try{tr(-1);const r=arguments.length;return r===2?le(t)&&!q(t)?Rn(t)?Ce(e,null,[t]):Ce(e,t):Ce(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Rn(n)&&(n=[n]),Ce(e,t,n))}finally{tr(1)}}const nu="3.5.26";let Zr;const oo=typeof window<"u"&&window.trustedTypes;if(oo)try{Zr=oo.createPolicy("vue",{createHTML:e=>e})}catch{}const gl=Zr?e=>Zr.createHTML(e):e=>e,ru="http://www.w3.org/2000/svg",su="http://www.w3.org/1998/Math/MathML",ut=typeof document<"u"?document:null,io=ut&&ut.createElement("template"),ou={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?ut.createElementNS(ru,e):t==="mathml"?ut.createElementNS(su,e):n?ut.createElement(e,{is:n}):ut.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>ut.createTextNode(e),createComment:e=>ut.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ut.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{io.innerHTML=gl(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=io.content;if(r==="svg"||r==="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]}},iu=Symbol("_vtc");function lu(e,t,n){const r=e[iu];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const lo=Symbol("_vod"),cu=Symbol("_vsh"),au=Symbol(""),uu=/(?:^|;)\s*display\s*:/;function fu(e,t,n){const r=e.style,s=de(n);let o=!1;if(n&&!s){if(t)if(de(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&$n(r,l,"")}else for(const i in t)n[i]==null&&$n(r,i,"");for(const i in n)i==="display"&&(o=!0),$n(r,i,n[i])}else if(s){if(t!==n){const i=r[au];i&&(n+=";"+i),r.cssText=n,o=uu.test(n)}}else t&&e.removeAttribute("style");lo in e&&(e[lo]=o?r.display:"",e[cu]&&(r.display="none"))}const co=/\s*!important$/;function $n(e,t,n){if(q(n))n.forEach(r=>$n(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=du(e,t);co.test(n)?e.setProperty(jt(r),n.replace(co,""),"important"):e[r]=n}}const ao=["Webkit","Moz","ms"],Ir={};function du(e,t){const n=Ir[t];if(n)return n;let r=xt(t);if(r!=="filter"&&r in e)return Ir[t]=r;r=li(r);for(let s=0;sDr||(gu.then(()=>Dr=0),Dr=Date.now());function _u(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;lt(bu(r,n.value),t,5,[r])};return n.value=e,n.attached=yu(),n}function bu(e,t){if(q(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const go=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Eu=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?lu(e,r,i):t==="style"?fu(e,n,r):or(t)?fs(t)||pu(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):wu(e,t,r,i))?(ho(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&fo(e,t,r,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!de(r))?ho(e,xt(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),fo(e,t,r,i))};function wu(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&go(t)&&W(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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return go(t)&&de(n)?!1:t in e}const yo=e=>{const t=e.props["onUpdate:modelValue"]||!1;return q(t)?n=>Bn(t,n):t};function Su(e){e.target.composing=!0}function _o(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Lr=Symbol("_assign");function bo(e,t,n){return t&&(e=e.trim()),n&&(e=hs(e)),e}const Nh={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Lr]=yo(s);const o=r||s.props&&s.props.type==="number";Vt(e,t?"change":"input",i=>{i.target.composing||e[Lr](bo(e.value,n,o))}),(n||o)&&Vt(e,"change",()=>{e.value=bo(e.value,n,o)}),t||(Vt(e,"compositionstart",Su),Vt(e,"compositionend",_o),Vt(e,"change",_o))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Lr]=yo(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?hs(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},Ru=["ctrl","shift","alt","meta"],Au={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Ru.some(n=>e[`${n}Key`]&&!t.includes(n))},Ih=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const t=Ou().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Cu(r);if(!s)return;const o=t._component;!W(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,Tu(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t});function Tu(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Cu(e){return de(e)?document.querySelector(e):e}let yl;const yr=e=>yl=e,_l=Symbol();function es(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var gn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(gn||(gn={}));function Pu(){const e=hi(!0),t=e.run(()=>Lt({}));let n=[],r=[];const s=Ss({install(o){yr(s),s._a=o,o.provide(_l,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const bl=()=>{};function wo(e,t,n,r=bl){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&pi()&&gc(s),s}function Ht(e,...t){e.forEach(n=>{n(...t)})}const Nu=e=>e(),So=Symbol(),Fr=Symbol();function ts(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];es(s)&&es(r)&&e.hasOwnProperty(n)&&!ce(r)&&!it(r)?e[n]=ts(s,r):e[n]=r}return e}const Iu=Symbol();function Du(e){return!es(e)||!Object.prototype.hasOwnProperty.call(e,Iu)}const{assign:Et}=Object;function Lu(e){return!!(ce(e)&&e.effect)}function Fu(e,t,n,r){const{state:s,actions:o,getters:i}=t,l=n.state.value[e];let c;function u(){l||(n.state.value[e]=s?s():{});const a=Bc(n.state.value[e]);return Et(a,o,Object.keys(i||{}).reduce((f,p)=>(f[p]=Ss(Me(()=>{yr(n);const m=n._s.get(e);return i[p].call(m,m)})),f),{}))}return c=El(e,u,t,n,r,!0),c}function El(e,t,n={},r,s,o){let i;const l=Et({actions:{}},n),c={deep:!0};let u,a,f=new Set,p=new Set,m;const g=r.state.value[e];!o&&!g&&(r.state.value[e]={}),Lt({});let b;function E(V){let U;u=a=!1,typeof V=="function"?(V(r.state.value[e]),U={type:gn.patchFunction,storeId:e,events:m}):(ts(r.state.value[e],V),U={type:gn.patchObject,payload:V,storeId:e,events:m});const ee=b=Symbol();Rs().then(()=>{b===ee&&(u=!0)}),a=!0,Ht(f,U,r.state.value[e])}const O=o?function(){const{state:U}=n,ee=U?U():{};this.$patch(ue=>{Et(ue,ee)})}:bl;function C(){i.stop(),f.clear(),p.clear(),r._s.delete(e)}const N=(V,U="")=>{if(So in V)return V[Fr]=U,V;const ee=function(){yr(r);const ue=Array.from(arguments),ye=new Set,pe=new Set;function Re(K){ye.add(K)}function Ve(K){pe.add(K)}Ht(p,{args:ue,name:ee[Fr],store:M,after:Re,onError:Ve});let J;try{J=V.apply(this&&this.$id===e?this:M,ue)}catch(K){throw Ht(pe,K),K}return J instanceof Promise?J.then(K=>(Ht(ye,K),K)).catch(K=>(Ht(pe,K),Promise.reject(K))):(Ht(ye,J),J)};return ee[So]=!0,ee[Fr]=U,ee},P={_p:r,$id:e,$onAction:wo.bind(null,p),$patch:E,$reset:O,$subscribe(V,U={}){const ee=wo(f,V,U.detached,()=>ue()),ue=i.run(()=>fn(()=>r.state.value[e],ye=>{(U.flush==="sync"?a:u)&&V({storeId:e,type:gn.direct,events:m},ye)},Et({},c,U)));return ee},$dispose:C},M=On(P);r._s.set(e,M);const k=(r._a&&r._a.runWithContext||Nu)(()=>r._e.run(()=>(i=hi()).run(()=>t({action:N}))));for(const V in k){const U=k[V];if(ce(U)&&!Lu(U)||it(U))o||(g&&Du(U)&&(ce(U)?U.value=g[V]:ts(U,g[V])),r.state.value[e][V]=U);else if(typeof U=="function"){const ee=N(U,V);k[V]=ee,l.actions[V]=U}}return Et(M,k),Et(Z(M),k),Object.defineProperty(M,"$state",{get:()=>r.state.value[e],set:V=>{E(U=>{Et(U,V)})}}),r._p.forEach(V=>{Et(M,i.run(()=>V({store:M,app:r._a,pinia:r,options:l})))}),g&&o&&n.hydrate&&n.hydrate(M.$state,g),u=!0,a=!0,M}function Mu(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,l){const c=Qc();return i=i||(c?ke(_l,null):null),i&&yr(i),i=yl,i._s.has(e)||(s?El(e,t,r,i):Fu(e,r,i)),i._s.get(e)}return o.$id=e,o}function Dh(e){const t=Z(e),n={};for(const r in t){const s=t[r];s.effect?n[r]=Me({get:()=>e[r],set(o){e[r]=o}}):(ce(s)||it(s))&&(n[r]=Vc(e,r))}return n}const Uu="modulepreload",ju=function(e){return"/"+e},Ro={},tt=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let c=function(u){return Promise.all(u.map(a=>Promise.resolve(a).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=c(n.map(u=>{if(u=ju(u),u in Ro)return;Ro[u]=!0;const a=u.endsWith(".css"),f=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const p=document.createElement("link");if(p.rel=a?"stylesheet":Uu,a||(p.as="script"),p.crossOrigin="",p.href=u,l&&p.setAttribute("nonce",l),document.head.appendChild(p),a)return new Promise((m,g)=>{p.addEventListener("load",m),p.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})};const qt=typeof document<"u";function wl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Bu(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&wl(e.default)}const te=Object.assign;function Mr(e,t){const n={};for(const r in t){const s=t[r];n[r]=We(s)?s.map(e):e(s)}return n}const yn=()=>{},We=Array.isArray;function Ao(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const Sl=/#/g,Hu=/&/g,ku=/\//g,Vu=/=/g,qu=/\?/g,Rl=/\+/g,$u=/%5B/g,Ku=/%5D/g,Al=/%5E/g,Wu=/%60/g,vl=/%7B/g,Gu=/%7C/g,Ol=/%7D/g,zu=/%20/g;function Ns(e){return e==null?"":encodeURI(""+e).replace(Gu,"|").replace($u,"[").replace(Ku,"]")}function Ju(e){return Ns(e).replace(vl,"{").replace(Ol,"}").replace(Al,"^")}function ns(e){return Ns(e).replace(Rl,"%2B").replace(zu,"+").replace(Sl,"%23").replace(Hu,"%26").replace(Wu,"`").replace(vl,"{").replace(Ol,"}").replace(Al,"^")}function Xu(e){return ns(e).replace(Vu,"%3D")}function Qu(e){return Ns(e).replace(Sl,"%23").replace(qu,"%3F")}function Yu(e){return Qu(e).replace(ku,"%2F")}function vn(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Zu=/\/$/,ef=e=>e.replace(Zu,"");function Ur(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return c=l>=0&&c>l?-1:c,c>=0&&(r=t.slice(0,c),o=t.slice(c,l>0?l:t.length),s=e(o.slice(1))),l>=0&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=sf(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:vn(i)}}function tf(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function vo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function nf(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&Xt(t.matched[r],n.matched[s])&&xl(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Xt(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function xl(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!rf(e[n],t[n]))return!1;return!0}function rf(e,t){return We(e)?Oo(e,t):We(t)?Oo(t,e):e?.valueOf()===t?.valueOf()}function Oo(e,t){return We(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function sf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const bt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let rs=(function(e){return e.pop="pop",e.push="push",e})({}),jr=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function of(e){if(!e)if(qt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),ef(e)}const lf=/^[^#]+#/;function cf(e,t){return e.replace(lf,"#")+t}function af(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const _r=()=>({left:window.scrollX,top:window.scrollY});function uf(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=af(s,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 xo(e,t){return(history.state?history.state.position-t:-1)+e}const ss=new Map;function ff(e,t){ss.set(e,t)}function df(e){const t=ss.get(e);return ss.delete(e),t}function hf(e){return typeof e=="string"||e&&typeof e=="object"}function Tl(e){return typeof e=="string"||typeof e=="symbol"}let ae=(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 Cl=Symbol("");ae.MATCHER_NOT_FOUND+"",ae.NAVIGATION_GUARD_REDIRECT+"",ae.NAVIGATION_ABORTED+"",ae.NAVIGATION_CANCELLED+"",ae.NAVIGATION_DUPLICATED+"";function Qt(e,t){return te(new Error,{type:e,[Cl]:!0},t)}function at(e,t){return e instanceof Error&&Cl in e&&(t==null||!!(e.type&t))}const pf=["params","query","hash"];function mf(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of pf)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function gf(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&ns(s)):[r&&ns(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function yf(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=We(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const _f=Symbol(""),Co=Symbol(""),br=Symbol(""),Is=Symbol(""),os=Symbol("");function sn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function At(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,c)=>{const u=p=>{p===!1?c(Qt(ae.NAVIGATION_ABORTED,{from:n,to:t})):p instanceof Error?c(p):hf(p)?c(Qt(ae.NAVIGATION_GUARD_REDIRECT,{from:t,to:p})):(i&&r.enterCallbacks[s]===i&&typeof p=="function"&&i.push(p),l())},a=o(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(a);e.length<3&&(f=f.then(u)),f.catch(p=>c(p))})}function Br(e,t,n,r,s=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(wl(c)){const u=(c.__vccOpts||c)[t];u&&o.push(At(u,n,r,i,l,s))}else{let u=c();o.push(()=>u.then(a=>{if(!a)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=Bu(a)?a.default:a;i.mods[l]=a,i.components[l]=f;const p=(f.__vccOpts||f)[t];return p&&At(p,n,r,i,l,s)()}))}}return o}function bf(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;iXt(u,l))?r.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(u=>Xt(u,c))||s.push(c))}return[n,r,s]}let Ef=()=>location.protocol+"//"+location.host;function Pl(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(i);return l[0]!=="/"&&(l="/"+l),vo(l,"")}return vo(n,e)+r+s}function wf(e,t,n,r){let s=[],o=[],i=null;const l=({state:p})=>{const m=Pl(e,location),g=n.value,b=t.value;let E=0;if(p){if(n.value=m,t.value=p,i&&i===g){i=null;return}E=b?p.position-b.position:0}else r(m);s.forEach(O=>{O(n.value,g,{delta:E,type:rs.pop,direction:E?E>0?jr.forward:jr.back:jr.unknown})})};function c(){i=n.value}function u(p){s.push(p);const m=()=>{const g=s.indexOf(p);g>-1&&s.splice(g,1)};return o.push(m),m}function a(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(te({},p.state,{scroll:_r()}),"")}}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,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?_r():null}}function Sf(e){const{history:t,location:n}=window,r={value:Pl(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.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:Ef()+e+c;try{t[a?"replaceState":"pushState"](u,"",p),s.value=u}catch(m){console.error(m),n[a?"replace":"assign"](p)}}function i(c,u){o(c,te({},t.state,Po(s.value.back,c,s.value.forward,!0),u,{position:s.value.position}),!0),r.value=c}function l(c,u){const a=te({},s.value,t.state,{forward:c,scroll:_r()});o(a.current,a,!0),o(c,te({},Po(r.value,c,null),{position:a.position+1},u),!1),r.value=c}return{location:r,state:s,push:l,replace:i}}function Rf(e){e=of(e);const t=Sf(e),n=wf(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=te({location:"",base:e,go:r,createHref:cf.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function Af(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),Rf(e)}let Nt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var ge=(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})(ge||{});const vf={type:Nt.Static,value:""},Of=/[a-zA-Z0-9_]/;function xf(e){if(!e)return[[]];if(e==="/")return[[vf]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${u}": ${m}`)}let n=ge.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,c,u="",a="";function f(){u&&(n===ge.Static?o.push({type:Nt.Static,value:u}):n===ge.Param||n===ge.ParamRegExp||n===ge.ParamRegExpEnd?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:Nt.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]===Oe.Static+Oe.Segment?1:-1:0}function Nl(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const If={strict:!1,end:!0,sensitive:!1};function Df(e,t,n){const r=Pf(xf(e.path),n),s=te(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function Lf(e,t){const n=[],r=new Map;t=Ao(If,t);function s(f){return r.get(f)}function o(f,p,m){const g=!m,b=Lo(f);b.aliasOf=m&&m.record;const E=Ao(t,f),O=[b];if("alias"in f){const P=typeof f.alias=="string"?[f.alias]:f.alias;for(const M of P)O.push(Lo(te({},b,{components:m?m.record.components:b.components,path:M,aliasOf:m?m.record:b})))}let C,N;for(const P of O){const{path:M}=P;if(p&&M[0]!=="/"){const X=p.record.path,k=X[X.length-1]==="/"?"":"/";P.path=p.record.path+(M&&k+M)}if(C=Df(P,p,E),m?m.alias.push(C):(N=N||C,N!==C&&N.alias.push(C),g&&f.name&&!Fo(C)&&i(f.name)),Il(C)&&c(C),b.children){const X=b.children;for(let k=0;k{i(N)}:yn}function i(f){if(Tl(f)){const p=r.get(f);p&&(r.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&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function c(f){const p=Uf(f,n);n.splice(p,0,f),f.record.name&&!Fo(f)&&r.set(f.record.name,f)}function u(f,p){let m,g={},b,E;if("name"in f&&f.name){if(m=r.get(f.name),!m)throw Qt(ae.MATCHER_NOT_FOUND,{location:f});E=m.record.name,g=te(Do(p.params,m.keys.filter(N=>!N.optional).concat(m.parent?m.parent.keys.filter(N=>N.optional):[]).map(N=>N.name)),f.params&&Do(f.params,m.keys.map(N=>N.name))),b=m.stringify(g)}else if(f.path!=null)b=f.path,m=n.find(N=>N.re.test(b)),m&&(g=m.parse(b),E=m.record.name);else{if(m=p.name?r.get(p.name):n.find(N=>N.re.test(p.path)),!m)throw Qt(ae.MATCHER_NOT_FOUND,{location:f,currentLocation:p});E=m.record.name,g=te({},p.params,f.params),b=m.stringify(g)}const O=[];let C=m;for(;C;)O.unshift(C.record),C=C.parent;return{name:E,path:b,params:g,matched:O,meta:Mf(O)}}e.forEach(f=>o(f));function a(){n.length=0,r.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:a,getRoutes:l,getRecordMatcher:s}}function Do(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function Lo(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Ff(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 Ff(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function Fo(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Mf(e){return e.reduce((t,n)=>te(t,n.meta),{})}function Uf(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;Nl(e,t[o])<0?r=o:n=o+1}const s=jf(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function jf(e){let t=e;for(;t=t.parent;)if(Il(t)&&Nl(e,t)===0)return t}function Il({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Mo(e){const t=ke(br),n=ke(Is),r=Me(()=>{const c=Ot(e.to);return t.resolve(c)}),s=Me(()=>{const{matched:c}=r.value,{length:u}=c,a=c[u-1],f=n.matched;if(!a||!f.length)return-1;const p=f.findIndex(Xt.bind(null,a));if(p>-1)return p;const m=Uo(c[u-2]);return u>1&&Uo(a)===m&&f[f.length-1].path!==m?f.findIndex(Xt.bind(null,c[u-2])):p}),o=Me(()=>s.value>-1&&qf(n.params,r.value.params)),i=Me(()=>s.value>-1&&s.value===n.matched.length-1&&xl(n.params,r.value.params));function l(c={}){if(Vf(c)){const u=t[Ot(e.replace)?"replace":"push"](Ot(e.to)).catch(yn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Me(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function Bf(e){return e.length===1?e[0]:e}const Hf=Os({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=On(Mo(e)),{options:r}=ke(br),s=Me(()=>({[jo(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[jo(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&Bf(t.default(n));return e.custom?o:ml("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),kf=Hf;function Vf(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 qf(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!We(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function Uo(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const jo=(e,t,n)=>e??t??n,$f=Os({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=ke(os),s=Me(()=>e.route||r.value),o=ke(Co,0),i=Me(()=>{let u=Ot(o);const{matched:a}=s.value;let f;for(;(f=a[u])&&!f.components;)u++;return u}),l=Me(()=>s.value.matched[i.value]);Hn(Co,Me(()=>i.value+1)),Hn(_f,l),Hn(os,s);const c=Lt();return fn(()=>[c.value,l.value,e.name],([u,a,f],[p,m,g])=>{a&&(a.instances[f]=u,m&&m!==a&&u&&u===p&&(a.leaveGuards.size||(a.leaveGuards=m.leaveGuards),a.updateGuards.size||(a.updateGuards=m.updateGuards))),u&&a&&(!m||!Xt(a,m)||!p)&&(a.enterCallbacks[f]||[]).forEach(b=>b(u))},{flush:"post"}),()=>{const u=s.value,a=e.name,f=l.value,p=f&&f.components[a];if(!p)return Bo(n.default,{Component:p,route:u});const m=f.props[a],g=m?m===!0?u.params:typeof m=="function"?m(u):m:null,E=ml(p,te({},g,t,{onVnodeUnmounted:O=>{O.component.isUnmounted&&(f.instances[a]=null)},ref:c}));return Bo(n.default,{Component:E,route:u})||E}}});function Bo(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Dl=$f;function Kf(e){const t=Lf(e.routes,e),n=e.parseQuery||gf,r=e.stringifyQuery||To,s=e.history,o=sn(),i=sn(),l=sn(),c=Mc(bt);let u=bt;qt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const a=Mr.bind(null,R=>""+R),f=Mr.bind(null,Yu),p=Mr.bind(null,vn);function m(R,F){let D,j;return Tl(R)?(D=t.getRecordMatcher(R),j=F):j=R,t.addRoute(j,D)}function g(R){const F=t.getRecordMatcher(R);F&&t.removeRoute(F)}function b(){return t.getRoutes().map(R=>R.record)}function E(R){return!!t.getRecordMatcher(R)}function O(R,F){if(F=te({},F||c.value),typeof R=="string"){const y=Ur(n,R,F.path),w=t.resolve({path:y.path},F),A=s.createHref(y.fullPath);return te(y,w,{params:p(w.params),hash:vn(y.hash),redirectedFrom:void 0,href:A})}let D;if(R.path!=null)D=te({},R,{path:Ur(n,R.path,F.path).path});else{const y=te({},R.params);for(const w in y)y[w]==null&&delete y[w];D=te({},R,{params:f(y)}),F.params=f(F.params)}const j=t.resolve(D,F),Q=R.hash||"";j.params=a(p(j.params));const d=tf(r,te({},R,{hash:Ju(Q),path:j.path})),h=s.createHref(d);return te({fullPath:d,hash:Q,query:r===To?yf(R.query):R.query||{}},j,{redirectedFrom:void 0,href:h})}function C(R){return typeof R=="string"?Ur(n,R,c.value.path):te({},R)}function N(R,F){if(u!==R)return Qt(ae.NAVIGATION_CANCELLED,{from:F,to:R})}function P(R){return k(R)}function M(R){return P(te(C(R),{replace:!0}))}function X(R,F){const D=R.matched[R.matched.length-1];if(D&&D.redirect){const{redirect:j}=D;let Q=typeof j=="function"?j(R,F):j;return typeof Q=="string"&&(Q=Q.includes("?")||Q.includes("#")?Q=C(Q):{path:Q},Q.params={}),te({query:R.query,hash:R.hash,params:Q.path!=null?{}:R.params},Q)}}function k(R,F){const D=u=O(R),j=c.value,Q=R.state,d=R.force,h=R.replace===!0,y=X(D,j);if(y)return k(te(C(y),{state:typeof y=="object"?te({},Q,y.state):Q,force:d,replace:h}),F||D);const w=D;w.redirectedFrom=F;let A;return!d&&nf(r,j,D)&&(A=Qt(ae.NAVIGATION_DUPLICATED,{to:w,from:j}),me(j,j,!0,!1)),(A?Promise.resolve(A):ee(w,j)).catch(S=>at(S)?at(S,ae.NAVIGATION_GUARD_REDIRECT)?S:ze(S):z(S,w,j)).then(S=>{if(S){if(at(S,ae.NAVIGATION_GUARD_REDIRECT))return k(te({replace:h},C(S.to),{state:typeof S.to=="object"?te({},Q,S.to.state):Q,force:d}),F||w)}else S=ye(w,j,!0,h,Q);return ue(w,j,S),S})}function V(R,F){const D=N(R,F);return D?Promise.reject(D):Promise.resolve()}function U(R){const F=qe.values().next().value;return F&&typeof F.runWithContext=="function"?F.runWithContext(R):R()}function ee(R,F){let D;const[j,Q,d]=bf(R,F);D=Br(j.reverse(),"beforeRouteLeave",R,F);for(const y of j)y.leaveGuards.forEach(w=>{D.push(At(w,R,F))});const h=V.bind(null,R,F);return D.push(h),He(D).then(()=>{D=[];for(const y of o.list())D.push(At(y,R,F));return D.push(h),He(D)}).then(()=>{D=Br(Q,"beforeRouteUpdate",R,F);for(const y of Q)y.updateGuards.forEach(w=>{D.push(At(w,R,F))});return D.push(h),He(D)}).then(()=>{D=[];for(const y of d)if(y.beforeEnter)if(We(y.beforeEnter))for(const w of y.beforeEnter)D.push(At(w,R,F));else D.push(At(y.beforeEnter,R,F));return D.push(h),He(D)}).then(()=>(R.matched.forEach(y=>y.enterCallbacks={}),D=Br(d,"beforeRouteEnter",R,F,U),D.push(h),He(D))).then(()=>{D=[];for(const y of i.list())D.push(At(y,R,F));return D.push(h),He(D)}).catch(y=>at(y,ae.NAVIGATION_CANCELLED)?y:Promise.reject(y))}function ue(R,F,D){l.list().forEach(j=>U(()=>j(R,F,D)))}function ye(R,F,D,j,Q){const d=N(R,F);if(d)return d;const h=F===bt,y=qt?history.state:{};D&&(j||h?s.replace(R.fullPath,te({scroll:h&&y&&y.scroll},Q)):s.push(R.fullPath,Q)),c.value=R,me(R,F,D,h),ze()}let pe;function Re(){pe||(pe=s.listen((R,F,D)=>{if(!Xe.listening)return;const j=O(R),Q=X(j,Xe.currentRoute.value);if(Q){k(te(Q,{replace:!0,force:!0}),j).catch(yn);return}u=j;const d=c.value;qt&&ff(xo(d.fullPath,D.delta),_r()),ee(j,d).catch(h=>at(h,ae.NAVIGATION_ABORTED|ae.NAVIGATION_CANCELLED)?h:at(h,ae.NAVIGATION_GUARD_REDIRECT)?(k(te(C(h.to),{force:!0}),j).then(y=>{at(y,ae.NAVIGATION_ABORTED|ae.NAVIGATION_DUPLICATED)&&!D.delta&&D.type===rs.pop&&s.go(-1,!1)}).catch(yn),Promise.reject()):(D.delta&&s.go(-D.delta,!1),z(h,j,d))).then(h=>{h=h||ye(j,d,!1),h&&(D.delta&&!at(h,ae.NAVIGATION_CANCELLED)?s.go(-D.delta,!1):D.type===rs.pop&&at(h,ae.NAVIGATION_ABORTED|ae.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),ue(j,d,h)}).catch(yn)}))}let Ve=sn(),J=sn(),K;function z(R,F,D){ze(R);const j=J.list();return j.length?j.forEach(Q=>Q(R,F,D)):console.error(R),Promise.reject(R)}function Be(){return K&&c.value!==bt?Promise.resolve():new Promise((R,F)=>{Ve.add([R,F])})}function ze(R){return K||(K=!R,Re(),Ve.list().forEach(([F,D])=>R?D(R):F()),Ve.reset()),R}function me(R,F,D,j){const{scrollBehavior:Q}=e;if(!qt||!Q)return Promise.resolve();const d=!D&&df(xo(R.fullPath,0))||(j||!D)&&history.state&&history.state.scroll||null;return Rs().then(()=>Q(R,F,d)).then(h=>h&&uf(h)).catch(h=>z(h,R,F))}const fe=R=>s.go(R);let Je;const qe=new Set,Xe={currentRoute:c,listening:!0,addRoute:m,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:E,getRoutes:b,resolve:O,options:e,push:P,replace:M,go:fe,back:()=>fe(-1),forward:()=>fe(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:J.add,isReady:Be,install(R){R.component("RouterLink",kf),R.component("RouterView",Dl),R.config.globalProperties.$router=Xe,Object.defineProperty(R.config.globalProperties,"$route",{enumerable:!0,get:()=>Ot(c)}),qt&&!Je&&c.value===bt&&(Je=!0,P(s.location).catch(j=>{}));const F={};for(const j in bt)Object.defineProperty(F,j,{get:()=>c.value[j],enumerable:!0});R.provide(br,Xe),R.provide(Is,Ci(F)),R.provide(os,c);const D=R.unmount;qe.add(R),R.unmount=function(){qe.delete(R),qe.size<1&&(u=bt,pe&&pe(),pe=null,c.value=bt,Je=!1,K=!1),D()}}};function He(R){return R.reduce((F,D)=>F.then(()=>U(D)),Promise.resolve())}return Xe}function Lh(){return ke(br)}function Fh(e){return ke(Is)}function Ll(e,t){return function(){return e.apply(t,arguments)}}const{toString:Wf}=Object.prototype,{getPrototypeOf:Ds}=Object,{iterator:Er,toStringTag:Fl}=Symbol,wr=(e=>t=>{const n=Wf.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ge=e=>(e=e.toLowerCase(),t=>wr(t)===e),Sr=e=>t=>typeof t===e,{isArray:Zt}=Array,Yt=Sr("undefined");function Cn(e){return e!==null&&!Yt(e)&&e.constructor!==null&&!Yt(e.constructor)&&Ie(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Ml=Ge("ArrayBuffer");function Gf(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Ml(e.buffer),t}const zf=Sr("string"),Ie=Sr("function"),Ul=Sr("number"),Pn=e=>e!==null&&typeof e=="object",Jf=e=>e===!0||e===!1,Kn=e=>{if(wr(e)!=="object")return!1;const t=Ds(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Fl in e)&&!(Er in e)},Xf=e=>{if(!Pn(e)||Cn(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},Qf=Ge("Date"),Yf=Ge("File"),Zf=Ge("Blob"),ed=Ge("FileList"),td=e=>Pn(e)&&Ie(e.pipe),nd=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Ie(e.append)&&((t=wr(e))==="formdata"||t==="object"&&Ie(e.toString)&&e.toString()==="[object FormData]"))},rd=Ge("URLSearchParams"),[sd,od,id,ld]=["ReadableStream","Request","Response","Headers"].map(Ge),cd=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Nn(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),Zt(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const It=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Bl=e=>!Yt(e)&&e!==It;function is(){const{caseless:e,skipUndefined:t}=Bl(this)&&this||{},n={},r=(s,o)=>{const i=e&&jl(n,o)||o;Kn(n[i])&&Kn(s)?n[i]=is(n[i],s):Kn(s)?n[i]=is({},s):Zt(s)?n[i]=s.slice():(!t||!Yt(s))&&(n[i]=s)};for(let s=0,o=arguments.length;s(Nn(t,(s,o)=>{n&&Ie(s)?e[o]=Ll(s,n):e[o]=s},{allOwnKeys:r}),e),ud=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),fd=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},dd=(e,t,n,r)=>{let s,o,i;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&Ds(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},hd=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},pd=e=>{if(!e)return null;if(Zt(e))return e;let t=e.length;if(!Ul(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},md=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Ds(Uint8Array)),gd=(e,t)=>{const r=(e&&e[Er]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},yd=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},_d=Ge("HTMLFormElement"),bd=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),Ho=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Ed=Ge("RegExp"),Hl=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Nn(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},wd=e=>{Hl(e,(t,n)=>{if(Ie(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Ie(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Sd=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return Zt(e)?r(e):r(String(e).split(t)),n},Rd=()=>{},Ad=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function vd(e){return!!(e&&Ie(e.append)&&e[Fl]==="FormData"&&e[Er])}const Od=e=>{const t=new Array(10),n=(r,s)=>{if(Pn(r)){if(t.indexOf(r)>=0)return;if(Cn(r))return r;if(!("toJSON"in r)){t[s]=r;const o=Zt(r)?[]:{};return Nn(r,(i,l)=>{const c=n(i,s+1);!Yt(c)&&(o[l]=c)}),t[s]=void 0,o}}return r};return n(e,0)},xd=Ge("AsyncFunction"),Td=e=>e&&(Pn(e)||Ie(e))&&Ie(e.then)&&Ie(e.catch),kl=((e,t)=>e?setImmediate:t?((n,r)=>(It.addEventListener("message",({source:s,data:o})=>{s===It&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),It.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Ie(It.postMessage)),Cd=typeof queueMicrotask<"u"?queueMicrotask.bind(It):typeof process<"u"&&process.nextTick||kl,Pd=e=>e!=null&&Ie(e[Er]),_={isArray:Zt,isArrayBuffer:Ml,isBuffer:Cn,isFormData:nd,isArrayBufferView:Gf,isString:zf,isNumber:Ul,isBoolean:Jf,isObject:Pn,isPlainObject:Kn,isEmptyObject:Xf,isReadableStream:sd,isRequest:od,isResponse:id,isHeaders:ld,isUndefined:Yt,isDate:Qf,isFile:Yf,isBlob:Zf,isRegExp:Ed,isFunction:Ie,isStream:td,isURLSearchParams:rd,isTypedArray:md,isFileList:ed,forEach:Nn,merge:is,extend:ad,trim:cd,stripBOM:ud,inherits:fd,toFlatObject:dd,kindOf:wr,kindOfTest:Ge,endsWith:hd,toArray:pd,forEachEntry:gd,matchAll:yd,isHTMLForm:_d,hasOwnProperty:Ho,hasOwnProp:Ho,reduceDescriptors:Hl,freezeMethods:wd,toObjectSet:Sd,toCamelCase:bd,noop:Rd,toFiniteNumber:Ad,findKey:jl,global:It,isContextDefined:Bl,isSpecCompliantForm:vd,toJSONObject:Od,isAsyncFn:xd,isThenable:Td,setImmediate:kl,asap:Cd,isIterable:Pd};function G(e,t,n,r,s){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),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}_.inherits(G,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:_.toJSONObject(this.config),code:this.code,status:this.status}}});const Vl=G.prototype,ql={};["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=>{ql[e]={value:e}});Object.defineProperties(G,ql);Object.defineProperty(Vl,"isAxiosError",{value:!0});G.from=(e,t,n,r,s,o)=>{const i=Object.create(Vl);_.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 G.call(i,l,c,n,r,s),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 Nd=null;function ls(e){return _.isPlainObject(e)||_.isArray(e)}function $l(e){return _.endsWith(e,"[]")?e.slice(0,-2):e}function ko(e,t,n){return e?e.concat(t).map(function(s,o){return s=$l(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function Id(e){return _.isArray(e)&&!e.some(ls)}const Dd=_.toFlatObject(_,{},null,function(t){return/^is[A-Z]/.test(t)});function Rr(e,t,n){if(!_.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=_.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(b,E){return!_.isUndefined(E[b])});const r=n.metaTokens,s=n.visitor||a,o=n.dots,i=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&_.isSpecCompliantForm(t);if(!_.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(_.isDate(g))return g.toISOString();if(_.isBoolean(g))return g.toString();if(!c&&_.isBlob(g))throw new G("Blob is not supported. Use a Buffer instead.");return _.isArrayBuffer(g)||_.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function a(g,b,E){let O=g;if(g&&!E&&typeof g=="object"){if(_.endsWith(b,"{}"))b=r?b:b.slice(0,-2),g=JSON.stringify(g);else if(_.isArray(g)&&Id(g)||(_.isFileList(g)||_.endsWith(b,"[]"))&&(O=_.toArray(g)))return b=$l(b),O.forEach(function(N,P){!(_.isUndefined(N)||N===null)&&t.append(i===!0?ko([b],P,o):i===null?b:b+"[]",u(N))}),!1}return ls(g)?!0:(t.append(ko(E,b,o),u(g)),!1)}const f=[],p=Object.assign(Dd,{defaultVisitor:a,convertValue:u,isVisitable:ls});function m(g,b){if(!_.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+b.join("."));f.push(g),_.forEach(g,function(O,C){(!(_.isUndefined(O)||O===null)&&s.call(t,O,_.isString(C)?C.trim():C,b,p))===!0&&m(O,b?b.concat(C):[C])}),f.pop()}}if(!_.isObject(e))throw new TypeError("data must be an object");return m(e),t}function Vo(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Ls(e,t){this._pairs=[],e&&Rr(e,this,t)}const Kl=Ls.prototype;Kl.append=function(t,n){this._pairs.push([t,n])};Kl.toString=function(t){const n=t?function(r){return t.call(this,r,Vo)}:Vo;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Ld(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Wl(e,t,n){if(!t)return e;const r=n&&n.encode||Ld;_.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=_.isURLSearchParams(t)?t.toString():new Ls(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class qo{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){_.forEach(this.handlers,function(r){r!==null&&t(r)})}}const Gl={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Fd=typeof URLSearchParams<"u"?URLSearchParams:Ls,Md=typeof FormData<"u"?FormData:null,Ud=typeof Blob<"u"?Blob:null,jd={isBrowser:!0,classes:{URLSearchParams:Fd,FormData:Md,Blob:Ud},protocols:["http","https","file","blob","url","data"]},Fs=typeof window<"u"&&typeof document<"u",cs=typeof navigator=="object"&&navigator||void 0,Bd=Fs&&(!cs||["ReactNative","NativeScript","NS"].indexOf(cs.product)<0),Hd=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",kd=Fs&&window.location.href||"http://localhost",Vd=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Fs,hasStandardBrowserEnv:Bd,hasStandardBrowserWebWorkerEnv:Hd,navigator:cs,origin:kd},Symbol.toStringTag,{value:"Module"})),Ee={...Vd,...jd};function qd(e,t){return Rr(e,new Ee.classes.URLSearchParams,{visitor:function(n,r,s,o){return Ee.isNode&&_.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function $d(e){return _.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Kd(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&_.isArray(s)?s.length:i,c?(_.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!l):((!s[i]||!_.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&_.isArray(s[i])&&(s[i]=Kd(s[i])),!l)}if(_.isFormData(e)&&_.isFunction(e.entries)){const n={};return _.forEachEntry(e,(r,s)=>{t($d(r),s,n,0)}),n}return null}function Wd(e,t,n){if(_.isString(e))try{return(t||JSON.parse)(e),_.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const In={transitional:Gl,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=_.isObject(t);if(o&&_.isHTMLForm(t)&&(t=new FormData(t)),_.isFormData(t))return s?JSON.stringify(zl(t)):t;if(_.isArrayBuffer(t)||_.isBuffer(t)||_.isStream(t)||_.isFile(t)||_.isBlob(t)||_.isReadableStream(t))return t;if(_.isArrayBufferView(t))return t.buffer;if(_.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return qd(t,this.formSerializer).toString();if((l=_.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return Rr(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),Wd(t)):t}],transformResponse:[function(t){const n=this.transitional||In.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(_.isResponse(t)||_.isReadableStream(t))return t;if(t&&_.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(i)throw l.name==="SyntaxError"?G.from(l,G.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:Ee.classes.FormData,Blob:Ee.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};_.forEach(["delete","get","head","post","put","patch"],e=>{In.headers[e]={}});const Gd=_.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"]),zd=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&Gd[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},$o=Symbol("internals");function on(e){return e&&String(e).trim().toLowerCase()}function Wn(e){return e===!1||e==null?e:_.isArray(e)?e.map(Wn):String(e)}function Jd(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const Xd=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Hr(e,t,n,r,s){if(_.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!_.isString(t)){if(_.isString(r))return t.indexOf(r)!==-1;if(_.isRegExp(r))return r.test(t)}}function Qd(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Yd(e,t){const n=_.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let De=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(l,c,u){const a=on(c);if(!a)throw new Error("header name must be a non-empty string");const f=_.findKey(s,a);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||c]=Wn(l))}const i=(l,c)=>_.forEach(l,(u,a)=>o(u,a,c));if(_.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(_.isString(t)&&(t=t.trim())&&!Xd(t))i(zd(t),n);else if(_.isObject(t)&&_.isIterable(t)){let l={},c,u;for(const a of t){if(!_.isArray(a))throw TypeError("Object iterator must return a key-value pair");l[u=a[0]]=(c=l[u])?_.isArray(c)?[...c,a[1]]:[c,a[1]]:a[1]}i(l,n)}else t!=null&&o(n,t,r);return this}get(t,n){if(t=on(t),t){const r=_.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return Jd(s);if(_.isFunction(n))return n.call(this,s,r);if(_.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=on(t),t){const r=_.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Hr(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=on(i),i){const l=_.findKey(r,i);l&&(!n||Hr(r,r[l],l,n))&&(delete r[l],s=!0)}}return _.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||Hr(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return _.forEach(this,(s,o)=>{const i=_.findKey(r,o);if(i){n[i]=Wn(s),delete n[o];return}const l=t?Qd(o):String(o).trim();l!==o&&delete n[o],n[l]=Wn(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return _.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&_.isArray(r)?r.join(", "):r)}),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 r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[$o]=this[$o]={accessors:{}}).accessors,s=this.prototype;function o(i){const l=on(i);r[l]||(Yd(s,i),r[l]=!0)}return _.isArray(t)?t.forEach(o):o(t),this}};De.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);_.reduceDescriptors(De.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});_.freezeMethods(De);function kr(e,t){const n=this||In,r=t||n,s=De.from(r.headers);let o=r.data;return _.forEach(e,function(l){o=l.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function Jl(e){return!!(e&&e.__CANCEL__)}function en(e,t,n){G.call(this,e??"canceled",G.ERR_CANCELED,t,n),this.name="CanceledError"}_.inherits(en,G,{__CANCEL__:!0});function Xl(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new G("Request failed with status code "+n.status,[G.ERR_BAD_REQUEST,G.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function Zd(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function eh(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),a=r[o];i||(i=u),n[s]=c,r[s]=u;let f=o,p=0;for(;f!==s;)p+=n[f++],f=f%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i{n=a,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const a=Date.now(),f=a-n;f>=r?i(u,a):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-f)))},()=>s&&i(s)]}const sr=(e,t,n=3)=>{let r=0;const s=eh(50,250);return th(o=>{const i=o.loaded,l=o.lengthComputable?o.total:void 0,c=i-r,u=s(c),a=i<=l;r=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)},Ko=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Wo=e=>(...t)=>_.asap(()=>e(...t)),nh=Ee.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Ee.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Ee.origin),Ee.navigator&&/(msie|trident)/i.test(Ee.navigator.userAgent)):()=>!0,rh=Ee.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];_.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),_.isString(r)&&l.push(`path=${r}`),_.isString(s)&&l.push(`domain=${s}`),o===!0&&l.push("secure"),_.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 sh(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function oh(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Ql(e,t,n){let r=!sh(t);return e&&(r||n==!1)?oh(e,t):t}const Go=e=>e instanceof De?{...e}:e;function Ut(e,t){t=t||{};const n={};function r(u,a,f,p){return _.isPlainObject(u)&&_.isPlainObject(a)?_.merge.call({caseless:p},u,a):_.isPlainObject(a)?_.merge({},a):_.isArray(a)?a.slice():a}function s(u,a,f,p){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u,f,p)}else return r(u,a,f,p)}function o(u,a){if(!_.isUndefined(a))return r(void 0,a)}function i(u,a){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u)}else return r(void 0,a)}function l(u,a,f){if(f in t)return r(u,a);if(f in e)return r(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)=>s(Go(u),Go(a),f,!0)};return _.forEach(Object.keys({...e,...t}),function(a){const f=c[a]||s,p=f(e[a],t[a],a);_.isUndefined(p)&&f!==l||(n[a]=p)}),n}const Yl=e=>{const t=Ut({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:l}=t;if(t.headers=i=De.from(i),t.url=Wl(Ql(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&i.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),_.isFormData(n)){if(Ee.hasStandardBrowserEnv||Ee.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(_.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(Ee.hasStandardBrowserEnv&&(r&&_.isFunction(r)&&(r=r(t)),r||r!==!1&&nh(t.url))){const c=s&&o&&rh.read(o);c&&i.set(s,c)}return t},ih=typeof XMLHttpRequest<"u",lh=ih&&function(e){return new Promise(function(n,r){const s=Yl(e);let o=s.data;const i=De.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,a,f,p,m,g;function b(){m&&m(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(a),s.signal&&s.signal.removeEventListener("abort",a)}let E=new XMLHttpRequest;E.open(s.method.toUpperCase(),s.url,!0),E.timeout=s.timeout;function O(){if(!E)return;const N=De.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),M={data:!l||l==="text"||l==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:N,config:e,request:E};Xl(function(k){n(k),b()},function(k){r(k),b()},M),E=null}"onloadend"in E?E.onloadend=O:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.indexOf("file:")===0)||setTimeout(O)},E.onabort=function(){E&&(r(new G("Request aborted",G.ECONNABORTED,e,E)),E=null)},E.onerror=function(P){const M=P&&P.message?P.message:"Network Error",X=new G(M,G.ERR_NETWORK,e,E);X.event=P||null,r(X),E=null},E.ontimeout=function(){let P=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const M=s.transitional||Gl;s.timeoutErrorMessage&&(P=s.timeoutErrorMessage),r(new G(P,M.clarifyTimeoutError?G.ETIMEDOUT:G.ECONNABORTED,e,E)),E=null},o===void 0&&i.setContentType(null),"setRequestHeader"in E&&_.forEach(i.toJSON(),function(P,M){E.setRequestHeader(M,P)}),_.isUndefined(s.withCredentials)||(E.withCredentials=!!s.withCredentials),l&&l!=="json"&&(E.responseType=s.responseType),u&&([p,g]=sr(u,!0),E.addEventListener("progress",p)),c&&E.upload&&([f,m]=sr(c),E.upload.addEventListener("progress",f),E.upload.addEventListener("loadend",m)),(s.cancelToken||s.signal)&&(a=N=>{E&&(r(!N||N.type?new en(null,e,E):N),E.abort(),E=null)},s.cancelToken&&s.cancelToken.subscribe(a),s.signal&&(s.signal.aborted?a():s.signal.addEventListener("abort",a)));const C=Zd(s.url);if(C&&Ee.protocols.indexOf(C)===-1){r(new G("Unsupported protocol "+C+":",G.ERR_BAD_REQUEST,e));return}E.send(o||null)})},ch=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,l();const a=u instanceof Error?u:this.reason;r.abort(a instanceof G?a:new en(a instanceof Error?a.message:a))}};let i=t&&setTimeout(()=>{i=null,o(new G(`timeout ${t} of ms exceeded`,G.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}=r;return c.unsubscribe=()=>_.asap(l),c}},ah=function*(e,t){let n=e.byteLength;if(n{const s=uh(e,t);let o=0,i,l=c=>{i||(i=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:a}=await s.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),s.return()}},{highWaterMark:2})},Jo=64*1024,{isFunction:Un}=_,dh=(({Request:e,Response:t})=>({Request:e,Response:t}))(_.global),{ReadableStream:Xo,TextEncoder:Qo}=_.global,Yo=(e,...t)=>{try{return!!e(...t)}catch{return!1}},hh=e=>{e=_.merge.call({skipUndefined:!0},dh,e);const{fetch:t,Request:n,Response:r}=e,s=t?Un(t):typeof fetch=="function",o=Un(n),i=Un(r);if(!s)return!1;const l=s&&Un(Xo),c=s&&(typeof Qo=="function"?(g=>b=>g.encode(b))(new Qo):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=o&&l&&Yo(()=>{let g=!1;const b=new n(Ee.origin,{body:new Xo,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!b}),a=i&&l&&Yo(()=>_.isReadableStream(new r("").body)),f={stream:a&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(b,E)=>{let O=b&&b[g];if(O)return O.call(b);throw new G(`Response type '${g}' is not supported`,G.ERR_NOT_SUPPORT,E)})});const p=async g=>{if(g==null)return 0;if(_.isBlob(g))return g.size;if(_.isSpecCompliantForm(g))return(await new n(Ee.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(_.isArrayBufferView(g)||_.isArrayBuffer(g))return g.byteLength;if(_.isURLSearchParams(g)&&(g=g+""),_.isString(g))return(await c(g)).byteLength},m=async(g,b)=>{const E=_.toFiniteNumber(g.getContentLength());return E??p(b)};return async g=>{let{url:b,method:E,data:O,signal:C,cancelToken:N,timeout:P,onDownloadProgress:M,onUploadProgress:X,responseType:k,headers:V,withCredentials:U="same-origin",fetchOptions:ee}=Yl(g),ue=t||fetch;k=k?(k+"").toLowerCase():"text";let ye=ch([C,N&&N.toAbortSignal()],P),pe=null;const Re=ye&&ye.unsubscribe&&(()=>{ye.unsubscribe()});let Ve;try{if(X&&u&&E!=="get"&&E!=="head"&&(Ve=await m(V,O))!==0){let me=new n(b,{method:"POST",body:O,duplex:"half"}),fe;if(_.isFormData(O)&&(fe=me.headers.get("content-type"))&&V.setContentType(fe),me.body){const[Je,qe]=Ko(Ve,sr(Wo(X)));O=zo(me.body,Jo,Je,qe)}}_.isString(U)||(U=U?"include":"omit");const J=o&&"credentials"in n.prototype,K={...ee,signal:ye,method:E.toUpperCase(),headers:V.normalize().toJSON(),body:O,duplex:"half",credentials:J?U:void 0};pe=o&&new n(b,K);let z=await(o?ue(pe,ee):ue(b,K));const Be=a&&(k==="stream"||k==="response");if(a&&(M||Be&&Re)){const me={};["status","statusText","headers"].forEach(Xe=>{me[Xe]=z[Xe]});const fe=_.toFiniteNumber(z.headers.get("content-length")),[Je,qe]=M&&Ko(fe,sr(Wo(M),!0))||[];z=new r(zo(z.body,Jo,Je,()=>{qe&&qe(),Re&&Re()}),me)}k=k||"text";let ze=await f[_.findKey(f,k)||"text"](z,g);return!Be&&Re&&Re(),await new Promise((me,fe)=>{Xl(me,fe,{data:ze,headers:De.from(z.headers),status:z.status,statusText:z.statusText,config:g,request:pe})})}catch(J){throw Re&&Re(),J&&J.name==="TypeError"&&/Load failed|fetch/i.test(J.message)?Object.assign(new G("Network Error",G.ERR_NETWORK,g,pe),{cause:J.cause||J}):G.from(J,J&&J.code,g,pe)}}},ph=new Map,Zl=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,l=i,c,u,a=ph;for(;l--;)c=o[l],u=a.get(c),u===void 0&&a.set(c,u=l?new Map:hh(t)),a=u;return u};Zl();const Ms={http:Nd,xhr:lh,fetch:{get:Zl}};_.forEach(Ms,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Zo=e=>`- ${e}`,mh=e=>_.isFunction(e)||e===null||e===!1;function gh(e,t){e=_.isArray(e)?e:[e];const{length:n}=e;let r,s;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(Zo).join(` +`):" "+Zo(i[0]):"as no adapter specified";throw new G("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const ec={getAdapter:gh,adapters:Ms};function Vr(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new en(null,e)}function ei(e){return Vr(e),e.headers=De.from(e.headers),e.data=kr.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),ec.getAdapter(e.adapter||In.adapter,e)(e).then(function(r){return Vr(e),r.data=kr.call(e,e.transformResponse,r),r.headers=De.from(r.headers),r},function(r){return Jl(r)||(Vr(e),r&&r.response&&(r.response.data=kr.call(e,e.transformResponse,r.response),r.response.headers=De.from(r.response.headers))),Promise.reject(r)})}const tc="1.13.2",Ar={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Ar[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const ti={};Ar.transitional=function(t,n,r){function s(o,i){return"[Axios v"+tc+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,l)=>{if(t===!1)throw new G(s(i," has been removed"+(n?" in "+n:"")),G.ERR_DEPRECATED);return n&&!ti[i]&&(ti[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,l):!0}};Ar.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function yh(e,t,n){if(typeof e!="object")throw new G("options must be an object",G.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const l=e[o],c=l===void 0||i(l,o,e);if(c!==!0)throw new G("option "+o+" must be "+c,G.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new G("Unknown option "+o,G.ERR_BAD_OPTION)}}const Gn={assertOptions:yh,validators:Ar},nt=Gn.validators;let Mt=class{constructor(t){this.defaults=t||{},this.interceptors={request:new qo,response:new qo}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Ut(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&Gn.assertOptions(r,{silentJSONParsing:nt.transitional(nt.boolean),forcedJSONParsing:nt.transitional(nt.boolean),clarifyTimeoutError:nt.transitional(nt.boolean)},!1),s!=null&&(_.isFunction(s)?n.paramsSerializer={serialize:s}:Gn.assertOptions(s,{encode:nt.function,serialize:nt.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Gn.assertOptions(n,{baseUrl:nt.spelling("baseURL"),withXsrfToken:nt.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&_.merge(o.common,o[n.method]);o&&_.forEach(["delete","get","head","post","put","patch","common"],g=>{delete o[g]}),n.headers=De.concat(i,o);const l=[];let c=!0;this.interceptors.request.forEach(function(b){typeof b.runWhen=="function"&&b.runWhen(n)===!1||(c=c&&b.synchronous,l.unshift(b.fulfilled,b.rejected))});const u=[];this.interceptors.response.forEach(function(b){u.push(b.fulfilled,b.rejected)});let a,f=0,p;if(!c){const g=[ei.bind(this),void 0];for(g.unshift(...l),g.push(...u),p=g.length,a=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(l=>{r.subscribe(l),o=l}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,l){r.reason||(r.reason=new en(o,i,l),n(r.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=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new nc(function(s){t=s}),cancel:t}}};function bh(e){return function(n){return e.apply(null,n)}}function Eh(e){return _.isObject(e)&&e.isAxiosError===!0}const as={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(as).forEach(([e,t])=>{as[t]=e});function rc(e){const t=new Mt(e),n=Ll(Mt.prototype.request,t);return _.extend(n,Mt.prototype,t,{allOwnKeys:!0}),_.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return rc(Ut(e,s))},n}const he=rc(In);he.Axios=Mt;he.CanceledError=en;he.CancelToken=_h;he.isCancel=Jl;he.VERSION=tc;he.toFormData=Rr;he.AxiosError=G;he.Cancel=he.CanceledError;he.all=function(t){return Promise.all(t)};he.spread=bh;he.isAxiosError=Eh;he.mergeConfig=Ut;he.AxiosHeaders=De;he.formToJSON=e=>zl(_.isHTMLForm(e)?new FormData(e):e);he.getAdapter=ec.getAdapter;he.HttpStatusCode=as;he.default=he;const{Axios:jh,AxiosError:Bh,CanceledError:Hh,isCancel:kh,CancelToken:Vh,VERSION:qh,all:$h,Cancel:Kh,isAxiosError:Wh,spread:Gh,toFormData:zh,AxiosHeaders:Jh,HttpStatusCode:Xh,formToJSON:Qh,getAdapter:Yh,mergeConfig:Zh}=he,_n=he.create({baseURL:"",timeout:3e4,withCredentials:!0});_n.interceptors.request.use(e=>e,e=>Promise.reject(e));_n.interceptors.response.use(e=>e.data,e=>{e.response?.status===401&&(window.location.hash="#/login");const t=e.response?.data?e.response.data.detail||e.response.data.message:e.message;return Promise.reject(new Error(t||"请求失败"))});const jn={login:e=>{const t=new URLSearchParams;return t.append("admin_key",e.password),_n.post("/login",t,{headers:{"Content-Type":"application/x-www-form-urlencoded"}})},logout:()=>_n.post("/logout"),checkAuth:()=>_n.get("/admin/health")},wh=Mu("auth",()=>{const e=Lt(!1),t=Lt(!1),n=Lt(0),r=1e4;let s=null;async function o(c){t.value=!0;try{return await jn.login({password:c}),await jn.checkAuth(),e.value=!0,n.value=Date.now(),!0}catch(u){throw e.value=!1,u}finally{t.value=!1}}async function i(){try{await jn.logout()}finally{e.value=!1,n.value=0}}async function l(){const c=Date.now();if(e.value&&c-n.value(await jn.checkAuth(),e.value=!0,!0))(),await s}catch{return e.value=!1,!1}finally{n.value=Date.now(),s=null}}return{isLoggedIn:e,isLoading:t,login:o,logout:i,checkAuth:l}}),sc=Kf({history:Af("/"),routes:[{path:"/public/uptime",name:"public-uptime",component:()=>tt(()=>import("./PublicUptime-CFeeFWLB.js"),__vite__mapDeps([0,1])),meta:{requiresAuth:!1}},{path:"/public/logs",name:"public-logs",component:()=>tt(()=>import("./PublicLogs-ugEyY0XU.js"),[]),meta:{requiresAuth:!1}},{path:"/login",name:"login",component:()=>tt(()=>import("./Login-DNudytkP.js"),[]),meta:{requiresAuth:!1}},{path:"/",component:()=>tt(()=>import("./AppShell-CXOssFu_.js"),__vite__mapDeps([2,3,4,5])),meta:{requiresAuth:!0},children:[{path:"",name:"dashboard",component:()=>tt(()=>import("./Dashboard-Dj9ZvQRR.js"),__vite__mapDeps([6,7]))},{path:"accounts",name:"accounts",component:()=>tt(()=>import("./Accounts-DanJ5qVz.js"),__vite__mapDeps([8,9,10,4,5,7]))},{path:"settings",name:"settings",component:()=>tt(()=>import("./Settings-Z9wuXkbU.js"),__vite__mapDeps([11,3,9,10,7]))},{path:"logs",name:"logs",component:()=>tt(()=>import("./Logs-Bm_tHokg.js"),__vite__mapDeps([12,9,4]))},{path:"monitor",name:"monitor",component:()=>tt(()=>import("./Monitor-BZlxN0Z7.js"),__vite__mapDeps([13,1]))},{path:"docs",name:"docs",component:()=>tt(()=>import("./Docs-CPrjfLKM.js"),[])}]}]});sc.beforeEach(async e=>{const t=wh();if(e.meta.requiresAuth&&!await t.checkAuth())return{name:"login"};if(e.name==="login"&&t.isLoggedIn)return{name:"dashboard"}});const Sh=Os({__name:"App",setup(e){return(t,n)=>(er(),nr(Ot(Dl)))}}),Us=xu(Sh),Rh=Pu();Us.use(Rh);Us.use(sc);Us.mount("#app");export{Xc as A,Dl as B,Mu as C,Dh as D,Rs as E,Fe as F,xh as G,On as H,kf as R,vh as T,fl as a,Ph as b,Th as c,Os as d,er as e,Wa as f,_n as g,Lt as h,Me as i,fa as j,ps as k,wh as l,Ah as m,ms as n,ca as o,Lh as p,Fh as q,Oh as r,fn as s,mc as t,Ot as u,Nh as v,Ih as w,Ce as x,nr as y,Ch as z}; diff --git a/static/assets/index-CniDK1hw.css b/static/assets/index-CniDK1hw.css new file mode 100644 index 0000000000000000000000000000000000000000..5a8d4f565a4a9be51c00b94b50faf73bc8d9aaab --- /dev/null +++ b/static/assets/index-CniDK1hw.css @@ -0,0 +1 @@ +@import"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=Noto+Serif+SC:wght@600;700&display=swap";.toast-enter-active[data-v-cdd21b3c],.toast-leave-active[data-v-cdd21b3c]{transition:all .3s ease}.toast-enter-from[data-v-cdd21b3c],.toast-leave-to[data-v-cdd21b3c]{opacity:0;transform:translate(100%)}.toast-move[data-v-cdd21b3c]{transition:transform .3s ease}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 97%;--foreground: 0 0% 10%;--card: 0 0% 100%;--card-foreground: 0 0% 10%;--primary: 0 0% 10%;--primary-foreground: 0 0% 100%;--secondary: 0 0% 92%;--secondary-foreground: 0 0% 10%;--muted: 0 0% 92%;--muted-foreground: 0 0% 40%;--accent: 0 0% 90%;--accent-foreground: 0 0% 10%;--destructive: 0 70% 45%;--destructive-foreground: 0 0% 100%;--border: 0 0% 86%;--input: 0 0% 86%;--ring: 0 0% 10%;--radius: 1rem}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:Noto Sans SC,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;overflow-x:hidden;background-image:radial-gradient(900px circle at 10% -20%,rgba(0,0,0,.04),transparent 45%),radial-gradient(700px circle at 90% 0%,rgba(0,0,0,.05),transparent 40%),linear-gradient(180deg,hsl(var(--background)) 0% 100%)}body:before{content:"";position:fixed;inset:0;background-image:linear-gradient(120deg,#ffffff8c,#fff0);opacity:.5;pointer-events:none;z-index:-1}h1,h2,h3{font-family:"Noto Serif SC",Georgia,serif;letter-spacing:-.01em}#app{min-height:100vh}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{top:0;bottom:0}.bottom-0{bottom:0}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.right-4{right:1rem}.top-0{top:0}.top-4{top:1rem}.top-full{top:100%}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[200\]{z-index:200}.z-\[9999\]{z-index:9999}.col-span-2{grid-column:span 2 / span 2}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0{height:0px}.h-10{height:2.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-\[80vh\]{height:80vh}.h-full{height:100%}.max-h-\[60vh\]{max-height:60vh}.max-h-\[90vh\]{max-height:90vh}.min-h-0{min-height:0px}.min-h-\[140px\]{min-height:140px}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-10{width:2.5rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-44{width:11rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[200px\]{min-width:200px}.min-w-\[320px\]{min-width:320px}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-not-allowed{cursor:not-allowed}.resize{resize:both}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-1{row-gap:.25rem}.gap-y-2{row-gap:.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-visible{overflow-y:visible}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[2\.5rem\]{border-radius:2.5rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-x-4{border-left-width:4px;border-right-width:4px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-4{border-top-width:4px}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}.border-border{border-color:hsl(var(--border))}.border-border\/60{border-color:hsl(var(--border) / .6)}.border-destructive\/30{border-color:hsl(var(--destructive) / .3)}.border-emerald-200{--tw-border-opacity: 1;border-color:rgb(167 243 208 / var(--tw-border-opacity, 1))}.border-input{border-color:hsl(var(--input))}.border-primary-foreground\/40{border-color:hsl(var(--primary-foreground) / .4)}.border-rose-200{--tw-border-opacity: 1;border-color:rgb(254 205 211 / var(--tw-border-opacity, 1))}.border-sky-200{--tw-border-opacity: 1;border-color:rgb(186 230 253 / var(--tw-border-opacity, 1))}.border-x-transparent{border-left-color:transparent;border-right-color:transparent}.border-t-foreground{border-top-color:hsl(var(--foreground))}.bg-accent{background-color:hsl(var(--accent))}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-200{--tw-bg-opacity: 1;background-color:rgb(253 230 138 / var(--tw-bg-opacity, 1))}.bg-amber-300{--tw-bg-opacity: 1;background-color:rgb(252 211 77 / var(--tw-bg-opacity, 1))}.bg-amber-400{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-black\/20{background-color:#0003}.bg-black\/30{background-color:#0000004d}.bg-black\/50{background-color:#00000080}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-card{background-color:hsl(var(--card))}.bg-card\/70{background-color:hsl(var(--card) / .7)}.bg-card\/90{background-color:hsl(var(--card) / .9)}.bg-cyan-100{--tw-bg-opacity: 1;background-color:rgb(207 250 254 / var(--tw-bg-opacity, 1))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-400{--tw-bg-opacity: 1;background-color:rgb(52 211 153 / var(--tw-bg-opacity, 1))}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground{background-color:hsl(var(--muted-foreground))}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/70{background-color:hsl(var(--muted) / .7)}.bg-primary{background-color:hsl(var(--primary))}.bg-primary-foreground\/15{background-color:hsl(var(--primary-foreground) / .15)}.bg-rose-100{--tw-bg-opacity: 1;background-color:rgb(255 228 230 / var(--tw-bg-opacity, 1))}.bg-rose-50{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.bg-rose-500{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity, 1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/30{background-color:hsl(var(--secondary) / .3)}.bg-secondary\/40{background-color:hsl(var(--secondary) / .4)}.bg-secondary\/50{background-color:hsl(var(--secondary) / .5)}.bg-secondary\/60{background-color:hsl(var(--secondary) / .6)}.bg-sky-400{--tw-bg-opacity: 1;background-color:rgb(56 189 248 / var(--tw-bg-opacity, 1))}.bg-sky-50{--tw-bg-opacity: 1;background-color:rgb(240 249 255 / var(--tw-bg-opacity, 1))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-violet-100{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.object-contain{-o-object-fit:contain;object-fit:contain}.p-1{padding:.25rem}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-10{padding-bottom:2.5rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pl-4{padding-left:1rem}.pl-6{padding-left:1.5rem}.pr-1{padding-right:.25rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.tracking-\[0\.12em\]{letter-spacing:.12em}.tracking-\[0\.28em\]{letter-spacing:.28em}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-\[0\.3em\]{letter-spacing:.3em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-background{color:hsl(var(--background))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-cyan-700{--tw-text-opacity: 1;color:rgb(14 116 144 / var(--tw-text-opacity, 1))}.text-destructive{color:hsl(var(--destructive))}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-rose-500{--tw-text-opacity: 1;color:rgb(244 63 94 / var(--tw-text-opacity, 1))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-sky-500{--tw-text-opacity: 1;color:rgb(14 165 233 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-violet-700{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-black\/10{--tw-shadow-color: rgb(0 0 0 / .1);--tw-shadow: var(--tw-shadow-colored)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,transform\]{transition-property:width,transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-\[transform\]{will-change:transform}html{scrollbar-gutter:stable}*{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.35) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:#00000059;border-radius:999px;border:2px solid transparent;background-clip:content-box}.scrollbar-slim::-webkit-scrollbar{width:6px;height:6px}.scrollbar-slim::-webkit-scrollbar-thumb{background-color:#0006}.cv-auto{content-visibility:auto;contain-intrinsic-size:0 44px}.monitor-badge--up{background:#d1fae5;color:#065f46}.monitor-badge--warn{background:#fef3c7;color:#b45309}.monitor-badge--down{background:#fee2e2;color:#991b1b}.monitor-badge--unknown{background:#f3f4f6;color:#6b7280}.monitor-card{border-radius:16px;padding:0;background:hsl(var(--card));box-shadow:none}.monitor-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.monitor-card__name{font-size:14px;font-weight:600;color:hsl(var(--foreground))}.monitor-card__badge{padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600}.monitor-card__stats{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:hsl(var(--muted-foreground));margin-bottom:12px}.monitor-card__value{margin-left:4px;color:hsl(var(--foreground));font-weight:600}.monitor-card__beats{display:flex;gap:2px;height:24px;align-items:flex-end}.monitor-beat{flex:1;min-width:4px;max-width:8px;border-radius:2px;transition:all .2s;position:relative}.monitor-beat:hover{opacity:.8;transform:scaleY(1.1)}.monitor-beat--up{background:#34c759;height:100%}.monitor-beat--warn,.monitor-beat--slow{background:#f5c15b;height:100%}.monitor-beat--down{background:#ff3b30;height:100%}.monitor-beat--empty{background:#e5e5ea;height:40%}.monitor-beat__tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#1d1d1f;color:#fff;padding:6px 10px;border-radius:6px;font-size:11px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;margin-bottom:6px;z-index:10}.monitor-beat__tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#1d1d1f}.monitor-beat:hover .monitor-beat__tooltip{opacity:1}.help-dot{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:999px;border:1px solid hsl(var(--border));font-size:10px;line-height:1;color:hsl(var(--muted-foreground));cursor:default}@media(max-width:768px){.monitor-beat{min-width:3px;max-width:6px}}@media(min-width:1024px){.dashboard-split{flex-direction:row;flex-wrap:nowrap}.dashboard-split .dashboard-main{flex:0 0 66.6667%;max-width:66.6667%}.dashboard-split .dashboard-side{flex:0 0 33.3333%;max-width:33.3333%}}@keyframes logo-float{0%{transform:translateY(0)}25%{transform:translateY(6px)}50%{transform:translateY(0)}75%{transform:translateY(-6px)}to{transform:translateY(0)}}@keyframes logo-blink{0%,45%,55%,to{transform:scaleY(1);opacity:1}50%{transform:scaleY(.1);opacity:.6}}.logo-mark .logo-cat-wrapper{animation:logo-float 4s ease-in-out infinite;transform-origin:center}.logo-mark{transform:translateY(2px)}.logo-mark .logo-eye{fill:#00bcd4;filter:drop-shadow(0 0 2px #00bcd4);animation:logo-blink 5s infinite;transform-box:fill-box;transform-origin:center}.hover\:border-destructive:hover{border-color:hsl(var(--destructive))}.hover\:border-destructive\/40:hover{border-color:hsl(var(--destructive) / .4)}.hover\:border-destructive\/60:hover{border-color:hsl(var(--destructive) / .6)}.hover\:border-foreground:hover{border-color:hsl(var(--foreground))}.hover\:border-primary:hover{border-color:hsl(var(--primary))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/10:hover{background-color:hsl(var(--destructive) / .1)}.hover\:bg-secondary\/60:hover{background-color:hsl(var(--secondary) / .6)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-emerald-500:hover{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.focus\:border-transparent:focus{border-color:transparent}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:text-accent-foreground{color:hsl(var(--accent-foreground))}.group:hover .group-hover\:opacity-100{opacity:1}.peer:checked~.peer-checked\:border-foreground{border-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:bg-foreground{background-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.peer:disabled~.peer-disabled\:opacity-50{opacity:.5}@media(min-width:640px){.sm\:ml-0{margin-left:0}.sm\:flex{display:flex}.sm\:w-44{width:11rem}.sm\:w-48{width:12rem}.sm\:w-auto{width:auto}.sm\:min-w-0{min-width:0px}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:items-center{align-items:center}}@media(min-width:768px){.md\:w-auto{width:auto}.md\:flex-1{flex:1 1 0%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1024px){.lg\:static{position:static}.lg\:sticky{position:sticky}.lg\:top-0{top:0}.lg\:ml-0{margin-left:0}.lg\:hidden{display:none}.lg\:h-20{height:5rem}.lg\:h-64{height:16rem}.lg\:h-72{height:18rem}.lg\:h-screen{height:100vh}.lg\:w-20{width:5rem}.lg\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:border-b-0{border-bottom-width:0px}.lg\:border-r{border-right-width:1px}.lg\:bg-card\/80{background-color:hsl(var(--card) / .8)}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:py-4{padding-top:1rem;padding-bottom:1rem}.lg\:pt-10{padding-top:2.5rem}.lg\:pt-5{padding-top:1.25rem}.lg\:pt-6{padding-top:1.5rem}.lg\:text-2xl{font-size:1.5rem;line-height:2rem}.lg\:backdrop-blur-none{--tw-backdrop-blur: ;-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}}@media(min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}} diff --git a/static/assets/index-DDWWwh2l.js b/static/assets/index-DDWWwh2l.js new file mode 100644 index 0000000000000000000000000000000000000000..4f04ad82a759b20b8d6d59eb90cca3fb0fe4c2cc --- /dev/null +++ b/static/assets/index-DDWWwh2l.js @@ -0,0 +1,7 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PublicUptime-CyUwsDxI.js","assets/useUptimeStatus-BkCYwvB8.js","assets/AppShell-DZfg1gi0.js","assets/settings-CHSHPnGz.js","assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-Bos9Whi2.js","assets/useConfirmDialog-B1UvQk4s.js","assets/Dashboard-H0mqzeAx.js","assets/HelpTip.vue_vue_type_script_setup_true_lang-C7-LVvI-.js","assets/Accounts-lQSfPTKz.js","assets/SelectMenu.vue_vue_type_script_setup_true_lang-BgTufWxo.js","assets/Checkbox.vue_vue_type_script_setup_true_lang-CvXZKsyi.js","assets/Settings-C_fFojKp.js","assets/Logs-T6CMJePO.js","assets/Monitor-BGpml9J0.js"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function us(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const se={},$t=[],ot=()=>{},ni=()=>!1,or=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),fs=e=>e.startsWith("onUpdate:"),Se=Object.assign,ds=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},oc=Object.prototype.hasOwnProperty,ne=(e,t)=>oc.call(e,t),q=Array.isArray,Kt=e=>ir(e)==="[object Map]",ri=e=>ir(e)==="[object Set]",W=e=>typeof e=="function",de=e=>typeof e=="string",yt=e=>typeof e=="symbol",le=e=>e!==null&&typeof e=="object",si=e=>(le(e)||W(e))&&W(e.then)&&W(e.catch),oi=Object.prototype.toString,ir=e=>oi.call(e),ic=e=>ir(e).slice(8,-1),ii=e=>ir(e)==="[object Object]",lr=e=>de(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,cn=us(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),cr=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},lc=/-\w/g,xt=cr(e=>e.replace(lc,t=>t.slice(1).toUpperCase())),cc=/\B([A-Z])/g,jt=cr(e=>e.replace(cc,"-$1").toLowerCase()),li=cr(e=>e.charAt(0).toUpperCase()+e.slice(1)),vr=cr(e=>e?`on${li(e)}`:""),vt=(e,t)=>!Object.is(e,t),Bn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},hs=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let ks;const ar=()=>ks||(ks=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function ps(e){if(q(e)){const t={};for(let n=0;n{if(n){const r=n.split(uc);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function ms(e){let t="";if(de(e))t=e;else if(q(e))for(let n=0;n!!(e&&e.__v_isRef===!0),mc=e=>de(e)?e:e==null?"":q(e)||le(e)&&(e.toString===oi||!W(e.toString))?ui(e)?mc(e.value):JSON.stringify(e,fi,2):String(e),fi=(e,t)=>ui(t)?fi(e,t.value):Kt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[Or(r,o)+" =>"]=s,n),{})}:ri(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Or(n))}:yt(t)?Or(t):le(t)&&!q(t)&&!ii(t)?String(t):t,Or=(e,t="")=>{var n;return yt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let _e;class di{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=_e,!t&&_e&&(this.index=(_e.scopes||(_e.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&&(_e=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if(un){let t=un;for(un=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;an;){let t=an;for(an=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function _i(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function bi(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),_s(r),yc(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function qr(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===bn)||(e.globalVersion=bn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!qr(e))))return;e.flags|=2;const t=e.dep,n=ie,r=$e;ie=e,$e=!0;try{_i(e);const s=e.fn(e._value);(t.version===0||vt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{ie=n,$e=r,bi(e),e.flags&=-3}}function _s(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)_s(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function yc(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 wi=[];function ht(){wi.push($e),$e=!1}function pt(){const e=wi.pop();$e=e===void 0?!0:e}function Vs(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ie;ie=void 0;try{t()}finally{ie=n}}}let bn=0;class _c{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 bs{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!ie||!$e||ie===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ie)n=this.activeLink=new _c(ie,this),ie.deps?(n.prevDep=ie.depsTail,ie.depsTail.nextDep=n,ie.depsTail=n):ie.deps=ie.depsTail=n,Si(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=ie.depsTail,n.nextDep=void 0,ie.depsTail.nextDep=n,ie.depsTail=n,ie.deps===n&&(ie.deps=r)}return n}trigger(t){this.version++,bn++,this.notify(t)}notify(t){gs();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ys()}}}function Si(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Si(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const zn=new WeakMap,Dt=Symbol(""),$r=Symbol(""),En=Symbol("");function be(e,t,n){if($e&&ie){let r=zn.get(e);r||zn.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new bs),s.map=r,s.key=n),s.track()}}function ft(e,t,n,r,s,o){const i=zn.get(e);if(!i){bn++;return}const l=c=>{c&&c.trigger()};if(gs(),t==="clear")i.forEach(l);else{const c=q(e),u=c&&lr(n);if(c&&n==="length"){const a=Number(r);i.forEach((f,p)=>{(p==="length"||p===En||!yt(p)&&p>=a)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(En)),t){case"add":c?u&&l(i.get("length")):(l(i.get(Dt)),Kt(e)&&l(i.get($r)));break;case"delete":c||(l(i.get(Dt)),Kt(e)&&l(i.get($r)));break;case"set":Kt(e)&&l(i.get(Dt));break}}ys()}function bc(e,t){const n=zn.get(e);return n&&n.get(t)}function Bt(e){const t=Z(e);return t===e?t:(be(t,"iterate",En),je(e)?t:t.map(Ke))}function ur(e){return be(e=Z(e),"iterate",En),e}function wt(e,t){return mt(e)?it(e)?zt(Ke(t)):zt(t):Ke(t)}const Ec={__proto__:null,[Symbol.iterator](){return Tr(this,Symbol.iterator,e=>wt(this,e))},concat(...e){return Bt(this).concat(...e.map(t=>q(t)?Bt(t):t))},entries(){return Tr(this,"entries",e=>(e[1]=wt(this,e[1]),e))},every(e,t){return ct(this,"every",e,t,void 0,arguments)},filter(e,t){return ct(this,"filter",e,t,n=>n.map(r=>wt(this,r)),arguments)},find(e,t){return ct(this,"find",e,t,n=>wt(this,n),arguments)},findIndex(e,t){return ct(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ct(this,"findLast",e,t,n=>wt(this,n),arguments)},findLastIndex(e,t){return ct(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ct(this,"forEach",e,t,void 0,arguments)},includes(...e){return Cr(this,"includes",e)},indexOf(...e){return Cr(this,"indexOf",e)},join(e){return Bt(this).join(e)},lastIndexOf(...e){return Cr(this,"lastIndexOf",e)},map(e,t){return ct(this,"map",e,t,void 0,arguments)},pop(){return nn(this,"pop")},push(...e){return nn(this,"push",e)},reduce(e,...t){return qs(this,"reduce",e,t)},reduceRight(e,...t){return qs(this,"reduceRight",e,t)},shift(){return nn(this,"shift")},some(e,t){return ct(this,"some",e,t,void 0,arguments)},splice(...e){return nn(this,"splice",e)},toReversed(){return Bt(this).toReversed()},toSorted(e){return Bt(this).toSorted(e)},toSpliced(...e){return Bt(this).toSpliced(...e)},unshift(...e){return nn(this,"unshift",e)},values(){return Tr(this,"values",e=>wt(this,e))}};function Tr(e,t,n){const r=ur(e),s=r[t]();return r!==e&&!je(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const wc=Array.prototype;function ct(e,t,n,r,s,o){const i=ur(e),l=i!==e&&!je(e),c=i[t];if(c!==wc[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,wt(e,f),p,e)}:n.length>2&&(u=function(f,p){return n.call(this,f,p,e)}));const a=c.call(i,u,r);return l&&s?s(a):a}function qs(e,t,n,r){const s=ur(e);let o=n;return s!==e&&(je(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,wt(e,l),c,e)}),s[t](o,...r)}function Cr(e,t,n){const r=Z(e);be(r,"iterate",En);const s=r[t](...n);return(s===-1||s===!1)&&fr(n[0])?(n[0]=Z(n[0]),r[t](...n)):s}function nn(e,t,n=[]){ht(),gs();const r=Z(e)[t].apply(e,n);return ys(),pt(),r}const Sc=us("__proto__,__v_isRef,__isVue"),Ri=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(yt));function Rc(e){yt(e)||(e=String(e));const t=Z(this);return be(t,"has",e),t.hasOwnProperty(e)}class Ai{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?Dc:Ti:o?xi:Oi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=q(t);if(!s){let c;if(i&&(c=Ec[n]))return c;if(n==="hasOwnProperty")return Rc}const l=Reflect.get(t,n,ce(t)?t:r);if((yt(n)?Ri.has(n):Sc(n))||(s||be(t,"get",n),o))return l;if(ce(l)){const c=i&&lr(n)?l:l.value;return s&&le(c)?Wr(c):c}return le(l)?s?Wr(l):On(l):l}}class vi extends Ai{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=q(t)&&lr(n);if(!this._isShallow){const u=mt(o);if(!je(r)&&!mt(r)&&(o=Z(o),r=Z(r)),!i&&ce(o)&&!ce(r))return u||(o.value=r),!0}const l=i?Number(n)e,Dn=e=>Reflect.getPrototypeOf(e);function Tc(e,t,n){return function(...r){const s=this.__v_raw,o=Z(s),i=Kt(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=s[e](...r),a=n?Kr:t?zt:Ke;return!t&&be(o,"iterate",c?$r:Dt),{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 Ln(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Cc(e,t){const n={get(s){const o=this.__v_raw,i=Z(o),l=Z(s);e||(vt(s,l)&&be(i,"get",s),be(i,"get",l));const{has:c}=Dn(i),u=t?Kr:e?zt:Ke;if(c.call(i,s))return u(o.get(s));if(c.call(i,l))return u(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&be(Z(s),"iterate",Dt),s.size},has(s){const o=this.__v_raw,i=Z(o),l=Z(s);return e||(vt(s,l)&&be(i,"has",s),be(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,c=Z(l),u=t?Kr:e?zt:Ke;return!e&&be(c,"iterate",Dt),l.forEach((a,f)=>s.call(o,u(a),u(f),i))}};return Se(n,e?{add:Ln("add"),set:Ln("set"),delete:Ln("delete"),clear:Ln("clear")}:{add(s){!t&&!je(s)&&!mt(s)&&(s=Z(s));const o=Z(this);return Dn(o).has.call(o,s)||(o.add(s),ft(o,"add",s,s)),this},set(s,o){!t&&!je(o)&&!mt(o)&&(o=Z(o));const i=Z(this),{has:l,get:c}=Dn(i);let u=l.call(i,s);u||(s=Z(s),u=l.call(i,s));const a=c.call(i,s);return i.set(s,o),u?vt(o,a)&&ft(i,"set",s,o):ft(i,"add",s,o),this},delete(s){const o=Z(this),{has:i,get:l}=Dn(o);let c=i.call(o,s);c||(s=Z(s),c=i.call(o,s)),l&&l.call(o,s);const u=o.delete(s);return c&&ft(o,"delete",s,void 0),u},clear(){const s=Z(this),o=s.size!==0,i=s.clear();return o&&ft(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=Tc(s,e,t)}),n}function Es(e,t){const n=Cc(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(ne(n,s)&&s in r?n:r,s,o)}const Pc={get:Es(!1,!1)},Nc={get:Es(!1,!0)},Ic={get:Es(!0,!1)};const Oi=new WeakMap,xi=new WeakMap,Ti=new WeakMap,Dc=new WeakMap;function Lc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Fc(e){return e.__v_skip||!Object.isExtensible(e)?0:Lc(ic(e))}function On(e){return mt(e)?e:ws(e,!1,vc,Pc,Oi)}function Ci(e){return ws(e,!1,xc,Nc,xi)}function Wr(e){return ws(e,!0,Oc,Ic,Ti)}function ws(e,t,n,r,s){if(!le(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=Fc(e);if(o===0)return e;const i=s.get(e);if(i)return i;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function it(e){return mt(e)?it(e.__v_raw):!!(e&&e.__v_isReactive)}function mt(e){return!!(e&&e.__v_isReadonly)}function je(e){return!!(e&&e.__v_isShallow)}function fr(e){return e?!!e.__v_raw:!1}function Z(e){const t=e&&e.__v_raw;return t?Z(t):e}function Ss(e){return!ne(e,"__v_skip")&&Object.isExtensible(e)&&ci(e,"__v_skip",!0),e}const Ke=e=>le(e)?On(e):e,zt=e=>le(e)?Wr(e):e;function ce(e){return e?e.__v_isRef===!0:!1}function Lt(e){return Pi(e,!1)}function Mc(e){return Pi(e,!0)}function Pi(e,t){return ce(e)?e:new Uc(e,t)}class Uc{constructor(t,n){this.dep=new bs,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:Z(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,r=this.__v_isShallow||je(t)||mt(t);t=r?t:Z(t),vt(t,n)&&(this._rawValue=t,this._value=r?t:Ke(t),this.dep.trigger())}}function Ot(e){return ce(e)?e.value:e}const jc={get:(e,t,n)=>t==="__v_raw"?e:Ot(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return ce(s)&&!ce(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Ni(e){return it(e)?e:new Proxy(e,jc)}function Bc(e){const t=q(e)?new Array(e.length):{};for(const n in e)t[n]=Ii(e,n);return t}class Hc{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._raw=Z(t);let s=!0,o=t;if(!q(t)||!lr(String(n)))do s=!fr(o)||je(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=Ot(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&ce(this._raw[this._key])){const n=this._object[this._key];if(ce(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return bc(this._raw,this._key)}}class kc{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Vc(e,t,n){return ce(e)?e:W(e)?new kc(e):le(e)&&arguments.length>1?Ii(e,t,n):Lt(e)}function Ii(e,t,n){return new Hc(e,t,n)}class qc{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new bs(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=bn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&ie!==this)return yi(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 $c(e,t,n=!1){let r,s;return W(e)?r=e:(r=e.get,s=e.set),new qc(r,s,n)}const Fn={},Jn=new WeakMap;let Pt;function Kc(e,t=!1,n=Pt){if(n){let r=Jn.get(n);r||Jn.set(n,r=[]),r.push(e)}}function Wc(e,t,n=se){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:c}=n,u=P=>s?P:je(P)||s===!1||s===0?dt(P,1):dt(P);let a,f,p,m,g=!1,b=!1;if(ce(e)?(f=()=>e.value,g=je(e)):it(e)?(f=()=>u(e),g=!0):q(e)?(b=!0,g=e.some(P=>it(P)||je(P)),f=()=>e.map(P=>{if(ce(P))return P.value;if(it(P))return u(P);if(W(P))return c?c(P,2):P()})):W(e)?t?f=c?()=>c(e,2):e:f=()=>{if(p){ht();try{p()}finally{pt()}}const P=Pt;Pt=a;try{return c?c(e,3,[m]):e(m)}finally{Pt=P}}:f=ot,t&&s){const P=f,M=s===!0?1/0:s;f=()=>dt(P(),M)}const E=pi(),O=()=>{a.stop(),E&&E.active&&ds(E.effects,a)};if(o&&t){const P=t;t=(...M)=>{P(...M),O()}}let C=b?new Array(e.length).fill(Fn):Fn;const N=P=>{if(!(!(a.flags&1)||!a.dirty&&!P))if(t){const M=a.run();if(s||g||(b?M.some((X,k)=>vt(X,C[k])):vt(M,C))){p&&p();const X=Pt;Pt=a;try{const k=[M,C===Fn?void 0:b&&C[0]===Fn?[]:C,m];C=M,c?c(t,3,k):t(...k)}finally{Pt=X}}}else a.run()};return l&&l(N),a=new mi(f),a.scheduler=i?()=>i(N,!1):N,m=P=>Kc(P,!1,a),p=a.onStop=()=>{const P=Jn.get(a);if(P){if(c)c(P,4);else for(const M of P)M();Jn.delete(a)}},t?r?N(!0):C=a.run():i?i(N.bind(null,!0),!0):a.run(),O.pause=a.pause.bind(a),O.resume=a.resume.bind(a),O.stop=O,O}function dt(e,t=1/0,n){if(t<=0||!le(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,ce(e))dt(e.value,t,n);else if(q(e))for(let r=0;r{dt(r,t,n)});else if(ii(e)){for(const r in e)dt(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&dt(e[r],t,n)}return e}function xn(e,t,n,r){try{return r?e(...r):e()}catch(s){dr(s,t,n)}}function lt(e,t,n,r){if(W(e)){const s=xn(e,t,n,r);return s&&si(s)&&s.catch(o=>{dr(o,t,n)}),s}if(q(e)){const s=[];for(let o=0;o>>1,s=xe[r],o=wn(s);o=wn(n)?xe.push(e):xe.splice(zc(t),0,e),e.flags|=1,Li()}}function Li(){Xn||(Xn=Di.then(Mi))}function Jc(e){q(e)?Wt.push(...e):St&&e.id===-1?St.splice(kt+1,0,e):e.flags&1||(Wt.push(e),e.flags|=1),Li()}function $s(e,t,n=rt+1){for(;nwn(n)-wn(r));if(Wt.length=0,St){St.push(...t);return}for(St=t,kt=0;kte.id==null?e.flags&2?-1:1/0:e.id;function Mi(e){try{for(rt=0;rt{r._d&&tr(-1);const o=Qn(t);let i;try{i=e(...s)}finally{Qn(o),r._d&&tr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function Ah(e,t){if(we===null)return e;const n=gr(we),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&W(t)?t.call(r&&r.proxy):t}}function Qc(){return!!(dl()||Ft)}const Yc=Symbol.for("v-scx"),Zc=()=>ke(Yc);function fn(e,t,n){return ji(e,t,n)}function ji(e,t,n=se){const{immediate:r,deep:s,flush:o,once:i}=n,l=Se({},n),c=t&&r||!t&&o!=="post";let u;if(An){if(o==="sync"){const m=Zc();u=m.__watcherHandles||(m.__watcherHandles=[])}else if(!c){const m=()=>{};return m.stop=ot,m.resume=ot,m.pause=ot,m}}const a=Te;l.call=(m,g,b)=>lt(m,a,g,b);let f=!1;o==="post"?l.scheduler=m=>{ve(m,a&&a.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(m,g)=>{g?m():As(m)}),l.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,a&&(m.id=a.uid,m.i=a))};const p=Wc(e,t,l);return An&&(u?u.push(p):c&&p()),p}function ea(e,t,n){const r=this.proxy,s=de(e)?e.includes(".")?Bi(r,e):()=>r[e]:e.bind(r,r);let o;W(t)?o=t:(o=t.handler,n=t);const i=Tn(this),l=ji(s,o.bind(r),n);return i(),l}function Bi(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,dn=e=>e&&(e.disabled||e.disabled===""),Ks=e=>e&&(e.defer||e.defer===""),Ws=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Gs=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Gr=(e,t)=>{const n=e&&e.to;return de(n)?t?t(n):null:n},ki={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,u){const{mc:a,pc:f,pbc:p,o:{insert:m,querySelector:g,createText:b,createComment:E}}=u,O=dn(t.props);let{shapeFlag:C,children:N,dynamicChildren:P}=t;if(e==null){const M=t.el=b(""),X=t.anchor=b("");m(M,n,r),m(X,n,r);const k=(U,ee)=>{C&16&&a(N,U,ee,s,o,i,l,c)},V=()=>{const U=t.target=Gr(t.props,g),ee=Vi(U,t,b,m);U&&(i!=="svg"&&Ws(U)?i="svg":i!=="mathml"&&Gs(U)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(U),O||(k(U,ee),kn(t,!1)))};O&&(k(n,X),kn(t,!0)),Ks(t.props)?(t.el.__isMounted=!1,ve(()=>{V(),delete t.el.__isMounted},o)):V()}else{if(Ks(t.props)&&e.el.__isMounted===!1){ve(()=>{ki.process(e,t,n,r,s,o,i,l,c,u)},o);return}t.el=e.el,t.targetStart=e.targetStart;const M=t.anchor=e.anchor,X=t.target=e.target,k=t.targetAnchor=e.targetAnchor,V=dn(e.props),U=V?n:X,ee=V?M:k;if(i==="svg"||Ws(X)?i="svg":(i==="mathml"||Gs(X))&&(i="mathml"),P?(p(e.dynamicChildren,P,U,s,o,i,l),Cs(e,t,!0)):c||f(e,t,U,ee,s,o,i,l,!1),O)V?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Mn(t,n,M,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const ue=t.target=Gr(t.props,g);ue&&Mn(t,ue,null,u,0)}else V&&Mn(t,X,k,u,1);kn(t,O)}},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetStart:u,targetAnchor:a,target:f,props:p}=e;if(f&&(s(u),s(a)),o&&s(c),i&16){const m=o||!dn(p);for(let g=0;ghn(g,t&&(q(t)?t[b]:t),n,r,s));return}if(Gt(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&hn(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?gr(r.component):r.el,i=s?null:o,{i:l,r:c}=e,u=t&&t.r,a=l.refs===se?l.refs={}:l.refs,f=l.setupState,p=Z(f),m=f===se?ni:g=>ne(p,g);if(u!=null&&u!==c){if(zs(t),de(u))a[u]=null,m(u)&&(f[u]=null);else if(ce(u)){u.value=null;const g=t;g.k&&(a[g.k]=null)}}if(W(c))xn(c,l,12,[i,a]);else{const g=de(c),b=ce(c);if(g||b){const E=()=>{if(e.f){const O=g?m(c)?f[c]:a[c]:c.value;if(s)q(O)&&ds(O,o);else if(q(O))O.includes(o)||O.push(o);else if(g)a[c]=[o],m(c)&&(f[c]=a[c]);else{const C=[o];c.value=C,e.k&&(a[e.k]=C)}}else g?(a[c]=i,m(c)&&(f[c]=i)):b&&(c.value=i,e.k&&(a[e.k]=i))};if(i){const O=()=>{E(),Yn.delete(e)};O.id=-1,Yn.set(e,O),ve(O,n)}else zs(e),E()}}}function zs(e){const t=Yn.get(e);t&&(t.flags|=8,Yn.delete(e))}ar().requestIdleCallback;ar().cancelIdleCallback;const Gt=e=>!!e.type.__asyncLoader,$i=e=>e.type.__isKeepAlive;function sa(e,t){Ki(e,"a",t)}function oa(e,t){Ki(e,"da",t)}function Ki(e,t,n=Te){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(hr(t,r,n),n){let s=n.parent;for(;s&&s.parent;)$i(s.parent.vnode)&&ia(r,t,n,s),s=s.parent}}function ia(e,t,n,r){const s=hr(t,e,r,!0);Wi(()=>{ds(r[t],s)},n)}function hr(e,t,n=Te,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{ht();const l=Tn(n),c=lt(t,n,e,i);return l(),pt(),c});return r?s.unshift(o):s.push(o),o}}const _t=e=>(t,n=Te)=>{(!An||e==="sp")&&hr(e,(...r)=>t(...r),n)},la=_t("bm"),ca=_t("m"),aa=_t("bu"),ua=_t("u"),fa=_t("bum"),Wi=_t("um"),da=_t("sp"),ha=_t("rtg"),pa=_t("rtc");function ma(e,t=Te){hr("ec",e,t)}const ga=Symbol.for("v-ndc");function Oh(e,t,n,r){let s;const o=n,i=q(e);if(i||de(e)){const l=i&&it(e);let c=!1,u=!1;l&&(c=!je(e),u=mt(e),e=ur(e)),s=new Array(e.length);for(let a=0,f=e.length;at(l,c,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let c=0,u=l.length;c0;return er(),nr(Fe,null,[Ce("slot",n,r)],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),er();const i=o&&Gi(o(n)),l=n.key||i&&i.key,c=nr(Fe,{key:(l&&!yt(l)?l:`_${t}`)+(!i&&r?"_fb":"")},i||[],i&&e._===1?64:-2);return c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),o&&o._c&&(o._d=!0),c}function Gi(e){return e.some(t=>Rn(t)?!(t.type===gt||t.type===Fe&&!Gi(t.children)):!0)?e:null}const zr=e=>e?hl(e)?gr(e):zr(e.parent):null,pn=Se(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=>zr(e.parent),$root:e=>zr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ji(e),$forceUpdate:e=>e.f||(e.f=()=>{As(e.update)}),$nextTick:e=>e.n||(e.n=Rs.bind(e.proxy)),$watch:e=>ea.bind(e)}),Pr=(e,t)=>e!==se&&!e.__isScriptSetup&&ne(e,t),ya={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,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 r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(Pr(r,t))return i[t]=1,r[t];if(s!==se&&ne(s,t))return i[t]=2,s[t];if(ne(o,t))return i[t]=3,o[t];if(n!==se&&ne(n,t))return i[t]=4,n[t];Jr&&(i[t]=0)}}const u=pn[t];let a,f;if(u)return t==="$attrs"&&be(e.attrs,"get",""),u(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==se&&ne(n,t))return i[t]=4,n[t];if(f=c.config.globalProperties,ne(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return Pr(s,t)?(s[t]=n,!0):r!==se&&ne(r,t)?(r[t]=n,!0):ne(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:o,type:i}},l){let c;return!!(n[l]||e!==se&&l[0]!=="$"&&ne(e,l)||Pr(t,l)||ne(o,l)||ne(r,l)||ne(pn,l)||ne(s.config.globalProperties,l)||(c=i.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ne(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Js(e){return q(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Jr=!0;function _a(e){const t=Ji(e),n=e.proxy,r=e.ctx;Jr=!1,t.beforeCreate&&Xs(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:u,created:a,beforeMount:f,mounted:p,beforeUpdate:m,updated:g,activated:b,deactivated:E,beforeDestroy:O,beforeUnmount:C,destroyed:N,unmounted:P,render:M,renderTracked:X,renderTriggered:k,errorCaptured:V,serverPrefetch:U,expose:ee,inheritAttrs:ue,components:ye,directives:pe,filters:Re}=t;if(u&&ba(u,r,null),i)for(const K in i){const z=i[K];W(z)&&(r[K]=z.bind(n))}if(s){const K=s.call(n,n);le(K)&&(e.data=On(K))}if(Jr=!0,o)for(const K in o){const z=o[K],Be=W(z)?z.bind(n,n):W(z.get)?z.get.bind(n,n):ot,ze=!W(z)&&W(z.set)?z.set.bind(n):ot,me=Me({get:Be,set:ze});Object.defineProperty(r,K,{enumerable:!0,configurable:!0,get:()=>me.value,set:fe=>me.value=fe})}if(l)for(const K in l)zi(l[K],r,n,K);if(c){const K=W(c)?c.call(n):c;Reflect.ownKeys(K).forEach(z=>{Hn(z,K[z])})}a&&Xs(a,e,"c");function J(K,z){q(z)?z.forEach(Be=>K(Be.bind(n))):z&&K(z.bind(n))}if(J(la,f),J(ca,p),J(aa,m),J(ua,g),J(sa,b),J(oa,E),J(ma,V),J(pa,X),J(ha,k),J(fa,C),J(Wi,P),J(da,U),q(ee))if(ee.length){const K=e.exposed||(e.exposed={});ee.forEach(z=>{Object.defineProperty(K,z,{get:()=>n[z],set:Be=>n[z]=Be,enumerable:!0})})}else e.exposed||(e.exposed={});M&&e.render===ot&&(e.render=M),ue!=null&&(e.inheritAttrs=ue),ye&&(e.components=ye),pe&&(e.directives=pe),U&&qi(e)}function ba(e,t,n=ot){q(e)&&(e=Xr(e));for(const r in e){const s=e[r];let o;le(s)?"default"in s?o=ke(s.from||r,s.default,!0):o=ke(s.from||r):o=ke(s),ce(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function Xs(e,t,n){lt(q(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function zi(e,t,n,r){let s=r.includes(".")?Bi(n,r):()=>n[r];if(de(e)){const o=t[e];W(o)&&fn(s,o)}else if(W(e))fn(s,e.bind(n));else if(le(e))if(q(e))e.forEach(o=>zi(o,t,n,r));else{const o=W(e.handler)?e.handler.bind(n):t[e.handler];W(o)&&fn(s,o,e)}}function Ji(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>Zn(c,u,i,!0)),Zn(c,t,i)),le(t)&&o.set(t,c),c}function Zn(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&Zn(e,o,n,!0),s&&s.forEach(i=>Zn(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Ea[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Ea={data:Qs,props:Ys,emits:Ys,methods:ln,computed:ln,beforeCreate:Ae,created:Ae,beforeMount:Ae,mounted:Ae,beforeUpdate:Ae,updated:Ae,beforeDestroy:Ae,beforeUnmount:Ae,destroyed:Ae,unmounted:Ae,activated:Ae,deactivated:Ae,errorCaptured:Ae,serverPrefetch:Ae,components:ln,directives:ln,watch:Sa,provide:Qs,inject:wa};function Qs(e,t){return t?e?function(){return Se(W(e)?e.call(this,this):e,W(t)?t.call(this,this):t)}:t:e}function wa(e,t){return ln(Xr(e),Xr(t))}function Xr(e){if(q(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${xt(t)}Modifiers`]||e[`${jt(t)}Modifiers`];function Oa(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||se;let s=n;const o=t.startsWith("update:"),i=o&&va(r,t.slice(7));i&&(i.trim&&(s=n.map(a=>de(a)?a.trim():a)),i.number&&(s=n.map(hs)));let l,c=r[l=vr(t)]||r[l=vr(xt(t))];!c&&o&&(c=r[l=vr(jt(t))]),c&<(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,lt(u,e,6,s)}}const xa=new WeakMap;function Qi(e,t,n=!1){const r=n?xa:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!W(e)){const c=u=>{const a=Qi(u,t,!0);a&&(l=!0,Se(i,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(le(e)&&r.set(e,null),null):(q(o)?o.forEach(c=>i[c]=null):Se(i,o),le(e)&&r.set(e,i),i)}function pr(e,t){return!e||!or(t)?!1:(t=t.slice(2).replace(/Once$/,""),ne(e,t[0].toLowerCase()+t.slice(1))||ne(e,jt(t))||ne(e,t))}function Zs(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:a,props:f,data:p,setupState:m,ctx:g,inheritAttrs:b}=e,E=Qn(e);let O,C;try{if(n.shapeFlag&4){const P=s||r,M=P;O=st(u.call(M,P,a,f,m,p,g)),C=l}else{const P=t;O=st(P.length>1?P(f,{attrs:l,slots:i,emit:c}):P(f,null)),C=t.props?l:Ta(l)}}catch(P){mn.length=0,dr(P,e,1),O=Ce(gt)}let N=O;if(C&&b!==!1){const P=Object.keys(C),{shapeFlag:M}=N;P.length&&M&7&&(o&&P.some(fs)&&(C=Ca(C,o)),N=Jt(N,C,!1,!0))}return n.dirs&&(N=Jt(N,null,!1,!0),N.dirs=N.dirs?N.dirs.concat(n.dirs):n.dirs),n.transition&&vs(N,n.transition),O=N,Qn(E),O}const Ta=e=>{let t;for(const n in e)(n==="class"||n==="style"||or(n))&&((t||(t={}))[n]=e[n]);return t},Ca=(e,t)=>{const n={};for(const r in e)(!fs(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Pa(e,t,n){const{props:r,children:s,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 r?eo(r,i,u):!!i;if(c&8){const a=t.dynamicProps;for(let f=0;fObject.create(Yi),el=e=>Object.getPrototypeOf(e)===Yi;function Ia(e,t,n,r=!1){const s={},o=Zi();e.propsDefaults=Object.create(null),tl(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:Ci(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function Da(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=Z(s),[c]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const a=e.vnode.dynamicProps;for(let f=0;f{c=!0;const[p,m]=nl(f,t,!0);Se(i,p),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!c)return le(e)&&r.set(e,$t),$t;if(q(o))for(let a=0;ae==="_"||e==="_ctx"||e==="$stable",Ts=e=>q(e)?e.map(st):[st(e)],Fa=(e,t,n)=>{if(t._n)return t;const r=Xc((...s)=>Ts(t(...s)),n);return r._c=!1,r},rl=(e,t,n)=>{const r=e._ctx;for(const s in e){if(xs(s))continue;const o=e[s];if(W(o))t[s]=Fa(s,o,r);else if(o!=null){const i=Ts(o);t[s]=()=>i}}},sl=(e,t)=>{const n=Ts(t);e.slots.default=()=>n},ol=(e,t,n)=>{for(const r in t)(n||!xs(r))&&(e[r]=t[r])},Ma=(e,t,n)=>{const r=e.slots=Zi();if(e.vnode.shapeFlag&32){const s=t._;s?(ol(r,t,n),n&&ci(r,"_",s,!0)):rl(t,r)}else t&&sl(e,t)},Ua=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=se;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:ol(s,t,n):(o=!t.$stable,rl(t,s)),i=t}else t&&(sl(e,t),i={default:1});if(o)for(const l in s)!xs(l)&&i[l]==null&&delete s[l]},ve=Va;function ja(e){return Ba(e)}function Ba(e,t){const n=ar();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:a,parentNode:f,nextSibling:p,setScopeId:m=ot,insertStaticContent:g}=e,b=(d,h,y,w=null,A=null,S=null,I=void 0,T=null,x=!!h.dynamicChildren)=>{if(d===h)return;d&&!rn(d,h)&&(w=R(d),fe(d,A,S,!0),d=null),h.patchFlag===-2&&(x=!1,h.dynamicChildren=null);const{type:v,ref:H,shapeFlag:L}=h;switch(v){case mr:E(d,h,y,w);break;case gt:O(d,h,y,w);break;case Vn:d==null&&C(h,y,w,I);break;case Fe:ye(d,h,y,w,A,S,I,T,x);break;default:L&1?M(d,h,y,w,A,S,I,T,x):L&6?pe(d,h,y,w,A,S,I,T,x):(L&64||L&128)&&v.process(d,h,y,w,A,S,I,T,x,j)}H!=null&&A?hn(H,d&&d.ref,S,h||d,!h):H==null&&d&&d.ref!=null&&hn(d.ref,null,S,d,!0)},E=(d,h,y,w)=>{if(d==null)r(h.el=l(h.children),y,w);else{const A=h.el=d.el;h.children!==d.children&&u(A,h.children)}},O=(d,h,y,w)=>{d==null?r(h.el=c(h.children||""),y,w):h.el=d.el},C=(d,h,y,w)=>{[d.el,d.anchor]=g(d.children,h,y,w,d.el,d.anchor)},N=({el:d,anchor:h},y,w)=>{let A;for(;d&&d!==h;)A=p(d),r(d,y,w),d=A;r(h,y,w)},P=({el:d,anchor:h})=>{let y;for(;d&&d!==h;)y=p(d),s(d),d=y;s(h)},M=(d,h,y,w,A,S,I,T,x)=>{if(h.type==="svg"?I="svg":h.type==="math"&&(I="mathml"),d==null)X(h,y,w,A,S,I,T,x);else{const v=d.el&&d.el._isVueCE?d.el:null;try{v&&v._beginPatch(),U(d,h,A,S,I,T,x)}finally{v&&v._endPatch()}}},X=(d,h,y,w,A,S,I,T)=>{let x,v;const{props:H,shapeFlag:L,transition:B,dirs:$}=d;if(x=d.el=i(d.type,S,H&&H.is,H),L&8?a(x,d.children):L&16&&V(d.children,x,null,w,A,Nr(d,S),I,T),$&&Tt(d,null,w,"created"),k(x,d,d.scopeId,I,w),H){for(const oe in H)oe!=="value"&&!cn(oe)&&o(x,oe,null,H[oe],S,w);"value"in H&&o(x,"value",null,H.value,S),(v=H.onVnodeBeforeMount)&&et(v,w,d)}$&&Tt(d,null,w,"beforeMount");const Y=Ha(A,B);Y&&B.beforeEnter(x),r(x,h,y),((v=H&&H.onVnodeMounted)||Y||$)&&ve(()=>{v&&et(v,w,d),Y&&B.enter(x),$&&Tt(d,null,w,"mounted")},A)},k=(d,h,y,w,A)=>{if(y&&m(d,y),w)for(let S=0;S{for(let v=x;v{const T=h.el=d.el;let{patchFlag:x,dynamicChildren:v,dirs:H}=h;x|=d.patchFlag&16;const L=d.props||se,B=h.props||se;let $;if(y&&Ct(y,!1),($=B.onVnodeBeforeUpdate)&&et($,y,h,d),H&&Tt(h,d,y,"beforeUpdate"),y&&Ct(y,!0),(L.innerHTML&&B.innerHTML==null||L.textContent&&B.textContent==null)&&a(T,""),v?ee(d.dynamicChildren,v,T,y,w,Nr(h,A),S):I||z(d,h,T,null,y,w,Nr(h,A),S,!1),x>0){if(x&16)ue(T,L,B,y,A);else if(x&2&&L.class!==B.class&&o(T,"class",null,B.class,A),x&4&&o(T,"style",L.style,B.style,A),x&8){const Y=h.dynamicProps;for(let oe=0;oe{$&&et($,y,h,d),H&&Tt(h,d,y,"updated")},w)},ee=(d,h,y,w,A,S,I)=>{for(let T=0;T{if(h!==y){if(h!==se)for(const S in h)!cn(S)&&!(S in y)&&o(d,S,h[S],null,A,w);for(const S in y){if(cn(S))continue;const I=y[S],T=h[S];I!==T&&S!=="value"&&o(d,S,T,I,A,w)}"value"in y&&o(d,"value",h.value,y.value,A)}},ye=(d,h,y,w,A,S,I,T,x)=>{const v=h.el=d?d.el:l(""),H=h.anchor=d?d.anchor:l("");let{patchFlag:L,dynamicChildren:B,slotScopeIds:$}=h;$&&(T=T?T.concat($):$),d==null?(r(v,y,w),r(H,y,w),V(h.children||[],y,H,A,S,I,T,x)):L>0&&L&64&&B&&d.dynamicChildren&&d.dynamicChildren.length===B.length?(ee(d.dynamicChildren,B,y,A,S,I,T),(h.key!=null||A&&h===A.subTree)&&Cs(d,h,!0)):z(d,h,y,H,A,S,I,T,x)},pe=(d,h,y,w,A,S,I,T,x)=>{h.slotScopeIds=T,d==null?h.shapeFlag&512?A.ctx.activate(h,y,w,I,x):Re(h,y,w,A,S,I,x):Ve(d,h,x)},Re=(d,h,y,w,A,S,I)=>{const T=d.component=Xa(d,w,A);if($i(d)&&(T.ctx.renderer=j),Qa(T,!1,I),T.asyncDep){if(A&&A.registerDep(T,J,I),!d.el){const x=T.subTree=Ce(gt);O(null,x,h,y),d.placeholder=x.el}}else J(T,d,h,y,A,S,I)},Ve=(d,h,y)=>{const w=h.component=d.component;if(Pa(d,h,y))if(w.asyncDep&&!w.asyncResolved){K(w,h,y);return}else w.next=h,w.update();else h.el=d.el,w.vnode=h},J=(d,h,y,w,A,S,I)=>{const T=()=>{if(d.isMounted){let{next:L,bu:B,u:$,parent:Y,vnode:oe}=d;{const Ye=il(d);if(Ye){L&&(L.el=oe.el,K(d,L,I)),Ye.asyncDep.then(()=>{d.isUnmounted||T()});return}}let re=L,Pe;Ct(d,!1),L?(L.el=oe.el,K(d,L,I)):L=oe,B&&Bn(B),(Pe=L.props&&L.props.onVnodeBeforeUpdate)&&et(Pe,Y,L,oe),Ct(d,!0);const Ne=Zs(d),Qe=d.subTree;d.subTree=Ne,b(Qe,Ne,f(Qe.el),R(Qe),d,A,S),L.el=Ne.el,re===null&&Na(d,Ne.el),$&&ve($,A),(Pe=L.props&&L.props.onVnodeUpdated)&&ve(()=>et(Pe,Y,L,oe),A)}else{let L;const{el:B,props:$}=h,{bm:Y,m:oe,parent:re,root:Pe,type:Ne}=d,Qe=Gt(h);Ct(d,!1),Y&&Bn(Y),!Qe&&(L=$&&$.onVnodeBeforeMount)&&et(L,re,h),Ct(d,!0);{Pe.ce&&Pe.ce._def.shadowRoot!==!1&&Pe.ce._injectChildStyle(Ne);const Ye=d.subTree=Zs(d);b(null,Ye,y,w,d,A,S),h.el=Ye.el}if(oe&&ve(oe,A),!Qe&&(L=$&&$.onVnodeMounted)){const Ye=h;ve(()=>et(L,re,Ye),A)}(h.shapeFlag&256||re&&Gt(re.vnode)&&re.vnode.shapeFlag&256)&&d.a&&ve(d.a,A),d.isMounted=!0,h=y=w=null}};d.scope.on();const x=d.effect=new mi(T);d.scope.off();const v=d.update=x.run.bind(x),H=d.job=x.runIfDirty.bind(x);H.i=d,H.id=d.uid,x.scheduler=()=>As(H),Ct(d,!0),v()},K=(d,h,y)=>{h.component=d;const w=d.vnode.props;d.vnode=h,d.next=null,Da(d,h.props,w,y),Ua(d,h.children,y),ht(),$s(d),pt()},z=(d,h,y,w,A,S,I,T,x=!1)=>{const v=d&&d.children,H=d?d.shapeFlag:0,L=h.children,{patchFlag:B,shapeFlag:$}=h;if(B>0){if(B&128){ze(v,L,y,w,A,S,I,T,x);return}else if(B&256){Be(v,L,y,w,A,S,I,T,x);return}}$&8?(H&16&&He(v,A,S),L!==v&&a(y,L)):H&16?$&16?ze(v,L,y,w,A,S,I,T,x):He(v,A,S,!0):(H&8&&a(y,""),$&16&&V(L,y,w,A,S,I,T,x))},Be=(d,h,y,w,A,S,I,T,x)=>{d=d||$t,h=h||$t;const v=d.length,H=h.length,L=Math.min(v,H);let B;for(B=0;BH?He(d,A,S,!0,!1,L):V(h,y,w,A,S,I,T,x,L)},ze=(d,h,y,w,A,S,I,T,x)=>{let v=0;const H=h.length;let L=d.length-1,B=H-1;for(;v<=L&&v<=B;){const $=d[v],Y=h[v]=x?Rt(h[v]):st(h[v]);if(rn($,Y))b($,Y,y,null,A,S,I,T,x);else break;v++}for(;v<=L&&v<=B;){const $=d[L],Y=h[B]=x?Rt(h[B]):st(h[B]);if(rn($,Y))b($,Y,y,null,A,S,I,T,x);else break;L--,B--}if(v>L){if(v<=B){const $=B+1,Y=$B)for(;v<=L;)fe(d[v],A,S,!0),v++;else{const $=v,Y=v,oe=new Map;for(v=Y;v<=B;v++){const Le=h[v]=x?Rt(h[v]):st(h[v]);Le.key!=null&&oe.set(Le.key,v)}let re,Pe=0;const Ne=B-Y+1;let Qe=!1,Ye=0;const tn=new Array(Ne);for(v=0;v=Ne){fe(Le,A,S,!0);continue}let Ze;if(Le.key!=null)Ze=oe.get(Le.key);else for(re=Y;re<=B;re++)if(tn[re-Y]===0&&rn(Le,h[re])){Ze=re;break}Ze===void 0?fe(Le,A,S,!0):(tn[Ze-Y]=v+1,Ze>=Ye?Ye=Ze:Qe=!0,b(Le,h[Ze],y,null,A,S,I,T,x),Pe++)}const js=Qe?ka(tn):$t;for(re=js.length-1,v=Ne-1;v>=0;v--){const Le=Y+v,Ze=h[Le],Bs=h[Le+1],Hs=Le+1{const{el:S,type:I,transition:T,children:x,shapeFlag:v}=d;if(v&6){me(d.component.subTree,h,y,w);return}if(v&128){d.suspense.move(h,y,w);return}if(v&64){I.move(d,h,y,j);return}if(I===Fe){r(S,h,y);for(let L=0;LT.enter(S),A);else{const{leave:L,delayLeave:B,afterLeave:$}=T,Y=()=>{d.ctx.isUnmounted?s(S):r(S,h,y)},oe=()=>{S._isLeaving&&S[ra](!0),L(S,()=>{Y(),$&&$()})};B?B(S,Y,oe):oe()}else r(S,h,y)},fe=(d,h,y,w=!1,A=!1)=>{const{type:S,props:I,ref:T,children:x,dynamicChildren:v,shapeFlag:H,patchFlag:L,dirs:B,cacheIndex:$}=d;if(L===-2&&(A=!1),T!=null&&(ht(),hn(T,null,y,d,!0),pt()),$!=null&&(h.renderCache[$]=void 0),H&256){h.ctx.deactivate(d);return}const Y=H&1&&B,oe=!Gt(d);let re;if(oe&&(re=I&&I.onVnodeBeforeUnmount)&&et(re,h,d),H&6)Xe(d.component,y,w);else{if(H&128){d.suspense.unmount(y,w);return}Y&&Tt(d,null,h,"beforeUnmount"),H&64?d.type.remove(d,h,y,j,w):v&&!v.hasOnce&&(S!==Fe||L>0&&L&64)?He(v,h,y,!1,!0):(S===Fe&&L&384||!A&&H&16)&&He(x,h,y),w&&Je(d)}(oe&&(re=I&&I.onVnodeUnmounted)||Y)&&ve(()=>{re&&et(re,h,d),Y&&Tt(d,null,h,"unmounted")},y)},Je=d=>{const{type:h,el:y,anchor:w,transition:A}=d;if(h===Fe){qe(y,w);return}if(h===Vn){P(d);return}const S=()=>{s(y),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(d.shapeFlag&1&&A&&!A.persisted){const{leave:I,delayLeave:T}=A,x=()=>I(y,S);T?T(d.el,S,x):x()}else S()},qe=(d,h)=>{let y;for(;d!==h;)y=p(d),s(d),d=y;s(h)},Xe=(d,h,y)=>{const{bum:w,scope:A,job:S,subTree:I,um:T,m:x,a:v}=d;no(x),no(v),w&&Bn(w),A.stop(),S&&(S.flags|=8,fe(I,d,h,y)),T&&ve(T,h),ve(()=>{d.isUnmounted=!0},h)},He=(d,h,y,w=!1,A=!1,S=0)=>{for(let I=S;I{if(d.shapeFlag&6)return R(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const h=p(d.anchor||d.el),y=h&&h[Hi];return y?p(y):h};let F=!1;const D=(d,h,y)=>{let w;d==null?h._vnode&&(fe(h._vnode,null,null,!0),w=h._vnode.component):b(h._vnode||null,d,h,null,null,null,y),h._vnode=d,F||(F=!0,$s(w),Fi(),F=!1)},j={p:b,um:fe,m:me,r:Je,mt:Re,mc:V,pc:z,pbc:ee,n:R,o:e};return{render:D,hydrate:void 0,createApp:Aa(D)}}function Nr({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 Ct({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Ha(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Cs(e,t,n=!1){const r=e.children,s=t.children;if(q(r)&&q(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function il(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:il(t)}function no(e){if(e)for(let t=0;te.__isSuspense;function Va(e,t){t&&t.pendingBranch?q(e)?t.effects.push(...e):t.effects.push(e):Jc(e)}const Fe=Symbol.for("v-fgt"),mr=Symbol.for("v-txt"),gt=Symbol.for("v-cmt"),Vn=Symbol.for("v-stc"),mn=[];let Ue=null;function er(e=!1){mn.push(Ue=e?null:[])}function qa(){mn.pop(),Ue=mn[mn.length-1]||null}let Sn=1;function tr(e,t=!1){Sn+=e,e<0&&Ue&&t&&(Ue.hasOnce=!0)}function al(e){return e.dynamicChildren=Sn>0?Ue||$t:null,qa(),Sn>0&&Ue&&Ue.push(e),e}function Th(e,t,n,r,s,o){return al(fl(e,t,n,r,s,o,!0))}function nr(e,t,n,r,s){return al(Ce(e,t,n,r,s,!0))}function Rn(e){return e?e.__v_isVNode===!0:!1}function rn(e,t){return e.type===t.type&&e.key===t.key}const ul=({key:e})=>e??null,qn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?de(e)||ce(e)||W(e)?{i:we,r:e,k:t,f:!!n}:e:null);function fl(e,t=null,n=null,r=0,s=null,o=e===Fe?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ul(t),ref:t&&qn(t),scopeId:Ui,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:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:we};return l?(Ps(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=de(n)?8:16),Sn>0&&!i&&Ue&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Ue.push(c),c}const Ce=$a;function $a(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===ga)&&(e=gt),Rn(e)){const l=Jt(e,t,!0);return n&&Ps(l,n),Sn>0&&!o&&Ue&&(l.shapeFlag&6?Ue[Ue.indexOf(e)]=l:Ue.push(l)),l.patchFlag=-2,l}if(tu(e)&&(e=e.__vccOpts),t){t=Ka(t);let{class:l,style:c}=t;l&&!de(l)&&(t.class=ms(l)),le(c)&&(fr(c)&&!q(c)&&(c=Se({},c)),t.style=ps(c))}const i=de(e)?1:cl(e)?128:ta(e)?64:le(e)?4:W(e)?2:0;return fl(e,t,n,r,s,i,o,!0)}function Ka(e){return e?fr(e)||el(e)?Se({},e):e:null}function Jt(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?Ga(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&ul(u),ref:t&&t.ref?n&&o?q(o)?o.concat(qn(t)):[o,qn(t)]:qn(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!==Fe?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&&Jt(e.ssContent),ssFallback:e.ssFallback&&Jt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&vs(a,c.clone(a)),a}function Wa(e=" ",t=0){return Ce(mr,null,e,t)}function Ch(e,t){const n=Ce(Vn,null,e);return n.staticCount=t,n}function Ph(e="",t=!1){return t?(er(),nr(gt,null,e)):Ce(gt,null,e)}function st(e){return e==null||typeof e=="boolean"?Ce(gt):q(e)?Ce(Fe,null,e.slice()):Rn(e)?Rt(e):Ce(mr,null,String(e))}function Rt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Jt(e)}function Ps(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(q(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Ps(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!el(t)?t._ctx=we:s===3&&we&&(we.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else W(t)?(t={default:t,_ctx:we},n=32):(t=String(t),r&64?(n=16,t=[Wa(t)]):n=8);e.children=t,e.shapeFlag|=n}function Ga(...e){const t={};for(let n=0;nTe||we;let rr,Yr;{const e=ar(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};rr=t("__VUE_INSTANCE_SETTERS__",n=>Te=n),Yr=t("__VUE_SSR_SETTERS__",n=>An=n)}const Tn=e=>{const t=Te;return rr(e),e.scope.on(),()=>{e.scope.off(),rr(t)}},ro=()=>{Te&&Te.scope.off(),rr(null)};function hl(e){return e.vnode.shapeFlag&4}let An=!1;function Qa(e,t=!1,n=!1){t&&Yr(t);const{props:r,children:s}=e.vnode,o=hl(e);Ia(e,r,o,t),Ma(e,s,n||t);const i=o?Ya(e,t):void 0;return t&&Yr(!1),i}function Ya(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,ya);const{setup:r}=n;if(r){ht();const s=e.setupContext=r.length>1?eu(e):null,o=Tn(e),i=xn(r,e,0,[e.props,s]),l=si(i);if(pt(),o(),(l||e.sp)&&!Gt(e)&&qi(e),l){if(i.then(ro,ro),t)return i.then(c=>{so(e,c)}).catch(c=>{dr(c,e,0)});e.asyncDep=i}else so(e,i)}else pl(e)}function so(e,t,n){W(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:le(t)&&(e.setupState=Ni(t)),pl(e)}function pl(e,t,n){const r=e.type;e.render||(e.render=r.render||ot);{const s=Tn(e);ht();try{_a(e)}finally{pt(),s()}}}const Za={get(e,t){return be(e,"get",""),e[t]}};function eu(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Za),slots:e.slots,emit:e.emit,expose:t}}function gr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ni(Ss(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in pn)return pn[n](e)},has(t,n){return n in t||n in pn}})):e.proxy}function tu(e){return W(e)&&"__vccOpts"in e}const Me=(e,t)=>$c(e,t,An);function ml(e,t,n){try{tr(-1);const r=arguments.length;return r===2?le(t)&&!q(t)?Rn(t)?Ce(e,null,[t]):Ce(e,t):Ce(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Rn(n)&&(n=[n]),Ce(e,t,n))}finally{tr(1)}}const nu="3.5.26";let Zr;const oo=typeof window<"u"&&window.trustedTypes;if(oo)try{Zr=oo.createPolicy("vue",{createHTML:e=>e})}catch{}const gl=Zr?e=>Zr.createHTML(e):e=>e,ru="http://www.w3.org/2000/svg",su="http://www.w3.org/1998/Math/MathML",ut=typeof document<"u"?document:null,io=ut&&ut.createElement("template"),ou={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?ut.createElementNS(ru,e):t==="mathml"?ut.createElementNS(su,e):n?ut.createElement(e,{is:n}):ut.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>ut.createTextNode(e),createComment:e=>ut.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ut.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{io.innerHTML=gl(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=io.content;if(r==="svg"||r==="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]}},iu=Symbol("_vtc");function lu(e,t,n){const r=e[iu];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const lo=Symbol("_vod"),cu=Symbol("_vsh"),au=Symbol(""),uu=/(?:^|;)\s*display\s*:/;function fu(e,t,n){const r=e.style,s=de(n);let o=!1;if(n&&!s){if(t)if(de(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&$n(r,l,"")}else for(const i in t)n[i]==null&&$n(r,i,"");for(const i in n)i==="display"&&(o=!0),$n(r,i,n[i])}else if(s){if(t!==n){const i=r[au];i&&(n+=";"+i),r.cssText=n,o=uu.test(n)}}else t&&e.removeAttribute("style");lo in e&&(e[lo]=o?r.display:"",e[cu]&&(r.display="none"))}const co=/\s*!important$/;function $n(e,t,n){if(q(n))n.forEach(r=>$n(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=du(e,t);co.test(n)?e.setProperty(jt(r),n.replace(co,""),"important"):e[r]=n}}const ao=["Webkit","Moz","ms"],Ir={};function du(e,t){const n=Ir[t];if(n)return n;let r=xt(t);if(r!=="filter"&&r in e)return Ir[t]=r;r=li(r);for(let s=0;sDr||(gu.then(()=>Dr=0),Dr=Date.now());function _u(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;lt(bu(r,n.value),t,5,[r])};return n.value=e,n.attached=yu(),n}function bu(e,t){if(q(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const go=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Eu=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?lu(e,r,i):t==="style"?fu(e,n,r):or(t)?fs(t)||pu(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):wu(e,t,r,i))?(ho(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&fo(e,t,r,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!de(r))?ho(e,xt(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),fo(e,t,r,i))};function wu(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&go(t)&&W(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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return go(t)&&de(n)?!1:t in e}const yo=e=>{const t=e.props["onUpdate:modelValue"]||!1;return q(t)?n=>Bn(t,n):t};function Su(e){e.target.composing=!0}function _o(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Lr=Symbol("_assign");function bo(e,t,n){return t&&(e=e.trim()),n&&(e=hs(e)),e}const Nh={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Lr]=yo(s);const o=r||s.props&&s.props.type==="number";Vt(e,t?"change":"input",i=>{i.target.composing||e[Lr](bo(e.value,n,o))}),(n||o)&&Vt(e,"change",()=>{e.value=bo(e.value,n,o)}),t||(Vt(e,"compositionstart",Su),Vt(e,"compositionend",_o),Vt(e,"change",_o))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Lr]=yo(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?hs(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},Ru=["ctrl","shift","alt","meta"],Au={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Ru.some(n=>e[`${n}Key`]&&!t.includes(n))},Ih=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const t=Ou().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Cu(r);if(!s)return;const o=t._component;!W(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,Tu(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t});function Tu(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Cu(e){return de(e)?document.querySelector(e):e}let yl;const yr=e=>yl=e,_l=Symbol();function es(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var gn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(gn||(gn={}));function Pu(){const e=hi(!0),t=e.run(()=>Lt({}));let n=[],r=[];const s=Ss({install(o){yr(s),s._a=o,o.provide(_l,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const bl=()=>{};function wo(e,t,n,r=bl){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&pi()&&gc(s),s}function Ht(e,...t){e.forEach(n=>{n(...t)})}const Nu=e=>e(),So=Symbol(),Fr=Symbol();function ts(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];es(s)&&es(r)&&e.hasOwnProperty(n)&&!ce(r)&&!it(r)?e[n]=ts(s,r):e[n]=r}return e}const Iu=Symbol();function Du(e){return!es(e)||!Object.prototype.hasOwnProperty.call(e,Iu)}const{assign:Et}=Object;function Lu(e){return!!(ce(e)&&e.effect)}function Fu(e,t,n,r){const{state:s,actions:o,getters:i}=t,l=n.state.value[e];let c;function u(){l||(n.state.value[e]=s?s():{});const a=Bc(n.state.value[e]);return Et(a,o,Object.keys(i||{}).reduce((f,p)=>(f[p]=Ss(Me(()=>{yr(n);const m=n._s.get(e);return i[p].call(m,m)})),f),{}))}return c=El(e,u,t,n,r,!0),c}function El(e,t,n={},r,s,o){let i;const l=Et({actions:{}},n),c={deep:!0};let u,a,f=new Set,p=new Set,m;const g=r.state.value[e];!o&&!g&&(r.state.value[e]={}),Lt({});let b;function E(V){let U;u=a=!1,typeof V=="function"?(V(r.state.value[e]),U={type:gn.patchFunction,storeId:e,events:m}):(ts(r.state.value[e],V),U={type:gn.patchObject,payload:V,storeId:e,events:m});const ee=b=Symbol();Rs().then(()=>{b===ee&&(u=!0)}),a=!0,Ht(f,U,r.state.value[e])}const O=o?function(){const{state:U}=n,ee=U?U():{};this.$patch(ue=>{Et(ue,ee)})}:bl;function C(){i.stop(),f.clear(),p.clear(),r._s.delete(e)}const N=(V,U="")=>{if(So in V)return V[Fr]=U,V;const ee=function(){yr(r);const ue=Array.from(arguments),ye=new Set,pe=new Set;function Re(K){ye.add(K)}function Ve(K){pe.add(K)}Ht(p,{args:ue,name:ee[Fr],store:M,after:Re,onError:Ve});let J;try{J=V.apply(this&&this.$id===e?this:M,ue)}catch(K){throw Ht(pe,K),K}return J instanceof Promise?J.then(K=>(Ht(ye,K),K)).catch(K=>(Ht(pe,K),Promise.reject(K))):(Ht(ye,J),J)};return ee[So]=!0,ee[Fr]=U,ee},P={_p:r,$id:e,$onAction:wo.bind(null,p),$patch:E,$reset:O,$subscribe(V,U={}){const ee=wo(f,V,U.detached,()=>ue()),ue=i.run(()=>fn(()=>r.state.value[e],ye=>{(U.flush==="sync"?a:u)&&V({storeId:e,type:gn.direct,events:m},ye)},Et({},c,U)));return ee},$dispose:C},M=On(P);r._s.set(e,M);const k=(r._a&&r._a.runWithContext||Nu)(()=>r._e.run(()=>(i=hi()).run(()=>t({action:N}))));for(const V in k){const U=k[V];if(ce(U)&&!Lu(U)||it(U))o||(g&&Du(U)&&(ce(U)?U.value=g[V]:ts(U,g[V])),r.state.value[e][V]=U);else if(typeof U=="function"){const ee=N(U,V);k[V]=ee,l.actions[V]=U}}return Et(M,k),Et(Z(M),k),Object.defineProperty(M,"$state",{get:()=>r.state.value[e],set:V=>{E(U=>{Et(U,V)})}}),r._p.forEach(V=>{Et(M,i.run(()=>V({store:M,app:r._a,pinia:r,options:l})))}),g&&o&&n.hydrate&&n.hydrate(M.$state,g),u=!0,a=!0,M}function Mu(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,l){const c=Qc();return i=i||(c?ke(_l,null):null),i&&yr(i),i=yl,i._s.has(e)||(s?El(e,t,r,i):Fu(e,r,i)),i._s.get(e)}return o.$id=e,o}function Dh(e){const t=Z(e),n={};for(const r in t){const s=t[r];s.effect?n[r]=Me({get:()=>e[r],set(o){e[r]=o}}):(ce(s)||it(s))&&(n[r]=Vc(e,r))}return n}const Uu="modulepreload",ju=function(e){return"/"+e},Ro={},tt=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let c=function(u){return Promise.all(u.map(a=>Promise.resolve(a).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=c(n.map(u=>{if(u=ju(u),u in Ro)return;Ro[u]=!0;const a=u.endsWith(".css"),f=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const p=document.createElement("link");if(p.rel=a?"stylesheet":Uu,a||(p.as="script"),p.crossOrigin="",p.href=u,l&&p.setAttribute("nonce",l),document.head.appendChild(p),a)return new Promise((m,g)=>{p.addEventListener("load",m),p.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})};const qt=typeof document<"u";function wl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Bu(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&wl(e.default)}const te=Object.assign;function Mr(e,t){const n={};for(const r in t){const s=t[r];n[r]=We(s)?s.map(e):e(s)}return n}const yn=()=>{},We=Array.isArray;function Ao(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const Sl=/#/g,Hu=/&/g,ku=/\//g,Vu=/=/g,qu=/\?/g,Rl=/\+/g,$u=/%5B/g,Ku=/%5D/g,Al=/%5E/g,Wu=/%60/g,vl=/%7B/g,Gu=/%7C/g,Ol=/%7D/g,zu=/%20/g;function Ns(e){return e==null?"":encodeURI(""+e).replace(Gu,"|").replace($u,"[").replace(Ku,"]")}function Ju(e){return Ns(e).replace(vl,"{").replace(Ol,"}").replace(Al,"^")}function ns(e){return Ns(e).replace(Rl,"%2B").replace(zu,"+").replace(Sl,"%23").replace(Hu,"%26").replace(Wu,"`").replace(vl,"{").replace(Ol,"}").replace(Al,"^")}function Xu(e){return ns(e).replace(Vu,"%3D")}function Qu(e){return Ns(e).replace(Sl,"%23").replace(qu,"%3F")}function Yu(e){return Qu(e).replace(ku,"%2F")}function vn(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Zu=/\/$/,ef=e=>e.replace(Zu,"");function Ur(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return c=l>=0&&c>l?-1:c,c>=0&&(r=t.slice(0,c),o=t.slice(c,l>0?l:t.length),s=e(o.slice(1))),l>=0&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=sf(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:vn(i)}}function tf(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function vo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function nf(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&Xt(t.matched[r],n.matched[s])&&xl(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Xt(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function xl(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!rf(e[n],t[n]))return!1;return!0}function rf(e,t){return We(e)?Oo(e,t):We(t)?Oo(t,e):e?.valueOf()===t?.valueOf()}function Oo(e,t){return We(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function sf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const bt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let rs=(function(e){return e.pop="pop",e.push="push",e})({}),jr=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function of(e){if(!e)if(qt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),ef(e)}const lf=/^[^#]+#/;function cf(e,t){return e.replace(lf,"#")+t}function af(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const _r=()=>({left:window.scrollX,top:window.scrollY});function uf(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=af(s,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 xo(e,t){return(history.state?history.state.position-t:-1)+e}const ss=new Map;function ff(e,t){ss.set(e,t)}function df(e){const t=ss.get(e);return ss.delete(e),t}function hf(e){return typeof e=="string"||e&&typeof e=="object"}function Tl(e){return typeof e=="string"||typeof e=="symbol"}let ae=(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 Cl=Symbol("");ae.MATCHER_NOT_FOUND+"",ae.NAVIGATION_GUARD_REDIRECT+"",ae.NAVIGATION_ABORTED+"",ae.NAVIGATION_CANCELLED+"",ae.NAVIGATION_DUPLICATED+"";function Qt(e,t){return te(new Error,{type:e,[Cl]:!0},t)}function at(e,t){return e instanceof Error&&Cl in e&&(t==null||!!(e.type&t))}const pf=["params","query","hash"];function mf(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of pf)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function gf(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&ns(s)):[r&&ns(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function yf(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=We(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const _f=Symbol(""),Co=Symbol(""),br=Symbol(""),Is=Symbol(""),os=Symbol("");function sn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function At(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,c)=>{const u=p=>{p===!1?c(Qt(ae.NAVIGATION_ABORTED,{from:n,to:t})):p instanceof Error?c(p):hf(p)?c(Qt(ae.NAVIGATION_GUARD_REDIRECT,{from:t,to:p})):(i&&r.enterCallbacks[s]===i&&typeof p=="function"&&i.push(p),l())},a=o(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(a);e.length<3&&(f=f.then(u)),f.catch(p=>c(p))})}function Br(e,t,n,r,s=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(wl(c)){const u=(c.__vccOpts||c)[t];u&&o.push(At(u,n,r,i,l,s))}else{let u=c();o.push(()=>u.then(a=>{if(!a)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=Bu(a)?a.default:a;i.mods[l]=a,i.components[l]=f;const p=(f.__vccOpts||f)[t];return p&&At(p,n,r,i,l,s)()}))}}return o}function bf(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;iXt(u,l))?r.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(u=>Xt(u,c))||s.push(c))}return[n,r,s]}let Ef=()=>location.protocol+"//"+location.host;function Pl(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(i);return l[0]!=="/"&&(l="/"+l),vo(l,"")}return vo(n,e)+r+s}function wf(e,t,n,r){let s=[],o=[],i=null;const l=({state:p})=>{const m=Pl(e,location),g=n.value,b=t.value;let E=0;if(p){if(n.value=m,t.value=p,i&&i===g){i=null;return}E=b?p.position-b.position:0}else r(m);s.forEach(O=>{O(n.value,g,{delta:E,type:rs.pop,direction:E?E>0?jr.forward:jr.back:jr.unknown})})};function c(){i=n.value}function u(p){s.push(p);const m=()=>{const g=s.indexOf(p);g>-1&&s.splice(g,1)};return o.push(m),m}function a(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(te({},p.state,{scroll:_r()}),"")}}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,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?_r():null}}function Sf(e){const{history:t,location:n}=window,r={value:Pl(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.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:Ef()+e+c;try{t[a?"replaceState":"pushState"](u,"",p),s.value=u}catch(m){console.error(m),n[a?"replace":"assign"](p)}}function i(c,u){o(c,te({},t.state,Po(s.value.back,c,s.value.forward,!0),u,{position:s.value.position}),!0),r.value=c}function l(c,u){const a=te({},s.value,t.state,{forward:c,scroll:_r()});o(a.current,a,!0),o(c,te({},Po(r.value,c,null),{position:a.position+1},u),!1),r.value=c}return{location:r,state:s,push:l,replace:i}}function Rf(e){e=of(e);const t=Sf(e),n=wf(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=te({location:"",base:e,go:r,createHref:cf.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function Af(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),Rf(e)}let Nt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var ge=(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})(ge||{});const vf={type:Nt.Static,value:""},Of=/[a-zA-Z0-9_]/;function xf(e){if(!e)return[[]];if(e==="/")return[[vf]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${u}": ${m}`)}let n=ge.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,c,u="",a="";function f(){u&&(n===ge.Static?o.push({type:Nt.Static,value:u}):n===ge.Param||n===ge.ParamRegExp||n===ge.ParamRegExpEnd?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:Nt.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]===Oe.Static+Oe.Segment?1:-1:0}function Nl(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const If={strict:!1,end:!0,sensitive:!1};function Df(e,t,n){const r=Pf(xf(e.path),n),s=te(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function Lf(e,t){const n=[],r=new Map;t=Ao(If,t);function s(f){return r.get(f)}function o(f,p,m){const g=!m,b=Lo(f);b.aliasOf=m&&m.record;const E=Ao(t,f),O=[b];if("alias"in f){const P=typeof f.alias=="string"?[f.alias]:f.alias;for(const M of P)O.push(Lo(te({},b,{components:m?m.record.components:b.components,path:M,aliasOf:m?m.record:b})))}let C,N;for(const P of O){const{path:M}=P;if(p&&M[0]!=="/"){const X=p.record.path,k=X[X.length-1]==="/"?"":"/";P.path=p.record.path+(M&&k+M)}if(C=Df(P,p,E),m?m.alias.push(C):(N=N||C,N!==C&&N.alias.push(C),g&&f.name&&!Fo(C)&&i(f.name)),Il(C)&&c(C),b.children){const X=b.children;for(let k=0;k{i(N)}:yn}function i(f){if(Tl(f)){const p=r.get(f);p&&(r.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&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function c(f){const p=Uf(f,n);n.splice(p,0,f),f.record.name&&!Fo(f)&&r.set(f.record.name,f)}function u(f,p){let m,g={},b,E;if("name"in f&&f.name){if(m=r.get(f.name),!m)throw Qt(ae.MATCHER_NOT_FOUND,{location:f});E=m.record.name,g=te(Do(p.params,m.keys.filter(N=>!N.optional).concat(m.parent?m.parent.keys.filter(N=>N.optional):[]).map(N=>N.name)),f.params&&Do(f.params,m.keys.map(N=>N.name))),b=m.stringify(g)}else if(f.path!=null)b=f.path,m=n.find(N=>N.re.test(b)),m&&(g=m.parse(b),E=m.record.name);else{if(m=p.name?r.get(p.name):n.find(N=>N.re.test(p.path)),!m)throw Qt(ae.MATCHER_NOT_FOUND,{location:f,currentLocation:p});E=m.record.name,g=te({},p.params,f.params),b=m.stringify(g)}const O=[];let C=m;for(;C;)O.unshift(C.record),C=C.parent;return{name:E,path:b,params:g,matched:O,meta:Mf(O)}}e.forEach(f=>o(f));function a(){n.length=0,r.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:a,getRoutes:l,getRecordMatcher:s}}function Do(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function Lo(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Ff(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 Ff(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function Fo(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Mf(e){return e.reduce((t,n)=>te(t,n.meta),{})}function Uf(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;Nl(e,t[o])<0?r=o:n=o+1}const s=jf(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function jf(e){let t=e;for(;t=t.parent;)if(Il(t)&&Nl(e,t)===0)return t}function Il({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Mo(e){const t=ke(br),n=ke(Is),r=Me(()=>{const c=Ot(e.to);return t.resolve(c)}),s=Me(()=>{const{matched:c}=r.value,{length:u}=c,a=c[u-1],f=n.matched;if(!a||!f.length)return-1;const p=f.findIndex(Xt.bind(null,a));if(p>-1)return p;const m=Uo(c[u-2]);return u>1&&Uo(a)===m&&f[f.length-1].path!==m?f.findIndex(Xt.bind(null,c[u-2])):p}),o=Me(()=>s.value>-1&&qf(n.params,r.value.params)),i=Me(()=>s.value>-1&&s.value===n.matched.length-1&&xl(n.params,r.value.params));function l(c={}){if(Vf(c)){const u=t[Ot(e.replace)?"replace":"push"](Ot(e.to)).catch(yn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Me(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function Bf(e){return e.length===1?e[0]:e}const Hf=Os({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=On(Mo(e)),{options:r}=ke(br),s=Me(()=>({[jo(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[jo(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&Bf(t.default(n));return e.custom?o:ml("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),kf=Hf;function Vf(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 qf(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!We(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function Uo(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const jo=(e,t,n)=>e??t??n,$f=Os({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=ke(os),s=Me(()=>e.route||r.value),o=ke(Co,0),i=Me(()=>{let u=Ot(o);const{matched:a}=s.value;let f;for(;(f=a[u])&&!f.components;)u++;return u}),l=Me(()=>s.value.matched[i.value]);Hn(Co,Me(()=>i.value+1)),Hn(_f,l),Hn(os,s);const c=Lt();return fn(()=>[c.value,l.value,e.name],([u,a,f],[p,m,g])=>{a&&(a.instances[f]=u,m&&m!==a&&u&&u===p&&(a.leaveGuards.size||(a.leaveGuards=m.leaveGuards),a.updateGuards.size||(a.updateGuards=m.updateGuards))),u&&a&&(!m||!Xt(a,m)||!p)&&(a.enterCallbacks[f]||[]).forEach(b=>b(u))},{flush:"post"}),()=>{const u=s.value,a=e.name,f=l.value,p=f&&f.components[a];if(!p)return Bo(n.default,{Component:p,route:u});const m=f.props[a],g=m?m===!0?u.params:typeof m=="function"?m(u):m:null,E=ml(p,te({},g,t,{onVnodeUnmounted:O=>{O.component.isUnmounted&&(f.instances[a]=null)},ref:c}));return Bo(n.default,{Component:E,route:u})||E}}});function Bo(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Dl=$f;function Kf(e){const t=Lf(e.routes,e),n=e.parseQuery||gf,r=e.stringifyQuery||To,s=e.history,o=sn(),i=sn(),l=sn(),c=Mc(bt);let u=bt;qt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const a=Mr.bind(null,R=>""+R),f=Mr.bind(null,Yu),p=Mr.bind(null,vn);function m(R,F){let D,j;return Tl(R)?(D=t.getRecordMatcher(R),j=F):j=R,t.addRoute(j,D)}function g(R){const F=t.getRecordMatcher(R);F&&t.removeRoute(F)}function b(){return t.getRoutes().map(R=>R.record)}function E(R){return!!t.getRecordMatcher(R)}function O(R,F){if(F=te({},F||c.value),typeof R=="string"){const y=Ur(n,R,F.path),w=t.resolve({path:y.path},F),A=s.createHref(y.fullPath);return te(y,w,{params:p(w.params),hash:vn(y.hash),redirectedFrom:void 0,href:A})}let D;if(R.path!=null)D=te({},R,{path:Ur(n,R.path,F.path).path});else{const y=te({},R.params);for(const w in y)y[w]==null&&delete y[w];D=te({},R,{params:f(y)}),F.params=f(F.params)}const j=t.resolve(D,F),Q=R.hash||"";j.params=a(p(j.params));const d=tf(r,te({},R,{hash:Ju(Q),path:j.path})),h=s.createHref(d);return te({fullPath:d,hash:Q,query:r===To?yf(R.query):R.query||{}},j,{redirectedFrom:void 0,href:h})}function C(R){return typeof R=="string"?Ur(n,R,c.value.path):te({},R)}function N(R,F){if(u!==R)return Qt(ae.NAVIGATION_CANCELLED,{from:F,to:R})}function P(R){return k(R)}function M(R){return P(te(C(R),{replace:!0}))}function X(R,F){const D=R.matched[R.matched.length-1];if(D&&D.redirect){const{redirect:j}=D;let Q=typeof j=="function"?j(R,F):j;return typeof Q=="string"&&(Q=Q.includes("?")||Q.includes("#")?Q=C(Q):{path:Q},Q.params={}),te({query:R.query,hash:R.hash,params:Q.path!=null?{}:R.params},Q)}}function k(R,F){const D=u=O(R),j=c.value,Q=R.state,d=R.force,h=R.replace===!0,y=X(D,j);if(y)return k(te(C(y),{state:typeof y=="object"?te({},Q,y.state):Q,force:d,replace:h}),F||D);const w=D;w.redirectedFrom=F;let A;return!d&&nf(r,j,D)&&(A=Qt(ae.NAVIGATION_DUPLICATED,{to:w,from:j}),me(j,j,!0,!1)),(A?Promise.resolve(A):ee(w,j)).catch(S=>at(S)?at(S,ae.NAVIGATION_GUARD_REDIRECT)?S:ze(S):z(S,w,j)).then(S=>{if(S){if(at(S,ae.NAVIGATION_GUARD_REDIRECT))return k(te({replace:h},C(S.to),{state:typeof S.to=="object"?te({},Q,S.to.state):Q,force:d}),F||w)}else S=ye(w,j,!0,h,Q);return ue(w,j,S),S})}function V(R,F){const D=N(R,F);return D?Promise.reject(D):Promise.resolve()}function U(R){const F=qe.values().next().value;return F&&typeof F.runWithContext=="function"?F.runWithContext(R):R()}function ee(R,F){let D;const[j,Q,d]=bf(R,F);D=Br(j.reverse(),"beforeRouteLeave",R,F);for(const y of j)y.leaveGuards.forEach(w=>{D.push(At(w,R,F))});const h=V.bind(null,R,F);return D.push(h),He(D).then(()=>{D=[];for(const y of o.list())D.push(At(y,R,F));return D.push(h),He(D)}).then(()=>{D=Br(Q,"beforeRouteUpdate",R,F);for(const y of Q)y.updateGuards.forEach(w=>{D.push(At(w,R,F))});return D.push(h),He(D)}).then(()=>{D=[];for(const y of d)if(y.beforeEnter)if(We(y.beforeEnter))for(const w of y.beforeEnter)D.push(At(w,R,F));else D.push(At(y.beforeEnter,R,F));return D.push(h),He(D)}).then(()=>(R.matched.forEach(y=>y.enterCallbacks={}),D=Br(d,"beforeRouteEnter",R,F,U),D.push(h),He(D))).then(()=>{D=[];for(const y of i.list())D.push(At(y,R,F));return D.push(h),He(D)}).catch(y=>at(y,ae.NAVIGATION_CANCELLED)?y:Promise.reject(y))}function ue(R,F,D){l.list().forEach(j=>U(()=>j(R,F,D)))}function ye(R,F,D,j,Q){const d=N(R,F);if(d)return d;const h=F===bt,y=qt?history.state:{};D&&(j||h?s.replace(R.fullPath,te({scroll:h&&y&&y.scroll},Q)):s.push(R.fullPath,Q)),c.value=R,me(R,F,D,h),ze()}let pe;function Re(){pe||(pe=s.listen((R,F,D)=>{if(!Xe.listening)return;const j=O(R),Q=X(j,Xe.currentRoute.value);if(Q){k(te(Q,{replace:!0,force:!0}),j).catch(yn);return}u=j;const d=c.value;qt&&ff(xo(d.fullPath,D.delta),_r()),ee(j,d).catch(h=>at(h,ae.NAVIGATION_ABORTED|ae.NAVIGATION_CANCELLED)?h:at(h,ae.NAVIGATION_GUARD_REDIRECT)?(k(te(C(h.to),{force:!0}),j).then(y=>{at(y,ae.NAVIGATION_ABORTED|ae.NAVIGATION_DUPLICATED)&&!D.delta&&D.type===rs.pop&&s.go(-1,!1)}).catch(yn),Promise.reject()):(D.delta&&s.go(-D.delta,!1),z(h,j,d))).then(h=>{h=h||ye(j,d,!1),h&&(D.delta&&!at(h,ae.NAVIGATION_CANCELLED)?s.go(-D.delta,!1):D.type===rs.pop&&at(h,ae.NAVIGATION_ABORTED|ae.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),ue(j,d,h)}).catch(yn)}))}let Ve=sn(),J=sn(),K;function z(R,F,D){ze(R);const j=J.list();return j.length?j.forEach(Q=>Q(R,F,D)):console.error(R),Promise.reject(R)}function Be(){return K&&c.value!==bt?Promise.resolve():new Promise((R,F)=>{Ve.add([R,F])})}function ze(R){return K||(K=!R,Re(),Ve.list().forEach(([F,D])=>R?D(R):F()),Ve.reset()),R}function me(R,F,D,j){const{scrollBehavior:Q}=e;if(!qt||!Q)return Promise.resolve();const d=!D&&df(xo(R.fullPath,0))||(j||!D)&&history.state&&history.state.scroll||null;return Rs().then(()=>Q(R,F,d)).then(h=>h&&uf(h)).catch(h=>z(h,R,F))}const fe=R=>s.go(R);let Je;const qe=new Set,Xe={currentRoute:c,listening:!0,addRoute:m,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:E,getRoutes:b,resolve:O,options:e,push:P,replace:M,go:fe,back:()=>fe(-1),forward:()=>fe(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:J.add,isReady:Be,install(R){R.component("RouterLink",kf),R.component("RouterView",Dl),R.config.globalProperties.$router=Xe,Object.defineProperty(R.config.globalProperties,"$route",{enumerable:!0,get:()=>Ot(c)}),qt&&!Je&&c.value===bt&&(Je=!0,P(s.location).catch(j=>{}));const F={};for(const j in bt)Object.defineProperty(F,j,{get:()=>c.value[j],enumerable:!0});R.provide(br,Xe),R.provide(Is,Ci(F)),R.provide(os,c);const D=R.unmount;qe.add(R),R.unmount=function(){qe.delete(R),qe.size<1&&(u=bt,pe&&pe(),pe=null,c.value=bt,Je=!1,K=!1),D()}}};function He(R){return R.reduce((F,D)=>F.then(()=>U(D)),Promise.resolve())}return Xe}function Lh(){return ke(br)}function Fh(e){return ke(Is)}function Ll(e,t){return function(){return e.apply(t,arguments)}}const{toString:Wf}=Object.prototype,{getPrototypeOf:Ds}=Object,{iterator:Er,toStringTag:Fl}=Symbol,wr=(e=>t=>{const n=Wf.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ge=e=>(e=e.toLowerCase(),t=>wr(t)===e),Sr=e=>t=>typeof t===e,{isArray:Zt}=Array,Yt=Sr("undefined");function Cn(e){return e!==null&&!Yt(e)&&e.constructor!==null&&!Yt(e.constructor)&&Ie(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Ml=Ge("ArrayBuffer");function Gf(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Ml(e.buffer),t}const zf=Sr("string"),Ie=Sr("function"),Ul=Sr("number"),Pn=e=>e!==null&&typeof e=="object",Jf=e=>e===!0||e===!1,Kn=e=>{if(wr(e)!=="object")return!1;const t=Ds(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Fl in e)&&!(Er in e)},Xf=e=>{if(!Pn(e)||Cn(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},Qf=Ge("Date"),Yf=Ge("File"),Zf=Ge("Blob"),ed=Ge("FileList"),td=e=>Pn(e)&&Ie(e.pipe),nd=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Ie(e.append)&&((t=wr(e))==="formdata"||t==="object"&&Ie(e.toString)&&e.toString()==="[object FormData]"))},rd=Ge("URLSearchParams"),[sd,od,id,ld]=["ReadableStream","Request","Response","Headers"].map(Ge),cd=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Nn(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),Zt(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const It=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Bl=e=>!Yt(e)&&e!==It;function is(){const{caseless:e,skipUndefined:t}=Bl(this)&&this||{},n={},r=(s,o)=>{const i=e&&jl(n,o)||o;Kn(n[i])&&Kn(s)?n[i]=is(n[i],s):Kn(s)?n[i]=is({},s):Zt(s)?n[i]=s.slice():(!t||!Yt(s))&&(n[i]=s)};for(let s=0,o=arguments.length;s(Nn(t,(s,o)=>{n&&Ie(s)?e[o]=Ll(s,n):e[o]=s},{allOwnKeys:r}),e),ud=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),fd=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},dd=(e,t,n,r)=>{let s,o,i;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&Ds(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},hd=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},pd=e=>{if(!e)return null;if(Zt(e))return e;let t=e.length;if(!Ul(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},md=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Ds(Uint8Array)),gd=(e,t)=>{const r=(e&&e[Er]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},yd=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},_d=Ge("HTMLFormElement"),bd=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),Ho=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Ed=Ge("RegExp"),Hl=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Nn(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},wd=e=>{Hl(e,(t,n)=>{if(Ie(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Ie(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Sd=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return Zt(e)?r(e):r(String(e).split(t)),n},Rd=()=>{},Ad=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function vd(e){return!!(e&&Ie(e.append)&&e[Fl]==="FormData"&&e[Er])}const Od=e=>{const t=new Array(10),n=(r,s)=>{if(Pn(r)){if(t.indexOf(r)>=0)return;if(Cn(r))return r;if(!("toJSON"in r)){t[s]=r;const o=Zt(r)?[]:{};return Nn(r,(i,l)=>{const c=n(i,s+1);!Yt(c)&&(o[l]=c)}),t[s]=void 0,o}}return r};return n(e,0)},xd=Ge("AsyncFunction"),Td=e=>e&&(Pn(e)||Ie(e))&&Ie(e.then)&&Ie(e.catch),kl=((e,t)=>e?setImmediate:t?((n,r)=>(It.addEventListener("message",({source:s,data:o})=>{s===It&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),It.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Ie(It.postMessage)),Cd=typeof queueMicrotask<"u"?queueMicrotask.bind(It):typeof process<"u"&&process.nextTick||kl,Pd=e=>e!=null&&Ie(e[Er]),_={isArray:Zt,isArrayBuffer:Ml,isBuffer:Cn,isFormData:nd,isArrayBufferView:Gf,isString:zf,isNumber:Ul,isBoolean:Jf,isObject:Pn,isPlainObject:Kn,isEmptyObject:Xf,isReadableStream:sd,isRequest:od,isResponse:id,isHeaders:ld,isUndefined:Yt,isDate:Qf,isFile:Yf,isBlob:Zf,isRegExp:Ed,isFunction:Ie,isStream:td,isURLSearchParams:rd,isTypedArray:md,isFileList:ed,forEach:Nn,merge:is,extend:ad,trim:cd,stripBOM:ud,inherits:fd,toFlatObject:dd,kindOf:wr,kindOfTest:Ge,endsWith:hd,toArray:pd,forEachEntry:gd,matchAll:yd,isHTMLForm:_d,hasOwnProperty:Ho,hasOwnProp:Ho,reduceDescriptors:Hl,freezeMethods:wd,toObjectSet:Sd,toCamelCase:bd,noop:Rd,toFiniteNumber:Ad,findKey:jl,global:It,isContextDefined:Bl,isSpecCompliantForm:vd,toJSONObject:Od,isAsyncFn:xd,isThenable:Td,setImmediate:kl,asap:Cd,isIterable:Pd};function G(e,t,n,r,s){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),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}_.inherits(G,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:_.toJSONObject(this.config),code:this.code,status:this.status}}});const Vl=G.prototype,ql={};["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=>{ql[e]={value:e}});Object.defineProperties(G,ql);Object.defineProperty(Vl,"isAxiosError",{value:!0});G.from=(e,t,n,r,s,o)=>{const i=Object.create(Vl);_.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 G.call(i,l,c,n,r,s),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 Nd=null;function ls(e){return _.isPlainObject(e)||_.isArray(e)}function $l(e){return _.endsWith(e,"[]")?e.slice(0,-2):e}function ko(e,t,n){return e?e.concat(t).map(function(s,o){return s=$l(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function Id(e){return _.isArray(e)&&!e.some(ls)}const Dd=_.toFlatObject(_,{},null,function(t){return/^is[A-Z]/.test(t)});function Rr(e,t,n){if(!_.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=_.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(b,E){return!_.isUndefined(E[b])});const r=n.metaTokens,s=n.visitor||a,o=n.dots,i=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&_.isSpecCompliantForm(t);if(!_.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(_.isDate(g))return g.toISOString();if(_.isBoolean(g))return g.toString();if(!c&&_.isBlob(g))throw new G("Blob is not supported. Use a Buffer instead.");return _.isArrayBuffer(g)||_.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function a(g,b,E){let O=g;if(g&&!E&&typeof g=="object"){if(_.endsWith(b,"{}"))b=r?b:b.slice(0,-2),g=JSON.stringify(g);else if(_.isArray(g)&&Id(g)||(_.isFileList(g)||_.endsWith(b,"[]"))&&(O=_.toArray(g)))return b=$l(b),O.forEach(function(N,P){!(_.isUndefined(N)||N===null)&&t.append(i===!0?ko([b],P,o):i===null?b:b+"[]",u(N))}),!1}return ls(g)?!0:(t.append(ko(E,b,o),u(g)),!1)}const f=[],p=Object.assign(Dd,{defaultVisitor:a,convertValue:u,isVisitable:ls});function m(g,b){if(!_.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+b.join("."));f.push(g),_.forEach(g,function(O,C){(!(_.isUndefined(O)||O===null)&&s.call(t,O,_.isString(C)?C.trim():C,b,p))===!0&&m(O,b?b.concat(C):[C])}),f.pop()}}if(!_.isObject(e))throw new TypeError("data must be an object");return m(e),t}function Vo(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Ls(e,t){this._pairs=[],e&&Rr(e,this,t)}const Kl=Ls.prototype;Kl.append=function(t,n){this._pairs.push([t,n])};Kl.toString=function(t){const n=t?function(r){return t.call(this,r,Vo)}:Vo;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Ld(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Wl(e,t,n){if(!t)return e;const r=n&&n.encode||Ld;_.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=_.isURLSearchParams(t)?t.toString():new Ls(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class qo{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){_.forEach(this.handlers,function(r){r!==null&&t(r)})}}const Gl={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Fd=typeof URLSearchParams<"u"?URLSearchParams:Ls,Md=typeof FormData<"u"?FormData:null,Ud=typeof Blob<"u"?Blob:null,jd={isBrowser:!0,classes:{URLSearchParams:Fd,FormData:Md,Blob:Ud},protocols:["http","https","file","blob","url","data"]},Fs=typeof window<"u"&&typeof document<"u",cs=typeof navigator=="object"&&navigator||void 0,Bd=Fs&&(!cs||["ReactNative","NativeScript","NS"].indexOf(cs.product)<0),Hd=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",kd=Fs&&window.location.href||"http://localhost",Vd=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Fs,hasStandardBrowserEnv:Bd,hasStandardBrowserWebWorkerEnv:Hd,navigator:cs,origin:kd},Symbol.toStringTag,{value:"Module"})),Ee={...Vd,...jd};function qd(e,t){return Rr(e,new Ee.classes.URLSearchParams,{visitor:function(n,r,s,o){return Ee.isNode&&_.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function $d(e){return _.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Kd(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&_.isArray(s)?s.length:i,c?(_.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!l):((!s[i]||!_.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&_.isArray(s[i])&&(s[i]=Kd(s[i])),!l)}if(_.isFormData(e)&&_.isFunction(e.entries)){const n={};return _.forEachEntry(e,(r,s)=>{t($d(r),s,n,0)}),n}return null}function Wd(e,t,n){if(_.isString(e))try{return(t||JSON.parse)(e),_.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const In={transitional:Gl,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=_.isObject(t);if(o&&_.isHTMLForm(t)&&(t=new FormData(t)),_.isFormData(t))return s?JSON.stringify(zl(t)):t;if(_.isArrayBuffer(t)||_.isBuffer(t)||_.isStream(t)||_.isFile(t)||_.isBlob(t)||_.isReadableStream(t))return t;if(_.isArrayBufferView(t))return t.buffer;if(_.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return qd(t,this.formSerializer).toString();if((l=_.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return Rr(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),Wd(t)):t}],transformResponse:[function(t){const n=this.transitional||In.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(_.isResponse(t)||_.isReadableStream(t))return t;if(t&&_.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(i)throw l.name==="SyntaxError"?G.from(l,G.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:Ee.classes.FormData,Blob:Ee.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};_.forEach(["delete","get","head","post","put","patch"],e=>{In.headers[e]={}});const Gd=_.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"]),zd=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&Gd[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},$o=Symbol("internals");function on(e){return e&&String(e).trim().toLowerCase()}function Wn(e){return e===!1||e==null?e:_.isArray(e)?e.map(Wn):String(e)}function Jd(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const Xd=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Hr(e,t,n,r,s){if(_.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!_.isString(t)){if(_.isString(r))return t.indexOf(r)!==-1;if(_.isRegExp(r))return r.test(t)}}function Qd(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Yd(e,t){const n=_.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let De=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(l,c,u){const a=on(c);if(!a)throw new Error("header name must be a non-empty string");const f=_.findKey(s,a);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||c]=Wn(l))}const i=(l,c)=>_.forEach(l,(u,a)=>o(u,a,c));if(_.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(_.isString(t)&&(t=t.trim())&&!Xd(t))i(zd(t),n);else if(_.isObject(t)&&_.isIterable(t)){let l={},c,u;for(const a of t){if(!_.isArray(a))throw TypeError("Object iterator must return a key-value pair");l[u=a[0]]=(c=l[u])?_.isArray(c)?[...c,a[1]]:[c,a[1]]:a[1]}i(l,n)}else t!=null&&o(n,t,r);return this}get(t,n){if(t=on(t),t){const r=_.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return Jd(s);if(_.isFunction(n))return n.call(this,s,r);if(_.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=on(t),t){const r=_.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Hr(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=on(i),i){const l=_.findKey(r,i);l&&(!n||Hr(r,r[l],l,n))&&(delete r[l],s=!0)}}return _.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||Hr(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return _.forEach(this,(s,o)=>{const i=_.findKey(r,o);if(i){n[i]=Wn(s),delete n[o];return}const l=t?Qd(o):String(o).trim();l!==o&&delete n[o],n[l]=Wn(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return _.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&_.isArray(r)?r.join(", "):r)}),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 r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[$o]=this[$o]={accessors:{}}).accessors,s=this.prototype;function o(i){const l=on(i);r[l]||(Yd(s,i),r[l]=!0)}return _.isArray(t)?t.forEach(o):o(t),this}};De.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);_.reduceDescriptors(De.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});_.freezeMethods(De);function kr(e,t){const n=this||In,r=t||n,s=De.from(r.headers);let o=r.data;return _.forEach(e,function(l){o=l.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function Jl(e){return!!(e&&e.__CANCEL__)}function en(e,t,n){G.call(this,e??"canceled",G.ERR_CANCELED,t,n),this.name="CanceledError"}_.inherits(en,G,{__CANCEL__:!0});function Xl(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new G("Request failed with status code "+n.status,[G.ERR_BAD_REQUEST,G.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function Zd(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function eh(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),a=r[o];i||(i=u),n[s]=c,r[s]=u;let f=o,p=0;for(;f!==s;)p+=n[f++],f=f%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i{n=a,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const a=Date.now(),f=a-n;f>=r?i(u,a):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-f)))},()=>s&&i(s)]}const sr=(e,t,n=3)=>{let r=0;const s=eh(50,250);return th(o=>{const i=o.loaded,l=o.lengthComputable?o.total:void 0,c=i-r,u=s(c),a=i<=l;r=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)},Ko=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Wo=e=>(...t)=>_.asap(()=>e(...t)),nh=Ee.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Ee.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Ee.origin),Ee.navigator&&/(msie|trident)/i.test(Ee.navigator.userAgent)):()=>!0,rh=Ee.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];_.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),_.isString(r)&&l.push(`path=${r}`),_.isString(s)&&l.push(`domain=${s}`),o===!0&&l.push("secure"),_.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 sh(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function oh(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Ql(e,t,n){let r=!sh(t);return e&&(r||n==!1)?oh(e,t):t}const Go=e=>e instanceof De?{...e}:e;function Ut(e,t){t=t||{};const n={};function r(u,a,f,p){return _.isPlainObject(u)&&_.isPlainObject(a)?_.merge.call({caseless:p},u,a):_.isPlainObject(a)?_.merge({},a):_.isArray(a)?a.slice():a}function s(u,a,f,p){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u,f,p)}else return r(u,a,f,p)}function o(u,a){if(!_.isUndefined(a))return r(void 0,a)}function i(u,a){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u)}else return r(void 0,a)}function l(u,a,f){if(f in t)return r(u,a);if(f in e)return r(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)=>s(Go(u),Go(a),f,!0)};return _.forEach(Object.keys({...e,...t}),function(a){const f=c[a]||s,p=f(e[a],t[a],a);_.isUndefined(p)&&f!==l||(n[a]=p)}),n}const Yl=e=>{const t=Ut({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:l}=t;if(t.headers=i=De.from(i),t.url=Wl(Ql(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&i.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),_.isFormData(n)){if(Ee.hasStandardBrowserEnv||Ee.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(_.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(Ee.hasStandardBrowserEnv&&(r&&_.isFunction(r)&&(r=r(t)),r||r!==!1&&nh(t.url))){const c=s&&o&&rh.read(o);c&&i.set(s,c)}return t},ih=typeof XMLHttpRequest<"u",lh=ih&&function(e){return new Promise(function(n,r){const s=Yl(e);let o=s.data;const i=De.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,a,f,p,m,g;function b(){m&&m(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(a),s.signal&&s.signal.removeEventListener("abort",a)}let E=new XMLHttpRequest;E.open(s.method.toUpperCase(),s.url,!0),E.timeout=s.timeout;function O(){if(!E)return;const N=De.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),M={data:!l||l==="text"||l==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:N,config:e,request:E};Xl(function(k){n(k),b()},function(k){r(k),b()},M),E=null}"onloadend"in E?E.onloadend=O:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.indexOf("file:")===0)||setTimeout(O)},E.onabort=function(){E&&(r(new G("Request aborted",G.ECONNABORTED,e,E)),E=null)},E.onerror=function(P){const M=P&&P.message?P.message:"Network Error",X=new G(M,G.ERR_NETWORK,e,E);X.event=P||null,r(X),E=null},E.ontimeout=function(){let P=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const M=s.transitional||Gl;s.timeoutErrorMessage&&(P=s.timeoutErrorMessage),r(new G(P,M.clarifyTimeoutError?G.ETIMEDOUT:G.ECONNABORTED,e,E)),E=null},o===void 0&&i.setContentType(null),"setRequestHeader"in E&&_.forEach(i.toJSON(),function(P,M){E.setRequestHeader(M,P)}),_.isUndefined(s.withCredentials)||(E.withCredentials=!!s.withCredentials),l&&l!=="json"&&(E.responseType=s.responseType),u&&([p,g]=sr(u,!0),E.addEventListener("progress",p)),c&&E.upload&&([f,m]=sr(c),E.upload.addEventListener("progress",f),E.upload.addEventListener("loadend",m)),(s.cancelToken||s.signal)&&(a=N=>{E&&(r(!N||N.type?new en(null,e,E):N),E.abort(),E=null)},s.cancelToken&&s.cancelToken.subscribe(a),s.signal&&(s.signal.aborted?a():s.signal.addEventListener("abort",a)));const C=Zd(s.url);if(C&&Ee.protocols.indexOf(C)===-1){r(new G("Unsupported protocol "+C+":",G.ERR_BAD_REQUEST,e));return}E.send(o||null)})},ch=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,l();const a=u instanceof Error?u:this.reason;r.abort(a instanceof G?a:new en(a instanceof Error?a.message:a))}};let i=t&&setTimeout(()=>{i=null,o(new G(`timeout ${t} of ms exceeded`,G.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}=r;return c.unsubscribe=()=>_.asap(l),c}},ah=function*(e,t){let n=e.byteLength;if(n{const s=uh(e,t);let o=0,i,l=c=>{i||(i=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:a}=await s.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),s.return()}},{highWaterMark:2})},Jo=64*1024,{isFunction:Un}=_,dh=(({Request:e,Response:t})=>({Request:e,Response:t}))(_.global),{ReadableStream:Xo,TextEncoder:Qo}=_.global,Yo=(e,...t)=>{try{return!!e(...t)}catch{return!1}},hh=e=>{e=_.merge.call({skipUndefined:!0},dh,e);const{fetch:t,Request:n,Response:r}=e,s=t?Un(t):typeof fetch=="function",o=Un(n),i=Un(r);if(!s)return!1;const l=s&&Un(Xo),c=s&&(typeof Qo=="function"?(g=>b=>g.encode(b))(new Qo):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=o&&l&&Yo(()=>{let g=!1;const b=new n(Ee.origin,{body:new Xo,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!b}),a=i&&l&&Yo(()=>_.isReadableStream(new r("").body)),f={stream:a&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(b,E)=>{let O=b&&b[g];if(O)return O.call(b);throw new G(`Response type '${g}' is not supported`,G.ERR_NOT_SUPPORT,E)})});const p=async g=>{if(g==null)return 0;if(_.isBlob(g))return g.size;if(_.isSpecCompliantForm(g))return(await new n(Ee.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(_.isArrayBufferView(g)||_.isArrayBuffer(g))return g.byteLength;if(_.isURLSearchParams(g)&&(g=g+""),_.isString(g))return(await c(g)).byteLength},m=async(g,b)=>{const E=_.toFiniteNumber(g.getContentLength());return E??p(b)};return async g=>{let{url:b,method:E,data:O,signal:C,cancelToken:N,timeout:P,onDownloadProgress:M,onUploadProgress:X,responseType:k,headers:V,withCredentials:U="same-origin",fetchOptions:ee}=Yl(g),ue=t||fetch;k=k?(k+"").toLowerCase():"text";let ye=ch([C,N&&N.toAbortSignal()],P),pe=null;const Re=ye&&ye.unsubscribe&&(()=>{ye.unsubscribe()});let Ve;try{if(X&&u&&E!=="get"&&E!=="head"&&(Ve=await m(V,O))!==0){let me=new n(b,{method:"POST",body:O,duplex:"half"}),fe;if(_.isFormData(O)&&(fe=me.headers.get("content-type"))&&V.setContentType(fe),me.body){const[Je,qe]=Ko(Ve,sr(Wo(X)));O=zo(me.body,Jo,Je,qe)}}_.isString(U)||(U=U?"include":"omit");const J=o&&"credentials"in n.prototype,K={...ee,signal:ye,method:E.toUpperCase(),headers:V.normalize().toJSON(),body:O,duplex:"half",credentials:J?U:void 0};pe=o&&new n(b,K);let z=await(o?ue(pe,ee):ue(b,K));const Be=a&&(k==="stream"||k==="response");if(a&&(M||Be&&Re)){const me={};["status","statusText","headers"].forEach(Xe=>{me[Xe]=z[Xe]});const fe=_.toFiniteNumber(z.headers.get("content-length")),[Je,qe]=M&&Ko(fe,sr(Wo(M),!0))||[];z=new r(zo(z.body,Jo,Je,()=>{qe&&qe(),Re&&Re()}),me)}k=k||"text";let ze=await f[_.findKey(f,k)||"text"](z,g);return!Be&&Re&&Re(),await new Promise((me,fe)=>{Xl(me,fe,{data:ze,headers:De.from(z.headers),status:z.status,statusText:z.statusText,config:g,request:pe})})}catch(J){throw Re&&Re(),J&&J.name==="TypeError"&&/Load failed|fetch/i.test(J.message)?Object.assign(new G("Network Error",G.ERR_NETWORK,g,pe),{cause:J.cause||J}):G.from(J,J&&J.code,g,pe)}}},ph=new Map,Zl=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,l=i,c,u,a=ph;for(;l--;)c=o[l],u=a.get(c),u===void 0&&a.set(c,u=l?new Map:hh(t)),a=u;return u};Zl();const Ms={http:Nd,xhr:lh,fetch:{get:Zl}};_.forEach(Ms,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Zo=e=>`- ${e}`,mh=e=>_.isFunction(e)||e===null||e===!1;function gh(e,t){e=_.isArray(e)?e:[e];const{length:n}=e;let r,s;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(Zo).join(` +`):" "+Zo(i[0]):"as no adapter specified";throw new G("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const ec={getAdapter:gh,adapters:Ms};function Vr(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new en(null,e)}function ei(e){return Vr(e),e.headers=De.from(e.headers),e.data=kr.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),ec.getAdapter(e.adapter||In.adapter,e)(e).then(function(r){return Vr(e),r.data=kr.call(e,e.transformResponse,r),r.headers=De.from(r.headers),r},function(r){return Jl(r)||(Vr(e),r&&r.response&&(r.response.data=kr.call(e,e.transformResponse,r.response),r.response.headers=De.from(r.response.headers))),Promise.reject(r)})}const tc="1.13.2",Ar={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Ar[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const ti={};Ar.transitional=function(t,n,r){function s(o,i){return"[Axios v"+tc+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,l)=>{if(t===!1)throw new G(s(i," has been removed"+(n?" in "+n:"")),G.ERR_DEPRECATED);return n&&!ti[i]&&(ti[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,l):!0}};Ar.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function yh(e,t,n){if(typeof e!="object")throw new G("options must be an object",G.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const l=e[o],c=l===void 0||i(l,o,e);if(c!==!0)throw new G("option "+o+" must be "+c,G.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new G("Unknown option "+o,G.ERR_BAD_OPTION)}}const Gn={assertOptions:yh,validators:Ar},nt=Gn.validators;let Mt=class{constructor(t){this.defaults=t||{},this.interceptors={request:new qo,response:new qo}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Ut(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&Gn.assertOptions(r,{silentJSONParsing:nt.transitional(nt.boolean),forcedJSONParsing:nt.transitional(nt.boolean),clarifyTimeoutError:nt.transitional(nt.boolean)},!1),s!=null&&(_.isFunction(s)?n.paramsSerializer={serialize:s}:Gn.assertOptions(s,{encode:nt.function,serialize:nt.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Gn.assertOptions(n,{baseUrl:nt.spelling("baseURL"),withXsrfToken:nt.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&_.merge(o.common,o[n.method]);o&&_.forEach(["delete","get","head","post","put","patch","common"],g=>{delete o[g]}),n.headers=De.concat(i,o);const l=[];let c=!0;this.interceptors.request.forEach(function(b){typeof b.runWhen=="function"&&b.runWhen(n)===!1||(c=c&&b.synchronous,l.unshift(b.fulfilled,b.rejected))});const u=[];this.interceptors.response.forEach(function(b){u.push(b.fulfilled,b.rejected)});let a,f=0,p;if(!c){const g=[ei.bind(this),void 0];for(g.unshift(...l),g.push(...u),p=g.length,a=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(l=>{r.subscribe(l),o=l}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,l){r.reason||(r.reason=new en(o,i,l),n(r.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=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new nc(function(s){t=s}),cancel:t}}};function bh(e){return function(n){return e.apply(null,n)}}function Eh(e){return _.isObject(e)&&e.isAxiosError===!0}const as={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(as).forEach(([e,t])=>{as[t]=e});function rc(e){const t=new Mt(e),n=Ll(Mt.prototype.request,t);return _.extend(n,Mt.prototype,t,{allOwnKeys:!0}),_.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return rc(Ut(e,s))},n}const he=rc(In);he.Axios=Mt;he.CanceledError=en;he.CancelToken=_h;he.isCancel=Jl;he.VERSION=tc;he.toFormData=Rr;he.AxiosError=G;he.Cancel=he.CanceledError;he.all=function(t){return Promise.all(t)};he.spread=bh;he.isAxiosError=Eh;he.mergeConfig=Ut;he.AxiosHeaders=De;he.formToJSON=e=>zl(_.isHTMLForm(e)?new FormData(e):e);he.getAdapter=ec.getAdapter;he.HttpStatusCode=as;he.default=he;const{Axios:jh,AxiosError:Bh,CanceledError:Hh,isCancel:kh,CancelToken:Vh,VERSION:qh,all:$h,Cancel:Kh,isAxiosError:Wh,spread:Gh,toFormData:zh,AxiosHeaders:Jh,HttpStatusCode:Xh,formToJSON:Qh,getAdapter:Yh,mergeConfig:Zh}=he,_n=he.create({baseURL:"",timeout:3e4,withCredentials:!0});_n.interceptors.request.use(e=>e,e=>Promise.reject(e));_n.interceptors.response.use(e=>e.data,e=>{e.response?.status===401&&(window.location.hash="#/login");const t=e.response?.data?e.response.data.detail||e.response.data.message:e.message;return Promise.reject(new Error(t||"请求失败"))});const jn={login:e=>{const t=new URLSearchParams;return t.append("admin_key",e.password),_n.post("/login",t,{headers:{"Content-Type":"application/x-www-form-urlencoded"}})},logout:()=>_n.post("/logout"),checkAuth:()=>_n.get("/admin/health")},wh=Mu("auth",()=>{const e=Lt(!1),t=Lt(!1),n=Lt(0),r=1e4;let s=null;async function o(c){t.value=!0;try{return await jn.login({password:c}),await jn.checkAuth(),e.value=!0,n.value=Date.now(),!0}catch(u){throw e.value=!1,u}finally{t.value=!1}}async function i(){try{await jn.logout()}finally{e.value=!1,n.value=0}}async function l(){const c=Date.now();if(e.value&&c-n.value(await jn.checkAuth(),e.value=!0,!0))(),await s}catch{return e.value=!1,!1}finally{n.value=Date.now(),s=null}}return{isLoggedIn:e,isLoading:t,login:o,logout:i,checkAuth:l}}),sc=Kf({history:Af("/"),routes:[{path:"/public/uptime",name:"public-uptime",component:()=>tt(()=>import("./PublicUptime-CyUwsDxI.js"),__vite__mapDeps([0,1])),meta:{requiresAuth:!1}},{path:"/public/logs",name:"public-logs",component:()=>tt(()=>import("./PublicLogs-D4fEV0kh.js"),[]),meta:{requiresAuth:!1}},{path:"/login",name:"login",component:()=>tt(()=>import("./Login-zddoPEXQ.js"),[]),meta:{requiresAuth:!1}},{path:"/",component:()=>tt(()=>import("./AppShell-DZfg1gi0.js"),__vite__mapDeps([2,3,4,5])),meta:{requiresAuth:!0},children:[{path:"",name:"dashboard",component:()=>tt(()=>import("./Dashboard-H0mqzeAx.js"),__vite__mapDeps([6,7]))},{path:"accounts",name:"accounts",component:()=>tt(()=>import("./Accounts-lQSfPTKz.js"),__vite__mapDeps([8,9,10,4,5,7]))},{path:"settings",name:"settings",component:()=>tt(()=>import("./Settings-C_fFojKp.js"),__vite__mapDeps([11,3,9,10,7]))},{path:"logs",name:"logs",component:()=>tt(()=>import("./Logs-T6CMJePO.js"),__vite__mapDeps([12,9,4]))},{path:"monitor",name:"monitor",component:()=>tt(()=>import("./Monitor-BGpml9J0.js"),__vite__mapDeps([13,1]))},{path:"docs",name:"docs",component:()=>tt(()=>import("./Docs-CyZb5Il2.js"),[])}]}]});sc.beforeEach(async e=>{const t=wh();if(e.meta.requiresAuth&&!await t.checkAuth())return{name:"login"};if(e.name==="login"&&t.isLoggedIn)return{name:"dashboard"}});const Sh=Os({__name:"App",setup(e){return(t,n)=>(er(),nr(Ot(Dl)))}}),Us=xu(Sh),Rh=Pu();Us.use(Rh);Us.use(sc);Us.mount("#app");export{Xc as A,Dl as B,Mu as C,Dh as D,Rs as E,Fe as F,xh as G,On as H,kf as R,vh as T,fl as a,Ph as b,Th as c,Os as d,er as e,Wa as f,_n as g,Lt as h,Me as i,fa as j,ps as k,wh as l,Ah as m,ms as n,ca as o,Lh as p,Fh as q,Oh as r,fn as s,mc as t,Ot as u,Nh as v,Ih as w,Ce as x,nr as y,Ch as z}; diff --git a/static/assets/index-DL4Fp3an.js b/static/assets/index-DL4Fp3an.js new file mode 100644 index 0000000000000000000000000000000000000000..3de081d3b55e80ff3a9f70477da6df4e5f69f7c1 --- /dev/null +++ b/static/assets/index-DL4Fp3an.js @@ -0,0 +1,7 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PublicUptime-B_51BvN0.js","assets/useUptimeStatus-H8dNuGpH.js","assets/AppShell-B58juTD2.js","assets/settings-oZBOK-or.js","assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-CWs1-jf0.js","assets/useConfirmDialog-MThy7PVA.js","assets/Dashboard-XppL6qxe.js","assets/HelpTip.vue_vue_type_script_setup_true_lang-CAICIbTF.js","assets/Accounts-BWmfQ8Fj.js","assets/SelectMenu.vue_vue_type_script_setup_true_lang-CmVUq-Y1.js","assets/Checkbox.vue_vue_type_script_setup_true_lang-FvD-aCmU.js","assets/Settings-BRCUddT6.js","assets/Logs-BDiYR69g.js","assets/Monitor-CUrWDeEd.js"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function As(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const ce={},Yt=[],ct=()=>{},Ai=()=>!1,mr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Rs=e=>e.startsWith("onUpdate:"),Ee=Object.assign,Cs=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Lc=Object.prototype.hasOwnProperty,oe=(e,t)=>Lc.call(e,t),K=Array.isArray,Zt=e=>gr(e)==="[object Map]",Ri=e=>gr(e)==="[object Set]",J=e=>typeof e=="function",pe=e=>typeof e=="string",Et=e=>typeof e=="symbol",ae=e=>e!==null&&typeof e=="object",Ci=e=>(ae(e)||J(e))&&J(e.then)&&J(e.catch),Oi=Object.prototype.toString,gr=e=>Oi.call(e),Dc=e=>gr(e).slice(8,-1),Ti=e=>gr(e)==="[object Object]",yr=e=>pe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,mn=As(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),br=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},Fc=/-\w/g,Nt=br(e=>e.replace(Fc,t=>t.slice(1).toUpperCase())),Mc=/\B([A-Z])/g,Wt=br(e=>e.replace(Mc,"-$1").toLowerCase()),xi=br(e=>e.charAt(0).toUpperCase()+e.slice(1)),Mr=br(e=>e?`on${xi(e)}`:""),xt=(e,t)=>!Object.is(e,t),Jn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},Os=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Bc=e=>{const t=pe(e)?Number(e):NaN;return isNaN(t)?e:t};let no;const _r=()=>no||(no=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ts(e){if(K(e)){const t={};for(let n=0;n{if(n){const r=n.split(jc);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function xs(e){let t="";if(pe(e))t=e;else if(K(e))for(let n=0;n!!(e&&e.__v_isRef===!0),qc=e=>pe(e)?e:e==null?"":K(e)||ae(e)&&(e.toString===Oi||!J(e.toString))?Ii(e)?qc(e.value):JSON.stringify(e,Li,2):String(e),Li=(e,t)=>Ii(t)?Li(e,t.value):Zt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[Br(r,o)+" =>"]=s,n),{})}:Ri(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Br(n))}:Et(t)?Br(t):ae(t)&&!K(t)&&!Ti(t)?String(t):t,Br=(e,t="")=>{var n;return Et(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let we;class Di{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=we,!t&&we&&(this.index=(we.scopes||(we.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&&(we=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if(yn){let t=yn;for(yn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;gn;){let t=gn;for(gn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function Hi(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function ki(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),Is(r),Wc(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function ns(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Vi(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Vi(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Cn)||(e.globalVersion=Cn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!ns(e))))return;e.flags|=2;const t=e.dep,n=fe,r=We;fe=e,We=!0;try{Hi(e);const s=e.fn(e._value);(t.version===0||xt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{fe=n,We=r,ki(e),e.flags&=-3}}function Is(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)Is(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Wc(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let We=!0;const $i=[];function yt(){$i.push(We),We=!1}function bt(){const e=$i.pop();We=e===void 0?!0:e}function ro(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=fe;fe=void 0;try{t()}finally{fe=n}}}let Cn=0;class Gc{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 Ls{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(!fe||!We||fe===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==fe)n=this.activeLink=new Gc(fe,this),fe.deps?(n.prevDep=fe.depsTail,fe.depsTail.nextDep=n,fe.depsTail=n):fe.deps=fe.depsTail=n,qi(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=fe.depsTail,n.nextDep=void 0,fe.depsTail.nextDep=n,fe.depsTail=n,fe.deps===n&&(fe.deps=r)}return n}trigger(t){this.version++,Cn++,this.notify(t)}notify(t){Ps();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Ns()}}}function qi(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)qi(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const sr=new WeakMap,kt=Symbol(""),rs=Symbol(""),On=Symbol("");function Se(e,t,n){if(We&&fe){let r=sr.get(e);r||sr.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new Ls),s.map=r,s.key=n),s.track()}}function mt(e,t,n,r,s,o){const i=sr.get(e);if(!i){Cn++;return}const l=c=>{c&&c.trigger()};if(Ps(),t==="clear")i.forEach(l);else{const c=K(e),u=c&&yr(n);if(c&&n==="length"){const a=Number(r);i.forEach((f,p)=>{(p==="length"||p===On||!Et(p)&&p>=a)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(On)),t){case"add":c?u&&l(i.get("length")):(l(i.get(kt)),Zt(e)&&l(i.get(rs)));break;case"delete":c||(l(i.get(kt)),Zt(e)&&l(i.get(rs)));break;case"set":Zt(e)&&l(i.get(kt));break}}Ns()}function zc(e,t){const n=sr.get(e);return n&&n.get(t)}function Gt(e){const t=re(e);return t===e?t:(Se(t,"iterate",On),He(e)?t:t.map(Ge))}function Er(e){return Se(e=re(e),"iterate",On),e}function Rt(e,t){return _t(e)?at(e)?nn(Ge(t)):nn(t):Ge(t)}const Jc={__proto__:null,[Symbol.iterator](){return jr(this,Symbol.iterator,e=>Rt(this,e))},concat(...e){return Gt(this).concat(...e.map(t=>K(t)?Gt(t):t))},entries(){return jr(this,"entries",e=>(e[1]=Rt(this,e[1]),e))},every(e,t){return ut(this,"every",e,t,void 0,arguments)},filter(e,t){return ut(this,"filter",e,t,n=>n.map(r=>Rt(this,r)),arguments)},find(e,t){return ut(this,"find",e,t,n=>Rt(this,n),arguments)},findIndex(e,t){return ut(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ut(this,"findLast",e,t,n=>Rt(this,n),arguments)},findLastIndex(e,t){return ut(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ut(this,"forEach",e,t,void 0,arguments)},includes(...e){return Hr(this,"includes",e)},indexOf(...e){return Hr(this,"indexOf",e)},join(e){return Gt(this).join(e)},lastIndexOf(...e){return Hr(this,"lastIndexOf",e)},map(e,t){return ut(this,"map",e,t,void 0,arguments)},pop(){return un(this,"pop")},push(...e){return un(this,"push",e)},reduce(e,...t){return so(this,"reduce",e,t)},reduceRight(e,...t){return so(this,"reduceRight",e,t)},shift(){return un(this,"shift")},some(e,t){return ut(this,"some",e,t,void 0,arguments)},splice(...e){return un(this,"splice",e)},toReversed(){return Gt(this).toReversed()},toSorted(e){return Gt(this).toSorted(e)},toSpliced(...e){return Gt(this).toSpliced(...e)},unshift(...e){return un(this,"unshift",e)},values(){return jr(this,"values",e=>Rt(this,e))}};function jr(e,t,n){const r=Er(e),s=r[t]();return r!==e&&!He(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const Xc=Array.prototype;function ut(e,t,n,r,s,o){const i=Er(e),l=i!==e&&!He(e),c=i[t];if(c!==Xc[t]){const f=c.apply(e,o);return l?Ge(f):f}let u=n;i!==e&&(l?u=function(f,p){return n.call(this,Rt(e,f),p,e)}:n.length>2&&(u=function(f,p){return n.call(this,f,p,e)}));const a=c.call(i,u,r);return l&&s?s(a):a}function so(e,t,n,r){const s=Er(e);let o=n;return s!==e&&(He(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,Rt(e,l),c,e)}),s[t](o,...r)}function Hr(e,t,n){const r=re(e);Se(r,"iterate",On);const s=r[t](...n);return(s===-1||s===!1)&&wr(n[0])?(n[0]=re(n[0]),r[t](...n)):s}function un(e,t,n=[]){yt(),Ps();const r=re(e)[t].apply(e,n);return Ns(),bt(),r}const Qc=As("__proto__,__v_isRef,__isVue"),Ki=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Et));function Yc(e){Et(e)||(e=String(e));const t=re(this);return Se(t,"has",e),t.hasOwnProperty(e)}class Wi{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?ca:Xi:o?Ji:zi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=K(t);if(!s){let c;if(i&&(c=Jc[n]))return c;if(n==="hasOwnProperty")return Yc}const l=Reflect.get(t,n,de(t)?t:r);if((Et(n)?Ki.has(n):Qc(n))||(s||Se(t,"get",n),o))return l;if(de(l)){const c=i&&yr(n)?l:l.value;return s&&ae(c)?os(c):c}return ae(l)?s?os(l):Fn(l):l}}class Gi extends Wi{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=K(t)&&yr(n);if(!this._isShallow){const u=_t(o);if(!He(r)&&!_t(r)&&(o=re(o),r=re(r)),!i&&de(o)&&!de(r))return u||(o.value=r),!0}const l=i?Number(n)e,Vn=e=>Reflect.getPrototypeOf(e);function ra(e,t,n){return function(...r){const s=this.__v_raw,o=re(s),i=Zt(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=s[e](...r),a=n?ss:t?nn:Ge;return!t&&Se(o,"iterate",c?rs:kt),{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 $n(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function sa(e,t){const n={get(s){const o=this.__v_raw,i=re(o),l=re(s);e||(xt(s,l)&&Se(i,"get",s),Se(i,"get",l));const{has:c}=Vn(i),u=t?ss:e?nn:Ge;if(c.call(i,s))return u(o.get(s));if(c.call(i,l))return u(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&Se(re(s),"iterate",kt),s.size},has(s){const o=this.__v_raw,i=re(o),l=re(s);return e||(xt(s,l)&&Se(i,"has",s),Se(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,c=re(l),u=t?ss:e?nn:Ge;return!e&&Se(c,"iterate",kt),l.forEach((a,f)=>s.call(o,u(a),u(f),i))}};return Ee(n,e?{add:$n("add"),set:$n("set"),delete:$n("delete"),clear:$n("clear")}:{add(s){!t&&!He(s)&&!_t(s)&&(s=re(s));const o=re(this);return Vn(o).has.call(o,s)||(o.add(s),mt(o,"add",s,s)),this},set(s,o){!t&&!He(o)&&!_t(o)&&(o=re(o));const i=re(this),{has:l,get:c}=Vn(i);let u=l.call(i,s);u||(s=re(s),u=l.call(i,s));const a=c.call(i,s);return i.set(s,o),u?xt(o,a)&&mt(i,"set",s,o):mt(i,"add",s,o),this},delete(s){const o=re(this),{has:i,get:l}=Vn(o);let c=i.call(o,s);c||(s=re(s),c=i.call(o,s)),l&&l.call(o,s);const u=o.delete(s);return c&&mt(o,"delete",s,void 0),u},clear(){const s=re(this),o=s.size!==0,i=s.clear();return o&&mt(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=ra(s,e,t)}),n}function Ds(e,t){const n=sa(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(oe(n,s)&&s in r?n:r,s,o)}const oa={get:Ds(!1,!1)},ia={get:Ds(!1,!0)},la={get:Ds(!0,!1)};const zi=new WeakMap,Ji=new WeakMap,Xi=new WeakMap,ca=new WeakMap;function aa(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ua(e){return e.__v_skip||!Object.isExtensible(e)?0:aa(Dc(e))}function Fn(e){return _t(e)?e:Fs(e,!1,ea,oa,zi)}function Qi(e){return Fs(e,!1,na,ia,Ji)}function os(e){return Fs(e,!0,ta,la,Xi)}function Fs(e,t,n,r,s){if(!ae(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=ua(e);if(o===0)return e;const i=s.get(e);if(i)return i;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function at(e){return _t(e)?at(e.__v_raw):!!(e&&e.__v_isReactive)}function _t(e){return!!(e&&e.__v_isReadonly)}function He(e){return!!(e&&e.__v_isShallow)}function wr(e){return e?!!e.__v_raw:!1}function re(e){const t=e&&e.__v_raw;return t?re(t):e}function Ms(e){return!oe(e,"__v_skip")&&Object.isExtensible(e)&&Pi(e,"__v_skip",!0),e}const Ge=e=>ae(e)?Fn(e):e,nn=e=>ae(e)?os(e):e;function de(e){return e?e.__v_isRef===!0:!1}function Vt(e){return Yi(e,!1)}function fa(e){return Yi(e,!0)}function Yi(e,t){return de(e)?e:new da(e,t)}class da{constructor(t,n){this.dep=new Ls,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:re(t),this._value=n?t:Ge(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||He(t)||_t(t);t=r?t:re(t),xt(t,n)&&(this._rawValue=t,this._value=r?t:Ge(t),this.dep.trigger())}}function Pt(e){return de(e)?e.value:e}const ha={get:(e,t,n)=>t==="__v_raw"?e:Pt(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return de(s)&&!de(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Zi(e){return at(e)?e:new Proxy(e,ha)}function pa(e){const t=K(e)?new Array(e.length):{};for(const n in e)t[n]=el(e,n);return t}class ma{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._raw=re(t);let s=!0,o=t;if(!K(t)||!yr(String(n)))do s=!wr(o)||He(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=Pt(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&de(this._raw[this._key])){const n=this._object[this._key];if(de(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return zc(this._raw,this._key)}}class ga{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function ya(e,t,n){return de(e)?e:J(e)?new ga(e):ae(e)&&arguments.length>1?el(e,t,n):Vt(e)}function el(e,t,n){return new ma(e,t,n)}class ba{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Ls(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Cn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&fe!==this)return ji(this,!0),!0}get value(){const t=this.dep.track();return Vi(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function _a(e,t,n=!1){let r,s;return J(e)?r=e:(r=e.get,s=e.set),new ba(r,s,n)}const qn={},or=new WeakMap;let Bt;function Ea(e,t=!1,n=Bt){if(n){let r=or.get(n);r||or.set(n,r=[]),r.push(e)}}function wa(e,t,n=ce){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:c}=n,u=x=>s?x:He(x)||s===!1||s===0?gt(x,1):gt(x);let a,f,p,m,g=!1,_=!1;if(de(e)?(f=()=>e.value,g=He(e)):at(e)?(f=()=>u(e),g=!0):K(e)?(_=!0,g=e.some(x=>at(x)||He(x)),f=()=>e.map(x=>{if(de(x))return x.value;if(at(x))return u(x);if(J(x))return c?c(x,2):x()})):J(e)?t?f=c?()=>c(e,2):e:f=()=>{if(p){yt();try{p()}finally{bt()}}const x=Bt;Bt=a;try{return c?c(e,3,[m]):e(m)}finally{Bt=x}}:f=ct,t&&s){const x=f,U=s===!0?1/0:s;f=()=>gt(x(),U)}const E=Mi(),C=()=>{a.stop(),E&&E.active&&Cs(E.effects,a)};if(o&&t){const x=t;t=(...U)=>{x(...U),C()}}let T=_?new Array(e.length).fill(qn):qn;const N=x=>{if(!(!(a.flags&1)||!a.dirty&&!x))if(t){const U=a.run();if(s||g||(_?U.some((G,H)=>xt(G,T[H])):xt(U,T))){p&&p();const G=Bt;Bt=a;try{const H=[U,T===qn?void 0:_&&T[0]===qn?[]:T,m];T=U,c?c(t,3,H):t(...H)}finally{Bt=G}}}else a.run()};return l&&l(N),a=new Bi(f),a.scheduler=i?()=>i(N,!1):N,m=x=>Ea(x,!1,a),p=a.onStop=()=>{const x=or.get(a);if(x){if(c)c(x,4);else for(const U of x)U();or.delete(a)}},t?r?N(!0):T=a.run():i?i(N.bind(null,!0),!0):a.run(),C.pause=a.pause.bind(a),C.resume=a.resume.bind(a),C.stop=C,C}function gt(e,t=1/0,n){if(t<=0||!ae(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,de(e))gt(e.value,t,n);else if(K(e))for(let r=0;r{gt(r,t,n)});else if(Ti(e)){for(const r in e)gt(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&>(e[r],t,n)}return e}function Mn(e,t,n,r){try{return r?e(...r):e()}catch(s){Sr(s,t,n)}}function ze(e,t,n,r){if(J(e)){const s=Mn(e,t,n,r);return s&&Ci(s)&&s.catch(o=>{Sr(o,t,n)}),s}if(K(e)){const s=[];for(let o=0;o>>1,s=xe[r],o=Tn(s);o=Tn(n)?xe.push(e):xe.splice(va(t),0,e),e.flags|=1,nl()}}function nl(){ir||(ir=tl.then(sl))}function Aa(e){K(e)?en.push(...e):Ct&&e.id===-1?Ct.splice(Jt+1,0,e):e.flags&1||(en.push(e),e.flags|=1),nl()}function oo(e,t,n=it+1){for(;nTn(n)-Tn(r));if(en.length=0,Ct){Ct.push(...t);return}for(Ct=t,Jt=0;Jte.id==null?e.flags&2?-1:1/0:e.id;function sl(e){try{for(it=0;it{r._d&&fr(-1);const o=lr(t);let i;try{i=e(...s)}finally{lr(o),r._d&&fr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function rp(e,t){if(Re===null)return e;const n=Or(Re),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&J(t)?t.call(r&&r.proxy):t}}function Ca(){return!!(qs()||$t)}const Oa=Symbol.for("v-scx"),Ta=()=>qe(Oa);function bn(e,t,n){return il(e,t,n)}function il(e,t,n=ce){const{immediate:r,deep:s,flush:o,once:i}=n,l=Ee({},n),c=t&&r||!t&&o!=="post";let u;if(In){if(o==="sync"){const m=Ta();u=m.__watcherHandles||(m.__watcherHandles=[])}else if(!c){const m=()=>{};return m.stop=ct,m.resume=ct,m.pause=ct,m}}const a=Pe;l.call=(m,g,_)=>ze(m,a,g,_);let f=!1;o==="post"?l.scheduler=m=>{Oe(m,a&&a.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(m,g)=>{g?m():Us(m)}),l.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,a&&(m.id=a.uid,m.i=a))};const p=wa(e,t,l);return In&&(u?u.push(p):c&&p()),p}function xa(e,t,n){const r=this.proxy,s=pe(e)?e.includes(".")?ll(r,e):()=>r[e]:e.bind(r,r);let o;J(t)?o=t:(o=t.handler,n=t);const i=Bn(this),l=il(s,o.bind(r),n);return i(),l}function ll(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,_n=e=>e&&(e.disabled||e.disabled===""),io=e=>e&&(e.defer||e.defer===""),lo=e=>typeof SVGElement<"u"&&e instanceof SVGElement,co=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,is=(e,t)=>{const n=e&&e.to;return pe(n)?t?t(n):null:n},ul={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,u){const{mc:a,pc:f,pbc:p,o:{insert:m,querySelector:g,createText:_,createComment:E}}=u,C=_n(t.props);let{shapeFlag:T,children:N,dynamicChildren:x}=t;if(e==null){const U=t.el=_(""),G=t.anchor=_("");m(U,n,r),m(G,n,r);const H=(O,k)=>{T&16&&a(N,O,k,s,o,i,l,c)},j=()=>{const O=t.target=is(t.props,g),k=fl(O,t,_,m);O&&(i!=="svg"&&lo(O)?i="svg":i!=="mathml"&&co(O)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(O),C||(H(O,k),Qn(t,!1)))};C&&(H(n,G),Qn(t,!0)),io(t.props)?(t.el.__isMounted=!1,Oe(()=>{j(),delete t.el.__isMounted},o)):j()}else{if(io(t.props)&&e.el.__isMounted===!1){Oe(()=>{ul.process(e,t,n,r,s,o,i,l,c,u)},o);return}t.el=e.el,t.targetStart=e.targetStart;const U=t.anchor=e.anchor,G=t.target=e.target,H=t.targetAnchor=e.targetAnchor,j=_n(e.props),O=j?n:G,k=j?U:H;if(i==="svg"||lo(G)?i="svg":(i==="mathml"||co(G))&&(i="mathml"),x?(p(e.dynamicChildren,x,O,s,o,i,l),Vs(e,t,!0)):c||f(e,t,O,k,s,o,i,l,!1),C)j?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Kn(t,n,U,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const Y=t.target=is(t.props,g);Y&&Kn(t,Y,null,u,0)}else j&&Kn(t,G,H,u,1);Qn(t,C)}},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetStart:u,targetAnchor:a,target:f,props:p}=e;if(f&&(s(u),s(a)),o&&s(c),i&16){const m=o||!_n(p);for(let g=0;g{e.isMounted=!0}),El(()=>{e.isUnmounting=!0}),e}const $e=[Function,Array],dl={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:$e,onEnter:$e,onAfterEnter:$e,onEnterCancelled:$e,onBeforeLeave:$e,onLeave:$e,onAfterLeave:$e,onLeaveCancelled:$e,onBeforeAppear:$e,onAppear:$e,onAfterAppear:$e,onAppearCancelled:$e},hl=e=>{const t=e.subTree;return t.component?hl(t.component):t},Ia={name:"BaseTransition",props:dl,setup(e,{slots:t}){const n=qs(),r=Na();return()=>{const s=t.default&&gl(t.default(),!0);if(!s||!s.length)return;const o=pl(s),i=re(e),{mode:l}=i;if(r.isLeaving)return kr(o);const c=ao(o);if(!c)return kr(o);let u=ls(c,i,r,n,f=>u=f);c.type!==ve&&xn(c,u);let a=n.subTree&&ao(n.subTree);if(a&&a.type!==ve&&!Ut(a,c)&&hl(n).type!==ve){let f=ls(a,i,r,n);if(xn(a,f),l==="out-in"&&c.type!==ve)return r.isLeaving=!0,f.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete f.afterLeave,a=void 0},kr(o);l==="in-out"&&c.type!==ve?f.delayLeave=(p,m,g)=>{const _=ml(r,a);_[String(a.key)]=a,p[pt]=()=>{m(),p[pt]=void 0,delete u.delayedLeave,a=void 0},u.delayedLeave=()=>{g(),delete u.delayedLeave,a=void 0}}:a=void 0}else a&&(a=void 0);return o}}};function pl(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==ve){t=n;break}}return t}const La=Ia;function ml(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function ls(e,t,n,r,s){const{appear:o,mode:i,persisted:l=!1,onBeforeEnter:c,onEnter:u,onAfterEnter:a,onEnterCancelled:f,onBeforeLeave:p,onLeave:m,onAfterLeave:g,onLeaveCancelled:_,onBeforeAppear:E,onAppear:C,onAfterAppear:T,onAppearCancelled:N}=t,x=String(e.key),U=ml(n,e),G=(O,k)=>{O&&ze(O,r,9,k)},H=(O,k)=>{const Y=k[1];G(O,k),K(O)?O.every(L=>L.length<=1)&&Y():O.length<=1&&Y()},j={mode:i,persisted:l,beforeEnter(O){let k=c;if(!n.isMounted)if(o)k=E||c;else return;O[pt]&&O[pt](!0);const Y=U[x];Y&&Ut(e,Y)&&Y.el[pt]&&Y.el[pt](),G(k,[O])},enter(O){let k=u,Y=a,L=f;if(!n.isMounted)if(o)k=C||u,Y=T||a,L=N||f;else return;let Q=!1;const le=O[Wn]=_e=>{Q||(Q=!0,_e?G(L,[O]):G(Y,[O]),j.delayedLeave&&j.delayedLeave(),O[Wn]=void 0)};k?H(k,[O,le]):le()},leave(O,k){const Y=String(e.key);if(O[Wn]&&O[Wn](!0),n.isUnmounting)return k();G(p,[O]);let L=!1;const Q=O[pt]=le=>{L||(L=!0,k(),le?G(_,[O]):G(g,[O]),O[pt]=void 0,U[Y]===e&&delete U[Y])};U[Y]=e,m?H(m,[O,Q]):Q()},clone(O){const k=ls(O,t,n,r,s);return s&&s(k),k}};return j}function kr(e){if(vr(e))return e=It(e),e.children=null,e}function ao(e){if(!vr(e))return al(e.type)&&e.children?pl(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&J(n.default))return n.default()}}function xn(e,t){e.shapeFlag&6&&e.component?(e.transition=t,xn(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 gl(e,t=!1,n){let r=[],s=0;for(let o=0;o1)for(let o=0;oEn(g,t&&(K(t)?t[_]:t),n,r,s));return}if(tn(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&En(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?Or(r.component):r.el,i=s?null:o,{i:l,r:c}=e,u=t&&t.r,a=l.refs===ce?l.refs={}:l.refs,f=l.setupState,p=re(f),m=f===ce?Ai:g=>oe(p,g);if(u!=null&&u!==c){if(uo(t),pe(u))a[u]=null,m(u)&&(f[u]=null);else if(de(u)){u.value=null;const g=t;g.k&&(a[g.k]=null)}}if(J(c))Mn(c,l,12,[i,a]);else{const g=pe(c),_=de(c);if(g||_){const E=()=>{if(e.f){const C=g?m(c)?f[c]:a[c]:c.value;if(s)K(C)&&Cs(C,o);else if(K(C))C.includes(o)||C.push(o);else if(g)a[c]=[o],m(c)&&(f[c]=a[c]);else{const T=[o];c.value=T,e.k&&(a[e.k]=T)}}else g?(a[c]=i,m(c)&&(f[c]=i)):_&&(c.value=i,e.k&&(a[e.k]=i))};if(i){const C=()=>{E(),cr.delete(e)};C.id=-1,cr.set(e,C),Oe(C,n)}else uo(e),E()}}}function uo(e){const t=cr.get(e);t&&(t.flags|=8,cr.delete(e))}_r().requestIdleCallback;_r().cancelIdleCallback;const tn=e=>!!e.type.__asyncLoader,vr=e=>e.type.__isKeepAlive;function Da(e,t){bl(e,"a",t)}function Fa(e,t){bl(e,"da",t)}function bl(e,t,n=Pe){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Ar(t,r,n),n){let s=n.parent;for(;s&&s.parent;)vr(s.parent.vnode)&&Ma(r,t,n,s),s=s.parent}}function Ma(e,t,n,r){const s=Ar(t,e,r,!0);wl(()=>{Cs(r[t],s)},n)}function Ar(e,t,n=Pe,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{yt();const l=Bn(n),c=ze(t,n,e,i);return l(),bt(),c});return r?s.unshift(o):s.push(o),o}}const wt=e=>(t,n=Pe)=>{(!In||e==="sp")&&Ar(e,(...r)=>t(...r),n)},Ba=wt("bm"),_l=wt("m"),Ua=wt("bu"),ja=wt("u"),El=wt("bum"),wl=wt("um"),Ha=wt("sp"),ka=wt("rtg"),Va=wt("rtc");function $a(e,t=Pe){Ar("ec",e,t)}const qa=Symbol.for("v-ndc");function op(e,t,n,r){let s;const o=n,i=K(e);if(i||pe(e)){const l=i&&at(e);let c=!1,u=!1;l&&(c=!He(e),u=_t(e),e=Er(e)),s=new Array(e.length);for(let a=0,f=e.length;at(l,c,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let c=0,u=l.length;c0;return ur(),dr(De,null,[Ne("slot",n,r)],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),ur();const i=o&&Sl(o(n)),l=n.key||i&&i.key,c=dr(De,{key:(l&&!Et(l)?l:`_${t}`)+(!i&&r?"_fb":"")},i||[],i&&e._===1?64:-2);return c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),o&&o._c&&(o._d=!0),c}function Sl(e){return e.some(t=>Nn(t)?!(t.type===ve||t.type===De&&!Sl(t.children)):!0)?e:null}const cs=e=>e?kl(e)?Or(e):cs(e.parent):null,wn=Ee(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=>cs(e.parent),$root:e=>cs(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Al(e),$forceUpdate:e=>e.f||(e.f=()=>{Us(e.update)}),$nextTick:e=>e.n||(e.n=Bs.bind(e.proxy)),$watch:e=>xa.bind(e)}),Vr=(e,t)=>e!==ce&&!e.__isScriptSetup&&oe(e,t),Ka={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,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 r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(Vr(r,t))return i[t]=1,r[t];if(s!==ce&&oe(s,t))return i[t]=2,s[t];if(oe(o,t))return i[t]=3,o[t];if(n!==ce&&oe(n,t))return i[t]=4,n[t];as&&(i[t]=0)}}const u=wn[t];let a,f;if(u)return t==="$attrs"&&Se(e.attrs,"get",""),u(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==ce&&oe(n,t))return i[t]=4,n[t];if(f=c.config.globalProperties,oe(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return Vr(s,t)?(s[t]=n,!0):r!==ce&&oe(r,t)?(r[t]=n,!0):oe(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:o,type:i}},l){let c;return!!(n[l]||e!==ce&&l[0]!=="$"&&oe(e,l)||Vr(t,l)||oe(o,l)||oe(r,l)||oe(wn,l)||oe(s.config.globalProperties,l)||(c=i.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:oe(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function fo(e){return K(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let as=!0;function Wa(e){const t=Al(e),n=e.proxy,r=e.ctx;as=!1,t.beforeCreate&&ho(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:u,created:a,beforeMount:f,mounted:p,beforeUpdate:m,updated:g,activated:_,deactivated:E,beforeDestroy:C,beforeUnmount:T,destroyed:N,unmounted:x,render:U,renderTracked:G,renderTriggered:H,errorCaptured:j,serverPrefetch:O,expose:k,inheritAttrs:Y,components:L,directives:Q,filters:le}=t;if(u&&Ga(u,r,null),i)for(const z in i){const Z=i[z];J(Z)&&(r[z]=Z.bind(n))}if(s){const z=s.call(n,n);ae(z)&&(e.data=Fn(z))}if(as=!0,o)for(const z in o){const Z=o[z],ke=J(Z)?Z.bind(n,n):J(Z.get)?Z.get.bind(n,n):ct,Qe=!J(Z)&&J(Z.set)?Z.set.bind(n):ct,ye=Ue({get:ke,set:Qe});Object.defineProperty(r,z,{enumerable:!0,configurable:!0,get:()=>ye.value,set:me=>ye.value=me})}if(l)for(const z in l)vl(l[z],r,n,z);if(c){const z=J(c)?c.call(n):c;Reflect.ownKeys(z).forEach(Z=>{Xn(Z,z[Z])})}a&&ho(a,e,"c");function ee(z,Z){K(Z)?Z.forEach(ke=>z(ke.bind(n))):Z&&z(Z.bind(n))}if(ee(Ba,f),ee(_l,p),ee(Ua,m),ee(ja,g),ee(Da,_),ee(Fa,E),ee($a,j),ee(Va,G),ee(ka,H),ee(El,T),ee(wl,x),ee(Ha,O),K(k))if(k.length){const z=e.exposed||(e.exposed={});k.forEach(Z=>{Object.defineProperty(z,Z,{get:()=>n[Z],set:ke=>n[Z]=ke,enumerable:!0})})}else e.exposed||(e.exposed={});U&&e.render===ct&&(e.render=U),Y!=null&&(e.inheritAttrs=Y),L&&(e.components=L),Q&&(e.directives=Q),O&&yl(e)}function Ga(e,t,n=ct){K(e)&&(e=us(e));for(const r in e){const s=e[r];let o;ae(s)?"default"in s?o=qe(s.from||r,s.default,!0):o=qe(s.from||r):o=qe(s),de(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function ho(e,t,n){ze(K(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function vl(e,t,n,r){let s=r.includes(".")?ll(n,r):()=>n[r];if(pe(e)){const o=t[e];J(o)&&bn(s,o)}else if(J(e))bn(s,e.bind(n));else if(ae(e))if(K(e))e.forEach(o=>vl(o,t,n,r));else{const o=J(e.handler)?e.handler.bind(n):t[e.handler];J(o)&&bn(s,o,e)}}function Al(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>ar(c,u,i,!0)),ar(c,t,i)),ae(t)&&o.set(t,c),c}function ar(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&ar(e,o,n,!0),s&&s.forEach(i=>ar(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=za[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const za={data:po,props:mo,emits:mo,methods:pn,computed:pn,beforeCreate:Ce,created:Ce,beforeMount:Ce,mounted:Ce,beforeUpdate:Ce,updated:Ce,beforeDestroy:Ce,beforeUnmount:Ce,destroyed:Ce,unmounted:Ce,activated:Ce,deactivated:Ce,errorCaptured:Ce,serverPrefetch:Ce,components:pn,directives:pn,watch:Xa,provide:po,inject:Ja};function po(e,t){return t?e?function(){return Ee(J(e)?e.call(this,this):e,J(t)?t.call(this,this):t)}:t:e}function Ja(e,t){return pn(us(e),us(t))}function us(e){if(K(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Nt(t)}Modifiers`]||e[`${Wt(t)}Modifiers`];function eu(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||ce;let s=n;const o=t.startsWith("update:"),i=o&&Za(r,t.slice(7));i&&(i.trim&&(s=n.map(a=>pe(a)?a.trim():a)),i.number&&(s=n.map(Os)));let l,c=r[l=Mr(t)]||r[l=Mr(Nt(t))];!c&&o&&(c=r[l=Mr(Wt(t))]),c&&ze(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,ze(u,e,6,s)}}const tu=new WeakMap;function Cl(e,t,n=!1){const r=n?tu:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!J(e)){const c=u=>{const a=Cl(u,t,!0);a&&(l=!0,Ee(i,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(ae(e)&&r.set(e,null),null):(K(o)?o.forEach(c=>i[c]=null):Ee(i,o),ae(e)&&r.set(e,i),i)}function Rr(e,t){return!e||!mr(t)?!1:(t=t.slice(2).replace(/Once$/,""),oe(e,t[0].toLowerCase()+t.slice(1))||oe(e,Wt(t))||oe(e,t))}function go(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:a,props:f,data:p,setupState:m,ctx:g,inheritAttrs:_}=e,E=lr(e);let C,T;try{if(n.shapeFlag&4){const x=s||r,U=x;C=lt(u.call(U,x,a,f,m,p,g)),T=l}else{const x=t;C=lt(x.length>1?x(f,{attrs:l,slots:i,emit:c}):x(f,null)),T=t.props?l:nu(l)}}catch(x){Sn.length=0,Sr(x,e,1),C=Ne(ve)}let N=C;if(T&&_!==!1){const x=Object.keys(T),{shapeFlag:U}=N;x.length&&U&7&&(o&&x.some(Rs)&&(T=ru(T,o)),N=It(N,T,!1,!0))}return n.dirs&&(N=It(N,null,!1,!0),N.dirs=N.dirs?N.dirs.concat(n.dirs):n.dirs),n.transition&&xn(N,n.transition),C=N,lr(E),C}const nu=e=>{let t;for(const n in e)(n==="class"||n==="style"||mr(n))&&((t||(t={}))[n]=e[n]);return t},ru=(e,t)=>{const n={};for(const r in e)(!Rs(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function su(e,t,n){const{props:r,children:s,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 r?yo(r,i,u):!!i;if(c&8){const a=t.dynamicProps;for(let f=0;fObject.create(Ol),xl=e=>Object.getPrototypeOf(e)===Ol;function iu(e,t,n,r=!1){const s={},o=Tl();e.propsDefaults=Object.create(null),Pl(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:Qi(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function lu(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=re(s),[c]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const a=e.vnode.dynamicProps;for(let f=0;f{c=!0;const[p,m]=Nl(f,t,!0);Ee(i,p),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!c)return ae(e)&&r.set(e,Yt),Yt;if(K(o))for(let a=0;ae==="_"||e==="_ctx"||e==="$stable",ks=e=>K(e)?e.map(lt):[lt(e)],au=(e,t,n)=>{if(t._n)return t;const r=Ra((...s)=>ks(t(...s)),n);return r._c=!1,r},Il=(e,t,n)=>{const r=e._ctx;for(const s in e){if(Hs(s))continue;const o=e[s];if(J(o))t[s]=au(s,o,r);else if(o!=null){const i=ks(o);t[s]=()=>i}}},Ll=(e,t)=>{const n=ks(t);e.slots.default=()=>n},Dl=(e,t,n)=>{for(const r in t)(n||!Hs(r))&&(e[r]=t[r])},uu=(e,t,n)=>{const r=e.slots=Tl();if(e.vnode.shapeFlag&32){const s=t._;s?(Dl(r,t,n),n&&Pi(r,"_",s,!0)):Il(t,r)}else t&&Ll(e,t)},fu=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=ce;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:Dl(s,t,n):(o=!t.$stable,Il(t,s)),i=t}else t&&(Ll(e,t),i={default:1});if(o)for(const l in s)!Hs(l)&&i[l]==null&&delete s[l]},Oe=gu;function du(e){return hu(e)}function hu(e,t){const n=_r();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:a,parentNode:f,nextSibling:p,setScopeId:m=ct,insertStaticContent:g}=e,_=(d,h,y,w=null,A=null,S=null,D=void 0,I=null,P=!!h.dynamicChildren)=>{if(d===h)return;d&&!Ut(d,h)&&(w=v(d),me(d,A,S,!0),d=null),h.patchFlag===-2&&(P=!1,h.dynamicChildren=null);const{type:R,ref:q,shapeFlag:M}=h;switch(R){case Cr:E(d,h,y,w);break;case ve:C(d,h,y,w);break;case Yn:d==null&&T(h,y,w,D);break;case De:L(d,h,y,w,A,S,D,I,P);break;default:M&1?U(d,h,y,w,A,S,D,I,P):M&6?Q(d,h,y,w,A,S,D,I,P):(M&64||M&128)&&R.process(d,h,y,w,A,S,D,I,P,V)}q!=null&&A?En(q,d&&d.ref,S,h||d,!h):q==null&&d&&d.ref!=null&&En(d.ref,null,S,d,!0)},E=(d,h,y,w)=>{if(d==null)r(h.el=l(h.children),y,w);else{const A=h.el=d.el;h.children!==d.children&&u(A,h.children)}},C=(d,h,y,w)=>{d==null?r(h.el=c(h.children||""),y,w):h.el=d.el},T=(d,h,y,w)=>{[d.el,d.anchor]=g(d.children,h,y,w,d.el,d.anchor)},N=({el:d,anchor:h},y,w)=>{let A;for(;d&&d!==h;)A=p(d),r(d,y,w),d=A;r(h,y,w)},x=({el:d,anchor:h})=>{let y;for(;d&&d!==h;)y=p(d),s(d),d=y;s(h)},U=(d,h,y,w,A,S,D,I,P)=>{if(h.type==="svg"?D="svg":h.type==="math"&&(D="mathml"),d==null)G(h,y,w,A,S,D,I,P);else{const R=d.el&&d.el._isVueCE?d.el:null;try{R&&R._beginPatch(),O(d,h,A,S,D,I,P)}finally{R&&R._endPatch()}}},G=(d,h,y,w,A,S,D,I)=>{let P,R;const{props:q,shapeFlag:M,transition:$,dirs:W}=d;if(P=d.el=i(d.type,S,q&&q.is,q),M&8?a(P,d.children):M&16&&j(d.children,P,null,w,A,$r(d,S),D,I),W&&Lt(d,null,w,"created"),H(P,d,d.scopeId,D,w),q){for(const ue in q)ue!=="value"&&!mn(ue)&&o(P,ue,null,q[ue],S,w);"value"in q&&o(P,"value",null,q.value,S),(R=q.onVnodeBeforeMount)&&rt(R,w,d)}W&&Lt(d,null,w,"beforeMount");const ne=pu(A,$);ne&&$.beforeEnter(P),r(P,h,y),((R=q&&q.onVnodeMounted)||ne||W)&&Oe(()=>{R&&rt(R,w,d),ne&&$.enter(P),W&&Lt(d,null,w,"mounted")},A)},H=(d,h,y,w,A)=>{if(y&&m(d,y),w)for(let S=0;S{for(let R=P;R{const I=h.el=d.el;let{patchFlag:P,dynamicChildren:R,dirs:q}=h;P|=d.patchFlag&16;const M=d.props||ce,$=h.props||ce;let W;if(y&&Dt(y,!1),(W=$.onVnodeBeforeUpdate)&&rt(W,y,h,d),q&&Lt(h,d,y,"beforeUpdate"),y&&Dt(y,!0),(M.innerHTML&&$.innerHTML==null||M.textContent&&$.textContent==null)&&a(I,""),R?k(d.dynamicChildren,R,I,y,w,$r(h,A),S):D||Z(d,h,I,null,y,w,$r(h,A),S,!1),P>0){if(P&16)Y(I,M,$,y,A);else if(P&2&&M.class!==$.class&&o(I,"class",null,$.class,A),P&4&&o(I,"style",M.style,$.style,A),P&8){const ne=h.dynamicProps;for(let ue=0;ue{W&&rt(W,y,h,d),q&&Lt(h,d,y,"updated")},w)},k=(d,h,y,w,A,S,D)=>{for(let I=0;I{if(h!==y){if(h!==ce)for(const S in h)!mn(S)&&!(S in y)&&o(d,S,h[S],null,A,w);for(const S in y){if(mn(S))continue;const D=y[S],I=h[S];D!==I&&S!=="value"&&o(d,S,I,D,A,w)}"value"in y&&o(d,"value",h.value,y.value,A)}},L=(d,h,y,w,A,S,D,I,P)=>{const R=h.el=d?d.el:l(""),q=h.anchor=d?d.anchor:l("");let{patchFlag:M,dynamicChildren:$,slotScopeIds:W}=h;W&&(I=I?I.concat(W):W),d==null?(r(R,y,w),r(q,y,w),j(h.children||[],y,q,A,S,D,I,P)):M>0&&M&64&&$&&d.dynamicChildren&&d.dynamicChildren.length===$.length?(k(d.dynamicChildren,$,y,A,S,D,I),(h.key!=null||A&&h===A.subTree)&&Vs(d,h,!0)):Z(d,h,y,q,A,S,D,I,P)},Q=(d,h,y,w,A,S,D,I,P)=>{h.slotScopeIds=I,d==null?h.shapeFlag&512?A.ctx.activate(h,y,w,D,P):le(h,y,w,A,S,D,P):_e(d,h,P)},le=(d,h,y,w,A,S,D)=>{const I=d.component=Au(d,w,A);if(vr(d)&&(I.ctx.renderer=V),Ru(I,!1,D),I.asyncDep){if(A&&A.registerDep(I,ee,D),!d.el){const P=I.subTree=Ne(ve);C(null,P,h,y),d.placeholder=P.el}}else ee(I,d,h,y,A,S,D)},_e=(d,h,y)=>{const w=h.component=d.component;if(su(d,h,y))if(w.asyncDep&&!w.asyncResolved){z(w,h,y);return}else w.next=h,w.update();else h.el=d.el,w.vnode=h},ee=(d,h,y,w,A,S,D)=>{const I=()=>{if(d.isMounted){let{next:M,bu:$,u:W,parent:ne,vnode:ue}=d;{const tt=Fl(d);if(tt){M&&(M.el=ue.el,z(d,M,D)),tt.asyncDep.then(()=>{d.isUnmounted||I()});return}}let ie=M,Ie;Dt(d,!1),M?(M.el=ue.el,z(d,M,D)):M=ue,$&&Jn($),(Ie=M.props&&M.props.onVnodeBeforeUpdate)&&rt(Ie,ne,M,ue),Dt(d,!0);const Le=go(d),et=d.subTree;d.subTree=Le,_(et,Le,f(et.el),v(et),d,A,S),M.el=Le.el,ie===null&&ou(d,Le.el),W&&Oe(W,A),(Ie=M.props&&M.props.onVnodeUpdated)&&Oe(()=>rt(Ie,ne,M,ue),A)}else{let M;const{el:$,props:W}=h,{bm:ne,m:ue,parent:ie,root:Ie,type:Le}=d,et=tn(h);Dt(d,!1),ne&&Jn(ne),!et&&(M=W&&W.onVnodeBeforeMount)&&rt(M,ie,h),Dt(d,!0);{Ie.ce&&Ie.ce._def.shadowRoot!==!1&&Ie.ce._injectChildStyle(Le);const tt=d.subTree=go(d);_(null,tt,y,w,d,A,S),h.el=tt.el}if(ue&&Oe(ue,A),!et&&(M=W&&W.onVnodeMounted)){const tt=h;Oe(()=>rt(M,ie,tt),A)}(h.shapeFlag&256||ie&&tn(ie.vnode)&&ie.vnode.shapeFlag&256)&&d.a&&Oe(d.a,A),d.isMounted=!0,h=y=w=null}};d.scope.on();const P=d.effect=new Bi(I);d.scope.off();const R=d.update=P.run.bind(P),q=d.job=P.runIfDirty.bind(P);q.i=d,q.id=d.uid,P.scheduler=()=>Us(q),Dt(d,!0),R()},z=(d,h,y)=>{h.component=d;const w=d.vnode.props;d.vnode=h,d.next=null,lu(d,h.props,w,y),fu(d,h.children,y),yt(),oo(d),bt()},Z=(d,h,y,w,A,S,D,I,P=!1)=>{const R=d&&d.children,q=d?d.shapeFlag:0,M=h.children,{patchFlag:$,shapeFlag:W}=h;if($>0){if($&128){Qe(R,M,y,w,A,S,D,I,P);return}else if($&256){ke(R,M,y,w,A,S,D,I,P);return}}W&8?(q&16&&Ve(R,A,S),M!==R&&a(y,M)):q&16?W&16?Qe(R,M,y,w,A,S,D,I,P):Ve(R,A,S,!0):(q&8&&a(y,""),W&16&&j(M,y,w,A,S,D,I,P))},ke=(d,h,y,w,A,S,D,I,P)=>{d=d||Yt,h=h||Yt;const R=d.length,q=h.length,M=Math.min(R,q);let $;for($=0;$q?Ve(d,A,S,!0,!1,M):j(h,y,w,A,S,D,I,P,M)},Qe=(d,h,y,w,A,S,D,I,P)=>{let R=0;const q=h.length;let M=d.length-1,$=q-1;for(;R<=M&&R<=$;){const W=d[R],ne=h[R]=P?Ot(h[R]):lt(h[R]);if(Ut(W,ne))_(W,ne,y,null,A,S,D,I,P);else break;R++}for(;R<=M&&R<=$;){const W=d[M],ne=h[$]=P?Ot(h[$]):lt(h[$]);if(Ut(W,ne))_(W,ne,y,null,A,S,D,I,P);else break;M--,$--}if(R>M){if(R<=$){const W=$+1,ne=W$)for(;R<=M;)me(d[R],A,S,!0),R++;else{const W=R,ne=R,ue=new Map;for(R=ne;R<=$;R++){const Be=h[R]=P?Ot(h[R]):lt(h[R]);Be.key!=null&&ue.set(Be.key,R)}let ie,Ie=0;const Le=$-ne+1;let et=!1,tt=0;const an=new Array(Le);for(R=0;R=Le){me(Be,A,S,!0);continue}let nt;if(Be.key!=null)nt=ue.get(Be.key);else for(ie=ne;ie<=$;ie++)if(an[ie-ne]===0&&Ut(Be,h[ie])){nt=ie;break}nt===void 0?me(Be,A,S,!0):(an[nt-ne]=R+1,nt>=tt?tt=nt:et=!0,_(Be,h[nt],y,null,A,S,D,I,P),Ie++)}const Zs=et?mu(an):Yt;for(ie=Zs.length-1,R=Le-1;R>=0;R--){const Be=ne+R,nt=h[Be],eo=h[Be+1],to=Be+1{const{el:S,type:D,transition:I,children:P,shapeFlag:R}=d;if(R&6){ye(d.component.subTree,h,y,w);return}if(R&128){d.suspense.move(h,y,w);return}if(R&64){D.move(d,h,y,V);return}if(D===De){r(S,h,y);for(let M=0;MI.enter(S),A);else{const{leave:M,delayLeave:$,afterLeave:W}=I,ne=()=>{d.ctx.isUnmounted?s(S):r(S,h,y)},ue=()=>{S._isLeaving&&S[pt](!0),M(S,()=>{ne(),W&&W()})};$?$(S,ne,ue):ue()}else r(S,h,y)},me=(d,h,y,w=!1,A=!1)=>{const{type:S,props:D,ref:I,children:P,dynamicChildren:R,shapeFlag:q,patchFlag:M,dirs:$,cacheIndex:W}=d;if(M===-2&&(A=!1),I!=null&&(yt(),En(I,null,y,d,!0),bt()),W!=null&&(h.renderCache[W]=void 0),q&256){h.ctx.deactivate(d);return}const ne=q&1&&$,ue=!tn(d);let ie;if(ue&&(ie=D&&D.onVnodeBeforeUnmount)&&rt(ie,h,d),q&6)Ze(d.component,y,w);else{if(q&128){d.suspense.unmount(y,w);return}ne&&Lt(d,null,h,"beforeUnmount"),q&64?d.type.remove(d,h,y,V,w):R&&!R.hasOnce&&(S!==De||M>0&&M&64)?Ve(R,h,y,!1,!0):(S===De&&M&384||!A&&q&16)&&Ve(P,h,y),w&&Ye(d)}(ue&&(ie=D&&D.onVnodeUnmounted)||ne)&&Oe(()=>{ie&&rt(ie,h,d),ne&&Lt(d,null,h,"unmounted")},y)},Ye=d=>{const{type:h,el:y,anchor:w,transition:A}=d;if(h===De){Ke(y,w);return}if(h===Yn){x(d);return}const S=()=>{s(y),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(d.shapeFlag&1&&A&&!A.persisted){const{leave:D,delayLeave:I}=A,P=()=>D(y,S);I?I(d.el,S,P):P()}else S()},Ke=(d,h)=>{let y;for(;d!==h;)y=p(d),s(d),d=y;s(h)},Ze=(d,h,y)=>{const{bum:w,scope:A,job:S,subTree:D,um:I,m:P,a:R}=d;_o(P),_o(R),w&&Jn(w),A.stop(),S&&(S.flags|=8,me(D,d,h,y)),I&&Oe(I,h),Oe(()=>{d.isUnmounted=!0},h)},Ve=(d,h,y,w=!1,A=!1,S=0)=>{for(let D=S;D{if(d.shapeFlag&6)return v(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const h=p(d.anchor||d.el),y=h&&h[cl];return y?p(y):h};let B=!1;const F=(d,h,y)=>{let w;d==null?h._vnode&&(me(h._vnode,null,null,!0),w=h._vnode.component):_(h._vnode||null,d,h,null,null,null,y),h._vnode=d,B||(B=!0,oo(w),rl(),B=!1)},V={p:_,um:me,m:ye,r:Ye,mt:le,mc:j,pc:Z,pbc:k,n:v,o:e};return{render:F,hydrate:void 0,createApp:Ya(F)}}function $r({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 Dt({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function pu(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Vs(e,t,n=!1){const r=e.children,s=t.children;if(K(r)&&K(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Fl(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Fl(t)}function _o(e){if(e)for(let t=0;te.__isSuspense;function gu(e,t){t&&t.pendingBranch?K(e)?t.effects.push(...e):t.effects.push(e):Aa(e)}const De=Symbol.for("v-fgt"),Cr=Symbol.for("v-txt"),ve=Symbol.for("v-cmt"),Yn=Symbol.for("v-stc"),Sn=[];let je=null;function ur(e=!1){Sn.push(je=e?null:[])}function yu(){Sn.pop(),je=Sn[Sn.length-1]||null}let Pn=1;function fr(e,t=!1){Pn+=e,e<0&&je&&t&&(je.hasOnce=!0)}function Ul(e){return e.dynamicChildren=Pn>0?je||Yt:null,yu(),Pn>0&&je&&je.push(e),e}function lp(e,t,n,r,s,o){return Ul(Hl(e,t,n,r,s,o,!0))}function dr(e,t,n,r,s){return Ul(Ne(e,t,n,r,s,!0))}function Nn(e){return e?e.__v_isVNode===!0:!1}function Ut(e,t){return e.type===t.type&&e.key===t.key}const jl=({key:e})=>e??null,Zn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?pe(e)||de(e)||J(e)?{i:Re,r:e,k:t,f:!!n}:e:null);function Hl(e,t=null,n=null,r=0,s=null,o=e===De?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&jl(t),ref:t&&Zn(t),scopeId:ol,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:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Re};return l?($s(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=pe(n)?8:16),Pn>0&&!i&&je&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&je.push(c),c}const Ne=bu;function bu(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===qa)&&(e=ve),Nn(e)){const l=It(e,t,!0);return n&&$s(l,n),Pn>0&&!o&&je&&(l.shapeFlag&6?je[je.indexOf(e)]=l:je.push(l)),l.patchFlag=-2,l}if(xu(e)&&(e=e.__vccOpts),t){t=_u(t);let{class:l,style:c}=t;l&&!pe(l)&&(t.class=xs(l)),ae(c)&&(wr(c)&&!K(c)&&(c=Ee({},c)),t.style=Ts(c))}const i=pe(e)?1:Bl(e)?128:al(e)?64:ae(e)?4:J(e)?2:0;return Hl(e,t,n,r,s,i,o,!0)}function _u(e){return e?wr(e)||xl(e)?Ee({},e):e:null}function It(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?wu(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&jl(u),ref:t&&t.ref?n&&o?K(o)?o.concat(Zn(t)):[o,Zn(t)]:Zn(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!==De?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&&It(e.ssContent),ssFallback:e.ssFallback&&It(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&xn(a,c.clone(a)),a}function Eu(e=" ",t=0){return Ne(Cr,null,e,t)}function cp(e,t){const n=Ne(Yn,null,e);return n.staticCount=t,n}function ap(e="",t=!1){return t?(ur(),dr(ve,null,e)):Ne(ve,null,e)}function lt(e){return e==null||typeof e=="boolean"?Ne(ve):K(e)?Ne(De,null,e.slice()):Nn(e)?Ot(e):Ne(Cr,null,String(e))}function Ot(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:It(e)}function $s(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(K(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),$s(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!xl(t)?t._ctx=Re:s===3&&Re&&(Re.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else J(t)?(t={default:t,_ctx:Re},n=32):(t=String(t),r&64?(n=16,t=[Eu(t)]):n=8);e.children=t,e.shapeFlag|=n}function wu(...e){const t={};for(let n=0;nPe||Re;let hr,ds;{const e=_r(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};hr=t("__VUE_INSTANCE_SETTERS__",n=>Pe=n),ds=t("__VUE_SSR_SETTERS__",n=>In=n)}const Bn=e=>{const t=Pe;return hr(e),e.scope.on(),()=>{e.scope.off(),hr(t)}},Eo=()=>{Pe&&Pe.scope.off(),hr(null)};function kl(e){return e.vnode.shapeFlag&4}let In=!1;function Ru(e,t=!1,n=!1){t&&ds(t);const{props:r,children:s}=e.vnode,o=kl(e);iu(e,r,o,t),uu(e,s,n||t);const i=o?Cu(e,t):void 0;return t&&ds(!1),i}function Cu(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Ka);const{setup:r}=n;if(r){yt();const s=e.setupContext=r.length>1?Tu(e):null,o=Bn(e),i=Mn(r,e,0,[e.props,s]),l=Ci(i);if(bt(),o(),(l||e.sp)&&!tn(e)&&yl(e),l){if(i.then(Eo,Eo),t)return i.then(c=>{wo(e,c)}).catch(c=>{Sr(c,e,0)});e.asyncDep=i}else wo(e,i)}else Vl(e)}function wo(e,t,n){J(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ae(t)&&(e.setupState=Zi(t)),Vl(e)}function Vl(e,t,n){const r=e.type;e.render||(e.render=r.render||ct);{const s=Bn(e);yt();try{Wa(e)}finally{bt(),s()}}}const Ou={get(e,t){return Se(e,"get",""),e[t]}};function Tu(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Ou),slots:e.slots,emit:e.emit,expose:t}}function Or(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Zi(Ms(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in wn)return wn[n](e)},has(t,n){return n in t||n in wn}})):e.proxy}function xu(e){return J(e)&&"__vccOpts"in e}const Ue=(e,t)=>_a(e,t,In);function Ks(e,t,n){try{fr(-1);const r=arguments.length;return r===2?ae(t)&&!K(t)?Nn(t)?Ne(e,null,[t]):Ne(e,t):Ne(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Nn(n)&&(n=[n]),Ne(e,t,n))}finally{fr(1)}}const Pu="3.5.26";let hs;const So=typeof window<"u"&&window.trustedTypes;if(So)try{hs=So.createPolicy("vue",{createHTML:e=>e})}catch{}const $l=hs?e=>hs.createHTML(e):e=>e,Nu="http://www.w3.org/2000/svg",Iu="http://www.w3.org/1998/Math/MathML",ht=typeof document<"u"?document:null,vo=ht&&ht.createElement("template"),Lu={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?ht.createElementNS(Nu,e):t==="mathml"?ht.createElementNS(Iu,e):n?ht.createElement(e,{is:n}):ht.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>ht.createTextNode(e),createComment:e=>ht.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ht.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{vo.innerHTML=$l(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=vo.content;if(r==="svg"||r==="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]}},St="transition",fn="animation",Ln=Symbol("_vtc"),ql={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Du=Ee({},dl,ql),Fu=e=>(e.displayName="Transition",e.props=Du,e),up=Fu((e,{slots:t})=>Ks(La,Mu(e),t)),Ft=(e,t=[])=>{K(e)?e.forEach(n=>n(...t)):e&&e(...t)},Ao=e=>e?K(e)?e.some(t=>t.length>1):e.length>1:!1;function Mu(e){const t={};for(const L in e)L in ql||(t[L]=e[L]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=o,appearActiveClass:u=i,appearToClass:a=l,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,g=Bu(s),_=g&&g[0],E=g&&g[1],{onBeforeEnter:C,onEnter:T,onEnterCancelled:N,onLeave:x,onLeaveCancelled:U,onBeforeAppear:G=C,onAppear:H=T,onAppearCancelled:j=N}=t,O=(L,Q,le,_e)=>{L._enterCancelled=_e,Mt(L,Q?a:l),Mt(L,Q?u:i),le&&le()},k=(L,Q)=>{L._isLeaving=!1,Mt(L,f),Mt(L,m),Mt(L,p),Q&&Q()},Y=L=>(Q,le)=>{const _e=L?H:T,ee=()=>O(Q,L,le);Ft(_e,[Q,ee]),Ro(()=>{Mt(Q,L?c:o),ft(Q,L?a:l),Ao(_e)||Co(Q,r,_,ee)})};return Ee(t,{onBeforeEnter(L){Ft(C,[L]),ft(L,o),ft(L,i)},onBeforeAppear(L){Ft(G,[L]),ft(L,c),ft(L,u)},onEnter:Y(!1),onAppear:Y(!0),onLeave(L,Q){L._isLeaving=!0;const le=()=>k(L,Q);ft(L,f),L._enterCancelled?(ft(L,p),xo(L)):(xo(L),ft(L,p)),Ro(()=>{L._isLeaving&&(Mt(L,f),ft(L,m),Ao(x)||Co(L,r,E,le))}),Ft(x,[L,le])},onEnterCancelled(L){O(L,!1,void 0,!0),Ft(N,[L])},onAppearCancelled(L){O(L,!0,void 0,!0),Ft(j,[L])},onLeaveCancelled(L){k(L),Ft(U,[L])}})}function Bu(e){if(e==null)return null;if(ae(e))return[qr(e.enter),qr(e.leave)];{const t=qr(e);return[t,t]}}function qr(e){return Bc(e)}function ft(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Ln]||(e[Ln]=new Set)).add(t)}function Mt(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[Ln];n&&(n.delete(t),n.size||(e[Ln]=void 0))}function Ro(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Uu=0;function Co(e,t,n,r){const s=e._endId=++Uu,o=()=>{s===e._endId&&r()};if(n!=null)return setTimeout(o,n);const{type:i,timeout:l,propCount:c}=ju(e,t);if(!i)return r();const u=i+"end";let a=0;const f=()=>{e.removeEventListener(u,p),o()},p=m=>{m.target===e&&++a>=c&&f()};setTimeout(()=>{a(n[g]||"").split(", "),s=r(`${St}Delay`),o=r(`${St}Duration`),i=Oo(s,o),l=r(`${fn}Delay`),c=r(`${fn}Duration`),u=Oo(l,c);let a=null,f=0,p=0;t===St?i>0&&(a=St,f=i,p=o.length):t===fn?u>0&&(a=fn,f=u,p=c.length):(f=Math.max(i,u),a=f>0?i>u?St:fn:null,p=a?a===St?o.length:c.length:0);const m=a===St&&/\b(?:transform|all)(?:,|$)/.test(r(`${St}Property`).toString());return{type:a,timeout:f,propCount:p,hasTransform:m}}function Oo(e,t){for(;e.lengthTo(n)+To(e[r])))}function To(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function xo(e){return(e?e.ownerDocument:document).body.offsetHeight}function Hu(e,t,n){const r=e[Ln];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Po=Symbol("_vod"),ku=Symbol("_vsh"),Vu=Symbol(""),$u=/(?:^|;)\s*display\s*:/;function qu(e,t,n){const r=e.style,s=pe(n);let o=!1;if(n&&!s){if(t)if(pe(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&er(r,l,"")}else for(const i in t)n[i]==null&&er(r,i,"");for(const i in n)i==="display"&&(o=!0),er(r,i,n[i])}else if(s){if(t!==n){const i=r[Vu];i&&(n+=";"+i),r.cssText=n,o=$u.test(n)}}else t&&e.removeAttribute("style");Po in e&&(e[Po]=o?r.display:"",e[ku]&&(r.display="none"))}const No=/\s*!important$/;function er(e,t,n){if(K(n))n.forEach(r=>er(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Ku(e,t);No.test(n)?e.setProperty(Wt(r),n.replace(No,""),"important"):e[r]=n}}const Io=["Webkit","Moz","ms"],Kr={};function Ku(e,t){const n=Kr[t];if(n)return n;let r=Nt(t);if(r!=="filter"&&r in e)return Kr[t]=r;r=xi(r);for(let s=0;sWr||(Ju.then(()=>Wr=0),Wr=Date.now());function Qu(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;ze(Yu(r,n.value),t,5,[r])};return n.value=e,n.attached=Xu(),n}function Yu(e,t){if(K(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const Uo=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Zu=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?Hu(e,r,i):t==="style"?qu(e,n,r):mr(t)?Rs(t)||Gu(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):ef(e,t,r,i))?(Fo(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Do(e,t,r,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!pe(r))?Fo(e,Nt(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Do(e,t,r,i))};function ef(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&Uo(t)&&J(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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return Uo(t)&&pe(n)?!1:t in e}const jo=e=>{const t=e.props["onUpdate:modelValue"]||!1;return K(t)?n=>Jn(t,n):t};function tf(e){e.target.composing=!0}function Ho(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Gr=Symbol("_assign");function ko(e,t,n){return t&&(e=e.trim()),n&&(e=Os(e)),e}const fp={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Gr]=jo(s);const o=r||s.props&&s.props.type==="number";Xt(e,t?"change":"input",i=>{i.target.composing||e[Gr](ko(e.value,n,o))}),(n||o)&&Xt(e,"change",()=>{e.value=ko(e.value,n,o)}),t||(Xt(e,"compositionstart",tf),Xt(e,"compositionend",Ho),Xt(e,"change",Ho))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Gr]=jo(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?Os(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},nf=["ctrl","shift","alt","meta"],rf={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>nf.some(n=>e[`${n}Key`]&&!t.includes(n))},dp=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const t=of().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=af(r);if(!s)return;const o=t._component;!J(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,cf(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t});function cf(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function af(e){return pe(e)?document.querySelector(e):e}let Kl;const Tr=e=>Kl=e,Wl=Symbol();function ps(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var vn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(vn||(vn={}));function uf(){const e=Fi(!0),t=e.run(()=>Vt({}));let n=[],r=[];const s=Ms({install(o){Tr(s),s._a=o,o.provide(Wl,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const Gl=()=>{};function $o(e,t,n,r=Gl){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&Mi()&&Kc(s),s}function zt(e,...t){e.forEach(n=>{n(...t)})}const ff=e=>e(),qo=Symbol(),zr=Symbol();function ms(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];ps(s)&&ps(r)&&e.hasOwnProperty(n)&&!de(r)&&!at(r)?e[n]=ms(s,r):e[n]=r}return e}const df=Symbol();function hf(e){return!ps(e)||!Object.prototype.hasOwnProperty.call(e,df)}const{assign:At}=Object;function pf(e){return!!(de(e)&&e.effect)}function mf(e,t,n,r){const{state:s,actions:o,getters:i}=t,l=n.state.value[e];let c;function u(){l||(n.state.value[e]=s?s():{});const a=pa(n.state.value[e]);return At(a,o,Object.keys(i||{}).reduce((f,p)=>(f[p]=Ms(Ue(()=>{Tr(n);const m=n._s.get(e);return i[p].call(m,m)})),f),{}))}return c=zl(e,u,t,n,r,!0),c}function zl(e,t,n={},r,s,o){let i;const l=At({actions:{}},n),c={deep:!0};let u,a,f=new Set,p=new Set,m;const g=r.state.value[e];!o&&!g&&(r.state.value[e]={}),Vt({});let _;function E(j){let O;u=a=!1,typeof j=="function"?(j(r.state.value[e]),O={type:vn.patchFunction,storeId:e,events:m}):(ms(r.state.value[e],j),O={type:vn.patchObject,payload:j,storeId:e,events:m});const k=_=Symbol();Bs().then(()=>{_===k&&(u=!0)}),a=!0,zt(f,O,r.state.value[e])}const C=o?function(){const{state:O}=n,k=O?O():{};this.$patch(Y=>{At(Y,k)})}:Gl;function T(){i.stop(),f.clear(),p.clear(),r._s.delete(e)}const N=(j,O="")=>{if(qo in j)return j[zr]=O,j;const k=function(){Tr(r);const Y=Array.from(arguments),L=new Set,Q=new Set;function le(z){L.add(z)}function _e(z){Q.add(z)}zt(p,{args:Y,name:k[zr],store:U,after:le,onError:_e});let ee;try{ee=j.apply(this&&this.$id===e?this:U,Y)}catch(z){throw zt(Q,z),z}return ee instanceof Promise?ee.then(z=>(zt(L,z),z)).catch(z=>(zt(Q,z),Promise.reject(z))):(zt(L,ee),ee)};return k[qo]=!0,k[zr]=O,k},x={_p:r,$id:e,$onAction:$o.bind(null,p),$patch:E,$reset:C,$subscribe(j,O={}){const k=$o(f,j,O.detached,()=>Y()),Y=i.run(()=>bn(()=>r.state.value[e],L=>{(O.flush==="sync"?a:u)&&j({storeId:e,type:vn.direct,events:m},L)},At({},c,O)));return k},$dispose:T},U=Fn(x);r._s.set(e,U);const H=(r._a&&r._a.runWithContext||ff)(()=>r._e.run(()=>(i=Fi()).run(()=>t({action:N}))));for(const j in H){const O=H[j];if(de(O)&&!pf(O)||at(O))o||(g&&hf(O)&&(de(O)?O.value=g[j]:ms(O,g[j])),r.state.value[e][j]=O);else if(typeof O=="function"){const k=N(O,j);H[j]=k,l.actions[j]=O}}return At(U,H),At(re(U),H),Object.defineProperty(U,"$state",{get:()=>r.state.value[e],set:j=>{E(O=>{At(O,j)})}}),r._p.forEach(j=>{At(U,i.run(()=>j({store:U,app:r._a,pinia:r,options:l})))}),g&&o&&n.hydrate&&n.hydrate(U.$state,g),u=!0,a=!0,U}function gf(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,l){const c=Ca();return i=i||(c?qe(Wl,null):null),i&&Tr(i),i=Kl,i._s.has(e)||(s?zl(e,t,r,i):mf(e,r,i)),i._s.get(e)}return o.$id=e,o}function hp(e){const t=re(e),n={};for(const r in t){const s=t[r];s.effect?n[r]=Ue({get:()=>e[r],set(o){e[r]=o}}):(de(s)||at(s))&&(n[r]=ya(e,r))}return n}const yf="modulepreload",bf=function(e){return"/"+e},Ko={},st=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let c=function(u){return Promise.all(u.map(a=>Promise.resolve(a).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=c(n.map(u=>{if(u=bf(u),u in Ko)return;Ko[u]=!0;const a=u.endsWith(".css"),f=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const p=document.createElement("link");if(p.rel=a?"stylesheet":yf,a||(p.as="script"),p.crossOrigin="",p.href=u,l&&p.setAttribute("nonce",l),document.head.appendChild(p),a)return new Promise((m,g)=>{p.addEventListener("load",m),p.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})};const Qt=typeof document<"u";function Jl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function _f(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Jl(e.default)}const se=Object.assign;function Jr(e,t){const n={};for(const r in t){const s=t[r];n[r]=Je(s)?s.map(e):e(s)}return n}const An=()=>{},Je=Array.isArray;function Wo(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const Xl=/#/g,Ef=/&/g,wf=/\//g,Sf=/=/g,vf=/\?/g,Ql=/\+/g,Af=/%5B/g,Rf=/%5D/g,Yl=/%5E/g,Cf=/%60/g,Zl=/%7B/g,Of=/%7C/g,ec=/%7D/g,Tf=/%20/g;function Ws(e){return e==null?"":encodeURI(""+e).replace(Of,"|").replace(Af,"[").replace(Rf,"]")}function xf(e){return Ws(e).replace(Zl,"{").replace(ec,"}").replace(Yl,"^")}function gs(e){return Ws(e).replace(Ql,"%2B").replace(Tf,"+").replace(Xl,"%23").replace(Ef,"%26").replace(Cf,"`").replace(Zl,"{").replace(ec,"}").replace(Yl,"^")}function Pf(e){return gs(e).replace(Sf,"%3D")}function Nf(e){return Ws(e).replace(Xl,"%23").replace(vf,"%3F")}function If(e){return Nf(e).replace(wf,"%2F")}function Dn(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Lf=/\/$/,Df=e=>e.replace(Lf,"");function Xr(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return c=l>=0&&c>l?-1:c,c>=0&&(r=t.slice(0,c),o=t.slice(c,l>0?l:t.length),s=e(o.slice(1))),l>=0&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=Uf(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:Dn(i)}}function Ff(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Go(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Mf(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&rn(t.matched[r],n.matched[s])&&tc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function rn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function tc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!Bf(e[n],t[n]))return!1;return!0}function Bf(e,t){return Je(e)?zo(e,t):Je(t)?zo(t,e):e?.valueOf()===t?.valueOf()}function zo(e,t){return Je(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function Uf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const vt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let ys=(function(e){return e.pop="pop",e.push="push",e})({}),Qr=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function jf(e){if(!e)if(Qt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Df(e)}const Hf=/^[^#]+#/;function kf(e,t){return e.replace(Hf,"#")+t}function Vf(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const xr=()=>({left:window.scrollX,top:window.scrollY});function $f(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=Vf(s,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 Jo(e,t){return(history.state?history.state.position-t:-1)+e}const bs=new Map;function qf(e,t){bs.set(e,t)}function Kf(e){const t=bs.get(e);return bs.delete(e),t}function Wf(e){return typeof e=="string"||e&&typeof e=="object"}function nc(e){return typeof e=="string"||typeof e=="symbol"}let he=(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 rc=Symbol("");he.MATCHER_NOT_FOUND+"",he.NAVIGATION_GUARD_REDIRECT+"",he.NAVIGATION_ABORTED+"",he.NAVIGATION_CANCELLED+"",he.NAVIGATION_DUPLICATED+"";function sn(e,t){return se(new Error,{type:e,[rc]:!0},t)}function dt(e,t){return e instanceof Error&&rc in e&&(t==null||!!(e.type&t))}const Gf=["params","query","hash"];function zf(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of Gf)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function Jf(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&gs(s)):[r&&gs(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function Xf(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=Je(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const Qf=Symbol(""),Qo=Symbol(""),Pr=Symbol(""),Gs=Symbol(""),_s=Symbol("");function dn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Tt(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,c)=>{const u=p=>{p===!1?c(sn(he.NAVIGATION_ABORTED,{from:n,to:t})):p instanceof Error?c(p):Wf(p)?c(sn(he.NAVIGATION_GUARD_REDIRECT,{from:t,to:p})):(i&&r.enterCallbacks[s]===i&&typeof p=="function"&&i.push(p),l())},a=o(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(a);e.length<3&&(f=f.then(u)),f.catch(p=>c(p))})}function Yr(e,t,n,r,s=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(Jl(c)){const u=(c.__vccOpts||c)[t];u&&o.push(Tt(u,n,r,i,l,s))}else{let u=c();o.push(()=>u.then(a=>{if(!a)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=_f(a)?a.default:a;i.mods[l]=a,i.components[l]=f;const p=(f.__vccOpts||f)[t];return p&&Tt(p,n,r,i,l,s)()}))}}return o}function Yf(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;irn(u,l))?r.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(u=>rn(u,c))||s.push(c))}return[n,r,s]}let Zf=()=>location.protocol+"//"+location.host;function sc(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(i);return l[0]!=="/"&&(l="/"+l),Go(l,"")}return Go(n,e)+r+s}function ed(e,t,n,r){let s=[],o=[],i=null;const l=({state:p})=>{const m=sc(e,location),g=n.value,_=t.value;let E=0;if(p){if(n.value=m,t.value=p,i&&i===g){i=null;return}E=_?p.position-_.position:0}else r(m);s.forEach(C=>{C(n.value,g,{delta:E,type:ys.pop,direction:E?E>0?Qr.forward:Qr.back:Qr.unknown})})};function c(){i=n.value}function u(p){s.push(p);const m=()=>{const g=s.indexOf(p);g>-1&&s.splice(g,1)};return o.push(m),m}function a(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(se({},p.state,{scroll:xr()}),"")}}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 Yo(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?xr():null}}function td(e){const{history:t,location:n}=window,r={value:sc(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.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:Zf()+e+c;try{t[a?"replaceState":"pushState"](u,"",p),s.value=u}catch(m){console.error(m),n[a?"replace":"assign"](p)}}function i(c,u){o(c,se({},t.state,Yo(s.value.back,c,s.value.forward,!0),u,{position:s.value.position}),!0),r.value=c}function l(c,u){const a=se({},s.value,t.state,{forward:c,scroll:xr()});o(a.current,a,!0),o(c,se({},Yo(r.value,c,null),{position:a.position+1},u),!1),r.value=c}return{location:r,state:s,push:l,replace:i}}function nd(e){e=jf(e);const t=td(e),n=ed(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=se({location:"",base:e,go:r,createHref:kf.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function rd(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),nd(e)}let jt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var be=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e})(be||{});const sd={type:jt.Static,value:""},od=/[a-zA-Z0-9_]/;function id(e){if(!e)return[[]];if(e==="/")return[[sd]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${u}": ${m}`)}let n=be.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,c,u="",a="";function f(){u&&(n===be.Static?o.push({type:jt.Static,value:u}):n===be.Param||n===be.ParamRegExp||n===be.ParamRegExpEnd?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:jt.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]===Te.Static+Te.Segment?1:-1:0}function oc(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const fd={strict:!1,end:!0,sensitive:!1};function dd(e,t,n){const r=ad(id(e.path),n),s=se(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function hd(e,t){const n=[],r=new Map;t=Wo(fd,t);function s(f){return r.get(f)}function o(f,p,m){const g=!m,_=ni(f);_.aliasOf=m&&m.record;const E=Wo(t,f),C=[_];if("alias"in f){const x=typeof f.alias=="string"?[f.alias]:f.alias;for(const U of x)C.push(ni(se({},_,{components:m?m.record.components:_.components,path:U,aliasOf:m?m.record:_})))}let T,N;for(const x of C){const{path:U}=x;if(p&&U[0]!=="/"){const G=p.record.path,H=G[G.length-1]==="/"?"":"/";x.path=p.record.path+(U&&H+U)}if(T=dd(x,p,E),m?m.alias.push(T):(N=N||T,N!==T&&N.alias.push(T),g&&f.name&&!ri(T)&&i(f.name)),ic(T)&&c(T),_.children){const G=_.children;for(let H=0;H{i(N)}:An}function i(f){if(nc(f)){const p=r.get(f);p&&(r.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&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function c(f){const p=gd(f,n);n.splice(p,0,f),f.record.name&&!ri(f)&&r.set(f.record.name,f)}function u(f,p){let m,g={},_,E;if("name"in f&&f.name){if(m=r.get(f.name),!m)throw sn(he.MATCHER_NOT_FOUND,{location:f});E=m.record.name,g=se(ti(p.params,m.keys.filter(N=>!N.optional).concat(m.parent?m.parent.keys.filter(N=>N.optional):[]).map(N=>N.name)),f.params&&ti(f.params,m.keys.map(N=>N.name))),_=m.stringify(g)}else if(f.path!=null)_=f.path,m=n.find(N=>N.re.test(_)),m&&(g=m.parse(_),E=m.record.name);else{if(m=p.name?r.get(p.name):n.find(N=>N.re.test(p.path)),!m)throw sn(he.MATCHER_NOT_FOUND,{location:f,currentLocation:p});E=m.record.name,g=se({},p.params,f.params),_=m.stringify(g)}const C=[];let T=m;for(;T;)C.unshift(T.record),T=T.parent;return{name:E,path:_,params:g,matched:C,meta:md(C)}}e.forEach(f=>o(f));function a(){n.length=0,r.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:a,getRoutes:l,getRecordMatcher:s}}function ti(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function ni(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:pd(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 pd(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function ri(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function md(e){return e.reduce((t,n)=>se(t,n.meta),{})}function gd(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;oc(e,t[o])<0?r=o:n=o+1}const s=yd(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function yd(e){let t=e;for(;t=t.parent;)if(ic(t)&&oc(e,t)===0)return t}function ic({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function si(e){const t=qe(Pr),n=qe(Gs),r=Ue(()=>{const c=Pt(e.to);return t.resolve(c)}),s=Ue(()=>{const{matched:c}=r.value,{length:u}=c,a=c[u-1],f=n.matched;if(!a||!f.length)return-1;const p=f.findIndex(rn.bind(null,a));if(p>-1)return p;const m=oi(c[u-2]);return u>1&&oi(a)===m&&f[f.length-1].path!==m?f.findIndex(rn.bind(null,c[u-2])):p}),o=Ue(()=>s.value>-1&&Sd(n.params,r.value.params)),i=Ue(()=>s.value>-1&&s.value===n.matched.length-1&&tc(n.params,r.value.params));function l(c={}){if(wd(c)){const u=t[Pt(e.replace)?"replace":"push"](Pt(e.to)).catch(An);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Ue(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function bd(e){return e.length===1?e[0]:e}const _d=js({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:si,setup(e,{slots:t}){const n=Fn(si(e)),{options:r}=qe(Pr),s=Ue(()=>({[ii(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[ii(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&bd(t.default(n));return e.custom?o:Ks("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),Ed=_d;function wd(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 Sd(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!Je(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function oi(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const ii=(e,t,n)=>e??t??n,vd=js({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=qe(_s),s=Ue(()=>e.route||r.value),o=qe(Qo,0),i=Ue(()=>{let u=Pt(o);const{matched:a}=s.value;let f;for(;(f=a[u])&&!f.components;)u++;return u}),l=Ue(()=>s.value.matched[i.value]);Xn(Qo,Ue(()=>i.value+1)),Xn(Qf,l),Xn(_s,s);const c=Vt();return bn(()=>[c.value,l.value,e.name],([u,a,f],[p,m,g])=>{a&&(a.instances[f]=u,m&&m!==a&&u&&u===p&&(a.leaveGuards.size||(a.leaveGuards=m.leaveGuards),a.updateGuards.size||(a.updateGuards=m.updateGuards))),u&&a&&(!m||!rn(a,m)||!p)&&(a.enterCallbacks[f]||[]).forEach(_=>_(u))},{flush:"post"}),()=>{const u=s.value,a=e.name,f=l.value,p=f&&f.components[a];if(!p)return li(n.default,{Component:p,route:u});const m=f.props[a],g=m?m===!0?u.params:typeof m=="function"?m(u):m:null,E=Ks(p,se({},g,t,{onVnodeUnmounted:C=>{C.component.isUnmounted&&(f.instances[a]=null)},ref:c}));return li(n.default,{Component:E,route:u})||E}}});function li(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const lc=vd;function Ad(e){const t=hd(e.routes,e),n=e.parseQuery||Jf,r=e.stringifyQuery||Xo,s=e.history,o=dn(),i=dn(),l=dn(),c=fa(vt);let u=vt;Qt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const a=Jr.bind(null,v=>""+v),f=Jr.bind(null,If),p=Jr.bind(null,Dn);function m(v,B){let F,V;return nc(v)?(F=t.getRecordMatcher(v),V=B):V=v,t.addRoute(V,F)}function g(v){const B=t.getRecordMatcher(v);B&&t.removeRoute(B)}function _(){return t.getRoutes().map(v=>v.record)}function E(v){return!!t.getRecordMatcher(v)}function C(v,B){if(B=se({},B||c.value),typeof v=="string"){const y=Xr(n,v,B.path),w=t.resolve({path:y.path},B),A=s.createHref(y.fullPath);return se(y,w,{params:p(w.params),hash:Dn(y.hash),redirectedFrom:void 0,href:A})}let F;if(v.path!=null)F=se({},v,{path:Xr(n,v.path,B.path).path});else{const y=se({},v.params);for(const w in y)y[w]==null&&delete y[w];F=se({},v,{params:f(y)}),B.params=f(B.params)}const V=t.resolve(F,B),te=v.hash||"";V.params=a(p(V.params));const d=Ff(r,se({},v,{hash:xf(te),path:V.path})),h=s.createHref(d);return se({fullPath:d,hash:te,query:r===Xo?Xf(v.query):v.query||{}},V,{redirectedFrom:void 0,href:h})}function T(v){return typeof v=="string"?Xr(n,v,c.value.path):se({},v)}function N(v,B){if(u!==v)return sn(he.NAVIGATION_CANCELLED,{from:B,to:v})}function x(v){return H(v)}function U(v){return x(se(T(v),{replace:!0}))}function G(v,B){const F=v.matched[v.matched.length-1];if(F&&F.redirect){const{redirect:V}=F;let te=typeof V=="function"?V(v,B):V;return typeof te=="string"&&(te=te.includes("?")||te.includes("#")?te=T(te):{path:te},te.params={}),se({query:v.query,hash:v.hash,params:te.path!=null?{}:v.params},te)}}function H(v,B){const F=u=C(v),V=c.value,te=v.state,d=v.force,h=v.replace===!0,y=G(F,V);if(y)return H(se(T(y),{state:typeof y=="object"?se({},te,y.state):te,force:d,replace:h}),B||F);const w=F;w.redirectedFrom=B;let A;return!d&&Mf(r,V,F)&&(A=sn(he.NAVIGATION_DUPLICATED,{to:w,from:V}),ye(V,V,!0,!1)),(A?Promise.resolve(A):k(w,V)).catch(S=>dt(S)?dt(S,he.NAVIGATION_GUARD_REDIRECT)?S:Qe(S):Z(S,w,V)).then(S=>{if(S){if(dt(S,he.NAVIGATION_GUARD_REDIRECT))return H(se({replace:h},T(S.to),{state:typeof S.to=="object"?se({},te,S.to.state):te,force:d}),B||w)}else S=L(w,V,!0,h,te);return Y(w,V,S),S})}function j(v,B){const F=N(v,B);return F?Promise.reject(F):Promise.resolve()}function O(v){const B=Ke.values().next().value;return B&&typeof B.runWithContext=="function"?B.runWithContext(v):v()}function k(v,B){let F;const[V,te,d]=Yf(v,B);F=Yr(V.reverse(),"beforeRouteLeave",v,B);for(const y of V)y.leaveGuards.forEach(w=>{F.push(Tt(w,v,B))});const h=j.bind(null,v,B);return F.push(h),Ve(F).then(()=>{F=[];for(const y of o.list())F.push(Tt(y,v,B));return F.push(h),Ve(F)}).then(()=>{F=Yr(te,"beforeRouteUpdate",v,B);for(const y of te)y.updateGuards.forEach(w=>{F.push(Tt(w,v,B))});return F.push(h),Ve(F)}).then(()=>{F=[];for(const y of d)if(y.beforeEnter)if(Je(y.beforeEnter))for(const w of y.beforeEnter)F.push(Tt(w,v,B));else F.push(Tt(y.beforeEnter,v,B));return F.push(h),Ve(F)}).then(()=>(v.matched.forEach(y=>y.enterCallbacks={}),F=Yr(d,"beforeRouteEnter",v,B,O),F.push(h),Ve(F))).then(()=>{F=[];for(const y of i.list())F.push(Tt(y,v,B));return F.push(h),Ve(F)}).catch(y=>dt(y,he.NAVIGATION_CANCELLED)?y:Promise.reject(y))}function Y(v,B,F){l.list().forEach(V=>O(()=>V(v,B,F)))}function L(v,B,F,V,te){const d=N(v,B);if(d)return d;const h=B===vt,y=Qt?history.state:{};F&&(V||h?s.replace(v.fullPath,se({scroll:h&&y&&y.scroll},te)):s.push(v.fullPath,te)),c.value=v,ye(v,B,F,h),Qe()}let Q;function le(){Q||(Q=s.listen((v,B,F)=>{if(!Ze.listening)return;const V=C(v),te=G(V,Ze.currentRoute.value);if(te){H(se(te,{replace:!0,force:!0}),V).catch(An);return}u=V;const d=c.value;Qt&&qf(Jo(d.fullPath,F.delta),xr()),k(V,d).catch(h=>dt(h,he.NAVIGATION_ABORTED|he.NAVIGATION_CANCELLED)?h:dt(h,he.NAVIGATION_GUARD_REDIRECT)?(H(se(T(h.to),{force:!0}),V).then(y=>{dt(y,he.NAVIGATION_ABORTED|he.NAVIGATION_DUPLICATED)&&!F.delta&&F.type===ys.pop&&s.go(-1,!1)}).catch(An),Promise.reject()):(F.delta&&s.go(-F.delta,!1),Z(h,V,d))).then(h=>{h=h||L(V,d,!1),h&&(F.delta&&!dt(h,he.NAVIGATION_CANCELLED)?s.go(-F.delta,!1):F.type===ys.pop&&dt(h,he.NAVIGATION_ABORTED|he.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),Y(V,d,h)}).catch(An)}))}let _e=dn(),ee=dn(),z;function Z(v,B,F){Qe(v);const V=ee.list();return V.length?V.forEach(te=>te(v,B,F)):console.error(v),Promise.reject(v)}function ke(){return z&&c.value!==vt?Promise.resolve():new Promise((v,B)=>{_e.add([v,B])})}function Qe(v){return z||(z=!v,le(),_e.list().forEach(([B,F])=>v?F(v):B()),_e.reset()),v}function ye(v,B,F,V){const{scrollBehavior:te}=e;if(!Qt||!te)return Promise.resolve();const d=!F&&Kf(Jo(v.fullPath,0))||(V||!F)&&history.state&&history.state.scroll||null;return Bs().then(()=>te(v,B,d)).then(h=>h&&$f(h)).catch(h=>Z(h,v,B))}const me=v=>s.go(v);let Ye;const Ke=new Set,Ze={currentRoute:c,listening:!0,addRoute:m,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:E,getRoutes:_,resolve:C,options:e,push:x,replace:U,go:me,back:()=>me(-1),forward:()=>me(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:ee.add,isReady:ke,install(v){v.component("RouterLink",Ed),v.component("RouterView",lc),v.config.globalProperties.$router=Ze,Object.defineProperty(v.config.globalProperties,"$route",{enumerable:!0,get:()=>Pt(c)}),Qt&&!Ye&&c.value===vt&&(Ye=!0,x(s.location).catch(V=>{}));const B={};for(const V in vt)Object.defineProperty(B,V,{get:()=>c.value[V],enumerable:!0});v.provide(Pr,Ze),v.provide(Gs,Qi(B)),v.provide(_s,c);const F=v.unmount;Ke.add(v),v.unmount=function(){Ke.delete(v),Ke.size<1&&(u=vt,Q&&Q(),Q=null,c.value=vt,Ye=!1,z=!1),F()}}};function Ve(v){return v.reduce((B,F)=>B.then(()=>O(F)),Promise.resolve())}return Ze}function pp(){return qe(Pr)}function mp(e){return qe(Gs)}function cc(e,t){return function(){return e.apply(t,arguments)}}const{toString:Rd}=Object.prototype,{getPrototypeOf:zs}=Object,{iterator:Nr,toStringTag:ac}=Symbol,Ir=(e=>t=>{const n=Rd.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Xe=e=>(e=e.toLowerCase(),t=>Ir(t)===e),Lr=e=>t=>typeof t===e,{isArray:ln}=Array,on=Lr("undefined");function Un(e){return e!==null&&!on(e)&&e.constructor!==null&&!on(e.constructor)&&Fe(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const uc=Xe("ArrayBuffer");function Cd(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&uc(e.buffer),t}const Od=Lr("string"),Fe=Lr("function"),fc=Lr("number"),jn=e=>e!==null&&typeof e=="object",Td=e=>e===!0||e===!1,tr=e=>{if(Ir(e)!=="object")return!1;const t=zs(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(ac in e)&&!(Nr in e)},xd=e=>{if(!jn(e)||Un(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},Pd=Xe("Date"),Nd=Xe("File"),Id=Xe("Blob"),Ld=Xe("FileList"),Dd=e=>jn(e)&&Fe(e.pipe),Fd=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Fe(e.append)&&((t=Ir(e))==="formdata"||t==="object"&&Fe(e.toString)&&e.toString()==="[object FormData]"))},Md=Xe("URLSearchParams"),[Bd,Ud,jd,Hd]=["ReadableStream","Request","Response","Headers"].map(Xe),kd=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Hn(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),ln(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const Ht=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,hc=e=>!on(e)&&e!==Ht;function Es(){const{caseless:e,skipUndefined:t}=hc(this)&&this||{},n={},r=(s,o)=>{const i=e&&dc(n,o)||o;tr(n[i])&&tr(s)?n[i]=Es(n[i],s):tr(s)?n[i]=Es({},s):ln(s)?n[i]=s.slice():(!t||!on(s))&&(n[i]=s)};for(let s=0,o=arguments.length;s(Hn(t,(s,o)=>{n&&Fe(s)?e[o]=cc(s,n):e[o]=s},{allOwnKeys:r}),e),$d=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),qd=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},Kd=(e,t,n,r)=>{let s,o,i;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&zs(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},Wd=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},Gd=e=>{if(!e)return null;if(ln(e))return e;let t=e.length;if(!fc(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},zd=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&zs(Uint8Array)),Jd=(e,t)=>{const r=(e&&e[Nr]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},Xd=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},Qd=Xe("HTMLFormElement"),Yd=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),ci=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Zd=Xe("RegExp"),pc=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Hn(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},eh=e=>{pc(e,(t,n)=>{if(Fe(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Fe(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},th=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return ln(e)?r(e):r(String(e).split(t)),n},nh=()=>{},rh=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function sh(e){return!!(e&&Fe(e.append)&&e[ac]==="FormData"&&e[Nr])}const oh=e=>{const t=new Array(10),n=(r,s)=>{if(jn(r)){if(t.indexOf(r)>=0)return;if(Un(r))return r;if(!("toJSON"in r)){t[s]=r;const o=ln(r)?[]:{};return Hn(r,(i,l)=>{const c=n(i,s+1);!on(c)&&(o[l]=c)}),t[s]=void 0,o}}return r};return n(e,0)},ih=Xe("AsyncFunction"),lh=e=>e&&(jn(e)||Fe(e))&&Fe(e.then)&&Fe(e.catch),mc=((e,t)=>e?setImmediate:t?((n,r)=>(Ht.addEventListener("message",({source:s,data:o})=>{s===Ht&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),Ht.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Fe(Ht.postMessage)),ch=typeof queueMicrotask<"u"?queueMicrotask.bind(Ht):typeof process<"u"&&process.nextTick||mc,ah=e=>e!=null&&Fe(e[Nr]),b={isArray:ln,isArrayBuffer:uc,isBuffer:Un,isFormData:Fd,isArrayBufferView:Cd,isString:Od,isNumber:fc,isBoolean:Td,isObject:jn,isPlainObject:tr,isEmptyObject:xd,isReadableStream:Bd,isRequest:Ud,isResponse:jd,isHeaders:Hd,isUndefined:on,isDate:Pd,isFile:Nd,isBlob:Id,isRegExp:Zd,isFunction:Fe,isStream:Dd,isURLSearchParams:Md,isTypedArray:zd,isFileList:Ld,forEach:Hn,merge:Es,extend:Vd,trim:kd,stripBOM:$d,inherits:qd,toFlatObject:Kd,kindOf:Ir,kindOfTest:Xe,endsWith:Wd,toArray:Gd,forEachEntry:Jd,matchAll:Xd,isHTMLForm:Qd,hasOwnProperty:ci,hasOwnProp:ci,reduceDescriptors:pc,freezeMethods:eh,toObjectSet:th,toCamelCase:Yd,noop:nh,toFiniteNumber:rh,findKey:dc,global:Ht,isContextDefined:hc,isSpecCompliantForm:sh,toJSONObject:oh,isAsyncFn:ih,isThenable:lh,setImmediate:mc,asap:ch,isIterable:ah};function X(e,t,n,r,s){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),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}b.inherits(X,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 gc=X.prototype,yc={};["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=>{yc[e]={value:e}});Object.defineProperties(X,yc);Object.defineProperty(gc,"isAxiosError",{value:!0});X.from=(e,t,n,r,s,o)=>{const i=Object.create(gc);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 X.call(i,l,c,n,r,s),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 uh=null;function ws(e){return b.isPlainObject(e)||b.isArray(e)}function bc(e){return b.endsWith(e,"[]")?e.slice(0,-2):e}function ai(e,t,n){return e?e.concat(t).map(function(s,o){return s=bc(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function fh(e){return b.isArray(e)&&!e.some(ws)}const dh=b.toFlatObject(b,{},null,function(t){return/^is[A-Z]/.test(t)});function Dr(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(_,E){return!b.isUndefined(E[_])});const r=n.metaTokens,s=n.visitor||a,o=n.dots,i=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&b.isSpecCompliantForm(t);if(!b.isFunction(s))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 X("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,_,E){let C=g;if(g&&!E&&typeof g=="object"){if(b.endsWith(_,"{}"))_=r?_:_.slice(0,-2),g=JSON.stringify(g);else if(b.isArray(g)&&fh(g)||(b.isFileList(g)||b.endsWith(_,"[]"))&&(C=b.toArray(g)))return _=bc(_),C.forEach(function(N,x){!(b.isUndefined(N)||N===null)&&t.append(i===!0?ai([_],x,o):i===null?_:_+"[]",u(N))}),!1}return ws(g)?!0:(t.append(ai(E,_,o),u(g)),!1)}const f=[],p=Object.assign(dh,{defaultVisitor:a,convertValue:u,isVisitable:ws});function m(g,_){if(!b.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+_.join("."));f.push(g),b.forEach(g,function(C,T){(!(b.isUndefined(C)||C===null)&&s.call(t,C,b.isString(T)?T.trim():T,_,p))===!0&&m(C,_?_.concat(T):[T])}),f.pop()}}if(!b.isObject(e))throw new TypeError("data must be an object");return m(e),t}function ui(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Js(e,t){this._pairs=[],e&&Dr(e,this,t)}const _c=Js.prototype;_c.append=function(t,n){this._pairs.push([t,n])};_c.toString=function(t){const n=t?function(r){return t.call(this,r,ui)}:ui;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function hh(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Ec(e,t,n){if(!t)return e;const r=n&&n.encode||hh;b.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=b.isURLSearchParams(t)?t.toString():new Js(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class fi{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.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(r){r!==null&&t(r)})}}const wc={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},ph=typeof URLSearchParams<"u"?URLSearchParams:Js,mh=typeof FormData<"u"?FormData:null,gh=typeof Blob<"u"?Blob:null,yh={isBrowser:!0,classes:{URLSearchParams:ph,FormData:mh,Blob:gh},protocols:["http","https","file","blob","url","data"]},Xs=typeof window<"u"&&typeof document<"u",Ss=typeof navigator=="object"&&navigator||void 0,bh=Xs&&(!Ss||["ReactNative","NativeScript","NS"].indexOf(Ss.product)<0),_h=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Eh=Xs&&window.location.href||"http://localhost",wh=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Xs,hasStandardBrowserEnv:bh,hasStandardBrowserWebWorkerEnv:_h,navigator:Ss,origin:Eh},Symbol.toStringTag,{value:"Module"})),Ae={...wh,...yh};function Sh(e,t){return Dr(e,new Ae.classes.URLSearchParams,{visitor:function(n,r,s,o){return Ae.isNode&&b.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function vh(e){return b.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Ah(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&b.isArray(s)?s.length:i,c?(b.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!l):((!s[i]||!b.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&b.isArray(s[i])&&(s[i]=Ah(s[i])),!l)}if(b.isFormData(e)&&b.isFunction(e.entries)){const n={};return b.forEachEntry(e,(r,s)=>{t(vh(r),s,n,0)}),n}return null}function Rh(e,t,n){if(b.isString(e))try{return(t||JSON.parse)(e),b.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const kn={transitional:wc,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=b.isObject(t);if(o&&b.isHTMLForm(t)&&(t=new FormData(t)),b.isFormData(t))return s?JSON.stringify(Sc(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(r.indexOf("application/x-www-form-urlencoded")>-1)return Sh(t,this.formSerializer).toString();if((l=b.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return Dr(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),Rh(t)):t}],transformResponse:[function(t){const n=this.transitional||kn.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(b.isResponse(t)||b.isReadableStream(t))return t;if(t&&b.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(i)throw l.name==="SyntaxError"?X.from(l,X.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:Ae.classes.FormData,Blob:Ae.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=>{kn.headers[e]={}});const Ch=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"]),Oh=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&Ch[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},di=Symbol("internals");function hn(e){return e&&String(e).trim().toLowerCase()}function nr(e){return e===!1||e==null?e:b.isArray(e)?e.map(nr):String(e)}function Th(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const xh=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Zr(e,t,n,r,s){if(b.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!b.isString(t)){if(b.isString(r))return t.indexOf(r)!==-1;if(b.isRegExp(r))return r.test(t)}}function Ph(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Nh(e,t){const n=b.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let Me=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(l,c,u){const a=hn(c);if(!a)throw new Error("header name must be a non-empty string");const f=b.findKey(s,a);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||c]=nr(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())&&!xh(t))i(Oh(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,r);return this}get(t,n){if(t=hn(t),t){const r=b.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return Th(s);if(b.isFunction(n))return n.call(this,s,r);if(b.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=hn(t),t){const r=b.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Zr(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=hn(i),i){const l=b.findKey(r,i);l&&(!n||Zr(r,r[l],l,n))&&(delete r[l],s=!0)}}return b.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||Zr(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return b.forEach(this,(s,o)=>{const i=b.findKey(r,o);if(i){n[i]=nr(s),delete n[o];return}const l=t?Ph(o):String(o).trim();l!==o&&delete n[o],n[l]=nr(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return b.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&b.isArray(r)?r.join(", "):r)}),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 r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[di]=this[di]={accessors:{}}).accessors,s=this.prototype;function o(i){const l=hn(i);r[l]||(Nh(s,i),r[l]=!0)}return b.isArray(t)?t.forEach(o):o(t),this}};Me.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);b.reduceDescriptors(Me.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});b.freezeMethods(Me);function es(e,t){const n=this||kn,r=t||n,s=Me.from(r.headers);let o=r.data;return b.forEach(e,function(l){o=l.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function vc(e){return!!(e&&e.__CANCEL__)}function cn(e,t,n){X.call(this,e??"canceled",X.ERR_CANCELED,t,n),this.name="CanceledError"}b.inherits(cn,X,{__CANCEL__:!0});function Ac(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new X("Request failed with status code "+n.status,[X.ERR_BAD_REQUEST,X.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function Ih(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function Lh(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),a=r[o];i||(i=u),n[s]=c,r[s]=u;let f=o,p=0;for(;f!==s;)p+=n[f++],f=f%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i{n=a,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const a=Date.now(),f=a-n;f>=r?i(u,a):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-f)))},()=>s&&i(s)]}const pr=(e,t,n=3)=>{let r=0;const s=Lh(50,250);return Dh(o=>{const i=o.loaded,l=o.lengthComputable?o.total:void 0,c=i-r,u=s(c),a=i<=l;r=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)},hi=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},pi=e=>(...t)=>b.asap(()=>e(...t)),Fh=Ae.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Ae.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Ae.origin),Ae.navigator&&/(msie|trident)/i.test(Ae.navigator.userAgent)):()=>!0,Mh=Ae.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];b.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),b.isString(r)&&l.push(`path=${r}`),b.isString(s)&&l.push(`domain=${s}`),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 Bh(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function Uh(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Rc(e,t,n){let r=!Bh(t);return e&&(r||n==!1)?Uh(e,t):t}const mi=e=>e instanceof Me?{...e}:e;function Kt(e,t){t=t||{};const n={};function r(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 s(u,a,f,p){if(b.isUndefined(a)){if(!b.isUndefined(u))return r(void 0,u,f,p)}else return r(u,a,f,p)}function o(u,a){if(!b.isUndefined(a))return r(void 0,a)}function i(u,a){if(b.isUndefined(a)){if(!b.isUndefined(u))return r(void 0,u)}else return r(void 0,a)}function l(u,a,f){if(f in t)return r(u,a);if(f in e)return r(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)=>s(mi(u),mi(a),f,!0)};return b.forEach(Object.keys({...e,...t}),function(a){const f=c[a]||s,p=f(e[a],t[a],a);b.isUndefined(p)&&f!==l||(n[a]=p)}),n}const Cc=e=>{const t=Kt({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:l}=t;if(t.headers=i=Me.from(i),t.url=Ec(Rc(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(Ae.hasStandardBrowserEnv||Ae.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(Ae.hasStandardBrowserEnv&&(r&&b.isFunction(r)&&(r=r(t)),r||r!==!1&&Fh(t.url))){const c=s&&o&&Mh.read(o);c&&i.set(s,c)}return t},jh=typeof XMLHttpRequest<"u",Hh=jh&&function(e){return new Promise(function(n,r){const s=Cc(e);let o=s.data;const i=Me.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,a,f,p,m,g;function _(){m&&m(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(a),s.signal&&s.signal.removeEventListener("abort",a)}let E=new XMLHttpRequest;E.open(s.method.toUpperCase(),s.url,!0),E.timeout=s.timeout;function C(){if(!E)return;const N=Me.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),U={data:!l||l==="text"||l==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:N,config:e,request:E};Ac(function(H){n(H),_()},function(H){r(H),_()},U),E=null}"onloadend"in E?E.onloadend=C:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.indexOf("file:")===0)||setTimeout(C)},E.onabort=function(){E&&(r(new X("Request aborted",X.ECONNABORTED,e,E)),E=null)},E.onerror=function(x){const U=x&&x.message?x.message:"Network Error",G=new X(U,X.ERR_NETWORK,e,E);G.event=x||null,r(G),E=null},E.ontimeout=function(){let x=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const U=s.transitional||wc;s.timeoutErrorMessage&&(x=s.timeoutErrorMessage),r(new X(x,U.clarifyTimeoutError?X.ETIMEDOUT:X.ECONNABORTED,e,E)),E=null},o===void 0&&i.setContentType(null),"setRequestHeader"in E&&b.forEach(i.toJSON(),function(x,U){E.setRequestHeader(U,x)}),b.isUndefined(s.withCredentials)||(E.withCredentials=!!s.withCredentials),l&&l!=="json"&&(E.responseType=s.responseType),u&&([p,g]=pr(u,!0),E.addEventListener("progress",p)),c&&E.upload&&([f,m]=pr(c),E.upload.addEventListener("progress",f),E.upload.addEventListener("loadend",m)),(s.cancelToken||s.signal)&&(a=N=>{E&&(r(!N||N.type?new cn(null,e,E):N),E.abort(),E=null)},s.cancelToken&&s.cancelToken.subscribe(a),s.signal&&(s.signal.aborted?a():s.signal.addEventListener("abort",a)));const T=Ih(s.url);if(T&&Ae.protocols.indexOf(T)===-1){r(new X("Unsupported protocol "+T+":",X.ERR_BAD_REQUEST,e));return}E.send(o||null)})},kh=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,l();const a=u instanceof Error?u:this.reason;r.abort(a instanceof X?a:new cn(a instanceof Error?a.message:a))}};let i=t&&setTimeout(()=>{i=null,o(new X(`timeout ${t} of ms exceeded`,X.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}=r;return c.unsubscribe=()=>b.asap(l),c}},Vh=function*(e,t){let n=e.byteLength;if(n{const s=$h(e,t);let o=0,i,l=c=>{i||(i=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:a}=await s.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),s.return()}},{highWaterMark:2})},yi=64*1024,{isFunction:Gn}=b,Kh=(({Request:e,Response:t})=>({Request:e,Response:t}))(b.global),{ReadableStream:bi,TextEncoder:_i}=b.global,Ei=(e,...t)=>{try{return!!e(...t)}catch{return!1}},Wh=e=>{e=b.merge.call({skipUndefined:!0},Kh,e);const{fetch:t,Request:n,Response:r}=e,s=t?Gn(t):typeof fetch=="function",o=Gn(n),i=Gn(r);if(!s)return!1;const l=s&&Gn(bi),c=s&&(typeof _i=="function"?(g=>_=>g.encode(_))(new _i):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=o&&l&&Ei(()=>{let g=!1;const _=new n(Ae.origin,{body:new bi,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!_}),a=i&&l&&Ei(()=>b.isReadableStream(new r("").body)),f={stream:a&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(_,E)=>{let C=_&&_[g];if(C)return C.call(_);throw new X(`Response type '${g}' is not supported`,X.ERR_NOT_SUPPORT,E)})});const p=async g=>{if(g==null)return 0;if(b.isBlob(g))return g.size;if(b.isSpecCompliantForm(g))return(await new n(Ae.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},m=async(g,_)=>{const E=b.toFiniteNumber(g.getContentLength());return E??p(_)};return async g=>{let{url:_,method:E,data:C,signal:T,cancelToken:N,timeout:x,onDownloadProgress:U,onUploadProgress:G,responseType:H,headers:j,withCredentials:O="same-origin",fetchOptions:k}=Cc(g),Y=t||fetch;H=H?(H+"").toLowerCase():"text";let L=kh([T,N&&N.toAbortSignal()],x),Q=null;const le=L&&L.unsubscribe&&(()=>{L.unsubscribe()});let _e;try{if(G&&u&&E!=="get"&&E!=="head"&&(_e=await m(j,C))!==0){let ye=new n(_,{method:"POST",body:C,duplex:"half"}),me;if(b.isFormData(C)&&(me=ye.headers.get("content-type"))&&j.setContentType(me),ye.body){const[Ye,Ke]=hi(_e,pr(pi(G)));C=gi(ye.body,yi,Ye,Ke)}}b.isString(O)||(O=O?"include":"omit");const ee=o&&"credentials"in n.prototype,z={...k,signal:L,method:E.toUpperCase(),headers:j.normalize().toJSON(),body:C,duplex:"half",credentials:ee?O:void 0};Q=o&&new n(_,z);let Z=await(o?Y(Q,k):Y(_,z));const ke=a&&(H==="stream"||H==="response");if(a&&(U||ke&&le)){const ye={};["status","statusText","headers"].forEach(Ze=>{ye[Ze]=Z[Ze]});const me=b.toFiniteNumber(Z.headers.get("content-length")),[Ye,Ke]=U&&hi(me,pr(pi(U),!0))||[];Z=new r(gi(Z.body,yi,Ye,()=>{Ke&&Ke(),le&&le()}),ye)}H=H||"text";let Qe=await f[b.findKey(f,H)||"text"](Z,g);return!ke&&le&&le(),await new Promise((ye,me)=>{Ac(ye,me,{data:Qe,headers:Me.from(Z.headers),status:Z.status,statusText:Z.statusText,config:g,request:Q})})}catch(ee){throw le&&le(),ee&&ee.name==="TypeError"&&/Load failed|fetch/i.test(ee.message)?Object.assign(new X("Network Error",X.ERR_NETWORK,g,Q),{cause:ee.cause||ee}):X.from(ee,ee&&ee.code,g,Q)}}},Gh=new Map,Oc=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,l=i,c,u,a=Gh;for(;l--;)c=o[l],u=a.get(c),u===void 0&&a.set(c,u=l?new Map:Wh(t)),a=u;return u};Oc();const Qs={http:uh,xhr:Hh,fetch:{get:Oc}};b.forEach(Qs,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const wi=e=>`- ${e}`,zh=e=>b.isFunction(e)||e===null||e===!1;function Jh(e,t){e=b.isArray(e)?e:[e];const{length:n}=e;let r,s;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(wi).join(` +`):" "+wi(i[0]):"as no adapter specified";throw new X("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const Tc={getAdapter:Jh,adapters:Qs};function ts(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new cn(null,e)}function Si(e){return ts(e),e.headers=Me.from(e.headers),e.data=es.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Tc.getAdapter(e.adapter||kn.adapter,e)(e).then(function(r){return ts(e),r.data=es.call(e,e.transformResponse,r),r.headers=Me.from(r.headers),r},function(r){return vc(r)||(ts(e),r&&r.response&&(r.response.data=es.call(e,e.transformResponse,r.response),r.response.headers=Me.from(r.response.headers))),Promise.reject(r)})}const xc="1.13.2",Fr={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Fr[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const vi={};Fr.transitional=function(t,n,r){function s(o,i){return"[Axios v"+xc+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,l)=>{if(t===!1)throw new X(s(i," has been removed"+(n?" in "+n:"")),X.ERR_DEPRECATED);return n&&!vi[i]&&(vi[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,l):!0}};Fr.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function Xh(e,t,n){if(typeof e!="object")throw new X("options must be an object",X.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const l=e[o],c=l===void 0||i(l,o,e);if(c!==!0)throw new X("option "+o+" must be "+c,X.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new X("Unknown option "+o,X.ERR_BAD_OPTION)}}const rr={assertOptions:Xh,validators:Fr},ot=rr.validators;let qt=class{constructor(t){this.defaults=t||{},this.interceptors={request:new fi,response:new fi}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Kt(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&rr.assertOptions(r,{silentJSONParsing:ot.transitional(ot.boolean),forcedJSONParsing:ot.transitional(ot.boolean),clarifyTimeoutError:ot.transitional(ot.boolean)},!1),s!=null&&(b.isFunction(s)?n.paramsSerializer={serialize:s}:rr.assertOptions(s,{encode:ot.function,serialize:ot.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),rr.assertOptions(n,{baseUrl:ot.spelling("baseURL"),withXsrfToken:ot.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=Me.concat(i,o);const l=[];let c=!0;this.interceptors.request.forEach(function(_){typeof _.runWhen=="function"&&_.runWhen(n)===!1||(c=c&&_.synchronous,l.unshift(_.fulfilled,_.rejected))});const u=[];this.interceptors.response.forEach(function(_){u.push(_.fulfilled,_.rejected)});let a,f=0,p;if(!c){const g=[Si.bind(this),void 0];for(g.unshift(...l),g.push(...u),p=g.length,a=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(l=>{r.subscribe(l),o=l}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,l){r.reason||(r.reason=new cn(o,i,l),n(r.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=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new Pc(function(s){t=s}),cancel:t}}};function Yh(e){return function(n){return e.apply(null,n)}}function Zh(e){return b.isObject(e)&&e.isAxiosError===!0}const vs={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(vs).forEach(([e,t])=>{vs[t]=e});function Nc(e){const t=new qt(e),n=cc(qt.prototype.request,t);return b.extend(n,qt.prototype,t,{allOwnKeys:!0}),b.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return Nc(Kt(e,s))},n}const ge=Nc(kn);ge.Axios=qt;ge.CanceledError=cn;ge.CancelToken=Qh;ge.isCancel=vc;ge.VERSION=xc;ge.toFormData=Dr;ge.AxiosError=X;ge.Cancel=ge.CanceledError;ge.all=function(t){return Promise.all(t)};ge.spread=Yh;ge.isAxiosError=Zh;ge.mergeConfig=Kt;ge.AxiosHeaders=Me;ge.formToJSON=e=>Sc(b.isHTMLForm(e)?new FormData(e):e);ge.getAdapter=Tc.getAdapter;ge.HttpStatusCode=vs;ge.default=ge;const{Axios:bp,AxiosError:_p,CanceledError:Ep,isCancel:wp,CancelToken:Sp,VERSION:vp,all:Ap,Cancel:Rp,isAxiosError:Cp,spread:Op,toFormData:Tp,AxiosHeaders:xp,HttpStatusCode:Pp,formToJSON:Np,getAdapter:Ip,mergeConfig:Lp}=ge,Rn=ge.create({baseURL:"",timeout:3e4,withCredentials:!0});Rn.interceptors.request.use(e=>e,e=>Promise.reject(e));Rn.interceptors.response.use(e=>e.data,e=>{e.response?.status===401&&(window.location.hash="#/login");const t=e.response?.data?e.response.data.detail||e.response.data.message:e.message;return Promise.reject(new Error(t||"请求失败"))});const zn={login:e=>{const t=new URLSearchParams;return t.append("admin_key",e.password),Rn.post("/login",t,{headers:{"Content-Type":"application/x-www-form-urlencoded"}})},logout:()=>Rn.post("/logout"),checkAuth:()=>Rn.get("/admin/health")},ep=gf("auth",()=>{const e=Vt(!1),t=Vt(!1),n=Vt(0),r=1e4;let s=null;async function o(c){t.value=!0;try{return await zn.login({password:c}),await zn.checkAuth(),e.value=!0,n.value=Date.now(),!0}catch(u){throw e.value=!1,u}finally{t.value=!1}}async function i(){try{await zn.logout()}finally{e.value=!1,n.value=0}}async function l(){const c=Date.now();if(e.value&&c-n.value(await zn.checkAuth(),e.value=!0,!0))(),await s}catch{return e.value=!1,!1}finally{n.value=Date.now(),s=null}}return{isLoggedIn:e,isLoading:t,login:o,logout:i,checkAuth:l}}),Ic=Ad({history:rd("/"),routes:[{path:"/public/uptime",name:"public-uptime",component:()=>st(()=>import("./PublicUptime-B_51BvN0.js"),__vite__mapDeps([0,1])),meta:{requiresAuth:!1}},{path:"/public/logs",name:"public-logs",component:()=>st(()=>import("./PublicLogs-CduW61ag.js"),[]),meta:{requiresAuth:!1}},{path:"/login",name:"login",component:()=>st(()=>import("./Login-QXFnWZFu.js"),[]),meta:{requiresAuth:!1}},{path:"/",component:()=>st(()=>import("./AppShell-B58juTD2.js"),__vite__mapDeps([2,3,4,5])),meta:{requiresAuth:!0},children:[{path:"",name:"dashboard",component:()=>st(()=>import("./Dashboard-XppL6qxe.js"),__vite__mapDeps([6,7]))},{path:"accounts",name:"accounts",component:()=>st(()=>import("./Accounts-BWmfQ8Fj.js"),__vite__mapDeps([8,9,10,4,5,7]))},{path:"settings",name:"settings",component:()=>st(()=>import("./Settings-BRCUddT6.js"),__vite__mapDeps([11,3,9,10,7]))},{path:"logs",name:"logs",component:()=>st(()=>import("./Logs-BDiYR69g.js"),__vite__mapDeps([12,9,4]))},{path:"monitor",name:"monitor",component:()=>st(()=>import("./Monitor-CUrWDeEd.js"),__vite__mapDeps([13,1]))},{path:"docs",name:"docs",component:()=>st(()=>import("./Docs-DprmgrMq.js"),[])}]}]});Ic.beforeEach(async e=>{const t=ep();if(e.meta.requiresAuth&&!await t.checkAuth())return{name:"login"};if(e.name==="login"&&t.isLoggedIn)return{name:"dashboard"}});const tp=js({__name:"App",setup(e){return(t,n)=>(ur(),dr(Pt(lc)))}}),Ys=lf(tp),np=uf();Ys.use(np);Ys.use(Ic);Ys.mount("#app");export{bn as A,cp as B,lc as C,gf as D,hp as E,De as F,Bs as G,ip as H,Fn as I,Ed as R,up as T,Hl as a,ap as b,lp as c,js as d,ur as e,Eu as f,Rn as g,Vt as h,Ue as i,El as j,Ts as k,ep as l,dr as m,xs as n,_l as o,rp as p,Ne as q,op as r,Ra as s,qc as t,Pt as u,fp as v,dp as w,sp as x,pp as y,mp as z}; diff --git a/static/assets/index-DLPbmTha.css b/static/assets/index-DLPbmTha.css new file mode 100644 index 0000000000000000000000000000000000000000..0c12039b941a6548ee985177be4e1b2f21d64cc2 --- /dev/null +++ b/static/assets/index-DLPbmTha.css @@ -0,0 +1 @@ +@import"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=Noto+Serif+SC:wght@600;700&display=swap";*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 97%;--foreground: 0 0% 10%;--card: 0 0% 100%;--card-foreground: 0 0% 10%;--primary: 0 0% 10%;--primary-foreground: 0 0% 100%;--secondary: 0 0% 92%;--secondary-foreground: 0 0% 10%;--muted: 0 0% 92%;--muted-foreground: 0 0% 40%;--accent: 0 0% 90%;--accent-foreground: 0 0% 10%;--destructive: 0 70% 45%;--destructive-foreground: 0 0% 100%;--border: 0 0% 86%;--input: 0 0% 86%;--ring: 0 0% 10%;--radius: 1rem}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:Noto Sans SC,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;overflow-x:hidden;background-image:radial-gradient(900px circle at 10% -20%,rgba(0,0,0,.04),transparent 45%),radial-gradient(700px circle at 90% 0%,rgba(0,0,0,.05),transparent 40%),linear-gradient(180deg,hsl(var(--background)) 0% 100%)}body:before{content:"";position:fixed;inset:0;background-image:linear-gradient(120deg,#ffffff8c,#fff0);opacity:.5;pointer-events:none;z-index:-1}h1,h2,h3{font-family:"Noto Serif SC",Georgia,serif;letter-spacing:-.01em}#app{min-height:100vh}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-y-0{top:0;bottom:0}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.top-full{top:100%}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[9999\]{z-index:9999}.col-span-2{grid-column:span 2 / span 2}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0{height:0px}.h-10{height:2.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-\[80vh\]{height:80vh}.h-full{height:100%}.max-h-\[60vh\]{max-height:60vh}.min-h-0{min-height:0px}.min-h-\[140px\]{min-height:140px}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-10{width:2.5rem}.w-2{width:.5rem}.w-20{width:5rem}.w-24{width:6rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-44{width:11rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[200px\]{min-width:200px}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-not-allowed{cursor:not-allowed}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-1{row-gap:.25rem}.gap-y-2{row-gap:.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.justify-self-end{justify-self:end}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-visible{overflow-y:visible}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[2\.5rem\]{border-radius:2.5rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-x-4{border-left-width:4px;border-right-width:4px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-4{border-top-width:4px}.border-border{border-color:hsl(var(--border))}.border-border\/60{border-color:hsl(var(--border) / .6)}.border-destructive\/30{border-color:hsl(var(--destructive) / .3)}.border-input{border-color:hsl(var(--input))}.border-primary-foreground\/40{border-color:hsl(var(--primary-foreground) / .4)}.border-rose-200{--tw-border-opacity: 1;border-color:rgb(254 205 211 / var(--tw-border-opacity, 1))}.border-x-transparent{border-left-color:transparent;border-right-color:transparent}.border-t-foreground{border-top-color:hsl(var(--foreground))}.bg-accent{background-color:hsl(var(--accent))}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-200{--tw-bg-opacity: 1;background-color:rgb(253 230 138 / var(--tw-bg-opacity, 1))}.bg-amber-300{--tw-bg-opacity: 1;background-color:rgb(252 211 77 / var(--tw-bg-opacity, 1))}.bg-amber-400{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-black\/20{background-color:#0003}.bg-black\/30{background-color:#0000004d}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-card{background-color:hsl(var(--card))}.bg-card\/70{background-color:hsl(var(--card) / .7)}.bg-card\/90{background-color:hsl(var(--card) / .9)}.bg-cyan-100{--tw-bg-opacity: 1;background-color:rgb(207 250 254 / var(--tw-bg-opacity, 1))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-400{--tw-bg-opacity: 1;background-color:rgb(52 211 153 / var(--tw-bg-opacity, 1))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground{background-color:hsl(var(--muted-foreground))}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/70{background-color:hsl(var(--muted) / .7)}.bg-primary{background-color:hsl(var(--primary))}.bg-primary-foreground\/15{background-color:hsl(var(--primary-foreground) / .15)}.bg-rose-100{--tw-bg-opacity: 1;background-color:rgb(255 228 230 / var(--tw-bg-opacity, 1))}.bg-rose-50{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.bg-rose-500{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity, 1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/30{background-color:hsl(var(--secondary) / .3)}.bg-secondary\/40{background-color:hsl(var(--secondary) / .4)}.bg-secondary\/50{background-color:hsl(var(--secondary) / .5)}.bg-secondary\/60{background-color:hsl(var(--secondary) / .6)}.bg-sky-400{--tw-bg-opacity: 1;background-color:rgb(56 189 248 / var(--tw-bg-opacity, 1))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-violet-100{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.object-contain{-o-object-fit:contain;object-fit:contain}.p-1{padding:.25rem}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-10{padding-bottom:2.5rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pl-3{padding-left:.75rem}.pr-1{padding-right:.25rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.tracking-\[0\.12em\]{letter-spacing:.12em}.tracking-\[0\.28em\]{letter-spacing:.28em}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-\[0\.3em\]{letter-spacing:.3em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-background{color:hsl(var(--background))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-cyan-700{--tw-text-opacity: 1;color:rgb(14 116 144 / var(--tw-text-opacity, 1))}.text-destructive{color:hsl(var(--destructive))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-violet-700{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.opacity-0{opacity:0}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-black\/10{--tw-shadow-color: rgb(0 0 0 / .1);--tw-shadow: var(--tw-shadow-colored)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,transform\]{transition-property:width,transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-\[transform\]{will-change:transform}html{scrollbar-gutter:stable}*{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.35) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:#00000059;border-radius:999px;border:2px solid transparent;background-clip:content-box}.scrollbar-slim::-webkit-scrollbar{width:6px;height:6px}.scrollbar-slim::-webkit-scrollbar-thumb{background-color:#0006}.cv-auto{content-visibility:auto;contain-intrinsic-size:0 44px}.monitor-badge--up{background:#d1fae5;color:#065f46}.monitor-badge--warn{background:#fef3c7;color:#b45309}.monitor-badge--down{background:#fee2e2;color:#991b1b}.monitor-badge--unknown{background:#f3f4f6;color:#6b7280}.monitor-card{border-radius:16px;padding:0;background:hsl(var(--card));box-shadow:none}.monitor-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.monitor-card__name{font-size:14px;font-weight:600;color:hsl(var(--foreground))}.monitor-card__badge{padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600}.monitor-card__stats{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:hsl(var(--muted-foreground));margin-bottom:12px}.monitor-card__value{margin-left:4px;color:hsl(var(--foreground));font-weight:600}.monitor-card__beats{display:flex;gap:2px;height:24px;align-items:flex-end}.monitor-beat{flex:1;min-width:4px;max-width:8px;border-radius:2px;transition:all .2s;position:relative}.monitor-beat:hover{opacity:.8;transform:scaleY(1.1)}.monitor-beat--up{background:#34c759;height:100%}.monitor-beat--warn,.monitor-beat--slow{background:#f5c15b;height:100%}.monitor-beat--down{background:#ff3b30;height:100%}.monitor-beat--empty{background:#e5e5ea;height:40%}.monitor-beat__tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#1d1d1f;color:#fff;padding:6px 10px;border-radius:6px;font-size:11px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;margin-bottom:6px;z-index:10}.monitor-beat__tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#1d1d1f}.monitor-beat:hover .monitor-beat__tooltip{opacity:1}.help-dot{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:999px;border:1px solid hsl(var(--border));font-size:10px;line-height:1;color:hsl(var(--muted-foreground));cursor:default}@media(max-width:768px){.monitor-beat{min-width:3px;max-width:6px}}@media(min-width:1024px){.dashboard-split{flex-direction:row;flex-wrap:nowrap}.dashboard-split .dashboard-main{flex:0 0 66.6667%;max-width:66.6667%}.dashboard-split .dashboard-side{flex:0 0 33.3333%;max-width:33.3333%}}@keyframes logo-float{0%{transform:translateY(0)}25%{transform:translateY(6px)}50%{transform:translateY(0)}75%{transform:translateY(-6px)}to{transform:translateY(0)}}@keyframes logo-blink{0%,45%,55%,to{transform:scaleY(1);opacity:1}50%{transform:scaleY(.1);opacity:.6}}.logo-mark .logo-cat-wrapper{animation:logo-float 4s ease-in-out infinite;transform-origin:center}.logo-mark{transform:translateY(2px)}.logo-mark .logo-eye{fill:#00bcd4;filter:drop-shadow(0 0 2px #00bcd4);animation:logo-blink 5s infinite;transform-box:fill-box;transform-origin:center}.hover\:border-destructive:hover{border-color:hsl(var(--destructive))}.hover\:border-destructive\/40:hover{border-color:hsl(var(--destructive) / .4)}.hover\:border-destructive\/60:hover{border-color:hsl(var(--destructive) / .6)}.hover\:border-foreground:hover{border-color:hsl(var(--foreground))}.hover\:border-primary:hover{border-color:hsl(var(--primary))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/10:hover{background-color:hsl(var(--destructive) / .1)}.hover\:bg-secondary\/60:hover{background-color:hsl(var(--secondary) / .6)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-emerald-500:hover{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:opacity-90:hover{opacity:.9}.focus\:border-transparent:focus{border-color:transparent}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:text-accent-foreground{color:hsl(var(--accent-foreground))}.group:hover .group-hover\:opacity-100{opacity:1}.peer:checked~.peer-checked\:border-foreground{border-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:bg-foreground{background-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.peer:disabled~.peer-disabled\:opacity-50{opacity:.5}@media(min-width:640px){.sm\:ml-0{margin-left:0}.sm\:flex{display:flex}.sm\:w-44{width:11rem}.sm\:w-48{width:12rem}.sm\:w-auto{width:auto}.sm\:min-w-0{min-width:0px}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:items-center{align-items:center}}@media(min-width:768px){.md\:w-auto{width:auto}.md\:flex-1{flex:1 1 0%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1024px){.lg\:static{position:static}.lg\:sticky{position:sticky}.lg\:top-0{top:0}.lg\:ml-0{margin-left:0}.lg\:hidden{display:none}.lg\:h-20{height:5rem}.lg\:h-64{height:16rem}.lg\:h-72{height:18rem}.lg\:h-screen{height:100vh}.lg\:w-20{width:5rem}.lg\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:border-b-0{border-bottom-width:0px}.lg\:border-r{border-right-width:1px}.lg\:bg-card\/80{background-color:hsl(var(--card) / .8)}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:py-4{padding-top:1rem;padding-bottom:1rem}.lg\:pt-10{padding-top:2.5rem}.lg\:pt-5{padding-top:1.25rem}.lg\:pt-6{padding-top:1.5rem}.lg\:text-2xl{font-size:1.5rem;line-height:2rem}.lg\:backdrop-blur-none{--tw-backdrop-blur: ;-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}}@media(min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}} diff --git a/static/assets/index-DMWZCTlx.js b/static/assets/index-DMWZCTlx.js new file mode 100644 index 0000000000000000000000000000000000000000..3ad191d74091c6782ab66d197a6eee87798480f8 --- /dev/null +++ b/static/assets/index-DMWZCTlx.js @@ -0,0 +1,7 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PublicUptime-Bgmmilh3.js","assets/useUptimeStatus-DtehOXTb.js","assets/AppShell-B0aV7cPb.js","assets/settings-DXLXVT8l.js","assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-C75dpm4L.js","assets/useConfirmDialog-BdcqQTU3.js","assets/Dashboard-BZZ41xtW.js","assets/HelpTip.vue_vue_type_script_setup_true_lang-BgxOFSZZ.js","assets/Accounts-mLu74uIS.js","assets/SelectMenu.vue_vue_type_script_setup_true_lang-R5yoq9NP.js","assets/Checkbox.vue_vue_type_script_setup_true_lang-CsCJog3q.js","assets/Settings-CRDMUKWj.js","assets/Logs-aYm-RnGR.js","assets/Monitor-DY0hrzbH.js"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function us(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const se={},$t=[],ot=()=>{},ni=()=>!1,or=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),fs=e=>e.startsWith("onUpdate:"),Se=Object.assign,ds=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},oc=Object.prototype.hasOwnProperty,ne=(e,t)=>oc.call(e,t),q=Array.isArray,Kt=e=>ir(e)==="[object Map]",ri=e=>ir(e)==="[object Set]",W=e=>typeof e=="function",de=e=>typeof e=="string",yt=e=>typeof e=="symbol",le=e=>e!==null&&typeof e=="object",si=e=>(le(e)||W(e))&&W(e.then)&&W(e.catch),oi=Object.prototype.toString,ir=e=>oi.call(e),ic=e=>ir(e).slice(8,-1),ii=e=>ir(e)==="[object Object]",lr=e=>de(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,cn=us(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),cr=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},lc=/-\w/g,xt=cr(e=>e.replace(lc,t=>t.slice(1).toUpperCase())),cc=/\B([A-Z])/g,jt=cr(e=>e.replace(cc,"-$1").toLowerCase()),li=cr(e=>e.charAt(0).toUpperCase()+e.slice(1)),vr=cr(e=>e?`on${li(e)}`:""),vt=(e,t)=>!Object.is(e,t),Bn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},hs=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let ks;const ar=()=>ks||(ks=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function ps(e){if(q(e)){const t={};for(let n=0;n{if(n){const r=n.split(uc);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function ms(e){let t="";if(de(e))t=e;else if(q(e))for(let n=0;n!!(e&&e.__v_isRef===!0),mc=e=>de(e)?e:e==null?"":q(e)||le(e)&&(e.toString===oi||!W(e.toString))?ui(e)?mc(e.value):JSON.stringify(e,fi,2):String(e),fi=(e,t)=>ui(t)?fi(e,t.value):Kt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[Or(r,o)+" =>"]=s,n),{})}:ri(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Or(n))}:yt(t)?Or(t):le(t)&&!q(t)&&!ii(t)?String(t):t,Or=(e,t="")=>{var n;return yt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let _e;class di{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=_e,!t&&_e&&(this.index=(_e.scopes||(_e.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&&(_e=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if(un){let t=un;for(un=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;an;){let t=an;for(an=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function _i(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function bi(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),_s(r),yc(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function qr(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===bn)||(e.globalVersion=bn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!qr(e))))return;e.flags|=2;const t=e.dep,n=ie,r=$e;ie=e,$e=!0;try{_i(e);const s=e.fn(e._value);(t.version===0||vt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{ie=n,$e=r,bi(e),e.flags&=-3}}function _s(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)_s(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function yc(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 wi=[];function ht(){wi.push($e),$e=!1}function pt(){const e=wi.pop();$e=e===void 0?!0:e}function Vs(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ie;ie=void 0;try{t()}finally{ie=n}}}let bn=0;class _c{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 bs{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!ie||!$e||ie===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ie)n=this.activeLink=new _c(ie,this),ie.deps?(n.prevDep=ie.depsTail,ie.depsTail.nextDep=n,ie.depsTail=n):ie.deps=ie.depsTail=n,Si(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=ie.depsTail,n.nextDep=void 0,ie.depsTail.nextDep=n,ie.depsTail=n,ie.deps===n&&(ie.deps=r)}return n}trigger(t){this.version++,bn++,this.notify(t)}notify(t){gs();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ys()}}}function Si(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Si(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const zn=new WeakMap,Dt=Symbol(""),$r=Symbol(""),En=Symbol("");function be(e,t,n){if($e&&ie){let r=zn.get(e);r||zn.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new bs),s.map=r,s.key=n),s.track()}}function ft(e,t,n,r,s,o){const i=zn.get(e);if(!i){bn++;return}const l=c=>{c&&c.trigger()};if(gs(),t==="clear")i.forEach(l);else{const c=q(e),u=c&&lr(n);if(c&&n==="length"){const a=Number(r);i.forEach((f,p)=>{(p==="length"||p===En||!yt(p)&&p>=a)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(En)),t){case"add":c?u&&l(i.get("length")):(l(i.get(Dt)),Kt(e)&&l(i.get($r)));break;case"delete":c||(l(i.get(Dt)),Kt(e)&&l(i.get($r)));break;case"set":Kt(e)&&l(i.get(Dt));break}}ys()}function bc(e,t){const n=zn.get(e);return n&&n.get(t)}function Bt(e){const t=Z(e);return t===e?t:(be(t,"iterate",En),je(e)?t:t.map(Ke))}function ur(e){return be(e=Z(e),"iterate",En),e}function wt(e,t){return mt(e)?it(e)?zt(Ke(t)):zt(t):Ke(t)}const Ec={__proto__:null,[Symbol.iterator](){return Tr(this,Symbol.iterator,e=>wt(this,e))},concat(...e){return Bt(this).concat(...e.map(t=>q(t)?Bt(t):t))},entries(){return Tr(this,"entries",e=>(e[1]=wt(this,e[1]),e))},every(e,t){return ct(this,"every",e,t,void 0,arguments)},filter(e,t){return ct(this,"filter",e,t,n=>n.map(r=>wt(this,r)),arguments)},find(e,t){return ct(this,"find",e,t,n=>wt(this,n),arguments)},findIndex(e,t){return ct(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ct(this,"findLast",e,t,n=>wt(this,n),arguments)},findLastIndex(e,t){return ct(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ct(this,"forEach",e,t,void 0,arguments)},includes(...e){return Cr(this,"includes",e)},indexOf(...e){return Cr(this,"indexOf",e)},join(e){return Bt(this).join(e)},lastIndexOf(...e){return Cr(this,"lastIndexOf",e)},map(e,t){return ct(this,"map",e,t,void 0,arguments)},pop(){return nn(this,"pop")},push(...e){return nn(this,"push",e)},reduce(e,...t){return qs(this,"reduce",e,t)},reduceRight(e,...t){return qs(this,"reduceRight",e,t)},shift(){return nn(this,"shift")},some(e,t){return ct(this,"some",e,t,void 0,arguments)},splice(...e){return nn(this,"splice",e)},toReversed(){return Bt(this).toReversed()},toSorted(e){return Bt(this).toSorted(e)},toSpliced(...e){return Bt(this).toSpliced(...e)},unshift(...e){return nn(this,"unshift",e)},values(){return Tr(this,"values",e=>wt(this,e))}};function Tr(e,t,n){const r=ur(e),s=r[t]();return r!==e&&!je(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const wc=Array.prototype;function ct(e,t,n,r,s,o){const i=ur(e),l=i!==e&&!je(e),c=i[t];if(c!==wc[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,wt(e,f),p,e)}:n.length>2&&(u=function(f,p){return n.call(this,f,p,e)}));const a=c.call(i,u,r);return l&&s?s(a):a}function qs(e,t,n,r){const s=ur(e);let o=n;return s!==e&&(je(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,wt(e,l),c,e)}),s[t](o,...r)}function Cr(e,t,n){const r=Z(e);be(r,"iterate",En);const s=r[t](...n);return(s===-1||s===!1)&&fr(n[0])?(n[0]=Z(n[0]),r[t](...n)):s}function nn(e,t,n=[]){ht(),gs();const r=Z(e)[t].apply(e,n);return ys(),pt(),r}const Sc=us("__proto__,__v_isRef,__isVue"),Ri=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(yt));function Rc(e){yt(e)||(e=String(e));const t=Z(this);return be(t,"has",e),t.hasOwnProperty(e)}class Ai{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?Dc:Ti:o?xi:Oi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=q(t);if(!s){let c;if(i&&(c=Ec[n]))return c;if(n==="hasOwnProperty")return Rc}const l=Reflect.get(t,n,ce(t)?t:r);if((yt(n)?Ri.has(n):Sc(n))||(s||be(t,"get",n),o))return l;if(ce(l)){const c=i&&lr(n)?l:l.value;return s&&le(c)?Wr(c):c}return le(l)?s?Wr(l):On(l):l}}class vi extends Ai{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=q(t)&&lr(n);if(!this._isShallow){const u=mt(o);if(!je(r)&&!mt(r)&&(o=Z(o),r=Z(r)),!i&&ce(o)&&!ce(r))return u||(o.value=r),!0}const l=i?Number(n)e,Dn=e=>Reflect.getPrototypeOf(e);function Tc(e,t,n){return function(...r){const s=this.__v_raw,o=Z(s),i=Kt(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=s[e](...r),a=n?Kr:t?zt:Ke;return!t&&be(o,"iterate",c?$r:Dt),{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 Ln(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Cc(e,t){const n={get(s){const o=this.__v_raw,i=Z(o),l=Z(s);e||(vt(s,l)&&be(i,"get",s),be(i,"get",l));const{has:c}=Dn(i),u=t?Kr:e?zt:Ke;if(c.call(i,s))return u(o.get(s));if(c.call(i,l))return u(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&be(Z(s),"iterate",Dt),s.size},has(s){const o=this.__v_raw,i=Z(o),l=Z(s);return e||(vt(s,l)&&be(i,"has",s),be(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,c=Z(l),u=t?Kr:e?zt:Ke;return!e&&be(c,"iterate",Dt),l.forEach((a,f)=>s.call(o,u(a),u(f),i))}};return Se(n,e?{add:Ln("add"),set:Ln("set"),delete:Ln("delete"),clear:Ln("clear")}:{add(s){!t&&!je(s)&&!mt(s)&&(s=Z(s));const o=Z(this);return Dn(o).has.call(o,s)||(o.add(s),ft(o,"add",s,s)),this},set(s,o){!t&&!je(o)&&!mt(o)&&(o=Z(o));const i=Z(this),{has:l,get:c}=Dn(i);let u=l.call(i,s);u||(s=Z(s),u=l.call(i,s));const a=c.call(i,s);return i.set(s,o),u?vt(o,a)&&ft(i,"set",s,o):ft(i,"add",s,o),this},delete(s){const o=Z(this),{has:i,get:l}=Dn(o);let c=i.call(o,s);c||(s=Z(s),c=i.call(o,s)),l&&l.call(o,s);const u=o.delete(s);return c&&ft(o,"delete",s,void 0),u},clear(){const s=Z(this),o=s.size!==0,i=s.clear();return o&&ft(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=Tc(s,e,t)}),n}function Es(e,t){const n=Cc(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(ne(n,s)&&s in r?n:r,s,o)}const Pc={get:Es(!1,!1)},Nc={get:Es(!1,!0)},Ic={get:Es(!0,!1)};const Oi=new WeakMap,xi=new WeakMap,Ti=new WeakMap,Dc=new WeakMap;function Lc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Fc(e){return e.__v_skip||!Object.isExtensible(e)?0:Lc(ic(e))}function On(e){return mt(e)?e:ws(e,!1,vc,Pc,Oi)}function Ci(e){return ws(e,!1,xc,Nc,xi)}function Wr(e){return ws(e,!0,Oc,Ic,Ti)}function ws(e,t,n,r,s){if(!le(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=Fc(e);if(o===0)return e;const i=s.get(e);if(i)return i;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function it(e){return mt(e)?it(e.__v_raw):!!(e&&e.__v_isReactive)}function mt(e){return!!(e&&e.__v_isReadonly)}function je(e){return!!(e&&e.__v_isShallow)}function fr(e){return e?!!e.__v_raw:!1}function Z(e){const t=e&&e.__v_raw;return t?Z(t):e}function Ss(e){return!ne(e,"__v_skip")&&Object.isExtensible(e)&&ci(e,"__v_skip",!0),e}const Ke=e=>le(e)?On(e):e,zt=e=>le(e)?Wr(e):e;function ce(e){return e?e.__v_isRef===!0:!1}function Lt(e){return Pi(e,!1)}function Mc(e){return Pi(e,!0)}function Pi(e,t){return ce(e)?e:new Uc(e,t)}class Uc{constructor(t,n){this.dep=new bs,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:Z(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,r=this.__v_isShallow||je(t)||mt(t);t=r?t:Z(t),vt(t,n)&&(this._rawValue=t,this._value=r?t:Ke(t),this.dep.trigger())}}function Ot(e){return ce(e)?e.value:e}const jc={get:(e,t,n)=>t==="__v_raw"?e:Ot(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return ce(s)&&!ce(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Ni(e){return it(e)?e:new Proxy(e,jc)}function Bc(e){const t=q(e)?new Array(e.length):{};for(const n in e)t[n]=Ii(e,n);return t}class Hc{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._raw=Z(t);let s=!0,o=t;if(!q(t)||!lr(String(n)))do s=!fr(o)||je(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=Ot(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&ce(this._raw[this._key])){const n=this._object[this._key];if(ce(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return bc(this._raw,this._key)}}class kc{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Vc(e,t,n){return ce(e)?e:W(e)?new kc(e):le(e)&&arguments.length>1?Ii(e,t,n):Lt(e)}function Ii(e,t,n){return new Hc(e,t,n)}class qc{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new bs(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=bn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&ie!==this)return yi(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 $c(e,t,n=!1){let r,s;return W(e)?r=e:(r=e.get,s=e.set),new qc(r,s,n)}const Fn={},Jn=new WeakMap;let Pt;function Kc(e,t=!1,n=Pt){if(n){let r=Jn.get(n);r||Jn.set(n,r=[]),r.push(e)}}function Wc(e,t,n=se){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:c}=n,u=P=>s?P:je(P)||s===!1||s===0?dt(P,1):dt(P);let a,f,p,m,g=!1,b=!1;if(ce(e)?(f=()=>e.value,g=je(e)):it(e)?(f=()=>u(e),g=!0):q(e)?(b=!0,g=e.some(P=>it(P)||je(P)),f=()=>e.map(P=>{if(ce(P))return P.value;if(it(P))return u(P);if(W(P))return c?c(P,2):P()})):W(e)?t?f=c?()=>c(e,2):e:f=()=>{if(p){ht();try{p()}finally{pt()}}const P=Pt;Pt=a;try{return c?c(e,3,[m]):e(m)}finally{Pt=P}}:f=ot,t&&s){const P=f,M=s===!0?1/0:s;f=()=>dt(P(),M)}const E=pi(),O=()=>{a.stop(),E&&E.active&&ds(E.effects,a)};if(o&&t){const P=t;t=(...M)=>{P(...M),O()}}let C=b?new Array(e.length).fill(Fn):Fn;const N=P=>{if(!(!(a.flags&1)||!a.dirty&&!P))if(t){const M=a.run();if(s||g||(b?M.some((X,k)=>vt(X,C[k])):vt(M,C))){p&&p();const X=Pt;Pt=a;try{const k=[M,C===Fn?void 0:b&&C[0]===Fn?[]:C,m];C=M,c?c(t,3,k):t(...k)}finally{Pt=X}}}else a.run()};return l&&l(N),a=new mi(f),a.scheduler=i?()=>i(N,!1):N,m=P=>Kc(P,!1,a),p=a.onStop=()=>{const P=Jn.get(a);if(P){if(c)c(P,4);else for(const M of P)M();Jn.delete(a)}},t?r?N(!0):C=a.run():i?i(N.bind(null,!0),!0):a.run(),O.pause=a.pause.bind(a),O.resume=a.resume.bind(a),O.stop=O,O}function dt(e,t=1/0,n){if(t<=0||!le(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,ce(e))dt(e.value,t,n);else if(q(e))for(let r=0;r{dt(r,t,n)});else if(ii(e)){for(const r in e)dt(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&dt(e[r],t,n)}return e}function xn(e,t,n,r){try{return r?e(...r):e()}catch(s){dr(s,t,n)}}function lt(e,t,n,r){if(W(e)){const s=xn(e,t,n,r);return s&&si(s)&&s.catch(o=>{dr(o,t,n)}),s}if(q(e)){const s=[];for(let o=0;o>>1,s=xe[r],o=wn(s);o=wn(n)?xe.push(e):xe.splice(zc(t),0,e),e.flags|=1,Li()}}function Li(){Xn||(Xn=Di.then(Mi))}function Jc(e){q(e)?Wt.push(...e):St&&e.id===-1?St.splice(kt+1,0,e):e.flags&1||(Wt.push(e),e.flags|=1),Li()}function $s(e,t,n=rt+1){for(;nwn(n)-wn(r));if(Wt.length=0,St){St.push(...t);return}for(St=t,kt=0;kte.id==null?e.flags&2?-1:1/0:e.id;function Mi(e){try{for(rt=0;rt{r._d&&tr(-1);const o=Qn(t);let i;try{i=e(...s)}finally{Qn(o),r._d&&tr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function Ah(e,t){if(we===null)return e;const n=gr(we),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&W(t)?t.call(r&&r.proxy):t}}function Qc(){return!!(dl()||Ft)}const Yc=Symbol.for("v-scx"),Zc=()=>ke(Yc);function fn(e,t,n){return ji(e,t,n)}function ji(e,t,n=se){const{immediate:r,deep:s,flush:o,once:i}=n,l=Se({},n),c=t&&r||!t&&o!=="post";let u;if(An){if(o==="sync"){const m=Zc();u=m.__watcherHandles||(m.__watcherHandles=[])}else if(!c){const m=()=>{};return m.stop=ot,m.resume=ot,m.pause=ot,m}}const a=Te;l.call=(m,g,b)=>lt(m,a,g,b);let f=!1;o==="post"?l.scheduler=m=>{ve(m,a&&a.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(m,g)=>{g?m():As(m)}),l.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,a&&(m.id=a.uid,m.i=a))};const p=Wc(e,t,l);return An&&(u?u.push(p):c&&p()),p}function ea(e,t,n){const r=this.proxy,s=de(e)?e.includes(".")?Bi(r,e):()=>r[e]:e.bind(r,r);let o;W(t)?o=t:(o=t.handler,n=t);const i=Tn(this),l=ji(s,o.bind(r),n);return i(),l}function Bi(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,dn=e=>e&&(e.disabled||e.disabled===""),Ks=e=>e&&(e.defer||e.defer===""),Ws=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Gs=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Gr=(e,t)=>{const n=e&&e.to;return de(n)?t?t(n):null:n},ki={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,u){const{mc:a,pc:f,pbc:p,o:{insert:m,querySelector:g,createText:b,createComment:E}}=u,O=dn(t.props);let{shapeFlag:C,children:N,dynamicChildren:P}=t;if(e==null){const M=t.el=b(""),X=t.anchor=b("");m(M,n,r),m(X,n,r);const k=(U,ee)=>{C&16&&a(N,U,ee,s,o,i,l,c)},V=()=>{const U=t.target=Gr(t.props,g),ee=Vi(U,t,b,m);U&&(i!=="svg"&&Ws(U)?i="svg":i!=="mathml"&&Gs(U)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(U),O||(k(U,ee),kn(t,!1)))};O&&(k(n,X),kn(t,!0)),Ks(t.props)?(t.el.__isMounted=!1,ve(()=>{V(),delete t.el.__isMounted},o)):V()}else{if(Ks(t.props)&&e.el.__isMounted===!1){ve(()=>{ki.process(e,t,n,r,s,o,i,l,c,u)},o);return}t.el=e.el,t.targetStart=e.targetStart;const M=t.anchor=e.anchor,X=t.target=e.target,k=t.targetAnchor=e.targetAnchor,V=dn(e.props),U=V?n:X,ee=V?M:k;if(i==="svg"||Ws(X)?i="svg":(i==="mathml"||Gs(X))&&(i="mathml"),P?(p(e.dynamicChildren,P,U,s,o,i,l),Cs(e,t,!0)):c||f(e,t,U,ee,s,o,i,l,!1),O)V?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Mn(t,n,M,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const ue=t.target=Gr(t.props,g);ue&&Mn(t,ue,null,u,0)}else V&&Mn(t,X,k,u,1);kn(t,O)}},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetStart:u,targetAnchor:a,target:f,props:p}=e;if(f&&(s(u),s(a)),o&&s(c),i&16){const m=o||!dn(p);for(let g=0;ghn(g,t&&(q(t)?t[b]:t),n,r,s));return}if(Gt(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&hn(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?gr(r.component):r.el,i=s?null:o,{i:l,r:c}=e,u=t&&t.r,a=l.refs===se?l.refs={}:l.refs,f=l.setupState,p=Z(f),m=f===se?ni:g=>ne(p,g);if(u!=null&&u!==c){if(zs(t),de(u))a[u]=null,m(u)&&(f[u]=null);else if(ce(u)){u.value=null;const g=t;g.k&&(a[g.k]=null)}}if(W(c))xn(c,l,12,[i,a]);else{const g=de(c),b=ce(c);if(g||b){const E=()=>{if(e.f){const O=g?m(c)?f[c]:a[c]:c.value;if(s)q(O)&&ds(O,o);else if(q(O))O.includes(o)||O.push(o);else if(g)a[c]=[o],m(c)&&(f[c]=a[c]);else{const C=[o];c.value=C,e.k&&(a[e.k]=C)}}else g?(a[c]=i,m(c)&&(f[c]=i)):b&&(c.value=i,e.k&&(a[e.k]=i))};if(i){const O=()=>{E(),Yn.delete(e)};O.id=-1,Yn.set(e,O),ve(O,n)}else zs(e),E()}}}function zs(e){const t=Yn.get(e);t&&(t.flags|=8,Yn.delete(e))}ar().requestIdleCallback;ar().cancelIdleCallback;const Gt=e=>!!e.type.__asyncLoader,$i=e=>e.type.__isKeepAlive;function sa(e,t){Ki(e,"a",t)}function oa(e,t){Ki(e,"da",t)}function Ki(e,t,n=Te){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(hr(t,r,n),n){let s=n.parent;for(;s&&s.parent;)$i(s.parent.vnode)&&ia(r,t,n,s),s=s.parent}}function ia(e,t,n,r){const s=hr(t,e,r,!0);Wi(()=>{ds(r[t],s)},n)}function hr(e,t,n=Te,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{ht();const l=Tn(n),c=lt(t,n,e,i);return l(),pt(),c});return r?s.unshift(o):s.push(o),o}}const _t=e=>(t,n=Te)=>{(!An||e==="sp")&&hr(e,(...r)=>t(...r),n)},la=_t("bm"),ca=_t("m"),aa=_t("bu"),ua=_t("u"),fa=_t("bum"),Wi=_t("um"),da=_t("sp"),ha=_t("rtg"),pa=_t("rtc");function ma(e,t=Te){hr("ec",e,t)}const ga=Symbol.for("v-ndc");function Oh(e,t,n,r){let s;const o=n,i=q(e);if(i||de(e)){const l=i&&it(e);let c=!1,u=!1;l&&(c=!je(e),u=mt(e),e=ur(e)),s=new Array(e.length);for(let a=0,f=e.length;at(l,c,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let c=0,u=l.length;c0;return er(),nr(Fe,null,[Ce("slot",n,r)],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),er();const i=o&&Gi(o(n)),l=n.key||i&&i.key,c=nr(Fe,{key:(l&&!yt(l)?l:`_${t}`)+(!i&&r?"_fb":"")},i||[],i&&e._===1?64:-2);return c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),o&&o._c&&(o._d=!0),c}function Gi(e){return e.some(t=>Rn(t)?!(t.type===gt||t.type===Fe&&!Gi(t.children)):!0)?e:null}const zr=e=>e?hl(e)?gr(e):zr(e.parent):null,pn=Se(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=>zr(e.parent),$root:e=>zr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ji(e),$forceUpdate:e=>e.f||(e.f=()=>{As(e.update)}),$nextTick:e=>e.n||(e.n=Rs.bind(e.proxy)),$watch:e=>ea.bind(e)}),Pr=(e,t)=>e!==se&&!e.__isScriptSetup&&ne(e,t),ya={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,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 r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(Pr(r,t))return i[t]=1,r[t];if(s!==se&&ne(s,t))return i[t]=2,s[t];if(ne(o,t))return i[t]=3,o[t];if(n!==se&&ne(n,t))return i[t]=4,n[t];Jr&&(i[t]=0)}}const u=pn[t];let a,f;if(u)return t==="$attrs"&&be(e.attrs,"get",""),u(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==se&&ne(n,t))return i[t]=4,n[t];if(f=c.config.globalProperties,ne(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return Pr(s,t)?(s[t]=n,!0):r!==se&&ne(r,t)?(r[t]=n,!0):ne(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:o,type:i}},l){let c;return!!(n[l]||e!==se&&l[0]!=="$"&&ne(e,l)||Pr(t,l)||ne(o,l)||ne(r,l)||ne(pn,l)||ne(s.config.globalProperties,l)||(c=i.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ne(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Js(e){return q(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Jr=!0;function _a(e){const t=Ji(e),n=e.proxy,r=e.ctx;Jr=!1,t.beforeCreate&&Xs(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:u,created:a,beforeMount:f,mounted:p,beforeUpdate:m,updated:g,activated:b,deactivated:E,beforeDestroy:O,beforeUnmount:C,destroyed:N,unmounted:P,render:M,renderTracked:X,renderTriggered:k,errorCaptured:V,serverPrefetch:U,expose:ee,inheritAttrs:ue,components:ye,directives:pe,filters:Re}=t;if(u&&ba(u,r,null),i)for(const K in i){const z=i[K];W(z)&&(r[K]=z.bind(n))}if(s){const K=s.call(n,n);le(K)&&(e.data=On(K))}if(Jr=!0,o)for(const K in o){const z=o[K],Be=W(z)?z.bind(n,n):W(z.get)?z.get.bind(n,n):ot,ze=!W(z)&&W(z.set)?z.set.bind(n):ot,me=Me({get:Be,set:ze});Object.defineProperty(r,K,{enumerable:!0,configurable:!0,get:()=>me.value,set:fe=>me.value=fe})}if(l)for(const K in l)zi(l[K],r,n,K);if(c){const K=W(c)?c.call(n):c;Reflect.ownKeys(K).forEach(z=>{Hn(z,K[z])})}a&&Xs(a,e,"c");function J(K,z){q(z)?z.forEach(Be=>K(Be.bind(n))):z&&K(z.bind(n))}if(J(la,f),J(ca,p),J(aa,m),J(ua,g),J(sa,b),J(oa,E),J(ma,V),J(pa,X),J(ha,k),J(fa,C),J(Wi,P),J(da,U),q(ee))if(ee.length){const K=e.exposed||(e.exposed={});ee.forEach(z=>{Object.defineProperty(K,z,{get:()=>n[z],set:Be=>n[z]=Be,enumerable:!0})})}else e.exposed||(e.exposed={});M&&e.render===ot&&(e.render=M),ue!=null&&(e.inheritAttrs=ue),ye&&(e.components=ye),pe&&(e.directives=pe),U&&qi(e)}function ba(e,t,n=ot){q(e)&&(e=Xr(e));for(const r in e){const s=e[r];let o;le(s)?"default"in s?o=ke(s.from||r,s.default,!0):o=ke(s.from||r):o=ke(s),ce(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function Xs(e,t,n){lt(q(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function zi(e,t,n,r){let s=r.includes(".")?Bi(n,r):()=>n[r];if(de(e)){const o=t[e];W(o)&&fn(s,o)}else if(W(e))fn(s,e.bind(n));else if(le(e))if(q(e))e.forEach(o=>zi(o,t,n,r));else{const o=W(e.handler)?e.handler.bind(n):t[e.handler];W(o)&&fn(s,o,e)}}function Ji(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>Zn(c,u,i,!0)),Zn(c,t,i)),le(t)&&o.set(t,c),c}function Zn(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&Zn(e,o,n,!0),s&&s.forEach(i=>Zn(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Ea[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Ea={data:Qs,props:Ys,emits:Ys,methods:ln,computed:ln,beforeCreate:Ae,created:Ae,beforeMount:Ae,mounted:Ae,beforeUpdate:Ae,updated:Ae,beforeDestroy:Ae,beforeUnmount:Ae,destroyed:Ae,unmounted:Ae,activated:Ae,deactivated:Ae,errorCaptured:Ae,serverPrefetch:Ae,components:ln,directives:ln,watch:Sa,provide:Qs,inject:wa};function Qs(e,t){return t?e?function(){return Se(W(e)?e.call(this,this):e,W(t)?t.call(this,this):t)}:t:e}function wa(e,t){return ln(Xr(e),Xr(t))}function Xr(e){if(q(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${xt(t)}Modifiers`]||e[`${jt(t)}Modifiers`];function Oa(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||se;let s=n;const o=t.startsWith("update:"),i=o&&va(r,t.slice(7));i&&(i.trim&&(s=n.map(a=>de(a)?a.trim():a)),i.number&&(s=n.map(hs)));let l,c=r[l=vr(t)]||r[l=vr(xt(t))];!c&&o&&(c=r[l=vr(jt(t))]),c&<(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,lt(u,e,6,s)}}const xa=new WeakMap;function Qi(e,t,n=!1){const r=n?xa:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!W(e)){const c=u=>{const a=Qi(u,t,!0);a&&(l=!0,Se(i,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(le(e)&&r.set(e,null),null):(q(o)?o.forEach(c=>i[c]=null):Se(i,o),le(e)&&r.set(e,i),i)}function pr(e,t){return!e||!or(t)?!1:(t=t.slice(2).replace(/Once$/,""),ne(e,t[0].toLowerCase()+t.slice(1))||ne(e,jt(t))||ne(e,t))}function Zs(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:a,props:f,data:p,setupState:m,ctx:g,inheritAttrs:b}=e,E=Qn(e);let O,C;try{if(n.shapeFlag&4){const P=s||r,M=P;O=st(u.call(M,P,a,f,m,p,g)),C=l}else{const P=t;O=st(P.length>1?P(f,{attrs:l,slots:i,emit:c}):P(f,null)),C=t.props?l:Ta(l)}}catch(P){mn.length=0,dr(P,e,1),O=Ce(gt)}let N=O;if(C&&b!==!1){const P=Object.keys(C),{shapeFlag:M}=N;P.length&&M&7&&(o&&P.some(fs)&&(C=Ca(C,o)),N=Jt(N,C,!1,!0))}return n.dirs&&(N=Jt(N,null,!1,!0),N.dirs=N.dirs?N.dirs.concat(n.dirs):n.dirs),n.transition&&vs(N,n.transition),O=N,Qn(E),O}const Ta=e=>{let t;for(const n in e)(n==="class"||n==="style"||or(n))&&((t||(t={}))[n]=e[n]);return t},Ca=(e,t)=>{const n={};for(const r in e)(!fs(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Pa(e,t,n){const{props:r,children:s,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 r?eo(r,i,u):!!i;if(c&8){const a=t.dynamicProps;for(let f=0;fObject.create(Yi),el=e=>Object.getPrototypeOf(e)===Yi;function Ia(e,t,n,r=!1){const s={},o=Zi();e.propsDefaults=Object.create(null),tl(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:Ci(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function Da(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=Z(s),[c]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const a=e.vnode.dynamicProps;for(let f=0;f{c=!0;const[p,m]=nl(f,t,!0);Se(i,p),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!c)return le(e)&&r.set(e,$t),$t;if(q(o))for(let a=0;ae==="_"||e==="_ctx"||e==="$stable",Ts=e=>q(e)?e.map(st):[st(e)],Fa=(e,t,n)=>{if(t._n)return t;const r=Xc((...s)=>Ts(t(...s)),n);return r._c=!1,r},rl=(e,t,n)=>{const r=e._ctx;for(const s in e){if(xs(s))continue;const o=e[s];if(W(o))t[s]=Fa(s,o,r);else if(o!=null){const i=Ts(o);t[s]=()=>i}}},sl=(e,t)=>{const n=Ts(t);e.slots.default=()=>n},ol=(e,t,n)=>{for(const r in t)(n||!xs(r))&&(e[r]=t[r])},Ma=(e,t,n)=>{const r=e.slots=Zi();if(e.vnode.shapeFlag&32){const s=t._;s?(ol(r,t,n),n&&ci(r,"_",s,!0)):rl(t,r)}else t&&sl(e,t)},Ua=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=se;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:ol(s,t,n):(o=!t.$stable,rl(t,s)),i=t}else t&&(sl(e,t),i={default:1});if(o)for(const l in s)!xs(l)&&i[l]==null&&delete s[l]},ve=Va;function ja(e){return Ba(e)}function Ba(e,t){const n=ar();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:a,parentNode:f,nextSibling:p,setScopeId:m=ot,insertStaticContent:g}=e,b=(d,h,y,w=null,A=null,S=null,I=void 0,T=null,x=!!h.dynamicChildren)=>{if(d===h)return;d&&!rn(d,h)&&(w=R(d),fe(d,A,S,!0),d=null),h.patchFlag===-2&&(x=!1,h.dynamicChildren=null);const{type:v,ref:H,shapeFlag:L}=h;switch(v){case mr:E(d,h,y,w);break;case gt:O(d,h,y,w);break;case Vn:d==null&&C(h,y,w,I);break;case Fe:ye(d,h,y,w,A,S,I,T,x);break;default:L&1?M(d,h,y,w,A,S,I,T,x):L&6?pe(d,h,y,w,A,S,I,T,x):(L&64||L&128)&&v.process(d,h,y,w,A,S,I,T,x,j)}H!=null&&A?hn(H,d&&d.ref,S,h||d,!h):H==null&&d&&d.ref!=null&&hn(d.ref,null,S,d,!0)},E=(d,h,y,w)=>{if(d==null)r(h.el=l(h.children),y,w);else{const A=h.el=d.el;h.children!==d.children&&u(A,h.children)}},O=(d,h,y,w)=>{d==null?r(h.el=c(h.children||""),y,w):h.el=d.el},C=(d,h,y,w)=>{[d.el,d.anchor]=g(d.children,h,y,w,d.el,d.anchor)},N=({el:d,anchor:h},y,w)=>{let A;for(;d&&d!==h;)A=p(d),r(d,y,w),d=A;r(h,y,w)},P=({el:d,anchor:h})=>{let y;for(;d&&d!==h;)y=p(d),s(d),d=y;s(h)},M=(d,h,y,w,A,S,I,T,x)=>{if(h.type==="svg"?I="svg":h.type==="math"&&(I="mathml"),d==null)X(h,y,w,A,S,I,T,x);else{const v=d.el&&d.el._isVueCE?d.el:null;try{v&&v._beginPatch(),U(d,h,A,S,I,T,x)}finally{v&&v._endPatch()}}},X=(d,h,y,w,A,S,I,T)=>{let x,v;const{props:H,shapeFlag:L,transition:B,dirs:$}=d;if(x=d.el=i(d.type,S,H&&H.is,H),L&8?a(x,d.children):L&16&&V(d.children,x,null,w,A,Nr(d,S),I,T),$&&Tt(d,null,w,"created"),k(x,d,d.scopeId,I,w),H){for(const oe in H)oe!=="value"&&!cn(oe)&&o(x,oe,null,H[oe],S,w);"value"in H&&o(x,"value",null,H.value,S),(v=H.onVnodeBeforeMount)&&et(v,w,d)}$&&Tt(d,null,w,"beforeMount");const Y=Ha(A,B);Y&&B.beforeEnter(x),r(x,h,y),((v=H&&H.onVnodeMounted)||Y||$)&&ve(()=>{v&&et(v,w,d),Y&&B.enter(x),$&&Tt(d,null,w,"mounted")},A)},k=(d,h,y,w,A)=>{if(y&&m(d,y),w)for(let S=0;S{for(let v=x;v{const T=h.el=d.el;let{patchFlag:x,dynamicChildren:v,dirs:H}=h;x|=d.patchFlag&16;const L=d.props||se,B=h.props||se;let $;if(y&&Ct(y,!1),($=B.onVnodeBeforeUpdate)&&et($,y,h,d),H&&Tt(h,d,y,"beforeUpdate"),y&&Ct(y,!0),(L.innerHTML&&B.innerHTML==null||L.textContent&&B.textContent==null)&&a(T,""),v?ee(d.dynamicChildren,v,T,y,w,Nr(h,A),S):I||z(d,h,T,null,y,w,Nr(h,A),S,!1),x>0){if(x&16)ue(T,L,B,y,A);else if(x&2&&L.class!==B.class&&o(T,"class",null,B.class,A),x&4&&o(T,"style",L.style,B.style,A),x&8){const Y=h.dynamicProps;for(let oe=0;oe{$&&et($,y,h,d),H&&Tt(h,d,y,"updated")},w)},ee=(d,h,y,w,A,S,I)=>{for(let T=0;T{if(h!==y){if(h!==se)for(const S in h)!cn(S)&&!(S in y)&&o(d,S,h[S],null,A,w);for(const S in y){if(cn(S))continue;const I=y[S],T=h[S];I!==T&&S!=="value"&&o(d,S,T,I,A,w)}"value"in y&&o(d,"value",h.value,y.value,A)}},ye=(d,h,y,w,A,S,I,T,x)=>{const v=h.el=d?d.el:l(""),H=h.anchor=d?d.anchor:l("");let{patchFlag:L,dynamicChildren:B,slotScopeIds:$}=h;$&&(T=T?T.concat($):$),d==null?(r(v,y,w),r(H,y,w),V(h.children||[],y,H,A,S,I,T,x)):L>0&&L&64&&B&&d.dynamicChildren&&d.dynamicChildren.length===B.length?(ee(d.dynamicChildren,B,y,A,S,I,T),(h.key!=null||A&&h===A.subTree)&&Cs(d,h,!0)):z(d,h,y,H,A,S,I,T,x)},pe=(d,h,y,w,A,S,I,T,x)=>{h.slotScopeIds=T,d==null?h.shapeFlag&512?A.ctx.activate(h,y,w,I,x):Re(h,y,w,A,S,I,x):Ve(d,h,x)},Re=(d,h,y,w,A,S,I)=>{const T=d.component=Xa(d,w,A);if($i(d)&&(T.ctx.renderer=j),Qa(T,!1,I),T.asyncDep){if(A&&A.registerDep(T,J,I),!d.el){const x=T.subTree=Ce(gt);O(null,x,h,y),d.placeholder=x.el}}else J(T,d,h,y,A,S,I)},Ve=(d,h,y)=>{const w=h.component=d.component;if(Pa(d,h,y))if(w.asyncDep&&!w.asyncResolved){K(w,h,y);return}else w.next=h,w.update();else h.el=d.el,w.vnode=h},J=(d,h,y,w,A,S,I)=>{const T=()=>{if(d.isMounted){let{next:L,bu:B,u:$,parent:Y,vnode:oe}=d;{const Ye=il(d);if(Ye){L&&(L.el=oe.el,K(d,L,I)),Ye.asyncDep.then(()=>{d.isUnmounted||T()});return}}let re=L,Pe;Ct(d,!1),L?(L.el=oe.el,K(d,L,I)):L=oe,B&&Bn(B),(Pe=L.props&&L.props.onVnodeBeforeUpdate)&&et(Pe,Y,L,oe),Ct(d,!0);const Ne=Zs(d),Qe=d.subTree;d.subTree=Ne,b(Qe,Ne,f(Qe.el),R(Qe),d,A,S),L.el=Ne.el,re===null&&Na(d,Ne.el),$&&ve($,A),(Pe=L.props&&L.props.onVnodeUpdated)&&ve(()=>et(Pe,Y,L,oe),A)}else{let L;const{el:B,props:$}=h,{bm:Y,m:oe,parent:re,root:Pe,type:Ne}=d,Qe=Gt(h);Ct(d,!1),Y&&Bn(Y),!Qe&&(L=$&&$.onVnodeBeforeMount)&&et(L,re,h),Ct(d,!0);{Pe.ce&&Pe.ce._def.shadowRoot!==!1&&Pe.ce._injectChildStyle(Ne);const Ye=d.subTree=Zs(d);b(null,Ye,y,w,d,A,S),h.el=Ye.el}if(oe&&ve(oe,A),!Qe&&(L=$&&$.onVnodeMounted)){const Ye=h;ve(()=>et(L,re,Ye),A)}(h.shapeFlag&256||re&&Gt(re.vnode)&&re.vnode.shapeFlag&256)&&d.a&&ve(d.a,A),d.isMounted=!0,h=y=w=null}};d.scope.on();const x=d.effect=new mi(T);d.scope.off();const v=d.update=x.run.bind(x),H=d.job=x.runIfDirty.bind(x);H.i=d,H.id=d.uid,x.scheduler=()=>As(H),Ct(d,!0),v()},K=(d,h,y)=>{h.component=d;const w=d.vnode.props;d.vnode=h,d.next=null,Da(d,h.props,w,y),Ua(d,h.children,y),ht(),$s(d),pt()},z=(d,h,y,w,A,S,I,T,x=!1)=>{const v=d&&d.children,H=d?d.shapeFlag:0,L=h.children,{patchFlag:B,shapeFlag:$}=h;if(B>0){if(B&128){ze(v,L,y,w,A,S,I,T,x);return}else if(B&256){Be(v,L,y,w,A,S,I,T,x);return}}$&8?(H&16&&He(v,A,S),L!==v&&a(y,L)):H&16?$&16?ze(v,L,y,w,A,S,I,T,x):He(v,A,S,!0):(H&8&&a(y,""),$&16&&V(L,y,w,A,S,I,T,x))},Be=(d,h,y,w,A,S,I,T,x)=>{d=d||$t,h=h||$t;const v=d.length,H=h.length,L=Math.min(v,H);let B;for(B=0;BH?He(d,A,S,!0,!1,L):V(h,y,w,A,S,I,T,x,L)},ze=(d,h,y,w,A,S,I,T,x)=>{let v=0;const H=h.length;let L=d.length-1,B=H-1;for(;v<=L&&v<=B;){const $=d[v],Y=h[v]=x?Rt(h[v]):st(h[v]);if(rn($,Y))b($,Y,y,null,A,S,I,T,x);else break;v++}for(;v<=L&&v<=B;){const $=d[L],Y=h[B]=x?Rt(h[B]):st(h[B]);if(rn($,Y))b($,Y,y,null,A,S,I,T,x);else break;L--,B--}if(v>L){if(v<=B){const $=B+1,Y=$B)for(;v<=L;)fe(d[v],A,S,!0),v++;else{const $=v,Y=v,oe=new Map;for(v=Y;v<=B;v++){const Le=h[v]=x?Rt(h[v]):st(h[v]);Le.key!=null&&oe.set(Le.key,v)}let re,Pe=0;const Ne=B-Y+1;let Qe=!1,Ye=0;const tn=new Array(Ne);for(v=0;v=Ne){fe(Le,A,S,!0);continue}let Ze;if(Le.key!=null)Ze=oe.get(Le.key);else for(re=Y;re<=B;re++)if(tn[re-Y]===0&&rn(Le,h[re])){Ze=re;break}Ze===void 0?fe(Le,A,S,!0):(tn[Ze-Y]=v+1,Ze>=Ye?Ye=Ze:Qe=!0,b(Le,h[Ze],y,null,A,S,I,T,x),Pe++)}const js=Qe?ka(tn):$t;for(re=js.length-1,v=Ne-1;v>=0;v--){const Le=Y+v,Ze=h[Le],Bs=h[Le+1],Hs=Le+1{const{el:S,type:I,transition:T,children:x,shapeFlag:v}=d;if(v&6){me(d.component.subTree,h,y,w);return}if(v&128){d.suspense.move(h,y,w);return}if(v&64){I.move(d,h,y,j);return}if(I===Fe){r(S,h,y);for(let L=0;LT.enter(S),A);else{const{leave:L,delayLeave:B,afterLeave:$}=T,Y=()=>{d.ctx.isUnmounted?s(S):r(S,h,y)},oe=()=>{S._isLeaving&&S[ra](!0),L(S,()=>{Y(),$&&$()})};B?B(S,Y,oe):oe()}else r(S,h,y)},fe=(d,h,y,w=!1,A=!1)=>{const{type:S,props:I,ref:T,children:x,dynamicChildren:v,shapeFlag:H,patchFlag:L,dirs:B,cacheIndex:$}=d;if(L===-2&&(A=!1),T!=null&&(ht(),hn(T,null,y,d,!0),pt()),$!=null&&(h.renderCache[$]=void 0),H&256){h.ctx.deactivate(d);return}const Y=H&1&&B,oe=!Gt(d);let re;if(oe&&(re=I&&I.onVnodeBeforeUnmount)&&et(re,h,d),H&6)Xe(d.component,y,w);else{if(H&128){d.suspense.unmount(y,w);return}Y&&Tt(d,null,h,"beforeUnmount"),H&64?d.type.remove(d,h,y,j,w):v&&!v.hasOnce&&(S!==Fe||L>0&&L&64)?He(v,h,y,!1,!0):(S===Fe&&L&384||!A&&H&16)&&He(x,h,y),w&&Je(d)}(oe&&(re=I&&I.onVnodeUnmounted)||Y)&&ve(()=>{re&&et(re,h,d),Y&&Tt(d,null,h,"unmounted")},y)},Je=d=>{const{type:h,el:y,anchor:w,transition:A}=d;if(h===Fe){qe(y,w);return}if(h===Vn){P(d);return}const S=()=>{s(y),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(d.shapeFlag&1&&A&&!A.persisted){const{leave:I,delayLeave:T}=A,x=()=>I(y,S);T?T(d.el,S,x):x()}else S()},qe=(d,h)=>{let y;for(;d!==h;)y=p(d),s(d),d=y;s(h)},Xe=(d,h,y)=>{const{bum:w,scope:A,job:S,subTree:I,um:T,m:x,a:v}=d;no(x),no(v),w&&Bn(w),A.stop(),S&&(S.flags|=8,fe(I,d,h,y)),T&&ve(T,h),ve(()=>{d.isUnmounted=!0},h)},He=(d,h,y,w=!1,A=!1,S=0)=>{for(let I=S;I{if(d.shapeFlag&6)return R(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const h=p(d.anchor||d.el),y=h&&h[Hi];return y?p(y):h};let F=!1;const D=(d,h,y)=>{let w;d==null?h._vnode&&(fe(h._vnode,null,null,!0),w=h._vnode.component):b(h._vnode||null,d,h,null,null,null,y),h._vnode=d,F||(F=!0,$s(w),Fi(),F=!1)},j={p:b,um:fe,m:me,r:Je,mt:Re,mc:V,pc:z,pbc:ee,n:R,o:e};return{render:D,hydrate:void 0,createApp:Aa(D)}}function Nr({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 Ct({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Ha(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Cs(e,t,n=!1){const r=e.children,s=t.children;if(q(r)&&q(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function il(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:il(t)}function no(e){if(e)for(let t=0;te.__isSuspense;function Va(e,t){t&&t.pendingBranch?q(e)?t.effects.push(...e):t.effects.push(e):Jc(e)}const Fe=Symbol.for("v-fgt"),mr=Symbol.for("v-txt"),gt=Symbol.for("v-cmt"),Vn=Symbol.for("v-stc"),mn=[];let Ue=null;function er(e=!1){mn.push(Ue=e?null:[])}function qa(){mn.pop(),Ue=mn[mn.length-1]||null}let Sn=1;function tr(e,t=!1){Sn+=e,e<0&&Ue&&t&&(Ue.hasOnce=!0)}function al(e){return e.dynamicChildren=Sn>0?Ue||$t:null,qa(),Sn>0&&Ue&&Ue.push(e),e}function Th(e,t,n,r,s,o){return al(fl(e,t,n,r,s,o,!0))}function nr(e,t,n,r,s){return al(Ce(e,t,n,r,s,!0))}function Rn(e){return e?e.__v_isVNode===!0:!1}function rn(e,t){return e.type===t.type&&e.key===t.key}const ul=({key:e})=>e??null,qn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?de(e)||ce(e)||W(e)?{i:we,r:e,k:t,f:!!n}:e:null);function fl(e,t=null,n=null,r=0,s=null,o=e===Fe?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ul(t),ref:t&&qn(t),scopeId:Ui,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:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:we};return l?(Ps(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=de(n)?8:16),Sn>0&&!i&&Ue&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Ue.push(c),c}const Ce=$a;function $a(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===ga)&&(e=gt),Rn(e)){const l=Jt(e,t,!0);return n&&Ps(l,n),Sn>0&&!o&&Ue&&(l.shapeFlag&6?Ue[Ue.indexOf(e)]=l:Ue.push(l)),l.patchFlag=-2,l}if(tu(e)&&(e=e.__vccOpts),t){t=Ka(t);let{class:l,style:c}=t;l&&!de(l)&&(t.class=ms(l)),le(c)&&(fr(c)&&!q(c)&&(c=Se({},c)),t.style=ps(c))}const i=de(e)?1:cl(e)?128:ta(e)?64:le(e)?4:W(e)?2:0;return fl(e,t,n,r,s,i,o,!0)}function Ka(e){return e?fr(e)||el(e)?Se({},e):e:null}function Jt(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?Ga(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&ul(u),ref:t&&t.ref?n&&o?q(o)?o.concat(qn(t)):[o,qn(t)]:qn(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!==Fe?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&&Jt(e.ssContent),ssFallback:e.ssFallback&&Jt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&vs(a,c.clone(a)),a}function Wa(e=" ",t=0){return Ce(mr,null,e,t)}function Ch(e,t){const n=Ce(Vn,null,e);return n.staticCount=t,n}function Ph(e="",t=!1){return t?(er(),nr(gt,null,e)):Ce(gt,null,e)}function st(e){return e==null||typeof e=="boolean"?Ce(gt):q(e)?Ce(Fe,null,e.slice()):Rn(e)?Rt(e):Ce(mr,null,String(e))}function Rt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Jt(e)}function Ps(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(q(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Ps(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!el(t)?t._ctx=we:s===3&&we&&(we.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else W(t)?(t={default:t,_ctx:we},n=32):(t=String(t),r&64?(n=16,t=[Wa(t)]):n=8);e.children=t,e.shapeFlag|=n}function Ga(...e){const t={};for(let n=0;nTe||we;let rr,Yr;{const e=ar(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};rr=t("__VUE_INSTANCE_SETTERS__",n=>Te=n),Yr=t("__VUE_SSR_SETTERS__",n=>An=n)}const Tn=e=>{const t=Te;return rr(e),e.scope.on(),()=>{e.scope.off(),rr(t)}},ro=()=>{Te&&Te.scope.off(),rr(null)};function hl(e){return e.vnode.shapeFlag&4}let An=!1;function Qa(e,t=!1,n=!1){t&&Yr(t);const{props:r,children:s}=e.vnode,o=hl(e);Ia(e,r,o,t),Ma(e,s,n||t);const i=o?Ya(e,t):void 0;return t&&Yr(!1),i}function Ya(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,ya);const{setup:r}=n;if(r){ht();const s=e.setupContext=r.length>1?eu(e):null,o=Tn(e),i=xn(r,e,0,[e.props,s]),l=si(i);if(pt(),o(),(l||e.sp)&&!Gt(e)&&qi(e),l){if(i.then(ro,ro),t)return i.then(c=>{so(e,c)}).catch(c=>{dr(c,e,0)});e.asyncDep=i}else so(e,i)}else pl(e)}function so(e,t,n){W(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:le(t)&&(e.setupState=Ni(t)),pl(e)}function pl(e,t,n){const r=e.type;e.render||(e.render=r.render||ot);{const s=Tn(e);ht();try{_a(e)}finally{pt(),s()}}}const Za={get(e,t){return be(e,"get",""),e[t]}};function eu(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Za),slots:e.slots,emit:e.emit,expose:t}}function gr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ni(Ss(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in pn)return pn[n](e)},has(t,n){return n in t||n in pn}})):e.proxy}function tu(e){return W(e)&&"__vccOpts"in e}const Me=(e,t)=>$c(e,t,An);function ml(e,t,n){try{tr(-1);const r=arguments.length;return r===2?le(t)&&!q(t)?Rn(t)?Ce(e,null,[t]):Ce(e,t):Ce(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Rn(n)&&(n=[n]),Ce(e,t,n))}finally{tr(1)}}const nu="3.5.26";let Zr;const oo=typeof window<"u"&&window.trustedTypes;if(oo)try{Zr=oo.createPolicy("vue",{createHTML:e=>e})}catch{}const gl=Zr?e=>Zr.createHTML(e):e=>e,ru="http://www.w3.org/2000/svg",su="http://www.w3.org/1998/Math/MathML",ut=typeof document<"u"?document:null,io=ut&&ut.createElement("template"),ou={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?ut.createElementNS(ru,e):t==="mathml"?ut.createElementNS(su,e):n?ut.createElement(e,{is:n}):ut.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>ut.createTextNode(e),createComment:e=>ut.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ut.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{io.innerHTML=gl(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=io.content;if(r==="svg"||r==="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]}},iu=Symbol("_vtc");function lu(e,t,n){const r=e[iu];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const lo=Symbol("_vod"),cu=Symbol("_vsh"),au=Symbol(""),uu=/(?:^|;)\s*display\s*:/;function fu(e,t,n){const r=e.style,s=de(n);let o=!1;if(n&&!s){if(t)if(de(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&$n(r,l,"")}else for(const i in t)n[i]==null&&$n(r,i,"");for(const i in n)i==="display"&&(o=!0),$n(r,i,n[i])}else if(s){if(t!==n){const i=r[au];i&&(n+=";"+i),r.cssText=n,o=uu.test(n)}}else t&&e.removeAttribute("style");lo in e&&(e[lo]=o?r.display:"",e[cu]&&(r.display="none"))}const co=/\s*!important$/;function $n(e,t,n){if(q(n))n.forEach(r=>$n(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=du(e,t);co.test(n)?e.setProperty(jt(r),n.replace(co,""),"important"):e[r]=n}}const ao=["Webkit","Moz","ms"],Ir={};function du(e,t){const n=Ir[t];if(n)return n;let r=xt(t);if(r!=="filter"&&r in e)return Ir[t]=r;r=li(r);for(let s=0;sDr||(gu.then(()=>Dr=0),Dr=Date.now());function _u(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;lt(bu(r,n.value),t,5,[r])};return n.value=e,n.attached=yu(),n}function bu(e,t){if(q(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const go=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Eu=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?lu(e,r,i):t==="style"?fu(e,n,r):or(t)?fs(t)||pu(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):wu(e,t,r,i))?(ho(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&fo(e,t,r,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!de(r))?ho(e,xt(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),fo(e,t,r,i))};function wu(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&go(t)&&W(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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return go(t)&&de(n)?!1:t in e}const yo=e=>{const t=e.props["onUpdate:modelValue"]||!1;return q(t)?n=>Bn(t,n):t};function Su(e){e.target.composing=!0}function _o(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Lr=Symbol("_assign");function bo(e,t,n){return t&&(e=e.trim()),n&&(e=hs(e)),e}const Nh={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Lr]=yo(s);const o=r||s.props&&s.props.type==="number";Vt(e,t?"change":"input",i=>{i.target.composing||e[Lr](bo(e.value,n,o))}),(n||o)&&Vt(e,"change",()=>{e.value=bo(e.value,n,o)}),t||(Vt(e,"compositionstart",Su),Vt(e,"compositionend",_o),Vt(e,"change",_o))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Lr]=yo(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?hs(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},Ru=["ctrl","shift","alt","meta"],Au={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Ru.some(n=>e[`${n}Key`]&&!t.includes(n))},Ih=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const t=Ou().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Cu(r);if(!s)return;const o=t._component;!W(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,Tu(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t});function Tu(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Cu(e){return de(e)?document.querySelector(e):e}let yl;const yr=e=>yl=e,_l=Symbol();function es(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var gn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(gn||(gn={}));function Pu(){const e=hi(!0),t=e.run(()=>Lt({}));let n=[],r=[];const s=Ss({install(o){yr(s),s._a=o,o.provide(_l,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const bl=()=>{};function wo(e,t,n,r=bl){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&pi()&&gc(s),s}function Ht(e,...t){e.forEach(n=>{n(...t)})}const Nu=e=>e(),So=Symbol(),Fr=Symbol();function ts(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];es(s)&&es(r)&&e.hasOwnProperty(n)&&!ce(r)&&!it(r)?e[n]=ts(s,r):e[n]=r}return e}const Iu=Symbol();function Du(e){return!es(e)||!Object.prototype.hasOwnProperty.call(e,Iu)}const{assign:Et}=Object;function Lu(e){return!!(ce(e)&&e.effect)}function Fu(e,t,n,r){const{state:s,actions:o,getters:i}=t,l=n.state.value[e];let c;function u(){l||(n.state.value[e]=s?s():{});const a=Bc(n.state.value[e]);return Et(a,o,Object.keys(i||{}).reduce((f,p)=>(f[p]=Ss(Me(()=>{yr(n);const m=n._s.get(e);return i[p].call(m,m)})),f),{}))}return c=El(e,u,t,n,r,!0),c}function El(e,t,n={},r,s,o){let i;const l=Et({actions:{}},n),c={deep:!0};let u,a,f=new Set,p=new Set,m;const g=r.state.value[e];!o&&!g&&(r.state.value[e]={}),Lt({});let b;function E(V){let U;u=a=!1,typeof V=="function"?(V(r.state.value[e]),U={type:gn.patchFunction,storeId:e,events:m}):(ts(r.state.value[e],V),U={type:gn.patchObject,payload:V,storeId:e,events:m});const ee=b=Symbol();Rs().then(()=>{b===ee&&(u=!0)}),a=!0,Ht(f,U,r.state.value[e])}const O=o?function(){const{state:U}=n,ee=U?U():{};this.$patch(ue=>{Et(ue,ee)})}:bl;function C(){i.stop(),f.clear(),p.clear(),r._s.delete(e)}const N=(V,U="")=>{if(So in V)return V[Fr]=U,V;const ee=function(){yr(r);const ue=Array.from(arguments),ye=new Set,pe=new Set;function Re(K){ye.add(K)}function Ve(K){pe.add(K)}Ht(p,{args:ue,name:ee[Fr],store:M,after:Re,onError:Ve});let J;try{J=V.apply(this&&this.$id===e?this:M,ue)}catch(K){throw Ht(pe,K),K}return J instanceof Promise?J.then(K=>(Ht(ye,K),K)).catch(K=>(Ht(pe,K),Promise.reject(K))):(Ht(ye,J),J)};return ee[So]=!0,ee[Fr]=U,ee},P={_p:r,$id:e,$onAction:wo.bind(null,p),$patch:E,$reset:O,$subscribe(V,U={}){const ee=wo(f,V,U.detached,()=>ue()),ue=i.run(()=>fn(()=>r.state.value[e],ye=>{(U.flush==="sync"?a:u)&&V({storeId:e,type:gn.direct,events:m},ye)},Et({},c,U)));return ee},$dispose:C},M=On(P);r._s.set(e,M);const k=(r._a&&r._a.runWithContext||Nu)(()=>r._e.run(()=>(i=hi()).run(()=>t({action:N}))));for(const V in k){const U=k[V];if(ce(U)&&!Lu(U)||it(U))o||(g&&Du(U)&&(ce(U)?U.value=g[V]:ts(U,g[V])),r.state.value[e][V]=U);else if(typeof U=="function"){const ee=N(U,V);k[V]=ee,l.actions[V]=U}}return Et(M,k),Et(Z(M),k),Object.defineProperty(M,"$state",{get:()=>r.state.value[e],set:V=>{E(U=>{Et(U,V)})}}),r._p.forEach(V=>{Et(M,i.run(()=>V({store:M,app:r._a,pinia:r,options:l})))}),g&&o&&n.hydrate&&n.hydrate(M.$state,g),u=!0,a=!0,M}function Mu(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,l){const c=Qc();return i=i||(c?ke(_l,null):null),i&&yr(i),i=yl,i._s.has(e)||(s?El(e,t,r,i):Fu(e,r,i)),i._s.get(e)}return o.$id=e,o}function Dh(e){const t=Z(e),n={};for(const r in t){const s=t[r];s.effect?n[r]=Me({get:()=>e[r],set(o){e[r]=o}}):(ce(s)||it(s))&&(n[r]=Vc(e,r))}return n}const Uu="modulepreload",ju=function(e){return"/"+e},Ro={},tt=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let c=function(u){return Promise.all(u.map(a=>Promise.resolve(a).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=c(n.map(u=>{if(u=ju(u),u in Ro)return;Ro[u]=!0;const a=u.endsWith(".css"),f=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const p=document.createElement("link");if(p.rel=a?"stylesheet":Uu,a||(p.as="script"),p.crossOrigin="",p.href=u,l&&p.setAttribute("nonce",l),document.head.appendChild(p),a)return new Promise((m,g)=>{p.addEventListener("load",m),p.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})};const qt=typeof document<"u";function wl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Bu(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&wl(e.default)}const te=Object.assign;function Mr(e,t){const n={};for(const r in t){const s=t[r];n[r]=We(s)?s.map(e):e(s)}return n}const yn=()=>{},We=Array.isArray;function Ao(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const Sl=/#/g,Hu=/&/g,ku=/\//g,Vu=/=/g,qu=/\?/g,Rl=/\+/g,$u=/%5B/g,Ku=/%5D/g,Al=/%5E/g,Wu=/%60/g,vl=/%7B/g,Gu=/%7C/g,Ol=/%7D/g,zu=/%20/g;function Ns(e){return e==null?"":encodeURI(""+e).replace(Gu,"|").replace($u,"[").replace(Ku,"]")}function Ju(e){return Ns(e).replace(vl,"{").replace(Ol,"}").replace(Al,"^")}function ns(e){return Ns(e).replace(Rl,"%2B").replace(zu,"+").replace(Sl,"%23").replace(Hu,"%26").replace(Wu,"`").replace(vl,"{").replace(Ol,"}").replace(Al,"^")}function Xu(e){return ns(e).replace(Vu,"%3D")}function Qu(e){return Ns(e).replace(Sl,"%23").replace(qu,"%3F")}function Yu(e){return Qu(e).replace(ku,"%2F")}function vn(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Zu=/\/$/,ef=e=>e.replace(Zu,"");function Ur(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return c=l>=0&&c>l?-1:c,c>=0&&(r=t.slice(0,c),o=t.slice(c,l>0?l:t.length),s=e(o.slice(1))),l>=0&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=sf(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:vn(i)}}function tf(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function vo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function nf(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&Xt(t.matched[r],n.matched[s])&&xl(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Xt(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function xl(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!rf(e[n],t[n]))return!1;return!0}function rf(e,t){return We(e)?Oo(e,t):We(t)?Oo(t,e):e?.valueOf()===t?.valueOf()}function Oo(e,t){return We(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function sf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const bt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let rs=(function(e){return e.pop="pop",e.push="push",e})({}),jr=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function of(e){if(!e)if(qt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),ef(e)}const lf=/^[^#]+#/;function cf(e,t){return e.replace(lf,"#")+t}function af(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const _r=()=>({left:window.scrollX,top:window.scrollY});function uf(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=af(s,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 xo(e,t){return(history.state?history.state.position-t:-1)+e}const ss=new Map;function ff(e,t){ss.set(e,t)}function df(e){const t=ss.get(e);return ss.delete(e),t}function hf(e){return typeof e=="string"||e&&typeof e=="object"}function Tl(e){return typeof e=="string"||typeof e=="symbol"}let ae=(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 Cl=Symbol("");ae.MATCHER_NOT_FOUND+"",ae.NAVIGATION_GUARD_REDIRECT+"",ae.NAVIGATION_ABORTED+"",ae.NAVIGATION_CANCELLED+"",ae.NAVIGATION_DUPLICATED+"";function Qt(e,t){return te(new Error,{type:e,[Cl]:!0},t)}function at(e,t){return e instanceof Error&&Cl in e&&(t==null||!!(e.type&t))}const pf=["params","query","hash"];function mf(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of pf)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function gf(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&ns(s)):[r&&ns(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function yf(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=We(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const _f=Symbol(""),Co=Symbol(""),br=Symbol(""),Is=Symbol(""),os=Symbol("");function sn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function At(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,c)=>{const u=p=>{p===!1?c(Qt(ae.NAVIGATION_ABORTED,{from:n,to:t})):p instanceof Error?c(p):hf(p)?c(Qt(ae.NAVIGATION_GUARD_REDIRECT,{from:t,to:p})):(i&&r.enterCallbacks[s]===i&&typeof p=="function"&&i.push(p),l())},a=o(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(a);e.length<3&&(f=f.then(u)),f.catch(p=>c(p))})}function Br(e,t,n,r,s=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(wl(c)){const u=(c.__vccOpts||c)[t];u&&o.push(At(u,n,r,i,l,s))}else{let u=c();o.push(()=>u.then(a=>{if(!a)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=Bu(a)?a.default:a;i.mods[l]=a,i.components[l]=f;const p=(f.__vccOpts||f)[t];return p&&At(p,n,r,i,l,s)()}))}}return o}function bf(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;iXt(u,l))?r.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(u=>Xt(u,c))||s.push(c))}return[n,r,s]}let Ef=()=>location.protocol+"//"+location.host;function Pl(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(i);return l[0]!=="/"&&(l="/"+l),vo(l,"")}return vo(n,e)+r+s}function wf(e,t,n,r){let s=[],o=[],i=null;const l=({state:p})=>{const m=Pl(e,location),g=n.value,b=t.value;let E=0;if(p){if(n.value=m,t.value=p,i&&i===g){i=null;return}E=b?p.position-b.position:0}else r(m);s.forEach(O=>{O(n.value,g,{delta:E,type:rs.pop,direction:E?E>0?jr.forward:jr.back:jr.unknown})})};function c(){i=n.value}function u(p){s.push(p);const m=()=>{const g=s.indexOf(p);g>-1&&s.splice(g,1)};return o.push(m),m}function a(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(te({},p.state,{scroll:_r()}),"")}}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,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?_r():null}}function Sf(e){const{history:t,location:n}=window,r={value:Pl(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.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:Ef()+e+c;try{t[a?"replaceState":"pushState"](u,"",p),s.value=u}catch(m){console.error(m),n[a?"replace":"assign"](p)}}function i(c,u){o(c,te({},t.state,Po(s.value.back,c,s.value.forward,!0),u,{position:s.value.position}),!0),r.value=c}function l(c,u){const a=te({},s.value,t.state,{forward:c,scroll:_r()});o(a.current,a,!0),o(c,te({},Po(r.value,c,null),{position:a.position+1},u),!1),r.value=c}return{location:r,state:s,push:l,replace:i}}function Rf(e){e=of(e);const t=Sf(e),n=wf(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=te({location:"",base:e,go:r,createHref:cf.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function Af(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),Rf(e)}let Nt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var ge=(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})(ge||{});const vf={type:Nt.Static,value:""},Of=/[a-zA-Z0-9_]/;function xf(e){if(!e)return[[]];if(e==="/")return[[vf]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${u}": ${m}`)}let n=ge.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,c,u="",a="";function f(){u&&(n===ge.Static?o.push({type:Nt.Static,value:u}):n===ge.Param||n===ge.ParamRegExp||n===ge.ParamRegExpEnd?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:Nt.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]===Oe.Static+Oe.Segment?1:-1:0}function Nl(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const If={strict:!1,end:!0,sensitive:!1};function Df(e,t,n){const r=Pf(xf(e.path),n),s=te(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function Lf(e,t){const n=[],r=new Map;t=Ao(If,t);function s(f){return r.get(f)}function o(f,p,m){const g=!m,b=Lo(f);b.aliasOf=m&&m.record;const E=Ao(t,f),O=[b];if("alias"in f){const P=typeof f.alias=="string"?[f.alias]:f.alias;for(const M of P)O.push(Lo(te({},b,{components:m?m.record.components:b.components,path:M,aliasOf:m?m.record:b})))}let C,N;for(const P of O){const{path:M}=P;if(p&&M[0]!=="/"){const X=p.record.path,k=X[X.length-1]==="/"?"":"/";P.path=p.record.path+(M&&k+M)}if(C=Df(P,p,E),m?m.alias.push(C):(N=N||C,N!==C&&N.alias.push(C),g&&f.name&&!Fo(C)&&i(f.name)),Il(C)&&c(C),b.children){const X=b.children;for(let k=0;k{i(N)}:yn}function i(f){if(Tl(f)){const p=r.get(f);p&&(r.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&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function c(f){const p=Uf(f,n);n.splice(p,0,f),f.record.name&&!Fo(f)&&r.set(f.record.name,f)}function u(f,p){let m,g={},b,E;if("name"in f&&f.name){if(m=r.get(f.name),!m)throw Qt(ae.MATCHER_NOT_FOUND,{location:f});E=m.record.name,g=te(Do(p.params,m.keys.filter(N=>!N.optional).concat(m.parent?m.parent.keys.filter(N=>N.optional):[]).map(N=>N.name)),f.params&&Do(f.params,m.keys.map(N=>N.name))),b=m.stringify(g)}else if(f.path!=null)b=f.path,m=n.find(N=>N.re.test(b)),m&&(g=m.parse(b),E=m.record.name);else{if(m=p.name?r.get(p.name):n.find(N=>N.re.test(p.path)),!m)throw Qt(ae.MATCHER_NOT_FOUND,{location:f,currentLocation:p});E=m.record.name,g=te({},p.params,f.params),b=m.stringify(g)}const O=[];let C=m;for(;C;)O.unshift(C.record),C=C.parent;return{name:E,path:b,params:g,matched:O,meta:Mf(O)}}e.forEach(f=>o(f));function a(){n.length=0,r.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:a,getRoutes:l,getRecordMatcher:s}}function Do(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function Lo(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Ff(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 Ff(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function Fo(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Mf(e){return e.reduce((t,n)=>te(t,n.meta),{})}function Uf(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;Nl(e,t[o])<0?r=o:n=o+1}const s=jf(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function jf(e){let t=e;for(;t=t.parent;)if(Il(t)&&Nl(e,t)===0)return t}function Il({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Mo(e){const t=ke(br),n=ke(Is),r=Me(()=>{const c=Ot(e.to);return t.resolve(c)}),s=Me(()=>{const{matched:c}=r.value,{length:u}=c,a=c[u-1],f=n.matched;if(!a||!f.length)return-1;const p=f.findIndex(Xt.bind(null,a));if(p>-1)return p;const m=Uo(c[u-2]);return u>1&&Uo(a)===m&&f[f.length-1].path!==m?f.findIndex(Xt.bind(null,c[u-2])):p}),o=Me(()=>s.value>-1&&qf(n.params,r.value.params)),i=Me(()=>s.value>-1&&s.value===n.matched.length-1&&xl(n.params,r.value.params));function l(c={}){if(Vf(c)){const u=t[Ot(e.replace)?"replace":"push"](Ot(e.to)).catch(yn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Me(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function Bf(e){return e.length===1?e[0]:e}const Hf=Os({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=On(Mo(e)),{options:r}=ke(br),s=Me(()=>({[jo(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[jo(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&Bf(t.default(n));return e.custom?o:ml("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),kf=Hf;function Vf(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 qf(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!We(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function Uo(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const jo=(e,t,n)=>e??t??n,$f=Os({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=ke(os),s=Me(()=>e.route||r.value),o=ke(Co,0),i=Me(()=>{let u=Ot(o);const{matched:a}=s.value;let f;for(;(f=a[u])&&!f.components;)u++;return u}),l=Me(()=>s.value.matched[i.value]);Hn(Co,Me(()=>i.value+1)),Hn(_f,l),Hn(os,s);const c=Lt();return fn(()=>[c.value,l.value,e.name],([u,a,f],[p,m,g])=>{a&&(a.instances[f]=u,m&&m!==a&&u&&u===p&&(a.leaveGuards.size||(a.leaveGuards=m.leaveGuards),a.updateGuards.size||(a.updateGuards=m.updateGuards))),u&&a&&(!m||!Xt(a,m)||!p)&&(a.enterCallbacks[f]||[]).forEach(b=>b(u))},{flush:"post"}),()=>{const u=s.value,a=e.name,f=l.value,p=f&&f.components[a];if(!p)return Bo(n.default,{Component:p,route:u});const m=f.props[a],g=m?m===!0?u.params:typeof m=="function"?m(u):m:null,E=ml(p,te({},g,t,{onVnodeUnmounted:O=>{O.component.isUnmounted&&(f.instances[a]=null)},ref:c}));return Bo(n.default,{Component:E,route:u})||E}}});function Bo(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Dl=$f;function Kf(e){const t=Lf(e.routes,e),n=e.parseQuery||gf,r=e.stringifyQuery||To,s=e.history,o=sn(),i=sn(),l=sn(),c=Mc(bt);let u=bt;qt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const a=Mr.bind(null,R=>""+R),f=Mr.bind(null,Yu),p=Mr.bind(null,vn);function m(R,F){let D,j;return Tl(R)?(D=t.getRecordMatcher(R),j=F):j=R,t.addRoute(j,D)}function g(R){const F=t.getRecordMatcher(R);F&&t.removeRoute(F)}function b(){return t.getRoutes().map(R=>R.record)}function E(R){return!!t.getRecordMatcher(R)}function O(R,F){if(F=te({},F||c.value),typeof R=="string"){const y=Ur(n,R,F.path),w=t.resolve({path:y.path},F),A=s.createHref(y.fullPath);return te(y,w,{params:p(w.params),hash:vn(y.hash),redirectedFrom:void 0,href:A})}let D;if(R.path!=null)D=te({},R,{path:Ur(n,R.path,F.path).path});else{const y=te({},R.params);for(const w in y)y[w]==null&&delete y[w];D=te({},R,{params:f(y)}),F.params=f(F.params)}const j=t.resolve(D,F),Q=R.hash||"";j.params=a(p(j.params));const d=tf(r,te({},R,{hash:Ju(Q),path:j.path})),h=s.createHref(d);return te({fullPath:d,hash:Q,query:r===To?yf(R.query):R.query||{}},j,{redirectedFrom:void 0,href:h})}function C(R){return typeof R=="string"?Ur(n,R,c.value.path):te({},R)}function N(R,F){if(u!==R)return Qt(ae.NAVIGATION_CANCELLED,{from:F,to:R})}function P(R){return k(R)}function M(R){return P(te(C(R),{replace:!0}))}function X(R,F){const D=R.matched[R.matched.length-1];if(D&&D.redirect){const{redirect:j}=D;let Q=typeof j=="function"?j(R,F):j;return typeof Q=="string"&&(Q=Q.includes("?")||Q.includes("#")?Q=C(Q):{path:Q},Q.params={}),te({query:R.query,hash:R.hash,params:Q.path!=null?{}:R.params},Q)}}function k(R,F){const D=u=O(R),j=c.value,Q=R.state,d=R.force,h=R.replace===!0,y=X(D,j);if(y)return k(te(C(y),{state:typeof y=="object"?te({},Q,y.state):Q,force:d,replace:h}),F||D);const w=D;w.redirectedFrom=F;let A;return!d&&nf(r,j,D)&&(A=Qt(ae.NAVIGATION_DUPLICATED,{to:w,from:j}),me(j,j,!0,!1)),(A?Promise.resolve(A):ee(w,j)).catch(S=>at(S)?at(S,ae.NAVIGATION_GUARD_REDIRECT)?S:ze(S):z(S,w,j)).then(S=>{if(S){if(at(S,ae.NAVIGATION_GUARD_REDIRECT))return k(te({replace:h},C(S.to),{state:typeof S.to=="object"?te({},Q,S.to.state):Q,force:d}),F||w)}else S=ye(w,j,!0,h,Q);return ue(w,j,S),S})}function V(R,F){const D=N(R,F);return D?Promise.reject(D):Promise.resolve()}function U(R){const F=qe.values().next().value;return F&&typeof F.runWithContext=="function"?F.runWithContext(R):R()}function ee(R,F){let D;const[j,Q,d]=bf(R,F);D=Br(j.reverse(),"beforeRouteLeave",R,F);for(const y of j)y.leaveGuards.forEach(w=>{D.push(At(w,R,F))});const h=V.bind(null,R,F);return D.push(h),He(D).then(()=>{D=[];for(const y of o.list())D.push(At(y,R,F));return D.push(h),He(D)}).then(()=>{D=Br(Q,"beforeRouteUpdate",R,F);for(const y of Q)y.updateGuards.forEach(w=>{D.push(At(w,R,F))});return D.push(h),He(D)}).then(()=>{D=[];for(const y of d)if(y.beforeEnter)if(We(y.beforeEnter))for(const w of y.beforeEnter)D.push(At(w,R,F));else D.push(At(y.beforeEnter,R,F));return D.push(h),He(D)}).then(()=>(R.matched.forEach(y=>y.enterCallbacks={}),D=Br(d,"beforeRouteEnter",R,F,U),D.push(h),He(D))).then(()=>{D=[];for(const y of i.list())D.push(At(y,R,F));return D.push(h),He(D)}).catch(y=>at(y,ae.NAVIGATION_CANCELLED)?y:Promise.reject(y))}function ue(R,F,D){l.list().forEach(j=>U(()=>j(R,F,D)))}function ye(R,F,D,j,Q){const d=N(R,F);if(d)return d;const h=F===bt,y=qt?history.state:{};D&&(j||h?s.replace(R.fullPath,te({scroll:h&&y&&y.scroll},Q)):s.push(R.fullPath,Q)),c.value=R,me(R,F,D,h),ze()}let pe;function Re(){pe||(pe=s.listen((R,F,D)=>{if(!Xe.listening)return;const j=O(R),Q=X(j,Xe.currentRoute.value);if(Q){k(te(Q,{replace:!0,force:!0}),j).catch(yn);return}u=j;const d=c.value;qt&&ff(xo(d.fullPath,D.delta),_r()),ee(j,d).catch(h=>at(h,ae.NAVIGATION_ABORTED|ae.NAVIGATION_CANCELLED)?h:at(h,ae.NAVIGATION_GUARD_REDIRECT)?(k(te(C(h.to),{force:!0}),j).then(y=>{at(y,ae.NAVIGATION_ABORTED|ae.NAVIGATION_DUPLICATED)&&!D.delta&&D.type===rs.pop&&s.go(-1,!1)}).catch(yn),Promise.reject()):(D.delta&&s.go(-D.delta,!1),z(h,j,d))).then(h=>{h=h||ye(j,d,!1),h&&(D.delta&&!at(h,ae.NAVIGATION_CANCELLED)?s.go(-D.delta,!1):D.type===rs.pop&&at(h,ae.NAVIGATION_ABORTED|ae.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),ue(j,d,h)}).catch(yn)}))}let Ve=sn(),J=sn(),K;function z(R,F,D){ze(R);const j=J.list();return j.length?j.forEach(Q=>Q(R,F,D)):console.error(R),Promise.reject(R)}function Be(){return K&&c.value!==bt?Promise.resolve():new Promise((R,F)=>{Ve.add([R,F])})}function ze(R){return K||(K=!R,Re(),Ve.list().forEach(([F,D])=>R?D(R):F()),Ve.reset()),R}function me(R,F,D,j){const{scrollBehavior:Q}=e;if(!qt||!Q)return Promise.resolve();const d=!D&&df(xo(R.fullPath,0))||(j||!D)&&history.state&&history.state.scroll||null;return Rs().then(()=>Q(R,F,d)).then(h=>h&&uf(h)).catch(h=>z(h,R,F))}const fe=R=>s.go(R);let Je;const qe=new Set,Xe={currentRoute:c,listening:!0,addRoute:m,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:E,getRoutes:b,resolve:O,options:e,push:P,replace:M,go:fe,back:()=>fe(-1),forward:()=>fe(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:J.add,isReady:Be,install(R){R.component("RouterLink",kf),R.component("RouterView",Dl),R.config.globalProperties.$router=Xe,Object.defineProperty(R.config.globalProperties,"$route",{enumerable:!0,get:()=>Ot(c)}),qt&&!Je&&c.value===bt&&(Je=!0,P(s.location).catch(j=>{}));const F={};for(const j in bt)Object.defineProperty(F,j,{get:()=>c.value[j],enumerable:!0});R.provide(br,Xe),R.provide(Is,Ci(F)),R.provide(os,c);const D=R.unmount;qe.add(R),R.unmount=function(){qe.delete(R),qe.size<1&&(u=bt,pe&&pe(),pe=null,c.value=bt,Je=!1,K=!1),D()}}};function He(R){return R.reduce((F,D)=>F.then(()=>U(D)),Promise.resolve())}return Xe}function Lh(){return ke(br)}function Fh(e){return ke(Is)}function Ll(e,t){return function(){return e.apply(t,arguments)}}const{toString:Wf}=Object.prototype,{getPrototypeOf:Ds}=Object,{iterator:Er,toStringTag:Fl}=Symbol,wr=(e=>t=>{const n=Wf.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ge=e=>(e=e.toLowerCase(),t=>wr(t)===e),Sr=e=>t=>typeof t===e,{isArray:Zt}=Array,Yt=Sr("undefined");function Cn(e){return e!==null&&!Yt(e)&&e.constructor!==null&&!Yt(e.constructor)&&Ie(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Ml=Ge("ArrayBuffer");function Gf(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Ml(e.buffer),t}const zf=Sr("string"),Ie=Sr("function"),Ul=Sr("number"),Pn=e=>e!==null&&typeof e=="object",Jf=e=>e===!0||e===!1,Kn=e=>{if(wr(e)!=="object")return!1;const t=Ds(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Fl in e)&&!(Er in e)},Xf=e=>{if(!Pn(e)||Cn(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},Qf=Ge("Date"),Yf=Ge("File"),Zf=Ge("Blob"),ed=Ge("FileList"),td=e=>Pn(e)&&Ie(e.pipe),nd=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Ie(e.append)&&((t=wr(e))==="formdata"||t==="object"&&Ie(e.toString)&&e.toString()==="[object FormData]"))},rd=Ge("URLSearchParams"),[sd,od,id,ld]=["ReadableStream","Request","Response","Headers"].map(Ge),cd=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Nn(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),Zt(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const It=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Bl=e=>!Yt(e)&&e!==It;function is(){const{caseless:e,skipUndefined:t}=Bl(this)&&this||{},n={},r=(s,o)=>{const i=e&&jl(n,o)||o;Kn(n[i])&&Kn(s)?n[i]=is(n[i],s):Kn(s)?n[i]=is({},s):Zt(s)?n[i]=s.slice():(!t||!Yt(s))&&(n[i]=s)};for(let s=0,o=arguments.length;s(Nn(t,(s,o)=>{n&&Ie(s)?e[o]=Ll(s,n):e[o]=s},{allOwnKeys:r}),e),ud=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),fd=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},dd=(e,t,n,r)=>{let s,o,i;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&Ds(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},hd=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},pd=e=>{if(!e)return null;if(Zt(e))return e;let t=e.length;if(!Ul(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},md=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Ds(Uint8Array)),gd=(e,t)=>{const r=(e&&e[Er]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},yd=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},_d=Ge("HTMLFormElement"),bd=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),Ho=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Ed=Ge("RegExp"),Hl=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Nn(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},wd=e=>{Hl(e,(t,n)=>{if(Ie(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Ie(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Sd=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return Zt(e)?r(e):r(String(e).split(t)),n},Rd=()=>{},Ad=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function vd(e){return!!(e&&Ie(e.append)&&e[Fl]==="FormData"&&e[Er])}const Od=e=>{const t=new Array(10),n=(r,s)=>{if(Pn(r)){if(t.indexOf(r)>=0)return;if(Cn(r))return r;if(!("toJSON"in r)){t[s]=r;const o=Zt(r)?[]:{};return Nn(r,(i,l)=>{const c=n(i,s+1);!Yt(c)&&(o[l]=c)}),t[s]=void 0,o}}return r};return n(e,0)},xd=Ge("AsyncFunction"),Td=e=>e&&(Pn(e)||Ie(e))&&Ie(e.then)&&Ie(e.catch),kl=((e,t)=>e?setImmediate:t?((n,r)=>(It.addEventListener("message",({source:s,data:o})=>{s===It&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),It.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Ie(It.postMessage)),Cd=typeof queueMicrotask<"u"?queueMicrotask.bind(It):typeof process<"u"&&process.nextTick||kl,Pd=e=>e!=null&&Ie(e[Er]),_={isArray:Zt,isArrayBuffer:Ml,isBuffer:Cn,isFormData:nd,isArrayBufferView:Gf,isString:zf,isNumber:Ul,isBoolean:Jf,isObject:Pn,isPlainObject:Kn,isEmptyObject:Xf,isReadableStream:sd,isRequest:od,isResponse:id,isHeaders:ld,isUndefined:Yt,isDate:Qf,isFile:Yf,isBlob:Zf,isRegExp:Ed,isFunction:Ie,isStream:td,isURLSearchParams:rd,isTypedArray:md,isFileList:ed,forEach:Nn,merge:is,extend:ad,trim:cd,stripBOM:ud,inherits:fd,toFlatObject:dd,kindOf:wr,kindOfTest:Ge,endsWith:hd,toArray:pd,forEachEntry:gd,matchAll:yd,isHTMLForm:_d,hasOwnProperty:Ho,hasOwnProp:Ho,reduceDescriptors:Hl,freezeMethods:wd,toObjectSet:Sd,toCamelCase:bd,noop:Rd,toFiniteNumber:Ad,findKey:jl,global:It,isContextDefined:Bl,isSpecCompliantForm:vd,toJSONObject:Od,isAsyncFn:xd,isThenable:Td,setImmediate:kl,asap:Cd,isIterable:Pd};function G(e,t,n,r,s){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),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}_.inherits(G,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:_.toJSONObject(this.config),code:this.code,status:this.status}}});const Vl=G.prototype,ql={};["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=>{ql[e]={value:e}});Object.defineProperties(G,ql);Object.defineProperty(Vl,"isAxiosError",{value:!0});G.from=(e,t,n,r,s,o)=>{const i=Object.create(Vl);_.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 G.call(i,l,c,n,r,s),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 Nd=null;function ls(e){return _.isPlainObject(e)||_.isArray(e)}function $l(e){return _.endsWith(e,"[]")?e.slice(0,-2):e}function ko(e,t,n){return e?e.concat(t).map(function(s,o){return s=$l(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function Id(e){return _.isArray(e)&&!e.some(ls)}const Dd=_.toFlatObject(_,{},null,function(t){return/^is[A-Z]/.test(t)});function Rr(e,t,n){if(!_.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=_.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(b,E){return!_.isUndefined(E[b])});const r=n.metaTokens,s=n.visitor||a,o=n.dots,i=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&_.isSpecCompliantForm(t);if(!_.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(_.isDate(g))return g.toISOString();if(_.isBoolean(g))return g.toString();if(!c&&_.isBlob(g))throw new G("Blob is not supported. Use a Buffer instead.");return _.isArrayBuffer(g)||_.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function a(g,b,E){let O=g;if(g&&!E&&typeof g=="object"){if(_.endsWith(b,"{}"))b=r?b:b.slice(0,-2),g=JSON.stringify(g);else if(_.isArray(g)&&Id(g)||(_.isFileList(g)||_.endsWith(b,"[]"))&&(O=_.toArray(g)))return b=$l(b),O.forEach(function(N,P){!(_.isUndefined(N)||N===null)&&t.append(i===!0?ko([b],P,o):i===null?b:b+"[]",u(N))}),!1}return ls(g)?!0:(t.append(ko(E,b,o),u(g)),!1)}const f=[],p=Object.assign(Dd,{defaultVisitor:a,convertValue:u,isVisitable:ls});function m(g,b){if(!_.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+b.join("."));f.push(g),_.forEach(g,function(O,C){(!(_.isUndefined(O)||O===null)&&s.call(t,O,_.isString(C)?C.trim():C,b,p))===!0&&m(O,b?b.concat(C):[C])}),f.pop()}}if(!_.isObject(e))throw new TypeError("data must be an object");return m(e),t}function Vo(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Ls(e,t){this._pairs=[],e&&Rr(e,this,t)}const Kl=Ls.prototype;Kl.append=function(t,n){this._pairs.push([t,n])};Kl.toString=function(t){const n=t?function(r){return t.call(this,r,Vo)}:Vo;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Ld(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Wl(e,t,n){if(!t)return e;const r=n&&n.encode||Ld;_.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=_.isURLSearchParams(t)?t.toString():new Ls(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class qo{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){_.forEach(this.handlers,function(r){r!==null&&t(r)})}}const Gl={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Fd=typeof URLSearchParams<"u"?URLSearchParams:Ls,Md=typeof FormData<"u"?FormData:null,Ud=typeof Blob<"u"?Blob:null,jd={isBrowser:!0,classes:{URLSearchParams:Fd,FormData:Md,Blob:Ud},protocols:["http","https","file","blob","url","data"]},Fs=typeof window<"u"&&typeof document<"u",cs=typeof navigator=="object"&&navigator||void 0,Bd=Fs&&(!cs||["ReactNative","NativeScript","NS"].indexOf(cs.product)<0),Hd=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",kd=Fs&&window.location.href||"http://localhost",Vd=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Fs,hasStandardBrowserEnv:Bd,hasStandardBrowserWebWorkerEnv:Hd,navigator:cs,origin:kd},Symbol.toStringTag,{value:"Module"})),Ee={...Vd,...jd};function qd(e,t){return Rr(e,new Ee.classes.URLSearchParams,{visitor:function(n,r,s,o){return Ee.isNode&&_.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function $d(e){return _.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Kd(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&_.isArray(s)?s.length:i,c?(_.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!l):((!s[i]||!_.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&_.isArray(s[i])&&(s[i]=Kd(s[i])),!l)}if(_.isFormData(e)&&_.isFunction(e.entries)){const n={};return _.forEachEntry(e,(r,s)=>{t($d(r),s,n,0)}),n}return null}function Wd(e,t,n){if(_.isString(e))try{return(t||JSON.parse)(e),_.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const In={transitional:Gl,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=_.isObject(t);if(o&&_.isHTMLForm(t)&&(t=new FormData(t)),_.isFormData(t))return s?JSON.stringify(zl(t)):t;if(_.isArrayBuffer(t)||_.isBuffer(t)||_.isStream(t)||_.isFile(t)||_.isBlob(t)||_.isReadableStream(t))return t;if(_.isArrayBufferView(t))return t.buffer;if(_.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return qd(t,this.formSerializer).toString();if((l=_.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return Rr(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),Wd(t)):t}],transformResponse:[function(t){const n=this.transitional||In.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(_.isResponse(t)||_.isReadableStream(t))return t;if(t&&_.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(i)throw l.name==="SyntaxError"?G.from(l,G.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:Ee.classes.FormData,Blob:Ee.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};_.forEach(["delete","get","head","post","put","patch"],e=>{In.headers[e]={}});const Gd=_.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"]),zd=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&Gd[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},$o=Symbol("internals");function on(e){return e&&String(e).trim().toLowerCase()}function Wn(e){return e===!1||e==null?e:_.isArray(e)?e.map(Wn):String(e)}function Jd(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const Xd=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Hr(e,t,n,r,s){if(_.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!_.isString(t)){if(_.isString(r))return t.indexOf(r)!==-1;if(_.isRegExp(r))return r.test(t)}}function Qd(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Yd(e,t){const n=_.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let De=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(l,c,u){const a=on(c);if(!a)throw new Error("header name must be a non-empty string");const f=_.findKey(s,a);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||c]=Wn(l))}const i=(l,c)=>_.forEach(l,(u,a)=>o(u,a,c));if(_.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(_.isString(t)&&(t=t.trim())&&!Xd(t))i(zd(t),n);else if(_.isObject(t)&&_.isIterable(t)){let l={},c,u;for(const a of t){if(!_.isArray(a))throw TypeError("Object iterator must return a key-value pair");l[u=a[0]]=(c=l[u])?_.isArray(c)?[...c,a[1]]:[c,a[1]]:a[1]}i(l,n)}else t!=null&&o(n,t,r);return this}get(t,n){if(t=on(t),t){const r=_.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return Jd(s);if(_.isFunction(n))return n.call(this,s,r);if(_.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=on(t),t){const r=_.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Hr(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=on(i),i){const l=_.findKey(r,i);l&&(!n||Hr(r,r[l],l,n))&&(delete r[l],s=!0)}}return _.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||Hr(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return _.forEach(this,(s,o)=>{const i=_.findKey(r,o);if(i){n[i]=Wn(s),delete n[o];return}const l=t?Qd(o):String(o).trim();l!==o&&delete n[o],n[l]=Wn(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return _.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&_.isArray(r)?r.join(", "):r)}),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 r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[$o]=this[$o]={accessors:{}}).accessors,s=this.prototype;function o(i){const l=on(i);r[l]||(Yd(s,i),r[l]=!0)}return _.isArray(t)?t.forEach(o):o(t),this}};De.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);_.reduceDescriptors(De.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});_.freezeMethods(De);function kr(e,t){const n=this||In,r=t||n,s=De.from(r.headers);let o=r.data;return _.forEach(e,function(l){o=l.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function Jl(e){return!!(e&&e.__CANCEL__)}function en(e,t,n){G.call(this,e??"canceled",G.ERR_CANCELED,t,n),this.name="CanceledError"}_.inherits(en,G,{__CANCEL__:!0});function Xl(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new G("Request failed with status code "+n.status,[G.ERR_BAD_REQUEST,G.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function Zd(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function eh(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),a=r[o];i||(i=u),n[s]=c,r[s]=u;let f=o,p=0;for(;f!==s;)p+=n[f++],f=f%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i{n=a,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const a=Date.now(),f=a-n;f>=r?i(u,a):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-f)))},()=>s&&i(s)]}const sr=(e,t,n=3)=>{let r=0;const s=eh(50,250);return th(o=>{const i=o.loaded,l=o.lengthComputable?o.total:void 0,c=i-r,u=s(c),a=i<=l;r=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)},Ko=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Wo=e=>(...t)=>_.asap(()=>e(...t)),nh=Ee.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Ee.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Ee.origin),Ee.navigator&&/(msie|trident)/i.test(Ee.navigator.userAgent)):()=>!0,rh=Ee.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];_.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),_.isString(r)&&l.push(`path=${r}`),_.isString(s)&&l.push(`domain=${s}`),o===!0&&l.push("secure"),_.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 sh(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function oh(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Ql(e,t,n){let r=!sh(t);return e&&(r||n==!1)?oh(e,t):t}const Go=e=>e instanceof De?{...e}:e;function Ut(e,t){t=t||{};const n={};function r(u,a,f,p){return _.isPlainObject(u)&&_.isPlainObject(a)?_.merge.call({caseless:p},u,a):_.isPlainObject(a)?_.merge({},a):_.isArray(a)?a.slice():a}function s(u,a,f,p){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u,f,p)}else return r(u,a,f,p)}function o(u,a){if(!_.isUndefined(a))return r(void 0,a)}function i(u,a){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u)}else return r(void 0,a)}function l(u,a,f){if(f in t)return r(u,a);if(f in e)return r(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)=>s(Go(u),Go(a),f,!0)};return _.forEach(Object.keys({...e,...t}),function(a){const f=c[a]||s,p=f(e[a],t[a],a);_.isUndefined(p)&&f!==l||(n[a]=p)}),n}const Yl=e=>{const t=Ut({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:l}=t;if(t.headers=i=De.from(i),t.url=Wl(Ql(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&i.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),_.isFormData(n)){if(Ee.hasStandardBrowserEnv||Ee.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(_.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(Ee.hasStandardBrowserEnv&&(r&&_.isFunction(r)&&(r=r(t)),r||r!==!1&&nh(t.url))){const c=s&&o&&rh.read(o);c&&i.set(s,c)}return t},ih=typeof XMLHttpRequest<"u",lh=ih&&function(e){return new Promise(function(n,r){const s=Yl(e);let o=s.data;const i=De.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,a,f,p,m,g;function b(){m&&m(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(a),s.signal&&s.signal.removeEventListener("abort",a)}let E=new XMLHttpRequest;E.open(s.method.toUpperCase(),s.url,!0),E.timeout=s.timeout;function O(){if(!E)return;const N=De.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),M={data:!l||l==="text"||l==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:N,config:e,request:E};Xl(function(k){n(k),b()},function(k){r(k),b()},M),E=null}"onloadend"in E?E.onloadend=O:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.indexOf("file:")===0)||setTimeout(O)},E.onabort=function(){E&&(r(new G("Request aborted",G.ECONNABORTED,e,E)),E=null)},E.onerror=function(P){const M=P&&P.message?P.message:"Network Error",X=new G(M,G.ERR_NETWORK,e,E);X.event=P||null,r(X),E=null},E.ontimeout=function(){let P=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const M=s.transitional||Gl;s.timeoutErrorMessage&&(P=s.timeoutErrorMessage),r(new G(P,M.clarifyTimeoutError?G.ETIMEDOUT:G.ECONNABORTED,e,E)),E=null},o===void 0&&i.setContentType(null),"setRequestHeader"in E&&_.forEach(i.toJSON(),function(P,M){E.setRequestHeader(M,P)}),_.isUndefined(s.withCredentials)||(E.withCredentials=!!s.withCredentials),l&&l!=="json"&&(E.responseType=s.responseType),u&&([p,g]=sr(u,!0),E.addEventListener("progress",p)),c&&E.upload&&([f,m]=sr(c),E.upload.addEventListener("progress",f),E.upload.addEventListener("loadend",m)),(s.cancelToken||s.signal)&&(a=N=>{E&&(r(!N||N.type?new en(null,e,E):N),E.abort(),E=null)},s.cancelToken&&s.cancelToken.subscribe(a),s.signal&&(s.signal.aborted?a():s.signal.addEventListener("abort",a)));const C=Zd(s.url);if(C&&Ee.protocols.indexOf(C)===-1){r(new G("Unsupported protocol "+C+":",G.ERR_BAD_REQUEST,e));return}E.send(o||null)})},ch=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,l();const a=u instanceof Error?u:this.reason;r.abort(a instanceof G?a:new en(a instanceof Error?a.message:a))}};let i=t&&setTimeout(()=>{i=null,o(new G(`timeout ${t} of ms exceeded`,G.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}=r;return c.unsubscribe=()=>_.asap(l),c}},ah=function*(e,t){let n=e.byteLength;if(n{const s=uh(e,t);let o=0,i,l=c=>{i||(i=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:a}=await s.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),s.return()}},{highWaterMark:2})},Jo=64*1024,{isFunction:Un}=_,dh=(({Request:e,Response:t})=>({Request:e,Response:t}))(_.global),{ReadableStream:Xo,TextEncoder:Qo}=_.global,Yo=(e,...t)=>{try{return!!e(...t)}catch{return!1}},hh=e=>{e=_.merge.call({skipUndefined:!0},dh,e);const{fetch:t,Request:n,Response:r}=e,s=t?Un(t):typeof fetch=="function",o=Un(n),i=Un(r);if(!s)return!1;const l=s&&Un(Xo),c=s&&(typeof Qo=="function"?(g=>b=>g.encode(b))(new Qo):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=o&&l&&Yo(()=>{let g=!1;const b=new n(Ee.origin,{body:new Xo,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!b}),a=i&&l&&Yo(()=>_.isReadableStream(new r("").body)),f={stream:a&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(b,E)=>{let O=b&&b[g];if(O)return O.call(b);throw new G(`Response type '${g}' is not supported`,G.ERR_NOT_SUPPORT,E)})});const p=async g=>{if(g==null)return 0;if(_.isBlob(g))return g.size;if(_.isSpecCompliantForm(g))return(await new n(Ee.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(_.isArrayBufferView(g)||_.isArrayBuffer(g))return g.byteLength;if(_.isURLSearchParams(g)&&(g=g+""),_.isString(g))return(await c(g)).byteLength},m=async(g,b)=>{const E=_.toFiniteNumber(g.getContentLength());return E??p(b)};return async g=>{let{url:b,method:E,data:O,signal:C,cancelToken:N,timeout:P,onDownloadProgress:M,onUploadProgress:X,responseType:k,headers:V,withCredentials:U="same-origin",fetchOptions:ee}=Yl(g),ue=t||fetch;k=k?(k+"").toLowerCase():"text";let ye=ch([C,N&&N.toAbortSignal()],P),pe=null;const Re=ye&&ye.unsubscribe&&(()=>{ye.unsubscribe()});let Ve;try{if(X&&u&&E!=="get"&&E!=="head"&&(Ve=await m(V,O))!==0){let me=new n(b,{method:"POST",body:O,duplex:"half"}),fe;if(_.isFormData(O)&&(fe=me.headers.get("content-type"))&&V.setContentType(fe),me.body){const[Je,qe]=Ko(Ve,sr(Wo(X)));O=zo(me.body,Jo,Je,qe)}}_.isString(U)||(U=U?"include":"omit");const J=o&&"credentials"in n.prototype,K={...ee,signal:ye,method:E.toUpperCase(),headers:V.normalize().toJSON(),body:O,duplex:"half",credentials:J?U:void 0};pe=o&&new n(b,K);let z=await(o?ue(pe,ee):ue(b,K));const Be=a&&(k==="stream"||k==="response");if(a&&(M||Be&&Re)){const me={};["status","statusText","headers"].forEach(Xe=>{me[Xe]=z[Xe]});const fe=_.toFiniteNumber(z.headers.get("content-length")),[Je,qe]=M&&Ko(fe,sr(Wo(M),!0))||[];z=new r(zo(z.body,Jo,Je,()=>{qe&&qe(),Re&&Re()}),me)}k=k||"text";let ze=await f[_.findKey(f,k)||"text"](z,g);return!Be&&Re&&Re(),await new Promise((me,fe)=>{Xl(me,fe,{data:ze,headers:De.from(z.headers),status:z.status,statusText:z.statusText,config:g,request:pe})})}catch(J){throw Re&&Re(),J&&J.name==="TypeError"&&/Load failed|fetch/i.test(J.message)?Object.assign(new G("Network Error",G.ERR_NETWORK,g,pe),{cause:J.cause||J}):G.from(J,J&&J.code,g,pe)}}},ph=new Map,Zl=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,l=i,c,u,a=ph;for(;l--;)c=o[l],u=a.get(c),u===void 0&&a.set(c,u=l?new Map:hh(t)),a=u;return u};Zl();const Ms={http:Nd,xhr:lh,fetch:{get:Zl}};_.forEach(Ms,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Zo=e=>`- ${e}`,mh=e=>_.isFunction(e)||e===null||e===!1;function gh(e,t){e=_.isArray(e)?e:[e];const{length:n}=e;let r,s;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(Zo).join(` +`):" "+Zo(i[0]):"as no adapter specified";throw new G("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const ec={getAdapter:gh,adapters:Ms};function Vr(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new en(null,e)}function ei(e){return Vr(e),e.headers=De.from(e.headers),e.data=kr.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),ec.getAdapter(e.adapter||In.adapter,e)(e).then(function(r){return Vr(e),r.data=kr.call(e,e.transformResponse,r),r.headers=De.from(r.headers),r},function(r){return Jl(r)||(Vr(e),r&&r.response&&(r.response.data=kr.call(e,e.transformResponse,r.response),r.response.headers=De.from(r.response.headers))),Promise.reject(r)})}const tc="1.13.2",Ar={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Ar[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const ti={};Ar.transitional=function(t,n,r){function s(o,i){return"[Axios v"+tc+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,l)=>{if(t===!1)throw new G(s(i," has been removed"+(n?" in "+n:"")),G.ERR_DEPRECATED);return n&&!ti[i]&&(ti[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,l):!0}};Ar.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function yh(e,t,n){if(typeof e!="object")throw new G("options must be an object",G.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const l=e[o],c=l===void 0||i(l,o,e);if(c!==!0)throw new G("option "+o+" must be "+c,G.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new G("Unknown option "+o,G.ERR_BAD_OPTION)}}const Gn={assertOptions:yh,validators:Ar},nt=Gn.validators;let Mt=class{constructor(t){this.defaults=t||{},this.interceptors={request:new qo,response:new qo}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Ut(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&Gn.assertOptions(r,{silentJSONParsing:nt.transitional(nt.boolean),forcedJSONParsing:nt.transitional(nt.boolean),clarifyTimeoutError:nt.transitional(nt.boolean)},!1),s!=null&&(_.isFunction(s)?n.paramsSerializer={serialize:s}:Gn.assertOptions(s,{encode:nt.function,serialize:nt.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Gn.assertOptions(n,{baseUrl:nt.spelling("baseURL"),withXsrfToken:nt.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&_.merge(o.common,o[n.method]);o&&_.forEach(["delete","get","head","post","put","patch","common"],g=>{delete o[g]}),n.headers=De.concat(i,o);const l=[];let c=!0;this.interceptors.request.forEach(function(b){typeof b.runWhen=="function"&&b.runWhen(n)===!1||(c=c&&b.synchronous,l.unshift(b.fulfilled,b.rejected))});const u=[];this.interceptors.response.forEach(function(b){u.push(b.fulfilled,b.rejected)});let a,f=0,p;if(!c){const g=[ei.bind(this),void 0];for(g.unshift(...l),g.push(...u),p=g.length,a=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(l=>{r.subscribe(l),o=l}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,l){r.reason||(r.reason=new en(o,i,l),n(r.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=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new nc(function(s){t=s}),cancel:t}}};function bh(e){return function(n){return e.apply(null,n)}}function Eh(e){return _.isObject(e)&&e.isAxiosError===!0}const as={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(as).forEach(([e,t])=>{as[t]=e});function rc(e){const t=new Mt(e),n=Ll(Mt.prototype.request,t);return _.extend(n,Mt.prototype,t,{allOwnKeys:!0}),_.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return rc(Ut(e,s))},n}const he=rc(In);he.Axios=Mt;he.CanceledError=en;he.CancelToken=_h;he.isCancel=Jl;he.VERSION=tc;he.toFormData=Rr;he.AxiosError=G;he.Cancel=he.CanceledError;he.all=function(t){return Promise.all(t)};he.spread=bh;he.isAxiosError=Eh;he.mergeConfig=Ut;he.AxiosHeaders=De;he.formToJSON=e=>zl(_.isHTMLForm(e)?new FormData(e):e);he.getAdapter=ec.getAdapter;he.HttpStatusCode=as;he.default=he;const{Axios:jh,AxiosError:Bh,CanceledError:Hh,isCancel:kh,CancelToken:Vh,VERSION:qh,all:$h,Cancel:Kh,isAxiosError:Wh,spread:Gh,toFormData:zh,AxiosHeaders:Jh,HttpStatusCode:Xh,formToJSON:Qh,getAdapter:Yh,mergeConfig:Zh}=he,_n=he.create({baseURL:"",timeout:3e4,withCredentials:!0});_n.interceptors.request.use(e=>e,e=>Promise.reject(e));_n.interceptors.response.use(e=>e.data,e=>{e.response?.status===401&&(window.location.hash="#/login");const t=e.response?.data?e.response.data.detail||e.response.data.message:e.message;return Promise.reject(new Error(t||"请求失败"))});const jn={login:e=>{const t=new URLSearchParams;return t.append("admin_key",e.password),_n.post("/login",t,{headers:{"Content-Type":"application/x-www-form-urlencoded"}})},logout:()=>_n.post("/logout"),checkAuth:()=>_n.get("/admin/health")},wh=Mu("auth",()=>{const e=Lt(!1),t=Lt(!1),n=Lt(0),r=1e4;let s=null;async function o(c){t.value=!0;try{return await jn.login({password:c}),await jn.checkAuth(),e.value=!0,n.value=Date.now(),!0}catch(u){throw e.value=!1,u}finally{t.value=!1}}async function i(){try{await jn.logout()}finally{e.value=!1,n.value=0}}async function l(){const c=Date.now();if(e.value&&c-n.value(await jn.checkAuth(),e.value=!0,!0))(),await s}catch{return e.value=!1,!1}finally{n.value=Date.now(),s=null}}return{isLoggedIn:e,isLoading:t,login:o,logout:i,checkAuth:l}}),sc=Kf({history:Af("/"),routes:[{path:"/public/uptime",name:"public-uptime",component:()=>tt(()=>import("./PublicUptime-Bgmmilh3.js"),__vite__mapDeps([0,1])),meta:{requiresAuth:!1}},{path:"/public/logs",name:"public-logs",component:()=>tt(()=>import("./PublicLogs-CztlCwM0.js"),[]),meta:{requiresAuth:!1}},{path:"/login",name:"login",component:()=>tt(()=>import("./Login-dgWlrXEY.js"),[]),meta:{requiresAuth:!1}},{path:"/",component:()=>tt(()=>import("./AppShell-B0aV7cPb.js"),__vite__mapDeps([2,3,4,5])),meta:{requiresAuth:!0},children:[{path:"",name:"dashboard",component:()=>tt(()=>import("./Dashboard-BZZ41xtW.js"),__vite__mapDeps([6,7]))},{path:"accounts",name:"accounts",component:()=>tt(()=>import("./Accounts-mLu74uIS.js"),__vite__mapDeps([8,9,10,4,5,7]))},{path:"settings",name:"settings",component:()=>tt(()=>import("./Settings-CRDMUKWj.js"),__vite__mapDeps([11,3,9,10,7]))},{path:"logs",name:"logs",component:()=>tt(()=>import("./Logs-aYm-RnGR.js"),__vite__mapDeps([12,9,4]))},{path:"monitor",name:"monitor",component:()=>tt(()=>import("./Monitor-DY0hrzbH.js"),__vite__mapDeps([13,1]))},{path:"docs",name:"docs",component:()=>tt(()=>import("./Docs-k2T9Jai0.js"),[])}]}]});sc.beforeEach(async e=>{const t=wh();if(e.meta.requiresAuth&&!await t.checkAuth())return{name:"login"};if(e.name==="login"&&t.isLoggedIn)return{name:"dashboard"}});const Sh=Os({__name:"App",setup(e){return(t,n)=>(er(),nr(Ot(Dl)))}}),Us=xu(Sh),Rh=Pu();Us.use(Rh);Us.use(sc);Us.mount("#app");export{Xc as A,Dl as B,Mu as C,Dh as D,Rs as E,Fe as F,xh as G,On as H,kf as R,vh as T,fl as a,Ph as b,Th as c,Os as d,er as e,Wa as f,_n as g,Lt as h,Me as i,fa as j,ps as k,wh as l,Ah as m,ms as n,ca as o,Lh as p,Fh as q,Oh as r,fn as s,mc as t,Ot as u,Nh as v,Ih as w,Ce as x,nr as y,Ch as z}; diff --git a/static/assets/index-DbyzplTw.css b/static/assets/index-DbyzplTw.css new file mode 100644 index 0000000000000000000000000000000000000000..1095c8733e61566b0d7e501de9ffb8a1e0266f7a --- /dev/null +++ b/static/assets/index-DbyzplTw.css @@ -0,0 +1 @@ +@import"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=Noto+Serif+SC:wght@600;700&display=swap";.toast-enter-active[data-v-cdd21b3c],.toast-leave-active[data-v-cdd21b3c]{transition:all .3s ease}.toast-enter-from[data-v-cdd21b3c],.toast-leave-to[data-v-cdd21b3c]{opacity:0;transform:translate(100%)}.toast-move[data-v-cdd21b3c]{transition:transform .3s ease}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 97%;--foreground: 0 0% 10%;--card: 0 0% 100%;--card-foreground: 0 0% 10%;--primary: 0 0% 10%;--primary-foreground: 0 0% 100%;--secondary: 0 0% 92%;--secondary-foreground: 0 0% 10%;--muted: 0 0% 92%;--muted-foreground: 0 0% 40%;--accent: 0 0% 90%;--accent-foreground: 0 0% 10%;--destructive: 0 70% 45%;--destructive-foreground: 0 0% 100%;--border: 0 0% 86%;--input: 0 0% 86%;--ring: 0 0% 10%;--radius: 1rem}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:Noto Sans SC,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;overflow-x:hidden;background-image:radial-gradient(900px circle at 10% -20%,rgba(0,0,0,.04),transparent 45%),radial-gradient(700px circle at 90% 0%,rgba(0,0,0,.05),transparent 40%),linear-gradient(180deg,hsl(var(--background)) 0% 100%)}body:before{content:"";position:fixed;inset:0;background-image:linear-gradient(120deg,#ffffff8c,#fff0);opacity:.5;pointer-events:none;z-index:-1}h1,h2,h3{font-family:"Noto Serif SC",Georgia,serif;letter-spacing:-.01em}#app{min-height:100vh}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{top:0;bottom:0}.bottom-0{bottom:0}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.right-4{right:1rem}.top-0{top:0}.top-4{top:1rem}.top-full{top:100%}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[200\]{z-index:200}.z-\[9999\]{z-index:9999}.col-span-2{grid-column:span 2 / span 2}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0{height:0px}.h-10{height:2.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-\[80vh\]{height:80vh}.h-full{height:100%}.max-h-\[60vh\]{max-height:60vh}.max-h-\[90vh\]{max-height:90vh}.min-h-0{min-height:0px}.min-h-\[140px\]{min-height:140px}.min-h-screen{min-height:100vh}.\!w-full{width:100%!important}.w-0{width:0px}.w-10{width:2.5rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-44{width:11rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[200px\]{min-width:200px}.min-w-\[320px\]{min-width:320px}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-not-allowed{cursor:not-allowed}.resize{resize:both}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-1{row-gap:.25rem}.gap-y-2{row-gap:.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-visible{overflow-y:visible}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[2\.5rem\]{border-radius:2.5rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-x-4{border-left-width:4px;border-right-width:4px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-4{border-top-width:4px}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}.border-border{border-color:hsl(var(--border))}.border-border\/60{border-color:hsl(var(--border) / .6)}.border-destructive\/30{border-color:hsl(var(--destructive) / .3)}.border-emerald-200{--tw-border-opacity: 1;border-color:rgb(167 243 208 / var(--tw-border-opacity, 1))}.border-input{border-color:hsl(var(--input))}.border-primary-foreground\/40{border-color:hsl(var(--primary-foreground) / .4)}.border-rose-200{--tw-border-opacity: 1;border-color:rgb(254 205 211 / var(--tw-border-opacity, 1))}.border-sky-200{--tw-border-opacity: 1;border-color:rgb(186 230 253 / var(--tw-border-opacity, 1))}.border-x-transparent{border-left-color:transparent;border-right-color:transparent}.border-t-foreground{border-top-color:hsl(var(--foreground))}.bg-accent{background-color:hsl(var(--accent))}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-200{--tw-bg-opacity: 1;background-color:rgb(253 230 138 / var(--tw-bg-opacity, 1))}.bg-amber-300{--tw-bg-opacity: 1;background-color:rgb(252 211 77 / var(--tw-bg-opacity, 1))}.bg-amber-400{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-black\/20{background-color:#0003}.bg-black\/30{background-color:#0000004d}.bg-black\/50{background-color:#00000080}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-card{background-color:hsl(var(--card))}.bg-card\/70{background-color:hsl(var(--card) / .7)}.bg-card\/90{background-color:hsl(var(--card) / .9)}.bg-cyan-100{--tw-bg-opacity: 1;background-color:rgb(207 250 254 / var(--tw-bg-opacity, 1))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-400{--tw-bg-opacity: 1;background-color:rgb(52 211 153 / var(--tw-bg-opacity, 1))}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground{background-color:hsl(var(--muted-foreground))}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/70{background-color:hsl(var(--muted) / .7)}.bg-primary{background-color:hsl(var(--primary))}.bg-primary-foreground\/15{background-color:hsl(var(--primary-foreground) / .15)}.bg-rose-100{--tw-bg-opacity: 1;background-color:rgb(255 228 230 / var(--tw-bg-opacity, 1))}.bg-rose-50{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.bg-rose-500{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity, 1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/30{background-color:hsl(var(--secondary) / .3)}.bg-secondary\/40{background-color:hsl(var(--secondary) / .4)}.bg-secondary\/50{background-color:hsl(var(--secondary) / .5)}.bg-secondary\/60{background-color:hsl(var(--secondary) / .6)}.bg-sky-400{--tw-bg-opacity: 1;background-color:rgb(56 189 248 / var(--tw-bg-opacity, 1))}.bg-sky-50{--tw-bg-opacity: 1;background-color:rgb(240 249 255 / var(--tw-bg-opacity, 1))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-violet-100{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.object-contain{-o-object-fit:contain;object-fit:contain}.p-1{padding:.25rem}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-10{padding-bottom:2.5rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pl-4{padding-left:1rem}.pl-6{padding-left:1.5rem}.pr-1{padding-right:.25rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.tracking-\[0\.12em\]{letter-spacing:.12em}.tracking-\[0\.28em\]{letter-spacing:.28em}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-\[0\.3em\]{letter-spacing:.3em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-background{color:hsl(var(--background))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-cyan-700{--tw-text-opacity: 1;color:rgb(14 116 144 / var(--tw-text-opacity, 1))}.text-destructive{color:hsl(var(--destructive))}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-rose-500{--tw-text-opacity: 1;color:rgb(244 63 94 / var(--tw-text-opacity, 1))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-sky-500{--tw-text-opacity: 1;color:rgb(14 165 233 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-violet-700{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-black\/10{--tw-shadow-color: rgb(0 0 0 / .1);--tw-shadow: var(--tw-shadow-colored)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,transform\]{transition-property:width,transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-\[transform\]{will-change:transform}html{scrollbar-gutter:stable}*{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.35) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:#00000059;border-radius:999px;border:2px solid transparent;background-clip:content-box}.scrollbar-slim::-webkit-scrollbar{width:6px;height:6px}.scrollbar-slim::-webkit-scrollbar-thumb{background-color:#0006}.cv-auto{content-visibility:auto;contain-intrinsic-size:0 44px}.monitor-badge--up{background:#d1fae5;color:#065f46}.monitor-badge--warn{background:#fef3c7;color:#b45309}.monitor-badge--down{background:#fee2e2;color:#991b1b}.monitor-badge--unknown{background:#f3f4f6;color:#6b7280}.monitor-card{border-radius:16px;padding:0;background:hsl(var(--card));box-shadow:none}.monitor-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.monitor-card__name{font-size:14px;font-weight:600;color:hsl(var(--foreground))}.monitor-card__badge{padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600}.monitor-card__stats{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:hsl(var(--muted-foreground));margin-bottom:12px}.monitor-card__value{margin-left:4px;color:hsl(var(--foreground));font-weight:600}.monitor-card__beats{display:flex;gap:2px;height:24px;align-items:flex-end}.monitor-beat{flex:1;min-width:4px;max-width:8px;border-radius:2px;transition:all .2s;position:relative}.monitor-beat:hover{opacity:.8;transform:scaleY(1.1)}.monitor-beat--up{background:#34c759;height:100%}.monitor-beat--warn,.monitor-beat--slow{background:#f5c15b;height:100%}.monitor-beat--down{background:#ff3b30;height:100%}.monitor-beat--empty{background:#e5e5ea;height:40%}.monitor-beat__tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#1d1d1f;color:#fff;padding:6px 10px;border-radius:6px;font-size:11px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;margin-bottom:6px;z-index:10}.monitor-beat__tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#1d1d1f}.monitor-beat:hover .monitor-beat__tooltip{opacity:1}.help-dot{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:999px;border:1px solid hsl(var(--border));font-size:10px;line-height:1;color:hsl(var(--muted-foreground));cursor:default}@media(max-width:768px){.monitor-beat{min-width:3px;max-width:6px}}@media(min-width:1024px){.dashboard-split{flex-direction:row;flex-wrap:nowrap}.dashboard-split .dashboard-main{flex:0 0 66.6667%;max-width:66.6667%}.dashboard-split .dashboard-side{flex:0 0 33.3333%;max-width:33.3333%}}@keyframes logo-float{0%{transform:translateY(0)}25%{transform:translateY(6px)}50%{transform:translateY(0)}75%{transform:translateY(-6px)}to{transform:translateY(0)}}@keyframes logo-blink{0%,45%,55%,to{transform:scaleY(1);opacity:1}50%{transform:scaleY(.1);opacity:.6}}.logo-mark .logo-cat-wrapper{animation:logo-float 4s ease-in-out infinite;transform-origin:center}.logo-mark{transform:translateY(2px)}.logo-mark .logo-eye{fill:#00bcd4;filter:drop-shadow(0 0 2px #00bcd4);animation:logo-blink 5s infinite;transform-box:fill-box;transform-origin:center}.hover\:border-destructive:hover{border-color:hsl(var(--destructive))}.hover\:border-destructive\/40:hover{border-color:hsl(var(--destructive) / .4)}.hover\:border-destructive\/60:hover{border-color:hsl(var(--destructive) / .6)}.hover\:border-foreground:hover{border-color:hsl(var(--foreground))}.hover\:border-primary:hover{border-color:hsl(var(--primary))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/10:hover{background-color:hsl(var(--destructive) / .1)}.hover\:bg-secondary\/60:hover{background-color:hsl(var(--secondary) / .6)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-emerald-500:hover{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.focus\:border-transparent:focus{border-color:transparent}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:text-accent-foreground{color:hsl(var(--accent-foreground))}.group:hover .group-hover\:opacity-100{opacity:1}.peer:checked~.peer-checked\:border-foreground{border-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:bg-foreground{background-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.peer:disabled~.peer-disabled\:opacity-50{opacity:.5}@media(min-width:640px){.sm\:ml-0{margin-left:0}.sm\:flex{display:flex}.sm\:\!w-40{width:10rem!important}.sm\:w-48{width:12rem}.sm\:w-52{width:13rem}.sm\:w-auto{width:auto}.sm\:min-w-0{min-width:0px}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:items-center{align-items:center}}@media(min-width:768px){.md\:w-auto{width:auto}.md\:flex-1{flex:1 1 0%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1024px){.lg\:static{position:static}.lg\:sticky{position:sticky}.lg\:top-0{top:0}.lg\:ml-0{margin-left:0}.lg\:hidden{display:none}.lg\:h-20{height:5rem}.lg\:h-64{height:16rem}.lg\:h-72{height:18rem}.lg\:h-screen{height:100vh}.lg\:w-20{width:5rem}.lg\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:border-b-0{border-bottom-width:0px}.lg\:border-r{border-right-width:1px}.lg\:bg-card\/80{background-color:hsl(var(--card) / .8)}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:py-4{padding-top:1rem;padding-bottom:1rem}.lg\:pt-10{padding-top:2.5rem}.lg\:pt-5{padding-top:1.25rem}.lg\:pt-6{padding-top:1.5rem}.lg\:text-2xl{font-size:1.5rem;line-height:2rem}.lg\:backdrop-blur-none{--tw-backdrop-blur: ;-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}}@media(min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}} diff --git a/static/assets/index-DgvkbKHQ.css b/static/assets/index-DgvkbKHQ.css new file mode 100644 index 0000000000000000000000000000000000000000..353e0ada2fe2ecd44e85b08a7223aac29a39b72c --- /dev/null +++ b/static/assets/index-DgvkbKHQ.css @@ -0,0 +1 @@ +@import"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=Noto+Serif+SC:wght@600;700&display=swap";*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 97%;--foreground: 0 0% 10%;--card: 0 0% 100%;--card-foreground: 0 0% 10%;--primary: 0 0% 10%;--primary-foreground: 0 0% 100%;--secondary: 0 0% 92%;--secondary-foreground: 0 0% 10%;--muted: 0 0% 92%;--muted-foreground: 0 0% 40%;--accent: 0 0% 90%;--accent-foreground: 0 0% 10%;--destructive: 0 70% 45%;--destructive-foreground: 0 0% 100%;--border: 0 0% 86%;--input: 0 0% 86%;--ring: 0 0% 10%;--radius: 1rem}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:Noto Sans SC,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;overflow-x:hidden;background-image:radial-gradient(900px circle at 10% -20%,rgba(0,0,0,.04),transparent 45%),radial-gradient(700px circle at 90% 0%,rgba(0,0,0,.05),transparent 40%),linear-gradient(180deg,hsl(var(--background)) 0% 100%)}body:before{content:"";position:fixed;inset:0;background-image:linear-gradient(120deg,#ffffff8c,#fff0);opacity:.5;pointer-events:none;z-index:-1}h1,h2,h3{font-family:"Noto Serif SC",Georgia,serif;letter-spacing:-.01em}#app{min-height:100vh}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-y-0{top:0;bottom:0}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.top-full{top:100%}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[9999\]{z-index:9999}.col-span-2{grid-column:span 2 / span 2}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-auto{margin-left:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0{height:0px}.h-10{height:2.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-full{height:100%}.max-h-\[60vh\]{max-height:60vh}.max-h-\[80vh\]{max-height:80vh}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-10{width:2.5rem}.w-2{width:.5rem}.w-20{width:5rem}.w-24{width:6rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-44{width:11rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[200px\]{min-width:200px}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-not-allowed{cursor:not-allowed}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-visible{overflow-y:visible}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[2\.5rem\]{border-radius:2.5rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-x-4{border-left-width:4px;border-right-width:4px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-4{border-top-width:4px}.border-border{border-color:hsl(var(--border))}.border-border\/60{border-color:hsl(var(--border) / .6)}.border-destructive\/30{border-color:hsl(var(--destructive) / .3)}.border-input{border-color:hsl(var(--input))}.border-primary-foreground\/40{border-color:hsl(var(--primary-foreground) / .4)}.border-x-transparent{border-left-color:transparent;border-right-color:transparent}.border-t-foreground{border-top-color:hsl(var(--foreground))}.bg-accent{background-color:hsl(var(--accent))}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-200{--tw-bg-opacity: 1;background-color:rgb(253 230 138 / var(--tw-bg-opacity, 1))}.bg-amber-300{--tw-bg-opacity: 1;background-color:rgb(252 211 77 / var(--tw-bg-opacity, 1))}.bg-amber-400{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-black\/20{background-color:#0003}.bg-black\/30{background-color:#0000004d}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-card{background-color:hsl(var(--card))}.bg-card\/70{background-color:hsl(var(--card) / .7)}.bg-card\/90{background-color:hsl(var(--card) / .9)}.bg-cyan-100{--tw-bg-opacity: 1;background-color:rgb(207 250 254 / var(--tw-bg-opacity, 1))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-400{--tw-bg-opacity: 1;background-color:rgb(52 211 153 / var(--tw-bg-opacity, 1))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground{background-color:hsl(var(--muted-foreground))}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/70{background-color:hsl(var(--muted) / .7)}.bg-primary{background-color:hsl(var(--primary))}.bg-primary-foreground\/15{background-color:hsl(var(--primary-foreground) / .15)}.bg-rose-100{--tw-bg-opacity: 1;background-color:rgb(255 228 230 / var(--tw-bg-opacity, 1))}.bg-rose-500{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity, 1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/30{background-color:hsl(var(--secondary) / .3)}.bg-secondary\/40{background-color:hsl(var(--secondary) / .4)}.bg-secondary\/50{background-color:hsl(var(--secondary) / .5)}.bg-secondary\/60{background-color:hsl(var(--secondary) / .6)}.bg-sky-400{--tw-bg-opacity: 1;background-color:rgb(56 189 248 / var(--tw-bg-opacity, 1))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-violet-100{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.object-contain{-o-object-fit:contain;object-fit:contain}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-10{padding-bottom:2.5rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pr-1{padding-right:.25rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.tracking-\[0\.12em\]{letter-spacing:.12em}.tracking-\[0\.28em\]{letter-spacing:.28em}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-\[0\.3em\]{letter-spacing:.3em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-background{color:hsl(var(--background))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-cyan-700{--tw-text-opacity: 1;color:rgb(14 116 144 / var(--tw-text-opacity, 1))}.text-destructive{color:hsl(var(--destructive))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-violet-700{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.opacity-0{opacity:0}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-black\/10{--tw-shadow-color: rgb(0 0 0 / .1);--tw-shadow: var(--tw-shadow-colored)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-\[transform\]{will-change:transform}html{scrollbar-gutter:stable}*{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.35) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:#00000059;border-radius:999px;border:2px solid transparent;background-clip:content-box}.scrollbar-slim::-webkit-scrollbar{width:6px;height:6px}.scrollbar-slim::-webkit-scrollbar-thumb{background-color:#0006}.cv-auto{content-visibility:auto;contain-intrinsic-size:0 44px}.monitor-badge--up{background:#d1fae5;color:#065f46}.monitor-badge--warn{background:#fef3c7;color:#b45309}.monitor-badge--down{background:#fee2e2;color:#991b1b}.monitor-badge--unknown{background:#f3f4f6;color:#6b7280}.monitor-card{border-radius:16px;padding:0;background:hsl(var(--card));box-shadow:none}.monitor-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.monitor-card__name{font-size:14px;font-weight:600;color:hsl(var(--foreground))}.monitor-card__badge{padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600}.monitor-card__stats{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:hsl(var(--muted-foreground));margin-bottom:12px}.monitor-card__value{margin-left:4px;color:hsl(var(--foreground));font-weight:600}.monitor-card__beats{display:flex;gap:2px;height:24px;align-items:flex-end}.monitor-beat{flex:1;min-width:4px;max-width:8px;border-radius:2px;transition:all .2s;position:relative}.monitor-beat:hover{opacity:.8;transform:scaleY(1.1)}.monitor-beat--up{background:#34c759;height:100%}.monitor-beat--warn,.monitor-beat--slow{background:#f5c15b;height:100%}.monitor-beat--down{background:#ff3b30;height:100%}.monitor-beat--empty{background:#e5e5ea;height:40%}.monitor-beat__tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#1d1d1f;color:#fff;padding:6px 10px;border-radius:6px;font-size:11px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;margin-bottom:6px;z-index:10}.monitor-beat__tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#1d1d1f}.monitor-beat:hover .monitor-beat__tooltip{opacity:1}.help-dot{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:999px;border:1px solid hsl(var(--border));font-size:10px;line-height:1;color:hsl(var(--muted-foreground));cursor:default}@media(max-width:768px){.monitor-beat{min-width:3px;max-width:6px}}@media(min-width:1024px){.dashboard-split{flex-direction:row;flex-wrap:nowrap}.dashboard-split .dashboard-main{flex:0 0 66.6667%;max-width:66.6667%}.dashboard-split .dashboard-side{flex:0 0 33.3333%;max-width:33.3333%}}@keyframes logo-float{0%{transform:translateY(0)}25%{transform:translateY(6px)}50%{transform:translateY(0)}75%{transform:translateY(-6px)}to{transform:translateY(0)}}@keyframes logo-blink{0%,45%,55%,to{transform:scaleY(1);opacity:1}50%{transform:scaleY(.1);opacity:.6}}.logo-mark .logo-cat-wrapper{animation:logo-float 4s ease-in-out infinite;transform-origin:center}.logo-mark{transform:translateY(2px)}.logo-mark .logo-eye{fill:#00bcd4;filter:drop-shadow(0 0 2px #00bcd4);animation:logo-blink 5s infinite;transform-box:fill-box;transform-origin:center}.hover\:border-destructive:hover{border-color:hsl(var(--destructive))}.hover\:border-destructive\/40:hover{border-color:hsl(var(--destructive) / .4)}.hover\:border-destructive\/60:hover{border-color:hsl(var(--destructive) / .6)}.hover\:border-foreground:hover{border-color:hsl(var(--foreground))}.hover\:border-primary:hover{border-color:hsl(var(--primary))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/10:hover{background-color:hsl(var(--destructive) / .1)}.hover\:bg-secondary\/60:hover{background-color:hsl(var(--secondary) / .6)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-emerald-500:hover{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:opacity-90:hover{opacity:.9}.focus\:border-transparent:focus{border-color:transparent}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:text-accent-foreground{color:hsl(var(--accent-foreground))}.group:hover .group-hover\:opacity-100{opacity:1}.peer:checked~.peer-checked\:border-foreground{border-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:bg-foreground{background-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.peer:disabled~.peer-disabled\:opacity-50{opacity:.5}@media(min-width:640px){.sm\:ml-0{margin-left:0}.sm\:flex{display:flex}.sm\:w-44{width:11rem}.sm\:w-48{width:12rem}.sm\:w-auto{width:auto}.sm\:min-w-0{min-width:0px}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:items-center{align-items:center}}@media(min-width:768px){.md\:w-auto{width:auto}.md\:flex-1{flex:1 1 0%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1024px){.lg\:static{position:static}.lg\:sticky{position:sticky}.lg\:top-0{top:0}.lg\:ml-0{margin-left:0}.lg\:hidden{display:none}.lg\:h-20{height:5rem}.lg\:h-64{height:16rem}.lg\:h-72{height:18rem}.lg\:h-screen{height:100vh}.lg\:w-20{width:5rem}.lg\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:border-b-0{border-bottom-width:0px}.lg\:border-r{border-right-width:1px}.lg\:bg-card\/80{background-color:hsl(var(--card) / .8)}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:py-4{padding-top:1rem;padding-bottom:1rem}.lg\:pt-10{padding-top:2.5rem}.lg\:pt-5{padding-top:1.25rem}.lg\:pt-6{padding-top:1.5rem}.lg\:text-2xl{font-size:1.5rem;line-height:2rem}.lg\:backdrop-blur-none{--tw-backdrop-blur: ;-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}}@media(min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}} diff --git a/static/assets/index-DhxxzIOh.js b/static/assets/index-DhxxzIOh.js new file mode 100644 index 0000000000000000000000000000000000000000..b96532c97f211b3fb7792097f479b3da9594f8c0 --- /dev/null +++ b/static/assets/index-DhxxzIOh.js @@ -0,0 +1,7 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PublicUptime-DJR5UQMs.js","assets/useUptimeStatus-CXq4uCaj.js","assets/AppShell-C-FNXlk9.js","assets/settings-CCCXerrX.js","assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-C_ZbANx_.js","assets/useConfirmDialog-ChXSHLDJ.js","assets/Dashboard-B8hpGkaM.js","assets/HelpTip.vue_vue_type_script_setup_true_lang-Dj0Fsuty.js","assets/Accounts-J1ZNWiem.js","assets/SelectMenu.vue_vue_type_script_setup_true_lang-Vv-llkmB.js","assets/Checkbox.vue_vue_type_script_setup_true_lang-Cui3ZVy3.js","assets/Settings-CyqM2FVA.js","assets/Logs-BqF5MQSG.js","assets/Monitor-D2hgYhob.js"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function us(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const se={},$t=[],ot=()=>{},ni=()=>!1,or=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),fs=e=>e.startsWith("onUpdate:"),Se=Object.assign,ds=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},oc=Object.prototype.hasOwnProperty,ne=(e,t)=>oc.call(e,t),q=Array.isArray,Kt=e=>ir(e)==="[object Map]",ri=e=>ir(e)==="[object Set]",W=e=>typeof e=="function",de=e=>typeof e=="string",yt=e=>typeof e=="symbol",le=e=>e!==null&&typeof e=="object",si=e=>(le(e)||W(e))&&W(e.then)&&W(e.catch),oi=Object.prototype.toString,ir=e=>oi.call(e),ic=e=>ir(e).slice(8,-1),ii=e=>ir(e)==="[object Object]",lr=e=>de(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,cn=us(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),cr=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},lc=/-\w/g,xt=cr(e=>e.replace(lc,t=>t.slice(1).toUpperCase())),cc=/\B([A-Z])/g,jt=cr(e=>e.replace(cc,"-$1").toLowerCase()),li=cr(e=>e.charAt(0).toUpperCase()+e.slice(1)),vr=cr(e=>e?`on${li(e)}`:""),vt=(e,t)=>!Object.is(e,t),Bn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},hs=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let ks;const ar=()=>ks||(ks=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function ps(e){if(q(e)){const t={};for(let n=0;n{if(n){const r=n.split(uc);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function ms(e){let t="";if(de(e))t=e;else if(q(e))for(let n=0;n!!(e&&e.__v_isRef===!0),mc=e=>de(e)?e:e==null?"":q(e)||le(e)&&(e.toString===oi||!W(e.toString))?ui(e)?mc(e.value):JSON.stringify(e,fi,2):String(e),fi=(e,t)=>ui(t)?fi(e,t.value):Kt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[Or(r,o)+" =>"]=s,n),{})}:ri(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Or(n))}:yt(t)?Or(t):le(t)&&!q(t)&&!ii(t)?String(t):t,Or=(e,t="")=>{var n;return yt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let _e;class di{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=_e,!t&&_e&&(this.index=(_e.scopes||(_e.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&&(_e=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if(un){let t=un;for(un=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;an;){let t=an;for(an=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function _i(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function bi(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),_s(r),yc(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function qr(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===bn)||(e.globalVersion=bn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!qr(e))))return;e.flags|=2;const t=e.dep,n=ie,r=$e;ie=e,$e=!0;try{_i(e);const s=e.fn(e._value);(t.version===0||vt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{ie=n,$e=r,bi(e),e.flags&=-3}}function _s(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)_s(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function yc(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 wi=[];function ht(){wi.push($e),$e=!1}function pt(){const e=wi.pop();$e=e===void 0?!0:e}function Vs(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ie;ie=void 0;try{t()}finally{ie=n}}}let bn=0;class _c{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 bs{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!ie||!$e||ie===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ie)n=this.activeLink=new _c(ie,this),ie.deps?(n.prevDep=ie.depsTail,ie.depsTail.nextDep=n,ie.depsTail=n):ie.deps=ie.depsTail=n,Si(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=ie.depsTail,n.nextDep=void 0,ie.depsTail.nextDep=n,ie.depsTail=n,ie.deps===n&&(ie.deps=r)}return n}trigger(t){this.version++,bn++,this.notify(t)}notify(t){gs();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ys()}}}function Si(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Si(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const zn=new WeakMap,Dt=Symbol(""),$r=Symbol(""),En=Symbol("");function be(e,t,n){if($e&&ie){let r=zn.get(e);r||zn.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new bs),s.map=r,s.key=n),s.track()}}function ft(e,t,n,r,s,o){const i=zn.get(e);if(!i){bn++;return}const l=c=>{c&&c.trigger()};if(gs(),t==="clear")i.forEach(l);else{const c=q(e),u=c&&lr(n);if(c&&n==="length"){const a=Number(r);i.forEach((f,p)=>{(p==="length"||p===En||!yt(p)&&p>=a)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(En)),t){case"add":c?u&&l(i.get("length")):(l(i.get(Dt)),Kt(e)&&l(i.get($r)));break;case"delete":c||(l(i.get(Dt)),Kt(e)&&l(i.get($r)));break;case"set":Kt(e)&&l(i.get(Dt));break}}ys()}function bc(e,t){const n=zn.get(e);return n&&n.get(t)}function Bt(e){const t=Z(e);return t===e?t:(be(t,"iterate",En),je(e)?t:t.map(Ke))}function ur(e){return be(e=Z(e),"iterate",En),e}function wt(e,t){return mt(e)?it(e)?zt(Ke(t)):zt(t):Ke(t)}const Ec={__proto__:null,[Symbol.iterator](){return Tr(this,Symbol.iterator,e=>wt(this,e))},concat(...e){return Bt(this).concat(...e.map(t=>q(t)?Bt(t):t))},entries(){return Tr(this,"entries",e=>(e[1]=wt(this,e[1]),e))},every(e,t){return ct(this,"every",e,t,void 0,arguments)},filter(e,t){return ct(this,"filter",e,t,n=>n.map(r=>wt(this,r)),arguments)},find(e,t){return ct(this,"find",e,t,n=>wt(this,n),arguments)},findIndex(e,t){return ct(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ct(this,"findLast",e,t,n=>wt(this,n),arguments)},findLastIndex(e,t){return ct(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ct(this,"forEach",e,t,void 0,arguments)},includes(...e){return Cr(this,"includes",e)},indexOf(...e){return Cr(this,"indexOf",e)},join(e){return Bt(this).join(e)},lastIndexOf(...e){return Cr(this,"lastIndexOf",e)},map(e,t){return ct(this,"map",e,t,void 0,arguments)},pop(){return nn(this,"pop")},push(...e){return nn(this,"push",e)},reduce(e,...t){return qs(this,"reduce",e,t)},reduceRight(e,...t){return qs(this,"reduceRight",e,t)},shift(){return nn(this,"shift")},some(e,t){return ct(this,"some",e,t,void 0,arguments)},splice(...e){return nn(this,"splice",e)},toReversed(){return Bt(this).toReversed()},toSorted(e){return Bt(this).toSorted(e)},toSpliced(...e){return Bt(this).toSpliced(...e)},unshift(...e){return nn(this,"unshift",e)},values(){return Tr(this,"values",e=>wt(this,e))}};function Tr(e,t,n){const r=ur(e),s=r[t]();return r!==e&&!je(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const wc=Array.prototype;function ct(e,t,n,r,s,o){const i=ur(e),l=i!==e&&!je(e),c=i[t];if(c!==wc[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,wt(e,f),p,e)}:n.length>2&&(u=function(f,p){return n.call(this,f,p,e)}));const a=c.call(i,u,r);return l&&s?s(a):a}function qs(e,t,n,r){const s=ur(e);let o=n;return s!==e&&(je(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,wt(e,l),c,e)}),s[t](o,...r)}function Cr(e,t,n){const r=Z(e);be(r,"iterate",En);const s=r[t](...n);return(s===-1||s===!1)&&fr(n[0])?(n[0]=Z(n[0]),r[t](...n)):s}function nn(e,t,n=[]){ht(),gs();const r=Z(e)[t].apply(e,n);return ys(),pt(),r}const Sc=us("__proto__,__v_isRef,__isVue"),Ri=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(yt));function Rc(e){yt(e)||(e=String(e));const t=Z(this);return be(t,"has",e),t.hasOwnProperty(e)}class Ai{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?Dc:Ti:o?xi:Oi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=q(t);if(!s){let c;if(i&&(c=Ec[n]))return c;if(n==="hasOwnProperty")return Rc}const l=Reflect.get(t,n,ce(t)?t:r);if((yt(n)?Ri.has(n):Sc(n))||(s||be(t,"get",n),o))return l;if(ce(l)){const c=i&&lr(n)?l:l.value;return s&&le(c)?Wr(c):c}return le(l)?s?Wr(l):On(l):l}}class vi extends Ai{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=q(t)&&lr(n);if(!this._isShallow){const u=mt(o);if(!je(r)&&!mt(r)&&(o=Z(o),r=Z(r)),!i&&ce(o)&&!ce(r))return u||(o.value=r),!0}const l=i?Number(n)e,Dn=e=>Reflect.getPrototypeOf(e);function Tc(e,t,n){return function(...r){const s=this.__v_raw,o=Z(s),i=Kt(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=s[e](...r),a=n?Kr:t?zt:Ke;return!t&&be(o,"iterate",c?$r:Dt),{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 Ln(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Cc(e,t){const n={get(s){const o=this.__v_raw,i=Z(o),l=Z(s);e||(vt(s,l)&&be(i,"get",s),be(i,"get",l));const{has:c}=Dn(i),u=t?Kr:e?zt:Ke;if(c.call(i,s))return u(o.get(s));if(c.call(i,l))return u(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&be(Z(s),"iterate",Dt),s.size},has(s){const o=this.__v_raw,i=Z(o),l=Z(s);return e||(vt(s,l)&&be(i,"has",s),be(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,c=Z(l),u=t?Kr:e?zt:Ke;return!e&&be(c,"iterate",Dt),l.forEach((a,f)=>s.call(o,u(a),u(f),i))}};return Se(n,e?{add:Ln("add"),set:Ln("set"),delete:Ln("delete"),clear:Ln("clear")}:{add(s){!t&&!je(s)&&!mt(s)&&(s=Z(s));const o=Z(this);return Dn(o).has.call(o,s)||(o.add(s),ft(o,"add",s,s)),this},set(s,o){!t&&!je(o)&&!mt(o)&&(o=Z(o));const i=Z(this),{has:l,get:c}=Dn(i);let u=l.call(i,s);u||(s=Z(s),u=l.call(i,s));const a=c.call(i,s);return i.set(s,o),u?vt(o,a)&&ft(i,"set",s,o):ft(i,"add",s,o),this},delete(s){const o=Z(this),{has:i,get:l}=Dn(o);let c=i.call(o,s);c||(s=Z(s),c=i.call(o,s)),l&&l.call(o,s);const u=o.delete(s);return c&&ft(o,"delete",s,void 0),u},clear(){const s=Z(this),o=s.size!==0,i=s.clear();return o&&ft(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=Tc(s,e,t)}),n}function Es(e,t){const n=Cc(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(ne(n,s)&&s in r?n:r,s,o)}const Pc={get:Es(!1,!1)},Nc={get:Es(!1,!0)},Ic={get:Es(!0,!1)};const Oi=new WeakMap,xi=new WeakMap,Ti=new WeakMap,Dc=new WeakMap;function Lc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Fc(e){return e.__v_skip||!Object.isExtensible(e)?0:Lc(ic(e))}function On(e){return mt(e)?e:ws(e,!1,vc,Pc,Oi)}function Ci(e){return ws(e,!1,xc,Nc,xi)}function Wr(e){return ws(e,!0,Oc,Ic,Ti)}function ws(e,t,n,r,s){if(!le(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=Fc(e);if(o===0)return e;const i=s.get(e);if(i)return i;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function it(e){return mt(e)?it(e.__v_raw):!!(e&&e.__v_isReactive)}function mt(e){return!!(e&&e.__v_isReadonly)}function je(e){return!!(e&&e.__v_isShallow)}function fr(e){return e?!!e.__v_raw:!1}function Z(e){const t=e&&e.__v_raw;return t?Z(t):e}function Ss(e){return!ne(e,"__v_skip")&&Object.isExtensible(e)&&ci(e,"__v_skip",!0),e}const Ke=e=>le(e)?On(e):e,zt=e=>le(e)?Wr(e):e;function ce(e){return e?e.__v_isRef===!0:!1}function Lt(e){return Pi(e,!1)}function Mc(e){return Pi(e,!0)}function Pi(e,t){return ce(e)?e:new Uc(e,t)}class Uc{constructor(t,n){this.dep=new bs,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:Z(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,r=this.__v_isShallow||je(t)||mt(t);t=r?t:Z(t),vt(t,n)&&(this._rawValue=t,this._value=r?t:Ke(t),this.dep.trigger())}}function Ot(e){return ce(e)?e.value:e}const jc={get:(e,t,n)=>t==="__v_raw"?e:Ot(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return ce(s)&&!ce(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Ni(e){return it(e)?e:new Proxy(e,jc)}function Bc(e){const t=q(e)?new Array(e.length):{};for(const n in e)t[n]=Ii(e,n);return t}class Hc{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._raw=Z(t);let s=!0,o=t;if(!q(t)||!lr(String(n)))do s=!fr(o)||je(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=Ot(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&ce(this._raw[this._key])){const n=this._object[this._key];if(ce(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return bc(this._raw,this._key)}}class kc{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Vc(e,t,n){return ce(e)?e:W(e)?new kc(e):le(e)&&arguments.length>1?Ii(e,t,n):Lt(e)}function Ii(e,t,n){return new Hc(e,t,n)}class qc{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new bs(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=bn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&ie!==this)return yi(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 $c(e,t,n=!1){let r,s;return W(e)?r=e:(r=e.get,s=e.set),new qc(r,s,n)}const Fn={},Jn=new WeakMap;let Pt;function Kc(e,t=!1,n=Pt){if(n){let r=Jn.get(n);r||Jn.set(n,r=[]),r.push(e)}}function Wc(e,t,n=se){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:c}=n,u=P=>s?P:je(P)||s===!1||s===0?dt(P,1):dt(P);let a,f,p,m,g=!1,b=!1;if(ce(e)?(f=()=>e.value,g=je(e)):it(e)?(f=()=>u(e),g=!0):q(e)?(b=!0,g=e.some(P=>it(P)||je(P)),f=()=>e.map(P=>{if(ce(P))return P.value;if(it(P))return u(P);if(W(P))return c?c(P,2):P()})):W(e)?t?f=c?()=>c(e,2):e:f=()=>{if(p){ht();try{p()}finally{pt()}}const P=Pt;Pt=a;try{return c?c(e,3,[m]):e(m)}finally{Pt=P}}:f=ot,t&&s){const P=f,M=s===!0?1/0:s;f=()=>dt(P(),M)}const E=pi(),O=()=>{a.stop(),E&&E.active&&ds(E.effects,a)};if(o&&t){const P=t;t=(...M)=>{P(...M),O()}}let C=b?new Array(e.length).fill(Fn):Fn;const N=P=>{if(!(!(a.flags&1)||!a.dirty&&!P))if(t){const M=a.run();if(s||g||(b?M.some((X,k)=>vt(X,C[k])):vt(M,C))){p&&p();const X=Pt;Pt=a;try{const k=[M,C===Fn?void 0:b&&C[0]===Fn?[]:C,m];C=M,c?c(t,3,k):t(...k)}finally{Pt=X}}}else a.run()};return l&&l(N),a=new mi(f),a.scheduler=i?()=>i(N,!1):N,m=P=>Kc(P,!1,a),p=a.onStop=()=>{const P=Jn.get(a);if(P){if(c)c(P,4);else for(const M of P)M();Jn.delete(a)}},t?r?N(!0):C=a.run():i?i(N.bind(null,!0),!0):a.run(),O.pause=a.pause.bind(a),O.resume=a.resume.bind(a),O.stop=O,O}function dt(e,t=1/0,n){if(t<=0||!le(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,ce(e))dt(e.value,t,n);else if(q(e))for(let r=0;r{dt(r,t,n)});else if(ii(e)){for(const r in e)dt(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&dt(e[r],t,n)}return e}function xn(e,t,n,r){try{return r?e(...r):e()}catch(s){dr(s,t,n)}}function lt(e,t,n,r){if(W(e)){const s=xn(e,t,n,r);return s&&si(s)&&s.catch(o=>{dr(o,t,n)}),s}if(q(e)){const s=[];for(let o=0;o>>1,s=xe[r],o=wn(s);o=wn(n)?xe.push(e):xe.splice(zc(t),0,e),e.flags|=1,Li()}}function Li(){Xn||(Xn=Di.then(Mi))}function Jc(e){q(e)?Wt.push(...e):St&&e.id===-1?St.splice(kt+1,0,e):e.flags&1||(Wt.push(e),e.flags|=1),Li()}function $s(e,t,n=rt+1){for(;nwn(n)-wn(r));if(Wt.length=0,St){St.push(...t);return}for(St=t,kt=0;kte.id==null?e.flags&2?-1:1/0:e.id;function Mi(e){try{for(rt=0;rt{r._d&&tr(-1);const o=Qn(t);let i;try{i=e(...s)}finally{Qn(o),r._d&&tr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function Ah(e,t){if(we===null)return e;const n=gr(we),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&W(t)?t.call(r&&r.proxy):t}}function Qc(){return!!(dl()||Ft)}const Yc=Symbol.for("v-scx"),Zc=()=>ke(Yc);function fn(e,t,n){return ji(e,t,n)}function ji(e,t,n=se){const{immediate:r,deep:s,flush:o,once:i}=n,l=Se({},n),c=t&&r||!t&&o!=="post";let u;if(An){if(o==="sync"){const m=Zc();u=m.__watcherHandles||(m.__watcherHandles=[])}else if(!c){const m=()=>{};return m.stop=ot,m.resume=ot,m.pause=ot,m}}const a=Te;l.call=(m,g,b)=>lt(m,a,g,b);let f=!1;o==="post"?l.scheduler=m=>{ve(m,a&&a.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(m,g)=>{g?m():As(m)}),l.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,a&&(m.id=a.uid,m.i=a))};const p=Wc(e,t,l);return An&&(u?u.push(p):c&&p()),p}function ea(e,t,n){const r=this.proxy,s=de(e)?e.includes(".")?Bi(r,e):()=>r[e]:e.bind(r,r);let o;W(t)?o=t:(o=t.handler,n=t);const i=Tn(this),l=ji(s,o.bind(r),n);return i(),l}function Bi(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,dn=e=>e&&(e.disabled||e.disabled===""),Ks=e=>e&&(e.defer||e.defer===""),Ws=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Gs=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Gr=(e,t)=>{const n=e&&e.to;return de(n)?t?t(n):null:n},ki={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,u){const{mc:a,pc:f,pbc:p,o:{insert:m,querySelector:g,createText:b,createComment:E}}=u,O=dn(t.props);let{shapeFlag:C,children:N,dynamicChildren:P}=t;if(e==null){const M=t.el=b(""),X=t.anchor=b("");m(M,n,r),m(X,n,r);const k=(U,ee)=>{C&16&&a(N,U,ee,s,o,i,l,c)},V=()=>{const U=t.target=Gr(t.props,g),ee=Vi(U,t,b,m);U&&(i!=="svg"&&Ws(U)?i="svg":i!=="mathml"&&Gs(U)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(U),O||(k(U,ee),kn(t,!1)))};O&&(k(n,X),kn(t,!0)),Ks(t.props)?(t.el.__isMounted=!1,ve(()=>{V(),delete t.el.__isMounted},o)):V()}else{if(Ks(t.props)&&e.el.__isMounted===!1){ve(()=>{ki.process(e,t,n,r,s,o,i,l,c,u)},o);return}t.el=e.el,t.targetStart=e.targetStart;const M=t.anchor=e.anchor,X=t.target=e.target,k=t.targetAnchor=e.targetAnchor,V=dn(e.props),U=V?n:X,ee=V?M:k;if(i==="svg"||Ws(X)?i="svg":(i==="mathml"||Gs(X))&&(i="mathml"),P?(p(e.dynamicChildren,P,U,s,o,i,l),Cs(e,t,!0)):c||f(e,t,U,ee,s,o,i,l,!1),O)V?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Mn(t,n,M,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const ue=t.target=Gr(t.props,g);ue&&Mn(t,ue,null,u,0)}else V&&Mn(t,X,k,u,1);kn(t,O)}},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetStart:u,targetAnchor:a,target:f,props:p}=e;if(f&&(s(u),s(a)),o&&s(c),i&16){const m=o||!dn(p);for(let g=0;ghn(g,t&&(q(t)?t[b]:t),n,r,s));return}if(Gt(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&hn(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?gr(r.component):r.el,i=s?null:o,{i:l,r:c}=e,u=t&&t.r,a=l.refs===se?l.refs={}:l.refs,f=l.setupState,p=Z(f),m=f===se?ni:g=>ne(p,g);if(u!=null&&u!==c){if(zs(t),de(u))a[u]=null,m(u)&&(f[u]=null);else if(ce(u)){u.value=null;const g=t;g.k&&(a[g.k]=null)}}if(W(c))xn(c,l,12,[i,a]);else{const g=de(c),b=ce(c);if(g||b){const E=()=>{if(e.f){const O=g?m(c)?f[c]:a[c]:c.value;if(s)q(O)&&ds(O,o);else if(q(O))O.includes(o)||O.push(o);else if(g)a[c]=[o],m(c)&&(f[c]=a[c]);else{const C=[o];c.value=C,e.k&&(a[e.k]=C)}}else g?(a[c]=i,m(c)&&(f[c]=i)):b&&(c.value=i,e.k&&(a[e.k]=i))};if(i){const O=()=>{E(),Yn.delete(e)};O.id=-1,Yn.set(e,O),ve(O,n)}else zs(e),E()}}}function zs(e){const t=Yn.get(e);t&&(t.flags|=8,Yn.delete(e))}ar().requestIdleCallback;ar().cancelIdleCallback;const Gt=e=>!!e.type.__asyncLoader,$i=e=>e.type.__isKeepAlive;function sa(e,t){Ki(e,"a",t)}function oa(e,t){Ki(e,"da",t)}function Ki(e,t,n=Te){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(hr(t,r,n),n){let s=n.parent;for(;s&&s.parent;)$i(s.parent.vnode)&&ia(r,t,n,s),s=s.parent}}function ia(e,t,n,r){const s=hr(t,e,r,!0);Wi(()=>{ds(r[t],s)},n)}function hr(e,t,n=Te,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{ht();const l=Tn(n),c=lt(t,n,e,i);return l(),pt(),c});return r?s.unshift(o):s.push(o),o}}const _t=e=>(t,n=Te)=>{(!An||e==="sp")&&hr(e,(...r)=>t(...r),n)},la=_t("bm"),ca=_t("m"),aa=_t("bu"),ua=_t("u"),fa=_t("bum"),Wi=_t("um"),da=_t("sp"),ha=_t("rtg"),pa=_t("rtc");function ma(e,t=Te){hr("ec",e,t)}const ga=Symbol.for("v-ndc");function Oh(e,t,n,r){let s;const o=n,i=q(e);if(i||de(e)){const l=i&&it(e);let c=!1,u=!1;l&&(c=!je(e),u=mt(e),e=ur(e)),s=new Array(e.length);for(let a=0,f=e.length;at(l,c,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let c=0,u=l.length;c0;return er(),nr(Fe,null,[Ce("slot",n,r)],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),er();const i=o&&Gi(o(n)),l=n.key||i&&i.key,c=nr(Fe,{key:(l&&!yt(l)?l:`_${t}`)+(!i&&r?"_fb":"")},i||[],i&&e._===1?64:-2);return c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),o&&o._c&&(o._d=!0),c}function Gi(e){return e.some(t=>Rn(t)?!(t.type===gt||t.type===Fe&&!Gi(t.children)):!0)?e:null}const zr=e=>e?hl(e)?gr(e):zr(e.parent):null,pn=Se(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=>zr(e.parent),$root:e=>zr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ji(e),$forceUpdate:e=>e.f||(e.f=()=>{As(e.update)}),$nextTick:e=>e.n||(e.n=Rs.bind(e.proxy)),$watch:e=>ea.bind(e)}),Pr=(e,t)=>e!==se&&!e.__isScriptSetup&&ne(e,t),ya={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,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 r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(Pr(r,t))return i[t]=1,r[t];if(s!==se&&ne(s,t))return i[t]=2,s[t];if(ne(o,t))return i[t]=3,o[t];if(n!==se&&ne(n,t))return i[t]=4,n[t];Jr&&(i[t]=0)}}const u=pn[t];let a,f;if(u)return t==="$attrs"&&be(e.attrs,"get",""),u(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==se&&ne(n,t))return i[t]=4,n[t];if(f=c.config.globalProperties,ne(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return Pr(s,t)?(s[t]=n,!0):r!==se&&ne(r,t)?(r[t]=n,!0):ne(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:o,type:i}},l){let c;return!!(n[l]||e!==se&&l[0]!=="$"&&ne(e,l)||Pr(t,l)||ne(o,l)||ne(r,l)||ne(pn,l)||ne(s.config.globalProperties,l)||(c=i.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ne(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Js(e){return q(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Jr=!0;function _a(e){const t=Ji(e),n=e.proxy,r=e.ctx;Jr=!1,t.beforeCreate&&Xs(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:u,created:a,beforeMount:f,mounted:p,beforeUpdate:m,updated:g,activated:b,deactivated:E,beforeDestroy:O,beforeUnmount:C,destroyed:N,unmounted:P,render:M,renderTracked:X,renderTriggered:k,errorCaptured:V,serverPrefetch:U,expose:ee,inheritAttrs:ue,components:ye,directives:pe,filters:Re}=t;if(u&&ba(u,r,null),i)for(const K in i){const z=i[K];W(z)&&(r[K]=z.bind(n))}if(s){const K=s.call(n,n);le(K)&&(e.data=On(K))}if(Jr=!0,o)for(const K in o){const z=o[K],Be=W(z)?z.bind(n,n):W(z.get)?z.get.bind(n,n):ot,ze=!W(z)&&W(z.set)?z.set.bind(n):ot,me=Me({get:Be,set:ze});Object.defineProperty(r,K,{enumerable:!0,configurable:!0,get:()=>me.value,set:fe=>me.value=fe})}if(l)for(const K in l)zi(l[K],r,n,K);if(c){const K=W(c)?c.call(n):c;Reflect.ownKeys(K).forEach(z=>{Hn(z,K[z])})}a&&Xs(a,e,"c");function J(K,z){q(z)?z.forEach(Be=>K(Be.bind(n))):z&&K(z.bind(n))}if(J(la,f),J(ca,p),J(aa,m),J(ua,g),J(sa,b),J(oa,E),J(ma,V),J(pa,X),J(ha,k),J(fa,C),J(Wi,P),J(da,U),q(ee))if(ee.length){const K=e.exposed||(e.exposed={});ee.forEach(z=>{Object.defineProperty(K,z,{get:()=>n[z],set:Be=>n[z]=Be,enumerable:!0})})}else e.exposed||(e.exposed={});M&&e.render===ot&&(e.render=M),ue!=null&&(e.inheritAttrs=ue),ye&&(e.components=ye),pe&&(e.directives=pe),U&&qi(e)}function ba(e,t,n=ot){q(e)&&(e=Xr(e));for(const r in e){const s=e[r];let o;le(s)?"default"in s?o=ke(s.from||r,s.default,!0):o=ke(s.from||r):o=ke(s),ce(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function Xs(e,t,n){lt(q(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function zi(e,t,n,r){let s=r.includes(".")?Bi(n,r):()=>n[r];if(de(e)){const o=t[e];W(o)&&fn(s,o)}else if(W(e))fn(s,e.bind(n));else if(le(e))if(q(e))e.forEach(o=>zi(o,t,n,r));else{const o=W(e.handler)?e.handler.bind(n):t[e.handler];W(o)&&fn(s,o,e)}}function Ji(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>Zn(c,u,i,!0)),Zn(c,t,i)),le(t)&&o.set(t,c),c}function Zn(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&Zn(e,o,n,!0),s&&s.forEach(i=>Zn(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Ea[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Ea={data:Qs,props:Ys,emits:Ys,methods:ln,computed:ln,beforeCreate:Ae,created:Ae,beforeMount:Ae,mounted:Ae,beforeUpdate:Ae,updated:Ae,beforeDestroy:Ae,beforeUnmount:Ae,destroyed:Ae,unmounted:Ae,activated:Ae,deactivated:Ae,errorCaptured:Ae,serverPrefetch:Ae,components:ln,directives:ln,watch:Sa,provide:Qs,inject:wa};function Qs(e,t){return t?e?function(){return Se(W(e)?e.call(this,this):e,W(t)?t.call(this,this):t)}:t:e}function wa(e,t){return ln(Xr(e),Xr(t))}function Xr(e){if(q(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${xt(t)}Modifiers`]||e[`${jt(t)}Modifiers`];function Oa(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||se;let s=n;const o=t.startsWith("update:"),i=o&&va(r,t.slice(7));i&&(i.trim&&(s=n.map(a=>de(a)?a.trim():a)),i.number&&(s=n.map(hs)));let l,c=r[l=vr(t)]||r[l=vr(xt(t))];!c&&o&&(c=r[l=vr(jt(t))]),c&<(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,lt(u,e,6,s)}}const xa=new WeakMap;function Qi(e,t,n=!1){const r=n?xa:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!W(e)){const c=u=>{const a=Qi(u,t,!0);a&&(l=!0,Se(i,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(le(e)&&r.set(e,null),null):(q(o)?o.forEach(c=>i[c]=null):Se(i,o),le(e)&&r.set(e,i),i)}function pr(e,t){return!e||!or(t)?!1:(t=t.slice(2).replace(/Once$/,""),ne(e,t[0].toLowerCase()+t.slice(1))||ne(e,jt(t))||ne(e,t))}function Zs(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:a,props:f,data:p,setupState:m,ctx:g,inheritAttrs:b}=e,E=Qn(e);let O,C;try{if(n.shapeFlag&4){const P=s||r,M=P;O=st(u.call(M,P,a,f,m,p,g)),C=l}else{const P=t;O=st(P.length>1?P(f,{attrs:l,slots:i,emit:c}):P(f,null)),C=t.props?l:Ta(l)}}catch(P){mn.length=0,dr(P,e,1),O=Ce(gt)}let N=O;if(C&&b!==!1){const P=Object.keys(C),{shapeFlag:M}=N;P.length&&M&7&&(o&&P.some(fs)&&(C=Ca(C,o)),N=Jt(N,C,!1,!0))}return n.dirs&&(N=Jt(N,null,!1,!0),N.dirs=N.dirs?N.dirs.concat(n.dirs):n.dirs),n.transition&&vs(N,n.transition),O=N,Qn(E),O}const Ta=e=>{let t;for(const n in e)(n==="class"||n==="style"||or(n))&&((t||(t={}))[n]=e[n]);return t},Ca=(e,t)=>{const n={};for(const r in e)(!fs(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Pa(e,t,n){const{props:r,children:s,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 r?eo(r,i,u):!!i;if(c&8){const a=t.dynamicProps;for(let f=0;fObject.create(Yi),el=e=>Object.getPrototypeOf(e)===Yi;function Ia(e,t,n,r=!1){const s={},o=Zi();e.propsDefaults=Object.create(null),tl(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:Ci(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function Da(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=Z(s),[c]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const a=e.vnode.dynamicProps;for(let f=0;f{c=!0;const[p,m]=nl(f,t,!0);Se(i,p),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!c)return le(e)&&r.set(e,$t),$t;if(q(o))for(let a=0;ae==="_"||e==="_ctx"||e==="$stable",Ts=e=>q(e)?e.map(st):[st(e)],Fa=(e,t,n)=>{if(t._n)return t;const r=Xc((...s)=>Ts(t(...s)),n);return r._c=!1,r},rl=(e,t,n)=>{const r=e._ctx;for(const s in e){if(xs(s))continue;const o=e[s];if(W(o))t[s]=Fa(s,o,r);else if(o!=null){const i=Ts(o);t[s]=()=>i}}},sl=(e,t)=>{const n=Ts(t);e.slots.default=()=>n},ol=(e,t,n)=>{for(const r in t)(n||!xs(r))&&(e[r]=t[r])},Ma=(e,t,n)=>{const r=e.slots=Zi();if(e.vnode.shapeFlag&32){const s=t._;s?(ol(r,t,n),n&&ci(r,"_",s,!0)):rl(t,r)}else t&&sl(e,t)},Ua=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=se;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:ol(s,t,n):(o=!t.$stable,rl(t,s)),i=t}else t&&(sl(e,t),i={default:1});if(o)for(const l in s)!xs(l)&&i[l]==null&&delete s[l]},ve=Va;function ja(e){return Ba(e)}function Ba(e,t){const n=ar();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:a,parentNode:f,nextSibling:p,setScopeId:m=ot,insertStaticContent:g}=e,b=(d,h,y,w=null,A=null,S=null,I=void 0,T=null,x=!!h.dynamicChildren)=>{if(d===h)return;d&&!rn(d,h)&&(w=R(d),fe(d,A,S,!0),d=null),h.patchFlag===-2&&(x=!1,h.dynamicChildren=null);const{type:v,ref:H,shapeFlag:L}=h;switch(v){case mr:E(d,h,y,w);break;case gt:O(d,h,y,w);break;case Vn:d==null&&C(h,y,w,I);break;case Fe:ye(d,h,y,w,A,S,I,T,x);break;default:L&1?M(d,h,y,w,A,S,I,T,x):L&6?pe(d,h,y,w,A,S,I,T,x):(L&64||L&128)&&v.process(d,h,y,w,A,S,I,T,x,j)}H!=null&&A?hn(H,d&&d.ref,S,h||d,!h):H==null&&d&&d.ref!=null&&hn(d.ref,null,S,d,!0)},E=(d,h,y,w)=>{if(d==null)r(h.el=l(h.children),y,w);else{const A=h.el=d.el;h.children!==d.children&&u(A,h.children)}},O=(d,h,y,w)=>{d==null?r(h.el=c(h.children||""),y,w):h.el=d.el},C=(d,h,y,w)=>{[d.el,d.anchor]=g(d.children,h,y,w,d.el,d.anchor)},N=({el:d,anchor:h},y,w)=>{let A;for(;d&&d!==h;)A=p(d),r(d,y,w),d=A;r(h,y,w)},P=({el:d,anchor:h})=>{let y;for(;d&&d!==h;)y=p(d),s(d),d=y;s(h)},M=(d,h,y,w,A,S,I,T,x)=>{if(h.type==="svg"?I="svg":h.type==="math"&&(I="mathml"),d==null)X(h,y,w,A,S,I,T,x);else{const v=d.el&&d.el._isVueCE?d.el:null;try{v&&v._beginPatch(),U(d,h,A,S,I,T,x)}finally{v&&v._endPatch()}}},X=(d,h,y,w,A,S,I,T)=>{let x,v;const{props:H,shapeFlag:L,transition:B,dirs:$}=d;if(x=d.el=i(d.type,S,H&&H.is,H),L&8?a(x,d.children):L&16&&V(d.children,x,null,w,A,Nr(d,S),I,T),$&&Tt(d,null,w,"created"),k(x,d,d.scopeId,I,w),H){for(const oe in H)oe!=="value"&&!cn(oe)&&o(x,oe,null,H[oe],S,w);"value"in H&&o(x,"value",null,H.value,S),(v=H.onVnodeBeforeMount)&&et(v,w,d)}$&&Tt(d,null,w,"beforeMount");const Y=Ha(A,B);Y&&B.beforeEnter(x),r(x,h,y),((v=H&&H.onVnodeMounted)||Y||$)&&ve(()=>{v&&et(v,w,d),Y&&B.enter(x),$&&Tt(d,null,w,"mounted")},A)},k=(d,h,y,w,A)=>{if(y&&m(d,y),w)for(let S=0;S{for(let v=x;v{const T=h.el=d.el;let{patchFlag:x,dynamicChildren:v,dirs:H}=h;x|=d.patchFlag&16;const L=d.props||se,B=h.props||se;let $;if(y&&Ct(y,!1),($=B.onVnodeBeforeUpdate)&&et($,y,h,d),H&&Tt(h,d,y,"beforeUpdate"),y&&Ct(y,!0),(L.innerHTML&&B.innerHTML==null||L.textContent&&B.textContent==null)&&a(T,""),v?ee(d.dynamicChildren,v,T,y,w,Nr(h,A),S):I||z(d,h,T,null,y,w,Nr(h,A),S,!1),x>0){if(x&16)ue(T,L,B,y,A);else if(x&2&&L.class!==B.class&&o(T,"class",null,B.class,A),x&4&&o(T,"style",L.style,B.style,A),x&8){const Y=h.dynamicProps;for(let oe=0;oe{$&&et($,y,h,d),H&&Tt(h,d,y,"updated")},w)},ee=(d,h,y,w,A,S,I)=>{for(let T=0;T{if(h!==y){if(h!==se)for(const S in h)!cn(S)&&!(S in y)&&o(d,S,h[S],null,A,w);for(const S in y){if(cn(S))continue;const I=y[S],T=h[S];I!==T&&S!=="value"&&o(d,S,T,I,A,w)}"value"in y&&o(d,"value",h.value,y.value,A)}},ye=(d,h,y,w,A,S,I,T,x)=>{const v=h.el=d?d.el:l(""),H=h.anchor=d?d.anchor:l("");let{patchFlag:L,dynamicChildren:B,slotScopeIds:$}=h;$&&(T=T?T.concat($):$),d==null?(r(v,y,w),r(H,y,w),V(h.children||[],y,H,A,S,I,T,x)):L>0&&L&64&&B&&d.dynamicChildren&&d.dynamicChildren.length===B.length?(ee(d.dynamicChildren,B,y,A,S,I,T),(h.key!=null||A&&h===A.subTree)&&Cs(d,h,!0)):z(d,h,y,H,A,S,I,T,x)},pe=(d,h,y,w,A,S,I,T,x)=>{h.slotScopeIds=T,d==null?h.shapeFlag&512?A.ctx.activate(h,y,w,I,x):Re(h,y,w,A,S,I,x):Ve(d,h,x)},Re=(d,h,y,w,A,S,I)=>{const T=d.component=Xa(d,w,A);if($i(d)&&(T.ctx.renderer=j),Qa(T,!1,I),T.asyncDep){if(A&&A.registerDep(T,J,I),!d.el){const x=T.subTree=Ce(gt);O(null,x,h,y),d.placeholder=x.el}}else J(T,d,h,y,A,S,I)},Ve=(d,h,y)=>{const w=h.component=d.component;if(Pa(d,h,y))if(w.asyncDep&&!w.asyncResolved){K(w,h,y);return}else w.next=h,w.update();else h.el=d.el,w.vnode=h},J=(d,h,y,w,A,S,I)=>{const T=()=>{if(d.isMounted){let{next:L,bu:B,u:$,parent:Y,vnode:oe}=d;{const Ye=il(d);if(Ye){L&&(L.el=oe.el,K(d,L,I)),Ye.asyncDep.then(()=>{d.isUnmounted||T()});return}}let re=L,Pe;Ct(d,!1),L?(L.el=oe.el,K(d,L,I)):L=oe,B&&Bn(B),(Pe=L.props&&L.props.onVnodeBeforeUpdate)&&et(Pe,Y,L,oe),Ct(d,!0);const Ne=Zs(d),Qe=d.subTree;d.subTree=Ne,b(Qe,Ne,f(Qe.el),R(Qe),d,A,S),L.el=Ne.el,re===null&&Na(d,Ne.el),$&&ve($,A),(Pe=L.props&&L.props.onVnodeUpdated)&&ve(()=>et(Pe,Y,L,oe),A)}else{let L;const{el:B,props:$}=h,{bm:Y,m:oe,parent:re,root:Pe,type:Ne}=d,Qe=Gt(h);Ct(d,!1),Y&&Bn(Y),!Qe&&(L=$&&$.onVnodeBeforeMount)&&et(L,re,h),Ct(d,!0);{Pe.ce&&Pe.ce._def.shadowRoot!==!1&&Pe.ce._injectChildStyle(Ne);const Ye=d.subTree=Zs(d);b(null,Ye,y,w,d,A,S),h.el=Ye.el}if(oe&&ve(oe,A),!Qe&&(L=$&&$.onVnodeMounted)){const Ye=h;ve(()=>et(L,re,Ye),A)}(h.shapeFlag&256||re&&Gt(re.vnode)&&re.vnode.shapeFlag&256)&&d.a&&ve(d.a,A),d.isMounted=!0,h=y=w=null}};d.scope.on();const x=d.effect=new mi(T);d.scope.off();const v=d.update=x.run.bind(x),H=d.job=x.runIfDirty.bind(x);H.i=d,H.id=d.uid,x.scheduler=()=>As(H),Ct(d,!0),v()},K=(d,h,y)=>{h.component=d;const w=d.vnode.props;d.vnode=h,d.next=null,Da(d,h.props,w,y),Ua(d,h.children,y),ht(),$s(d),pt()},z=(d,h,y,w,A,S,I,T,x=!1)=>{const v=d&&d.children,H=d?d.shapeFlag:0,L=h.children,{patchFlag:B,shapeFlag:$}=h;if(B>0){if(B&128){ze(v,L,y,w,A,S,I,T,x);return}else if(B&256){Be(v,L,y,w,A,S,I,T,x);return}}$&8?(H&16&&He(v,A,S),L!==v&&a(y,L)):H&16?$&16?ze(v,L,y,w,A,S,I,T,x):He(v,A,S,!0):(H&8&&a(y,""),$&16&&V(L,y,w,A,S,I,T,x))},Be=(d,h,y,w,A,S,I,T,x)=>{d=d||$t,h=h||$t;const v=d.length,H=h.length,L=Math.min(v,H);let B;for(B=0;BH?He(d,A,S,!0,!1,L):V(h,y,w,A,S,I,T,x,L)},ze=(d,h,y,w,A,S,I,T,x)=>{let v=0;const H=h.length;let L=d.length-1,B=H-1;for(;v<=L&&v<=B;){const $=d[v],Y=h[v]=x?Rt(h[v]):st(h[v]);if(rn($,Y))b($,Y,y,null,A,S,I,T,x);else break;v++}for(;v<=L&&v<=B;){const $=d[L],Y=h[B]=x?Rt(h[B]):st(h[B]);if(rn($,Y))b($,Y,y,null,A,S,I,T,x);else break;L--,B--}if(v>L){if(v<=B){const $=B+1,Y=$B)for(;v<=L;)fe(d[v],A,S,!0),v++;else{const $=v,Y=v,oe=new Map;for(v=Y;v<=B;v++){const Le=h[v]=x?Rt(h[v]):st(h[v]);Le.key!=null&&oe.set(Le.key,v)}let re,Pe=0;const Ne=B-Y+1;let Qe=!1,Ye=0;const tn=new Array(Ne);for(v=0;v=Ne){fe(Le,A,S,!0);continue}let Ze;if(Le.key!=null)Ze=oe.get(Le.key);else for(re=Y;re<=B;re++)if(tn[re-Y]===0&&rn(Le,h[re])){Ze=re;break}Ze===void 0?fe(Le,A,S,!0):(tn[Ze-Y]=v+1,Ze>=Ye?Ye=Ze:Qe=!0,b(Le,h[Ze],y,null,A,S,I,T,x),Pe++)}const js=Qe?ka(tn):$t;for(re=js.length-1,v=Ne-1;v>=0;v--){const Le=Y+v,Ze=h[Le],Bs=h[Le+1],Hs=Le+1{const{el:S,type:I,transition:T,children:x,shapeFlag:v}=d;if(v&6){me(d.component.subTree,h,y,w);return}if(v&128){d.suspense.move(h,y,w);return}if(v&64){I.move(d,h,y,j);return}if(I===Fe){r(S,h,y);for(let L=0;LT.enter(S),A);else{const{leave:L,delayLeave:B,afterLeave:$}=T,Y=()=>{d.ctx.isUnmounted?s(S):r(S,h,y)},oe=()=>{S._isLeaving&&S[ra](!0),L(S,()=>{Y(),$&&$()})};B?B(S,Y,oe):oe()}else r(S,h,y)},fe=(d,h,y,w=!1,A=!1)=>{const{type:S,props:I,ref:T,children:x,dynamicChildren:v,shapeFlag:H,patchFlag:L,dirs:B,cacheIndex:$}=d;if(L===-2&&(A=!1),T!=null&&(ht(),hn(T,null,y,d,!0),pt()),$!=null&&(h.renderCache[$]=void 0),H&256){h.ctx.deactivate(d);return}const Y=H&1&&B,oe=!Gt(d);let re;if(oe&&(re=I&&I.onVnodeBeforeUnmount)&&et(re,h,d),H&6)Xe(d.component,y,w);else{if(H&128){d.suspense.unmount(y,w);return}Y&&Tt(d,null,h,"beforeUnmount"),H&64?d.type.remove(d,h,y,j,w):v&&!v.hasOnce&&(S!==Fe||L>0&&L&64)?He(v,h,y,!1,!0):(S===Fe&&L&384||!A&&H&16)&&He(x,h,y),w&&Je(d)}(oe&&(re=I&&I.onVnodeUnmounted)||Y)&&ve(()=>{re&&et(re,h,d),Y&&Tt(d,null,h,"unmounted")},y)},Je=d=>{const{type:h,el:y,anchor:w,transition:A}=d;if(h===Fe){qe(y,w);return}if(h===Vn){P(d);return}const S=()=>{s(y),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(d.shapeFlag&1&&A&&!A.persisted){const{leave:I,delayLeave:T}=A,x=()=>I(y,S);T?T(d.el,S,x):x()}else S()},qe=(d,h)=>{let y;for(;d!==h;)y=p(d),s(d),d=y;s(h)},Xe=(d,h,y)=>{const{bum:w,scope:A,job:S,subTree:I,um:T,m:x,a:v}=d;no(x),no(v),w&&Bn(w),A.stop(),S&&(S.flags|=8,fe(I,d,h,y)),T&&ve(T,h),ve(()=>{d.isUnmounted=!0},h)},He=(d,h,y,w=!1,A=!1,S=0)=>{for(let I=S;I{if(d.shapeFlag&6)return R(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const h=p(d.anchor||d.el),y=h&&h[Hi];return y?p(y):h};let F=!1;const D=(d,h,y)=>{let w;d==null?h._vnode&&(fe(h._vnode,null,null,!0),w=h._vnode.component):b(h._vnode||null,d,h,null,null,null,y),h._vnode=d,F||(F=!0,$s(w),Fi(),F=!1)},j={p:b,um:fe,m:me,r:Je,mt:Re,mc:V,pc:z,pbc:ee,n:R,o:e};return{render:D,hydrate:void 0,createApp:Aa(D)}}function Nr({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 Ct({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Ha(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Cs(e,t,n=!1){const r=e.children,s=t.children;if(q(r)&&q(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function il(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:il(t)}function no(e){if(e)for(let t=0;te.__isSuspense;function Va(e,t){t&&t.pendingBranch?q(e)?t.effects.push(...e):t.effects.push(e):Jc(e)}const Fe=Symbol.for("v-fgt"),mr=Symbol.for("v-txt"),gt=Symbol.for("v-cmt"),Vn=Symbol.for("v-stc"),mn=[];let Ue=null;function er(e=!1){mn.push(Ue=e?null:[])}function qa(){mn.pop(),Ue=mn[mn.length-1]||null}let Sn=1;function tr(e,t=!1){Sn+=e,e<0&&Ue&&t&&(Ue.hasOnce=!0)}function al(e){return e.dynamicChildren=Sn>0?Ue||$t:null,qa(),Sn>0&&Ue&&Ue.push(e),e}function Th(e,t,n,r,s,o){return al(fl(e,t,n,r,s,o,!0))}function nr(e,t,n,r,s){return al(Ce(e,t,n,r,s,!0))}function Rn(e){return e?e.__v_isVNode===!0:!1}function rn(e,t){return e.type===t.type&&e.key===t.key}const ul=({key:e})=>e??null,qn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?de(e)||ce(e)||W(e)?{i:we,r:e,k:t,f:!!n}:e:null);function fl(e,t=null,n=null,r=0,s=null,o=e===Fe?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ul(t),ref:t&&qn(t),scopeId:Ui,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:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:we};return l?(Ps(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=de(n)?8:16),Sn>0&&!i&&Ue&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Ue.push(c),c}const Ce=$a;function $a(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===ga)&&(e=gt),Rn(e)){const l=Jt(e,t,!0);return n&&Ps(l,n),Sn>0&&!o&&Ue&&(l.shapeFlag&6?Ue[Ue.indexOf(e)]=l:Ue.push(l)),l.patchFlag=-2,l}if(tu(e)&&(e=e.__vccOpts),t){t=Ka(t);let{class:l,style:c}=t;l&&!de(l)&&(t.class=ms(l)),le(c)&&(fr(c)&&!q(c)&&(c=Se({},c)),t.style=ps(c))}const i=de(e)?1:cl(e)?128:ta(e)?64:le(e)?4:W(e)?2:0;return fl(e,t,n,r,s,i,o,!0)}function Ka(e){return e?fr(e)||el(e)?Se({},e):e:null}function Jt(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?Ga(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&ul(u),ref:t&&t.ref?n&&o?q(o)?o.concat(qn(t)):[o,qn(t)]:qn(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!==Fe?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&&Jt(e.ssContent),ssFallback:e.ssFallback&&Jt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&vs(a,c.clone(a)),a}function Wa(e=" ",t=0){return Ce(mr,null,e,t)}function Ch(e,t){const n=Ce(Vn,null,e);return n.staticCount=t,n}function Ph(e="",t=!1){return t?(er(),nr(gt,null,e)):Ce(gt,null,e)}function st(e){return e==null||typeof e=="boolean"?Ce(gt):q(e)?Ce(Fe,null,e.slice()):Rn(e)?Rt(e):Ce(mr,null,String(e))}function Rt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Jt(e)}function Ps(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(q(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Ps(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!el(t)?t._ctx=we:s===3&&we&&(we.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else W(t)?(t={default:t,_ctx:we},n=32):(t=String(t),r&64?(n=16,t=[Wa(t)]):n=8);e.children=t,e.shapeFlag|=n}function Ga(...e){const t={};for(let n=0;nTe||we;let rr,Yr;{const e=ar(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};rr=t("__VUE_INSTANCE_SETTERS__",n=>Te=n),Yr=t("__VUE_SSR_SETTERS__",n=>An=n)}const Tn=e=>{const t=Te;return rr(e),e.scope.on(),()=>{e.scope.off(),rr(t)}},ro=()=>{Te&&Te.scope.off(),rr(null)};function hl(e){return e.vnode.shapeFlag&4}let An=!1;function Qa(e,t=!1,n=!1){t&&Yr(t);const{props:r,children:s}=e.vnode,o=hl(e);Ia(e,r,o,t),Ma(e,s,n||t);const i=o?Ya(e,t):void 0;return t&&Yr(!1),i}function Ya(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,ya);const{setup:r}=n;if(r){ht();const s=e.setupContext=r.length>1?eu(e):null,o=Tn(e),i=xn(r,e,0,[e.props,s]),l=si(i);if(pt(),o(),(l||e.sp)&&!Gt(e)&&qi(e),l){if(i.then(ro,ro),t)return i.then(c=>{so(e,c)}).catch(c=>{dr(c,e,0)});e.asyncDep=i}else so(e,i)}else pl(e)}function so(e,t,n){W(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:le(t)&&(e.setupState=Ni(t)),pl(e)}function pl(e,t,n){const r=e.type;e.render||(e.render=r.render||ot);{const s=Tn(e);ht();try{_a(e)}finally{pt(),s()}}}const Za={get(e,t){return be(e,"get",""),e[t]}};function eu(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Za),slots:e.slots,emit:e.emit,expose:t}}function gr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ni(Ss(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in pn)return pn[n](e)},has(t,n){return n in t||n in pn}})):e.proxy}function tu(e){return W(e)&&"__vccOpts"in e}const Me=(e,t)=>$c(e,t,An);function ml(e,t,n){try{tr(-1);const r=arguments.length;return r===2?le(t)&&!q(t)?Rn(t)?Ce(e,null,[t]):Ce(e,t):Ce(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Rn(n)&&(n=[n]),Ce(e,t,n))}finally{tr(1)}}const nu="3.5.26";let Zr;const oo=typeof window<"u"&&window.trustedTypes;if(oo)try{Zr=oo.createPolicy("vue",{createHTML:e=>e})}catch{}const gl=Zr?e=>Zr.createHTML(e):e=>e,ru="http://www.w3.org/2000/svg",su="http://www.w3.org/1998/Math/MathML",ut=typeof document<"u"?document:null,io=ut&&ut.createElement("template"),ou={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?ut.createElementNS(ru,e):t==="mathml"?ut.createElementNS(su,e):n?ut.createElement(e,{is:n}):ut.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>ut.createTextNode(e),createComment:e=>ut.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ut.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{io.innerHTML=gl(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=io.content;if(r==="svg"||r==="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]}},iu=Symbol("_vtc");function lu(e,t,n){const r=e[iu];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const lo=Symbol("_vod"),cu=Symbol("_vsh"),au=Symbol(""),uu=/(?:^|;)\s*display\s*:/;function fu(e,t,n){const r=e.style,s=de(n);let o=!1;if(n&&!s){if(t)if(de(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&$n(r,l,"")}else for(const i in t)n[i]==null&&$n(r,i,"");for(const i in n)i==="display"&&(o=!0),$n(r,i,n[i])}else if(s){if(t!==n){const i=r[au];i&&(n+=";"+i),r.cssText=n,o=uu.test(n)}}else t&&e.removeAttribute("style");lo in e&&(e[lo]=o?r.display:"",e[cu]&&(r.display="none"))}const co=/\s*!important$/;function $n(e,t,n){if(q(n))n.forEach(r=>$n(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=du(e,t);co.test(n)?e.setProperty(jt(r),n.replace(co,""),"important"):e[r]=n}}const ao=["Webkit","Moz","ms"],Ir={};function du(e,t){const n=Ir[t];if(n)return n;let r=xt(t);if(r!=="filter"&&r in e)return Ir[t]=r;r=li(r);for(let s=0;sDr||(gu.then(()=>Dr=0),Dr=Date.now());function _u(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;lt(bu(r,n.value),t,5,[r])};return n.value=e,n.attached=yu(),n}function bu(e,t){if(q(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const go=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Eu=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?lu(e,r,i):t==="style"?fu(e,n,r):or(t)?fs(t)||pu(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):wu(e,t,r,i))?(ho(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&fo(e,t,r,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!de(r))?ho(e,xt(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),fo(e,t,r,i))};function wu(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&go(t)&&W(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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return go(t)&&de(n)?!1:t in e}const yo=e=>{const t=e.props["onUpdate:modelValue"]||!1;return q(t)?n=>Bn(t,n):t};function Su(e){e.target.composing=!0}function _o(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Lr=Symbol("_assign");function bo(e,t,n){return t&&(e=e.trim()),n&&(e=hs(e)),e}const Nh={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Lr]=yo(s);const o=r||s.props&&s.props.type==="number";Vt(e,t?"change":"input",i=>{i.target.composing||e[Lr](bo(e.value,n,o))}),(n||o)&&Vt(e,"change",()=>{e.value=bo(e.value,n,o)}),t||(Vt(e,"compositionstart",Su),Vt(e,"compositionend",_o),Vt(e,"change",_o))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Lr]=yo(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?hs(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},Ru=["ctrl","shift","alt","meta"],Au={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Ru.some(n=>e[`${n}Key`]&&!t.includes(n))},Ih=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const t=Ou().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Cu(r);if(!s)return;const o=t._component;!W(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,Tu(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t});function Tu(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Cu(e){return de(e)?document.querySelector(e):e}let yl;const yr=e=>yl=e,_l=Symbol();function es(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var gn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(gn||(gn={}));function Pu(){const e=hi(!0),t=e.run(()=>Lt({}));let n=[],r=[];const s=Ss({install(o){yr(s),s._a=o,o.provide(_l,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const bl=()=>{};function wo(e,t,n,r=bl){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&pi()&&gc(s),s}function Ht(e,...t){e.forEach(n=>{n(...t)})}const Nu=e=>e(),So=Symbol(),Fr=Symbol();function ts(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];es(s)&&es(r)&&e.hasOwnProperty(n)&&!ce(r)&&!it(r)?e[n]=ts(s,r):e[n]=r}return e}const Iu=Symbol();function Du(e){return!es(e)||!Object.prototype.hasOwnProperty.call(e,Iu)}const{assign:Et}=Object;function Lu(e){return!!(ce(e)&&e.effect)}function Fu(e,t,n,r){const{state:s,actions:o,getters:i}=t,l=n.state.value[e];let c;function u(){l||(n.state.value[e]=s?s():{});const a=Bc(n.state.value[e]);return Et(a,o,Object.keys(i||{}).reduce((f,p)=>(f[p]=Ss(Me(()=>{yr(n);const m=n._s.get(e);return i[p].call(m,m)})),f),{}))}return c=El(e,u,t,n,r,!0),c}function El(e,t,n={},r,s,o){let i;const l=Et({actions:{}},n),c={deep:!0};let u,a,f=new Set,p=new Set,m;const g=r.state.value[e];!o&&!g&&(r.state.value[e]={}),Lt({});let b;function E(V){let U;u=a=!1,typeof V=="function"?(V(r.state.value[e]),U={type:gn.patchFunction,storeId:e,events:m}):(ts(r.state.value[e],V),U={type:gn.patchObject,payload:V,storeId:e,events:m});const ee=b=Symbol();Rs().then(()=>{b===ee&&(u=!0)}),a=!0,Ht(f,U,r.state.value[e])}const O=o?function(){const{state:U}=n,ee=U?U():{};this.$patch(ue=>{Et(ue,ee)})}:bl;function C(){i.stop(),f.clear(),p.clear(),r._s.delete(e)}const N=(V,U="")=>{if(So in V)return V[Fr]=U,V;const ee=function(){yr(r);const ue=Array.from(arguments),ye=new Set,pe=new Set;function Re(K){ye.add(K)}function Ve(K){pe.add(K)}Ht(p,{args:ue,name:ee[Fr],store:M,after:Re,onError:Ve});let J;try{J=V.apply(this&&this.$id===e?this:M,ue)}catch(K){throw Ht(pe,K),K}return J instanceof Promise?J.then(K=>(Ht(ye,K),K)).catch(K=>(Ht(pe,K),Promise.reject(K))):(Ht(ye,J),J)};return ee[So]=!0,ee[Fr]=U,ee},P={_p:r,$id:e,$onAction:wo.bind(null,p),$patch:E,$reset:O,$subscribe(V,U={}){const ee=wo(f,V,U.detached,()=>ue()),ue=i.run(()=>fn(()=>r.state.value[e],ye=>{(U.flush==="sync"?a:u)&&V({storeId:e,type:gn.direct,events:m},ye)},Et({},c,U)));return ee},$dispose:C},M=On(P);r._s.set(e,M);const k=(r._a&&r._a.runWithContext||Nu)(()=>r._e.run(()=>(i=hi()).run(()=>t({action:N}))));for(const V in k){const U=k[V];if(ce(U)&&!Lu(U)||it(U))o||(g&&Du(U)&&(ce(U)?U.value=g[V]:ts(U,g[V])),r.state.value[e][V]=U);else if(typeof U=="function"){const ee=N(U,V);k[V]=ee,l.actions[V]=U}}return Et(M,k),Et(Z(M),k),Object.defineProperty(M,"$state",{get:()=>r.state.value[e],set:V=>{E(U=>{Et(U,V)})}}),r._p.forEach(V=>{Et(M,i.run(()=>V({store:M,app:r._a,pinia:r,options:l})))}),g&&o&&n.hydrate&&n.hydrate(M.$state,g),u=!0,a=!0,M}function Mu(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,l){const c=Qc();return i=i||(c?ke(_l,null):null),i&&yr(i),i=yl,i._s.has(e)||(s?El(e,t,r,i):Fu(e,r,i)),i._s.get(e)}return o.$id=e,o}function Dh(e){const t=Z(e),n={};for(const r in t){const s=t[r];s.effect?n[r]=Me({get:()=>e[r],set(o){e[r]=o}}):(ce(s)||it(s))&&(n[r]=Vc(e,r))}return n}const Uu="modulepreload",ju=function(e){return"/"+e},Ro={},tt=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let c=function(u){return Promise.all(u.map(a=>Promise.resolve(a).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=c(n.map(u=>{if(u=ju(u),u in Ro)return;Ro[u]=!0;const a=u.endsWith(".css"),f=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const p=document.createElement("link");if(p.rel=a?"stylesheet":Uu,a||(p.as="script"),p.crossOrigin="",p.href=u,l&&p.setAttribute("nonce",l),document.head.appendChild(p),a)return new Promise((m,g)=>{p.addEventListener("load",m),p.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})};const qt=typeof document<"u";function wl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Bu(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&wl(e.default)}const te=Object.assign;function Mr(e,t){const n={};for(const r in t){const s=t[r];n[r]=We(s)?s.map(e):e(s)}return n}const yn=()=>{},We=Array.isArray;function Ao(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const Sl=/#/g,Hu=/&/g,ku=/\//g,Vu=/=/g,qu=/\?/g,Rl=/\+/g,$u=/%5B/g,Ku=/%5D/g,Al=/%5E/g,Wu=/%60/g,vl=/%7B/g,Gu=/%7C/g,Ol=/%7D/g,zu=/%20/g;function Ns(e){return e==null?"":encodeURI(""+e).replace(Gu,"|").replace($u,"[").replace(Ku,"]")}function Ju(e){return Ns(e).replace(vl,"{").replace(Ol,"}").replace(Al,"^")}function ns(e){return Ns(e).replace(Rl,"%2B").replace(zu,"+").replace(Sl,"%23").replace(Hu,"%26").replace(Wu,"`").replace(vl,"{").replace(Ol,"}").replace(Al,"^")}function Xu(e){return ns(e).replace(Vu,"%3D")}function Qu(e){return Ns(e).replace(Sl,"%23").replace(qu,"%3F")}function Yu(e){return Qu(e).replace(ku,"%2F")}function vn(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Zu=/\/$/,ef=e=>e.replace(Zu,"");function Ur(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return c=l>=0&&c>l?-1:c,c>=0&&(r=t.slice(0,c),o=t.slice(c,l>0?l:t.length),s=e(o.slice(1))),l>=0&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=sf(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:vn(i)}}function tf(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function vo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function nf(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&Xt(t.matched[r],n.matched[s])&&xl(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Xt(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function xl(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!rf(e[n],t[n]))return!1;return!0}function rf(e,t){return We(e)?Oo(e,t):We(t)?Oo(t,e):e?.valueOf()===t?.valueOf()}function Oo(e,t){return We(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function sf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const bt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let rs=(function(e){return e.pop="pop",e.push="push",e})({}),jr=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function of(e){if(!e)if(qt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),ef(e)}const lf=/^[^#]+#/;function cf(e,t){return e.replace(lf,"#")+t}function af(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const _r=()=>({left:window.scrollX,top:window.scrollY});function uf(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=af(s,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 xo(e,t){return(history.state?history.state.position-t:-1)+e}const ss=new Map;function ff(e,t){ss.set(e,t)}function df(e){const t=ss.get(e);return ss.delete(e),t}function hf(e){return typeof e=="string"||e&&typeof e=="object"}function Tl(e){return typeof e=="string"||typeof e=="symbol"}let ae=(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 Cl=Symbol("");ae.MATCHER_NOT_FOUND+"",ae.NAVIGATION_GUARD_REDIRECT+"",ae.NAVIGATION_ABORTED+"",ae.NAVIGATION_CANCELLED+"",ae.NAVIGATION_DUPLICATED+"";function Qt(e,t){return te(new Error,{type:e,[Cl]:!0},t)}function at(e,t){return e instanceof Error&&Cl in e&&(t==null||!!(e.type&t))}const pf=["params","query","hash"];function mf(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of pf)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function gf(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&ns(s)):[r&&ns(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function yf(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=We(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const _f=Symbol(""),Co=Symbol(""),br=Symbol(""),Is=Symbol(""),os=Symbol("");function sn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function At(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,c)=>{const u=p=>{p===!1?c(Qt(ae.NAVIGATION_ABORTED,{from:n,to:t})):p instanceof Error?c(p):hf(p)?c(Qt(ae.NAVIGATION_GUARD_REDIRECT,{from:t,to:p})):(i&&r.enterCallbacks[s]===i&&typeof p=="function"&&i.push(p),l())},a=o(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(a);e.length<3&&(f=f.then(u)),f.catch(p=>c(p))})}function Br(e,t,n,r,s=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(wl(c)){const u=(c.__vccOpts||c)[t];u&&o.push(At(u,n,r,i,l,s))}else{let u=c();o.push(()=>u.then(a=>{if(!a)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=Bu(a)?a.default:a;i.mods[l]=a,i.components[l]=f;const p=(f.__vccOpts||f)[t];return p&&At(p,n,r,i,l,s)()}))}}return o}function bf(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;iXt(u,l))?r.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(u=>Xt(u,c))||s.push(c))}return[n,r,s]}let Ef=()=>location.protocol+"//"+location.host;function Pl(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(i);return l[0]!=="/"&&(l="/"+l),vo(l,"")}return vo(n,e)+r+s}function wf(e,t,n,r){let s=[],o=[],i=null;const l=({state:p})=>{const m=Pl(e,location),g=n.value,b=t.value;let E=0;if(p){if(n.value=m,t.value=p,i&&i===g){i=null;return}E=b?p.position-b.position:0}else r(m);s.forEach(O=>{O(n.value,g,{delta:E,type:rs.pop,direction:E?E>0?jr.forward:jr.back:jr.unknown})})};function c(){i=n.value}function u(p){s.push(p);const m=()=>{const g=s.indexOf(p);g>-1&&s.splice(g,1)};return o.push(m),m}function a(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(te({},p.state,{scroll:_r()}),"")}}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,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?_r():null}}function Sf(e){const{history:t,location:n}=window,r={value:Pl(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.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:Ef()+e+c;try{t[a?"replaceState":"pushState"](u,"",p),s.value=u}catch(m){console.error(m),n[a?"replace":"assign"](p)}}function i(c,u){o(c,te({},t.state,Po(s.value.back,c,s.value.forward,!0),u,{position:s.value.position}),!0),r.value=c}function l(c,u){const a=te({},s.value,t.state,{forward:c,scroll:_r()});o(a.current,a,!0),o(c,te({},Po(r.value,c,null),{position:a.position+1},u),!1),r.value=c}return{location:r,state:s,push:l,replace:i}}function Rf(e){e=of(e);const t=Sf(e),n=wf(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=te({location:"",base:e,go:r,createHref:cf.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function Af(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),Rf(e)}let Nt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var ge=(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})(ge||{});const vf={type:Nt.Static,value:""},Of=/[a-zA-Z0-9_]/;function xf(e){if(!e)return[[]];if(e==="/")return[[vf]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${u}": ${m}`)}let n=ge.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,c,u="",a="";function f(){u&&(n===ge.Static?o.push({type:Nt.Static,value:u}):n===ge.Param||n===ge.ParamRegExp||n===ge.ParamRegExpEnd?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:Nt.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]===Oe.Static+Oe.Segment?1:-1:0}function Nl(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const If={strict:!1,end:!0,sensitive:!1};function Df(e,t,n){const r=Pf(xf(e.path),n),s=te(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function Lf(e,t){const n=[],r=new Map;t=Ao(If,t);function s(f){return r.get(f)}function o(f,p,m){const g=!m,b=Lo(f);b.aliasOf=m&&m.record;const E=Ao(t,f),O=[b];if("alias"in f){const P=typeof f.alias=="string"?[f.alias]:f.alias;for(const M of P)O.push(Lo(te({},b,{components:m?m.record.components:b.components,path:M,aliasOf:m?m.record:b})))}let C,N;for(const P of O){const{path:M}=P;if(p&&M[0]!=="/"){const X=p.record.path,k=X[X.length-1]==="/"?"":"/";P.path=p.record.path+(M&&k+M)}if(C=Df(P,p,E),m?m.alias.push(C):(N=N||C,N!==C&&N.alias.push(C),g&&f.name&&!Fo(C)&&i(f.name)),Il(C)&&c(C),b.children){const X=b.children;for(let k=0;k{i(N)}:yn}function i(f){if(Tl(f)){const p=r.get(f);p&&(r.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&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function c(f){const p=Uf(f,n);n.splice(p,0,f),f.record.name&&!Fo(f)&&r.set(f.record.name,f)}function u(f,p){let m,g={},b,E;if("name"in f&&f.name){if(m=r.get(f.name),!m)throw Qt(ae.MATCHER_NOT_FOUND,{location:f});E=m.record.name,g=te(Do(p.params,m.keys.filter(N=>!N.optional).concat(m.parent?m.parent.keys.filter(N=>N.optional):[]).map(N=>N.name)),f.params&&Do(f.params,m.keys.map(N=>N.name))),b=m.stringify(g)}else if(f.path!=null)b=f.path,m=n.find(N=>N.re.test(b)),m&&(g=m.parse(b),E=m.record.name);else{if(m=p.name?r.get(p.name):n.find(N=>N.re.test(p.path)),!m)throw Qt(ae.MATCHER_NOT_FOUND,{location:f,currentLocation:p});E=m.record.name,g=te({},p.params,f.params),b=m.stringify(g)}const O=[];let C=m;for(;C;)O.unshift(C.record),C=C.parent;return{name:E,path:b,params:g,matched:O,meta:Mf(O)}}e.forEach(f=>o(f));function a(){n.length=0,r.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:a,getRoutes:l,getRecordMatcher:s}}function Do(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function Lo(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Ff(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 Ff(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function Fo(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Mf(e){return e.reduce((t,n)=>te(t,n.meta),{})}function Uf(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;Nl(e,t[o])<0?r=o:n=o+1}const s=jf(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function jf(e){let t=e;for(;t=t.parent;)if(Il(t)&&Nl(e,t)===0)return t}function Il({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Mo(e){const t=ke(br),n=ke(Is),r=Me(()=>{const c=Ot(e.to);return t.resolve(c)}),s=Me(()=>{const{matched:c}=r.value,{length:u}=c,a=c[u-1],f=n.matched;if(!a||!f.length)return-1;const p=f.findIndex(Xt.bind(null,a));if(p>-1)return p;const m=Uo(c[u-2]);return u>1&&Uo(a)===m&&f[f.length-1].path!==m?f.findIndex(Xt.bind(null,c[u-2])):p}),o=Me(()=>s.value>-1&&qf(n.params,r.value.params)),i=Me(()=>s.value>-1&&s.value===n.matched.length-1&&xl(n.params,r.value.params));function l(c={}){if(Vf(c)){const u=t[Ot(e.replace)?"replace":"push"](Ot(e.to)).catch(yn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Me(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function Bf(e){return e.length===1?e[0]:e}const Hf=Os({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=On(Mo(e)),{options:r}=ke(br),s=Me(()=>({[jo(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[jo(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&Bf(t.default(n));return e.custom?o:ml("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),kf=Hf;function Vf(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 qf(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!We(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function Uo(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const jo=(e,t,n)=>e??t??n,$f=Os({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=ke(os),s=Me(()=>e.route||r.value),o=ke(Co,0),i=Me(()=>{let u=Ot(o);const{matched:a}=s.value;let f;for(;(f=a[u])&&!f.components;)u++;return u}),l=Me(()=>s.value.matched[i.value]);Hn(Co,Me(()=>i.value+1)),Hn(_f,l),Hn(os,s);const c=Lt();return fn(()=>[c.value,l.value,e.name],([u,a,f],[p,m,g])=>{a&&(a.instances[f]=u,m&&m!==a&&u&&u===p&&(a.leaveGuards.size||(a.leaveGuards=m.leaveGuards),a.updateGuards.size||(a.updateGuards=m.updateGuards))),u&&a&&(!m||!Xt(a,m)||!p)&&(a.enterCallbacks[f]||[]).forEach(b=>b(u))},{flush:"post"}),()=>{const u=s.value,a=e.name,f=l.value,p=f&&f.components[a];if(!p)return Bo(n.default,{Component:p,route:u});const m=f.props[a],g=m?m===!0?u.params:typeof m=="function"?m(u):m:null,E=ml(p,te({},g,t,{onVnodeUnmounted:O=>{O.component.isUnmounted&&(f.instances[a]=null)},ref:c}));return Bo(n.default,{Component:E,route:u})||E}}});function Bo(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Dl=$f;function Kf(e){const t=Lf(e.routes,e),n=e.parseQuery||gf,r=e.stringifyQuery||To,s=e.history,o=sn(),i=sn(),l=sn(),c=Mc(bt);let u=bt;qt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const a=Mr.bind(null,R=>""+R),f=Mr.bind(null,Yu),p=Mr.bind(null,vn);function m(R,F){let D,j;return Tl(R)?(D=t.getRecordMatcher(R),j=F):j=R,t.addRoute(j,D)}function g(R){const F=t.getRecordMatcher(R);F&&t.removeRoute(F)}function b(){return t.getRoutes().map(R=>R.record)}function E(R){return!!t.getRecordMatcher(R)}function O(R,F){if(F=te({},F||c.value),typeof R=="string"){const y=Ur(n,R,F.path),w=t.resolve({path:y.path},F),A=s.createHref(y.fullPath);return te(y,w,{params:p(w.params),hash:vn(y.hash),redirectedFrom:void 0,href:A})}let D;if(R.path!=null)D=te({},R,{path:Ur(n,R.path,F.path).path});else{const y=te({},R.params);for(const w in y)y[w]==null&&delete y[w];D=te({},R,{params:f(y)}),F.params=f(F.params)}const j=t.resolve(D,F),Q=R.hash||"";j.params=a(p(j.params));const d=tf(r,te({},R,{hash:Ju(Q),path:j.path})),h=s.createHref(d);return te({fullPath:d,hash:Q,query:r===To?yf(R.query):R.query||{}},j,{redirectedFrom:void 0,href:h})}function C(R){return typeof R=="string"?Ur(n,R,c.value.path):te({},R)}function N(R,F){if(u!==R)return Qt(ae.NAVIGATION_CANCELLED,{from:F,to:R})}function P(R){return k(R)}function M(R){return P(te(C(R),{replace:!0}))}function X(R,F){const D=R.matched[R.matched.length-1];if(D&&D.redirect){const{redirect:j}=D;let Q=typeof j=="function"?j(R,F):j;return typeof Q=="string"&&(Q=Q.includes("?")||Q.includes("#")?Q=C(Q):{path:Q},Q.params={}),te({query:R.query,hash:R.hash,params:Q.path!=null?{}:R.params},Q)}}function k(R,F){const D=u=O(R),j=c.value,Q=R.state,d=R.force,h=R.replace===!0,y=X(D,j);if(y)return k(te(C(y),{state:typeof y=="object"?te({},Q,y.state):Q,force:d,replace:h}),F||D);const w=D;w.redirectedFrom=F;let A;return!d&&nf(r,j,D)&&(A=Qt(ae.NAVIGATION_DUPLICATED,{to:w,from:j}),me(j,j,!0,!1)),(A?Promise.resolve(A):ee(w,j)).catch(S=>at(S)?at(S,ae.NAVIGATION_GUARD_REDIRECT)?S:ze(S):z(S,w,j)).then(S=>{if(S){if(at(S,ae.NAVIGATION_GUARD_REDIRECT))return k(te({replace:h},C(S.to),{state:typeof S.to=="object"?te({},Q,S.to.state):Q,force:d}),F||w)}else S=ye(w,j,!0,h,Q);return ue(w,j,S),S})}function V(R,F){const D=N(R,F);return D?Promise.reject(D):Promise.resolve()}function U(R){const F=qe.values().next().value;return F&&typeof F.runWithContext=="function"?F.runWithContext(R):R()}function ee(R,F){let D;const[j,Q,d]=bf(R,F);D=Br(j.reverse(),"beforeRouteLeave",R,F);for(const y of j)y.leaveGuards.forEach(w=>{D.push(At(w,R,F))});const h=V.bind(null,R,F);return D.push(h),He(D).then(()=>{D=[];for(const y of o.list())D.push(At(y,R,F));return D.push(h),He(D)}).then(()=>{D=Br(Q,"beforeRouteUpdate",R,F);for(const y of Q)y.updateGuards.forEach(w=>{D.push(At(w,R,F))});return D.push(h),He(D)}).then(()=>{D=[];for(const y of d)if(y.beforeEnter)if(We(y.beforeEnter))for(const w of y.beforeEnter)D.push(At(w,R,F));else D.push(At(y.beforeEnter,R,F));return D.push(h),He(D)}).then(()=>(R.matched.forEach(y=>y.enterCallbacks={}),D=Br(d,"beforeRouteEnter",R,F,U),D.push(h),He(D))).then(()=>{D=[];for(const y of i.list())D.push(At(y,R,F));return D.push(h),He(D)}).catch(y=>at(y,ae.NAVIGATION_CANCELLED)?y:Promise.reject(y))}function ue(R,F,D){l.list().forEach(j=>U(()=>j(R,F,D)))}function ye(R,F,D,j,Q){const d=N(R,F);if(d)return d;const h=F===bt,y=qt?history.state:{};D&&(j||h?s.replace(R.fullPath,te({scroll:h&&y&&y.scroll},Q)):s.push(R.fullPath,Q)),c.value=R,me(R,F,D,h),ze()}let pe;function Re(){pe||(pe=s.listen((R,F,D)=>{if(!Xe.listening)return;const j=O(R),Q=X(j,Xe.currentRoute.value);if(Q){k(te(Q,{replace:!0,force:!0}),j).catch(yn);return}u=j;const d=c.value;qt&&ff(xo(d.fullPath,D.delta),_r()),ee(j,d).catch(h=>at(h,ae.NAVIGATION_ABORTED|ae.NAVIGATION_CANCELLED)?h:at(h,ae.NAVIGATION_GUARD_REDIRECT)?(k(te(C(h.to),{force:!0}),j).then(y=>{at(y,ae.NAVIGATION_ABORTED|ae.NAVIGATION_DUPLICATED)&&!D.delta&&D.type===rs.pop&&s.go(-1,!1)}).catch(yn),Promise.reject()):(D.delta&&s.go(-D.delta,!1),z(h,j,d))).then(h=>{h=h||ye(j,d,!1),h&&(D.delta&&!at(h,ae.NAVIGATION_CANCELLED)?s.go(-D.delta,!1):D.type===rs.pop&&at(h,ae.NAVIGATION_ABORTED|ae.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),ue(j,d,h)}).catch(yn)}))}let Ve=sn(),J=sn(),K;function z(R,F,D){ze(R);const j=J.list();return j.length?j.forEach(Q=>Q(R,F,D)):console.error(R),Promise.reject(R)}function Be(){return K&&c.value!==bt?Promise.resolve():new Promise((R,F)=>{Ve.add([R,F])})}function ze(R){return K||(K=!R,Re(),Ve.list().forEach(([F,D])=>R?D(R):F()),Ve.reset()),R}function me(R,F,D,j){const{scrollBehavior:Q}=e;if(!qt||!Q)return Promise.resolve();const d=!D&&df(xo(R.fullPath,0))||(j||!D)&&history.state&&history.state.scroll||null;return Rs().then(()=>Q(R,F,d)).then(h=>h&&uf(h)).catch(h=>z(h,R,F))}const fe=R=>s.go(R);let Je;const qe=new Set,Xe={currentRoute:c,listening:!0,addRoute:m,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:E,getRoutes:b,resolve:O,options:e,push:P,replace:M,go:fe,back:()=>fe(-1),forward:()=>fe(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:J.add,isReady:Be,install(R){R.component("RouterLink",kf),R.component("RouterView",Dl),R.config.globalProperties.$router=Xe,Object.defineProperty(R.config.globalProperties,"$route",{enumerable:!0,get:()=>Ot(c)}),qt&&!Je&&c.value===bt&&(Je=!0,P(s.location).catch(j=>{}));const F={};for(const j in bt)Object.defineProperty(F,j,{get:()=>c.value[j],enumerable:!0});R.provide(br,Xe),R.provide(Is,Ci(F)),R.provide(os,c);const D=R.unmount;qe.add(R),R.unmount=function(){qe.delete(R),qe.size<1&&(u=bt,pe&&pe(),pe=null,c.value=bt,Je=!1,K=!1),D()}}};function He(R){return R.reduce((F,D)=>F.then(()=>U(D)),Promise.resolve())}return Xe}function Lh(){return ke(br)}function Fh(e){return ke(Is)}function Ll(e,t){return function(){return e.apply(t,arguments)}}const{toString:Wf}=Object.prototype,{getPrototypeOf:Ds}=Object,{iterator:Er,toStringTag:Fl}=Symbol,wr=(e=>t=>{const n=Wf.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ge=e=>(e=e.toLowerCase(),t=>wr(t)===e),Sr=e=>t=>typeof t===e,{isArray:Zt}=Array,Yt=Sr("undefined");function Cn(e){return e!==null&&!Yt(e)&&e.constructor!==null&&!Yt(e.constructor)&&Ie(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Ml=Ge("ArrayBuffer");function Gf(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Ml(e.buffer),t}const zf=Sr("string"),Ie=Sr("function"),Ul=Sr("number"),Pn=e=>e!==null&&typeof e=="object",Jf=e=>e===!0||e===!1,Kn=e=>{if(wr(e)!=="object")return!1;const t=Ds(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Fl in e)&&!(Er in e)},Xf=e=>{if(!Pn(e)||Cn(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},Qf=Ge("Date"),Yf=Ge("File"),Zf=Ge("Blob"),ed=Ge("FileList"),td=e=>Pn(e)&&Ie(e.pipe),nd=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Ie(e.append)&&((t=wr(e))==="formdata"||t==="object"&&Ie(e.toString)&&e.toString()==="[object FormData]"))},rd=Ge("URLSearchParams"),[sd,od,id,ld]=["ReadableStream","Request","Response","Headers"].map(Ge),cd=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Nn(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),Zt(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const It=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Bl=e=>!Yt(e)&&e!==It;function is(){const{caseless:e,skipUndefined:t}=Bl(this)&&this||{},n={},r=(s,o)=>{const i=e&&jl(n,o)||o;Kn(n[i])&&Kn(s)?n[i]=is(n[i],s):Kn(s)?n[i]=is({},s):Zt(s)?n[i]=s.slice():(!t||!Yt(s))&&(n[i]=s)};for(let s=0,o=arguments.length;s(Nn(t,(s,o)=>{n&&Ie(s)?e[o]=Ll(s,n):e[o]=s},{allOwnKeys:r}),e),ud=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),fd=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},dd=(e,t,n,r)=>{let s,o,i;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&Ds(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},hd=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},pd=e=>{if(!e)return null;if(Zt(e))return e;let t=e.length;if(!Ul(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},md=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Ds(Uint8Array)),gd=(e,t)=>{const r=(e&&e[Er]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},yd=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},_d=Ge("HTMLFormElement"),bd=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),Ho=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Ed=Ge("RegExp"),Hl=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Nn(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},wd=e=>{Hl(e,(t,n)=>{if(Ie(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Ie(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Sd=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return Zt(e)?r(e):r(String(e).split(t)),n},Rd=()=>{},Ad=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function vd(e){return!!(e&&Ie(e.append)&&e[Fl]==="FormData"&&e[Er])}const Od=e=>{const t=new Array(10),n=(r,s)=>{if(Pn(r)){if(t.indexOf(r)>=0)return;if(Cn(r))return r;if(!("toJSON"in r)){t[s]=r;const o=Zt(r)?[]:{};return Nn(r,(i,l)=>{const c=n(i,s+1);!Yt(c)&&(o[l]=c)}),t[s]=void 0,o}}return r};return n(e,0)},xd=Ge("AsyncFunction"),Td=e=>e&&(Pn(e)||Ie(e))&&Ie(e.then)&&Ie(e.catch),kl=((e,t)=>e?setImmediate:t?((n,r)=>(It.addEventListener("message",({source:s,data:o})=>{s===It&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),It.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Ie(It.postMessage)),Cd=typeof queueMicrotask<"u"?queueMicrotask.bind(It):typeof process<"u"&&process.nextTick||kl,Pd=e=>e!=null&&Ie(e[Er]),_={isArray:Zt,isArrayBuffer:Ml,isBuffer:Cn,isFormData:nd,isArrayBufferView:Gf,isString:zf,isNumber:Ul,isBoolean:Jf,isObject:Pn,isPlainObject:Kn,isEmptyObject:Xf,isReadableStream:sd,isRequest:od,isResponse:id,isHeaders:ld,isUndefined:Yt,isDate:Qf,isFile:Yf,isBlob:Zf,isRegExp:Ed,isFunction:Ie,isStream:td,isURLSearchParams:rd,isTypedArray:md,isFileList:ed,forEach:Nn,merge:is,extend:ad,trim:cd,stripBOM:ud,inherits:fd,toFlatObject:dd,kindOf:wr,kindOfTest:Ge,endsWith:hd,toArray:pd,forEachEntry:gd,matchAll:yd,isHTMLForm:_d,hasOwnProperty:Ho,hasOwnProp:Ho,reduceDescriptors:Hl,freezeMethods:wd,toObjectSet:Sd,toCamelCase:bd,noop:Rd,toFiniteNumber:Ad,findKey:jl,global:It,isContextDefined:Bl,isSpecCompliantForm:vd,toJSONObject:Od,isAsyncFn:xd,isThenable:Td,setImmediate:kl,asap:Cd,isIterable:Pd};function G(e,t,n,r,s){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),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}_.inherits(G,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:_.toJSONObject(this.config),code:this.code,status:this.status}}});const Vl=G.prototype,ql={};["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=>{ql[e]={value:e}});Object.defineProperties(G,ql);Object.defineProperty(Vl,"isAxiosError",{value:!0});G.from=(e,t,n,r,s,o)=>{const i=Object.create(Vl);_.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 G.call(i,l,c,n,r,s),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 Nd=null;function ls(e){return _.isPlainObject(e)||_.isArray(e)}function $l(e){return _.endsWith(e,"[]")?e.slice(0,-2):e}function ko(e,t,n){return e?e.concat(t).map(function(s,o){return s=$l(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function Id(e){return _.isArray(e)&&!e.some(ls)}const Dd=_.toFlatObject(_,{},null,function(t){return/^is[A-Z]/.test(t)});function Rr(e,t,n){if(!_.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=_.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(b,E){return!_.isUndefined(E[b])});const r=n.metaTokens,s=n.visitor||a,o=n.dots,i=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&_.isSpecCompliantForm(t);if(!_.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(_.isDate(g))return g.toISOString();if(_.isBoolean(g))return g.toString();if(!c&&_.isBlob(g))throw new G("Blob is not supported. Use a Buffer instead.");return _.isArrayBuffer(g)||_.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function a(g,b,E){let O=g;if(g&&!E&&typeof g=="object"){if(_.endsWith(b,"{}"))b=r?b:b.slice(0,-2),g=JSON.stringify(g);else if(_.isArray(g)&&Id(g)||(_.isFileList(g)||_.endsWith(b,"[]"))&&(O=_.toArray(g)))return b=$l(b),O.forEach(function(N,P){!(_.isUndefined(N)||N===null)&&t.append(i===!0?ko([b],P,o):i===null?b:b+"[]",u(N))}),!1}return ls(g)?!0:(t.append(ko(E,b,o),u(g)),!1)}const f=[],p=Object.assign(Dd,{defaultVisitor:a,convertValue:u,isVisitable:ls});function m(g,b){if(!_.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+b.join("."));f.push(g),_.forEach(g,function(O,C){(!(_.isUndefined(O)||O===null)&&s.call(t,O,_.isString(C)?C.trim():C,b,p))===!0&&m(O,b?b.concat(C):[C])}),f.pop()}}if(!_.isObject(e))throw new TypeError("data must be an object");return m(e),t}function Vo(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Ls(e,t){this._pairs=[],e&&Rr(e,this,t)}const Kl=Ls.prototype;Kl.append=function(t,n){this._pairs.push([t,n])};Kl.toString=function(t){const n=t?function(r){return t.call(this,r,Vo)}:Vo;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Ld(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Wl(e,t,n){if(!t)return e;const r=n&&n.encode||Ld;_.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=_.isURLSearchParams(t)?t.toString():new Ls(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class qo{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){_.forEach(this.handlers,function(r){r!==null&&t(r)})}}const Gl={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Fd=typeof URLSearchParams<"u"?URLSearchParams:Ls,Md=typeof FormData<"u"?FormData:null,Ud=typeof Blob<"u"?Blob:null,jd={isBrowser:!0,classes:{URLSearchParams:Fd,FormData:Md,Blob:Ud},protocols:["http","https","file","blob","url","data"]},Fs=typeof window<"u"&&typeof document<"u",cs=typeof navigator=="object"&&navigator||void 0,Bd=Fs&&(!cs||["ReactNative","NativeScript","NS"].indexOf(cs.product)<0),Hd=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",kd=Fs&&window.location.href||"http://localhost",Vd=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Fs,hasStandardBrowserEnv:Bd,hasStandardBrowserWebWorkerEnv:Hd,navigator:cs,origin:kd},Symbol.toStringTag,{value:"Module"})),Ee={...Vd,...jd};function qd(e,t){return Rr(e,new Ee.classes.URLSearchParams,{visitor:function(n,r,s,o){return Ee.isNode&&_.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function $d(e){return _.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Kd(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&_.isArray(s)?s.length:i,c?(_.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!l):((!s[i]||!_.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&_.isArray(s[i])&&(s[i]=Kd(s[i])),!l)}if(_.isFormData(e)&&_.isFunction(e.entries)){const n={};return _.forEachEntry(e,(r,s)=>{t($d(r),s,n,0)}),n}return null}function Wd(e,t,n){if(_.isString(e))try{return(t||JSON.parse)(e),_.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const In={transitional:Gl,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=_.isObject(t);if(o&&_.isHTMLForm(t)&&(t=new FormData(t)),_.isFormData(t))return s?JSON.stringify(zl(t)):t;if(_.isArrayBuffer(t)||_.isBuffer(t)||_.isStream(t)||_.isFile(t)||_.isBlob(t)||_.isReadableStream(t))return t;if(_.isArrayBufferView(t))return t.buffer;if(_.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return qd(t,this.formSerializer).toString();if((l=_.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return Rr(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),Wd(t)):t}],transformResponse:[function(t){const n=this.transitional||In.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(_.isResponse(t)||_.isReadableStream(t))return t;if(t&&_.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(i)throw l.name==="SyntaxError"?G.from(l,G.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:Ee.classes.FormData,Blob:Ee.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};_.forEach(["delete","get","head","post","put","patch"],e=>{In.headers[e]={}});const Gd=_.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"]),zd=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&Gd[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},$o=Symbol("internals");function on(e){return e&&String(e).trim().toLowerCase()}function Wn(e){return e===!1||e==null?e:_.isArray(e)?e.map(Wn):String(e)}function Jd(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const Xd=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Hr(e,t,n,r,s){if(_.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!_.isString(t)){if(_.isString(r))return t.indexOf(r)!==-1;if(_.isRegExp(r))return r.test(t)}}function Qd(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Yd(e,t){const n=_.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let De=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(l,c,u){const a=on(c);if(!a)throw new Error("header name must be a non-empty string");const f=_.findKey(s,a);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||c]=Wn(l))}const i=(l,c)=>_.forEach(l,(u,a)=>o(u,a,c));if(_.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(_.isString(t)&&(t=t.trim())&&!Xd(t))i(zd(t),n);else if(_.isObject(t)&&_.isIterable(t)){let l={},c,u;for(const a of t){if(!_.isArray(a))throw TypeError("Object iterator must return a key-value pair");l[u=a[0]]=(c=l[u])?_.isArray(c)?[...c,a[1]]:[c,a[1]]:a[1]}i(l,n)}else t!=null&&o(n,t,r);return this}get(t,n){if(t=on(t),t){const r=_.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return Jd(s);if(_.isFunction(n))return n.call(this,s,r);if(_.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=on(t),t){const r=_.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Hr(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=on(i),i){const l=_.findKey(r,i);l&&(!n||Hr(r,r[l],l,n))&&(delete r[l],s=!0)}}return _.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||Hr(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return _.forEach(this,(s,o)=>{const i=_.findKey(r,o);if(i){n[i]=Wn(s),delete n[o];return}const l=t?Qd(o):String(o).trim();l!==o&&delete n[o],n[l]=Wn(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return _.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&_.isArray(r)?r.join(", "):r)}),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 r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[$o]=this[$o]={accessors:{}}).accessors,s=this.prototype;function o(i){const l=on(i);r[l]||(Yd(s,i),r[l]=!0)}return _.isArray(t)?t.forEach(o):o(t),this}};De.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);_.reduceDescriptors(De.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});_.freezeMethods(De);function kr(e,t){const n=this||In,r=t||n,s=De.from(r.headers);let o=r.data;return _.forEach(e,function(l){o=l.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function Jl(e){return!!(e&&e.__CANCEL__)}function en(e,t,n){G.call(this,e??"canceled",G.ERR_CANCELED,t,n),this.name="CanceledError"}_.inherits(en,G,{__CANCEL__:!0});function Xl(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new G("Request failed with status code "+n.status,[G.ERR_BAD_REQUEST,G.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function Zd(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function eh(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),a=r[o];i||(i=u),n[s]=c,r[s]=u;let f=o,p=0;for(;f!==s;)p+=n[f++],f=f%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i{n=a,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const a=Date.now(),f=a-n;f>=r?i(u,a):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-f)))},()=>s&&i(s)]}const sr=(e,t,n=3)=>{let r=0;const s=eh(50,250);return th(o=>{const i=o.loaded,l=o.lengthComputable?o.total:void 0,c=i-r,u=s(c),a=i<=l;r=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)},Ko=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Wo=e=>(...t)=>_.asap(()=>e(...t)),nh=Ee.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Ee.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Ee.origin),Ee.navigator&&/(msie|trident)/i.test(Ee.navigator.userAgent)):()=>!0,rh=Ee.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];_.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),_.isString(r)&&l.push(`path=${r}`),_.isString(s)&&l.push(`domain=${s}`),o===!0&&l.push("secure"),_.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 sh(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function oh(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Ql(e,t,n){let r=!sh(t);return e&&(r||n==!1)?oh(e,t):t}const Go=e=>e instanceof De?{...e}:e;function Ut(e,t){t=t||{};const n={};function r(u,a,f,p){return _.isPlainObject(u)&&_.isPlainObject(a)?_.merge.call({caseless:p},u,a):_.isPlainObject(a)?_.merge({},a):_.isArray(a)?a.slice():a}function s(u,a,f,p){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u,f,p)}else return r(u,a,f,p)}function o(u,a){if(!_.isUndefined(a))return r(void 0,a)}function i(u,a){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u)}else return r(void 0,a)}function l(u,a,f){if(f in t)return r(u,a);if(f in e)return r(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)=>s(Go(u),Go(a),f,!0)};return _.forEach(Object.keys({...e,...t}),function(a){const f=c[a]||s,p=f(e[a],t[a],a);_.isUndefined(p)&&f!==l||(n[a]=p)}),n}const Yl=e=>{const t=Ut({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:l}=t;if(t.headers=i=De.from(i),t.url=Wl(Ql(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&i.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),_.isFormData(n)){if(Ee.hasStandardBrowserEnv||Ee.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(_.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(Ee.hasStandardBrowserEnv&&(r&&_.isFunction(r)&&(r=r(t)),r||r!==!1&&nh(t.url))){const c=s&&o&&rh.read(o);c&&i.set(s,c)}return t},ih=typeof XMLHttpRequest<"u",lh=ih&&function(e){return new Promise(function(n,r){const s=Yl(e);let o=s.data;const i=De.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,a,f,p,m,g;function b(){m&&m(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(a),s.signal&&s.signal.removeEventListener("abort",a)}let E=new XMLHttpRequest;E.open(s.method.toUpperCase(),s.url,!0),E.timeout=s.timeout;function O(){if(!E)return;const N=De.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),M={data:!l||l==="text"||l==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:N,config:e,request:E};Xl(function(k){n(k),b()},function(k){r(k),b()},M),E=null}"onloadend"in E?E.onloadend=O:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.indexOf("file:")===0)||setTimeout(O)},E.onabort=function(){E&&(r(new G("Request aborted",G.ECONNABORTED,e,E)),E=null)},E.onerror=function(P){const M=P&&P.message?P.message:"Network Error",X=new G(M,G.ERR_NETWORK,e,E);X.event=P||null,r(X),E=null},E.ontimeout=function(){let P=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const M=s.transitional||Gl;s.timeoutErrorMessage&&(P=s.timeoutErrorMessage),r(new G(P,M.clarifyTimeoutError?G.ETIMEDOUT:G.ECONNABORTED,e,E)),E=null},o===void 0&&i.setContentType(null),"setRequestHeader"in E&&_.forEach(i.toJSON(),function(P,M){E.setRequestHeader(M,P)}),_.isUndefined(s.withCredentials)||(E.withCredentials=!!s.withCredentials),l&&l!=="json"&&(E.responseType=s.responseType),u&&([p,g]=sr(u,!0),E.addEventListener("progress",p)),c&&E.upload&&([f,m]=sr(c),E.upload.addEventListener("progress",f),E.upload.addEventListener("loadend",m)),(s.cancelToken||s.signal)&&(a=N=>{E&&(r(!N||N.type?new en(null,e,E):N),E.abort(),E=null)},s.cancelToken&&s.cancelToken.subscribe(a),s.signal&&(s.signal.aborted?a():s.signal.addEventListener("abort",a)));const C=Zd(s.url);if(C&&Ee.protocols.indexOf(C)===-1){r(new G("Unsupported protocol "+C+":",G.ERR_BAD_REQUEST,e));return}E.send(o||null)})},ch=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,l();const a=u instanceof Error?u:this.reason;r.abort(a instanceof G?a:new en(a instanceof Error?a.message:a))}};let i=t&&setTimeout(()=>{i=null,o(new G(`timeout ${t} of ms exceeded`,G.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}=r;return c.unsubscribe=()=>_.asap(l),c}},ah=function*(e,t){let n=e.byteLength;if(n{const s=uh(e,t);let o=0,i,l=c=>{i||(i=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:a}=await s.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),s.return()}},{highWaterMark:2})},Jo=64*1024,{isFunction:Un}=_,dh=(({Request:e,Response:t})=>({Request:e,Response:t}))(_.global),{ReadableStream:Xo,TextEncoder:Qo}=_.global,Yo=(e,...t)=>{try{return!!e(...t)}catch{return!1}},hh=e=>{e=_.merge.call({skipUndefined:!0},dh,e);const{fetch:t,Request:n,Response:r}=e,s=t?Un(t):typeof fetch=="function",o=Un(n),i=Un(r);if(!s)return!1;const l=s&&Un(Xo),c=s&&(typeof Qo=="function"?(g=>b=>g.encode(b))(new Qo):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=o&&l&&Yo(()=>{let g=!1;const b=new n(Ee.origin,{body:new Xo,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!b}),a=i&&l&&Yo(()=>_.isReadableStream(new r("").body)),f={stream:a&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(b,E)=>{let O=b&&b[g];if(O)return O.call(b);throw new G(`Response type '${g}' is not supported`,G.ERR_NOT_SUPPORT,E)})});const p=async g=>{if(g==null)return 0;if(_.isBlob(g))return g.size;if(_.isSpecCompliantForm(g))return(await new n(Ee.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(_.isArrayBufferView(g)||_.isArrayBuffer(g))return g.byteLength;if(_.isURLSearchParams(g)&&(g=g+""),_.isString(g))return(await c(g)).byteLength},m=async(g,b)=>{const E=_.toFiniteNumber(g.getContentLength());return E??p(b)};return async g=>{let{url:b,method:E,data:O,signal:C,cancelToken:N,timeout:P,onDownloadProgress:M,onUploadProgress:X,responseType:k,headers:V,withCredentials:U="same-origin",fetchOptions:ee}=Yl(g),ue=t||fetch;k=k?(k+"").toLowerCase():"text";let ye=ch([C,N&&N.toAbortSignal()],P),pe=null;const Re=ye&&ye.unsubscribe&&(()=>{ye.unsubscribe()});let Ve;try{if(X&&u&&E!=="get"&&E!=="head"&&(Ve=await m(V,O))!==0){let me=new n(b,{method:"POST",body:O,duplex:"half"}),fe;if(_.isFormData(O)&&(fe=me.headers.get("content-type"))&&V.setContentType(fe),me.body){const[Je,qe]=Ko(Ve,sr(Wo(X)));O=zo(me.body,Jo,Je,qe)}}_.isString(U)||(U=U?"include":"omit");const J=o&&"credentials"in n.prototype,K={...ee,signal:ye,method:E.toUpperCase(),headers:V.normalize().toJSON(),body:O,duplex:"half",credentials:J?U:void 0};pe=o&&new n(b,K);let z=await(o?ue(pe,ee):ue(b,K));const Be=a&&(k==="stream"||k==="response");if(a&&(M||Be&&Re)){const me={};["status","statusText","headers"].forEach(Xe=>{me[Xe]=z[Xe]});const fe=_.toFiniteNumber(z.headers.get("content-length")),[Je,qe]=M&&Ko(fe,sr(Wo(M),!0))||[];z=new r(zo(z.body,Jo,Je,()=>{qe&&qe(),Re&&Re()}),me)}k=k||"text";let ze=await f[_.findKey(f,k)||"text"](z,g);return!Be&&Re&&Re(),await new Promise((me,fe)=>{Xl(me,fe,{data:ze,headers:De.from(z.headers),status:z.status,statusText:z.statusText,config:g,request:pe})})}catch(J){throw Re&&Re(),J&&J.name==="TypeError"&&/Load failed|fetch/i.test(J.message)?Object.assign(new G("Network Error",G.ERR_NETWORK,g,pe),{cause:J.cause||J}):G.from(J,J&&J.code,g,pe)}}},ph=new Map,Zl=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,l=i,c,u,a=ph;for(;l--;)c=o[l],u=a.get(c),u===void 0&&a.set(c,u=l?new Map:hh(t)),a=u;return u};Zl();const Ms={http:Nd,xhr:lh,fetch:{get:Zl}};_.forEach(Ms,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Zo=e=>`- ${e}`,mh=e=>_.isFunction(e)||e===null||e===!1;function gh(e,t){e=_.isArray(e)?e:[e];const{length:n}=e;let r,s;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(Zo).join(` +`):" "+Zo(i[0]):"as no adapter specified";throw new G("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const ec={getAdapter:gh,adapters:Ms};function Vr(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new en(null,e)}function ei(e){return Vr(e),e.headers=De.from(e.headers),e.data=kr.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),ec.getAdapter(e.adapter||In.adapter,e)(e).then(function(r){return Vr(e),r.data=kr.call(e,e.transformResponse,r),r.headers=De.from(r.headers),r},function(r){return Jl(r)||(Vr(e),r&&r.response&&(r.response.data=kr.call(e,e.transformResponse,r.response),r.response.headers=De.from(r.response.headers))),Promise.reject(r)})}const tc="1.13.2",Ar={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Ar[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const ti={};Ar.transitional=function(t,n,r){function s(o,i){return"[Axios v"+tc+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,l)=>{if(t===!1)throw new G(s(i," has been removed"+(n?" in "+n:"")),G.ERR_DEPRECATED);return n&&!ti[i]&&(ti[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,l):!0}};Ar.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function yh(e,t,n){if(typeof e!="object")throw new G("options must be an object",G.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const l=e[o],c=l===void 0||i(l,o,e);if(c!==!0)throw new G("option "+o+" must be "+c,G.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new G("Unknown option "+o,G.ERR_BAD_OPTION)}}const Gn={assertOptions:yh,validators:Ar},nt=Gn.validators;let Mt=class{constructor(t){this.defaults=t||{},this.interceptors={request:new qo,response:new qo}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Ut(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&Gn.assertOptions(r,{silentJSONParsing:nt.transitional(nt.boolean),forcedJSONParsing:nt.transitional(nt.boolean),clarifyTimeoutError:nt.transitional(nt.boolean)},!1),s!=null&&(_.isFunction(s)?n.paramsSerializer={serialize:s}:Gn.assertOptions(s,{encode:nt.function,serialize:nt.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Gn.assertOptions(n,{baseUrl:nt.spelling("baseURL"),withXsrfToken:nt.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&_.merge(o.common,o[n.method]);o&&_.forEach(["delete","get","head","post","put","patch","common"],g=>{delete o[g]}),n.headers=De.concat(i,o);const l=[];let c=!0;this.interceptors.request.forEach(function(b){typeof b.runWhen=="function"&&b.runWhen(n)===!1||(c=c&&b.synchronous,l.unshift(b.fulfilled,b.rejected))});const u=[];this.interceptors.response.forEach(function(b){u.push(b.fulfilled,b.rejected)});let a,f=0,p;if(!c){const g=[ei.bind(this),void 0];for(g.unshift(...l),g.push(...u),p=g.length,a=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(l=>{r.subscribe(l),o=l}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,l){r.reason||(r.reason=new en(o,i,l),n(r.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=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new nc(function(s){t=s}),cancel:t}}};function bh(e){return function(n){return e.apply(null,n)}}function Eh(e){return _.isObject(e)&&e.isAxiosError===!0}const as={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(as).forEach(([e,t])=>{as[t]=e});function rc(e){const t=new Mt(e),n=Ll(Mt.prototype.request,t);return _.extend(n,Mt.prototype,t,{allOwnKeys:!0}),_.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return rc(Ut(e,s))},n}const he=rc(In);he.Axios=Mt;he.CanceledError=en;he.CancelToken=_h;he.isCancel=Jl;he.VERSION=tc;he.toFormData=Rr;he.AxiosError=G;he.Cancel=he.CanceledError;he.all=function(t){return Promise.all(t)};he.spread=bh;he.isAxiosError=Eh;he.mergeConfig=Ut;he.AxiosHeaders=De;he.formToJSON=e=>zl(_.isHTMLForm(e)?new FormData(e):e);he.getAdapter=ec.getAdapter;he.HttpStatusCode=as;he.default=he;const{Axios:jh,AxiosError:Bh,CanceledError:Hh,isCancel:kh,CancelToken:Vh,VERSION:qh,all:$h,Cancel:Kh,isAxiosError:Wh,spread:Gh,toFormData:zh,AxiosHeaders:Jh,HttpStatusCode:Xh,formToJSON:Qh,getAdapter:Yh,mergeConfig:Zh}=he,_n=he.create({baseURL:"",timeout:3e4,withCredentials:!0});_n.interceptors.request.use(e=>e,e=>Promise.reject(e));_n.interceptors.response.use(e=>e.data,e=>{e.response?.status===401&&(window.location.hash="#/login");const t=e.response?.data?e.response.data.detail||e.response.data.message:e.message;return Promise.reject(new Error(t||"请求失败"))});const jn={login:e=>{const t=new URLSearchParams;return t.append("admin_key",e.password),_n.post("/login",t,{headers:{"Content-Type":"application/x-www-form-urlencoded"}})},logout:()=>_n.post("/logout"),checkAuth:()=>_n.get("/admin/health")},wh=Mu("auth",()=>{const e=Lt(!1),t=Lt(!1),n=Lt(0),r=1e4;let s=null;async function o(c){t.value=!0;try{return await jn.login({password:c}),await jn.checkAuth(),e.value=!0,n.value=Date.now(),!0}catch(u){throw e.value=!1,u}finally{t.value=!1}}async function i(){try{await jn.logout()}finally{e.value=!1,n.value=0}}async function l(){const c=Date.now();if(e.value&&c-n.value(await jn.checkAuth(),e.value=!0,!0))(),await s}catch{return e.value=!1,!1}finally{n.value=Date.now(),s=null}}return{isLoggedIn:e,isLoading:t,login:o,logout:i,checkAuth:l}}),sc=Kf({history:Af("/"),routes:[{path:"/public/uptime",name:"public-uptime",component:()=>tt(()=>import("./PublicUptime-DJR5UQMs.js"),__vite__mapDeps([0,1])),meta:{requiresAuth:!1}},{path:"/public/logs",name:"public-logs",component:()=>tt(()=>import("./PublicLogs-_aCqOK7E.js"),[]),meta:{requiresAuth:!1}},{path:"/login",name:"login",component:()=>tt(()=>import("./Login-B6Y55Nz7.js"),[]),meta:{requiresAuth:!1}},{path:"/",component:()=>tt(()=>import("./AppShell-C-FNXlk9.js"),__vite__mapDeps([2,3,4,5])),meta:{requiresAuth:!0},children:[{path:"",name:"dashboard",component:()=>tt(()=>import("./Dashboard-B8hpGkaM.js"),__vite__mapDeps([6,7]))},{path:"accounts",name:"accounts",component:()=>tt(()=>import("./Accounts-J1ZNWiem.js"),__vite__mapDeps([8,9,10,4,5,7]))},{path:"settings",name:"settings",component:()=>tt(()=>import("./Settings-CyqM2FVA.js"),__vite__mapDeps([11,3,9,10,7]))},{path:"logs",name:"logs",component:()=>tt(()=>import("./Logs-BqF5MQSG.js"),__vite__mapDeps([12,9,4]))},{path:"monitor",name:"monitor",component:()=>tt(()=>import("./Monitor-D2hgYhob.js"),__vite__mapDeps([13,1]))},{path:"docs",name:"docs",component:()=>tt(()=>import("./Docs-BrqNIY4a.js"),[])}]}]});sc.beforeEach(async e=>{const t=wh();if(e.meta.requiresAuth&&!await t.checkAuth())return{name:"login"};if(e.name==="login"&&t.isLoggedIn)return{name:"dashboard"}});const Sh=Os({__name:"App",setup(e){return(t,n)=>(er(),nr(Ot(Dl)))}}),Us=xu(Sh),Rh=Pu();Us.use(Rh);Us.use(sc);Us.mount("#app");export{Xc as A,Dl as B,Mu as C,Dh as D,Rs as E,Fe as F,xh as G,On as H,kf as R,vh as T,fl as a,Ph as b,Th as c,Os as d,er as e,Wa as f,_n as g,Lt as h,Me as i,fa as j,ps as k,wh as l,Ah as m,ms as n,ca as o,Lh as p,Fh as q,Oh as r,fn as s,mc as t,Ot as u,Nh as v,Ih as w,Ce as x,nr as y,Ch as z}; diff --git a/static/assets/index-Dph9sOmS.css b/static/assets/index-Dph9sOmS.css new file mode 100644 index 0000000000000000000000000000000000000000..d436c5f150c00d4298b4d3b2a9933381e685ab1e --- /dev/null +++ b/static/assets/index-Dph9sOmS.css @@ -0,0 +1 @@ +@import"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=Noto+Serif+SC:wght@600;700&display=swap";.toast-enter-active[data-v-cdd21b3c],.toast-leave-active[data-v-cdd21b3c]{transition:all .3s ease}.toast-enter-from[data-v-cdd21b3c],.toast-leave-to[data-v-cdd21b3c]{opacity:0;transform:translate(100%)}.toast-move[data-v-cdd21b3c]{transition:transform .3s ease}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 97%;--foreground: 0 0% 10%;--card: 0 0% 100%;--card-foreground: 0 0% 10%;--primary: 0 0% 10%;--primary-foreground: 0 0% 100%;--secondary: 0 0% 92%;--secondary-foreground: 0 0% 10%;--muted: 0 0% 92%;--muted-foreground: 0 0% 40%;--accent: 0 0% 90%;--accent-foreground: 0 0% 10%;--destructive: 0 70% 45%;--destructive-foreground: 0 0% 100%;--border: 0 0% 86%;--input: 0 0% 86%;--ring: 0 0% 10%;--radius: 1rem}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:Noto Sans SC,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;overflow-x:hidden;background-image:radial-gradient(900px circle at 10% -20%,rgba(0,0,0,.04),transparent 45%),radial-gradient(700px circle at 90% 0%,rgba(0,0,0,.05),transparent 40%),linear-gradient(180deg,hsl(var(--background)) 0% 100%)}body:before{content:"";position:fixed;inset:0;background-image:linear-gradient(120deg,#ffffff8c,#fff0);opacity:.5;pointer-events:none;z-index:-1}h1,h2,h3{font-family:"Noto Serif SC",Georgia,serif;letter-spacing:-.01em}#app{min-height:100vh}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{top:0;bottom:0}.bottom-0{bottom:0}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.right-4{right:1rem}.top-0{top:0}.top-4{top:1rem}.top-full{top:100%}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[200\]{z-index:200}.z-\[9999\]{z-index:9999}.col-span-2{grid-column:span 2 / span 2}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0{height:0px}.h-10{height:2.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-\[80vh\]{height:80vh}.h-full{height:100%}.max-h-\[60vh\]{max-height:60vh}.max-h-\[90vh\]{max-height:90vh}.min-h-0{min-height:0px}.min-h-\[140px\]{min-height:140px}.min-h-screen{min-height:100vh}.\!w-full{width:100%!important}.w-0{width:0px}.w-10{width:2.5rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-44{width:11rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[200px\]{min-width:200px}.min-w-\[320px\]{min-width:320px}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-not-allowed{cursor:not-allowed}.resize{resize:both}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-1{row-gap:.25rem}.gap-y-2{row-gap:.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-visible{overflow-y:visible}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[2\.5rem\]{border-radius:2.5rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-x-4{border-left-width:4px;border-right-width:4px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-4{border-top-width:4px}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}.border-border{border-color:hsl(var(--border))}.border-border\/60{border-color:hsl(var(--border) / .6)}.border-destructive\/30{border-color:hsl(var(--destructive) / .3)}.border-emerald-200{--tw-border-opacity: 1;border-color:rgb(167 243 208 / var(--tw-border-opacity, 1))}.border-input{border-color:hsl(var(--input))}.border-primary-foreground\/40{border-color:hsl(var(--primary-foreground) / .4)}.border-rose-200{--tw-border-opacity: 1;border-color:rgb(254 205 211 / var(--tw-border-opacity, 1))}.border-sky-200{--tw-border-opacity: 1;border-color:rgb(186 230 253 / var(--tw-border-opacity, 1))}.border-x-transparent{border-left-color:transparent;border-right-color:transparent}.border-t-foreground{border-top-color:hsl(var(--foreground))}.bg-accent{background-color:hsl(var(--accent))}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-200{--tw-bg-opacity: 1;background-color:rgb(253 230 138 / var(--tw-bg-opacity, 1))}.bg-amber-300{--tw-bg-opacity: 1;background-color:rgb(252 211 77 / var(--tw-bg-opacity, 1))}.bg-amber-400{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-black\/20{background-color:#0003}.bg-black\/30{background-color:#0000004d}.bg-black\/50{background-color:#00000080}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-card{background-color:hsl(var(--card))}.bg-card\/70{background-color:hsl(var(--card) / .7)}.bg-card\/90{background-color:hsl(var(--card) / .9)}.bg-cyan-100{--tw-bg-opacity: 1;background-color:rgb(207 250 254 / var(--tw-bg-opacity, 1))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-400{--tw-bg-opacity: 1;background-color:rgb(52 211 153 / var(--tw-bg-opacity, 1))}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground{background-color:hsl(var(--muted-foreground))}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/70{background-color:hsl(var(--muted) / .7)}.bg-primary{background-color:hsl(var(--primary))}.bg-primary-foreground\/15{background-color:hsl(var(--primary-foreground) / .15)}.bg-rose-100{--tw-bg-opacity: 1;background-color:rgb(255 228 230 / var(--tw-bg-opacity, 1))}.bg-rose-50{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.bg-rose-500{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity, 1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/30{background-color:hsl(var(--secondary) / .3)}.bg-secondary\/40{background-color:hsl(var(--secondary) / .4)}.bg-secondary\/50{background-color:hsl(var(--secondary) / .5)}.bg-secondary\/60{background-color:hsl(var(--secondary) / .6)}.bg-sky-400{--tw-bg-opacity: 1;background-color:rgb(56 189 248 / var(--tw-bg-opacity, 1))}.bg-sky-50{--tw-bg-opacity: 1;background-color:rgb(240 249 255 / var(--tw-bg-opacity, 1))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-violet-100{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.object-contain{-o-object-fit:contain;object-fit:contain}.p-1{padding:.25rem}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-10{padding-bottom:2.5rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pl-4{padding-left:1rem}.pl-6{padding-left:1.5rem}.pr-1{padding-right:.25rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.tracking-\[0\.12em\]{letter-spacing:.12em}.tracking-\[0\.28em\]{letter-spacing:.28em}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-\[0\.3em\]{letter-spacing:.3em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-background{color:hsl(var(--background))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-cyan-700{--tw-text-opacity: 1;color:rgb(14 116 144 / var(--tw-text-opacity, 1))}.text-destructive{color:hsl(var(--destructive))}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-rose-500{--tw-text-opacity: 1;color:rgb(244 63 94 / var(--tw-text-opacity, 1))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-sky-500{--tw-text-opacity: 1;color:rgb(14 165 233 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-violet-700{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-black\/10{--tw-shadow-color: rgb(0 0 0 / .1);--tw-shadow: var(--tw-shadow-colored)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,transform\]{transition-property:width,transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-\[transform\]{will-change:transform}html{scrollbar-gutter:stable}*{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.35) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:#00000059;border-radius:999px;border:2px solid transparent;background-clip:content-box}.scrollbar-slim::-webkit-scrollbar{width:6px;height:6px}.scrollbar-slim::-webkit-scrollbar-thumb{background-color:#0006}.cv-auto{content-visibility:auto;contain-intrinsic-size:0 44px}.monitor-badge--up{background:#d1fae5;color:#065f46}.monitor-badge--warn{background:#fef3c7;color:#b45309}.monitor-badge--down{background:#fee2e2;color:#991b1b}.monitor-badge--unknown{background:#f3f4f6;color:#6b7280}.monitor-card{border-radius:16px;padding:0;background:hsl(var(--card));box-shadow:none}.monitor-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.monitor-card__name{font-size:14px;font-weight:600;color:hsl(var(--foreground))}.monitor-card__badge{padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600}.monitor-card__stats{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:hsl(var(--muted-foreground));margin-bottom:12px}.monitor-card__value{margin-left:4px;color:hsl(var(--foreground));font-weight:600}.monitor-card__beats{display:flex;gap:2px;height:24px;align-items:flex-end}.monitor-beat{flex:1;min-width:4px;max-width:8px;border-radius:2px;transition:all .2s;position:relative}.monitor-beat:hover{opacity:.8;transform:scaleY(1.1)}.monitor-beat--up{background:#34c759;height:100%}.monitor-beat--warn,.monitor-beat--slow{background:#f5c15b;height:100%}.monitor-beat--down{background:#ff3b30;height:100%}.monitor-beat--empty{background:#e5e5ea;height:40%}.monitor-beat__tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#1d1d1f;color:#fff;padding:6px 10px;border-radius:6px;font-size:11px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;margin-bottom:6px;z-index:10}.monitor-beat__tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#1d1d1f}.monitor-beat:hover .monitor-beat__tooltip{opacity:1}.help-dot{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:999px;border:1px solid hsl(var(--border));font-size:10px;line-height:1;color:hsl(var(--muted-foreground));cursor:default}@media(max-width:768px){.monitor-beat{min-width:3px;max-width:6px}}@media(min-width:1024px){.dashboard-split{flex-direction:row;flex-wrap:nowrap}.dashboard-split .dashboard-main{flex:0 0 66.6667%;max-width:66.6667%}.dashboard-split .dashboard-side{flex:0 0 33.3333%;max-width:33.3333%}}@keyframes logo-float{0%{transform:translateY(0)}25%{transform:translateY(6px)}50%{transform:translateY(0)}75%{transform:translateY(-6px)}to{transform:translateY(0)}}@keyframes logo-blink{0%,45%,55%,to{transform:scaleY(1);opacity:1}50%{transform:scaleY(.1);opacity:.6}}.logo-mark .logo-cat-wrapper{animation:logo-float 4s ease-in-out infinite;transform-origin:center}.logo-mark{transform:translateY(2px)}.logo-mark .logo-eye{fill:#00bcd4;filter:drop-shadow(0 0 2px #00bcd4);animation:logo-blink 5s infinite;transform-box:fill-box;transform-origin:center}.hover\:border-destructive:hover{border-color:hsl(var(--destructive))}.hover\:border-destructive\/40:hover{border-color:hsl(var(--destructive) / .4)}.hover\:border-destructive\/60:hover{border-color:hsl(var(--destructive) / .6)}.hover\:border-foreground:hover{border-color:hsl(var(--foreground))}.hover\:border-primary:hover{border-color:hsl(var(--primary))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/10:hover{background-color:hsl(var(--destructive) / .1)}.hover\:bg-secondary\/60:hover{background-color:hsl(var(--secondary) / .6)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-emerald-500:hover{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.focus\:border-transparent:focus{border-color:transparent}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:text-accent-foreground{color:hsl(var(--accent-foreground))}.group:hover .group-hover\:opacity-100{opacity:1}.peer:checked~.peer-checked\:border-foreground{border-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:bg-foreground{background-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.peer:disabled~.peer-disabled\:opacity-50{opacity:.5}@media(min-width:640px){.sm\:ml-0{margin-left:0}.sm\:flex{display:flex}.sm\:\!w-40{width:10rem!important}.sm\:w-48{width:12rem}.sm\:w-auto{width:auto}.sm\:min-w-0{min-width:0px}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:items-center{align-items:center}}@media(min-width:768px){.md\:w-auto{width:auto}.md\:flex-1{flex:1 1 0%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1024px){.lg\:static{position:static}.lg\:sticky{position:sticky}.lg\:top-0{top:0}.lg\:ml-0{margin-left:0}.lg\:hidden{display:none}.lg\:h-20{height:5rem}.lg\:h-64{height:16rem}.lg\:h-72{height:18rem}.lg\:h-screen{height:100vh}.lg\:w-20{width:5rem}.lg\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:border-b-0{border-bottom-width:0px}.lg\:border-r{border-right-width:1px}.lg\:bg-card\/80{background-color:hsl(var(--card) / .8)}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:py-4{padding-top:1rem;padding-bottom:1rem}.lg\:pt-10{padding-top:2.5rem}.lg\:pt-5{padding-top:1.25rem}.lg\:pt-6{padding-top:1.5rem}.lg\:text-2xl{font-size:1.5rem;line-height:2rem}.lg\:backdrop-blur-none{--tw-backdrop-blur: ;-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}}@media(min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}} diff --git a/static/assets/index-DrM07qAY.js b/static/assets/index-DrM07qAY.js new file mode 100644 index 0000000000000000000000000000000000000000..6611e661121b31f3246c3e53d900c64e066ac19b --- /dev/null +++ b/static/assets/index-DrM07qAY.js @@ -0,0 +1,7 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PublicUptime-CGi0vS-3.js","assets/useUptimeStatus-B3toa7r0.js","assets/AppShell-CsF8NWoD.js","assets/settings-BYE7wugy.js","assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-2Xqtgrin.js","assets/useConfirmDialog-CfZjR4ey.js","assets/Dashboard-DJFtL9nA.js","assets/HelpTip.vue_vue_type_script_setup_true_lang-DLBrB24x.js","assets/Accounts-B-WgN3aV.js","assets/SelectMenu.vue_vue_type_script_setup_true_lang-BOyWonLr.js","assets/Checkbox.vue_vue_type_script_setup_true_lang-DXuWSs7B.js","assets/Settings-Dj3cSIXZ.js","assets/Logs-CFYEPpBU.js","assets/Monitor-BuPx8c4m.js"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function us(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const se={},$t=[],ot=()=>{},ni=()=>!1,or=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),fs=e=>e.startsWith("onUpdate:"),Se=Object.assign,ds=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},oc=Object.prototype.hasOwnProperty,ne=(e,t)=>oc.call(e,t),q=Array.isArray,Kt=e=>ir(e)==="[object Map]",ri=e=>ir(e)==="[object Set]",W=e=>typeof e=="function",de=e=>typeof e=="string",yt=e=>typeof e=="symbol",le=e=>e!==null&&typeof e=="object",si=e=>(le(e)||W(e))&&W(e.then)&&W(e.catch),oi=Object.prototype.toString,ir=e=>oi.call(e),ic=e=>ir(e).slice(8,-1),ii=e=>ir(e)==="[object Object]",lr=e=>de(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,cn=us(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),cr=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},lc=/-\w/g,xt=cr(e=>e.replace(lc,t=>t.slice(1).toUpperCase())),cc=/\B([A-Z])/g,jt=cr(e=>e.replace(cc,"-$1").toLowerCase()),li=cr(e=>e.charAt(0).toUpperCase()+e.slice(1)),vr=cr(e=>e?`on${li(e)}`:""),vt=(e,t)=>!Object.is(e,t),Bn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},hs=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let ks;const ar=()=>ks||(ks=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function ps(e){if(q(e)){const t={};for(let n=0;n{if(n){const r=n.split(uc);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function ms(e){let t="";if(de(e))t=e;else if(q(e))for(let n=0;n!!(e&&e.__v_isRef===!0),mc=e=>de(e)?e:e==null?"":q(e)||le(e)&&(e.toString===oi||!W(e.toString))?ui(e)?mc(e.value):JSON.stringify(e,fi,2):String(e),fi=(e,t)=>ui(t)?fi(e,t.value):Kt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[Or(r,o)+" =>"]=s,n),{})}:ri(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Or(n))}:yt(t)?Or(t):le(t)&&!q(t)&&!ii(t)?String(t):t,Or=(e,t="")=>{var n;return yt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let _e;class di{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=_e,!t&&_e&&(this.index=(_e.scopes||(_e.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&&(_e=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if(un){let t=un;for(un=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;an;){let t=an;for(an=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function _i(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function bi(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),_s(r),yc(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function qr(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===bn)||(e.globalVersion=bn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!qr(e))))return;e.flags|=2;const t=e.dep,n=ie,r=$e;ie=e,$e=!0;try{_i(e);const s=e.fn(e._value);(t.version===0||vt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{ie=n,$e=r,bi(e),e.flags&=-3}}function _s(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)_s(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function yc(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 wi=[];function ht(){wi.push($e),$e=!1}function pt(){const e=wi.pop();$e=e===void 0?!0:e}function Vs(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ie;ie=void 0;try{t()}finally{ie=n}}}let bn=0;class _c{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 bs{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!ie||!$e||ie===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ie)n=this.activeLink=new _c(ie,this),ie.deps?(n.prevDep=ie.depsTail,ie.depsTail.nextDep=n,ie.depsTail=n):ie.deps=ie.depsTail=n,Si(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=ie.depsTail,n.nextDep=void 0,ie.depsTail.nextDep=n,ie.depsTail=n,ie.deps===n&&(ie.deps=r)}return n}trigger(t){this.version++,bn++,this.notify(t)}notify(t){gs();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ys()}}}function Si(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Si(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const zn=new WeakMap,Dt=Symbol(""),$r=Symbol(""),En=Symbol("");function be(e,t,n){if($e&&ie){let r=zn.get(e);r||zn.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new bs),s.map=r,s.key=n),s.track()}}function ft(e,t,n,r,s,o){const i=zn.get(e);if(!i){bn++;return}const l=c=>{c&&c.trigger()};if(gs(),t==="clear")i.forEach(l);else{const c=q(e),u=c&&lr(n);if(c&&n==="length"){const a=Number(r);i.forEach((f,p)=>{(p==="length"||p===En||!yt(p)&&p>=a)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(En)),t){case"add":c?u&&l(i.get("length")):(l(i.get(Dt)),Kt(e)&&l(i.get($r)));break;case"delete":c||(l(i.get(Dt)),Kt(e)&&l(i.get($r)));break;case"set":Kt(e)&&l(i.get(Dt));break}}ys()}function bc(e,t){const n=zn.get(e);return n&&n.get(t)}function Bt(e){const t=Z(e);return t===e?t:(be(t,"iterate",En),je(e)?t:t.map(Ke))}function ur(e){return be(e=Z(e),"iterate",En),e}function wt(e,t){return mt(e)?it(e)?zt(Ke(t)):zt(t):Ke(t)}const Ec={__proto__:null,[Symbol.iterator](){return Tr(this,Symbol.iterator,e=>wt(this,e))},concat(...e){return Bt(this).concat(...e.map(t=>q(t)?Bt(t):t))},entries(){return Tr(this,"entries",e=>(e[1]=wt(this,e[1]),e))},every(e,t){return ct(this,"every",e,t,void 0,arguments)},filter(e,t){return ct(this,"filter",e,t,n=>n.map(r=>wt(this,r)),arguments)},find(e,t){return ct(this,"find",e,t,n=>wt(this,n),arguments)},findIndex(e,t){return ct(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ct(this,"findLast",e,t,n=>wt(this,n),arguments)},findLastIndex(e,t){return ct(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ct(this,"forEach",e,t,void 0,arguments)},includes(...e){return Cr(this,"includes",e)},indexOf(...e){return Cr(this,"indexOf",e)},join(e){return Bt(this).join(e)},lastIndexOf(...e){return Cr(this,"lastIndexOf",e)},map(e,t){return ct(this,"map",e,t,void 0,arguments)},pop(){return nn(this,"pop")},push(...e){return nn(this,"push",e)},reduce(e,...t){return qs(this,"reduce",e,t)},reduceRight(e,...t){return qs(this,"reduceRight",e,t)},shift(){return nn(this,"shift")},some(e,t){return ct(this,"some",e,t,void 0,arguments)},splice(...e){return nn(this,"splice",e)},toReversed(){return Bt(this).toReversed()},toSorted(e){return Bt(this).toSorted(e)},toSpliced(...e){return Bt(this).toSpliced(...e)},unshift(...e){return nn(this,"unshift",e)},values(){return Tr(this,"values",e=>wt(this,e))}};function Tr(e,t,n){const r=ur(e),s=r[t]();return r!==e&&!je(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const wc=Array.prototype;function ct(e,t,n,r,s,o){const i=ur(e),l=i!==e&&!je(e),c=i[t];if(c!==wc[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,wt(e,f),p,e)}:n.length>2&&(u=function(f,p){return n.call(this,f,p,e)}));const a=c.call(i,u,r);return l&&s?s(a):a}function qs(e,t,n,r){const s=ur(e);let o=n;return s!==e&&(je(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,wt(e,l),c,e)}),s[t](o,...r)}function Cr(e,t,n){const r=Z(e);be(r,"iterate",En);const s=r[t](...n);return(s===-1||s===!1)&&fr(n[0])?(n[0]=Z(n[0]),r[t](...n)):s}function nn(e,t,n=[]){ht(),gs();const r=Z(e)[t].apply(e,n);return ys(),pt(),r}const Sc=us("__proto__,__v_isRef,__isVue"),Ri=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(yt));function Rc(e){yt(e)||(e=String(e));const t=Z(this);return be(t,"has",e),t.hasOwnProperty(e)}class Ai{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?Dc:Ti:o?xi:Oi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=q(t);if(!s){let c;if(i&&(c=Ec[n]))return c;if(n==="hasOwnProperty")return Rc}const l=Reflect.get(t,n,ce(t)?t:r);if((yt(n)?Ri.has(n):Sc(n))||(s||be(t,"get",n),o))return l;if(ce(l)){const c=i&&lr(n)?l:l.value;return s&&le(c)?Wr(c):c}return le(l)?s?Wr(l):On(l):l}}class vi extends Ai{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=q(t)&&lr(n);if(!this._isShallow){const u=mt(o);if(!je(r)&&!mt(r)&&(o=Z(o),r=Z(r)),!i&&ce(o)&&!ce(r))return u||(o.value=r),!0}const l=i?Number(n)e,Dn=e=>Reflect.getPrototypeOf(e);function Tc(e,t,n){return function(...r){const s=this.__v_raw,o=Z(s),i=Kt(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=s[e](...r),a=n?Kr:t?zt:Ke;return!t&&be(o,"iterate",c?$r:Dt),{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 Ln(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Cc(e,t){const n={get(s){const o=this.__v_raw,i=Z(o),l=Z(s);e||(vt(s,l)&&be(i,"get",s),be(i,"get",l));const{has:c}=Dn(i),u=t?Kr:e?zt:Ke;if(c.call(i,s))return u(o.get(s));if(c.call(i,l))return u(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&be(Z(s),"iterate",Dt),s.size},has(s){const o=this.__v_raw,i=Z(o),l=Z(s);return e||(vt(s,l)&&be(i,"has",s),be(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,c=Z(l),u=t?Kr:e?zt:Ke;return!e&&be(c,"iterate",Dt),l.forEach((a,f)=>s.call(o,u(a),u(f),i))}};return Se(n,e?{add:Ln("add"),set:Ln("set"),delete:Ln("delete"),clear:Ln("clear")}:{add(s){!t&&!je(s)&&!mt(s)&&(s=Z(s));const o=Z(this);return Dn(o).has.call(o,s)||(o.add(s),ft(o,"add",s,s)),this},set(s,o){!t&&!je(o)&&!mt(o)&&(o=Z(o));const i=Z(this),{has:l,get:c}=Dn(i);let u=l.call(i,s);u||(s=Z(s),u=l.call(i,s));const a=c.call(i,s);return i.set(s,o),u?vt(o,a)&&ft(i,"set",s,o):ft(i,"add",s,o),this},delete(s){const o=Z(this),{has:i,get:l}=Dn(o);let c=i.call(o,s);c||(s=Z(s),c=i.call(o,s)),l&&l.call(o,s);const u=o.delete(s);return c&&ft(o,"delete",s,void 0),u},clear(){const s=Z(this),o=s.size!==0,i=s.clear();return o&&ft(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=Tc(s,e,t)}),n}function Es(e,t){const n=Cc(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(ne(n,s)&&s in r?n:r,s,o)}const Pc={get:Es(!1,!1)},Nc={get:Es(!1,!0)},Ic={get:Es(!0,!1)};const Oi=new WeakMap,xi=new WeakMap,Ti=new WeakMap,Dc=new WeakMap;function Lc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Fc(e){return e.__v_skip||!Object.isExtensible(e)?0:Lc(ic(e))}function On(e){return mt(e)?e:ws(e,!1,vc,Pc,Oi)}function Ci(e){return ws(e,!1,xc,Nc,xi)}function Wr(e){return ws(e,!0,Oc,Ic,Ti)}function ws(e,t,n,r,s){if(!le(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=Fc(e);if(o===0)return e;const i=s.get(e);if(i)return i;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function it(e){return mt(e)?it(e.__v_raw):!!(e&&e.__v_isReactive)}function mt(e){return!!(e&&e.__v_isReadonly)}function je(e){return!!(e&&e.__v_isShallow)}function fr(e){return e?!!e.__v_raw:!1}function Z(e){const t=e&&e.__v_raw;return t?Z(t):e}function Ss(e){return!ne(e,"__v_skip")&&Object.isExtensible(e)&&ci(e,"__v_skip",!0),e}const Ke=e=>le(e)?On(e):e,zt=e=>le(e)?Wr(e):e;function ce(e){return e?e.__v_isRef===!0:!1}function Lt(e){return Pi(e,!1)}function Mc(e){return Pi(e,!0)}function Pi(e,t){return ce(e)?e:new Uc(e,t)}class Uc{constructor(t,n){this.dep=new bs,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:Z(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,r=this.__v_isShallow||je(t)||mt(t);t=r?t:Z(t),vt(t,n)&&(this._rawValue=t,this._value=r?t:Ke(t),this.dep.trigger())}}function Ot(e){return ce(e)?e.value:e}const jc={get:(e,t,n)=>t==="__v_raw"?e:Ot(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return ce(s)&&!ce(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Ni(e){return it(e)?e:new Proxy(e,jc)}function Bc(e){const t=q(e)?new Array(e.length):{};for(const n in e)t[n]=Ii(e,n);return t}class Hc{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._raw=Z(t);let s=!0,o=t;if(!q(t)||!lr(String(n)))do s=!fr(o)||je(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=Ot(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&ce(this._raw[this._key])){const n=this._object[this._key];if(ce(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return bc(this._raw,this._key)}}class kc{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Vc(e,t,n){return ce(e)?e:W(e)?new kc(e):le(e)&&arguments.length>1?Ii(e,t,n):Lt(e)}function Ii(e,t,n){return new Hc(e,t,n)}class qc{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new bs(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=bn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&ie!==this)return yi(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 $c(e,t,n=!1){let r,s;return W(e)?r=e:(r=e.get,s=e.set),new qc(r,s,n)}const Fn={},Jn=new WeakMap;let Pt;function Kc(e,t=!1,n=Pt){if(n){let r=Jn.get(n);r||Jn.set(n,r=[]),r.push(e)}}function Wc(e,t,n=se){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:c}=n,u=P=>s?P:je(P)||s===!1||s===0?dt(P,1):dt(P);let a,f,p,m,g=!1,b=!1;if(ce(e)?(f=()=>e.value,g=je(e)):it(e)?(f=()=>u(e),g=!0):q(e)?(b=!0,g=e.some(P=>it(P)||je(P)),f=()=>e.map(P=>{if(ce(P))return P.value;if(it(P))return u(P);if(W(P))return c?c(P,2):P()})):W(e)?t?f=c?()=>c(e,2):e:f=()=>{if(p){ht();try{p()}finally{pt()}}const P=Pt;Pt=a;try{return c?c(e,3,[m]):e(m)}finally{Pt=P}}:f=ot,t&&s){const P=f,M=s===!0?1/0:s;f=()=>dt(P(),M)}const E=pi(),O=()=>{a.stop(),E&&E.active&&ds(E.effects,a)};if(o&&t){const P=t;t=(...M)=>{P(...M),O()}}let C=b?new Array(e.length).fill(Fn):Fn;const N=P=>{if(!(!(a.flags&1)||!a.dirty&&!P))if(t){const M=a.run();if(s||g||(b?M.some((X,k)=>vt(X,C[k])):vt(M,C))){p&&p();const X=Pt;Pt=a;try{const k=[M,C===Fn?void 0:b&&C[0]===Fn?[]:C,m];C=M,c?c(t,3,k):t(...k)}finally{Pt=X}}}else a.run()};return l&&l(N),a=new mi(f),a.scheduler=i?()=>i(N,!1):N,m=P=>Kc(P,!1,a),p=a.onStop=()=>{const P=Jn.get(a);if(P){if(c)c(P,4);else for(const M of P)M();Jn.delete(a)}},t?r?N(!0):C=a.run():i?i(N.bind(null,!0),!0):a.run(),O.pause=a.pause.bind(a),O.resume=a.resume.bind(a),O.stop=O,O}function dt(e,t=1/0,n){if(t<=0||!le(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,ce(e))dt(e.value,t,n);else if(q(e))for(let r=0;r{dt(r,t,n)});else if(ii(e)){for(const r in e)dt(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&dt(e[r],t,n)}return e}function xn(e,t,n,r){try{return r?e(...r):e()}catch(s){dr(s,t,n)}}function lt(e,t,n,r){if(W(e)){const s=xn(e,t,n,r);return s&&si(s)&&s.catch(o=>{dr(o,t,n)}),s}if(q(e)){const s=[];for(let o=0;o>>1,s=xe[r],o=wn(s);o=wn(n)?xe.push(e):xe.splice(zc(t),0,e),e.flags|=1,Li()}}function Li(){Xn||(Xn=Di.then(Mi))}function Jc(e){q(e)?Wt.push(...e):St&&e.id===-1?St.splice(kt+1,0,e):e.flags&1||(Wt.push(e),e.flags|=1),Li()}function $s(e,t,n=rt+1){for(;nwn(n)-wn(r));if(Wt.length=0,St){St.push(...t);return}for(St=t,kt=0;kte.id==null?e.flags&2?-1:1/0:e.id;function Mi(e){try{for(rt=0;rt{r._d&&tr(-1);const o=Qn(t);let i;try{i=e(...s)}finally{Qn(o),r._d&&tr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function Ah(e,t){if(we===null)return e;const n=gr(we),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&W(t)?t.call(r&&r.proxy):t}}function Qc(){return!!(dl()||Ft)}const Yc=Symbol.for("v-scx"),Zc=()=>ke(Yc);function fn(e,t,n){return ji(e,t,n)}function ji(e,t,n=se){const{immediate:r,deep:s,flush:o,once:i}=n,l=Se({},n),c=t&&r||!t&&o!=="post";let u;if(An){if(o==="sync"){const m=Zc();u=m.__watcherHandles||(m.__watcherHandles=[])}else if(!c){const m=()=>{};return m.stop=ot,m.resume=ot,m.pause=ot,m}}const a=Te;l.call=(m,g,b)=>lt(m,a,g,b);let f=!1;o==="post"?l.scheduler=m=>{ve(m,a&&a.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(m,g)=>{g?m():As(m)}),l.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,a&&(m.id=a.uid,m.i=a))};const p=Wc(e,t,l);return An&&(u?u.push(p):c&&p()),p}function ea(e,t,n){const r=this.proxy,s=de(e)?e.includes(".")?Bi(r,e):()=>r[e]:e.bind(r,r);let o;W(t)?o=t:(o=t.handler,n=t);const i=Tn(this),l=ji(s,o.bind(r),n);return i(),l}function Bi(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,dn=e=>e&&(e.disabled||e.disabled===""),Ks=e=>e&&(e.defer||e.defer===""),Ws=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Gs=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Gr=(e,t)=>{const n=e&&e.to;return de(n)?t?t(n):null:n},ki={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,u){const{mc:a,pc:f,pbc:p,o:{insert:m,querySelector:g,createText:b,createComment:E}}=u,O=dn(t.props);let{shapeFlag:C,children:N,dynamicChildren:P}=t;if(e==null){const M=t.el=b(""),X=t.anchor=b("");m(M,n,r),m(X,n,r);const k=(U,ee)=>{C&16&&a(N,U,ee,s,o,i,l,c)},V=()=>{const U=t.target=Gr(t.props,g),ee=Vi(U,t,b,m);U&&(i!=="svg"&&Ws(U)?i="svg":i!=="mathml"&&Gs(U)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(U),O||(k(U,ee),kn(t,!1)))};O&&(k(n,X),kn(t,!0)),Ks(t.props)?(t.el.__isMounted=!1,ve(()=>{V(),delete t.el.__isMounted},o)):V()}else{if(Ks(t.props)&&e.el.__isMounted===!1){ve(()=>{ki.process(e,t,n,r,s,o,i,l,c,u)},o);return}t.el=e.el,t.targetStart=e.targetStart;const M=t.anchor=e.anchor,X=t.target=e.target,k=t.targetAnchor=e.targetAnchor,V=dn(e.props),U=V?n:X,ee=V?M:k;if(i==="svg"||Ws(X)?i="svg":(i==="mathml"||Gs(X))&&(i="mathml"),P?(p(e.dynamicChildren,P,U,s,o,i,l),Cs(e,t,!0)):c||f(e,t,U,ee,s,o,i,l,!1),O)V?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Mn(t,n,M,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const ue=t.target=Gr(t.props,g);ue&&Mn(t,ue,null,u,0)}else V&&Mn(t,X,k,u,1);kn(t,O)}},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetStart:u,targetAnchor:a,target:f,props:p}=e;if(f&&(s(u),s(a)),o&&s(c),i&16){const m=o||!dn(p);for(let g=0;ghn(g,t&&(q(t)?t[b]:t),n,r,s));return}if(Gt(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&hn(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?gr(r.component):r.el,i=s?null:o,{i:l,r:c}=e,u=t&&t.r,a=l.refs===se?l.refs={}:l.refs,f=l.setupState,p=Z(f),m=f===se?ni:g=>ne(p,g);if(u!=null&&u!==c){if(zs(t),de(u))a[u]=null,m(u)&&(f[u]=null);else if(ce(u)){u.value=null;const g=t;g.k&&(a[g.k]=null)}}if(W(c))xn(c,l,12,[i,a]);else{const g=de(c),b=ce(c);if(g||b){const E=()=>{if(e.f){const O=g?m(c)?f[c]:a[c]:c.value;if(s)q(O)&&ds(O,o);else if(q(O))O.includes(o)||O.push(o);else if(g)a[c]=[o],m(c)&&(f[c]=a[c]);else{const C=[o];c.value=C,e.k&&(a[e.k]=C)}}else g?(a[c]=i,m(c)&&(f[c]=i)):b&&(c.value=i,e.k&&(a[e.k]=i))};if(i){const O=()=>{E(),Yn.delete(e)};O.id=-1,Yn.set(e,O),ve(O,n)}else zs(e),E()}}}function zs(e){const t=Yn.get(e);t&&(t.flags|=8,Yn.delete(e))}ar().requestIdleCallback;ar().cancelIdleCallback;const Gt=e=>!!e.type.__asyncLoader,$i=e=>e.type.__isKeepAlive;function sa(e,t){Ki(e,"a",t)}function oa(e,t){Ki(e,"da",t)}function Ki(e,t,n=Te){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(hr(t,r,n),n){let s=n.parent;for(;s&&s.parent;)$i(s.parent.vnode)&&ia(r,t,n,s),s=s.parent}}function ia(e,t,n,r){const s=hr(t,e,r,!0);Wi(()=>{ds(r[t],s)},n)}function hr(e,t,n=Te,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{ht();const l=Tn(n),c=lt(t,n,e,i);return l(),pt(),c});return r?s.unshift(o):s.push(o),o}}const _t=e=>(t,n=Te)=>{(!An||e==="sp")&&hr(e,(...r)=>t(...r),n)},la=_t("bm"),ca=_t("m"),aa=_t("bu"),ua=_t("u"),fa=_t("bum"),Wi=_t("um"),da=_t("sp"),ha=_t("rtg"),pa=_t("rtc");function ma(e,t=Te){hr("ec",e,t)}const ga=Symbol.for("v-ndc");function Oh(e,t,n,r){let s;const o=n,i=q(e);if(i||de(e)){const l=i&&it(e);let c=!1,u=!1;l&&(c=!je(e),u=mt(e),e=ur(e)),s=new Array(e.length);for(let a=0,f=e.length;at(l,c,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let c=0,u=l.length;c0;return er(),nr(Fe,null,[Ce("slot",n,r)],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),er();const i=o&&Gi(o(n)),l=n.key||i&&i.key,c=nr(Fe,{key:(l&&!yt(l)?l:`_${t}`)+(!i&&r?"_fb":"")},i||[],i&&e._===1?64:-2);return c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),o&&o._c&&(o._d=!0),c}function Gi(e){return e.some(t=>Rn(t)?!(t.type===gt||t.type===Fe&&!Gi(t.children)):!0)?e:null}const zr=e=>e?hl(e)?gr(e):zr(e.parent):null,pn=Se(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=>zr(e.parent),$root:e=>zr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ji(e),$forceUpdate:e=>e.f||(e.f=()=>{As(e.update)}),$nextTick:e=>e.n||(e.n=Rs.bind(e.proxy)),$watch:e=>ea.bind(e)}),Pr=(e,t)=>e!==se&&!e.__isScriptSetup&&ne(e,t),ya={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,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 r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(Pr(r,t))return i[t]=1,r[t];if(s!==se&&ne(s,t))return i[t]=2,s[t];if(ne(o,t))return i[t]=3,o[t];if(n!==se&&ne(n,t))return i[t]=4,n[t];Jr&&(i[t]=0)}}const u=pn[t];let a,f;if(u)return t==="$attrs"&&be(e.attrs,"get",""),u(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==se&&ne(n,t))return i[t]=4,n[t];if(f=c.config.globalProperties,ne(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return Pr(s,t)?(s[t]=n,!0):r!==se&&ne(r,t)?(r[t]=n,!0):ne(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:o,type:i}},l){let c;return!!(n[l]||e!==se&&l[0]!=="$"&&ne(e,l)||Pr(t,l)||ne(o,l)||ne(r,l)||ne(pn,l)||ne(s.config.globalProperties,l)||(c=i.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ne(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Js(e){return q(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Jr=!0;function _a(e){const t=Ji(e),n=e.proxy,r=e.ctx;Jr=!1,t.beforeCreate&&Xs(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:u,created:a,beforeMount:f,mounted:p,beforeUpdate:m,updated:g,activated:b,deactivated:E,beforeDestroy:O,beforeUnmount:C,destroyed:N,unmounted:P,render:M,renderTracked:X,renderTriggered:k,errorCaptured:V,serverPrefetch:U,expose:ee,inheritAttrs:ue,components:ye,directives:pe,filters:Re}=t;if(u&&ba(u,r,null),i)for(const K in i){const z=i[K];W(z)&&(r[K]=z.bind(n))}if(s){const K=s.call(n,n);le(K)&&(e.data=On(K))}if(Jr=!0,o)for(const K in o){const z=o[K],Be=W(z)?z.bind(n,n):W(z.get)?z.get.bind(n,n):ot,ze=!W(z)&&W(z.set)?z.set.bind(n):ot,me=Me({get:Be,set:ze});Object.defineProperty(r,K,{enumerable:!0,configurable:!0,get:()=>me.value,set:fe=>me.value=fe})}if(l)for(const K in l)zi(l[K],r,n,K);if(c){const K=W(c)?c.call(n):c;Reflect.ownKeys(K).forEach(z=>{Hn(z,K[z])})}a&&Xs(a,e,"c");function J(K,z){q(z)?z.forEach(Be=>K(Be.bind(n))):z&&K(z.bind(n))}if(J(la,f),J(ca,p),J(aa,m),J(ua,g),J(sa,b),J(oa,E),J(ma,V),J(pa,X),J(ha,k),J(fa,C),J(Wi,P),J(da,U),q(ee))if(ee.length){const K=e.exposed||(e.exposed={});ee.forEach(z=>{Object.defineProperty(K,z,{get:()=>n[z],set:Be=>n[z]=Be,enumerable:!0})})}else e.exposed||(e.exposed={});M&&e.render===ot&&(e.render=M),ue!=null&&(e.inheritAttrs=ue),ye&&(e.components=ye),pe&&(e.directives=pe),U&&qi(e)}function ba(e,t,n=ot){q(e)&&(e=Xr(e));for(const r in e){const s=e[r];let o;le(s)?"default"in s?o=ke(s.from||r,s.default,!0):o=ke(s.from||r):o=ke(s),ce(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function Xs(e,t,n){lt(q(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function zi(e,t,n,r){let s=r.includes(".")?Bi(n,r):()=>n[r];if(de(e)){const o=t[e];W(o)&&fn(s,o)}else if(W(e))fn(s,e.bind(n));else if(le(e))if(q(e))e.forEach(o=>zi(o,t,n,r));else{const o=W(e.handler)?e.handler.bind(n):t[e.handler];W(o)&&fn(s,o,e)}}function Ji(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>Zn(c,u,i,!0)),Zn(c,t,i)),le(t)&&o.set(t,c),c}function Zn(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&Zn(e,o,n,!0),s&&s.forEach(i=>Zn(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Ea[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Ea={data:Qs,props:Ys,emits:Ys,methods:ln,computed:ln,beforeCreate:Ae,created:Ae,beforeMount:Ae,mounted:Ae,beforeUpdate:Ae,updated:Ae,beforeDestroy:Ae,beforeUnmount:Ae,destroyed:Ae,unmounted:Ae,activated:Ae,deactivated:Ae,errorCaptured:Ae,serverPrefetch:Ae,components:ln,directives:ln,watch:Sa,provide:Qs,inject:wa};function Qs(e,t){return t?e?function(){return Se(W(e)?e.call(this,this):e,W(t)?t.call(this,this):t)}:t:e}function wa(e,t){return ln(Xr(e),Xr(t))}function Xr(e){if(q(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${xt(t)}Modifiers`]||e[`${jt(t)}Modifiers`];function Oa(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||se;let s=n;const o=t.startsWith("update:"),i=o&&va(r,t.slice(7));i&&(i.trim&&(s=n.map(a=>de(a)?a.trim():a)),i.number&&(s=n.map(hs)));let l,c=r[l=vr(t)]||r[l=vr(xt(t))];!c&&o&&(c=r[l=vr(jt(t))]),c&<(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,lt(u,e,6,s)}}const xa=new WeakMap;function Qi(e,t,n=!1){const r=n?xa:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!W(e)){const c=u=>{const a=Qi(u,t,!0);a&&(l=!0,Se(i,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(le(e)&&r.set(e,null),null):(q(o)?o.forEach(c=>i[c]=null):Se(i,o),le(e)&&r.set(e,i),i)}function pr(e,t){return!e||!or(t)?!1:(t=t.slice(2).replace(/Once$/,""),ne(e,t[0].toLowerCase()+t.slice(1))||ne(e,jt(t))||ne(e,t))}function Zs(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:a,props:f,data:p,setupState:m,ctx:g,inheritAttrs:b}=e,E=Qn(e);let O,C;try{if(n.shapeFlag&4){const P=s||r,M=P;O=st(u.call(M,P,a,f,m,p,g)),C=l}else{const P=t;O=st(P.length>1?P(f,{attrs:l,slots:i,emit:c}):P(f,null)),C=t.props?l:Ta(l)}}catch(P){mn.length=0,dr(P,e,1),O=Ce(gt)}let N=O;if(C&&b!==!1){const P=Object.keys(C),{shapeFlag:M}=N;P.length&&M&7&&(o&&P.some(fs)&&(C=Ca(C,o)),N=Jt(N,C,!1,!0))}return n.dirs&&(N=Jt(N,null,!1,!0),N.dirs=N.dirs?N.dirs.concat(n.dirs):n.dirs),n.transition&&vs(N,n.transition),O=N,Qn(E),O}const Ta=e=>{let t;for(const n in e)(n==="class"||n==="style"||or(n))&&((t||(t={}))[n]=e[n]);return t},Ca=(e,t)=>{const n={};for(const r in e)(!fs(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Pa(e,t,n){const{props:r,children:s,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 r?eo(r,i,u):!!i;if(c&8){const a=t.dynamicProps;for(let f=0;fObject.create(Yi),el=e=>Object.getPrototypeOf(e)===Yi;function Ia(e,t,n,r=!1){const s={},o=Zi();e.propsDefaults=Object.create(null),tl(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:Ci(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function Da(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=Z(s),[c]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const a=e.vnode.dynamicProps;for(let f=0;f{c=!0;const[p,m]=nl(f,t,!0);Se(i,p),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!c)return le(e)&&r.set(e,$t),$t;if(q(o))for(let a=0;ae==="_"||e==="_ctx"||e==="$stable",Ts=e=>q(e)?e.map(st):[st(e)],Fa=(e,t,n)=>{if(t._n)return t;const r=Xc((...s)=>Ts(t(...s)),n);return r._c=!1,r},rl=(e,t,n)=>{const r=e._ctx;for(const s in e){if(xs(s))continue;const o=e[s];if(W(o))t[s]=Fa(s,o,r);else if(o!=null){const i=Ts(o);t[s]=()=>i}}},sl=(e,t)=>{const n=Ts(t);e.slots.default=()=>n},ol=(e,t,n)=>{for(const r in t)(n||!xs(r))&&(e[r]=t[r])},Ma=(e,t,n)=>{const r=e.slots=Zi();if(e.vnode.shapeFlag&32){const s=t._;s?(ol(r,t,n),n&&ci(r,"_",s,!0)):rl(t,r)}else t&&sl(e,t)},Ua=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=se;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:ol(s,t,n):(o=!t.$stable,rl(t,s)),i=t}else t&&(sl(e,t),i={default:1});if(o)for(const l in s)!xs(l)&&i[l]==null&&delete s[l]},ve=Va;function ja(e){return Ba(e)}function Ba(e,t){const n=ar();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:a,parentNode:f,nextSibling:p,setScopeId:m=ot,insertStaticContent:g}=e,b=(d,h,y,w=null,A=null,S=null,I=void 0,T=null,x=!!h.dynamicChildren)=>{if(d===h)return;d&&!rn(d,h)&&(w=R(d),fe(d,A,S,!0),d=null),h.patchFlag===-2&&(x=!1,h.dynamicChildren=null);const{type:v,ref:H,shapeFlag:L}=h;switch(v){case mr:E(d,h,y,w);break;case gt:O(d,h,y,w);break;case Vn:d==null&&C(h,y,w,I);break;case Fe:ye(d,h,y,w,A,S,I,T,x);break;default:L&1?M(d,h,y,w,A,S,I,T,x):L&6?pe(d,h,y,w,A,S,I,T,x):(L&64||L&128)&&v.process(d,h,y,w,A,S,I,T,x,j)}H!=null&&A?hn(H,d&&d.ref,S,h||d,!h):H==null&&d&&d.ref!=null&&hn(d.ref,null,S,d,!0)},E=(d,h,y,w)=>{if(d==null)r(h.el=l(h.children),y,w);else{const A=h.el=d.el;h.children!==d.children&&u(A,h.children)}},O=(d,h,y,w)=>{d==null?r(h.el=c(h.children||""),y,w):h.el=d.el},C=(d,h,y,w)=>{[d.el,d.anchor]=g(d.children,h,y,w,d.el,d.anchor)},N=({el:d,anchor:h},y,w)=>{let A;for(;d&&d!==h;)A=p(d),r(d,y,w),d=A;r(h,y,w)},P=({el:d,anchor:h})=>{let y;for(;d&&d!==h;)y=p(d),s(d),d=y;s(h)},M=(d,h,y,w,A,S,I,T,x)=>{if(h.type==="svg"?I="svg":h.type==="math"&&(I="mathml"),d==null)X(h,y,w,A,S,I,T,x);else{const v=d.el&&d.el._isVueCE?d.el:null;try{v&&v._beginPatch(),U(d,h,A,S,I,T,x)}finally{v&&v._endPatch()}}},X=(d,h,y,w,A,S,I,T)=>{let x,v;const{props:H,shapeFlag:L,transition:B,dirs:$}=d;if(x=d.el=i(d.type,S,H&&H.is,H),L&8?a(x,d.children):L&16&&V(d.children,x,null,w,A,Nr(d,S),I,T),$&&Tt(d,null,w,"created"),k(x,d,d.scopeId,I,w),H){for(const oe in H)oe!=="value"&&!cn(oe)&&o(x,oe,null,H[oe],S,w);"value"in H&&o(x,"value",null,H.value,S),(v=H.onVnodeBeforeMount)&&et(v,w,d)}$&&Tt(d,null,w,"beforeMount");const Y=Ha(A,B);Y&&B.beforeEnter(x),r(x,h,y),((v=H&&H.onVnodeMounted)||Y||$)&&ve(()=>{v&&et(v,w,d),Y&&B.enter(x),$&&Tt(d,null,w,"mounted")},A)},k=(d,h,y,w,A)=>{if(y&&m(d,y),w)for(let S=0;S{for(let v=x;v{const T=h.el=d.el;let{patchFlag:x,dynamicChildren:v,dirs:H}=h;x|=d.patchFlag&16;const L=d.props||se,B=h.props||se;let $;if(y&&Ct(y,!1),($=B.onVnodeBeforeUpdate)&&et($,y,h,d),H&&Tt(h,d,y,"beforeUpdate"),y&&Ct(y,!0),(L.innerHTML&&B.innerHTML==null||L.textContent&&B.textContent==null)&&a(T,""),v?ee(d.dynamicChildren,v,T,y,w,Nr(h,A),S):I||z(d,h,T,null,y,w,Nr(h,A),S,!1),x>0){if(x&16)ue(T,L,B,y,A);else if(x&2&&L.class!==B.class&&o(T,"class",null,B.class,A),x&4&&o(T,"style",L.style,B.style,A),x&8){const Y=h.dynamicProps;for(let oe=0;oe{$&&et($,y,h,d),H&&Tt(h,d,y,"updated")},w)},ee=(d,h,y,w,A,S,I)=>{for(let T=0;T{if(h!==y){if(h!==se)for(const S in h)!cn(S)&&!(S in y)&&o(d,S,h[S],null,A,w);for(const S in y){if(cn(S))continue;const I=y[S],T=h[S];I!==T&&S!=="value"&&o(d,S,T,I,A,w)}"value"in y&&o(d,"value",h.value,y.value,A)}},ye=(d,h,y,w,A,S,I,T,x)=>{const v=h.el=d?d.el:l(""),H=h.anchor=d?d.anchor:l("");let{patchFlag:L,dynamicChildren:B,slotScopeIds:$}=h;$&&(T=T?T.concat($):$),d==null?(r(v,y,w),r(H,y,w),V(h.children||[],y,H,A,S,I,T,x)):L>0&&L&64&&B&&d.dynamicChildren&&d.dynamicChildren.length===B.length?(ee(d.dynamicChildren,B,y,A,S,I,T),(h.key!=null||A&&h===A.subTree)&&Cs(d,h,!0)):z(d,h,y,H,A,S,I,T,x)},pe=(d,h,y,w,A,S,I,T,x)=>{h.slotScopeIds=T,d==null?h.shapeFlag&512?A.ctx.activate(h,y,w,I,x):Re(h,y,w,A,S,I,x):Ve(d,h,x)},Re=(d,h,y,w,A,S,I)=>{const T=d.component=Xa(d,w,A);if($i(d)&&(T.ctx.renderer=j),Qa(T,!1,I),T.asyncDep){if(A&&A.registerDep(T,J,I),!d.el){const x=T.subTree=Ce(gt);O(null,x,h,y),d.placeholder=x.el}}else J(T,d,h,y,A,S,I)},Ve=(d,h,y)=>{const w=h.component=d.component;if(Pa(d,h,y))if(w.asyncDep&&!w.asyncResolved){K(w,h,y);return}else w.next=h,w.update();else h.el=d.el,w.vnode=h},J=(d,h,y,w,A,S,I)=>{const T=()=>{if(d.isMounted){let{next:L,bu:B,u:$,parent:Y,vnode:oe}=d;{const Ye=il(d);if(Ye){L&&(L.el=oe.el,K(d,L,I)),Ye.asyncDep.then(()=>{d.isUnmounted||T()});return}}let re=L,Pe;Ct(d,!1),L?(L.el=oe.el,K(d,L,I)):L=oe,B&&Bn(B),(Pe=L.props&&L.props.onVnodeBeforeUpdate)&&et(Pe,Y,L,oe),Ct(d,!0);const Ne=Zs(d),Qe=d.subTree;d.subTree=Ne,b(Qe,Ne,f(Qe.el),R(Qe),d,A,S),L.el=Ne.el,re===null&&Na(d,Ne.el),$&&ve($,A),(Pe=L.props&&L.props.onVnodeUpdated)&&ve(()=>et(Pe,Y,L,oe),A)}else{let L;const{el:B,props:$}=h,{bm:Y,m:oe,parent:re,root:Pe,type:Ne}=d,Qe=Gt(h);Ct(d,!1),Y&&Bn(Y),!Qe&&(L=$&&$.onVnodeBeforeMount)&&et(L,re,h),Ct(d,!0);{Pe.ce&&Pe.ce._def.shadowRoot!==!1&&Pe.ce._injectChildStyle(Ne);const Ye=d.subTree=Zs(d);b(null,Ye,y,w,d,A,S),h.el=Ye.el}if(oe&&ve(oe,A),!Qe&&(L=$&&$.onVnodeMounted)){const Ye=h;ve(()=>et(L,re,Ye),A)}(h.shapeFlag&256||re&&Gt(re.vnode)&&re.vnode.shapeFlag&256)&&d.a&&ve(d.a,A),d.isMounted=!0,h=y=w=null}};d.scope.on();const x=d.effect=new mi(T);d.scope.off();const v=d.update=x.run.bind(x),H=d.job=x.runIfDirty.bind(x);H.i=d,H.id=d.uid,x.scheduler=()=>As(H),Ct(d,!0),v()},K=(d,h,y)=>{h.component=d;const w=d.vnode.props;d.vnode=h,d.next=null,Da(d,h.props,w,y),Ua(d,h.children,y),ht(),$s(d),pt()},z=(d,h,y,w,A,S,I,T,x=!1)=>{const v=d&&d.children,H=d?d.shapeFlag:0,L=h.children,{patchFlag:B,shapeFlag:$}=h;if(B>0){if(B&128){ze(v,L,y,w,A,S,I,T,x);return}else if(B&256){Be(v,L,y,w,A,S,I,T,x);return}}$&8?(H&16&&He(v,A,S),L!==v&&a(y,L)):H&16?$&16?ze(v,L,y,w,A,S,I,T,x):He(v,A,S,!0):(H&8&&a(y,""),$&16&&V(L,y,w,A,S,I,T,x))},Be=(d,h,y,w,A,S,I,T,x)=>{d=d||$t,h=h||$t;const v=d.length,H=h.length,L=Math.min(v,H);let B;for(B=0;BH?He(d,A,S,!0,!1,L):V(h,y,w,A,S,I,T,x,L)},ze=(d,h,y,w,A,S,I,T,x)=>{let v=0;const H=h.length;let L=d.length-1,B=H-1;for(;v<=L&&v<=B;){const $=d[v],Y=h[v]=x?Rt(h[v]):st(h[v]);if(rn($,Y))b($,Y,y,null,A,S,I,T,x);else break;v++}for(;v<=L&&v<=B;){const $=d[L],Y=h[B]=x?Rt(h[B]):st(h[B]);if(rn($,Y))b($,Y,y,null,A,S,I,T,x);else break;L--,B--}if(v>L){if(v<=B){const $=B+1,Y=$B)for(;v<=L;)fe(d[v],A,S,!0),v++;else{const $=v,Y=v,oe=new Map;for(v=Y;v<=B;v++){const Le=h[v]=x?Rt(h[v]):st(h[v]);Le.key!=null&&oe.set(Le.key,v)}let re,Pe=0;const Ne=B-Y+1;let Qe=!1,Ye=0;const tn=new Array(Ne);for(v=0;v=Ne){fe(Le,A,S,!0);continue}let Ze;if(Le.key!=null)Ze=oe.get(Le.key);else for(re=Y;re<=B;re++)if(tn[re-Y]===0&&rn(Le,h[re])){Ze=re;break}Ze===void 0?fe(Le,A,S,!0):(tn[Ze-Y]=v+1,Ze>=Ye?Ye=Ze:Qe=!0,b(Le,h[Ze],y,null,A,S,I,T,x),Pe++)}const js=Qe?ka(tn):$t;for(re=js.length-1,v=Ne-1;v>=0;v--){const Le=Y+v,Ze=h[Le],Bs=h[Le+1],Hs=Le+1{const{el:S,type:I,transition:T,children:x,shapeFlag:v}=d;if(v&6){me(d.component.subTree,h,y,w);return}if(v&128){d.suspense.move(h,y,w);return}if(v&64){I.move(d,h,y,j);return}if(I===Fe){r(S,h,y);for(let L=0;LT.enter(S),A);else{const{leave:L,delayLeave:B,afterLeave:$}=T,Y=()=>{d.ctx.isUnmounted?s(S):r(S,h,y)},oe=()=>{S._isLeaving&&S[ra](!0),L(S,()=>{Y(),$&&$()})};B?B(S,Y,oe):oe()}else r(S,h,y)},fe=(d,h,y,w=!1,A=!1)=>{const{type:S,props:I,ref:T,children:x,dynamicChildren:v,shapeFlag:H,patchFlag:L,dirs:B,cacheIndex:$}=d;if(L===-2&&(A=!1),T!=null&&(ht(),hn(T,null,y,d,!0),pt()),$!=null&&(h.renderCache[$]=void 0),H&256){h.ctx.deactivate(d);return}const Y=H&1&&B,oe=!Gt(d);let re;if(oe&&(re=I&&I.onVnodeBeforeUnmount)&&et(re,h,d),H&6)Xe(d.component,y,w);else{if(H&128){d.suspense.unmount(y,w);return}Y&&Tt(d,null,h,"beforeUnmount"),H&64?d.type.remove(d,h,y,j,w):v&&!v.hasOnce&&(S!==Fe||L>0&&L&64)?He(v,h,y,!1,!0):(S===Fe&&L&384||!A&&H&16)&&He(x,h,y),w&&Je(d)}(oe&&(re=I&&I.onVnodeUnmounted)||Y)&&ve(()=>{re&&et(re,h,d),Y&&Tt(d,null,h,"unmounted")},y)},Je=d=>{const{type:h,el:y,anchor:w,transition:A}=d;if(h===Fe){qe(y,w);return}if(h===Vn){P(d);return}const S=()=>{s(y),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(d.shapeFlag&1&&A&&!A.persisted){const{leave:I,delayLeave:T}=A,x=()=>I(y,S);T?T(d.el,S,x):x()}else S()},qe=(d,h)=>{let y;for(;d!==h;)y=p(d),s(d),d=y;s(h)},Xe=(d,h,y)=>{const{bum:w,scope:A,job:S,subTree:I,um:T,m:x,a:v}=d;no(x),no(v),w&&Bn(w),A.stop(),S&&(S.flags|=8,fe(I,d,h,y)),T&&ve(T,h),ve(()=>{d.isUnmounted=!0},h)},He=(d,h,y,w=!1,A=!1,S=0)=>{for(let I=S;I{if(d.shapeFlag&6)return R(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const h=p(d.anchor||d.el),y=h&&h[Hi];return y?p(y):h};let F=!1;const D=(d,h,y)=>{let w;d==null?h._vnode&&(fe(h._vnode,null,null,!0),w=h._vnode.component):b(h._vnode||null,d,h,null,null,null,y),h._vnode=d,F||(F=!0,$s(w),Fi(),F=!1)},j={p:b,um:fe,m:me,r:Je,mt:Re,mc:V,pc:z,pbc:ee,n:R,o:e};return{render:D,hydrate:void 0,createApp:Aa(D)}}function Nr({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 Ct({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Ha(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Cs(e,t,n=!1){const r=e.children,s=t.children;if(q(r)&&q(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function il(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:il(t)}function no(e){if(e)for(let t=0;te.__isSuspense;function Va(e,t){t&&t.pendingBranch?q(e)?t.effects.push(...e):t.effects.push(e):Jc(e)}const Fe=Symbol.for("v-fgt"),mr=Symbol.for("v-txt"),gt=Symbol.for("v-cmt"),Vn=Symbol.for("v-stc"),mn=[];let Ue=null;function er(e=!1){mn.push(Ue=e?null:[])}function qa(){mn.pop(),Ue=mn[mn.length-1]||null}let Sn=1;function tr(e,t=!1){Sn+=e,e<0&&Ue&&t&&(Ue.hasOnce=!0)}function al(e){return e.dynamicChildren=Sn>0?Ue||$t:null,qa(),Sn>0&&Ue&&Ue.push(e),e}function Th(e,t,n,r,s,o){return al(fl(e,t,n,r,s,o,!0))}function nr(e,t,n,r,s){return al(Ce(e,t,n,r,s,!0))}function Rn(e){return e?e.__v_isVNode===!0:!1}function rn(e,t){return e.type===t.type&&e.key===t.key}const ul=({key:e})=>e??null,qn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?de(e)||ce(e)||W(e)?{i:we,r:e,k:t,f:!!n}:e:null);function fl(e,t=null,n=null,r=0,s=null,o=e===Fe?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ul(t),ref:t&&qn(t),scopeId:Ui,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:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:we};return l?(Ps(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=de(n)?8:16),Sn>0&&!i&&Ue&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Ue.push(c),c}const Ce=$a;function $a(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===ga)&&(e=gt),Rn(e)){const l=Jt(e,t,!0);return n&&Ps(l,n),Sn>0&&!o&&Ue&&(l.shapeFlag&6?Ue[Ue.indexOf(e)]=l:Ue.push(l)),l.patchFlag=-2,l}if(tu(e)&&(e=e.__vccOpts),t){t=Ka(t);let{class:l,style:c}=t;l&&!de(l)&&(t.class=ms(l)),le(c)&&(fr(c)&&!q(c)&&(c=Se({},c)),t.style=ps(c))}const i=de(e)?1:cl(e)?128:ta(e)?64:le(e)?4:W(e)?2:0;return fl(e,t,n,r,s,i,o,!0)}function Ka(e){return e?fr(e)||el(e)?Se({},e):e:null}function Jt(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?Ga(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&ul(u),ref:t&&t.ref?n&&o?q(o)?o.concat(qn(t)):[o,qn(t)]:qn(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!==Fe?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&&Jt(e.ssContent),ssFallback:e.ssFallback&&Jt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&vs(a,c.clone(a)),a}function Wa(e=" ",t=0){return Ce(mr,null,e,t)}function Ch(e,t){const n=Ce(Vn,null,e);return n.staticCount=t,n}function Ph(e="",t=!1){return t?(er(),nr(gt,null,e)):Ce(gt,null,e)}function st(e){return e==null||typeof e=="boolean"?Ce(gt):q(e)?Ce(Fe,null,e.slice()):Rn(e)?Rt(e):Ce(mr,null,String(e))}function Rt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Jt(e)}function Ps(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(q(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Ps(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!el(t)?t._ctx=we:s===3&&we&&(we.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else W(t)?(t={default:t,_ctx:we},n=32):(t=String(t),r&64?(n=16,t=[Wa(t)]):n=8);e.children=t,e.shapeFlag|=n}function Ga(...e){const t={};for(let n=0;nTe||we;let rr,Yr;{const e=ar(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};rr=t("__VUE_INSTANCE_SETTERS__",n=>Te=n),Yr=t("__VUE_SSR_SETTERS__",n=>An=n)}const Tn=e=>{const t=Te;return rr(e),e.scope.on(),()=>{e.scope.off(),rr(t)}},ro=()=>{Te&&Te.scope.off(),rr(null)};function hl(e){return e.vnode.shapeFlag&4}let An=!1;function Qa(e,t=!1,n=!1){t&&Yr(t);const{props:r,children:s}=e.vnode,o=hl(e);Ia(e,r,o,t),Ma(e,s,n||t);const i=o?Ya(e,t):void 0;return t&&Yr(!1),i}function Ya(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,ya);const{setup:r}=n;if(r){ht();const s=e.setupContext=r.length>1?eu(e):null,o=Tn(e),i=xn(r,e,0,[e.props,s]),l=si(i);if(pt(),o(),(l||e.sp)&&!Gt(e)&&qi(e),l){if(i.then(ro,ro),t)return i.then(c=>{so(e,c)}).catch(c=>{dr(c,e,0)});e.asyncDep=i}else so(e,i)}else pl(e)}function so(e,t,n){W(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:le(t)&&(e.setupState=Ni(t)),pl(e)}function pl(e,t,n){const r=e.type;e.render||(e.render=r.render||ot);{const s=Tn(e);ht();try{_a(e)}finally{pt(),s()}}}const Za={get(e,t){return be(e,"get",""),e[t]}};function eu(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Za),slots:e.slots,emit:e.emit,expose:t}}function gr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ni(Ss(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in pn)return pn[n](e)},has(t,n){return n in t||n in pn}})):e.proxy}function tu(e){return W(e)&&"__vccOpts"in e}const Me=(e,t)=>$c(e,t,An);function ml(e,t,n){try{tr(-1);const r=arguments.length;return r===2?le(t)&&!q(t)?Rn(t)?Ce(e,null,[t]):Ce(e,t):Ce(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Rn(n)&&(n=[n]),Ce(e,t,n))}finally{tr(1)}}const nu="3.5.26";let Zr;const oo=typeof window<"u"&&window.trustedTypes;if(oo)try{Zr=oo.createPolicy("vue",{createHTML:e=>e})}catch{}const gl=Zr?e=>Zr.createHTML(e):e=>e,ru="http://www.w3.org/2000/svg",su="http://www.w3.org/1998/Math/MathML",ut=typeof document<"u"?document:null,io=ut&&ut.createElement("template"),ou={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?ut.createElementNS(ru,e):t==="mathml"?ut.createElementNS(su,e):n?ut.createElement(e,{is:n}):ut.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>ut.createTextNode(e),createComment:e=>ut.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ut.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{io.innerHTML=gl(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=io.content;if(r==="svg"||r==="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]}},iu=Symbol("_vtc");function lu(e,t,n){const r=e[iu];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const lo=Symbol("_vod"),cu=Symbol("_vsh"),au=Symbol(""),uu=/(?:^|;)\s*display\s*:/;function fu(e,t,n){const r=e.style,s=de(n);let o=!1;if(n&&!s){if(t)if(de(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&$n(r,l,"")}else for(const i in t)n[i]==null&&$n(r,i,"");for(const i in n)i==="display"&&(o=!0),$n(r,i,n[i])}else if(s){if(t!==n){const i=r[au];i&&(n+=";"+i),r.cssText=n,o=uu.test(n)}}else t&&e.removeAttribute("style");lo in e&&(e[lo]=o?r.display:"",e[cu]&&(r.display="none"))}const co=/\s*!important$/;function $n(e,t,n){if(q(n))n.forEach(r=>$n(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=du(e,t);co.test(n)?e.setProperty(jt(r),n.replace(co,""),"important"):e[r]=n}}const ao=["Webkit","Moz","ms"],Ir={};function du(e,t){const n=Ir[t];if(n)return n;let r=xt(t);if(r!=="filter"&&r in e)return Ir[t]=r;r=li(r);for(let s=0;sDr||(gu.then(()=>Dr=0),Dr=Date.now());function _u(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;lt(bu(r,n.value),t,5,[r])};return n.value=e,n.attached=yu(),n}function bu(e,t){if(q(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const go=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Eu=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?lu(e,r,i):t==="style"?fu(e,n,r):or(t)?fs(t)||pu(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):wu(e,t,r,i))?(ho(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&fo(e,t,r,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!de(r))?ho(e,xt(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),fo(e,t,r,i))};function wu(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&go(t)&&W(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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return go(t)&&de(n)?!1:t in e}const yo=e=>{const t=e.props["onUpdate:modelValue"]||!1;return q(t)?n=>Bn(t,n):t};function Su(e){e.target.composing=!0}function _o(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Lr=Symbol("_assign");function bo(e,t,n){return t&&(e=e.trim()),n&&(e=hs(e)),e}const Nh={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Lr]=yo(s);const o=r||s.props&&s.props.type==="number";Vt(e,t?"change":"input",i=>{i.target.composing||e[Lr](bo(e.value,n,o))}),(n||o)&&Vt(e,"change",()=>{e.value=bo(e.value,n,o)}),t||(Vt(e,"compositionstart",Su),Vt(e,"compositionend",_o),Vt(e,"change",_o))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Lr]=yo(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?hs(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},Ru=["ctrl","shift","alt","meta"],Au={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Ru.some(n=>e[`${n}Key`]&&!t.includes(n))},Ih=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const t=Ou().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Cu(r);if(!s)return;const o=t._component;!W(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,Tu(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t});function Tu(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Cu(e){return de(e)?document.querySelector(e):e}let yl;const yr=e=>yl=e,_l=Symbol();function es(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var gn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(gn||(gn={}));function Pu(){const e=hi(!0),t=e.run(()=>Lt({}));let n=[],r=[];const s=Ss({install(o){yr(s),s._a=o,o.provide(_l,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const bl=()=>{};function wo(e,t,n,r=bl){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&pi()&&gc(s),s}function Ht(e,...t){e.forEach(n=>{n(...t)})}const Nu=e=>e(),So=Symbol(),Fr=Symbol();function ts(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];es(s)&&es(r)&&e.hasOwnProperty(n)&&!ce(r)&&!it(r)?e[n]=ts(s,r):e[n]=r}return e}const Iu=Symbol();function Du(e){return!es(e)||!Object.prototype.hasOwnProperty.call(e,Iu)}const{assign:Et}=Object;function Lu(e){return!!(ce(e)&&e.effect)}function Fu(e,t,n,r){const{state:s,actions:o,getters:i}=t,l=n.state.value[e];let c;function u(){l||(n.state.value[e]=s?s():{});const a=Bc(n.state.value[e]);return Et(a,o,Object.keys(i||{}).reduce((f,p)=>(f[p]=Ss(Me(()=>{yr(n);const m=n._s.get(e);return i[p].call(m,m)})),f),{}))}return c=El(e,u,t,n,r,!0),c}function El(e,t,n={},r,s,o){let i;const l=Et({actions:{}},n),c={deep:!0};let u,a,f=new Set,p=new Set,m;const g=r.state.value[e];!o&&!g&&(r.state.value[e]={}),Lt({});let b;function E(V){let U;u=a=!1,typeof V=="function"?(V(r.state.value[e]),U={type:gn.patchFunction,storeId:e,events:m}):(ts(r.state.value[e],V),U={type:gn.patchObject,payload:V,storeId:e,events:m});const ee=b=Symbol();Rs().then(()=>{b===ee&&(u=!0)}),a=!0,Ht(f,U,r.state.value[e])}const O=o?function(){const{state:U}=n,ee=U?U():{};this.$patch(ue=>{Et(ue,ee)})}:bl;function C(){i.stop(),f.clear(),p.clear(),r._s.delete(e)}const N=(V,U="")=>{if(So in V)return V[Fr]=U,V;const ee=function(){yr(r);const ue=Array.from(arguments),ye=new Set,pe=new Set;function Re(K){ye.add(K)}function Ve(K){pe.add(K)}Ht(p,{args:ue,name:ee[Fr],store:M,after:Re,onError:Ve});let J;try{J=V.apply(this&&this.$id===e?this:M,ue)}catch(K){throw Ht(pe,K),K}return J instanceof Promise?J.then(K=>(Ht(ye,K),K)).catch(K=>(Ht(pe,K),Promise.reject(K))):(Ht(ye,J),J)};return ee[So]=!0,ee[Fr]=U,ee},P={_p:r,$id:e,$onAction:wo.bind(null,p),$patch:E,$reset:O,$subscribe(V,U={}){const ee=wo(f,V,U.detached,()=>ue()),ue=i.run(()=>fn(()=>r.state.value[e],ye=>{(U.flush==="sync"?a:u)&&V({storeId:e,type:gn.direct,events:m},ye)},Et({},c,U)));return ee},$dispose:C},M=On(P);r._s.set(e,M);const k=(r._a&&r._a.runWithContext||Nu)(()=>r._e.run(()=>(i=hi()).run(()=>t({action:N}))));for(const V in k){const U=k[V];if(ce(U)&&!Lu(U)||it(U))o||(g&&Du(U)&&(ce(U)?U.value=g[V]:ts(U,g[V])),r.state.value[e][V]=U);else if(typeof U=="function"){const ee=N(U,V);k[V]=ee,l.actions[V]=U}}return Et(M,k),Et(Z(M),k),Object.defineProperty(M,"$state",{get:()=>r.state.value[e],set:V=>{E(U=>{Et(U,V)})}}),r._p.forEach(V=>{Et(M,i.run(()=>V({store:M,app:r._a,pinia:r,options:l})))}),g&&o&&n.hydrate&&n.hydrate(M.$state,g),u=!0,a=!0,M}function Mu(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,l){const c=Qc();return i=i||(c?ke(_l,null):null),i&&yr(i),i=yl,i._s.has(e)||(s?El(e,t,r,i):Fu(e,r,i)),i._s.get(e)}return o.$id=e,o}function Dh(e){const t=Z(e),n={};for(const r in t){const s=t[r];s.effect?n[r]=Me({get:()=>e[r],set(o){e[r]=o}}):(ce(s)||it(s))&&(n[r]=Vc(e,r))}return n}const Uu="modulepreload",ju=function(e){return"/"+e},Ro={},tt=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let c=function(u){return Promise.all(u.map(a=>Promise.resolve(a).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=c(n.map(u=>{if(u=ju(u),u in Ro)return;Ro[u]=!0;const a=u.endsWith(".css"),f=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const p=document.createElement("link");if(p.rel=a?"stylesheet":Uu,a||(p.as="script"),p.crossOrigin="",p.href=u,l&&p.setAttribute("nonce",l),document.head.appendChild(p),a)return new Promise((m,g)=>{p.addEventListener("load",m),p.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})};const qt=typeof document<"u";function wl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Bu(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&wl(e.default)}const te=Object.assign;function Mr(e,t){const n={};for(const r in t){const s=t[r];n[r]=We(s)?s.map(e):e(s)}return n}const yn=()=>{},We=Array.isArray;function Ao(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const Sl=/#/g,Hu=/&/g,ku=/\//g,Vu=/=/g,qu=/\?/g,Rl=/\+/g,$u=/%5B/g,Ku=/%5D/g,Al=/%5E/g,Wu=/%60/g,vl=/%7B/g,Gu=/%7C/g,Ol=/%7D/g,zu=/%20/g;function Ns(e){return e==null?"":encodeURI(""+e).replace(Gu,"|").replace($u,"[").replace(Ku,"]")}function Ju(e){return Ns(e).replace(vl,"{").replace(Ol,"}").replace(Al,"^")}function ns(e){return Ns(e).replace(Rl,"%2B").replace(zu,"+").replace(Sl,"%23").replace(Hu,"%26").replace(Wu,"`").replace(vl,"{").replace(Ol,"}").replace(Al,"^")}function Xu(e){return ns(e).replace(Vu,"%3D")}function Qu(e){return Ns(e).replace(Sl,"%23").replace(qu,"%3F")}function Yu(e){return Qu(e).replace(ku,"%2F")}function vn(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Zu=/\/$/,ef=e=>e.replace(Zu,"");function Ur(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return c=l>=0&&c>l?-1:c,c>=0&&(r=t.slice(0,c),o=t.slice(c,l>0?l:t.length),s=e(o.slice(1))),l>=0&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=sf(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:vn(i)}}function tf(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function vo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function nf(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&Xt(t.matched[r],n.matched[s])&&xl(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Xt(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function xl(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!rf(e[n],t[n]))return!1;return!0}function rf(e,t){return We(e)?Oo(e,t):We(t)?Oo(t,e):e?.valueOf()===t?.valueOf()}function Oo(e,t){return We(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function sf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const bt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let rs=(function(e){return e.pop="pop",e.push="push",e})({}),jr=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function of(e){if(!e)if(qt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),ef(e)}const lf=/^[^#]+#/;function cf(e,t){return e.replace(lf,"#")+t}function af(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const _r=()=>({left:window.scrollX,top:window.scrollY});function uf(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=af(s,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 xo(e,t){return(history.state?history.state.position-t:-1)+e}const ss=new Map;function ff(e,t){ss.set(e,t)}function df(e){const t=ss.get(e);return ss.delete(e),t}function hf(e){return typeof e=="string"||e&&typeof e=="object"}function Tl(e){return typeof e=="string"||typeof e=="symbol"}let ae=(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 Cl=Symbol("");ae.MATCHER_NOT_FOUND+"",ae.NAVIGATION_GUARD_REDIRECT+"",ae.NAVIGATION_ABORTED+"",ae.NAVIGATION_CANCELLED+"",ae.NAVIGATION_DUPLICATED+"";function Qt(e,t){return te(new Error,{type:e,[Cl]:!0},t)}function at(e,t){return e instanceof Error&&Cl in e&&(t==null||!!(e.type&t))}const pf=["params","query","hash"];function mf(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of pf)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function gf(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&ns(s)):[r&&ns(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function yf(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=We(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const _f=Symbol(""),Co=Symbol(""),br=Symbol(""),Is=Symbol(""),os=Symbol("");function sn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function At(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,c)=>{const u=p=>{p===!1?c(Qt(ae.NAVIGATION_ABORTED,{from:n,to:t})):p instanceof Error?c(p):hf(p)?c(Qt(ae.NAVIGATION_GUARD_REDIRECT,{from:t,to:p})):(i&&r.enterCallbacks[s]===i&&typeof p=="function"&&i.push(p),l())},a=o(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(a);e.length<3&&(f=f.then(u)),f.catch(p=>c(p))})}function Br(e,t,n,r,s=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(wl(c)){const u=(c.__vccOpts||c)[t];u&&o.push(At(u,n,r,i,l,s))}else{let u=c();o.push(()=>u.then(a=>{if(!a)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=Bu(a)?a.default:a;i.mods[l]=a,i.components[l]=f;const p=(f.__vccOpts||f)[t];return p&&At(p,n,r,i,l,s)()}))}}return o}function bf(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;iXt(u,l))?r.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(u=>Xt(u,c))||s.push(c))}return[n,r,s]}let Ef=()=>location.protocol+"//"+location.host;function Pl(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(i);return l[0]!=="/"&&(l="/"+l),vo(l,"")}return vo(n,e)+r+s}function wf(e,t,n,r){let s=[],o=[],i=null;const l=({state:p})=>{const m=Pl(e,location),g=n.value,b=t.value;let E=0;if(p){if(n.value=m,t.value=p,i&&i===g){i=null;return}E=b?p.position-b.position:0}else r(m);s.forEach(O=>{O(n.value,g,{delta:E,type:rs.pop,direction:E?E>0?jr.forward:jr.back:jr.unknown})})};function c(){i=n.value}function u(p){s.push(p);const m=()=>{const g=s.indexOf(p);g>-1&&s.splice(g,1)};return o.push(m),m}function a(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(te({},p.state,{scroll:_r()}),"")}}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,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?_r():null}}function Sf(e){const{history:t,location:n}=window,r={value:Pl(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.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:Ef()+e+c;try{t[a?"replaceState":"pushState"](u,"",p),s.value=u}catch(m){console.error(m),n[a?"replace":"assign"](p)}}function i(c,u){o(c,te({},t.state,Po(s.value.back,c,s.value.forward,!0),u,{position:s.value.position}),!0),r.value=c}function l(c,u){const a=te({},s.value,t.state,{forward:c,scroll:_r()});o(a.current,a,!0),o(c,te({},Po(r.value,c,null),{position:a.position+1},u),!1),r.value=c}return{location:r,state:s,push:l,replace:i}}function Rf(e){e=of(e);const t=Sf(e),n=wf(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=te({location:"",base:e,go:r,createHref:cf.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function Af(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),Rf(e)}let Nt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var ge=(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})(ge||{});const vf={type:Nt.Static,value:""},Of=/[a-zA-Z0-9_]/;function xf(e){if(!e)return[[]];if(e==="/")return[[vf]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${u}": ${m}`)}let n=ge.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,c,u="",a="";function f(){u&&(n===ge.Static?o.push({type:Nt.Static,value:u}):n===ge.Param||n===ge.ParamRegExp||n===ge.ParamRegExpEnd?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:Nt.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]===Oe.Static+Oe.Segment?1:-1:0}function Nl(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const If={strict:!1,end:!0,sensitive:!1};function Df(e,t,n){const r=Pf(xf(e.path),n),s=te(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function Lf(e,t){const n=[],r=new Map;t=Ao(If,t);function s(f){return r.get(f)}function o(f,p,m){const g=!m,b=Lo(f);b.aliasOf=m&&m.record;const E=Ao(t,f),O=[b];if("alias"in f){const P=typeof f.alias=="string"?[f.alias]:f.alias;for(const M of P)O.push(Lo(te({},b,{components:m?m.record.components:b.components,path:M,aliasOf:m?m.record:b})))}let C,N;for(const P of O){const{path:M}=P;if(p&&M[0]!=="/"){const X=p.record.path,k=X[X.length-1]==="/"?"":"/";P.path=p.record.path+(M&&k+M)}if(C=Df(P,p,E),m?m.alias.push(C):(N=N||C,N!==C&&N.alias.push(C),g&&f.name&&!Fo(C)&&i(f.name)),Il(C)&&c(C),b.children){const X=b.children;for(let k=0;k{i(N)}:yn}function i(f){if(Tl(f)){const p=r.get(f);p&&(r.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&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function c(f){const p=Uf(f,n);n.splice(p,0,f),f.record.name&&!Fo(f)&&r.set(f.record.name,f)}function u(f,p){let m,g={},b,E;if("name"in f&&f.name){if(m=r.get(f.name),!m)throw Qt(ae.MATCHER_NOT_FOUND,{location:f});E=m.record.name,g=te(Do(p.params,m.keys.filter(N=>!N.optional).concat(m.parent?m.parent.keys.filter(N=>N.optional):[]).map(N=>N.name)),f.params&&Do(f.params,m.keys.map(N=>N.name))),b=m.stringify(g)}else if(f.path!=null)b=f.path,m=n.find(N=>N.re.test(b)),m&&(g=m.parse(b),E=m.record.name);else{if(m=p.name?r.get(p.name):n.find(N=>N.re.test(p.path)),!m)throw Qt(ae.MATCHER_NOT_FOUND,{location:f,currentLocation:p});E=m.record.name,g=te({},p.params,f.params),b=m.stringify(g)}const O=[];let C=m;for(;C;)O.unshift(C.record),C=C.parent;return{name:E,path:b,params:g,matched:O,meta:Mf(O)}}e.forEach(f=>o(f));function a(){n.length=0,r.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:a,getRoutes:l,getRecordMatcher:s}}function Do(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function Lo(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Ff(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 Ff(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function Fo(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Mf(e){return e.reduce((t,n)=>te(t,n.meta),{})}function Uf(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;Nl(e,t[o])<0?r=o:n=o+1}const s=jf(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function jf(e){let t=e;for(;t=t.parent;)if(Il(t)&&Nl(e,t)===0)return t}function Il({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Mo(e){const t=ke(br),n=ke(Is),r=Me(()=>{const c=Ot(e.to);return t.resolve(c)}),s=Me(()=>{const{matched:c}=r.value,{length:u}=c,a=c[u-1],f=n.matched;if(!a||!f.length)return-1;const p=f.findIndex(Xt.bind(null,a));if(p>-1)return p;const m=Uo(c[u-2]);return u>1&&Uo(a)===m&&f[f.length-1].path!==m?f.findIndex(Xt.bind(null,c[u-2])):p}),o=Me(()=>s.value>-1&&qf(n.params,r.value.params)),i=Me(()=>s.value>-1&&s.value===n.matched.length-1&&xl(n.params,r.value.params));function l(c={}){if(Vf(c)){const u=t[Ot(e.replace)?"replace":"push"](Ot(e.to)).catch(yn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Me(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function Bf(e){return e.length===1?e[0]:e}const Hf=Os({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=On(Mo(e)),{options:r}=ke(br),s=Me(()=>({[jo(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[jo(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&Bf(t.default(n));return e.custom?o:ml("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),kf=Hf;function Vf(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 qf(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!We(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function Uo(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const jo=(e,t,n)=>e??t??n,$f=Os({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=ke(os),s=Me(()=>e.route||r.value),o=ke(Co,0),i=Me(()=>{let u=Ot(o);const{matched:a}=s.value;let f;for(;(f=a[u])&&!f.components;)u++;return u}),l=Me(()=>s.value.matched[i.value]);Hn(Co,Me(()=>i.value+1)),Hn(_f,l),Hn(os,s);const c=Lt();return fn(()=>[c.value,l.value,e.name],([u,a,f],[p,m,g])=>{a&&(a.instances[f]=u,m&&m!==a&&u&&u===p&&(a.leaveGuards.size||(a.leaveGuards=m.leaveGuards),a.updateGuards.size||(a.updateGuards=m.updateGuards))),u&&a&&(!m||!Xt(a,m)||!p)&&(a.enterCallbacks[f]||[]).forEach(b=>b(u))},{flush:"post"}),()=>{const u=s.value,a=e.name,f=l.value,p=f&&f.components[a];if(!p)return Bo(n.default,{Component:p,route:u});const m=f.props[a],g=m?m===!0?u.params:typeof m=="function"?m(u):m:null,E=ml(p,te({},g,t,{onVnodeUnmounted:O=>{O.component.isUnmounted&&(f.instances[a]=null)},ref:c}));return Bo(n.default,{Component:E,route:u})||E}}});function Bo(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Dl=$f;function Kf(e){const t=Lf(e.routes,e),n=e.parseQuery||gf,r=e.stringifyQuery||To,s=e.history,o=sn(),i=sn(),l=sn(),c=Mc(bt);let u=bt;qt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const a=Mr.bind(null,R=>""+R),f=Mr.bind(null,Yu),p=Mr.bind(null,vn);function m(R,F){let D,j;return Tl(R)?(D=t.getRecordMatcher(R),j=F):j=R,t.addRoute(j,D)}function g(R){const F=t.getRecordMatcher(R);F&&t.removeRoute(F)}function b(){return t.getRoutes().map(R=>R.record)}function E(R){return!!t.getRecordMatcher(R)}function O(R,F){if(F=te({},F||c.value),typeof R=="string"){const y=Ur(n,R,F.path),w=t.resolve({path:y.path},F),A=s.createHref(y.fullPath);return te(y,w,{params:p(w.params),hash:vn(y.hash),redirectedFrom:void 0,href:A})}let D;if(R.path!=null)D=te({},R,{path:Ur(n,R.path,F.path).path});else{const y=te({},R.params);for(const w in y)y[w]==null&&delete y[w];D=te({},R,{params:f(y)}),F.params=f(F.params)}const j=t.resolve(D,F),Q=R.hash||"";j.params=a(p(j.params));const d=tf(r,te({},R,{hash:Ju(Q),path:j.path})),h=s.createHref(d);return te({fullPath:d,hash:Q,query:r===To?yf(R.query):R.query||{}},j,{redirectedFrom:void 0,href:h})}function C(R){return typeof R=="string"?Ur(n,R,c.value.path):te({},R)}function N(R,F){if(u!==R)return Qt(ae.NAVIGATION_CANCELLED,{from:F,to:R})}function P(R){return k(R)}function M(R){return P(te(C(R),{replace:!0}))}function X(R,F){const D=R.matched[R.matched.length-1];if(D&&D.redirect){const{redirect:j}=D;let Q=typeof j=="function"?j(R,F):j;return typeof Q=="string"&&(Q=Q.includes("?")||Q.includes("#")?Q=C(Q):{path:Q},Q.params={}),te({query:R.query,hash:R.hash,params:Q.path!=null?{}:R.params},Q)}}function k(R,F){const D=u=O(R),j=c.value,Q=R.state,d=R.force,h=R.replace===!0,y=X(D,j);if(y)return k(te(C(y),{state:typeof y=="object"?te({},Q,y.state):Q,force:d,replace:h}),F||D);const w=D;w.redirectedFrom=F;let A;return!d&&nf(r,j,D)&&(A=Qt(ae.NAVIGATION_DUPLICATED,{to:w,from:j}),me(j,j,!0,!1)),(A?Promise.resolve(A):ee(w,j)).catch(S=>at(S)?at(S,ae.NAVIGATION_GUARD_REDIRECT)?S:ze(S):z(S,w,j)).then(S=>{if(S){if(at(S,ae.NAVIGATION_GUARD_REDIRECT))return k(te({replace:h},C(S.to),{state:typeof S.to=="object"?te({},Q,S.to.state):Q,force:d}),F||w)}else S=ye(w,j,!0,h,Q);return ue(w,j,S),S})}function V(R,F){const D=N(R,F);return D?Promise.reject(D):Promise.resolve()}function U(R){const F=qe.values().next().value;return F&&typeof F.runWithContext=="function"?F.runWithContext(R):R()}function ee(R,F){let D;const[j,Q,d]=bf(R,F);D=Br(j.reverse(),"beforeRouteLeave",R,F);for(const y of j)y.leaveGuards.forEach(w=>{D.push(At(w,R,F))});const h=V.bind(null,R,F);return D.push(h),He(D).then(()=>{D=[];for(const y of o.list())D.push(At(y,R,F));return D.push(h),He(D)}).then(()=>{D=Br(Q,"beforeRouteUpdate",R,F);for(const y of Q)y.updateGuards.forEach(w=>{D.push(At(w,R,F))});return D.push(h),He(D)}).then(()=>{D=[];for(const y of d)if(y.beforeEnter)if(We(y.beforeEnter))for(const w of y.beforeEnter)D.push(At(w,R,F));else D.push(At(y.beforeEnter,R,F));return D.push(h),He(D)}).then(()=>(R.matched.forEach(y=>y.enterCallbacks={}),D=Br(d,"beforeRouteEnter",R,F,U),D.push(h),He(D))).then(()=>{D=[];for(const y of i.list())D.push(At(y,R,F));return D.push(h),He(D)}).catch(y=>at(y,ae.NAVIGATION_CANCELLED)?y:Promise.reject(y))}function ue(R,F,D){l.list().forEach(j=>U(()=>j(R,F,D)))}function ye(R,F,D,j,Q){const d=N(R,F);if(d)return d;const h=F===bt,y=qt?history.state:{};D&&(j||h?s.replace(R.fullPath,te({scroll:h&&y&&y.scroll},Q)):s.push(R.fullPath,Q)),c.value=R,me(R,F,D,h),ze()}let pe;function Re(){pe||(pe=s.listen((R,F,D)=>{if(!Xe.listening)return;const j=O(R),Q=X(j,Xe.currentRoute.value);if(Q){k(te(Q,{replace:!0,force:!0}),j).catch(yn);return}u=j;const d=c.value;qt&&ff(xo(d.fullPath,D.delta),_r()),ee(j,d).catch(h=>at(h,ae.NAVIGATION_ABORTED|ae.NAVIGATION_CANCELLED)?h:at(h,ae.NAVIGATION_GUARD_REDIRECT)?(k(te(C(h.to),{force:!0}),j).then(y=>{at(y,ae.NAVIGATION_ABORTED|ae.NAVIGATION_DUPLICATED)&&!D.delta&&D.type===rs.pop&&s.go(-1,!1)}).catch(yn),Promise.reject()):(D.delta&&s.go(-D.delta,!1),z(h,j,d))).then(h=>{h=h||ye(j,d,!1),h&&(D.delta&&!at(h,ae.NAVIGATION_CANCELLED)?s.go(-D.delta,!1):D.type===rs.pop&&at(h,ae.NAVIGATION_ABORTED|ae.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),ue(j,d,h)}).catch(yn)}))}let Ve=sn(),J=sn(),K;function z(R,F,D){ze(R);const j=J.list();return j.length?j.forEach(Q=>Q(R,F,D)):console.error(R),Promise.reject(R)}function Be(){return K&&c.value!==bt?Promise.resolve():new Promise((R,F)=>{Ve.add([R,F])})}function ze(R){return K||(K=!R,Re(),Ve.list().forEach(([F,D])=>R?D(R):F()),Ve.reset()),R}function me(R,F,D,j){const{scrollBehavior:Q}=e;if(!qt||!Q)return Promise.resolve();const d=!D&&df(xo(R.fullPath,0))||(j||!D)&&history.state&&history.state.scroll||null;return Rs().then(()=>Q(R,F,d)).then(h=>h&&uf(h)).catch(h=>z(h,R,F))}const fe=R=>s.go(R);let Je;const qe=new Set,Xe={currentRoute:c,listening:!0,addRoute:m,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:E,getRoutes:b,resolve:O,options:e,push:P,replace:M,go:fe,back:()=>fe(-1),forward:()=>fe(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:J.add,isReady:Be,install(R){R.component("RouterLink",kf),R.component("RouterView",Dl),R.config.globalProperties.$router=Xe,Object.defineProperty(R.config.globalProperties,"$route",{enumerable:!0,get:()=>Ot(c)}),qt&&!Je&&c.value===bt&&(Je=!0,P(s.location).catch(j=>{}));const F={};for(const j in bt)Object.defineProperty(F,j,{get:()=>c.value[j],enumerable:!0});R.provide(br,Xe),R.provide(Is,Ci(F)),R.provide(os,c);const D=R.unmount;qe.add(R),R.unmount=function(){qe.delete(R),qe.size<1&&(u=bt,pe&&pe(),pe=null,c.value=bt,Je=!1,K=!1),D()}}};function He(R){return R.reduce((F,D)=>F.then(()=>U(D)),Promise.resolve())}return Xe}function Lh(){return ke(br)}function Fh(e){return ke(Is)}function Ll(e,t){return function(){return e.apply(t,arguments)}}const{toString:Wf}=Object.prototype,{getPrototypeOf:Ds}=Object,{iterator:Er,toStringTag:Fl}=Symbol,wr=(e=>t=>{const n=Wf.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ge=e=>(e=e.toLowerCase(),t=>wr(t)===e),Sr=e=>t=>typeof t===e,{isArray:Zt}=Array,Yt=Sr("undefined");function Cn(e){return e!==null&&!Yt(e)&&e.constructor!==null&&!Yt(e.constructor)&&Ie(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Ml=Ge("ArrayBuffer");function Gf(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Ml(e.buffer),t}const zf=Sr("string"),Ie=Sr("function"),Ul=Sr("number"),Pn=e=>e!==null&&typeof e=="object",Jf=e=>e===!0||e===!1,Kn=e=>{if(wr(e)!=="object")return!1;const t=Ds(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Fl in e)&&!(Er in e)},Xf=e=>{if(!Pn(e)||Cn(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},Qf=Ge("Date"),Yf=Ge("File"),Zf=Ge("Blob"),ed=Ge("FileList"),td=e=>Pn(e)&&Ie(e.pipe),nd=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Ie(e.append)&&((t=wr(e))==="formdata"||t==="object"&&Ie(e.toString)&&e.toString()==="[object FormData]"))},rd=Ge("URLSearchParams"),[sd,od,id,ld]=["ReadableStream","Request","Response","Headers"].map(Ge),cd=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Nn(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),Zt(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const It=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Bl=e=>!Yt(e)&&e!==It;function is(){const{caseless:e,skipUndefined:t}=Bl(this)&&this||{},n={},r=(s,o)=>{const i=e&&jl(n,o)||o;Kn(n[i])&&Kn(s)?n[i]=is(n[i],s):Kn(s)?n[i]=is({},s):Zt(s)?n[i]=s.slice():(!t||!Yt(s))&&(n[i]=s)};for(let s=0,o=arguments.length;s(Nn(t,(s,o)=>{n&&Ie(s)?e[o]=Ll(s,n):e[o]=s},{allOwnKeys:r}),e),ud=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),fd=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},dd=(e,t,n,r)=>{let s,o,i;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&Ds(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},hd=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},pd=e=>{if(!e)return null;if(Zt(e))return e;let t=e.length;if(!Ul(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},md=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Ds(Uint8Array)),gd=(e,t)=>{const r=(e&&e[Er]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},yd=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},_d=Ge("HTMLFormElement"),bd=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),Ho=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Ed=Ge("RegExp"),Hl=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Nn(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},wd=e=>{Hl(e,(t,n)=>{if(Ie(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Ie(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Sd=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return Zt(e)?r(e):r(String(e).split(t)),n},Rd=()=>{},Ad=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function vd(e){return!!(e&&Ie(e.append)&&e[Fl]==="FormData"&&e[Er])}const Od=e=>{const t=new Array(10),n=(r,s)=>{if(Pn(r)){if(t.indexOf(r)>=0)return;if(Cn(r))return r;if(!("toJSON"in r)){t[s]=r;const o=Zt(r)?[]:{};return Nn(r,(i,l)=>{const c=n(i,s+1);!Yt(c)&&(o[l]=c)}),t[s]=void 0,o}}return r};return n(e,0)},xd=Ge("AsyncFunction"),Td=e=>e&&(Pn(e)||Ie(e))&&Ie(e.then)&&Ie(e.catch),kl=((e,t)=>e?setImmediate:t?((n,r)=>(It.addEventListener("message",({source:s,data:o})=>{s===It&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),It.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Ie(It.postMessage)),Cd=typeof queueMicrotask<"u"?queueMicrotask.bind(It):typeof process<"u"&&process.nextTick||kl,Pd=e=>e!=null&&Ie(e[Er]),_={isArray:Zt,isArrayBuffer:Ml,isBuffer:Cn,isFormData:nd,isArrayBufferView:Gf,isString:zf,isNumber:Ul,isBoolean:Jf,isObject:Pn,isPlainObject:Kn,isEmptyObject:Xf,isReadableStream:sd,isRequest:od,isResponse:id,isHeaders:ld,isUndefined:Yt,isDate:Qf,isFile:Yf,isBlob:Zf,isRegExp:Ed,isFunction:Ie,isStream:td,isURLSearchParams:rd,isTypedArray:md,isFileList:ed,forEach:Nn,merge:is,extend:ad,trim:cd,stripBOM:ud,inherits:fd,toFlatObject:dd,kindOf:wr,kindOfTest:Ge,endsWith:hd,toArray:pd,forEachEntry:gd,matchAll:yd,isHTMLForm:_d,hasOwnProperty:Ho,hasOwnProp:Ho,reduceDescriptors:Hl,freezeMethods:wd,toObjectSet:Sd,toCamelCase:bd,noop:Rd,toFiniteNumber:Ad,findKey:jl,global:It,isContextDefined:Bl,isSpecCompliantForm:vd,toJSONObject:Od,isAsyncFn:xd,isThenable:Td,setImmediate:kl,asap:Cd,isIterable:Pd};function G(e,t,n,r,s){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),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}_.inherits(G,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:_.toJSONObject(this.config),code:this.code,status:this.status}}});const Vl=G.prototype,ql={};["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=>{ql[e]={value:e}});Object.defineProperties(G,ql);Object.defineProperty(Vl,"isAxiosError",{value:!0});G.from=(e,t,n,r,s,o)=>{const i=Object.create(Vl);_.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 G.call(i,l,c,n,r,s),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 Nd=null;function ls(e){return _.isPlainObject(e)||_.isArray(e)}function $l(e){return _.endsWith(e,"[]")?e.slice(0,-2):e}function ko(e,t,n){return e?e.concat(t).map(function(s,o){return s=$l(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function Id(e){return _.isArray(e)&&!e.some(ls)}const Dd=_.toFlatObject(_,{},null,function(t){return/^is[A-Z]/.test(t)});function Rr(e,t,n){if(!_.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=_.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(b,E){return!_.isUndefined(E[b])});const r=n.metaTokens,s=n.visitor||a,o=n.dots,i=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&_.isSpecCompliantForm(t);if(!_.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(_.isDate(g))return g.toISOString();if(_.isBoolean(g))return g.toString();if(!c&&_.isBlob(g))throw new G("Blob is not supported. Use a Buffer instead.");return _.isArrayBuffer(g)||_.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function a(g,b,E){let O=g;if(g&&!E&&typeof g=="object"){if(_.endsWith(b,"{}"))b=r?b:b.slice(0,-2),g=JSON.stringify(g);else if(_.isArray(g)&&Id(g)||(_.isFileList(g)||_.endsWith(b,"[]"))&&(O=_.toArray(g)))return b=$l(b),O.forEach(function(N,P){!(_.isUndefined(N)||N===null)&&t.append(i===!0?ko([b],P,o):i===null?b:b+"[]",u(N))}),!1}return ls(g)?!0:(t.append(ko(E,b,o),u(g)),!1)}const f=[],p=Object.assign(Dd,{defaultVisitor:a,convertValue:u,isVisitable:ls});function m(g,b){if(!_.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+b.join("."));f.push(g),_.forEach(g,function(O,C){(!(_.isUndefined(O)||O===null)&&s.call(t,O,_.isString(C)?C.trim():C,b,p))===!0&&m(O,b?b.concat(C):[C])}),f.pop()}}if(!_.isObject(e))throw new TypeError("data must be an object");return m(e),t}function Vo(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Ls(e,t){this._pairs=[],e&&Rr(e,this,t)}const Kl=Ls.prototype;Kl.append=function(t,n){this._pairs.push([t,n])};Kl.toString=function(t){const n=t?function(r){return t.call(this,r,Vo)}:Vo;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Ld(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Wl(e,t,n){if(!t)return e;const r=n&&n.encode||Ld;_.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=_.isURLSearchParams(t)?t.toString():new Ls(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class qo{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){_.forEach(this.handlers,function(r){r!==null&&t(r)})}}const Gl={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Fd=typeof URLSearchParams<"u"?URLSearchParams:Ls,Md=typeof FormData<"u"?FormData:null,Ud=typeof Blob<"u"?Blob:null,jd={isBrowser:!0,classes:{URLSearchParams:Fd,FormData:Md,Blob:Ud},protocols:["http","https","file","blob","url","data"]},Fs=typeof window<"u"&&typeof document<"u",cs=typeof navigator=="object"&&navigator||void 0,Bd=Fs&&(!cs||["ReactNative","NativeScript","NS"].indexOf(cs.product)<0),Hd=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",kd=Fs&&window.location.href||"http://localhost",Vd=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Fs,hasStandardBrowserEnv:Bd,hasStandardBrowserWebWorkerEnv:Hd,navigator:cs,origin:kd},Symbol.toStringTag,{value:"Module"})),Ee={...Vd,...jd};function qd(e,t){return Rr(e,new Ee.classes.URLSearchParams,{visitor:function(n,r,s,o){return Ee.isNode&&_.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function $d(e){return _.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Kd(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&_.isArray(s)?s.length:i,c?(_.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!l):((!s[i]||!_.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&_.isArray(s[i])&&(s[i]=Kd(s[i])),!l)}if(_.isFormData(e)&&_.isFunction(e.entries)){const n={};return _.forEachEntry(e,(r,s)=>{t($d(r),s,n,0)}),n}return null}function Wd(e,t,n){if(_.isString(e))try{return(t||JSON.parse)(e),_.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const In={transitional:Gl,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=_.isObject(t);if(o&&_.isHTMLForm(t)&&(t=new FormData(t)),_.isFormData(t))return s?JSON.stringify(zl(t)):t;if(_.isArrayBuffer(t)||_.isBuffer(t)||_.isStream(t)||_.isFile(t)||_.isBlob(t)||_.isReadableStream(t))return t;if(_.isArrayBufferView(t))return t.buffer;if(_.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return qd(t,this.formSerializer).toString();if((l=_.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return Rr(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),Wd(t)):t}],transformResponse:[function(t){const n=this.transitional||In.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(_.isResponse(t)||_.isReadableStream(t))return t;if(t&&_.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(i)throw l.name==="SyntaxError"?G.from(l,G.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:Ee.classes.FormData,Blob:Ee.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};_.forEach(["delete","get","head","post","put","patch"],e=>{In.headers[e]={}});const Gd=_.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"]),zd=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&Gd[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},$o=Symbol("internals");function on(e){return e&&String(e).trim().toLowerCase()}function Wn(e){return e===!1||e==null?e:_.isArray(e)?e.map(Wn):String(e)}function Jd(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const Xd=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Hr(e,t,n,r,s){if(_.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!_.isString(t)){if(_.isString(r))return t.indexOf(r)!==-1;if(_.isRegExp(r))return r.test(t)}}function Qd(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Yd(e,t){const n=_.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let De=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(l,c,u){const a=on(c);if(!a)throw new Error("header name must be a non-empty string");const f=_.findKey(s,a);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||c]=Wn(l))}const i=(l,c)=>_.forEach(l,(u,a)=>o(u,a,c));if(_.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(_.isString(t)&&(t=t.trim())&&!Xd(t))i(zd(t),n);else if(_.isObject(t)&&_.isIterable(t)){let l={},c,u;for(const a of t){if(!_.isArray(a))throw TypeError("Object iterator must return a key-value pair");l[u=a[0]]=(c=l[u])?_.isArray(c)?[...c,a[1]]:[c,a[1]]:a[1]}i(l,n)}else t!=null&&o(n,t,r);return this}get(t,n){if(t=on(t),t){const r=_.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return Jd(s);if(_.isFunction(n))return n.call(this,s,r);if(_.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=on(t),t){const r=_.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Hr(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=on(i),i){const l=_.findKey(r,i);l&&(!n||Hr(r,r[l],l,n))&&(delete r[l],s=!0)}}return _.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||Hr(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return _.forEach(this,(s,o)=>{const i=_.findKey(r,o);if(i){n[i]=Wn(s),delete n[o];return}const l=t?Qd(o):String(o).trim();l!==o&&delete n[o],n[l]=Wn(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return _.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&_.isArray(r)?r.join(", "):r)}),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 r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[$o]=this[$o]={accessors:{}}).accessors,s=this.prototype;function o(i){const l=on(i);r[l]||(Yd(s,i),r[l]=!0)}return _.isArray(t)?t.forEach(o):o(t),this}};De.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);_.reduceDescriptors(De.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});_.freezeMethods(De);function kr(e,t){const n=this||In,r=t||n,s=De.from(r.headers);let o=r.data;return _.forEach(e,function(l){o=l.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function Jl(e){return!!(e&&e.__CANCEL__)}function en(e,t,n){G.call(this,e??"canceled",G.ERR_CANCELED,t,n),this.name="CanceledError"}_.inherits(en,G,{__CANCEL__:!0});function Xl(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new G("Request failed with status code "+n.status,[G.ERR_BAD_REQUEST,G.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function Zd(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function eh(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),a=r[o];i||(i=u),n[s]=c,r[s]=u;let f=o,p=0;for(;f!==s;)p+=n[f++],f=f%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i{n=a,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const a=Date.now(),f=a-n;f>=r?i(u,a):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-f)))},()=>s&&i(s)]}const sr=(e,t,n=3)=>{let r=0;const s=eh(50,250);return th(o=>{const i=o.loaded,l=o.lengthComputable?o.total:void 0,c=i-r,u=s(c),a=i<=l;r=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)},Ko=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Wo=e=>(...t)=>_.asap(()=>e(...t)),nh=Ee.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Ee.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Ee.origin),Ee.navigator&&/(msie|trident)/i.test(Ee.navigator.userAgent)):()=>!0,rh=Ee.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];_.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),_.isString(r)&&l.push(`path=${r}`),_.isString(s)&&l.push(`domain=${s}`),o===!0&&l.push("secure"),_.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 sh(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function oh(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Ql(e,t,n){let r=!sh(t);return e&&(r||n==!1)?oh(e,t):t}const Go=e=>e instanceof De?{...e}:e;function Ut(e,t){t=t||{};const n={};function r(u,a,f,p){return _.isPlainObject(u)&&_.isPlainObject(a)?_.merge.call({caseless:p},u,a):_.isPlainObject(a)?_.merge({},a):_.isArray(a)?a.slice():a}function s(u,a,f,p){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u,f,p)}else return r(u,a,f,p)}function o(u,a){if(!_.isUndefined(a))return r(void 0,a)}function i(u,a){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u)}else return r(void 0,a)}function l(u,a,f){if(f in t)return r(u,a);if(f in e)return r(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)=>s(Go(u),Go(a),f,!0)};return _.forEach(Object.keys({...e,...t}),function(a){const f=c[a]||s,p=f(e[a],t[a],a);_.isUndefined(p)&&f!==l||(n[a]=p)}),n}const Yl=e=>{const t=Ut({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:l}=t;if(t.headers=i=De.from(i),t.url=Wl(Ql(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&i.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),_.isFormData(n)){if(Ee.hasStandardBrowserEnv||Ee.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(_.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(Ee.hasStandardBrowserEnv&&(r&&_.isFunction(r)&&(r=r(t)),r||r!==!1&&nh(t.url))){const c=s&&o&&rh.read(o);c&&i.set(s,c)}return t},ih=typeof XMLHttpRequest<"u",lh=ih&&function(e){return new Promise(function(n,r){const s=Yl(e);let o=s.data;const i=De.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,a,f,p,m,g;function b(){m&&m(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(a),s.signal&&s.signal.removeEventListener("abort",a)}let E=new XMLHttpRequest;E.open(s.method.toUpperCase(),s.url,!0),E.timeout=s.timeout;function O(){if(!E)return;const N=De.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),M={data:!l||l==="text"||l==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:N,config:e,request:E};Xl(function(k){n(k),b()},function(k){r(k),b()},M),E=null}"onloadend"in E?E.onloadend=O:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.indexOf("file:")===0)||setTimeout(O)},E.onabort=function(){E&&(r(new G("Request aborted",G.ECONNABORTED,e,E)),E=null)},E.onerror=function(P){const M=P&&P.message?P.message:"Network Error",X=new G(M,G.ERR_NETWORK,e,E);X.event=P||null,r(X),E=null},E.ontimeout=function(){let P=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const M=s.transitional||Gl;s.timeoutErrorMessage&&(P=s.timeoutErrorMessage),r(new G(P,M.clarifyTimeoutError?G.ETIMEDOUT:G.ECONNABORTED,e,E)),E=null},o===void 0&&i.setContentType(null),"setRequestHeader"in E&&_.forEach(i.toJSON(),function(P,M){E.setRequestHeader(M,P)}),_.isUndefined(s.withCredentials)||(E.withCredentials=!!s.withCredentials),l&&l!=="json"&&(E.responseType=s.responseType),u&&([p,g]=sr(u,!0),E.addEventListener("progress",p)),c&&E.upload&&([f,m]=sr(c),E.upload.addEventListener("progress",f),E.upload.addEventListener("loadend",m)),(s.cancelToken||s.signal)&&(a=N=>{E&&(r(!N||N.type?new en(null,e,E):N),E.abort(),E=null)},s.cancelToken&&s.cancelToken.subscribe(a),s.signal&&(s.signal.aborted?a():s.signal.addEventListener("abort",a)));const C=Zd(s.url);if(C&&Ee.protocols.indexOf(C)===-1){r(new G("Unsupported protocol "+C+":",G.ERR_BAD_REQUEST,e));return}E.send(o||null)})},ch=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,l();const a=u instanceof Error?u:this.reason;r.abort(a instanceof G?a:new en(a instanceof Error?a.message:a))}};let i=t&&setTimeout(()=>{i=null,o(new G(`timeout ${t} of ms exceeded`,G.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}=r;return c.unsubscribe=()=>_.asap(l),c}},ah=function*(e,t){let n=e.byteLength;if(n{const s=uh(e,t);let o=0,i,l=c=>{i||(i=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:a}=await s.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),s.return()}},{highWaterMark:2})},Jo=64*1024,{isFunction:Un}=_,dh=(({Request:e,Response:t})=>({Request:e,Response:t}))(_.global),{ReadableStream:Xo,TextEncoder:Qo}=_.global,Yo=(e,...t)=>{try{return!!e(...t)}catch{return!1}},hh=e=>{e=_.merge.call({skipUndefined:!0},dh,e);const{fetch:t,Request:n,Response:r}=e,s=t?Un(t):typeof fetch=="function",o=Un(n),i=Un(r);if(!s)return!1;const l=s&&Un(Xo),c=s&&(typeof Qo=="function"?(g=>b=>g.encode(b))(new Qo):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=o&&l&&Yo(()=>{let g=!1;const b=new n(Ee.origin,{body:new Xo,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!b}),a=i&&l&&Yo(()=>_.isReadableStream(new r("").body)),f={stream:a&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(b,E)=>{let O=b&&b[g];if(O)return O.call(b);throw new G(`Response type '${g}' is not supported`,G.ERR_NOT_SUPPORT,E)})});const p=async g=>{if(g==null)return 0;if(_.isBlob(g))return g.size;if(_.isSpecCompliantForm(g))return(await new n(Ee.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(_.isArrayBufferView(g)||_.isArrayBuffer(g))return g.byteLength;if(_.isURLSearchParams(g)&&(g=g+""),_.isString(g))return(await c(g)).byteLength},m=async(g,b)=>{const E=_.toFiniteNumber(g.getContentLength());return E??p(b)};return async g=>{let{url:b,method:E,data:O,signal:C,cancelToken:N,timeout:P,onDownloadProgress:M,onUploadProgress:X,responseType:k,headers:V,withCredentials:U="same-origin",fetchOptions:ee}=Yl(g),ue=t||fetch;k=k?(k+"").toLowerCase():"text";let ye=ch([C,N&&N.toAbortSignal()],P),pe=null;const Re=ye&&ye.unsubscribe&&(()=>{ye.unsubscribe()});let Ve;try{if(X&&u&&E!=="get"&&E!=="head"&&(Ve=await m(V,O))!==0){let me=new n(b,{method:"POST",body:O,duplex:"half"}),fe;if(_.isFormData(O)&&(fe=me.headers.get("content-type"))&&V.setContentType(fe),me.body){const[Je,qe]=Ko(Ve,sr(Wo(X)));O=zo(me.body,Jo,Je,qe)}}_.isString(U)||(U=U?"include":"omit");const J=o&&"credentials"in n.prototype,K={...ee,signal:ye,method:E.toUpperCase(),headers:V.normalize().toJSON(),body:O,duplex:"half",credentials:J?U:void 0};pe=o&&new n(b,K);let z=await(o?ue(pe,ee):ue(b,K));const Be=a&&(k==="stream"||k==="response");if(a&&(M||Be&&Re)){const me={};["status","statusText","headers"].forEach(Xe=>{me[Xe]=z[Xe]});const fe=_.toFiniteNumber(z.headers.get("content-length")),[Je,qe]=M&&Ko(fe,sr(Wo(M),!0))||[];z=new r(zo(z.body,Jo,Je,()=>{qe&&qe(),Re&&Re()}),me)}k=k||"text";let ze=await f[_.findKey(f,k)||"text"](z,g);return!Be&&Re&&Re(),await new Promise((me,fe)=>{Xl(me,fe,{data:ze,headers:De.from(z.headers),status:z.status,statusText:z.statusText,config:g,request:pe})})}catch(J){throw Re&&Re(),J&&J.name==="TypeError"&&/Load failed|fetch/i.test(J.message)?Object.assign(new G("Network Error",G.ERR_NETWORK,g,pe),{cause:J.cause||J}):G.from(J,J&&J.code,g,pe)}}},ph=new Map,Zl=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,l=i,c,u,a=ph;for(;l--;)c=o[l],u=a.get(c),u===void 0&&a.set(c,u=l?new Map:hh(t)),a=u;return u};Zl();const Ms={http:Nd,xhr:lh,fetch:{get:Zl}};_.forEach(Ms,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Zo=e=>`- ${e}`,mh=e=>_.isFunction(e)||e===null||e===!1;function gh(e,t){e=_.isArray(e)?e:[e];const{length:n}=e;let r,s;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(Zo).join(` +`):" "+Zo(i[0]):"as no adapter specified";throw new G("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const ec={getAdapter:gh,adapters:Ms};function Vr(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new en(null,e)}function ei(e){return Vr(e),e.headers=De.from(e.headers),e.data=kr.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),ec.getAdapter(e.adapter||In.adapter,e)(e).then(function(r){return Vr(e),r.data=kr.call(e,e.transformResponse,r),r.headers=De.from(r.headers),r},function(r){return Jl(r)||(Vr(e),r&&r.response&&(r.response.data=kr.call(e,e.transformResponse,r.response),r.response.headers=De.from(r.response.headers))),Promise.reject(r)})}const tc="1.13.2",Ar={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Ar[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const ti={};Ar.transitional=function(t,n,r){function s(o,i){return"[Axios v"+tc+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,l)=>{if(t===!1)throw new G(s(i," has been removed"+(n?" in "+n:"")),G.ERR_DEPRECATED);return n&&!ti[i]&&(ti[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,l):!0}};Ar.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function yh(e,t,n){if(typeof e!="object")throw new G("options must be an object",G.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const l=e[o],c=l===void 0||i(l,o,e);if(c!==!0)throw new G("option "+o+" must be "+c,G.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new G("Unknown option "+o,G.ERR_BAD_OPTION)}}const Gn={assertOptions:yh,validators:Ar},nt=Gn.validators;let Mt=class{constructor(t){this.defaults=t||{},this.interceptors={request:new qo,response:new qo}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Ut(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&Gn.assertOptions(r,{silentJSONParsing:nt.transitional(nt.boolean),forcedJSONParsing:nt.transitional(nt.boolean),clarifyTimeoutError:nt.transitional(nt.boolean)},!1),s!=null&&(_.isFunction(s)?n.paramsSerializer={serialize:s}:Gn.assertOptions(s,{encode:nt.function,serialize:nt.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Gn.assertOptions(n,{baseUrl:nt.spelling("baseURL"),withXsrfToken:nt.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&_.merge(o.common,o[n.method]);o&&_.forEach(["delete","get","head","post","put","patch","common"],g=>{delete o[g]}),n.headers=De.concat(i,o);const l=[];let c=!0;this.interceptors.request.forEach(function(b){typeof b.runWhen=="function"&&b.runWhen(n)===!1||(c=c&&b.synchronous,l.unshift(b.fulfilled,b.rejected))});const u=[];this.interceptors.response.forEach(function(b){u.push(b.fulfilled,b.rejected)});let a,f=0,p;if(!c){const g=[ei.bind(this),void 0];for(g.unshift(...l),g.push(...u),p=g.length,a=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(l=>{r.subscribe(l),o=l}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,l){r.reason||(r.reason=new en(o,i,l),n(r.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=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new nc(function(s){t=s}),cancel:t}}};function bh(e){return function(n){return e.apply(null,n)}}function Eh(e){return _.isObject(e)&&e.isAxiosError===!0}const as={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(as).forEach(([e,t])=>{as[t]=e});function rc(e){const t=new Mt(e),n=Ll(Mt.prototype.request,t);return _.extend(n,Mt.prototype,t,{allOwnKeys:!0}),_.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return rc(Ut(e,s))},n}const he=rc(In);he.Axios=Mt;he.CanceledError=en;he.CancelToken=_h;he.isCancel=Jl;he.VERSION=tc;he.toFormData=Rr;he.AxiosError=G;he.Cancel=he.CanceledError;he.all=function(t){return Promise.all(t)};he.spread=bh;he.isAxiosError=Eh;he.mergeConfig=Ut;he.AxiosHeaders=De;he.formToJSON=e=>zl(_.isHTMLForm(e)?new FormData(e):e);he.getAdapter=ec.getAdapter;he.HttpStatusCode=as;he.default=he;const{Axios:jh,AxiosError:Bh,CanceledError:Hh,isCancel:kh,CancelToken:Vh,VERSION:qh,all:$h,Cancel:Kh,isAxiosError:Wh,spread:Gh,toFormData:zh,AxiosHeaders:Jh,HttpStatusCode:Xh,formToJSON:Qh,getAdapter:Yh,mergeConfig:Zh}=he,_n=he.create({baseURL:"",timeout:3e4,withCredentials:!0});_n.interceptors.request.use(e=>e,e=>Promise.reject(e));_n.interceptors.response.use(e=>e.data,e=>{e.response?.status===401&&(window.location.hash="#/login");const t=e.response?.data?e.response.data.detail||e.response.data.message:e.message;return Promise.reject(new Error(t||"请求失败"))});const jn={login:e=>{const t=new URLSearchParams;return t.append("admin_key",e.password),_n.post("/login",t,{headers:{"Content-Type":"application/x-www-form-urlencoded"}})},logout:()=>_n.post("/logout"),checkAuth:()=>_n.get("/admin/health")},wh=Mu("auth",()=>{const e=Lt(!1),t=Lt(!1),n=Lt(0),r=1e4;let s=null;async function o(c){t.value=!0;try{return await jn.login({password:c}),await jn.checkAuth(),e.value=!0,n.value=Date.now(),!0}catch(u){throw e.value=!1,u}finally{t.value=!1}}async function i(){try{await jn.logout()}finally{e.value=!1,n.value=0}}async function l(){const c=Date.now();if(e.value&&c-n.value(await jn.checkAuth(),e.value=!0,!0))(),await s}catch{return e.value=!1,!1}finally{n.value=Date.now(),s=null}}return{isLoggedIn:e,isLoading:t,login:o,logout:i,checkAuth:l}}),sc=Kf({history:Af("/"),routes:[{path:"/public/uptime",name:"public-uptime",component:()=>tt(()=>import("./PublicUptime-CGi0vS-3.js"),__vite__mapDeps([0,1])),meta:{requiresAuth:!1}},{path:"/public/logs",name:"public-logs",component:()=>tt(()=>import("./PublicLogs-CZ7Fm9EG.js"),[]),meta:{requiresAuth:!1}},{path:"/login",name:"login",component:()=>tt(()=>import("./Login-CFgdu0Lu.js"),[]),meta:{requiresAuth:!1}},{path:"/",component:()=>tt(()=>import("./AppShell-CsF8NWoD.js"),__vite__mapDeps([2,3,4,5])),meta:{requiresAuth:!0},children:[{path:"",name:"dashboard",component:()=>tt(()=>import("./Dashboard-DJFtL9nA.js"),__vite__mapDeps([6,7]))},{path:"accounts",name:"accounts",component:()=>tt(()=>import("./Accounts-B-WgN3aV.js"),__vite__mapDeps([8,9,10,4,5,7]))},{path:"settings",name:"settings",component:()=>tt(()=>import("./Settings-Dj3cSIXZ.js"),__vite__mapDeps([11,3,9,10]))},{path:"logs",name:"logs",component:()=>tt(()=>import("./Logs-CFYEPpBU.js"),__vite__mapDeps([12,9,4]))},{path:"monitor",name:"monitor",component:()=>tt(()=>import("./Monitor-BuPx8c4m.js"),__vite__mapDeps([13,1]))},{path:"docs",name:"docs",component:()=>tt(()=>import("./Docs-D2AnDPF1.js"),[])}]}]});sc.beforeEach(async e=>{const t=wh();if(e.meta.requiresAuth&&!await t.checkAuth())return{name:"login"};if(e.name==="login"&&t.isLoggedIn)return{name:"dashboard"}});const Sh=Os({__name:"App",setup(e){return(t,n)=>(er(),nr(Ot(Dl)))}}),Us=xu(Sh),Rh=Pu();Us.use(Rh);Us.use(sc);Us.mount("#app");export{Xc as A,Dl as B,Mu as C,Dh as D,xh as E,Fe as F,Rs as G,On as H,kf as R,vh as T,fl as a,Ph as b,Th as c,Os as d,er as e,Wa as f,_n as g,Lt as h,Me as i,fa as j,ps as k,wh as l,Ah as m,ms as n,ca as o,Lh as p,Fh as q,Oh as r,fn as s,mc as t,Ot as u,Nh as v,Ih as w,Ce as x,nr as y,Ch as z}; diff --git a/static/assets/index-Dt-VnrHx.js b/static/assets/index-Dt-VnrHx.js new file mode 100644 index 0000000000000000000000000000000000000000..70bfe9db1cd216d0f7848f64413b748e3accaa51 --- /dev/null +++ b/static/assets/index-Dt-VnrHx.js @@ -0,0 +1,7 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PublicUptime-zrQX5HS2.js","assets/useUptimeStatus-WNjzrwnM.js","assets/Login-e5EchLG9.js","assets/Checkbox.vue_vue_type_script_setup_true_lang-D6uSa7ue.js","assets/AppShell-ah6Dvscx.js","assets/settings-Ba-Xl9Xv.js","assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-jpm-Quh6.js","assets/useConfirmDialog-Dz9xMRf2.js","assets/Dashboard-CMSCYbdT.js","assets/HelpTip.vue_vue_type_script_setup_true_lang-DV7kZRSO.js","assets/Accounts-kVPSbBOv.js","assets/SelectMenu.vue_vue_type_script_setup_true_lang-r1ha8_PD.js","assets/Settings-Cv9V_xAM.js","assets/Logs-3JdbrGpL.js","assets/Monitor-BrHVeZxZ.js"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function Ns(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const ce={},tn=[],ut=()=>{},xi=()=>!1,wr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Is=e=>e.startsWith("onUpdate:"),Ee=Object.assign,Ls=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Bc=Object.prototype.hasOwnProperty,oe=(e,t)=>Bc.call(e,t),K=Array.isArray,nn=e=>vr(e)==="[object Map]",Ti=e=>vr(e)==="[object Set]",J=e=>typeof e=="function",pe=e=>typeof e=="string",vt=e=>typeof e=="symbol",ae=e=>e!==null&&typeof e=="object",Oi=e=>(ae(e)||J(e))&&J(e.then)&&J(e.catch),Pi=Object.prototype.toString,vr=e=>Pi.call(e),Uc=e=>vr(e).slice(8,-1),Ni=e=>vr(e)==="[object Object]",Sr=e=>pe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,En=Ns(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ar=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},jc=/-\w/g,Dt=Ar(e=>e.replace(jc,t=>t.slice(1).toUpperCase())),Hc=/\B([A-Z])/g,zt=Ar(e=>e.replace(Hc,"-$1").toLowerCase()),Ii=Ar(e=>e.charAt(0).toUpperCase()+e.slice(1)),Vr=Ar(e=>e?`on${Ii(e)}`:""),Lt=(e,t)=>!Object.is(e,t),er=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},Ds=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Vc=e=>{const t=pe(e)?Number(e):NaN;return isNaN(t)?e:t};let io;const Rr=()=>io||(io=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Fs(e){if(K(e)){const t={};for(let n=0;n{if(n){const r=n.split(qc);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Nn(e){let t="";if(pe(e))t=e;else if(K(e))for(let n=0;n!!(e&&e.__v_isRef===!0),ls=e=>pe(e)?e:e==null?"":K(e)||ae(e)&&(e.toString===Pi||!J(e.toString))?Fi(e)?ls(e.value):JSON.stringify(e,Mi,2):String(e),Mi=(e,t)=>Fi(t)?Mi(e,t.value):nn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[$r(r,o)+" =>"]=s,n),{})}:Ti(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>$r(n))}:vt(t)?$r(t):ae(t)&&!K(t)&&!Ni(t)?String(t):t,$r=(e,t="")=>{var n;return vt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let Se;class ki{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,r;for(n=0,r=this.effects.length;n0)return;if(vn){let t=vn;for(vn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;wn;){let t=wn;for(wn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function $i(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function qi(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),Bs(r),Xc(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function cs(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Ki(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Ki(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===In)||(e.globalVersion=In,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!cs(e))))return;e.flags|=2;const t=e.dep,n=fe,r=Ge;fe=e,Ge=!0;try{$i(e);const s=e.fn(e._value);(t.version===0||Lt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{fe=n,Ge=r,qi(e),e.flags&=-3}}function Bs(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)Bs(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Xc(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Ge=!0;const Wi=[];function bt(){Wi.push(Ge),Ge=!1}function Et(){const e=Wi.pop();Ge=e===void 0?!0:e}function lo(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=fe;fe=void 0;try{t()}finally{fe=n}}}let In=0;class Qc{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 Us{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(!fe||!Ge||fe===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==fe)n=this.activeLink=new Qc(fe,this),fe.deps?(n.prevDep=fe.depsTail,fe.depsTail.nextDep=n,fe.depsTail=n):fe.deps=fe.depsTail=n,Gi(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=fe.depsTail,n.nextDep=void 0,fe.depsTail.nextDep=n,fe.depsTail=n,fe.deps===n&&(fe.deps=r)}return n}trigger(t){this.version++,In++,this.notify(t)}notify(t){Ms();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ks()}}}function Gi(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Gi(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const ar=new WeakMap,Vt=Symbol(""),as=Symbol(""),Ln=Symbol("");function Ae(e,t,n){if(Ge&&fe){let r=ar.get(e);r||ar.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new Us),s.map=r,s.key=n),s.track()}}function yt(e,t,n,r,s,o){const i=ar.get(e);if(!i){In++;return}const l=c=>{c&&c.trigger()};if(Ms(),t==="clear")i.forEach(l);else{const c=K(e),u=c&&Sr(n);if(c&&n==="length"){const a=Number(r);i.forEach((f,h)=>{(h==="length"||h===Ln||!vt(h)&&h>=a)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(Ln)),t){case"add":c?u&&l(i.get("length")):(l(i.get(Vt)),nn(e)&&l(i.get(as)));break;case"delete":c||(l(i.get(Vt)),nn(e)&&l(i.get(as)));break;case"set":nn(e)&&l(i.get(Vt));break}}ks()}function Yc(e,t){const n=ar.get(e);return n&&n.get(t)}function Jt(e){const t=re(e);return t===e?t:(Ae(t,"iterate",Ln),je(e)?t:t.map(ze))}function Cr(e){return Ae(e=re(e),"iterate",Ln),e}function Ot(e,t){return wt(e)?ft(e)?on(ze(t)):on(t):ze(t)}const Zc={__proto__:null,[Symbol.iterator](){return Kr(this,Symbol.iterator,e=>Ot(this,e))},concat(...e){return Jt(this).concat(...e.map(t=>K(t)?Jt(t):t))},entries(){return Kr(this,"entries",e=>(e[1]=Ot(this,e[1]),e))},every(e,t){return pt(this,"every",e,t,void 0,arguments)},filter(e,t){return pt(this,"filter",e,t,n=>n.map(r=>Ot(this,r)),arguments)},find(e,t){return pt(this,"find",e,t,n=>Ot(this,n),arguments)},findIndex(e,t){return pt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return pt(this,"findLast",e,t,n=>Ot(this,n),arguments)},findLastIndex(e,t){return pt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return pt(this,"forEach",e,t,void 0,arguments)},includes(...e){return Wr(this,"includes",e)},indexOf(...e){return Wr(this,"indexOf",e)},join(e){return Jt(this).join(e)},lastIndexOf(...e){return Wr(this,"lastIndexOf",e)},map(e,t){return pt(this,"map",e,t,void 0,arguments)},pop(){return mn(this,"pop")},push(...e){return mn(this,"push",e)},reduce(e,...t){return co(this,"reduce",e,t)},reduceRight(e,...t){return co(this,"reduceRight",e,t)},shift(){return mn(this,"shift")},some(e,t){return pt(this,"some",e,t,void 0,arguments)},splice(...e){return mn(this,"splice",e)},toReversed(){return Jt(this).toReversed()},toSorted(e){return Jt(this).toSorted(e)},toSpliced(...e){return Jt(this).toSpliced(...e)},unshift(...e){return mn(this,"unshift",e)},values(){return Kr(this,"values",e=>Ot(this,e))}};function Kr(e,t,n){const r=Cr(e),s=r[t]();return r!==e&&!je(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const ea=Array.prototype;function pt(e,t,n,r,s,o){const i=Cr(e),l=i!==e&&!je(e),c=i[t];if(c!==ea[t]){const f=c.apply(e,o);return l?ze(f):f}let u=n;i!==e&&(l?u=function(f,h){return n.call(this,Ot(e,f),h,e)}:n.length>2&&(u=function(f,h){return n.call(this,f,h,e)}));const a=c.call(i,u,r);return l&&s?s(a):a}function co(e,t,n,r){const s=Cr(e);let o=n;return s!==e&&(je(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,Ot(e,l),c,e)}),s[t](o,...r)}function Wr(e,t,n){const r=re(e);Ae(r,"iterate",Ln);const s=r[t](...n);return(s===-1||s===!1)&&xr(n[0])?(n[0]=re(n[0]),r[t](...n)):s}function mn(e,t,n=[]){bt(),Ms();const r=re(e)[t].apply(e,n);return ks(),Et(),r}const ta=Ns("__proto__,__v_isRef,__isVue"),zi=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(vt));function na(e){vt(e)||(e=String(e));const t=re(this);return Ae(t,"has",e),t.hasOwnProperty(e)}class Ji{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?da:Zi:o?Yi:Qi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=K(t);if(!s){let c;if(i&&(c=Zc[n]))return c;if(n==="hasOwnProperty")return na}const l=Reflect.get(t,n,de(t)?t:r);if((vt(n)?zi.has(n):ta(n))||(s||Ae(t,"get",n),o))return l;if(de(l)){const c=i&&Sr(n)?l:l.value;return s&&ae(c)?fs(c):c}return ae(l)?s?fs(l):fn(l):l}}class Xi extends Ji{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=K(t)&&Sr(n);if(!this._isShallow){const u=wt(o);if(!je(r)&&!wt(r)&&(o=re(o),r=re(r)),!i&&de(o)&&!de(r))return u||(o.value=r),!0}const l=i?Number(n)e,Wn=e=>Reflect.getPrototypeOf(e);function la(e,t,n){return function(...r){const s=this.__v_raw,o=re(s),i=nn(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=s[e](...r),a=n?us:t?on:ze;return!t&&Ae(o,"iterate",c?as:Vt),{next(){const{value:f,done:h}=u.next();return h?{value:f,done:h}:{value:l?[a(f[0]),a(f[1])]:a(f),done:h}},[Symbol.iterator](){return this}}}}function Gn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function ca(e,t){const n={get(s){const o=this.__v_raw,i=re(o),l=re(s);e||(Lt(s,l)&&Ae(i,"get",s),Ae(i,"get",l));const{has:c}=Wn(i),u=t?us:e?on:ze;if(c.call(i,s))return u(o.get(s));if(c.call(i,l))return u(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&Ae(re(s),"iterate",Vt),s.size},has(s){const o=this.__v_raw,i=re(o),l=re(s);return e||(Lt(s,l)&&Ae(i,"has",s),Ae(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,c=re(l),u=t?us:e?on:ze;return!e&&Ae(c,"iterate",Vt),l.forEach((a,f)=>s.call(o,u(a),u(f),i))}};return Ee(n,e?{add:Gn("add"),set:Gn("set"),delete:Gn("delete"),clear:Gn("clear")}:{add(s){!t&&!je(s)&&!wt(s)&&(s=re(s));const o=re(this);return Wn(o).has.call(o,s)||(o.add(s),yt(o,"add",s,s)),this},set(s,o){!t&&!je(o)&&!wt(o)&&(o=re(o));const i=re(this),{has:l,get:c}=Wn(i);let u=l.call(i,s);u||(s=re(s),u=l.call(i,s));const a=c.call(i,s);return i.set(s,o),u?Lt(o,a)&&yt(i,"set",s,o):yt(i,"add",s,o),this},delete(s){const o=re(this),{has:i,get:l}=Wn(o);let c=i.call(o,s);c||(s=re(s),c=i.call(o,s)),l&&l.call(o,s);const u=o.delete(s);return c&&yt(o,"delete",s,void 0),u},clear(){const s=re(this),o=s.size!==0,i=s.clear();return o&&yt(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=la(s,e,t)}),n}function js(e,t){const n=ca(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(oe(n,s)&&s in r?n:r,s,o)}const aa={get:js(!1,!1)},ua={get:js(!1,!0)},fa={get:js(!0,!1)};const Qi=new WeakMap,Yi=new WeakMap,Zi=new WeakMap,da=new WeakMap;function ha(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function pa(e){return e.__v_skip||!Object.isExtensible(e)?0:ha(Uc(e))}function fn(e){return wt(e)?e:Hs(e,!1,sa,aa,Qi)}function el(e){return Hs(e,!1,ia,ua,Yi)}function fs(e){return Hs(e,!0,oa,fa,Zi)}function Hs(e,t,n,r,s){if(!ae(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=pa(e);if(o===0)return e;const i=s.get(e);if(i)return i;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function ft(e){return wt(e)?ft(e.__v_raw):!!(e&&e.__v_isReactive)}function wt(e){return!!(e&&e.__v_isReadonly)}function je(e){return!!(e&&e.__v_isShallow)}function xr(e){return e?!!e.__v_raw:!1}function re(e){const t=e&&e.__v_raw;return t?re(t):e}function Vs(e){return!oe(e,"__v_skip")&&Object.isExtensible(e)&&Li(e,"__v_skip",!0),e}const ze=e=>ae(e)?fn(e):e,on=e=>ae(e)?fs(e):e;function de(e){return e?e.__v_isRef===!0:!1}function $t(e){return tl(e,!1)}function ma(e){return tl(e,!0)}function tl(e,t){return de(e)?e:new ga(e,t)}class ga{constructor(t,n){this.dep=new Us,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:re(t),this._value=n?t:ze(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||je(t)||wt(t);t=r?t:re(t),Lt(t,n)&&(this._rawValue=t,this._value=r?t:ze(t),this.dep.trigger())}}function dt(e){return de(e)?e.value:e}const ya={get:(e,t,n)=>t==="__v_raw"?e:dt(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return de(s)&&!de(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function nl(e){return ft(e)?e:new Proxy(e,ya)}function _a(e){const t=K(e)?new Array(e.length):{};for(const n in e)t[n]=rl(e,n);return t}class ba{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._raw=re(t);let s=!0,o=t;if(!K(t)||!Sr(String(n)))do s=!xr(o)||je(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=dt(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&de(this._raw[this._key])){const n=this._object[this._key];if(de(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return Yc(this._raw,this._key)}}class Ea{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function wa(e,t,n){return de(e)?e:J(e)?new Ea(e):ae(e)&&arguments.length>1?rl(e,t,n):$t(e)}function rl(e,t,n){return new ba(e,t,n)}class va{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Us(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=In-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&fe!==this)return Vi(this,!0),!0}get value(){const t=this.dep.track();return Ki(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Sa(e,t,n=!1){let r,s;return J(e)?r=e:(r=e.get,s=e.set),new va(r,s,n)}const zn={},ur=new WeakMap;let Bt;function Aa(e,t=!1,n=Bt){if(n){let r=ur.get(n);r||ur.set(n,r=[]),r.push(e)}}function Ra(e,t,n=ce){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:c}=n,u=O=>s?O:je(O)||s===!1||s===0?_t(O,1):_t(O);let a,f,h,m,g=!1,b=!1;if(de(e)?(f=()=>e.value,g=je(e)):ft(e)?(f=()=>u(e),g=!0):K(e)?(b=!0,g=e.some(O=>ft(O)||je(O)),f=()=>e.map(O=>{if(de(O))return O.value;if(ft(O))return u(O);if(J(O))return c?c(O,2):O()})):J(e)?t?f=c?()=>c(e,2):e:f=()=>{if(h){bt();try{h()}finally{Et()}}const O=Bt;Bt=a;try{return c?c(e,3,[m]):e(m)}finally{Bt=O}}:f=ut,t&&s){const O=f,B=s===!0?1/0:s;f=()=>_t(O(),B)}const E=Ui(),C=()=>{a.stop(),E&&E.active&&Ls(E.effects,a)};if(o&&t){const O=t;t=(...B)=>{O(...B),C()}}let T=b?new Array(e.length).fill(zn):zn;const N=O=>{if(!(!(a.flags&1)||!a.dirty&&!O))if(t){const B=a.run();if(s||g||(b?B.some((G,j)=>Lt(G,T[j])):Lt(B,T))){h&&h();const G=Bt;Bt=a;try{const j=[B,T===zn?void 0:b&&T[0]===zn?[]:T,m];T=B,c?c(t,3,j):t(...j)}finally{Bt=G}}}else a.run()};return l&&l(N),a=new ji(f),a.scheduler=i?()=>i(N,!1):N,m=O=>Aa(O,!1,a),h=a.onStop=()=>{const O=ur.get(a);if(O){if(c)c(O,4);else for(const B of O)B();ur.delete(a)}},t?r?N(!0):T=a.run():i?i(N.bind(null,!0),!0):a.run(),C.pause=a.pause.bind(a),C.resume=a.resume.bind(a),C.stop=C,C}function _t(e,t=1/0,n){if(t<=0||!ae(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,de(e))_t(e.value,t,n);else if(K(e))for(let r=0;r{_t(r,t,n)});else if(Ni(e)){for(const r in e)_t(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&_t(e[r],t,n)}return e}function jn(e,t,n,r){try{return r?e(...r):e()}catch(s){Tr(s,t,n)}}function Je(e,t,n,r){if(J(e)){const s=jn(e,t,n,r);return s&&Oi(s)&&s.catch(o=>{Tr(o,t,n)}),s}if(K(e)){const s=[];for(let o=0;o>>1,s=Pe[r],o=Dn(s);o=Dn(n)?Pe.push(e):Pe.splice(xa(t),0,e),e.flags|=1,ol()}}function ol(){fr||(fr=sl.then(ll))}function Ta(e){K(e)?rn.push(...e):Pt&&e.id===-1?Pt.splice(Qt+1,0,e):e.flags&1||(rn.push(e),e.flags|=1),ol()}function ao(e,t,n=ct+1){for(;nDn(n)-Dn(r));if(rn.length=0,Pt){Pt.push(...t);return}for(Pt=t,Qt=0;Qte.id==null?e.flags&2?-1:1/0:e.id;function ll(e){try{for(ct=0;ct{r._d&&mr(-1);const o=dr(t);let i;try{i=e(...s)}finally{dr(o),r._d&&mr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function xp(e,t){if(Ce===null)return e;const n=Lr(Ce),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&J(t)?t.call(r&&r.proxy):t}}function Oa(){return!!(Js()||qt)}const Pa=Symbol.for("v-scx"),Na=()=>Ke(Pa);function Sn(e,t,n){return ul(e,t,n)}function ul(e,t,n=ce){const{immediate:r,deep:s,flush:o,once:i}=n,l=Ee({},n),c=t&&r||!t&&o!=="post";let u;if(Bn){if(o==="sync"){const m=Na();u=m.__watcherHandles||(m.__watcherHandles=[])}else if(!c){const m=()=>{};return m.stop=ut,m.resume=ut,m.pause=ut,m}}const a=Ne;l.call=(m,g,b)=>Je(m,a,g,b);let f=!1;o==="post"?l.scheduler=m=>{Te(m,a&&a.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(m,g)=>{g?m():qs(m)}),l.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,a&&(m.id=a.uid,m.i=a))};const h=Ra(e,t,l);return Bn&&(u?u.push(h):c&&h()),h}function Ia(e,t,n){const r=this.proxy,s=pe(e)?e.includes(".")?fl(r,e):()=>r[e]:e.bind(r,r);let o;J(t)?o=t:(o=t.handler,n=t);const i=Hn(this),l=ul(s,o.bind(r),n);return i(),l}function fl(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,An=e=>e&&(e.disabled||e.disabled===""),uo=e=>e&&(e.defer||e.defer===""),fo=e=>typeof SVGElement<"u"&&e instanceof SVGElement,ho=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,ds=(e,t)=>{const n=e&&e.to;return pe(n)?t?t(n):null:n},hl={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,u){const{mc:a,pc:f,pbc:h,o:{insert:m,querySelector:g,createText:b,createComment:E}}=u,C=An(t.props);let{shapeFlag:T,children:N,dynamicChildren:O}=t;if(e==null){const B=t.el=b(""),G=t.anchor=b("");m(B,n,r),m(G,n,r);const j=(x,$)=>{T&16&&a(N,x,$,s,o,i,l,c)},U=()=>{const x=t.target=ds(t.props,g),$=pl(x,t,b,m);x&&(i!=="svg"&&fo(x)?i="svg":i!=="mathml"&&ho(x)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(x),C||(j(x,$),nr(t,!1)))};C&&(j(n,G),nr(t,!0)),uo(t.props)?(t.el.__isMounted=!1,Te(()=>{U(),delete t.el.__isMounted},o)):U()}else{if(uo(t.props)&&e.el.__isMounted===!1){Te(()=>{hl.process(e,t,n,r,s,o,i,l,c,u)},o);return}t.el=e.el,t.targetStart=e.targetStart;const B=t.anchor=e.anchor,G=t.target=e.target,j=t.targetAnchor=e.targetAnchor,U=An(e.props),x=U?n:G,$=U?B:j;if(i==="svg"||fo(G)?i="svg":(i==="mathml"||ho(G))&&(i="mathml"),O?(h(e.dynamicChildren,O,x,s,o,i,l),Gs(e,t,!0)):c||f(e,t,x,$,s,o,i,l,!1),C)U?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Jn(t,n,B,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const Y=t.target=ds(t.props,g);Y&&Jn(t,Y,null,u,0)}else U&&Jn(t,G,j,u,1);nr(t,C)}},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetStart:u,targetAnchor:a,target:f,props:h}=e;if(f&&(s(u),s(a)),o&&s(c),i&16){const m=o||!An(h);for(let g=0;g{e.isMounted=!0}),wl(()=>{e.isUnmounting=!0}),e}const $e=[Function,Array],ka={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:$e,onEnter:$e,onAfterEnter:$e,onEnterCancelled:$e,onBeforeLeave:$e,onLeave:$e,onAfterLeave:$e,onLeaveCancelled:$e,onBeforeAppear:$e,onAppear:$e,onAfterAppear:$e,onAppearCancelled:$e};function Ba(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function hs(e,t,n,r,s){const{appear:o,mode:i,persisted:l=!1,onBeforeEnter:c,onEnter:u,onAfterEnter:a,onEnterCancelled:f,onBeforeLeave:h,onLeave:m,onAfterLeave:g,onLeaveCancelled:b,onBeforeAppear:E,onAppear:C,onAfterAppear:T,onAppearCancelled:N}=t,O=String(e.key),B=Ba(n,e),G=(x,$)=>{x&&Je(x,r,9,$)},j=(x,$)=>{const Y=$[1];G(x,$),K(x)?x.every(L=>L.length<=1)&&Y():x.length<=1&&Y()},U={mode:i,persisted:l,beforeEnter(x){let $=c;if(!n.isMounted)if(o)$=E||c;else return;x[Ut]&&x[Ut](!0);const Y=B[O];Y&&Yt(e,Y)&&Y.el[Ut]&&Y.el[Ut](),G($,[x])},enter(x){let $=u,Y=a,L=f;if(!n.isMounted)if(o)$=C||u,Y=T||a,L=N||f;else return;let Q=!1;const le=x[Xn]=we=>{Q||(Q=!0,we?G(L,[x]):G(Y,[x]),U.delayedLeave&&U.delayedLeave(),x[Xn]=void 0)};$?j($,[x,le]):le()},leave(x,$){const Y=String(e.key);if(x[Xn]&&x[Xn](!0),n.isUnmounting)return $();G(h,[x]);let L=!1;const Q=x[Ut]=le=>{L||(L=!0,$(),le?G(b,[x]):G(g,[x]),x[Ut]=void 0,B[Y]===e&&delete B[Y])};B[Y]=e,m?j(m,[x,Q]):Q()},clone(x){return hs(x,t,n,r)}};return U}function Fn(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Fn(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 ml(e,t=!1,n){let r=[],s=0;for(let o=0;o1)for(let o=0;oRn(g,t&&(K(t)?t[b]:t),n,r,s));return}if(sn(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&Rn(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?Lr(r.component):r.el,i=s?null:o,{i:l,r:c}=e,u=t&&t.r,a=l.refs===ce?l.refs={}:l.refs,f=l.setupState,h=re(f),m=f===ce?xi:g=>oe(h,g);if(u!=null&&u!==c){if(po(t),pe(u))a[u]=null,m(u)&&(f[u]=null);else if(de(u)){u.value=null;const g=t;g.k&&(a[g.k]=null)}}if(J(c))jn(c,l,12,[i,a]);else{const g=pe(c),b=de(c);if(g||b){const E=()=>{if(e.f){const C=g?m(c)?f[c]:a[c]:c.value;if(s)K(C)&&Ls(C,o);else if(K(C))C.includes(o)||C.push(o);else if(g)a[c]=[o],m(c)&&(f[c]=a[c]);else{const T=[o];c.value=T,e.k&&(a[e.k]=T)}}else g?(a[c]=i,m(c)&&(f[c]=i)):b&&(c.value=i,e.k&&(a[e.k]=i))};if(i){const C=()=>{E(),hr.delete(e)};C.id=-1,hr.set(e,C),Te(C,n)}else po(e),E()}}}function po(e){const t=hr.get(e);t&&(t.flags|=8,hr.delete(e))}Rr().requestIdleCallback;Rr().cancelIdleCallback;const sn=e=>!!e.type.__asyncLoader,yl=e=>e.type.__isKeepAlive;function Ua(e,t){_l(e,"a",t)}function ja(e,t){_l(e,"da",t)}function _l(e,t,n=Ne){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Pr(t,r,n),n){let s=n.parent;for(;s&&s.parent;)yl(s.parent.vnode)&&Ha(r,t,n,s),s=s.parent}}function Ha(e,t,n,r){const s=Pr(t,e,r,!0);vl(()=>{Ls(r[t],s)},n)}function Pr(e,t,n=Ne,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{bt();const l=Hn(n),c=Je(t,n,e,i);return l(),Et(),c});return r?s.unshift(o):s.push(o),o}}const St=e=>(t,n=Ne)=>{(!Bn||e==="sp")&&Pr(e,(...r)=>t(...r),n)},Va=St("bm"),bl=St("m"),$a=St("bu"),El=St("u"),wl=St("bum"),vl=St("um"),qa=St("sp"),Ka=St("rtg"),Wa=St("rtc");function Ga(e,t=Ne){Pr("ec",e,t)}const za=Symbol.for("v-ndc");function Ja(e,t,n,r){let s;const o=n,i=K(e);if(i||pe(e)){const l=i&&ft(e);let c=!1,u=!1;l&&(c=!je(e),u=wt(e),e=Cr(e)),s=new Array(e.length);for(let a=0,f=e.length;at(l,c,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let c=0,u=l.length;c0;return qe(),gr(ve,null,[be("slot",n,r)],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),qe();const i=o&&Sl(o(n)),l=n.key||i&&i.key,c=gr(ve,{key:(l&&!vt(l)?l:`_${t}`)+(!i&&r?"_fb":"")},i||[],i&&e._===1?64:-2);return c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),o&&o._c&&(o._d=!0),c}function Sl(e){return e.some(t=>kn(t)?!(t.type===ht||t.type===ve&&!Sl(t.children)):!0)?e:null}const ps=e=>e?Hl(e)?Lr(e):ps(e.parent):null,Cn=Ee(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=>ps(e.parent),$root:e=>ps(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Rl(e),$forceUpdate:e=>e.f||(e.f=()=>{qs(e.update)}),$nextTick:e=>e.n||(e.n=$s.bind(e.proxy)),$watch:e=>Ia.bind(e)}),Gr=(e,t)=>e!==ce&&!e.__isScriptSetup&&oe(e,t),Xa={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:o,accessCache:i,type:l,appContext:c}=e;if(t[0]!=="$"){const h=i[t];if(h!==void 0)switch(h){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(Gr(r,t))return i[t]=1,r[t];if(s!==ce&&oe(s,t))return i[t]=2,s[t];if(oe(o,t))return i[t]=3,o[t];if(n!==ce&&oe(n,t))return i[t]=4,n[t];ms&&(i[t]=0)}}const u=Cn[t];let a,f;if(u)return t==="$attrs"&&Ae(e.attrs,"get",""),u(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==ce&&oe(n,t))return i[t]=4,n[t];if(f=c.config.globalProperties,oe(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return Gr(s,t)?(s[t]=n,!0):r!==ce&&oe(r,t)?(r[t]=n,!0):oe(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:o,type:i}},l){let c;return!!(n[l]||e!==ce&&l[0]!=="$"&&oe(e,l)||Gr(t,l)||oe(o,l)||oe(r,l)||oe(Cn,l)||oe(s.config.globalProperties,l)||(c=i.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:oe(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function mo(e){return K(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let ms=!0;function Qa(e){const t=Rl(e),n=e.proxy,r=e.ctx;ms=!1,t.beforeCreate&&go(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:u,created:a,beforeMount:f,mounted:h,beforeUpdate:m,updated:g,activated:b,deactivated:E,beforeDestroy:C,beforeUnmount:T,destroyed:N,unmounted:O,render:B,renderTracked:G,renderTriggered:j,errorCaptured:U,serverPrefetch:x,expose:$,inheritAttrs:Y,components:L,directives:Q,filters:le}=t;if(u&&Ya(u,r,null),i)for(const z in i){const Z=i[z];J(Z)&&(r[z]=Z.bind(n))}if(s){const z=s.call(n,n);ae(z)&&(e.data=fn(z))}if(ms=!0,o)for(const z in o){const Z=o[z],He=J(Z)?Z.bind(n,n):J(Z.get)?Z.get.bind(n,n):ut,Ye=!J(Z)&&J(Z.set)?Z.set.bind(n):ut,ye=Be({get:He,set:Ye});Object.defineProperty(r,z,{enumerable:!0,configurable:!0,get:()=>ye.value,set:me=>ye.value=me})}if(l)for(const z in l)Al(l[z],r,n,z);if(c){const z=J(c)?c.call(n):c;Reflect.ownKeys(z).forEach(Z=>{tr(Z,z[Z])})}a&&go(a,e,"c");function ee(z,Z){K(Z)?Z.forEach(He=>z(He.bind(n))):Z&&z(Z.bind(n))}if(ee(Va,f),ee(bl,h),ee($a,m),ee(El,g),ee(Ua,b),ee(ja,E),ee(Ga,U),ee(Wa,G),ee(Ka,j),ee(wl,T),ee(vl,O),ee(qa,x),K($))if($.length){const z=e.exposed||(e.exposed={});$.forEach(Z=>{Object.defineProperty(z,Z,{get:()=>n[Z],set:He=>n[Z]=He,enumerable:!0})})}else e.exposed||(e.exposed={});B&&e.render===ut&&(e.render=B),Y!=null&&(e.inheritAttrs=Y),L&&(e.components=L),Q&&(e.directives=Q),x&&gl(e)}function Ya(e,t,n=ut){K(e)&&(e=gs(e));for(const r in e){const s=e[r];let o;ae(s)?"default"in s?o=Ke(s.from||r,s.default,!0):o=Ke(s.from||r):o=Ke(s),de(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function go(e,t,n){Je(K(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Al(e,t,n,r){let s=r.includes(".")?fl(n,r):()=>n[r];if(pe(e)){const o=t[e];J(o)&&Sn(s,o)}else if(J(e))Sn(s,e.bind(n));else if(ae(e))if(K(e))e.forEach(o=>Al(o,t,n,r));else{const o=J(e.handler)?e.handler.bind(n):t[e.handler];J(o)&&Sn(s,o,e)}}function Rl(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>pr(c,u,i,!0)),pr(c,t,i)),ae(t)&&o.set(t,c),c}function pr(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&pr(e,o,n,!0),s&&s.forEach(i=>pr(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Za[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Za={data:yo,props:_o,emits:_o,methods:bn,computed:bn,beforeCreate:xe,created:xe,beforeMount:xe,mounted:xe,beforeUpdate:xe,updated:xe,beforeDestroy:xe,beforeUnmount:xe,destroyed:xe,unmounted:xe,activated:xe,deactivated:xe,errorCaptured:xe,serverPrefetch:xe,components:bn,directives:bn,watch:tu,provide:yo,inject:eu};function yo(e,t){return t?e?function(){return Ee(J(e)?e.call(this,this):e,J(t)?t.call(this,this):t)}:t:e}function eu(e,t){return bn(gs(e),gs(t))}function gs(e){if(K(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Dt(t)}Modifiers`]||e[`${zt(t)}Modifiers`];function ou(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||ce;let s=n;const o=t.startsWith("update:"),i=o&&su(r,t.slice(7));i&&(i.trim&&(s=n.map(a=>pe(a)?a.trim():a)),i.number&&(s=n.map(Ds)));let l,c=r[l=Vr(t)]||r[l=Vr(Dt(t))];!c&&o&&(c=r[l=Vr(zt(t))]),c&&Je(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Je(u,e,6,s)}}const iu=new WeakMap;function xl(e,t,n=!1){const r=n?iu:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!J(e)){const c=u=>{const a=xl(u,t,!0);a&&(l=!0,Ee(i,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(ae(e)&&r.set(e,null),null):(K(o)?o.forEach(c=>i[c]=null):Ee(i,o),ae(e)&&r.set(e,i),i)}function Nr(e,t){return!e||!wr(t)?!1:(t=t.slice(2).replace(/Once$/,""),oe(e,t[0].toLowerCase()+t.slice(1))||oe(e,zt(t))||oe(e,t))}function bo(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:a,props:f,data:h,setupState:m,ctx:g,inheritAttrs:b}=e,E=dr(e);let C,T;try{if(n.shapeFlag&4){const O=s||r,B=O;C=at(u.call(B,O,a,f,m,h,g)),T=l}else{const O=t;C=at(O.length>1?O(f,{attrs:l,slots:i,emit:c}):O(f,null)),T=t.props?l:lu(l)}}catch(O){xn.length=0,Tr(O,e,1),C=be(ht)}let N=C;if(T&&b!==!1){const O=Object.keys(T),{shapeFlag:B}=N;O.length&&B&7&&(o&&O.some(Is)&&(T=cu(T,o)),N=Wt(N,T,!1,!0))}return n.dirs&&(N=Wt(N,null,!1,!0),N.dirs=N.dirs?N.dirs.concat(n.dirs):n.dirs),n.transition&&Fn(N,n.transition),C=N,dr(E),C}const lu=e=>{let t;for(const n in e)(n==="class"||n==="style"||wr(n))&&((t||(t={}))[n]=e[n]);return t},cu=(e,t)=>{const n={};for(const r in e)(!Is(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function au(e,t,n){const{props:r,children:s,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 r?Eo(r,i,u):!!i;if(c&8){const a=t.dynamicProps;for(let f=0;fObject.create(Tl),Pl=e=>Object.getPrototypeOf(e)===Tl;function fu(e,t,n,r=!1){const s={},o=Ol();e.propsDefaults=Object.create(null),Nl(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:el(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function du(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=re(s),[c]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const a=e.vnode.dynamicProps;for(let f=0;f{c=!0;const[h,m]=Il(f,t,!0);Ee(i,h),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!c)return ae(e)&&r.set(e,tn),tn;if(K(o))for(let a=0;ae==="_"||e==="_ctx"||e==="$stable",Ws=e=>K(e)?e.map(at):[at(e)],pu=(e,t,n)=>{if(t._n)return t;const r=al((...s)=>Ws(t(...s)),n);return r._c=!1,r},Ll=(e,t,n)=>{const r=e._ctx;for(const s in e){if(Ks(s))continue;const o=e[s];if(J(o))t[s]=pu(s,o,r);else if(o!=null){const i=Ws(o);t[s]=()=>i}}},Dl=(e,t)=>{const n=Ws(t);e.slots.default=()=>n},Fl=(e,t,n)=>{for(const r in t)(n||!Ks(r))&&(e[r]=t[r])},mu=(e,t,n)=>{const r=e.slots=Ol();if(e.vnode.shapeFlag&32){const s=t._;s?(Fl(r,t,n),n&&Li(r,"_",s,!0)):Ll(t,r)}else t&&Dl(e,t)},gu=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=ce;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:Fl(s,t,n):(o=!t.$stable,Ll(t,s)),i=t}else t&&(Dl(e,t),i={default:1});if(o)for(const l in s)!Ks(l)&&i[l]==null&&delete s[l]},Te=wu;function yu(e){return _u(e)}function _u(e,t){const n=Rr();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:a,parentNode:f,nextSibling:h,setScopeId:m=ut,insertStaticContent:g}=e,b=(d,p,y,w=null,A=null,v=null,D=void 0,I=null,P=!!p.dynamicChildren)=>{if(d===p)return;d&&!Yt(d,p)&&(w=S(d),me(d,A,v,!0),d=null),p.patchFlag===-2&&(P=!1,p.dynamicChildren=null);const{type:R,ref:q,shapeFlag:M}=p;switch(R){case Ir:E(d,p,y,w);break;case ht:C(d,p,y,w);break;case rr:d==null&&T(p,y,w,D);break;case ve:L(d,p,y,w,A,v,D,I,P);break;default:M&1?B(d,p,y,w,A,v,D,I,P):M&6?Q(d,p,y,w,A,v,D,I,P):(M&64||M&128)&&R.process(d,p,y,w,A,v,D,I,P,H)}q!=null&&A?Rn(q,d&&d.ref,v,p||d,!p):q==null&&d&&d.ref!=null&&Rn(d.ref,null,v,d,!0)},E=(d,p,y,w)=>{if(d==null)r(p.el=l(p.children),y,w);else{const A=p.el=d.el;p.children!==d.children&&u(A,p.children)}},C=(d,p,y,w)=>{d==null?r(p.el=c(p.children||""),y,w):p.el=d.el},T=(d,p,y,w)=>{[d.el,d.anchor]=g(d.children,p,y,w,d.el,d.anchor)},N=({el:d,anchor:p},y,w)=>{let A;for(;d&&d!==p;)A=h(d),r(d,y,w),d=A;r(p,y,w)},O=({el:d,anchor:p})=>{let y;for(;d&&d!==p;)y=h(d),s(d),d=y;s(p)},B=(d,p,y,w,A,v,D,I,P)=>{if(p.type==="svg"?D="svg":p.type==="math"&&(D="mathml"),d==null)G(p,y,w,A,v,D,I,P);else{const R=d.el&&d.el._isVueCE?d.el:null;try{R&&R._beginPatch(),x(d,p,A,v,D,I,P)}finally{R&&R._endPatch()}}},G=(d,p,y,w,A,v,D,I)=>{let P,R;const{props:q,shapeFlag:M,transition:V,dirs:W}=d;if(P=d.el=i(d.type,v,q&&q.is,q),M&8?a(P,d.children):M&16&&U(d.children,P,null,w,A,zr(d,v),D,I),W&&Ft(d,null,w,"created"),j(P,d,d.scopeId,D,w),q){for(const ue in q)ue!=="value"&&!En(ue)&&o(P,ue,null,q[ue],v,w);"value"in q&&o(P,"value",null,q.value,v),(R=q.onVnodeBeforeMount)&&st(R,w,d)}W&&Ft(d,null,w,"beforeMount");const ne=bu(A,V);ne&&V.beforeEnter(P),r(P,p,y),((R=q&&q.onVnodeMounted)||ne||W)&&Te(()=>{R&&st(R,w,d),ne&&V.enter(P),W&&Ft(d,null,w,"mounted")},A)},j=(d,p,y,w,A)=>{if(y&&m(d,y),w)for(let v=0;v{for(let R=P;R{const I=p.el=d.el;let{patchFlag:P,dynamicChildren:R,dirs:q}=p;P|=d.patchFlag&16;const M=d.props||ce,V=p.props||ce;let W;if(y&&Mt(y,!1),(W=V.onVnodeBeforeUpdate)&&st(W,y,p,d),q&&Ft(p,d,y,"beforeUpdate"),y&&Mt(y,!0),(M.innerHTML&&V.innerHTML==null||M.textContent&&V.textContent==null)&&a(I,""),R?$(d.dynamicChildren,R,I,y,w,zr(p,A),v):D||Z(d,p,I,null,y,w,zr(p,A),v,!1),P>0){if(P&16)Y(I,M,V,y,A);else if(P&2&&M.class!==V.class&&o(I,"class",null,V.class,A),P&4&&o(I,"style",M.style,V.style,A),P&8){const ne=p.dynamicProps;for(let ue=0;ue{W&&st(W,y,p,d),q&&Ft(p,d,y,"updated")},w)},$=(d,p,y,w,A,v,D)=>{for(let I=0;I{if(p!==y){if(p!==ce)for(const v in p)!En(v)&&!(v in y)&&o(d,v,p[v],null,A,w);for(const v in y){if(En(v))continue;const D=y[v],I=p[v];D!==I&&v!=="value"&&o(d,v,I,D,A,w)}"value"in y&&o(d,"value",p.value,y.value,A)}},L=(d,p,y,w,A,v,D,I,P)=>{const R=p.el=d?d.el:l(""),q=p.anchor=d?d.anchor:l("");let{patchFlag:M,dynamicChildren:V,slotScopeIds:W}=p;W&&(I=I?I.concat(W):W),d==null?(r(R,y,w),r(q,y,w),U(p.children||[],y,q,A,v,D,I,P)):M>0&&M&64&&V&&d.dynamicChildren&&d.dynamicChildren.length===V.length?($(d.dynamicChildren,V,y,A,v,D,I),(p.key!=null||A&&p===A.subTree)&&Gs(d,p,!0)):Z(d,p,y,q,A,v,D,I,P)},Q=(d,p,y,w,A,v,D,I,P)=>{p.slotScopeIds=I,d==null?p.shapeFlag&512?A.ctx.activate(p,y,w,D,P):le(p,y,w,A,v,D,P):we(d,p,P)},le=(d,p,y,w,A,v,D)=>{const I=d.component=Pu(d,w,A);if(yl(d)&&(I.ctx.renderer=H),Nu(I,!1,D),I.asyncDep){if(A&&A.registerDep(I,ee,D),!d.el){const P=I.subTree=be(ht);C(null,P,p,y),d.placeholder=P.el}}else ee(I,d,p,y,A,v,D)},we=(d,p,y)=>{const w=p.component=d.component;if(au(d,p,y))if(w.asyncDep&&!w.asyncResolved){z(w,p,y);return}else w.next=p,w.update();else p.el=d.el,w.vnode=p},ee=(d,p,y,w,A,v,D)=>{const I=()=>{if(d.isMounted){let{next:M,bu:V,u:W,parent:ne,vnode:ue}=d;{const nt=Ml(d);if(nt){M&&(M.el=ue.el,z(d,M,D)),nt.asyncDep.then(()=>{d.isUnmounted||I()});return}}let ie=M,Ie;Mt(d,!1),M?(M.el=ue.el,z(d,M,D)):M=ue,V&&er(V),(Ie=M.props&&M.props.onVnodeBeforeUpdate)&&st(Ie,ne,M,ue),Mt(d,!0);const Le=bo(d),tt=d.subTree;d.subTree=Le,b(tt,Le,f(tt.el),S(tt),d,A,v),M.el=Le.el,ie===null&&uu(d,Le.el),W&&Te(W,A),(Ie=M.props&&M.props.onVnodeUpdated)&&Te(()=>st(Ie,ne,M,ue),A)}else{let M;const{el:V,props:W}=p,{bm:ne,m:ue,parent:ie,root:Ie,type:Le}=d,tt=sn(p);Mt(d,!1),ne&&er(ne),!tt&&(M=W&&W.onVnodeBeforeMount)&&st(M,ie,p),Mt(d,!0);{Ie.ce&&Ie.ce._def.shadowRoot!==!1&&Ie.ce._injectChildStyle(Le);const nt=d.subTree=bo(d);b(null,nt,y,w,d,A,v),p.el=nt.el}if(ue&&Te(ue,A),!tt&&(M=W&&W.onVnodeMounted)){const nt=p;Te(()=>st(M,ie,nt),A)}(p.shapeFlag&256||ie&&sn(ie.vnode)&&ie.vnode.shapeFlag&256)&&d.a&&Te(d.a,A),d.isMounted=!0,p=y=w=null}};d.scope.on();const P=d.effect=new ji(I);d.scope.off();const R=d.update=P.run.bind(P),q=d.job=P.runIfDirty.bind(P);q.i=d,q.id=d.uid,P.scheduler=()=>qs(q),Mt(d,!0),R()},z=(d,p,y)=>{p.component=d;const w=d.vnode.props;d.vnode=p,d.next=null,du(d,p.props,w,y),gu(d,p.children,y),bt(),ao(d),Et()},Z=(d,p,y,w,A,v,D,I,P=!1)=>{const R=d&&d.children,q=d?d.shapeFlag:0,M=p.children,{patchFlag:V,shapeFlag:W}=p;if(V>0){if(V&128){Ye(R,M,y,w,A,v,D,I,P);return}else if(V&256){He(R,M,y,w,A,v,D,I,P);return}}W&8?(q&16&&Ve(R,A,v),M!==R&&a(y,M)):q&16?W&16?Ye(R,M,y,w,A,v,D,I,P):Ve(R,A,v,!0):(q&8&&a(y,""),W&16&&U(M,y,w,A,v,D,I,P))},He=(d,p,y,w,A,v,D,I,P)=>{d=d||tn,p=p||tn;const R=d.length,q=p.length,M=Math.min(R,q);let V;for(V=0;Vq?Ve(d,A,v,!0,!1,M):U(p,y,w,A,v,D,I,P,M)},Ye=(d,p,y,w,A,v,D,I,P)=>{let R=0;const q=p.length;let M=d.length-1,V=q-1;for(;R<=M&&R<=V;){const W=d[R],ne=p[R]=P?Nt(p[R]):at(p[R]);if(Yt(W,ne))b(W,ne,y,null,A,v,D,I,P);else break;R++}for(;R<=M&&R<=V;){const W=d[M],ne=p[V]=P?Nt(p[V]):at(p[V]);if(Yt(W,ne))b(W,ne,y,null,A,v,D,I,P);else break;M--,V--}if(R>M){if(R<=V){const W=V+1,ne=WV)for(;R<=M;)me(d[R],A,v,!0),R++;else{const W=R,ne=R,ue=new Map;for(R=ne;R<=V;R++){const Me=p[R]=P?Nt(p[R]):at(p[R]);Me.key!=null&&ue.set(Me.key,R)}let ie,Ie=0;const Le=V-ne+1;let tt=!1,nt=0;const pn=new Array(Le);for(R=0;R=Le){me(Me,A,v,!0);continue}let rt;if(Me.key!=null)rt=ue.get(Me.key);else for(ie=ne;ie<=V;ie++)if(pn[ie-ne]===0&&Yt(Me,p[ie])){rt=ie;break}rt===void 0?me(Me,A,v,!0):(pn[rt-ne]=R+1,rt>=nt?nt=rt:tt=!0,b(Me,p[rt],y,null,A,v,D,I,P),Ie++)}const ro=tt?Eu(pn):tn;for(ie=ro.length-1,R=Le-1;R>=0;R--){const Me=ne+R,rt=p[Me],so=p[Me+1],oo=Me+1{const{el:v,type:D,transition:I,children:P,shapeFlag:R}=d;if(R&6){ye(d.component.subTree,p,y,w);return}if(R&128){d.suspense.move(p,y,w);return}if(R&64){D.move(d,p,y,H);return}if(D===ve){r(v,p,y);for(let M=0;MI.enter(v),A);else{const{leave:M,delayLeave:V,afterLeave:W}=I,ne=()=>{d.ctx.isUnmounted?s(v):r(v,p,y)},ue=()=>{v._isLeaving&&v[Ut](!0),M(v,()=>{ne(),W&&W()})};V?V(v,ne,ue):ue()}else r(v,p,y)},me=(d,p,y,w=!1,A=!1)=>{const{type:v,props:D,ref:I,children:P,dynamicChildren:R,shapeFlag:q,patchFlag:M,dirs:V,cacheIndex:W}=d;if(M===-2&&(A=!1),I!=null&&(bt(),Rn(I,null,y,d,!0),Et()),W!=null&&(p.renderCache[W]=void 0),q&256){p.ctx.deactivate(d);return}const ne=q&1&&V,ue=!sn(d);let ie;if(ue&&(ie=D&&D.onVnodeBeforeUnmount)&&st(ie,p,d),q&6)et(d.component,y,w);else{if(q&128){d.suspense.unmount(y,w);return}ne&&Ft(d,null,p,"beforeUnmount"),q&64?d.type.remove(d,p,y,H,w):R&&!R.hasOnce&&(v!==ve||M>0&&M&64)?Ve(R,p,y,!1,!0):(v===ve&&M&384||!A&&q&16)&&Ve(P,p,y),w&&Ze(d)}(ue&&(ie=D&&D.onVnodeUnmounted)||ne)&&Te(()=>{ie&&st(ie,p,d),ne&&Ft(d,null,p,"unmounted")},y)},Ze=d=>{const{type:p,el:y,anchor:w,transition:A}=d;if(p===ve){We(y,w);return}if(p===rr){O(d);return}const v=()=>{s(y),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(d.shapeFlag&1&&A&&!A.persisted){const{leave:D,delayLeave:I}=A,P=()=>D(y,v);I?I(d.el,v,P):P()}else v()},We=(d,p)=>{let y;for(;d!==p;)y=h(d),s(d),d=y;s(p)},et=(d,p,y)=>{const{bum:w,scope:A,job:v,subTree:D,um:I,m:P,a:R}=d;vo(P),vo(R),w&&er(w),A.stop(),v&&(v.flags|=8,me(D,d,p,y)),I&&Te(I,p),Te(()=>{d.isUnmounted=!0},p)},Ve=(d,p,y,w=!1,A=!1,v=0)=>{for(let D=v;D{if(d.shapeFlag&6)return S(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const p=h(d.anchor||d.el),y=p&&p[dl];return y?h(y):p};let k=!1;const F=(d,p,y)=>{let w;d==null?p._vnode&&(me(p._vnode,null,null,!0),w=p._vnode.component):b(p._vnode||null,d,p,null,null,null,y),p._vnode=d,k||(k=!0,ao(w),il(),k=!1)},H={p:b,um:me,m:ye,r:Ze,mt:le,mc:U,pc:Z,pbc:$,n:S,o:e};return{render:F,hydrate:void 0,createApp:ru(F)}}function zr({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 Mt({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function bu(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Gs(e,t,n=!1){const r=e.children,s=t.children;if(K(r)&&K(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Ml(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Ml(t)}function vo(e){if(e)for(let t=0;te.__isSuspense;function wu(e,t){t&&t.pendingBranch?K(e)?t.effects.push(...e):t.effects.push(e):Ta(e)}const ve=Symbol.for("v-fgt"),Ir=Symbol.for("v-txt"),ht=Symbol.for("v-cmt"),rr=Symbol.for("v-stc"),xn=[];let Ue=null;function qe(e=!1){xn.push(Ue=e?null:[])}function vu(){xn.pop(),Ue=xn[xn.length-1]||null}let Mn=1;function mr(e,t=!1){Mn+=e,e<0&&Ue&&t&&(Ue.hasOnce=!0)}function Ul(e){return e.dynamicChildren=Mn>0?Ue||tn:null,vu(),Mn>0&&Ue&&Ue.push(e),e}function Ct(e,t,n,r,s,o){return Ul(ke(e,t,n,r,s,o,!0))}function gr(e,t,n,r,s){return Ul(be(e,t,n,r,s,!0))}function kn(e){return e?e.__v_isVNode===!0:!1}function Yt(e,t){return e.type===t.type&&e.key===t.key}const jl=({key:e})=>e??null,sr=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?pe(e)||de(e)||J(e)?{i:Ce,r:e,k:t,f:!!n}:e:null);function ke(e,t=null,n=null,r=0,s=null,o=e===ve?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&jl(t),ref:t&&sr(t),scopeId:cl,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:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Ce};return l?(zs(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=pe(n)?8:16),Mn>0&&!i&&Ue&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Ue.push(c),c}const be=Su;function Su(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===za)&&(e=ht),kn(e)){const l=Wt(e,t,!0);return n&&zs(l,n),Mn>0&&!o&&Ue&&(l.shapeFlag&6?Ue[Ue.indexOf(e)]=l:Ue.push(l)),l.patchFlag=-2,l}if(Fu(e)&&(e=e.__vccOpts),t){t=Au(t);let{class:l,style:c}=t;l&&!pe(l)&&(t.class=Nn(l)),ae(c)&&(xr(c)&&!K(c)&&(c=Ee({},c)),t.style=Fs(c))}const i=pe(e)?1:Bl(e)?128:La(e)?64:ae(e)?4:J(e)?2:0;return ke(e,t,n,r,s,i,o,!0)}function Au(e){return e?xr(e)||Pl(e)?Ee({},e):e:null}function Wt(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?xu(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&jl(u),ref:t&&t.ref?n&&o?K(o)?o.concat(sr(t)):[o,sr(t)]:sr(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&&r&&Fn(a,c.clone(a)),a}function Ru(e=" ",t=0){return be(Ir,null,e,t)}function Op(e,t){const n=be(rr,null,e);return n.staticCount=t,n}function Cu(e="",t=!1){return t?(qe(),gr(ht,null,e)):be(ht,null,e)}function at(e){return e==null||typeof e=="boolean"?be(ht):K(e)?be(ve,null,e.slice()):kn(e)?Nt(e):be(Ir,null,String(e))}function Nt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Wt(e)}function zs(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(K(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),zs(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Pl(t)?t._ctx=Ce:s===3&&Ce&&(Ce.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else J(t)?(t={default:t,_ctx:Ce},n=32):(t=String(t),r&64?(n=16,t=[Ru(t)]):n=8);e.children=t,e.shapeFlag|=n}function xu(...e){const t={};for(let n=0;nNe||Ce;let yr,_s;{const e=Rr(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};yr=t("__VUE_INSTANCE_SETTERS__",n=>Ne=n),_s=t("__VUE_SSR_SETTERS__",n=>Bn=n)}const Hn=e=>{const t=Ne;return yr(e),e.scope.on(),()=>{e.scope.off(),yr(t)}},So=()=>{Ne&&Ne.scope.off(),yr(null)};function Hl(e){return e.vnode.shapeFlag&4}let Bn=!1;function Nu(e,t=!1,n=!1){t&&_s(t);const{props:r,children:s}=e.vnode,o=Hl(e);fu(e,r,o,t),mu(e,s,n||t);const i=o?Iu(e,t):void 0;return t&&_s(!1),i}function Iu(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Xa);const{setup:r}=n;if(r){bt();const s=e.setupContext=r.length>1?Du(e):null,o=Hn(e),i=jn(r,e,0,[e.props,s]),l=Oi(i);if(Et(),o(),(l||e.sp)&&!sn(e)&&gl(e),l){if(i.then(So,So),t)return i.then(c=>{Ao(e,c)}).catch(c=>{Tr(c,e,0)});e.asyncDep=i}else Ao(e,i)}else Vl(e)}function Ao(e,t,n){J(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ae(t)&&(e.setupState=nl(t)),Vl(e)}function Vl(e,t,n){const r=e.type;e.render||(e.render=r.render||ut);{const s=Hn(e);bt();try{Qa(e)}finally{Et(),s()}}}const Lu={get(e,t){return Ae(e,"get",""),e[t]}};function Du(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Lu),slots:e.slots,emit:e.emit,expose:t}}function Lr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(nl(Vs(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Cn)return Cn[n](e)},has(t,n){return n in t||n in Cn}})):e.proxy}function Fu(e){return J(e)&&"__vccOpts"in e}const Be=(e,t)=>Sa(e,t,Bn);function $l(e,t,n){try{mr(-1);const r=arguments.length;return r===2?ae(t)&&!K(t)?kn(t)?be(e,null,[t]):be(e,t):be(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&kn(n)&&(n=[n]),be(e,t,n))}finally{mr(1)}}const Mu="3.5.26";let bs;const Ro=typeof window<"u"&&window.trustedTypes;if(Ro)try{bs=Ro.createPolicy("vue",{createHTML:e=>e})}catch{}const ql=bs?e=>bs.createHTML(e):e=>e,ku="http://www.w3.org/2000/svg",Bu="http://www.w3.org/1998/Math/MathML",gt=typeof document<"u"?document:null,Co=gt&>.createElement("template"),Uu={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?gt.createElementNS(ku,e):t==="mathml"?gt.createElementNS(Bu,e):n?gt.createElement(e,{is:n}):gt.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>gt.createTextNode(e),createComment:e=>gt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>gt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{Co.innerHTML=ql(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=Co.content;if(r==="svg"||r==="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]}},At="transition",gn="animation",ln=Symbol("_vtc"),Kl={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},ju=Ee({},ka,Kl),kt=(e,t=[])=>{K(e)?e.forEach(n=>n(...t)):e&&e(...t)},xo=e=>e?K(e)?e.some(t=>t.length>1):e.length>1:!1;function Hu(e){const t={};for(const L in e)L in Kl||(t[L]=e[L]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=o,appearActiveClass:u=i,appearToClass:a=l,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:h=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,g=Vu(s),b=g&&g[0],E=g&&g[1],{onBeforeEnter:C,onEnter:T,onEnterCancelled:N,onLeave:O,onLeaveCancelled:B,onBeforeAppear:G=C,onAppear:j=T,onAppearCancelled:U=N}=t,x=(L,Q,le,we)=>{L._enterCancelled=we,xt(L,Q?a:l),xt(L,Q?u:i),le&&le()},$=(L,Q)=>{L._isLeaving=!1,xt(L,f),xt(L,m),xt(L,h),Q&&Q()},Y=L=>(Q,le)=>{const we=L?j:T,ee=()=>x(Q,L,le);kt(we,[Q,ee]),To(()=>{xt(Q,L?c:o),lt(Q,L?a:l),xo(we)||Oo(Q,r,b,ee)})};return Ee(t,{onBeforeEnter(L){kt(C,[L]),lt(L,o),lt(L,i)},onBeforeAppear(L){kt(G,[L]),lt(L,c),lt(L,u)},onEnter:Y(!1),onAppear:Y(!0),onLeave(L,Q){L._isLeaving=!0;const le=()=>$(L,Q);lt(L,f),L._enterCancelled?(lt(L,h),Es(L)):(Es(L),lt(L,h)),To(()=>{L._isLeaving&&(xt(L,f),lt(L,m),xo(O)||Oo(L,r,E,le))}),kt(O,[L,le])},onEnterCancelled(L){x(L,!1,void 0,!0),kt(N,[L])},onAppearCancelled(L){x(L,!0,void 0,!0),kt(U,[L])},onLeaveCancelled(L){$(L),kt(B,[L])}})}function Vu(e){if(e==null)return null;if(ae(e))return[Jr(e.enter),Jr(e.leave)];{const t=Jr(e);return[t,t]}}function Jr(e){return Vc(e)}function lt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[ln]||(e[ln]=new Set)).add(t)}function xt(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[ln];n&&(n.delete(t),n.size||(e[ln]=void 0))}function To(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let $u=0;function Oo(e,t,n,r){const s=e._endId=++$u,o=()=>{s===e._endId&&r()};if(n!=null)return setTimeout(o,n);const{type:i,timeout:l,propCount:c}=Wl(e,t);if(!i)return r();const u=i+"end";let a=0;const f=()=>{e.removeEventListener(u,h),o()},h=m=>{m.target===e&&++a>=c&&f()};setTimeout(()=>{a(n[g]||"").split(", "),s=r(`${At}Delay`),o=r(`${At}Duration`),i=Po(s,o),l=r(`${gn}Delay`),c=r(`${gn}Duration`),u=Po(l,c);let a=null,f=0,h=0;t===At?i>0&&(a=At,f=i,h=o.length):t===gn?u>0&&(a=gn,f=u,h=c.length):(f=Math.max(i,u),a=f>0?i>u?At:gn:null,h=a?a===At?o.length:c.length:0);const m=a===At&&/\b(?:transform|all)(?:,|$)/.test(r(`${At}Property`).toString());return{type:a,timeout:f,propCount:h,hasTransform:m}}function Po(e,t){for(;e.lengthNo(n)+No(e[r])))}function No(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Es(e){return(e?e.ownerDocument:document).body.offsetHeight}function qu(e,t,n){const r=e[ln];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Io=Symbol("_vod"),Ku=Symbol("_vsh"),Wu=Symbol(""),Gu=/(?:^|;)\s*display\s*:/;function zu(e,t,n){const r=e.style,s=pe(n);let o=!1;if(n&&!s){if(t)if(pe(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&or(r,l,"")}else for(const i in t)n[i]==null&&or(r,i,"");for(const i in n)i==="display"&&(o=!0),or(r,i,n[i])}else if(s){if(t!==n){const i=r[Wu];i&&(n+=";"+i),r.cssText=n,o=Gu.test(n)}}else t&&e.removeAttribute("style");Io in e&&(e[Io]=o?r.display:"",e[Ku]&&(r.display="none"))}const Lo=/\s*!important$/;function or(e,t,n){if(K(n))n.forEach(r=>or(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Ju(e,t);Lo.test(n)?e.setProperty(zt(r),n.replace(Lo,""),"important"):e[r]=n}}const Do=["Webkit","Moz","ms"],Xr={};function Ju(e,t){const n=Xr[t];if(n)return n;let r=Dt(t);if(r!=="filter"&&r in e)return Xr[t]=r;r=Ii(r);for(let s=0;sQr||(Zu.then(()=>Qr=0),Qr=Date.now());function tf(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Je(nf(r,n.value),t,5,[r])};return n.value=e,n.attached=ef(),n}function nf(e,t){if(K(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const jo=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,rf=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?qu(e,r,i):t==="style"?zu(e,n,r):wr(t)?Is(t)||Qu(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):sf(e,t,r,i))?(ko(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Mo(e,t,r,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!pe(r))?ko(e,Dt(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Mo(e,t,r,i))};function sf(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&jo(t)&&J(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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return jo(t)&&pe(n)?!1:t in e}const Gl=new WeakMap,zl=new WeakMap,_r=Symbol("_moveCb"),Ho=Symbol("_enterCb"),of=e=>(delete e.props.mode,e),lf=of({name:"TransitionGroup",props:Ee({},ju,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=Js(),r=Ma();let s,o;return El(()=>{if(!s.length)return;const i=e.moveClass||`${e.name||"v"}-move`;if(!df(s[0].el,n.vnode.el,i)){s=[];return}s.forEach(af),s.forEach(uf);const l=s.filter(ff);Es(n.vnode.el),l.forEach(c=>{const u=c.el,a=u.style;lt(u,i),a.transform=a.webkitTransform=a.transitionDuration="";const f=u[_r]=h=>{h&&h.target!==u||(!h||h.propertyName.endsWith("transform"))&&(u.removeEventListener("transitionend",f),u[_r]=null,xt(u,i))};u.addEventListener("transitionend",f)}),s=[]}),()=>{const i=re(e),l=Hu(i);let c=i.tag||ve;if(s=[],o)for(let u=0;u{l.split(/\s+/).forEach(c=>c&&r.classList.remove(c))}),n.split(/\s+/).forEach(l=>l&&r.classList.add(l)),r.style.display="none";const o=t.nodeType===1?t:t.parentNode;o.appendChild(r);const{hasTransform:i}=Wl(r);return o.removeChild(r),i}const Vo=e=>{const t=e.props["onUpdate:modelValue"]||!1;return K(t)?n=>er(t,n):t};function hf(e){e.target.composing=!0}function $o(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Yr=Symbol("_assign");function qo(e,t,n){return t&&(e=e.trim()),n&&(e=Ds(e)),e}const Pp={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Yr]=Vo(s);const o=r||s.props&&s.props.type==="number";Zt(e,t?"change":"input",i=>{i.target.composing||e[Yr](qo(e.value,n,o))}),(n||o)&&Zt(e,"change",()=>{e.value=qo(e.value,n,o)}),t||(Zt(e,"compositionstart",hf),Zt(e,"compositionend",$o),Zt(e,"change",$o))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Yr]=Vo(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?Ds(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},pf=["ctrl","shift","alt","meta"],mf={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>pf.some(n=>e[`${n}Key`]&&!t.includes(n))},Np=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const t=yf().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Ef(r);if(!s)return;const o=t._component;!J(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,bf(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t});function bf(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Ef(e){return pe(e)?document.querySelector(e):e}let Jl;const Dr=e=>Jl=e,Xl=Symbol();function ws(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Tn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Tn||(Tn={}));function wf(){const e=Bi(!0),t=e.run(()=>$t({}));let n=[],r=[];const s=Vs({install(o){Dr(s),s._a=o,o.provide(Xl,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const Ql=()=>{};function Wo(e,t,n,r=Ql){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&Ui()&&Jc(s),s}function Xt(e,...t){e.forEach(n=>{n(...t)})}const vf=e=>e(),Go=Symbol(),Zr=Symbol();function vs(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];ws(s)&&ws(r)&&e.hasOwnProperty(n)&&!de(r)&&!ft(r)?e[n]=vs(s,r):e[n]=r}return e}const Sf=Symbol();function Af(e){return!ws(e)||!Object.prototype.hasOwnProperty.call(e,Sf)}const{assign:Tt}=Object;function Rf(e){return!!(de(e)&&e.effect)}function Cf(e,t,n,r){const{state:s,actions:o,getters:i}=t,l=n.state.value[e];let c;function u(){l||(n.state.value[e]=s?s():{});const a=_a(n.state.value[e]);return Tt(a,o,Object.keys(i||{}).reduce((f,h)=>(f[h]=Vs(Be(()=>{Dr(n);const m=n._s.get(e);return i[h].call(m,m)})),f),{}))}return c=Yl(e,u,t,n,r,!0),c}function Yl(e,t,n={},r,s,o){let i;const l=Tt({actions:{}},n),c={deep:!0};let u,a,f=new Set,h=new Set,m;const g=r.state.value[e];!o&&!g&&(r.state.value[e]={}),$t({});let b;function E(U){let x;u=a=!1,typeof U=="function"?(U(r.state.value[e]),x={type:Tn.patchFunction,storeId:e,events:m}):(vs(r.state.value[e],U),x={type:Tn.patchObject,payload:U,storeId:e,events:m});const $=b=Symbol();$s().then(()=>{b===$&&(u=!0)}),a=!0,Xt(f,x,r.state.value[e])}const C=o?function(){const{state:x}=n,$=x?x():{};this.$patch(Y=>{Tt(Y,$)})}:Ql;function T(){i.stop(),f.clear(),h.clear(),r._s.delete(e)}const N=(U,x="")=>{if(Go in U)return U[Zr]=x,U;const $=function(){Dr(r);const Y=Array.from(arguments),L=new Set,Q=new Set;function le(z){L.add(z)}function we(z){Q.add(z)}Xt(h,{args:Y,name:$[Zr],store:B,after:le,onError:we});let ee;try{ee=U.apply(this&&this.$id===e?this:B,Y)}catch(z){throw Xt(Q,z),z}return ee instanceof Promise?ee.then(z=>(Xt(L,z),z)).catch(z=>(Xt(Q,z),Promise.reject(z))):(Xt(L,ee),ee)};return $[Go]=!0,$[Zr]=x,$},O={_p:r,$id:e,$onAction:Wo.bind(null,h),$patch:E,$reset:C,$subscribe(U,x={}){const $=Wo(f,U,x.detached,()=>Y()),Y=i.run(()=>Sn(()=>r.state.value[e],L=>{(x.flush==="sync"?a:u)&&U({storeId:e,type:Tn.direct,events:m},L)},Tt({},c,x)));return $},$dispose:T},B=fn(O);r._s.set(e,B);const j=(r._a&&r._a.runWithContext||vf)(()=>r._e.run(()=>(i=Bi()).run(()=>t({action:N}))));for(const U in j){const x=j[U];if(de(x)&&!Rf(x)||ft(x))o||(g&&Af(x)&&(de(x)?x.value=g[U]:vs(x,g[U])),r.state.value[e][U]=x);else if(typeof x=="function"){const $=N(x,U);j[U]=$,l.actions[U]=x}}return Tt(B,j),Tt(re(B),j),Object.defineProperty(B,"$state",{get:()=>r.state.value[e],set:U=>{E(x=>{Tt(x,U)})}}),r._p.forEach(U=>{Tt(B,i.run(()=>U({store:B,app:r._a,pinia:r,options:l})))}),g&&o&&n.hydrate&&n.hydrate(B.$state,g),u=!0,a=!0,B}function xf(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,l){const c=Oa();return i=i||(c?Ke(Xl,null):null),i&&Dr(i),i=Jl,i._s.has(e)||(s?Yl(e,t,r,i):Cf(e,r,i)),i._s.get(e)}return o.$id=e,o}function Ip(e){const t=re(e),n={};for(const r in t){const s=t[r];s.effect?n[r]=Be({get:()=>e[r],set(o){e[r]=o}}):(de(s)||ft(s))&&(n[r]=wa(e,r))}return n}const Tf="modulepreload",Of=function(e){return"/"+e},zo={},ot=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let c=function(u){return Promise.all(u.map(a=>Promise.resolve(a).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=c(n.map(u=>{if(u=Of(u),u in zo)return;zo[u]=!0;const a=u.endsWith(".css"),f=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const h=document.createElement("link");if(h.rel=a?"stylesheet":Tf,a||(h.as="script"),h.crossOrigin="",h.href=u,l&&h.setAttribute("nonce",l),document.head.appendChild(h),a)return new Promise((m,g)=>{h.addEventListener("load",m),h.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})};const en=typeof document<"u";function Zl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Pf(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Zl(e.default)}const se=Object.assign;function es(e,t){const n={};for(const r in t){const s=t[r];n[r]=Xe(s)?s.map(e):e(s)}return n}const On=()=>{},Xe=Array.isArray;function Jo(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const ec=/#/g,Nf=/&/g,If=/\//g,Lf=/=/g,Df=/\?/g,tc=/\+/g,Ff=/%5B/g,Mf=/%5D/g,nc=/%5E/g,kf=/%60/g,rc=/%7B/g,Bf=/%7C/g,sc=/%7D/g,Uf=/%20/g;function Xs(e){return e==null?"":encodeURI(""+e).replace(Bf,"|").replace(Ff,"[").replace(Mf,"]")}function jf(e){return Xs(e).replace(rc,"{").replace(sc,"}").replace(nc,"^")}function Ss(e){return Xs(e).replace(tc,"%2B").replace(Uf,"+").replace(ec,"%23").replace(Nf,"%26").replace(kf,"`").replace(rc,"{").replace(sc,"}").replace(nc,"^")}function Hf(e){return Ss(e).replace(Lf,"%3D")}function Vf(e){return Xs(e).replace(ec,"%23").replace(Df,"%3F")}function $f(e){return Vf(e).replace(If,"%2F")}function Un(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const qf=/\/$/,Kf=e=>e.replace(qf,"");function ts(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return c=l>=0&&c>l?-1:c,c>=0&&(r=t.slice(0,c),o=t.slice(c,l>0?l:t.length),s=e(o.slice(1))),l>=0&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=Jf(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:Un(i)}}function Wf(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Xo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Gf(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&cn(t.matched[r],n.matched[s])&&oc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function cn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function oc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!zf(e[n],t[n]))return!1;return!0}function zf(e,t){return Xe(e)?Qo(e,t):Xe(t)?Qo(t,e):e?.valueOf()===t?.valueOf()}function Qo(e,t){return Xe(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function Jf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const Rt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let As=(function(e){return e.pop="pop",e.push="push",e})({}),ns=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function Xf(e){if(!e)if(en){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Kf(e)}const Qf=/^[^#]+#/;function Yf(e,t){return e.replace(Qf,"#")+t}function Zf(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const Fr=()=>({left:window.scrollX,top:window.scrollY});function ed(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=Zf(s,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 Yo(e,t){return(history.state?history.state.position-t:-1)+e}const Rs=new Map;function td(e,t){Rs.set(e,t)}function nd(e){const t=Rs.get(e);return Rs.delete(e),t}function rd(e){return typeof e=="string"||e&&typeof e=="object"}function ic(e){return typeof e=="string"||typeof e=="symbol"}let he=(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 lc=Symbol("");he.MATCHER_NOT_FOUND+"",he.NAVIGATION_GUARD_REDIRECT+"",he.NAVIGATION_ABORTED+"",he.NAVIGATION_CANCELLED+"",he.NAVIGATION_DUPLICATED+"";function an(e,t){return se(new Error,{type:e,[lc]:!0},t)}function mt(e,t){return e instanceof Error&&lc in e&&(t==null||!!(e.type&t))}const sd=["params","query","hash"];function od(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 id(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&Ss(s)):[r&&Ss(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function ld(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=Xe(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const cd=Symbol(""),ei=Symbol(""),Mr=Symbol(""),Qs=Symbol(""),Cs=Symbol("");function yn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function It(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,c)=>{const u=h=>{h===!1?c(an(he.NAVIGATION_ABORTED,{from:n,to:t})):h instanceof Error?c(h):rd(h)?c(an(he.NAVIGATION_GUARD_REDIRECT,{from:t,to:h})):(i&&r.enterCallbacks[s]===i&&typeof h=="function"&&i.push(h),l())},a=o(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(a);e.length<3&&(f=f.then(u)),f.catch(h=>c(h))})}function rs(e,t,n,r,s=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(Zl(c)){const u=(c.__vccOpts||c)[t];u&&o.push(It(u,n,r,i,l,s))}else{let u=c();o.push(()=>u.then(a=>{if(!a)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=Pf(a)?a.default:a;i.mods[l]=a,i.components[l]=f;const h=(f.__vccOpts||f)[t];return h&&It(h,n,r,i,l,s)()}))}}return o}function ad(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;icn(u,l))?r.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(u=>cn(u,c))||s.push(c))}return[n,r,s]}let ud=()=>location.protocol+"//"+location.host;function cc(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(i);return l[0]!=="/"&&(l="/"+l),Xo(l,"")}return Xo(n,e)+r+s}function fd(e,t,n,r){let s=[],o=[],i=null;const l=({state:h})=>{const m=cc(e,location),g=n.value,b=t.value;let E=0;if(h){if(n.value=m,t.value=h,i&&i===g){i=null;return}E=b?h.position-b.position:0}else r(m);s.forEach(C=>{C(n.value,g,{delta:E,type:As.pop,direction:E?E>0?ns.forward:ns.back:ns.unknown})})};function c(){i=n.value}function u(h){s.push(h);const m=()=>{const g=s.indexOf(h);g>-1&&s.splice(g,1)};return o.push(m),m}function a(){if(document.visibilityState==="hidden"){const{history:h}=window;if(!h.state)return;h.replaceState(se({},h.state,{scroll:Fr()}),"")}}function f(){for(const h of o)h();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 ti(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?Fr():null}}function dd(e){const{history:t,location:n}=window,r={value:cc(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(c,u,a){const f=e.indexOf("#"),h=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+c:ud()+e+c;try{t[a?"replaceState":"pushState"](u,"",h),s.value=u}catch(m){console.error(m),n[a?"replace":"assign"](h)}}function i(c,u){o(c,se({},t.state,ti(s.value.back,c,s.value.forward,!0),u,{position:s.value.position}),!0),r.value=c}function l(c,u){const a=se({},s.value,t.state,{forward:c,scroll:Fr()});o(a.current,a,!0),o(c,se({},ti(r.value,c,null),{position:a.position+1},u),!1),r.value=c}return{location:r,state:s,push:l,replace:i}}function hd(e){e=Xf(e);const t=dd(e),n=fd(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=se({location:"",base:e,go:r,createHref:Yf.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function pd(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),hd(e)}let jt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var _e=(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})(_e||{});const md={type:jt.Static,value:""},gd=/[a-zA-Z0-9_]/;function yd(e){if(!e)return[[]];if(e==="/")return[[md]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${u}": ${m}`)}let n=_e.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,c,u="",a="";function f(){u&&(n===_e.Static?o.push({type:jt.Static,value:u}):n===_e.Param||n===_e.ParamRegExp||n===_e.ParamRegExpEnd?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:jt.Param,value:u,regexp:a,repeatable:c==="*"||c==="+",optional:c==="*"||c==="?"})):t("Invalid state to consume buffer"),u="")}function h(){u+=c}for(;lt.length?t.length===1&&t[0]===Oe.Static+Oe.Segment?1:-1:0}function ac(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const vd={strict:!1,end:!0,sensitive:!1};function Sd(e,t,n){const r=Ed(yd(e.path),n),s=se(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function Ad(e,t){const n=[],r=new Map;t=Jo(vd,t);function s(f){return r.get(f)}function o(f,h,m){const g=!m,b=oi(f);b.aliasOf=m&&m.record;const E=Jo(t,f),C=[b];if("alias"in f){const O=typeof f.alias=="string"?[f.alias]:f.alias;for(const B of O)C.push(oi(se({},b,{components:m?m.record.components:b.components,path:B,aliasOf:m?m.record:b})))}let T,N;for(const O of C){const{path:B}=O;if(h&&B[0]!=="/"){const G=h.record.path,j=G[G.length-1]==="/"?"":"/";O.path=h.record.path+(B&&j+B)}if(T=Sd(O,h,E),m?m.alias.push(T):(N=N||T,N!==T&&N.alias.push(T),g&&f.name&&!ii(T)&&i(f.name)),uc(T)&&c(T),b.children){const G=b.children;for(let j=0;j{i(N)}:On}function i(f){if(ic(f)){const h=r.get(f);h&&(r.delete(f),n.splice(n.indexOf(h),1),h.children.forEach(i),h.alias.forEach(i))}else{const h=n.indexOf(f);h>-1&&(n.splice(h,1),f.record.name&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function c(f){const h=xd(f,n);n.splice(h,0,f),f.record.name&&!ii(f)&&r.set(f.record.name,f)}function u(f,h){let m,g={},b,E;if("name"in f&&f.name){if(m=r.get(f.name),!m)throw an(he.MATCHER_NOT_FOUND,{location:f});E=m.record.name,g=se(si(h.params,m.keys.filter(N=>!N.optional).concat(m.parent?m.parent.keys.filter(N=>N.optional):[]).map(N=>N.name)),f.params&&si(f.params,m.keys.map(N=>N.name))),b=m.stringify(g)}else if(f.path!=null)b=f.path,m=n.find(N=>N.re.test(b)),m&&(g=m.parse(b),E=m.record.name);else{if(m=h.name?r.get(h.name):n.find(N=>N.re.test(h.path)),!m)throw an(he.MATCHER_NOT_FOUND,{location:f,currentLocation:h});E=m.record.name,g=se({},h.params,f.params),b=m.stringify(g)}const C=[];let T=m;for(;T;)C.unshift(T.record),T=T.parent;return{name:E,path:b,params:g,matched:C,meta:Cd(C)}}e.forEach(f=>o(f));function a(){n.length=0,r.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:a,getRoutes:l,getRecordMatcher:s}}function si(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function oi(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Rd(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 Rd(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function ii(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Cd(e){return e.reduce((t,n)=>se(t,n.meta),{})}function xd(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;ac(e,t[o])<0?r=o:n=o+1}const s=Td(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function Td(e){let t=e;for(;t=t.parent;)if(uc(t)&&ac(e,t)===0)return t}function uc({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function li(e){const t=Ke(Mr),n=Ke(Qs),r=Be(()=>{const c=dt(e.to);return t.resolve(c)}),s=Be(()=>{const{matched:c}=r.value,{length:u}=c,a=c[u-1],f=n.matched;if(!a||!f.length)return-1;const h=f.findIndex(cn.bind(null,a));if(h>-1)return h;const m=ci(c[u-2]);return u>1&&ci(a)===m&&f[f.length-1].path!==m?f.findIndex(cn.bind(null,c[u-2])):h}),o=Be(()=>s.value>-1&&Ld(n.params,r.value.params)),i=Be(()=>s.value>-1&&s.value===n.matched.length-1&&oc(n.params,r.value.params));function l(c={}){if(Id(c)){const u=t[dt(e.replace)?"replace":"push"](dt(e.to)).catch(On);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Be(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function Od(e){return e.length===1?e[0]:e}const Pd=Or({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:li,setup(e,{slots:t}){const n=fn(li(e)),{options:r}=Ke(Mr),s=Be(()=>({[ai(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[ai(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&Od(t.default(n));return e.custom?o:$l("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),Nd=Pd;function Id(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 Ld(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!Xe(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function ci(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const ai=(e,t,n)=>e??t??n,Dd=Or({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=Ke(Cs),s=Be(()=>e.route||r.value),o=Ke(ei,0),i=Be(()=>{let u=dt(o);const{matched:a}=s.value;let f;for(;(f=a[u])&&!f.components;)u++;return u}),l=Be(()=>s.value.matched[i.value]);tr(ei,Be(()=>i.value+1)),tr(cd,l),tr(Cs,s);const c=$t();return Sn(()=>[c.value,l.value,e.name],([u,a,f],[h,m,g])=>{a&&(a.instances[f]=u,m&&m!==a&&u&&u===h&&(a.leaveGuards.size||(a.leaveGuards=m.leaveGuards),a.updateGuards.size||(a.updateGuards=m.updateGuards))),u&&a&&(!m||!cn(a,m)||!h)&&(a.enterCallbacks[f]||[]).forEach(b=>b(u))},{flush:"post"}),()=>{const u=s.value,a=e.name,f=l.value,h=f&&f.components[a];if(!h)return ui(n.default,{Component:h,route:u});const m=f.props[a],g=m?m===!0?u.params:typeof m=="function"?m(u):m:null,E=$l(h,se({},g,t,{onVnodeUnmounted:C=>{C.component.isUnmounted&&(f.instances[a]=null)},ref:c}));return ui(n.default,{Component:E,route:u})||E}}});function ui(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const fc=Dd;function Fd(e){const t=Ad(e.routes,e),n=e.parseQuery||id,r=e.stringifyQuery||Zo,s=e.history,o=yn(),i=yn(),l=yn(),c=ma(Rt);let u=Rt;en&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const a=es.bind(null,S=>""+S),f=es.bind(null,$f),h=es.bind(null,Un);function m(S,k){let F,H;return ic(S)?(F=t.getRecordMatcher(S),H=k):H=S,t.addRoute(H,F)}function g(S){const k=t.getRecordMatcher(S);k&&t.removeRoute(k)}function b(){return t.getRoutes().map(S=>S.record)}function E(S){return!!t.getRecordMatcher(S)}function C(S,k){if(k=se({},k||c.value),typeof S=="string"){const y=ts(n,S,k.path),w=t.resolve({path:y.path},k),A=s.createHref(y.fullPath);return se(y,w,{params:h(w.params),hash:Un(y.hash),redirectedFrom:void 0,href:A})}let F;if(S.path!=null)F=se({},S,{path:ts(n,S.path,k.path).path});else{const y=se({},S.params);for(const w in y)y[w]==null&&delete y[w];F=se({},S,{params:f(y)}),k.params=f(k.params)}const H=t.resolve(F,k),te=S.hash||"";H.params=a(h(H.params));const d=Wf(r,se({},S,{hash:jf(te),path:H.path})),p=s.createHref(d);return se({fullPath:d,hash:te,query:r===Zo?ld(S.query):S.query||{}},H,{redirectedFrom:void 0,href:p})}function T(S){return typeof S=="string"?ts(n,S,c.value.path):se({},S)}function N(S,k){if(u!==S)return an(he.NAVIGATION_CANCELLED,{from:k,to:S})}function O(S){return j(S)}function B(S){return O(se(T(S),{replace:!0}))}function G(S,k){const F=S.matched[S.matched.length-1];if(F&&F.redirect){const{redirect:H}=F;let te=typeof H=="function"?H(S,k):H;return typeof te=="string"&&(te=te.includes("?")||te.includes("#")?te=T(te):{path:te},te.params={}),se({query:S.query,hash:S.hash,params:te.path!=null?{}:S.params},te)}}function j(S,k){const F=u=C(S),H=c.value,te=S.state,d=S.force,p=S.replace===!0,y=G(F,H);if(y)return j(se(T(y),{state:typeof y=="object"?se({},te,y.state):te,force:d,replace:p}),k||F);const w=F;w.redirectedFrom=k;let A;return!d&&Gf(r,H,F)&&(A=an(he.NAVIGATION_DUPLICATED,{to:w,from:H}),ye(H,H,!0,!1)),(A?Promise.resolve(A):$(w,H)).catch(v=>mt(v)?mt(v,he.NAVIGATION_GUARD_REDIRECT)?v:Ye(v):Z(v,w,H)).then(v=>{if(v){if(mt(v,he.NAVIGATION_GUARD_REDIRECT))return j(se({replace:p},T(v.to),{state:typeof v.to=="object"?se({},te,v.to.state):te,force:d}),k||w)}else v=L(w,H,!0,p,te);return Y(w,H,v),v})}function U(S,k){const F=N(S,k);return F?Promise.reject(F):Promise.resolve()}function x(S){const k=We.values().next().value;return k&&typeof k.runWithContext=="function"?k.runWithContext(S):S()}function $(S,k){let F;const[H,te,d]=ad(S,k);F=rs(H.reverse(),"beforeRouteLeave",S,k);for(const y of H)y.leaveGuards.forEach(w=>{F.push(It(w,S,k))});const p=U.bind(null,S,k);return F.push(p),Ve(F).then(()=>{F=[];for(const y of o.list())F.push(It(y,S,k));return F.push(p),Ve(F)}).then(()=>{F=rs(te,"beforeRouteUpdate",S,k);for(const y of te)y.updateGuards.forEach(w=>{F.push(It(w,S,k))});return F.push(p),Ve(F)}).then(()=>{F=[];for(const y of d)if(y.beforeEnter)if(Xe(y.beforeEnter))for(const w of y.beforeEnter)F.push(It(w,S,k));else F.push(It(y.beforeEnter,S,k));return F.push(p),Ve(F)}).then(()=>(S.matched.forEach(y=>y.enterCallbacks={}),F=rs(d,"beforeRouteEnter",S,k,x),F.push(p),Ve(F))).then(()=>{F=[];for(const y of i.list())F.push(It(y,S,k));return F.push(p),Ve(F)}).catch(y=>mt(y,he.NAVIGATION_CANCELLED)?y:Promise.reject(y))}function Y(S,k,F){l.list().forEach(H=>x(()=>H(S,k,F)))}function L(S,k,F,H,te){const d=N(S,k);if(d)return d;const p=k===Rt,y=en?history.state:{};F&&(H||p?s.replace(S.fullPath,se({scroll:p&&y&&y.scroll},te)):s.push(S.fullPath,te)),c.value=S,ye(S,k,F,p),Ye()}let Q;function le(){Q||(Q=s.listen((S,k,F)=>{if(!et.listening)return;const H=C(S),te=G(H,et.currentRoute.value);if(te){j(se(te,{replace:!0,force:!0}),H).catch(On);return}u=H;const d=c.value;en&&td(Yo(d.fullPath,F.delta),Fr()),$(H,d).catch(p=>mt(p,he.NAVIGATION_ABORTED|he.NAVIGATION_CANCELLED)?p:mt(p,he.NAVIGATION_GUARD_REDIRECT)?(j(se(T(p.to),{force:!0}),H).then(y=>{mt(y,he.NAVIGATION_ABORTED|he.NAVIGATION_DUPLICATED)&&!F.delta&&F.type===As.pop&&s.go(-1,!1)}).catch(On),Promise.reject()):(F.delta&&s.go(-F.delta,!1),Z(p,H,d))).then(p=>{p=p||L(H,d,!1),p&&(F.delta&&!mt(p,he.NAVIGATION_CANCELLED)?s.go(-F.delta,!1):F.type===As.pop&&mt(p,he.NAVIGATION_ABORTED|he.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),Y(H,d,p)}).catch(On)}))}let we=yn(),ee=yn(),z;function Z(S,k,F){Ye(S);const H=ee.list();return H.length?H.forEach(te=>te(S,k,F)):console.error(S),Promise.reject(S)}function He(){return z&&c.value!==Rt?Promise.resolve():new Promise((S,k)=>{we.add([S,k])})}function Ye(S){return z||(z=!S,le(),we.list().forEach(([k,F])=>S?F(S):k()),we.reset()),S}function ye(S,k,F,H){const{scrollBehavior:te}=e;if(!en||!te)return Promise.resolve();const d=!F&&nd(Yo(S.fullPath,0))||(H||!F)&&history.state&&history.state.scroll||null;return $s().then(()=>te(S,k,d)).then(p=>p&&ed(p)).catch(p=>Z(p,S,k))}const me=S=>s.go(S);let Ze;const We=new Set,et={currentRoute:c,listening:!0,addRoute:m,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:E,getRoutes:b,resolve:C,options:e,push:O,replace:B,go:me,back:()=>me(-1),forward:()=>me(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:ee.add,isReady:He,install(S){S.component("RouterLink",Nd),S.component("RouterView",fc),S.config.globalProperties.$router=et,Object.defineProperty(S.config.globalProperties,"$route",{enumerable:!0,get:()=>dt(c)}),en&&!Ze&&c.value===Rt&&(Ze=!0,O(s.location).catch(H=>{}));const k={};for(const H in Rt)Object.defineProperty(k,H,{get:()=>c.value[H],enumerable:!0});S.provide(Mr,et),S.provide(Qs,el(k)),S.provide(Cs,c);const F=S.unmount;We.add(S),S.unmount=function(){We.delete(S),We.size<1&&(u=Rt,Q&&Q(),Q=null,c.value=Rt,Ze=!1,z=!1),F()}}};function Ve(S){return S.reduce((k,F)=>k.then(()=>x(F)),Promise.resolve())}return et}function Lp(){return Ke(Mr)}function Dp(e){return Ke(Qs)}function dc(e,t){return function(){return e.apply(t,arguments)}}const{toString:Md}=Object.prototype,{getPrototypeOf:Ys}=Object,{iterator:kr,toStringTag:hc}=Symbol,Br=(e=>t=>{const n=Md.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Qe=e=>(e=e.toLowerCase(),t=>Br(t)===e),Ur=e=>t=>typeof t===e,{isArray:dn}=Array,un=Ur("undefined");function Vn(e){return e!==null&&!un(e)&&e.constructor!==null&&!un(e.constructor)&&De(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const pc=Qe("ArrayBuffer");function kd(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&pc(e.buffer),t}const Bd=Ur("string"),De=Ur("function"),mc=Ur("number"),$n=e=>e!==null&&typeof e=="object",Ud=e=>e===!0||e===!1,ir=e=>{if(Br(e)!=="object")return!1;const t=Ys(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(hc in e)&&!(kr in e)},jd=e=>{if(!$n(e)||Vn(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},Hd=Qe("Date"),Vd=Qe("File"),$d=Qe("Blob"),qd=Qe("FileList"),Kd=e=>$n(e)&&De(e.pipe),Wd=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||De(e.append)&&((t=Br(e))==="formdata"||t==="object"&&De(e.toString)&&e.toString()==="[object FormData]"))},Gd=Qe("URLSearchParams"),[zd,Jd,Xd,Qd]=["ReadableStream","Request","Response","Headers"].map(Qe),Yd=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function qn(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),dn(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const Ht=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,yc=e=>!un(e)&&e!==Ht;function xs(){const{caseless:e,skipUndefined:t}=yc(this)&&this||{},n={},r=(s,o)=>{const i=e&&gc(n,o)||o;ir(n[i])&&ir(s)?n[i]=xs(n[i],s):ir(s)?n[i]=xs({},s):dn(s)?n[i]=s.slice():(!t||!un(s))&&(n[i]=s)};for(let s=0,o=arguments.length;s(qn(t,(s,o)=>{n&&De(s)?e[o]=dc(s,n):e[o]=s},{allOwnKeys:r}),e),eh=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),th=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},nh=(e,t,n,r)=>{let s,o,i;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&Ys(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},rh=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},sh=e=>{if(!e)return null;if(dn(e))return e;let t=e.length;if(!mc(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},oh=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Ys(Uint8Array)),ih=(e,t)=>{const r=(e&&e[kr]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},lh=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},ch=Qe("HTMLFormElement"),ah=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),fi=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),uh=Qe("RegExp"),_c=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};qn(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},fh=e=>{_c(e,(t,n)=>{if(De(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(De(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},dh=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return dn(e)?r(e):r(String(e).split(t)),n},hh=()=>{},ph=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function mh(e){return!!(e&&De(e.append)&&e[hc]==="FormData"&&e[kr])}const gh=e=>{const t=new Array(10),n=(r,s)=>{if($n(r)){if(t.indexOf(r)>=0)return;if(Vn(r))return r;if(!("toJSON"in r)){t[s]=r;const o=dn(r)?[]:{};return qn(r,(i,l)=>{const c=n(i,s+1);!un(c)&&(o[l]=c)}),t[s]=void 0,o}}return r};return n(e,0)},yh=Qe("AsyncFunction"),_h=e=>e&&($n(e)||De(e))&&De(e.then)&&De(e.catch),bc=((e,t)=>e?setImmediate:t?((n,r)=>(Ht.addEventListener("message",({source:s,data:o})=>{s===Ht&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),Ht.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",De(Ht.postMessage)),bh=typeof queueMicrotask<"u"?queueMicrotask.bind(Ht):typeof process<"u"&&process.nextTick||bc,Eh=e=>e!=null&&De(e[kr]),_={isArray:dn,isArrayBuffer:pc,isBuffer:Vn,isFormData:Wd,isArrayBufferView:kd,isString:Bd,isNumber:mc,isBoolean:Ud,isObject:$n,isPlainObject:ir,isEmptyObject:jd,isReadableStream:zd,isRequest:Jd,isResponse:Xd,isHeaders:Qd,isUndefined:un,isDate:Hd,isFile:Vd,isBlob:$d,isRegExp:uh,isFunction:De,isStream:Kd,isURLSearchParams:Gd,isTypedArray:oh,isFileList:qd,forEach:qn,merge:xs,extend:Zd,trim:Yd,stripBOM:eh,inherits:th,toFlatObject:nh,kindOf:Br,kindOfTest:Qe,endsWith:rh,toArray:sh,forEachEntry:ih,matchAll:lh,isHTMLForm:ch,hasOwnProperty:fi,hasOwnProp:fi,reduceDescriptors:_c,freezeMethods:fh,toObjectSet:dh,toCamelCase:ah,noop:hh,toFiniteNumber:ph,findKey:gc,global:Ht,isContextDefined:yc,isSpecCompliantForm:mh,toJSONObject:gh,isAsyncFn:yh,isThenable:_h,setImmediate:bc,asap:bh,isIterable:Eh};function X(e,t,n,r,s){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),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}_.inherits(X,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:_.toJSONObject(this.config),code:this.code,status:this.status}}});const Ec=X.prototype,wc={};["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=>{wc[e]={value:e}});Object.defineProperties(X,wc);Object.defineProperty(Ec,"isAxiosError",{value:!0});X.from=(e,t,n,r,s,o)=>{const i=Object.create(Ec);_.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 X.call(i,l,c,n,r,s),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 wh=null;function Ts(e){return _.isPlainObject(e)||_.isArray(e)}function vc(e){return _.endsWith(e,"[]")?e.slice(0,-2):e}function di(e,t,n){return e?e.concat(t).map(function(s,o){return s=vc(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function vh(e){return _.isArray(e)&&!e.some(Ts)}const Sh=_.toFlatObject(_,{},null,function(t){return/^is[A-Z]/.test(t)});function jr(e,t,n){if(!_.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=_.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(b,E){return!_.isUndefined(E[b])});const r=n.metaTokens,s=n.visitor||a,o=n.dots,i=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&_.isSpecCompliantForm(t);if(!_.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(_.isDate(g))return g.toISOString();if(_.isBoolean(g))return g.toString();if(!c&&_.isBlob(g))throw new X("Blob is not supported. Use a Buffer instead.");return _.isArrayBuffer(g)||_.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function a(g,b,E){let C=g;if(g&&!E&&typeof g=="object"){if(_.endsWith(b,"{}"))b=r?b:b.slice(0,-2),g=JSON.stringify(g);else if(_.isArray(g)&&vh(g)||(_.isFileList(g)||_.endsWith(b,"[]"))&&(C=_.toArray(g)))return b=vc(b),C.forEach(function(N,O){!(_.isUndefined(N)||N===null)&&t.append(i===!0?di([b],O,o):i===null?b:b+"[]",u(N))}),!1}return Ts(g)?!0:(t.append(di(E,b,o),u(g)),!1)}const f=[],h=Object.assign(Sh,{defaultVisitor:a,convertValue:u,isVisitable:Ts});function m(g,b){if(!_.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+b.join("."));f.push(g),_.forEach(g,function(C,T){(!(_.isUndefined(C)||C===null)&&s.call(t,C,_.isString(T)?T.trim():T,b,h))===!0&&m(C,b?b.concat(T):[T])}),f.pop()}}if(!_.isObject(e))throw new TypeError("data must be an object");return m(e),t}function hi(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Zs(e,t){this._pairs=[],e&&jr(e,this,t)}const Sc=Zs.prototype;Sc.append=function(t,n){this._pairs.push([t,n])};Sc.toString=function(t){const n=t?function(r){return t.call(this,r,hi)}:hi;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Ah(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Ac(e,t,n){if(!t)return e;const r=n&&n.encode||Ah;_.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=_.isURLSearchParams(t)?t.toString():new Zs(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class pi{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){_.forEach(this.handlers,function(r){r!==null&&t(r)})}}const Rc={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Rh=typeof URLSearchParams<"u"?URLSearchParams:Zs,Ch=typeof FormData<"u"?FormData:null,xh=typeof Blob<"u"?Blob:null,Th={isBrowser:!0,classes:{URLSearchParams:Rh,FormData:Ch,Blob:xh},protocols:["http","https","file","blob","url","data"]},eo=typeof window<"u"&&typeof document<"u",Os=typeof navigator=="object"&&navigator||void 0,Oh=eo&&(!Os||["ReactNative","NativeScript","NS"].indexOf(Os.product)<0),Ph=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Nh=eo&&window.location.href||"http://localhost",Ih=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:eo,hasStandardBrowserEnv:Oh,hasStandardBrowserWebWorkerEnv:Ph,navigator:Os,origin:Nh},Symbol.toStringTag,{value:"Module"})),Re={...Ih,...Th};function Lh(e,t){return jr(e,new Re.classes.URLSearchParams,{visitor:function(n,r,s,o){return Re.isNode&&_.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function Dh(e){return _.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Fh(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&_.isArray(s)?s.length:i,c?(_.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!l):((!s[i]||!_.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&_.isArray(s[i])&&(s[i]=Fh(s[i])),!l)}if(_.isFormData(e)&&_.isFunction(e.entries)){const n={};return _.forEachEntry(e,(r,s)=>{t(Dh(r),s,n,0)}),n}return null}function Mh(e,t,n){if(_.isString(e))try{return(t||JSON.parse)(e),_.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Kn={transitional:Rc,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=_.isObject(t);if(o&&_.isHTMLForm(t)&&(t=new FormData(t)),_.isFormData(t))return s?JSON.stringify(Cc(t)):t;if(_.isArrayBuffer(t)||_.isBuffer(t)||_.isStream(t)||_.isFile(t)||_.isBlob(t)||_.isReadableStream(t))return t;if(_.isArrayBufferView(t))return t.buffer;if(_.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return Lh(t,this.formSerializer).toString();if((l=_.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return jr(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),Mh(t)):t}],transformResponse:[function(t){const n=this.transitional||Kn.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(_.isResponse(t)||_.isReadableStream(t))return t;if(t&&_.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(i)throw l.name==="SyntaxError"?X.from(l,X.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:Re.classes.FormData,Blob:Re.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};_.forEach(["delete","get","head","post","put","patch"],e=>{Kn.headers[e]={}});const kh=_.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"]),Bh=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&kh[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},mi=Symbol("internals");function _n(e){return e&&String(e).trim().toLowerCase()}function lr(e){return e===!1||e==null?e:_.isArray(e)?e.map(lr):String(e)}function Uh(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const jh=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function ss(e,t,n,r,s){if(_.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!_.isString(t)){if(_.isString(r))return t.indexOf(r)!==-1;if(_.isRegExp(r))return r.test(t)}}function Hh(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Vh(e,t){const n=_.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let Fe=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(l,c,u){const a=_n(c);if(!a)throw new Error("header name must be a non-empty string");const f=_.findKey(s,a);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||c]=lr(l))}const i=(l,c)=>_.forEach(l,(u,a)=>o(u,a,c));if(_.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(_.isString(t)&&(t=t.trim())&&!jh(t))i(Bh(t),n);else if(_.isObject(t)&&_.isIterable(t)){let l={},c,u;for(const a of t){if(!_.isArray(a))throw TypeError("Object iterator must return a key-value pair");l[u=a[0]]=(c=l[u])?_.isArray(c)?[...c,a[1]]:[c,a[1]]:a[1]}i(l,n)}else t!=null&&o(n,t,r);return this}get(t,n){if(t=_n(t),t){const r=_.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return Uh(s);if(_.isFunction(n))return n.call(this,s,r);if(_.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=_n(t),t){const r=_.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||ss(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=_n(i),i){const l=_.findKey(r,i);l&&(!n||ss(r,r[l],l,n))&&(delete r[l],s=!0)}}return _.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||ss(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return _.forEach(this,(s,o)=>{const i=_.findKey(r,o);if(i){n[i]=lr(s),delete n[o];return}const l=t?Hh(o):String(o).trim();l!==o&&delete n[o],n[l]=lr(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return _.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&_.isArray(r)?r.join(", "):r)}),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 r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[mi]=this[mi]={accessors:{}}).accessors,s=this.prototype;function o(i){const l=_n(i);r[l]||(Vh(s,i),r[l]=!0)}return _.isArray(t)?t.forEach(o):o(t),this}};Fe.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);_.reduceDescriptors(Fe.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});_.freezeMethods(Fe);function os(e,t){const n=this||Kn,r=t||n,s=Fe.from(r.headers);let o=r.data;return _.forEach(e,function(l){o=l.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function xc(e){return!!(e&&e.__CANCEL__)}function hn(e,t,n){X.call(this,e??"canceled",X.ERR_CANCELED,t,n),this.name="CanceledError"}_.inherits(hn,X,{__CANCEL__:!0});function Tc(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new X("Request failed with status code "+n.status,[X.ERR_BAD_REQUEST,X.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function $h(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function qh(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),a=r[o];i||(i=u),n[s]=c,r[s]=u;let f=o,h=0;for(;f!==s;)h+=n[f++],f=f%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i{n=a,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const a=Date.now(),f=a-n;f>=r?i(u,a):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-f)))},()=>s&&i(s)]}const br=(e,t,n=3)=>{let r=0;const s=qh(50,250);return Kh(o=>{const i=o.loaded,l=o.lengthComputable?o.total:void 0,c=i-r,u=s(c),a=i<=l;r=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)},gi=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},yi=e=>(...t)=>_.asap(()=>e(...t)),Wh=Re.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Re.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Re.origin),Re.navigator&&/(msie|trident)/i.test(Re.navigator.userAgent)):()=>!0,Gh=Re.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];_.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),_.isString(r)&&l.push(`path=${r}`),_.isString(s)&&l.push(`domain=${s}`),o===!0&&l.push("secure"),_.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 zh(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function Jh(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Oc(e,t,n){let r=!zh(t);return e&&(r||n==!1)?Jh(e,t):t}const _i=e=>e instanceof Fe?{...e}:e;function Gt(e,t){t=t||{};const n={};function r(u,a,f,h){return _.isPlainObject(u)&&_.isPlainObject(a)?_.merge.call({caseless:h},u,a):_.isPlainObject(a)?_.merge({},a):_.isArray(a)?a.slice():a}function s(u,a,f,h){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u,f,h)}else return r(u,a,f,h)}function o(u,a){if(!_.isUndefined(a))return r(void 0,a)}function i(u,a){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u)}else return r(void 0,a)}function l(u,a,f){if(f in t)return r(u,a);if(f in e)return r(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)=>s(_i(u),_i(a),f,!0)};return _.forEach(Object.keys({...e,...t}),function(a){const f=c[a]||s,h=f(e[a],t[a],a);_.isUndefined(h)&&f!==l||(n[a]=h)}),n}const Pc=e=>{const t=Gt({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:l}=t;if(t.headers=i=Fe.from(i),t.url=Ac(Oc(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&i.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),_.isFormData(n)){if(Re.hasStandardBrowserEnv||Re.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(_.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(Re.hasStandardBrowserEnv&&(r&&_.isFunction(r)&&(r=r(t)),r||r!==!1&&Wh(t.url))){const c=s&&o&&Gh.read(o);c&&i.set(s,c)}return t},Xh=typeof XMLHttpRequest<"u",Qh=Xh&&function(e){return new Promise(function(n,r){const s=Pc(e);let o=s.data;const i=Fe.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,a,f,h,m,g;function b(){m&&m(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(a),s.signal&&s.signal.removeEventListener("abort",a)}let E=new XMLHttpRequest;E.open(s.method.toUpperCase(),s.url,!0),E.timeout=s.timeout;function C(){if(!E)return;const N=Fe.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),B={data:!l||l==="text"||l==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:N,config:e,request:E};Tc(function(j){n(j),b()},function(j){r(j),b()},B),E=null}"onloadend"in E?E.onloadend=C:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.indexOf("file:")===0)||setTimeout(C)},E.onabort=function(){E&&(r(new X("Request aborted",X.ECONNABORTED,e,E)),E=null)},E.onerror=function(O){const B=O&&O.message?O.message:"Network Error",G=new X(B,X.ERR_NETWORK,e,E);G.event=O||null,r(G),E=null},E.ontimeout=function(){let O=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const B=s.transitional||Rc;s.timeoutErrorMessage&&(O=s.timeoutErrorMessage),r(new X(O,B.clarifyTimeoutError?X.ETIMEDOUT:X.ECONNABORTED,e,E)),E=null},o===void 0&&i.setContentType(null),"setRequestHeader"in E&&_.forEach(i.toJSON(),function(O,B){E.setRequestHeader(B,O)}),_.isUndefined(s.withCredentials)||(E.withCredentials=!!s.withCredentials),l&&l!=="json"&&(E.responseType=s.responseType),u&&([h,g]=br(u,!0),E.addEventListener("progress",h)),c&&E.upload&&([f,m]=br(c),E.upload.addEventListener("progress",f),E.upload.addEventListener("loadend",m)),(s.cancelToken||s.signal)&&(a=N=>{E&&(r(!N||N.type?new hn(null,e,E):N),E.abort(),E=null)},s.cancelToken&&s.cancelToken.subscribe(a),s.signal&&(s.signal.aborted?a():s.signal.addEventListener("abort",a)));const T=$h(s.url);if(T&&Re.protocols.indexOf(T)===-1){r(new X("Unsupported protocol "+T+":",X.ERR_BAD_REQUEST,e));return}E.send(o||null)})},Yh=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,l();const a=u instanceof Error?u:this.reason;r.abort(a instanceof X?a:new hn(a instanceof Error?a.message:a))}};let i=t&&setTimeout(()=>{i=null,o(new X(`timeout ${t} of ms exceeded`,X.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}=r;return c.unsubscribe=()=>_.asap(l),c}},Zh=function*(e,t){let n=e.byteLength;if(n{const s=ep(e,t);let o=0,i,l=c=>{i||(i=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:a}=await s.next();if(u){l(),c.close();return}let f=a.byteLength;if(n){let h=o+=f;n(h)}c.enqueue(new Uint8Array(a))}catch(u){throw l(u),u}},cancel(c){return l(c),s.return()}},{highWaterMark:2})},Ei=64*1024,{isFunction:Qn}=_,np=(({Request:e,Response:t})=>({Request:e,Response:t}))(_.global),{ReadableStream:wi,TextEncoder:vi}=_.global,Si=(e,...t)=>{try{return!!e(...t)}catch{return!1}},rp=e=>{e=_.merge.call({skipUndefined:!0},np,e);const{fetch:t,Request:n,Response:r}=e,s=t?Qn(t):typeof fetch=="function",o=Qn(n),i=Qn(r);if(!s)return!1;const l=s&&Qn(wi),c=s&&(typeof vi=="function"?(g=>b=>g.encode(b))(new vi):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=o&&l&&Si(()=>{let g=!1;const b=new n(Re.origin,{body:new wi,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!b}),a=i&&l&&Si(()=>_.isReadableStream(new r("").body)),f={stream:a&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(b,E)=>{let C=b&&b[g];if(C)return C.call(b);throw new X(`Response type '${g}' is not supported`,X.ERR_NOT_SUPPORT,E)})});const h=async g=>{if(g==null)return 0;if(_.isBlob(g))return g.size;if(_.isSpecCompliantForm(g))return(await new n(Re.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(_.isArrayBufferView(g)||_.isArrayBuffer(g))return g.byteLength;if(_.isURLSearchParams(g)&&(g=g+""),_.isString(g))return(await c(g)).byteLength},m=async(g,b)=>{const E=_.toFiniteNumber(g.getContentLength());return E??h(b)};return async g=>{let{url:b,method:E,data:C,signal:T,cancelToken:N,timeout:O,onDownloadProgress:B,onUploadProgress:G,responseType:j,headers:U,withCredentials:x="same-origin",fetchOptions:$}=Pc(g),Y=t||fetch;j=j?(j+"").toLowerCase():"text";let L=Yh([T,N&&N.toAbortSignal()],O),Q=null;const le=L&&L.unsubscribe&&(()=>{L.unsubscribe()});let we;try{if(G&&u&&E!=="get"&&E!=="head"&&(we=await m(U,C))!==0){let ye=new n(b,{method:"POST",body:C,duplex:"half"}),me;if(_.isFormData(C)&&(me=ye.headers.get("content-type"))&&U.setContentType(me),ye.body){const[Ze,We]=gi(we,br(yi(G)));C=bi(ye.body,Ei,Ze,We)}}_.isString(x)||(x=x?"include":"omit");const ee=o&&"credentials"in n.prototype,z={...$,signal:L,method:E.toUpperCase(),headers:U.normalize().toJSON(),body:C,duplex:"half",credentials:ee?x:void 0};Q=o&&new n(b,z);let Z=await(o?Y(Q,$):Y(b,z));const He=a&&(j==="stream"||j==="response");if(a&&(B||He&&le)){const ye={};["status","statusText","headers"].forEach(et=>{ye[et]=Z[et]});const me=_.toFiniteNumber(Z.headers.get("content-length")),[Ze,We]=B&&gi(me,br(yi(B),!0))||[];Z=new r(bi(Z.body,Ei,Ze,()=>{We&&We(),le&&le()}),ye)}j=j||"text";let Ye=await f[_.findKey(f,j)||"text"](Z,g);return!He&&le&&le(),await new Promise((ye,me)=>{Tc(ye,me,{data:Ye,headers:Fe.from(Z.headers),status:Z.status,statusText:Z.statusText,config:g,request:Q})})}catch(ee){throw le&&le(),ee&&ee.name==="TypeError"&&/Load failed|fetch/i.test(ee.message)?Object.assign(new X("Network Error",X.ERR_NETWORK,g,Q),{cause:ee.cause||ee}):X.from(ee,ee&&ee.code,g,Q)}}},sp=new Map,Nc=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,l=i,c,u,a=sp;for(;l--;)c=o[l],u=a.get(c),u===void 0&&a.set(c,u=l?new Map:rp(t)),a=u;return u};Nc();const to={http:wh,xhr:Qh,fetch:{get:Nc}};_.forEach(to,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Ai=e=>`- ${e}`,op=e=>_.isFunction(e)||e===null||e===!1;function ip(e,t){e=_.isArray(e)?e:[e];const{length:n}=e;let r,s;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(Ai).join(` +`):" "+Ai(i[0]):"as no adapter specified";throw new X("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const Ic={getAdapter:ip,adapters:to};function is(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new hn(null,e)}function Ri(e){return is(e),e.headers=Fe.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),Ic.getAdapter(e.adapter||Kn.adapter,e)(e).then(function(r){return is(e),r.data=os.call(e,e.transformResponse,r),r.headers=Fe.from(r.headers),r},function(r){return xc(r)||(is(e),r&&r.response&&(r.response.data=os.call(e,e.transformResponse,r.response),r.response.headers=Fe.from(r.response.headers))),Promise.reject(r)})}const Lc="1.13.2",Hr={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Hr[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const Ci={};Hr.transitional=function(t,n,r){function s(o,i){return"[Axios v"+Lc+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,l)=>{if(t===!1)throw new X(s(i," has been removed"+(n?" in "+n:"")),X.ERR_DEPRECATED);return n&&!Ci[i]&&(Ci[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,l):!0}};Hr.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function lp(e,t,n){if(typeof e!="object")throw new X("options must be an object",X.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const l=e[o],c=l===void 0||i(l,o,e);if(c!==!0)throw new X("option "+o+" must be "+c,X.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new X("Unknown option "+o,X.ERR_BAD_OPTION)}}const cr={assertOptions:lp,validators:Hr},it=cr.validators;let Kt=class{constructor(t){this.defaults=t||{},this.interceptors={request:new pi,response:new pi}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Gt(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&cr.assertOptions(r,{silentJSONParsing:it.transitional(it.boolean),forcedJSONParsing:it.transitional(it.boolean),clarifyTimeoutError:it.transitional(it.boolean)},!1),s!=null&&(_.isFunction(s)?n.paramsSerializer={serialize:s}:cr.assertOptions(s,{encode:it.function,serialize:it.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),cr.assertOptions(n,{baseUrl:it.spelling("baseURL"),withXsrfToken:it.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&_.merge(o.common,o[n.method]);o&&_.forEach(["delete","get","head","post","put","patch","common"],g=>{delete o[g]}),n.headers=Fe.concat(i,o);const l=[];let c=!0;this.interceptors.request.forEach(function(b){typeof b.runWhen=="function"&&b.runWhen(n)===!1||(c=c&&b.synchronous,l.unshift(b.fulfilled,b.rejected))});const u=[];this.interceptors.response.forEach(function(b){u.push(b.fulfilled,b.rejected)});let a,f=0,h;if(!c){const g=[Ri.bind(this),void 0];for(g.unshift(...l),g.push(...u),h=g.length,a=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(l=>{r.subscribe(l),o=l}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,l){r.reason||(r.reason=new hn(o,i,l),n(r.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=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new Dc(function(s){t=s}),cancel:t}}};function ap(e){return function(n){return e.apply(null,n)}}function up(e){return _.isObject(e)&&e.isAxiosError===!0}const Ps={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(Ps).forEach(([e,t])=>{Ps[t]=e});function Fc(e){const t=new Kt(e),n=dc(Kt.prototype.request,t);return _.extend(n,Kt.prototype,t,{allOwnKeys:!0}),_.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return Fc(Gt(e,s))},n}const ge=Fc(Kn);ge.Axios=Kt;ge.CanceledError=hn;ge.CancelToken=cp;ge.isCancel=xc;ge.VERSION=Lc;ge.toFormData=jr;ge.AxiosError=X;ge.Cancel=ge.CanceledError;ge.all=function(t){return Promise.all(t)};ge.spread=ap;ge.isAxiosError=up;ge.mergeConfig=Gt;ge.AxiosHeaders=Fe;ge.formToJSON=e=>Cc(_.isHTMLForm(e)?new FormData(e):e);ge.getAdapter=Ic.getAdapter;ge.HttpStatusCode=Ps;ge.default=ge;const{Axios:kp,AxiosError:Bp,CanceledError:Up,isCancel:jp,CancelToken:Hp,VERSION:Vp,all:$p,Cancel:qp,isAxiosError:Kp,spread:Wp,toFormData:Gp,AxiosHeaders:zp,HttpStatusCode:Jp,formToJSON:Xp,getAdapter:Qp,mergeConfig:Yp}=ge,Pn=ge.create({baseURL:"",timeout:3e4,withCredentials:!0});Pn.interceptors.request.use(e=>e,e=>Promise.reject(e));Pn.interceptors.response.use(e=>e.data,e=>{e.response?.status===401&&(window.location.hash="#/login");const t=e.response?.data?e.response.data.detail||e.response.data.message:e.message;return Promise.reject(new Error(t||"请求失败"))});const Yn={login:e=>{const t=new URLSearchParams;return t.append("admin_key",e.password),Pn.post("/login",t,{headers:{"Content-Type":"application/x-www-form-urlencoded"}})},logout:()=>Pn.post("/logout"),checkAuth:()=>Pn.get("/admin/health")},fp=xf("auth",()=>{const e=$t(!1),t=$t(!1),n=$t(0),r=1e4;let s=null;async function o(c){t.value=!0;try{return await Yn.login({password:c}),await Yn.checkAuth(),e.value=!0,n.value=Date.now(),!0}catch(u){throw e.value=!1,u}finally{t.value=!1}}async function i(){try{await Yn.logout()}finally{e.value=!1,n.value=0}}async function l(){const c=Date.now();if(e.value&&c-n.value(await Yn.checkAuth(),e.value=!0,!0))(),await s}catch{return e.value=!1,!1}finally{n.value=Date.now(),s=null}}return{isLoggedIn:e,isLoading:t,login:o,logout:i,checkAuth:l}}),Mc=Fd({history:pd("/"),routes:[{path:"/public/uptime",name:"public-uptime",component:()=>ot(()=>import("./PublicUptime-zrQX5HS2.js"),__vite__mapDeps([0,1])),meta:{requiresAuth:!1}},{path:"/public/logs",name:"public-logs",component:()=>ot(()=>import("./PublicLogs-B3ra_7d9.js"),[]),meta:{requiresAuth:!1}},{path:"/login",name:"login",component:()=>ot(()=>import("./Login-e5EchLG9.js"),__vite__mapDeps([2,3])),meta:{requiresAuth:!1}},{path:"/",component:()=>ot(()=>import("./AppShell-ah6Dvscx.js"),__vite__mapDeps([4,5,6,7])),meta:{requiresAuth:!0},children:[{path:"",name:"dashboard",component:()=>ot(()=>import("./Dashboard-CMSCYbdT.js"),__vite__mapDeps([8,9]))},{path:"accounts",name:"accounts",component:()=>ot(()=>import("./Accounts-kVPSbBOv.js"),__vite__mapDeps([10,11,3,6,7,9]))},{path:"settings",name:"settings",component:()=>ot(()=>import("./Settings-Cv9V_xAM.js"),__vite__mapDeps([12,5,11,3,9]))},{path:"logs",name:"logs",component:()=>ot(()=>import("./Logs-3JdbrGpL.js"),__vite__mapDeps([13,11,6]))},{path:"monitor",name:"monitor",component:()=>ot(()=>import("./Monitor-BrHVeZxZ.js"),__vite__mapDeps([14,1]))},{path:"docs",name:"docs",component:()=>ot(()=>import("./Docs-F9vFefbz.js"),[])}]}]});Mc.beforeEach(async e=>{const t=fp();if(e.meta.requiresAuth&&!await t.checkAuth())return{name:"login"};if(e.name==="login"&&t.isLoggedIn)return{name:"dashboard"}});const Er=fn({toasts:[]});let dp=0;const Zn=e=>{const t=`toast-${++dp}`,n=e.duration??3e3,r={id:t,type:e.type,title:e.title,message:e.message,duration:n};return Er.toasts.push(r),n>0&&setTimeout(()=>{kc(t)},n),t},kc=e=>{const t=Er.toasts.findIndex(n=>n.id===e);t>-1&&Er.toasts.splice(t,1)},Zp=()=>({success:(e,t,n)=>Zn({type:"success",message:e,title:t,duration:n}),error:(e,t,n)=>Zn({type:"error",message:e,title:t,duration:n}),warning:(e,t,n)=>Zn({type:"warning",message:e,title:t,duration:n}),info:(e,t,n)=>Zn({type:"info",message:e,title:t,duration:n})}),hp={class:"fixed right-4 top-4 z-[200] flex flex-col gap-2"},pp={class:"flex-shrink-0"},mp={key:0,class:"h-5 w-5 text-emerald-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},gp={key:1,class:"h-5 w-5 text-rose-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},yp={key:2,class:"h-5 w-5 text-amber-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},_p={key:3,class:"h-5 w-5 text-sky-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},bp={class:"flex-1"},Ep={key:0,class:"text-sm font-medium text-foreground"},wp=["onClick"],vp=Or({__name:"Toast",setup(e){const t=Er.toasts,n=r=>{switch(r){case"success":return"border-emerald-200 bg-emerald-50";case"error":return"border-rose-200 bg-rose-50";case"warning":return"border-amber-200 bg-amber-50";default:return"border-sky-200 bg-sky-50"}};return(r,s)=>(qe(),gr(Fa,{to:"body"},[ke("div",hp,[be(cf,{name:"toast"},{default:al(()=>[(qe(!0),Ct(ve,null,Ja(dt(t),o=>(qe(),Ct("div",{key:o.id,class:Nn(["flex min-w-[320px] items-start gap-3 rounded-2xl border border-border bg-card px-4 py-3 shadow-lg",n(o.type)])},[ke("div",pp,[o.type==="success"?(qe(),Ct("svg",mp,[...s[0]||(s[0]=[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"},null,-1)])])):o.type==="error"?(qe(),Ct("svg",gp,[...s[1]||(s[1]=[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"},null,-1)])])):o.type==="warning"?(qe(),Ct("svg",yp,[...s[2]||(s[2]=[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"},null,-1)])])):(qe(),Ct("svg",_p,[...s[3]||(s[3]=[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"},null,-1)])]))]),ke("div",bp,[o.title?(qe(),Ct("p",Ep,ls(o.title),1)):Cu("",!0),ke("p",{class:Nn(["text-sm text-muted-foreground",{"mt-1":o.title}])},ls(o.message),3)]),ke("button",{class:"flex-shrink-0 text-muted-foreground transition-colors hover:text-foreground",onClick:i=>dt(kc)(o.id)},[...s[4]||(s[4]=[ke("svg",{class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])],8,wp)],2))),128))]),_:1})])]))}}),Sp=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},Ap=Sp(vp,[["__scopeId","data-v-cdd21b3c"]]),Rp=Or({__name:"App",setup(e){return(t,n)=>(qe(),Ct(ve,null,[be(dt(fc)),be(Ap)],64))}}),no=_f(Rp),Cp=wf();no.use(Cp);no.use(Mc);no.mount("#app");export{Op as A,fc as B,xf as C,Ip as D,Zp as E,ve as F,$s as G,Tp as H,fn as I,Nd as R,Fa as T,ke as a,Cu as b,Ct as c,Or as d,qe as e,Ru as f,Pn as g,$t as h,Be as i,wl as j,Fs as k,fp as l,gr as m,Nn as n,bl as o,be as p,xp as q,Ja as r,al as s,ls as t,dt as u,Pp as v,Np as w,Lp as x,Dp as y,Sn as z}; diff --git a/static/assets/index-Dul9zA0O.js b/static/assets/index-Dul9zA0O.js new file mode 100644 index 0000000000000000000000000000000000000000..7bfab613629f0215315b5e1c3490c679e4e257d3 --- /dev/null +++ b/static/assets/index-Dul9zA0O.js @@ -0,0 +1,7 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PublicUptime-Du6tFKiB.js","assets/useUptimeStatus-B8uC70p8.js","assets/Login-C-o3VEDt.js","assets/Checkbox.vue_vue_type_script_setup_true_lang-BzH_cd6M.js","assets/AppShell-BCoBt3vb.js","assets/settings-GoayIAiR.js","assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-Dx9N8w52.js","assets/useConfirmDialog-Bh7Fog50.js","assets/Dashboard-DxzMNPjd.js","assets/HelpTip.vue_vue_type_script_setup_true_lang-ZZDQpvjn.js","assets/Accounts-DeEVJUcd.js","assets/SelectMenu.vue_vue_type_script_setup_true_lang-B6K28QJL.js","assets/Settings-BaukAybX.js","assets/Logs-D2rRedU6.js","assets/Monitor-PELfbABr.js"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function Ns(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const ce={},tn=[],ut=()=>{},xi=()=>!1,wr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Is=e=>e.startsWith("onUpdate:"),Ee=Object.assign,Ls=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Bc=Object.prototype.hasOwnProperty,oe=(e,t)=>Bc.call(e,t),K=Array.isArray,nn=e=>vr(e)==="[object Map]",Ti=e=>vr(e)==="[object Set]",J=e=>typeof e=="function",pe=e=>typeof e=="string",vt=e=>typeof e=="symbol",ae=e=>e!==null&&typeof e=="object",Oi=e=>(ae(e)||J(e))&&J(e.then)&&J(e.catch),Pi=Object.prototype.toString,vr=e=>Pi.call(e),Uc=e=>vr(e).slice(8,-1),Ni=e=>vr(e)==="[object Object]",Sr=e=>pe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,En=Ns(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ar=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},jc=/-\w/g,Dt=Ar(e=>e.replace(jc,t=>t.slice(1).toUpperCase())),Hc=/\B([A-Z])/g,zt=Ar(e=>e.replace(Hc,"-$1").toLowerCase()),Ii=Ar(e=>e.charAt(0).toUpperCase()+e.slice(1)),Vr=Ar(e=>e?`on${Ii(e)}`:""),Lt=(e,t)=>!Object.is(e,t),er=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},Ds=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Vc=e=>{const t=pe(e)?Number(e):NaN;return isNaN(t)?e:t};let io;const Rr=()=>io||(io=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Fs(e){if(K(e)){const t={};for(let n=0;n{if(n){const r=n.split(qc);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Nn(e){let t="";if(pe(e))t=e;else if(K(e))for(let n=0;n!!(e&&e.__v_isRef===!0),ls=e=>pe(e)?e:e==null?"":K(e)||ae(e)&&(e.toString===Pi||!J(e.toString))?Fi(e)?ls(e.value):JSON.stringify(e,Mi,2):String(e),Mi=(e,t)=>Fi(t)?Mi(e,t.value):nn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[$r(r,o)+" =>"]=s,n),{})}:Ti(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>$r(n))}:vt(t)?$r(t):ae(t)&&!K(t)&&!Ni(t)?String(t):t,$r=(e,t="")=>{var n;return vt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let Se;class ki{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,r;for(n=0,r=this.effects.length;n0)return;if(vn){let t=vn;for(vn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;wn;){let t=wn;for(wn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function $i(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function qi(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),Bs(r),Xc(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function cs(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Ki(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Ki(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===In)||(e.globalVersion=In,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!cs(e))))return;e.flags|=2;const t=e.dep,n=fe,r=Ge;fe=e,Ge=!0;try{$i(e);const s=e.fn(e._value);(t.version===0||Lt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{fe=n,Ge=r,qi(e),e.flags&=-3}}function Bs(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)Bs(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Xc(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Ge=!0;const Wi=[];function bt(){Wi.push(Ge),Ge=!1}function Et(){const e=Wi.pop();Ge=e===void 0?!0:e}function lo(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=fe;fe=void 0;try{t()}finally{fe=n}}}let In=0;class Qc{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 Us{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(!fe||!Ge||fe===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==fe)n=this.activeLink=new Qc(fe,this),fe.deps?(n.prevDep=fe.depsTail,fe.depsTail.nextDep=n,fe.depsTail=n):fe.deps=fe.depsTail=n,Gi(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=fe.depsTail,n.nextDep=void 0,fe.depsTail.nextDep=n,fe.depsTail=n,fe.deps===n&&(fe.deps=r)}return n}trigger(t){this.version++,In++,this.notify(t)}notify(t){Ms();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ks()}}}function Gi(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Gi(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const ar=new WeakMap,Vt=Symbol(""),as=Symbol(""),Ln=Symbol("");function Ae(e,t,n){if(Ge&&fe){let r=ar.get(e);r||ar.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new Us),s.map=r,s.key=n),s.track()}}function yt(e,t,n,r,s,o){const i=ar.get(e);if(!i){In++;return}const l=c=>{c&&c.trigger()};if(Ms(),t==="clear")i.forEach(l);else{const c=K(e),u=c&&Sr(n);if(c&&n==="length"){const a=Number(r);i.forEach((f,h)=>{(h==="length"||h===Ln||!vt(h)&&h>=a)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(Ln)),t){case"add":c?u&&l(i.get("length")):(l(i.get(Vt)),nn(e)&&l(i.get(as)));break;case"delete":c||(l(i.get(Vt)),nn(e)&&l(i.get(as)));break;case"set":nn(e)&&l(i.get(Vt));break}}ks()}function Yc(e,t){const n=ar.get(e);return n&&n.get(t)}function Jt(e){const t=re(e);return t===e?t:(Ae(t,"iterate",Ln),je(e)?t:t.map(ze))}function Cr(e){return Ae(e=re(e),"iterate",Ln),e}function Ot(e,t){return wt(e)?ft(e)?on(ze(t)):on(t):ze(t)}const Zc={__proto__:null,[Symbol.iterator](){return Kr(this,Symbol.iterator,e=>Ot(this,e))},concat(...e){return Jt(this).concat(...e.map(t=>K(t)?Jt(t):t))},entries(){return Kr(this,"entries",e=>(e[1]=Ot(this,e[1]),e))},every(e,t){return pt(this,"every",e,t,void 0,arguments)},filter(e,t){return pt(this,"filter",e,t,n=>n.map(r=>Ot(this,r)),arguments)},find(e,t){return pt(this,"find",e,t,n=>Ot(this,n),arguments)},findIndex(e,t){return pt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return pt(this,"findLast",e,t,n=>Ot(this,n),arguments)},findLastIndex(e,t){return pt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return pt(this,"forEach",e,t,void 0,arguments)},includes(...e){return Wr(this,"includes",e)},indexOf(...e){return Wr(this,"indexOf",e)},join(e){return Jt(this).join(e)},lastIndexOf(...e){return Wr(this,"lastIndexOf",e)},map(e,t){return pt(this,"map",e,t,void 0,arguments)},pop(){return mn(this,"pop")},push(...e){return mn(this,"push",e)},reduce(e,...t){return co(this,"reduce",e,t)},reduceRight(e,...t){return co(this,"reduceRight",e,t)},shift(){return mn(this,"shift")},some(e,t){return pt(this,"some",e,t,void 0,arguments)},splice(...e){return mn(this,"splice",e)},toReversed(){return Jt(this).toReversed()},toSorted(e){return Jt(this).toSorted(e)},toSpliced(...e){return Jt(this).toSpliced(...e)},unshift(...e){return mn(this,"unshift",e)},values(){return Kr(this,"values",e=>Ot(this,e))}};function Kr(e,t,n){const r=Cr(e),s=r[t]();return r!==e&&!je(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const ea=Array.prototype;function pt(e,t,n,r,s,o){const i=Cr(e),l=i!==e&&!je(e),c=i[t];if(c!==ea[t]){const f=c.apply(e,o);return l?ze(f):f}let u=n;i!==e&&(l?u=function(f,h){return n.call(this,Ot(e,f),h,e)}:n.length>2&&(u=function(f,h){return n.call(this,f,h,e)}));const a=c.call(i,u,r);return l&&s?s(a):a}function co(e,t,n,r){const s=Cr(e);let o=n;return s!==e&&(je(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,Ot(e,l),c,e)}),s[t](o,...r)}function Wr(e,t,n){const r=re(e);Ae(r,"iterate",Ln);const s=r[t](...n);return(s===-1||s===!1)&&xr(n[0])?(n[0]=re(n[0]),r[t](...n)):s}function mn(e,t,n=[]){bt(),Ms();const r=re(e)[t].apply(e,n);return ks(),Et(),r}const ta=Ns("__proto__,__v_isRef,__isVue"),zi=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(vt));function na(e){vt(e)||(e=String(e));const t=re(this);return Ae(t,"has",e),t.hasOwnProperty(e)}class Ji{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?da:Zi:o?Yi:Qi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=K(t);if(!s){let c;if(i&&(c=Zc[n]))return c;if(n==="hasOwnProperty")return na}const l=Reflect.get(t,n,de(t)?t:r);if((vt(n)?zi.has(n):ta(n))||(s||Ae(t,"get",n),o))return l;if(de(l)){const c=i&&Sr(n)?l:l.value;return s&&ae(c)?fs(c):c}return ae(l)?s?fs(l):fn(l):l}}class Xi extends Ji{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=K(t)&&Sr(n);if(!this._isShallow){const u=wt(o);if(!je(r)&&!wt(r)&&(o=re(o),r=re(r)),!i&&de(o)&&!de(r))return u||(o.value=r),!0}const l=i?Number(n)e,Wn=e=>Reflect.getPrototypeOf(e);function la(e,t,n){return function(...r){const s=this.__v_raw,o=re(s),i=nn(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=s[e](...r),a=n?us:t?on:ze;return!t&&Ae(o,"iterate",c?as:Vt),{next(){const{value:f,done:h}=u.next();return h?{value:f,done:h}:{value:l?[a(f[0]),a(f[1])]:a(f),done:h}},[Symbol.iterator](){return this}}}}function Gn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function ca(e,t){const n={get(s){const o=this.__v_raw,i=re(o),l=re(s);e||(Lt(s,l)&&Ae(i,"get",s),Ae(i,"get",l));const{has:c}=Wn(i),u=t?us:e?on:ze;if(c.call(i,s))return u(o.get(s));if(c.call(i,l))return u(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&Ae(re(s),"iterate",Vt),s.size},has(s){const o=this.__v_raw,i=re(o),l=re(s);return e||(Lt(s,l)&&Ae(i,"has",s),Ae(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,c=re(l),u=t?us:e?on:ze;return!e&&Ae(c,"iterate",Vt),l.forEach((a,f)=>s.call(o,u(a),u(f),i))}};return Ee(n,e?{add:Gn("add"),set:Gn("set"),delete:Gn("delete"),clear:Gn("clear")}:{add(s){!t&&!je(s)&&!wt(s)&&(s=re(s));const o=re(this);return Wn(o).has.call(o,s)||(o.add(s),yt(o,"add",s,s)),this},set(s,o){!t&&!je(o)&&!wt(o)&&(o=re(o));const i=re(this),{has:l,get:c}=Wn(i);let u=l.call(i,s);u||(s=re(s),u=l.call(i,s));const a=c.call(i,s);return i.set(s,o),u?Lt(o,a)&&yt(i,"set",s,o):yt(i,"add",s,o),this},delete(s){const o=re(this),{has:i,get:l}=Wn(o);let c=i.call(o,s);c||(s=re(s),c=i.call(o,s)),l&&l.call(o,s);const u=o.delete(s);return c&&yt(o,"delete",s,void 0),u},clear(){const s=re(this),o=s.size!==0,i=s.clear();return o&&yt(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=la(s,e,t)}),n}function js(e,t){const n=ca(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(oe(n,s)&&s in r?n:r,s,o)}const aa={get:js(!1,!1)},ua={get:js(!1,!0)},fa={get:js(!0,!1)};const Qi=new WeakMap,Yi=new WeakMap,Zi=new WeakMap,da=new WeakMap;function ha(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function pa(e){return e.__v_skip||!Object.isExtensible(e)?0:ha(Uc(e))}function fn(e){return wt(e)?e:Hs(e,!1,sa,aa,Qi)}function el(e){return Hs(e,!1,ia,ua,Yi)}function fs(e){return Hs(e,!0,oa,fa,Zi)}function Hs(e,t,n,r,s){if(!ae(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=pa(e);if(o===0)return e;const i=s.get(e);if(i)return i;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function ft(e){return wt(e)?ft(e.__v_raw):!!(e&&e.__v_isReactive)}function wt(e){return!!(e&&e.__v_isReadonly)}function je(e){return!!(e&&e.__v_isShallow)}function xr(e){return e?!!e.__v_raw:!1}function re(e){const t=e&&e.__v_raw;return t?re(t):e}function Vs(e){return!oe(e,"__v_skip")&&Object.isExtensible(e)&&Li(e,"__v_skip",!0),e}const ze=e=>ae(e)?fn(e):e,on=e=>ae(e)?fs(e):e;function de(e){return e?e.__v_isRef===!0:!1}function $t(e){return tl(e,!1)}function ma(e){return tl(e,!0)}function tl(e,t){return de(e)?e:new ga(e,t)}class ga{constructor(t,n){this.dep=new Us,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:re(t),this._value=n?t:ze(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||je(t)||wt(t);t=r?t:re(t),Lt(t,n)&&(this._rawValue=t,this._value=r?t:ze(t),this.dep.trigger())}}function dt(e){return de(e)?e.value:e}const ya={get:(e,t,n)=>t==="__v_raw"?e:dt(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return de(s)&&!de(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function nl(e){return ft(e)?e:new Proxy(e,ya)}function _a(e){const t=K(e)?new Array(e.length):{};for(const n in e)t[n]=rl(e,n);return t}class ba{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._raw=re(t);let s=!0,o=t;if(!K(t)||!Sr(String(n)))do s=!xr(o)||je(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=dt(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&de(this._raw[this._key])){const n=this._object[this._key];if(de(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return Yc(this._raw,this._key)}}class Ea{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function wa(e,t,n){return de(e)?e:J(e)?new Ea(e):ae(e)&&arguments.length>1?rl(e,t,n):$t(e)}function rl(e,t,n){return new ba(e,t,n)}class va{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Us(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=In-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&fe!==this)return Vi(this,!0),!0}get value(){const t=this.dep.track();return Ki(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Sa(e,t,n=!1){let r,s;return J(e)?r=e:(r=e.get,s=e.set),new va(r,s,n)}const zn={},ur=new WeakMap;let Bt;function Aa(e,t=!1,n=Bt){if(n){let r=ur.get(n);r||ur.set(n,r=[]),r.push(e)}}function Ra(e,t,n=ce){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:c}=n,u=O=>s?O:je(O)||s===!1||s===0?_t(O,1):_t(O);let a,f,h,m,g=!1,b=!1;if(de(e)?(f=()=>e.value,g=je(e)):ft(e)?(f=()=>u(e),g=!0):K(e)?(b=!0,g=e.some(O=>ft(O)||je(O)),f=()=>e.map(O=>{if(de(O))return O.value;if(ft(O))return u(O);if(J(O))return c?c(O,2):O()})):J(e)?t?f=c?()=>c(e,2):e:f=()=>{if(h){bt();try{h()}finally{Et()}}const O=Bt;Bt=a;try{return c?c(e,3,[m]):e(m)}finally{Bt=O}}:f=ut,t&&s){const O=f,B=s===!0?1/0:s;f=()=>_t(O(),B)}const E=Ui(),C=()=>{a.stop(),E&&E.active&&Ls(E.effects,a)};if(o&&t){const O=t;t=(...B)=>{O(...B),C()}}let T=b?new Array(e.length).fill(zn):zn;const N=O=>{if(!(!(a.flags&1)||!a.dirty&&!O))if(t){const B=a.run();if(s||g||(b?B.some((G,j)=>Lt(G,T[j])):Lt(B,T))){h&&h();const G=Bt;Bt=a;try{const j=[B,T===zn?void 0:b&&T[0]===zn?[]:T,m];T=B,c?c(t,3,j):t(...j)}finally{Bt=G}}}else a.run()};return l&&l(N),a=new ji(f),a.scheduler=i?()=>i(N,!1):N,m=O=>Aa(O,!1,a),h=a.onStop=()=>{const O=ur.get(a);if(O){if(c)c(O,4);else for(const B of O)B();ur.delete(a)}},t?r?N(!0):T=a.run():i?i(N.bind(null,!0),!0):a.run(),C.pause=a.pause.bind(a),C.resume=a.resume.bind(a),C.stop=C,C}function _t(e,t=1/0,n){if(t<=0||!ae(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,de(e))_t(e.value,t,n);else if(K(e))for(let r=0;r{_t(r,t,n)});else if(Ni(e)){for(const r in e)_t(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&_t(e[r],t,n)}return e}function jn(e,t,n,r){try{return r?e(...r):e()}catch(s){Tr(s,t,n)}}function Je(e,t,n,r){if(J(e)){const s=jn(e,t,n,r);return s&&Oi(s)&&s.catch(o=>{Tr(o,t,n)}),s}if(K(e)){const s=[];for(let o=0;o>>1,s=Pe[r],o=Dn(s);o=Dn(n)?Pe.push(e):Pe.splice(xa(t),0,e),e.flags|=1,ol()}}function ol(){fr||(fr=sl.then(ll))}function Ta(e){K(e)?rn.push(...e):Pt&&e.id===-1?Pt.splice(Qt+1,0,e):e.flags&1||(rn.push(e),e.flags|=1),ol()}function ao(e,t,n=ct+1){for(;nDn(n)-Dn(r));if(rn.length=0,Pt){Pt.push(...t);return}for(Pt=t,Qt=0;Qte.id==null?e.flags&2?-1:1/0:e.id;function ll(e){try{for(ct=0;ct{r._d&&mr(-1);const o=dr(t);let i;try{i=e(...s)}finally{dr(o),r._d&&mr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function xp(e,t){if(Ce===null)return e;const n=Lr(Ce),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&J(t)?t.call(r&&r.proxy):t}}function Oa(){return!!(Js()||qt)}const Pa=Symbol.for("v-scx"),Na=()=>Ke(Pa);function Sn(e,t,n){return ul(e,t,n)}function ul(e,t,n=ce){const{immediate:r,deep:s,flush:o,once:i}=n,l=Ee({},n),c=t&&r||!t&&o!=="post";let u;if(Bn){if(o==="sync"){const m=Na();u=m.__watcherHandles||(m.__watcherHandles=[])}else if(!c){const m=()=>{};return m.stop=ut,m.resume=ut,m.pause=ut,m}}const a=Ne;l.call=(m,g,b)=>Je(m,a,g,b);let f=!1;o==="post"?l.scheduler=m=>{Te(m,a&&a.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(m,g)=>{g?m():qs(m)}),l.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,a&&(m.id=a.uid,m.i=a))};const h=Ra(e,t,l);return Bn&&(u?u.push(h):c&&h()),h}function Ia(e,t,n){const r=this.proxy,s=pe(e)?e.includes(".")?fl(r,e):()=>r[e]:e.bind(r,r);let o;J(t)?o=t:(o=t.handler,n=t);const i=Hn(this),l=ul(s,o.bind(r),n);return i(),l}function fl(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,An=e=>e&&(e.disabled||e.disabled===""),uo=e=>e&&(e.defer||e.defer===""),fo=e=>typeof SVGElement<"u"&&e instanceof SVGElement,ho=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,ds=(e,t)=>{const n=e&&e.to;return pe(n)?t?t(n):null:n},hl={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,u){const{mc:a,pc:f,pbc:h,o:{insert:m,querySelector:g,createText:b,createComment:E}}=u,C=An(t.props);let{shapeFlag:T,children:N,dynamicChildren:O}=t;if(e==null){const B=t.el=b(""),G=t.anchor=b("");m(B,n,r),m(G,n,r);const j=(x,$)=>{T&16&&a(N,x,$,s,o,i,l,c)},U=()=>{const x=t.target=ds(t.props,g),$=pl(x,t,b,m);x&&(i!=="svg"&&fo(x)?i="svg":i!=="mathml"&&ho(x)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(x),C||(j(x,$),nr(t,!1)))};C&&(j(n,G),nr(t,!0)),uo(t.props)?(t.el.__isMounted=!1,Te(()=>{U(),delete t.el.__isMounted},o)):U()}else{if(uo(t.props)&&e.el.__isMounted===!1){Te(()=>{hl.process(e,t,n,r,s,o,i,l,c,u)},o);return}t.el=e.el,t.targetStart=e.targetStart;const B=t.anchor=e.anchor,G=t.target=e.target,j=t.targetAnchor=e.targetAnchor,U=An(e.props),x=U?n:G,$=U?B:j;if(i==="svg"||fo(G)?i="svg":(i==="mathml"||ho(G))&&(i="mathml"),O?(h(e.dynamicChildren,O,x,s,o,i,l),Gs(e,t,!0)):c||f(e,t,x,$,s,o,i,l,!1),C)U?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Jn(t,n,B,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const Y=t.target=ds(t.props,g);Y&&Jn(t,Y,null,u,0)}else U&&Jn(t,G,j,u,1);nr(t,C)}},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetStart:u,targetAnchor:a,target:f,props:h}=e;if(f&&(s(u),s(a)),o&&s(c),i&16){const m=o||!An(h);for(let g=0;g{e.isMounted=!0}),wl(()=>{e.isUnmounting=!0}),e}const $e=[Function,Array],ka={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:$e,onEnter:$e,onAfterEnter:$e,onEnterCancelled:$e,onBeforeLeave:$e,onLeave:$e,onAfterLeave:$e,onLeaveCancelled:$e,onBeforeAppear:$e,onAppear:$e,onAfterAppear:$e,onAppearCancelled:$e};function Ba(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function hs(e,t,n,r,s){const{appear:o,mode:i,persisted:l=!1,onBeforeEnter:c,onEnter:u,onAfterEnter:a,onEnterCancelled:f,onBeforeLeave:h,onLeave:m,onAfterLeave:g,onLeaveCancelled:b,onBeforeAppear:E,onAppear:C,onAfterAppear:T,onAppearCancelled:N}=t,O=String(e.key),B=Ba(n,e),G=(x,$)=>{x&&Je(x,r,9,$)},j=(x,$)=>{const Y=$[1];G(x,$),K(x)?x.every(L=>L.length<=1)&&Y():x.length<=1&&Y()},U={mode:i,persisted:l,beforeEnter(x){let $=c;if(!n.isMounted)if(o)$=E||c;else return;x[Ut]&&x[Ut](!0);const Y=B[O];Y&&Yt(e,Y)&&Y.el[Ut]&&Y.el[Ut](),G($,[x])},enter(x){let $=u,Y=a,L=f;if(!n.isMounted)if(o)$=C||u,Y=T||a,L=N||f;else return;let Q=!1;const le=x[Xn]=we=>{Q||(Q=!0,we?G(L,[x]):G(Y,[x]),U.delayedLeave&&U.delayedLeave(),x[Xn]=void 0)};$?j($,[x,le]):le()},leave(x,$){const Y=String(e.key);if(x[Xn]&&x[Xn](!0),n.isUnmounting)return $();G(h,[x]);let L=!1;const Q=x[Ut]=le=>{L||(L=!0,$(),le?G(b,[x]):G(g,[x]),x[Ut]=void 0,B[Y]===e&&delete B[Y])};B[Y]=e,m?j(m,[x,Q]):Q()},clone(x){return hs(x,t,n,r)}};return U}function Fn(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Fn(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 ml(e,t=!1,n){let r=[],s=0;for(let o=0;o1)for(let o=0;oRn(g,t&&(K(t)?t[b]:t),n,r,s));return}if(sn(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&Rn(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?Lr(r.component):r.el,i=s?null:o,{i:l,r:c}=e,u=t&&t.r,a=l.refs===ce?l.refs={}:l.refs,f=l.setupState,h=re(f),m=f===ce?xi:g=>oe(h,g);if(u!=null&&u!==c){if(po(t),pe(u))a[u]=null,m(u)&&(f[u]=null);else if(de(u)){u.value=null;const g=t;g.k&&(a[g.k]=null)}}if(J(c))jn(c,l,12,[i,a]);else{const g=pe(c),b=de(c);if(g||b){const E=()=>{if(e.f){const C=g?m(c)?f[c]:a[c]:c.value;if(s)K(C)&&Ls(C,o);else if(K(C))C.includes(o)||C.push(o);else if(g)a[c]=[o],m(c)&&(f[c]=a[c]);else{const T=[o];c.value=T,e.k&&(a[e.k]=T)}}else g?(a[c]=i,m(c)&&(f[c]=i)):b&&(c.value=i,e.k&&(a[e.k]=i))};if(i){const C=()=>{E(),hr.delete(e)};C.id=-1,hr.set(e,C),Te(C,n)}else po(e),E()}}}function po(e){const t=hr.get(e);t&&(t.flags|=8,hr.delete(e))}Rr().requestIdleCallback;Rr().cancelIdleCallback;const sn=e=>!!e.type.__asyncLoader,yl=e=>e.type.__isKeepAlive;function Ua(e,t){_l(e,"a",t)}function ja(e,t){_l(e,"da",t)}function _l(e,t,n=Ne){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Pr(t,r,n),n){let s=n.parent;for(;s&&s.parent;)yl(s.parent.vnode)&&Ha(r,t,n,s),s=s.parent}}function Ha(e,t,n,r){const s=Pr(t,e,r,!0);vl(()=>{Ls(r[t],s)},n)}function Pr(e,t,n=Ne,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{bt();const l=Hn(n),c=Je(t,n,e,i);return l(),Et(),c});return r?s.unshift(o):s.push(o),o}}const St=e=>(t,n=Ne)=>{(!Bn||e==="sp")&&Pr(e,(...r)=>t(...r),n)},Va=St("bm"),bl=St("m"),$a=St("bu"),El=St("u"),wl=St("bum"),vl=St("um"),qa=St("sp"),Ka=St("rtg"),Wa=St("rtc");function Ga(e,t=Ne){Pr("ec",e,t)}const za=Symbol.for("v-ndc");function Ja(e,t,n,r){let s;const o=n,i=K(e);if(i||pe(e)){const l=i&&ft(e);let c=!1,u=!1;l&&(c=!je(e),u=wt(e),e=Cr(e)),s=new Array(e.length);for(let a=0,f=e.length;at(l,c,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let c=0,u=l.length;c0;return qe(),gr(ve,null,[be("slot",n,r)],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),qe();const i=o&&Sl(o(n)),l=n.key||i&&i.key,c=gr(ve,{key:(l&&!vt(l)?l:`_${t}`)+(!i&&r?"_fb":"")},i||[],i&&e._===1?64:-2);return c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),o&&o._c&&(o._d=!0),c}function Sl(e){return e.some(t=>kn(t)?!(t.type===ht||t.type===ve&&!Sl(t.children)):!0)?e:null}const ps=e=>e?Hl(e)?Lr(e):ps(e.parent):null,Cn=Ee(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=>ps(e.parent),$root:e=>ps(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Rl(e),$forceUpdate:e=>e.f||(e.f=()=>{qs(e.update)}),$nextTick:e=>e.n||(e.n=$s.bind(e.proxy)),$watch:e=>Ia.bind(e)}),Gr=(e,t)=>e!==ce&&!e.__isScriptSetup&&oe(e,t),Xa={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:o,accessCache:i,type:l,appContext:c}=e;if(t[0]!=="$"){const h=i[t];if(h!==void 0)switch(h){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(Gr(r,t))return i[t]=1,r[t];if(s!==ce&&oe(s,t))return i[t]=2,s[t];if(oe(o,t))return i[t]=3,o[t];if(n!==ce&&oe(n,t))return i[t]=4,n[t];ms&&(i[t]=0)}}const u=Cn[t];let a,f;if(u)return t==="$attrs"&&Ae(e.attrs,"get",""),u(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==ce&&oe(n,t))return i[t]=4,n[t];if(f=c.config.globalProperties,oe(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return Gr(s,t)?(s[t]=n,!0):r!==ce&&oe(r,t)?(r[t]=n,!0):oe(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:o,type:i}},l){let c;return!!(n[l]||e!==ce&&l[0]!=="$"&&oe(e,l)||Gr(t,l)||oe(o,l)||oe(r,l)||oe(Cn,l)||oe(s.config.globalProperties,l)||(c=i.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:oe(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function mo(e){return K(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let ms=!0;function Qa(e){const t=Rl(e),n=e.proxy,r=e.ctx;ms=!1,t.beforeCreate&&go(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:u,created:a,beforeMount:f,mounted:h,beforeUpdate:m,updated:g,activated:b,deactivated:E,beforeDestroy:C,beforeUnmount:T,destroyed:N,unmounted:O,render:B,renderTracked:G,renderTriggered:j,errorCaptured:U,serverPrefetch:x,expose:$,inheritAttrs:Y,components:L,directives:Q,filters:le}=t;if(u&&Ya(u,r,null),i)for(const z in i){const Z=i[z];J(Z)&&(r[z]=Z.bind(n))}if(s){const z=s.call(n,n);ae(z)&&(e.data=fn(z))}if(ms=!0,o)for(const z in o){const Z=o[z],He=J(Z)?Z.bind(n,n):J(Z.get)?Z.get.bind(n,n):ut,Ye=!J(Z)&&J(Z.set)?Z.set.bind(n):ut,ye=Be({get:He,set:Ye});Object.defineProperty(r,z,{enumerable:!0,configurable:!0,get:()=>ye.value,set:me=>ye.value=me})}if(l)for(const z in l)Al(l[z],r,n,z);if(c){const z=J(c)?c.call(n):c;Reflect.ownKeys(z).forEach(Z=>{tr(Z,z[Z])})}a&&go(a,e,"c");function ee(z,Z){K(Z)?Z.forEach(He=>z(He.bind(n))):Z&&z(Z.bind(n))}if(ee(Va,f),ee(bl,h),ee($a,m),ee(El,g),ee(Ua,b),ee(ja,E),ee(Ga,U),ee(Wa,G),ee(Ka,j),ee(wl,T),ee(vl,O),ee(qa,x),K($))if($.length){const z=e.exposed||(e.exposed={});$.forEach(Z=>{Object.defineProperty(z,Z,{get:()=>n[Z],set:He=>n[Z]=He,enumerable:!0})})}else e.exposed||(e.exposed={});B&&e.render===ut&&(e.render=B),Y!=null&&(e.inheritAttrs=Y),L&&(e.components=L),Q&&(e.directives=Q),x&&gl(e)}function Ya(e,t,n=ut){K(e)&&(e=gs(e));for(const r in e){const s=e[r];let o;ae(s)?"default"in s?o=Ke(s.from||r,s.default,!0):o=Ke(s.from||r):o=Ke(s),de(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function go(e,t,n){Je(K(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Al(e,t,n,r){let s=r.includes(".")?fl(n,r):()=>n[r];if(pe(e)){const o=t[e];J(o)&&Sn(s,o)}else if(J(e))Sn(s,e.bind(n));else if(ae(e))if(K(e))e.forEach(o=>Al(o,t,n,r));else{const o=J(e.handler)?e.handler.bind(n):t[e.handler];J(o)&&Sn(s,o,e)}}function Rl(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>pr(c,u,i,!0)),pr(c,t,i)),ae(t)&&o.set(t,c),c}function pr(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&pr(e,o,n,!0),s&&s.forEach(i=>pr(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Za[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Za={data:yo,props:_o,emits:_o,methods:bn,computed:bn,beforeCreate:xe,created:xe,beforeMount:xe,mounted:xe,beforeUpdate:xe,updated:xe,beforeDestroy:xe,beforeUnmount:xe,destroyed:xe,unmounted:xe,activated:xe,deactivated:xe,errorCaptured:xe,serverPrefetch:xe,components:bn,directives:bn,watch:tu,provide:yo,inject:eu};function yo(e,t){return t?e?function(){return Ee(J(e)?e.call(this,this):e,J(t)?t.call(this,this):t)}:t:e}function eu(e,t){return bn(gs(e),gs(t))}function gs(e){if(K(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Dt(t)}Modifiers`]||e[`${zt(t)}Modifiers`];function ou(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||ce;let s=n;const o=t.startsWith("update:"),i=o&&su(r,t.slice(7));i&&(i.trim&&(s=n.map(a=>pe(a)?a.trim():a)),i.number&&(s=n.map(Ds)));let l,c=r[l=Vr(t)]||r[l=Vr(Dt(t))];!c&&o&&(c=r[l=Vr(zt(t))]),c&&Je(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Je(u,e,6,s)}}const iu=new WeakMap;function xl(e,t,n=!1){const r=n?iu:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!J(e)){const c=u=>{const a=xl(u,t,!0);a&&(l=!0,Ee(i,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(ae(e)&&r.set(e,null),null):(K(o)?o.forEach(c=>i[c]=null):Ee(i,o),ae(e)&&r.set(e,i),i)}function Nr(e,t){return!e||!wr(t)?!1:(t=t.slice(2).replace(/Once$/,""),oe(e,t[0].toLowerCase()+t.slice(1))||oe(e,zt(t))||oe(e,t))}function bo(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:a,props:f,data:h,setupState:m,ctx:g,inheritAttrs:b}=e,E=dr(e);let C,T;try{if(n.shapeFlag&4){const O=s||r,B=O;C=at(u.call(B,O,a,f,m,h,g)),T=l}else{const O=t;C=at(O.length>1?O(f,{attrs:l,slots:i,emit:c}):O(f,null)),T=t.props?l:lu(l)}}catch(O){xn.length=0,Tr(O,e,1),C=be(ht)}let N=C;if(T&&b!==!1){const O=Object.keys(T),{shapeFlag:B}=N;O.length&&B&7&&(o&&O.some(Is)&&(T=cu(T,o)),N=Wt(N,T,!1,!0))}return n.dirs&&(N=Wt(N,null,!1,!0),N.dirs=N.dirs?N.dirs.concat(n.dirs):n.dirs),n.transition&&Fn(N,n.transition),C=N,dr(E),C}const lu=e=>{let t;for(const n in e)(n==="class"||n==="style"||wr(n))&&((t||(t={}))[n]=e[n]);return t},cu=(e,t)=>{const n={};for(const r in e)(!Is(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function au(e,t,n){const{props:r,children:s,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 r?Eo(r,i,u):!!i;if(c&8){const a=t.dynamicProps;for(let f=0;fObject.create(Tl),Pl=e=>Object.getPrototypeOf(e)===Tl;function fu(e,t,n,r=!1){const s={},o=Ol();e.propsDefaults=Object.create(null),Nl(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:el(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function du(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=re(s),[c]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const a=e.vnode.dynamicProps;for(let f=0;f{c=!0;const[h,m]=Il(f,t,!0);Ee(i,h),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!c)return ae(e)&&r.set(e,tn),tn;if(K(o))for(let a=0;ae==="_"||e==="_ctx"||e==="$stable",Ws=e=>K(e)?e.map(at):[at(e)],pu=(e,t,n)=>{if(t._n)return t;const r=al((...s)=>Ws(t(...s)),n);return r._c=!1,r},Ll=(e,t,n)=>{const r=e._ctx;for(const s in e){if(Ks(s))continue;const o=e[s];if(J(o))t[s]=pu(s,o,r);else if(o!=null){const i=Ws(o);t[s]=()=>i}}},Dl=(e,t)=>{const n=Ws(t);e.slots.default=()=>n},Fl=(e,t,n)=>{for(const r in t)(n||!Ks(r))&&(e[r]=t[r])},mu=(e,t,n)=>{const r=e.slots=Ol();if(e.vnode.shapeFlag&32){const s=t._;s?(Fl(r,t,n),n&&Li(r,"_",s,!0)):Ll(t,r)}else t&&Dl(e,t)},gu=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=ce;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:Fl(s,t,n):(o=!t.$stable,Ll(t,s)),i=t}else t&&(Dl(e,t),i={default:1});if(o)for(const l in s)!Ks(l)&&i[l]==null&&delete s[l]},Te=wu;function yu(e){return _u(e)}function _u(e,t){const n=Rr();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:a,parentNode:f,nextSibling:h,setScopeId:m=ut,insertStaticContent:g}=e,b=(d,p,y,w=null,A=null,v=null,D=void 0,I=null,P=!!p.dynamicChildren)=>{if(d===p)return;d&&!Yt(d,p)&&(w=S(d),me(d,A,v,!0),d=null),p.patchFlag===-2&&(P=!1,p.dynamicChildren=null);const{type:R,ref:q,shapeFlag:M}=p;switch(R){case Ir:E(d,p,y,w);break;case ht:C(d,p,y,w);break;case rr:d==null&&T(p,y,w,D);break;case ve:L(d,p,y,w,A,v,D,I,P);break;default:M&1?B(d,p,y,w,A,v,D,I,P):M&6?Q(d,p,y,w,A,v,D,I,P):(M&64||M&128)&&R.process(d,p,y,w,A,v,D,I,P,H)}q!=null&&A?Rn(q,d&&d.ref,v,p||d,!p):q==null&&d&&d.ref!=null&&Rn(d.ref,null,v,d,!0)},E=(d,p,y,w)=>{if(d==null)r(p.el=l(p.children),y,w);else{const A=p.el=d.el;p.children!==d.children&&u(A,p.children)}},C=(d,p,y,w)=>{d==null?r(p.el=c(p.children||""),y,w):p.el=d.el},T=(d,p,y,w)=>{[d.el,d.anchor]=g(d.children,p,y,w,d.el,d.anchor)},N=({el:d,anchor:p},y,w)=>{let A;for(;d&&d!==p;)A=h(d),r(d,y,w),d=A;r(p,y,w)},O=({el:d,anchor:p})=>{let y;for(;d&&d!==p;)y=h(d),s(d),d=y;s(p)},B=(d,p,y,w,A,v,D,I,P)=>{if(p.type==="svg"?D="svg":p.type==="math"&&(D="mathml"),d==null)G(p,y,w,A,v,D,I,P);else{const R=d.el&&d.el._isVueCE?d.el:null;try{R&&R._beginPatch(),x(d,p,A,v,D,I,P)}finally{R&&R._endPatch()}}},G=(d,p,y,w,A,v,D,I)=>{let P,R;const{props:q,shapeFlag:M,transition:V,dirs:W}=d;if(P=d.el=i(d.type,v,q&&q.is,q),M&8?a(P,d.children):M&16&&U(d.children,P,null,w,A,zr(d,v),D,I),W&&Ft(d,null,w,"created"),j(P,d,d.scopeId,D,w),q){for(const ue in q)ue!=="value"&&!En(ue)&&o(P,ue,null,q[ue],v,w);"value"in q&&o(P,"value",null,q.value,v),(R=q.onVnodeBeforeMount)&&st(R,w,d)}W&&Ft(d,null,w,"beforeMount");const ne=bu(A,V);ne&&V.beforeEnter(P),r(P,p,y),((R=q&&q.onVnodeMounted)||ne||W)&&Te(()=>{R&&st(R,w,d),ne&&V.enter(P),W&&Ft(d,null,w,"mounted")},A)},j=(d,p,y,w,A)=>{if(y&&m(d,y),w)for(let v=0;v{for(let R=P;R{const I=p.el=d.el;let{patchFlag:P,dynamicChildren:R,dirs:q}=p;P|=d.patchFlag&16;const M=d.props||ce,V=p.props||ce;let W;if(y&&Mt(y,!1),(W=V.onVnodeBeforeUpdate)&&st(W,y,p,d),q&&Ft(p,d,y,"beforeUpdate"),y&&Mt(y,!0),(M.innerHTML&&V.innerHTML==null||M.textContent&&V.textContent==null)&&a(I,""),R?$(d.dynamicChildren,R,I,y,w,zr(p,A),v):D||Z(d,p,I,null,y,w,zr(p,A),v,!1),P>0){if(P&16)Y(I,M,V,y,A);else if(P&2&&M.class!==V.class&&o(I,"class",null,V.class,A),P&4&&o(I,"style",M.style,V.style,A),P&8){const ne=p.dynamicProps;for(let ue=0;ue{W&&st(W,y,p,d),q&&Ft(p,d,y,"updated")},w)},$=(d,p,y,w,A,v,D)=>{for(let I=0;I{if(p!==y){if(p!==ce)for(const v in p)!En(v)&&!(v in y)&&o(d,v,p[v],null,A,w);for(const v in y){if(En(v))continue;const D=y[v],I=p[v];D!==I&&v!=="value"&&o(d,v,I,D,A,w)}"value"in y&&o(d,"value",p.value,y.value,A)}},L=(d,p,y,w,A,v,D,I,P)=>{const R=p.el=d?d.el:l(""),q=p.anchor=d?d.anchor:l("");let{patchFlag:M,dynamicChildren:V,slotScopeIds:W}=p;W&&(I=I?I.concat(W):W),d==null?(r(R,y,w),r(q,y,w),U(p.children||[],y,q,A,v,D,I,P)):M>0&&M&64&&V&&d.dynamicChildren&&d.dynamicChildren.length===V.length?($(d.dynamicChildren,V,y,A,v,D,I),(p.key!=null||A&&p===A.subTree)&&Gs(d,p,!0)):Z(d,p,y,q,A,v,D,I,P)},Q=(d,p,y,w,A,v,D,I,P)=>{p.slotScopeIds=I,d==null?p.shapeFlag&512?A.ctx.activate(p,y,w,D,P):le(p,y,w,A,v,D,P):we(d,p,P)},le=(d,p,y,w,A,v,D)=>{const I=d.component=Pu(d,w,A);if(yl(d)&&(I.ctx.renderer=H),Nu(I,!1,D),I.asyncDep){if(A&&A.registerDep(I,ee,D),!d.el){const P=I.subTree=be(ht);C(null,P,p,y),d.placeholder=P.el}}else ee(I,d,p,y,A,v,D)},we=(d,p,y)=>{const w=p.component=d.component;if(au(d,p,y))if(w.asyncDep&&!w.asyncResolved){z(w,p,y);return}else w.next=p,w.update();else p.el=d.el,w.vnode=p},ee=(d,p,y,w,A,v,D)=>{const I=()=>{if(d.isMounted){let{next:M,bu:V,u:W,parent:ne,vnode:ue}=d;{const nt=Ml(d);if(nt){M&&(M.el=ue.el,z(d,M,D)),nt.asyncDep.then(()=>{d.isUnmounted||I()});return}}let ie=M,Ie;Mt(d,!1),M?(M.el=ue.el,z(d,M,D)):M=ue,V&&er(V),(Ie=M.props&&M.props.onVnodeBeforeUpdate)&&st(Ie,ne,M,ue),Mt(d,!0);const Le=bo(d),tt=d.subTree;d.subTree=Le,b(tt,Le,f(tt.el),S(tt),d,A,v),M.el=Le.el,ie===null&&uu(d,Le.el),W&&Te(W,A),(Ie=M.props&&M.props.onVnodeUpdated)&&Te(()=>st(Ie,ne,M,ue),A)}else{let M;const{el:V,props:W}=p,{bm:ne,m:ue,parent:ie,root:Ie,type:Le}=d,tt=sn(p);Mt(d,!1),ne&&er(ne),!tt&&(M=W&&W.onVnodeBeforeMount)&&st(M,ie,p),Mt(d,!0);{Ie.ce&&Ie.ce._def.shadowRoot!==!1&&Ie.ce._injectChildStyle(Le);const nt=d.subTree=bo(d);b(null,nt,y,w,d,A,v),p.el=nt.el}if(ue&&Te(ue,A),!tt&&(M=W&&W.onVnodeMounted)){const nt=p;Te(()=>st(M,ie,nt),A)}(p.shapeFlag&256||ie&&sn(ie.vnode)&&ie.vnode.shapeFlag&256)&&d.a&&Te(d.a,A),d.isMounted=!0,p=y=w=null}};d.scope.on();const P=d.effect=new ji(I);d.scope.off();const R=d.update=P.run.bind(P),q=d.job=P.runIfDirty.bind(P);q.i=d,q.id=d.uid,P.scheduler=()=>qs(q),Mt(d,!0),R()},z=(d,p,y)=>{p.component=d;const w=d.vnode.props;d.vnode=p,d.next=null,du(d,p.props,w,y),gu(d,p.children,y),bt(),ao(d),Et()},Z=(d,p,y,w,A,v,D,I,P=!1)=>{const R=d&&d.children,q=d?d.shapeFlag:0,M=p.children,{patchFlag:V,shapeFlag:W}=p;if(V>0){if(V&128){Ye(R,M,y,w,A,v,D,I,P);return}else if(V&256){He(R,M,y,w,A,v,D,I,P);return}}W&8?(q&16&&Ve(R,A,v),M!==R&&a(y,M)):q&16?W&16?Ye(R,M,y,w,A,v,D,I,P):Ve(R,A,v,!0):(q&8&&a(y,""),W&16&&U(M,y,w,A,v,D,I,P))},He=(d,p,y,w,A,v,D,I,P)=>{d=d||tn,p=p||tn;const R=d.length,q=p.length,M=Math.min(R,q);let V;for(V=0;Vq?Ve(d,A,v,!0,!1,M):U(p,y,w,A,v,D,I,P,M)},Ye=(d,p,y,w,A,v,D,I,P)=>{let R=0;const q=p.length;let M=d.length-1,V=q-1;for(;R<=M&&R<=V;){const W=d[R],ne=p[R]=P?Nt(p[R]):at(p[R]);if(Yt(W,ne))b(W,ne,y,null,A,v,D,I,P);else break;R++}for(;R<=M&&R<=V;){const W=d[M],ne=p[V]=P?Nt(p[V]):at(p[V]);if(Yt(W,ne))b(W,ne,y,null,A,v,D,I,P);else break;M--,V--}if(R>M){if(R<=V){const W=V+1,ne=WV)for(;R<=M;)me(d[R],A,v,!0),R++;else{const W=R,ne=R,ue=new Map;for(R=ne;R<=V;R++){const Me=p[R]=P?Nt(p[R]):at(p[R]);Me.key!=null&&ue.set(Me.key,R)}let ie,Ie=0;const Le=V-ne+1;let tt=!1,nt=0;const pn=new Array(Le);for(R=0;R=Le){me(Me,A,v,!0);continue}let rt;if(Me.key!=null)rt=ue.get(Me.key);else for(ie=ne;ie<=V;ie++)if(pn[ie-ne]===0&&Yt(Me,p[ie])){rt=ie;break}rt===void 0?me(Me,A,v,!0):(pn[rt-ne]=R+1,rt>=nt?nt=rt:tt=!0,b(Me,p[rt],y,null,A,v,D,I,P),Ie++)}const ro=tt?Eu(pn):tn;for(ie=ro.length-1,R=Le-1;R>=0;R--){const Me=ne+R,rt=p[Me],so=p[Me+1],oo=Me+1{const{el:v,type:D,transition:I,children:P,shapeFlag:R}=d;if(R&6){ye(d.component.subTree,p,y,w);return}if(R&128){d.suspense.move(p,y,w);return}if(R&64){D.move(d,p,y,H);return}if(D===ve){r(v,p,y);for(let M=0;MI.enter(v),A);else{const{leave:M,delayLeave:V,afterLeave:W}=I,ne=()=>{d.ctx.isUnmounted?s(v):r(v,p,y)},ue=()=>{v._isLeaving&&v[Ut](!0),M(v,()=>{ne(),W&&W()})};V?V(v,ne,ue):ue()}else r(v,p,y)},me=(d,p,y,w=!1,A=!1)=>{const{type:v,props:D,ref:I,children:P,dynamicChildren:R,shapeFlag:q,patchFlag:M,dirs:V,cacheIndex:W}=d;if(M===-2&&(A=!1),I!=null&&(bt(),Rn(I,null,y,d,!0),Et()),W!=null&&(p.renderCache[W]=void 0),q&256){p.ctx.deactivate(d);return}const ne=q&1&&V,ue=!sn(d);let ie;if(ue&&(ie=D&&D.onVnodeBeforeUnmount)&&st(ie,p,d),q&6)et(d.component,y,w);else{if(q&128){d.suspense.unmount(y,w);return}ne&&Ft(d,null,p,"beforeUnmount"),q&64?d.type.remove(d,p,y,H,w):R&&!R.hasOnce&&(v!==ve||M>0&&M&64)?Ve(R,p,y,!1,!0):(v===ve&&M&384||!A&&q&16)&&Ve(P,p,y),w&&Ze(d)}(ue&&(ie=D&&D.onVnodeUnmounted)||ne)&&Te(()=>{ie&&st(ie,p,d),ne&&Ft(d,null,p,"unmounted")},y)},Ze=d=>{const{type:p,el:y,anchor:w,transition:A}=d;if(p===ve){We(y,w);return}if(p===rr){O(d);return}const v=()=>{s(y),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(d.shapeFlag&1&&A&&!A.persisted){const{leave:D,delayLeave:I}=A,P=()=>D(y,v);I?I(d.el,v,P):P()}else v()},We=(d,p)=>{let y;for(;d!==p;)y=h(d),s(d),d=y;s(p)},et=(d,p,y)=>{const{bum:w,scope:A,job:v,subTree:D,um:I,m:P,a:R}=d;vo(P),vo(R),w&&er(w),A.stop(),v&&(v.flags|=8,me(D,d,p,y)),I&&Te(I,p),Te(()=>{d.isUnmounted=!0},p)},Ve=(d,p,y,w=!1,A=!1,v=0)=>{for(let D=v;D{if(d.shapeFlag&6)return S(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const p=h(d.anchor||d.el),y=p&&p[dl];return y?h(y):p};let k=!1;const F=(d,p,y)=>{let w;d==null?p._vnode&&(me(p._vnode,null,null,!0),w=p._vnode.component):b(p._vnode||null,d,p,null,null,null,y),p._vnode=d,k||(k=!0,ao(w),il(),k=!1)},H={p:b,um:me,m:ye,r:Ze,mt:le,mc:U,pc:Z,pbc:$,n:S,o:e};return{render:F,hydrate:void 0,createApp:ru(F)}}function zr({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 Mt({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function bu(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Gs(e,t,n=!1){const r=e.children,s=t.children;if(K(r)&&K(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Ml(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Ml(t)}function vo(e){if(e)for(let t=0;te.__isSuspense;function wu(e,t){t&&t.pendingBranch?K(e)?t.effects.push(...e):t.effects.push(e):Ta(e)}const ve=Symbol.for("v-fgt"),Ir=Symbol.for("v-txt"),ht=Symbol.for("v-cmt"),rr=Symbol.for("v-stc"),xn=[];let Ue=null;function qe(e=!1){xn.push(Ue=e?null:[])}function vu(){xn.pop(),Ue=xn[xn.length-1]||null}let Mn=1;function mr(e,t=!1){Mn+=e,e<0&&Ue&&t&&(Ue.hasOnce=!0)}function Ul(e){return e.dynamicChildren=Mn>0?Ue||tn:null,vu(),Mn>0&&Ue&&Ue.push(e),e}function Ct(e,t,n,r,s,o){return Ul(ke(e,t,n,r,s,o,!0))}function gr(e,t,n,r,s){return Ul(be(e,t,n,r,s,!0))}function kn(e){return e?e.__v_isVNode===!0:!1}function Yt(e,t){return e.type===t.type&&e.key===t.key}const jl=({key:e})=>e??null,sr=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?pe(e)||de(e)||J(e)?{i:Ce,r:e,k:t,f:!!n}:e:null);function ke(e,t=null,n=null,r=0,s=null,o=e===ve?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&jl(t),ref:t&&sr(t),scopeId:cl,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:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Ce};return l?(zs(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=pe(n)?8:16),Mn>0&&!i&&Ue&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Ue.push(c),c}const be=Su;function Su(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===za)&&(e=ht),kn(e)){const l=Wt(e,t,!0);return n&&zs(l,n),Mn>0&&!o&&Ue&&(l.shapeFlag&6?Ue[Ue.indexOf(e)]=l:Ue.push(l)),l.patchFlag=-2,l}if(Fu(e)&&(e=e.__vccOpts),t){t=Au(t);let{class:l,style:c}=t;l&&!pe(l)&&(t.class=Nn(l)),ae(c)&&(xr(c)&&!K(c)&&(c=Ee({},c)),t.style=Fs(c))}const i=pe(e)?1:Bl(e)?128:La(e)?64:ae(e)?4:J(e)?2:0;return ke(e,t,n,r,s,i,o,!0)}function Au(e){return e?xr(e)||Pl(e)?Ee({},e):e:null}function Wt(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?xu(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&jl(u),ref:t&&t.ref?n&&o?K(o)?o.concat(sr(t)):[o,sr(t)]:sr(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&&r&&Fn(a,c.clone(a)),a}function Ru(e=" ",t=0){return be(Ir,null,e,t)}function Op(e,t){const n=be(rr,null,e);return n.staticCount=t,n}function Cu(e="",t=!1){return t?(qe(),gr(ht,null,e)):be(ht,null,e)}function at(e){return e==null||typeof e=="boolean"?be(ht):K(e)?be(ve,null,e.slice()):kn(e)?Nt(e):be(Ir,null,String(e))}function Nt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Wt(e)}function zs(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(K(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),zs(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Pl(t)?t._ctx=Ce:s===3&&Ce&&(Ce.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else J(t)?(t={default:t,_ctx:Ce},n=32):(t=String(t),r&64?(n=16,t=[Ru(t)]):n=8);e.children=t,e.shapeFlag|=n}function xu(...e){const t={};for(let n=0;nNe||Ce;let yr,_s;{const e=Rr(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};yr=t("__VUE_INSTANCE_SETTERS__",n=>Ne=n),_s=t("__VUE_SSR_SETTERS__",n=>Bn=n)}const Hn=e=>{const t=Ne;return yr(e),e.scope.on(),()=>{e.scope.off(),yr(t)}},So=()=>{Ne&&Ne.scope.off(),yr(null)};function Hl(e){return e.vnode.shapeFlag&4}let Bn=!1;function Nu(e,t=!1,n=!1){t&&_s(t);const{props:r,children:s}=e.vnode,o=Hl(e);fu(e,r,o,t),mu(e,s,n||t);const i=o?Iu(e,t):void 0;return t&&_s(!1),i}function Iu(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Xa);const{setup:r}=n;if(r){bt();const s=e.setupContext=r.length>1?Du(e):null,o=Hn(e),i=jn(r,e,0,[e.props,s]),l=Oi(i);if(Et(),o(),(l||e.sp)&&!sn(e)&&gl(e),l){if(i.then(So,So),t)return i.then(c=>{Ao(e,c)}).catch(c=>{Tr(c,e,0)});e.asyncDep=i}else Ao(e,i)}else Vl(e)}function Ao(e,t,n){J(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ae(t)&&(e.setupState=nl(t)),Vl(e)}function Vl(e,t,n){const r=e.type;e.render||(e.render=r.render||ut);{const s=Hn(e);bt();try{Qa(e)}finally{Et(),s()}}}const Lu={get(e,t){return Ae(e,"get",""),e[t]}};function Du(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Lu),slots:e.slots,emit:e.emit,expose:t}}function Lr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(nl(Vs(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Cn)return Cn[n](e)},has(t,n){return n in t||n in Cn}})):e.proxy}function Fu(e){return J(e)&&"__vccOpts"in e}const Be=(e,t)=>Sa(e,t,Bn);function $l(e,t,n){try{mr(-1);const r=arguments.length;return r===2?ae(t)&&!K(t)?kn(t)?be(e,null,[t]):be(e,t):be(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&kn(n)&&(n=[n]),be(e,t,n))}finally{mr(1)}}const Mu="3.5.26";let bs;const Ro=typeof window<"u"&&window.trustedTypes;if(Ro)try{bs=Ro.createPolicy("vue",{createHTML:e=>e})}catch{}const ql=bs?e=>bs.createHTML(e):e=>e,ku="http://www.w3.org/2000/svg",Bu="http://www.w3.org/1998/Math/MathML",gt=typeof document<"u"?document:null,Co=gt&>.createElement("template"),Uu={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?gt.createElementNS(ku,e):t==="mathml"?gt.createElementNS(Bu,e):n?gt.createElement(e,{is:n}):gt.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>gt.createTextNode(e),createComment:e=>gt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>gt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{Co.innerHTML=ql(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=Co.content;if(r==="svg"||r==="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]}},At="transition",gn="animation",ln=Symbol("_vtc"),Kl={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},ju=Ee({},ka,Kl),kt=(e,t=[])=>{K(e)?e.forEach(n=>n(...t)):e&&e(...t)},xo=e=>e?K(e)?e.some(t=>t.length>1):e.length>1:!1;function Hu(e){const t={};for(const L in e)L in Kl||(t[L]=e[L]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=o,appearActiveClass:u=i,appearToClass:a=l,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:h=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,g=Vu(s),b=g&&g[0],E=g&&g[1],{onBeforeEnter:C,onEnter:T,onEnterCancelled:N,onLeave:O,onLeaveCancelled:B,onBeforeAppear:G=C,onAppear:j=T,onAppearCancelled:U=N}=t,x=(L,Q,le,we)=>{L._enterCancelled=we,xt(L,Q?a:l),xt(L,Q?u:i),le&&le()},$=(L,Q)=>{L._isLeaving=!1,xt(L,f),xt(L,m),xt(L,h),Q&&Q()},Y=L=>(Q,le)=>{const we=L?j:T,ee=()=>x(Q,L,le);kt(we,[Q,ee]),To(()=>{xt(Q,L?c:o),lt(Q,L?a:l),xo(we)||Oo(Q,r,b,ee)})};return Ee(t,{onBeforeEnter(L){kt(C,[L]),lt(L,o),lt(L,i)},onBeforeAppear(L){kt(G,[L]),lt(L,c),lt(L,u)},onEnter:Y(!1),onAppear:Y(!0),onLeave(L,Q){L._isLeaving=!0;const le=()=>$(L,Q);lt(L,f),L._enterCancelled?(lt(L,h),Es(L)):(Es(L),lt(L,h)),To(()=>{L._isLeaving&&(xt(L,f),lt(L,m),xo(O)||Oo(L,r,E,le))}),kt(O,[L,le])},onEnterCancelled(L){x(L,!1,void 0,!0),kt(N,[L])},onAppearCancelled(L){x(L,!0,void 0,!0),kt(U,[L])},onLeaveCancelled(L){$(L),kt(B,[L])}})}function Vu(e){if(e==null)return null;if(ae(e))return[Jr(e.enter),Jr(e.leave)];{const t=Jr(e);return[t,t]}}function Jr(e){return Vc(e)}function lt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[ln]||(e[ln]=new Set)).add(t)}function xt(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[ln];n&&(n.delete(t),n.size||(e[ln]=void 0))}function To(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let $u=0;function Oo(e,t,n,r){const s=e._endId=++$u,o=()=>{s===e._endId&&r()};if(n!=null)return setTimeout(o,n);const{type:i,timeout:l,propCount:c}=Wl(e,t);if(!i)return r();const u=i+"end";let a=0;const f=()=>{e.removeEventListener(u,h),o()},h=m=>{m.target===e&&++a>=c&&f()};setTimeout(()=>{a(n[g]||"").split(", "),s=r(`${At}Delay`),o=r(`${At}Duration`),i=Po(s,o),l=r(`${gn}Delay`),c=r(`${gn}Duration`),u=Po(l,c);let a=null,f=0,h=0;t===At?i>0&&(a=At,f=i,h=o.length):t===gn?u>0&&(a=gn,f=u,h=c.length):(f=Math.max(i,u),a=f>0?i>u?At:gn:null,h=a?a===At?o.length:c.length:0);const m=a===At&&/\b(?:transform|all)(?:,|$)/.test(r(`${At}Property`).toString());return{type:a,timeout:f,propCount:h,hasTransform:m}}function Po(e,t){for(;e.lengthNo(n)+No(e[r])))}function No(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Es(e){return(e?e.ownerDocument:document).body.offsetHeight}function qu(e,t,n){const r=e[ln];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Io=Symbol("_vod"),Ku=Symbol("_vsh"),Wu=Symbol(""),Gu=/(?:^|;)\s*display\s*:/;function zu(e,t,n){const r=e.style,s=pe(n);let o=!1;if(n&&!s){if(t)if(pe(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&or(r,l,"")}else for(const i in t)n[i]==null&&or(r,i,"");for(const i in n)i==="display"&&(o=!0),or(r,i,n[i])}else if(s){if(t!==n){const i=r[Wu];i&&(n+=";"+i),r.cssText=n,o=Gu.test(n)}}else t&&e.removeAttribute("style");Io in e&&(e[Io]=o?r.display:"",e[Ku]&&(r.display="none"))}const Lo=/\s*!important$/;function or(e,t,n){if(K(n))n.forEach(r=>or(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Ju(e,t);Lo.test(n)?e.setProperty(zt(r),n.replace(Lo,""),"important"):e[r]=n}}const Do=["Webkit","Moz","ms"],Xr={};function Ju(e,t){const n=Xr[t];if(n)return n;let r=Dt(t);if(r!=="filter"&&r in e)return Xr[t]=r;r=Ii(r);for(let s=0;sQr||(Zu.then(()=>Qr=0),Qr=Date.now());function tf(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Je(nf(r,n.value),t,5,[r])};return n.value=e,n.attached=ef(),n}function nf(e,t){if(K(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const jo=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,rf=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?qu(e,r,i):t==="style"?zu(e,n,r):wr(t)?Is(t)||Qu(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):sf(e,t,r,i))?(ko(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Mo(e,t,r,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!pe(r))?ko(e,Dt(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Mo(e,t,r,i))};function sf(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&jo(t)&&J(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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return jo(t)&&pe(n)?!1:t in e}const Gl=new WeakMap,zl=new WeakMap,_r=Symbol("_moveCb"),Ho=Symbol("_enterCb"),of=e=>(delete e.props.mode,e),lf=of({name:"TransitionGroup",props:Ee({},ju,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=Js(),r=Ma();let s,o;return El(()=>{if(!s.length)return;const i=e.moveClass||`${e.name||"v"}-move`;if(!df(s[0].el,n.vnode.el,i)){s=[];return}s.forEach(af),s.forEach(uf);const l=s.filter(ff);Es(n.vnode.el),l.forEach(c=>{const u=c.el,a=u.style;lt(u,i),a.transform=a.webkitTransform=a.transitionDuration="";const f=u[_r]=h=>{h&&h.target!==u||(!h||h.propertyName.endsWith("transform"))&&(u.removeEventListener("transitionend",f),u[_r]=null,xt(u,i))};u.addEventListener("transitionend",f)}),s=[]}),()=>{const i=re(e),l=Hu(i);let c=i.tag||ve;if(s=[],o)for(let u=0;u{l.split(/\s+/).forEach(c=>c&&r.classList.remove(c))}),n.split(/\s+/).forEach(l=>l&&r.classList.add(l)),r.style.display="none";const o=t.nodeType===1?t:t.parentNode;o.appendChild(r);const{hasTransform:i}=Wl(r);return o.removeChild(r),i}const Vo=e=>{const t=e.props["onUpdate:modelValue"]||!1;return K(t)?n=>er(t,n):t};function hf(e){e.target.composing=!0}function $o(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Yr=Symbol("_assign");function qo(e,t,n){return t&&(e=e.trim()),n&&(e=Ds(e)),e}const Pp={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Yr]=Vo(s);const o=r||s.props&&s.props.type==="number";Zt(e,t?"change":"input",i=>{i.target.composing||e[Yr](qo(e.value,n,o))}),(n||o)&&Zt(e,"change",()=>{e.value=qo(e.value,n,o)}),t||(Zt(e,"compositionstart",hf),Zt(e,"compositionend",$o),Zt(e,"change",$o))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Yr]=Vo(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?Ds(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},pf=["ctrl","shift","alt","meta"],mf={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>pf.some(n=>e[`${n}Key`]&&!t.includes(n))},Np=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const t=yf().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Ef(r);if(!s)return;const o=t._component;!J(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,bf(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t});function bf(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Ef(e){return pe(e)?document.querySelector(e):e}let Jl;const Dr=e=>Jl=e,Xl=Symbol();function ws(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Tn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Tn||(Tn={}));function wf(){const e=Bi(!0),t=e.run(()=>$t({}));let n=[],r=[];const s=Vs({install(o){Dr(s),s._a=o,o.provide(Xl,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const Ql=()=>{};function Wo(e,t,n,r=Ql){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&Ui()&&Jc(s),s}function Xt(e,...t){e.forEach(n=>{n(...t)})}const vf=e=>e(),Go=Symbol(),Zr=Symbol();function vs(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];ws(s)&&ws(r)&&e.hasOwnProperty(n)&&!de(r)&&!ft(r)?e[n]=vs(s,r):e[n]=r}return e}const Sf=Symbol();function Af(e){return!ws(e)||!Object.prototype.hasOwnProperty.call(e,Sf)}const{assign:Tt}=Object;function Rf(e){return!!(de(e)&&e.effect)}function Cf(e,t,n,r){const{state:s,actions:o,getters:i}=t,l=n.state.value[e];let c;function u(){l||(n.state.value[e]=s?s():{});const a=_a(n.state.value[e]);return Tt(a,o,Object.keys(i||{}).reduce((f,h)=>(f[h]=Vs(Be(()=>{Dr(n);const m=n._s.get(e);return i[h].call(m,m)})),f),{}))}return c=Yl(e,u,t,n,r,!0),c}function Yl(e,t,n={},r,s,o){let i;const l=Tt({actions:{}},n),c={deep:!0};let u,a,f=new Set,h=new Set,m;const g=r.state.value[e];!o&&!g&&(r.state.value[e]={}),$t({});let b;function E(U){let x;u=a=!1,typeof U=="function"?(U(r.state.value[e]),x={type:Tn.patchFunction,storeId:e,events:m}):(vs(r.state.value[e],U),x={type:Tn.patchObject,payload:U,storeId:e,events:m});const $=b=Symbol();$s().then(()=>{b===$&&(u=!0)}),a=!0,Xt(f,x,r.state.value[e])}const C=o?function(){const{state:x}=n,$=x?x():{};this.$patch(Y=>{Tt(Y,$)})}:Ql;function T(){i.stop(),f.clear(),h.clear(),r._s.delete(e)}const N=(U,x="")=>{if(Go in U)return U[Zr]=x,U;const $=function(){Dr(r);const Y=Array.from(arguments),L=new Set,Q=new Set;function le(z){L.add(z)}function we(z){Q.add(z)}Xt(h,{args:Y,name:$[Zr],store:B,after:le,onError:we});let ee;try{ee=U.apply(this&&this.$id===e?this:B,Y)}catch(z){throw Xt(Q,z),z}return ee instanceof Promise?ee.then(z=>(Xt(L,z),z)).catch(z=>(Xt(Q,z),Promise.reject(z))):(Xt(L,ee),ee)};return $[Go]=!0,$[Zr]=x,$},O={_p:r,$id:e,$onAction:Wo.bind(null,h),$patch:E,$reset:C,$subscribe(U,x={}){const $=Wo(f,U,x.detached,()=>Y()),Y=i.run(()=>Sn(()=>r.state.value[e],L=>{(x.flush==="sync"?a:u)&&U({storeId:e,type:Tn.direct,events:m},L)},Tt({},c,x)));return $},$dispose:T},B=fn(O);r._s.set(e,B);const j=(r._a&&r._a.runWithContext||vf)(()=>r._e.run(()=>(i=Bi()).run(()=>t({action:N}))));for(const U in j){const x=j[U];if(de(x)&&!Rf(x)||ft(x))o||(g&&Af(x)&&(de(x)?x.value=g[U]:vs(x,g[U])),r.state.value[e][U]=x);else if(typeof x=="function"){const $=N(x,U);j[U]=$,l.actions[U]=x}}return Tt(B,j),Tt(re(B),j),Object.defineProperty(B,"$state",{get:()=>r.state.value[e],set:U=>{E(x=>{Tt(x,U)})}}),r._p.forEach(U=>{Tt(B,i.run(()=>U({store:B,app:r._a,pinia:r,options:l})))}),g&&o&&n.hydrate&&n.hydrate(B.$state,g),u=!0,a=!0,B}function xf(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,l){const c=Oa();return i=i||(c?Ke(Xl,null):null),i&&Dr(i),i=Jl,i._s.has(e)||(s?Yl(e,t,r,i):Cf(e,r,i)),i._s.get(e)}return o.$id=e,o}function Ip(e){const t=re(e),n={};for(const r in t){const s=t[r];s.effect?n[r]=Be({get:()=>e[r],set(o){e[r]=o}}):(de(s)||ft(s))&&(n[r]=wa(e,r))}return n}const Tf="modulepreload",Of=function(e){return"/"+e},zo={},ot=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let c=function(u){return Promise.all(u.map(a=>Promise.resolve(a).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=c(n.map(u=>{if(u=Of(u),u in zo)return;zo[u]=!0;const a=u.endsWith(".css"),f=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const h=document.createElement("link");if(h.rel=a?"stylesheet":Tf,a||(h.as="script"),h.crossOrigin="",h.href=u,l&&h.setAttribute("nonce",l),document.head.appendChild(h),a)return new Promise((m,g)=>{h.addEventListener("load",m),h.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})};const en=typeof document<"u";function Zl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Pf(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Zl(e.default)}const se=Object.assign;function es(e,t){const n={};for(const r in t){const s=t[r];n[r]=Xe(s)?s.map(e):e(s)}return n}const On=()=>{},Xe=Array.isArray;function Jo(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const ec=/#/g,Nf=/&/g,If=/\//g,Lf=/=/g,Df=/\?/g,tc=/\+/g,Ff=/%5B/g,Mf=/%5D/g,nc=/%5E/g,kf=/%60/g,rc=/%7B/g,Bf=/%7C/g,sc=/%7D/g,Uf=/%20/g;function Xs(e){return e==null?"":encodeURI(""+e).replace(Bf,"|").replace(Ff,"[").replace(Mf,"]")}function jf(e){return Xs(e).replace(rc,"{").replace(sc,"}").replace(nc,"^")}function Ss(e){return Xs(e).replace(tc,"%2B").replace(Uf,"+").replace(ec,"%23").replace(Nf,"%26").replace(kf,"`").replace(rc,"{").replace(sc,"}").replace(nc,"^")}function Hf(e){return Ss(e).replace(Lf,"%3D")}function Vf(e){return Xs(e).replace(ec,"%23").replace(Df,"%3F")}function $f(e){return Vf(e).replace(If,"%2F")}function Un(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const qf=/\/$/,Kf=e=>e.replace(qf,"");function ts(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return c=l>=0&&c>l?-1:c,c>=0&&(r=t.slice(0,c),o=t.slice(c,l>0?l:t.length),s=e(o.slice(1))),l>=0&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=Jf(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:Un(i)}}function Wf(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Xo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Gf(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&cn(t.matched[r],n.matched[s])&&oc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function cn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function oc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!zf(e[n],t[n]))return!1;return!0}function zf(e,t){return Xe(e)?Qo(e,t):Xe(t)?Qo(t,e):e?.valueOf()===t?.valueOf()}function Qo(e,t){return Xe(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function Jf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const Rt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let As=(function(e){return e.pop="pop",e.push="push",e})({}),ns=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function Xf(e){if(!e)if(en){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Kf(e)}const Qf=/^[^#]+#/;function Yf(e,t){return e.replace(Qf,"#")+t}function Zf(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const Fr=()=>({left:window.scrollX,top:window.scrollY});function ed(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=Zf(s,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 Yo(e,t){return(history.state?history.state.position-t:-1)+e}const Rs=new Map;function td(e,t){Rs.set(e,t)}function nd(e){const t=Rs.get(e);return Rs.delete(e),t}function rd(e){return typeof e=="string"||e&&typeof e=="object"}function ic(e){return typeof e=="string"||typeof e=="symbol"}let he=(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 lc=Symbol("");he.MATCHER_NOT_FOUND+"",he.NAVIGATION_GUARD_REDIRECT+"",he.NAVIGATION_ABORTED+"",he.NAVIGATION_CANCELLED+"",he.NAVIGATION_DUPLICATED+"";function an(e,t){return se(new Error,{type:e,[lc]:!0},t)}function mt(e,t){return e instanceof Error&&lc in e&&(t==null||!!(e.type&t))}const sd=["params","query","hash"];function od(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 id(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&Ss(s)):[r&&Ss(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function ld(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=Xe(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const cd=Symbol(""),ei=Symbol(""),Mr=Symbol(""),Qs=Symbol(""),Cs=Symbol("");function yn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function It(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,c)=>{const u=h=>{h===!1?c(an(he.NAVIGATION_ABORTED,{from:n,to:t})):h instanceof Error?c(h):rd(h)?c(an(he.NAVIGATION_GUARD_REDIRECT,{from:t,to:h})):(i&&r.enterCallbacks[s]===i&&typeof h=="function"&&i.push(h),l())},a=o(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(a);e.length<3&&(f=f.then(u)),f.catch(h=>c(h))})}function rs(e,t,n,r,s=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(Zl(c)){const u=(c.__vccOpts||c)[t];u&&o.push(It(u,n,r,i,l,s))}else{let u=c();o.push(()=>u.then(a=>{if(!a)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=Pf(a)?a.default:a;i.mods[l]=a,i.components[l]=f;const h=(f.__vccOpts||f)[t];return h&&It(h,n,r,i,l,s)()}))}}return o}function ad(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;icn(u,l))?r.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(u=>cn(u,c))||s.push(c))}return[n,r,s]}let ud=()=>location.protocol+"//"+location.host;function cc(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(i);return l[0]!=="/"&&(l="/"+l),Xo(l,"")}return Xo(n,e)+r+s}function fd(e,t,n,r){let s=[],o=[],i=null;const l=({state:h})=>{const m=cc(e,location),g=n.value,b=t.value;let E=0;if(h){if(n.value=m,t.value=h,i&&i===g){i=null;return}E=b?h.position-b.position:0}else r(m);s.forEach(C=>{C(n.value,g,{delta:E,type:As.pop,direction:E?E>0?ns.forward:ns.back:ns.unknown})})};function c(){i=n.value}function u(h){s.push(h);const m=()=>{const g=s.indexOf(h);g>-1&&s.splice(g,1)};return o.push(m),m}function a(){if(document.visibilityState==="hidden"){const{history:h}=window;if(!h.state)return;h.replaceState(se({},h.state,{scroll:Fr()}),"")}}function f(){for(const h of o)h();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 ti(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?Fr():null}}function dd(e){const{history:t,location:n}=window,r={value:cc(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(c,u,a){const f=e.indexOf("#"),h=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+c:ud()+e+c;try{t[a?"replaceState":"pushState"](u,"",h),s.value=u}catch(m){console.error(m),n[a?"replace":"assign"](h)}}function i(c,u){o(c,se({},t.state,ti(s.value.back,c,s.value.forward,!0),u,{position:s.value.position}),!0),r.value=c}function l(c,u){const a=se({},s.value,t.state,{forward:c,scroll:Fr()});o(a.current,a,!0),o(c,se({},ti(r.value,c,null),{position:a.position+1},u),!1),r.value=c}return{location:r,state:s,push:l,replace:i}}function hd(e){e=Xf(e);const t=dd(e),n=fd(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=se({location:"",base:e,go:r,createHref:Yf.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function pd(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),hd(e)}let jt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var _e=(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})(_e||{});const md={type:jt.Static,value:""},gd=/[a-zA-Z0-9_]/;function yd(e){if(!e)return[[]];if(e==="/")return[[md]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${u}": ${m}`)}let n=_e.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,c,u="",a="";function f(){u&&(n===_e.Static?o.push({type:jt.Static,value:u}):n===_e.Param||n===_e.ParamRegExp||n===_e.ParamRegExpEnd?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:jt.Param,value:u,regexp:a,repeatable:c==="*"||c==="+",optional:c==="*"||c==="?"})):t("Invalid state to consume buffer"),u="")}function h(){u+=c}for(;lt.length?t.length===1&&t[0]===Oe.Static+Oe.Segment?1:-1:0}function ac(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const vd={strict:!1,end:!0,sensitive:!1};function Sd(e,t,n){const r=Ed(yd(e.path),n),s=se(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function Ad(e,t){const n=[],r=new Map;t=Jo(vd,t);function s(f){return r.get(f)}function o(f,h,m){const g=!m,b=oi(f);b.aliasOf=m&&m.record;const E=Jo(t,f),C=[b];if("alias"in f){const O=typeof f.alias=="string"?[f.alias]:f.alias;for(const B of O)C.push(oi(se({},b,{components:m?m.record.components:b.components,path:B,aliasOf:m?m.record:b})))}let T,N;for(const O of C){const{path:B}=O;if(h&&B[0]!=="/"){const G=h.record.path,j=G[G.length-1]==="/"?"":"/";O.path=h.record.path+(B&&j+B)}if(T=Sd(O,h,E),m?m.alias.push(T):(N=N||T,N!==T&&N.alias.push(T),g&&f.name&&!ii(T)&&i(f.name)),uc(T)&&c(T),b.children){const G=b.children;for(let j=0;j{i(N)}:On}function i(f){if(ic(f)){const h=r.get(f);h&&(r.delete(f),n.splice(n.indexOf(h),1),h.children.forEach(i),h.alias.forEach(i))}else{const h=n.indexOf(f);h>-1&&(n.splice(h,1),f.record.name&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function c(f){const h=xd(f,n);n.splice(h,0,f),f.record.name&&!ii(f)&&r.set(f.record.name,f)}function u(f,h){let m,g={},b,E;if("name"in f&&f.name){if(m=r.get(f.name),!m)throw an(he.MATCHER_NOT_FOUND,{location:f});E=m.record.name,g=se(si(h.params,m.keys.filter(N=>!N.optional).concat(m.parent?m.parent.keys.filter(N=>N.optional):[]).map(N=>N.name)),f.params&&si(f.params,m.keys.map(N=>N.name))),b=m.stringify(g)}else if(f.path!=null)b=f.path,m=n.find(N=>N.re.test(b)),m&&(g=m.parse(b),E=m.record.name);else{if(m=h.name?r.get(h.name):n.find(N=>N.re.test(h.path)),!m)throw an(he.MATCHER_NOT_FOUND,{location:f,currentLocation:h});E=m.record.name,g=se({},h.params,f.params),b=m.stringify(g)}const C=[];let T=m;for(;T;)C.unshift(T.record),T=T.parent;return{name:E,path:b,params:g,matched:C,meta:Cd(C)}}e.forEach(f=>o(f));function a(){n.length=0,r.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:a,getRoutes:l,getRecordMatcher:s}}function si(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function oi(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Rd(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 Rd(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function ii(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Cd(e){return e.reduce((t,n)=>se(t,n.meta),{})}function xd(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;ac(e,t[o])<0?r=o:n=o+1}const s=Td(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function Td(e){let t=e;for(;t=t.parent;)if(uc(t)&&ac(e,t)===0)return t}function uc({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function li(e){const t=Ke(Mr),n=Ke(Qs),r=Be(()=>{const c=dt(e.to);return t.resolve(c)}),s=Be(()=>{const{matched:c}=r.value,{length:u}=c,a=c[u-1],f=n.matched;if(!a||!f.length)return-1;const h=f.findIndex(cn.bind(null,a));if(h>-1)return h;const m=ci(c[u-2]);return u>1&&ci(a)===m&&f[f.length-1].path!==m?f.findIndex(cn.bind(null,c[u-2])):h}),o=Be(()=>s.value>-1&&Ld(n.params,r.value.params)),i=Be(()=>s.value>-1&&s.value===n.matched.length-1&&oc(n.params,r.value.params));function l(c={}){if(Id(c)){const u=t[dt(e.replace)?"replace":"push"](dt(e.to)).catch(On);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Be(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function Od(e){return e.length===1?e[0]:e}const Pd=Or({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:li,setup(e,{slots:t}){const n=fn(li(e)),{options:r}=Ke(Mr),s=Be(()=>({[ai(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[ai(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&Od(t.default(n));return e.custom?o:$l("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),Nd=Pd;function Id(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 Ld(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!Xe(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function ci(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const ai=(e,t,n)=>e??t??n,Dd=Or({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=Ke(Cs),s=Be(()=>e.route||r.value),o=Ke(ei,0),i=Be(()=>{let u=dt(o);const{matched:a}=s.value;let f;for(;(f=a[u])&&!f.components;)u++;return u}),l=Be(()=>s.value.matched[i.value]);tr(ei,Be(()=>i.value+1)),tr(cd,l),tr(Cs,s);const c=$t();return Sn(()=>[c.value,l.value,e.name],([u,a,f],[h,m,g])=>{a&&(a.instances[f]=u,m&&m!==a&&u&&u===h&&(a.leaveGuards.size||(a.leaveGuards=m.leaveGuards),a.updateGuards.size||(a.updateGuards=m.updateGuards))),u&&a&&(!m||!cn(a,m)||!h)&&(a.enterCallbacks[f]||[]).forEach(b=>b(u))},{flush:"post"}),()=>{const u=s.value,a=e.name,f=l.value,h=f&&f.components[a];if(!h)return ui(n.default,{Component:h,route:u});const m=f.props[a],g=m?m===!0?u.params:typeof m=="function"?m(u):m:null,E=$l(h,se({},g,t,{onVnodeUnmounted:C=>{C.component.isUnmounted&&(f.instances[a]=null)},ref:c}));return ui(n.default,{Component:E,route:u})||E}}});function ui(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const fc=Dd;function Fd(e){const t=Ad(e.routes,e),n=e.parseQuery||id,r=e.stringifyQuery||Zo,s=e.history,o=yn(),i=yn(),l=yn(),c=ma(Rt);let u=Rt;en&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const a=es.bind(null,S=>""+S),f=es.bind(null,$f),h=es.bind(null,Un);function m(S,k){let F,H;return ic(S)?(F=t.getRecordMatcher(S),H=k):H=S,t.addRoute(H,F)}function g(S){const k=t.getRecordMatcher(S);k&&t.removeRoute(k)}function b(){return t.getRoutes().map(S=>S.record)}function E(S){return!!t.getRecordMatcher(S)}function C(S,k){if(k=se({},k||c.value),typeof S=="string"){const y=ts(n,S,k.path),w=t.resolve({path:y.path},k),A=s.createHref(y.fullPath);return se(y,w,{params:h(w.params),hash:Un(y.hash),redirectedFrom:void 0,href:A})}let F;if(S.path!=null)F=se({},S,{path:ts(n,S.path,k.path).path});else{const y=se({},S.params);for(const w in y)y[w]==null&&delete y[w];F=se({},S,{params:f(y)}),k.params=f(k.params)}const H=t.resolve(F,k),te=S.hash||"";H.params=a(h(H.params));const d=Wf(r,se({},S,{hash:jf(te),path:H.path})),p=s.createHref(d);return se({fullPath:d,hash:te,query:r===Zo?ld(S.query):S.query||{}},H,{redirectedFrom:void 0,href:p})}function T(S){return typeof S=="string"?ts(n,S,c.value.path):se({},S)}function N(S,k){if(u!==S)return an(he.NAVIGATION_CANCELLED,{from:k,to:S})}function O(S){return j(S)}function B(S){return O(se(T(S),{replace:!0}))}function G(S,k){const F=S.matched[S.matched.length-1];if(F&&F.redirect){const{redirect:H}=F;let te=typeof H=="function"?H(S,k):H;return typeof te=="string"&&(te=te.includes("?")||te.includes("#")?te=T(te):{path:te},te.params={}),se({query:S.query,hash:S.hash,params:te.path!=null?{}:S.params},te)}}function j(S,k){const F=u=C(S),H=c.value,te=S.state,d=S.force,p=S.replace===!0,y=G(F,H);if(y)return j(se(T(y),{state:typeof y=="object"?se({},te,y.state):te,force:d,replace:p}),k||F);const w=F;w.redirectedFrom=k;let A;return!d&&Gf(r,H,F)&&(A=an(he.NAVIGATION_DUPLICATED,{to:w,from:H}),ye(H,H,!0,!1)),(A?Promise.resolve(A):$(w,H)).catch(v=>mt(v)?mt(v,he.NAVIGATION_GUARD_REDIRECT)?v:Ye(v):Z(v,w,H)).then(v=>{if(v){if(mt(v,he.NAVIGATION_GUARD_REDIRECT))return j(se({replace:p},T(v.to),{state:typeof v.to=="object"?se({},te,v.to.state):te,force:d}),k||w)}else v=L(w,H,!0,p,te);return Y(w,H,v),v})}function U(S,k){const F=N(S,k);return F?Promise.reject(F):Promise.resolve()}function x(S){const k=We.values().next().value;return k&&typeof k.runWithContext=="function"?k.runWithContext(S):S()}function $(S,k){let F;const[H,te,d]=ad(S,k);F=rs(H.reverse(),"beforeRouteLeave",S,k);for(const y of H)y.leaveGuards.forEach(w=>{F.push(It(w,S,k))});const p=U.bind(null,S,k);return F.push(p),Ve(F).then(()=>{F=[];for(const y of o.list())F.push(It(y,S,k));return F.push(p),Ve(F)}).then(()=>{F=rs(te,"beforeRouteUpdate",S,k);for(const y of te)y.updateGuards.forEach(w=>{F.push(It(w,S,k))});return F.push(p),Ve(F)}).then(()=>{F=[];for(const y of d)if(y.beforeEnter)if(Xe(y.beforeEnter))for(const w of y.beforeEnter)F.push(It(w,S,k));else F.push(It(y.beforeEnter,S,k));return F.push(p),Ve(F)}).then(()=>(S.matched.forEach(y=>y.enterCallbacks={}),F=rs(d,"beforeRouteEnter",S,k,x),F.push(p),Ve(F))).then(()=>{F=[];for(const y of i.list())F.push(It(y,S,k));return F.push(p),Ve(F)}).catch(y=>mt(y,he.NAVIGATION_CANCELLED)?y:Promise.reject(y))}function Y(S,k,F){l.list().forEach(H=>x(()=>H(S,k,F)))}function L(S,k,F,H,te){const d=N(S,k);if(d)return d;const p=k===Rt,y=en?history.state:{};F&&(H||p?s.replace(S.fullPath,se({scroll:p&&y&&y.scroll},te)):s.push(S.fullPath,te)),c.value=S,ye(S,k,F,p),Ye()}let Q;function le(){Q||(Q=s.listen((S,k,F)=>{if(!et.listening)return;const H=C(S),te=G(H,et.currentRoute.value);if(te){j(se(te,{replace:!0,force:!0}),H).catch(On);return}u=H;const d=c.value;en&&td(Yo(d.fullPath,F.delta),Fr()),$(H,d).catch(p=>mt(p,he.NAVIGATION_ABORTED|he.NAVIGATION_CANCELLED)?p:mt(p,he.NAVIGATION_GUARD_REDIRECT)?(j(se(T(p.to),{force:!0}),H).then(y=>{mt(y,he.NAVIGATION_ABORTED|he.NAVIGATION_DUPLICATED)&&!F.delta&&F.type===As.pop&&s.go(-1,!1)}).catch(On),Promise.reject()):(F.delta&&s.go(-F.delta,!1),Z(p,H,d))).then(p=>{p=p||L(H,d,!1),p&&(F.delta&&!mt(p,he.NAVIGATION_CANCELLED)?s.go(-F.delta,!1):F.type===As.pop&&mt(p,he.NAVIGATION_ABORTED|he.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),Y(H,d,p)}).catch(On)}))}let we=yn(),ee=yn(),z;function Z(S,k,F){Ye(S);const H=ee.list();return H.length?H.forEach(te=>te(S,k,F)):console.error(S),Promise.reject(S)}function He(){return z&&c.value!==Rt?Promise.resolve():new Promise((S,k)=>{we.add([S,k])})}function Ye(S){return z||(z=!S,le(),we.list().forEach(([k,F])=>S?F(S):k()),we.reset()),S}function ye(S,k,F,H){const{scrollBehavior:te}=e;if(!en||!te)return Promise.resolve();const d=!F&&nd(Yo(S.fullPath,0))||(H||!F)&&history.state&&history.state.scroll||null;return $s().then(()=>te(S,k,d)).then(p=>p&&ed(p)).catch(p=>Z(p,S,k))}const me=S=>s.go(S);let Ze;const We=new Set,et={currentRoute:c,listening:!0,addRoute:m,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:E,getRoutes:b,resolve:C,options:e,push:O,replace:B,go:me,back:()=>me(-1),forward:()=>me(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:ee.add,isReady:He,install(S){S.component("RouterLink",Nd),S.component("RouterView",fc),S.config.globalProperties.$router=et,Object.defineProperty(S.config.globalProperties,"$route",{enumerable:!0,get:()=>dt(c)}),en&&!Ze&&c.value===Rt&&(Ze=!0,O(s.location).catch(H=>{}));const k={};for(const H in Rt)Object.defineProperty(k,H,{get:()=>c.value[H],enumerable:!0});S.provide(Mr,et),S.provide(Qs,el(k)),S.provide(Cs,c);const F=S.unmount;We.add(S),S.unmount=function(){We.delete(S),We.size<1&&(u=Rt,Q&&Q(),Q=null,c.value=Rt,Ze=!1,z=!1),F()}}};function Ve(S){return S.reduce((k,F)=>k.then(()=>x(F)),Promise.resolve())}return et}function Lp(){return Ke(Mr)}function Dp(e){return Ke(Qs)}function dc(e,t){return function(){return e.apply(t,arguments)}}const{toString:Md}=Object.prototype,{getPrototypeOf:Ys}=Object,{iterator:kr,toStringTag:hc}=Symbol,Br=(e=>t=>{const n=Md.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Qe=e=>(e=e.toLowerCase(),t=>Br(t)===e),Ur=e=>t=>typeof t===e,{isArray:dn}=Array,un=Ur("undefined");function Vn(e){return e!==null&&!un(e)&&e.constructor!==null&&!un(e.constructor)&&De(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const pc=Qe("ArrayBuffer");function kd(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&pc(e.buffer),t}const Bd=Ur("string"),De=Ur("function"),mc=Ur("number"),$n=e=>e!==null&&typeof e=="object",Ud=e=>e===!0||e===!1,ir=e=>{if(Br(e)!=="object")return!1;const t=Ys(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(hc in e)&&!(kr in e)},jd=e=>{if(!$n(e)||Vn(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},Hd=Qe("Date"),Vd=Qe("File"),$d=Qe("Blob"),qd=Qe("FileList"),Kd=e=>$n(e)&&De(e.pipe),Wd=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||De(e.append)&&((t=Br(e))==="formdata"||t==="object"&&De(e.toString)&&e.toString()==="[object FormData]"))},Gd=Qe("URLSearchParams"),[zd,Jd,Xd,Qd]=["ReadableStream","Request","Response","Headers"].map(Qe),Yd=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function qn(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),dn(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const Ht=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,yc=e=>!un(e)&&e!==Ht;function xs(){const{caseless:e,skipUndefined:t}=yc(this)&&this||{},n={},r=(s,o)=>{const i=e&&gc(n,o)||o;ir(n[i])&&ir(s)?n[i]=xs(n[i],s):ir(s)?n[i]=xs({},s):dn(s)?n[i]=s.slice():(!t||!un(s))&&(n[i]=s)};for(let s=0,o=arguments.length;s(qn(t,(s,o)=>{n&&De(s)?e[o]=dc(s,n):e[o]=s},{allOwnKeys:r}),e),eh=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),th=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},nh=(e,t,n,r)=>{let s,o,i;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&Ys(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},rh=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},sh=e=>{if(!e)return null;if(dn(e))return e;let t=e.length;if(!mc(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},oh=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Ys(Uint8Array)),ih=(e,t)=>{const r=(e&&e[kr]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},lh=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},ch=Qe("HTMLFormElement"),ah=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),fi=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),uh=Qe("RegExp"),_c=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};qn(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},fh=e=>{_c(e,(t,n)=>{if(De(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(De(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},dh=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return dn(e)?r(e):r(String(e).split(t)),n},hh=()=>{},ph=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function mh(e){return!!(e&&De(e.append)&&e[hc]==="FormData"&&e[kr])}const gh=e=>{const t=new Array(10),n=(r,s)=>{if($n(r)){if(t.indexOf(r)>=0)return;if(Vn(r))return r;if(!("toJSON"in r)){t[s]=r;const o=dn(r)?[]:{};return qn(r,(i,l)=>{const c=n(i,s+1);!un(c)&&(o[l]=c)}),t[s]=void 0,o}}return r};return n(e,0)},yh=Qe("AsyncFunction"),_h=e=>e&&($n(e)||De(e))&&De(e.then)&&De(e.catch),bc=((e,t)=>e?setImmediate:t?((n,r)=>(Ht.addEventListener("message",({source:s,data:o})=>{s===Ht&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),Ht.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",De(Ht.postMessage)),bh=typeof queueMicrotask<"u"?queueMicrotask.bind(Ht):typeof process<"u"&&process.nextTick||bc,Eh=e=>e!=null&&De(e[kr]),_={isArray:dn,isArrayBuffer:pc,isBuffer:Vn,isFormData:Wd,isArrayBufferView:kd,isString:Bd,isNumber:mc,isBoolean:Ud,isObject:$n,isPlainObject:ir,isEmptyObject:jd,isReadableStream:zd,isRequest:Jd,isResponse:Xd,isHeaders:Qd,isUndefined:un,isDate:Hd,isFile:Vd,isBlob:$d,isRegExp:uh,isFunction:De,isStream:Kd,isURLSearchParams:Gd,isTypedArray:oh,isFileList:qd,forEach:qn,merge:xs,extend:Zd,trim:Yd,stripBOM:eh,inherits:th,toFlatObject:nh,kindOf:Br,kindOfTest:Qe,endsWith:rh,toArray:sh,forEachEntry:ih,matchAll:lh,isHTMLForm:ch,hasOwnProperty:fi,hasOwnProp:fi,reduceDescriptors:_c,freezeMethods:fh,toObjectSet:dh,toCamelCase:ah,noop:hh,toFiniteNumber:ph,findKey:gc,global:Ht,isContextDefined:yc,isSpecCompliantForm:mh,toJSONObject:gh,isAsyncFn:yh,isThenable:_h,setImmediate:bc,asap:bh,isIterable:Eh};function X(e,t,n,r,s){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),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}_.inherits(X,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:_.toJSONObject(this.config),code:this.code,status:this.status}}});const Ec=X.prototype,wc={};["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=>{wc[e]={value:e}});Object.defineProperties(X,wc);Object.defineProperty(Ec,"isAxiosError",{value:!0});X.from=(e,t,n,r,s,o)=>{const i=Object.create(Ec);_.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 X.call(i,l,c,n,r,s),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 wh=null;function Ts(e){return _.isPlainObject(e)||_.isArray(e)}function vc(e){return _.endsWith(e,"[]")?e.slice(0,-2):e}function di(e,t,n){return e?e.concat(t).map(function(s,o){return s=vc(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function vh(e){return _.isArray(e)&&!e.some(Ts)}const Sh=_.toFlatObject(_,{},null,function(t){return/^is[A-Z]/.test(t)});function jr(e,t,n){if(!_.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=_.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(b,E){return!_.isUndefined(E[b])});const r=n.metaTokens,s=n.visitor||a,o=n.dots,i=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&_.isSpecCompliantForm(t);if(!_.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(_.isDate(g))return g.toISOString();if(_.isBoolean(g))return g.toString();if(!c&&_.isBlob(g))throw new X("Blob is not supported. Use a Buffer instead.");return _.isArrayBuffer(g)||_.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function a(g,b,E){let C=g;if(g&&!E&&typeof g=="object"){if(_.endsWith(b,"{}"))b=r?b:b.slice(0,-2),g=JSON.stringify(g);else if(_.isArray(g)&&vh(g)||(_.isFileList(g)||_.endsWith(b,"[]"))&&(C=_.toArray(g)))return b=vc(b),C.forEach(function(N,O){!(_.isUndefined(N)||N===null)&&t.append(i===!0?di([b],O,o):i===null?b:b+"[]",u(N))}),!1}return Ts(g)?!0:(t.append(di(E,b,o),u(g)),!1)}const f=[],h=Object.assign(Sh,{defaultVisitor:a,convertValue:u,isVisitable:Ts});function m(g,b){if(!_.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+b.join("."));f.push(g),_.forEach(g,function(C,T){(!(_.isUndefined(C)||C===null)&&s.call(t,C,_.isString(T)?T.trim():T,b,h))===!0&&m(C,b?b.concat(T):[T])}),f.pop()}}if(!_.isObject(e))throw new TypeError("data must be an object");return m(e),t}function hi(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Zs(e,t){this._pairs=[],e&&jr(e,this,t)}const Sc=Zs.prototype;Sc.append=function(t,n){this._pairs.push([t,n])};Sc.toString=function(t){const n=t?function(r){return t.call(this,r,hi)}:hi;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Ah(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Ac(e,t,n){if(!t)return e;const r=n&&n.encode||Ah;_.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=_.isURLSearchParams(t)?t.toString():new Zs(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class pi{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){_.forEach(this.handlers,function(r){r!==null&&t(r)})}}const Rc={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Rh=typeof URLSearchParams<"u"?URLSearchParams:Zs,Ch=typeof FormData<"u"?FormData:null,xh=typeof Blob<"u"?Blob:null,Th={isBrowser:!0,classes:{URLSearchParams:Rh,FormData:Ch,Blob:xh},protocols:["http","https","file","blob","url","data"]},eo=typeof window<"u"&&typeof document<"u",Os=typeof navigator=="object"&&navigator||void 0,Oh=eo&&(!Os||["ReactNative","NativeScript","NS"].indexOf(Os.product)<0),Ph=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Nh=eo&&window.location.href||"http://localhost",Ih=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:eo,hasStandardBrowserEnv:Oh,hasStandardBrowserWebWorkerEnv:Ph,navigator:Os,origin:Nh},Symbol.toStringTag,{value:"Module"})),Re={...Ih,...Th};function Lh(e,t){return jr(e,new Re.classes.URLSearchParams,{visitor:function(n,r,s,o){return Re.isNode&&_.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function Dh(e){return _.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Fh(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&_.isArray(s)?s.length:i,c?(_.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!l):((!s[i]||!_.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&_.isArray(s[i])&&(s[i]=Fh(s[i])),!l)}if(_.isFormData(e)&&_.isFunction(e.entries)){const n={};return _.forEachEntry(e,(r,s)=>{t(Dh(r),s,n,0)}),n}return null}function Mh(e,t,n){if(_.isString(e))try{return(t||JSON.parse)(e),_.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Kn={transitional:Rc,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=_.isObject(t);if(o&&_.isHTMLForm(t)&&(t=new FormData(t)),_.isFormData(t))return s?JSON.stringify(Cc(t)):t;if(_.isArrayBuffer(t)||_.isBuffer(t)||_.isStream(t)||_.isFile(t)||_.isBlob(t)||_.isReadableStream(t))return t;if(_.isArrayBufferView(t))return t.buffer;if(_.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return Lh(t,this.formSerializer).toString();if((l=_.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return jr(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),Mh(t)):t}],transformResponse:[function(t){const n=this.transitional||Kn.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(_.isResponse(t)||_.isReadableStream(t))return t;if(t&&_.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(i)throw l.name==="SyntaxError"?X.from(l,X.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:Re.classes.FormData,Blob:Re.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};_.forEach(["delete","get","head","post","put","patch"],e=>{Kn.headers[e]={}});const kh=_.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"]),Bh=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&kh[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},mi=Symbol("internals");function _n(e){return e&&String(e).trim().toLowerCase()}function lr(e){return e===!1||e==null?e:_.isArray(e)?e.map(lr):String(e)}function Uh(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const jh=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function ss(e,t,n,r,s){if(_.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!_.isString(t)){if(_.isString(r))return t.indexOf(r)!==-1;if(_.isRegExp(r))return r.test(t)}}function Hh(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Vh(e,t){const n=_.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let Fe=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(l,c,u){const a=_n(c);if(!a)throw new Error("header name must be a non-empty string");const f=_.findKey(s,a);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||c]=lr(l))}const i=(l,c)=>_.forEach(l,(u,a)=>o(u,a,c));if(_.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(_.isString(t)&&(t=t.trim())&&!jh(t))i(Bh(t),n);else if(_.isObject(t)&&_.isIterable(t)){let l={},c,u;for(const a of t){if(!_.isArray(a))throw TypeError("Object iterator must return a key-value pair");l[u=a[0]]=(c=l[u])?_.isArray(c)?[...c,a[1]]:[c,a[1]]:a[1]}i(l,n)}else t!=null&&o(n,t,r);return this}get(t,n){if(t=_n(t),t){const r=_.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return Uh(s);if(_.isFunction(n))return n.call(this,s,r);if(_.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=_n(t),t){const r=_.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||ss(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=_n(i),i){const l=_.findKey(r,i);l&&(!n||ss(r,r[l],l,n))&&(delete r[l],s=!0)}}return _.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||ss(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return _.forEach(this,(s,o)=>{const i=_.findKey(r,o);if(i){n[i]=lr(s),delete n[o];return}const l=t?Hh(o):String(o).trim();l!==o&&delete n[o],n[l]=lr(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return _.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&_.isArray(r)?r.join(", "):r)}),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 r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[mi]=this[mi]={accessors:{}}).accessors,s=this.prototype;function o(i){const l=_n(i);r[l]||(Vh(s,i),r[l]=!0)}return _.isArray(t)?t.forEach(o):o(t),this}};Fe.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);_.reduceDescriptors(Fe.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});_.freezeMethods(Fe);function os(e,t){const n=this||Kn,r=t||n,s=Fe.from(r.headers);let o=r.data;return _.forEach(e,function(l){o=l.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function xc(e){return!!(e&&e.__CANCEL__)}function hn(e,t,n){X.call(this,e??"canceled",X.ERR_CANCELED,t,n),this.name="CanceledError"}_.inherits(hn,X,{__CANCEL__:!0});function Tc(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new X("Request failed with status code "+n.status,[X.ERR_BAD_REQUEST,X.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function $h(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function qh(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),a=r[o];i||(i=u),n[s]=c,r[s]=u;let f=o,h=0;for(;f!==s;)h+=n[f++],f=f%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i{n=a,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const a=Date.now(),f=a-n;f>=r?i(u,a):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-f)))},()=>s&&i(s)]}const br=(e,t,n=3)=>{let r=0;const s=qh(50,250);return Kh(o=>{const i=o.loaded,l=o.lengthComputable?o.total:void 0,c=i-r,u=s(c),a=i<=l;r=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)},gi=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},yi=e=>(...t)=>_.asap(()=>e(...t)),Wh=Re.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Re.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Re.origin),Re.navigator&&/(msie|trident)/i.test(Re.navigator.userAgent)):()=>!0,Gh=Re.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];_.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),_.isString(r)&&l.push(`path=${r}`),_.isString(s)&&l.push(`domain=${s}`),o===!0&&l.push("secure"),_.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 zh(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function Jh(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Oc(e,t,n){let r=!zh(t);return e&&(r||n==!1)?Jh(e,t):t}const _i=e=>e instanceof Fe?{...e}:e;function Gt(e,t){t=t||{};const n={};function r(u,a,f,h){return _.isPlainObject(u)&&_.isPlainObject(a)?_.merge.call({caseless:h},u,a):_.isPlainObject(a)?_.merge({},a):_.isArray(a)?a.slice():a}function s(u,a,f,h){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u,f,h)}else return r(u,a,f,h)}function o(u,a){if(!_.isUndefined(a))return r(void 0,a)}function i(u,a){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u)}else return r(void 0,a)}function l(u,a,f){if(f in t)return r(u,a);if(f in e)return r(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)=>s(_i(u),_i(a),f,!0)};return _.forEach(Object.keys({...e,...t}),function(a){const f=c[a]||s,h=f(e[a],t[a],a);_.isUndefined(h)&&f!==l||(n[a]=h)}),n}const Pc=e=>{const t=Gt({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:l}=t;if(t.headers=i=Fe.from(i),t.url=Ac(Oc(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&i.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),_.isFormData(n)){if(Re.hasStandardBrowserEnv||Re.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(_.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(Re.hasStandardBrowserEnv&&(r&&_.isFunction(r)&&(r=r(t)),r||r!==!1&&Wh(t.url))){const c=s&&o&&Gh.read(o);c&&i.set(s,c)}return t},Xh=typeof XMLHttpRequest<"u",Qh=Xh&&function(e){return new Promise(function(n,r){const s=Pc(e);let o=s.data;const i=Fe.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,a,f,h,m,g;function b(){m&&m(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(a),s.signal&&s.signal.removeEventListener("abort",a)}let E=new XMLHttpRequest;E.open(s.method.toUpperCase(),s.url,!0),E.timeout=s.timeout;function C(){if(!E)return;const N=Fe.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),B={data:!l||l==="text"||l==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:N,config:e,request:E};Tc(function(j){n(j),b()},function(j){r(j),b()},B),E=null}"onloadend"in E?E.onloadend=C:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.indexOf("file:")===0)||setTimeout(C)},E.onabort=function(){E&&(r(new X("Request aborted",X.ECONNABORTED,e,E)),E=null)},E.onerror=function(O){const B=O&&O.message?O.message:"Network Error",G=new X(B,X.ERR_NETWORK,e,E);G.event=O||null,r(G),E=null},E.ontimeout=function(){let O=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const B=s.transitional||Rc;s.timeoutErrorMessage&&(O=s.timeoutErrorMessage),r(new X(O,B.clarifyTimeoutError?X.ETIMEDOUT:X.ECONNABORTED,e,E)),E=null},o===void 0&&i.setContentType(null),"setRequestHeader"in E&&_.forEach(i.toJSON(),function(O,B){E.setRequestHeader(B,O)}),_.isUndefined(s.withCredentials)||(E.withCredentials=!!s.withCredentials),l&&l!=="json"&&(E.responseType=s.responseType),u&&([h,g]=br(u,!0),E.addEventListener("progress",h)),c&&E.upload&&([f,m]=br(c),E.upload.addEventListener("progress",f),E.upload.addEventListener("loadend",m)),(s.cancelToken||s.signal)&&(a=N=>{E&&(r(!N||N.type?new hn(null,e,E):N),E.abort(),E=null)},s.cancelToken&&s.cancelToken.subscribe(a),s.signal&&(s.signal.aborted?a():s.signal.addEventListener("abort",a)));const T=$h(s.url);if(T&&Re.protocols.indexOf(T)===-1){r(new X("Unsupported protocol "+T+":",X.ERR_BAD_REQUEST,e));return}E.send(o||null)})},Yh=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,l();const a=u instanceof Error?u:this.reason;r.abort(a instanceof X?a:new hn(a instanceof Error?a.message:a))}};let i=t&&setTimeout(()=>{i=null,o(new X(`timeout ${t} of ms exceeded`,X.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}=r;return c.unsubscribe=()=>_.asap(l),c}},Zh=function*(e,t){let n=e.byteLength;if(n{const s=ep(e,t);let o=0,i,l=c=>{i||(i=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:a}=await s.next();if(u){l(),c.close();return}let f=a.byteLength;if(n){let h=o+=f;n(h)}c.enqueue(new Uint8Array(a))}catch(u){throw l(u),u}},cancel(c){return l(c),s.return()}},{highWaterMark:2})},Ei=64*1024,{isFunction:Qn}=_,np=(({Request:e,Response:t})=>({Request:e,Response:t}))(_.global),{ReadableStream:wi,TextEncoder:vi}=_.global,Si=(e,...t)=>{try{return!!e(...t)}catch{return!1}},rp=e=>{e=_.merge.call({skipUndefined:!0},np,e);const{fetch:t,Request:n,Response:r}=e,s=t?Qn(t):typeof fetch=="function",o=Qn(n),i=Qn(r);if(!s)return!1;const l=s&&Qn(wi),c=s&&(typeof vi=="function"?(g=>b=>g.encode(b))(new vi):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=o&&l&&Si(()=>{let g=!1;const b=new n(Re.origin,{body:new wi,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!b}),a=i&&l&&Si(()=>_.isReadableStream(new r("").body)),f={stream:a&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(b,E)=>{let C=b&&b[g];if(C)return C.call(b);throw new X(`Response type '${g}' is not supported`,X.ERR_NOT_SUPPORT,E)})});const h=async g=>{if(g==null)return 0;if(_.isBlob(g))return g.size;if(_.isSpecCompliantForm(g))return(await new n(Re.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(_.isArrayBufferView(g)||_.isArrayBuffer(g))return g.byteLength;if(_.isURLSearchParams(g)&&(g=g+""),_.isString(g))return(await c(g)).byteLength},m=async(g,b)=>{const E=_.toFiniteNumber(g.getContentLength());return E??h(b)};return async g=>{let{url:b,method:E,data:C,signal:T,cancelToken:N,timeout:O,onDownloadProgress:B,onUploadProgress:G,responseType:j,headers:U,withCredentials:x="same-origin",fetchOptions:$}=Pc(g),Y=t||fetch;j=j?(j+"").toLowerCase():"text";let L=Yh([T,N&&N.toAbortSignal()],O),Q=null;const le=L&&L.unsubscribe&&(()=>{L.unsubscribe()});let we;try{if(G&&u&&E!=="get"&&E!=="head"&&(we=await m(U,C))!==0){let ye=new n(b,{method:"POST",body:C,duplex:"half"}),me;if(_.isFormData(C)&&(me=ye.headers.get("content-type"))&&U.setContentType(me),ye.body){const[Ze,We]=gi(we,br(yi(G)));C=bi(ye.body,Ei,Ze,We)}}_.isString(x)||(x=x?"include":"omit");const ee=o&&"credentials"in n.prototype,z={...$,signal:L,method:E.toUpperCase(),headers:U.normalize().toJSON(),body:C,duplex:"half",credentials:ee?x:void 0};Q=o&&new n(b,z);let Z=await(o?Y(Q,$):Y(b,z));const He=a&&(j==="stream"||j==="response");if(a&&(B||He&&le)){const ye={};["status","statusText","headers"].forEach(et=>{ye[et]=Z[et]});const me=_.toFiniteNumber(Z.headers.get("content-length")),[Ze,We]=B&&gi(me,br(yi(B),!0))||[];Z=new r(bi(Z.body,Ei,Ze,()=>{We&&We(),le&&le()}),ye)}j=j||"text";let Ye=await f[_.findKey(f,j)||"text"](Z,g);return!He&&le&&le(),await new Promise((ye,me)=>{Tc(ye,me,{data:Ye,headers:Fe.from(Z.headers),status:Z.status,statusText:Z.statusText,config:g,request:Q})})}catch(ee){throw le&&le(),ee&&ee.name==="TypeError"&&/Load failed|fetch/i.test(ee.message)?Object.assign(new X("Network Error",X.ERR_NETWORK,g,Q),{cause:ee.cause||ee}):X.from(ee,ee&&ee.code,g,Q)}}},sp=new Map,Nc=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,l=i,c,u,a=sp;for(;l--;)c=o[l],u=a.get(c),u===void 0&&a.set(c,u=l?new Map:rp(t)),a=u;return u};Nc();const to={http:wh,xhr:Qh,fetch:{get:Nc}};_.forEach(to,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Ai=e=>`- ${e}`,op=e=>_.isFunction(e)||e===null||e===!1;function ip(e,t){e=_.isArray(e)?e:[e];const{length:n}=e;let r,s;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(Ai).join(` +`):" "+Ai(i[0]):"as no adapter specified";throw new X("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const Ic={getAdapter:ip,adapters:to};function is(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new hn(null,e)}function Ri(e){return is(e),e.headers=Fe.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),Ic.getAdapter(e.adapter||Kn.adapter,e)(e).then(function(r){return is(e),r.data=os.call(e,e.transformResponse,r),r.headers=Fe.from(r.headers),r},function(r){return xc(r)||(is(e),r&&r.response&&(r.response.data=os.call(e,e.transformResponse,r.response),r.response.headers=Fe.from(r.response.headers))),Promise.reject(r)})}const Lc="1.13.2",Hr={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Hr[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const Ci={};Hr.transitional=function(t,n,r){function s(o,i){return"[Axios v"+Lc+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,l)=>{if(t===!1)throw new X(s(i," has been removed"+(n?" in "+n:"")),X.ERR_DEPRECATED);return n&&!Ci[i]&&(Ci[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,l):!0}};Hr.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function lp(e,t,n){if(typeof e!="object")throw new X("options must be an object",X.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const l=e[o],c=l===void 0||i(l,o,e);if(c!==!0)throw new X("option "+o+" must be "+c,X.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new X("Unknown option "+o,X.ERR_BAD_OPTION)}}const cr={assertOptions:lp,validators:Hr},it=cr.validators;let Kt=class{constructor(t){this.defaults=t||{},this.interceptors={request:new pi,response:new pi}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Gt(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&cr.assertOptions(r,{silentJSONParsing:it.transitional(it.boolean),forcedJSONParsing:it.transitional(it.boolean),clarifyTimeoutError:it.transitional(it.boolean)},!1),s!=null&&(_.isFunction(s)?n.paramsSerializer={serialize:s}:cr.assertOptions(s,{encode:it.function,serialize:it.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),cr.assertOptions(n,{baseUrl:it.spelling("baseURL"),withXsrfToken:it.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&_.merge(o.common,o[n.method]);o&&_.forEach(["delete","get","head","post","put","patch","common"],g=>{delete o[g]}),n.headers=Fe.concat(i,o);const l=[];let c=!0;this.interceptors.request.forEach(function(b){typeof b.runWhen=="function"&&b.runWhen(n)===!1||(c=c&&b.synchronous,l.unshift(b.fulfilled,b.rejected))});const u=[];this.interceptors.response.forEach(function(b){u.push(b.fulfilled,b.rejected)});let a,f=0,h;if(!c){const g=[Ri.bind(this),void 0];for(g.unshift(...l),g.push(...u),h=g.length,a=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(l=>{r.subscribe(l),o=l}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,l){r.reason||(r.reason=new hn(o,i,l),n(r.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=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new Dc(function(s){t=s}),cancel:t}}};function ap(e){return function(n){return e.apply(null,n)}}function up(e){return _.isObject(e)&&e.isAxiosError===!0}const Ps={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(Ps).forEach(([e,t])=>{Ps[t]=e});function Fc(e){const t=new Kt(e),n=dc(Kt.prototype.request,t);return _.extend(n,Kt.prototype,t,{allOwnKeys:!0}),_.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return Fc(Gt(e,s))},n}const ge=Fc(Kn);ge.Axios=Kt;ge.CanceledError=hn;ge.CancelToken=cp;ge.isCancel=xc;ge.VERSION=Lc;ge.toFormData=jr;ge.AxiosError=X;ge.Cancel=ge.CanceledError;ge.all=function(t){return Promise.all(t)};ge.spread=ap;ge.isAxiosError=up;ge.mergeConfig=Gt;ge.AxiosHeaders=Fe;ge.formToJSON=e=>Cc(_.isHTMLForm(e)?new FormData(e):e);ge.getAdapter=Ic.getAdapter;ge.HttpStatusCode=Ps;ge.default=ge;const{Axios:kp,AxiosError:Bp,CanceledError:Up,isCancel:jp,CancelToken:Hp,VERSION:Vp,all:$p,Cancel:qp,isAxiosError:Kp,spread:Wp,toFormData:Gp,AxiosHeaders:zp,HttpStatusCode:Jp,formToJSON:Xp,getAdapter:Qp,mergeConfig:Yp}=ge,Pn=ge.create({baseURL:"",timeout:3e4,withCredentials:!0});Pn.interceptors.request.use(e=>e,e=>Promise.reject(e));Pn.interceptors.response.use(e=>e.data,e=>{e.response?.status===401&&(window.location.hash="#/login");const t=e.response?.data?e.response.data.detail||e.response.data.message:e.message;return Promise.reject(new Error(t||"请求失败"))});const Yn={login:e=>{const t=new URLSearchParams;return t.append("admin_key",e.password),Pn.post("/login",t,{headers:{"Content-Type":"application/x-www-form-urlencoded"}})},logout:()=>Pn.post("/logout"),checkAuth:()=>Pn.get("/admin/health")},fp=xf("auth",()=>{const e=$t(!1),t=$t(!1),n=$t(0),r=1e4;let s=null;async function o(c){t.value=!0;try{return await Yn.login({password:c}),await Yn.checkAuth(),e.value=!0,n.value=Date.now(),!0}catch(u){throw e.value=!1,u}finally{t.value=!1}}async function i(){try{await Yn.logout()}finally{e.value=!1,n.value=0}}async function l(){const c=Date.now();if(e.value&&c-n.value(await Yn.checkAuth(),e.value=!0,!0))(),await s}catch{return e.value=!1,!1}finally{n.value=Date.now(),s=null}}return{isLoggedIn:e,isLoading:t,login:o,logout:i,checkAuth:l}}),Mc=Fd({history:pd("/"),routes:[{path:"/public/uptime",name:"public-uptime",component:()=>ot(()=>import("./PublicUptime-Du6tFKiB.js"),__vite__mapDeps([0,1])),meta:{requiresAuth:!1}},{path:"/public/logs",name:"public-logs",component:()=>ot(()=>import("./PublicLogs-CoTRbwU0.js"),[]),meta:{requiresAuth:!1}},{path:"/login",name:"login",component:()=>ot(()=>import("./Login-C-o3VEDt.js"),__vite__mapDeps([2,3])),meta:{requiresAuth:!1}},{path:"/",component:()=>ot(()=>import("./AppShell-BCoBt3vb.js"),__vite__mapDeps([4,5,6,7])),meta:{requiresAuth:!0},children:[{path:"",name:"dashboard",component:()=>ot(()=>import("./Dashboard-DxzMNPjd.js"),__vite__mapDeps([8,9]))},{path:"accounts",name:"accounts",component:()=>ot(()=>import("./Accounts-DeEVJUcd.js"),__vite__mapDeps([10,11,3,6,7,9]))},{path:"settings",name:"settings",component:()=>ot(()=>import("./Settings-BaukAybX.js"),__vite__mapDeps([12,5,11,3,9]))},{path:"logs",name:"logs",component:()=>ot(()=>import("./Logs-D2rRedU6.js"),__vite__mapDeps([13,11,6]))},{path:"monitor",name:"monitor",component:()=>ot(()=>import("./Monitor-PELfbABr.js"),__vite__mapDeps([14,1]))},{path:"docs",name:"docs",component:()=>ot(()=>import("./Docs-D2PAitVC.js"),[])}]}]});Mc.beforeEach(async e=>{const t=fp();if(e.meta.requiresAuth&&!await t.checkAuth())return{name:"login"};if(e.name==="login"&&t.isLoggedIn)return{name:"dashboard"}});const Er=fn({toasts:[]});let dp=0;const Zn=e=>{const t=`toast-${++dp}`,n=e.duration??3e3,r={id:t,type:e.type,title:e.title,message:e.message,duration:n};return Er.toasts.push(r),n>0&&setTimeout(()=>{kc(t)},n),t},kc=e=>{const t=Er.toasts.findIndex(n=>n.id===e);t>-1&&Er.toasts.splice(t,1)},Zp=()=>({success:(e,t,n)=>Zn({type:"success",message:e,title:t,duration:n}),error:(e,t,n)=>Zn({type:"error",message:e,title:t,duration:n}),warning:(e,t,n)=>Zn({type:"warning",message:e,title:t,duration:n}),info:(e,t,n)=>Zn({type:"info",message:e,title:t,duration:n})}),hp={class:"fixed right-4 top-4 z-[200] flex flex-col gap-2"},pp={class:"flex-shrink-0"},mp={key:0,class:"h-5 w-5 text-emerald-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},gp={key:1,class:"h-5 w-5 text-rose-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},yp={key:2,class:"h-5 w-5 text-amber-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},_p={key:3,class:"h-5 w-5 text-sky-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},bp={class:"flex-1"},Ep={key:0,class:"text-sm font-medium text-foreground"},wp=["onClick"],vp=Or({__name:"Toast",setup(e){const t=Er.toasts,n=r=>{switch(r){case"success":return"border-emerald-200 bg-emerald-50";case"error":return"border-rose-200 bg-rose-50";case"warning":return"border-amber-200 bg-amber-50";default:return"border-sky-200 bg-sky-50"}};return(r,s)=>(qe(),gr(Fa,{to:"body"},[ke("div",hp,[be(cf,{name:"toast"},{default:al(()=>[(qe(!0),Ct(ve,null,Ja(dt(t),o=>(qe(),Ct("div",{key:o.id,class:Nn(["flex min-w-[320px] items-start gap-3 rounded-2xl border border-border bg-card px-4 py-3 shadow-lg",n(o.type)])},[ke("div",pp,[o.type==="success"?(qe(),Ct("svg",mp,[...s[0]||(s[0]=[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"},null,-1)])])):o.type==="error"?(qe(),Ct("svg",gp,[...s[1]||(s[1]=[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"},null,-1)])])):o.type==="warning"?(qe(),Ct("svg",yp,[...s[2]||(s[2]=[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"},null,-1)])])):(qe(),Ct("svg",_p,[...s[3]||(s[3]=[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"},null,-1)])]))]),ke("div",bp,[o.title?(qe(),Ct("p",Ep,ls(o.title),1)):Cu("",!0),ke("p",{class:Nn(["text-sm text-muted-foreground",{"mt-1":o.title}])},ls(o.message),3)]),ke("button",{class:"flex-shrink-0 text-muted-foreground transition-colors hover:text-foreground",onClick:i=>dt(kc)(o.id)},[...s[4]||(s[4]=[ke("svg",{class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[ke("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])],8,wp)],2))),128))]),_:1})])]))}}),Sp=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},Ap=Sp(vp,[["__scopeId","data-v-cdd21b3c"]]),Rp=Or({__name:"App",setup(e){return(t,n)=>(qe(),Ct(ve,null,[be(dt(fc)),be(Ap)],64))}}),no=_f(Rp),Cp=wf();no.use(Cp);no.use(Mc);no.mount("#app");export{Op as A,fc as B,xf as C,Ip as D,Zp as E,ve as F,$s as G,Tp as H,fn as I,Nd as R,Fa as T,ke as a,Cu as b,Ct as c,Or as d,qe as e,Ru as f,Pn as g,$t as h,Be as i,wl as j,Fs as k,fp as l,gr as m,Nn as n,bl as o,be as p,xp as q,Ja as r,al as s,ls as t,dt as u,Pp as v,Np as w,Lp as x,Dp as y,Sn as z}; diff --git a/static/assets/index-GXutWPFk.css b/static/assets/index-GXutWPFk.css new file mode 100644 index 0000000000000000000000000000000000000000..bbff050e7725f936d5c27e9a58e7feddf9894ac1 --- /dev/null +++ b/static/assets/index-GXutWPFk.css @@ -0,0 +1 @@ +@import"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=Noto+Serif+SC:wght@600;700&display=swap";*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 97%;--foreground: 0 0% 10%;--card: 0 0% 100%;--card-foreground: 0 0% 10%;--primary: 0 0% 10%;--primary-foreground: 0 0% 100%;--secondary: 0 0% 92%;--secondary-foreground: 0 0% 10%;--muted: 0 0% 92%;--muted-foreground: 0 0% 40%;--accent: 0 0% 90%;--accent-foreground: 0 0% 10%;--destructive: 0 70% 45%;--destructive-foreground: 0 0% 100%;--border: 0 0% 86%;--input: 0 0% 86%;--ring: 0 0% 10%;--radius: 1rem}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:Noto Sans SC,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;overflow-x:hidden;background-image:radial-gradient(900px circle at 10% -20%,rgba(0,0,0,.04),transparent 45%),radial-gradient(700px circle at 90% 0%,rgba(0,0,0,.05),transparent 40%),linear-gradient(180deg,hsl(var(--background)) 0% 100%)}body:before{content:"";position:fixed;inset:0;background-image:linear-gradient(120deg,#ffffff8c,#fff0);opacity:.5;pointer-events:none;z-index:-1}h1,h2,h3{font-family:"Noto Serif SC",Georgia,serif;letter-spacing:-.01em}#app{min-height:100vh}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{top:0;bottom:0}.bottom-0{bottom:0}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.top-0{top:0}.top-full{top:100%}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[9999\]{z-index:9999}.col-span-2{grid-column:span 2 / span 2}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0{height:0px}.h-10{height:2.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-\[80vh\]{height:80vh}.h-full{height:100%}.max-h-\[60vh\]{max-height:60vh}.max-h-\[90vh\]{max-height:90vh}.min-h-0{min-height:0px}.min-h-\[140px\]{min-height:140px}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-10{width:2.5rem}.w-2{width:.5rem}.w-20{width:5rem}.w-24{width:6rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-44{width:11rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[200px\]{min-width:200px}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-not-allowed{cursor:not-allowed}.resize{resize:both}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-1{row-gap:.25rem}.gap-y-2{row-gap:.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.justify-self-end{justify-self:end}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-visible{overflow-y:visible}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[2\.5rem\]{border-radius:2.5rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-x-4{border-left-width:4px;border-right-width:4px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-4{border-top-width:4px}.border-border{border-color:hsl(var(--border))}.border-border\/60{border-color:hsl(var(--border) / .6)}.border-destructive\/30{border-color:hsl(var(--destructive) / .3)}.border-input{border-color:hsl(var(--input))}.border-primary-foreground\/40{border-color:hsl(var(--primary-foreground) / .4)}.border-rose-200{--tw-border-opacity: 1;border-color:rgb(254 205 211 / var(--tw-border-opacity, 1))}.border-x-transparent{border-left-color:transparent;border-right-color:transparent}.border-t-foreground{border-top-color:hsl(var(--foreground))}.bg-accent{background-color:hsl(var(--accent))}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-200{--tw-bg-opacity: 1;background-color:rgb(253 230 138 / var(--tw-bg-opacity, 1))}.bg-amber-300{--tw-bg-opacity: 1;background-color:rgb(252 211 77 / var(--tw-bg-opacity, 1))}.bg-amber-400{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-black\/20{background-color:#0003}.bg-black\/30{background-color:#0000004d}.bg-black\/50{background-color:#00000080}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-card{background-color:hsl(var(--card))}.bg-card\/70{background-color:hsl(var(--card) / .7)}.bg-card\/90{background-color:hsl(var(--card) / .9)}.bg-cyan-100{--tw-bg-opacity: 1;background-color:rgb(207 250 254 / var(--tw-bg-opacity, 1))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-400{--tw-bg-opacity: 1;background-color:rgb(52 211 153 / var(--tw-bg-opacity, 1))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground{background-color:hsl(var(--muted-foreground))}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/70{background-color:hsl(var(--muted) / .7)}.bg-primary{background-color:hsl(var(--primary))}.bg-primary-foreground\/15{background-color:hsl(var(--primary-foreground) / .15)}.bg-rose-100{--tw-bg-opacity: 1;background-color:rgb(255 228 230 / var(--tw-bg-opacity, 1))}.bg-rose-50{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.bg-rose-500{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity, 1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/30{background-color:hsl(var(--secondary) / .3)}.bg-secondary\/40{background-color:hsl(var(--secondary) / .4)}.bg-secondary\/50{background-color:hsl(var(--secondary) / .5)}.bg-secondary\/60{background-color:hsl(var(--secondary) / .6)}.bg-sky-400{--tw-bg-opacity: 1;background-color:rgb(56 189 248 / var(--tw-bg-opacity, 1))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-violet-100{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.object-contain{-o-object-fit:contain;object-fit:contain}.p-1{padding:.25rem}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-10{padding-bottom:2.5rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pl-6{padding-left:1.5rem}.pr-1{padding-right:.25rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.tracking-\[0\.12em\]{letter-spacing:.12em}.tracking-\[0\.28em\]{letter-spacing:.28em}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-\[0\.3em\]{letter-spacing:.3em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-background{color:hsl(var(--background))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-cyan-700{--tw-text-opacity: 1;color:rgb(14 116 144 / var(--tw-text-opacity, 1))}.text-destructive{color:hsl(var(--destructive))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-violet-700{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.opacity-0{opacity:0}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-black\/10{--tw-shadow-color: rgb(0 0 0 / .1);--tw-shadow: var(--tw-shadow-colored)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,transform\]{transition-property:width,transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-\[transform\]{will-change:transform}html{scrollbar-gutter:stable}*{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.35) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:#00000059;border-radius:999px;border:2px solid transparent;background-clip:content-box}.scrollbar-slim::-webkit-scrollbar{width:6px;height:6px}.scrollbar-slim::-webkit-scrollbar-thumb{background-color:#0006}.cv-auto{content-visibility:auto;contain-intrinsic-size:0 44px}.monitor-badge--up{background:#d1fae5;color:#065f46}.monitor-badge--warn{background:#fef3c7;color:#b45309}.monitor-badge--down{background:#fee2e2;color:#991b1b}.monitor-badge--unknown{background:#f3f4f6;color:#6b7280}.monitor-card{border-radius:16px;padding:0;background:hsl(var(--card));box-shadow:none}.monitor-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.monitor-card__name{font-size:14px;font-weight:600;color:hsl(var(--foreground))}.monitor-card__badge{padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600}.monitor-card__stats{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:hsl(var(--muted-foreground));margin-bottom:12px}.monitor-card__value{margin-left:4px;color:hsl(var(--foreground));font-weight:600}.monitor-card__beats{display:flex;gap:2px;height:24px;align-items:flex-end}.monitor-beat{flex:1;min-width:4px;max-width:8px;border-radius:2px;transition:all .2s;position:relative}.monitor-beat:hover{opacity:.8;transform:scaleY(1.1)}.monitor-beat--up{background:#34c759;height:100%}.monitor-beat--warn,.monitor-beat--slow{background:#f5c15b;height:100%}.monitor-beat--down{background:#ff3b30;height:100%}.monitor-beat--empty{background:#e5e5ea;height:40%}.monitor-beat__tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#1d1d1f;color:#fff;padding:6px 10px;border-radius:6px;font-size:11px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;margin-bottom:6px;z-index:10}.monitor-beat__tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#1d1d1f}.monitor-beat:hover .monitor-beat__tooltip{opacity:1}.help-dot{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:999px;border:1px solid hsl(var(--border));font-size:10px;line-height:1;color:hsl(var(--muted-foreground));cursor:default}@media(max-width:768px){.monitor-beat{min-width:3px;max-width:6px}}@media(min-width:1024px){.dashboard-split{flex-direction:row;flex-wrap:nowrap}.dashboard-split .dashboard-main{flex:0 0 66.6667%;max-width:66.6667%}.dashboard-split .dashboard-side{flex:0 0 33.3333%;max-width:33.3333%}}@keyframes logo-float{0%{transform:translateY(0)}25%{transform:translateY(6px)}50%{transform:translateY(0)}75%{transform:translateY(-6px)}to{transform:translateY(0)}}@keyframes logo-blink{0%,45%,55%,to{transform:scaleY(1);opacity:1}50%{transform:scaleY(.1);opacity:.6}}.logo-mark .logo-cat-wrapper{animation:logo-float 4s ease-in-out infinite;transform-origin:center}.logo-mark{transform:translateY(2px)}.logo-mark .logo-eye{fill:#00bcd4;filter:drop-shadow(0 0 2px #00bcd4);animation:logo-blink 5s infinite;transform-box:fill-box;transform-origin:center}.hover\:border-destructive:hover{border-color:hsl(var(--destructive))}.hover\:border-destructive\/40:hover{border-color:hsl(var(--destructive) / .4)}.hover\:border-destructive\/60:hover{border-color:hsl(var(--destructive) / .6)}.hover\:border-foreground:hover{border-color:hsl(var(--foreground))}.hover\:border-primary:hover{border-color:hsl(var(--primary))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/10:hover{background-color:hsl(var(--destructive) / .1)}.hover\:bg-secondary\/60:hover{background-color:hsl(var(--secondary) / .6)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-emerald-500:hover{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.focus\:border-transparent:focus{border-color:transparent}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:text-accent-foreground{color:hsl(var(--accent-foreground))}.group:hover .group-hover\:opacity-100{opacity:1}.peer:checked~.peer-checked\:border-foreground{border-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:bg-foreground{background-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.peer:disabled~.peer-disabled\:opacity-50{opacity:.5}@media(min-width:640px){.sm\:ml-0{margin-left:0}.sm\:flex{display:flex}.sm\:w-44{width:11rem}.sm\:w-48{width:12rem}.sm\:w-auto{width:auto}.sm\:min-w-0{min-width:0px}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:items-center{align-items:center}}@media(min-width:768px){.md\:w-auto{width:auto}.md\:flex-1{flex:1 1 0%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1024px){.lg\:static{position:static}.lg\:sticky{position:sticky}.lg\:top-0{top:0}.lg\:ml-0{margin-left:0}.lg\:hidden{display:none}.lg\:h-20{height:5rem}.lg\:h-64{height:16rem}.lg\:h-72{height:18rem}.lg\:h-screen{height:100vh}.lg\:w-20{width:5rem}.lg\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:border-b-0{border-bottom-width:0px}.lg\:border-r{border-right-width:1px}.lg\:bg-card\/80{background-color:hsl(var(--card) / .8)}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:py-4{padding-top:1rem;padding-bottom:1rem}.lg\:pt-10{padding-top:2.5rem}.lg\:pt-5{padding-top:1.25rem}.lg\:pt-6{padding-top:1.5rem}.lg\:text-2xl{font-size:1.5rem;line-height:2rem}.lg\:backdrop-blur-none{--tw-backdrop-blur: ;-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}}@media(min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}} diff --git a/static/assets/index-JaBfp01b.js b/static/assets/index-JaBfp01b.js new file mode 100644 index 0000000000000000000000000000000000000000..577646e312f0a04d58a99d819386820758b8dddc --- /dev/null +++ b/static/assets/index-JaBfp01b.js @@ -0,0 +1,7 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PublicUptime-BEv5lCkt.js","assets/useUptimeStatus-B1gVi6oM.js","assets/Login-DmfEMRA7.js","assets/Checkbox.vue_vue_type_script_setup_true_lang-B33RCL2G.js","assets/AppShell-8b_m8Zl7.js","assets/settings-BHsdlelt.js","assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-BuSWgV7j.js","assets/useConfirmDialog-BGx3Bidu.js","assets/Dashboard-CSXehn29.js","assets/HelpTip.vue_vue_type_script_setup_true_lang-DO1J64wx.js","assets/Accounts-qETksrou.js","assets/SelectMenu.vue_vue_type_script_setup_true_lang-cSKw_kbn.js","assets/Settings-myvf-puL.js","assets/Logs-BLNGC9VD.js","assets/Monitor-CgM6KxNQ.js"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function As(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const ce={},Yt=[],ct=()=>{},Ai=()=>!1,mr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Rs=e=>e.startsWith("onUpdate:"),Ee=Object.assign,Cs=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Lc=Object.prototype.hasOwnProperty,oe=(e,t)=>Lc.call(e,t),K=Array.isArray,Zt=e=>gr(e)==="[object Map]",Ri=e=>gr(e)==="[object Set]",J=e=>typeof e=="function",pe=e=>typeof e=="string",Et=e=>typeof e=="symbol",ae=e=>e!==null&&typeof e=="object",Ci=e=>(ae(e)||J(e))&&J(e.then)&&J(e.catch),Oi=Object.prototype.toString,gr=e=>Oi.call(e),Dc=e=>gr(e).slice(8,-1),Ti=e=>gr(e)==="[object Object]",yr=e=>pe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,mn=As(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),br=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},Fc=/-\w/g,Nt=br(e=>e.replace(Fc,t=>t.slice(1).toUpperCase())),Mc=/\B([A-Z])/g,Wt=br(e=>e.replace(Mc,"-$1").toLowerCase()),xi=br(e=>e.charAt(0).toUpperCase()+e.slice(1)),Mr=br(e=>e?`on${xi(e)}`:""),xt=(e,t)=>!Object.is(e,t),Jn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},Os=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Bc=e=>{const t=pe(e)?Number(e):NaN;return isNaN(t)?e:t};let no;const _r=()=>no||(no=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ts(e){if(K(e)){const t={};for(let n=0;n{if(n){const r=n.split(jc);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function xs(e){let t="";if(pe(e))t=e;else if(K(e))for(let n=0;n!!(e&&e.__v_isRef===!0),qc=e=>pe(e)?e:e==null?"":K(e)||ae(e)&&(e.toString===Oi||!J(e.toString))?Ii(e)?qc(e.value):JSON.stringify(e,Li,2):String(e),Li=(e,t)=>Ii(t)?Li(e,t.value):Zt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[Br(r,o)+" =>"]=s,n),{})}:Ri(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Br(n))}:Et(t)?Br(t):ae(t)&&!K(t)&&!Ti(t)?String(t):t,Br=(e,t="")=>{var n;return Et(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let we;class Di{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=we,!t&&we&&(this.index=(we.scopes||(we.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&&(we=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if(yn){let t=yn;for(yn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;gn;){let t=gn;for(gn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function Hi(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function ki(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),Is(r),Wc(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function ns(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Vi(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Vi(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Cn)||(e.globalVersion=Cn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!ns(e))))return;e.flags|=2;const t=e.dep,n=fe,r=We;fe=e,We=!0;try{Hi(e);const s=e.fn(e._value);(t.version===0||xt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{fe=n,We=r,ki(e),e.flags&=-3}}function Is(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)Is(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Wc(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let We=!0;const $i=[];function yt(){$i.push(We),We=!1}function bt(){const e=$i.pop();We=e===void 0?!0:e}function ro(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=fe;fe=void 0;try{t()}finally{fe=n}}}let Cn=0;class Gc{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 Ls{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(!fe||!We||fe===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==fe)n=this.activeLink=new Gc(fe,this),fe.deps?(n.prevDep=fe.depsTail,fe.depsTail.nextDep=n,fe.depsTail=n):fe.deps=fe.depsTail=n,qi(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=fe.depsTail,n.nextDep=void 0,fe.depsTail.nextDep=n,fe.depsTail=n,fe.deps===n&&(fe.deps=r)}return n}trigger(t){this.version++,Cn++,this.notify(t)}notify(t){Ps();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Ns()}}}function qi(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)qi(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const sr=new WeakMap,kt=Symbol(""),rs=Symbol(""),On=Symbol("");function Se(e,t,n){if(We&&fe){let r=sr.get(e);r||sr.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new Ls),s.map=r,s.key=n),s.track()}}function mt(e,t,n,r,s,o){const i=sr.get(e);if(!i){Cn++;return}const l=c=>{c&&c.trigger()};if(Ps(),t==="clear")i.forEach(l);else{const c=K(e),u=c&&yr(n);if(c&&n==="length"){const a=Number(r);i.forEach((f,p)=>{(p==="length"||p===On||!Et(p)&&p>=a)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(On)),t){case"add":c?u&&l(i.get("length")):(l(i.get(kt)),Zt(e)&&l(i.get(rs)));break;case"delete":c||(l(i.get(kt)),Zt(e)&&l(i.get(rs)));break;case"set":Zt(e)&&l(i.get(kt));break}}Ns()}function zc(e,t){const n=sr.get(e);return n&&n.get(t)}function Gt(e){const t=re(e);return t===e?t:(Se(t,"iterate",On),He(e)?t:t.map(Ge))}function Er(e){return Se(e=re(e),"iterate",On),e}function Rt(e,t){return _t(e)?at(e)?nn(Ge(t)):nn(t):Ge(t)}const Jc={__proto__:null,[Symbol.iterator](){return jr(this,Symbol.iterator,e=>Rt(this,e))},concat(...e){return Gt(this).concat(...e.map(t=>K(t)?Gt(t):t))},entries(){return jr(this,"entries",e=>(e[1]=Rt(this,e[1]),e))},every(e,t){return ut(this,"every",e,t,void 0,arguments)},filter(e,t){return ut(this,"filter",e,t,n=>n.map(r=>Rt(this,r)),arguments)},find(e,t){return ut(this,"find",e,t,n=>Rt(this,n),arguments)},findIndex(e,t){return ut(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ut(this,"findLast",e,t,n=>Rt(this,n),arguments)},findLastIndex(e,t){return ut(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ut(this,"forEach",e,t,void 0,arguments)},includes(...e){return Hr(this,"includes",e)},indexOf(...e){return Hr(this,"indexOf",e)},join(e){return Gt(this).join(e)},lastIndexOf(...e){return Hr(this,"lastIndexOf",e)},map(e,t){return ut(this,"map",e,t,void 0,arguments)},pop(){return un(this,"pop")},push(...e){return un(this,"push",e)},reduce(e,...t){return so(this,"reduce",e,t)},reduceRight(e,...t){return so(this,"reduceRight",e,t)},shift(){return un(this,"shift")},some(e,t){return ut(this,"some",e,t,void 0,arguments)},splice(...e){return un(this,"splice",e)},toReversed(){return Gt(this).toReversed()},toSorted(e){return Gt(this).toSorted(e)},toSpliced(...e){return Gt(this).toSpliced(...e)},unshift(...e){return un(this,"unshift",e)},values(){return jr(this,"values",e=>Rt(this,e))}};function jr(e,t,n){const r=Er(e),s=r[t]();return r!==e&&!He(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const Xc=Array.prototype;function ut(e,t,n,r,s,o){const i=Er(e),l=i!==e&&!He(e),c=i[t];if(c!==Xc[t]){const f=c.apply(e,o);return l?Ge(f):f}let u=n;i!==e&&(l?u=function(f,p){return n.call(this,Rt(e,f),p,e)}:n.length>2&&(u=function(f,p){return n.call(this,f,p,e)}));const a=c.call(i,u,r);return l&&s?s(a):a}function so(e,t,n,r){const s=Er(e);let o=n;return s!==e&&(He(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,Rt(e,l),c,e)}),s[t](o,...r)}function Hr(e,t,n){const r=re(e);Se(r,"iterate",On);const s=r[t](...n);return(s===-1||s===!1)&&wr(n[0])?(n[0]=re(n[0]),r[t](...n)):s}function un(e,t,n=[]){yt(),Ps();const r=re(e)[t].apply(e,n);return Ns(),bt(),r}const Qc=As("__proto__,__v_isRef,__isVue"),Ki=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Et));function Yc(e){Et(e)||(e=String(e));const t=re(this);return Se(t,"has",e),t.hasOwnProperty(e)}class Wi{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?ca:Xi:o?Ji:zi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=K(t);if(!s){let c;if(i&&(c=Jc[n]))return c;if(n==="hasOwnProperty")return Yc}const l=Reflect.get(t,n,de(t)?t:r);if((Et(n)?Ki.has(n):Qc(n))||(s||Se(t,"get",n),o))return l;if(de(l)){const c=i&&yr(n)?l:l.value;return s&&ae(c)?os(c):c}return ae(l)?s?os(l):Fn(l):l}}class Gi extends Wi{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=K(t)&&yr(n);if(!this._isShallow){const u=_t(o);if(!He(r)&&!_t(r)&&(o=re(o),r=re(r)),!i&&de(o)&&!de(r))return u||(o.value=r),!0}const l=i?Number(n)e,Vn=e=>Reflect.getPrototypeOf(e);function ra(e,t,n){return function(...r){const s=this.__v_raw,o=re(s),i=Zt(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=s[e](...r),a=n?ss:t?nn:Ge;return!t&&Se(o,"iterate",c?rs:kt),{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 $n(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function sa(e,t){const n={get(s){const o=this.__v_raw,i=re(o),l=re(s);e||(xt(s,l)&&Se(i,"get",s),Se(i,"get",l));const{has:c}=Vn(i),u=t?ss:e?nn:Ge;if(c.call(i,s))return u(o.get(s));if(c.call(i,l))return u(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&Se(re(s),"iterate",kt),s.size},has(s){const o=this.__v_raw,i=re(o),l=re(s);return e||(xt(s,l)&&Se(i,"has",s),Se(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,c=re(l),u=t?ss:e?nn:Ge;return!e&&Se(c,"iterate",kt),l.forEach((a,f)=>s.call(o,u(a),u(f),i))}};return Ee(n,e?{add:$n("add"),set:$n("set"),delete:$n("delete"),clear:$n("clear")}:{add(s){!t&&!He(s)&&!_t(s)&&(s=re(s));const o=re(this);return Vn(o).has.call(o,s)||(o.add(s),mt(o,"add",s,s)),this},set(s,o){!t&&!He(o)&&!_t(o)&&(o=re(o));const i=re(this),{has:l,get:c}=Vn(i);let u=l.call(i,s);u||(s=re(s),u=l.call(i,s));const a=c.call(i,s);return i.set(s,o),u?xt(o,a)&&mt(i,"set",s,o):mt(i,"add",s,o),this},delete(s){const o=re(this),{has:i,get:l}=Vn(o);let c=i.call(o,s);c||(s=re(s),c=i.call(o,s)),l&&l.call(o,s);const u=o.delete(s);return c&&mt(o,"delete",s,void 0),u},clear(){const s=re(this),o=s.size!==0,i=s.clear();return o&&mt(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=ra(s,e,t)}),n}function Ds(e,t){const n=sa(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(oe(n,s)&&s in r?n:r,s,o)}const oa={get:Ds(!1,!1)},ia={get:Ds(!1,!0)},la={get:Ds(!0,!1)};const zi=new WeakMap,Ji=new WeakMap,Xi=new WeakMap,ca=new WeakMap;function aa(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ua(e){return e.__v_skip||!Object.isExtensible(e)?0:aa(Dc(e))}function Fn(e){return _t(e)?e:Fs(e,!1,ea,oa,zi)}function Qi(e){return Fs(e,!1,na,ia,Ji)}function os(e){return Fs(e,!0,ta,la,Xi)}function Fs(e,t,n,r,s){if(!ae(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=ua(e);if(o===0)return e;const i=s.get(e);if(i)return i;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function at(e){return _t(e)?at(e.__v_raw):!!(e&&e.__v_isReactive)}function _t(e){return!!(e&&e.__v_isReadonly)}function He(e){return!!(e&&e.__v_isShallow)}function wr(e){return e?!!e.__v_raw:!1}function re(e){const t=e&&e.__v_raw;return t?re(t):e}function Ms(e){return!oe(e,"__v_skip")&&Object.isExtensible(e)&&Pi(e,"__v_skip",!0),e}const Ge=e=>ae(e)?Fn(e):e,nn=e=>ae(e)?os(e):e;function de(e){return e?e.__v_isRef===!0:!1}function Vt(e){return Yi(e,!1)}function fa(e){return Yi(e,!0)}function Yi(e,t){return de(e)?e:new da(e,t)}class da{constructor(t,n){this.dep=new Ls,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:re(t),this._value=n?t:Ge(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||He(t)||_t(t);t=r?t:re(t),xt(t,n)&&(this._rawValue=t,this._value=r?t:Ge(t),this.dep.trigger())}}function Pt(e){return de(e)?e.value:e}const ha={get:(e,t,n)=>t==="__v_raw"?e:Pt(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return de(s)&&!de(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Zi(e){return at(e)?e:new Proxy(e,ha)}function pa(e){const t=K(e)?new Array(e.length):{};for(const n in e)t[n]=el(e,n);return t}class ma{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._raw=re(t);let s=!0,o=t;if(!K(t)||!yr(String(n)))do s=!wr(o)||He(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=Pt(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&de(this._raw[this._key])){const n=this._object[this._key];if(de(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return zc(this._raw,this._key)}}class ga{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function ya(e,t,n){return de(e)?e:J(e)?new ga(e):ae(e)&&arguments.length>1?el(e,t,n):Vt(e)}function el(e,t,n){return new ma(e,t,n)}class ba{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Ls(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Cn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&fe!==this)return ji(this,!0),!0}get value(){const t=this.dep.track();return Vi(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function _a(e,t,n=!1){let r,s;return J(e)?r=e:(r=e.get,s=e.set),new ba(r,s,n)}const qn={},or=new WeakMap;let Bt;function Ea(e,t=!1,n=Bt){if(n){let r=or.get(n);r||or.set(n,r=[]),r.push(e)}}function wa(e,t,n=ce){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:c}=n,u=x=>s?x:He(x)||s===!1||s===0?gt(x,1):gt(x);let a,f,p,m,g=!1,_=!1;if(de(e)?(f=()=>e.value,g=He(e)):at(e)?(f=()=>u(e),g=!0):K(e)?(_=!0,g=e.some(x=>at(x)||He(x)),f=()=>e.map(x=>{if(de(x))return x.value;if(at(x))return u(x);if(J(x))return c?c(x,2):x()})):J(e)?t?f=c?()=>c(e,2):e:f=()=>{if(p){yt();try{p()}finally{bt()}}const x=Bt;Bt=a;try{return c?c(e,3,[m]):e(m)}finally{Bt=x}}:f=ct,t&&s){const x=f,U=s===!0?1/0:s;f=()=>gt(x(),U)}const E=Mi(),C=()=>{a.stop(),E&&E.active&&Cs(E.effects,a)};if(o&&t){const x=t;t=(...U)=>{x(...U),C()}}let T=_?new Array(e.length).fill(qn):qn;const N=x=>{if(!(!(a.flags&1)||!a.dirty&&!x))if(t){const U=a.run();if(s||g||(_?U.some((G,H)=>xt(G,T[H])):xt(U,T))){p&&p();const G=Bt;Bt=a;try{const H=[U,T===qn?void 0:_&&T[0]===qn?[]:T,m];T=U,c?c(t,3,H):t(...H)}finally{Bt=G}}}else a.run()};return l&&l(N),a=new Bi(f),a.scheduler=i?()=>i(N,!1):N,m=x=>Ea(x,!1,a),p=a.onStop=()=>{const x=or.get(a);if(x){if(c)c(x,4);else for(const U of x)U();or.delete(a)}},t?r?N(!0):T=a.run():i?i(N.bind(null,!0),!0):a.run(),C.pause=a.pause.bind(a),C.resume=a.resume.bind(a),C.stop=C,C}function gt(e,t=1/0,n){if(t<=0||!ae(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,de(e))gt(e.value,t,n);else if(K(e))for(let r=0;r{gt(r,t,n)});else if(Ti(e)){for(const r in e)gt(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&>(e[r],t,n)}return e}function Mn(e,t,n,r){try{return r?e(...r):e()}catch(s){Sr(s,t,n)}}function ze(e,t,n,r){if(J(e)){const s=Mn(e,t,n,r);return s&&Ci(s)&&s.catch(o=>{Sr(o,t,n)}),s}if(K(e)){const s=[];for(let o=0;o>>1,s=xe[r],o=Tn(s);o=Tn(n)?xe.push(e):xe.splice(va(t),0,e),e.flags|=1,nl()}}function nl(){ir||(ir=tl.then(sl))}function Aa(e){K(e)?en.push(...e):Ct&&e.id===-1?Ct.splice(Jt+1,0,e):e.flags&1||(en.push(e),e.flags|=1),nl()}function oo(e,t,n=it+1){for(;nTn(n)-Tn(r));if(en.length=0,Ct){Ct.push(...t);return}for(Ct=t,Jt=0;Jte.id==null?e.flags&2?-1:1/0:e.id;function sl(e){try{for(it=0;it{r._d&&fr(-1);const o=lr(t);let i;try{i=e(...s)}finally{lr(o),r._d&&fr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function rp(e,t){if(Re===null)return e;const n=Or(Re),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&J(t)?t.call(r&&r.proxy):t}}function Ca(){return!!(qs()||$t)}const Oa=Symbol.for("v-scx"),Ta=()=>qe(Oa);function bn(e,t,n){return il(e,t,n)}function il(e,t,n=ce){const{immediate:r,deep:s,flush:o,once:i}=n,l=Ee({},n),c=t&&r||!t&&o!=="post";let u;if(In){if(o==="sync"){const m=Ta();u=m.__watcherHandles||(m.__watcherHandles=[])}else if(!c){const m=()=>{};return m.stop=ct,m.resume=ct,m.pause=ct,m}}const a=Pe;l.call=(m,g,_)=>ze(m,a,g,_);let f=!1;o==="post"?l.scheduler=m=>{Oe(m,a&&a.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(m,g)=>{g?m():Us(m)}),l.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,a&&(m.id=a.uid,m.i=a))};const p=wa(e,t,l);return In&&(u?u.push(p):c&&p()),p}function xa(e,t,n){const r=this.proxy,s=pe(e)?e.includes(".")?ll(r,e):()=>r[e]:e.bind(r,r);let o;J(t)?o=t:(o=t.handler,n=t);const i=Bn(this),l=il(s,o.bind(r),n);return i(),l}function ll(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,_n=e=>e&&(e.disabled||e.disabled===""),io=e=>e&&(e.defer||e.defer===""),lo=e=>typeof SVGElement<"u"&&e instanceof SVGElement,co=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,is=(e,t)=>{const n=e&&e.to;return pe(n)?t?t(n):null:n},ul={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,u){const{mc:a,pc:f,pbc:p,o:{insert:m,querySelector:g,createText:_,createComment:E}}=u,C=_n(t.props);let{shapeFlag:T,children:N,dynamicChildren:x}=t;if(e==null){const U=t.el=_(""),G=t.anchor=_("");m(U,n,r),m(G,n,r);const H=(O,k)=>{T&16&&a(N,O,k,s,o,i,l,c)},j=()=>{const O=t.target=is(t.props,g),k=fl(O,t,_,m);O&&(i!=="svg"&&lo(O)?i="svg":i!=="mathml"&&co(O)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(O),C||(H(O,k),Qn(t,!1)))};C&&(H(n,G),Qn(t,!0)),io(t.props)?(t.el.__isMounted=!1,Oe(()=>{j(),delete t.el.__isMounted},o)):j()}else{if(io(t.props)&&e.el.__isMounted===!1){Oe(()=>{ul.process(e,t,n,r,s,o,i,l,c,u)},o);return}t.el=e.el,t.targetStart=e.targetStart;const U=t.anchor=e.anchor,G=t.target=e.target,H=t.targetAnchor=e.targetAnchor,j=_n(e.props),O=j?n:G,k=j?U:H;if(i==="svg"||lo(G)?i="svg":(i==="mathml"||co(G))&&(i="mathml"),x?(p(e.dynamicChildren,x,O,s,o,i,l),Vs(e,t,!0)):c||f(e,t,O,k,s,o,i,l,!1),C)j?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Kn(t,n,U,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const Y=t.target=is(t.props,g);Y&&Kn(t,Y,null,u,0)}else j&&Kn(t,G,H,u,1);Qn(t,C)}},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetStart:u,targetAnchor:a,target:f,props:p}=e;if(f&&(s(u),s(a)),o&&s(c),i&16){const m=o||!_n(p);for(let g=0;g{e.isMounted=!0}),El(()=>{e.isUnmounting=!0}),e}const $e=[Function,Array],dl={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:$e,onEnter:$e,onAfterEnter:$e,onEnterCancelled:$e,onBeforeLeave:$e,onLeave:$e,onAfterLeave:$e,onLeaveCancelled:$e,onBeforeAppear:$e,onAppear:$e,onAfterAppear:$e,onAppearCancelled:$e},hl=e=>{const t=e.subTree;return t.component?hl(t.component):t},Ia={name:"BaseTransition",props:dl,setup(e,{slots:t}){const n=qs(),r=Na();return()=>{const s=t.default&&gl(t.default(),!0);if(!s||!s.length)return;const o=pl(s),i=re(e),{mode:l}=i;if(r.isLeaving)return kr(o);const c=ao(o);if(!c)return kr(o);let u=ls(c,i,r,n,f=>u=f);c.type!==ve&&xn(c,u);let a=n.subTree&&ao(n.subTree);if(a&&a.type!==ve&&!Ut(a,c)&&hl(n).type!==ve){let f=ls(a,i,r,n);if(xn(a,f),l==="out-in"&&c.type!==ve)return r.isLeaving=!0,f.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete f.afterLeave,a=void 0},kr(o);l==="in-out"&&c.type!==ve?f.delayLeave=(p,m,g)=>{const _=ml(r,a);_[String(a.key)]=a,p[pt]=()=>{m(),p[pt]=void 0,delete u.delayedLeave,a=void 0},u.delayedLeave=()=>{g(),delete u.delayedLeave,a=void 0}}:a=void 0}else a&&(a=void 0);return o}}};function pl(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==ve){t=n;break}}return t}const La=Ia;function ml(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function ls(e,t,n,r,s){const{appear:o,mode:i,persisted:l=!1,onBeforeEnter:c,onEnter:u,onAfterEnter:a,onEnterCancelled:f,onBeforeLeave:p,onLeave:m,onAfterLeave:g,onLeaveCancelled:_,onBeforeAppear:E,onAppear:C,onAfterAppear:T,onAppearCancelled:N}=t,x=String(e.key),U=ml(n,e),G=(O,k)=>{O&&ze(O,r,9,k)},H=(O,k)=>{const Y=k[1];G(O,k),K(O)?O.every(L=>L.length<=1)&&Y():O.length<=1&&Y()},j={mode:i,persisted:l,beforeEnter(O){let k=c;if(!n.isMounted)if(o)k=E||c;else return;O[pt]&&O[pt](!0);const Y=U[x];Y&&Ut(e,Y)&&Y.el[pt]&&Y.el[pt](),G(k,[O])},enter(O){let k=u,Y=a,L=f;if(!n.isMounted)if(o)k=C||u,Y=T||a,L=N||f;else return;let Q=!1;const le=O[Wn]=_e=>{Q||(Q=!0,_e?G(L,[O]):G(Y,[O]),j.delayedLeave&&j.delayedLeave(),O[Wn]=void 0)};k?H(k,[O,le]):le()},leave(O,k){const Y=String(e.key);if(O[Wn]&&O[Wn](!0),n.isUnmounting)return k();G(p,[O]);let L=!1;const Q=O[pt]=le=>{L||(L=!0,k(),le?G(_,[O]):G(g,[O]),O[pt]=void 0,U[Y]===e&&delete U[Y])};U[Y]=e,m?H(m,[O,Q]):Q()},clone(O){const k=ls(O,t,n,r,s);return s&&s(k),k}};return j}function kr(e){if(vr(e))return e=It(e),e.children=null,e}function ao(e){if(!vr(e))return al(e.type)&&e.children?pl(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&J(n.default))return n.default()}}function xn(e,t){e.shapeFlag&6&&e.component?(e.transition=t,xn(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 gl(e,t=!1,n){let r=[],s=0;for(let o=0;o1)for(let o=0;oEn(g,t&&(K(t)?t[_]:t),n,r,s));return}if(tn(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&En(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?Or(r.component):r.el,i=s?null:o,{i:l,r:c}=e,u=t&&t.r,a=l.refs===ce?l.refs={}:l.refs,f=l.setupState,p=re(f),m=f===ce?Ai:g=>oe(p,g);if(u!=null&&u!==c){if(uo(t),pe(u))a[u]=null,m(u)&&(f[u]=null);else if(de(u)){u.value=null;const g=t;g.k&&(a[g.k]=null)}}if(J(c))Mn(c,l,12,[i,a]);else{const g=pe(c),_=de(c);if(g||_){const E=()=>{if(e.f){const C=g?m(c)?f[c]:a[c]:c.value;if(s)K(C)&&Cs(C,o);else if(K(C))C.includes(o)||C.push(o);else if(g)a[c]=[o],m(c)&&(f[c]=a[c]);else{const T=[o];c.value=T,e.k&&(a[e.k]=T)}}else g?(a[c]=i,m(c)&&(f[c]=i)):_&&(c.value=i,e.k&&(a[e.k]=i))};if(i){const C=()=>{E(),cr.delete(e)};C.id=-1,cr.set(e,C),Oe(C,n)}else uo(e),E()}}}function uo(e){const t=cr.get(e);t&&(t.flags|=8,cr.delete(e))}_r().requestIdleCallback;_r().cancelIdleCallback;const tn=e=>!!e.type.__asyncLoader,vr=e=>e.type.__isKeepAlive;function Da(e,t){bl(e,"a",t)}function Fa(e,t){bl(e,"da",t)}function bl(e,t,n=Pe){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Ar(t,r,n),n){let s=n.parent;for(;s&&s.parent;)vr(s.parent.vnode)&&Ma(r,t,n,s),s=s.parent}}function Ma(e,t,n,r){const s=Ar(t,e,r,!0);wl(()=>{Cs(r[t],s)},n)}function Ar(e,t,n=Pe,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{yt();const l=Bn(n),c=ze(t,n,e,i);return l(),bt(),c});return r?s.unshift(o):s.push(o),o}}const wt=e=>(t,n=Pe)=>{(!In||e==="sp")&&Ar(e,(...r)=>t(...r),n)},Ba=wt("bm"),_l=wt("m"),Ua=wt("bu"),ja=wt("u"),El=wt("bum"),wl=wt("um"),Ha=wt("sp"),ka=wt("rtg"),Va=wt("rtc");function $a(e,t=Pe){Ar("ec",e,t)}const qa=Symbol.for("v-ndc");function op(e,t,n,r){let s;const o=n,i=K(e);if(i||pe(e)){const l=i&&at(e);let c=!1,u=!1;l&&(c=!He(e),u=_t(e),e=Er(e)),s=new Array(e.length);for(let a=0,f=e.length;at(l,c,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let c=0,u=l.length;c0;return ur(),dr(De,null,[Ne("slot",n,r)],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),ur();const i=o&&Sl(o(n)),l=n.key||i&&i.key,c=dr(De,{key:(l&&!Et(l)?l:`_${t}`)+(!i&&r?"_fb":"")},i||[],i&&e._===1?64:-2);return c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),o&&o._c&&(o._d=!0),c}function Sl(e){return e.some(t=>Nn(t)?!(t.type===ve||t.type===De&&!Sl(t.children)):!0)?e:null}const cs=e=>e?kl(e)?Or(e):cs(e.parent):null,wn=Ee(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=>cs(e.parent),$root:e=>cs(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Al(e),$forceUpdate:e=>e.f||(e.f=()=>{Us(e.update)}),$nextTick:e=>e.n||(e.n=Bs.bind(e.proxy)),$watch:e=>xa.bind(e)}),Vr=(e,t)=>e!==ce&&!e.__isScriptSetup&&oe(e,t),Ka={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,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 r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(Vr(r,t))return i[t]=1,r[t];if(s!==ce&&oe(s,t))return i[t]=2,s[t];if(oe(o,t))return i[t]=3,o[t];if(n!==ce&&oe(n,t))return i[t]=4,n[t];as&&(i[t]=0)}}const u=wn[t];let a,f;if(u)return t==="$attrs"&&Se(e.attrs,"get",""),u(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==ce&&oe(n,t))return i[t]=4,n[t];if(f=c.config.globalProperties,oe(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return Vr(s,t)?(s[t]=n,!0):r!==ce&&oe(r,t)?(r[t]=n,!0):oe(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:o,type:i}},l){let c;return!!(n[l]||e!==ce&&l[0]!=="$"&&oe(e,l)||Vr(t,l)||oe(o,l)||oe(r,l)||oe(wn,l)||oe(s.config.globalProperties,l)||(c=i.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:oe(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function fo(e){return K(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let as=!0;function Wa(e){const t=Al(e),n=e.proxy,r=e.ctx;as=!1,t.beforeCreate&&ho(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:u,created:a,beforeMount:f,mounted:p,beforeUpdate:m,updated:g,activated:_,deactivated:E,beforeDestroy:C,beforeUnmount:T,destroyed:N,unmounted:x,render:U,renderTracked:G,renderTriggered:H,errorCaptured:j,serverPrefetch:O,expose:k,inheritAttrs:Y,components:L,directives:Q,filters:le}=t;if(u&&Ga(u,r,null),i)for(const z in i){const Z=i[z];J(Z)&&(r[z]=Z.bind(n))}if(s){const z=s.call(n,n);ae(z)&&(e.data=Fn(z))}if(as=!0,o)for(const z in o){const Z=o[z],ke=J(Z)?Z.bind(n,n):J(Z.get)?Z.get.bind(n,n):ct,Qe=!J(Z)&&J(Z.set)?Z.set.bind(n):ct,ye=Ue({get:ke,set:Qe});Object.defineProperty(r,z,{enumerable:!0,configurable:!0,get:()=>ye.value,set:me=>ye.value=me})}if(l)for(const z in l)vl(l[z],r,n,z);if(c){const z=J(c)?c.call(n):c;Reflect.ownKeys(z).forEach(Z=>{Xn(Z,z[Z])})}a&&ho(a,e,"c");function ee(z,Z){K(Z)?Z.forEach(ke=>z(ke.bind(n))):Z&&z(Z.bind(n))}if(ee(Ba,f),ee(_l,p),ee(Ua,m),ee(ja,g),ee(Da,_),ee(Fa,E),ee($a,j),ee(Va,G),ee(ka,H),ee(El,T),ee(wl,x),ee(Ha,O),K(k))if(k.length){const z=e.exposed||(e.exposed={});k.forEach(Z=>{Object.defineProperty(z,Z,{get:()=>n[Z],set:ke=>n[Z]=ke,enumerable:!0})})}else e.exposed||(e.exposed={});U&&e.render===ct&&(e.render=U),Y!=null&&(e.inheritAttrs=Y),L&&(e.components=L),Q&&(e.directives=Q),O&&yl(e)}function Ga(e,t,n=ct){K(e)&&(e=us(e));for(const r in e){const s=e[r];let o;ae(s)?"default"in s?o=qe(s.from||r,s.default,!0):o=qe(s.from||r):o=qe(s),de(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function ho(e,t,n){ze(K(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function vl(e,t,n,r){let s=r.includes(".")?ll(n,r):()=>n[r];if(pe(e)){const o=t[e];J(o)&&bn(s,o)}else if(J(e))bn(s,e.bind(n));else if(ae(e))if(K(e))e.forEach(o=>vl(o,t,n,r));else{const o=J(e.handler)?e.handler.bind(n):t[e.handler];J(o)&&bn(s,o,e)}}function Al(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>ar(c,u,i,!0)),ar(c,t,i)),ae(t)&&o.set(t,c),c}function ar(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&ar(e,o,n,!0),s&&s.forEach(i=>ar(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=za[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const za={data:po,props:mo,emits:mo,methods:pn,computed:pn,beforeCreate:Ce,created:Ce,beforeMount:Ce,mounted:Ce,beforeUpdate:Ce,updated:Ce,beforeDestroy:Ce,beforeUnmount:Ce,destroyed:Ce,unmounted:Ce,activated:Ce,deactivated:Ce,errorCaptured:Ce,serverPrefetch:Ce,components:pn,directives:pn,watch:Xa,provide:po,inject:Ja};function po(e,t){return t?e?function(){return Ee(J(e)?e.call(this,this):e,J(t)?t.call(this,this):t)}:t:e}function Ja(e,t){return pn(us(e),us(t))}function us(e){if(K(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Nt(t)}Modifiers`]||e[`${Wt(t)}Modifiers`];function eu(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||ce;let s=n;const o=t.startsWith("update:"),i=o&&Za(r,t.slice(7));i&&(i.trim&&(s=n.map(a=>pe(a)?a.trim():a)),i.number&&(s=n.map(Os)));let l,c=r[l=Mr(t)]||r[l=Mr(Nt(t))];!c&&o&&(c=r[l=Mr(Wt(t))]),c&&ze(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,ze(u,e,6,s)}}const tu=new WeakMap;function Cl(e,t,n=!1){const r=n?tu:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!J(e)){const c=u=>{const a=Cl(u,t,!0);a&&(l=!0,Ee(i,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(ae(e)&&r.set(e,null),null):(K(o)?o.forEach(c=>i[c]=null):Ee(i,o),ae(e)&&r.set(e,i),i)}function Rr(e,t){return!e||!mr(t)?!1:(t=t.slice(2).replace(/Once$/,""),oe(e,t[0].toLowerCase()+t.slice(1))||oe(e,Wt(t))||oe(e,t))}function go(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:a,props:f,data:p,setupState:m,ctx:g,inheritAttrs:_}=e,E=lr(e);let C,T;try{if(n.shapeFlag&4){const x=s||r,U=x;C=lt(u.call(U,x,a,f,m,p,g)),T=l}else{const x=t;C=lt(x.length>1?x(f,{attrs:l,slots:i,emit:c}):x(f,null)),T=t.props?l:nu(l)}}catch(x){Sn.length=0,Sr(x,e,1),C=Ne(ve)}let N=C;if(T&&_!==!1){const x=Object.keys(T),{shapeFlag:U}=N;x.length&&U&7&&(o&&x.some(Rs)&&(T=ru(T,o)),N=It(N,T,!1,!0))}return n.dirs&&(N=It(N,null,!1,!0),N.dirs=N.dirs?N.dirs.concat(n.dirs):n.dirs),n.transition&&xn(N,n.transition),C=N,lr(E),C}const nu=e=>{let t;for(const n in e)(n==="class"||n==="style"||mr(n))&&((t||(t={}))[n]=e[n]);return t},ru=(e,t)=>{const n={};for(const r in e)(!Rs(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function su(e,t,n){const{props:r,children:s,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 r?yo(r,i,u):!!i;if(c&8){const a=t.dynamicProps;for(let f=0;fObject.create(Ol),xl=e=>Object.getPrototypeOf(e)===Ol;function iu(e,t,n,r=!1){const s={},o=Tl();e.propsDefaults=Object.create(null),Pl(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:Qi(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function lu(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=re(s),[c]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const a=e.vnode.dynamicProps;for(let f=0;f{c=!0;const[p,m]=Nl(f,t,!0);Ee(i,p),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!c)return ae(e)&&r.set(e,Yt),Yt;if(K(o))for(let a=0;ae==="_"||e==="_ctx"||e==="$stable",ks=e=>K(e)?e.map(lt):[lt(e)],au=(e,t,n)=>{if(t._n)return t;const r=Ra((...s)=>ks(t(...s)),n);return r._c=!1,r},Il=(e,t,n)=>{const r=e._ctx;for(const s in e){if(Hs(s))continue;const o=e[s];if(J(o))t[s]=au(s,o,r);else if(o!=null){const i=ks(o);t[s]=()=>i}}},Ll=(e,t)=>{const n=ks(t);e.slots.default=()=>n},Dl=(e,t,n)=>{for(const r in t)(n||!Hs(r))&&(e[r]=t[r])},uu=(e,t,n)=>{const r=e.slots=Tl();if(e.vnode.shapeFlag&32){const s=t._;s?(Dl(r,t,n),n&&Pi(r,"_",s,!0)):Il(t,r)}else t&&Ll(e,t)},fu=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=ce;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:Dl(s,t,n):(o=!t.$stable,Il(t,s)),i=t}else t&&(Ll(e,t),i={default:1});if(o)for(const l in s)!Hs(l)&&i[l]==null&&delete s[l]},Oe=gu;function du(e){return hu(e)}function hu(e,t){const n=_r();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:a,parentNode:f,nextSibling:p,setScopeId:m=ct,insertStaticContent:g}=e,_=(d,h,y,w=null,A=null,S=null,D=void 0,I=null,P=!!h.dynamicChildren)=>{if(d===h)return;d&&!Ut(d,h)&&(w=v(d),me(d,A,S,!0),d=null),h.patchFlag===-2&&(P=!1,h.dynamicChildren=null);const{type:R,ref:q,shapeFlag:M}=h;switch(R){case Cr:E(d,h,y,w);break;case ve:C(d,h,y,w);break;case Yn:d==null&&T(h,y,w,D);break;case De:L(d,h,y,w,A,S,D,I,P);break;default:M&1?U(d,h,y,w,A,S,D,I,P):M&6?Q(d,h,y,w,A,S,D,I,P):(M&64||M&128)&&R.process(d,h,y,w,A,S,D,I,P,V)}q!=null&&A?En(q,d&&d.ref,S,h||d,!h):q==null&&d&&d.ref!=null&&En(d.ref,null,S,d,!0)},E=(d,h,y,w)=>{if(d==null)r(h.el=l(h.children),y,w);else{const A=h.el=d.el;h.children!==d.children&&u(A,h.children)}},C=(d,h,y,w)=>{d==null?r(h.el=c(h.children||""),y,w):h.el=d.el},T=(d,h,y,w)=>{[d.el,d.anchor]=g(d.children,h,y,w,d.el,d.anchor)},N=({el:d,anchor:h},y,w)=>{let A;for(;d&&d!==h;)A=p(d),r(d,y,w),d=A;r(h,y,w)},x=({el:d,anchor:h})=>{let y;for(;d&&d!==h;)y=p(d),s(d),d=y;s(h)},U=(d,h,y,w,A,S,D,I,P)=>{if(h.type==="svg"?D="svg":h.type==="math"&&(D="mathml"),d==null)G(h,y,w,A,S,D,I,P);else{const R=d.el&&d.el._isVueCE?d.el:null;try{R&&R._beginPatch(),O(d,h,A,S,D,I,P)}finally{R&&R._endPatch()}}},G=(d,h,y,w,A,S,D,I)=>{let P,R;const{props:q,shapeFlag:M,transition:$,dirs:W}=d;if(P=d.el=i(d.type,S,q&&q.is,q),M&8?a(P,d.children):M&16&&j(d.children,P,null,w,A,$r(d,S),D,I),W&&Lt(d,null,w,"created"),H(P,d,d.scopeId,D,w),q){for(const ue in q)ue!=="value"&&!mn(ue)&&o(P,ue,null,q[ue],S,w);"value"in q&&o(P,"value",null,q.value,S),(R=q.onVnodeBeforeMount)&&rt(R,w,d)}W&&Lt(d,null,w,"beforeMount");const ne=pu(A,$);ne&&$.beforeEnter(P),r(P,h,y),((R=q&&q.onVnodeMounted)||ne||W)&&Oe(()=>{R&&rt(R,w,d),ne&&$.enter(P),W&&Lt(d,null,w,"mounted")},A)},H=(d,h,y,w,A)=>{if(y&&m(d,y),w)for(let S=0;S{for(let R=P;R{const I=h.el=d.el;let{patchFlag:P,dynamicChildren:R,dirs:q}=h;P|=d.patchFlag&16;const M=d.props||ce,$=h.props||ce;let W;if(y&&Dt(y,!1),(W=$.onVnodeBeforeUpdate)&&rt(W,y,h,d),q&&Lt(h,d,y,"beforeUpdate"),y&&Dt(y,!0),(M.innerHTML&&$.innerHTML==null||M.textContent&&$.textContent==null)&&a(I,""),R?k(d.dynamicChildren,R,I,y,w,$r(h,A),S):D||Z(d,h,I,null,y,w,$r(h,A),S,!1),P>0){if(P&16)Y(I,M,$,y,A);else if(P&2&&M.class!==$.class&&o(I,"class",null,$.class,A),P&4&&o(I,"style",M.style,$.style,A),P&8){const ne=h.dynamicProps;for(let ue=0;ue{W&&rt(W,y,h,d),q&&Lt(h,d,y,"updated")},w)},k=(d,h,y,w,A,S,D)=>{for(let I=0;I{if(h!==y){if(h!==ce)for(const S in h)!mn(S)&&!(S in y)&&o(d,S,h[S],null,A,w);for(const S in y){if(mn(S))continue;const D=y[S],I=h[S];D!==I&&S!=="value"&&o(d,S,I,D,A,w)}"value"in y&&o(d,"value",h.value,y.value,A)}},L=(d,h,y,w,A,S,D,I,P)=>{const R=h.el=d?d.el:l(""),q=h.anchor=d?d.anchor:l("");let{patchFlag:M,dynamicChildren:$,slotScopeIds:W}=h;W&&(I=I?I.concat(W):W),d==null?(r(R,y,w),r(q,y,w),j(h.children||[],y,q,A,S,D,I,P)):M>0&&M&64&&$&&d.dynamicChildren&&d.dynamicChildren.length===$.length?(k(d.dynamicChildren,$,y,A,S,D,I),(h.key!=null||A&&h===A.subTree)&&Vs(d,h,!0)):Z(d,h,y,q,A,S,D,I,P)},Q=(d,h,y,w,A,S,D,I,P)=>{h.slotScopeIds=I,d==null?h.shapeFlag&512?A.ctx.activate(h,y,w,D,P):le(h,y,w,A,S,D,P):_e(d,h,P)},le=(d,h,y,w,A,S,D)=>{const I=d.component=Au(d,w,A);if(vr(d)&&(I.ctx.renderer=V),Ru(I,!1,D),I.asyncDep){if(A&&A.registerDep(I,ee,D),!d.el){const P=I.subTree=Ne(ve);C(null,P,h,y),d.placeholder=P.el}}else ee(I,d,h,y,A,S,D)},_e=(d,h,y)=>{const w=h.component=d.component;if(su(d,h,y))if(w.asyncDep&&!w.asyncResolved){z(w,h,y);return}else w.next=h,w.update();else h.el=d.el,w.vnode=h},ee=(d,h,y,w,A,S,D)=>{const I=()=>{if(d.isMounted){let{next:M,bu:$,u:W,parent:ne,vnode:ue}=d;{const tt=Fl(d);if(tt){M&&(M.el=ue.el,z(d,M,D)),tt.asyncDep.then(()=>{d.isUnmounted||I()});return}}let ie=M,Ie;Dt(d,!1),M?(M.el=ue.el,z(d,M,D)):M=ue,$&&Jn($),(Ie=M.props&&M.props.onVnodeBeforeUpdate)&&rt(Ie,ne,M,ue),Dt(d,!0);const Le=go(d),et=d.subTree;d.subTree=Le,_(et,Le,f(et.el),v(et),d,A,S),M.el=Le.el,ie===null&&ou(d,Le.el),W&&Oe(W,A),(Ie=M.props&&M.props.onVnodeUpdated)&&Oe(()=>rt(Ie,ne,M,ue),A)}else{let M;const{el:$,props:W}=h,{bm:ne,m:ue,parent:ie,root:Ie,type:Le}=d,et=tn(h);Dt(d,!1),ne&&Jn(ne),!et&&(M=W&&W.onVnodeBeforeMount)&&rt(M,ie,h),Dt(d,!0);{Ie.ce&&Ie.ce._def.shadowRoot!==!1&&Ie.ce._injectChildStyle(Le);const tt=d.subTree=go(d);_(null,tt,y,w,d,A,S),h.el=tt.el}if(ue&&Oe(ue,A),!et&&(M=W&&W.onVnodeMounted)){const tt=h;Oe(()=>rt(M,ie,tt),A)}(h.shapeFlag&256||ie&&tn(ie.vnode)&&ie.vnode.shapeFlag&256)&&d.a&&Oe(d.a,A),d.isMounted=!0,h=y=w=null}};d.scope.on();const P=d.effect=new Bi(I);d.scope.off();const R=d.update=P.run.bind(P),q=d.job=P.runIfDirty.bind(P);q.i=d,q.id=d.uid,P.scheduler=()=>Us(q),Dt(d,!0),R()},z=(d,h,y)=>{h.component=d;const w=d.vnode.props;d.vnode=h,d.next=null,lu(d,h.props,w,y),fu(d,h.children,y),yt(),oo(d),bt()},Z=(d,h,y,w,A,S,D,I,P=!1)=>{const R=d&&d.children,q=d?d.shapeFlag:0,M=h.children,{patchFlag:$,shapeFlag:W}=h;if($>0){if($&128){Qe(R,M,y,w,A,S,D,I,P);return}else if($&256){ke(R,M,y,w,A,S,D,I,P);return}}W&8?(q&16&&Ve(R,A,S),M!==R&&a(y,M)):q&16?W&16?Qe(R,M,y,w,A,S,D,I,P):Ve(R,A,S,!0):(q&8&&a(y,""),W&16&&j(M,y,w,A,S,D,I,P))},ke=(d,h,y,w,A,S,D,I,P)=>{d=d||Yt,h=h||Yt;const R=d.length,q=h.length,M=Math.min(R,q);let $;for($=0;$q?Ve(d,A,S,!0,!1,M):j(h,y,w,A,S,D,I,P,M)},Qe=(d,h,y,w,A,S,D,I,P)=>{let R=0;const q=h.length;let M=d.length-1,$=q-1;for(;R<=M&&R<=$;){const W=d[R],ne=h[R]=P?Ot(h[R]):lt(h[R]);if(Ut(W,ne))_(W,ne,y,null,A,S,D,I,P);else break;R++}for(;R<=M&&R<=$;){const W=d[M],ne=h[$]=P?Ot(h[$]):lt(h[$]);if(Ut(W,ne))_(W,ne,y,null,A,S,D,I,P);else break;M--,$--}if(R>M){if(R<=$){const W=$+1,ne=W$)for(;R<=M;)me(d[R],A,S,!0),R++;else{const W=R,ne=R,ue=new Map;for(R=ne;R<=$;R++){const Be=h[R]=P?Ot(h[R]):lt(h[R]);Be.key!=null&&ue.set(Be.key,R)}let ie,Ie=0;const Le=$-ne+1;let et=!1,tt=0;const an=new Array(Le);for(R=0;R=Le){me(Be,A,S,!0);continue}let nt;if(Be.key!=null)nt=ue.get(Be.key);else for(ie=ne;ie<=$;ie++)if(an[ie-ne]===0&&Ut(Be,h[ie])){nt=ie;break}nt===void 0?me(Be,A,S,!0):(an[nt-ne]=R+1,nt>=tt?tt=nt:et=!0,_(Be,h[nt],y,null,A,S,D,I,P),Ie++)}const Zs=et?mu(an):Yt;for(ie=Zs.length-1,R=Le-1;R>=0;R--){const Be=ne+R,nt=h[Be],eo=h[Be+1],to=Be+1{const{el:S,type:D,transition:I,children:P,shapeFlag:R}=d;if(R&6){ye(d.component.subTree,h,y,w);return}if(R&128){d.suspense.move(h,y,w);return}if(R&64){D.move(d,h,y,V);return}if(D===De){r(S,h,y);for(let M=0;MI.enter(S),A);else{const{leave:M,delayLeave:$,afterLeave:W}=I,ne=()=>{d.ctx.isUnmounted?s(S):r(S,h,y)},ue=()=>{S._isLeaving&&S[pt](!0),M(S,()=>{ne(),W&&W()})};$?$(S,ne,ue):ue()}else r(S,h,y)},me=(d,h,y,w=!1,A=!1)=>{const{type:S,props:D,ref:I,children:P,dynamicChildren:R,shapeFlag:q,patchFlag:M,dirs:$,cacheIndex:W}=d;if(M===-2&&(A=!1),I!=null&&(yt(),En(I,null,y,d,!0),bt()),W!=null&&(h.renderCache[W]=void 0),q&256){h.ctx.deactivate(d);return}const ne=q&1&&$,ue=!tn(d);let ie;if(ue&&(ie=D&&D.onVnodeBeforeUnmount)&&rt(ie,h,d),q&6)Ze(d.component,y,w);else{if(q&128){d.suspense.unmount(y,w);return}ne&&Lt(d,null,h,"beforeUnmount"),q&64?d.type.remove(d,h,y,V,w):R&&!R.hasOnce&&(S!==De||M>0&&M&64)?Ve(R,h,y,!1,!0):(S===De&&M&384||!A&&q&16)&&Ve(P,h,y),w&&Ye(d)}(ue&&(ie=D&&D.onVnodeUnmounted)||ne)&&Oe(()=>{ie&&rt(ie,h,d),ne&&Lt(d,null,h,"unmounted")},y)},Ye=d=>{const{type:h,el:y,anchor:w,transition:A}=d;if(h===De){Ke(y,w);return}if(h===Yn){x(d);return}const S=()=>{s(y),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(d.shapeFlag&1&&A&&!A.persisted){const{leave:D,delayLeave:I}=A,P=()=>D(y,S);I?I(d.el,S,P):P()}else S()},Ke=(d,h)=>{let y;for(;d!==h;)y=p(d),s(d),d=y;s(h)},Ze=(d,h,y)=>{const{bum:w,scope:A,job:S,subTree:D,um:I,m:P,a:R}=d;_o(P),_o(R),w&&Jn(w),A.stop(),S&&(S.flags|=8,me(D,d,h,y)),I&&Oe(I,h),Oe(()=>{d.isUnmounted=!0},h)},Ve=(d,h,y,w=!1,A=!1,S=0)=>{for(let D=S;D{if(d.shapeFlag&6)return v(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const h=p(d.anchor||d.el),y=h&&h[cl];return y?p(y):h};let B=!1;const F=(d,h,y)=>{let w;d==null?h._vnode&&(me(h._vnode,null,null,!0),w=h._vnode.component):_(h._vnode||null,d,h,null,null,null,y),h._vnode=d,B||(B=!0,oo(w),rl(),B=!1)},V={p:_,um:me,m:ye,r:Ye,mt:le,mc:j,pc:Z,pbc:k,n:v,o:e};return{render:F,hydrate:void 0,createApp:Ya(F)}}function $r({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 Dt({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function pu(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Vs(e,t,n=!1){const r=e.children,s=t.children;if(K(r)&&K(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Fl(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Fl(t)}function _o(e){if(e)for(let t=0;te.__isSuspense;function gu(e,t){t&&t.pendingBranch?K(e)?t.effects.push(...e):t.effects.push(e):Aa(e)}const De=Symbol.for("v-fgt"),Cr=Symbol.for("v-txt"),ve=Symbol.for("v-cmt"),Yn=Symbol.for("v-stc"),Sn=[];let je=null;function ur(e=!1){Sn.push(je=e?null:[])}function yu(){Sn.pop(),je=Sn[Sn.length-1]||null}let Pn=1;function fr(e,t=!1){Pn+=e,e<0&&je&&t&&(je.hasOnce=!0)}function Ul(e){return e.dynamicChildren=Pn>0?je||Yt:null,yu(),Pn>0&&je&&je.push(e),e}function lp(e,t,n,r,s,o){return Ul(Hl(e,t,n,r,s,o,!0))}function dr(e,t,n,r,s){return Ul(Ne(e,t,n,r,s,!0))}function Nn(e){return e?e.__v_isVNode===!0:!1}function Ut(e,t){return e.type===t.type&&e.key===t.key}const jl=({key:e})=>e??null,Zn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?pe(e)||de(e)||J(e)?{i:Re,r:e,k:t,f:!!n}:e:null);function Hl(e,t=null,n=null,r=0,s=null,o=e===De?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&jl(t),ref:t&&Zn(t),scopeId:ol,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:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Re};return l?($s(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=pe(n)?8:16),Pn>0&&!i&&je&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&je.push(c),c}const Ne=bu;function bu(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===qa)&&(e=ve),Nn(e)){const l=It(e,t,!0);return n&&$s(l,n),Pn>0&&!o&&je&&(l.shapeFlag&6?je[je.indexOf(e)]=l:je.push(l)),l.patchFlag=-2,l}if(xu(e)&&(e=e.__vccOpts),t){t=_u(t);let{class:l,style:c}=t;l&&!pe(l)&&(t.class=xs(l)),ae(c)&&(wr(c)&&!K(c)&&(c=Ee({},c)),t.style=Ts(c))}const i=pe(e)?1:Bl(e)?128:al(e)?64:ae(e)?4:J(e)?2:0;return Hl(e,t,n,r,s,i,o,!0)}function _u(e){return e?wr(e)||xl(e)?Ee({},e):e:null}function It(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?wu(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&jl(u),ref:t&&t.ref?n&&o?K(o)?o.concat(Zn(t)):[o,Zn(t)]:Zn(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!==De?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&&It(e.ssContent),ssFallback:e.ssFallback&&It(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&xn(a,c.clone(a)),a}function Eu(e=" ",t=0){return Ne(Cr,null,e,t)}function cp(e,t){const n=Ne(Yn,null,e);return n.staticCount=t,n}function ap(e="",t=!1){return t?(ur(),dr(ve,null,e)):Ne(ve,null,e)}function lt(e){return e==null||typeof e=="boolean"?Ne(ve):K(e)?Ne(De,null,e.slice()):Nn(e)?Ot(e):Ne(Cr,null,String(e))}function Ot(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:It(e)}function $s(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(K(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),$s(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!xl(t)?t._ctx=Re:s===3&&Re&&(Re.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else J(t)?(t={default:t,_ctx:Re},n=32):(t=String(t),r&64?(n=16,t=[Eu(t)]):n=8);e.children=t,e.shapeFlag|=n}function wu(...e){const t={};for(let n=0;nPe||Re;let hr,ds;{const e=_r(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};hr=t("__VUE_INSTANCE_SETTERS__",n=>Pe=n),ds=t("__VUE_SSR_SETTERS__",n=>In=n)}const Bn=e=>{const t=Pe;return hr(e),e.scope.on(),()=>{e.scope.off(),hr(t)}},Eo=()=>{Pe&&Pe.scope.off(),hr(null)};function kl(e){return e.vnode.shapeFlag&4}let In=!1;function Ru(e,t=!1,n=!1){t&&ds(t);const{props:r,children:s}=e.vnode,o=kl(e);iu(e,r,o,t),uu(e,s,n||t);const i=o?Cu(e,t):void 0;return t&&ds(!1),i}function Cu(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Ka);const{setup:r}=n;if(r){yt();const s=e.setupContext=r.length>1?Tu(e):null,o=Bn(e),i=Mn(r,e,0,[e.props,s]),l=Ci(i);if(bt(),o(),(l||e.sp)&&!tn(e)&&yl(e),l){if(i.then(Eo,Eo),t)return i.then(c=>{wo(e,c)}).catch(c=>{Sr(c,e,0)});e.asyncDep=i}else wo(e,i)}else Vl(e)}function wo(e,t,n){J(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ae(t)&&(e.setupState=Zi(t)),Vl(e)}function Vl(e,t,n){const r=e.type;e.render||(e.render=r.render||ct);{const s=Bn(e);yt();try{Wa(e)}finally{bt(),s()}}}const Ou={get(e,t){return Se(e,"get",""),e[t]}};function Tu(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Ou),slots:e.slots,emit:e.emit,expose:t}}function Or(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Zi(Ms(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in wn)return wn[n](e)},has(t,n){return n in t||n in wn}})):e.proxy}function xu(e){return J(e)&&"__vccOpts"in e}const Ue=(e,t)=>_a(e,t,In);function Ks(e,t,n){try{fr(-1);const r=arguments.length;return r===2?ae(t)&&!K(t)?Nn(t)?Ne(e,null,[t]):Ne(e,t):Ne(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Nn(n)&&(n=[n]),Ne(e,t,n))}finally{fr(1)}}const Pu="3.5.26";let hs;const So=typeof window<"u"&&window.trustedTypes;if(So)try{hs=So.createPolicy("vue",{createHTML:e=>e})}catch{}const $l=hs?e=>hs.createHTML(e):e=>e,Nu="http://www.w3.org/2000/svg",Iu="http://www.w3.org/1998/Math/MathML",ht=typeof document<"u"?document:null,vo=ht&&ht.createElement("template"),Lu={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?ht.createElementNS(Nu,e):t==="mathml"?ht.createElementNS(Iu,e):n?ht.createElement(e,{is:n}):ht.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>ht.createTextNode(e),createComment:e=>ht.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ht.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{vo.innerHTML=$l(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=vo.content;if(r==="svg"||r==="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]}},St="transition",fn="animation",Ln=Symbol("_vtc"),ql={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Du=Ee({},dl,ql),Fu=e=>(e.displayName="Transition",e.props=Du,e),up=Fu((e,{slots:t})=>Ks(La,Mu(e),t)),Ft=(e,t=[])=>{K(e)?e.forEach(n=>n(...t)):e&&e(...t)},Ao=e=>e?K(e)?e.some(t=>t.length>1):e.length>1:!1;function Mu(e){const t={};for(const L in e)L in ql||(t[L]=e[L]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=o,appearActiveClass:u=i,appearToClass:a=l,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,g=Bu(s),_=g&&g[0],E=g&&g[1],{onBeforeEnter:C,onEnter:T,onEnterCancelled:N,onLeave:x,onLeaveCancelled:U,onBeforeAppear:G=C,onAppear:H=T,onAppearCancelled:j=N}=t,O=(L,Q,le,_e)=>{L._enterCancelled=_e,Mt(L,Q?a:l),Mt(L,Q?u:i),le&&le()},k=(L,Q)=>{L._isLeaving=!1,Mt(L,f),Mt(L,m),Mt(L,p),Q&&Q()},Y=L=>(Q,le)=>{const _e=L?H:T,ee=()=>O(Q,L,le);Ft(_e,[Q,ee]),Ro(()=>{Mt(Q,L?c:o),ft(Q,L?a:l),Ao(_e)||Co(Q,r,_,ee)})};return Ee(t,{onBeforeEnter(L){Ft(C,[L]),ft(L,o),ft(L,i)},onBeforeAppear(L){Ft(G,[L]),ft(L,c),ft(L,u)},onEnter:Y(!1),onAppear:Y(!0),onLeave(L,Q){L._isLeaving=!0;const le=()=>k(L,Q);ft(L,f),L._enterCancelled?(ft(L,p),xo(L)):(xo(L),ft(L,p)),Ro(()=>{L._isLeaving&&(Mt(L,f),ft(L,m),Ao(x)||Co(L,r,E,le))}),Ft(x,[L,le])},onEnterCancelled(L){O(L,!1,void 0,!0),Ft(N,[L])},onAppearCancelled(L){O(L,!0,void 0,!0),Ft(j,[L])},onLeaveCancelled(L){k(L),Ft(U,[L])}})}function Bu(e){if(e==null)return null;if(ae(e))return[qr(e.enter),qr(e.leave)];{const t=qr(e);return[t,t]}}function qr(e){return Bc(e)}function ft(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Ln]||(e[Ln]=new Set)).add(t)}function Mt(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[Ln];n&&(n.delete(t),n.size||(e[Ln]=void 0))}function Ro(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Uu=0;function Co(e,t,n,r){const s=e._endId=++Uu,o=()=>{s===e._endId&&r()};if(n!=null)return setTimeout(o,n);const{type:i,timeout:l,propCount:c}=ju(e,t);if(!i)return r();const u=i+"end";let a=0;const f=()=>{e.removeEventListener(u,p),o()},p=m=>{m.target===e&&++a>=c&&f()};setTimeout(()=>{a(n[g]||"").split(", "),s=r(`${St}Delay`),o=r(`${St}Duration`),i=Oo(s,o),l=r(`${fn}Delay`),c=r(`${fn}Duration`),u=Oo(l,c);let a=null,f=0,p=0;t===St?i>0&&(a=St,f=i,p=o.length):t===fn?u>0&&(a=fn,f=u,p=c.length):(f=Math.max(i,u),a=f>0?i>u?St:fn:null,p=a?a===St?o.length:c.length:0);const m=a===St&&/\b(?:transform|all)(?:,|$)/.test(r(`${St}Property`).toString());return{type:a,timeout:f,propCount:p,hasTransform:m}}function Oo(e,t){for(;e.lengthTo(n)+To(e[r])))}function To(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function xo(e){return(e?e.ownerDocument:document).body.offsetHeight}function Hu(e,t,n){const r=e[Ln];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Po=Symbol("_vod"),ku=Symbol("_vsh"),Vu=Symbol(""),$u=/(?:^|;)\s*display\s*:/;function qu(e,t,n){const r=e.style,s=pe(n);let o=!1;if(n&&!s){if(t)if(pe(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&er(r,l,"")}else for(const i in t)n[i]==null&&er(r,i,"");for(const i in n)i==="display"&&(o=!0),er(r,i,n[i])}else if(s){if(t!==n){const i=r[Vu];i&&(n+=";"+i),r.cssText=n,o=$u.test(n)}}else t&&e.removeAttribute("style");Po in e&&(e[Po]=o?r.display:"",e[ku]&&(r.display="none"))}const No=/\s*!important$/;function er(e,t,n){if(K(n))n.forEach(r=>er(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Ku(e,t);No.test(n)?e.setProperty(Wt(r),n.replace(No,""),"important"):e[r]=n}}const Io=["Webkit","Moz","ms"],Kr={};function Ku(e,t){const n=Kr[t];if(n)return n;let r=Nt(t);if(r!=="filter"&&r in e)return Kr[t]=r;r=xi(r);for(let s=0;sWr||(Ju.then(()=>Wr=0),Wr=Date.now());function Qu(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;ze(Yu(r,n.value),t,5,[r])};return n.value=e,n.attached=Xu(),n}function Yu(e,t){if(K(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const Uo=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Zu=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?Hu(e,r,i):t==="style"?qu(e,n,r):mr(t)?Rs(t)||Gu(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):ef(e,t,r,i))?(Fo(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Do(e,t,r,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!pe(r))?Fo(e,Nt(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Do(e,t,r,i))};function ef(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&Uo(t)&&J(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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return Uo(t)&&pe(n)?!1:t in e}const jo=e=>{const t=e.props["onUpdate:modelValue"]||!1;return K(t)?n=>Jn(t,n):t};function tf(e){e.target.composing=!0}function Ho(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Gr=Symbol("_assign");function ko(e,t,n){return t&&(e=e.trim()),n&&(e=Os(e)),e}const fp={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Gr]=jo(s);const o=r||s.props&&s.props.type==="number";Xt(e,t?"change":"input",i=>{i.target.composing||e[Gr](ko(e.value,n,o))}),(n||o)&&Xt(e,"change",()=>{e.value=ko(e.value,n,o)}),t||(Xt(e,"compositionstart",tf),Xt(e,"compositionend",Ho),Xt(e,"change",Ho))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Gr]=jo(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?Os(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},nf=["ctrl","shift","alt","meta"],rf={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>nf.some(n=>e[`${n}Key`]&&!t.includes(n))},dp=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const t=of().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=af(r);if(!s)return;const o=t._component;!J(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,cf(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t});function cf(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function af(e){return pe(e)?document.querySelector(e):e}let Kl;const Tr=e=>Kl=e,Wl=Symbol();function ps(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var vn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(vn||(vn={}));function uf(){const e=Fi(!0),t=e.run(()=>Vt({}));let n=[],r=[];const s=Ms({install(o){Tr(s),s._a=o,o.provide(Wl,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const Gl=()=>{};function $o(e,t,n,r=Gl){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&Mi()&&Kc(s),s}function zt(e,...t){e.forEach(n=>{n(...t)})}const ff=e=>e(),qo=Symbol(),zr=Symbol();function ms(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];ps(s)&&ps(r)&&e.hasOwnProperty(n)&&!de(r)&&!at(r)?e[n]=ms(s,r):e[n]=r}return e}const df=Symbol();function hf(e){return!ps(e)||!Object.prototype.hasOwnProperty.call(e,df)}const{assign:At}=Object;function pf(e){return!!(de(e)&&e.effect)}function mf(e,t,n,r){const{state:s,actions:o,getters:i}=t,l=n.state.value[e];let c;function u(){l||(n.state.value[e]=s?s():{});const a=pa(n.state.value[e]);return At(a,o,Object.keys(i||{}).reduce((f,p)=>(f[p]=Ms(Ue(()=>{Tr(n);const m=n._s.get(e);return i[p].call(m,m)})),f),{}))}return c=zl(e,u,t,n,r,!0),c}function zl(e,t,n={},r,s,o){let i;const l=At({actions:{}},n),c={deep:!0};let u,a,f=new Set,p=new Set,m;const g=r.state.value[e];!o&&!g&&(r.state.value[e]={}),Vt({});let _;function E(j){let O;u=a=!1,typeof j=="function"?(j(r.state.value[e]),O={type:vn.patchFunction,storeId:e,events:m}):(ms(r.state.value[e],j),O={type:vn.patchObject,payload:j,storeId:e,events:m});const k=_=Symbol();Bs().then(()=>{_===k&&(u=!0)}),a=!0,zt(f,O,r.state.value[e])}const C=o?function(){const{state:O}=n,k=O?O():{};this.$patch(Y=>{At(Y,k)})}:Gl;function T(){i.stop(),f.clear(),p.clear(),r._s.delete(e)}const N=(j,O="")=>{if(qo in j)return j[zr]=O,j;const k=function(){Tr(r);const Y=Array.from(arguments),L=new Set,Q=new Set;function le(z){L.add(z)}function _e(z){Q.add(z)}zt(p,{args:Y,name:k[zr],store:U,after:le,onError:_e});let ee;try{ee=j.apply(this&&this.$id===e?this:U,Y)}catch(z){throw zt(Q,z),z}return ee instanceof Promise?ee.then(z=>(zt(L,z),z)).catch(z=>(zt(Q,z),Promise.reject(z))):(zt(L,ee),ee)};return k[qo]=!0,k[zr]=O,k},x={_p:r,$id:e,$onAction:$o.bind(null,p),$patch:E,$reset:C,$subscribe(j,O={}){const k=$o(f,j,O.detached,()=>Y()),Y=i.run(()=>bn(()=>r.state.value[e],L=>{(O.flush==="sync"?a:u)&&j({storeId:e,type:vn.direct,events:m},L)},At({},c,O)));return k},$dispose:T},U=Fn(x);r._s.set(e,U);const H=(r._a&&r._a.runWithContext||ff)(()=>r._e.run(()=>(i=Fi()).run(()=>t({action:N}))));for(const j in H){const O=H[j];if(de(O)&&!pf(O)||at(O))o||(g&&hf(O)&&(de(O)?O.value=g[j]:ms(O,g[j])),r.state.value[e][j]=O);else if(typeof O=="function"){const k=N(O,j);H[j]=k,l.actions[j]=O}}return At(U,H),At(re(U),H),Object.defineProperty(U,"$state",{get:()=>r.state.value[e],set:j=>{E(O=>{At(O,j)})}}),r._p.forEach(j=>{At(U,i.run(()=>j({store:U,app:r._a,pinia:r,options:l})))}),g&&o&&n.hydrate&&n.hydrate(U.$state,g),u=!0,a=!0,U}function gf(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,l){const c=Ca();return i=i||(c?qe(Wl,null):null),i&&Tr(i),i=Kl,i._s.has(e)||(s?zl(e,t,r,i):mf(e,r,i)),i._s.get(e)}return o.$id=e,o}function hp(e){const t=re(e),n={};for(const r in t){const s=t[r];s.effect?n[r]=Ue({get:()=>e[r],set(o){e[r]=o}}):(de(s)||at(s))&&(n[r]=ya(e,r))}return n}const yf="modulepreload",bf=function(e){return"/"+e},Ko={},st=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let c=function(u){return Promise.all(u.map(a=>Promise.resolve(a).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=c(n.map(u=>{if(u=bf(u),u in Ko)return;Ko[u]=!0;const a=u.endsWith(".css"),f=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const p=document.createElement("link");if(p.rel=a?"stylesheet":yf,a||(p.as="script"),p.crossOrigin="",p.href=u,l&&p.setAttribute("nonce",l),document.head.appendChild(p),a)return new Promise((m,g)=>{p.addEventListener("load",m),p.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})};const Qt=typeof document<"u";function Jl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function _f(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Jl(e.default)}const se=Object.assign;function Jr(e,t){const n={};for(const r in t){const s=t[r];n[r]=Je(s)?s.map(e):e(s)}return n}const An=()=>{},Je=Array.isArray;function Wo(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const Xl=/#/g,Ef=/&/g,wf=/\//g,Sf=/=/g,vf=/\?/g,Ql=/\+/g,Af=/%5B/g,Rf=/%5D/g,Yl=/%5E/g,Cf=/%60/g,Zl=/%7B/g,Of=/%7C/g,ec=/%7D/g,Tf=/%20/g;function Ws(e){return e==null?"":encodeURI(""+e).replace(Of,"|").replace(Af,"[").replace(Rf,"]")}function xf(e){return Ws(e).replace(Zl,"{").replace(ec,"}").replace(Yl,"^")}function gs(e){return Ws(e).replace(Ql,"%2B").replace(Tf,"+").replace(Xl,"%23").replace(Ef,"%26").replace(Cf,"`").replace(Zl,"{").replace(ec,"}").replace(Yl,"^")}function Pf(e){return gs(e).replace(Sf,"%3D")}function Nf(e){return Ws(e).replace(Xl,"%23").replace(vf,"%3F")}function If(e){return Nf(e).replace(wf,"%2F")}function Dn(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Lf=/\/$/,Df=e=>e.replace(Lf,"");function Xr(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return c=l>=0&&c>l?-1:c,c>=0&&(r=t.slice(0,c),o=t.slice(c,l>0?l:t.length),s=e(o.slice(1))),l>=0&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=Uf(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:Dn(i)}}function Ff(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Go(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Mf(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&rn(t.matched[r],n.matched[s])&&tc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function rn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function tc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!Bf(e[n],t[n]))return!1;return!0}function Bf(e,t){return Je(e)?zo(e,t):Je(t)?zo(t,e):e?.valueOf()===t?.valueOf()}function zo(e,t){return Je(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function Uf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const vt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let ys=(function(e){return e.pop="pop",e.push="push",e})({}),Qr=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function jf(e){if(!e)if(Qt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Df(e)}const Hf=/^[^#]+#/;function kf(e,t){return e.replace(Hf,"#")+t}function Vf(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const xr=()=>({left:window.scrollX,top:window.scrollY});function $f(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=Vf(s,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 Jo(e,t){return(history.state?history.state.position-t:-1)+e}const bs=new Map;function qf(e,t){bs.set(e,t)}function Kf(e){const t=bs.get(e);return bs.delete(e),t}function Wf(e){return typeof e=="string"||e&&typeof e=="object"}function nc(e){return typeof e=="string"||typeof e=="symbol"}let he=(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 rc=Symbol("");he.MATCHER_NOT_FOUND+"",he.NAVIGATION_GUARD_REDIRECT+"",he.NAVIGATION_ABORTED+"",he.NAVIGATION_CANCELLED+"",he.NAVIGATION_DUPLICATED+"";function sn(e,t){return se(new Error,{type:e,[rc]:!0},t)}function dt(e,t){return e instanceof Error&&rc in e&&(t==null||!!(e.type&t))}const Gf=["params","query","hash"];function zf(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of Gf)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function Jf(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&gs(s)):[r&&gs(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function Xf(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=Je(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const Qf=Symbol(""),Qo=Symbol(""),Pr=Symbol(""),Gs=Symbol(""),_s=Symbol("");function dn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Tt(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,c)=>{const u=p=>{p===!1?c(sn(he.NAVIGATION_ABORTED,{from:n,to:t})):p instanceof Error?c(p):Wf(p)?c(sn(he.NAVIGATION_GUARD_REDIRECT,{from:t,to:p})):(i&&r.enterCallbacks[s]===i&&typeof p=="function"&&i.push(p),l())},a=o(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(a);e.length<3&&(f=f.then(u)),f.catch(p=>c(p))})}function Yr(e,t,n,r,s=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(Jl(c)){const u=(c.__vccOpts||c)[t];u&&o.push(Tt(u,n,r,i,l,s))}else{let u=c();o.push(()=>u.then(a=>{if(!a)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=_f(a)?a.default:a;i.mods[l]=a,i.components[l]=f;const p=(f.__vccOpts||f)[t];return p&&Tt(p,n,r,i,l,s)()}))}}return o}function Yf(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;irn(u,l))?r.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(u=>rn(u,c))||s.push(c))}return[n,r,s]}let Zf=()=>location.protocol+"//"+location.host;function sc(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(i);return l[0]!=="/"&&(l="/"+l),Go(l,"")}return Go(n,e)+r+s}function ed(e,t,n,r){let s=[],o=[],i=null;const l=({state:p})=>{const m=sc(e,location),g=n.value,_=t.value;let E=0;if(p){if(n.value=m,t.value=p,i&&i===g){i=null;return}E=_?p.position-_.position:0}else r(m);s.forEach(C=>{C(n.value,g,{delta:E,type:ys.pop,direction:E?E>0?Qr.forward:Qr.back:Qr.unknown})})};function c(){i=n.value}function u(p){s.push(p);const m=()=>{const g=s.indexOf(p);g>-1&&s.splice(g,1)};return o.push(m),m}function a(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(se({},p.state,{scroll:xr()}),"")}}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 Yo(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?xr():null}}function td(e){const{history:t,location:n}=window,r={value:sc(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.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:Zf()+e+c;try{t[a?"replaceState":"pushState"](u,"",p),s.value=u}catch(m){console.error(m),n[a?"replace":"assign"](p)}}function i(c,u){o(c,se({},t.state,Yo(s.value.back,c,s.value.forward,!0),u,{position:s.value.position}),!0),r.value=c}function l(c,u){const a=se({},s.value,t.state,{forward:c,scroll:xr()});o(a.current,a,!0),o(c,se({},Yo(r.value,c,null),{position:a.position+1},u),!1),r.value=c}return{location:r,state:s,push:l,replace:i}}function nd(e){e=jf(e);const t=td(e),n=ed(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=se({location:"",base:e,go:r,createHref:kf.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function rd(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),nd(e)}let jt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var be=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e})(be||{});const sd={type:jt.Static,value:""},od=/[a-zA-Z0-9_]/;function id(e){if(!e)return[[]];if(e==="/")return[[sd]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${u}": ${m}`)}let n=be.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,c,u="",a="";function f(){u&&(n===be.Static?o.push({type:jt.Static,value:u}):n===be.Param||n===be.ParamRegExp||n===be.ParamRegExpEnd?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:jt.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]===Te.Static+Te.Segment?1:-1:0}function oc(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const fd={strict:!1,end:!0,sensitive:!1};function dd(e,t,n){const r=ad(id(e.path),n),s=se(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function hd(e,t){const n=[],r=new Map;t=Wo(fd,t);function s(f){return r.get(f)}function o(f,p,m){const g=!m,_=ni(f);_.aliasOf=m&&m.record;const E=Wo(t,f),C=[_];if("alias"in f){const x=typeof f.alias=="string"?[f.alias]:f.alias;for(const U of x)C.push(ni(se({},_,{components:m?m.record.components:_.components,path:U,aliasOf:m?m.record:_})))}let T,N;for(const x of C){const{path:U}=x;if(p&&U[0]!=="/"){const G=p.record.path,H=G[G.length-1]==="/"?"":"/";x.path=p.record.path+(U&&H+U)}if(T=dd(x,p,E),m?m.alias.push(T):(N=N||T,N!==T&&N.alias.push(T),g&&f.name&&!ri(T)&&i(f.name)),ic(T)&&c(T),_.children){const G=_.children;for(let H=0;H{i(N)}:An}function i(f){if(nc(f)){const p=r.get(f);p&&(r.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&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function c(f){const p=gd(f,n);n.splice(p,0,f),f.record.name&&!ri(f)&&r.set(f.record.name,f)}function u(f,p){let m,g={},_,E;if("name"in f&&f.name){if(m=r.get(f.name),!m)throw sn(he.MATCHER_NOT_FOUND,{location:f});E=m.record.name,g=se(ti(p.params,m.keys.filter(N=>!N.optional).concat(m.parent?m.parent.keys.filter(N=>N.optional):[]).map(N=>N.name)),f.params&&ti(f.params,m.keys.map(N=>N.name))),_=m.stringify(g)}else if(f.path!=null)_=f.path,m=n.find(N=>N.re.test(_)),m&&(g=m.parse(_),E=m.record.name);else{if(m=p.name?r.get(p.name):n.find(N=>N.re.test(p.path)),!m)throw sn(he.MATCHER_NOT_FOUND,{location:f,currentLocation:p});E=m.record.name,g=se({},p.params,f.params),_=m.stringify(g)}const C=[];let T=m;for(;T;)C.unshift(T.record),T=T.parent;return{name:E,path:_,params:g,matched:C,meta:md(C)}}e.forEach(f=>o(f));function a(){n.length=0,r.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:a,getRoutes:l,getRecordMatcher:s}}function ti(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function ni(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:pd(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 pd(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function ri(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function md(e){return e.reduce((t,n)=>se(t,n.meta),{})}function gd(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;oc(e,t[o])<0?r=o:n=o+1}const s=yd(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function yd(e){let t=e;for(;t=t.parent;)if(ic(t)&&oc(e,t)===0)return t}function ic({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function si(e){const t=qe(Pr),n=qe(Gs),r=Ue(()=>{const c=Pt(e.to);return t.resolve(c)}),s=Ue(()=>{const{matched:c}=r.value,{length:u}=c,a=c[u-1],f=n.matched;if(!a||!f.length)return-1;const p=f.findIndex(rn.bind(null,a));if(p>-1)return p;const m=oi(c[u-2]);return u>1&&oi(a)===m&&f[f.length-1].path!==m?f.findIndex(rn.bind(null,c[u-2])):p}),o=Ue(()=>s.value>-1&&Sd(n.params,r.value.params)),i=Ue(()=>s.value>-1&&s.value===n.matched.length-1&&tc(n.params,r.value.params));function l(c={}){if(wd(c)){const u=t[Pt(e.replace)?"replace":"push"](Pt(e.to)).catch(An);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Ue(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function bd(e){return e.length===1?e[0]:e}const _d=js({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:si,setup(e,{slots:t}){const n=Fn(si(e)),{options:r}=qe(Pr),s=Ue(()=>({[ii(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[ii(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&bd(t.default(n));return e.custom?o:Ks("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),Ed=_d;function wd(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 Sd(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!Je(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function oi(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const ii=(e,t,n)=>e??t??n,vd=js({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=qe(_s),s=Ue(()=>e.route||r.value),o=qe(Qo,0),i=Ue(()=>{let u=Pt(o);const{matched:a}=s.value;let f;for(;(f=a[u])&&!f.components;)u++;return u}),l=Ue(()=>s.value.matched[i.value]);Xn(Qo,Ue(()=>i.value+1)),Xn(Qf,l),Xn(_s,s);const c=Vt();return bn(()=>[c.value,l.value,e.name],([u,a,f],[p,m,g])=>{a&&(a.instances[f]=u,m&&m!==a&&u&&u===p&&(a.leaveGuards.size||(a.leaveGuards=m.leaveGuards),a.updateGuards.size||(a.updateGuards=m.updateGuards))),u&&a&&(!m||!rn(a,m)||!p)&&(a.enterCallbacks[f]||[]).forEach(_=>_(u))},{flush:"post"}),()=>{const u=s.value,a=e.name,f=l.value,p=f&&f.components[a];if(!p)return li(n.default,{Component:p,route:u});const m=f.props[a],g=m?m===!0?u.params:typeof m=="function"?m(u):m:null,E=Ks(p,se({},g,t,{onVnodeUnmounted:C=>{C.component.isUnmounted&&(f.instances[a]=null)},ref:c}));return li(n.default,{Component:E,route:u})||E}}});function li(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const lc=vd;function Ad(e){const t=hd(e.routes,e),n=e.parseQuery||Jf,r=e.stringifyQuery||Xo,s=e.history,o=dn(),i=dn(),l=dn(),c=fa(vt);let u=vt;Qt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const a=Jr.bind(null,v=>""+v),f=Jr.bind(null,If),p=Jr.bind(null,Dn);function m(v,B){let F,V;return nc(v)?(F=t.getRecordMatcher(v),V=B):V=v,t.addRoute(V,F)}function g(v){const B=t.getRecordMatcher(v);B&&t.removeRoute(B)}function _(){return t.getRoutes().map(v=>v.record)}function E(v){return!!t.getRecordMatcher(v)}function C(v,B){if(B=se({},B||c.value),typeof v=="string"){const y=Xr(n,v,B.path),w=t.resolve({path:y.path},B),A=s.createHref(y.fullPath);return se(y,w,{params:p(w.params),hash:Dn(y.hash),redirectedFrom:void 0,href:A})}let F;if(v.path!=null)F=se({},v,{path:Xr(n,v.path,B.path).path});else{const y=se({},v.params);for(const w in y)y[w]==null&&delete y[w];F=se({},v,{params:f(y)}),B.params=f(B.params)}const V=t.resolve(F,B),te=v.hash||"";V.params=a(p(V.params));const d=Ff(r,se({},v,{hash:xf(te),path:V.path})),h=s.createHref(d);return se({fullPath:d,hash:te,query:r===Xo?Xf(v.query):v.query||{}},V,{redirectedFrom:void 0,href:h})}function T(v){return typeof v=="string"?Xr(n,v,c.value.path):se({},v)}function N(v,B){if(u!==v)return sn(he.NAVIGATION_CANCELLED,{from:B,to:v})}function x(v){return H(v)}function U(v){return x(se(T(v),{replace:!0}))}function G(v,B){const F=v.matched[v.matched.length-1];if(F&&F.redirect){const{redirect:V}=F;let te=typeof V=="function"?V(v,B):V;return typeof te=="string"&&(te=te.includes("?")||te.includes("#")?te=T(te):{path:te},te.params={}),se({query:v.query,hash:v.hash,params:te.path!=null?{}:v.params},te)}}function H(v,B){const F=u=C(v),V=c.value,te=v.state,d=v.force,h=v.replace===!0,y=G(F,V);if(y)return H(se(T(y),{state:typeof y=="object"?se({},te,y.state):te,force:d,replace:h}),B||F);const w=F;w.redirectedFrom=B;let A;return!d&&Mf(r,V,F)&&(A=sn(he.NAVIGATION_DUPLICATED,{to:w,from:V}),ye(V,V,!0,!1)),(A?Promise.resolve(A):k(w,V)).catch(S=>dt(S)?dt(S,he.NAVIGATION_GUARD_REDIRECT)?S:Qe(S):Z(S,w,V)).then(S=>{if(S){if(dt(S,he.NAVIGATION_GUARD_REDIRECT))return H(se({replace:h},T(S.to),{state:typeof S.to=="object"?se({},te,S.to.state):te,force:d}),B||w)}else S=L(w,V,!0,h,te);return Y(w,V,S),S})}function j(v,B){const F=N(v,B);return F?Promise.reject(F):Promise.resolve()}function O(v){const B=Ke.values().next().value;return B&&typeof B.runWithContext=="function"?B.runWithContext(v):v()}function k(v,B){let F;const[V,te,d]=Yf(v,B);F=Yr(V.reverse(),"beforeRouteLeave",v,B);for(const y of V)y.leaveGuards.forEach(w=>{F.push(Tt(w,v,B))});const h=j.bind(null,v,B);return F.push(h),Ve(F).then(()=>{F=[];for(const y of o.list())F.push(Tt(y,v,B));return F.push(h),Ve(F)}).then(()=>{F=Yr(te,"beforeRouteUpdate",v,B);for(const y of te)y.updateGuards.forEach(w=>{F.push(Tt(w,v,B))});return F.push(h),Ve(F)}).then(()=>{F=[];for(const y of d)if(y.beforeEnter)if(Je(y.beforeEnter))for(const w of y.beforeEnter)F.push(Tt(w,v,B));else F.push(Tt(y.beforeEnter,v,B));return F.push(h),Ve(F)}).then(()=>(v.matched.forEach(y=>y.enterCallbacks={}),F=Yr(d,"beforeRouteEnter",v,B,O),F.push(h),Ve(F))).then(()=>{F=[];for(const y of i.list())F.push(Tt(y,v,B));return F.push(h),Ve(F)}).catch(y=>dt(y,he.NAVIGATION_CANCELLED)?y:Promise.reject(y))}function Y(v,B,F){l.list().forEach(V=>O(()=>V(v,B,F)))}function L(v,B,F,V,te){const d=N(v,B);if(d)return d;const h=B===vt,y=Qt?history.state:{};F&&(V||h?s.replace(v.fullPath,se({scroll:h&&y&&y.scroll},te)):s.push(v.fullPath,te)),c.value=v,ye(v,B,F,h),Qe()}let Q;function le(){Q||(Q=s.listen((v,B,F)=>{if(!Ze.listening)return;const V=C(v),te=G(V,Ze.currentRoute.value);if(te){H(se(te,{replace:!0,force:!0}),V).catch(An);return}u=V;const d=c.value;Qt&&qf(Jo(d.fullPath,F.delta),xr()),k(V,d).catch(h=>dt(h,he.NAVIGATION_ABORTED|he.NAVIGATION_CANCELLED)?h:dt(h,he.NAVIGATION_GUARD_REDIRECT)?(H(se(T(h.to),{force:!0}),V).then(y=>{dt(y,he.NAVIGATION_ABORTED|he.NAVIGATION_DUPLICATED)&&!F.delta&&F.type===ys.pop&&s.go(-1,!1)}).catch(An),Promise.reject()):(F.delta&&s.go(-F.delta,!1),Z(h,V,d))).then(h=>{h=h||L(V,d,!1),h&&(F.delta&&!dt(h,he.NAVIGATION_CANCELLED)?s.go(-F.delta,!1):F.type===ys.pop&&dt(h,he.NAVIGATION_ABORTED|he.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),Y(V,d,h)}).catch(An)}))}let _e=dn(),ee=dn(),z;function Z(v,B,F){Qe(v);const V=ee.list();return V.length?V.forEach(te=>te(v,B,F)):console.error(v),Promise.reject(v)}function ke(){return z&&c.value!==vt?Promise.resolve():new Promise((v,B)=>{_e.add([v,B])})}function Qe(v){return z||(z=!v,le(),_e.list().forEach(([B,F])=>v?F(v):B()),_e.reset()),v}function ye(v,B,F,V){const{scrollBehavior:te}=e;if(!Qt||!te)return Promise.resolve();const d=!F&&Kf(Jo(v.fullPath,0))||(V||!F)&&history.state&&history.state.scroll||null;return Bs().then(()=>te(v,B,d)).then(h=>h&&$f(h)).catch(h=>Z(h,v,B))}const me=v=>s.go(v);let Ye;const Ke=new Set,Ze={currentRoute:c,listening:!0,addRoute:m,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:E,getRoutes:_,resolve:C,options:e,push:x,replace:U,go:me,back:()=>me(-1),forward:()=>me(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:ee.add,isReady:ke,install(v){v.component("RouterLink",Ed),v.component("RouterView",lc),v.config.globalProperties.$router=Ze,Object.defineProperty(v.config.globalProperties,"$route",{enumerable:!0,get:()=>Pt(c)}),Qt&&!Ye&&c.value===vt&&(Ye=!0,x(s.location).catch(V=>{}));const B={};for(const V in vt)Object.defineProperty(B,V,{get:()=>c.value[V],enumerable:!0});v.provide(Pr,Ze),v.provide(Gs,Qi(B)),v.provide(_s,c);const F=v.unmount;Ke.add(v),v.unmount=function(){Ke.delete(v),Ke.size<1&&(u=vt,Q&&Q(),Q=null,c.value=vt,Ye=!1,z=!1),F()}}};function Ve(v){return v.reduce((B,F)=>B.then(()=>O(F)),Promise.resolve())}return Ze}function pp(){return qe(Pr)}function mp(e){return qe(Gs)}function cc(e,t){return function(){return e.apply(t,arguments)}}const{toString:Rd}=Object.prototype,{getPrototypeOf:zs}=Object,{iterator:Nr,toStringTag:ac}=Symbol,Ir=(e=>t=>{const n=Rd.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Xe=e=>(e=e.toLowerCase(),t=>Ir(t)===e),Lr=e=>t=>typeof t===e,{isArray:ln}=Array,on=Lr("undefined");function Un(e){return e!==null&&!on(e)&&e.constructor!==null&&!on(e.constructor)&&Fe(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const uc=Xe("ArrayBuffer");function Cd(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&uc(e.buffer),t}const Od=Lr("string"),Fe=Lr("function"),fc=Lr("number"),jn=e=>e!==null&&typeof e=="object",Td=e=>e===!0||e===!1,tr=e=>{if(Ir(e)!=="object")return!1;const t=zs(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(ac in e)&&!(Nr in e)},xd=e=>{if(!jn(e)||Un(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},Pd=Xe("Date"),Nd=Xe("File"),Id=Xe("Blob"),Ld=Xe("FileList"),Dd=e=>jn(e)&&Fe(e.pipe),Fd=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Fe(e.append)&&((t=Ir(e))==="formdata"||t==="object"&&Fe(e.toString)&&e.toString()==="[object FormData]"))},Md=Xe("URLSearchParams"),[Bd,Ud,jd,Hd]=["ReadableStream","Request","Response","Headers"].map(Xe),kd=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Hn(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),ln(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const Ht=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,hc=e=>!on(e)&&e!==Ht;function Es(){const{caseless:e,skipUndefined:t}=hc(this)&&this||{},n={},r=(s,o)=>{const i=e&&dc(n,o)||o;tr(n[i])&&tr(s)?n[i]=Es(n[i],s):tr(s)?n[i]=Es({},s):ln(s)?n[i]=s.slice():(!t||!on(s))&&(n[i]=s)};for(let s=0,o=arguments.length;s(Hn(t,(s,o)=>{n&&Fe(s)?e[o]=cc(s,n):e[o]=s},{allOwnKeys:r}),e),$d=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),qd=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},Kd=(e,t,n,r)=>{let s,o,i;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&zs(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},Wd=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},Gd=e=>{if(!e)return null;if(ln(e))return e;let t=e.length;if(!fc(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},zd=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&zs(Uint8Array)),Jd=(e,t)=>{const r=(e&&e[Nr]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},Xd=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},Qd=Xe("HTMLFormElement"),Yd=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),ci=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Zd=Xe("RegExp"),pc=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Hn(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},eh=e=>{pc(e,(t,n)=>{if(Fe(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Fe(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},th=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return ln(e)?r(e):r(String(e).split(t)),n},nh=()=>{},rh=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function sh(e){return!!(e&&Fe(e.append)&&e[ac]==="FormData"&&e[Nr])}const oh=e=>{const t=new Array(10),n=(r,s)=>{if(jn(r)){if(t.indexOf(r)>=0)return;if(Un(r))return r;if(!("toJSON"in r)){t[s]=r;const o=ln(r)?[]:{};return Hn(r,(i,l)=>{const c=n(i,s+1);!on(c)&&(o[l]=c)}),t[s]=void 0,o}}return r};return n(e,0)},ih=Xe("AsyncFunction"),lh=e=>e&&(jn(e)||Fe(e))&&Fe(e.then)&&Fe(e.catch),mc=((e,t)=>e?setImmediate:t?((n,r)=>(Ht.addEventListener("message",({source:s,data:o})=>{s===Ht&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),Ht.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Fe(Ht.postMessage)),ch=typeof queueMicrotask<"u"?queueMicrotask.bind(Ht):typeof process<"u"&&process.nextTick||mc,ah=e=>e!=null&&Fe(e[Nr]),b={isArray:ln,isArrayBuffer:uc,isBuffer:Un,isFormData:Fd,isArrayBufferView:Cd,isString:Od,isNumber:fc,isBoolean:Td,isObject:jn,isPlainObject:tr,isEmptyObject:xd,isReadableStream:Bd,isRequest:Ud,isResponse:jd,isHeaders:Hd,isUndefined:on,isDate:Pd,isFile:Nd,isBlob:Id,isRegExp:Zd,isFunction:Fe,isStream:Dd,isURLSearchParams:Md,isTypedArray:zd,isFileList:Ld,forEach:Hn,merge:Es,extend:Vd,trim:kd,stripBOM:$d,inherits:qd,toFlatObject:Kd,kindOf:Ir,kindOfTest:Xe,endsWith:Wd,toArray:Gd,forEachEntry:Jd,matchAll:Xd,isHTMLForm:Qd,hasOwnProperty:ci,hasOwnProp:ci,reduceDescriptors:pc,freezeMethods:eh,toObjectSet:th,toCamelCase:Yd,noop:nh,toFiniteNumber:rh,findKey:dc,global:Ht,isContextDefined:hc,isSpecCompliantForm:sh,toJSONObject:oh,isAsyncFn:ih,isThenable:lh,setImmediate:mc,asap:ch,isIterable:ah};function X(e,t,n,r,s){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),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}b.inherits(X,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 gc=X.prototype,yc={};["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=>{yc[e]={value:e}});Object.defineProperties(X,yc);Object.defineProperty(gc,"isAxiosError",{value:!0});X.from=(e,t,n,r,s,o)=>{const i=Object.create(gc);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 X.call(i,l,c,n,r,s),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 uh=null;function ws(e){return b.isPlainObject(e)||b.isArray(e)}function bc(e){return b.endsWith(e,"[]")?e.slice(0,-2):e}function ai(e,t,n){return e?e.concat(t).map(function(s,o){return s=bc(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function fh(e){return b.isArray(e)&&!e.some(ws)}const dh=b.toFlatObject(b,{},null,function(t){return/^is[A-Z]/.test(t)});function Dr(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(_,E){return!b.isUndefined(E[_])});const r=n.metaTokens,s=n.visitor||a,o=n.dots,i=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&b.isSpecCompliantForm(t);if(!b.isFunction(s))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 X("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,_,E){let C=g;if(g&&!E&&typeof g=="object"){if(b.endsWith(_,"{}"))_=r?_:_.slice(0,-2),g=JSON.stringify(g);else if(b.isArray(g)&&fh(g)||(b.isFileList(g)||b.endsWith(_,"[]"))&&(C=b.toArray(g)))return _=bc(_),C.forEach(function(N,x){!(b.isUndefined(N)||N===null)&&t.append(i===!0?ai([_],x,o):i===null?_:_+"[]",u(N))}),!1}return ws(g)?!0:(t.append(ai(E,_,o),u(g)),!1)}const f=[],p=Object.assign(dh,{defaultVisitor:a,convertValue:u,isVisitable:ws});function m(g,_){if(!b.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+_.join("."));f.push(g),b.forEach(g,function(C,T){(!(b.isUndefined(C)||C===null)&&s.call(t,C,b.isString(T)?T.trim():T,_,p))===!0&&m(C,_?_.concat(T):[T])}),f.pop()}}if(!b.isObject(e))throw new TypeError("data must be an object");return m(e),t}function ui(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Js(e,t){this._pairs=[],e&&Dr(e,this,t)}const _c=Js.prototype;_c.append=function(t,n){this._pairs.push([t,n])};_c.toString=function(t){const n=t?function(r){return t.call(this,r,ui)}:ui;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function hh(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Ec(e,t,n){if(!t)return e;const r=n&&n.encode||hh;b.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=b.isURLSearchParams(t)?t.toString():new Js(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class fi{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.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(r){r!==null&&t(r)})}}const wc={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},ph=typeof URLSearchParams<"u"?URLSearchParams:Js,mh=typeof FormData<"u"?FormData:null,gh=typeof Blob<"u"?Blob:null,yh={isBrowser:!0,classes:{URLSearchParams:ph,FormData:mh,Blob:gh},protocols:["http","https","file","blob","url","data"]},Xs=typeof window<"u"&&typeof document<"u",Ss=typeof navigator=="object"&&navigator||void 0,bh=Xs&&(!Ss||["ReactNative","NativeScript","NS"].indexOf(Ss.product)<0),_h=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Eh=Xs&&window.location.href||"http://localhost",wh=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Xs,hasStandardBrowserEnv:bh,hasStandardBrowserWebWorkerEnv:_h,navigator:Ss,origin:Eh},Symbol.toStringTag,{value:"Module"})),Ae={...wh,...yh};function Sh(e,t){return Dr(e,new Ae.classes.URLSearchParams,{visitor:function(n,r,s,o){return Ae.isNode&&b.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function vh(e){return b.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Ah(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&b.isArray(s)?s.length:i,c?(b.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!l):((!s[i]||!b.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&b.isArray(s[i])&&(s[i]=Ah(s[i])),!l)}if(b.isFormData(e)&&b.isFunction(e.entries)){const n={};return b.forEachEntry(e,(r,s)=>{t(vh(r),s,n,0)}),n}return null}function Rh(e,t,n){if(b.isString(e))try{return(t||JSON.parse)(e),b.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const kn={transitional:wc,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=b.isObject(t);if(o&&b.isHTMLForm(t)&&(t=new FormData(t)),b.isFormData(t))return s?JSON.stringify(Sc(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(r.indexOf("application/x-www-form-urlencoded")>-1)return Sh(t,this.formSerializer).toString();if((l=b.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return Dr(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),Rh(t)):t}],transformResponse:[function(t){const n=this.transitional||kn.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(b.isResponse(t)||b.isReadableStream(t))return t;if(t&&b.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(i)throw l.name==="SyntaxError"?X.from(l,X.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:Ae.classes.FormData,Blob:Ae.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=>{kn.headers[e]={}});const Ch=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"]),Oh=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&Ch[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},di=Symbol("internals");function hn(e){return e&&String(e).trim().toLowerCase()}function nr(e){return e===!1||e==null?e:b.isArray(e)?e.map(nr):String(e)}function Th(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const xh=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Zr(e,t,n,r,s){if(b.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!b.isString(t)){if(b.isString(r))return t.indexOf(r)!==-1;if(b.isRegExp(r))return r.test(t)}}function Ph(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Nh(e,t){const n=b.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let Me=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(l,c,u){const a=hn(c);if(!a)throw new Error("header name must be a non-empty string");const f=b.findKey(s,a);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||c]=nr(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())&&!xh(t))i(Oh(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,r);return this}get(t,n){if(t=hn(t),t){const r=b.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return Th(s);if(b.isFunction(n))return n.call(this,s,r);if(b.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=hn(t),t){const r=b.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Zr(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=hn(i),i){const l=b.findKey(r,i);l&&(!n||Zr(r,r[l],l,n))&&(delete r[l],s=!0)}}return b.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||Zr(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return b.forEach(this,(s,o)=>{const i=b.findKey(r,o);if(i){n[i]=nr(s),delete n[o];return}const l=t?Ph(o):String(o).trim();l!==o&&delete n[o],n[l]=nr(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return b.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&b.isArray(r)?r.join(", "):r)}),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 r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[di]=this[di]={accessors:{}}).accessors,s=this.prototype;function o(i){const l=hn(i);r[l]||(Nh(s,i),r[l]=!0)}return b.isArray(t)?t.forEach(o):o(t),this}};Me.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);b.reduceDescriptors(Me.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});b.freezeMethods(Me);function es(e,t){const n=this||kn,r=t||n,s=Me.from(r.headers);let o=r.data;return b.forEach(e,function(l){o=l.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function vc(e){return!!(e&&e.__CANCEL__)}function cn(e,t,n){X.call(this,e??"canceled",X.ERR_CANCELED,t,n),this.name="CanceledError"}b.inherits(cn,X,{__CANCEL__:!0});function Ac(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new X("Request failed with status code "+n.status,[X.ERR_BAD_REQUEST,X.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function Ih(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function Lh(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),a=r[o];i||(i=u),n[s]=c,r[s]=u;let f=o,p=0;for(;f!==s;)p+=n[f++],f=f%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i{n=a,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const a=Date.now(),f=a-n;f>=r?i(u,a):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-f)))},()=>s&&i(s)]}const pr=(e,t,n=3)=>{let r=0;const s=Lh(50,250);return Dh(o=>{const i=o.loaded,l=o.lengthComputable?o.total:void 0,c=i-r,u=s(c),a=i<=l;r=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)},hi=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},pi=e=>(...t)=>b.asap(()=>e(...t)),Fh=Ae.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Ae.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Ae.origin),Ae.navigator&&/(msie|trident)/i.test(Ae.navigator.userAgent)):()=>!0,Mh=Ae.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];b.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),b.isString(r)&&l.push(`path=${r}`),b.isString(s)&&l.push(`domain=${s}`),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 Bh(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function Uh(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Rc(e,t,n){let r=!Bh(t);return e&&(r||n==!1)?Uh(e,t):t}const mi=e=>e instanceof Me?{...e}:e;function Kt(e,t){t=t||{};const n={};function r(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 s(u,a,f,p){if(b.isUndefined(a)){if(!b.isUndefined(u))return r(void 0,u,f,p)}else return r(u,a,f,p)}function o(u,a){if(!b.isUndefined(a))return r(void 0,a)}function i(u,a){if(b.isUndefined(a)){if(!b.isUndefined(u))return r(void 0,u)}else return r(void 0,a)}function l(u,a,f){if(f in t)return r(u,a);if(f in e)return r(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)=>s(mi(u),mi(a),f,!0)};return b.forEach(Object.keys({...e,...t}),function(a){const f=c[a]||s,p=f(e[a],t[a],a);b.isUndefined(p)&&f!==l||(n[a]=p)}),n}const Cc=e=>{const t=Kt({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:l}=t;if(t.headers=i=Me.from(i),t.url=Ec(Rc(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(Ae.hasStandardBrowserEnv||Ae.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(Ae.hasStandardBrowserEnv&&(r&&b.isFunction(r)&&(r=r(t)),r||r!==!1&&Fh(t.url))){const c=s&&o&&Mh.read(o);c&&i.set(s,c)}return t},jh=typeof XMLHttpRequest<"u",Hh=jh&&function(e){return new Promise(function(n,r){const s=Cc(e);let o=s.data;const i=Me.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,a,f,p,m,g;function _(){m&&m(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(a),s.signal&&s.signal.removeEventListener("abort",a)}let E=new XMLHttpRequest;E.open(s.method.toUpperCase(),s.url,!0),E.timeout=s.timeout;function C(){if(!E)return;const N=Me.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),U={data:!l||l==="text"||l==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:N,config:e,request:E};Ac(function(H){n(H),_()},function(H){r(H),_()},U),E=null}"onloadend"in E?E.onloadend=C:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.indexOf("file:")===0)||setTimeout(C)},E.onabort=function(){E&&(r(new X("Request aborted",X.ECONNABORTED,e,E)),E=null)},E.onerror=function(x){const U=x&&x.message?x.message:"Network Error",G=new X(U,X.ERR_NETWORK,e,E);G.event=x||null,r(G),E=null},E.ontimeout=function(){let x=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const U=s.transitional||wc;s.timeoutErrorMessage&&(x=s.timeoutErrorMessage),r(new X(x,U.clarifyTimeoutError?X.ETIMEDOUT:X.ECONNABORTED,e,E)),E=null},o===void 0&&i.setContentType(null),"setRequestHeader"in E&&b.forEach(i.toJSON(),function(x,U){E.setRequestHeader(U,x)}),b.isUndefined(s.withCredentials)||(E.withCredentials=!!s.withCredentials),l&&l!=="json"&&(E.responseType=s.responseType),u&&([p,g]=pr(u,!0),E.addEventListener("progress",p)),c&&E.upload&&([f,m]=pr(c),E.upload.addEventListener("progress",f),E.upload.addEventListener("loadend",m)),(s.cancelToken||s.signal)&&(a=N=>{E&&(r(!N||N.type?new cn(null,e,E):N),E.abort(),E=null)},s.cancelToken&&s.cancelToken.subscribe(a),s.signal&&(s.signal.aborted?a():s.signal.addEventListener("abort",a)));const T=Ih(s.url);if(T&&Ae.protocols.indexOf(T)===-1){r(new X("Unsupported protocol "+T+":",X.ERR_BAD_REQUEST,e));return}E.send(o||null)})},kh=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,l();const a=u instanceof Error?u:this.reason;r.abort(a instanceof X?a:new cn(a instanceof Error?a.message:a))}};let i=t&&setTimeout(()=>{i=null,o(new X(`timeout ${t} of ms exceeded`,X.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}=r;return c.unsubscribe=()=>b.asap(l),c}},Vh=function*(e,t){let n=e.byteLength;if(n{const s=$h(e,t);let o=0,i,l=c=>{i||(i=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:a}=await s.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),s.return()}},{highWaterMark:2})},yi=64*1024,{isFunction:Gn}=b,Kh=(({Request:e,Response:t})=>({Request:e,Response:t}))(b.global),{ReadableStream:bi,TextEncoder:_i}=b.global,Ei=(e,...t)=>{try{return!!e(...t)}catch{return!1}},Wh=e=>{e=b.merge.call({skipUndefined:!0},Kh,e);const{fetch:t,Request:n,Response:r}=e,s=t?Gn(t):typeof fetch=="function",o=Gn(n),i=Gn(r);if(!s)return!1;const l=s&&Gn(bi),c=s&&(typeof _i=="function"?(g=>_=>g.encode(_))(new _i):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=o&&l&&Ei(()=>{let g=!1;const _=new n(Ae.origin,{body:new bi,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!_}),a=i&&l&&Ei(()=>b.isReadableStream(new r("").body)),f={stream:a&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(_,E)=>{let C=_&&_[g];if(C)return C.call(_);throw new X(`Response type '${g}' is not supported`,X.ERR_NOT_SUPPORT,E)})});const p=async g=>{if(g==null)return 0;if(b.isBlob(g))return g.size;if(b.isSpecCompliantForm(g))return(await new n(Ae.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},m=async(g,_)=>{const E=b.toFiniteNumber(g.getContentLength());return E??p(_)};return async g=>{let{url:_,method:E,data:C,signal:T,cancelToken:N,timeout:x,onDownloadProgress:U,onUploadProgress:G,responseType:H,headers:j,withCredentials:O="same-origin",fetchOptions:k}=Cc(g),Y=t||fetch;H=H?(H+"").toLowerCase():"text";let L=kh([T,N&&N.toAbortSignal()],x),Q=null;const le=L&&L.unsubscribe&&(()=>{L.unsubscribe()});let _e;try{if(G&&u&&E!=="get"&&E!=="head"&&(_e=await m(j,C))!==0){let ye=new n(_,{method:"POST",body:C,duplex:"half"}),me;if(b.isFormData(C)&&(me=ye.headers.get("content-type"))&&j.setContentType(me),ye.body){const[Ye,Ke]=hi(_e,pr(pi(G)));C=gi(ye.body,yi,Ye,Ke)}}b.isString(O)||(O=O?"include":"omit");const ee=o&&"credentials"in n.prototype,z={...k,signal:L,method:E.toUpperCase(),headers:j.normalize().toJSON(),body:C,duplex:"half",credentials:ee?O:void 0};Q=o&&new n(_,z);let Z=await(o?Y(Q,k):Y(_,z));const ke=a&&(H==="stream"||H==="response");if(a&&(U||ke&&le)){const ye={};["status","statusText","headers"].forEach(Ze=>{ye[Ze]=Z[Ze]});const me=b.toFiniteNumber(Z.headers.get("content-length")),[Ye,Ke]=U&&hi(me,pr(pi(U),!0))||[];Z=new r(gi(Z.body,yi,Ye,()=>{Ke&&Ke(),le&&le()}),ye)}H=H||"text";let Qe=await f[b.findKey(f,H)||"text"](Z,g);return!ke&&le&&le(),await new Promise((ye,me)=>{Ac(ye,me,{data:Qe,headers:Me.from(Z.headers),status:Z.status,statusText:Z.statusText,config:g,request:Q})})}catch(ee){throw le&&le(),ee&&ee.name==="TypeError"&&/Load failed|fetch/i.test(ee.message)?Object.assign(new X("Network Error",X.ERR_NETWORK,g,Q),{cause:ee.cause||ee}):X.from(ee,ee&&ee.code,g,Q)}}},Gh=new Map,Oc=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,l=i,c,u,a=Gh;for(;l--;)c=o[l],u=a.get(c),u===void 0&&a.set(c,u=l?new Map:Wh(t)),a=u;return u};Oc();const Qs={http:uh,xhr:Hh,fetch:{get:Oc}};b.forEach(Qs,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const wi=e=>`- ${e}`,zh=e=>b.isFunction(e)||e===null||e===!1;function Jh(e,t){e=b.isArray(e)?e:[e];const{length:n}=e;let r,s;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(wi).join(` +`):" "+wi(i[0]):"as no adapter specified";throw new X("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const Tc={getAdapter:Jh,adapters:Qs};function ts(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new cn(null,e)}function Si(e){return ts(e),e.headers=Me.from(e.headers),e.data=es.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Tc.getAdapter(e.adapter||kn.adapter,e)(e).then(function(r){return ts(e),r.data=es.call(e,e.transformResponse,r),r.headers=Me.from(r.headers),r},function(r){return vc(r)||(ts(e),r&&r.response&&(r.response.data=es.call(e,e.transformResponse,r.response),r.response.headers=Me.from(r.response.headers))),Promise.reject(r)})}const xc="1.13.2",Fr={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Fr[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const vi={};Fr.transitional=function(t,n,r){function s(o,i){return"[Axios v"+xc+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,l)=>{if(t===!1)throw new X(s(i," has been removed"+(n?" in "+n:"")),X.ERR_DEPRECATED);return n&&!vi[i]&&(vi[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,l):!0}};Fr.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function Xh(e,t,n){if(typeof e!="object")throw new X("options must be an object",X.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const l=e[o],c=l===void 0||i(l,o,e);if(c!==!0)throw new X("option "+o+" must be "+c,X.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new X("Unknown option "+o,X.ERR_BAD_OPTION)}}const rr={assertOptions:Xh,validators:Fr},ot=rr.validators;let qt=class{constructor(t){this.defaults=t||{},this.interceptors={request:new fi,response:new fi}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Kt(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&rr.assertOptions(r,{silentJSONParsing:ot.transitional(ot.boolean),forcedJSONParsing:ot.transitional(ot.boolean),clarifyTimeoutError:ot.transitional(ot.boolean)},!1),s!=null&&(b.isFunction(s)?n.paramsSerializer={serialize:s}:rr.assertOptions(s,{encode:ot.function,serialize:ot.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),rr.assertOptions(n,{baseUrl:ot.spelling("baseURL"),withXsrfToken:ot.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=Me.concat(i,o);const l=[];let c=!0;this.interceptors.request.forEach(function(_){typeof _.runWhen=="function"&&_.runWhen(n)===!1||(c=c&&_.synchronous,l.unshift(_.fulfilled,_.rejected))});const u=[];this.interceptors.response.forEach(function(_){u.push(_.fulfilled,_.rejected)});let a,f=0,p;if(!c){const g=[Si.bind(this),void 0];for(g.unshift(...l),g.push(...u),p=g.length,a=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(l=>{r.subscribe(l),o=l}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,l){r.reason||(r.reason=new cn(o,i,l),n(r.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=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new Pc(function(s){t=s}),cancel:t}}};function Yh(e){return function(n){return e.apply(null,n)}}function Zh(e){return b.isObject(e)&&e.isAxiosError===!0}const vs={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(vs).forEach(([e,t])=>{vs[t]=e});function Nc(e){const t=new qt(e),n=cc(qt.prototype.request,t);return b.extend(n,qt.prototype,t,{allOwnKeys:!0}),b.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return Nc(Kt(e,s))},n}const ge=Nc(kn);ge.Axios=qt;ge.CanceledError=cn;ge.CancelToken=Qh;ge.isCancel=vc;ge.VERSION=xc;ge.toFormData=Dr;ge.AxiosError=X;ge.Cancel=ge.CanceledError;ge.all=function(t){return Promise.all(t)};ge.spread=Yh;ge.isAxiosError=Zh;ge.mergeConfig=Kt;ge.AxiosHeaders=Me;ge.formToJSON=e=>Sc(b.isHTMLForm(e)?new FormData(e):e);ge.getAdapter=Tc.getAdapter;ge.HttpStatusCode=vs;ge.default=ge;const{Axios:bp,AxiosError:_p,CanceledError:Ep,isCancel:wp,CancelToken:Sp,VERSION:vp,all:Ap,Cancel:Rp,isAxiosError:Cp,spread:Op,toFormData:Tp,AxiosHeaders:xp,HttpStatusCode:Pp,formToJSON:Np,getAdapter:Ip,mergeConfig:Lp}=ge,Rn=ge.create({baseURL:"",timeout:3e4,withCredentials:!0});Rn.interceptors.request.use(e=>e,e=>Promise.reject(e));Rn.interceptors.response.use(e=>e.data,e=>{e.response?.status===401&&(window.location.hash="#/login");const t=e.response?.data?e.response.data.detail||e.response.data.message:e.message;return Promise.reject(new Error(t||"请求失败"))});const zn={login:e=>{const t=new URLSearchParams;return t.append("admin_key",e.password),Rn.post("/login",t,{headers:{"Content-Type":"application/x-www-form-urlencoded"}})},logout:()=>Rn.post("/logout"),checkAuth:()=>Rn.get("/admin/health")},ep=gf("auth",()=>{const e=Vt(!1),t=Vt(!1),n=Vt(0),r=1e4;let s=null;async function o(c){t.value=!0;try{return await zn.login({password:c}),await zn.checkAuth(),e.value=!0,n.value=Date.now(),!0}catch(u){throw e.value=!1,u}finally{t.value=!1}}async function i(){try{await zn.logout()}finally{e.value=!1,n.value=0}}async function l(){const c=Date.now();if(e.value&&c-n.value(await zn.checkAuth(),e.value=!0,!0))(),await s}catch{return e.value=!1,!1}finally{n.value=Date.now(),s=null}}return{isLoggedIn:e,isLoading:t,login:o,logout:i,checkAuth:l}}),Ic=Ad({history:rd("/"),routes:[{path:"/public/uptime",name:"public-uptime",component:()=>st(()=>import("./PublicUptime-BEv5lCkt.js"),__vite__mapDeps([0,1])),meta:{requiresAuth:!1}},{path:"/public/logs",name:"public-logs",component:()=>st(()=>import("./PublicLogs-BtimzqRs.js"),[]),meta:{requiresAuth:!1}},{path:"/login",name:"login",component:()=>st(()=>import("./Login-DmfEMRA7.js"),__vite__mapDeps([2,3])),meta:{requiresAuth:!1}},{path:"/",component:()=>st(()=>import("./AppShell-8b_m8Zl7.js"),__vite__mapDeps([4,5,6,7])),meta:{requiresAuth:!0},children:[{path:"",name:"dashboard",component:()=>st(()=>import("./Dashboard-CSXehn29.js"),__vite__mapDeps([8,9]))},{path:"accounts",name:"accounts",component:()=>st(()=>import("./Accounts-qETksrou.js"),__vite__mapDeps([10,11,3,6,7,9]))},{path:"settings",name:"settings",component:()=>st(()=>import("./Settings-myvf-puL.js"),__vite__mapDeps([12,5,11,3,9]))},{path:"logs",name:"logs",component:()=>st(()=>import("./Logs-BLNGC9VD.js"),__vite__mapDeps([13,11,6]))},{path:"monitor",name:"monitor",component:()=>st(()=>import("./Monitor-CgM6KxNQ.js"),__vite__mapDeps([14,1]))},{path:"docs",name:"docs",component:()=>st(()=>import("./Docs-DrYn7Aa0.js"),[])}]}]});Ic.beforeEach(async e=>{const t=ep();if(e.meta.requiresAuth&&!await t.checkAuth())return{name:"login"};if(e.name==="login"&&t.isLoggedIn)return{name:"dashboard"}});const tp=js({__name:"App",setup(e){return(t,n)=>(ur(),dr(Pt(lc)))}}),Ys=lf(tp),np=uf();Ys.use(np);Ys.use(Ic);Ys.mount("#app");export{bn as A,cp as B,lc as C,gf as D,hp as E,De as F,Bs as G,ip as H,Fn as I,Ed as R,up as T,Hl as a,ap as b,lp as c,js as d,ur as e,Eu as f,Rn as g,Vt as h,Ue as i,El as j,Ts as k,ep as l,dr as m,xs as n,_l as o,Ne as p,rp as q,op as r,Ra as s,qc as t,Pt as u,fp as v,dp as w,sp as x,pp as y,mp as z}; diff --git a/static/assets/index-OP3F9IRB.js b/static/assets/index-OP3F9IRB.js new file mode 100644 index 0000000000000000000000000000000000000000..3992586454698014194f2f8138bed160f555f046 --- /dev/null +++ b/static/assets/index-OP3F9IRB.js @@ -0,0 +1,7 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PublicUptime-BMb71sHa.js","assets/useUptimeStatus-CvvhfM9c.js","assets/Login-DQNPAp9n.js","assets/Checkbox.vue_vue_type_script_setup_true_lang-aBWvRhQv.js","assets/AppShell-D_XBwVf-.js","assets/settings-DVwbsbgP.js","assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-CPmtaJk8.js","assets/useConfirmDialog-BNQ4DnH9.js","assets/Dashboard-CHnH24wI.js","assets/HelpTip.vue_vue_type_script_setup_true_lang-CpmAUbfQ.js","assets/Accounts-vV-lLEEq.js","assets/SelectMenu.vue_vue_type_script_setup_true_lang-BN7xX40H.js","assets/Settings-CR5z3sBt.js","assets/Logs-C0AYmMGH.js","assets/Monitor-DOVP9Cl6.js"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function As(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const ce={},Yt=[],ct=()=>{},Ai=()=>!1,mr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Rs=e=>e.startsWith("onUpdate:"),Ee=Object.assign,Cs=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Lc=Object.prototype.hasOwnProperty,oe=(e,t)=>Lc.call(e,t),K=Array.isArray,Zt=e=>gr(e)==="[object Map]",Ri=e=>gr(e)==="[object Set]",J=e=>typeof e=="function",pe=e=>typeof e=="string",Et=e=>typeof e=="symbol",ae=e=>e!==null&&typeof e=="object",Ci=e=>(ae(e)||J(e))&&J(e.then)&&J(e.catch),Oi=Object.prototype.toString,gr=e=>Oi.call(e),Dc=e=>gr(e).slice(8,-1),Ti=e=>gr(e)==="[object Object]",yr=e=>pe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,mn=As(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),br=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},Fc=/-\w/g,Nt=br(e=>e.replace(Fc,t=>t.slice(1).toUpperCase())),Mc=/\B([A-Z])/g,Wt=br(e=>e.replace(Mc,"-$1").toLowerCase()),xi=br(e=>e.charAt(0).toUpperCase()+e.slice(1)),Mr=br(e=>e?`on${xi(e)}`:""),xt=(e,t)=>!Object.is(e,t),Jn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},Os=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Bc=e=>{const t=pe(e)?Number(e):NaN;return isNaN(t)?e:t};let no;const _r=()=>no||(no=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ts(e){if(K(e)){const t={};for(let n=0;n{if(n){const r=n.split(jc);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function xs(e){let t="";if(pe(e))t=e;else if(K(e))for(let n=0;n!!(e&&e.__v_isRef===!0),qc=e=>pe(e)?e:e==null?"":K(e)||ae(e)&&(e.toString===Oi||!J(e.toString))?Ii(e)?qc(e.value):JSON.stringify(e,Li,2):String(e),Li=(e,t)=>Ii(t)?Li(e,t.value):Zt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[Br(r,o)+" =>"]=s,n),{})}:Ri(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Br(n))}:Et(t)?Br(t):ae(t)&&!K(t)&&!Ti(t)?String(t):t,Br=(e,t="")=>{var n;return Et(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let we;class Di{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=we,!t&&we&&(this.index=(we.scopes||(we.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&&(we=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if(yn){let t=yn;for(yn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;gn;){let t=gn;for(gn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function Hi(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function ki(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),Is(r),Wc(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function ns(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Vi(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Vi(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Cn)||(e.globalVersion=Cn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!ns(e))))return;e.flags|=2;const t=e.dep,n=fe,r=We;fe=e,We=!0;try{Hi(e);const s=e.fn(e._value);(t.version===0||xt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{fe=n,We=r,ki(e),e.flags&=-3}}function Is(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)Is(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Wc(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let We=!0;const $i=[];function yt(){$i.push(We),We=!1}function bt(){const e=$i.pop();We=e===void 0?!0:e}function ro(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=fe;fe=void 0;try{t()}finally{fe=n}}}let Cn=0;class Gc{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 Ls{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(!fe||!We||fe===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==fe)n=this.activeLink=new Gc(fe,this),fe.deps?(n.prevDep=fe.depsTail,fe.depsTail.nextDep=n,fe.depsTail=n):fe.deps=fe.depsTail=n,qi(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=fe.depsTail,n.nextDep=void 0,fe.depsTail.nextDep=n,fe.depsTail=n,fe.deps===n&&(fe.deps=r)}return n}trigger(t){this.version++,Cn++,this.notify(t)}notify(t){Ps();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Ns()}}}function qi(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)qi(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const sr=new WeakMap,kt=Symbol(""),rs=Symbol(""),On=Symbol("");function Se(e,t,n){if(We&&fe){let r=sr.get(e);r||sr.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new Ls),s.map=r,s.key=n),s.track()}}function mt(e,t,n,r,s,o){const i=sr.get(e);if(!i){Cn++;return}const l=c=>{c&&c.trigger()};if(Ps(),t==="clear")i.forEach(l);else{const c=K(e),u=c&&yr(n);if(c&&n==="length"){const a=Number(r);i.forEach((f,p)=>{(p==="length"||p===On||!Et(p)&&p>=a)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(On)),t){case"add":c?u&&l(i.get("length")):(l(i.get(kt)),Zt(e)&&l(i.get(rs)));break;case"delete":c||(l(i.get(kt)),Zt(e)&&l(i.get(rs)));break;case"set":Zt(e)&&l(i.get(kt));break}}Ns()}function zc(e,t){const n=sr.get(e);return n&&n.get(t)}function Gt(e){const t=re(e);return t===e?t:(Se(t,"iterate",On),He(e)?t:t.map(Ge))}function Er(e){return Se(e=re(e),"iterate",On),e}function Rt(e,t){return _t(e)?at(e)?nn(Ge(t)):nn(t):Ge(t)}const Jc={__proto__:null,[Symbol.iterator](){return jr(this,Symbol.iterator,e=>Rt(this,e))},concat(...e){return Gt(this).concat(...e.map(t=>K(t)?Gt(t):t))},entries(){return jr(this,"entries",e=>(e[1]=Rt(this,e[1]),e))},every(e,t){return ut(this,"every",e,t,void 0,arguments)},filter(e,t){return ut(this,"filter",e,t,n=>n.map(r=>Rt(this,r)),arguments)},find(e,t){return ut(this,"find",e,t,n=>Rt(this,n),arguments)},findIndex(e,t){return ut(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ut(this,"findLast",e,t,n=>Rt(this,n),arguments)},findLastIndex(e,t){return ut(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ut(this,"forEach",e,t,void 0,arguments)},includes(...e){return Hr(this,"includes",e)},indexOf(...e){return Hr(this,"indexOf",e)},join(e){return Gt(this).join(e)},lastIndexOf(...e){return Hr(this,"lastIndexOf",e)},map(e,t){return ut(this,"map",e,t,void 0,arguments)},pop(){return un(this,"pop")},push(...e){return un(this,"push",e)},reduce(e,...t){return so(this,"reduce",e,t)},reduceRight(e,...t){return so(this,"reduceRight",e,t)},shift(){return un(this,"shift")},some(e,t){return ut(this,"some",e,t,void 0,arguments)},splice(...e){return un(this,"splice",e)},toReversed(){return Gt(this).toReversed()},toSorted(e){return Gt(this).toSorted(e)},toSpliced(...e){return Gt(this).toSpliced(...e)},unshift(...e){return un(this,"unshift",e)},values(){return jr(this,"values",e=>Rt(this,e))}};function jr(e,t,n){const r=Er(e),s=r[t]();return r!==e&&!He(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const Xc=Array.prototype;function ut(e,t,n,r,s,o){const i=Er(e),l=i!==e&&!He(e),c=i[t];if(c!==Xc[t]){const f=c.apply(e,o);return l?Ge(f):f}let u=n;i!==e&&(l?u=function(f,p){return n.call(this,Rt(e,f),p,e)}:n.length>2&&(u=function(f,p){return n.call(this,f,p,e)}));const a=c.call(i,u,r);return l&&s?s(a):a}function so(e,t,n,r){const s=Er(e);let o=n;return s!==e&&(He(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,Rt(e,l),c,e)}),s[t](o,...r)}function Hr(e,t,n){const r=re(e);Se(r,"iterate",On);const s=r[t](...n);return(s===-1||s===!1)&&wr(n[0])?(n[0]=re(n[0]),r[t](...n)):s}function un(e,t,n=[]){yt(),Ps();const r=re(e)[t].apply(e,n);return Ns(),bt(),r}const Qc=As("__proto__,__v_isRef,__isVue"),Ki=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Et));function Yc(e){Et(e)||(e=String(e));const t=re(this);return Se(t,"has",e),t.hasOwnProperty(e)}class Wi{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?ca:Xi:o?Ji:zi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=K(t);if(!s){let c;if(i&&(c=Jc[n]))return c;if(n==="hasOwnProperty")return Yc}const l=Reflect.get(t,n,de(t)?t:r);if((Et(n)?Ki.has(n):Qc(n))||(s||Se(t,"get",n),o))return l;if(de(l)){const c=i&&yr(n)?l:l.value;return s&&ae(c)?os(c):c}return ae(l)?s?os(l):Fn(l):l}}class Gi extends Wi{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=K(t)&&yr(n);if(!this._isShallow){const u=_t(o);if(!He(r)&&!_t(r)&&(o=re(o),r=re(r)),!i&&de(o)&&!de(r))return u||(o.value=r),!0}const l=i?Number(n)e,Vn=e=>Reflect.getPrototypeOf(e);function ra(e,t,n){return function(...r){const s=this.__v_raw,o=re(s),i=Zt(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=s[e](...r),a=n?ss:t?nn:Ge;return!t&&Se(o,"iterate",c?rs:kt),{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 $n(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function sa(e,t){const n={get(s){const o=this.__v_raw,i=re(o),l=re(s);e||(xt(s,l)&&Se(i,"get",s),Se(i,"get",l));const{has:c}=Vn(i),u=t?ss:e?nn:Ge;if(c.call(i,s))return u(o.get(s));if(c.call(i,l))return u(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&Se(re(s),"iterate",kt),s.size},has(s){const o=this.__v_raw,i=re(o),l=re(s);return e||(xt(s,l)&&Se(i,"has",s),Se(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,c=re(l),u=t?ss:e?nn:Ge;return!e&&Se(c,"iterate",kt),l.forEach((a,f)=>s.call(o,u(a),u(f),i))}};return Ee(n,e?{add:$n("add"),set:$n("set"),delete:$n("delete"),clear:$n("clear")}:{add(s){!t&&!He(s)&&!_t(s)&&(s=re(s));const o=re(this);return Vn(o).has.call(o,s)||(o.add(s),mt(o,"add",s,s)),this},set(s,o){!t&&!He(o)&&!_t(o)&&(o=re(o));const i=re(this),{has:l,get:c}=Vn(i);let u=l.call(i,s);u||(s=re(s),u=l.call(i,s));const a=c.call(i,s);return i.set(s,o),u?xt(o,a)&&mt(i,"set",s,o):mt(i,"add",s,o),this},delete(s){const o=re(this),{has:i,get:l}=Vn(o);let c=i.call(o,s);c||(s=re(s),c=i.call(o,s)),l&&l.call(o,s);const u=o.delete(s);return c&&mt(o,"delete",s,void 0),u},clear(){const s=re(this),o=s.size!==0,i=s.clear();return o&&mt(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=ra(s,e,t)}),n}function Ds(e,t){const n=sa(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(oe(n,s)&&s in r?n:r,s,o)}const oa={get:Ds(!1,!1)},ia={get:Ds(!1,!0)},la={get:Ds(!0,!1)};const zi=new WeakMap,Ji=new WeakMap,Xi=new WeakMap,ca=new WeakMap;function aa(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ua(e){return e.__v_skip||!Object.isExtensible(e)?0:aa(Dc(e))}function Fn(e){return _t(e)?e:Fs(e,!1,ea,oa,zi)}function Qi(e){return Fs(e,!1,na,ia,Ji)}function os(e){return Fs(e,!0,ta,la,Xi)}function Fs(e,t,n,r,s){if(!ae(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=ua(e);if(o===0)return e;const i=s.get(e);if(i)return i;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function at(e){return _t(e)?at(e.__v_raw):!!(e&&e.__v_isReactive)}function _t(e){return!!(e&&e.__v_isReadonly)}function He(e){return!!(e&&e.__v_isShallow)}function wr(e){return e?!!e.__v_raw:!1}function re(e){const t=e&&e.__v_raw;return t?re(t):e}function Ms(e){return!oe(e,"__v_skip")&&Object.isExtensible(e)&&Pi(e,"__v_skip",!0),e}const Ge=e=>ae(e)?Fn(e):e,nn=e=>ae(e)?os(e):e;function de(e){return e?e.__v_isRef===!0:!1}function Vt(e){return Yi(e,!1)}function fa(e){return Yi(e,!0)}function Yi(e,t){return de(e)?e:new da(e,t)}class da{constructor(t,n){this.dep=new Ls,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:re(t),this._value=n?t:Ge(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||He(t)||_t(t);t=r?t:re(t),xt(t,n)&&(this._rawValue=t,this._value=r?t:Ge(t),this.dep.trigger())}}function Pt(e){return de(e)?e.value:e}const ha={get:(e,t,n)=>t==="__v_raw"?e:Pt(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return de(s)&&!de(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Zi(e){return at(e)?e:new Proxy(e,ha)}function pa(e){const t=K(e)?new Array(e.length):{};for(const n in e)t[n]=el(e,n);return t}class ma{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._raw=re(t);let s=!0,o=t;if(!K(t)||!yr(String(n)))do s=!wr(o)||He(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=Pt(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&de(this._raw[this._key])){const n=this._object[this._key];if(de(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return zc(this._raw,this._key)}}class ga{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function ya(e,t,n){return de(e)?e:J(e)?new ga(e):ae(e)&&arguments.length>1?el(e,t,n):Vt(e)}function el(e,t,n){return new ma(e,t,n)}class ba{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Ls(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Cn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&fe!==this)return ji(this,!0),!0}get value(){const t=this.dep.track();return Vi(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function _a(e,t,n=!1){let r,s;return J(e)?r=e:(r=e.get,s=e.set),new ba(r,s,n)}const qn={},or=new WeakMap;let Bt;function Ea(e,t=!1,n=Bt){if(n){let r=or.get(n);r||or.set(n,r=[]),r.push(e)}}function wa(e,t,n=ce){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:c}=n,u=x=>s?x:He(x)||s===!1||s===0?gt(x,1):gt(x);let a,f,p,m,g=!1,_=!1;if(de(e)?(f=()=>e.value,g=He(e)):at(e)?(f=()=>u(e),g=!0):K(e)?(_=!0,g=e.some(x=>at(x)||He(x)),f=()=>e.map(x=>{if(de(x))return x.value;if(at(x))return u(x);if(J(x))return c?c(x,2):x()})):J(e)?t?f=c?()=>c(e,2):e:f=()=>{if(p){yt();try{p()}finally{bt()}}const x=Bt;Bt=a;try{return c?c(e,3,[m]):e(m)}finally{Bt=x}}:f=ct,t&&s){const x=f,U=s===!0?1/0:s;f=()=>gt(x(),U)}const E=Mi(),C=()=>{a.stop(),E&&E.active&&Cs(E.effects,a)};if(o&&t){const x=t;t=(...U)=>{x(...U),C()}}let T=_?new Array(e.length).fill(qn):qn;const N=x=>{if(!(!(a.flags&1)||!a.dirty&&!x))if(t){const U=a.run();if(s||g||(_?U.some((G,H)=>xt(G,T[H])):xt(U,T))){p&&p();const G=Bt;Bt=a;try{const H=[U,T===qn?void 0:_&&T[0]===qn?[]:T,m];T=U,c?c(t,3,H):t(...H)}finally{Bt=G}}}else a.run()};return l&&l(N),a=new Bi(f),a.scheduler=i?()=>i(N,!1):N,m=x=>Ea(x,!1,a),p=a.onStop=()=>{const x=or.get(a);if(x){if(c)c(x,4);else for(const U of x)U();or.delete(a)}},t?r?N(!0):T=a.run():i?i(N.bind(null,!0),!0):a.run(),C.pause=a.pause.bind(a),C.resume=a.resume.bind(a),C.stop=C,C}function gt(e,t=1/0,n){if(t<=0||!ae(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,de(e))gt(e.value,t,n);else if(K(e))for(let r=0;r{gt(r,t,n)});else if(Ti(e)){for(const r in e)gt(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&>(e[r],t,n)}return e}function Mn(e,t,n,r){try{return r?e(...r):e()}catch(s){Sr(s,t,n)}}function ze(e,t,n,r){if(J(e)){const s=Mn(e,t,n,r);return s&&Ci(s)&&s.catch(o=>{Sr(o,t,n)}),s}if(K(e)){const s=[];for(let o=0;o>>1,s=xe[r],o=Tn(s);o=Tn(n)?xe.push(e):xe.splice(va(t),0,e),e.flags|=1,nl()}}function nl(){ir||(ir=tl.then(sl))}function Aa(e){K(e)?en.push(...e):Ct&&e.id===-1?Ct.splice(Jt+1,0,e):e.flags&1||(en.push(e),e.flags|=1),nl()}function oo(e,t,n=it+1){for(;nTn(n)-Tn(r));if(en.length=0,Ct){Ct.push(...t);return}for(Ct=t,Jt=0;Jte.id==null?e.flags&2?-1:1/0:e.id;function sl(e){try{for(it=0;it{r._d&&fr(-1);const o=lr(t);let i;try{i=e(...s)}finally{lr(o),r._d&&fr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function rp(e,t){if(Re===null)return e;const n=Or(Re),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&J(t)?t.call(r&&r.proxy):t}}function Ca(){return!!(qs()||$t)}const Oa=Symbol.for("v-scx"),Ta=()=>qe(Oa);function bn(e,t,n){return il(e,t,n)}function il(e,t,n=ce){const{immediate:r,deep:s,flush:o,once:i}=n,l=Ee({},n),c=t&&r||!t&&o!=="post";let u;if(In){if(o==="sync"){const m=Ta();u=m.__watcherHandles||(m.__watcherHandles=[])}else if(!c){const m=()=>{};return m.stop=ct,m.resume=ct,m.pause=ct,m}}const a=Pe;l.call=(m,g,_)=>ze(m,a,g,_);let f=!1;o==="post"?l.scheduler=m=>{Oe(m,a&&a.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(m,g)=>{g?m():Us(m)}),l.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,a&&(m.id=a.uid,m.i=a))};const p=wa(e,t,l);return In&&(u?u.push(p):c&&p()),p}function xa(e,t,n){const r=this.proxy,s=pe(e)?e.includes(".")?ll(r,e):()=>r[e]:e.bind(r,r);let o;J(t)?o=t:(o=t.handler,n=t);const i=Bn(this),l=il(s,o.bind(r),n);return i(),l}function ll(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,_n=e=>e&&(e.disabled||e.disabled===""),io=e=>e&&(e.defer||e.defer===""),lo=e=>typeof SVGElement<"u"&&e instanceof SVGElement,co=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,is=(e,t)=>{const n=e&&e.to;return pe(n)?t?t(n):null:n},ul={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,u){const{mc:a,pc:f,pbc:p,o:{insert:m,querySelector:g,createText:_,createComment:E}}=u,C=_n(t.props);let{shapeFlag:T,children:N,dynamicChildren:x}=t;if(e==null){const U=t.el=_(""),G=t.anchor=_("");m(U,n,r),m(G,n,r);const H=(O,k)=>{T&16&&a(N,O,k,s,o,i,l,c)},j=()=>{const O=t.target=is(t.props,g),k=fl(O,t,_,m);O&&(i!=="svg"&&lo(O)?i="svg":i!=="mathml"&&co(O)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(O),C||(H(O,k),Qn(t,!1)))};C&&(H(n,G),Qn(t,!0)),io(t.props)?(t.el.__isMounted=!1,Oe(()=>{j(),delete t.el.__isMounted},o)):j()}else{if(io(t.props)&&e.el.__isMounted===!1){Oe(()=>{ul.process(e,t,n,r,s,o,i,l,c,u)},o);return}t.el=e.el,t.targetStart=e.targetStart;const U=t.anchor=e.anchor,G=t.target=e.target,H=t.targetAnchor=e.targetAnchor,j=_n(e.props),O=j?n:G,k=j?U:H;if(i==="svg"||lo(G)?i="svg":(i==="mathml"||co(G))&&(i="mathml"),x?(p(e.dynamicChildren,x,O,s,o,i,l),Vs(e,t,!0)):c||f(e,t,O,k,s,o,i,l,!1),C)j?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Kn(t,n,U,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const Y=t.target=is(t.props,g);Y&&Kn(t,Y,null,u,0)}else j&&Kn(t,G,H,u,1);Qn(t,C)}},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetStart:u,targetAnchor:a,target:f,props:p}=e;if(f&&(s(u),s(a)),o&&s(c),i&16){const m=o||!_n(p);for(let g=0;g{e.isMounted=!0}),El(()=>{e.isUnmounting=!0}),e}const $e=[Function,Array],dl={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:$e,onEnter:$e,onAfterEnter:$e,onEnterCancelled:$e,onBeforeLeave:$e,onLeave:$e,onAfterLeave:$e,onLeaveCancelled:$e,onBeforeAppear:$e,onAppear:$e,onAfterAppear:$e,onAppearCancelled:$e},hl=e=>{const t=e.subTree;return t.component?hl(t.component):t},Ia={name:"BaseTransition",props:dl,setup(e,{slots:t}){const n=qs(),r=Na();return()=>{const s=t.default&&gl(t.default(),!0);if(!s||!s.length)return;const o=pl(s),i=re(e),{mode:l}=i;if(r.isLeaving)return kr(o);const c=ao(o);if(!c)return kr(o);let u=ls(c,i,r,n,f=>u=f);c.type!==ve&&xn(c,u);let a=n.subTree&&ao(n.subTree);if(a&&a.type!==ve&&!Ut(a,c)&&hl(n).type!==ve){let f=ls(a,i,r,n);if(xn(a,f),l==="out-in"&&c.type!==ve)return r.isLeaving=!0,f.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete f.afterLeave,a=void 0},kr(o);l==="in-out"&&c.type!==ve?f.delayLeave=(p,m,g)=>{const _=ml(r,a);_[String(a.key)]=a,p[pt]=()=>{m(),p[pt]=void 0,delete u.delayedLeave,a=void 0},u.delayedLeave=()=>{g(),delete u.delayedLeave,a=void 0}}:a=void 0}else a&&(a=void 0);return o}}};function pl(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==ve){t=n;break}}return t}const La=Ia;function ml(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function ls(e,t,n,r,s){const{appear:o,mode:i,persisted:l=!1,onBeforeEnter:c,onEnter:u,onAfterEnter:a,onEnterCancelled:f,onBeforeLeave:p,onLeave:m,onAfterLeave:g,onLeaveCancelled:_,onBeforeAppear:E,onAppear:C,onAfterAppear:T,onAppearCancelled:N}=t,x=String(e.key),U=ml(n,e),G=(O,k)=>{O&&ze(O,r,9,k)},H=(O,k)=>{const Y=k[1];G(O,k),K(O)?O.every(L=>L.length<=1)&&Y():O.length<=1&&Y()},j={mode:i,persisted:l,beforeEnter(O){let k=c;if(!n.isMounted)if(o)k=E||c;else return;O[pt]&&O[pt](!0);const Y=U[x];Y&&Ut(e,Y)&&Y.el[pt]&&Y.el[pt](),G(k,[O])},enter(O){let k=u,Y=a,L=f;if(!n.isMounted)if(o)k=C||u,Y=T||a,L=N||f;else return;let Q=!1;const le=O[Wn]=_e=>{Q||(Q=!0,_e?G(L,[O]):G(Y,[O]),j.delayedLeave&&j.delayedLeave(),O[Wn]=void 0)};k?H(k,[O,le]):le()},leave(O,k){const Y=String(e.key);if(O[Wn]&&O[Wn](!0),n.isUnmounting)return k();G(p,[O]);let L=!1;const Q=O[pt]=le=>{L||(L=!0,k(),le?G(_,[O]):G(g,[O]),O[pt]=void 0,U[Y]===e&&delete U[Y])};U[Y]=e,m?H(m,[O,Q]):Q()},clone(O){const k=ls(O,t,n,r,s);return s&&s(k),k}};return j}function kr(e){if(vr(e))return e=It(e),e.children=null,e}function ao(e){if(!vr(e))return al(e.type)&&e.children?pl(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&J(n.default))return n.default()}}function xn(e,t){e.shapeFlag&6&&e.component?(e.transition=t,xn(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 gl(e,t=!1,n){let r=[],s=0;for(let o=0;o1)for(let o=0;oEn(g,t&&(K(t)?t[_]:t),n,r,s));return}if(tn(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&En(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?Or(r.component):r.el,i=s?null:o,{i:l,r:c}=e,u=t&&t.r,a=l.refs===ce?l.refs={}:l.refs,f=l.setupState,p=re(f),m=f===ce?Ai:g=>oe(p,g);if(u!=null&&u!==c){if(uo(t),pe(u))a[u]=null,m(u)&&(f[u]=null);else if(de(u)){u.value=null;const g=t;g.k&&(a[g.k]=null)}}if(J(c))Mn(c,l,12,[i,a]);else{const g=pe(c),_=de(c);if(g||_){const E=()=>{if(e.f){const C=g?m(c)?f[c]:a[c]:c.value;if(s)K(C)&&Cs(C,o);else if(K(C))C.includes(o)||C.push(o);else if(g)a[c]=[o],m(c)&&(f[c]=a[c]);else{const T=[o];c.value=T,e.k&&(a[e.k]=T)}}else g?(a[c]=i,m(c)&&(f[c]=i)):_&&(c.value=i,e.k&&(a[e.k]=i))};if(i){const C=()=>{E(),cr.delete(e)};C.id=-1,cr.set(e,C),Oe(C,n)}else uo(e),E()}}}function uo(e){const t=cr.get(e);t&&(t.flags|=8,cr.delete(e))}_r().requestIdleCallback;_r().cancelIdleCallback;const tn=e=>!!e.type.__asyncLoader,vr=e=>e.type.__isKeepAlive;function Da(e,t){bl(e,"a",t)}function Fa(e,t){bl(e,"da",t)}function bl(e,t,n=Pe){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Ar(t,r,n),n){let s=n.parent;for(;s&&s.parent;)vr(s.parent.vnode)&&Ma(r,t,n,s),s=s.parent}}function Ma(e,t,n,r){const s=Ar(t,e,r,!0);wl(()=>{Cs(r[t],s)},n)}function Ar(e,t,n=Pe,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{yt();const l=Bn(n),c=ze(t,n,e,i);return l(),bt(),c});return r?s.unshift(o):s.push(o),o}}const wt=e=>(t,n=Pe)=>{(!In||e==="sp")&&Ar(e,(...r)=>t(...r),n)},Ba=wt("bm"),_l=wt("m"),Ua=wt("bu"),ja=wt("u"),El=wt("bum"),wl=wt("um"),Ha=wt("sp"),ka=wt("rtg"),Va=wt("rtc");function $a(e,t=Pe){Ar("ec",e,t)}const qa=Symbol.for("v-ndc");function op(e,t,n,r){let s;const o=n,i=K(e);if(i||pe(e)){const l=i&&at(e);let c=!1,u=!1;l&&(c=!He(e),u=_t(e),e=Er(e)),s=new Array(e.length);for(let a=0,f=e.length;at(l,c,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let c=0,u=l.length;c0;return ur(),dr(De,null,[Ne("slot",n,r)],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),ur();const i=o&&Sl(o(n)),l=n.key||i&&i.key,c=dr(De,{key:(l&&!Et(l)?l:`_${t}`)+(!i&&r?"_fb":"")},i||[],i&&e._===1?64:-2);return c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),o&&o._c&&(o._d=!0),c}function Sl(e){return e.some(t=>Nn(t)?!(t.type===ve||t.type===De&&!Sl(t.children)):!0)?e:null}const cs=e=>e?kl(e)?Or(e):cs(e.parent):null,wn=Ee(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=>cs(e.parent),$root:e=>cs(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Al(e),$forceUpdate:e=>e.f||(e.f=()=>{Us(e.update)}),$nextTick:e=>e.n||(e.n=Bs.bind(e.proxy)),$watch:e=>xa.bind(e)}),Vr=(e,t)=>e!==ce&&!e.__isScriptSetup&&oe(e,t),Ka={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,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 r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(Vr(r,t))return i[t]=1,r[t];if(s!==ce&&oe(s,t))return i[t]=2,s[t];if(oe(o,t))return i[t]=3,o[t];if(n!==ce&&oe(n,t))return i[t]=4,n[t];as&&(i[t]=0)}}const u=wn[t];let a,f;if(u)return t==="$attrs"&&Se(e.attrs,"get",""),u(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==ce&&oe(n,t))return i[t]=4,n[t];if(f=c.config.globalProperties,oe(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return Vr(s,t)?(s[t]=n,!0):r!==ce&&oe(r,t)?(r[t]=n,!0):oe(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:o,type:i}},l){let c;return!!(n[l]||e!==ce&&l[0]!=="$"&&oe(e,l)||Vr(t,l)||oe(o,l)||oe(r,l)||oe(wn,l)||oe(s.config.globalProperties,l)||(c=i.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:oe(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function fo(e){return K(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let as=!0;function Wa(e){const t=Al(e),n=e.proxy,r=e.ctx;as=!1,t.beforeCreate&&ho(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:u,created:a,beforeMount:f,mounted:p,beforeUpdate:m,updated:g,activated:_,deactivated:E,beforeDestroy:C,beforeUnmount:T,destroyed:N,unmounted:x,render:U,renderTracked:G,renderTriggered:H,errorCaptured:j,serverPrefetch:O,expose:k,inheritAttrs:Y,components:L,directives:Q,filters:le}=t;if(u&&Ga(u,r,null),i)for(const z in i){const Z=i[z];J(Z)&&(r[z]=Z.bind(n))}if(s){const z=s.call(n,n);ae(z)&&(e.data=Fn(z))}if(as=!0,o)for(const z in o){const Z=o[z],ke=J(Z)?Z.bind(n,n):J(Z.get)?Z.get.bind(n,n):ct,Qe=!J(Z)&&J(Z.set)?Z.set.bind(n):ct,ye=Ue({get:ke,set:Qe});Object.defineProperty(r,z,{enumerable:!0,configurable:!0,get:()=>ye.value,set:me=>ye.value=me})}if(l)for(const z in l)vl(l[z],r,n,z);if(c){const z=J(c)?c.call(n):c;Reflect.ownKeys(z).forEach(Z=>{Xn(Z,z[Z])})}a&&ho(a,e,"c");function ee(z,Z){K(Z)?Z.forEach(ke=>z(ke.bind(n))):Z&&z(Z.bind(n))}if(ee(Ba,f),ee(_l,p),ee(Ua,m),ee(ja,g),ee(Da,_),ee(Fa,E),ee($a,j),ee(Va,G),ee(ka,H),ee(El,T),ee(wl,x),ee(Ha,O),K(k))if(k.length){const z=e.exposed||(e.exposed={});k.forEach(Z=>{Object.defineProperty(z,Z,{get:()=>n[Z],set:ke=>n[Z]=ke,enumerable:!0})})}else e.exposed||(e.exposed={});U&&e.render===ct&&(e.render=U),Y!=null&&(e.inheritAttrs=Y),L&&(e.components=L),Q&&(e.directives=Q),O&&yl(e)}function Ga(e,t,n=ct){K(e)&&(e=us(e));for(const r in e){const s=e[r];let o;ae(s)?"default"in s?o=qe(s.from||r,s.default,!0):o=qe(s.from||r):o=qe(s),de(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function ho(e,t,n){ze(K(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function vl(e,t,n,r){let s=r.includes(".")?ll(n,r):()=>n[r];if(pe(e)){const o=t[e];J(o)&&bn(s,o)}else if(J(e))bn(s,e.bind(n));else if(ae(e))if(K(e))e.forEach(o=>vl(o,t,n,r));else{const o=J(e.handler)?e.handler.bind(n):t[e.handler];J(o)&&bn(s,o,e)}}function Al(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>ar(c,u,i,!0)),ar(c,t,i)),ae(t)&&o.set(t,c),c}function ar(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&ar(e,o,n,!0),s&&s.forEach(i=>ar(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=za[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const za={data:po,props:mo,emits:mo,methods:pn,computed:pn,beforeCreate:Ce,created:Ce,beforeMount:Ce,mounted:Ce,beforeUpdate:Ce,updated:Ce,beforeDestroy:Ce,beforeUnmount:Ce,destroyed:Ce,unmounted:Ce,activated:Ce,deactivated:Ce,errorCaptured:Ce,serverPrefetch:Ce,components:pn,directives:pn,watch:Xa,provide:po,inject:Ja};function po(e,t){return t?e?function(){return Ee(J(e)?e.call(this,this):e,J(t)?t.call(this,this):t)}:t:e}function Ja(e,t){return pn(us(e),us(t))}function us(e){if(K(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Nt(t)}Modifiers`]||e[`${Wt(t)}Modifiers`];function eu(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||ce;let s=n;const o=t.startsWith("update:"),i=o&&Za(r,t.slice(7));i&&(i.trim&&(s=n.map(a=>pe(a)?a.trim():a)),i.number&&(s=n.map(Os)));let l,c=r[l=Mr(t)]||r[l=Mr(Nt(t))];!c&&o&&(c=r[l=Mr(Wt(t))]),c&&ze(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,ze(u,e,6,s)}}const tu=new WeakMap;function Cl(e,t,n=!1){const r=n?tu:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!J(e)){const c=u=>{const a=Cl(u,t,!0);a&&(l=!0,Ee(i,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(ae(e)&&r.set(e,null),null):(K(o)?o.forEach(c=>i[c]=null):Ee(i,o),ae(e)&&r.set(e,i),i)}function Rr(e,t){return!e||!mr(t)?!1:(t=t.slice(2).replace(/Once$/,""),oe(e,t[0].toLowerCase()+t.slice(1))||oe(e,Wt(t))||oe(e,t))}function go(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:a,props:f,data:p,setupState:m,ctx:g,inheritAttrs:_}=e,E=lr(e);let C,T;try{if(n.shapeFlag&4){const x=s||r,U=x;C=lt(u.call(U,x,a,f,m,p,g)),T=l}else{const x=t;C=lt(x.length>1?x(f,{attrs:l,slots:i,emit:c}):x(f,null)),T=t.props?l:nu(l)}}catch(x){Sn.length=0,Sr(x,e,1),C=Ne(ve)}let N=C;if(T&&_!==!1){const x=Object.keys(T),{shapeFlag:U}=N;x.length&&U&7&&(o&&x.some(Rs)&&(T=ru(T,o)),N=It(N,T,!1,!0))}return n.dirs&&(N=It(N,null,!1,!0),N.dirs=N.dirs?N.dirs.concat(n.dirs):n.dirs),n.transition&&xn(N,n.transition),C=N,lr(E),C}const nu=e=>{let t;for(const n in e)(n==="class"||n==="style"||mr(n))&&((t||(t={}))[n]=e[n]);return t},ru=(e,t)=>{const n={};for(const r in e)(!Rs(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function su(e,t,n){const{props:r,children:s,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 r?yo(r,i,u):!!i;if(c&8){const a=t.dynamicProps;for(let f=0;fObject.create(Ol),xl=e=>Object.getPrototypeOf(e)===Ol;function iu(e,t,n,r=!1){const s={},o=Tl();e.propsDefaults=Object.create(null),Pl(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:Qi(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function lu(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=re(s),[c]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const a=e.vnode.dynamicProps;for(let f=0;f{c=!0;const[p,m]=Nl(f,t,!0);Ee(i,p),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!c)return ae(e)&&r.set(e,Yt),Yt;if(K(o))for(let a=0;ae==="_"||e==="_ctx"||e==="$stable",ks=e=>K(e)?e.map(lt):[lt(e)],au=(e,t,n)=>{if(t._n)return t;const r=Ra((...s)=>ks(t(...s)),n);return r._c=!1,r},Il=(e,t,n)=>{const r=e._ctx;for(const s in e){if(Hs(s))continue;const o=e[s];if(J(o))t[s]=au(s,o,r);else if(o!=null){const i=ks(o);t[s]=()=>i}}},Ll=(e,t)=>{const n=ks(t);e.slots.default=()=>n},Dl=(e,t,n)=>{for(const r in t)(n||!Hs(r))&&(e[r]=t[r])},uu=(e,t,n)=>{const r=e.slots=Tl();if(e.vnode.shapeFlag&32){const s=t._;s?(Dl(r,t,n),n&&Pi(r,"_",s,!0)):Il(t,r)}else t&&Ll(e,t)},fu=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=ce;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:Dl(s,t,n):(o=!t.$stable,Il(t,s)),i=t}else t&&(Ll(e,t),i={default:1});if(o)for(const l in s)!Hs(l)&&i[l]==null&&delete s[l]},Oe=gu;function du(e){return hu(e)}function hu(e,t){const n=_r();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:a,parentNode:f,nextSibling:p,setScopeId:m=ct,insertStaticContent:g}=e,_=(d,h,y,w=null,A=null,S=null,D=void 0,I=null,P=!!h.dynamicChildren)=>{if(d===h)return;d&&!Ut(d,h)&&(w=v(d),me(d,A,S,!0),d=null),h.patchFlag===-2&&(P=!1,h.dynamicChildren=null);const{type:R,ref:q,shapeFlag:M}=h;switch(R){case Cr:E(d,h,y,w);break;case ve:C(d,h,y,w);break;case Yn:d==null&&T(h,y,w,D);break;case De:L(d,h,y,w,A,S,D,I,P);break;default:M&1?U(d,h,y,w,A,S,D,I,P):M&6?Q(d,h,y,w,A,S,D,I,P):(M&64||M&128)&&R.process(d,h,y,w,A,S,D,I,P,V)}q!=null&&A?En(q,d&&d.ref,S,h||d,!h):q==null&&d&&d.ref!=null&&En(d.ref,null,S,d,!0)},E=(d,h,y,w)=>{if(d==null)r(h.el=l(h.children),y,w);else{const A=h.el=d.el;h.children!==d.children&&u(A,h.children)}},C=(d,h,y,w)=>{d==null?r(h.el=c(h.children||""),y,w):h.el=d.el},T=(d,h,y,w)=>{[d.el,d.anchor]=g(d.children,h,y,w,d.el,d.anchor)},N=({el:d,anchor:h},y,w)=>{let A;for(;d&&d!==h;)A=p(d),r(d,y,w),d=A;r(h,y,w)},x=({el:d,anchor:h})=>{let y;for(;d&&d!==h;)y=p(d),s(d),d=y;s(h)},U=(d,h,y,w,A,S,D,I,P)=>{if(h.type==="svg"?D="svg":h.type==="math"&&(D="mathml"),d==null)G(h,y,w,A,S,D,I,P);else{const R=d.el&&d.el._isVueCE?d.el:null;try{R&&R._beginPatch(),O(d,h,A,S,D,I,P)}finally{R&&R._endPatch()}}},G=(d,h,y,w,A,S,D,I)=>{let P,R;const{props:q,shapeFlag:M,transition:$,dirs:W}=d;if(P=d.el=i(d.type,S,q&&q.is,q),M&8?a(P,d.children):M&16&&j(d.children,P,null,w,A,$r(d,S),D,I),W&&Lt(d,null,w,"created"),H(P,d,d.scopeId,D,w),q){for(const ue in q)ue!=="value"&&!mn(ue)&&o(P,ue,null,q[ue],S,w);"value"in q&&o(P,"value",null,q.value,S),(R=q.onVnodeBeforeMount)&&rt(R,w,d)}W&&Lt(d,null,w,"beforeMount");const ne=pu(A,$);ne&&$.beforeEnter(P),r(P,h,y),((R=q&&q.onVnodeMounted)||ne||W)&&Oe(()=>{R&&rt(R,w,d),ne&&$.enter(P),W&&Lt(d,null,w,"mounted")},A)},H=(d,h,y,w,A)=>{if(y&&m(d,y),w)for(let S=0;S{for(let R=P;R{const I=h.el=d.el;let{patchFlag:P,dynamicChildren:R,dirs:q}=h;P|=d.patchFlag&16;const M=d.props||ce,$=h.props||ce;let W;if(y&&Dt(y,!1),(W=$.onVnodeBeforeUpdate)&&rt(W,y,h,d),q&&Lt(h,d,y,"beforeUpdate"),y&&Dt(y,!0),(M.innerHTML&&$.innerHTML==null||M.textContent&&$.textContent==null)&&a(I,""),R?k(d.dynamicChildren,R,I,y,w,$r(h,A),S):D||Z(d,h,I,null,y,w,$r(h,A),S,!1),P>0){if(P&16)Y(I,M,$,y,A);else if(P&2&&M.class!==$.class&&o(I,"class",null,$.class,A),P&4&&o(I,"style",M.style,$.style,A),P&8){const ne=h.dynamicProps;for(let ue=0;ue{W&&rt(W,y,h,d),q&&Lt(h,d,y,"updated")},w)},k=(d,h,y,w,A,S,D)=>{for(let I=0;I{if(h!==y){if(h!==ce)for(const S in h)!mn(S)&&!(S in y)&&o(d,S,h[S],null,A,w);for(const S in y){if(mn(S))continue;const D=y[S],I=h[S];D!==I&&S!=="value"&&o(d,S,I,D,A,w)}"value"in y&&o(d,"value",h.value,y.value,A)}},L=(d,h,y,w,A,S,D,I,P)=>{const R=h.el=d?d.el:l(""),q=h.anchor=d?d.anchor:l("");let{patchFlag:M,dynamicChildren:$,slotScopeIds:W}=h;W&&(I=I?I.concat(W):W),d==null?(r(R,y,w),r(q,y,w),j(h.children||[],y,q,A,S,D,I,P)):M>0&&M&64&&$&&d.dynamicChildren&&d.dynamicChildren.length===$.length?(k(d.dynamicChildren,$,y,A,S,D,I),(h.key!=null||A&&h===A.subTree)&&Vs(d,h,!0)):Z(d,h,y,q,A,S,D,I,P)},Q=(d,h,y,w,A,S,D,I,P)=>{h.slotScopeIds=I,d==null?h.shapeFlag&512?A.ctx.activate(h,y,w,D,P):le(h,y,w,A,S,D,P):_e(d,h,P)},le=(d,h,y,w,A,S,D)=>{const I=d.component=Au(d,w,A);if(vr(d)&&(I.ctx.renderer=V),Ru(I,!1,D),I.asyncDep){if(A&&A.registerDep(I,ee,D),!d.el){const P=I.subTree=Ne(ve);C(null,P,h,y),d.placeholder=P.el}}else ee(I,d,h,y,A,S,D)},_e=(d,h,y)=>{const w=h.component=d.component;if(su(d,h,y))if(w.asyncDep&&!w.asyncResolved){z(w,h,y);return}else w.next=h,w.update();else h.el=d.el,w.vnode=h},ee=(d,h,y,w,A,S,D)=>{const I=()=>{if(d.isMounted){let{next:M,bu:$,u:W,parent:ne,vnode:ue}=d;{const tt=Fl(d);if(tt){M&&(M.el=ue.el,z(d,M,D)),tt.asyncDep.then(()=>{d.isUnmounted||I()});return}}let ie=M,Ie;Dt(d,!1),M?(M.el=ue.el,z(d,M,D)):M=ue,$&&Jn($),(Ie=M.props&&M.props.onVnodeBeforeUpdate)&&rt(Ie,ne,M,ue),Dt(d,!0);const Le=go(d),et=d.subTree;d.subTree=Le,_(et,Le,f(et.el),v(et),d,A,S),M.el=Le.el,ie===null&&ou(d,Le.el),W&&Oe(W,A),(Ie=M.props&&M.props.onVnodeUpdated)&&Oe(()=>rt(Ie,ne,M,ue),A)}else{let M;const{el:$,props:W}=h,{bm:ne,m:ue,parent:ie,root:Ie,type:Le}=d,et=tn(h);Dt(d,!1),ne&&Jn(ne),!et&&(M=W&&W.onVnodeBeforeMount)&&rt(M,ie,h),Dt(d,!0);{Ie.ce&&Ie.ce._def.shadowRoot!==!1&&Ie.ce._injectChildStyle(Le);const tt=d.subTree=go(d);_(null,tt,y,w,d,A,S),h.el=tt.el}if(ue&&Oe(ue,A),!et&&(M=W&&W.onVnodeMounted)){const tt=h;Oe(()=>rt(M,ie,tt),A)}(h.shapeFlag&256||ie&&tn(ie.vnode)&&ie.vnode.shapeFlag&256)&&d.a&&Oe(d.a,A),d.isMounted=!0,h=y=w=null}};d.scope.on();const P=d.effect=new Bi(I);d.scope.off();const R=d.update=P.run.bind(P),q=d.job=P.runIfDirty.bind(P);q.i=d,q.id=d.uid,P.scheduler=()=>Us(q),Dt(d,!0),R()},z=(d,h,y)=>{h.component=d;const w=d.vnode.props;d.vnode=h,d.next=null,lu(d,h.props,w,y),fu(d,h.children,y),yt(),oo(d),bt()},Z=(d,h,y,w,A,S,D,I,P=!1)=>{const R=d&&d.children,q=d?d.shapeFlag:0,M=h.children,{patchFlag:$,shapeFlag:W}=h;if($>0){if($&128){Qe(R,M,y,w,A,S,D,I,P);return}else if($&256){ke(R,M,y,w,A,S,D,I,P);return}}W&8?(q&16&&Ve(R,A,S),M!==R&&a(y,M)):q&16?W&16?Qe(R,M,y,w,A,S,D,I,P):Ve(R,A,S,!0):(q&8&&a(y,""),W&16&&j(M,y,w,A,S,D,I,P))},ke=(d,h,y,w,A,S,D,I,P)=>{d=d||Yt,h=h||Yt;const R=d.length,q=h.length,M=Math.min(R,q);let $;for($=0;$q?Ve(d,A,S,!0,!1,M):j(h,y,w,A,S,D,I,P,M)},Qe=(d,h,y,w,A,S,D,I,P)=>{let R=0;const q=h.length;let M=d.length-1,$=q-1;for(;R<=M&&R<=$;){const W=d[R],ne=h[R]=P?Ot(h[R]):lt(h[R]);if(Ut(W,ne))_(W,ne,y,null,A,S,D,I,P);else break;R++}for(;R<=M&&R<=$;){const W=d[M],ne=h[$]=P?Ot(h[$]):lt(h[$]);if(Ut(W,ne))_(W,ne,y,null,A,S,D,I,P);else break;M--,$--}if(R>M){if(R<=$){const W=$+1,ne=W$)for(;R<=M;)me(d[R],A,S,!0),R++;else{const W=R,ne=R,ue=new Map;for(R=ne;R<=$;R++){const Be=h[R]=P?Ot(h[R]):lt(h[R]);Be.key!=null&&ue.set(Be.key,R)}let ie,Ie=0;const Le=$-ne+1;let et=!1,tt=0;const an=new Array(Le);for(R=0;R=Le){me(Be,A,S,!0);continue}let nt;if(Be.key!=null)nt=ue.get(Be.key);else for(ie=ne;ie<=$;ie++)if(an[ie-ne]===0&&Ut(Be,h[ie])){nt=ie;break}nt===void 0?me(Be,A,S,!0):(an[nt-ne]=R+1,nt>=tt?tt=nt:et=!0,_(Be,h[nt],y,null,A,S,D,I,P),Ie++)}const Zs=et?mu(an):Yt;for(ie=Zs.length-1,R=Le-1;R>=0;R--){const Be=ne+R,nt=h[Be],eo=h[Be+1],to=Be+1{const{el:S,type:D,transition:I,children:P,shapeFlag:R}=d;if(R&6){ye(d.component.subTree,h,y,w);return}if(R&128){d.suspense.move(h,y,w);return}if(R&64){D.move(d,h,y,V);return}if(D===De){r(S,h,y);for(let M=0;MI.enter(S),A);else{const{leave:M,delayLeave:$,afterLeave:W}=I,ne=()=>{d.ctx.isUnmounted?s(S):r(S,h,y)},ue=()=>{S._isLeaving&&S[pt](!0),M(S,()=>{ne(),W&&W()})};$?$(S,ne,ue):ue()}else r(S,h,y)},me=(d,h,y,w=!1,A=!1)=>{const{type:S,props:D,ref:I,children:P,dynamicChildren:R,shapeFlag:q,patchFlag:M,dirs:$,cacheIndex:W}=d;if(M===-2&&(A=!1),I!=null&&(yt(),En(I,null,y,d,!0),bt()),W!=null&&(h.renderCache[W]=void 0),q&256){h.ctx.deactivate(d);return}const ne=q&1&&$,ue=!tn(d);let ie;if(ue&&(ie=D&&D.onVnodeBeforeUnmount)&&rt(ie,h,d),q&6)Ze(d.component,y,w);else{if(q&128){d.suspense.unmount(y,w);return}ne&&Lt(d,null,h,"beforeUnmount"),q&64?d.type.remove(d,h,y,V,w):R&&!R.hasOnce&&(S!==De||M>0&&M&64)?Ve(R,h,y,!1,!0):(S===De&&M&384||!A&&q&16)&&Ve(P,h,y),w&&Ye(d)}(ue&&(ie=D&&D.onVnodeUnmounted)||ne)&&Oe(()=>{ie&&rt(ie,h,d),ne&&Lt(d,null,h,"unmounted")},y)},Ye=d=>{const{type:h,el:y,anchor:w,transition:A}=d;if(h===De){Ke(y,w);return}if(h===Yn){x(d);return}const S=()=>{s(y),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(d.shapeFlag&1&&A&&!A.persisted){const{leave:D,delayLeave:I}=A,P=()=>D(y,S);I?I(d.el,S,P):P()}else S()},Ke=(d,h)=>{let y;for(;d!==h;)y=p(d),s(d),d=y;s(h)},Ze=(d,h,y)=>{const{bum:w,scope:A,job:S,subTree:D,um:I,m:P,a:R}=d;_o(P),_o(R),w&&Jn(w),A.stop(),S&&(S.flags|=8,me(D,d,h,y)),I&&Oe(I,h),Oe(()=>{d.isUnmounted=!0},h)},Ve=(d,h,y,w=!1,A=!1,S=0)=>{for(let D=S;D{if(d.shapeFlag&6)return v(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const h=p(d.anchor||d.el),y=h&&h[cl];return y?p(y):h};let B=!1;const F=(d,h,y)=>{let w;d==null?h._vnode&&(me(h._vnode,null,null,!0),w=h._vnode.component):_(h._vnode||null,d,h,null,null,null,y),h._vnode=d,B||(B=!0,oo(w),rl(),B=!1)},V={p:_,um:me,m:ye,r:Ye,mt:le,mc:j,pc:Z,pbc:k,n:v,o:e};return{render:F,hydrate:void 0,createApp:Ya(F)}}function $r({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 Dt({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function pu(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Vs(e,t,n=!1){const r=e.children,s=t.children;if(K(r)&&K(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Fl(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Fl(t)}function _o(e){if(e)for(let t=0;te.__isSuspense;function gu(e,t){t&&t.pendingBranch?K(e)?t.effects.push(...e):t.effects.push(e):Aa(e)}const De=Symbol.for("v-fgt"),Cr=Symbol.for("v-txt"),ve=Symbol.for("v-cmt"),Yn=Symbol.for("v-stc"),Sn=[];let je=null;function ur(e=!1){Sn.push(je=e?null:[])}function yu(){Sn.pop(),je=Sn[Sn.length-1]||null}let Pn=1;function fr(e,t=!1){Pn+=e,e<0&&je&&t&&(je.hasOnce=!0)}function Ul(e){return e.dynamicChildren=Pn>0?je||Yt:null,yu(),Pn>0&&je&&je.push(e),e}function lp(e,t,n,r,s,o){return Ul(Hl(e,t,n,r,s,o,!0))}function dr(e,t,n,r,s){return Ul(Ne(e,t,n,r,s,!0))}function Nn(e){return e?e.__v_isVNode===!0:!1}function Ut(e,t){return e.type===t.type&&e.key===t.key}const jl=({key:e})=>e??null,Zn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?pe(e)||de(e)||J(e)?{i:Re,r:e,k:t,f:!!n}:e:null);function Hl(e,t=null,n=null,r=0,s=null,o=e===De?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&jl(t),ref:t&&Zn(t),scopeId:ol,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:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Re};return l?($s(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=pe(n)?8:16),Pn>0&&!i&&je&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&je.push(c),c}const Ne=bu;function bu(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===qa)&&(e=ve),Nn(e)){const l=It(e,t,!0);return n&&$s(l,n),Pn>0&&!o&&je&&(l.shapeFlag&6?je[je.indexOf(e)]=l:je.push(l)),l.patchFlag=-2,l}if(xu(e)&&(e=e.__vccOpts),t){t=_u(t);let{class:l,style:c}=t;l&&!pe(l)&&(t.class=xs(l)),ae(c)&&(wr(c)&&!K(c)&&(c=Ee({},c)),t.style=Ts(c))}const i=pe(e)?1:Bl(e)?128:al(e)?64:ae(e)?4:J(e)?2:0;return Hl(e,t,n,r,s,i,o,!0)}function _u(e){return e?wr(e)||xl(e)?Ee({},e):e:null}function It(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?wu(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&jl(u),ref:t&&t.ref?n&&o?K(o)?o.concat(Zn(t)):[o,Zn(t)]:Zn(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!==De?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&&It(e.ssContent),ssFallback:e.ssFallback&&It(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&xn(a,c.clone(a)),a}function Eu(e=" ",t=0){return Ne(Cr,null,e,t)}function cp(e,t){const n=Ne(Yn,null,e);return n.staticCount=t,n}function ap(e="",t=!1){return t?(ur(),dr(ve,null,e)):Ne(ve,null,e)}function lt(e){return e==null||typeof e=="boolean"?Ne(ve):K(e)?Ne(De,null,e.slice()):Nn(e)?Ot(e):Ne(Cr,null,String(e))}function Ot(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:It(e)}function $s(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(K(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),$s(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!xl(t)?t._ctx=Re:s===3&&Re&&(Re.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else J(t)?(t={default:t,_ctx:Re},n=32):(t=String(t),r&64?(n=16,t=[Eu(t)]):n=8);e.children=t,e.shapeFlag|=n}function wu(...e){const t={};for(let n=0;nPe||Re;let hr,ds;{const e=_r(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};hr=t("__VUE_INSTANCE_SETTERS__",n=>Pe=n),ds=t("__VUE_SSR_SETTERS__",n=>In=n)}const Bn=e=>{const t=Pe;return hr(e),e.scope.on(),()=>{e.scope.off(),hr(t)}},Eo=()=>{Pe&&Pe.scope.off(),hr(null)};function kl(e){return e.vnode.shapeFlag&4}let In=!1;function Ru(e,t=!1,n=!1){t&&ds(t);const{props:r,children:s}=e.vnode,o=kl(e);iu(e,r,o,t),uu(e,s,n||t);const i=o?Cu(e,t):void 0;return t&&ds(!1),i}function Cu(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Ka);const{setup:r}=n;if(r){yt();const s=e.setupContext=r.length>1?Tu(e):null,o=Bn(e),i=Mn(r,e,0,[e.props,s]),l=Ci(i);if(bt(),o(),(l||e.sp)&&!tn(e)&&yl(e),l){if(i.then(Eo,Eo),t)return i.then(c=>{wo(e,c)}).catch(c=>{Sr(c,e,0)});e.asyncDep=i}else wo(e,i)}else Vl(e)}function wo(e,t,n){J(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ae(t)&&(e.setupState=Zi(t)),Vl(e)}function Vl(e,t,n){const r=e.type;e.render||(e.render=r.render||ct);{const s=Bn(e);yt();try{Wa(e)}finally{bt(),s()}}}const Ou={get(e,t){return Se(e,"get",""),e[t]}};function Tu(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Ou),slots:e.slots,emit:e.emit,expose:t}}function Or(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Zi(Ms(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in wn)return wn[n](e)},has(t,n){return n in t||n in wn}})):e.proxy}function xu(e){return J(e)&&"__vccOpts"in e}const Ue=(e,t)=>_a(e,t,In);function Ks(e,t,n){try{fr(-1);const r=arguments.length;return r===2?ae(t)&&!K(t)?Nn(t)?Ne(e,null,[t]):Ne(e,t):Ne(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Nn(n)&&(n=[n]),Ne(e,t,n))}finally{fr(1)}}const Pu="3.5.26";let hs;const So=typeof window<"u"&&window.trustedTypes;if(So)try{hs=So.createPolicy("vue",{createHTML:e=>e})}catch{}const $l=hs?e=>hs.createHTML(e):e=>e,Nu="http://www.w3.org/2000/svg",Iu="http://www.w3.org/1998/Math/MathML",ht=typeof document<"u"?document:null,vo=ht&&ht.createElement("template"),Lu={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?ht.createElementNS(Nu,e):t==="mathml"?ht.createElementNS(Iu,e):n?ht.createElement(e,{is:n}):ht.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>ht.createTextNode(e),createComment:e=>ht.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ht.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{vo.innerHTML=$l(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=vo.content;if(r==="svg"||r==="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]}},St="transition",fn="animation",Ln=Symbol("_vtc"),ql={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Du=Ee({},dl,ql),Fu=e=>(e.displayName="Transition",e.props=Du,e),up=Fu((e,{slots:t})=>Ks(La,Mu(e),t)),Ft=(e,t=[])=>{K(e)?e.forEach(n=>n(...t)):e&&e(...t)},Ao=e=>e?K(e)?e.some(t=>t.length>1):e.length>1:!1;function Mu(e){const t={};for(const L in e)L in ql||(t[L]=e[L]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=o,appearActiveClass:u=i,appearToClass:a=l,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,g=Bu(s),_=g&&g[0],E=g&&g[1],{onBeforeEnter:C,onEnter:T,onEnterCancelled:N,onLeave:x,onLeaveCancelled:U,onBeforeAppear:G=C,onAppear:H=T,onAppearCancelled:j=N}=t,O=(L,Q,le,_e)=>{L._enterCancelled=_e,Mt(L,Q?a:l),Mt(L,Q?u:i),le&&le()},k=(L,Q)=>{L._isLeaving=!1,Mt(L,f),Mt(L,m),Mt(L,p),Q&&Q()},Y=L=>(Q,le)=>{const _e=L?H:T,ee=()=>O(Q,L,le);Ft(_e,[Q,ee]),Ro(()=>{Mt(Q,L?c:o),ft(Q,L?a:l),Ao(_e)||Co(Q,r,_,ee)})};return Ee(t,{onBeforeEnter(L){Ft(C,[L]),ft(L,o),ft(L,i)},onBeforeAppear(L){Ft(G,[L]),ft(L,c),ft(L,u)},onEnter:Y(!1),onAppear:Y(!0),onLeave(L,Q){L._isLeaving=!0;const le=()=>k(L,Q);ft(L,f),L._enterCancelled?(ft(L,p),xo(L)):(xo(L),ft(L,p)),Ro(()=>{L._isLeaving&&(Mt(L,f),ft(L,m),Ao(x)||Co(L,r,E,le))}),Ft(x,[L,le])},onEnterCancelled(L){O(L,!1,void 0,!0),Ft(N,[L])},onAppearCancelled(L){O(L,!0,void 0,!0),Ft(j,[L])},onLeaveCancelled(L){k(L),Ft(U,[L])}})}function Bu(e){if(e==null)return null;if(ae(e))return[qr(e.enter),qr(e.leave)];{const t=qr(e);return[t,t]}}function qr(e){return Bc(e)}function ft(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Ln]||(e[Ln]=new Set)).add(t)}function Mt(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[Ln];n&&(n.delete(t),n.size||(e[Ln]=void 0))}function Ro(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Uu=0;function Co(e,t,n,r){const s=e._endId=++Uu,o=()=>{s===e._endId&&r()};if(n!=null)return setTimeout(o,n);const{type:i,timeout:l,propCount:c}=ju(e,t);if(!i)return r();const u=i+"end";let a=0;const f=()=>{e.removeEventListener(u,p),o()},p=m=>{m.target===e&&++a>=c&&f()};setTimeout(()=>{a(n[g]||"").split(", "),s=r(`${St}Delay`),o=r(`${St}Duration`),i=Oo(s,o),l=r(`${fn}Delay`),c=r(`${fn}Duration`),u=Oo(l,c);let a=null,f=0,p=0;t===St?i>0&&(a=St,f=i,p=o.length):t===fn?u>0&&(a=fn,f=u,p=c.length):(f=Math.max(i,u),a=f>0?i>u?St:fn:null,p=a?a===St?o.length:c.length:0);const m=a===St&&/\b(?:transform|all)(?:,|$)/.test(r(`${St}Property`).toString());return{type:a,timeout:f,propCount:p,hasTransform:m}}function Oo(e,t){for(;e.lengthTo(n)+To(e[r])))}function To(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function xo(e){return(e?e.ownerDocument:document).body.offsetHeight}function Hu(e,t,n){const r=e[Ln];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Po=Symbol("_vod"),ku=Symbol("_vsh"),Vu=Symbol(""),$u=/(?:^|;)\s*display\s*:/;function qu(e,t,n){const r=e.style,s=pe(n);let o=!1;if(n&&!s){if(t)if(pe(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&er(r,l,"")}else for(const i in t)n[i]==null&&er(r,i,"");for(const i in n)i==="display"&&(o=!0),er(r,i,n[i])}else if(s){if(t!==n){const i=r[Vu];i&&(n+=";"+i),r.cssText=n,o=$u.test(n)}}else t&&e.removeAttribute("style");Po in e&&(e[Po]=o?r.display:"",e[ku]&&(r.display="none"))}const No=/\s*!important$/;function er(e,t,n){if(K(n))n.forEach(r=>er(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Ku(e,t);No.test(n)?e.setProperty(Wt(r),n.replace(No,""),"important"):e[r]=n}}const Io=["Webkit","Moz","ms"],Kr={};function Ku(e,t){const n=Kr[t];if(n)return n;let r=Nt(t);if(r!=="filter"&&r in e)return Kr[t]=r;r=xi(r);for(let s=0;sWr||(Ju.then(()=>Wr=0),Wr=Date.now());function Qu(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;ze(Yu(r,n.value),t,5,[r])};return n.value=e,n.attached=Xu(),n}function Yu(e,t){if(K(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const Uo=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Zu=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?Hu(e,r,i):t==="style"?qu(e,n,r):mr(t)?Rs(t)||Gu(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):ef(e,t,r,i))?(Fo(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Do(e,t,r,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!pe(r))?Fo(e,Nt(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Do(e,t,r,i))};function ef(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&Uo(t)&&J(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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return Uo(t)&&pe(n)?!1:t in e}const jo=e=>{const t=e.props["onUpdate:modelValue"]||!1;return K(t)?n=>Jn(t,n):t};function tf(e){e.target.composing=!0}function Ho(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Gr=Symbol("_assign");function ko(e,t,n){return t&&(e=e.trim()),n&&(e=Os(e)),e}const fp={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Gr]=jo(s);const o=r||s.props&&s.props.type==="number";Xt(e,t?"change":"input",i=>{i.target.composing||e[Gr](ko(e.value,n,o))}),(n||o)&&Xt(e,"change",()=>{e.value=ko(e.value,n,o)}),t||(Xt(e,"compositionstart",tf),Xt(e,"compositionend",Ho),Xt(e,"change",Ho))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Gr]=jo(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?Os(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},nf=["ctrl","shift","alt","meta"],rf={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>nf.some(n=>e[`${n}Key`]&&!t.includes(n))},dp=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const t=of().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=af(r);if(!s)return;const o=t._component;!J(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,cf(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t});function cf(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function af(e){return pe(e)?document.querySelector(e):e}let Kl;const Tr=e=>Kl=e,Wl=Symbol();function ps(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var vn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(vn||(vn={}));function uf(){const e=Fi(!0),t=e.run(()=>Vt({}));let n=[],r=[];const s=Ms({install(o){Tr(s),s._a=o,o.provide(Wl,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const Gl=()=>{};function $o(e,t,n,r=Gl){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&Mi()&&Kc(s),s}function zt(e,...t){e.forEach(n=>{n(...t)})}const ff=e=>e(),qo=Symbol(),zr=Symbol();function ms(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];ps(s)&&ps(r)&&e.hasOwnProperty(n)&&!de(r)&&!at(r)?e[n]=ms(s,r):e[n]=r}return e}const df=Symbol();function hf(e){return!ps(e)||!Object.prototype.hasOwnProperty.call(e,df)}const{assign:At}=Object;function pf(e){return!!(de(e)&&e.effect)}function mf(e,t,n,r){const{state:s,actions:o,getters:i}=t,l=n.state.value[e];let c;function u(){l||(n.state.value[e]=s?s():{});const a=pa(n.state.value[e]);return At(a,o,Object.keys(i||{}).reduce((f,p)=>(f[p]=Ms(Ue(()=>{Tr(n);const m=n._s.get(e);return i[p].call(m,m)})),f),{}))}return c=zl(e,u,t,n,r,!0),c}function zl(e,t,n={},r,s,o){let i;const l=At({actions:{}},n),c={deep:!0};let u,a,f=new Set,p=new Set,m;const g=r.state.value[e];!o&&!g&&(r.state.value[e]={}),Vt({});let _;function E(j){let O;u=a=!1,typeof j=="function"?(j(r.state.value[e]),O={type:vn.patchFunction,storeId:e,events:m}):(ms(r.state.value[e],j),O={type:vn.patchObject,payload:j,storeId:e,events:m});const k=_=Symbol();Bs().then(()=>{_===k&&(u=!0)}),a=!0,zt(f,O,r.state.value[e])}const C=o?function(){const{state:O}=n,k=O?O():{};this.$patch(Y=>{At(Y,k)})}:Gl;function T(){i.stop(),f.clear(),p.clear(),r._s.delete(e)}const N=(j,O="")=>{if(qo in j)return j[zr]=O,j;const k=function(){Tr(r);const Y=Array.from(arguments),L=new Set,Q=new Set;function le(z){L.add(z)}function _e(z){Q.add(z)}zt(p,{args:Y,name:k[zr],store:U,after:le,onError:_e});let ee;try{ee=j.apply(this&&this.$id===e?this:U,Y)}catch(z){throw zt(Q,z),z}return ee instanceof Promise?ee.then(z=>(zt(L,z),z)).catch(z=>(zt(Q,z),Promise.reject(z))):(zt(L,ee),ee)};return k[qo]=!0,k[zr]=O,k},x={_p:r,$id:e,$onAction:$o.bind(null,p),$patch:E,$reset:C,$subscribe(j,O={}){const k=$o(f,j,O.detached,()=>Y()),Y=i.run(()=>bn(()=>r.state.value[e],L=>{(O.flush==="sync"?a:u)&&j({storeId:e,type:vn.direct,events:m},L)},At({},c,O)));return k},$dispose:T},U=Fn(x);r._s.set(e,U);const H=(r._a&&r._a.runWithContext||ff)(()=>r._e.run(()=>(i=Fi()).run(()=>t({action:N}))));for(const j in H){const O=H[j];if(de(O)&&!pf(O)||at(O))o||(g&&hf(O)&&(de(O)?O.value=g[j]:ms(O,g[j])),r.state.value[e][j]=O);else if(typeof O=="function"){const k=N(O,j);H[j]=k,l.actions[j]=O}}return At(U,H),At(re(U),H),Object.defineProperty(U,"$state",{get:()=>r.state.value[e],set:j=>{E(O=>{At(O,j)})}}),r._p.forEach(j=>{At(U,i.run(()=>j({store:U,app:r._a,pinia:r,options:l})))}),g&&o&&n.hydrate&&n.hydrate(U.$state,g),u=!0,a=!0,U}function gf(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,l){const c=Ca();return i=i||(c?qe(Wl,null):null),i&&Tr(i),i=Kl,i._s.has(e)||(s?zl(e,t,r,i):mf(e,r,i)),i._s.get(e)}return o.$id=e,o}function hp(e){const t=re(e),n={};for(const r in t){const s=t[r];s.effect?n[r]=Ue({get:()=>e[r],set(o){e[r]=o}}):(de(s)||at(s))&&(n[r]=ya(e,r))}return n}const yf="modulepreload",bf=function(e){return"/"+e},Ko={},st=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let c=function(u){return Promise.all(u.map(a=>Promise.resolve(a).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=c(n.map(u=>{if(u=bf(u),u in Ko)return;Ko[u]=!0;const a=u.endsWith(".css"),f=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const p=document.createElement("link");if(p.rel=a?"stylesheet":yf,a||(p.as="script"),p.crossOrigin="",p.href=u,l&&p.setAttribute("nonce",l),document.head.appendChild(p),a)return new Promise((m,g)=>{p.addEventListener("load",m),p.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})};const Qt=typeof document<"u";function Jl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function _f(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Jl(e.default)}const se=Object.assign;function Jr(e,t){const n={};for(const r in t){const s=t[r];n[r]=Je(s)?s.map(e):e(s)}return n}const An=()=>{},Je=Array.isArray;function Wo(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const Xl=/#/g,Ef=/&/g,wf=/\//g,Sf=/=/g,vf=/\?/g,Ql=/\+/g,Af=/%5B/g,Rf=/%5D/g,Yl=/%5E/g,Cf=/%60/g,Zl=/%7B/g,Of=/%7C/g,ec=/%7D/g,Tf=/%20/g;function Ws(e){return e==null?"":encodeURI(""+e).replace(Of,"|").replace(Af,"[").replace(Rf,"]")}function xf(e){return Ws(e).replace(Zl,"{").replace(ec,"}").replace(Yl,"^")}function gs(e){return Ws(e).replace(Ql,"%2B").replace(Tf,"+").replace(Xl,"%23").replace(Ef,"%26").replace(Cf,"`").replace(Zl,"{").replace(ec,"}").replace(Yl,"^")}function Pf(e){return gs(e).replace(Sf,"%3D")}function Nf(e){return Ws(e).replace(Xl,"%23").replace(vf,"%3F")}function If(e){return Nf(e).replace(wf,"%2F")}function Dn(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Lf=/\/$/,Df=e=>e.replace(Lf,"");function Xr(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return c=l>=0&&c>l?-1:c,c>=0&&(r=t.slice(0,c),o=t.slice(c,l>0?l:t.length),s=e(o.slice(1))),l>=0&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=Uf(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:Dn(i)}}function Ff(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Go(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Mf(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&rn(t.matched[r],n.matched[s])&&tc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function rn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function tc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!Bf(e[n],t[n]))return!1;return!0}function Bf(e,t){return Je(e)?zo(e,t):Je(t)?zo(t,e):e?.valueOf()===t?.valueOf()}function zo(e,t){return Je(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function Uf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const vt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let ys=(function(e){return e.pop="pop",e.push="push",e})({}),Qr=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function jf(e){if(!e)if(Qt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Df(e)}const Hf=/^[^#]+#/;function kf(e,t){return e.replace(Hf,"#")+t}function Vf(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const xr=()=>({left:window.scrollX,top:window.scrollY});function $f(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=Vf(s,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 Jo(e,t){return(history.state?history.state.position-t:-1)+e}const bs=new Map;function qf(e,t){bs.set(e,t)}function Kf(e){const t=bs.get(e);return bs.delete(e),t}function Wf(e){return typeof e=="string"||e&&typeof e=="object"}function nc(e){return typeof e=="string"||typeof e=="symbol"}let he=(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 rc=Symbol("");he.MATCHER_NOT_FOUND+"",he.NAVIGATION_GUARD_REDIRECT+"",he.NAVIGATION_ABORTED+"",he.NAVIGATION_CANCELLED+"",he.NAVIGATION_DUPLICATED+"";function sn(e,t){return se(new Error,{type:e,[rc]:!0},t)}function dt(e,t){return e instanceof Error&&rc in e&&(t==null||!!(e.type&t))}const Gf=["params","query","hash"];function zf(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of Gf)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function Jf(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&gs(s)):[r&&gs(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function Xf(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=Je(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const Qf=Symbol(""),Qo=Symbol(""),Pr=Symbol(""),Gs=Symbol(""),_s=Symbol("");function dn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Tt(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,c)=>{const u=p=>{p===!1?c(sn(he.NAVIGATION_ABORTED,{from:n,to:t})):p instanceof Error?c(p):Wf(p)?c(sn(he.NAVIGATION_GUARD_REDIRECT,{from:t,to:p})):(i&&r.enterCallbacks[s]===i&&typeof p=="function"&&i.push(p),l())},a=o(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(a);e.length<3&&(f=f.then(u)),f.catch(p=>c(p))})}function Yr(e,t,n,r,s=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(Jl(c)){const u=(c.__vccOpts||c)[t];u&&o.push(Tt(u,n,r,i,l,s))}else{let u=c();o.push(()=>u.then(a=>{if(!a)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=_f(a)?a.default:a;i.mods[l]=a,i.components[l]=f;const p=(f.__vccOpts||f)[t];return p&&Tt(p,n,r,i,l,s)()}))}}return o}function Yf(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;irn(u,l))?r.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(u=>rn(u,c))||s.push(c))}return[n,r,s]}let Zf=()=>location.protocol+"//"+location.host;function sc(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(i);return l[0]!=="/"&&(l="/"+l),Go(l,"")}return Go(n,e)+r+s}function ed(e,t,n,r){let s=[],o=[],i=null;const l=({state:p})=>{const m=sc(e,location),g=n.value,_=t.value;let E=0;if(p){if(n.value=m,t.value=p,i&&i===g){i=null;return}E=_?p.position-_.position:0}else r(m);s.forEach(C=>{C(n.value,g,{delta:E,type:ys.pop,direction:E?E>0?Qr.forward:Qr.back:Qr.unknown})})};function c(){i=n.value}function u(p){s.push(p);const m=()=>{const g=s.indexOf(p);g>-1&&s.splice(g,1)};return o.push(m),m}function a(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(se({},p.state,{scroll:xr()}),"")}}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 Yo(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?xr():null}}function td(e){const{history:t,location:n}=window,r={value:sc(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.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:Zf()+e+c;try{t[a?"replaceState":"pushState"](u,"",p),s.value=u}catch(m){console.error(m),n[a?"replace":"assign"](p)}}function i(c,u){o(c,se({},t.state,Yo(s.value.back,c,s.value.forward,!0),u,{position:s.value.position}),!0),r.value=c}function l(c,u){const a=se({},s.value,t.state,{forward:c,scroll:xr()});o(a.current,a,!0),o(c,se({},Yo(r.value,c,null),{position:a.position+1},u),!1),r.value=c}return{location:r,state:s,push:l,replace:i}}function nd(e){e=jf(e);const t=td(e),n=ed(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=se({location:"",base:e,go:r,createHref:kf.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function rd(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),nd(e)}let jt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var be=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e})(be||{});const sd={type:jt.Static,value:""},od=/[a-zA-Z0-9_]/;function id(e){if(!e)return[[]];if(e==="/")return[[sd]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${u}": ${m}`)}let n=be.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,c,u="",a="";function f(){u&&(n===be.Static?o.push({type:jt.Static,value:u}):n===be.Param||n===be.ParamRegExp||n===be.ParamRegExpEnd?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:jt.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]===Te.Static+Te.Segment?1:-1:0}function oc(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const fd={strict:!1,end:!0,sensitive:!1};function dd(e,t,n){const r=ad(id(e.path),n),s=se(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function hd(e,t){const n=[],r=new Map;t=Wo(fd,t);function s(f){return r.get(f)}function o(f,p,m){const g=!m,_=ni(f);_.aliasOf=m&&m.record;const E=Wo(t,f),C=[_];if("alias"in f){const x=typeof f.alias=="string"?[f.alias]:f.alias;for(const U of x)C.push(ni(se({},_,{components:m?m.record.components:_.components,path:U,aliasOf:m?m.record:_})))}let T,N;for(const x of C){const{path:U}=x;if(p&&U[0]!=="/"){const G=p.record.path,H=G[G.length-1]==="/"?"":"/";x.path=p.record.path+(U&&H+U)}if(T=dd(x,p,E),m?m.alias.push(T):(N=N||T,N!==T&&N.alias.push(T),g&&f.name&&!ri(T)&&i(f.name)),ic(T)&&c(T),_.children){const G=_.children;for(let H=0;H{i(N)}:An}function i(f){if(nc(f)){const p=r.get(f);p&&(r.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&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function c(f){const p=gd(f,n);n.splice(p,0,f),f.record.name&&!ri(f)&&r.set(f.record.name,f)}function u(f,p){let m,g={},_,E;if("name"in f&&f.name){if(m=r.get(f.name),!m)throw sn(he.MATCHER_NOT_FOUND,{location:f});E=m.record.name,g=se(ti(p.params,m.keys.filter(N=>!N.optional).concat(m.parent?m.parent.keys.filter(N=>N.optional):[]).map(N=>N.name)),f.params&&ti(f.params,m.keys.map(N=>N.name))),_=m.stringify(g)}else if(f.path!=null)_=f.path,m=n.find(N=>N.re.test(_)),m&&(g=m.parse(_),E=m.record.name);else{if(m=p.name?r.get(p.name):n.find(N=>N.re.test(p.path)),!m)throw sn(he.MATCHER_NOT_FOUND,{location:f,currentLocation:p});E=m.record.name,g=se({},p.params,f.params),_=m.stringify(g)}const C=[];let T=m;for(;T;)C.unshift(T.record),T=T.parent;return{name:E,path:_,params:g,matched:C,meta:md(C)}}e.forEach(f=>o(f));function a(){n.length=0,r.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:a,getRoutes:l,getRecordMatcher:s}}function ti(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function ni(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:pd(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 pd(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function ri(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function md(e){return e.reduce((t,n)=>se(t,n.meta),{})}function gd(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;oc(e,t[o])<0?r=o:n=o+1}const s=yd(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function yd(e){let t=e;for(;t=t.parent;)if(ic(t)&&oc(e,t)===0)return t}function ic({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function si(e){const t=qe(Pr),n=qe(Gs),r=Ue(()=>{const c=Pt(e.to);return t.resolve(c)}),s=Ue(()=>{const{matched:c}=r.value,{length:u}=c,a=c[u-1],f=n.matched;if(!a||!f.length)return-1;const p=f.findIndex(rn.bind(null,a));if(p>-1)return p;const m=oi(c[u-2]);return u>1&&oi(a)===m&&f[f.length-1].path!==m?f.findIndex(rn.bind(null,c[u-2])):p}),o=Ue(()=>s.value>-1&&Sd(n.params,r.value.params)),i=Ue(()=>s.value>-1&&s.value===n.matched.length-1&&tc(n.params,r.value.params));function l(c={}){if(wd(c)){const u=t[Pt(e.replace)?"replace":"push"](Pt(e.to)).catch(An);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Ue(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function bd(e){return e.length===1?e[0]:e}const _d=js({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:si,setup(e,{slots:t}){const n=Fn(si(e)),{options:r}=qe(Pr),s=Ue(()=>({[ii(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[ii(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&bd(t.default(n));return e.custom?o:Ks("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),Ed=_d;function wd(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 Sd(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!Je(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function oi(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const ii=(e,t,n)=>e??t??n,vd=js({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=qe(_s),s=Ue(()=>e.route||r.value),o=qe(Qo,0),i=Ue(()=>{let u=Pt(o);const{matched:a}=s.value;let f;for(;(f=a[u])&&!f.components;)u++;return u}),l=Ue(()=>s.value.matched[i.value]);Xn(Qo,Ue(()=>i.value+1)),Xn(Qf,l),Xn(_s,s);const c=Vt();return bn(()=>[c.value,l.value,e.name],([u,a,f],[p,m,g])=>{a&&(a.instances[f]=u,m&&m!==a&&u&&u===p&&(a.leaveGuards.size||(a.leaveGuards=m.leaveGuards),a.updateGuards.size||(a.updateGuards=m.updateGuards))),u&&a&&(!m||!rn(a,m)||!p)&&(a.enterCallbacks[f]||[]).forEach(_=>_(u))},{flush:"post"}),()=>{const u=s.value,a=e.name,f=l.value,p=f&&f.components[a];if(!p)return li(n.default,{Component:p,route:u});const m=f.props[a],g=m?m===!0?u.params:typeof m=="function"?m(u):m:null,E=Ks(p,se({},g,t,{onVnodeUnmounted:C=>{C.component.isUnmounted&&(f.instances[a]=null)},ref:c}));return li(n.default,{Component:E,route:u})||E}}});function li(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const lc=vd;function Ad(e){const t=hd(e.routes,e),n=e.parseQuery||Jf,r=e.stringifyQuery||Xo,s=e.history,o=dn(),i=dn(),l=dn(),c=fa(vt);let u=vt;Qt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const a=Jr.bind(null,v=>""+v),f=Jr.bind(null,If),p=Jr.bind(null,Dn);function m(v,B){let F,V;return nc(v)?(F=t.getRecordMatcher(v),V=B):V=v,t.addRoute(V,F)}function g(v){const B=t.getRecordMatcher(v);B&&t.removeRoute(B)}function _(){return t.getRoutes().map(v=>v.record)}function E(v){return!!t.getRecordMatcher(v)}function C(v,B){if(B=se({},B||c.value),typeof v=="string"){const y=Xr(n,v,B.path),w=t.resolve({path:y.path},B),A=s.createHref(y.fullPath);return se(y,w,{params:p(w.params),hash:Dn(y.hash),redirectedFrom:void 0,href:A})}let F;if(v.path!=null)F=se({},v,{path:Xr(n,v.path,B.path).path});else{const y=se({},v.params);for(const w in y)y[w]==null&&delete y[w];F=se({},v,{params:f(y)}),B.params=f(B.params)}const V=t.resolve(F,B),te=v.hash||"";V.params=a(p(V.params));const d=Ff(r,se({},v,{hash:xf(te),path:V.path})),h=s.createHref(d);return se({fullPath:d,hash:te,query:r===Xo?Xf(v.query):v.query||{}},V,{redirectedFrom:void 0,href:h})}function T(v){return typeof v=="string"?Xr(n,v,c.value.path):se({},v)}function N(v,B){if(u!==v)return sn(he.NAVIGATION_CANCELLED,{from:B,to:v})}function x(v){return H(v)}function U(v){return x(se(T(v),{replace:!0}))}function G(v,B){const F=v.matched[v.matched.length-1];if(F&&F.redirect){const{redirect:V}=F;let te=typeof V=="function"?V(v,B):V;return typeof te=="string"&&(te=te.includes("?")||te.includes("#")?te=T(te):{path:te},te.params={}),se({query:v.query,hash:v.hash,params:te.path!=null?{}:v.params},te)}}function H(v,B){const F=u=C(v),V=c.value,te=v.state,d=v.force,h=v.replace===!0,y=G(F,V);if(y)return H(se(T(y),{state:typeof y=="object"?se({},te,y.state):te,force:d,replace:h}),B||F);const w=F;w.redirectedFrom=B;let A;return!d&&Mf(r,V,F)&&(A=sn(he.NAVIGATION_DUPLICATED,{to:w,from:V}),ye(V,V,!0,!1)),(A?Promise.resolve(A):k(w,V)).catch(S=>dt(S)?dt(S,he.NAVIGATION_GUARD_REDIRECT)?S:Qe(S):Z(S,w,V)).then(S=>{if(S){if(dt(S,he.NAVIGATION_GUARD_REDIRECT))return H(se({replace:h},T(S.to),{state:typeof S.to=="object"?se({},te,S.to.state):te,force:d}),B||w)}else S=L(w,V,!0,h,te);return Y(w,V,S),S})}function j(v,B){const F=N(v,B);return F?Promise.reject(F):Promise.resolve()}function O(v){const B=Ke.values().next().value;return B&&typeof B.runWithContext=="function"?B.runWithContext(v):v()}function k(v,B){let F;const[V,te,d]=Yf(v,B);F=Yr(V.reverse(),"beforeRouteLeave",v,B);for(const y of V)y.leaveGuards.forEach(w=>{F.push(Tt(w,v,B))});const h=j.bind(null,v,B);return F.push(h),Ve(F).then(()=>{F=[];for(const y of o.list())F.push(Tt(y,v,B));return F.push(h),Ve(F)}).then(()=>{F=Yr(te,"beforeRouteUpdate",v,B);for(const y of te)y.updateGuards.forEach(w=>{F.push(Tt(w,v,B))});return F.push(h),Ve(F)}).then(()=>{F=[];for(const y of d)if(y.beforeEnter)if(Je(y.beforeEnter))for(const w of y.beforeEnter)F.push(Tt(w,v,B));else F.push(Tt(y.beforeEnter,v,B));return F.push(h),Ve(F)}).then(()=>(v.matched.forEach(y=>y.enterCallbacks={}),F=Yr(d,"beforeRouteEnter",v,B,O),F.push(h),Ve(F))).then(()=>{F=[];for(const y of i.list())F.push(Tt(y,v,B));return F.push(h),Ve(F)}).catch(y=>dt(y,he.NAVIGATION_CANCELLED)?y:Promise.reject(y))}function Y(v,B,F){l.list().forEach(V=>O(()=>V(v,B,F)))}function L(v,B,F,V,te){const d=N(v,B);if(d)return d;const h=B===vt,y=Qt?history.state:{};F&&(V||h?s.replace(v.fullPath,se({scroll:h&&y&&y.scroll},te)):s.push(v.fullPath,te)),c.value=v,ye(v,B,F,h),Qe()}let Q;function le(){Q||(Q=s.listen((v,B,F)=>{if(!Ze.listening)return;const V=C(v),te=G(V,Ze.currentRoute.value);if(te){H(se(te,{replace:!0,force:!0}),V).catch(An);return}u=V;const d=c.value;Qt&&qf(Jo(d.fullPath,F.delta),xr()),k(V,d).catch(h=>dt(h,he.NAVIGATION_ABORTED|he.NAVIGATION_CANCELLED)?h:dt(h,he.NAVIGATION_GUARD_REDIRECT)?(H(se(T(h.to),{force:!0}),V).then(y=>{dt(y,he.NAVIGATION_ABORTED|he.NAVIGATION_DUPLICATED)&&!F.delta&&F.type===ys.pop&&s.go(-1,!1)}).catch(An),Promise.reject()):(F.delta&&s.go(-F.delta,!1),Z(h,V,d))).then(h=>{h=h||L(V,d,!1),h&&(F.delta&&!dt(h,he.NAVIGATION_CANCELLED)?s.go(-F.delta,!1):F.type===ys.pop&&dt(h,he.NAVIGATION_ABORTED|he.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),Y(V,d,h)}).catch(An)}))}let _e=dn(),ee=dn(),z;function Z(v,B,F){Qe(v);const V=ee.list();return V.length?V.forEach(te=>te(v,B,F)):console.error(v),Promise.reject(v)}function ke(){return z&&c.value!==vt?Promise.resolve():new Promise((v,B)=>{_e.add([v,B])})}function Qe(v){return z||(z=!v,le(),_e.list().forEach(([B,F])=>v?F(v):B()),_e.reset()),v}function ye(v,B,F,V){const{scrollBehavior:te}=e;if(!Qt||!te)return Promise.resolve();const d=!F&&Kf(Jo(v.fullPath,0))||(V||!F)&&history.state&&history.state.scroll||null;return Bs().then(()=>te(v,B,d)).then(h=>h&&$f(h)).catch(h=>Z(h,v,B))}const me=v=>s.go(v);let Ye;const Ke=new Set,Ze={currentRoute:c,listening:!0,addRoute:m,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:E,getRoutes:_,resolve:C,options:e,push:x,replace:U,go:me,back:()=>me(-1),forward:()=>me(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:ee.add,isReady:ke,install(v){v.component("RouterLink",Ed),v.component("RouterView",lc),v.config.globalProperties.$router=Ze,Object.defineProperty(v.config.globalProperties,"$route",{enumerable:!0,get:()=>Pt(c)}),Qt&&!Ye&&c.value===vt&&(Ye=!0,x(s.location).catch(V=>{}));const B={};for(const V in vt)Object.defineProperty(B,V,{get:()=>c.value[V],enumerable:!0});v.provide(Pr,Ze),v.provide(Gs,Qi(B)),v.provide(_s,c);const F=v.unmount;Ke.add(v),v.unmount=function(){Ke.delete(v),Ke.size<1&&(u=vt,Q&&Q(),Q=null,c.value=vt,Ye=!1,z=!1),F()}}};function Ve(v){return v.reduce((B,F)=>B.then(()=>O(F)),Promise.resolve())}return Ze}function pp(){return qe(Pr)}function mp(e){return qe(Gs)}function cc(e,t){return function(){return e.apply(t,arguments)}}const{toString:Rd}=Object.prototype,{getPrototypeOf:zs}=Object,{iterator:Nr,toStringTag:ac}=Symbol,Ir=(e=>t=>{const n=Rd.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Xe=e=>(e=e.toLowerCase(),t=>Ir(t)===e),Lr=e=>t=>typeof t===e,{isArray:ln}=Array,on=Lr("undefined");function Un(e){return e!==null&&!on(e)&&e.constructor!==null&&!on(e.constructor)&&Fe(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const uc=Xe("ArrayBuffer");function Cd(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&uc(e.buffer),t}const Od=Lr("string"),Fe=Lr("function"),fc=Lr("number"),jn=e=>e!==null&&typeof e=="object",Td=e=>e===!0||e===!1,tr=e=>{if(Ir(e)!=="object")return!1;const t=zs(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(ac in e)&&!(Nr in e)},xd=e=>{if(!jn(e)||Un(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},Pd=Xe("Date"),Nd=Xe("File"),Id=Xe("Blob"),Ld=Xe("FileList"),Dd=e=>jn(e)&&Fe(e.pipe),Fd=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Fe(e.append)&&((t=Ir(e))==="formdata"||t==="object"&&Fe(e.toString)&&e.toString()==="[object FormData]"))},Md=Xe("URLSearchParams"),[Bd,Ud,jd,Hd]=["ReadableStream","Request","Response","Headers"].map(Xe),kd=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Hn(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),ln(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const Ht=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,hc=e=>!on(e)&&e!==Ht;function Es(){const{caseless:e,skipUndefined:t}=hc(this)&&this||{},n={},r=(s,o)=>{const i=e&&dc(n,o)||o;tr(n[i])&&tr(s)?n[i]=Es(n[i],s):tr(s)?n[i]=Es({},s):ln(s)?n[i]=s.slice():(!t||!on(s))&&(n[i]=s)};for(let s=0,o=arguments.length;s(Hn(t,(s,o)=>{n&&Fe(s)?e[o]=cc(s,n):e[o]=s},{allOwnKeys:r}),e),$d=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),qd=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},Kd=(e,t,n,r)=>{let s,o,i;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&zs(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},Wd=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},Gd=e=>{if(!e)return null;if(ln(e))return e;let t=e.length;if(!fc(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},zd=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&zs(Uint8Array)),Jd=(e,t)=>{const r=(e&&e[Nr]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},Xd=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},Qd=Xe("HTMLFormElement"),Yd=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),ci=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Zd=Xe("RegExp"),pc=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Hn(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},eh=e=>{pc(e,(t,n)=>{if(Fe(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Fe(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},th=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return ln(e)?r(e):r(String(e).split(t)),n},nh=()=>{},rh=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function sh(e){return!!(e&&Fe(e.append)&&e[ac]==="FormData"&&e[Nr])}const oh=e=>{const t=new Array(10),n=(r,s)=>{if(jn(r)){if(t.indexOf(r)>=0)return;if(Un(r))return r;if(!("toJSON"in r)){t[s]=r;const o=ln(r)?[]:{};return Hn(r,(i,l)=>{const c=n(i,s+1);!on(c)&&(o[l]=c)}),t[s]=void 0,o}}return r};return n(e,0)},ih=Xe("AsyncFunction"),lh=e=>e&&(jn(e)||Fe(e))&&Fe(e.then)&&Fe(e.catch),mc=((e,t)=>e?setImmediate:t?((n,r)=>(Ht.addEventListener("message",({source:s,data:o})=>{s===Ht&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),Ht.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Fe(Ht.postMessage)),ch=typeof queueMicrotask<"u"?queueMicrotask.bind(Ht):typeof process<"u"&&process.nextTick||mc,ah=e=>e!=null&&Fe(e[Nr]),b={isArray:ln,isArrayBuffer:uc,isBuffer:Un,isFormData:Fd,isArrayBufferView:Cd,isString:Od,isNumber:fc,isBoolean:Td,isObject:jn,isPlainObject:tr,isEmptyObject:xd,isReadableStream:Bd,isRequest:Ud,isResponse:jd,isHeaders:Hd,isUndefined:on,isDate:Pd,isFile:Nd,isBlob:Id,isRegExp:Zd,isFunction:Fe,isStream:Dd,isURLSearchParams:Md,isTypedArray:zd,isFileList:Ld,forEach:Hn,merge:Es,extend:Vd,trim:kd,stripBOM:$d,inherits:qd,toFlatObject:Kd,kindOf:Ir,kindOfTest:Xe,endsWith:Wd,toArray:Gd,forEachEntry:Jd,matchAll:Xd,isHTMLForm:Qd,hasOwnProperty:ci,hasOwnProp:ci,reduceDescriptors:pc,freezeMethods:eh,toObjectSet:th,toCamelCase:Yd,noop:nh,toFiniteNumber:rh,findKey:dc,global:Ht,isContextDefined:hc,isSpecCompliantForm:sh,toJSONObject:oh,isAsyncFn:ih,isThenable:lh,setImmediate:mc,asap:ch,isIterable:ah};function X(e,t,n,r,s){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),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}b.inherits(X,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 gc=X.prototype,yc={};["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=>{yc[e]={value:e}});Object.defineProperties(X,yc);Object.defineProperty(gc,"isAxiosError",{value:!0});X.from=(e,t,n,r,s,o)=>{const i=Object.create(gc);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 X.call(i,l,c,n,r,s),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 uh=null;function ws(e){return b.isPlainObject(e)||b.isArray(e)}function bc(e){return b.endsWith(e,"[]")?e.slice(0,-2):e}function ai(e,t,n){return e?e.concat(t).map(function(s,o){return s=bc(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function fh(e){return b.isArray(e)&&!e.some(ws)}const dh=b.toFlatObject(b,{},null,function(t){return/^is[A-Z]/.test(t)});function Dr(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(_,E){return!b.isUndefined(E[_])});const r=n.metaTokens,s=n.visitor||a,o=n.dots,i=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&b.isSpecCompliantForm(t);if(!b.isFunction(s))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 X("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,_,E){let C=g;if(g&&!E&&typeof g=="object"){if(b.endsWith(_,"{}"))_=r?_:_.slice(0,-2),g=JSON.stringify(g);else if(b.isArray(g)&&fh(g)||(b.isFileList(g)||b.endsWith(_,"[]"))&&(C=b.toArray(g)))return _=bc(_),C.forEach(function(N,x){!(b.isUndefined(N)||N===null)&&t.append(i===!0?ai([_],x,o):i===null?_:_+"[]",u(N))}),!1}return ws(g)?!0:(t.append(ai(E,_,o),u(g)),!1)}const f=[],p=Object.assign(dh,{defaultVisitor:a,convertValue:u,isVisitable:ws});function m(g,_){if(!b.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+_.join("."));f.push(g),b.forEach(g,function(C,T){(!(b.isUndefined(C)||C===null)&&s.call(t,C,b.isString(T)?T.trim():T,_,p))===!0&&m(C,_?_.concat(T):[T])}),f.pop()}}if(!b.isObject(e))throw new TypeError("data must be an object");return m(e),t}function ui(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Js(e,t){this._pairs=[],e&&Dr(e,this,t)}const _c=Js.prototype;_c.append=function(t,n){this._pairs.push([t,n])};_c.toString=function(t){const n=t?function(r){return t.call(this,r,ui)}:ui;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function hh(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Ec(e,t,n){if(!t)return e;const r=n&&n.encode||hh;b.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=b.isURLSearchParams(t)?t.toString():new Js(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class fi{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.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(r){r!==null&&t(r)})}}const wc={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},ph=typeof URLSearchParams<"u"?URLSearchParams:Js,mh=typeof FormData<"u"?FormData:null,gh=typeof Blob<"u"?Blob:null,yh={isBrowser:!0,classes:{URLSearchParams:ph,FormData:mh,Blob:gh},protocols:["http","https","file","blob","url","data"]},Xs=typeof window<"u"&&typeof document<"u",Ss=typeof navigator=="object"&&navigator||void 0,bh=Xs&&(!Ss||["ReactNative","NativeScript","NS"].indexOf(Ss.product)<0),_h=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Eh=Xs&&window.location.href||"http://localhost",wh=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Xs,hasStandardBrowserEnv:bh,hasStandardBrowserWebWorkerEnv:_h,navigator:Ss,origin:Eh},Symbol.toStringTag,{value:"Module"})),Ae={...wh,...yh};function Sh(e,t){return Dr(e,new Ae.classes.URLSearchParams,{visitor:function(n,r,s,o){return Ae.isNode&&b.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function vh(e){return b.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Ah(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&b.isArray(s)?s.length:i,c?(b.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!l):((!s[i]||!b.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&b.isArray(s[i])&&(s[i]=Ah(s[i])),!l)}if(b.isFormData(e)&&b.isFunction(e.entries)){const n={};return b.forEachEntry(e,(r,s)=>{t(vh(r),s,n,0)}),n}return null}function Rh(e,t,n){if(b.isString(e))try{return(t||JSON.parse)(e),b.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const kn={transitional:wc,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=b.isObject(t);if(o&&b.isHTMLForm(t)&&(t=new FormData(t)),b.isFormData(t))return s?JSON.stringify(Sc(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(r.indexOf("application/x-www-form-urlencoded")>-1)return Sh(t,this.formSerializer).toString();if((l=b.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return Dr(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),Rh(t)):t}],transformResponse:[function(t){const n=this.transitional||kn.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(b.isResponse(t)||b.isReadableStream(t))return t;if(t&&b.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(i)throw l.name==="SyntaxError"?X.from(l,X.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:Ae.classes.FormData,Blob:Ae.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=>{kn.headers[e]={}});const Ch=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"]),Oh=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&Ch[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},di=Symbol("internals");function hn(e){return e&&String(e).trim().toLowerCase()}function nr(e){return e===!1||e==null?e:b.isArray(e)?e.map(nr):String(e)}function Th(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const xh=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Zr(e,t,n,r,s){if(b.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!b.isString(t)){if(b.isString(r))return t.indexOf(r)!==-1;if(b.isRegExp(r))return r.test(t)}}function Ph(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Nh(e,t){const n=b.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let Me=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(l,c,u){const a=hn(c);if(!a)throw new Error("header name must be a non-empty string");const f=b.findKey(s,a);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||c]=nr(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())&&!xh(t))i(Oh(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,r);return this}get(t,n){if(t=hn(t),t){const r=b.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return Th(s);if(b.isFunction(n))return n.call(this,s,r);if(b.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=hn(t),t){const r=b.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Zr(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=hn(i),i){const l=b.findKey(r,i);l&&(!n||Zr(r,r[l],l,n))&&(delete r[l],s=!0)}}return b.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||Zr(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return b.forEach(this,(s,o)=>{const i=b.findKey(r,o);if(i){n[i]=nr(s),delete n[o];return}const l=t?Ph(o):String(o).trim();l!==o&&delete n[o],n[l]=nr(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return b.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&b.isArray(r)?r.join(", "):r)}),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 r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[di]=this[di]={accessors:{}}).accessors,s=this.prototype;function o(i){const l=hn(i);r[l]||(Nh(s,i),r[l]=!0)}return b.isArray(t)?t.forEach(o):o(t),this}};Me.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);b.reduceDescriptors(Me.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});b.freezeMethods(Me);function es(e,t){const n=this||kn,r=t||n,s=Me.from(r.headers);let o=r.data;return b.forEach(e,function(l){o=l.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function vc(e){return!!(e&&e.__CANCEL__)}function cn(e,t,n){X.call(this,e??"canceled",X.ERR_CANCELED,t,n),this.name="CanceledError"}b.inherits(cn,X,{__CANCEL__:!0});function Ac(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new X("Request failed with status code "+n.status,[X.ERR_BAD_REQUEST,X.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function Ih(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function Lh(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),a=r[o];i||(i=u),n[s]=c,r[s]=u;let f=o,p=0;for(;f!==s;)p+=n[f++],f=f%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i{n=a,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const a=Date.now(),f=a-n;f>=r?i(u,a):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-f)))},()=>s&&i(s)]}const pr=(e,t,n=3)=>{let r=0;const s=Lh(50,250);return Dh(o=>{const i=o.loaded,l=o.lengthComputable?o.total:void 0,c=i-r,u=s(c),a=i<=l;r=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)},hi=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},pi=e=>(...t)=>b.asap(()=>e(...t)),Fh=Ae.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Ae.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Ae.origin),Ae.navigator&&/(msie|trident)/i.test(Ae.navigator.userAgent)):()=>!0,Mh=Ae.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];b.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),b.isString(r)&&l.push(`path=${r}`),b.isString(s)&&l.push(`domain=${s}`),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 Bh(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function Uh(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Rc(e,t,n){let r=!Bh(t);return e&&(r||n==!1)?Uh(e,t):t}const mi=e=>e instanceof Me?{...e}:e;function Kt(e,t){t=t||{};const n={};function r(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 s(u,a,f,p){if(b.isUndefined(a)){if(!b.isUndefined(u))return r(void 0,u,f,p)}else return r(u,a,f,p)}function o(u,a){if(!b.isUndefined(a))return r(void 0,a)}function i(u,a){if(b.isUndefined(a)){if(!b.isUndefined(u))return r(void 0,u)}else return r(void 0,a)}function l(u,a,f){if(f in t)return r(u,a);if(f in e)return r(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)=>s(mi(u),mi(a),f,!0)};return b.forEach(Object.keys({...e,...t}),function(a){const f=c[a]||s,p=f(e[a],t[a],a);b.isUndefined(p)&&f!==l||(n[a]=p)}),n}const Cc=e=>{const t=Kt({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:l}=t;if(t.headers=i=Me.from(i),t.url=Ec(Rc(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(Ae.hasStandardBrowserEnv||Ae.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(Ae.hasStandardBrowserEnv&&(r&&b.isFunction(r)&&(r=r(t)),r||r!==!1&&Fh(t.url))){const c=s&&o&&Mh.read(o);c&&i.set(s,c)}return t},jh=typeof XMLHttpRequest<"u",Hh=jh&&function(e){return new Promise(function(n,r){const s=Cc(e);let o=s.data;const i=Me.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,a,f,p,m,g;function _(){m&&m(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(a),s.signal&&s.signal.removeEventListener("abort",a)}let E=new XMLHttpRequest;E.open(s.method.toUpperCase(),s.url,!0),E.timeout=s.timeout;function C(){if(!E)return;const N=Me.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),U={data:!l||l==="text"||l==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:N,config:e,request:E};Ac(function(H){n(H),_()},function(H){r(H),_()},U),E=null}"onloadend"in E?E.onloadend=C:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.indexOf("file:")===0)||setTimeout(C)},E.onabort=function(){E&&(r(new X("Request aborted",X.ECONNABORTED,e,E)),E=null)},E.onerror=function(x){const U=x&&x.message?x.message:"Network Error",G=new X(U,X.ERR_NETWORK,e,E);G.event=x||null,r(G),E=null},E.ontimeout=function(){let x=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const U=s.transitional||wc;s.timeoutErrorMessage&&(x=s.timeoutErrorMessage),r(new X(x,U.clarifyTimeoutError?X.ETIMEDOUT:X.ECONNABORTED,e,E)),E=null},o===void 0&&i.setContentType(null),"setRequestHeader"in E&&b.forEach(i.toJSON(),function(x,U){E.setRequestHeader(U,x)}),b.isUndefined(s.withCredentials)||(E.withCredentials=!!s.withCredentials),l&&l!=="json"&&(E.responseType=s.responseType),u&&([p,g]=pr(u,!0),E.addEventListener("progress",p)),c&&E.upload&&([f,m]=pr(c),E.upload.addEventListener("progress",f),E.upload.addEventListener("loadend",m)),(s.cancelToken||s.signal)&&(a=N=>{E&&(r(!N||N.type?new cn(null,e,E):N),E.abort(),E=null)},s.cancelToken&&s.cancelToken.subscribe(a),s.signal&&(s.signal.aborted?a():s.signal.addEventListener("abort",a)));const T=Ih(s.url);if(T&&Ae.protocols.indexOf(T)===-1){r(new X("Unsupported protocol "+T+":",X.ERR_BAD_REQUEST,e));return}E.send(o||null)})},kh=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,l();const a=u instanceof Error?u:this.reason;r.abort(a instanceof X?a:new cn(a instanceof Error?a.message:a))}};let i=t&&setTimeout(()=>{i=null,o(new X(`timeout ${t} of ms exceeded`,X.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}=r;return c.unsubscribe=()=>b.asap(l),c}},Vh=function*(e,t){let n=e.byteLength;if(n{const s=$h(e,t);let o=0,i,l=c=>{i||(i=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:a}=await s.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),s.return()}},{highWaterMark:2})},yi=64*1024,{isFunction:Gn}=b,Kh=(({Request:e,Response:t})=>({Request:e,Response:t}))(b.global),{ReadableStream:bi,TextEncoder:_i}=b.global,Ei=(e,...t)=>{try{return!!e(...t)}catch{return!1}},Wh=e=>{e=b.merge.call({skipUndefined:!0},Kh,e);const{fetch:t,Request:n,Response:r}=e,s=t?Gn(t):typeof fetch=="function",o=Gn(n),i=Gn(r);if(!s)return!1;const l=s&&Gn(bi),c=s&&(typeof _i=="function"?(g=>_=>g.encode(_))(new _i):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=o&&l&&Ei(()=>{let g=!1;const _=new n(Ae.origin,{body:new bi,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!_}),a=i&&l&&Ei(()=>b.isReadableStream(new r("").body)),f={stream:a&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(_,E)=>{let C=_&&_[g];if(C)return C.call(_);throw new X(`Response type '${g}' is not supported`,X.ERR_NOT_SUPPORT,E)})});const p=async g=>{if(g==null)return 0;if(b.isBlob(g))return g.size;if(b.isSpecCompliantForm(g))return(await new n(Ae.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},m=async(g,_)=>{const E=b.toFiniteNumber(g.getContentLength());return E??p(_)};return async g=>{let{url:_,method:E,data:C,signal:T,cancelToken:N,timeout:x,onDownloadProgress:U,onUploadProgress:G,responseType:H,headers:j,withCredentials:O="same-origin",fetchOptions:k}=Cc(g),Y=t||fetch;H=H?(H+"").toLowerCase():"text";let L=kh([T,N&&N.toAbortSignal()],x),Q=null;const le=L&&L.unsubscribe&&(()=>{L.unsubscribe()});let _e;try{if(G&&u&&E!=="get"&&E!=="head"&&(_e=await m(j,C))!==0){let ye=new n(_,{method:"POST",body:C,duplex:"half"}),me;if(b.isFormData(C)&&(me=ye.headers.get("content-type"))&&j.setContentType(me),ye.body){const[Ye,Ke]=hi(_e,pr(pi(G)));C=gi(ye.body,yi,Ye,Ke)}}b.isString(O)||(O=O?"include":"omit");const ee=o&&"credentials"in n.prototype,z={...k,signal:L,method:E.toUpperCase(),headers:j.normalize().toJSON(),body:C,duplex:"half",credentials:ee?O:void 0};Q=o&&new n(_,z);let Z=await(o?Y(Q,k):Y(_,z));const ke=a&&(H==="stream"||H==="response");if(a&&(U||ke&&le)){const ye={};["status","statusText","headers"].forEach(Ze=>{ye[Ze]=Z[Ze]});const me=b.toFiniteNumber(Z.headers.get("content-length")),[Ye,Ke]=U&&hi(me,pr(pi(U),!0))||[];Z=new r(gi(Z.body,yi,Ye,()=>{Ke&&Ke(),le&&le()}),ye)}H=H||"text";let Qe=await f[b.findKey(f,H)||"text"](Z,g);return!ke&&le&&le(),await new Promise((ye,me)=>{Ac(ye,me,{data:Qe,headers:Me.from(Z.headers),status:Z.status,statusText:Z.statusText,config:g,request:Q})})}catch(ee){throw le&&le(),ee&&ee.name==="TypeError"&&/Load failed|fetch/i.test(ee.message)?Object.assign(new X("Network Error",X.ERR_NETWORK,g,Q),{cause:ee.cause||ee}):X.from(ee,ee&&ee.code,g,Q)}}},Gh=new Map,Oc=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,l=i,c,u,a=Gh;for(;l--;)c=o[l],u=a.get(c),u===void 0&&a.set(c,u=l?new Map:Wh(t)),a=u;return u};Oc();const Qs={http:uh,xhr:Hh,fetch:{get:Oc}};b.forEach(Qs,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const wi=e=>`- ${e}`,zh=e=>b.isFunction(e)||e===null||e===!1;function Jh(e,t){e=b.isArray(e)?e:[e];const{length:n}=e;let r,s;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(wi).join(` +`):" "+wi(i[0]):"as no adapter specified";throw new X("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const Tc={getAdapter:Jh,adapters:Qs};function ts(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new cn(null,e)}function Si(e){return ts(e),e.headers=Me.from(e.headers),e.data=es.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Tc.getAdapter(e.adapter||kn.adapter,e)(e).then(function(r){return ts(e),r.data=es.call(e,e.transformResponse,r),r.headers=Me.from(r.headers),r},function(r){return vc(r)||(ts(e),r&&r.response&&(r.response.data=es.call(e,e.transformResponse,r.response),r.response.headers=Me.from(r.response.headers))),Promise.reject(r)})}const xc="1.13.2",Fr={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Fr[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const vi={};Fr.transitional=function(t,n,r){function s(o,i){return"[Axios v"+xc+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,l)=>{if(t===!1)throw new X(s(i," has been removed"+(n?" in "+n:"")),X.ERR_DEPRECATED);return n&&!vi[i]&&(vi[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,l):!0}};Fr.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function Xh(e,t,n){if(typeof e!="object")throw new X("options must be an object",X.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const l=e[o],c=l===void 0||i(l,o,e);if(c!==!0)throw new X("option "+o+" must be "+c,X.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new X("Unknown option "+o,X.ERR_BAD_OPTION)}}const rr={assertOptions:Xh,validators:Fr},ot=rr.validators;let qt=class{constructor(t){this.defaults=t||{},this.interceptors={request:new fi,response:new fi}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Kt(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&rr.assertOptions(r,{silentJSONParsing:ot.transitional(ot.boolean),forcedJSONParsing:ot.transitional(ot.boolean),clarifyTimeoutError:ot.transitional(ot.boolean)},!1),s!=null&&(b.isFunction(s)?n.paramsSerializer={serialize:s}:rr.assertOptions(s,{encode:ot.function,serialize:ot.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),rr.assertOptions(n,{baseUrl:ot.spelling("baseURL"),withXsrfToken:ot.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=Me.concat(i,o);const l=[];let c=!0;this.interceptors.request.forEach(function(_){typeof _.runWhen=="function"&&_.runWhen(n)===!1||(c=c&&_.synchronous,l.unshift(_.fulfilled,_.rejected))});const u=[];this.interceptors.response.forEach(function(_){u.push(_.fulfilled,_.rejected)});let a,f=0,p;if(!c){const g=[Si.bind(this),void 0];for(g.unshift(...l),g.push(...u),p=g.length,a=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(l=>{r.subscribe(l),o=l}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,l){r.reason||(r.reason=new cn(o,i,l),n(r.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=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new Pc(function(s){t=s}),cancel:t}}};function Yh(e){return function(n){return e.apply(null,n)}}function Zh(e){return b.isObject(e)&&e.isAxiosError===!0}const vs={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(vs).forEach(([e,t])=>{vs[t]=e});function Nc(e){const t=new qt(e),n=cc(qt.prototype.request,t);return b.extend(n,qt.prototype,t,{allOwnKeys:!0}),b.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return Nc(Kt(e,s))},n}const ge=Nc(kn);ge.Axios=qt;ge.CanceledError=cn;ge.CancelToken=Qh;ge.isCancel=vc;ge.VERSION=xc;ge.toFormData=Dr;ge.AxiosError=X;ge.Cancel=ge.CanceledError;ge.all=function(t){return Promise.all(t)};ge.spread=Yh;ge.isAxiosError=Zh;ge.mergeConfig=Kt;ge.AxiosHeaders=Me;ge.formToJSON=e=>Sc(b.isHTMLForm(e)?new FormData(e):e);ge.getAdapter=Tc.getAdapter;ge.HttpStatusCode=vs;ge.default=ge;const{Axios:bp,AxiosError:_p,CanceledError:Ep,isCancel:wp,CancelToken:Sp,VERSION:vp,all:Ap,Cancel:Rp,isAxiosError:Cp,spread:Op,toFormData:Tp,AxiosHeaders:xp,HttpStatusCode:Pp,formToJSON:Np,getAdapter:Ip,mergeConfig:Lp}=ge,Rn=ge.create({baseURL:"",timeout:3e4,withCredentials:!0});Rn.interceptors.request.use(e=>e,e=>Promise.reject(e));Rn.interceptors.response.use(e=>e.data,e=>{e.response?.status===401&&(window.location.hash="#/login");const t=e.response?.data?e.response.data.detail||e.response.data.message:e.message;return Promise.reject(new Error(t||"请求失败"))});const zn={login:e=>{const t=new URLSearchParams;return t.append("admin_key",e.password),Rn.post("/login",t,{headers:{"Content-Type":"application/x-www-form-urlencoded"}})},logout:()=>Rn.post("/logout"),checkAuth:()=>Rn.get("/admin/health")},ep=gf("auth",()=>{const e=Vt(!1),t=Vt(!1),n=Vt(0),r=1e4;let s=null;async function o(c){t.value=!0;try{return await zn.login({password:c}),await zn.checkAuth(),e.value=!0,n.value=Date.now(),!0}catch(u){throw e.value=!1,u}finally{t.value=!1}}async function i(){try{await zn.logout()}finally{e.value=!1,n.value=0}}async function l(){const c=Date.now();if(e.value&&c-n.value(await zn.checkAuth(),e.value=!0,!0))(),await s}catch{return e.value=!1,!1}finally{n.value=Date.now(),s=null}}return{isLoggedIn:e,isLoading:t,login:o,logout:i,checkAuth:l}}),Ic=Ad({history:rd("/"),routes:[{path:"/public/uptime",name:"public-uptime",component:()=>st(()=>import("./PublicUptime-BMb71sHa.js"),__vite__mapDeps([0,1])),meta:{requiresAuth:!1}},{path:"/public/logs",name:"public-logs",component:()=>st(()=>import("./PublicLogs-kb_KTGCa.js"),[]),meta:{requiresAuth:!1}},{path:"/login",name:"login",component:()=>st(()=>import("./Login-DQNPAp9n.js"),__vite__mapDeps([2,3])),meta:{requiresAuth:!1}},{path:"/",component:()=>st(()=>import("./AppShell-D_XBwVf-.js"),__vite__mapDeps([4,5,6,7])),meta:{requiresAuth:!0},children:[{path:"",name:"dashboard",component:()=>st(()=>import("./Dashboard-CHnH24wI.js"),__vite__mapDeps([8,9]))},{path:"accounts",name:"accounts",component:()=>st(()=>import("./Accounts-vV-lLEEq.js"),__vite__mapDeps([10,11,3,6,7,9]))},{path:"settings",name:"settings",component:()=>st(()=>import("./Settings-CR5z3sBt.js"),__vite__mapDeps([12,5,11,3,9]))},{path:"logs",name:"logs",component:()=>st(()=>import("./Logs-C0AYmMGH.js"),__vite__mapDeps([13,11,6]))},{path:"monitor",name:"monitor",component:()=>st(()=>import("./Monitor-DOVP9Cl6.js"),__vite__mapDeps([14,1]))},{path:"docs",name:"docs",component:()=>st(()=>import("./Docs-W2jIndAr.js"),[])}]}]});Ic.beforeEach(async e=>{const t=ep();if(e.meta.requiresAuth&&!await t.checkAuth())return{name:"login"};if(e.name==="login"&&t.isLoggedIn)return{name:"dashboard"}});const tp=js({__name:"App",setup(e){return(t,n)=>(ur(),dr(Pt(lc)))}}),Ys=lf(tp),np=uf();Ys.use(np);Ys.use(Ic);Ys.mount("#app");export{bn as A,cp as B,lc as C,gf as D,hp as E,De as F,Bs as G,ip as H,Fn as I,Ed as R,up as T,Hl as a,ap as b,lp as c,js as d,ur as e,Eu as f,Rn as g,Vt as h,Ue as i,El as j,Ts as k,ep as l,dr as m,xs as n,_l as o,Ne as p,rp as q,op as r,Ra as s,qc as t,Pt as u,fp as v,dp as w,sp as x,pp as y,mp as z}; diff --git a/static/assets/index-T7PhPWhO.css b/static/assets/index-T7PhPWhO.css new file mode 100644 index 0000000000000000000000000000000000000000..4aa6a37ad49168d74f926589e9409e8bc7e26670 --- /dev/null +++ b/static/assets/index-T7PhPWhO.css @@ -0,0 +1 @@ +@import"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=Noto+Serif+SC:wght@600;700&display=swap";*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 97%;--foreground: 0 0% 10%;--card: 0 0% 100%;--card-foreground: 0 0% 10%;--primary: 0 0% 10%;--primary-foreground: 0 0% 100%;--secondary: 0 0% 92%;--secondary-foreground: 0 0% 10%;--muted: 0 0% 92%;--muted-foreground: 0 0% 40%;--accent: 0 0% 90%;--accent-foreground: 0 0% 10%;--destructive: 0 70% 45%;--destructive-foreground: 0 0% 100%;--border: 0 0% 86%;--input: 0 0% 86%;--ring: 0 0% 10%;--radius: 1rem}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:Noto Sans SC,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;overflow-x:hidden;background-image:radial-gradient(900px circle at 10% -20%,rgba(0,0,0,.04),transparent 45%),radial-gradient(700px circle at 90% 0%,rgba(0,0,0,.05),transparent 40%),linear-gradient(180deg,hsl(var(--background)) 0% 100%)}body:before{content:"";position:fixed;inset:0;background-image:linear-gradient(120deg,#ffffff8c,#fff0);opacity:.5;pointer-events:none;z-index:-1}h1,h2,h3{font-family:"Noto Serif SC",Georgia,serif;letter-spacing:-.01em}#app{min-height:100vh}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{top:0;bottom:0}.bottom-0{bottom:0}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.top-0{top:0}.top-full{top:100%}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[9999\]{z-index:9999}.col-span-2{grid-column:span 2 / span 2}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0{height:0px}.h-10{height:2.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-\[80vh\]{height:80vh}.h-full{height:100%}.max-h-\[60vh\]{max-height:60vh}.max-h-\[90vh\]{max-height:90vh}.min-h-0{min-height:0px}.min-h-\[140px\]{min-height:140px}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-10{width:2.5rem}.w-2{width:.5rem}.w-20{width:5rem}.w-24{width:6rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-44{width:11rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[200px\]{min-width:200px}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-1{row-gap:.25rem}.gap-y-2{row-gap:.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.justify-self-end{justify-self:end}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-visible{overflow-y:visible}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[2\.5rem\]{border-radius:2.5rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-x-4{border-left-width:4px;border-right-width:4px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-4{border-top-width:4px}.border-border{border-color:hsl(var(--border))}.border-border\/60{border-color:hsl(var(--border) / .6)}.border-destructive\/30{border-color:hsl(var(--destructive) / .3)}.border-input{border-color:hsl(var(--input))}.border-primary-foreground\/40{border-color:hsl(var(--primary-foreground) / .4)}.border-rose-200{--tw-border-opacity: 1;border-color:rgb(254 205 211 / var(--tw-border-opacity, 1))}.border-x-transparent{border-left-color:transparent;border-right-color:transparent}.border-t-foreground{border-top-color:hsl(var(--foreground))}.bg-accent{background-color:hsl(var(--accent))}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-200{--tw-bg-opacity: 1;background-color:rgb(253 230 138 / var(--tw-bg-opacity, 1))}.bg-amber-300{--tw-bg-opacity: 1;background-color:rgb(252 211 77 / var(--tw-bg-opacity, 1))}.bg-amber-400{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-black\/20{background-color:#0003}.bg-black\/30{background-color:#0000004d}.bg-black\/50{background-color:#00000080}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-card{background-color:hsl(var(--card))}.bg-card\/70{background-color:hsl(var(--card) / .7)}.bg-card\/90{background-color:hsl(var(--card) / .9)}.bg-cyan-100{--tw-bg-opacity: 1;background-color:rgb(207 250 254 / var(--tw-bg-opacity, 1))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-400{--tw-bg-opacity: 1;background-color:rgb(52 211 153 / var(--tw-bg-opacity, 1))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground{background-color:hsl(var(--muted-foreground))}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/70{background-color:hsl(var(--muted) / .7)}.bg-primary{background-color:hsl(var(--primary))}.bg-primary-foreground\/15{background-color:hsl(var(--primary-foreground) / .15)}.bg-rose-100{--tw-bg-opacity: 1;background-color:rgb(255 228 230 / var(--tw-bg-opacity, 1))}.bg-rose-50{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.bg-rose-500{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity, 1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/30{background-color:hsl(var(--secondary) / .3)}.bg-secondary\/40{background-color:hsl(var(--secondary) / .4)}.bg-secondary\/50{background-color:hsl(var(--secondary) / .5)}.bg-secondary\/60{background-color:hsl(var(--secondary) / .6)}.bg-sky-400{--tw-bg-opacity: 1;background-color:rgb(56 189 248 / var(--tw-bg-opacity, 1))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-violet-100{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.object-contain{-o-object-fit:contain;object-fit:contain}.p-1{padding:.25rem}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-10{padding-bottom:2.5rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pl-6{padding-left:1.5rem}.pr-1{padding-right:.25rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.tracking-\[0\.12em\]{letter-spacing:.12em}.tracking-\[0\.28em\]{letter-spacing:.28em}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-\[0\.3em\]{letter-spacing:.3em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-background{color:hsl(var(--background))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-cyan-700{--tw-text-opacity: 1;color:rgb(14 116 144 / var(--tw-text-opacity, 1))}.text-destructive{color:hsl(var(--destructive))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-violet-700{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.opacity-0{opacity:0}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-black\/10{--tw-shadow-color: rgb(0 0 0 / .1);--tw-shadow: var(--tw-shadow-colored)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,transform\]{transition-property:width,transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-\[transform\]{will-change:transform}html{scrollbar-gutter:stable}*{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.35) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:#00000059;border-radius:999px;border:2px solid transparent;background-clip:content-box}.scrollbar-slim::-webkit-scrollbar{width:6px;height:6px}.scrollbar-slim::-webkit-scrollbar-thumb{background-color:#0006}.cv-auto{content-visibility:auto;contain-intrinsic-size:0 44px}.monitor-badge--up{background:#d1fae5;color:#065f46}.monitor-badge--warn{background:#fef3c7;color:#b45309}.monitor-badge--down{background:#fee2e2;color:#991b1b}.monitor-badge--unknown{background:#f3f4f6;color:#6b7280}.monitor-card{border-radius:16px;padding:0;background:hsl(var(--card));box-shadow:none}.monitor-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.monitor-card__name{font-size:14px;font-weight:600;color:hsl(var(--foreground))}.monitor-card__badge{padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600}.monitor-card__stats{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:hsl(var(--muted-foreground));margin-bottom:12px}.monitor-card__value{margin-left:4px;color:hsl(var(--foreground));font-weight:600}.monitor-card__beats{display:flex;gap:2px;height:24px;align-items:flex-end}.monitor-beat{flex:1;min-width:4px;max-width:8px;border-radius:2px;transition:all .2s;position:relative}.monitor-beat:hover{opacity:.8;transform:scaleY(1.1)}.monitor-beat--up{background:#34c759;height:100%}.monitor-beat--warn,.monitor-beat--slow{background:#f5c15b;height:100%}.monitor-beat--down{background:#ff3b30;height:100%}.monitor-beat--empty{background:#e5e5ea;height:40%}.monitor-beat__tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#1d1d1f;color:#fff;padding:6px 10px;border-radius:6px;font-size:11px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;margin-bottom:6px;z-index:10}.monitor-beat__tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#1d1d1f}.monitor-beat:hover .monitor-beat__tooltip{opacity:1}.help-dot{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:999px;border:1px solid hsl(var(--border));font-size:10px;line-height:1;color:hsl(var(--muted-foreground));cursor:default}@media(max-width:768px){.monitor-beat{min-width:3px;max-width:6px}}@media(min-width:1024px){.dashboard-split{flex-direction:row;flex-wrap:nowrap}.dashboard-split .dashboard-main{flex:0 0 66.6667%;max-width:66.6667%}.dashboard-split .dashboard-side{flex:0 0 33.3333%;max-width:33.3333%}}@keyframes logo-float{0%{transform:translateY(0)}25%{transform:translateY(6px)}50%{transform:translateY(0)}75%{transform:translateY(-6px)}to{transform:translateY(0)}}@keyframes logo-blink{0%,45%,55%,to{transform:scaleY(1);opacity:1}50%{transform:scaleY(.1);opacity:.6}}.logo-mark .logo-cat-wrapper{animation:logo-float 4s ease-in-out infinite;transform-origin:center}.logo-mark{transform:translateY(2px)}.logo-mark .logo-eye{fill:#00bcd4;filter:drop-shadow(0 0 2px #00bcd4);animation:logo-blink 5s infinite;transform-box:fill-box;transform-origin:center}.hover\:border-destructive:hover{border-color:hsl(var(--destructive))}.hover\:border-destructive\/40:hover{border-color:hsl(var(--destructive) / .4)}.hover\:border-destructive\/60:hover{border-color:hsl(var(--destructive) / .6)}.hover\:border-foreground:hover{border-color:hsl(var(--foreground))}.hover\:border-primary:hover{border-color:hsl(var(--primary))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/10:hover{background-color:hsl(var(--destructive) / .1)}.hover\:bg-secondary\/60:hover{background-color:hsl(var(--secondary) / .6)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-emerald-500:hover{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.focus\:border-transparent:focus{border-color:transparent}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:text-accent-foreground{color:hsl(var(--accent-foreground))}.group:hover .group-hover\:opacity-100{opacity:1}.peer:checked~.peer-checked\:border-foreground{border-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:bg-foreground{background-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.peer:disabled~.peer-disabled\:opacity-50{opacity:.5}@media(min-width:640px){.sm\:ml-0{margin-left:0}.sm\:flex{display:flex}.sm\:w-44{width:11rem}.sm\:w-48{width:12rem}.sm\:w-auto{width:auto}.sm\:min-w-0{min-width:0px}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:items-center{align-items:center}}@media(min-width:768px){.md\:w-auto{width:auto}.md\:flex-1{flex:1 1 0%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1024px){.lg\:static{position:static}.lg\:sticky{position:sticky}.lg\:top-0{top:0}.lg\:ml-0{margin-left:0}.lg\:hidden{display:none}.lg\:h-20{height:5rem}.lg\:h-64{height:16rem}.lg\:h-72{height:18rem}.lg\:h-screen{height:100vh}.lg\:w-20{width:5rem}.lg\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:border-b-0{border-bottom-width:0px}.lg\:border-r{border-right-width:1px}.lg\:bg-card\/80{background-color:hsl(var(--card) / .8)}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:py-4{padding-top:1rem;padding-bottom:1rem}.lg\:pt-10{padding-top:2.5rem}.lg\:pt-5{padding-top:1.25rem}.lg\:pt-6{padding-top:1.5rem}.lg\:text-2xl{font-size:1.5rem;line-height:2rem}.lg\:backdrop-blur-none{--tw-backdrop-blur: ;-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}}@media(min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}} diff --git a/static/assets/index-aP4-wzy5.css b/static/assets/index-aP4-wzy5.css new file mode 100644 index 0000000000000000000000000000000000000000..a9ce19fd2299a9c3e998c2969d58e870d9494d28 --- /dev/null +++ b/static/assets/index-aP4-wzy5.css @@ -0,0 +1 @@ +@import"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=Noto+Serif+SC:wght@600;700&display=swap";*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 97%;--foreground: 0 0% 10%;--card: 0 0% 100%;--card-foreground: 0 0% 10%;--primary: 0 0% 10%;--primary-foreground: 0 0% 100%;--secondary: 0 0% 92%;--secondary-foreground: 0 0% 10%;--muted: 0 0% 92%;--muted-foreground: 0 0% 40%;--accent: 0 0% 90%;--accent-foreground: 0 0% 10%;--destructive: 0 70% 45%;--destructive-foreground: 0 0% 100%;--border: 0 0% 86%;--input: 0 0% 86%;--ring: 0 0% 10%;--radius: 1rem}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:Noto Sans SC,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;overflow-x:hidden;background-image:radial-gradient(900px circle at 10% -20%,rgba(0,0,0,.04),transparent 45%),radial-gradient(700px circle at 90% 0%,rgba(0,0,0,.05),transparent 40%),linear-gradient(180deg,hsl(var(--background)) 0% 100%)}body:before{content:"";position:fixed;inset:0;background-image:linear-gradient(120deg,#ffffff8c,#fff0);opacity:.5;pointer-events:none;z-index:-1}h1,h2,h3{font-family:"Noto Serif SC",Georgia,serif;letter-spacing:-.01em}#app{min-height:100vh}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-y-0{top:0;bottom:0}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.top-full{top:100%}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[9999\]{z-index:9999}.col-span-2{grid-column:span 2 / span 2}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0{height:0px}.h-10{height:2.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-\[80vh\]{height:80vh}.h-full{height:100%}.max-h-\[60vh\]{max-height:60vh}.max-h-\[90vh\]{max-height:90vh}.min-h-0{min-height:0px}.min-h-\[140px\]{min-height:140px}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-10{width:2.5rem}.w-2{width:.5rem}.w-20{width:5rem}.w-24{width:6rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-44{width:11rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[200px\]{min-width:200px}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-not-allowed{cursor:not-allowed}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-1{row-gap:.25rem}.gap-y-2{row-gap:.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.justify-self-end{justify-self:end}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-visible{overflow-y:visible}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[2\.5rem\]{border-radius:2.5rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-x-4{border-left-width:4px;border-right-width:4px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-4{border-top-width:4px}.border-border{border-color:hsl(var(--border))}.border-border\/60{border-color:hsl(var(--border) / .6)}.border-destructive\/30{border-color:hsl(var(--destructive) / .3)}.border-input{border-color:hsl(var(--input))}.border-primary-foreground\/40{border-color:hsl(var(--primary-foreground) / .4)}.border-rose-200{--tw-border-opacity: 1;border-color:rgb(254 205 211 / var(--tw-border-opacity, 1))}.border-x-transparent{border-left-color:transparent;border-right-color:transparent}.border-t-foreground{border-top-color:hsl(var(--foreground))}.bg-accent{background-color:hsl(var(--accent))}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-200{--tw-bg-opacity: 1;background-color:rgb(253 230 138 / var(--tw-bg-opacity, 1))}.bg-amber-300{--tw-bg-opacity: 1;background-color:rgb(252 211 77 / var(--tw-bg-opacity, 1))}.bg-amber-400{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-black\/20{background-color:#0003}.bg-black\/30{background-color:#0000004d}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-card{background-color:hsl(var(--card))}.bg-card\/70{background-color:hsl(var(--card) / .7)}.bg-card\/90{background-color:hsl(var(--card) / .9)}.bg-cyan-100{--tw-bg-opacity: 1;background-color:rgb(207 250 254 / var(--tw-bg-opacity, 1))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-400{--tw-bg-opacity: 1;background-color:rgb(52 211 153 / var(--tw-bg-opacity, 1))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground{background-color:hsl(var(--muted-foreground))}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/70{background-color:hsl(var(--muted) / .7)}.bg-primary{background-color:hsl(var(--primary))}.bg-primary-foreground\/15{background-color:hsl(var(--primary-foreground) / .15)}.bg-rose-100{--tw-bg-opacity: 1;background-color:rgb(255 228 230 / var(--tw-bg-opacity, 1))}.bg-rose-50{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.bg-rose-500{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity, 1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/30{background-color:hsl(var(--secondary) / .3)}.bg-secondary\/40{background-color:hsl(var(--secondary) / .4)}.bg-secondary\/50{background-color:hsl(var(--secondary) / .5)}.bg-secondary\/60{background-color:hsl(var(--secondary) / .6)}.bg-sky-400{--tw-bg-opacity: 1;background-color:rgb(56 189 248 / var(--tw-bg-opacity, 1))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-violet-100{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.object-contain{-o-object-fit:contain;object-fit:contain}.p-1{padding:.25rem}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-10{padding-bottom:2.5rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pr-1{padding-right:.25rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.tracking-\[0\.12em\]{letter-spacing:.12em}.tracking-\[0\.28em\]{letter-spacing:.28em}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-\[0\.3em\]{letter-spacing:.3em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-background{color:hsl(var(--background))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-cyan-700{--tw-text-opacity: 1;color:rgb(14 116 144 / var(--tw-text-opacity, 1))}.text-destructive{color:hsl(var(--destructive))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-violet-700{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.opacity-0{opacity:0}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-black\/10{--tw-shadow-color: rgb(0 0 0 / .1);--tw-shadow: var(--tw-shadow-colored)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,transform\]{transition-property:width,transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-\[transform\]{will-change:transform}html{scrollbar-gutter:stable}*{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.35) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:#00000059;border-radius:999px;border:2px solid transparent;background-clip:content-box}.scrollbar-slim::-webkit-scrollbar{width:6px;height:6px}.scrollbar-slim::-webkit-scrollbar-thumb{background-color:#0006}.cv-auto{content-visibility:auto;contain-intrinsic-size:0 44px}.monitor-badge--up{background:#d1fae5;color:#065f46}.monitor-badge--warn{background:#fef3c7;color:#b45309}.monitor-badge--down{background:#fee2e2;color:#991b1b}.monitor-badge--unknown{background:#f3f4f6;color:#6b7280}.monitor-card{border-radius:16px;padding:0;background:hsl(var(--card));box-shadow:none}.monitor-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.monitor-card__name{font-size:14px;font-weight:600;color:hsl(var(--foreground))}.monitor-card__badge{padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600}.monitor-card__stats{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:hsl(var(--muted-foreground));margin-bottom:12px}.monitor-card__value{margin-left:4px;color:hsl(var(--foreground));font-weight:600}.monitor-card__beats{display:flex;gap:2px;height:24px;align-items:flex-end}.monitor-beat{flex:1;min-width:4px;max-width:8px;border-radius:2px;transition:all .2s;position:relative}.monitor-beat:hover{opacity:.8;transform:scaleY(1.1)}.monitor-beat--up{background:#34c759;height:100%}.monitor-beat--warn,.monitor-beat--slow{background:#f5c15b;height:100%}.monitor-beat--down{background:#ff3b30;height:100%}.monitor-beat--empty{background:#e5e5ea;height:40%}.monitor-beat__tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#1d1d1f;color:#fff;padding:6px 10px;border-radius:6px;font-size:11px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;margin-bottom:6px;z-index:10}.monitor-beat__tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#1d1d1f}.monitor-beat:hover .monitor-beat__tooltip{opacity:1}.help-dot{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:999px;border:1px solid hsl(var(--border));font-size:10px;line-height:1;color:hsl(var(--muted-foreground));cursor:default}@media(max-width:768px){.monitor-beat{min-width:3px;max-width:6px}}@media(min-width:1024px){.dashboard-split{flex-direction:row;flex-wrap:nowrap}.dashboard-split .dashboard-main{flex:0 0 66.6667%;max-width:66.6667%}.dashboard-split .dashboard-side{flex:0 0 33.3333%;max-width:33.3333%}}@keyframes logo-float{0%{transform:translateY(0)}25%{transform:translateY(6px)}50%{transform:translateY(0)}75%{transform:translateY(-6px)}to{transform:translateY(0)}}@keyframes logo-blink{0%,45%,55%,to{transform:scaleY(1);opacity:1}50%{transform:scaleY(.1);opacity:.6}}.logo-mark .logo-cat-wrapper{animation:logo-float 4s ease-in-out infinite;transform-origin:center}.logo-mark{transform:translateY(2px)}.logo-mark .logo-eye{fill:#00bcd4;filter:drop-shadow(0 0 2px #00bcd4);animation:logo-blink 5s infinite;transform-box:fill-box;transform-origin:center}.hover\:border-destructive:hover{border-color:hsl(var(--destructive))}.hover\:border-destructive\/40:hover{border-color:hsl(var(--destructive) / .4)}.hover\:border-destructive\/60:hover{border-color:hsl(var(--destructive) / .6)}.hover\:border-foreground:hover{border-color:hsl(var(--foreground))}.hover\:border-primary:hover{border-color:hsl(var(--primary))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/10:hover{background-color:hsl(var(--destructive) / .1)}.hover\:bg-secondary\/60:hover{background-color:hsl(var(--secondary) / .6)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-emerald-500:hover{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.focus\:border-transparent:focus{border-color:transparent}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:text-accent-foreground{color:hsl(var(--accent-foreground))}.group:hover .group-hover\:opacity-100{opacity:1}.peer:checked~.peer-checked\:border-foreground{border-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:bg-foreground{background-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.peer:disabled~.peer-disabled\:opacity-50{opacity:.5}@media(min-width:640px){.sm\:ml-0{margin-left:0}.sm\:flex{display:flex}.sm\:w-44{width:11rem}.sm\:w-48{width:12rem}.sm\:w-auto{width:auto}.sm\:min-w-0{min-width:0px}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:items-center{align-items:center}}@media(min-width:768px){.md\:w-auto{width:auto}.md\:flex-1{flex:1 1 0%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1024px){.lg\:static{position:static}.lg\:sticky{position:sticky}.lg\:top-0{top:0}.lg\:ml-0{margin-left:0}.lg\:hidden{display:none}.lg\:h-20{height:5rem}.lg\:h-64{height:16rem}.lg\:h-72{height:18rem}.lg\:h-screen{height:100vh}.lg\:w-20{width:5rem}.lg\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:border-b-0{border-bottom-width:0px}.lg\:border-r{border-right-width:1px}.lg\:bg-card\/80{background-color:hsl(var(--card) / .8)}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:py-4{padding-top:1rem;padding-bottom:1rem}.lg\:pt-10{padding-top:2.5rem}.lg\:pt-5{padding-top:1.25rem}.lg\:pt-6{padding-top:1.5rem}.lg\:text-2xl{font-size:1.5rem;line-height:2rem}.lg\:backdrop-blur-none{--tw-backdrop-blur: ;-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}}@media(min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}} diff --git a/static/assets/index-gD6QQiOu.js b/static/assets/index-gD6QQiOu.js new file mode 100644 index 0000000000000000000000000000000000000000..c730626b6f11ec847358f0478ad94b80c373f534 --- /dev/null +++ b/static/assets/index-gD6QQiOu.js @@ -0,0 +1,7 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PublicUptime-DGrWLd4M.js","assets/useUptimeStatus-BFxVcNn2.js","assets/AppShell-DeReBBBN.js","assets/settings-CAn-I9vU.js","assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-D2ZZ5gFD.js","assets/useConfirmDialog-DEfIwwMt.js","assets/Dashboard-Cj32OD7s.js","assets/HelpTip.vue_vue_type_script_setup_true_lang-Cur056hv.js","assets/Accounts-CWTZ3Utf.js","assets/SelectMenu.vue_vue_type_script_setup_true_lang-B2Zu3W0l.js","assets/Checkbox.vue_vue_type_script_setup_true_lang-DT0LWHxC.js","assets/Settings-5TGeenDK.js","assets/Logs-BQzipIMY.js","assets/Monitor-7LGA_2Xx.js"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function us(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const se={},$t=[],ot=()=>{},ni=()=>!1,or=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),fs=e=>e.startsWith("onUpdate:"),Se=Object.assign,ds=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},oc=Object.prototype.hasOwnProperty,ne=(e,t)=>oc.call(e,t),q=Array.isArray,Kt=e=>ir(e)==="[object Map]",ri=e=>ir(e)==="[object Set]",W=e=>typeof e=="function",de=e=>typeof e=="string",yt=e=>typeof e=="symbol",le=e=>e!==null&&typeof e=="object",si=e=>(le(e)||W(e))&&W(e.then)&&W(e.catch),oi=Object.prototype.toString,ir=e=>oi.call(e),ic=e=>ir(e).slice(8,-1),ii=e=>ir(e)==="[object Object]",lr=e=>de(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,cn=us(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),cr=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},lc=/-\w/g,xt=cr(e=>e.replace(lc,t=>t.slice(1).toUpperCase())),cc=/\B([A-Z])/g,jt=cr(e=>e.replace(cc,"-$1").toLowerCase()),li=cr(e=>e.charAt(0).toUpperCase()+e.slice(1)),vr=cr(e=>e?`on${li(e)}`:""),vt=(e,t)=>!Object.is(e,t),Bn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},hs=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let ks;const ar=()=>ks||(ks=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function ps(e){if(q(e)){const t={};for(let n=0;n{if(n){const r=n.split(uc);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function ms(e){let t="";if(de(e))t=e;else if(q(e))for(let n=0;n!!(e&&e.__v_isRef===!0),mc=e=>de(e)?e:e==null?"":q(e)||le(e)&&(e.toString===oi||!W(e.toString))?ui(e)?mc(e.value):JSON.stringify(e,fi,2):String(e),fi=(e,t)=>ui(t)?fi(e,t.value):Kt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[Or(r,o)+" =>"]=s,n),{})}:ri(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Or(n))}:yt(t)?Or(t):le(t)&&!q(t)&&!ii(t)?String(t):t,Or=(e,t="")=>{var n;return yt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let _e;class di{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=_e,!t&&_e&&(this.index=(_e.scopes||(_e.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&&(_e=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if(un){let t=un;for(un=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;an;){let t=an;for(an=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function _i(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function bi(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),_s(r),yc(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function qr(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===bn)||(e.globalVersion=bn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!qr(e))))return;e.flags|=2;const t=e.dep,n=ie,r=$e;ie=e,$e=!0;try{_i(e);const s=e.fn(e._value);(t.version===0||vt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{ie=n,$e=r,bi(e),e.flags&=-3}}function _s(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)_s(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function yc(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 wi=[];function ht(){wi.push($e),$e=!1}function pt(){const e=wi.pop();$e=e===void 0?!0:e}function Vs(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ie;ie=void 0;try{t()}finally{ie=n}}}let bn=0;class _c{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 bs{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!ie||!$e||ie===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ie)n=this.activeLink=new _c(ie,this),ie.deps?(n.prevDep=ie.depsTail,ie.depsTail.nextDep=n,ie.depsTail=n):ie.deps=ie.depsTail=n,Si(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=ie.depsTail,n.nextDep=void 0,ie.depsTail.nextDep=n,ie.depsTail=n,ie.deps===n&&(ie.deps=r)}return n}trigger(t){this.version++,bn++,this.notify(t)}notify(t){gs();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ys()}}}function Si(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Si(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const zn=new WeakMap,Dt=Symbol(""),$r=Symbol(""),En=Symbol("");function be(e,t,n){if($e&&ie){let r=zn.get(e);r||zn.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new bs),s.map=r,s.key=n),s.track()}}function ft(e,t,n,r,s,o){const i=zn.get(e);if(!i){bn++;return}const l=c=>{c&&c.trigger()};if(gs(),t==="clear")i.forEach(l);else{const c=q(e),u=c&&lr(n);if(c&&n==="length"){const a=Number(r);i.forEach((f,p)=>{(p==="length"||p===En||!yt(p)&&p>=a)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(En)),t){case"add":c?u&&l(i.get("length")):(l(i.get(Dt)),Kt(e)&&l(i.get($r)));break;case"delete":c||(l(i.get(Dt)),Kt(e)&&l(i.get($r)));break;case"set":Kt(e)&&l(i.get(Dt));break}}ys()}function bc(e,t){const n=zn.get(e);return n&&n.get(t)}function Bt(e){const t=Z(e);return t===e?t:(be(t,"iterate",En),je(e)?t:t.map(Ke))}function ur(e){return be(e=Z(e),"iterate",En),e}function wt(e,t){return mt(e)?it(e)?zt(Ke(t)):zt(t):Ke(t)}const Ec={__proto__:null,[Symbol.iterator](){return Tr(this,Symbol.iterator,e=>wt(this,e))},concat(...e){return Bt(this).concat(...e.map(t=>q(t)?Bt(t):t))},entries(){return Tr(this,"entries",e=>(e[1]=wt(this,e[1]),e))},every(e,t){return ct(this,"every",e,t,void 0,arguments)},filter(e,t){return ct(this,"filter",e,t,n=>n.map(r=>wt(this,r)),arguments)},find(e,t){return ct(this,"find",e,t,n=>wt(this,n),arguments)},findIndex(e,t){return ct(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ct(this,"findLast",e,t,n=>wt(this,n),arguments)},findLastIndex(e,t){return ct(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ct(this,"forEach",e,t,void 0,arguments)},includes(...e){return Cr(this,"includes",e)},indexOf(...e){return Cr(this,"indexOf",e)},join(e){return Bt(this).join(e)},lastIndexOf(...e){return Cr(this,"lastIndexOf",e)},map(e,t){return ct(this,"map",e,t,void 0,arguments)},pop(){return nn(this,"pop")},push(...e){return nn(this,"push",e)},reduce(e,...t){return qs(this,"reduce",e,t)},reduceRight(e,...t){return qs(this,"reduceRight",e,t)},shift(){return nn(this,"shift")},some(e,t){return ct(this,"some",e,t,void 0,arguments)},splice(...e){return nn(this,"splice",e)},toReversed(){return Bt(this).toReversed()},toSorted(e){return Bt(this).toSorted(e)},toSpliced(...e){return Bt(this).toSpliced(...e)},unshift(...e){return nn(this,"unshift",e)},values(){return Tr(this,"values",e=>wt(this,e))}};function Tr(e,t,n){const r=ur(e),s=r[t]();return r!==e&&!je(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const wc=Array.prototype;function ct(e,t,n,r,s,o){const i=ur(e),l=i!==e&&!je(e),c=i[t];if(c!==wc[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,wt(e,f),p,e)}:n.length>2&&(u=function(f,p){return n.call(this,f,p,e)}));const a=c.call(i,u,r);return l&&s?s(a):a}function qs(e,t,n,r){const s=ur(e);let o=n;return s!==e&&(je(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,wt(e,l),c,e)}),s[t](o,...r)}function Cr(e,t,n){const r=Z(e);be(r,"iterate",En);const s=r[t](...n);return(s===-1||s===!1)&&fr(n[0])?(n[0]=Z(n[0]),r[t](...n)):s}function nn(e,t,n=[]){ht(),gs();const r=Z(e)[t].apply(e,n);return ys(),pt(),r}const Sc=us("__proto__,__v_isRef,__isVue"),Ri=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(yt));function Rc(e){yt(e)||(e=String(e));const t=Z(this);return be(t,"has",e),t.hasOwnProperty(e)}class Ai{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?Dc:Ti:o?xi:Oi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=q(t);if(!s){let c;if(i&&(c=Ec[n]))return c;if(n==="hasOwnProperty")return Rc}const l=Reflect.get(t,n,ce(t)?t:r);if((yt(n)?Ri.has(n):Sc(n))||(s||be(t,"get",n),o))return l;if(ce(l)){const c=i&&lr(n)?l:l.value;return s&&le(c)?Wr(c):c}return le(l)?s?Wr(l):On(l):l}}class vi extends Ai{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=q(t)&&lr(n);if(!this._isShallow){const u=mt(o);if(!je(r)&&!mt(r)&&(o=Z(o),r=Z(r)),!i&&ce(o)&&!ce(r))return u||(o.value=r),!0}const l=i?Number(n)e,Dn=e=>Reflect.getPrototypeOf(e);function Tc(e,t,n){return function(...r){const s=this.__v_raw,o=Z(s),i=Kt(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=s[e](...r),a=n?Kr:t?zt:Ke;return!t&&be(o,"iterate",c?$r:Dt),{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 Ln(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Cc(e,t){const n={get(s){const o=this.__v_raw,i=Z(o),l=Z(s);e||(vt(s,l)&&be(i,"get",s),be(i,"get",l));const{has:c}=Dn(i),u=t?Kr:e?zt:Ke;if(c.call(i,s))return u(o.get(s));if(c.call(i,l))return u(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&be(Z(s),"iterate",Dt),s.size},has(s){const o=this.__v_raw,i=Z(o),l=Z(s);return e||(vt(s,l)&&be(i,"has",s),be(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,c=Z(l),u=t?Kr:e?zt:Ke;return!e&&be(c,"iterate",Dt),l.forEach((a,f)=>s.call(o,u(a),u(f),i))}};return Se(n,e?{add:Ln("add"),set:Ln("set"),delete:Ln("delete"),clear:Ln("clear")}:{add(s){!t&&!je(s)&&!mt(s)&&(s=Z(s));const o=Z(this);return Dn(o).has.call(o,s)||(o.add(s),ft(o,"add",s,s)),this},set(s,o){!t&&!je(o)&&!mt(o)&&(o=Z(o));const i=Z(this),{has:l,get:c}=Dn(i);let u=l.call(i,s);u||(s=Z(s),u=l.call(i,s));const a=c.call(i,s);return i.set(s,o),u?vt(o,a)&&ft(i,"set",s,o):ft(i,"add",s,o),this},delete(s){const o=Z(this),{has:i,get:l}=Dn(o);let c=i.call(o,s);c||(s=Z(s),c=i.call(o,s)),l&&l.call(o,s);const u=o.delete(s);return c&&ft(o,"delete",s,void 0),u},clear(){const s=Z(this),o=s.size!==0,i=s.clear();return o&&ft(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=Tc(s,e,t)}),n}function Es(e,t){const n=Cc(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(ne(n,s)&&s in r?n:r,s,o)}const Pc={get:Es(!1,!1)},Nc={get:Es(!1,!0)},Ic={get:Es(!0,!1)};const Oi=new WeakMap,xi=new WeakMap,Ti=new WeakMap,Dc=new WeakMap;function Lc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Fc(e){return e.__v_skip||!Object.isExtensible(e)?0:Lc(ic(e))}function On(e){return mt(e)?e:ws(e,!1,vc,Pc,Oi)}function Ci(e){return ws(e,!1,xc,Nc,xi)}function Wr(e){return ws(e,!0,Oc,Ic,Ti)}function ws(e,t,n,r,s){if(!le(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=Fc(e);if(o===0)return e;const i=s.get(e);if(i)return i;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function it(e){return mt(e)?it(e.__v_raw):!!(e&&e.__v_isReactive)}function mt(e){return!!(e&&e.__v_isReadonly)}function je(e){return!!(e&&e.__v_isShallow)}function fr(e){return e?!!e.__v_raw:!1}function Z(e){const t=e&&e.__v_raw;return t?Z(t):e}function Ss(e){return!ne(e,"__v_skip")&&Object.isExtensible(e)&&ci(e,"__v_skip",!0),e}const Ke=e=>le(e)?On(e):e,zt=e=>le(e)?Wr(e):e;function ce(e){return e?e.__v_isRef===!0:!1}function Lt(e){return Pi(e,!1)}function Mc(e){return Pi(e,!0)}function Pi(e,t){return ce(e)?e:new Uc(e,t)}class Uc{constructor(t,n){this.dep=new bs,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:Z(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,r=this.__v_isShallow||je(t)||mt(t);t=r?t:Z(t),vt(t,n)&&(this._rawValue=t,this._value=r?t:Ke(t),this.dep.trigger())}}function Ot(e){return ce(e)?e.value:e}const jc={get:(e,t,n)=>t==="__v_raw"?e:Ot(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return ce(s)&&!ce(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Ni(e){return it(e)?e:new Proxy(e,jc)}function Bc(e){const t=q(e)?new Array(e.length):{};for(const n in e)t[n]=Ii(e,n);return t}class Hc{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._raw=Z(t);let s=!0,o=t;if(!q(t)||!lr(String(n)))do s=!fr(o)||je(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=Ot(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&ce(this._raw[this._key])){const n=this._object[this._key];if(ce(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return bc(this._raw,this._key)}}class kc{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Vc(e,t,n){return ce(e)?e:W(e)?new kc(e):le(e)&&arguments.length>1?Ii(e,t,n):Lt(e)}function Ii(e,t,n){return new Hc(e,t,n)}class qc{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new bs(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=bn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&ie!==this)return yi(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 $c(e,t,n=!1){let r,s;return W(e)?r=e:(r=e.get,s=e.set),new qc(r,s,n)}const Fn={},Jn=new WeakMap;let Pt;function Kc(e,t=!1,n=Pt){if(n){let r=Jn.get(n);r||Jn.set(n,r=[]),r.push(e)}}function Wc(e,t,n=se){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:c}=n,u=P=>s?P:je(P)||s===!1||s===0?dt(P,1):dt(P);let a,f,p,m,g=!1,b=!1;if(ce(e)?(f=()=>e.value,g=je(e)):it(e)?(f=()=>u(e),g=!0):q(e)?(b=!0,g=e.some(P=>it(P)||je(P)),f=()=>e.map(P=>{if(ce(P))return P.value;if(it(P))return u(P);if(W(P))return c?c(P,2):P()})):W(e)?t?f=c?()=>c(e,2):e:f=()=>{if(p){ht();try{p()}finally{pt()}}const P=Pt;Pt=a;try{return c?c(e,3,[m]):e(m)}finally{Pt=P}}:f=ot,t&&s){const P=f,M=s===!0?1/0:s;f=()=>dt(P(),M)}const E=pi(),O=()=>{a.stop(),E&&E.active&&ds(E.effects,a)};if(o&&t){const P=t;t=(...M)=>{P(...M),O()}}let C=b?new Array(e.length).fill(Fn):Fn;const N=P=>{if(!(!(a.flags&1)||!a.dirty&&!P))if(t){const M=a.run();if(s||g||(b?M.some((X,k)=>vt(X,C[k])):vt(M,C))){p&&p();const X=Pt;Pt=a;try{const k=[M,C===Fn?void 0:b&&C[0]===Fn?[]:C,m];C=M,c?c(t,3,k):t(...k)}finally{Pt=X}}}else a.run()};return l&&l(N),a=new mi(f),a.scheduler=i?()=>i(N,!1):N,m=P=>Kc(P,!1,a),p=a.onStop=()=>{const P=Jn.get(a);if(P){if(c)c(P,4);else for(const M of P)M();Jn.delete(a)}},t?r?N(!0):C=a.run():i?i(N.bind(null,!0),!0):a.run(),O.pause=a.pause.bind(a),O.resume=a.resume.bind(a),O.stop=O,O}function dt(e,t=1/0,n){if(t<=0||!le(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,ce(e))dt(e.value,t,n);else if(q(e))for(let r=0;r{dt(r,t,n)});else if(ii(e)){for(const r in e)dt(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&dt(e[r],t,n)}return e}function xn(e,t,n,r){try{return r?e(...r):e()}catch(s){dr(s,t,n)}}function lt(e,t,n,r){if(W(e)){const s=xn(e,t,n,r);return s&&si(s)&&s.catch(o=>{dr(o,t,n)}),s}if(q(e)){const s=[];for(let o=0;o>>1,s=xe[r],o=wn(s);o=wn(n)?xe.push(e):xe.splice(zc(t),0,e),e.flags|=1,Li()}}function Li(){Xn||(Xn=Di.then(Mi))}function Jc(e){q(e)?Wt.push(...e):St&&e.id===-1?St.splice(kt+1,0,e):e.flags&1||(Wt.push(e),e.flags|=1),Li()}function $s(e,t,n=rt+1){for(;nwn(n)-wn(r));if(Wt.length=0,St){St.push(...t);return}for(St=t,kt=0;kte.id==null?e.flags&2?-1:1/0:e.id;function Mi(e){try{for(rt=0;rt{r._d&&tr(-1);const o=Qn(t);let i;try{i=e(...s)}finally{Qn(o),r._d&&tr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function Ah(e,t){if(we===null)return e;const n=gr(we),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&W(t)?t.call(r&&r.proxy):t}}function Qc(){return!!(dl()||Ft)}const Yc=Symbol.for("v-scx"),Zc=()=>ke(Yc);function fn(e,t,n){return ji(e,t,n)}function ji(e,t,n=se){const{immediate:r,deep:s,flush:o,once:i}=n,l=Se({},n),c=t&&r||!t&&o!=="post";let u;if(An){if(o==="sync"){const m=Zc();u=m.__watcherHandles||(m.__watcherHandles=[])}else if(!c){const m=()=>{};return m.stop=ot,m.resume=ot,m.pause=ot,m}}const a=Te;l.call=(m,g,b)=>lt(m,a,g,b);let f=!1;o==="post"?l.scheduler=m=>{ve(m,a&&a.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(m,g)=>{g?m():As(m)}),l.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,a&&(m.id=a.uid,m.i=a))};const p=Wc(e,t,l);return An&&(u?u.push(p):c&&p()),p}function ea(e,t,n){const r=this.proxy,s=de(e)?e.includes(".")?Bi(r,e):()=>r[e]:e.bind(r,r);let o;W(t)?o=t:(o=t.handler,n=t);const i=Tn(this),l=ji(s,o.bind(r),n);return i(),l}function Bi(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,dn=e=>e&&(e.disabled||e.disabled===""),Ks=e=>e&&(e.defer||e.defer===""),Ws=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Gs=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Gr=(e,t)=>{const n=e&&e.to;return de(n)?t?t(n):null:n},ki={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,u){const{mc:a,pc:f,pbc:p,o:{insert:m,querySelector:g,createText:b,createComment:E}}=u,O=dn(t.props);let{shapeFlag:C,children:N,dynamicChildren:P}=t;if(e==null){const M=t.el=b(""),X=t.anchor=b("");m(M,n,r),m(X,n,r);const k=(U,ee)=>{C&16&&a(N,U,ee,s,o,i,l,c)},V=()=>{const U=t.target=Gr(t.props,g),ee=Vi(U,t,b,m);U&&(i!=="svg"&&Ws(U)?i="svg":i!=="mathml"&&Gs(U)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(U),O||(k(U,ee),kn(t,!1)))};O&&(k(n,X),kn(t,!0)),Ks(t.props)?(t.el.__isMounted=!1,ve(()=>{V(),delete t.el.__isMounted},o)):V()}else{if(Ks(t.props)&&e.el.__isMounted===!1){ve(()=>{ki.process(e,t,n,r,s,o,i,l,c,u)},o);return}t.el=e.el,t.targetStart=e.targetStart;const M=t.anchor=e.anchor,X=t.target=e.target,k=t.targetAnchor=e.targetAnchor,V=dn(e.props),U=V?n:X,ee=V?M:k;if(i==="svg"||Ws(X)?i="svg":(i==="mathml"||Gs(X))&&(i="mathml"),P?(p(e.dynamicChildren,P,U,s,o,i,l),Cs(e,t,!0)):c||f(e,t,U,ee,s,o,i,l,!1),O)V?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Mn(t,n,M,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const ue=t.target=Gr(t.props,g);ue&&Mn(t,ue,null,u,0)}else V&&Mn(t,X,k,u,1);kn(t,O)}},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetStart:u,targetAnchor:a,target:f,props:p}=e;if(f&&(s(u),s(a)),o&&s(c),i&16){const m=o||!dn(p);for(let g=0;ghn(g,t&&(q(t)?t[b]:t),n,r,s));return}if(Gt(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&hn(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?gr(r.component):r.el,i=s?null:o,{i:l,r:c}=e,u=t&&t.r,a=l.refs===se?l.refs={}:l.refs,f=l.setupState,p=Z(f),m=f===se?ni:g=>ne(p,g);if(u!=null&&u!==c){if(zs(t),de(u))a[u]=null,m(u)&&(f[u]=null);else if(ce(u)){u.value=null;const g=t;g.k&&(a[g.k]=null)}}if(W(c))xn(c,l,12,[i,a]);else{const g=de(c),b=ce(c);if(g||b){const E=()=>{if(e.f){const O=g?m(c)?f[c]:a[c]:c.value;if(s)q(O)&&ds(O,o);else if(q(O))O.includes(o)||O.push(o);else if(g)a[c]=[o],m(c)&&(f[c]=a[c]);else{const C=[o];c.value=C,e.k&&(a[e.k]=C)}}else g?(a[c]=i,m(c)&&(f[c]=i)):b&&(c.value=i,e.k&&(a[e.k]=i))};if(i){const O=()=>{E(),Yn.delete(e)};O.id=-1,Yn.set(e,O),ve(O,n)}else zs(e),E()}}}function zs(e){const t=Yn.get(e);t&&(t.flags|=8,Yn.delete(e))}ar().requestIdleCallback;ar().cancelIdleCallback;const Gt=e=>!!e.type.__asyncLoader,$i=e=>e.type.__isKeepAlive;function sa(e,t){Ki(e,"a",t)}function oa(e,t){Ki(e,"da",t)}function Ki(e,t,n=Te){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(hr(t,r,n),n){let s=n.parent;for(;s&&s.parent;)$i(s.parent.vnode)&&ia(r,t,n,s),s=s.parent}}function ia(e,t,n,r){const s=hr(t,e,r,!0);Wi(()=>{ds(r[t],s)},n)}function hr(e,t,n=Te,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{ht();const l=Tn(n),c=lt(t,n,e,i);return l(),pt(),c});return r?s.unshift(o):s.push(o),o}}const _t=e=>(t,n=Te)=>{(!An||e==="sp")&&hr(e,(...r)=>t(...r),n)},la=_t("bm"),ca=_t("m"),aa=_t("bu"),ua=_t("u"),fa=_t("bum"),Wi=_t("um"),da=_t("sp"),ha=_t("rtg"),pa=_t("rtc");function ma(e,t=Te){hr("ec",e,t)}const ga=Symbol.for("v-ndc");function Oh(e,t,n,r){let s;const o=n,i=q(e);if(i||de(e)){const l=i&&it(e);let c=!1,u=!1;l&&(c=!je(e),u=mt(e),e=ur(e)),s=new Array(e.length);for(let a=0,f=e.length;at(l,c,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let c=0,u=l.length;c0;return er(),nr(Fe,null,[Ce("slot",n,r)],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),er();const i=o&&Gi(o(n)),l=n.key||i&&i.key,c=nr(Fe,{key:(l&&!yt(l)?l:`_${t}`)+(!i&&r?"_fb":"")},i||[],i&&e._===1?64:-2);return c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),o&&o._c&&(o._d=!0),c}function Gi(e){return e.some(t=>Rn(t)?!(t.type===gt||t.type===Fe&&!Gi(t.children)):!0)?e:null}const zr=e=>e?hl(e)?gr(e):zr(e.parent):null,pn=Se(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=>zr(e.parent),$root:e=>zr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ji(e),$forceUpdate:e=>e.f||(e.f=()=>{As(e.update)}),$nextTick:e=>e.n||(e.n=Rs.bind(e.proxy)),$watch:e=>ea.bind(e)}),Pr=(e,t)=>e!==se&&!e.__isScriptSetup&&ne(e,t),ya={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,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 r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(Pr(r,t))return i[t]=1,r[t];if(s!==se&&ne(s,t))return i[t]=2,s[t];if(ne(o,t))return i[t]=3,o[t];if(n!==se&&ne(n,t))return i[t]=4,n[t];Jr&&(i[t]=0)}}const u=pn[t];let a,f;if(u)return t==="$attrs"&&be(e.attrs,"get",""),u(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==se&&ne(n,t))return i[t]=4,n[t];if(f=c.config.globalProperties,ne(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return Pr(s,t)?(s[t]=n,!0):r!==se&&ne(r,t)?(r[t]=n,!0):ne(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:o,type:i}},l){let c;return!!(n[l]||e!==se&&l[0]!=="$"&&ne(e,l)||Pr(t,l)||ne(o,l)||ne(r,l)||ne(pn,l)||ne(s.config.globalProperties,l)||(c=i.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ne(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Js(e){return q(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Jr=!0;function _a(e){const t=Ji(e),n=e.proxy,r=e.ctx;Jr=!1,t.beforeCreate&&Xs(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:u,created:a,beforeMount:f,mounted:p,beforeUpdate:m,updated:g,activated:b,deactivated:E,beforeDestroy:O,beforeUnmount:C,destroyed:N,unmounted:P,render:M,renderTracked:X,renderTriggered:k,errorCaptured:V,serverPrefetch:U,expose:ee,inheritAttrs:ue,components:ye,directives:pe,filters:Re}=t;if(u&&ba(u,r,null),i)for(const K in i){const z=i[K];W(z)&&(r[K]=z.bind(n))}if(s){const K=s.call(n,n);le(K)&&(e.data=On(K))}if(Jr=!0,o)for(const K in o){const z=o[K],Be=W(z)?z.bind(n,n):W(z.get)?z.get.bind(n,n):ot,ze=!W(z)&&W(z.set)?z.set.bind(n):ot,me=Me({get:Be,set:ze});Object.defineProperty(r,K,{enumerable:!0,configurable:!0,get:()=>me.value,set:fe=>me.value=fe})}if(l)for(const K in l)zi(l[K],r,n,K);if(c){const K=W(c)?c.call(n):c;Reflect.ownKeys(K).forEach(z=>{Hn(z,K[z])})}a&&Xs(a,e,"c");function J(K,z){q(z)?z.forEach(Be=>K(Be.bind(n))):z&&K(z.bind(n))}if(J(la,f),J(ca,p),J(aa,m),J(ua,g),J(sa,b),J(oa,E),J(ma,V),J(pa,X),J(ha,k),J(fa,C),J(Wi,P),J(da,U),q(ee))if(ee.length){const K=e.exposed||(e.exposed={});ee.forEach(z=>{Object.defineProperty(K,z,{get:()=>n[z],set:Be=>n[z]=Be,enumerable:!0})})}else e.exposed||(e.exposed={});M&&e.render===ot&&(e.render=M),ue!=null&&(e.inheritAttrs=ue),ye&&(e.components=ye),pe&&(e.directives=pe),U&&qi(e)}function ba(e,t,n=ot){q(e)&&(e=Xr(e));for(const r in e){const s=e[r];let o;le(s)?"default"in s?o=ke(s.from||r,s.default,!0):o=ke(s.from||r):o=ke(s),ce(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function Xs(e,t,n){lt(q(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function zi(e,t,n,r){let s=r.includes(".")?Bi(n,r):()=>n[r];if(de(e)){const o=t[e];W(o)&&fn(s,o)}else if(W(e))fn(s,e.bind(n));else if(le(e))if(q(e))e.forEach(o=>zi(o,t,n,r));else{const o=W(e.handler)?e.handler.bind(n):t[e.handler];W(o)&&fn(s,o,e)}}function Ji(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>Zn(c,u,i,!0)),Zn(c,t,i)),le(t)&&o.set(t,c),c}function Zn(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&Zn(e,o,n,!0),s&&s.forEach(i=>Zn(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Ea[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Ea={data:Qs,props:Ys,emits:Ys,methods:ln,computed:ln,beforeCreate:Ae,created:Ae,beforeMount:Ae,mounted:Ae,beforeUpdate:Ae,updated:Ae,beforeDestroy:Ae,beforeUnmount:Ae,destroyed:Ae,unmounted:Ae,activated:Ae,deactivated:Ae,errorCaptured:Ae,serverPrefetch:Ae,components:ln,directives:ln,watch:Sa,provide:Qs,inject:wa};function Qs(e,t){return t?e?function(){return Se(W(e)?e.call(this,this):e,W(t)?t.call(this,this):t)}:t:e}function wa(e,t){return ln(Xr(e),Xr(t))}function Xr(e){if(q(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${xt(t)}Modifiers`]||e[`${jt(t)}Modifiers`];function Oa(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||se;let s=n;const o=t.startsWith("update:"),i=o&&va(r,t.slice(7));i&&(i.trim&&(s=n.map(a=>de(a)?a.trim():a)),i.number&&(s=n.map(hs)));let l,c=r[l=vr(t)]||r[l=vr(xt(t))];!c&&o&&(c=r[l=vr(jt(t))]),c&<(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,lt(u,e,6,s)}}const xa=new WeakMap;function Qi(e,t,n=!1){const r=n?xa:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!W(e)){const c=u=>{const a=Qi(u,t,!0);a&&(l=!0,Se(i,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(le(e)&&r.set(e,null),null):(q(o)?o.forEach(c=>i[c]=null):Se(i,o),le(e)&&r.set(e,i),i)}function pr(e,t){return!e||!or(t)?!1:(t=t.slice(2).replace(/Once$/,""),ne(e,t[0].toLowerCase()+t.slice(1))||ne(e,jt(t))||ne(e,t))}function Zs(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:a,props:f,data:p,setupState:m,ctx:g,inheritAttrs:b}=e,E=Qn(e);let O,C;try{if(n.shapeFlag&4){const P=s||r,M=P;O=st(u.call(M,P,a,f,m,p,g)),C=l}else{const P=t;O=st(P.length>1?P(f,{attrs:l,slots:i,emit:c}):P(f,null)),C=t.props?l:Ta(l)}}catch(P){mn.length=0,dr(P,e,1),O=Ce(gt)}let N=O;if(C&&b!==!1){const P=Object.keys(C),{shapeFlag:M}=N;P.length&&M&7&&(o&&P.some(fs)&&(C=Ca(C,o)),N=Jt(N,C,!1,!0))}return n.dirs&&(N=Jt(N,null,!1,!0),N.dirs=N.dirs?N.dirs.concat(n.dirs):n.dirs),n.transition&&vs(N,n.transition),O=N,Qn(E),O}const Ta=e=>{let t;for(const n in e)(n==="class"||n==="style"||or(n))&&((t||(t={}))[n]=e[n]);return t},Ca=(e,t)=>{const n={};for(const r in e)(!fs(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Pa(e,t,n){const{props:r,children:s,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 r?eo(r,i,u):!!i;if(c&8){const a=t.dynamicProps;for(let f=0;fObject.create(Yi),el=e=>Object.getPrototypeOf(e)===Yi;function Ia(e,t,n,r=!1){const s={},o=Zi();e.propsDefaults=Object.create(null),tl(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:Ci(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function Da(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=Z(s),[c]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const a=e.vnode.dynamicProps;for(let f=0;f{c=!0;const[p,m]=nl(f,t,!0);Se(i,p),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!c)return le(e)&&r.set(e,$t),$t;if(q(o))for(let a=0;ae==="_"||e==="_ctx"||e==="$stable",Ts=e=>q(e)?e.map(st):[st(e)],Fa=(e,t,n)=>{if(t._n)return t;const r=Xc((...s)=>Ts(t(...s)),n);return r._c=!1,r},rl=(e,t,n)=>{const r=e._ctx;for(const s in e){if(xs(s))continue;const o=e[s];if(W(o))t[s]=Fa(s,o,r);else if(o!=null){const i=Ts(o);t[s]=()=>i}}},sl=(e,t)=>{const n=Ts(t);e.slots.default=()=>n},ol=(e,t,n)=>{for(const r in t)(n||!xs(r))&&(e[r]=t[r])},Ma=(e,t,n)=>{const r=e.slots=Zi();if(e.vnode.shapeFlag&32){const s=t._;s?(ol(r,t,n),n&&ci(r,"_",s,!0)):rl(t,r)}else t&&sl(e,t)},Ua=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=se;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:ol(s,t,n):(o=!t.$stable,rl(t,s)),i=t}else t&&(sl(e,t),i={default:1});if(o)for(const l in s)!xs(l)&&i[l]==null&&delete s[l]},ve=Va;function ja(e){return Ba(e)}function Ba(e,t){const n=ar();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:a,parentNode:f,nextSibling:p,setScopeId:m=ot,insertStaticContent:g}=e,b=(d,h,y,w=null,A=null,S=null,I=void 0,T=null,x=!!h.dynamicChildren)=>{if(d===h)return;d&&!rn(d,h)&&(w=R(d),fe(d,A,S,!0),d=null),h.patchFlag===-2&&(x=!1,h.dynamicChildren=null);const{type:v,ref:H,shapeFlag:L}=h;switch(v){case mr:E(d,h,y,w);break;case gt:O(d,h,y,w);break;case Vn:d==null&&C(h,y,w,I);break;case Fe:ye(d,h,y,w,A,S,I,T,x);break;default:L&1?M(d,h,y,w,A,S,I,T,x):L&6?pe(d,h,y,w,A,S,I,T,x):(L&64||L&128)&&v.process(d,h,y,w,A,S,I,T,x,j)}H!=null&&A?hn(H,d&&d.ref,S,h||d,!h):H==null&&d&&d.ref!=null&&hn(d.ref,null,S,d,!0)},E=(d,h,y,w)=>{if(d==null)r(h.el=l(h.children),y,w);else{const A=h.el=d.el;h.children!==d.children&&u(A,h.children)}},O=(d,h,y,w)=>{d==null?r(h.el=c(h.children||""),y,w):h.el=d.el},C=(d,h,y,w)=>{[d.el,d.anchor]=g(d.children,h,y,w,d.el,d.anchor)},N=({el:d,anchor:h},y,w)=>{let A;for(;d&&d!==h;)A=p(d),r(d,y,w),d=A;r(h,y,w)},P=({el:d,anchor:h})=>{let y;for(;d&&d!==h;)y=p(d),s(d),d=y;s(h)},M=(d,h,y,w,A,S,I,T,x)=>{if(h.type==="svg"?I="svg":h.type==="math"&&(I="mathml"),d==null)X(h,y,w,A,S,I,T,x);else{const v=d.el&&d.el._isVueCE?d.el:null;try{v&&v._beginPatch(),U(d,h,A,S,I,T,x)}finally{v&&v._endPatch()}}},X=(d,h,y,w,A,S,I,T)=>{let x,v;const{props:H,shapeFlag:L,transition:B,dirs:$}=d;if(x=d.el=i(d.type,S,H&&H.is,H),L&8?a(x,d.children):L&16&&V(d.children,x,null,w,A,Nr(d,S),I,T),$&&Tt(d,null,w,"created"),k(x,d,d.scopeId,I,w),H){for(const oe in H)oe!=="value"&&!cn(oe)&&o(x,oe,null,H[oe],S,w);"value"in H&&o(x,"value",null,H.value,S),(v=H.onVnodeBeforeMount)&&et(v,w,d)}$&&Tt(d,null,w,"beforeMount");const Y=Ha(A,B);Y&&B.beforeEnter(x),r(x,h,y),((v=H&&H.onVnodeMounted)||Y||$)&&ve(()=>{v&&et(v,w,d),Y&&B.enter(x),$&&Tt(d,null,w,"mounted")},A)},k=(d,h,y,w,A)=>{if(y&&m(d,y),w)for(let S=0;S{for(let v=x;v{const T=h.el=d.el;let{patchFlag:x,dynamicChildren:v,dirs:H}=h;x|=d.patchFlag&16;const L=d.props||se,B=h.props||se;let $;if(y&&Ct(y,!1),($=B.onVnodeBeforeUpdate)&&et($,y,h,d),H&&Tt(h,d,y,"beforeUpdate"),y&&Ct(y,!0),(L.innerHTML&&B.innerHTML==null||L.textContent&&B.textContent==null)&&a(T,""),v?ee(d.dynamicChildren,v,T,y,w,Nr(h,A),S):I||z(d,h,T,null,y,w,Nr(h,A),S,!1),x>0){if(x&16)ue(T,L,B,y,A);else if(x&2&&L.class!==B.class&&o(T,"class",null,B.class,A),x&4&&o(T,"style",L.style,B.style,A),x&8){const Y=h.dynamicProps;for(let oe=0;oe{$&&et($,y,h,d),H&&Tt(h,d,y,"updated")},w)},ee=(d,h,y,w,A,S,I)=>{for(let T=0;T{if(h!==y){if(h!==se)for(const S in h)!cn(S)&&!(S in y)&&o(d,S,h[S],null,A,w);for(const S in y){if(cn(S))continue;const I=y[S],T=h[S];I!==T&&S!=="value"&&o(d,S,T,I,A,w)}"value"in y&&o(d,"value",h.value,y.value,A)}},ye=(d,h,y,w,A,S,I,T,x)=>{const v=h.el=d?d.el:l(""),H=h.anchor=d?d.anchor:l("");let{patchFlag:L,dynamicChildren:B,slotScopeIds:$}=h;$&&(T=T?T.concat($):$),d==null?(r(v,y,w),r(H,y,w),V(h.children||[],y,H,A,S,I,T,x)):L>0&&L&64&&B&&d.dynamicChildren&&d.dynamicChildren.length===B.length?(ee(d.dynamicChildren,B,y,A,S,I,T),(h.key!=null||A&&h===A.subTree)&&Cs(d,h,!0)):z(d,h,y,H,A,S,I,T,x)},pe=(d,h,y,w,A,S,I,T,x)=>{h.slotScopeIds=T,d==null?h.shapeFlag&512?A.ctx.activate(h,y,w,I,x):Re(h,y,w,A,S,I,x):Ve(d,h,x)},Re=(d,h,y,w,A,S,I)=>{const T=d.component=Xa(d,w,A);if($i(d)&&(T.ctx.renderer=j),Qa(T,!1,I),T.asyncDep){if(A&&A.registerDep(T,J,I),!d.el){const x=T.subTree=Ce(gt);O(null,x,h,y),d.placeholder=x.el}}else J(T,d,h,y,A,S,I)},Ve=(d,h,y)=>{const w=h.component=d.component;if(Pa(d,h,y))if(w.asyncDep&&!w.asyncResolved){K(w,h,y);return}else w.next=h,w.update();else h.el=d.el,w.vnode=h},J=(d,h,y,w,A,S,I)=>{const T=()=>{if(d.isMounted){let{next:L,bu:B,u:$,parent:Y,vnode:oe}=d;{const Ye=il(d);if(Ye){L&&(L.el=oe.el,K(d,L,I)),Ye.asyncDep.then(()=>{d.isUnmounted||T()});return}}let re=L,Pe;Ct(d,!1),L?(L.el=oe.el,K(d,L,I)):L=oe,B&&Bn(B),(Pe=L.props&&L.props.onVnodeBeforeUpdate)&&et(Pe,Y,L,oe),Ct(d,!0);const Ne=Zs(d),Qe=d.subTree;d.subTree=Ne,b(Qe,Ne,f(Qe.el),R(Qe),d,A,S),L.el=Ne.el,re===null&&Na(d,Ne.el),$&&ve($,A),(Pe=L.props&&L.props.onVnodeUpdated)&&ve(()=>et(Pe,Y,L,oe),A)}else{let L;const{el:B,props:$}=h,{bm:Y,m:oe,parent:re,root:Pe,type:Ne}=d,Qe=Gt(h);Ct(d,!1),Y&&Bn(Y),!Qe&&(L=$&&$.onVnodeBeforeMount)&&et(L,re,h),Ct(d,!0);{Pe.ce&&Pe.ce._def.shadowRoot!==!1&&Pe.ce._injectChildStyle(Ne);const Ye=d.subTree=Zs(d);b(null,Ye,y,w,d,A,S),h.el=Ye.el}if(oe&&ve(oe,A),!Qe&&(L=$&&$.onVnodeMounted)){const Ye=h;ve(()=>et(L,re,Ye),A)}(h.shapeFlag&256||re&&Gt(re.vnode)&&re.vnode.shapeFlag&256)&&d.a&&ve(d.a,A),d.isMounted=!0,h=y=w=null}};d.scope.on();const x=d.effect=new mi(T);d.scope.off();const v=d.update=x.run.bind(x),H=d.job=x.runIfDirty.bind(x);H.i=d,H.id=d.uid,x.scheduler=()=>As(H),Ct(d,!0),v()},K=(d,h,y)=>{h.component=d;const w=d.vnode.props;d.vnode=h,d.next=null,Da(d,h.props,w,y),Ua(d,h.children,y),ht(),$s(d),pt()},z=(d,h,y,w,A,S,I,T,x=!1)=>{const v=d&&d.children,H=d?d.shapeFlag:0,L=h.children,{patchFlag:B,shapeFlag:$}=h;if(B>0){if(B&128){ze(v,L,y,w,A,S,I,T,x);return}else if(B&256){Be(v,L,y,w,A,S,I,T,x);return}}$&8?(H&16&&He(v,A,S),L!==v&&a(y,L)):H&16?$&16?ze(v,L,y,w,A,S,I,T,x):He(v,A,S,!0):(H&8&&a(y,""),$&16&&V(L,y,w,A,S,I,T,x))},Be=(d,h,y,w,A,S,I,T,x)=>{d=d||$t,h=h||$t;const v=d.length,H=h.length,L=Math.min(v,H);let B;for(B=0;BH?He(d,A,S,!0,!1,L):V(h,y,w,A,S,I,T,x,L)},ze=(d,h,y,w,A,S,I,T,x)=>{let v=0;const H=h.length;let L=d.length-1,B=H-1;for(;v<=L&&v<=B;){const $=d[v],Y=h[v]=x?Rt(h[v]):st(h[v]);if(rn($,Y))b($,Y,y,null,A,S,I,T,x);else break;v++}for(;v<=L&&v<=B;){const $=d[L],Y=h[B]=x?Rt(h[B]):st(h[B]);if(rn($,Y))b($,Y,y,null,A,S,I,T,x);else break;L--,B--}if(v>L){if(v<=B){const $=B+1,Y=$B)for(;v<=L;)fe(d[v],A,S,!0),v++;else{const $=v,Y=v,oe=new Map;for(v=Y;v<=B;v++){const Le=h[v]=x?Rt(h[v]):st(h[v]);Le.key!=null&&oe.set(Le.key,v)}let re,Pe=0;const Ne=B-Y+1;let Qe=!1,Ye=0;const tn=new Array(Ne);for(v=0;v=Ne){fe(Le,A,S,!0);continue}let Ze;if(Le.key!=null)Ze=oe.get(Le.key);else for(re=Y;re<=B;re++)if(tn[re-Y]===0&&rn(Le,h[re])){Ze=re;break}Ze===void 0?fe(Le,A,S,!0):(tn[Ze-Y]=v+1,Ze>=Ye?Ye=Ze:Qe=!0,b(Le,h[Ze],y,null,A,S,I,T,x),Pe++)}const js=Qe?ka(tn):$t;for(re=js.length-1,v=Ne-1;v>=0;v--){const Le=Y+v,Ze=h[Le],Bs=h[Le+1],Hs=Le+1{const{el:S,type:I,transition:T,children:x,shapeFlag:v}=d;if(v&6){me(d.component.subTree,h,y,w);return}if(v&128){d.suspense.move(h,y,w);return}if(v&64){I.move(d,h,y,j);return}if(I===Fe){r(S,h,y);for(let L=0;LT.enter(S),A);else{const{leave:L,delayLeave:B,afterLeave:$}=T,Y=()=>{d.ctx.isUnmounted?s(S):r(S,h,y)},oe=()=>{S._isLeaving&&S[ra](!0),L(S,()=>{Y(),$&&$()})};B?B(S,Y,oe):oe()}else r(S,h,y)},fe=(d,h,y,w=!1,A=!1)=>{const{type:S,props:I,ref:T,children:x,dynamicChildren:v,shapeFlag:H,patchFlag:L,dirs:B,cacheIndex:$}=d;if(L===-2&&(A=!1),T!=null&&(ht(),hn(T,null,y,d,!0),pt()),$!=null&&(h.renderCache[$]=void 0),H&256){h.ctx.deactivate(d);return}const Y=H&1&&B,oe=!Gt(d);let re;if(oe&&(re=I&&I.onVnodeBeforeUnmount)&&et(re,h,d),H&6)Xe(d.component,y,w);else{if(H&128){d.suspense.unmount(y,w);return}Y&&Tt(d,null,h,"beforeUnmount"),H&64?d.type.remove(d,h,y,j,w):v&&!v.hasOnce&&(S!==Fe||L>0&&L&64)?He(v,h,y,!1,!0):(S===Fe&&L&384||!A&&H&16)&&He(x,h,y),w&&Je(d)}(oe&&(re=I&&I.onVnodeUnmounted)||Y)&&ve(()=>{re&&et(re,h,d),Y&&Tt(d,null,h,"unmounted")},y)},Je=d=>{const{type:h,el:y,anchor:w,transition:A}=d;if(h===Fe){qe(y,w);return}if(h===Vn){P(d);return}const S=()=>{s(y),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(d.shapeFlag&1&&A&&!A.persisted){const{leave:I,delayLeave:T}=A,x=()=>I(y,S);T?T(d.el,S,x):x()}else S()},qe=(d,h)=>{let y;for(;d!==h;)y=p(d),s(d),d=y;s(h)},Xe=(d,h,y)=>{const{bum:w,scope:A,job:S,subTree:I,um:T,m:x,a:v}=d;no(x),no(v),w&&Bn(w),A.stop(),S&&(S.flags|=8,fe(I,d,h,y)),T&&ve(T,h),ve(()=>{d.isUnmounted=!0},h)},He=(d,h,y,w=!1,A=!1,S=0)=>{for(let I=S;I{if(d.shapeFlag&6)return R(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const h=p(d.anchor||d.el),y=h&&h[Hi];return y?p(y):h};let F=!1;const D=(d,h,y)=>{let w;d==null?h._vnode&&(fe(h._vnode,null,null,!0),w=h._vnode.component):b(h._vnode||null,d,h,null,null,null,y),h._vnode=d,F||(F=!0,$s(w),Fi(),F=!1)},j={p:b,um:fe,m:me,r:Je,mt:Re,mc:V,pc:z,pbc:ee,n:R,o:e};return{render:D,hydrate:void 0,createApp:Aa(D)}}function Nr({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 Ct({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Ha(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Cs(e,t,n=!1){const r=e.children,s=t.children;if(q(r)&&q(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function il(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:il(t)}function no(e){if(e)for(let t=0;te.__isSuspense;function Va(e,t){t&&t.pendingBranch?q(e)?t.effects.push(...e):t.effects.push(e):Jc(e)}const Fe=Symbol.for("v-fgt"),mr=Symbol.for("v-txt"),gt=Symbol.for("v-cmt"),Vn=Symbol.for("v-stc"),mn=[];let Ue=null;function er(e=!1){mn.push(Ue=e?null:[])}function qa(){mn.pop(),Ue=mn[mn.length-1]||null}let Sn=1;function tr(e,t=!1){Sn+=e,e<0&&Ue&&t&&(Ue.hasOnce=!0)}function al(e){return e.dynamicChildren=Sn>0?Ue||$t:null,qa(),Sn>0&&Ue&&Ue.push(e),e}function Th(e,t,n,r,s,o){return al(fl(e,t,n,r,s,o,!0))}function nr(e,t,n,r,s){return al(Ce(e,t,n,r,s,!0))}function Rn(e){return e?e.__v_isVNode===!0:!1}function rn(e,t){return e.type===t.type&&e.key===t.key}const ul=({key:e})=>e??null,qn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?de(e)||ce(e)||W(e)?{i:we,r:e,k:t,f:!!n}:e:null);function fl(e,t=null,n=null,r=0,s=null,o=e===Fe?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ul(t),ref:t&&qn(t),scopeId:Ui,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:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:we};return l?(Ps(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=de(n)?8:16),Sn>0&&!i&&Ue&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Ue.push(c),c}const Ce=$a;function $a(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===ga)&&(e=gt),Rn(e)){const l=Jt(e,t,!0);return n&&Ps(l,n),Sn>0&&!o&&Ue&&(l.shapeFlag&6?Ue[Ue.indexOf(e)]=l:Ue.push(l)),l.patchFlag=-2,l}if(tu(e)&&(e=e.__vccOpts),t){t=Ka(t);let{class:l,style:c}=t;l&&!de(l)&&(t.class=ms(l)),le(c)&&(fr(c)&&!q(c)&&(c=Se({},c)),t.style=ps(c))}const i=de(e)?1:cl(e)?128:ta(e)?64:le(e)?4:W(e)?2:0;return fl(e,t,n,r,s,i,o,!0)}function Ka(e){return e?fr(e)||el(e)?Se({},e):e:null}function Jt(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?Ga(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&ul(u),ref:t&&t.ref?n&&o?q(o)?o.concat(qn(t)):[o,qn(t)]:qn(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!==Fe?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&&Jt(e.ssContent),ssFallback:e.ssFallback&&Jt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&vs(a,c.clone(a)),a}function Wa(e=" ",t=0){return Ce(mr,null,e,t)}function Ch(e,t){const n=Ce(Vn,null,e);return n.staticCount=t,n}function Ph(e="",t=!1){return t?(er(),nr(gt,null,e)):Ce(gt,null,e)}function st(e){return e==null||typeof e=="boolean"?Ce(gt):q(e)?Ce(Fe,null,e.slice()):Rn(e)?Rt(e):Ce(mr,null,String(e))}function Rt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Jt(e)}function Ps(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(q(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Ps(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!el(t)?t._ctx=we:s===3&&we&&(we.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else W(t)?(t={default:t,_ctx:we},n=32):(t=String(t),r&64?(n=16,t=[Wa(t)]):n=8);e.children=t,e.shapeFlag|=n}function Ga(...e){const t={};for(let n=0;nTe||we;let rr,Yr;{const e=ar(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};rr=t("__VUE_INSTANCE_SETTERS__",n=>Te=n),Yr=t("__VUE_SSR_SETTERS__",n=>An=n)}const Tn=e=>{const t=Te;return rr(e),e.scope.on(),()=>{e.scope.off(),rr(t)}},ro=()=>{Te&&Te.scope.off(),rr(null)};function hl(e){return e.vnode.shapeFlag&4}let An=!1;function Qa(e,t=!1,n=!1){t&&Yr(t);const{props:r,children:s}=e.vnode,o=hl(e);Ia(e,r,o,t),Ma(e,s,n||t);const i=o?Ya(e,t):void 0;return t&&Yr(!1),i}function Ya(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,ya);const{setup:r}=n;if(r){ht();const s=e.setupContext=r.length>1?eu(e):null,o=Tn(e),i=xn(r,e,0,[e.props,s]),l=si(i);if(pt(),o(),(l||e.sp)&&!Gt(e)&&qi(e),l){if(i.then(ro,ro),t)return i.then(c=>{so(e,c)}).catch(c=>{dr(c,e,0)});e.asyncDep=i}else so(e,i)}else pl(e)}function so(e,t,n){W(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:le(t)&&(e.setupState=Ni(t)),pl(e)}function pl(e,t,n){const r=e.type;e.render||(e.render=r.render||ot);{const s=Tn(e);ht();try{_a(e)}finally{pt(),s()}}}const Za={get(e,t){return be(e,"get",""),e[t]}};function eu(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Za),slots:e.slots,emit:e.emit,expose:t}}function gr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ni(Ss(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in pn)return pn[n](e)},has(t,n){return n in t||n in pn}})):e.proxy}function tu(e){return W(e)&&"__vccOpts"in e}const Me=(e,t)=>$c(e,t,An);function ml(e,t,n){try{tr(-1);const r=arguments.length;return r===2?le(t)&&!q(t)?Rn(t)?Ce(e,null,[t]):Ce(e,t):Ce(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Rn(n)&&(n=[n]),Ce(e,t,n))}finally{tr(1)}}const nu="3.5.26";let Zr;const oo=typeof window<"u"&&window.trustedTypes;if(oo)try{Zr=oo.createPolicy("vue",{createHTML:e=>e})}catch{}const gl=Zr?e=>Zr.createHTML(e):e=>e,ru="http://www.w3.org/2000/svg",su="http://www.w3.org/1998/Math/MathML",ut=typeof document<"u"?document:null,io=ut&&ut.createElement("template"),ou={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?ut.createElementNS(ru,e):t==="mathml"?ut.createElementNS(su,e):n?ut.createElement(e,{is:n}):ut.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>ut.createTextNode(e),createComment:e=>ut.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ut.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{io.innerHTML=gl(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=io.content;if(r==="svg"||r==="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]}},iu=Symbol("_vtc");function lu(e,t,n){const r=e[iu];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const lo=Symbol("_vod"),cu=Symbol("_vsh"),au=Symbol(""),uu=/(?:^|;)\s*display\s*:/;function fu(e,t,n){const r=e.style,s=de(n);let o=!1;if(n&&!s){if(t)if(de(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&$n(r,l,"")}else for(const i in t)n[i]==null&&$n(r,i,"");for(const i in n)i==="display"&&(o=!0),$n(r,i,n[i])}else if(s){if(t!==n){const i=r[au];i&&(n+=";"+i),r.cssText=n,o=uu.test(n)}}else t&&e.removeAttribute("style");lo in e&&(e[lo]=o?r.display:"",e[cu]&&(r.display="none"))}const co=/\s*!important$/;function $n(e,t,n){if(q(n))n.forEach(r=>$n(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=du(e,t);co.test(n)?e.setProperty(jt(r),n.replace(co,""),"important"):e[r]=n}}const ao=["Webkit","Moz","ms"],Ir={};function du(e,t){const n=Ir[t];if(n)return n;let r=xt(t);if(r!=="filter"&&r in e)return Ir[t]=r;r=li(r);for(let s=0;sDr||(gu.then(()=>Dr=0),Dr=Date.now());function _u(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;lt(bu(r,n.value),t,5,[r])};return n.value=e,n.attached=yu(),n}function bu(e,t){if(q(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const go=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Eu=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?lu(e,r,i):t==="style"?fu(e,n,r):or(t)?fs(t)||pu(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):wu(e,t,r,i))?(ho(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&fo(e,t,r,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!de(r))?ho(e,xt(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),fo(e,t,r,i))};function wu(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&go(t)&&W(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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return go(t)&&de(n)?!1:t in e}const yo=e=>{const t=e.props["onUpdate:modelValue"]||!1;return q(t)?n=>Bn(t,n):t};function Su(e){e.target.composing=!0}function _o(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Lr=Symbol("_assign");function bo(e,t,n){return t&&(e=e.trim()),n&&(e=hs(e)),e}const Nh={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Lr]=yo(s);const o=r||s.props&&s.props.type==="number";Vt(e,t?"change":"input",i=>{i.target.composing||e[Lr](bo(e.value,n,o))}),(n||o)&&Vt(e,"change",()=>{e.value=bo(e.value,n,o)}),t||(Vt(e,"compositionstart",Su),Vt(e,"compositionend",_o),Vt(e,"change",_o))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Lr]=yo(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?hs(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},Ru=["ctrl","shift","alt","meta"],Au={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Ru.some(n=>e[`${n}Key`]&&!t.includes(n))},Ih=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const t=Ou().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Cu(r);if(!s)return;const o=t._component;!W(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,Tu(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t});function Tu(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Cu(e){return de(e)?document.querySelector(e):e}let yl;const yr=e=>yl=e,_l=Symbol();function es(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var gn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(gn||(gn={}));function Pu(){const e=hi(!0),t=e.run(()=>Lt({}));let n=[],r=[];const s=Ss({install(o){yr(s),s._a=o,o.provide(_l,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const bl=()=>{};function wo(e,t,n,r=bl){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&pi()&&gc(s),s}function Ht(e,...t){e.forEach(n=>{n(...t)})}const Nu=e=>e(),So=Symbol(),Fr=Symbol();function ts(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];es(s)&&es(r)&&e.hasOwnProperty(n)&&!ce(r)&&!it(r)?e[n]=ts(s,r):e[n]=r}return e}const Iu=Symbol();function Du(e){return!es(e)||!Object.prototype.hasOwnProperty.call(e,Iu)}const{assign:Et}=Object;function Lu(e){return!!(ce(e)&&e.effect)}function Fu(e,t,n,r){const{state:s,actions:o,getters:i}=t,l=n.state.value[e];let c;function u(){l||(n.state.value[e]=s?s():{});const a=Bc(n.state.value[e]);return Et(a,o,Object.keys(i||{}).reduce((f,p)=>(f[p]=Ss(Me(()=>{yr(n);const m=n._s.get(e);return i[p].call(m,m)})),f),{}))}return c=El(e,u,t,n,r,!0),c}function El(e,t,n={},r,s,o){let i;const l=Et({actions:{}},n),c={deep:!0};let u,a,f=new Set,p=new Set,m;const g=r.state.value[e];!o&&!g&&(r.state.value[e]={}),Lt({});let b;function E(V){let U;u=a=!1,typeof V=="function"?(V(r.state.value[e]),U={type:gn.patchFunction,storeId:e,events:m}):(ts(r.state.value[e],V),U={type:gn.patchObject,payload:V,storeId:e,events:m});const ee=b=Symbol();Rs().then(()=>{b===ee&&(u=!0)}),a=!0,Ht(f,U,r.state.value[e])}const O=o?function(){const{state:U}=n,ee=U?U():{};this.$patch(ue=>{Et(ue,ee)})}:bl;function C(){i.stop(),f.clear(),p.clear(),r._s.delete(e)}const N=(V,U="")=>{if(So in V)return V[Fr]=U,V;const ee=function(){yr(r);const ue=Array.from(arguments),ye=new Set,pe=new Set;function Re(K){ye.add(K)}function Ve(K){pe.add(K)}Ht(p,{args:ue,name:ee[Fr],store:M,after:Re,onError:Ve});let J;try{J=V.apply(this&&this.$id===e?this:M,ue)}catch(K){throw Ht(pe,K),K}return J instanceof Promise?J.then(K=>(Ht(ye,K),K)).catch(K=>(Ht(pe,K),Promise.reject(K))):(Ht(ye,J),J)};return ee[So]=!0,ee[Fr]=U,ee},P={_p:r,$id:e,$onAction:wo.bind(null,p),$patch:E,$reset:O,$subscribe(V,U={}){const ee=wo(f,V,U.detached,()=>ue()),ue=i.run(()=>fn(()=>r.state.value[e],ye=>{(U.flush==="sync"?a:u)&&V({storeId:e,type:gn.direct,events:m},ye)},Et({},c,U)));return ee},$dispose:C},M=On(P);r._s.set(e,M);const k=(r._a&&r._a.runWithContext||Nu)(()=>r._e.run(()=>(i=hi()).run(()=>t({action:N}))));for(const V in k){const U=k[V];if(ce(U)&&!Lu(U)||it(U))o||(g&&Du(U)&&(ce(U)?U.value=g[V]:ts(U,g[V])),r.state.value[e][V]=U);else if(typeof U=="function"){const ee=N(U,V);k[V]=ee,l.actions[V]=U}}return Et(M,k),Et(Z(M),k),Object.defineProperty(M,"$state",{get:()=>r.state.value[e],set:V=>{E(U=>{Et(U,V)})}}),r._p.forEach(V=>{Et(M,i.run(()=>V({store:M,app:r._a,pinia:r,options:l})))}),g&&o&&n.hydrate&&n.hydrate(M.$state,g),u=!0,a=!0,M}function Mu(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,l){const c=Qc();return i=i||(c?ke(_l,null):null),i&&yr(i),i=yl,i._s.has(e)||(s?El(e,t,r,i):Fu(e,r,i)),i._s.get(e)}return o.$id=e,o}function Dh(e){const t=Z(e),n={};for(const r in t){const s=t[r];s.effect?n[r]=Me({get:()=>e[r],set(o){e[r]=o}}):(ce(s)||it(s))&&(n[r]=Vc(e,r))}return n}const Uu="modulepreload",ju=function(e){return"/"+e},Ro={},tt=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let c=function(u){return Promise.all(u.map(a=>Promise.resolve(a).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=c(n.map(u=>{if(u=ju(u),u in Ro)return;Ro[u]=!0;const a=u.endsWith(".css"),f=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const p=document.createElement("link");if(p.rel=a?"stylesheet":Uu,a||(p.as="script"),p.crossOrigin="",p.href=u,l&&p.setAttribute("nonce",l),document.head.appendChild(p),a)return new Promise((m,g)=>{p.addEventListener("load",m),p.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})};const qt=typeof document<"u";function wl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Bu(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&wl(e.default)}const te=Object.assign;function Mr(e,t){const n={};for(const r in t){const s=t[r];n[r]=We(s)?s.map(e):e(s)}return n}const yn=()=>{},We=Array.isArray;function Ao(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const Sl=/#/g,Hu=/&/g,ku=/\//g,Vu=/=/g,qu=/\?/g,Rl=/\+/g,$u=/%5B/g,Ku=/%5D/g,Al=/%5E/g,Wu=/%60/g,vl=/%7B/g,Gu=/%7C/g,Ol=/%7D/g,zu=/%20/g;function Ns(e){return e==null?"":encodeURI(""+e).replace(Gu,"|").replace($u,"[").replace(Ku,"]")}function Ju(e){return Ns(e).replace(vl,"{").replace(Ol,"}").replace(Al,"^")}function ns(e){return Ns(e).replace(Rl,"%2B").replace(zu,"+").replace(Sl,"%23").replace(Hu,"%26").replace(Wu,"`").replace(vl,"{").replace(Ol,"}").replace(Al,"^")}function Xu(e){return ns(e).replace(Vu,"%3D")}function Qu(e){return Ns(e).replace(Sl,"%23").replace(qu,"%3F")}function Yu(e){return Qu(e).replace(ku,"%2F")}function vn(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Zu=/\/$/,ef=e=>e.replace(Zu,"");function Ur(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return c=l>=0&&c>l?-1:c,c>=0&&(r=t.slice(0,c),o=t.slice(c,l>0?l:t.length),s=e(o.slice(1))),l>=0&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=sf(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:vn(i)}}function tf(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function vo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function nf(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&Xt(t.matched[r],n.matched[s])&&xl(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Xt(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function xl(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!rf(e[n],t[n]))return!1;return!0}function rf(e,t){return We(e)?Oo(e,t):We(t)?Oo(t,e):e?.valueOf()===t?.valueOf()}function Oo(e,t){return We(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function sf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const bt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let rs=(function(e){return e.pop="pop",e.push="push",e})({}),jr=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function of(e){if(!e)if(qt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),ef(e)}const lf=/^[^#]+#/;function cf(e,t){return e.replace(lf,"#")+t}function af(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const _r=()=>({left:window.scrollX,top:window.scrollY});function uf(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=af(s,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 xo(e,t){return(history.state?history.state.position-t:-1)+e}const ss=new Map;function ff(e,t){ss.set(e,t)}function df(e){const t=ss.get(e);return ss.delete(e),t}function hf(e){return typeof e=="string"||e&&typeof e=="object"}function Tl(e){return typeof e=="string"||typeof e=="symbol"}let ae=(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 Cl=Symbol("");ae.MATCHER_NOT_FOUND+"",ae.NAVIGATION_GUARD_REDIRECT+"",ae.NAVIGATION_ABORTED+"",ae.NAVIGATION_CANCELLED+"",ae.NAVIGATION_DUPLICATED+"";function Qt(e,t){return te(new Error,{type:e,[Cl]:!0},t)}function at(e,t){return e instanceof Error&&Cl in e&&(t==null||!!(e.type&t))}const pf=["params","query","hash"];function mf(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of pf)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function gf(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&ns(s)):[r&&ns(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function yf(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=We(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const _f=Symbol(""),Co=Symbol(""),br=Symbol(""),Is=Symbol(""),os=Symbol("");function sn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function At(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,c)=>{const u=p=>{p===!1?c(Qt(ae.NAVIGATION_ABORTED,{from:n,to:t})):p instanceof Error?c(p):hf(p)?c(Qt(ae.NAVIGATION_GUARD_REDIRECT,{from:t,to:p})):(i&&r.enterCallbacks[s]===i&&typeof p=="function"&&i.push(p),l())},a=o(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(a);e.length<3&&(f=f.then(u)),f.catch(p=>c(p))})}function Br(e,t,n,r,s=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(wl(c)){const u=(c.__vccOpts||c)[t];u&&o.push(At(u,n,r,i,l,s))}else{let u=c();o.push(()=>u.then(a=>{if(!a)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=Bu(a)?a.default:a;i.mods[l]=a,i.components[l]=f;const p=(f.__vccOpts||f)[t];return p&&At(p,n,r,i,l,s)()}))}}return o}function bf(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;iXt(u,l))?r.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(u=>Xt(u,c))||s.push(c))}return[n,r,s]}let Ef=()=>location.protocol+"//"+location.host;function Pl(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(i);return l[0]!=="/"&&(l="/"+l),vo(l,"")}return vo(n,e)+r+s}function wf(e,t,n,r){let s=[],o=[],i=null;const l=({state:p})=>{const m=Pl(e,location),g=n.value,b=t.value;let E=0;if(p){if(n.value=m,t.value=p,i&&i===g){i=null;return}E=b?p.position-b.position:0}else r(m);s.forEach(O=>{O(n.value,g,{delta:E,type:rs.pop,direction:E?E>0?jr.forward:jr.back:jr.unknown})})};function c(){i=n.value}function u(p){s.push(p);const m=()=>{const g=s.indexOf(p);g>-1&&s.splice(g,1)};return o.push(m),m}function a(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(te({},p.state,{scroll:_r()}),"")}}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,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?_r():null}}function Sf(e){const{history:t,location:n}=window,r={value:Pl(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.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:Ef()+e+c;try{t[a?"replaceState":"pushState"](u,"",p),s.value=u}catch(m){console.error(m),n[a?"replace":"assign"](p)}}function i(c,u){o(c,te({},t.state,Po(s.value.back,c,s.value.forward,!0),u,{position:s.value.position}),!0),r.value=c}function l(c,u){const a=te({},s.value,t.state,{forward:c,scroll:_r()});o(a.current,a,!0),o(c,te({},Po(r.value,c,null),{position:a.position+1},u),!1),r.value=c}return{location:r,state:s,push:l,replace:i}}function Rf(e){e=of(e);const t=Sf(e),n=wf(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=te({location:"",base:e,go:r,createHref:cf.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function Af(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),Rf(e)}let Nt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var ge=(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})(ge||{});const vf={type:Nt.Static,value:""},Of=/[a-zA-Z0-9_]/;function xf(e){if(!e)return[[]];if(e==="/")return[[vf]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${u}": ${m}`)}let n=ge.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,c,u="",a="";function f(){u&&(n===ge.Static?o.push({type:Nt.Static,value:u}):n===ge.Param||n===ge.ParamRegExp||n===ge.ParamRegExpEnd?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:Nt.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]===Oe.Static+Oe.Segment?1:-1:0}function Nl(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const If={strict:!1,end:!0,sensitive:!1};function Df(e,t,n){const r=Pf(xf(e.path),n),s=te(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function Lf(e,t){const n=[],r=new Map;t=Ao(If,t);function s(f){return r.get(f)}function o(f,p,m){const g=!m,b=Lo(f);b.aliasOf=m&&m.record;const E=Ao(t,f),O=[b];if("alias"in f){const P=typeof f.alias=="string"?[f.alias]:f.alias;for(const M of P)O.push(Lo(te({},b,{components:m?m.record.components:b.components,path:M,aliasOf:m?m.record:b})))}let C,N;for(const P of O){const{path:M}=P;if(p&&M[0]!=="/"){const X=p.record.path,k=X[X.length-1]==="/"?"":"/";P.path=p.record.path+(M&&k+M)}if(C=Df(P,p,E),m?m.alias.push(C):(N=N||C,N!==C&&N.alias.push(C),g&&f.name&&!Fo(C)&&i(f.name)),Il(C)&&c(C),b.children){const X=b.children;for(let k=0;k{i(N)}:yn}function i(f){if(Tl(f)){const p=r.get(f);p&&(r.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&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function c(f){const p=Uf(f,n);n.splice(p,0,f),f.record.name&&!Fo(f)&&r.set(f.record.name,f)}function u(f,p){let m,g={},b,E;if("name"in f&&f.name){if(m=r.get(f.name),!m)throw Qt(ae.MATCHER_NOT_FOUND,{location:f});E=m.record.name,g=te(Do(p.params,m.keys.filter(N=>!N.optional).concat(m.parent?m.parent.keys.filter(N=>N.optional):[]).map(N=>N.name)),f.params&&Do(f.params,m.keys.map(N=>N.name))),b=m.stringify(g)}else if(f.path!=null)b=f.path,m=n.find(N=>N.re.test(b)),m&&(g=m.parse(b),E=m.record.name);else{if(m=p.name?r.get(p.name):n.find(N=>N.re.test(p.path)),!m)throw Qt(ae.MATCHER_NOT_FOUND,{location:f,currentLocation:p});E=m.record.name,g=te({},p.params,f.params),b=m.stringify(g)}const O=[];let C=m;for(;C;)O.unshift(C.record),C=C.parent;return{name:E,path:b,params:g,matched:O,meta:Mf(O)}}e.forEach(f=>o(f));function a(){n.length=0,r.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:a,getRoutes:l,getRecordMatcher:s}}function Do(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function Lo(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Ff(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 Ff(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function Fo(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Mf(e){return e.reduce((t,n)=>te(t,n.meta),{})}function Uf(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;Nl(e,t[o])<0?r=o:n=o+1}const s=jf(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function jf(e){let t=e;for(;t=t.parent;)if(Il(t)&&Nl(e,t)===0)return t}function Il({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Mo(e){const t=ke(br),n=ke(Is),r=Me(()=>{const c=Ot(e.to);return t.resolve(c)}),s=Me(()=>{const{matched:c}=r.value,{length:u}=c,a=c[u-1],f=n.matched;if(!a||!f.length)return-1;const p=f.findIndex(Xt.bind(null,a));if(p>-1)return p;const m=Uo(c[u-2]);return u>1&&Uo(a)===m&&f[f.length-1].path!==m?f.findIndex(Xt.bind(null,c[u-2])):p}),o=Me(()=>s.value>-1&&qf(n.params,r.value.params)),i=Me(()=>s.value>-1&&s.value===n.matched.length-1&&xl(n.params,r.value.params));function l(c={}){if(Vf(c)){const u=t[Ot(e.replace)?"replace":"push"](Ot(e.to)).catch(yn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Me(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function Bf(e){return e.length===1?e[0]:e}const Hf=Os({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=On(Mo(e)),{options:r}=ke(br),s=Me(()=>({[jo(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[jo(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&Bf(t.default(n));return e.custom?o:ml("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),kf=Hf;function Vf(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 qf(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!We(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function Uo(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const jo=(e,t,n)=>e??t??n,$f=Os({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=ke(os),s=Me(()=>e.route||r.value),o=ke(Co,0),i=Me(()=>{let u=Ot(o);const{matched:a}=s.value;let f;for(;(f=a[u])&&!f.components;)u++;return u}),l=Me(()=>s.value.matched[i.value]);Hn(Co,Me(()=>i.value+1)),Hn(_f,l),Hn(os,s);const c=Lt();return fn(()=>[c.value,l.value,e.name],([u,a,f],[p,m,g])=>{a&&(a.instances[f]=u,m&&m!==a&&u&&u===p&&(a.leaveGuards.size||(a.leaveGuards=m.leaveGuards),a.updateGuards.size||(a.updateGuards=m.updateGuards))),u&&a&&(!m||!Xt(a,m)||!p)&&(a.enterCallbacks[f]||[]).forEach(b=>b(u))},{flush:"post"}),()=>{const u=s.value,a=e.name,f=l.value,p=f&&f.components[a];if(!p)return Bo(n.default,{Component:p,route:u});const m=f.props[a],g=m?m===!0?u.params:typeof m=="function"?m(u):m:null,E=ml(p,te({},g,t,{onVnodeUnmounted:O=>{O.component.isUnmounted&&(f.instances[a]=null)},ref:c}));return Bo(n.default,{Component:E,route:u})||E}}});function Bo(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Dl=$f;function Kf(e){const t=Lf(e.routes,e),n=e.parseQuery||gf,r=e.stringifyQuery||To,s=e.history,o=sn(),i=sn(),l=sn(),c=Mc(bt);let u=bt;qt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const a=Mr.bind(null,R=>""+R),f=Mr.bind(null,Yu),p=Mr.bind(null,vn);function m(R,F){let D,j;return Tl(R)?(D=t.getRecordMatcher(R),j=F):j=R,t.addRoute(j,D)}function g(R){const F=t.getRecordMatcher(R);F&&t.removeRoute(F)}function b(){return t.getRoutes().map(R=>R.record)}function E(R){return!!t.getRecordMatcher(R)}function O(R,F){if(F=te({},F||c.value),typeof R=="string"){const y=Ur(n,R,F.path),w=t.resolve({path:y.path},F),A=s.createHref(y.fullPath);return te(y,w,{params:p(w.params),hash:vn(y.hash),redirectedFrom:void 0,href:A})}let D;if(R.path!=null)D=te({},R,{path:Ur(n,R.path,F.path).path});else{const y=te({},R.params);for(const w in y)y[w]==null&&delete y[w];D=te({},R,{params:f(y)}),F.params=f(F.params)}const j=t.resolve(D,F),Q=R.hash||"";j.params=a(p(j.params));const d=tf(r,te({},R,{hash:Ju(Q),path:j.path})),h=s.createHref(d);return te({fullPath:d,hash:Q,query:r===To?yf(R.query):R.query||{}},j,{redirectedFrom:void 0,href:h})}function C(R){return typeof R=="string"?Ur(n,R,c.value.path):te({},R)}function N(R,F){if(u!==R)return Qt(ae.NAVIGATION_CANCELLED,{from:F,to:R})}function P(R){return k(R)}function M(R){return P(te(C(R),{replace:!0}))}function X(R,F){const D=R.matched[R.matched.length-1];if(D&&D.redirect){const{redirect:j}=D;let Q=typeof j=="function"?j(R,F):j;return typeof Q=="string"&&(Q=Q.includes("?")||Q.includes("#")?Q=C(Q):{path:Q},Q.params={}),te({query:R.query,hash:R.hash,params:Q.path!=null?{}:R.params},Q)}}function k(R,F){const D=u=O(R),j=c.value,Q=R.state,d=R.force,h=R.replace===!0,y=X(D,j);if(y)return k(te(C(y),{state:typeof y=="object"?te({},Q,y.state):Q,force:d,replace:h}),F||D);const w=D;w.redirectedFrom=F;let A;return!d&&nf(r,j,D)&&(A=Qt(ae.NAVIGATION_DUPLICATED,{to:w,from:j}),me(j,j,!0,!1)),(A?Promise.resolve(A):ee(w,j)).catch(S=>at(S)?at(S,ae.NAVIGATION_GUARD_REDIRECT)?S:ze(S):z(S,w,j)).then(S=>{if(S){if(at(S,ae.NAVIGATION_GUARD_REDIRECT))return k(te({replace:h},C(S.to),{state:typeof S.to=="object"?te({},Q,S.to.state):Q,force:d}),F||w)}else S=ye(w,j,!0,h,Q);return ue(w,j,S),S})}function V(R,F){const D=N(R,F);return D?Promise.reject(D):Promise.resolve()}function U(R){const F=qe.values().next().value;return F&&typeof F.runWithContext=="function"?F.runWithContext(R):R()}function ee(R,F){let D;const[j,Q,d]=bf(R,F);D=Br(j.reverse(),"beforeRouteLeave",R,F);for(const y of j)y.leaveGuards.forEach(w=>{D.push(At(w,R,F))});const h=V.bind(null,R,F);return D.push(h),He(D).then(()=>{D=[];for(const y of o.list())D.push(At(y,R,F));return D.push(h),He(D)}).then(()=>{D=Br(Q,"beforeRouteUpdate",R,F);for(const y of Q)y.updateGuards.forEach(w=>{D.push(At(w,R,F))});return D.push(h),He(D)}).then(()=>{D=[];for(const y of d)if(y.beforeEnter)if(We(y.beforeEnter))for(const w of y.beforeEnter)D.push(At(w,R,F));else D.push(At(y.beforeEnter,R,F));return D.push(h),He(D)}).then(()=>(R.matched.forEach(y=>y.enterCallbacks={}),D=Br(d,"beforeRouteEnter",R,F,U),D.push(h),He(D))).then(()=>{D=[];for(const y of i.list())D.push(At(y,R,F));return D.push(h),He(D)}).catch(y=>at(y,ae.NAVIGATION_CANCELLED)?y:Promise.reject(y))}function ue(R,F,D){l.list().forEach(j=>U(()=>j(R,F,D)))}function ye(R,F,D,j,Q){const d=N(R,F);if(d)return d;const h=F===bt,y=qt?history.state:{};D&&(j||h?s.replace(R.fullPath,te({scroll:h&&y&&y.scroll},Q)):s.push(R.fullPath,Q)),c.value=R,me(R,F,D,h),ze()}let pe;function Re(){pe||(pe=s.listen((R,F,D)=>{if(!Xe.listening)return;const j=O(R),Q=X(j,Xe.currentRoute.value);if(Q){k(te(Q,{replace:!0,force:!0}),j).catch(yn);return}u=j;const d=c.value;qt&&ff(xo(d.fullPath,D.delta),_r()),ee(j,d).catch(h=>at(h,ae.NAVIGATION_ABORTED|ae.NAVIGATION_CANCELLED)?h:at(h,ae.NAVIGATION_GUARD_REDIRECT)?(k(te(C(h.to),{force:!0}),j).then(y=>{at(y,ae.NAVIGATION_ABORTED|ae.NAVIGATION_DUPLICATED)&&!D.delta&&D.type===rs.pop&&s.go(-1,!1)}).catch(yn),Promise.reject()):(D.delta&&s.go(-D.delta,!1),z(h,j,d))).then(h=>{h=h||ye(j,d,!1),h&&(D.delta&&!at(h,ae.NAVIGATION_CANCELLED)?s.go(-D.delta,!1):D.type===rs.pop&&at(h,ae.NAVIGATION_ABORTED|ae.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),ue(j,d,h)}).catch(yn)}))}let Ve=sn(),J=sn(),K;function z(R,F,D){ze(R);const j=J.list();return j.length?j.forEach(Q=>Q(R,F,D)):console.error(R),Promise.reject(R)}function Be(){return K&&c.value!==bt?Promise.resolve():new Promise((R,F)=>{Ve.add([R,F])})}function ze(R){return K||(K=!R,Re(),Ve.list().forEach(([F,D])=>R?D(R):F()),Ve.reset()),R}function me(R,F,D,j){const{scrollBehavior:Q}=e;if(!qt||!Q)return Promise.resolve();const d=!D&&df(xo(R.fullPath,0))||(j||!D)&&history.state&&history.state.scroll||null;return Rs().then(()=>Q(R,F,d)).then(h=>h&&uf(h)).catch(h=>z(h,R,F))}const fe=R=>s.go(R);let Je;const qe=new Set,Xe={currentRoute:c,listening:!0,addRoute:m,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:E,getRoutes:b,resolve:O,options:e,push:P,replace:M,go:fe,back:()=>fe(-1),forward:()=>fe(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:J.add,isReady:Be,install(R){R.component("RouterLink",kf),R.component("RouterView",Dl),R.config.globalProperties.$router=Xe,Object.defineProperty(R.config.globalProperties,"$route",{enumerable:!0,get:()=>Ot(c)}),qt&&!Je&&c.value===bt&&(Je=!0,P(s.location).catch(j=>{}));const F={};for(const j in bt)Object.defineProperty(F,j,{get:()=>c.value[j],enumerable:!0});R.provide(br,Xe),R.provide(Is,Ci(F)),R.provide(os,c);const D=R.unmount;qe.add(R),R.unmount=function(){qe.delete(R),qe.size<1&&(u=bt,pe&&pe(),pe=null,c.value=bt,Je=!1,K=!1),D()}}};function He(R){return R.reduce((F,D)=>F.then(()=>U(D)),Promise.resolve())}return Xe}function Lh(){return ke(br)}function Fh(e){return ke(Is)}function Ll(e,t){return function(){return e.apply(t,arguments)}}const{toString:Wf}=Object.prototype,{getPrototypeOf:Ds}=Object,{iterator:Er,toStringTag:Fl}=Symbol,wr=(e=>t=>{const n=Wf.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ge=e=>(e=e.toLowerCase(),t=>wr(t)===e),Sr=e=>t=>typeof t===e,{isArray:Zt}=Array,Yt=Sr("undefined");function Cn(e){return e!==null&&!Yt(e)&&e.constructor!==null&&!Yt(e.constructor)&&Ie(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Ml=Ge("ArrayBuffer");function Gf(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Ml(e.buffer),t}const zf=Sr("string"),Ie=Sr("function"),Ul=Sr("number"),Pn=e=>e!==null&&typeof e=="object",Jf=e=>e===!0||e===!1,Kn=e=>{if(wr(e)!=="object")return!1;const t=Ds(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Fl in e)&&!(Er in e)},Xf=e=>{if(!Pn(e)||Cn(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},Qf=Ge("Date"),Yf=Ge("File"),Zf=Ge("Blob"),ed=Ge("FileList"),td=e=>Pn(e)&&Ie(e.pipe),nd=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Ie(e.append)&&((t=wr(e))==="formdata"||t==="object"&&Ie(e.toString)&&e.toString()==="[object FormData]"))},rd=Ge("URLSearchParams"),[sd,od,id,ld]=["ReadableStream","Request","Response","Headers"].map(Ge),cd=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Nn(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),Zt(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const It=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Bl=e=>!Yt(e)&&e!==It;function is(){const{caseless:e,skipUndefined:t}=Bl(this)&&this||{},n={},r=(s,o)=>{const i=e&&jl(n,o)||o;Kn(n[i])&&Kn(s)?n[i]=is(n[i],s):Kn(s)?n[i]=is({},s):Zt(s)?n[i]=s.slice():(!t||!Yt(s))&&(n[i]=s)};for(let s=0,o=arguments.length;s(Nn(t,(s,o)=>{n&&Ie(s)?e[o]=Ll(s,n):e[o]=s},{allOwnKeys:r}),e),ud=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),fd=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},dd=(e,t,n,r)=>{let s,o,i;const l={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&Ds(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},hd=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},pd=e=>{if(!e)return null;if(Zt(e))return e;let t=e.length;if(!Ul(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},md=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Ds(Uint8Array)),gd=(e,t)=>{const r=(e&&e[Er]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},yd=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},_d=Ge("HTMLFormElement"),bd=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),Ho=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Ed=Ge("RegExp"),Hl=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Nn(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},wd=e=>{Hl(e,(t,n)=>{if(Ie(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Ie(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Sd=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return Zt(e)?r(e):r(String(e).split(t)),n},Rd=()=>{},Ad=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function vd(e){return!!(e&&Ie(e.append)&&e[Fl]==="FormData"&&e[Er])}const Od=e=>{const t=new Array(10),n=(r,s)=>{if(Pn(r)){if(t.indexOf(r)>=0)return;if(Cn(r))return r;if(!("toJSON"in r)){t[s]=r;const o=Zt(r)?[]:{};return Nn(r,(i,l)=>{const c=n(i,s+1);!Yt(c)&&(o[l]=c)}),t[s]=void 0,o}}return r};return n(e,0)},xd=Ge("AsyncFunction"),Td=e=>e&&(Pn(e)||Ie(e))&&Ie(e.then)&&Ie(e.catch),kl=((e,t)=>e?setImmediate:t?((n,r)=>(It.addEventListener("message",({source:s,data:o})=>{s===It&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),It.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Ie(It.postMessage)),Cd=typeof queueMicrotask<"u"?queueMicrotask.bind(It):typeof process<"u"&&process.nextTick||kl,Pd=e=>e!=null&&Ie(e[Er]),_={isArray:Zt,isArrayBuffer:Ml,isBuffer:Cn,isFormData:nd,isArrayBufferView:Gf,isString:zf,isNumber:Ul,isBoolean:Jf,isObject:Pn,isPlainObject:Kn,isEmptyObject:Xf,isReadableStream:sd,isRequest:od,isResponse:id,isHeaders:ld,isUndefined:Yt,isDate:Qf,isFile:Yf,isBlob:Zf,isRegExp:Ed,isFunction:Ie,isStream:td,isURLSearchParams:rd,isTypedArray:md,isFileList:ed,forEach:Nn,merge:is,extend:ad,trim:cd,stripBOM:ud,inherits:fd,toFlatObject:dd,kindOf:wr,kindOfTest:Ge,endsWith:hd,toArray:pd,forEachEntry:gd,matchAll:yd,isHTMLForm:_d,hasOwnProperty:Ho,hasOwnProp:Ho,reduceDescriptors:Hl,freezeMethods:wd,toObjectSet:Sd,toCamelCase:bd,noop:Rd,toFiniteNumber:Ad,findKey:jl,global:It,isContextDefined:Bl,isSpecCompliantForm:vd,toJSONObject:Od,isAsyncFn:xd,isThenable:Td,setImmediate:kl,asap:Cd,isIterable:Pd};function G(e,t,n,r,s){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),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}_.inherits(G,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:_.toJSONObject(this.config),code:this.code,status:this.status}}});const Vl=G.prototype,ql={};["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=>{ql[e]={value:e}});Object.defineProperties(G,ql);Object.defineProperty(Vl,"isAxiosError",{value:!0});G.from=(e,t,n,r,s,o)=>{const i=Object.create(Vl);_.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 G.call(i,l,c,n,r,s),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 Nd=null;function ls(e){return _.isPlainObject(e)||_.isArray(e)}function $l(e){return _.endsWith(e,"[]")?e.slice(0,-2):e}function ko(e,t,n){return e?e.concat(t).map(function(s,o){return s=$l(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function Id(e){return _.isArray(e)&&!e.some(ls)}const Dd=_.toFlatObject(_,{},null,function(t){return/^is[A-Z]/.test(t)});function Rr(e,t,n){if(!_.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=_.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(b,E){return!_.isUndefined(E[b])});const r=n.metaTokens,s=n.visitor||a,o=n.dots,i=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&_.isSpecCompliantForm(t);if(!_.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(_.isDate(g))return g.toISOString();if(_.isBoolean(g))return g.toString();if(!c&&_.isBlob(g))throw new G("Blob is not supported. Use a Buffer instead.");return _.isArrayBuffer(g)||_.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function a(g,b,E){let O=g;if(g&&!E&&typeof g=="object"){if(_.endsWith(b,"{}"))b=r?b:b.slice(0,-2),g=JSON.stringify(g);else if(_.isArray(g)&&Id(g)||(_.isFileList(g)||_.endsWith(b,"[]"))&&(O=_.toArray(g)))return b=$l(b),O.forEach(function(N,P){!(_.isUndefined(N)||N===null)&&t.append(i===!0?ko([b],P,o):i===null?b:b+"[]",u(N))}),!1}return ls(g)?!0:(t.append(ko(E,b,o),u(g)),!1)}const f=[],p=Object.assign(Dd,{defaultVisitor:a,convertValue:u,isVisitable:ls});function m(g,b){if(!_.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+b.join("."));f.push(g),_.forEach(g,function(O,C){(!(_.isUndefined(O)||O===null)&&s.call(t,O,_.isString(C)?C.trim():C,b,p))===!0&&m(O,b?b.concat(C):[C])}),f.pop()}}if(!_.isObject(e))throw new TypeError("data must be an object");return m(e),t}function Vo(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Ls(e,t){this._pairs=[],e&&Rr(e,this,t)}const Kl=Ls.prototype;Kl.append=function(t,n){this._pairs.push([t,n])};Kl.toString=function(t){const n=t?function(r){return t.call(this,r,Vo)}:Vo;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Ld(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Wl(e,t,n){if(!t)return e;const r=n&&n.encode||Ld;_.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=_.isURLSearchParams(t)?t.toString():new Ls(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class qo{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){_.forEach(this.handlers,function(r){r!==null&&t(r)})}}const Gl={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Fd=typeof URLSearchParams<"u"?URLSearchParams:Ls,Md=typeof FormData<"u"?FormData:null,Ud=typeof Blob<"u"?Blob:null,jd={isBrowser:!0,classes:{URLSearchParams:Fd,FormData:Md,Blob:Ud},protocols:["http","https","file","blob","url","data"]},Fs=typeof window<"u"&&typeof document<"u",cs=typeof navigator=="object"&&navigator||void 0,Bd=Fs&&(!cs||["ReactNative","NativeScript","NS"].indexOf(cs.product)<0),Hd=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",kd=Fs&&window.location.href||"http://localhost",Vd=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Fs,hasStandardBrowserEnv:Bd,hasStandardBrowserWebWorkerEnv:Hd,navigator:cs,origin:kd},Symbol.toStringTag,{value:"Module"})),Ee={...Vd,...jd};function qd(e,t){return Rr(e,new Ee.classes.URLSearchParams,{visitor:function(n,r,s,o){return Ee.isNode&&_.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function $d(e){return _.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Kd(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&_.isArray(s)?s.length:i,c?(_.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!l):((!s[i]||!_.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&_.isArray(s[i])&&(s[i]=Kd(s[i])),!l)}if(_.isFormData(e)&&_.isFunction(e.entries)){const n={};return _.forEachEntry(e,(r,s)=>{t($d(r),s,n,0)}),n}return null}function Wd(e,t,n){if(_.isString(e))try{return(t||JSON.parse)(e),_.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const In={transitional:Gl,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=_.isObject(t);if(o&&_.isHTMLForm(t)&&(t=new FormData(t)),_.isFormData(t))return s?JSON.stringify(zl(t)):t;if(_.isArrayBuffer(t)||_.isBuffer(t)||_.isStream(t)||_.isFile(t)||_.isBlob(t)||_.isReadableStream(t))return t;if(_.isArrayBufferView(t))return t.buffer;if(_.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return qd(t,this.formSerializer).toString();if((l=_.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return Rr(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),Wd(t)):t}],transformResponse:[function(t){const n=this.transitional||In.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(_.isResponse(t)||_.isReadableStream(t))return t;if(t&&_.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(l){if(i)throw l.name==="SyntaxError"?G.from(l,G.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:Ee.classes.FormData,Blob:Ee.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};_.forEach(["delete","get","head","post","put","patch"],e=>{In.headers[e]={}});const Gd=_.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"]),zd=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&Gd[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},$o=Symbol("internals");function on(e){return e&&String(e).trim().toLowerCase()}function Wn(e){return e===!1||e==null?e:_.isArray(e)?e.map(Wn):String(e)}function Jd(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const Xd=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Hr(e,t,n,r,s){if(_.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!_.isString(t)){if(_.isString(r))return t.indexOf(r)!==-1;if(_.isRegExp(r))return r.test(t)}}function Qd(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Yd(e,t){const n=_.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let De=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(l,c,u){const a=on(c);if(!a)throw new Error("header name must be a non-empty string");const f=_.findKey(s,a);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||c]=Wn(l))}const i=(l,c)=>_.forEach(l,(u,a)=>o(u,a,c));if(_.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(_.isString(t)&&(t=t.trim())&&!Xd(t))i(zd(t),n);else if(_.isObject(t)&&_.isIterable(t)){let l={},c,u;for(const a of t){if(!_.isArray(a))throw TypeError("Object iterator must return a key-value pair");l[u=a[0]]=(c=l[u])?_.isArray(c)?[...c,a[1]]:[c,a[1]]:a[1]}i(l,n)}else t!=null&&o(n,t,r);return this}get(t,n){if(t=on(t),t){const r=_.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return Jd(s);if(_.isFunction(n))return n.call(this,s,r);if(_.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=on(t),t){const r=_.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Hr(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=on(i),i){const l=_.findKey(r,i);l&&(!n||Hr(r,r[l],l,n))&&(delete r[l],s=!0)}}return _.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||Hr(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return _.forEach(this,(s,o)=>{const i=_.findKey(r,o);if(i){n[i]=Wn(s),delete n[o];return}const l=t?Qd(o):String(o).trim();l!==o&&delete n[o],n[l]=Wn(s),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return _.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&_.isArray(r)?r.join(", "):r)}),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 r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[$o]=this[$o]={accessors:{}}).accessors,s=this.prototype;function o(i){const l=on(i);r[l]||(Yd(s,i),r[l]=!0)}return _.isArray(t)?t.forEach(o):o(t),this}};De.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);_.reduceDescriptors(De.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});_.freezeMethods(De);function kr(e,t){const n=this||In,r=t||n,s=De.from(r.headers);let o=r.data;return _.forEach(e,function(l){o=l.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function Jl(e){return!!(e&&e.__CANCEL__)}function en(e,t,n){G.call(this,e??"canceled",G.ERR_CANCELED,t,n),this.name="CanceledError"}_.inherits(en,G,{__CANCEL__:!0});function Xl(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new G("Request failed with status code "+n.status,[G.ERR_BAD_REQUEST,G.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function Zd(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function eh(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),a=r[o];i||(i=u),n[s]=c,r[s]=u;let f=o,p=0;for(;f!==s;)p+=n[f++],f=f%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i{n=a,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const a=Date.now(),f=a-n;f>=r?i(u,a):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-f)))},()=>s&&i(s)]}const sr=(e,t,n=3)=>{let r=0;const s=eh(50,250);return th(o=>{const i=o.loaded,l=o.lengthComputable?o.total:void 0,c=i-r,u=s(c),a=i<=l;r=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)},Ko=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Wo=e=>(...t)=>_.asap(()=>e(...t)),nh=Ee.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Ee.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Ee.origin),Ee.navigator&&/(msie|trident)/i.test(Ee.navigator.userAgent)):()=>!0,rh=Ee.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];_.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),_.isString(r)&&l.push(`path=${r}`),_.isString(s)&&l.push(`domain=${s}`),o===!0&&l.push("secure"),_.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 sh(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function oh(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Ql(e,t,n){let r=!sh(t);return e&&(r||n==!1)?oh(e,t):t}const Go=e=>e instanceof De?{...e}:e;function Ut(e,t){t=t||{};const n={};function r(u,a,f,p){return _.isPlainObject(u)&&_.isPlainObject(a)?_.merge.call({caseless:p},u,a):_.isPlainObject(a)?_.merge({},a):_.isArray(a)?a.slice():a}function s(u,a,f,p){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u,f,p)}else return r(u,a,f,p)}function o(u,a){if(!_.isUndefined(a))return r(void 0,a)}function i(u,a){if(_.isUndefined(a)){if(!_.isUndefined(u))return r(void 0,u)}else return r(void 0,a)}function l(u,a,f){if(f in t)return r(u,a);if(f in e)return r(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)=>s(Go(u),Go(a),f,!0)};return _.forEach(Object.keys({...e,...t}),function(a){const f=c[a]||s,p=f(e[a],t[a],a);_.isUndefined(p)&&f!==l||(n[a]=p)}),n}const Yl=e=>{const t=Ut({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:l}=t;if(t.headers=i=De.from(i),t.url=Wl(Ql(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&i.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),_.isFormData(n)){if(Ee.hasStandardBrowserEnv||Ee.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(_.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(Ee.hasStandardBrowserEnv&&(r&&_.isFunction(r)&&(r=r(t)),r||r!==!1&&nh(t.url))){const c=s&&o&&rh.read(o);c&&i.set(s,c)}return t},ih=typeof XMLHttpRequest<"u",lh=ih&&function(e){return new Promise(function(n,r){const s=Yl(e);let o=s.data;const i=De.from(s.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=s,a,f,p,m,g;function b(){m&&m(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(a),s.signal&&s.signal.removeEventListener("abort",a)}let E=new XMLHttpRequest;E.open(s.method.toUpperCase(),s.url,!0),E.timeout=s.timeout;function O(){if(!E)return;const N=De.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),M={data:!l||l==="text"||l==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:N,config:e,request:E};Xl(function(k){n(k),b()},function(k){r(k),b()},M),E=null}"onloadend"in E?E.onloadend=O:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.indexOf("file:")===0)||setTimeout(O)},E.onabort=function(){E&&(r(new G("Request aborted",G.ECONNABORTED,e,E)),E=null)},E.onerror=function(P){const M=P&&P.message?P.message:"Network Error",X=new G(M,G.ERR_NETWORK,e,E);X.event=P||null,r(X),E=null},E.ontimeout=function(){let P=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const M=s.transitional||Gl;s.timeoutErrorMessage&&(P=s.timeoutErrorMessage),r(new G(P,M.clarifyTimeoutError?G.ETIMEDOUT:G.ECONNABORTED,e,E)),E=null},o===void 0&&i.setContentType(null),"setRequestHeader"in E&&_.forEach(i.toJSON(),function(P,M){E.setRequestHeader(M,P)}),_.isUndefined(s.withCredentials)||(E.withCredentials=!!s.withCredentials),l&&l!=="json"&&(E.responseType=s.responseType),u&&([p,g]=sr(u,!0),E.addEventListener("progress",p)),c&&E.upload&&([f,m]=sr(c),E.upload.addEventListener("progress",f),E.upload.addEventListener("loadend",m)),(s.cancelToken||s.signal)&&(a=N=>{E&&(r(!N||N.type?new en(null,e,E):N),E.abort(),E=null)},s.cancelToken&&s.cancelToken.subscribe(a),s.signal&&(s.signal.aborted?a():s.signal.addEventListener("abort",a)));const C=Zd(s.url);if(C&&Ee.protocols.indexOf(C)===-1){r(new G("Unsupported protocol "+C+":",G.ERR_BAD_REQUEST,e));return}E.send(o||null)})},ch=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,l();const a=u instanceof Error?u:this.reason;r.abort(a instanceof G?a:new en(a instanceof Error?a.message:a))}};let i=t&&setTimeout(()=>{i=null,o(new G(`timeout ${t} of ms exceeded`,G.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}=r;return c.unsubscribe=()=>_.asap(l),c}},ah=function*(e,t){let n=e.byteLength;if(n{const s=uh(e,t);let o=0,i,l=c=>{i||(i=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:a}=await s.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),s.return()}},{highWaterMark:2})},Jo=64*1024,{isFunction:Un}=_,dh=(({Request:e,Response:t})=>({Request:e,Response:t}))(_.global),{ReadableStream:Xo,TextEncoder:Qo}=_.global,Yo=(e,...t)=>{try{return!!e(...t)}catch{return!1}},hh=e=>{e=_.merge.call({skipUndefined:!0},dh,e);const{fetch:t,Request:n,Response:r}=e,s=t?Un(t):typeof fetch=="function",o=Un(n),i=Un(r);if(!s)return!1;const l=s&&Un(Xo),c=s&&(typeof Qo=="function"?(g=>b=>g.encode(b))(new Qo):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=o&&l&&Yo(()=>{let g=!1;const b=new n(Ee.origin,{body:new Xo,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!b}),a=i&&l&&Yo(()=>_.isReadableStream(new r("").body)),f={stream:a&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(b,E)=>{let O=b&&b[g];if(O)return O.call(b);throw new G(`Response type '${g}' is not supported`,G.ERR_NOT_SUPPORT,E)})});const p=async g=>{if(g==null)return 0;if(_.isBlob(g))return g.size;if(_.isSpecCompliantForm(g))return(await new n(Ee.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(_.isArrayBufferView(g)||_.isArrayBuffer(g))return g.byteLength;if(_.isURLSearchParams(g)&&(g=g+""),_.isString(g))return(await c(g)).byteLength},m=async(g,b)=>{const E=_.toFiniteNumber(g.getContentLength());return E??p(b)};return async g=>{let{url:b,method:E,data:O,signal:C,cancelToken:N,timeout:P,onDownloadProgress:M,onUploadProgress:X,responseType:k,headers:V,withCredentials:U="same-origin",fetchOptions:ee}=Yl(g),ue=t||fetch;k=k?(k+"").toLowerCase():"text";let ye=ch([C,N&&N.toAbortSignal()],P),pe=null;const Re=ye&&ye.unsubscribe&&(()=>{ye.unsubscribe()});let Ve;try{if(X&&u&&E!=="get"&&E!=="head"&&(Ve=await m(V,O))!==0){let me=new n(b,{method:"POST",body:O,duplex:"half"}),fe;if(_.isFormData(O)&&(fe=me.headers.get("content-type"))&&V.setContentType(fe),me.body){const[Je,qe]=Ko(Ve,sr(Wo(X)));O=zo(me.body,Jo,Je,qe)}}_.isString(U)||(U=U?"include":"omit");const J=o&&"credentials"in n.prototype,K={...ee,signal:ye,method:E.toUpperCase(),headers:V.normalize().toJSON(),body:O,duplex:"half",credentials:J?U:void 0};pe=o&&new n(b,K);let z=await(o?ue(pe,ee):ue(b,K));const Be=a&&(k==="stream"||k==="response");if(a&&(M||Be&&Re)){const me={};["status","statusText","headers"].forEach(Xe=>{me[Xe]=z[Xe]});const fe=_.toFiniteNumber(z.headers.get("content-length")),[Je,qe]=M&&Ko(fe,sr(Wo(M),!0))||[];z=new r(zo(z.body,Jo,Je,()=>{qe&&qe(),Re&&Re()}),me)}k=k||"text";let ze=await f[_.findKey(f,k)||"text"](z,g);return!Be&&Re&&Re(),await new Promise((me,fe)=>{Xl(me,fe,{data:ze,headers:De.from(z.headers),status:z.status,statusText:z.statusText,config:g,request:pe})})}catch(J){throw Re&&Re(),J&&J.name==="TypeError"&&/Load failed|fetch/i.test(J.message)?Object.assign(new G("Network Error",G.ERR_NETWORK,g,pe),{cause:J.cause||J}):G.from(J,J&&J.code,g,pe)}}},ph=new Map,Zl=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,l=i,c,u,a=ph;for(;l--;)c=o[l],u=a.get(c),u===void 0&&a.set(c,u=l?new Map:hh(t)),a=u;return u};Zl();const Ms={http:Nd,xhr:lh,fetch:{get:Zl}};_.forEach(Ms,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Zo=e=>`- ${e}`,mh=e=>_.isFunction(e)||e===null||e===!1;function gh(e,t){e=_.isArray(e)?e:[e];const{length:n}=e;let r,s;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(Zo).join(` +`):" "+Zo(i[0]):"as no adapter specified";throw new G("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return s}const ec={getAdapter:gh,adapters:Ms};function Vr(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new en(null,e)}function ei(e){return Vr(e),e.headers=De.from(e.headers),e.data=kr.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),ec.getAdapter(e.adapter||In.adapter,e)(e).then(function(r){return Vr(e),r.data=kr.call(e,e.transformResponse,r),r.headers=De.from(r.headers),r},function(r){return Jl(r)||(Vr(e),r&&r.response&&(r.response.data=kr.call(e,e.transformResponse,r.response),r.response.headers=De.from(r.response.headers))),Promise.reject(r)})}const tc="1.13.2",Ar={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Ar[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const ti={};Ar.transitional=function(t,n,r){function s(o,i){return"[Axios v"+tc+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,l)=>{if(t===!1)throw new G(s(i," has been removed"+(n?" in "+n:"")),G.ERR_DEPRECATED);return n&&!ti[i]&&(ti[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,l):!0}};Ar.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function yh(e,t,n){if(typeof e!="object")throw new G("options must be an object",G.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const l=e[o],c=l===void 0||i(l,o,e);if(c!==!0)throw new G("option "+o+" must be "+c,G.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new G("Unknown option "+o,G.ERR_BAD_OPTION)}}const Gn={assertOptions:yh,validators:Ar},nt=Gn.validators;let Mt=class{constructor(t){this.defaults=t||{},this.interceptors={request:new qo,response:new qo}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Ut(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&Gn.assertOptions(r,{silentJSONParsing:nt.transitional(nt.boolean),forcedJSONParsing:nt.transitional(nt.boolean),clarifyTimeoutError:nt.transitional(nt.boolean)},!1),s!=null&&(_.isFunction(s)?n.paramsSerializer={serialize:s}:Gn.assertOptions(s,{encode:nt.function,serialize:nt.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Gn.assertOptions(n,{baseUrl:nt.spelling("baseURL"),withXsrfToken:nt.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&_.merge(o.common,o[n.method]);o&&_.forEach(["delete","get","head","post","put","patch","common"],g=>{delete o[g]}),n.headers=De.concat(i,o);const l=[];let c=!0;this.interceptors.request.forEach(function(b){typeof b.runWhen=="function"&&b.runWhen(n)===!1||(c=c&&b.synchronous,l.unshift(b.fulfilled,b.rejected))});const u=[];this.interceptors.response.forEach(function(b){u.push(b.fulfilled,b.rejected)});let a,f=0,p;if(!c){const g=[ei.bind(this),void 0];for(g.unshift(...l),g.push(...u),p=g.length,a=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(l=>{r.subscribe(l),o=l}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,l){r.reason||(r.reason=new en(o,i,l),n(r.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=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new nc(function(s){t=s}),cancel:t}}};function bh(e){return function(n){return e.apply(null,n)}}function Eh(e){return _.isObject(e)&&e.isAxiosError===!0}const as={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(as).forEach(([e,t])=>{as[t]=e});function rc(e){const t=new Mt(e),n=Ll(Mt.prototype.request,t);return _.extend(n,Mt.prototype,t,{allOwnKeys:!0}),_.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return rc(Ut(e,s))},n}const he=rc(In);he.Axios=Mt;he.CanceledError=en;he.CancelToken=_h;he.isCancel=Jl;he.VERSION=tc;he.toFormData=Rr;he.AxiosError=G;he.Cancel=he.CanceledError;he.all=function(t){return Promise.all(t)};he.spread=bh;he.isAxiosError=Eh;he.mergeConfig=Ut;he.AxiosHeaders=De;he.formToJSON=e=>zl(_.isHTMLForm(e)?new FormData(e):e);he.getAdapter=ec.getAdapter;he.HttpStatusCode=as;he.default=he;const{Axios:jh,AxiosError:Bh,CanceledError:Hh,isCancel:kh,CancelToken:Vh,VERSION:qh,all:$h,Cancel:Kh,isAxiosError:Wh,spread:Gh,toFormData:zh,AxiosHeaders:Jh,HttpStatusCode:Xh,formToJSON:Qh,getAdapter:Yh,mergeConfig:Zh}=he,_n=he.create({baseURL:"",timeout:3e4,withCredentials:!0});_n.interceptors.request.use(e=>e,e=>Promise.reject(e));_n.interceptors.response.use(e=>e.data,e=>{e.response?.status===401&&(window.location.hash="#/login");const t=e.response?.data?e.response.data.detail||e.response.data.message:e.message;return Promise.reject(new Error(t||"请求失败"))});const jn={login:e=>{const t=new URLSearchParams;return t.append("admin_key",e.password),_n.post("/login",t,{headers:{"Content-Type":"application/x-www-form-urlencoded"}})},logout:()=>_n.post("/logout"),checkAuth:()=>_n.get("/admin/health")},wh=Mu("auth",()=>{const e=Lt(!1),t=Lt(!1),n=Lt(0),r=1e4;let s=null;async function o(c){t.value=!0;try{return await jn.login({password:c}),await jn.checkAuth(),e.value=!0,n.value=Date.now(),!0}catch(u){throw e.value=!1,u}finally{t.value=!1}}async function i(){try{await jn.logout()}finally{e.value=!1,n.value=0}}async function l(){const c=Date.now();if(e.value&&c-n.value(await jn.checkAuth(),e.value=!0,!0))(),await s}catch{return e.value=!1,!1}finally{n.value=Date.now(),s=null}}return{isLoggedIn:e,isLoading:t,login:o,logout:i,checkAuth:l}}),sc=Kf({history:Af("/"),routes:[{path:"/public/uptime",name:"public-uptime",component:()=>tt(()=>import("./PublicUptime-DGrWLd4M.js"),__vite__mapDeps([0,1])),meta:{requiresAuth:!1}},{path:"/public/logs",name:"public-logs",component:()=>tt(()=>import("./PublicLogs-HTusrXOt.js"),[]),meta:{requiresAuth:!1}},{path:"/login",name:"login",component:()=>tt(()=>import("./Login-DoUZbRfy.js"),[]),meta:{requiresAuth:!1}},{path:"/",component:()=>tt(()=>import("./AppShell-DeReBBBN.js"),__vite__mapDeps([2,3,4,5])),meta:{requiresAuth:!0},children:[{path:"",name:"dashboard",component:()=>tt(()=>import("./Dashboard-Cj32OD7s.js"),__vite__mapDeps([6,7]))},{path:"accounts",name:"accounts",component:()=>tt(()=>import("./Accounts-CWTZ3Utf.js"),__vite__mapDeps([8,9,10,4,5,7]))},{path:"settings",name:"settings",component:()=>tt(()=>import("./Settings-5TGeenDK.js"),__vite__mapDeps([11,3,9,10]))},{path:"logs",name:"logs",component:()=>tt(()=>import("./Logs-BQzipIMY.js"),__vite__mapDeps([12,9,4]))},{path:"monitor",name:"monitor",component:()=>tt(()=>import("./Monitor-7LGA_2Xx.js"),__vite__mapDeps([13,1]))},{path:"docs",name:"docs",component:()=>tt(()=>import("./Docs-Dkbv5Kw3.js"),[])}]}]});sc.beforeEach(async e=>{const t=wh();if(e.meta.requiresAuth&&!await t.checkAuth())return{name:"login"};if(e.name==="login"&&t.isLoggedIn)return{name:"dashboard"}});const Sh=Os({__name:"App",setup(e){return(t,n)=>(er(),nr(Ot(Dl)))}}),Us=xu(Sh),Rh=Pu();Us.use(Rh);Us.use(sc);Us.mount("#app");export{Xc as A,Dl as B,Mu as C,Dh as D,xh as E,Fe as F,Rs as G,On as H,kf as R,vh as T,fl as a,Ph as b,Th as c,Os as d,er as e,Wa as f,_n as g,Lt as h,Me as i,fa as j,ps as k,wh as l,Ah as m,ms as n,ca as o,Lh as p,Fh as q,Oh as r,fn as s,mc as t,Ot as u,Nh as v,Ih as w,Ce as x,nr as y,Ch as z}; diff --git a/static/assets/index-iyM1jpDW.css b/static/assets/index-iyM1jpDW.css new file mode 100644 index 0000000000000000000000000000000000000000..0e60f051bbbcbfe2a9382f374d9740a647be86c6 --- /dev/null +++ b/static/assets/index-iyM1jpDW.css @@ -0,0 +1 @@ +@import"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=Noto+Serif+SC:wght@600;700&display=swap";*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 97%;--foreground: 0 0% 10%;--card: 0 0% 100%;--card-foreground: 0 0% 10%;--primary: 0 0% 10%;--primary-foreground: 0 0% 100%;--secondary: 0 0% 92%;--secondary-foreground: 0 0% 10%;--muted: 0 0% 92%;--muted-foreground: 0 0% 40%;--accent: 0 0% 90%;--accent-foreground: 0 0% 10%;--destructive: 0 70% 45%;--destructive-foreground: 0 0% 100%;--border: 0 0% 86%;--input: 0 0% 86%;--ring: 0 0% 10%;--radius: 1rem}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:Noto Sans SC,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;overflow-x:hidden;background-image:radial-gradient(900px circle at 10% -20%,rgba(0,0,0,.04),transparent 45%),radial-gradient(700px circle at 90% 0%,rgba(0,0,0,.05),transparent 40%),linear-gradient(180deg,hsl(var(--background)) 0% 100%)}body:before{content:"";position:fixed;inset:0;background-image:linear-gradient(120deg,#ffffff8c,#fff0);opacity:.5;pointer-events:none;z-index:-1}h1,h2,h3{font-family:"Noto Serif SC",Georgia,serif;letter-spacing:-.01em}#app{min-height:100vh}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{top:0;bottom:0}.bottom-0{bottom:0}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.top-0{top:0}.top-full{top:100%}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[9999\]{z-index:9999}.col-span-2{grid-column:span 2 / span 2}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0{height:0px}.h-10{height:2.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-\[80vh\]{height:80vh}.h-full{height:100%}.max-h-\[60vh\]{max-height:60vh}.max-h-\[90vh\]{max-height:90vh}.min-h-0{min-height:0px}.min-h-\[140px\]{min-height:140px}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-10{width:2.5rem}.w-2{width:.5rem}.w-20{width:5rem}.w-24{width:6rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-44{width:11rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[200px\]{min-width:200px}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-not-allowed{cursor:not-allowed}.resize{resize:both}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-1{row-gap:.25rem}.gap-y-2{row-gap:.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.justify-self-end{justify-self:end}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-visible{overflow-y:visible}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[2\.5rem\]{border-radius:2.5rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-x-4{border-left-width:4px;border-right-width:4px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-4{border-top-width:4px}.border-border{border-color:hsl(var(--border))}.border-border\/60{border-color:hsl(var(--border) / .6)}.border-destructive\/30{border-color:hsl(var(--destructive) / .3)}.border-input{border-color:hsl(var(--input))}.border-primary-foreground\/40{border-color:hsl(var(--primary-foreground) / .4)}.border-rose-200{--tw-border-opacity: 1;border-color:rgb(254 205 211 / var(--tw-border-opacity, 1))}.border-x-transparent{border-left-color:transparent;border-right-color:transparent}.border-t-foreground{border-top-color:hsl(var(--foreground))}.bg-accent{background-color:hsl(var(--accent))}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-200{--tw-bg-opacity: 1;background-color:rgb(253 230 138 / var(--tw-bg-opacity, 1))}.bg-amber-300{--tw-bg-opacity: 1;background-color:rgb(252 211 77 / var(--tw-bg-opacity, 1))}.bg-amber-400{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-black\/20{background-color:#0003}.bg-black\/30{background-color:#0000004d}.bg-black\/50{background-color:#00000080}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-card{background-color:hsl(var(--card))}.bg-card\/70{background-color:hsl(var(--card) / .7)}.bg-card\/90{background-color:hsl(var(--card) / .9)}.bg-cyan-100{--tw-bg-opacity: 1;background-color:rgb(207 250 254 / var(--tw-bg-opacity, 1))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-400{--tw-bg-opacity: 1;background-color:rgb(52 211 153 / var(--tw-bg-opacity, 1))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground{background-color:hsl(var(--muted-foreground))}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/70{background-color:hsl(var(--muted) / .7)}.bg-primary{background-color:hsl(var(--primary))}.bg-primary-foreground\/15{background-color:hsl(var(--primary-foreground) / .15)}.bg-rose-100{--tw-bg-opacity: 1;background-color:rgb(255 228 230 / var(--tw-bg-opacity, 1))}.bg-rose-50{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.bg-rose-500{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity, 1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/30{background-color:hsl(var(--secondary) / .3)}.bg-secondary\/40{background-color:hsl(var(--secondary) / .4)}.bg-secondary\/50{background-color:hsl(var(--secondary) / .5)}.bg-secondary\/60{background-color:hsl(var(--secondary) / .6)}.bg-sky-400{--tw-bg-opacity: 1;background-color:rgb(56 189 248 / var(--tw-bg-opacity, 1))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-violet-100{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.object-contain{-o-object-fit:contain;object-fit:contain}.p-1{padding:.25rem}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-10{padding-bottom:2.5rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pl-6{padding-left:1.5rem}.pr-1{padding-right:.25rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.tracking-\[0\.12em\]{letter-spacing:.12em}.tracking-\[0\.28em\]{letter-spacing:.28em}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-\[0\.3em\]{letter-spacing:.3em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-background{color:hsl(var(--background))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-cyan-700{--tw-text-opacity: 1;color:rgb(14 116 144 / var(--tw-text-opacity, 1))}.text-destructive{color:hsl(var(--destructive))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-violet-700{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.opacity-0{opacity:0}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-black\/10{--tw-shadow-color: rgb(0 0 0 / .1);--tw-shadow: var(--tw-shadow-colored)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,transform\]{transition-property:width,transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-\[transform\]{will-change:transform}html{scrollbar-gutter:stable}*{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.35) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:#00000059;border-radius:999px;border:2px solid transparent;background-clip:content-box}.scrollbar-slim::-webkit-scrollbar{width:6px;height:6px}.scrollbar-slim::-webkit-scrollbar-thumb{background-color:#0006}.cv-auto{content-visibility:auto;contain-intrinsic-size:0 44px}.monitor-badge--up{background:#d1fae5;color:#065f46}.monitor-badge--warn{background:#fef3c7;color:#b45309}.monitor-badge--down{background:#fee2e2;color:#991b1b}.monitor-badge--unknown{background:#f3f4f6;color:#6b7280}.monitor-card{border-radius:16px;padding:0;background:hsl(var(--card));box-shadow:none}.monitor-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.monitor-card__name{font-size:14px;font-weight:600;color:hsl(var(--foreground))}.monitor-card__badge{padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600}.monitor-card__stats{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:hsl(var(--muted-foreground));margin-bottom:12px}.monitor-card__value{margin-left:4px;color:hsl(var(--foreground));font-weight:600}.monitor-card__beats{display:flex;gap:2px;height:24px;align-items:flex-end}.monitor-beat{flex:1;min-width:4px;max-width:8px;border-radius:2px;transition:all .2s;position:relative}.monitor-beat:hover{opacity:.8;transform:scaleY(1.1)}.monitor-beat--up{background:#34c759;height:100%}.monitor-beat--warn,.monitor-beat--slow{background:#f5c15b;height:100%}.monitor-beat--down{background:#ff3b30;height:100%}.monitor-beat--empty{background:#e5e5ea;height:40%}.monitor-beat__tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#1d1d1f;color:#fff;padding:6px 10px;border-radius:6px;font-size:11px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;margin-bottom:6px;z-index:10}.monitor-beat__tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#1d1d1f}.monitor-beat:hover .monitor-beat__tooltip{opacity:1}.help-dot{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:999px;border:1px solid hsl(var(--border));font-size:10px;line-height:1;color:hsl(var(--muted-foreground));cursor:default}@media(max-width:768px){.monitor-beat{min-width:3px;max-width:6px}}@media(min-width:1024px){.dashboard-split{flex-direction:row;flex-wrap:nowrap}.dashboard-split .dashboard-main{flex:0 0 66.6667%;max-width:66.6667%}.dashboard-split .dashboard-side{flex:0 0 33.3333%;max-width:33.3333%}}@keyframes logo-float{0%{transform:translateY(0)}25%{transform:translateY(6px)}50%{transform:translateY(0)}75%{transform:translateY(-6px)}to{transform:translateY(0)}}@keyframes logo-blink{0%,45%,55%,to{transform:scaleY(1);opacity:1}50%{transform:scaleY(.1);opacity:.6}}.logo-mark .logo-cat-wrapper{animation:logo-float 4s ease-in-out infinite;transform-origin:center}.logo-mark{transform:translateY(2px)}.logo-mark .logo-eye{fill:#00bcd4;filter:drop-shadow(0 0 2px #00bcd4);animation:logo-blink 5s infinite;transform-box:fill-box;transform-origin:center}.hover\:border-destructive:hover{border-color:hsl(var(--destructive))}.hover\:border-destructive\/40:hover{border-color:hsl(var(--destructive) / .4)}.hover\:border-destructive\/60:hover{border-color:hsl(var(--destructive) / .6)}.hover\:border-foreground:hover{border-color:hsl(var(--foreground))}.hover\:border-primary:hover{border-color:hsl(var(--primary))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/10:hover{background-color:hsl(var(--destructive) / .1)}.hover\:bg-secondary\/60:hover{background-color:hsl(var(--secondary) / .6)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-emerald-500:hover{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.focus\:border-transparent:focus{border-color:transparent}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:text-accent-foreground{color:hsl(var(--accent-foreground))}.group:hover .group-hover\:opacity-100{opacity:1}.peer:checked~.peer-checked\:border-foreground{border-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:bg-foreground{background-color:hsl(var(--foreground))}.peer:checked~.peer-checked\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.peer:disabled~.peer-disabled\:opacity-50{opacity:.5}@media(min-width:640px){.sm\:ml-0{margin-left:0}.sm\:flex{display:flex}.sm\:w-44{width:11rem}.sm\:w-48{width:12rem}.sm\:w-auto{width:auto}.sm\:min-w-0{min-width:0px}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:items-center{align-items:center}}@media(min-width:768px){.md\:w-auto{width:auto}.md\:flex-1{flex:1 1 0%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1024px){.lg\:static{position:static}.lg\:sticky{position:sticky}.lg\:top-0{top:0}.lg\:ml-0{margin-left:0}.lg\:hidden{display:none}.lg\:h-20{height:5rem}.lg\:h-64{height:16rem}.lg\:h-72{height:18rem}.lg\:h-screen{height:100vh}.lg\:w-20{width:5rem}.lg\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:border-b-0{border-bottom-width:0px}.lg\:border-r{border-right-width:1px}.lg\:bg-card\/80{background-color:hsl(var(--card) / .8)}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:py-4{padding-top:1rem;padding-bottom:1rem}.lg\:pt-10{padding-top:2.5rem}.lg\:pt-5{padding-top:1.25rem}.lg\:pt-6{padding-top:1.5rem}.lg\:text-2xl{font-size:1.5rem;line-height:2rem}.lg\:backdrop-blur-none{--tw-backdrop-blur: ;-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}}@media(min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}} diff --git a/static/assets/settings-2nHuz2zg.js b/static/assets/settings-2nHuz2zg.js new file mode 100644 index 0000000000000000000000000000000000000000..f32fbac320bcbf5ed2d593293bf11f1bfc230272 --- /dev/null +++ b/static/assets/settings-2nHuz2zg.js @@ -0,0 +1 @@ +import{g as a,C as g,h as n}from"./index-BCQxBeUo.js";const i={get:()=>a.get("/admin/settings"),update:t=>a.put("/admin/settings",t)},r=g("settings",()=>{const t=n(null),e=n(!1);async function u(){e.value=!0;try{t.value=await i.get()}finally{e.value=!1}}async function o(s){await i.update(s),t.value=s}return{settings:t,isLoading:e,loadSettings:u,updateSettings:o}});export{r as u}; diff --git a/static/assets/settings-AWz-24Iz.js b/static/assets/settings-AWz-24Iz.js new file mode 100644 index 0000000000000000000000000000000000000000..a524e32fbdfaedf6540187362ef4256c826330ec --- /dev/null +++ b/static/assets/settings-AWz-24Iz.js @@ -0,0 +1 @@ +import{g as a,C as g,h as n}from"./index-BRg_yWJl.js";const i={get:()=>a.get("/admin/settings"),update:t=>a.put("/admin/settings",t)},r=g("settings",()=>{const t=n(null),e=n(!1);async function u(){e.value=!0;try{t.value=await i.get()}finally{e.value=!1}}async function o(s){await i.update(s),t.value=s}return{settings:t,isLoading:e,loadSettings:u,updateSettings:o}});export{r as u}; diff --git a/static/assets/settings-AxgaqgWn.js b/static/assets/settings-AxgaqgWn.js new file mode 100644 index 0000000000000000000000000000000000000000..3326b908e3a3565ac1e41022914b0efca77601a6 --- /dev/null +++ b/static/assets/settings-AxgaqgWn.js @@ -0,0 +1 @@ +import{g as a,C as g,h as n}from"./index-Babp7OwB.js";const i={get:()=>a.get("/admin/settings"),update:t=>a.put("/admin/settings",t)},r=g("settings",()=>{const t=n(null),e=n(!1);async function u(){e.value=!0;try{t.value=await i.get()}finally{e.value=!1}}async function o(s){await i.update(s),t.value=s}return{settings:t,isLoading:e,loadSettings:u,updateSettings:o}});export{r as u}; diff --git a/static/assets/settings-BHsdlelt.js b/static/assets/settings-BHsdlelt.js new file mode 100644 index 0000000000000000000000000000000000000000..9b1b3a265c549d5a694c83de8cb2f43085dc914d --- /dev/null +++ b/static/assets/settings-BHsdlelt.js @@ -0,0 +1 @@ +import{g as a,D as g,h as n}from"./index-JaBfp01b.js";const i={get:()=>a.get("/admin/settings"),update:t=>a.put("/admin/settings",t)},r=g("settings",()=>{const t=n(null),e=n(!1);async function u(){e.value=!0;try{t.value=await i.get()}finally{e.value=!1}}async function o(s){await i.update(s),t.value=s}return{settings:t,isLoading:e,loadSettings:u,updateSettings:o}});export{r as u}; diff --git a/static/assets/settings-BYE7wugy.js b/static/assets/settings-BYE7wugy.js new file mode 100644 index 0000000000000000000000000000000000000000..61fc0dd5bf58b9d9b6ee884c50b4202dd195d062 --- /dev/null +++ b/static/assets/settings-BYE7wugy.js @@ -0,0 +1 @@ +import{g as a,C as g,h as n}from"./index-DrM07qAY.js";const i={get:()=>a.get("/admin/settings"),update:t=>a.put("/admin/settings",t)},r=g("settings",()=>{const t=n(null),e=n(!1);async function u(){e.value=!0;try{t.value=await i.get()}finally{e.value=!1}}async function o(s){await i.update(s),t.value=s}return{settings:t,isLoading:e,loadSettings:u,updateSettings:o}});export{r as u}; diff --git a/static/assets/settings-B_knXf3v.js b/static/assets/settings-B_knXf3v.js new file mode 100644 index 0000000000000000000000000000000000000000..f55779bb8d75ecd536aa9ff32ab306e8920ec6b5 --- /dev/null +++ b/static/assets/settings-B_knXf3v.js @@ -0,0 +1 @@ +import{g as a,C as g,h as n}from"./index-CkXB0iyt.js";const i={get:()=>a.get("/admin/settings"),update:t=>a.put("/admin/settings",t)},r=g("settings",()=>{const t=n(null),e=n(!1);async function u(){e.value=!0;try{t.value=await i.get()}finally{e.value=!1}}async function o(s){await i.update(s),t.value=s}return{settings:t,isLoading:e,loadSettings:u,updateSettings:o}});export{r as u}; diff --git a/static/assets/settings-Ba-Xl9Xv.js b/static/assets/settings-Ba-Xl9Xv.js new file mode 100644 index 0000000000000000000000000000000000000000..c4fc828817cf2da4a14784dfd0321708616c73a4 --- /dev/null +++ b/static/assets/settings-Ba-Xl9Xv.js @@ -0,0 +1 @@ +import{g as a,C as g,h as n}from"./index-Dt-VnrHx.js";const i={get:()=>a.get("/admin/settings"),update:t=>a.put("/admin/settings",t)},r=g("settings",()=>{const t=n(null),e=n(!1);async function u(){e.value=!0;try{t.value=await i.get()}finally{e.value=!1}}async function o(s){await i.update(s),t.value=s}return{settings:t,isLoading:e,loadSettings:u,updateSettings:o}});export{r as u}; diff --git a/static/assets/settings-BgKIn-YY.js b/static/assets/settings-BgKIn-YY.js new file mode 100644 index 0000000000000000000000000000000000000000..0c78ae22923dc0f2265dca7a1752fe4c2e0f6502 --- /dev/null +++ b/static/assets/settings-BgKIn-YY.js @@ -0,0 +1 @@ +import{g as a,C as g,h as n}from"./index-Bjh6Z8Zq.js";const i={get:()=>a.get("/admin/settings"),update:t=>a.put("/admin/settings",t)},r=g("settings",()=>{const t=n(null),e=n(!1);async function u(){e.value=!0;try{t.value=await i.get()}finally{e.value=!1}}async function o(s){await i.update(s),t.value=s}return{settings:t,isLoading:e,loadSettings:u,updateSettings:o}});export{r as u}; diff --git a/static/assets/settings-BkhyfuxO.js b/static/assets/settings-BkhyfuxO.js new file mode 100644 index 0000000000000000000000000000000000000000..cfbded7a5e59b20504a4d2cf57ad0bde2fe839d0 --- /dev/null +++ b/static/assets/settings-BkhyfuxO.js @@ -0,0 +1 @@ +import{g as a,C as g,h as n}from"./index-BYFRJmx0.js";const i={get:()=>a.get("/admin/settings"),update:t=>a.put("/admin/settings",t)},r=g("settings",()=>{const t=n(null),e=n(!1);async function u(){e.value=!0;try{t.value=await i.get()}finally{e.value=!1}}async function o(s){await i.update(s),t.value=s}return{settings:t,isLoading:e,loadSettings:u,updateSettings:o}});export{r as u}; diff --git a/static/assets/settings-Br7FkzDa.js b/static/assets/settings-Br7FkzDa.js new file mode 100644 index 0000000000000000000000000000000000000000..f1e053f7dedd5f8fb3b899cfb36c5f92e42a80c3 --- /dev/null +++ b/static/assets/settings-Br7FkzDa.js @@ -0,0 +1 @@ +import{g as a,C as g,h as n}from"./index-Bx7qSams.js";const i={get:()=>a.get("/admin/settings"),update:t=>a.put("/admin/settings",t)},r=g("settings",()=>{const t=n(null),e=n(!1);async function u(){e.value=!0;try{t.value=await i.get()}finally{e.value=!1}}async function o(s){await i.update(s),t.value=s}return{settings:t,isLoading:e,loadSettings:u,updateSettings:o}});export{r as u}; diff --git a/static/assets/settings-By2abYt3.js b/static/assets/settings-By2abYt3.js new file mode 100644 index 0000000000000000000000000000000000000000..70797f0f2555b6c6003249b2aab327003250fc52 --- /dev/null +++ b/static/assets/settings-By2abYt3.js @@ -0,0 +1 @@ +import{g as a,C as g,h as n}from"./index-4tSmcUDY.js";const i={get:()=>a.get("/admin/settings"),update:t=>a.put("/admin/settings",t)},r=g("settings",()=>{const t=n(null),e=n(!1);async function u(){e.value=!0;try{t.value=await i.get()}finally{e.value=!1}}async function o(s){await i.update(s),t.value=s}return{settings:t,isLoading:e,loadSettings:u,updateSettings:o}});export{r as u}; diff --git a/static/assets/settings-C6i6OeZ-.js b/static/assets/settings-C6i6OeZ-.js new file mode 100644 index 0000000000000000000000000000000000000000..26a470bc1aec6356861f5ef8f418e6f3f7f09a8d --- /dev/null +++ b/static/assets/settings-C6i6OeZ-.js @@ -0,0 +1 @@ +import{g as a,C as g,h as n}from"./index-C4edAQLF.js";const i={get:()=>a.get("/admin/settings"),update:t=>a.put("/admin/settings",t)},r=g("settings",()=>{const t=n(null),e=n(!1);async function u(){e.value=!0;try{t.value=await i.get()}finally{e.value=!1}}async function o(s){await i.update(s),t.value=s}return{settings:t,isLoading:e,loadSettings:u,updateSettings:o}});export{r as u}; diff --git a/static/assets/settings-CAn-I9vU.js b/static/assets/settings-CAn-I9vU.js new file mode 100644 index 0000000000000000000000000000000000000000..06e26faf78f26d60b90dd53a517054cc35031072 --- /dev/null +++ b/static/assets/settings-CAn-I9vU.js @@ -0,0 +1 @@ +import{g as a,C as g,h as n}from"./index-gD6QQiOu.js";const i={get:()=>a.get("/admin/settings"),update:t=>a.put("/admin/settings",t)},r=g("settings",()=>{const t=n(null),e=n(!1);async function u(){e.value=!0;try{t.value=await i.get()}finally{e.value=!1}}async function o(s){await i.update(s),t.value=s}return{settings:t,isLoading:e,loadSettings:u,updateSettings:o}});export{r as u}; diff --git a/static/assets/settings-CCCXerrX.js b/static/assets/settings-CCCXerrX.js new file mode 100644 index 0000000000000000000000000000000000000000..f7e28dcbaddb35cd9f5d25fe8e565642b8d8a5ea --- /dev/null +++ b/static/assets/settings-CCCXerrX.js @@ -0,0 +1 @@ +import{g as a,C as g,h as n}from"./index-DhxxzIOh.js";const i={get:()=>a.get("/admin/settings"),update:t=>a.put("/admin/settings",t)},r=g("settings",()=>{const t=n(null),e=n(!1);async function u(){e.value=!0;try{t.value=await i.get()}finally{e.value=!1}}async function o(s){await i.update(s),t.value=s}return{settings:t,isLoading:e,loadSettings:u,updateSettings:o}});export{r as u}; diff --git a/static/assets/settings-CHSHPnGz.js b/static/assets/settings-CHSHPnGz.js new file mode 100644 index 0000000000000000000000000000000000000000..da05915d87ed190db3425a70c6c010e408a42d63 --- /dev/null +++ b/static/assets/settings-CHSHPnGz.js @@ -0,0 +1 @@ +import{g as a,C as g,h as n}from"./index-DDWWwh2l.js";const i={get:()=>a.get("/admin/settings"),update:t=>a.put("/admin/settings",t)},r=g("settings",()=>{const t=n(null),e=n(!1);async function u(){e.value=!0;try{t.value=await i.get()}finally{e.value=!1}}async function o(s){await i.update(s),t.value=s}return{settings:t,isLoading:e,loadSettings:u,updateSettings:o}});export{r as u}; diff --git a/static/assets/settings-CVW1vhYs.js b/static/assets/settings-CVW1vhYs.js new file mode 100644 index 0000000000000000000000000000000000000000..c03a428e3e214202ca5d373e7551b697da46dea1 --- /dev/null +++ b/static/assets/settings-CVW1vhYs.js @@ -0,0 +1 @@ +import{g as a,D as g,h as n}from"./index-B38eA7T4.js";const i={get:()=>a.get("/admin/settings"),update:t=>a.put("/admin/settings",t)},r=g("settings",()=>{const t=n(null),e=n(!1);async function u(){e.value=!0;try{t.value=await i.get()}finally{e.value=!1}}async function o(s){await i.update(s),t.value=s}return{settings:t,isLoading:e,loadSettings:u,updateSettings:o}});export{r as u}; diff --git a/static/assets/settings-CnjmnC7x.js b/static/assets/settings-CnjmnC7x.js new file mode 100644 index 0000000000000000000000000000000000000000..3278739bd59ea48a57a7e90f08850494568b9712 --- /dev/null +++ b/static/assets/settings-CnjmnC7x.js @@ -0,0 +1 @@ +import{g as a,C as g,h as n}from"./index-BIHSVHyU.js";const i={get:()=>a.get("/admin/settings"),update:t=>a.put("/admin/settings",t)},r=g("settings",()=>{const t=n(null),e=n(!1);async function u(){e.value=!0;try{t.value=await i.get()}finally{e.value=!1}}async function o(s){await i.update(s),t.value=s}return{settings:t,isLoading:e,loadSettings:u,updateSettings:o}});export{r as u}; diff --git a/static/assets/settings-CqbT_C8Q.js b/static/assets/settings-CqbT_C8Q.js new file mode 100644 index 0000000000000000000000000000000000000000..90eb0d3c2489c6316f9cf590d934f2d8b1b67458 --- /dev/null +++ b/static/assets/settings-CqbT_C8Q.js @@ -0,0 +1 @@ +import{g as a,C as g,h as n}from"./index-CDbQWWUi.js";const i={get:()=>a.get("/admin/settings"),update:t=>a.put("/admin/settings",t)},r=g("settings",()=>{const t=n(null),e=n(!1);async function u(){e.value=!0;try{t.value=await i.get()}finally{e.value=!1}}async function o(s){await i.update(s),t.value=s}return{settings:t,isLoading:e,loadSettings:u,updateSettings:o}});export{r as u}; diff --git a/static/assets/settings-D1FY5IP9.js b/static/assets/settings-D1FY5IP9.js new file mode 100644 index 0000000000000000000000000000000000000000..c6d203fd52ea322e4b152f885e400aaaf20071da --- /dev/null +++ b/static/assets/settings-D1FY5IP9.js @@ -0,0 +1 @@ +import{g as a,C as g,h as n}from"./index-Bh_hLcqi.js";const i={get:()=>a.get("/admin/settings"),update:t=>a.put("/admin/settings",t)},r=g("settings",()=>{const t=n(null),e=n(!1);async function u(){e.value=!0;try{t.value=await i.get()}finally{e.value=!1}}async function o(s){await i.update(s),t.value=s}return{settings:t,isLoading:e,loadSettings:u,updateSettings:o}});export{r as u}; diff --git a/static/assets/settings-D7bt90ge.js b/static/assets/settings-D7bt90ge.js new file mode 100644 index 0000000000000000000000000000000000000000..9e1dc37d970025267c0a5bd06ff3558840616b2e --- /dev/null +++ b/static/assets/settings-D7bt90ge.js @@ -0,0 +1 @@ +import{g as a,C as g,h as n}from"./index-CQv2QMzB.js";const i={get:()=>a.get("/admin/settings"),update:t=>a.put("/admin/settings",t)},r=g("settings",()=>{const t=n(null),e=n(!1);async function u(){e.value=!0;try{t.value=await i.get()}finally{e.value=!1}}async function o(s){await i.update(s),t.value=s}return{settings:t,isLoading:e,loadSettings:u,updateSettings:o}});export{r as u}; diff --git a/static/assets/settings-DVwbsbgP.js b/static/assets/settings-DVwbsbgP.js new file mode 100644 index 0000000000000000000000000000000000000000..c4d3525afb8c3b850f1f000ef8ccbac204fcf2a5 --- /dev/null +++ b/static/assets/settings-DVwbsbgP.js @@ -0,0 +1 @@ +import{g as a,D as g,h as n}from"./index-OP3F9IRB.js";const i={get:()=>a.get("/admin/settings"),update:t=>a.put("/admin/settings",t)},r=g("settings",()=>{const t=n(null),e=n(!1);async function u(){e.value=!0;try{t.value=await i.get()}finally{e.value=!1}}async function o(s){await i.update(s),t.value=s}return{settings:t,isLoading:e,loadSettings:u,updateSettings:o}});export{r as u}; diff --git a/static/assets/settings-DXLXVT8l.js b/static/assets/settings-DXLXVT8l.js new file mode 100644 index 0000000000000000000000000000000000000000..8b22314a34399ba187b1b5369867d37ffe4f61c7 --- /dev/null +++ b/static/assets/settings-DXLXVT8l.js @@ -0,0 +1 @@ +import{g as a,C as g,h as n}from"./index-DMWZCTlx.js";const i={get:()=>a.get("/admin/settings"),update:t=>a.put("/admin/settings",t)},r=g("settings",()=>{const t=n(null),e=n(!1);async function u(){e.value=!0;try{t.value=await i.get()}finally{e.value=!1}}async function o(s){await i.update(s),t.value=s}return{settings:t,isLoading:e,loadSettings:u,updateSettings:o}});export{r as u}; diff --git a/static/assets/settings-DpDmWAP6.js b/static/assets/settings-DpDmWAP6.js new file mode 100644 index 0000000000000000000000000000000000000000..afbf4802bba9bb4952de1ff5fab40e96b4cada9b --- /dev/null +++ b/static/assets/settings-DpDmWAP6.js @@ -0,0 +1 @@ +import{g as a,C as g,h as n}from"./index-C9KL0lrc.js";const i={get:()=>a.get("/admin/settings"),update:t=>a.put("/admin/settings",t)},r=g("settings",()=>{const t=n(null),e=n(!1);async function u(){e.value=!0;try{t.value=await i.get()}finally{e.value=!1}}async function o(s){await i.update(s),t.value=s}return{settings:t,isLoading:e,loadSettings:u,updateSettings:o}});export{r as u}; diff --git a/static/assets/settings-GoayIAiR.js b/static/assets/settings-GoayIAiR.js new file mode 100644 index 0000000000000000000000000000000000000000..9a2f5093bced514970862874177ff3d5138430a9 --- /dev/null +++ b/static/assets/settings-GoayIAiR.js @@ -0,0 +1 @@ +import{g as a,C as g,h as n}from"./index-Dul9zA0O.js";const i={get:()=>a.get("/admin/settings"),update:t=>a.put("/admin/settings",t)},r=g("settings",()=>{const t=n(null),e=n(!1);async function u(){e.value=!0;try{t.value=await i.get()}finally{e.value=!1}}async function o(s){await i.update(s),t.value=s}return{settings:t,isLoading:e,loadSettings:u,updateSettings:o}});export{r as u}; diff --git a/static/assets/settings-MHx3aXRd.js b/static/assets/settings-MHx3aXRd.js new file mode 100644 index 0000000000000000000000000000000000000000..b4343b25206b45f9b584ba8e34fb2df7ec31394e --- /dev/null +++ b/static/assets/settings-MHx3aXRd.js @@ -0,0 +1 @@ +import{g as a,C as g,h as n}from"./index-B0A0-QFY.js";const i={get:()=>a.get("/admin/settings"),update:t=>a.put("/admin/settings",t)},r=g("settings",()=>{const t=n(null),e=n(!1);async function u(){e.value=!0;try{t.value=await i.get()}finally{e.value=!1}}async function o(s){await i.update(s),t.value=s}return{settings:t,isLoading:e,loadSettings:u,updateSettings:o}});export{r as u}; diff --git a/static/assets/settings-SJhBKmRs.js b/static/assets/settings-SJhBKmRs.js new file mode 100644 index 0000000000000000000000000000000000000000..d806f4321fb430b3c97fe13abb7f845151f75409 --- /dev/null +++ b/static/assets/settings-SJhBKmRs.js @@ -0,0 +1 @@ +import{g as a,D as g,h as n}from"./index-BRM37S6x.js";const i={get:()=>a.get("/admin/settings"),update:t=>a.put("/admin/settings",t)},r=g("settings",()=>{const t=n(null),e=n(!1);async function u(){e.value=!0;try{t.value=await i.get()}finally{e.value=!1}}async function o(s){await i.update(s),t.value=s}return{settings:t,isLoading:e,loadSettings:u,updateSettings:o}});export{r as u}; diff --git a/static/assets/settings-_wJjBPdz.js b/static/assets/settings-_wJjBPdz.js new file mode 100644 index 0000000000000000000000000000000000000000..3a984ab5c990742763c1050da303061e00e4b0d8 --- /dev/null +++ b/static/assets/settings-_wJjBPdz.js @@ -0,0 +1 @@ +import{g as a,C as g,h as n}from"./index-C7QtVLks.js";const i={get:()=>a.get("/admin/settings"),update:t=>a.put("/admin/settings",t)},r=g("settings",()=>{const t=n(null),e=n(!1);async function u(){e.value=!0;try{t.value=await i.get()}finally{e.value=!1}}async function o(s){await i.update(s),t.value=s}return{settings:t,isLoading:e,loadSettings:u,updateSettings:o}});export{r as u}; diff --git a/static/assets/settings-oZBOK-or.js b/static/assets/settings-oZBOK-or.js new file mode 100644 index 0000000000000000000000000000000000000000..29f4aee03d231235bb8028c5b6c10856a7ea95b9 --- /dev/null +++ b/static/assets/settings-oZBOK-or.js @@ -0,0 +1 @@ +import{g as a,D as g,h as n}from"./index-DL4Fp3an.js";const i={get:()=>a.get("/admin/settings"),update:t=>a.put("/admin/settings",t)},r=g("settings",()=>{const t=n(null),e=n(!1);async function u(){e.value=!0;try{t.value=await i.get()}finally{e.value=!1}}async function o(s){await i.update(s),t.value=s}return{settings:t,isLoading:e,loadSettings:u,updateSettings:o}});export{r as u}; diff --git a/static/assets/settings-vReTlwTm.js b/static/assets/settings-vReTlwTm.js new file mode 100644 index 0000000000000000000000000000000000000000..c66ad0c13e98cfe589c5ec9aa0a3751dfe9d34cf --- /dev/null +++ b/static/assets/settings-vReTlwTm.js @@ -0,0 +1 @@ +import{g as a,E as g,h as n}from"./index-CM73xqTK.js";const i={get:()=>a.get("/admin/settings"),update:t=>a.put("/admin/settings",t)},r=g("settings",()=>{const t=n(null),e=n(!1);async function u(){e.value=!0;try{t.value=await i.get()}finally{e.value=!1}}async function o(s){await i.update(s),t.value=s}return{settings:t,isLoading:e,loadSettings:u,updateSettings:o}});export{r as u}; diff --git a/static/assets/useConfirmDialog-0WVRfuk6.js b/static/assets/useConfirmDialog-0WVRfuk6.js new file mode 100644 index 0000000000000000000000000000000000000000..36cebd66d0247c8ea840275e12a964691b962369 --- /dev/null +++ b/static/assets/useConfirmDialog-0WVRfuk6.js @@ -0,0 +1 @@ +import{h as l}from"./index-C7QtVLks.js";function v(){const a=l(!1),c=l("确认操作"),s=l(""),t=l("确定"),r=l("取消");let e=null;return{open:a,title:c,message:s,confirmText:t,cancelText:r,ask:n=>new Promise(u=>{c.value=n.title||"确认操作",s.value=n.message,t.value=n.confirmText||"确定",r.value=n.cancelText||"取消",a.value=!0,e=u}),confirm:()=>{a.value=!1,e?.(!0),e=null},cancel:()=>{a.value=!1,e?.(!1),e=null}}}export{v as u}; diff --git a/static/assets/useConfirmDialog-B1UvQk4s.js b/static/assets/useConfirmDialog-B1UvQk4s.js new file mode 100644 index 0000000000000000000000000000000000000000..ce174d2f13f3841071460e92b6620ab743387770 --- /dev/null +++ b/static/assets/useConfirmDialog-B1UvQk4s.js @@ -0,0 +1 @@ +import{h as l}from"./index-DDWWwh2l.js";function v(){const a=l(!1),c=l("确认操作"),s=l(""),t=l("确定"),r=l("取消");let e=null;return{open:a,title:c,message:s,confirmText:t,cancelText:r,ask:n=>new Promise(u=>{c.value=n.title||"确认操作",s.value=n.message,t.value=n.confirmText||"确定",r.value=n.cancelText||"取消",a.value=!0,e=u}),confirm:()=>{a.value=!1,e?.(!0),e=null},cancel:()=>{a.value=!1,e?.(!1),e=null}}}export{v as u}; diff --git a/static/assets/useConfirmDialog-BGx3Bidu.js b/static/assets/useConfirmDialog-BGx3Bidu.js new file mode 100644 index 0000000000000000000000000000000000000000..7afe72cbd50f43e26a23f42e103cd9a60c29e310 --- /dev/null +++ b/static/assets/useConfirmDialog-BGx3Bidu.js @@ -0,0 +1 @@ +import{h as l}from"./index-JaBfp01b.js";function v(){const a=l(!1),c=l("确认操作"),s=l(""),t=l("确定"),r=l("取消");let e=null;return{open:a,title:c,message:s,confirmText:t,cancelText:r,ask:n=>new Promise(u=>{c.value=n.title||"确认操作",s.value=n.message,t.value=n.confirmText||"确定",r.value=n.cancelText||"取消",a.value=!0,e=u}),confirm:()=>{a.value=!1,e?.(!0),e=null},cancel:()=>{a.value=!1,e?.(!1),e=null}}}export{v as u}; diff --git a/static/assets/useConfirmDialog-BNQ4DnH9.js b/static/assets/useConfirmDialog-BNQ4DnH9.js new file mode 100644 index 0000000000000000000000000000000000000000..0aebac214dfdf1780411326ea8c1e875b624a45a --- /dev/null +++ b/static/assets/useConfirmDialog-BNQ4DnH9.js @@ -0,0 +1 @@ +import{h as l}from"./index-OP3F9IRB.js";function v(){const a=l(!1),c=l("确认操作"),s=l(""),t=l("确定"),r=l("取消");let e=null;return{open:a,title:c,message:s,confirmText:t,cancelText:r,ask:n=>new Promise(u=>{c.value=n.title||"确认操作",s.value=n.message,t.value=n.confirmText||"确定",r.value=n.cancelText||"取消",a.value=!0,e=u}),confirm:()=>{a.value=!1,e?.(!0),e=null},cancel:()=>{a.value=!1,e?.(!1),e=null}}}export{v as u}; diff --git a/static/assets/useConfirmDialog-BQNp3TV9.js b/static/assets/useConfirmDialog-BQNp3TV9.js new file mode 100644 index 0000000000000000000000000000000000000000..f47740dbdcba5b61c7d7505e2e23ee95732ea339 --- /dev/null +++ b/static/assets/useConfirmDialog-BQNp3TV9.js @@ -0,0 +1 @@ +import{h as l}from"./index-BYFRJmx0.js";function v(){const a=l(!1),c=l("确认操作"),s=l(""),t=l("确定"),r=l("取消");let e=null;return{open:a,title:c,message:s,confirmText:t,cancelText:r,ask:n=>new Promise(u=>{c.value=n.title||"确认操作",s.value=n.message,t.value=n.confirmText||"确定",r.value=n.cancelText||"取消",a.value=!0,e=u}),confirm:()=>{a.value=!1,e?.(!0),e=null},cancel:()=>{a.value=!1,e?.(!1),e=null}}}export{v as u}; diff --git a/static/assets/useConfirmDialog-BS9rDomX.js b/static/assets/useConfirmDialog-BS9rDomX.js new file mode 100644 index 0000000000000000000000000000000000000000..b1abde343de360e656604096139db7ab02289407 --- /dev/null +++ b/static/assets/useConfirmDialog-BS9rDomX.js @@ -0,0 +1 @@ +import{h as l}from"./index-B0A0-QFY.js";function v(){const a=l(!1),c=l("确认操作"),s=l(""),t=l("确定"),r=l("取消");let e=null;return{open:a,title:c,message:s,confirmText:t,cancelText:r,ask:n=>new Promise(u=>{c.value=n.title||"确认操作",s.value=n.message,t.value=n.confirmText||"确定",r.value=n.cancelText||"取消",a.value=!0,e=u}),confirm:()=>{a.value=!1,e?.(!0),e=null},cancel:()=>{a.value=!1,e?.(!1),e=null}}}export{v as u}; diff --git a/static/assets/useConfirmDialog-BaiXrQSU.js b/static/assets/useConfirmDialog-BaiXrQSU.js new file mode 100644 index 0000000000000000000000000000000000000000..a5138dea25f55d62069566aba970a43c3a665214 --- /dev/null +++ b/static/assets/useConfirmDialog-BaiXrQSU.js @@ -0,0 +1 @@ +import{h as l}from"./index-BRM37S6x.js";function v(){const a=l(!1),c=l("确认操作"),s=l(""),t=l("确定"),r=l("取消");let e=null;return{open:a,title:c,message:s,confirmText:t,cancelText:r,ask:n=>new Promise(u=>{c.value=n.title||"确认操作",s.value=n.message,t.value=n.confirmText||"确定",r.value=n.cancelText||"取消",a.value=!0,e=u}),confirm:()=>{a.value=!1,e?.(!0),e=null},cancel:()=>{a.value=!1,e?.(!1),e=null}}}export{v as u}; diff --git a/static/assets/useConfirmDialog-BdcqQTU3.js b/static/assets/useConfirmDialog-BdcqQTU3.js new file mode 100644 index 0000000000000000000000000000000000000000..66b1587f6b2e6705532cd39040c2c8117d550519 --- /dev/null +++ b/static/assets/useConfirmDialog-BdcqQTU3.js @@ -0,0 +1 @@ +import{h as l}from"./index-DMWZCTlx.js";function v(){const a=l(!1),c=l("确认操作"),s=l(""),t=l("确定"),r=l("取消");let e=null;return{open:a,title:c,message:s,confirmText:t,cancelText:r,ask:n=>new Promise(u=>{c.value=n.title||"确认操作",s.value=n.message,t.value=n.confirmText||"确定",r.value=n.cancelText||"取消",a.value=!0,e=u}),confirm:()=>{a.value=!1,e?.(!0),e=null},cancel:()=>{a.value=!1,e?.(!1),e=null}}}export{v as u}; diff --git a/static/assets/useConfirmDialog-BeyA60E7.js b/static/assets/useConfirmDialog-BeyA60E7.js new file mode 100644 index 0000000000000000000000000000000000000000..a061bae67878b90bc19f2dff80c6351666409121 --- /dev/null +++ b/static/assets/useConfirmDialog-BeyA60E7.js @@ -0,0 +1 @@ +import{h as l}from"./index-CQv2QMzB.js";function v(){const a=l(!1),c=l("确认操作"),s=l(""),t=l("确定"),r=l("取消");let e=null;return{open:a,title:c,message:s,confirmText:t,cancelText:r,ask:n=>new Promise(u=>{c.value=n.title||"确认操作",s.value=n.message,t.value=n.confirmText||"确定",r.value=n.cancelText||"取消",a.value=!0,e=u}),confirm:()=>{a.value=!1,e?.(!0),e=null},cancel:()=>{a.value=!1,e?.(!1),e=null}}}export{v as u}; diff --git a/static/assets/useConfirmDialog-Bh7Fog50.js b/static/assets/useConfirmDialog-Bh7Fog50.js new file mode 100644 index 0000000000000000000000000000000000000000..2ffa2f768315d46956e0227170c888851bf49537 --- /dev/null +++ b/static/assets/useConfirmDialog-Bh7Fog50.js @@ -0,0 +1 @@ +import{h as l}from"./index-Dul9zA0O.js";function v(){const a=l(!1),c=l("确认操作"),s=l(""),t=l("确定"),r=l("取消");let e=null;return{open:a,title:c,message:s,confirmText:t,cancelText:r,ask:n=>new Promise(u=>{c.value=n.title||"确认操作",s.value=n.message,t.value=n.confirmText||"确定",r.value=n.cancelText||"取消",a.value=!0,e=u}),confirm:()=>{a.value=!1,e?.(!0),e=null},cancel:()=>{a.value=!1,e?.(!1),e=null}}}export{v as u}; diff --git a/static/assets/useConfirmDialog-BpSB-4KN.js b/static/assets/useConfirmDialog-BpSB-4KN.js new file mode 100644 index 0000000000000000000000000000000000000000..1bbd29fc9f14b1cb1fb643721d4d03cf6595d33a --- /dev/null +++ b/static/assets/useConfirmDialog-BpSB-4KN.js @@ -0,0 +1 @@ +import{h as l}from"./index-CkXB0iyt.js";function v(){const a=l(!1),c=l("确认操作"),s=l(""),t=l("确定"),r=l("取消");let e=null;return{open:a,title:c,message:s,confirmText:t,cancelText:r,ask:n=>new Promise(u=>{c.value=n.title||"确认操作",s.value=n.message,t.value=n.confirmText||"确定",r.value=n.cancelText||"取消",a.value=!0,e=u}),confirm:()=>{a.value=!1,e?.(!0),e=null},cancel:()=>{a.value=!1,e?.(!1),e=null}}}export{v as u}; diff --git a/static/assets/useConfirmDialog-CSNT_h0m.js b/static/assets/useConfirmDialog-CSNT_h0m.js new file mode 100644 index 0000000000000000000000000000000000000000..be85a98ac02f7cd0278f4dc191e10d1a140af0b6 --- /dev/null +++ b/static/assets/useConfirmDialog-CSNT_h0m.js @@ -0,0 +1 @@ +import{h as l}from"./index-Bh_hLcqi.js";function v(){const a=l(!1),c=l("确认操作"),s=l(""),t=l("确定"),r=l("取消");let e=null;return{open:a,title:c,message:s,confirmText:t,cancelText:r,ask:n=>new Promise(u=>{c.value=n.title||"确认操作",s.value=n.message,t.value=n.confirmText||"确定",r.value=n.cancelText||"取消",a.value=!0,e=u}),confirm:()=>{a.value=!1,e?.(!0),e=null},cancel:()=>{a.value=!1,e?.(!1),e=null}}}export{v as u}; diff --git a/static/assets/useConfirmDialog-CVbCTmLz.js b/static/assets/useConfirmDialog-CVbCTmLz.js new file mode 100644 index 0000000000000000000000000000000000000000..9c19593430a58478699a707da53be56cb97affc6 --- /dev/null +++ b/static/assets/useConfirmDialog-CVbCTmLz.js @@ -0,0 +1 @@ +import{h as l}from"./index-Babp7OwB.js";function v(){const a=l(!1),c=l("确认操作"),s=l(""),t=l("确定"),r=l("取消");let e=null;return{open:a,title:c,message:s,confirmText:t,cancelText:r,ask:n=>new Promise(u=>{c.value=n.title||"确认操作",s.value=n.message,t.value=n.confirmText||"确定",r.value=n.cancelText||"取消",a.value=!0,e=u}),confirm:()=>{a.value=!1,e?.(!0),e=null},cancel:()=>{a.value=!1,e?.(!1),e=null}}}export{v as u}; diff --git a/static/assets/useConfirmDialog-CdgTrrpG.js b/static/assets/useConfirmDialog-CdgTrrpG.js new file mode 100644 index 0000000000000000000000000000000000000000..8ab85e75835e1eb9fb37875582ae5efb3b8ad123 --- /dev/null +++ b/static/assets/useConfirmDialog-CdgTrrpG.js @@ -0,0 +1 @@ +import{h as l}from"./index-BCQxBeUo.js";function v(){const a=l(!1),c=l("确认操作"),s=l(""),t=l("确定"),r=l("取消");let e=null;return{open:a,title:c,message:s,confirmText:t,cancelText:r,ask:n=>new Promise(u=>{c.value=n.title||"确认操作",s.value=n.message,t.value=n.confirmText||"确定",r.value=n.cancelText||"取消",a.value=!0,e=u}),confirm:()=>{a.value=!1,e?.(!0),e=null},cancel:()=>{a.value=!1,e?.(!1),e=null}}}export{v as u}; diff --git a/static/assets/useConfirmDialog-CfZjR4ey.js b/static/assets/useConfirmDialog-CfZjR4ey.js new file mode 100644 index 0000000000000000000000000000000000000000..0d0471df25f8be8e14d0a52ea6883cc4bf69dbd9 --- /dev/null +++ b/static/assets/useConfirmDialog-CfZjR4ey.js @@ -0,0 +1 @@ +import{h as l}from"./index-DrM07qAY.js";function v(){const a=l(!1),c=l("确认操作"),s=l(""),t=l("确定"),r=l("取消");let e=null;return{open:a,title:c,message:s,confirmText:t,cancelText:r,ask:n=>new Promise(u=>{c.value=n.title||"确认操作",s.value=n.message,t.value=n.confirmText||"确定",r.value=n.cancelText||"取消",a.value=!0,e=u}),confirm:()=>{a.value=!1,e?.(!0),e=null},cancel:()=>{a.value=!1,e?.(!1),e=null}}}export{v as u}; diff --git a/static/assets/useConfirmDialog-ChXSHLDJ.js b/static/assets/useConfirmDialog-ChXSHLDJ.js new file mode 100644 index 0000000000000000000000000000000000000000..8edb875e4013c3f88376c35de37e65a0f18a4f72 --- /dev/null +++ b/static/assets/useConfirmDialog-ChXSHLDJ.js @@ -0,0 +1 @@ +import{h as l}from"./index-DhxxzIOh.js";function v(){const a=l(!1),c=l("确认操作"),s=l(""),t=l("确定"),r=l("取消");let e=null;return{open:a,title:c,message:s,confirmText:t,cancelText:r,ask:n=>new Promise(u=>{c.value=n.title||"确认操作",s.value=n.message,t.value=n.confirmText||"确定",r.value=n.cancelText||"取消",a.value=!0,e=u}),confirm:()=>{a.value=!1,e?.(!0),e=null},cancel:()=>{a.value=!1,e?.(!1),e=null}}}export{v as u}; diff --git a/static/assets/useConfirmDialog-DC2-Wjcf.js b/static/assets/useConfirmDialog-DC2-Wjcf.js new file mode 100644 index 0000000000000000000000000000000000000000..22935a73595d06d83cf5820c46347b2a1393532d --- /dev/null +++ b/static/assets/useConfirmDialog-DC2-Wjcf.js @@ -0,0 +1 @@ +import{h as l}from"./index-4tSmcUDY.js";function v(){const a=l(!1),c=l("确认操作"),s=l(""),t=l("确定"),r=l("取消");let e=null;return{open:a,title:c,message:s,confirmText:t,cancelText:r,ask:n=>new Promise(u=>{c.value=n.title||"确认操作",s.value=n.message,t.value=n.confirmText||"确定",r.value=n.cancelText||"取消",a.value=!0,e=u}),confirm:()=>{a.value=!1,e?.(!0),e=null},cancel:()=>{a.value=!1,e?.(!1),e=null}}}export{v as u}; diff --git a/static/assets/useConfirmDialog-DEfIwwMt.js b/static/assets/useConfirmDialog-DEfIwwMt.js new file mode 100644 index 0000000000000000000000000000000000000000..51c22908323712b924c7168d3574f2e2f533dba9 --- /dev/null +++ b/static/assets/useConfirmDialog-DEfIwwMt.js @@ -0,0 +1 @@ +import{h as l}from"./index-gD6QQiOu.js";function v(){const a=l(!1),c=l("确认操作"),s=l(""),t=l("确定"),r=l("取消");let e=null;return{open:a,title:c,message:s,confirmText:t,cancelText:r,ask:n=>new Promise(u=>{c.value=n.title||"确认操作",s.value=n.message,t.value=n.confirmText||"确定",r.value=n.cancelText||"取消",a.value=!0,e=u}),confirm:()=>{a.value=!1,e?.(!0),e=null},cancel:()=>{a.value=!1,e?.(!1),e=null}}}export{v as u}; diff --git a/static/assets/useConfirmDialog-DHNXQEiw.js b/static/assets/useConfirmDialog-DHNXQEiw.js new file mode 100644 index 0000000000000000000000000000000000000000..2953ae79cbdf01bfda46191bddff9fdffd066916 --- /dev/null +++ b/static/assets/useConfirmDialog-DHNXQEiw.js @@ -0,0 +1 @@ +import{h as l}from"./index-C9KL0lrc.js";function v(){const a=l(!1),c=l("确认操作"),s=l(""),t=l("确定"),r=l("取消");let e=null;return{open:a,title:c,message:s,confirmText:t,cancelText:r,ask:n=>new Promise(u=>{c.value=n.title||"确认操作",s.value=n.message,t.value=n.confirmText||"确定",r.value=n.cancelText||"取消",a.value=!0,e=u}),confirm:()=>{a.value=!1,e?.(!0),e=null},cancel:()=>{a.value=!1,e?.(!1),e=null}}}export{v as u}; diff --git a/static/assets/useConfirmDialog-DIY3VaSP.js b/static/assets/useConfirmDialog-DIY3VaSP.js new file mode 100644 index 0000000000000000000000000000000000000000..04781286a4cada0ff5ca3b6f408d104a44cb5e62 --- /dev/null +++ b/static/assets/useConfirmDialog-DIY3VaSP.js @@ -0,0 +1 @@ +import{h as l}from"./index-Bx7qSams.js";function v(){const a=l(!1),c=l("确认操作"),s=l(""),t=l("确定"),r=l("取消");let e=null;return{open:a,title:c,message:s,confirmText:t,cancelText:r,ask:n=>new Promise(u=>{c.value=n.title||"确认操作",s.value=n.message,t.value=n.confirmText||"确定",r.value=n.cancelText||"取消",a.value=!0,e=u}),confirm:()=>{a.value=!1,e?.(!0),e=null},cancel:()=>{a.value=!1,e?.(!1),e=null}}}export{v as u}; diff --git a/static/assets/useConfirmDialog-DRJ5fetN.js b/static/assets/useConfirmDialog-DRJ5fetN.js new file mode 100644 index 0000000000000000000000000000000000000000..2c98063d059a320796fa5f4e96195a1dd147ba66 --- /dev/null +++ b/static/assets/useConfirmDialog-DRJ5fetN.js @@ -0,0 +1 @@ +import{h as l}from"./index-B38eA7T4.js";function v(){const a=l(!1),c=l("确认操作"),s=l(""),t=l("确定"),r=l("取消");let e=null;return{open:a,title:c,message:s,confirmText:t,cancelText:r,ask:n=>new Promise(u=>{c.value=n.title||"确认操作",s.value=n.message,t.value=n.confirmText||"确定",r.value=n.cancelText||"取消",a.value=!0,e=u}),confirm:()=>{a.value=!1,e?.(!0),e=null},cancel:()=>{a.value=!1,e?.(!1),e=null}}}export{v as u}; diff --git a/static/assets/useConfirmDialog-Ds3wJrfU.js b/static/assets/useConfirmDialog-Ds3wJrfU.js new file mode 100644 index 0000000000000000000000000000000000000000..c8354c053b3609ae2e2b2f480dce003499238dd0 --- /dev/null +++ b/static/assets/useConfirmDialog-Ds3wJrfU.js @@ -0,0 +1 @@ +import{h as l}from"./index-BRg_yWJl.js";function v(){const a=l(!1),c=l("确认操作"),s=l(""),t=l("确定"),r=l("取消");let e=null;return{open:a,title:c,message:s,confirmText:t,cancelText:r,ask:n=>new Promise(u=>{c.value=n.title||"确认操作",s.value=n.message,t.value=n.confirmText||"确定",r.value=n.cancelText||"取消",a.value=!0,e=u}),confirm:()=>{a.value=!1,e?.(!0),e=null},cancel:()=>{a.value=!1,e?.(!1),e=null}}}export{v as u}; diff --git a/static/assets/useConfirmDialog-Dz9xMRf2.js b/static/assets/useConfirmDialog-Dz9xMRf2.js new file mode 100644 index 0000000000000000000000000000000000000000..095fc58212ab189652082e26846b1443f615e4f1 --- /dev/null +++ b/static/assets/useConfirmDialog-Dz9xMRf2.js @@ -0,0 +1 @@ +import{h as l}from"./index-Dt-VnrHx.js";function v(){const a=l(!1),c=l("确认操作"),s=l(""),t=l("确定"),r=l("取消");let e=null;return{open:a,title:c,message:s,confirmText:t,cancelText:r,ask:n=>new Promise(u=>{c.value=n.title||"确认操作",s.value=n.message,t.value=n.confirmText||"确定",r.value=n.cancelText||"取消",a.value=!0,e=u}),confirm:()=>{a.value=!1,e?.(!0),e=null},cancel:()=>{a.value=!1,e?.(!1),e=null}}}export{v as u}; diff --git a/static/assets/useConfirmDialog-GDc9JuxO.js b/static/assets/useConfirmDialog-GDc9JuxO.js new file mode 100644 index 0000000000000000000000000000000000000000..963184183990497969dc1ff1372d7434f435b051 --- /dev/null +++ b/static/assets/useConfirmDialog-GDc9JuxO.js @@ -0,0 +1 @@ +import{h as l}from"./index-Bjh6Z8Zq.js";function v(){const a=l(!1),c=l("确认操作"),s=l(""),t=l("确定"),r=l("取消");let e=null;return{open:a,title:c,message:s,confirmText:t,cancelText:r,ask:n=>new Promise(u=>{c.value=n.title||"确认操作",s.value=n.message,t.value=n.confirmText||"确定",r.value=n.cancelText||"取消",a.value=!0,e=u}),confirm:()=>{a.value=!1,e?.(!0),e=null},cancel:()=>{a.value=!1,e?.(!1),e=null}}}export{v as u}; diff --git a/static/assets/useConfirmDialog-MThy7PVA.js b/static/assets/useConfirmDialog-MThy7PVA.js new file mode 100644 index 0000000000000000000000000000000000000000..ae53ee193450c72eaa000715b3683d96ffe35a2f --- /dev/null +++ b/static/assets/useConfirmDialog-MThy7PVA.js @@ -0,0 +1 @@ +import{h as l}from"./index-DL4Fp3an.js";function v(){const a=l(!1),c=l("确认操作"),s=l(""),t=l("确定"),r=l("取消");let e=null;return{open:a,title:c,message:s,confirmText:t,cancelText:r,ask:n=>new Promise(u=>{c.value=n.title||"确认操作",s.value=n.message,t.value=n.confirmText||"确定",r.value=n.cancelText||"取消",a.value=!0,e=u}),confirm:()=>{a.value=!1,e?.(!0),e=null},cancel:()=>{a.value=!1,e?.(!1),e=null}}}export{v as u}; diff --git a/static/assets/useConfirmDialog-WjrHNzIy.js b/static/assets/useConfirmDialog-WjrHNzIy.js new file mode 100644 index 0000000000000000000000000000000000000000..57d7aaa8ebdfe25b93c0657cca0158f9d90f5e71 --- /dev/null +++ b/static/assets/useConfirmDialog-WjrHNzIy.js @@ -0,0 +1 @@ +import{h as l}from"./index-CM73xqTK.js";function v(){const a=l(!1),c=l("确认操作"),s=l(""),t=l("确定"),r=l("取消");let e=null;return{open:a,title:c,message:s,confirmText:t,cancelText:r,ask:n=>new Promise(u=>{c.value=n.title||"确认操作",s.value=n.message,t.value=n.confirmText||"确定",r.value=n.cancelText||"取消",a.value=!0,e=u}),confirm:()=>{a.value=!1,e?.(!0),e=null},cancel:()=>{a.value=!1,e?.(!1),e=null}}}export{v as u}; diff --git a/static/assets/useConfirmDialog-qOidKSEY.js b/static/assets/useConfirmDialog-qOidKSEY.js new file mode 100644 index 0000000000000000000000000000000000000000..4f38a2b8810282ef49a54c60b1f66672363d9ac7 --- /dev/null +++ b/static/assets/useConfirmDialog-qOidKSEY.js @@ -0,0 +1 @@ +import{h as l}from"./index-CDbQWWUi.js";function v(){const a=l(!1),c=l("确认操作"),s=l(""),t=l("确定"),r=l("取消");let e=null;return{open:a,title:c,message:s,confirmText:t,cancelText:r,ask:n=>new Promise(u=>{c.value=n.title||"确认操作",s.value=n.message,t.value=n.confirmText||"确定",r.value=n.cancelText||"取消",a.value=!0,e=u}),confirm:()=>{a.value=!1,e?.(!0),e=null},cancel:()=>{a.value=!1,e?.(!1),e=null}}}export{v as u}; diff --git a/static/assets/useConfirmDialog-urbmwbaE.js b/static/assets/useConfirmDialog-urbmwbaE.js new file mode 100644 index 0000000000000000000000000000000000000000..f9b92e50e1eb0b6a26c368a22b628320f8b0fa79 --- /dev/null +++ b/static/assets/useConfirmDialog-urbmwbaE.js @@ -0,0 +1 @@ +import{h as l}from"./index-BIHSVHyU.js";function v(){const a=l(!1),c=l("确认操作"),s=l(""),t=l("确定"),r=l("取消");let e=null;return{open:a,title:c,message:s,confirmText:t,cancelText:r,ask:n=>new Promise(u=>{c.value=n.title||"确认操作",s.value=n.message,t.value=n.confirmText||"确定",r.value=n.cancelText||"取消",a.value=!0,e=u}),confirm:()=>{a.value=!1,e?.(!0),e=null},cancel:()=>{a.value=!1,e?.(!1),e=null}}}export{v as u}; diff --git a/static/assets/useConfirmDialog-wyft8rf-.js b/static/assets/useConfirmDialog-wyft8rf-.js new file mode 100644 index 0000000000000000000000000000000000000000..1cadebf4709e3a008f3518a71c77a984f31aa22b --- /dev/null +++ b/static/assets/useConfirmDialog-wyft8rf-.js @@ -0,0 +1 @@ +import{h as l}from"./index-C4edAQLF.js";function v(){const a=l(!1),c=l("确认操作"),s=l(""),t=l("确定"),r=l("取消");let e=null;return{open:a,title:c,message:s,confirmText:t,cancelText:r,ask:n=>new Promise(u=>{c.value=n.title||"确认操作",s.value=n.message,t.value=n.confirmText||"确定",r.value=n.cancelText||"取消",a.value=!0,e=u}),confirm:()=>{a.value=!1,e?.(!0),e=null},cancel:()=>{a.value=!1,e?.(!1),e=null}}}export{v as u}; diff --git a/static/assets/useUptimeStatus-B1gVi6oM.js b/static/assets/useUptimeStatus-B1gVi6oM.js new file mode 100644 index 0000000000000000000000000000000000000000..56d6b3989f78c3ec8a05688c7b65665fc5e623a9 --- /dev/null +++ b/static/assets/useUptimeStatus-B1gVi6oM.js @@ -0,0 +1 @@ +import{g as d,h as r,i as c}from"./index-JaBfp01b.js";const f={uptime(t=90){return d.get("/public/uptime",{params:{days:t}})}},b=4e4,w=60,g=t=>t==="up"?"正常":t==="warn"?"注意":t==="down"?"异常":"未知",h=t=>t==="up"?"monitor-badge--up":t==="warn"?"monitor-badge--warn":t==="down"?"monitor-badge--down":"monitor-badge--unknown",v=(t=[])=>{const a=[];for(let s=0;sb,o=e.level??(l?"warn":e.success?"up":"down"),n=o==="warn"?"monitor-beat--warn":o==="up"?"monitor-beat--up":"monitor-beat--down",i=u!==null?` · 首响 ${(Math.max(u,0)/1e3).toFixed(1)}s`:"",m=e.status_code?` · HTTP ${e.status_code}`:"",p=o==="warn"?"警告":e.success?"成功":"失败";a.push({className:n,tooltip:`${e.time} · ${p}${m}${i}`})}else a.push({className:"monitor-beat--empty",tooltip:null});return a};function y(){const t=r(null),a=r(""),s=r(!1),e=c(()=>t.value?.updated_at??"");return{services:c(()=>t.value?Object.entries(t.value.services).map(([o,n])=>({key:o,name:n.name,statusLabel:g(n.status),statusClass:h(n.status),uptime:n.uptime,total:n.total,success:n.success,beats:v(n.heartbeats)})):[]),updatedAt:e,errorMessage:a,isLoading:s,refreshStatus:async()=>{if(!s.value){s.value=!0,a.value="";try{t.value=await f.uptime()}catch(o){a.value=o.message||"监控数据获取失败"}finally{s.value=!1}}}}}export{y as u}; diff --git a/static/assets/useUptimeStatus-B3toa7r0.js b/static/assets/useUptimeStatus-B3toa7r0.js new file mode 100644 index 0000000000000000000000000000000000000000..954c199f08bbbfecab13df0a66a49d1862cb4a1f --- /dev/null +++ b/static/assets/useUptimeStatus-B3toa7r0.js @@ -0,0 +1 @@ +import{g as d,h as r,i as c}from"./index-DrM07qAY.js";const f={uptime(t=90){return d.get("/public/uptime",{params:{days:t}})}},b=4e4,w=60,g=t=>t==="up"?"正常":t==="warn"?"注意":t==="down"?"异常":"未知",h=t=>t==="up"?"monitor-badge--up":t==="warn"?"monitor-badge--warn":t==="down"?"monitor-badge--down":"monitor-badge--unknown",v=(t=[])=>{const a=[];for(let s=0;sb,o=e.level??(l?"warn":e.success?"up":"down"),n=o==="warn"?"monitor-beat--warn":o==="up"?"monitor-beat--up":"monitor-beat--down",i=u!==null?` · 首响 ${(Math.max(u,0)/1e3).toFixed(1)}s`:"",m=e.status_code?` · HTTP ${e.status_code}`:"",p=o==="warn"?"警告":e.success?"成功":"失败";a.push({className:n,tooltip:`${e.time} · ${p}${m}${i}`})}else a.push({className:"monitor-beat--empty",tooltip:null});return a};function y(){const t=r(null),a=r(""),s=r(!1),e=c(()=>t.value?.updated_at??"");return{services:c(()=>t.value?Object.entries(t.value.services).map(([o,n])=>({key:o,name:n.name,statusLabel:g(n.status),statusClass:h(n.status),uptime:n.uptime,total:n.total,success:n.success,beats:v(n.heartbeats)})):[]),updatedAt:e,errorMessage:a,isLoading:s,refreshStatus:async()=>{if(!s.value){s.value=!0,a.value="";try{t.value=await f.uptime()}catch(o){a.value=o.message||"监控数据获取失败"}finally{s.value=!1}}}}}export{y as u}; diff --git a/static/assets/useUptimeStatus-B8uC70p8.js b/static/assets/useUptimeStatus-B8uC70p8.js new file mode 100644 index 0000000000000000000000000000000000000000..ef035fc01b9ce510c4591e1ea2d3b1d6f16c888d --- /dev/null +++ b/static/assets/useUptimeStatus-B8uC70p8.js @@ -0,0 +1 @@ +import{g as d,h as r,i as c}from"./index-Dul9zA0O.js";const f={uptime(t=90){return d.get("/public/uptime",{params:{days:t}})}},b=4e4,w=60,g=t=>t==="up"?"正常":t==="warn"?"注意":t==="down"?"异常":"未知",h=t=>t==="up"?"monitor-badge--up":t==="warn"?"monitor-badge--warn":t==="down"?"monitor-badge--down":"monitor-badge--unknown",v=(t=[])=>{const a=[];for(let s=0;sb,o=e.level??(l?"warn":e.success?"up":"down"),n=o==="warn"?"monitor-beat--warn":o==="up"?"monitor-beat--up":"monitor-beat--down",i=u!==null?` · 首响 ${(Math.max(u,0)/1e3).toFixed(1)}s`:"",m=e.status_code?` · HTTP ${e.status_code}`:"",p=o==="warn"?"警告":e.success?"成功":"失败";a.push({className:n,tooltip:`${e.time} · ${p}${m}${i}`})}else a.push({className:"monitor-beat--empty",tooltip:null});return a};function y(){const t=r(null),a=r(""),s=r(!1),e=c(()=>t.value?.updated_at??"");return{services:c(()=>t.value?Object.entries(t.value.services).map(([o,n])=>({key:o,name:n.name,statusLabel:g(n.status),statusClass:h(n.status),uptime:n.uptime,total:n.total,success:n.success,beats:v(n.heartbeats)})):[]),updatedAt:e,errorMessage:a,isLoading:s,refreshStatus:async()=>{if(!s.value){s.value=!0,a.value="";try{t.value=await f.uptime()}catch(o){a.value=o.message||"监控数据获取失败"}finally{s.value=!1}}}}}export{y as u}; diff --git a/static/assets/useUptimeStatus-BFxVcNn2.js b/static/assets/useUptimeStatus-BFxVcNn2.js new file mode 100644 index 0000000000000000000000000000000000000000..1f09bb78a94029451f28c701f74da923a8deebb9 --- /dev/null +++ b/static/assets/useUptimeStatus-BFxVcNn2.js @@ -0,0 +1 @@ +import{g as d,h as r,i as c}from"./index-gD6QQiOu.js";const f={uptime(t=90){return d.get("/public/uptime",{params:{days:t}})}},b=4e4,w=60,g=t=>t==="up"?"正常":t==="warn"?"注意":t==="down"?"异常":"未知",h=t=>t==="up"?"monitor-badge--up":t==="warn"?"monitor-badge--warn":t==="down"?"monitor-badge--down":"monitor-badge--unknown",v=(t=[])=>{const a=[];for(let s=0;sb,o=e.level??(l?"warn":e.success?"up":"down"),n=o==="warn"?"monitor-beat--warn":o==="up"?"monitor-beat--up":"monitor-beat--down",i=u!==null?` · 首响 ${(Math.max(u,0)/1e3).toFixed(1)}s`:"",m=e.status_code?` · HTTP ${e.status_code}`:"",p=o==="warn"?"警告":e.success?"成功":"失败";a.push({className:n,tooltip:`${e.time} · ${p}${m}${i}`})}else a.push({className:"monitor-beat--empty",tooltip:null});return a};function y(){const t=r(null),a=r(""),s=r(!1),e=c(()=>t.value?.updated_at??"");return{services:c(()=>t.value?Object.entries(t.value.services).map(([o,n])=>({key:o,name:n.name,statusLabel:g(n.status),statusClass:h(n.status),uptime:n.uptime,total:n.total,success:n.success,beats:v(n.heartbeats)})):[]),updatedAt:e,errorMessage:a,isLoading:s,refreshStatus:async()=>{if(!s.value){s.value=!0,a.value="";try{t.value=await f.uptime()}catch(o){a.value=o.message||"监控数据获取失败"}finally{s.value=!1}}}}}export{y as u}; diff --git a/static/assets/useUptimeStatus-BGiG3-jw.js b/static/assets/useUptimeStatus-BGiG3-jw.js new file mode 100644 index 0000000000000000000000000000000000000000..4393bb0d6873f65582a19eb225d84becc25a65d5 --- /dev/null +++ b/static/assets/useUptimeStatus-BGiG3-jw.js @@ -0,0 +1 @@ +import{g as d,h as r,i as c}from"./index-Bx7qSams.js";const f={uptime(t=90){return d.get("/public/uptime",{params:{days:t}})}},b=4e4,w=60,g=t=>t==="up"?"正常":t==="warn"?"注意":t==="down"?"异常":"未知",h=t=>t==="up"?"monitor-badge--up":t==="warn"?"monitor-badge--warn":t==="down"?"monitor-badge--down":"monitor-badge--unknown",v=(t=[])=>{const a=[];for(let s=0;sb,o=e.level??(l?"warn":e.success?"up":"down"),n=o==="warn"?"monitor-beat--warn":o==="up"?"monitor-beat--up":"monitor-beat--down",i=u!==null?` · 首响 ${(Math.max(u,0)/1e3).toFixed(1)}s`:"",m=e.status_code?` · HTTP ${e.status_code}`:"",p=o==="warn"?"警告":e.success?"成功":"失败";a.push({className:n,tooltip:`${e.time} · ${p}${m}${i}`})}else a.push({className:"monitor-beat--empty",tooltip:null});return a};function y(){const t=r(null),a=r(""),s=r(!1),e=c(()=>t.value?.updated_at??"");return{services:c(()=>t.value?Object.entries(t.value.services).map(([o,n])=>({key:o,name:n.name,statusLabel:g(n.status),statusClass:h(n.status),uptime:n.uptime,total:n.total,success:n.success,beats:v(n.heartbeats)})):[]),updatedAt:e,errorMessage:a,isLoading:s,refreshStatus:async()=>{if(!s.value){s.value=!0,a.value="";try{t.value=await f.uptime()}catch(o){a.value=o.message||"监控数据获取失败"}finally{s.value=!1}}}}}export{y as u}; diff --git a/static/assets/useUptimeStatus-BHHQ7xhw.js b/static/assets/useUptimeStatus-BHHQ7xhw.js new file mode 100644 index 0000000000000000000000000000000000000000..480530f6f05b0d8c4a80a511f6cd0f6eddadf0fd --- /dev/null +++ b/static/assets/useUptimeStatus-BHHQ7xhw.js @@ -0,0 +1 @@ +import{g as d,h as r,i as c}from"./index-B38eA7T4.js";const f={uptime(t=90){return d.get("/public/uptime",{params:{days:t}})}},b=4e4,w=60,g=t=>t==="up"?"正常":t==="warn"?"注意":t==="down"?"异常":"未知",h=t=>t==="up"?"monitor-badge--up":t==="warn"?"monitor-badge--warn":t==="down"?"monitor-badge--down":"monitor-badge--unknown",v=(t=[])=>{const a=[];for(let s=0;sb,o=e.level??(l?"warn":e.success?"up":"down"),n=o==="warn"?"monitor-beat--warn":o==="up"?"monitor-beat--up":"monitor-beat--down",i=u!==null?` · 首响 ${(Math.max(u,0)/1e3).toFixed(1)}s`:"",m=e.status_code?` · HTTP ${e.status_code}`:"",p=o==="warn"?"警告":e.success?"成功":"失败";a.push({className:n,tooltip:`${e.time} · ${p}${m}${i}`})}else a.push({className:"monitor-beat--empty",tooltip:null});return a};function y(){const t=r(null),a=r(""),s=r(!1),e=c(()=>t.value?.updated_at??"");return{services:c(()=>t.value?Object.entries(t.value.services).map(([o,n])=>({key:o,name:n.name,statusLabel:g(n.status),statusClass:h(n.status),uptime:n.uptime,total:n.total,success:n.success,beats:v(n.heartbeats)})):[]),updatedAt:e,errorMessage:a,isLoading:s,refreshStatus:async()=>{if(!s.value){s.value=!0,a.value="";try{t.value=await f.uptime()}catch(o){a.value=o.message||"监控数据获取失败"}finally{s.value=!1}}}}}export{y as u}; diff --git a/static/assets/useUptimeStatus-BYx1h4Ac.js b/static/assets/useUptimeStatus-BYx1h4Ac.js new file mode 100644 index 0000000000000000000000000000000000000000..ce7b42a88c9f0997be7b666b0b7d7ed476ed7f4b --- /dev/null +++ b/static/assets/useUptimeStatus-BYx1h4Ac.js @@ -0,0 +1 @@ +import{g as d,h as r,i as c}from"./index-4tSmcUDY.js";const f={uptime(t=90){return d.get("/public/uptime",{params:{days:t}})}},b=4e4,w=60,g=t=>t==="up"?"正常":t==="warn"?"注意":t==="down"?"异常":"未知",h=t=>t==="up"?"monitor-badge--up":t==="warn"?"monitor-badge--warn":t==="down"?"monitor-badge--down":"monitor-badge--unknown",v=(t=[])=>{const a=[];for(let s=0;sb,o=e.level??(l?"warn":e.success?"up":"down"),n=o==="warn"?"monitor-beat--warn":o==="up"?"monitor-beat--up":"monitor-beat--down",i=u!==null?` · 首响 ${(Math.max(u,0)/1e3).toFixed(1)}s`:"",m=e.status_code?` · HTTP ${e.status_code}`:"",p=o==="warn"?"警告":e.success?"成功":"失败";a.push({className:n,tooltip:`${e.time} · ${p}${m}${i}`})}else a.push({className:"monitor-beat--empty",tooltip:null});return a};function y(){const t=r(null),a=r(""),s=r(!1),e=c(()=>t.value?.updated_at??"");return{services:c(()=>t.value?Object.entries(t.value.services).map(([o,n])=>({key:o,name:n.name,statusLabel:g(n.status),statusClass:h(n.status),uptime:n.uptime,total:n.total,success:n.success,beats:v(n.heartbeats)})):[]),updatedAt:e,errorMessage:a,isLoading:s,refreshStatus:async()=>{if(!s.value){s.value=!0,a.value="";try{t.value=await f.uptime()}catch(o){a.value=o.message||"监控数据获取失败"}finally{s.value=!1}}}}}export{y as u}; diff --git a/static/assets/useUptimeStatus-BhuHuhDk.js b/static/assets/useUptimeStatus-BhuHuhDk.js new file mode 100644 index 0000000000000000000000000000000000000000..6fa7454acd89ba0b26041673b880c280903ccd8d --- /dev/null +++ b/static/assets/useUptimeStatus-BhuHuhDk.js @@ -0,0 +1 @@ +import{g as d,h as r,i as c}from"./index-CDbQWWUi.js";const f={uptime(t=90){return d.get("/public/uptime",{params:{days:t}})}},b=4e4,w=60,g=t=>t==="up"?"正常":t==="warn"?"注意":t==="down"?"异常":"未知",h=t=>t==="up"?"monitor-badge--up":t==="warn"?"monitor-badge--warn":t==="down"?"monitor-badge--down":"monitor-badge--unknown",v=(t=[])=>{const a=[];for(let s=0;sb,o=e.level??(l?"warn":e.success?"up":"down"),n=o==="warn"?"monitor-beat--warn":o==="up"?"monitor-beat--up":"monitor-beat--down",i=u!==null?` · 首响 ${(Math.max(u,0)/1e3).toFixed(1)}s`:"",m=e.status_code?` · HTTP ${e.status_code}`:"",p=o==="warn"?"警告":e.success?"成功":"失败";a.push({className:n,tooltip:`${e.time} · ${p}${m}${i}`})}else a.push({className:"monitor-beat--empty",tooltip:null});return a};function y(){const t=r(null),a=r(""),s=r(!1),e=c(()=>t.value?.updated_at??"");return{services:c(()=>t.value?Object.entries(t.value.services).map(([o,n])=>({key:o,name:n.name,statusLabel:g(n.status),statusClass:h(n.status),uptime:n.uptime,total:n.total,success:n.success,beats:v(n.heartbeats)})):[]),updatedAt:e,errorMessage:a,isLoading:s,refreshStatus:async()=>{if(!s.value){s.value=!0,a.value="";try{t.value=await f.uptime()}catch(o){a.value=o.message||"监控数据获取失败"}finally{s.value=!1}}}}}export{y as u}; diff --git a/static/assets/useUptimeStatus-BkCYwvB8.js b/static/assets/useUptimeStatus-BkCYwvB8.js new file mode 100644 index 0000000000000000000000000000000000000000..6eea05e93afdb33c7d7ea1b26163c3629a5f23c1 --- /dev/null +++ b/static/assets/useUptimeStatus-BkCYwvB8.js @@ -0,0 +1 @@ +import{g as d,h as r,i as c}from"./index-DDWWwh2l.js";const f={uptime(t=90){return d.get("/public/uptime",{params:{days:t}})}},b=4e4,w=60,g=t=>t==="up"?"正常":t==="warn"?"注意":t==="down"?"异常":"未知",h=t=>t==="up"?"monitor-badge--up":t==="warn"?"monitor-badge--warn":t==="down"?"monitor-badge--down":"monitor-badge--unknown",v=(t=[])=>{const a=[];for(let s=0;sb,o=e.level??(l?"warn":e.success?"up":"down"),n=o==="warn"?"monitor-beat--warn":o==="up"?"monitor-beat--up":"monitor-beat--down",i=u!==null?` · 首响 ${(Math.max(u,0)/1e3).toFixed(1)}s`:"",m=e.status_code?` · HTTP ${e.status_code}`:"",p=o==="warn"?"警告":e.success?"成功":"失败";a.push({className:n,tooltip:`${e.time} · ${p}${m}${i}`})}else a.push({className:"monitor-beat--empty",tooltip:null});return a};function y(){const t=r(null),a=r(""),s=r(!1),e=c(()=>t.value?.updated_at??"");return{services:c(()=>t.value?Object.entries(t.value.services).map(([o,n])=>({key:o,name:n.name,statusLabel:g(n.status),statusClass:h(n.status),uptime:n.uptime,total:n.total,success:n.success,beats:v(n.heartbeats)})):[]),updatedAt:e,errorMessage:a,isLoading:s,refreshStatus:async()=>{if(!s.value){s.value=!0,a.value="";try{t.value=await f.uptime()}catch(o){a.value=o.message||"监控数据获取失败"}finally{s.value=!1}}}}}export{y as u}; diff --git a/static/assets/useUptimeStatus-C3HbC8Ey.js b/static/assets/useUptimeStatus-C3HbC8Ey.js new file mode 100644 index 0000000000000000000000000000000000000000..c5de6de90ad7037939445fa484962c9f318827b6 --- /dev/null +++ b/static/assets/useUptimeStatus-C3HbC8Ey.js @@ -0,0 +1 @@ +import{g as d,h as r,i as c}from"./index-Babp7OwB.js";const f={uptime(t=90){return d.get("/public/uptime",{params:{days:t}})}},b=4e4,w=60,g=t=>t==="up"?"正常":t==="warn"?"注意":t==="down"?"异常":"未知",h=t=>t==="up"?"monitor-badge--up":t==="warn"?"monitor-badge--warn":t==="down"?"monitor-badge--down":"monitor-badge--unknown",v=(t=[])=>{const a=[];for(let s=0;sb,o=e.level??(l?"warn":e.success?"up":"down"),n=o==="warn"?"monitor-beat--warn":o==="up"?"monitor-beat--up":"monitor-beat--down",i=u!==null?` · 首响 ${(Math.max(u,0)/1e3).toFixed(1)}s`:"",m=e.status_code?` · HTTP ${e.status_code}`:"",p=o==="warn"?"警告":e.success?"成功":"失败";a.push({className:n,tooltip:`${e.time} · ${p}${m}${i}`})}else a.push({className:"monitor-beat--empty",tooltip:null});return a};function y(){const t=r(null),a=r(""),s=r(!1),e=c(()=>t.value?.updated_at??"");return{services:c(()=>t.value?Object.entries(t.value.services).map(([o,n])=>({key:o,name:n.name,statusLabel:g(n.status),statusClass:h(n.status),uptime:n.uptime,total:n.total,success:n.success,beats:v(n.heartbeats)})):[]),updatedAt:e,errorMessage:a,isLoading:s,refreshStatus:async()=>{if(!s.value){s.value=!0,a.value="";try{t.value=await f.uptime()}catch(o){a.value=o.message||"监控数据获取失败"}finally{s.value=!1}}}}}export{y as u}; diff --git a/static/assets/useUptimeStatus-CGA8KpnU.js b/static/assets/useUptimeStatus-CGA8KpnU.js new file mode 100644 index 0000000000000000000000000000000000000000..63a73993585738f9722b5b2085f97785c61a97ea --- /dev/null +++ b/static/assets/useUptimeStatus-CGA8KpnU.js @@ -0,0 +1 @@ +import{g as d,h as r,i as c}from"./index-CM73xqTK.js";const f={uptime(t=90){return d.get("/public/uptime",{params:{days:t}})}},b=4e4,w=60,g=t=>t==="up"?"正常":t==="warn"?"注意":t==="down"?"异常":"未知",h=t=>t==="up"?"monitor-badge--up":t==="warn"?"monitor-badge--warn":t==="down"?"monitor-badge--down":"monitor-badge--unknown",v=(t=[])=>{const a=[];for(let s=0;sb,o=e.level??(l?"warn":e.success?"up":"down"),n=o==="warn"?"monitor-beat--warn":o==="up"?"monitor-beat--up":"monitor-beat--down",i=u!==null?` · 首响 ${(Math.max(u,0)/1e3).toFixed(1)}s`:"",m=e.status_code?` · HTTP ${e.status_code}`:"",p=o==="warn"?"警告":e.success?"成功":"失败";a.push({className:n,tooltip:`${e.time} · ${p}${m}${i}`})}else a.push({className:"monitor-beat--empty",tooltip:null});return a};function y(){const t=r(null),a=r(""),s=r(!1),e=c(()=>t.value?.updated_at??"");return{services:c(()=>t.value?Object.entries(t.value.services).map(([o,n])=>({key:o,name:n.name,statusLabel:g(n.status),statusClass:h(n.status),uptime:n.uptime,total:n.total,success:n.success,beats:v(n.heartbeats)})):[]),updatedAt:e,errorMessage:a,isLoading:s,refreshStatus:async()=>{if(!s.value){s.value=!0,a.value="";try{t.value=await f.uptime()}catch(o){a.value=o.message||"监控数据获取失败"}finally{s.value=!1}}}}}export{y as u}; diff --git a/static/assets/useUptimeStatus-CKkLWAt7.js b/static/assets/useUptimeStatus-CKkLWAt7.js new file mode 100644 index 0000000000000000000000000000000000000000..c6e20e66426f52f8c5ffe58dabdb9292a2f86bf9 --- /dev/null +++ b/static/assets/useUptimeStatus-CKkLWAt7.js @@ -0,0 +1 @@ +import{g as d,h as r,i as c}from"./index-CkXB0iyt.js";const f={uptime(t=90){return d.get("/public/uptime",{params:{days:t}})}},b=4e4,w=60,g=t=>t==="up"?"正常":t==="warn"?"注意":t==="down"?"异常":"未知",h=t=>t==="up"?"monitor-badge--up":t==="warn"?"monitor-badge--warn":t==="down"?"monitor-badge--down":"monitor-badge--unknown",v=(t=[])=>{const a=[];for(let s=0;sb,o=e.level??(l?"warn":e.success?"up":"down"),n=o==="warn"?"monitor-beat--warn":o==="up"?"monitor-beat--up":"monitor-beat--down",i=u!==null?` · 首响 ${(Math.max(u,0)/1e3).toFixed(1)}s`:"",m=e.status_code?` · HTTP ${e.status_code}`:"",p=o==="warn"?"警告":e.success?"成功":"失败";a.push({className:n,tooltip:`${e.time} · ${p}${m}${i}`})}else a.push({className:"monitor-beat--empty",tooltip:null});return a};function y(){const t=r(null),a=r(""),s=r(!1),e=c(()=>t.value?.updated_at??"");return{services:c(()=>t.value?Object.entries(t.value.services).map(([o,n])=>({key:o,name:n.name,statusLabel:g(n.status),statusClass:h(n.status),uptime:n.uptime,total:n.total,success:n.success,beats:v(n.heartbeats)})):[]),updatedAt:e,errorMessage:a,isLoading:s,refreshStatus:async()=>{if(!s.value){s.value=!0,a.value="";try{t.value=await f.uptime()}catch(o){a.value=o.message||"监控数据获取失败"}finally{s.value=!1}}}}}export{y as u}; diff --git a/static/assets/useUptimeStatus-CXq4uCaj.js b/static/assets/useUptimeStatus-CXq4uCaj.js new file mode 100644 index 0000000000000000000000000000000000000000..804b22ecb39e9db495d7cbaa97397f95b4215166 --- /dev/null +++ b/static/assets/useUptimeStatus-CXq4uCaj.js @@ -0,0 +1 @@ +import{g as d,h as r,i as c}from"./index-DhxxzIOh.js";const f={uptime(t=90){return d.get("/public/uptime",{params:{days:t}})}},b=4e4,w=60,g=t=>t==="up"?"正常":t==="warn"?"注意":t==="down"?"异常":"未知",h=t=>t==="up"?"monitor-badge--up":t==="warn"?"monitor-badge--warn":t==="down"?"monitor-badge--down":"monitor-badge--unknown",v=(t=[])=>{const a=[];for(let s=0;sb,o=e.level??(l?"warn":e.success?"up":"down"),n=o==="warn"?"monitor-beat--warn":o==="up"?"monitor-beat--up":"monitor-beat--down",i=u!==null?` · 首响 ${(Math.max(u,0)/1e3).toFixed(1)}s`:"",m=e.status_code?` · HTTP ${e.status_code}`:"",p=o==="warn"?"警告":e.success?"成功":"失败";a.push({className:n,tooltip:`${e.time} · ${p}${m}${i}`})}else a.push({className:"monitor-beat--empty",tooltip:null});return a};function y(){const t=r(null),a=r(""),s=r(!1),e=c(()=>t.value?.updated_at??"");return{services:c(()=>t.value?Object.entries(t.value.services).map(([o,n])=>({key:o,name:n.name,statusLabel:g(n.status),statusClass:h(n.status),uptime:n.uptime,total:n.total,success:n.success,beats:v(n.heartbeats)})):[]),updatedAt:e,errorMessage:a,isLoading:s,refreshStatus:async()=>{if(!s.value){s.value=!0,a.value="";try{t.value=await f.uptime()}catch(o){a.value=o.message||"监控数据获取失败"}finally{s.value=!1}}}}}export{y as u}; diff --git a/static/assets/useUptimeStatus-CvvhfM9c.js b/static/assets/useUptimeStatus-CvvhfM9c.js new file mode 100644 index 0000000000000000000000000000000000000000..c53709a55040ee7f3c78185737593c975822ef38 --- /dev/null +++ b/static/assets/useUptimeStatus-CvvhfM9c.js @@ -0,0 +1 @@ +import{g as d,h as r,i as c}from"./index-OP3F9IRB.js";const f={uptime(t=90){return d.get("/public/uptime",{params:{days:t}})}},b=4e4,w=60,g=t=>t==="up"?"正常":t==="warn"?"注意":t==="down"?"异常":"未知",h=t=>t==="up"?"monitor-badge--up":t==="warn"?"monitor-badge--warn":t==="down"?"monitor-badge--down":"monitor-badge--unknown",v=(t=[])=>{const a=[];for(let s=0;sb,o=e.level??(l?"warn":e.success?"up":"down"),n=o==="warn"?"monitor-beat--warn":o==="up"?"monitor-beat--up":"monitor-beat--down",i=u!==null?` · 首响 ${(Math.max(u,0)/1e3).toFixed(1)}s`:"",m=e.status_code?` · HTTP ${e.status_code}`:"",p=o==="warn"?"警告":e.success?"成功":"失败";a.push({className:n,tooltip:`${e.time} · ${p}${m}${i}`})}else a.push({className:"monitor-beat--empty",tooltip:null});return a};function y(){const t=r(null),a=r(""),s=r(!1),e=c(()=>t.value?.updated_at??"");return{services:c(()=>t.value?Object.entries(t.value.services).map(([o,n])=>({key:o,name:n.name,statusLabel:g(n.status),statusClass:h(n.status),uptime:n.uptime,total:n.total,success:n.success,beats:v(n.heartbeats)})):[]),updatedAt:e,errorMessage:a,isLoading:s,refreshStatus:async()=>{if(!s.value){s.value=!0,a.value="";try{t.value=await f.uptime()}catch(o){a.value=o.message||"监控数据获取失败"}finally{s.value=!1}}}}}export{y as u}; diff --git a/static/assets/useUptimeStatus-CwWFJXPV.js b/static/assets/useUptimeStatus-CwWFJXPV.js new file mode 100644 index 0000000000000000000000000000000000000000..a56e1906e5d59df610ea6acc9ca763354b29a23b --- /dev/null +++ b/static/assets/useUptimeStatus-CwWFJXPV.js @@ -0,0 +1 @@ +import{g as d,h as r,i as c}from"./index-C4edAQLF.js";const f={uptime(t=90){return d.get("/public/uptime",{params:{days:t}})}},b=4e4,w=60,g=t=>t==="up"?"正常":t==="warn"?"注意":t==="down"?"异常":"未知",h=t=>t==="up"?"monitor-badge--up":t==="warn"?"monitor-badge--warn":t==="down"?"monitor-badge--down":"monitor-badge--unknown",v=(t=[])=>{const a=[];for(let s=0;sb,o=e.level??(l?"warn":e.success?"up":"down"),n=o==="warn"?"monitor-beat--warn":o==="up"?"monitor-beat--up":"monitor-beat--down",i=u!==null?` · 首响 ${(Math.max(u,0)/1e3).toFixed(1)}s`:"",m=e.status_code?` · HTTP ${e.status_code}`:"",p=o==="warn"?"警告":e.success?"成功":"失败";a.push({className:n,tooltip:`${e.time} · ${p}${m}${i}`})}else a.push({className:"monitor-beat--empty",tooltip:null});return a};function y(){const t=r(null),a=r(""),s=r(!1),e=c(()=>t.value?.updated_at??"");return{services:c(()=>t.value?Object.entries(t.value.services).map(([o,n])=>({key:o,name:n.name,statusLabel:g(n.status),statusClass:h(n.status),uptime:n.uptime,total:n.total,success:n.success,beats:v(n.heartbeats)})):[]),updatedAt:e,errorMessage:a,isLoading:s,refreshStatus:async()=>{if(!s.value){s.value=!0,a.value="";try{t.value=await f.uptime()}catch(o){a.value=o.message||"监控数据获取失败"}finally{s.value=!1}}}}}export{y as u}; diff --git a/static/assets/useUptimeStatus-Cxcf3uxZ.js b/static/assets/useUptimeStatus-Cxcf3uxZ.js new file mode 100644 index 0000000000000000000000000000000000000000..87c18e188376b66035ec61c67539716cc2c62128 --- /dev/null +++ b/static/assets/useUptimeStatus-Cxcf3uxZ.js @@ -0,0 +1 @@ +import{g as d,h as r,i as c}from"./index-Bjh6Z8Zq.js";const f={uptime(t=90){return d.get("/public/uptime",{params:{days:t}})}},b=4e4,w=60,g=t=>t==="up"?"正常":t==="warn"?"注意":t==="down"?"异常":"未知",h=t=>t==="up"?"monitor-badge--up":t==="warn"?"monitor-badge--warn":t==="down"?"monitor-badge--down":"monitor-badge--unknown",v=(t=[])=>{const a=[];for(let s=0;sb,o=e.level??(l?"warn":e.success?"up":"down"),n=o==="warn"?"monitor-beat--warn":o==="up"?"monitor-beat--up":"monitor-beat--down",i=u!==null?` · 首响 ${(Math.max(u,0)/1e3).toFixed(1)}s`:"",m=e.status_code?` · HTTP ${e.status_code}`:"",p=o==="warn"?"警告":e.success?"成功":"失败";a.push({className:n,tooltip:`${e.time} · ${p}${m}${i}`})}else a.push({className:"monitor-beat--empty",tooltip:null});return a};function y(){const t=r(null),a=r(""),s=r(!1),e=c(()=>t.value?.updated_at??"");return{services:c(()=>t.value?Object.entries(t.value.services).map(([o,n])=>({key:o,name:n.name,statusLabel:g(n.status),statusClass:h(n.status),uptime:n.uptime,total:n.total,success:n.success,beats:v(n.heartbeats)})):[]),updatedAt:e,errorMessage:a,isLoading:s,refreshStatus:async()=>{if(!s.value){s.value=!0,a.value="";try{t.value=await f.uptime()}catch(o){a.value=o.message||"监控数据获取失败"}finally{s.value=!1}}}}}export{y as u}; diff --git a/static/assets/useUptimeStatus-D9UpA0jd.js b/static/assets/useUptimeStatus-D9UpA0jd.js new file mode 100644 index 0000000000000000000000000000000000000000..e40656695224f8265e9966e486817f6e803f437f --- /dev/null +++ b/static/assets/useUptimeStatus-D9UpA0jd.js @@ -0,0 +1 @@ +import{g as d,h as r,i as c}from"./index-CQv2QMzB.js";const f={uptime(t=90){return d.get("/public/uptime",{params:{days:t}})}},b=4e4,w=60,g=t=>t==="up"?"正常":t==="warn"?"注意":t==="down"?"异常":"未知",h=t=>t==="up"?"monitor-badge--up":t==="warn"?"monitor-badge--warn":t==="down"?"monitor-badge--down":"monitor-badge--unknown",v=(t=[])=>{const a=[];for(let s=0;sb,o=e.level??(l?"warn":e.success?"up":"down"),n=o==="warn"?"monitor-beat--warn":o==="up"?"monitor-beat--up":"monitor-beat--down",i=u!==null?` · 首响 ${(Math.max(u,0)/1e3).toFixed(1)}s`:"",m=e.status_code?` · HTTP ${e.status_code}`:"",p=o==="warn"?"警告":e.success?"成功":"失败";a.push({className:n,tooltip:`${e.time} · ${p}${m}${i}`})}else a.push({className:"monitor-beat--empty",tooltip:null});return a};function y(){const t=r(null),a=r(""),s=r(!1),e=c(()=>t.value?.updated_at??"");return{services:c(()=>t.value?Object.entries(t.value.services).map(([o,n])=>({key:o,name:n.name,statusLabel:g(n.status),statusClass:h(n.status),uptime:n.uptime,total:n.total,success:n.success,beats:v(n.heartbeats)})):[]),updatedAt:e,errorMessage:a,isLoading:s,refreshStatus:async()=>{if(!s.value){s.value=!0,a.value="";try{t.value=await f.uptime()}catch(o){a.value=o.message||"监控数据获取失败"}finally{s.value=!1}}}}}export{y as u}; diff --git a/static/assets/useUptimeStatus-DFTiV01D.js b/static/assets/useUptimeStatus-DFTiV01D.js new file mode 100644 index 0000000000000000000000000000000000000000..a2100dfc3a12329bcea3d5876d55108c389dbac5 --- /dev/null +++ b/static/assets/useUptimeStatus-DFTiV01D.js @@ -0,0 +1 @@ +import{g as d,h as r,i as c}from"./index-Bh_hLcqi.js";const f={uptime(t=90){return d.get("/public/uptime",{params:{days:t}})}},b=4e4,w=60,g=t=>t==="up"?"正常":t==="warn"?"注意":t==="down"?"异常":"未知",h=t=>t==="up"?"monitor-badge--up":t==="warn"?"monitor-badge--warn":t==="down"?"monitor-badge--down":"monitor-badge--unknown",v=(t=[])=>{const a=[];for(let s=0;sb,o=e.level??(l?"warn":e.success?"up":"down"),n=o==="warn"?"monitor-beat--warn":o==="up"?"monitor-beat--up":"monitor-beat--down",i=u!==null?` · 首响 ${(Math.max(u,0)/1e3).toFixed(1)}s`:"",m=e.status_code?` · HTTP ${e.status_code}`:"",p=o==="warn"?"警告":e.success?"成功":"失败";a.push({className:n,tooltip:`${e.time} · ${p}${m}${i}`})}else a.push({className:"monitor-beat--empty",tooltip:null});return a};function y(){const t=r(null),a=r(""),s=r(!1),e=c(()=>t.value?.updated_at??"");return{services:c(()=>t.value?Object.entries(t.value.services).map(([o,n])=>({key:o,name:n.name,statusLabel:g(n.status),statusClass:h(n.status),uptime:n.uptime,total:n.total,success:n.success,beats:v(n.heartbeats)})):[]),updatedAt:e,errorMessage:a,isLoading:s,refreshStatus:async()=>{if(!s.value){s.value=!0,a.value="";try{t.value=await f.uptime()}catch(o){a.value=o.message||"监控数据获取失败"}finally{s.value=!1}}}}}export{y as u}; diff --git a/static/assets/useUptimeStatus-DItohNUu.js b/static/assets/useUptimeStatus-DItohNUu.js new file mode 100644 index 0000000000000000000000000000000000000000..6a69a380c72f3c7c8184122f5242ba207f837aea --- /dev/null +++ b/static/assets/useUptimeStatus-DItohNUu.js @@ -0,0 +1 @@ +import{g as d,h as r,i as c}from"./index-BRM37S6x.js";const f={uptime(t=90){return d.get("/public/uptime",{params:{days:t}})}},b=4e4,w=60,g=t=>t==="up"?"正常":t==="warn"?"注意":t==="down"?"异常":"未知",h=t=>t==="up"?"monitor-badge--up":t==="warn"?"monitor-badge--warn":t==="down"?"monitor-badge--down":"monitor-badge--unknown",v=(t=[])=>{const a=[];for(let s=0;sb,o=e.level??(l?"warn":e.success?"up":"down"),n=o==="warn"?"monitor-beat--warn":o==="up"?"monitor-beat--up":"monitor-beat--down",i=u!==null?` · 首响 ${(Math.max(u,0)/1e3).toFixed(1)}s`:"",m=e.status_code?` · HTTP ${e.status_code}`:"",p=o==="warn"?"警告":e.success?"成功":"失败";a.push({className:n,tooltip:`${e.time} · ${p}${m}${i}`})}else a.push({className:"monitor-beat--empty",tooltip:null});return a};function y(){const t=r(null),a=r(""),s=r(!1),e=c(()=>t.value?.updated_at??"");return{services:c(()=>t.value?Object.entries(t.value.services).map(([o,n])=>({key:o,name:n.name,statusLabel:g(n.status),statusClass:h(n.status),uptime:n.uptime,total:n.total,success:n.success,beats:v(n.heartbeats)})):[]),updatedAt:e,errorMessage:a,isLoading:s,refreshStatus:async()=>{if(!s.value){s.value=!0,a.value="";try{t.value=await f.uptime()}catch(o){a.value=o.message||"监控数据获取失败"}finally{s.value=!1}}}}}export{y as u}; diff --git a/static/assets/useUptimeStatus-DSC-vSsG.js b/static/assets/useUptimeStatus-DSC-vSsG.js new file mode 100644 index 0000000000000000000000000000000000000000..442f759e7f0e1052b48326667d784afdab0040b3 --- /dev/null +++ b/static/assets/useUptimeStatus-DSC-vSsG.js @@ -0,0 +1 @@ +import{g as d,h as r,i as c}from"./index-C7QtVLks.js";const f={uptime(t=90){return d.get("/public/uptime",{params:{days:t}})}},b=4e4,w=60,g=t=>t==="up"?"正常":t==="warn"?"注意":t==="down"?"异常":"未知",h=t=>t==="up"?"monitor-badge--up":t==="warn"?"monitor-badge--warn":t==="down"?"monitor-badge--down":"monitor-badge--unknown",v=(t=[])=>{const a=[];for(let s=0;sb,o=e.level??(l?"warn":e.success?"up":"down"),n=o==="warn"?"monitor-beat--warn":o==="up"?"monitor-beat--up":"monitor-beat--down",i=u!==null?` · 首响 ${(Math.max(u,0)/1e3).toFixed(1)}s`:"",m=e.status_code?` · HTTP ${e.status_code}`:"",p=o==="warn"?"警告":e.success?"成功":"失败";a.push({className:n,tooltip:`${e.time} · ${p}${m}${i}`})}else a.push({className:"monitor-beat--empty",tooltip:null});return a};function y(){const t=r(null),a=r(""),s=r(!1),e=c(()=>t.value?.updated_at??"");return{services:c(()=>t.value?Object.entries(t.value.services).map(([o,n])=>({key:o,name:n.name,statusLabel:g(n.status),statusClass:h(n.status),uptime:n.uptime,total:n.total,success:n.success,beats:v(n.heartbeats)})):[]),updatedAt:e,errorMessage:a,isLoading:s,refreshStatus:async()=>{if(!s.value){s.value=!0,a.value="";try{t.value=await f.uptime()}catch(o){a.value=o.message||"监控数据获取失败"}finally{s.value=!1}}}}}export{y as u}; diff --git a/static/assets/useUptimeStatus-DXNkogdR.js b/static/assets/useUptimeStatus-DXNkogdR.js new file mode 100644 index 0000000000000000000000000000000000000000..605daf6ef9dcbc25d76ff975b5ba95b1b1c638ee --- /dev/null +++ b/static/assets/useUptimeStatus-DXNkogdR.js @@ -0,0 +1 @@ +import{g as d,h as r,i as c}from"./index-BYFRJmx0.js";const f={uptime(t=90){return d.get("/public/uptime",{params:{days:t}})}},b=4e4,w=60,g=t=>t==="up"?"正常":t==="warn"?"注意":t==="down"?"异常":"未知",h=t=>t==="up"?"monitor-badge--up":t==="warn"?"monitor-badge--warn":t==="down"?"monitor-badge--down":"monitor-badge--unknown",v=(t=[])=>{const a=[];for(let s=0;sb,o=e.level??(l?"warn":e.success?"up":"down"),n=o==="warn"?"monitor-beat--warn":o==="up"?"monitor-beat--up":"monitor-beat--down",i=u!==null?` · 首响 ${(Math.max(u,0)/1e3).toFixed(1)}s`:"",m=e.status_code?` · HTTP ${e.status_code}`:"",p=o==="warn"?"警告":e.success?"成功":"失败";a.push({className:n,tooltip:`${e.time} · ${p}${m}${i}`})}else a.push({className:"monitor-beat--empty",tooltip:null});return a};function y(){const t=r(null),a=r(""),s=r(!1),e=c(()=>t.value?.updated_at??"");return{services:c(()=>t.value?Object.entries(t.value.services).map(([o,n])=>({key:o,name:n.name,statusLabel:g(n.status),statusClass:h(n.status),uptime:n.uptime,total:n.total,success:n.success,beats:v(n.heartbeats)})):[]),updatedAt:e,errorMessage:a,isLoading:s,refreshStatus:async()=>{if(!s.value){s.value=!0,a.value="";try{t.value=await f.uptime()}catch(o){a.value=o.message||"监控数据获取失败"}finally{s.value=!1}}}}}export{y as u}; diff --git a/static/assets/useUptimeStatus-D_PU76s5.js b/static/assets/useUptimeStatus-D_PU76s5.js new file mode 100644 index 0000000000000000000000000000000000000000..31525fd241de1b022571cb70d1bf57379a26e692 --- /dev/null +++ b/static/assets/useUptimeStatus-D_PU76s5.js @@ -0,0 +1 @@ +import{g as d,h as r,i as c}from"./index-B0A0-QFY.js";const f={uptime(t=90){return d.get("/public/uptime",{params:{days:t}})}},b=4e4,w=60,g=t=>t==="up"?"正常":t==="warn"?"注意":t==="down"?"异常":"未知",h=t=>t==="up"?"monitor-badge--up":t==="warn"?"monitor-badge--warn":t==="down"?"monitor-badge--down":"monitor-badge--unknown",v=(t=[])=>{const a=[];for(let s=0;sb,o=e.level??(l?"warn":e.success?"up":"down"),n=o==="warn"?"monitor-beat--warn":o==="up"?"monitor-beat--up":"monitor-beat--down",i=u!==null?` · 首响 ${(Math.max(u,0)/1e3).toFixed(1)}s`:"",m=e.status_code?` · HTTP ${e.status_code}`:"",p=o==="warn"?"警告":e.success?"成功":"失败";a.push({className:n,tooltip:`${e.time} · ${p}${m}${i}`})}else a.push({className:"monitor-beat--empty",tooltip:null});return a};function y(){const t=r(null),a=r(""),s=r(!1),e=c(()=>t.value?.updated_at??"");return{services:c(()=>t.value?Object.entries(t.value.services).map(([o,n])=>({key:o,name:n.name,statusLabel:g(n.status),statusClass:h(n.status),uptime:n.uptime,total:n.total,success:n.success,beats:v(n.heartbeats)})):[]),updatedAt:e,errorMessage:a,isLoading:s,refreshStatus:async()=>{if(!s.value){s.value=!0,a.value="";try{t.value=await f.uptime()}catch(o){a.value=o.message||"监控数据获取失败"}finally{s.value=!1}}}}}export{y as u}; diff --git a/static/assets/useUptimeStatus-DidGh3C9.js b/static/assets/useUptimeStatus-DidGh3C9.js new file mode 100644 index 0000000000000000000000000000000000000000..1e47dd42edacbd30edb8b5fc2d73f00bcaaf82da --- /dev/null +++ b/static/assets/useUptimeStatus-DidGh3C9.js @@ -0,0 +1 @@ +import{g as d,h as r,i as c}from"./index-C9KL0lrc.js";const f={uptime(t=90){return d.get("/public/uptime",{params:{days:t}})}},b=4e4,w=60,g=t=>t==="up"?"正常":t==="warn"?"注意":t==="down"?"异常":"未知",h=t=>t==="up"?"monitor-badge--up":t==="warn"?"monitor-badge--warn":t==="down"?"monitor-badge--down":"monitor-badge--unknown",v=(t=[])=>{const a=[];for(let s=0;sb,o=e.level??(l?"warn":e.success?"up":"down"),n=o==="warn"?"monitor-beat--warn":o==="up"?"monitor-beat--up":"monitor-beat--down",i=u!==null?` · 首响 ${(Math.max(u,0)/1e3).toFixed(1)}s`:"",m=e.status_code?` · HTTP ${e.status_code}`:"",p=o==="warn"?"警告":e.success?"成功":"失败";a.push({className:n,tooltip:`${e.time} · ${p}${m}${i}`})}else a.push({className:"monitor-beat--empty",tooltip:null});return a};function y(){const t=r(null),a=r(""),s=r(!1),e=c(()=>t.value?.updated_at??"");return{services:c(()=>t.value?Object.entries(t.value.services).map(([o,n])=>({key:o,name:n.name,statusLabel:g(n.status),statusClass:h(n.status),uptime:n.uptime,total:n.total,success:n.success,beats:v(n.heartbeats)})):[]),updatedAt:e,errorMessage:a,isLoading:s,refreshStatus:async()=>{if(!s.value){s.value=!0,a.value="";try{t.value=await f.uptime()}catch(o){a.value=o.message||"监控数据获取失败"}finally{s.value=!1}}}}}export{y as u}; diff --git a/static/assets/useUptimeStatus-DtehOXTb.js b/static/assets/useUptimeStatus-DtehOXTb.js new file mode 100644 index 0000000000000000000000000000000000000000..16a0a00f8590a85e4a92263d3dff8c3d4a7945b4 --- /dev/null +++ b/static/assets/useUptimeStatus-DtehOXTb.js @@ -0,0 +1 @@ +import{g as d,h as r,i as c}from"./index-DMWZCTlx.js";const f={uptime(t=90){return d.get("/public/uptime",{params:{days:t}})}},b=4e4,w=60,g=t=>t==="up"?"正常":t==="warn"?"注意":t==="down"?"异常":"未知",h=t=>t==="up"?"monitor-badge--up":t==="warn"?"monitor-badge--warn":t==="down"?"monitor-badge--down":"monitor-badge--unknown",v=(t=[])=>{const a=[];for(let s=0;sb,o=e.level??(l?"warn":e.success?"up":"down"),n=o==="warn"?"monitor-beat--warn":o==="up"?"monitor-beat--up":"monitor-beat--down",i=u!==null?` · 首响 ${(Math.max(u,0)/1e3).toFixed(1)}s`:"",m=e.status_code?` · HTTP ${e.status_code}`:"",p=o==="warn"?"警告":e.success?"成功":"失败";a.push({className:n,tooltip:`${e.time} · ${p}${m}${i}`})}else a.push({className:"monitor-beat--empty",tooltip:null});return a};function y(){const t=r(null),a=r(""),s=r(!1),e=c(()=>t.value?.updated_at??"");return{services:c(()=>t.value?Object.entries(t.value.services).map(([o,n])=>({key:o,name:n.name,statusLabel:g(n.status),statusClass:h(n.status),uptime:n.uptime,total:n.total,success:n.success,beats:v(n.heartbeats)})):[]),updatedAt:e,errorMessage:a,isLoading:s,refreshStatus:async()=>{if(!s.value){s.value=!0,a.value="";try{t.value=await f.uptime()}catch(o){a.value=o.message||"监控数据获取失败"}finally{s.value=!1}}}}}export{y as u}; diff --git a/static/assets/useUptimeStatus-H8dNuGpH.js b/static/assets/useUptimeStatus-H8dNuGpH.js new file mode 100644 index 0000000000000000000000000000000000000000..ee7dd492c749f283e6defe162e04ee80489db45f --- /dev/null +++ b/static/assets/useUptimeStatus-H8dNuGpH.js @@ -0,0 +1 @@ +import{g as d,h as r,i as c}from"./index-DL4Fp3an.js";const f={uptime(t=90){return d.get("/public/uptime",{params:{days:t}})}},b=4e4,w=60,g=t=>t==="up"?"正常":t==="warn"?"注意":t==="down"?"异常":"未知",h=t=>t==="up"?"monitor-badge--up":t==="warn"?"monitor-badge--warn":t==="down"?"monitor-badge--down":"monitor-badge--unknown",v=(t=[])=>{const a=[];for(let s=0;sb,o=e.level??(l?"warn":e.success?"up":"down"),n=o==="warn"?"monitor-beat--warn":o==="up"?"monitor-beat--up":"monitor-beat--down",i=u!==null?` · 首响 ${(Math.max(u,0)/1e3).toFixed(1)}s`:"",m=e.status_code?` · HTTP ${e.status_code}`:"",p=o==="warn"?"警告":e.success?"成功":"失败";a.push({className:n,tooltip:`${e.time} · ${p}${m}${i}`})}else a.push({className:"monitor-beat--empty",tooltip:null});return a};function y(){const t=r(null),a=r(""),s=r(!1),e=c(()=>t.value?.updated_at??"");return{services:c(()=>t.value?Object.entries(t.value.services).map(([o,n])=>({key:o,name:n.name,statusLabel:g(n.status),statusClass:h(n.status),uptime:n.uptime,total:n.total,success:n.success,beats:v(n.heartbeats)})):[]),updatedAt:e,errorMessage:a,isLoading:s,refreshStatus:async()=>{if(!s.value){s.value=!0,a.value="";try{t.value=await f.uptime()}catch(o){a.value=o.message||"监控数据获取失败"}finally{s.value=!1}}}}}export{y as u}; diff --git a/static/assets/useUptimeStatus-W1m6nNB0.js b/static/assets/useUptimeStatus-W1m6nNB0.js new file mode 100644 index 0000000000000000000000000000000000000000..d034183759438885522b83edbfa9898d2713f62f --- /dev/null +++ b/static/assets/useUptimeStatus-W1m6nNB0.js @@ -0,0 +1 @@ +import{g as d,h as r,i as c}from"./index-BCQxBeUo.js";const f={uptime(t=90){return d.get("/public/uptime",{params:{days:t}})}},b=4e4,w=60,g=t=>t==="up"?"正常":t==="warn"?"注意":t==="down"?"异常":"未知",h=t=>t==="up"?"monitor-badge--up":t==="warn"?"monitor-badge--warn":t==="down"?"monitor-badge--down":"monitor-badge--unknown",v=(t=[])=>{const a=[];for(let s=0;sb,o=e.level??(l?"warn":e.success?"up":"down"),n=o==="warn"?"monitor-beat--warn":o==="up"?"monitor-beat--up":"monitor-beat--down",i=u!==null?` · 首响 ${(Math.max(u,0)/1e3).toFixed(1)}s`:"",m=e.status_code?` · HTTP ${e.status_code}`:"",p=o==="warn"?"警告":e.success?"成功":"失败";a.push({className:n,tooltip:`${e.time} · ${p}${m}${i}`})}else a.push({className:"monitor-beat--empty",tooltip:null});return a};function y(){const t=r(null),a=r(""),s=r(!1),e=c(()=>t.value?.updated_at??"");return{services:c(()=>t.value?Object.entries(t.value.services).map(([o,n])=>({key:o,name:n.name,statusLabel:g(n.status),statusClass:h(n.status),uptime:n.uptime,total:n.total,success:n.success,beats:v(n.heartbeats)})):[]),updatedAt:e,errorMessage:a,isLoading:s,refreshStatus:async()=>{if(!s.value){s.value=!0,a.value="";try{t.value=await f.uptime()}catch(o){a.value=o.message||"监控数据获取失败"}finally{s.value=!1}}}}}export{y as u}; diff --git a/static/assets/useUptimeStatus-WNjzrwnM.js b/static/assets/useUptimeStatus-WNjzrwnM.js new file mode 100644 index 0000000000000000000000000000000000000000..c195485a11174b85d8a6d160cf86ef17538d3ff5 --- /dev/null +++ b/static/assets/useUptimeStatus-WNjzrwnM.js @@ -0,0 +1 @@ +import{g as d,h as r,i as c}from"./index-Dt-VnrHx.js";const f={uptime(t=90){return d.get("/public/uptime",{params:{days:t}})}},b=4e4,w=60,g=t=>t==="up"?"正常":t==="warn"?"注意":t==="down"?"异常":"未知",h=t=>t==="up"?"monitor-badge--up":t==="warn"?"monitor-badge--warn":t==="down"?"monitor-badge--down":"monitor-badge--unknown",v=(t=[])=>{const a=[];for(let s=0;sb,o=e.level??(l?"warn":e.success?"up":"down"),n=o==="warn"?"monitor-beat--warn":o==="up"?"monitor-beat--up":"monitor-beat--down",i=u!==null?` · 首响 ${(Math.max(u,0)/1e3).toFixed(1)}s`:"",m=e.status_code?` · HTTP ${e.status_code}`:"",p=o==="warn"?"警告":e.success?"成功":"失败";a.push({className:n,tooltip:`${e.time} · ${p}${m}${i}`})}else a.push({className:"monitor-beat--empty",tooltip:null});return a};function y(){const t=r(null),a=r(""),s=r(!1),e=c(()=>t.value?.updated_at??"");return{services:c(()=>t.value?Object.entries(t.value.services).map(([o,n])=>({key:o,name:n.name,statusLabel:g(n.status),statusClass:h(n.status),uptime:n.uptime,total:n.total,success:n.success,beats:v(n.heartbeats)})):[]),updatedAt:e,errorMessage:a,isLoading:s,refreshStatus:async()=>{if(!s.value){s.value=!0,a.value="";try{t.value=await f.uptime()}catch(o){a.value=o.message||"监控数据获取失败"}finally{s.value=!1}}}}}export{y as u}; diff --git a/static/assets/useUptimeStatus-rRrvndbO.js b/static/assets/useUptimeStatus-rRrvndbO.js new file mode 100644 index 0000000000000000000000000000000000000000..aa33c71ec838d595965cef8ddec713b91915b2f3 --- /dev/null +++ b/static/assets/useUptimeStatus-rRrvndbO.js @@ -0,0 +1 @@ +import{g as d,h as r,i as c}from"./index-BIHSVHyU.js";const f={uptime(t=90){return d.get("/public/uptime",{params:{days:t}})}},b=4e4,w=60,g=t=>t==="up"?"正常":t==="warn"?"注意":t==="down"?"异常":"未知",h=t=>t==="up"?"monitor-badge--up":t==="warn"?"monitor-badge--warn":t==="down"?"monitor-badge--down":"monitor-badge--unknown",v=(t=[])=>{const a=[];for(let s=0;sb,o=e.level??(l?"warn":e.success?"up":"down"),n=o==="warn"?"monitor-beat--warn":o==="up"?"monitor-beat--up":"monitor-beat--down",i=u!==null?` · 首响 ${(Math.max(u,0)/1e3).toFixed(1)}s`:"",m=e.status_code?` · HTTP ${e.status_code}`:"",p=o==="warn"?"警告":e.success?"成功":"失败";a.push({className:n,tooltip:`${e.time} · ${p}${m}${i}`})}else a.push({className:"monitor-beat--empty",tooltip:null});return a};function y(){const t=r(null),a=r(""),s=r(!1),e=c(()=>t.value?.updated_at??"");return{services:c(()=>t.value?Object.entries(t.value.services).map(([o,n])=>({key:o,name:n.name,statusLabel:g(n.status),statusClass:h(n.status),uptime:n.uptime,total:n.total,success:n.success,beats:v(n.heartbeats)})):[]),updatedAt:e,errorMessage:a,isLoading:s,refreshStatus:async()=>{if(!s.value){s.value=!0,a.value="";try{t.value=await f.uptime()}catch(o){a.value=o.message||"监控数据获取失败"}finally{s.value=!1}}}}}export{y as u}; diff --git a/static/assets/useUptimeStatus-yHoqpTV5.js b/static/assets/useUptimeStatus-yHoqpTV5.js new file mode 100644 index 0000000000000000000000000000000000000000..89f5dcea4448c3a353551a21853e786122998372 --- /dev/null +++ b/static/assets/useUptimeStatus-yHoqpTV5.js @@ -0,0 +1 @@ +import{g as d,h as r,i as c}from"./index-BRg_yWJl.js";const f={uptime(t=90){return d.get("/public/uptime",{params:{days:t}})}},b=4e4,w=60,g=t=>t==="up"?"正常":t==="warn"?"注意":t==="down"?"异常":"未知",h=t=>t==="up"?"monitor-badge--up":t==="warn"?"monitor-badge--warn":t==="down"?"monitor-badge--down":"monitor-badge--unknown",v=(t=[])=>{const a=[];for(let s=0;sb,o=e.level??(l?"warn":e.success?"up":"down"),n=o==="warn"?"monitor-beat--warn":o==="up"?"monitor-beat--up":"monitor-beat--down",i=u!==null?` · 首响 ${(Math.max(u,0)/1e3).toFixed(1)}s`:"",m=e.status_code?` · HTTP ${e.status_code}`:"",p=o==="warn"?"警告":e.success?"成功":"失败";a.push({className:n,tooltip:`${e.time} · ${p}${m}${i}`})}else a.push({className:"monitor-beat--empty",tooltip:null});return a};function y(){const t=r(null),a=r(""),s=r(!1),e=c(()=>t.value?.updated_at??"");return{services:c(()=>t.value?Object.entries(t.value.services).map(([o,n])=>({key:o,name:n.name,statusLabel:g(n.status),statusClass:h(n.status),uptime:n.uptime,total:n.total,success:n.success,beats:v(n.heartbeats)})):[]),updatedAt:e,errorMessage:a,isLoading:s,refreshStatus:async()=>{if(!s.value){s.value=!0,a.value="";try{t.value=await f.uptime()}catch(o){a.value=o.message||"监控数据获取失败"}finally{s.value=!1}}}}}export{y as u};