@surenkid/acli-hub 1.0.9 → 1.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/package.json +1 -1
- package/server/public/assets/{PreviewDialog-Dc7jb9yA.js → PreviewDialog-Ci4fyUxf.js} +1 -1
- package/server/public/assets/index-4pGJ-wDO.js +17 -0
- package/server/public/assets/{index-xnjgJSWe.css → index-yuyx9-SN.css} +1 -1
- package/server/public/index.html +2 -2
- package/server/public/assets/index-DlR3k_jH.js +0 -17
package/README.md
CHANGED
|
@@ -24,7 +24,7 @@ ACLI Hub(AI CLI Hub)是一个面向 AI CLI 工具的 Web 工作台。它基
|
|
|
24
24
|
- **📡 CLI 实时状态** — 侧栏直接显示每个 CLI 当前正在执行的任务(读取终端标题,无需轮询界面)
|
|
25
25
|
- **🏷 会话备注** — 给会话设置中文别名,一眼认出哪个窗口在干什么
|
|
26
26
|
- **📁 文件管理器** — 按会话固定项目根:目录树浏览、文件预览、重命名、移动、下载、文件夹压缩 ZIP
|
|
27
|
-
- **📤 多文件上传** —
|
|
27
|
+
- **📤 多文件上传** — 点 Upload、拖入文件或在终端粘贴图片/文件,上传到项目 `temp/`;实时进度、可取消,一键复制落盘路径贴给 agent
|
|
28
28
|
- **👀 全能预览** — 源码语法高亮、Markdown、HTML(沙箱隔离)、图片、音视频、PDF、DOCX、CSV/TSV 表格
|
|
29
29
|
- **🖱 右键复制粘贴 + 触屏滚动** — 桌面与移动一致的终端操作体验
|
|
30
30
|
- **🔐 密码登录** — Cookie 会话 + 限流,配置 HTTPS 反代后可安全暴露到公网
|
|
@@ -106,6 +106,8 @@ npm run build && npm start
|
|
|
106
106
|
|
|
107
107
|
侧栏「文件」面板和终端工具条的 Upload 首次使用时,会将当前 shell 目录固定为该会话的项目根;之后 `cd` 不会改变文件树,点击 📍 可重新固定。文件默认上传到根目录的 `temp/`,可在项目 `.gitignore` 中加入 `temp/`。取消上传会保留已完成的文件;同名上传和 ZIP 会自动加后缀。删除前始终确认,macOS 移到 `~/.Trash/`,其他平台永久删除。
|
|
108
108
|
|
|
109
|
+
也可将本地文件拖入右侧终端区域,或聚焦终端后按 `Ctrl+V`(macOS:`⌘V`)粘贴图片/文件;能否粘贴系统文件管理器中复制的文件,取决于浏览器是否提供实际文件数据。纯文字仍按原方式粘贴,有文件时只上传文件,不同时输入附带文字。上传完成后手动「复制路径」,不会自动向终端输入内容;工具栏/右键菜单的 Paste 仍只粘贴文字。暂不支持文件夹和并行上传批次。
|
|
110
|
+
|
|
109
111
|
预览支持源码高亮、Markdown、HTML、图片、音视频、PDF、DOCX、CSV/TSV。文本预览上限为 2 MiB,DOCX 为 10 MiB;更大文件可下载查看。
|
|
110
112
|
|
|
111
113
|
### 🔐 公网暴露
|
package/package.json
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/core-DchA7RCO.js","assets/_commonjsHelpers-Cpj98o6Y.js","assets/mammoth.browser-C_M0wsD2.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{e as Ve,_ as s,a as Oe,u as je,r as f,p as ye,w as $e,o as Ce,b as Me,c as r,d as Se,f as n,g as o,h as g,t as d,i as ie,j as ne,k as ue,l as Z,F as P,G as qe,n as ge,m as we,q as Be,T as He,s as be,v as ze,x as ee,y as Fe,z as Ge,A as ke,B as Ne,C as Ue}from"./index-DlR3k_jH.js";const Ke=50,We=16*1024*1024;function Xe(E){const m=E.document;if(!m)return 0;let u=(m.text?.length||0)+(m.highlighted?.length||0)+(m.rendered?.length||0)+(E.diff?.patch?.length||0);for(const p of m.rows||[])for(const y of p)u+=String(y).length;return u*2}function Je(E,m,{maxEntries:u=Ke,maxBytes:p=We}={}){const y=[...E,{...m,bytes:Xe(m)}].slice(-u);let L=p;for(let _=y.length-1;_>=0;_--){const D=y[_];D.bytes<=L?L-=D.bytes:y[_]={...D,document:null,diff:null,diffLoaded:!1,bytes:0}}return y}const Ye={javascript:()=>s(()=>import("./javascript-DUNaicwC.js"),[]),typescript:()=>s(()=>import("./typescript-5pldp2kO.js"),[]),xml:()=>s(()=>import("./xml-FcirFJJ2.js"),[]),css:()=>s(()=>import("./css-AVCICof-.js"),[]),scss:()=>s(()=>import("./scss-UZl0Ag-9.js"),[]),json:()=>s(()=>import("./json-DdsocbVI.js"),[]),python:()=>s(()=>import("./python-CXf-_D6G.js"),[]),bash:()=>s(()=>import("./bash-I8pq0VWm.js"),[]),yaml:()=>s(()=>import("./yaml-drsDnIKT.js"),[]),ini:()=>s(()=>import("./ini-B3BVgEsG.js"),[]),markdown:()=>s(()=>import("./markdown-fzgiUVUV.js"),[]),go:()=>s(()=>import("./go-4VmnRw3R.js"),[]),rust:()=>s(()=>import("./rust-DsMvwcVK.js"),[]),java:()=>s(()=>import("./java-DUnkFH8J.js"),[]),c:()=>s(()=>import("./c-D87IyN5J.js"),[]),cpp:()=>s(()=>import("./cpp-BFCWVspj.js"),[]),csharp:()=>s(()=>import("./csharp-D-6syieo.js"),[]),ruby:()=>s(()=>import("./ruby-CcVTKuP4.js"),[]),php:()=>s(()=>import("./php-kjAv1gW4.js"),[]),sql:()=>s(()=>import("./sql-BC88IN-V.js"),[]),swift:()=>s(()=>import("./swift-jkyvy0ac.js"),[]),kotlin:()=>s(()=>import("./kotlin-Za0-TyUR.js"),[]),lua:()=>s(()=>import("./lua-CD7o2Ci6.js"),[]),perl:()=>s(()=>import("./perl-BWtAWCfC.js"),[]),r:()=>s(()=>import("./r-DWz4c2Y4.js"),[]),dart:()=>s(()=>import("./dart-DbQNmsdu.js"),[]),dockerfile:()=>s(()=>import("./dockerfile-Co-AyC30.js"),[]),makefile:()=>s(()=>import("./makefile-BoJC05FH.js"),[]),diff:()=>s(()=>import("./diff-BLTryEFx.js"),[]),plaintext:()=>s(()=>import("./plaintext-CPM70vnn.js"),[])},Qe={js:"javascript",mjs:"javascript",cjs:"javascript",jsx:"javascript",ts:"typescript",tsx:"typescript",vue:"xml",svelte:"xml",html:"xml",htm:"xml",xml:"xml",svg:"xml",css:"css",scss:"scss",sass:"scss",less:"css",json:"json",jsonc:"json",py:"python",sh:"bash",zsh:"bash",bash:"bash",fish:"bash",yml:"yaml",yaml:"yaml",toml:"ini",ini:"ini",cfg:"ini",conf:"ini",md:"markdown",markdown:"markdown",go:"go",rs:"rust",java:"java",c:"c",h:"c",cpp:"cpp",cc:"cpp",hpp:"cpp",cs:"csharp",rb:"ruby",php:"php",sql:"sql",swift:"swift",kt:"kotlin",kts:"kotlin",lua:"lua",pl:"perl",r:"r",dart:"dart",diff:"diff",patch:"diff"};async function Ze(E,m){if(new TextEncoder().encode(E).length>200*1024)return null;const u=m.toLowerCase(),p=u==="dockerfile"?"dockerfile":u==="makefile"?"makefile":Qe[Ve(m)];if(!p)return null;const[{default:y},{default:L}]=await Promise.all([s(()=>import("./core-DchA7RCO.js"),__vite__mapDeps([0,1])),Ye[p]()]);return y.getLanguage(p)||y.registerLanguage(p,L),y.highlight(E,{language:p,ignoreIllegals:!0}).value}const et={class:"preview-layout"},tt={class:"preview-header"},at=["disabled"],lt={class:"preview-heading"},rt={id:"preview-title"},ot=["title"],st={key:1,class:"change-summary",role:"status"},it=["disabled"],nt=["href","download"],ut=["id","aria-selected","tabindex","disabled","onClick"],ct={key:0,class:"change-summary"},dt={key:0,class:"navigation-error",role:"alert"},vt={key:1,class:"navigation-error",role:"status"},ft=["aria-labelledby","aria-busy"],pt={key:0,class:"preview-message",role:"status"},_t={class:"diff-baseline"},ht={key:0},mt={key:0,class:"navigation-error"},yt={key:1,class:"preview-message",role:"status"},gt={key:2,class:"preview-message error",role:"alert"},wt={key:0,class:"preview-message"},bt={key:1,class:"diff-lines","aria-label":"Git 文件差异"},kt={class:"line-number"},Et={class:"line-number"},Tt={class:"diff-sign"},Lt={class:"diff-text"},Dt={key:2,class:"preview-message error",role:"alert"},xt={key:0,class:"preview-note"},At={key:1,class:"preview-note"},Rt={class:"source"},Pt=["innerHTML"],It={key:1},Vt=["innerHTML"],Ot=["srcdoc","title"],jt=["src","alt"],$t=["src"],Ct=["src"],Mt=["src","title"],St={key:6,class:"table-preview"},qt={class:"preview-note"},Bt={class:"row-number"},Ht={key:7,class:"preview-message"},zt={__name:"PreviewDialog",props:{entry:{type:Object,required:!0},root:{type:String,required:!0},changes:{type:Array,default:()=>[]}},emits:["close","git-status"],setup(E,{emit:m}){const u=E,p=m,y=je(),L=f(null),_=f(null),D=f(null),F=f(null),l=f({entry:u.entry,type:ye(u.entry.name),isText:!1,rows:[]}),G=f(!1),b=f(!1),I=f(""),V=f(""),U=f(""),v=f("preview"),x=f(u.changes),M=ze([]),A=f(""),S=f(1e3),q=f(null),O=f(!1),B=f(""),j=f(!1),H=ee(()=>x.value.find(t=>t.path===l.value.entry.path)),Ee=ee(()=>!!H.value||l.value.entry.virtual||j.value),ce=ee(()=>Fe(q.value?.patch||"")),$=ee(()=>[...l.value.entry.virtual?[]:[{id:"preview",label:"预览"}],...l.value.isText?[{id:"source",label:"源码"}]:[],...Ee.value?[{id:"diff",label:"Git Diff"}]:[]]);let te=null,K=null,k=0,de,W={left:0,top:0},X=null;function ae(t,a){return y.apiRequest(t,{signal:a}).then(e=>e.json())}function le(t){return new URLSearchParams(t)}async function ve(t,a,e){if(t.size>e)throw new Error(`预览上限为 ${ne(e)},请下载文件查看。`);const T=(await y.apiRequest(ue(t.path,!1,u.root),{signal:a})).body.getReader(),i=[];let w=0;try{for(;;){const{done:z,value:Y}=await T.read();if(z)break;if(w+=Y.length,w>e)throw new Error(`预览上限为 ${ne(e)},请下载文件查看。`);i.push(Y)}}finally{await T.cancel().catch(()=>{})}const h=new Uint8Array(w);let R=0;for(const z of i)h.set(z,R),R+=z.length;return h}async function Te(t,a){const e={entry:t,type:ye(t.name),text:"",highlighted:null,rendered:"",rows:[],isText:!1,tableFallback:!1,token:globalThis.crypto?.randomUUID?.()||`${Date.now()}-${Math.random()}`,url:`${ue(t.path,!1,u.root)}&revision=${Date.now()}`};if(t.virtual)return e;if(e.type==="docx"){const c=await ve(t,a,10485760),{default:T}=await s(async()=>{const{default:w}=await import("./mammoth.browser-C_M0wsD2.js").then(h=>h.m);return{default:w}},__vite__mapDeps([2,1])),i=await T.convertToHtml({arrayBuffer:c.buffer},{externalFileAccess:!1});e.rendered=ke(i.value,{linkToken:e.token})}else if(["text","markdown","html","table"].includes(e.type)){if(e.text=new TextDecoder().decode(await ve(t,a,2*1024*1024)),e.text.includes("\0"))return e.type="unsupported",e;if(e.isText=!0,e.highlighted=await Ze(e.text,t.name).catch(()=>null),e.type==="html")e.rendered=ke(e.text,{linkToken:e.token});else if(e.type==="markdown")e.rendered=await Ne(e.text,{path:t.path,root:u.root});else if(e.type==="table"){const c=await Ue(e.text,t.name);c?e.rows=c:(e.tableFallback=!0,e.type="text")}}return e}async function re(){K?.abort();const t=new AbortController;K=t;const a=k;O.value=!0,B.value="";try{const e=await ae(`/api/git/diff?${le({root:u.root,path:l.value.entry.path})}`,t.signal);if(t.signal.aborted||a!==k)return;q.value=e,j.value=!0,x.value=x.value.filter(c=>c.path!==l.value.entry.path),e.change&&(x.value=[...x.value,e.change])}catch(e){!t.signal.aborted&&a===k&&(B.value=e.message)}finally{!t.signal.aborted&&a===k&&(O.value=!1)}}async function J(t,{lookup:a=!t.virtual,refresh:e=!1,push:c=!1,anchor:T="",saved:i=null}={}){const w=c&&G.value?xe():null;te?.abort(),K?.abort();const h=new AbortController;te=h;const R=++k,z=v.value,Y=e&&j.value;b.value=!0,O.value=!1,V.value="";try{let C=t;if(a&&!i?.document){const[Q,N]=await Promise.allSettled([ae(`/api/files/stat?${le({root:u.root,path:t.path})}`,h.signal),e?ae(`/api/git/status?${le({root:u.root})}`,h.signal):Promise.resolve(null)]);if(h.signal.aborted)return;if(e&&(N.status==="fulfilled"?(x.value=N.value.changes,U.value=N.value.reason==="git-unavailable"?"未安装 Git,无法更新差异。":"",p("git-status",N.value)):U.value=`Git 状态更新失败,标记可能已过时:${N.reason.message}`),Q.status==="fulfilled")C=Q.value;else if(Q.reason.status===404&&x.value.some(me=>me.path===t.path&&me.deleted))C={...t,name:t.name||t.path.split("/").pop(),virtual:!0,size:0};else throw Q.reason}const _e=i?.document||await Te(C,h.signal);if(h.signal.aborted||R!==k)return;w&&(M.value=Je(M.value,w)),l.value=_e,G.value=!0,A.value=T;const he=i?.mode||(e?z:"preview");return v.value=C.virtual?"diff":he==="source"&&!_e.isText?"preview":he,I.value="",S.value=i?.visibleRows||1e3,q.value=i?.diff||null,j.value=i?.diffLoaded||!1,B.value=i?.diffError||"",W=i?.frameScroll||{left:0,top:0},X=i?W:null,b.value=!1,await be(),h.signal.aborted||R!==k?!1:(i?Ae(i,R):oe(),(v.value==="diff"&&!j.value||Y)&&await re(),!0)}catch(C){!h.signal.aborted&&R===k&&(G.value?V.value=C.message:I.value=C.message)}finally{!h.signal.aborted&&R===k&&(b.value=!1)}return!1}function Le(){J(l.value.entry,{lookup:!0,refresh:!0,anchor:A.value})}async function De(){const t=M.value.at(-1);t&&await J(t.entry,{saved:t,anchor:t.anchor})&&(M.value=M.value.slice(0,-1))}function xe(){return{entry:l.value.entry,document:l.value,anchor:A.value,mode:v.value,visibleRows:S.value,diff:q.value,diffLoaded:j.value,diffError:B.value,scroll:{left:_.value?.scrollLeft||0,top:_.value?.scrollTop||0},frameScroll:{...W}}}function Ae(t,a){const e=v.value,c=()=>{a!==k||v.value!==e||!_.value||_.value.scrollTo({...t.scroll,behavior:"instant"})};c();const T=_.value?.scrollTop,i=[...F.value?.querySelectorAll("img")||[]].filter(w=>!w.complete);i.length&&Promise.allSettled(i.map(w=>w.decode())).then(()=>{_.value?.scrollTop===T&&c()})}function Re(){X?(D.value?.contentWindow?.postMessage({type:"acli-preview-scroll",token:l.value.token,...X},"*"),X=null):oe()}function oe(){if(v.value==="preview")if(["html","docx"].includes(l.value.type))D.value?.contentWindow?.postMessage({type:"acli-preview-scroll",token:l.value.token,hash:A.value},"*");else if(A.value&&F.value){const t=[...F.value.querySelectorAll("[id]")].find(a=>a.id===A.value);t?t.scrollIntoView({block:"start"}):V.value=`未找到文档锚点:${A.value}`}else _.value&&(_.value.scrollTop=0)}async function se(t){v.value=t,t==="diff"&&!j.value&&!O.value&&await re(),t==="preview"&&(await be(),oe())}async function fe(t){V.value="";try{const a=Ge(t,l.value.entry.path,u.root);if(a.kind==="external"){const e=window.document.createElement("a");e.href=a.url,e.target="_blank",e.rel="noopener noreferrer",e.click()}else a.path===l.value.entry.path?(A.value=a.hash,await se("preview")):await J({path:a.path},{lookup:!0,push:!0,anchor:a.hash})}catch(a){V.value=a.message}}function Pe(t){const a=t.target instanceof Element?t.target.closest("a"):null;!a||!F.value?.contains(a)||(t.preventDefault(),!b.value&&fe(a.getAttribute("data-preview-href")??a.getAttribute("href")??""))}function pe(t){const a=t.data;t.source!==D.value?.contentWindow||t.origin!=="null"||v.value!=="preview"||b.value||!a||a.type!=="acli-preview-link"||a.token!==l.value.token||typeof a.href!="string"||a.href.length>8192||(Number.isFinite(a.scroll?.left)&&Number.isFinite(a.scroll?.top)&&(W={left:a.scroll.left,top:a.scroll.top}),fe(a.href))}function Ie(t){if(!["ArrowLeft","ArrowRight","Home","End"].includes(t.key))return;t.preventDefault();const a=$.value.findIndex(c=>c.id===v.value),e=t.key==="Home"?0:t.key==="End"?$.value.length-1:(a+(t.key==="ArrowRight"?1:-1)+$.value.length)%$.value.length;se($.value[e].id),L.value.querySelector(`#preview-tab-${$.value[e].id}`)?.focus()}return $e(()=>u.changes,t=>{x.value=t}),Ce(()=>{de=window.document.activeElement,L.value.showModal(),window.addEventListener("message",pe),J(u.entry)}),Me(()=>{k++,te?.abort(),K?.abort(),window.removeEventListener("message",pe),de?.focus()}),(t,a)=>(r(),Se(He,{to:"body"},[n("dialog",{ref_key:"dialog",ref:L,class:"preview-dialog","aria-labelledby":"preview-title",onCancel:a[5]||(a[5]=Be(e=>p("close"),["prevent"])),onClick:a[6]||(a[6]=e=>{e.target===L.value&&p("close")})},[n("div",et,[n("header",tt,[M.value.length?(r(),o("button",{key:0,class:"header-button",disabled:b.value,title:"返回上一个文档","aria-label":"返回上一个文档",onClick:De},"←",8,at)):g("",!0),n("div",lt,[n("h3",rt,d(l.value.entry.name),1),n("p",{title:l.value.entry.path},d(l.value.entry.path)+" · "+d(l.value.entry.virtual?"已删除":ie(ne)(l.value.entry.size)),9,ot)]),b.value&&G.value?(r(),o("span",st,"加载中…")):g("",!0),n("button",{class:"header-button refresh-button",disabled:b.value||O.value,title:"刷新当前文件、源码和已加载的 Diff","aria-label":"刷新当前文件、源码和已加载的 Diff",onClick:Le},"↻",8,it),l.value.entry.virtual?g("",!0):(r(),o("a",{key:2,class:"btn",href:ie(ue)(l.value.entry.path,!0,E.root),download:l.value.entry.name},"下载",8,nt)),n("button",{class:"close","aria-label":"关闭预览",autofocus:"",onClick:a[0]||(a[0]=e=>p("close"))},"×")]),n("div",{class:"preview-tabs",role:"tablist","aria-label":"文件查看模式",onKeydown:Ie},[(r(!0),o(P,null,Z($.value,e=>(r(),o("button",{id:`preview-tab-${e.id}`,key:e.id,role:"tab","aria-selected":v.value===e.id,"aria-controls":"preview-content",tabindex:v.value===e.id?0:-1,disabled:b.value,onClick:c=>se(e.id)},d(e.label),9,ut))),128)),H.value?(r(),o("span",ct,d(ie(qe)[H.value.status]),1)):g("",!0)],32),V.value?(r(),o("p",dt,d(V.value),1)):g("",!0),U.value?(r(),o("p",vt,d(U.value),1)):g("",!0),n("main",{id:"preview-content",ref_key:"body",ref:_,class:ge(["preview-body",{"frame-body":v.value==="preview"&&["html","docx","pdf"].includes(l.value.type),"diff-body":v.value==="diff"}]),role:"tabpanel","aria-labelledby":`preview-tab-${v.value}`,"aria-busy":b.value||O.value},[b.value&&!G.value?(r(),o("p",pt,"加载预览…")):v.value==="diff"?(r(),o(P,{key:1},[n("p",_t,[a[7]||(a[7]=we("上次提交 HEAD → 当前工作区",-1)),H.value?.originalPath?(r(),o("span",ht," · 原路径:"+d(H.value.originalPath),1)):g("",!0)]),H.value?.status==="C"?(r(),o("p",mt,"此文件存在合并冲突;这里仅展示当前差异,不提供三方合并。")):g("",!0),O.value?(r(),o("p",yt,"加载 Git Diff…")):B.value?(r(),o("p",gt,[we(d(B.value)+" ",1),n("button",{class:"header-button",onClick:re},"重试")])):(r(),o(P,{key:3},[q.value?.notice?(r(),o("p",wt,d(q.value.notice),1)):g("",!0),ce.value.length?(r(),o("div",bt,[(r(!0),o(P,null,Z(ce.value,(e,c)=>(r(),o("div",{key:c,class:ge(["diff-line",`diff-${e.type}`])},[n("span",kt,d(e.oldLine),1),n("span",Et,d(e.newLine),1),n("span",Tt,d(e.sign),1),n("span",Lt,d(e.text),1)],2))),128))])):g("",!0)],64))],64)):I.value?(r(),o("p",Dt,d(I.value),1)):v.value==="source"||l.value.type==="text"?(r(),o(P,{key:3},[l.value.tableFallback&&v.value==="preview"?(r(),o("p",xt,"表格解析失败,已显示原始文本。")):g("",!0),l.value.entry.size>200*1024?(r(),o("p",At,"文件超过 200 KiB,已使用纯文本预览。")):g("",!0),n("pre",Rt,[l.value.highlighted!==null?(r(),o("code",{key:0,class:"hljs",innerHTML:l.value.highlighted},null,8,Pt)):(r(),o("code",It,d(l.value.text),1))])],64)):(r(),o(P,{key:4},[l.value.type==="markdown"?(r(),o("article",{key:0,ref_key:"markdown",ref:F,class:"markdown-body",onClick:Pe,innerHTML:l.value.rendered},null,8,Vt)):l.value.type==="html"||l.value.type==="docx"?(r(),o("iframe",{key:l.value.url,ref_key:"frame",ref:D,srcdoc:l.value.rendered,sandbox:"allow-scripts",referrerpolicy:"no-referrer",title:l.value.entry.name,class:"document-frame",onLoad:Re},null,40,Ot)):l.value.type==="image"?(r(),o("img",{key:l.value.url,src:l.value.url,alt:l.value.entry.name,class:"image-preview",onError:a[1]||(a[1]=e=>I.value="浏览器无法显示这张图片,请下载查看。")},null,40,jt)):l.value.type==="audio"?(r(),o("audio",{key:l.value.url,src:l.value.url,controls:"",class:"media-preview",onError:a[2]||(a[2]=e=>I.value="浏览器不支持此音频格式,请下载查看。")},null,40,$t)):l.value.type==="video"?(r(),o("video",{key:l.value.url,src:l.value.url,controls:"",playsinline:"",class:"media-preview",onError:a[3]||(a[3]=e=>I.value="浏览器不支持此视频格式,请下载查看。")},null,40,Ct)):l.value.type==="pdf"?(r(),o("iframe",{key:l.value.url,src:l.value.url,title:l.value.entry.name,class:"document-frame"},null,8,Mt)):l.value.type==="table"?(r(),o("div",St,[n("p",qt,"已显示 "+d(Math.min(S.value,l.value.rows.length))+" / "+d(l.value.rows.length)+" 行",1),n("table",null,[n("tbody",null,[(r(!0),o(P,null,Z(l.value.rows.slice(0,S.value),(e,c)=>(r(),o("tr",{key:c},[n("td",Bt,d(c+1),1),(r(!0),o(P,null,Z(e,(T,i)=>(r(),o("td",{key:i},d(T),1))),128))]))),128))])]),S.value<l.value.rows.length?(r(),o("button",{key:0,class:"btn btn-primary show-more",onClick:a[4]||(a[4]=e=>S.value+=1e3)},"显示更多(1000 行)")):g("",!0)])):(r(),o("p",Ht,"此文件类型暂不支持预览,请下载查看。"))],64))],10,ft)])],544)]))}},Gt=Oe(zt,[["__scopeId","data-v-f8f7647a"]]);export{Gt as default};
|
|
2
|
+
import{e as Ve,_ as s,a as Oe,u as je,r as f,p as ye,w as $e,o as Ce,b as Me,c as r,d as Se,f as n,g as o,h as g,t as d,i as ie,j as ne,k as ue,l as Z,F as P,G as qe,n as ge,m as we,q as Be,T as He,s as be,v as ze,x as ee,y as Fe,z as Ge,A as ke,B as Ne,C as Ue}from"./index-4pGJ-wDO.js";const Ke=50,We=16*1024*1024;function Xe(E){const m=E.document;if(!m)return 0;let u=(m.text?.length||0)+(m.highlighted?.length||0)+(m.rendered?.length||0)+(E.diff?.patch?.length||0);for(const p of m.rows||[])for(const y of p)u+=String(y).length;return u*2}function Je(E,m,{maxEntries:u=Ke,maxBytes:p=We}={}){const y=[...E,{...m,bytes:Xe(m)}].slice(-u);let L=p;for(let _=y.length-1;_>=0;_--){const D=y[_];D.bytes<=L?L-=D.bytes:y[_]={...D,document:null,diff:null,diffLoaded:!1,bytes:0}}return y}const Ye={javascript:()=>s(()=>import("./javascript-DUNaicwC.js"),[]),typescript:()=>s(()=>import("./typescript-5pldp2kO.js"),[]),xml:()=>s(()=>import("./xml-FcirFJJ2.js"),[]),css:()=>s(()=>import("./css-AVCICof-.js"),[]),scss:()=>s(()=>import("./scss-UZl0Ag-9.js"),[]),json:()=>s(()=>import("./json-DdsocbVI.js"),[]),python:()=>s(()=>import("./python-CXf-_D6G.js"),[]),bash:()=>s(()=>import("./bash-I8pq0VWm.js"),[]),yaml:()=>s(()=>import("./yaml-drsDnIKT.js"),[]),ini:()=>s(()=>import("./ini-B3BVgEsG.js"),[]),markdown:()=>s(()=>import("./markdown-fzgiUVUV.js"),[]),go:()=>s(()=>import("./go-4VmnRw3R.js"),[]),rust:()=>s(()=>import("./rust-DsMvwcVK.js"),[]),java:()=>s(()=>import("./java-DUnkFH8J.js"),[]),c:()=>s(()=>import("./c-D87IyN5J.js"),[]),cpp:()=>s(()=>import("./cpp-BFCWVspj.js"),[]),csharp:()=>s(()=>import("./csharp-D-6syieo.js"),[]),ruby:()=>s(()=>import("./ruby-CcVTKuP4.js"),[]),php:()=>s(()=>import("./php-kjAv1gW4.js"),[]),sql:()=>s(()=>import("./sql-BC88IN-V.js"),[]),swift:()=>s(()=>import("./swift-jkyvy0ac.js"),[]),kotlin:()=>s(()=>import("./kotlin-Za0-TyUR.js"),[]),lua:()=>s(()=>import("./lua-CD7o2Ci6.js"),[]),perl:()=>s(()=>import("./perl-BWtAWCfC.js"),[]),r:()=>s(()=>import("./r-DWz4c2Y4.js"),[]),dart:()=>s(()=>import("./dart-DbQNmsdu.js"),[]),dockerfile:()=>s(()=>import("./dockerfile-Co-AyC30.js"),[]),makefile:()=>s(()=>import("./makefile-BoJC05FH.js"),[]),diff:()=>s(()=>import("./diff-BLTryEFx.js"),[]),plaintext:()=>s(()=>import("./plaintext-CPM70vnn.js"),[])},Qe={js:"javascript",mjs:"javascript",cjs:"javascript",jsx:"javascript",ts:"typescript",tsx:"typescript",vue:"xml",svelte:"xml",html:"xml",htm:"xml",xml:"xml",svg:"xml",css:"css",scss:"scss",sass:"scss",less:"css",json:"json",jsonc:"json",py:"python",sh:"bash",zsh:"bash",bash:"bash",fish:"bash",yml:"yaml",yaml:"yaml",toml:"ini",ini:"ini",cfg:"ini",conf:"ini",md:"markdown",markdown:"markdown",go:"go",rs:"rust",java:"java",c:"c",h:"c",cpp:"cpp",cc:"cpp",hpp:"cpp",cs:"csharp",rb:"ruby",php:"php",sql:"sql",swift:"swift",kt:"kotlin",kts:"kotlin",lua:"lua",pl:"perl",r:"r",dart:"dart",diff:"diff",patch:"diff"};async function Ze(E,m){if(new TextEncoder().encode(E).length>200*1024)return null;const u=m.toLowerCase(),p=u==="dockerfile"?"dockerfile":u==="makefile"?"makefile":Qe[Ve(m)];if(!p)return null;const[{default:y},{default:L}]=await Promise.all([s(()=>import("./core-DchA7RCO.js"),__vite__mapDeps([0,1])),Ye[p]()]);return y.getLanguage(p)||y.registerLanguage(p,L),y.highlight(E,{language:p,ignoreIllegals:!0}).value}const et={class:"preview-layout"},tt={class:"preview-header"},at=["disabled"],lt={class:"preview-heading"},rt={id:"preview-title"},ot=["title"],st={key:1,class:"change-summary",role:"status"},it=["disabled"],nt=["href","download"],ut=["id","aria-selected","tabindex","disabled","onClick"],ct={key:0,class:"change-summary"},dt={key:0,class:"navigation-error",role:"alert"},vt={key:1,class:"navigation-error",role:"status"},ft=["aria-labelledby","aria-busy"],pt={key:0,class:"preview-message",role:"status"},_t={class:"diff-baseline"},ht={key:0},mt={key:0,class:"navigation-error"},yt={key:1,class:"preview-message",role:"status"},gt={key:2,class:"preview-message error",role:"alert"},wt={key:0,class:"preview-message"},bt={key:1,class:"diff-lines","aria-label":"Git 文件差异"},kt={class:"line-number"},Et={class:"line-number"},Tt={class:"diff-sign"},Lt={class:"diff-text"},Dt={key:2,class:"preview-message error",role:"alert"},xt={key:0,class:"preview-note"},At={key:1,class:"preview-note"},Rt={class:"source"},Pt=["innerHTML"],It={key:1},Vt=["innerHTML"],Ot=["srcdoc","title"],jt=["src","alt"],$t=["src"],Ct=["src"],Mt=["src","title"],St={key:6,class:"table-preview"},qt={class:"preview-note"},Bt={class:"row-number"},Ht={key:7,class:"preview-message"},zt={__name:"PreviewDialog",props:{entry:{type:Object,required:!0},root:{type:String,required:!0},changes:{type:Array,default:()=>[]}},emits:["close","git-status"],setup(E,{emit:m}){const u=E,p=m,y=je(),L=f(null),_=f(null),D=f(null),F=f(null),l=f({entry:u.entry,type:ye(u.entry.name),isText:!1,rows:[]}),G=f(!1),b=f(!1),I=f(""),V=f(""),U=f(""),v=f("preview"),x=f(u.changes),M=ze([]),A=f(""),S=f(1e3),q=f(null),O=f(!1),B=f(""),j=f(!1),H=ee(()=>x.value.find(t=>t.path===l.value.entry.path)),Ee=ee(()=>!!H.value||l.value.entry.virtual||j.value),ce=ee(()=>Fe(q.value?.patch||"")),$=ee(()=>[...l.value.entry.virtual?[]:[{id:"preview",label:"预览"}],...l.value.isText?[{id:"source",label:"源码"}]:[],...Ee.value?[{id:"diff",label:"Git Diff"}]:[]]);let te=null,K=null,k=0,de,W={left:0,top:0},X=null;function ae(t,a){return y.apiRequest(t,{signal:a}).then(e=>e.json())}function le(t){return new URLSearchParams(t)}async function ve(t,a,e){if(t.size>e)throw new Error(`预览上限为 ${ne(e)},请下载文件查看。`);const T=(await y.apiRequest(ue(t.path,!1,u.root),{signal:a})).body.getReader(),i=[];let w=0;try{for(;;){const{done:z,value:Y}=await T.read();if(z)break;if(w+=Y.length,w>e)throw new Error(`预览上限为 ${ne(e)},请下载文件查看。`);i.push(Y)}}finally{await T.cancel().catch(()=>{})}const h=new Uint8Array(w);let R=0;for(const z of i)h.set(z,R),R+=z.length;return h}async function Te(t,a){const e={entry:t,type:ye(t.name),text:"",highlighted:null,rendered:"",rows:[],isText:!1,tableFallback:!1,token:globalThis.crypto?.randomUUID?.()||`${Date.now()}-${Math.random()}`,url:`${ue(t.path,!1,u.root)}&revision=${Date.now()}`};if(t.virtual)return e;if(e.type==="docx"){const c=await ve(t,a,10485760),{default:T}=await s(async()=>{const{default:w}=await import("./mammoth.browser-C_M0wsD2.js").then(h=>h.m);return{default:w}},__vite__mapDeps([2,1])),i=await T.convertToHtml({arrayBuffer:c.buffer},{externalFileAccess:!1});e.rendered=ke(i.value,{linkToken:e.token})}else if(["text","markdown","html","table"].includes(e.type)){if(e.text=new TextDecoder().decode(await ve(t,a,2*1024*1024)),e.text.includes("\0"))return e.type="unsupported",e;if(e.isText=!0,e.highlighted=await Ze(e.text,t.name).catch(()=>null),e.type==="html")e.rendered=ke(e.text,{linkToken:e.token});else if(e.type==="markdown")e.rendered=await Ne(e.text,{path:t.path,root:u.root});else if(e.type==="table"){const c=await Ue(e.text,t.name);c?e.rows=c:(e.tableFallback=!0,e.type="text")}}return e}async function re(){K?.abort();const t=new AbortController;K=t;const a=k;O.value=!0,B.value="";try{const e=await ae(`/api/git/diff?${le({root:u.root,path:l.value.entry.path})}`,t.signal);if(t.signal.aborted||a!==k)return;q.value=e,j.value=!0,x.value=x.value.filter(c=>c.path!==l.value.entry.path),e.change&&(x.value=[...x.value,e.change])}catch(e){!t.signal.aborted&&a===k&&(B.value=e.message)}finally{!t.signal.aborted&&a===k&&(O.value=!1)}}async function J(t,{lookup:a=!t.virtual,refresh:e=!1,push:c=!1,anchor:T="",saved:i=null}={}){const w=c&&G.value?xe():null;te?.abort(),K?.abort();const h=new AbortController;te=h;const R=++k,z=v.value,Y=e&&j.value;b.value=!0,O.value=!1,V.value="";try{let C=t;if(a&&!i?.document){const[Q,N]=await Promise.allSettled([ae(`/api/files/stat?${le({root:u.root,path:t.path})}`,h.signal),e?ae(`/api/git/status?${le({root:u.root})}`,h.signal):Promise.resolve(null)]);if(h.signal.aborted)return;if(e&&(N.status==="fulfilled"?(x.value=N.value.changes,U.value=N.value.reason==="git-unavailable"?"未安装 Git,无法更新差异。":"",p("git-status",N.value)):U.value=`Git 状态更新失败,标记可能已过时:${N.reason.message}`),Q.status==="fulfilled")C=Q.value;else if(Q.reason.status===404&&x.value.some(me=>me.path===t.path&&me.deleted))C={...t,name:t.name||t.path.split("/").pop(),virtual:!0,size:0};else throw Q.reason}const _e=i?.document||await Te(C,h.signal);if(h.signal.aborted||R!==k)return;w&&(M.value=Je(M.value,w)),l.value=_e,G.value=!0,A.value=T;const he=i?.mode||(e?z:"preview");return v.value=C.virtual?"diff":he==="source"&&!_e.isText?"preview":he,I.value="",S.value=i?.visibleRows||1e3,q.value=i?.diff||null,j.value=i?.diffLoaded||!1,B.value=i?.diffError||"",W=i?.frameScroll||{left:0,top:0},X=i?W:null,b.value=!1,await be(),h.signal.aborted||R!==k?!1:(i?Ae(i,R):oe(),(v.value==="diff"&&!j.value||Y)&&await re(),!0)}catch(C){!h.signal.aborted&&R===k&&(G.value?V.value=C.message:I.value=C.message)}finally{!h.signal.aborted&&R===k&&(b.value=!1)}return!1}function Le(){J(l.value.entry,{lookup:!0,refresh:!0,anchor:A.value})}async function De(){const t=M.value.at(-1);t&&await J(t.entry,{saved:t,anchor:t.anchor})&&(M.value=M.value.slice(0,-1))}function xe(){return{entry:l.value.entry,document:l.value,anchor:A.value,mode:v.value,visibleRows:S.value,diff:q.value,diffLoaded:j.value,diffError:B.value,scroll:{left:_.value?.scrollLeft||0,top:_.value?.scrollTop||0},frameScroll:{...W}}}function Ae(t,a){const e=v.value,c=()=>{a!==k||v.value!==e||!_.value||_.value.scrollTo({...t.scroll,behavior:"instant"})};c();const T=_.value?.scrollTop,i=[...F.value?.querySelectorAll("img")||[]].filter(w=>!w.complete);i.length&&Promise.allSettled(i.map(w=>w.decode())).then(()=>{_.value?.scrollTop===T&&c()})}function Re(){X?(D.value?.contentWindow?.postMessage({type:"acli-preview-scroll",token:l.value.token,...X},"*"),X=null):oe()}function oe(){if(v.value==="preview")if(["html","docx"].includes(l.value.type))D.value?.contentWindow?.postMessage({type:"acli-preview-scroll",token:l.value.token,hash:A.value},"*");else if(A.value&&F.value){const t=[...F.value.querySelectorAll("[id]")].find(a=>a.id===A.value);t?t.scrollIntoView({block:"start"}):V.value=`未找到文档锚点:${A.value}`}else _.value&&(_.value.scrollTop=0)}async function se(t){v.value=t,t==="diff"&&!j.value&&!O.value&&await re(),t==="preview"&&(await be(),oe())}async function fe(t){V.value="";try{const a=Ge(t,l.value.entry.path,u.root);if(a.kind==="external"){const e=window.document.createElement("a");e.href=a.url,e.target="_blank",e.rel="noopener noreferrer",e.click()}else a.path===l.value.entry.path?(A.value=a.hash,await se("preview")):await J({path:a.path},{lookup:!0,push:!0,anchor:a.hash})}catch(a){V.value=a.message}}function Pe(t){const a=t.target instanceof Element?t.target.closest("a"):null;!a||!F.value?.contains(a)||(t.preventDefault(),!b.value&&fe(a.getAttribute("data-preview-href")??a.getAttribute("href")??""))}function pe(t){const a=t.data;t.source!==D.value?.contentWindow||t.origin!=="null"||v.value!=="preview"||b.value||!a||a.type!=="acli-preview-link"||a.token!==l.value.token||typeof a.href!="string"||a.href.length>8192||(Number.isFinite(a.scroll?.left)&&Number.isFinite(a.scroll?.top)&&(W={left:a.scroll.left,top:a.scroll.top}),fe(a.href))}function Ie(t){if(!["ArrowLeft","ArrowRight","Home","End"].includes(t.key))return;t.preventDefault();const a=$.value.findIndex(c=>c.id===v.value),e=t.key==="Home"?0:t.key==="End"?$.value.length-1:(a+(t.key==="ArrowRight"?1:-1)+$.value.length)%$.value.length;se($.value[e].id),L.value.querySelector(`#preview-tab-${$.value[e].id}`)?.focus()}return $e(()=>u.changes,t=>{x.value=t}),Ce(()=>{de=window.document.activeElement,L.value.showModal(),window.addEventListener("message",pe),J(u.entry)}),Me(()=>{k++,te?.abort(),K?.abort(),window.removeEventListener("message",pe),de?.focus()}),(t,a)=>(r(),Se(He,{to:"body"},[n("dialog",{ref_key:"dialog",ref:L,class:"preview-dialog","aria-labelledby":"preview-title",onCancel:a[5]||(a[5]=Be(e=>p("close"),["prevent"])),onClick:a[6]||(a[6]=e=>{e.target===L.value&&p("close")})},[n("div",et,[n("header",tt,[M.value.length?(r(),o("button",{key:0,class:"header-button",disabled:b.value,title:"返回上一个文档","aria-label":"返回上一个文档",onClick:De},"←",8,at)):g("",!0),n("div",lt,[n("h3",rt,d(l.value.entry.name),1),n("p",{title:l.value.entry.path},d(l.value.entry.path)+" · "+d(l.value.entry.virtual?"已删除":ie(ne)(l.value.entry.size)),9,ot)]),b.value&&G.value?(r(),o("span",st,"加载中…")):g("",!0),n("button",{class:"header-button refresh-button",disabled:b.value||O.value,title:"刷新当前文件、源码和已加载的 Diff","aria-label":"刷新当前文件、源码和已加载的 Diff",onClick:Le},"↻",8,it),l.value.entry.virtual?g("",!0):(r(),o("a",{key:2,class:"btn",href:ie(ue)(l.value.entry.path,!0,E.root),download:l.value.entry.name},"下载",8,nt)),n("button",{class:"close","aria-label":"关闭预览",autofocus:"",onClick:a[0]||(a[0]=e=>p("close"))},"×")]),n("div",{class:"preview-tabs",role:"tablist","aria-label":"文件查看模式",onKeydown:Ie},[(r(!0),o(P,null,Z($.value,e=>(r(),o("button",{id:`preview-tab-${e.id}`,key:e.id,role:"tab","aria-selected":v.value===e.id,"aria-controls":"preview-content",tabindex:v.value===e.id?0:-1,disabled:b.value,onClick:c=>se(e.id)},d(e.label),9,ut))),128)),H.value?(r(),o("span",ct,d(ie(qe)[H.value.status]),1)):g("",!0)],32),V.value?(r(),o("p",dt,d(V.value),1)):g("",!0),U.value?(r(),o("p",vt,d(U.value),1)):g("",!0),n("main",{id:"preview-content",ref_key:"body",ref:_,class:ge(["preview-body",{"frame-body":v.value==="preview"&&["html","docx","pdf"].includes(l.value.type),"diff-body":v.value==="diff"}]),role:"tabpanel","aria-labelledby":`preview-tab-${v.value}`,"aria-busy":b.value||O.value},[b.value&&!G.value?(r(),o("p",pt,"加载预览…")):v.value==="diff"?(r(),o(P,{key:1},[n("p",_t,[a[7]||(a[7]=we("上次提交 HEAD → 当前工作区",-1)),H.value?.originalPath?(r(),o("span",ht," · 原路径:"+d(H.value.originalPath),1)):g("",!0)]),H.value?.status==="C"?(r(),o("p",mt,"此文件存在合并冲突;这里仅展示当前差异,不提供三方合并。")):g("",!0),O.value?(r(),o("p",yt,"加载 Git Diff…")):B.value?(r(),o("p",gt,[we(d(B.value)+" ",1),n("button",{class:"header-button",onClick:re},"重试")])):(r(),o(P,{key:3},[q.value?.notice?(r(),o("p",wt,d(q.value.notice),1)):g("",!0),ce.value.length?(r(),o("div",bt,[(r(!0),o(P,null,Z(ce.value,(e,c)=>(r(),o("div",{key:c,class:ge(["diff-line",`diff-${e.type}`])},[n("span",kt,d(e.oldLine),1),n("span",Et,d(e.newLine),1),n("span",Tt,d(e.sign),1),n("span",Lt,d(e.text),1)],2))),128))])):g("",!0)],64))],64)):I.value?(r(),o("p",Dt,d(I.value),1)):v.value==="source"||l.value.type==="text"?(r(),o(P,{key:3},[l.value.tableFallback&&v.value==="preview"?(r(),o("p",xt,"表格解析失败,已显示原始文本。")):g("",!0),l.value.entry.size>200*1024?(r(),o("p",At,"文件超过 200 KiB,已使用纯文本预览。")):g("",!0),n("pre",Rt,[l.value.highlighted!==null?(r(),o("code",{key:0,class:"hljs",innerHTML:l.value.highlighted},null,8,Pt)):(r(),o("code",It,d(l.value.text),1))])],64)):(r(),o(P,{key:4},[l.value.type==="markdown"?(r(),o("article",{key:0,ref_key:"markdown",ref:F,class:"markdown-body",onClick:Pe,innerHTML:l.value.rendered},null,8,Vt)):l.value.type==="html"||l.value.type==="docx"?(r(),o("iframe",{key:l.value.url,ref_key:"frame",ref:D,srcdoc:l.value.rendered,sandbox:"allow-scripts",referrerpolicy:"no-referrer",title:l.value.entry.name,class:"document-frame",onLoad:Re},null,40,Ot)):l.value.type==="image"?(r(),o("img",{key:l.value.url,src:l.value.url,alt:l.value.entry.name,class:"image-preview",onError:a[1]||(a[1]=e=>I.value="浏览器无法显示这张图片,请下载查看。")},null,40,jt)):l.value.type==="audio"?(r(),o("audio",{key:l.value.url,src:l.value.url,controls:"",class:"media-preview",onError:a[2]||(a[2]=e=>I.value="浏览器不支持此音频格式,请下载查看。")},null,40,$t)):l.value.type==="video"?(r(),o("video",{key:l.value.url,src:l.value.url,controls:"",playsinline:"",class:"media-preview",onError:a[3]||(a[3]=e=>I.value="浏览器不支持此视频格式,请下载查看。")},null,40,Ct)):l.value.type==="pdf"?(r(),o("iframe",{key:l.value.url,src:l.value.url,title:l.value.entry.name,class:"document-frame"},null,8,Mt)):l.value.type==="table"?(r(),o("div",St,[n("p",qt,"已显示 "+d(Math.min(S.value,l.value.rows.length))+" / "+d(l.value.rows.length)+" 行",1),n("table",null,[n("tbody",null,[(r(!0),o(P,null,Z(l.value.rows.slice(0,S.value),(e,c)=>(r(),o("tr",{key:c},[n("td",Bt,d(c+1),1),(r(!0),o(P,null,Z(e,(T,i)=>(r(),o("td",{key:i},d(T),1))),128))]))),128))])]),S.value<l.value.rows.length?(r(),o("button",{key:0,class:"btn btn-primary show-more",onClick:a[4]||(a[4]=e=>S.value+=1e3)},"显示更多(1000 行)")):g("",!0)])):(r(),o("p",Ht,"此文件类型暂不支持预览,请下载查看。"))],64))],10,ft)])],544)]))}},Gt=Oe(zt,[["__scopeId","data-v-f8f7647a"]]);export{Gt as default};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/papaparse.min-DBcLlWLv.js","assets/_commonjsHelpers-Cpj98o6Y.js","assets/PreviewDialog-Ci4fyUxf.js","assets/PreviewDialog-Du15-2g0.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))s(o);new MutationObserver(o=>{for(const r of o)if(r.type==="childList")for(const i of r.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&s(i)}).observe(document,{childList:!0,subtree:!0});function n(o){const r={};return o.integrity&&(r.integrity=o.integrity),o.referrerPolicy&&(r.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?r.credentials="include":o.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function s(o){if(o.ep)return;o.ep=!0;const r=n(o);fetch(o.href,r)}})();function Vs(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const fe={},Kt=[],st=()=>{},fr=()=>!1,Xn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Ws=e=>e.startsWith("onUpdate:"),xe=Object.assign,qs=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Ni=Object.prototype.hasOwnProperty,ae=(e,t)=>Ni.call(e,t),z=Array.isArray,Vt=e=>bn(e)==="[object Map]",Jn=e=>bn(e)==="[object Set]",go=e=>bn(e)==="[object Date]",Q=e=>typeof e=="function",ye=e=>typeof e=="string",ot=e=>typeof e=="symbol",de=e=>e!==null&&typeof e=="object",dr=e=>(de(e)||Q(e))&&Q(e.then)&&Q(e.catch),pr=Object.prototype.toString,bn=e=>pr.call(e),ji=e=>bn(e).slice(8,-1),hr=e=>bn(e)==="[object Object]",Zn=e=>ye(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,on=Vs(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Qn=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},Hi=/-\w/g,Ke=Qn(e=>e.replace(Hi,t=>t.slice(1).toUpperCase())),Ui=/\B([A-Z])/g,St=Qn(e=>e.replace(Ui,"-$1").toLowerCase()),es=Qn(e=>e.charAt(0).toUpperCase()+e.slice(1)),ps=Qn(e=>e?`on${es(e)}`:""),xt=(e,t)=>!Object.is(e,t),Rn=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},mr=(e,t,n,s=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},ts=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Bi=e=>{const t=ye(e)?Number(e):NaN;return isNaN(t)?e:t};let vo;const ns=()=>vo||(vo=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function wn(e){if(z(e)){const t={};for(let n=0;n<e.length;n++){const s=e[n],o=ye(s)?qi(s):wn(s);if(o)for(const r in o)t[r]=o[r]}return t}else if(ye(e)||de(e))return e}const Ki=/;(?![^(]*\))/g,Vi=/:([^]+)/,Wi=/\/\*[^]*?\*\//g;function qi(e){const t={};return e.replace(Wi,"").split(Ki).forEach(n=>{if(n){const s=n.split(Vi);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function Be(e){let t="";if(ye(e))t=e;else if(z(e))for(let n=0;n<e.length;n++){const s=Be(e[n]);s&&(t+=s+" ")}else if(de(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}const Gi="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",Yi=Vs(Gi);function gr(e){return!!e||e===""}function zi(e,t){if(e.length!==t.length)return!1;let n=!0;for(let s=0;n&&s<e.length;s++)n=ss(e[s],t[s]);return n}function ss(e,t){if(e===t)return!0;let n=go(e),s=go(t);if(n||s)return n&&s?e.getTime()===t.getTime():!1;if(n=ot(e),s=ot(t),n||s)return e===t;if(n=z(e),s=z(t),n||s)return n&&s?zi(e,t):!1;if(n=de(e),s=de(t),n||s){if(!n||!s)return!1;const o=Object.keys(e).length,r=Object.keys(t).length;if(o!==r)return!1;for(const i in e){const l=e.hasOwnProperty(i),a=t.hasOwnProperty(i);if(l&&!a||!l&&a||!ss(e[i],t[i]))return!1}}return String(e)===String(t)}function Xi(e,t){return e.findIndex(n=>ss(n,t))}const vr=e=>!!(e&&e.__v_isRef===!0),te=e=>ye(e)?e:e==null?"":z(e)||de(e)&&(e.toString===pr||!Q(e.toString))?vr(e)?te(e.value):JSON.stringify(e,yr,2):String(e),yr=(e,t)=>vr(t)?yr(e,t.value):Vt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,o],r)=>(n[hs(s,r)+" =>"]=o,n),{})}:Jn(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>hs(n))}:ot(t)?hs(t):de(t)&&!z(t)&&!hr(t)?String(t):t,hs=(e,t="")=>{var n;return ot(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let Ee;class br{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=Ee,!t&&Ee&&(this.index=(Ee.scopes||(Ee.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].pause();for(t=0,n=this.effects.length;t<n;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].resume();for(t=0,n=this.effects.length;t<n;t++)this.effects[t].resume()}}run(t){if(this._active){const n=Ee;try{return Ee=this,t()}finally{Ee=n}}}on(){++this._on===1&&(this.prevScope=Ee,Ee=this)}off(){this._on>0&&--this._on===0&&(Ee=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,s;for(n=0,s=this.effects.length;n<s;n++)this.effects[n].stop();for(this.effects.length=0,n=0,s=this.cleanups.length;n<s;n++)this.cleanups[n]();if(this.cleanups.length=0,this.scopes){for(n=0,s=this.scopes.length;n<s;n++)this.scopes[n].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const o=this.parent.scopes.pop();o&&o!==this&&(this.parent.scopes[this.index]=o,o.index=this.index)}this.parent=void 0}}}function wr(e){return new br(e)}function _r(){return Ee}function Ji(e,t=!1){Ee&&Ee.cleanups.push(e)}let he;const ms=new WeakSet;class xr{constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,Ee&&Ee.active&&Ee.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,ms.has(this)&&(ms.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||Sr(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,yo(this),Er(this);const t=he,n=We;he=this,We=!0;try{return this.fn()}finally{Tr(this),he=t,We=n,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)zs(t);this.deps=this.depsTail=void 0,yo(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?ms.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){$s(this)&&this.run()}get dirty(){return $s(this)}}let Cr=0,rn,ln;function Sr(e,t=!1){if(e.flags|=8,t){e.next=ln,ln=e;return}e.next=rn,rn=e}function Gs(){Cr++}function Ys(){if(--Cr>0)return;if(ln){let t=ln;for(ln=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;rn;){let t=rn;for(rn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(s){e||(e=s)}t=n}}if(e)throw e}function Er(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Tr(e){let t,n=e.depsTail,s=n;for(;s;){const o=s.prevDep;s.version===-1?(s===n&&(n=o),zs(s),Zi(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=o}e.deps=t,e.depsTail=n}function $s(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&($r(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function $r(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===hn)||(e.globalVersion=hn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!$s(e))))return;e.flags|=2;const t=e.dep,n=he,s=We;he=e,We=!0;try{Er(e);const o=e.fn(e._value);(t.version===0||xt(o,e._value))&&(e.flags|=128,e._value=o,t.version++)}catch(o){throw t.version++,o}finally{he=n,We=s,Tr(e),e.flags&=-3}}function zs(e,t=!1){const{dep:n,prevSub:s,nextSub:o}=e;if(s&&(s.nextSub=o,e.prevSub=void 0),o&&(o.prevSub=s,e.nextSub=void 0),n.subs===e&&(n.subs=s,!s&&n.computed)){n.computed.flags&=-5;for(let r=n.computed.deps;r;r=r.nextDep)zs(r,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Zi(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 kr=[];function ut(){kr.push(We),We=!1}function ft(){const e=kr.pop();We=e===void 0?!0:e}function yo(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=he;he=void 0;try{t()}finally{he=n}}}let hn=0;class Qi{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 Xs{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(!he||!We||he===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==he)n=this.activeLink=new Qi(he,this),he.deps?(n.prevDep=he.depsTail,he.depsTail.nextDep=n,he.depsTail=n):he.deps=he.depsTail=n,Ar(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const s=n.nextDep;s.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=s),n.prevDep=he.depsTail,n.nextDep=void 0,he.depsTail.nextDep=n,he.depsTail=n,he.deps===n&&(he.deps=s)}return n}trigger(t){this.version++,hn++,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 Ar(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let s=t.deps;s;s=s.nextDep)Ar(s)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const jn=new WeakMap,Lt=Symbol(""),ks=Symbol(""),mn=Symbol("");function Te(e,t,n){if(We&&he){let s=jn.get(e);s||jn.set(e,s=new Map);let o=s.get(n);o||(s.set(n,o=new Xs),o.map=s,o.key=n),o.track()}}function lt(e,t,n,s,o,r){const i=jn.get(e);if(!i){hn++;return}const l=a=>{a&&a.trigger()};if(Gs(),t==="clear")i.forEach(l);else{const a=z(e),u=a&&Zn(n);if(a&&n==="length"){const c=Number(s);i.forEach((f,m)=>{(m==="length"||m===mn||!ot(m)&&m>=c)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(mn)),t){case"add":a?u&&l(i.get("length")):(l(i.get(Lt)),Vt(e)&&l(i.get(ks)));break;case"delete":a||(l(i.get(Lt)),Vt(e)&&l(i.get(ks)));break;case"set":Vt(e)&&l(i.get(Lt));break}}Ys()}function el(e,t){const n=jn.get(e);return n&&n.get(t)}function jt(e){const t=le(e);return t===e?t:(Te(t,"iterate",mn),De(e)?t:t.map(Ge))}function os(e){return Te(e=le(e),"iterate",mn),e}function bt(e,t){return dt(e)?Gt(ct(e)?Ge(t):t):Ge(t)}const tl={__proto__:null,[Symbol.iterator](){return gs(this,Symbol.iterator,e=>bt(this,e))},concat(...e){return jt(this).concat(...e.map(t=>z(t)?jt(t):t))},entries(){return gs(this,"entries",e=>(e[1]=bt(this,e[1]),e))},every(e,t){return rt(this,"every",e,t,void 0,arguments)},filter(e,t){return rt(this,"filter",e,t,n=>n.map(s=>bt(this,s)),arguments)},find(e,t){return rt(this,"find",e,t,n=>bt(this,n),arguments)},findIndex(e,t){return rt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return rt(this,"findLast",e,t,n=>bt(this,n),arguments)},findLastIndex(e,t){return rt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return rt(this,"forEach",e,t,void 0,arguments)},includes(...e){return vs(this,"includes",e)},indexOf(...e){return vs(this,"indexOf",e)},join(e){return jt(this).join(e)},lastIndexOf(...e){return vs(this,"lastIndexOf",e)},map(e,t){return rt(this,"map",e,t,void 0,arguments)},pop(){return Zt(this,"pop")},push(...e){return Zt(this,"push",e)},reduce(e,...t){return bo(this,"reduce",e,t)},reduceRight(e,...t){return bo(this,"reduceRight",e,t)},shift(){return Zt(this,"shift")},some(e,t){return rt(this,"some",e,t,void 0,arguments)},splice(...e){return Zt(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 Zt(this,"unshift",e)},values(){return gs(this,"values",e=>bt(this,e))}};function gs(e,t,n){const s=os(e),o=s[t]();return s!==e&&!De(e)&&(o._next=o.next,o.next=()=>{const r=o._next();return r.done||(r.value=n(r.value)),r}),o}const nl=Array.prototype;function rt(e,t,n,s,o,r){const i=os(e),l=i!==e&&!De(e),a=i[t];if(a!==nl[t]){const f=a.apply(e,r);return l?Ge(f):f}let u=n;i!==e&&(l?u=function(f,m){return n.call(this,bt(e,f),m,e)}:n.length>2&&(u=function(f,m){return n.call(this,f,m,e)}));const c=a.call(i,u,s);return l&&o?o(c):c}function bo(e,t,n,s){const o=os(e);let r=n;return o!==e&&(De(e)?n.length>3&&(r=function(i,l,a){return n.call(this,i,l,a,e)}):r=function(i,l,a){return n.call(this,i,bt(e,l),a,e)}),o[t](r,...s)}function vs(e,t,n){const s=le(e);Te(s,"iterate",mn);const o=s[t](...n);return(o===-1||o===!1)&&is(n[0])?(n[0]=le(n[0]),s[t](...n)):o}function Zt(e,t,n=[]){ut(),Gs();const s=le(e)[t].apply(e,n);return Ys(),ft(),s}const sl=Vs("__proto__,__v_isRef,__isVue"),Mr=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(ot));function ol(e){ot(e)||(e=String(e));const t=le(this);return Te(t,"has",e),t.hasOwnProperty(e)}class Pr{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,s){if(n==="__v_skip")return t.__v_skip;const o=this._isReadonly,r=this._isShallow;if(n==="__v_isReactive")return!o;if(n==="__v_isReadonly")return o;if(n==="__v_isShallow")return r;if(n==="__v_raw")return s===(o?r?hl:Lr:r?Rr:Ir).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const i=z(t);if(!o){let a;if(i&&(a=tl[n]))return a;if(n==="hasOwnProperty")return ol}const l=Reflect.get(t,n,ve(t)?t:s);if((ot(n)?Mr.has(n):sl(n))||(o||Te(t,"get",n),r))return l;if(ve(l)){const a=i&&Zn(n)?l:l.value;return o&&de(a)?Ms(a):a}return de(l)?o?Ms(l):rs(l):l}}class Or extends Pr{constructor(t=!1){super(!1,t)}set(t,n,s,o){let r=t[n];const i=z(t)&&Zn(n);if(!this._isShallow){const u=dt(r);if(!De(s)&&!dt(s)&&(r=le(r),s=le(s)),!i&&ve(r)&&!ve(s))return u||(r.value=s),!0}const l=i?Number(n)<t.length:ae(t,n),a=Reflect.set(t,n,s,ve(t)?t:o);return t===le(o)&&(l?xt(s,r)&<(t,"set",n,s):lt(t,"add",n,s)),a}deleteProperty(t,n){const s=ae(t,n);t[n];const o=Reflect.deleteProperty(t,n);return o&&s&<(t,"delete",n,void 0),o}has(t,n){const s=Reflect.has(t,n);return(!ot(n)||!Mr.has(n))&&Te(t,"has",n),s}ownKeys(t){return Te(t,"iterate",z(t)?"length":Lt),Reflect.ownKeys(t)}}class rl extends Pr{constructor(t=!1){super(!0,t)}set(t,n){return!0}deleteProperty(t,n){return!0}}const il=new Or,ll=new rl,al=new Or(!0);const As=e=>e,$n=e=>Reflect.getPrototypeOf(e);function cl(e,t,n){return function(...s){const o=this.__v_raw,r=le(o),i=Vt(r),l=e==="entries"||e===Symbol.iterator&&i,a=e==="keys"&&i,u=o[e](...s),c=n?As:t?Gt:Ge;return!t&&Te(r,"iterate",a?ks:Lt),xe(Object.create(u),{next(){const{value:f,done:m}=u.next();return m?{value:f,done:m}:{value:l?[c(f[0]),c(f[1])]:c(f),done:m}}})}}function kn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function ul(e,t){const n={get(o){const r=this.__v_raw,i=le(r),l=le(o);e||(xt(o,l)&&Te(i,"get",o),Te(i,"get",l));const{has:a}=$n(i),u=t?As:e?Gt:Ge;if(a.call(i,o))return u(r.get(o));if(a.call(i,l))return u(r.get(l));r!==i&&r.get(o)},get size(){const o=this.__v_raw;return!e&&Te(le(o),"iterate",Lt),o.size},has(o){const r=this.__v_raw,i=le(r),l=le(o);return e||(xt(o,l)&&Te(i,"has",o),Te(i,"has",l)),o===l?r.has(o):r.has(o)||r.has(l)},forEach(o,r){const i=this,l=i.__v_raw,a=le(l),u=t?As:e?Gt:Ge;return!e&&Te(a,"iterate",Lt),l.forEach((c,f)=>o.call(r,u(c),u(f),i))}};return xe(n,e?{add:kn("add"),set:kn("set"),delete:kn("delete"),clear:kn("clear")}:{add(o){!t&&!De(o)&&!dt(o)&&(o=le(o));const r=le(this);return $n(r).has.call(r,o)||(r.add(o),lt(r,"add",o,o)),this},set(o,r){!t&&!De(r)&&!dt(r)&&(r=le(r));const i=le(this),{has:l,get:a}=$n(i);let u=l.call(i,o);u||(o=le(o),u=l.call(i,o));const c=a.call(i,o);return i.set(o,r),u?xt(r,c)&<(i,"set",o,r):lt(i,"add",o,r),this},delete(o){const r=le(this),{has:i,get:l}=$n(r);let a=i.call(r,o);a||(o=le(o),a=i.call(r,o)),l&&l.call(r,o);const u=r.delete(o);return a&<(r,"delete",o,void 0),u},clear(){const o=le(this),r=o.size!==0,i=o.clear();return r&<(o,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(o=>{n[o]=cl(o,e,t)}),n}function Js(e,t){const n=ul(e,t);return(s,o,r)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?s:Reflect.get(ae(n,o)&&o in s?n:s,o,r)}const fl={get:Js(!1,!1)},dl={get:Js(!1,!0)},pl={get:Js(!0,!1)};const Ir=new WeakMap,Rr=new WeakMap,Lr=new WeakMap,hl=new WeakMap;function ml(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function gl(e){return e.__v_skip||!Object.isExtensible(e)?0:ml(ji(e))}function rs(e){return dt(e)?e:Zs(e,!1,il,fl,Ir)}function vl(e){return Zs(e,!1,al,dl,Rr)}function Ms(e){return Zs(e,!0,ll,pl,Lr)}function Zs(e,t,n,s,o){if(!de(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const r=gl(e);if(r===0)return e;const i=o.get(e);if(i)return i;const l=new Proxy(e,r===2?s:n);return o.set(e,l),l}function ct(e){return dt(e)?ct(e.__v_raw):!!(e&&e.__v_isReactive)}function dt(e){return!!(e&&e.__v_isReadonly)}function De(e){return!!(e&&e.__v_isShallow)}function is(e){return e?!!e.__v_raw:!1}function le(e){const t=e&&e.__v_raw;return t?le(t):e}function Qs(e){return!ae(e,"__v_skip")&&Object.isExtensible(e)&&mr(e,"__v_skip",!0),e}const Ge=e=>de(e)?rs(e):e,Gt=e=>de(e)?Ms(e):e;function ve(e){return e?e.__v_isRef===!0:!1}function K(e){return Dr(e,!1)}function yl(e){return Dr(e,!0)}function Dr(e,t){return ve(e)?e:new bl(e,t)}class bl{constructor(t,n){this.dep=new Xs,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:le(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,s=this.__v_isShallow||De(t)||dt(t);t=s?t:le(t),xt(t,n)&&(this._rawValue=t,this._value=s?t:Ge(t),this.dep.trigger())}}function ue(e){return ve(e)?e.value:e}const wl={get:(e,t,n)=>t==="__v_raw"?e:ue(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const o=e[t];return ve(o)&&!ve(n)?(o.value=n,!0):Reflect.set(e,t,n,s)}};function Fr(e){return ct(e)?e:new Proxy(e,wl)}function _l(e){const t=z(e)?new Array(e.length):{};for(const n in e)t[n]=Cl(e,n);return t}class xl{constructor(t,n,s){this._object=t,this._key=n,this._defaultValue=s,this.__v_isRef=!0,this._value=void 0,this._raw=le(t);let o=!0,r=t;if(!z(t)||!Zn(String(n)))do o=!is(r)||De(r);while(o&&(r=r.__v_raw));this._shallow=o}get value(){let t=this._object[this._key];return this._shallow&&(t=ue(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&ve(this._raw[this._key])){const n=this._object[this._key];if(ve(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return el(this._raw,this._key)}}function Cl(e,t,n){return new xl(e,t,n)}class Sl{constructor(t,n,s){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Xs(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=hn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&he!==this)return Sr(this,!0),!0}get value(){const t=this.dep.track();return $r(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function El(e,t,n=!1){let s,o;return Q(e)?s=e:(s=e.get,o=e.set),new Sl(s,o,n)}const An={},Hn=new WeakMap;let Ot;function Tl(e,t=!1,n=Ot){if(n){let s=Hn.get(n);s||Hn.set(n,s=[]),s.push(e)}}function $l(e,t,n=fe){const{immediate:s,deep:o,once:r,scheduler:i,augmentJob:l,call:a}=n,u=k=>o?k:De(k)||o===!1||o===0?at(k,1):at(k);let c,f,m,v,w=!1,y=!1;if(ve(e)?(f=()=>e.value,w=De(e)):ct(e)?(f=()=>u(e),w=!0):z(e)?(y=!0,w=e.some(k=>ct(k)||De(k)),f=()=>e.map(k=>{if(ve(k))return k.value;if(ct(k))return u(k);if(Q(k))return a?a(k,2):k()})):Q(e)?t?f=a?()=>a(e,2):e:f=()=>{if(m){ut();try{m()}finally{ft()}}const k=Ot;Ot=c;try{return a?a(e,3,[v]):e(v)}finally{Ot=k}}:f=st,t&&o){const k=f,D=o===!0?1/0:o;f=()=>at(k(),D)}const A=_r(),b=()=>{c.stop(),A&&A.active&&qs(A.effects,c)};if(r&&t){const k=t;t=(...D)=>{k(...D),b()}}let S=y?new Array(e.length).fill(An):An;const _=k=>{if(!(!(c.flags&1)||!c.dirty&&!k))if(t){const D=c.run();if(o||w||(y?D.some((X,oe)=>xt(X,S[oe])):xt(D,S))){m&&m();const X=Ot;Ot=c;try{const oe=[D,S===An?void 0:y&&S[0]===An?[]:S,v];S=D,a?a(t,3,oe):t(...oe)}finally{Ot=X}}}else c.run()};return l&&l(_),c=new xr(f),c.scheduler=i?()=>i(_,!1):_,v=k=>Tl(k,!1,c),m=c.onStop=()=>{const k=Hn.get(c);if(k){if(a)a(k,4);else for(const D of k)D();Hn.delete(c)}},t?s?_(!0):S=c.run():i?i(_.bind(null,!0),!0):c.run(),b.pause=c.pause.bind(c),b.resume=c.resume.bind(c),b.stop=b,b}function at(e,t=1/0,n){if(t<=0||!de(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,ve(e))at(e.value,t,n);else if(z(e))for(let s=0;s<e.length;s++)at(e[s],t,n);else if(Jn(e)||Vt(e))e.forEach(s=>{at(s,t,n)});else if(hr(e)){for(const s in e)at(e[s],t,n);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&at(e[s],t,n)}return e}function _n(e,t,n,s){try{return s?e(...s):e()}catch(o){xn(o,t,n)}}function Ye(e,t,n,s){if(Q(e)){const o=_n(e,t,n,s);return o&&dr(o)&&o.catch(r=>{xn(r,t,n)}),o}if(z(e)){const o=[];for(let r=0;r<e.length;r++)o.push(Ye(e[r],t,n,s));return o}}function xn(e,t,n,s=!0){const o=t?t.vnode:null,{errorHandler:r,throwUnhandledErrorInProduction:i}=t&&t.appContext.config||fe;if(t){let l=t.parent;const a=t.proxy,u=`https://vuejs.org/error-reference/#runtime-${n}`;for(;l;){const c=l.ec;if(c){for(let f=0;f<c.length;f++)if(c[f](e,a,u)===!1)return}l=l.parent}if(r){ut(),_n(r,null,10,[e,a,u]),ft();return}}kl(e,n,o,s,i)}function kl(e,t,n,s=!0,o=!1){if(o)throw e;console.error(e)}const Ae=[];let et=-1;const Wt=[];let wt=null,Ut=0;const Nr=Promise.resolve();let Un=null;function Et(e){const t=Un||Nr;return e?t.then(this?e.bind(this):e):t}function Al(e){let t=et+1,n=Ae.length;for(;t<n;){const s=t+n>>>1,o=Ae[s],r=gn(o);r<e||r===e&&o.flags&2?t=s+1:n=s}return t}function eo(e){if(!(e.flags&1)){const t=gn(e),n=Ae[Ae.length-1];!n||!(e.flags&2)&&t>=gn(n)?Ae.push(e):Ae.splice(Al(t),0,e),e.flags|=1,jr()}}function jr(){Un||(Un=Nr.then(Ur))}function Ml(e){z(e)?Wt.push(...e):wt&&e.id===-1?wt.splice(Ut+1,0,e):e.flags&1||(Wt.push(e),e.flags|=1),jr()}function wo(e,t,n=et+1){for(;n<Ae.length;n++){const s=Ae[n];if(s&&s.flags&2){if(e&&s.id!==e.uid)continue;Ae.splice(n,1),n--,s.flags&4&&(s.flags&=-2),s(),s.flags&4||(s.flags&=-2)}}}function Hr(e){if(Wt.length){const t=[...new Set(Wt)].sort((n,s)=>gn(n)-gn(s));if(Wt.length=0,wt){wt.push(...t);return}for(wt=t,Ut=0;Ut<wt.length;Ut++){const n=wt[Ut];n.flags&4&&(n.flags&=-2),n.flags&8||n(),n.flags&=-2}wt=null,Ut=0}}const gn=e=>e.id==null?e.flags&2?-1:1/0:e.id;function Ur(e){try{for(et=0;et<Ae.length;et++){const t=Ae[et];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),_n(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;et<Ae.length;et++){const t=Ae[et];t&&(t.flags&=-2)}et=-1,Ae.length=0,Hr(),Un=null,(Ae.length||Wt.length)&&Ur()}}let Re=null,Br=null;function Bn(e){const t=Re;return Re=e,Br=e&&e.type.__scopeId||null,t}function Kr(e,t=Re,n){if(!t||e._n)return e;const s=(...o)=>{s._d&&Lo(-1);const r=Bn(t);let i;try{i=e(...o)}finally{Bn(r),s._d&&Lo(1)}return i};return s._n=!0,s._c=!0,s._d=!0,s}function nt(e,t){if(Re===null)return e;const n=us(Re),s=e.dirs||(e.dirs=[]);for(let o=0;o<t.length;o++){let[r,i,l,a=fe]=t[o];r&&(Q(r)&&(r={mounted:r,updated:r}),r.deep&&at(i),s.push({dir:r,instance:n,value:i,oldValue:void 0,arg:l,modifiers:a}))}return e}function At(e,t,n,s){const o=e.dirs,r=t&&t.dirs;for(let i=0;i<o.length;i++){const l=o[i];r&&(l.oldValue=r[i].value);let a=l.dir[s];a&&(ut(),Ye(a,n,8,[e.el,l,e,t]),ft())}}function Vr(e,t){if(Ce){let n=Ce.provides;const s=Ce.parent&&Ce.parent.provides;s===n&&(n=Ce.provides=Object.create(s)),n[e]=t}}function Ct(e,t,n=!1){const s=ao();if(s||Dt){let o=Dt?Dt._context.provides:s?s.parent==null||s.ce?s.vnode.appContext&&s.vnode.appContext.provides:s.parent.provides:void 0;if(o&&e in o)return o[e];if(arguments.length>1)return n&&Q(t)?t.call(s&&s.proxy):t}}function Pl(){return!!(ao()||Dt)}const Ol=Symbol.for("v-scx"),Il=()=>Ct(Ol);function qe(e,t,n){return Wr(e,t,n)}function Wr(e,t,n=fe){const{immediate:s,deep:o,flush:r,once:i}=n,l=xe({},n),a=t&&s||!t&&r!=="post";let u;if(Yt){if(r==="sync"){const v=Il();u=v.__watcherHandles||(v.__watcherHandles=[])}else if(!a){const v=()=>{};return v.stop=st,v.resume=st,v.pause=st,v}}const c=Ce;l.call=(v,w,y)=>Ye(v,c,w,y);let f=!1;r==="post"?l.scheduler=v=>{ke(v,c&&c.suspense)}:r!=="sync"&&(f=!0,l.scheduler=(v,w)=>{w?v():eo(v)}),l.augmentJob=v=>{t&&(v.flags|=4),f&&(v.flags|=2,c&&(v.id=c.uid,v.i=c))};const m=$l(e,t,l);return Yt&&(u?u.push(m):a&&m()),m}function Rl(e,t,n){const s=this.proxy,o=ye(e)?e.includes(".")?qr(s,e):()=>s[e]:e.bind(s,s);let r;Q(t)?r=t:(r=t.handler,n=t);const i=Sn(this),l=Wr(o,r.bind(s),n);return i(),l}function qr(e,t){const n=t.split(".");return()=>{let s=e;for(let o=0;o<n.length&&s;o++)s=s[n[o]];return s}}const Gr=Symbol("_vte"),Ll=e=>e.__isTeleport,an=e=>e&&(e.disabled||e.disabled===""),_o=e=>e&&(e.defer||e.defer===""),xo=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Co=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Ps=(e,t)=>{const n=e&&e.to;return ye(n)?t?t(n):null:n},Yr={name:"Teleport",__isTeleport:!0,process(e,t,n,s,o,r,i,l,a,u){const{mc:c,pc:f,pbc:m,o:{insert:v,querySelector:w,createText:y,createComment:A}}=u,b=an(t.props);let{shapeFlag:S,children:_,dynamicChildren:k}=t;if(e==null){const D=t.el=y(""),X=t.anchor=y("");v(D,n,s),v(X,n,s);const oe=(M,W)=>{S&16&&c(_,M,W,o,r,i,l,a)},H=()=>{const M=t.target=Ps(t.props,w),W=Xr(M,t,y,v);M&&(i!=="svg"&&xo(M)?i="svg":i!=="mathml"&&Co(M)&&(i="mathml"),o&&o.isCE&&(o.ce._teleportTargets||(o.ce._teleportTargets=new Set)).add(M),b||(oe(M,W),Ln(t,!1)))};b&&(oe(n,X),Ln(t,!0)),_o(t.props)?(t.el.__isMounted=!1,ke(()=>{H(),delete t.el.__isMounted},r)):H()}else{if(_o(t.props)&&e.el.__isMounted===!1){ke(()=>{Yr.process(e,t,n,s,o,r,i,l,a,u)},r);return}t.el=e.el,t.targetStart=e.targetStart;const D=t.anchor=e.anchor,X=t.target=e.target,oe=t.targetAnchor=e.targetAnchor,H=an(e.props),M=H?n:X,W=H?D:oe;if(i==="svg"||xo(X)?i="svg":(i==="mathml"||Co(X))&&(i="mathml"),k?(m(e.dynamicChildren,k,M,o,r,i,l),io(e,t,!0)):a||f(e,t,M,W,o,r,i,l,!1),b)H?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Mn(t,n,D,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const ee=t.target=Ps(t.props,w);ee&&Mn(t,ee,null,u,0)}else H&&Mn(t,X,oe,u,1);Ln(t,b)}},remove(e,t,n,{um:s,o:{remove:o}},r){const{shapeFlag:i,children:l,anchor:a,targetStart:u,targetAnchor:c,target:f,props:m}=e;if(f&&(o(u),o(c)),r&&o(a),i&16){const v=r||!an(m);for(let w=0;w<l.length;w++){const y=l[w];s(y,t,n,v,!!y.dynamicChildren)}}},move:Mn,hydrate:Dl};function Mn(e,t,n,{o:{insert:s},m:o},r=2){r===0&&s(e.targetAnchor,t,n);const{el:i,anchor:l,shapeFlag:a,children:u,props:c}=e,f=r===2;if(f&&s(i,t,n),(!f||an(c))&&a&16)for(let m=0;m<u.length;m++)o(u[m],t,n,2);f&&s(l,t,n)}function Dl(e,t,n,s,o,r,{o:{nextSibling:i,parentNode:l,querySelector:a,insert:u,createText:c}},f){function m(y,A,b,S){A.anchor=f(i(y),A,l(y),n,s,o,r),A.targetStart=b,A.targetAnchor=S}const v=t.target=Ps(t.props,a),w=an(t.props);if(v){const y=v._lpa||v.firstChild;if(t.shapeFlag&16)if(w)m(e,t,y,y&&i(y));else{t.anchor=i(e);let A=y;for(;A;){if(A&&A.nodeType===8){if(A.data==="teleport start anchor")t.targetStart=A;else if(A.data==="teleport anchor"){t.targetAnchor=A,v._lpa=t.targetAnchor&&i(t.targetAnchor);break}}A=i(A)}t.targetAnchor||Xr(v,t,c,u),f(y&&i(y),t,v,n,s,o,r)}Ln(t,w)}else w&&t.shapeFlag&16&&m(e,t,e,i(e));return t.anchor&&i(t.anchor)}const zr=Yr;function Ln(e,t){const n=e.ctx;if(n&&n.ut){let s,o;for(t?(s=e.el,o=e.anchor):(s=e.targetStart,o=e.targetAnchor);s&&s!==o;)s.nodeType===1&&s.setAttribute("data-v-owner",n.uid),s=s.nextSibling;n.ut()}}function Xr(e,t,n,s){const o=t.targetStart=n(""),r=t.targetAnchor=n("");return o[Gr]=r,e&&(s(o,e),s(r,e)),r}const It=Symbol("_leaveCb"),Pn=Symbol("_enterCb");function Fl(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return mt(()=>{e.isMounted=!0}),Nt(()=>{e.isUnmounting=!0}),e}const je=[Function,Array],Nl={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:je,onEnter:je,onAfterEnter:je,onEnterCancelled:je,onBeforeLeave:je,onLeave:je,onAfterLeave:je,onLeaveCancelled:je,onBeforeAppear:je,onAppear:je,onAfterAppear:je,onAppearCancelled:je};function jl(e,t){const{leavingVNodes:n}=e;let s=n.get(t.type);return s||(s=Object.create(null),n.set(t.type,s)),s}function Os(e,t,n,s,o){const{appear:r,mode:i,persisted:l=!1,onBeforeEnter:a,onEnter:u,onAfterEnter:c,onEnterCancelled:f,onBeforeLeave:m,onLeave:v,onAfterLeave:w,onLeaveCancelled:y,onBeforeAppear:A,onAppear:b,onAfterAppear:S,onAppearCancelled:_}=t,k=String(e.key),D=jl(n,e),X=(M,W)=>{M&&Ye(M,s,9,W)},oe=(M,W)=>{const ee=W[1];X(M,W),z(M)?M.every(L=>L.length<=1)&&ee():M.length<=1&&ee()},H={mode:i,persisted:l,beforeEnter(M){let W=a;if(!n.isMounted)if(r)W=A||a;else return;M[It]&&M[It](!0);const ee=D[k];ee&&Bt(e,ee)&&ee.el[It]&&ee.el[It](),X(W,[M])},enter(M){let W=u,ee=c,L=f;if(!n.isMounted)if(r)W=b||u,ee=S||c,L=_||f;else return;let U=!1;const F=M[Pn]=J=>{U||(U=!0,J?X(L,[M]):X(ee,[M]),H.delayedLeave&&H.delayedLeave(),M[Pn]=void 0)};W?oe(W,[M,F]):F()},leave(M,W){const ee=String(e.key);if(M[Pn]&&M[Pn](!0),n.isUnmounting)return W();X(m,[M]);let L=!1;const U=M[It]=F=>{L||(L=!0,W(),F?X(y,[M]):X(w,[M]),M[It]=void 0,D[ee]===e&&delete D[ee])};D[ee]=e,v?oe(v,[M,U]):U()},clone(M){return Os(M,t,n,s)}};return H}function vn(e,t){e.shapeFlag&6&&e.component?(e.transition=t,vn(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 Jr(e,t=!1,n){let s=[],o=0;for(let r=0;r<e.length;r++){let i=e[r];const l=n==null?i.key:String(n)+String(i.key!=null?i.key:r);i.type===ge?(i.patchFlag&128&&o++,s=s.concat(Jr(i.children,t,l))):(t||i.type!==pt)&&s.push(l!=null?Ft(i,{key:l}):i)}if(o>1)for(let r=0;r<s.length;r++)s[r].patchFlag=-2;return s}function Hl(e,t){return Q(e)?xe({name:e.name},t,{setup:e}):e}function to(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}const Kn=new WeakMap;function cn(e,t,n,s,o=!1){if(z(e)){e.forEach((w,y)=>cn(w,t&&(z(t)?t[y]:t),n,s,o));return}if(un(s)&&!o){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&cn(e,t,n,s.component.subTree);return}const r=s.shapeFlag&4?us(s.component):s.el,i=o?null:r,{i:l,r:a}=e,u=t&&t.r,c=l.refs===fe?l.refs={}:l.refs,f=l.setupState,m=le(f),v=f===fe?fr:w=>ae(m,w);if(u!=null&&u!==a){if(So(t),ye(u))c[u]=null,v(u)&&(f[u]=null);else if(ve(u)){u.value=null;const w=t;w.k&&(c[w.k]=null)}}if(Q(a))_n(a,l,12,[i,c]);else{const w=ye(a),y=ve(a);if(w||y){const A=()=>{if(e.f){const b=w?v(a)?f[a]:c[a]:a.value;if(o)z(b)&&qs(b,r);else if(z(b))b.includes(r)||b.push(r);else if(w)c[a]=[r],v(a)&&(f[a]=c[a]);else{const S=[r];a.value=S,e.k&&(c[e.k]=S)}}else w?(c[a]=i,v(a)&&(f[a]=i)):y&&(a.value=i,e.k&&(c[e.k]=i))};if(i){const b=()=>{A(),Kn.delete(e)};b.id=-1,Kn.set(e,b),ke(b,n)}else So(e),A()}}}function So(e){const t=Kn.get(e);t&&(t.flags|=8,Kn.delete(e))}const Eo=e=>e.nodeType===8;ns().requestIdleCallback;ns().cancelIdleCallback;function Ul(e,t){if(Eo(e)&&e.data==="["){let n=1,s=e.nextSibling;for(;s;){if(s.nodeType===1){if(t(s)===!1)break}else if(Eo(s))if(s.data==="]"){if(--n===0)break}else s.data==="["&&n++;s=s.nextSibling}}else t(e)}const un=e=>!!e.type.__asyncLoader;function Bl(e){Q(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:s,delay:o=200,hydrate:r,timeout:i,suspensible:l=!0,onError:a}=e;let u=null,c,f=0;const m=()=>(f++,u=null,v()),v=()=>{let w;return u||(w=u=t().catch(y=>{if(y=y instanceof Error?y:new Error(String(y)),a)return new Promise((A,b)=>{a(y,()=>A(m()),()=>b(y),f+1)});throw y}).then(y=>w!==u&&u?u:(y&&(y.__esModule||y[Symbol.toStringTag]==="Module")&&(y=y.default),c=y,y)))};return Hl({name:"AsyncComponentWrapper",__asyncLoader:v,__asyncHydrate(w,y,A){let b=!1;(y.bu||(y.bu=[])).push(()=>b=!0);const S=()=>{b||A()},_=r?()=>{const k=r(S,D=>Ul(w,D));k&&(y.bum||(y.bum=[])).push(k)}:S;c?_():v().then(()=>!y.isUnmounted&&_())},get __asyncResolved(){return c},setup(){const w=Ce;if(to(w),c)return()=>On(c,w);const y=_=>{u=null,xn(_,w,13,!s)};if(l&&w.suspense||Yt)return v().then(_=>()=>On(_,w)).catch(_=>(y(_),()=>s?_e(s,{error:_}):null));const A=K(!1),b=K(),S=K(!!o);return o&&setTimeout(()=>{S.value=!1},o),i!=null&&setTimeout(()=>{if(!A.value&&!b.value){const _=new Error(`Async component timed out after ${i}ms.`);y(_),b.value=_}},i),v().then(()=>{A.value=!0,w.parent&&no(w.parent.vnode)&&w.parent.update()}).catch(_=>{y(_),b.value=_}),()=>{if(A.value&&c)return On(c,w);if(b.value&&s)return _e(s,{error:b.value});if(n&&!S.value)return On(n,w)}}})}function On(e,t){const{ref:n,props:s,children:o,ce:r}=t.vnode,i=_e(e,s,o);return i.ref=n,i.ce=r,delete t.vnode.ce,i}const no=e=>e.type.__isKeepAlive;function Kl(e,t){Zr(e,"a",t)}function Vl(e,t){Zr(e,"da",t)}function Zr(e,t,n=Ce){const s=e.__wdc||(e.__wdc=()=>{let o=n;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(ls(t,s,n),n){let o=n.parent;for(;o&&o.parent;)no(o.parent.vnode)&&Wl(s,t,n,o),o=o.parent}}function Wl(e,t,n,s){const o=ls(t,e,s,!0);so(()=>{qs(s[t],o)},n)}function ls(e,t,n=Ce,s=!1){if(n){const o=n[e]||(n[e]=[]),r=t.__weh||(t.__weh=(...i)=>{ut();const l=Sn(n),a=Ye(t,n,e,i);return l(),ft(),a});return s?o.unshift(r):o.push(r),r}}const ht=e=>(t,n=Ce)=>{(!Yt||e==="sp")&&ls(e,(...s)=>t(...s),n)},ql=ht("bm"),mt=ht("m"),Gl=ht("bu"),Qr=ht("u"),Nt=ht("bum"),so=ht("um"),Yl=ht("sp"),zl=ht("rtg"),Xl=ht("rtc");function Jl(e,t=Ce){ls("ec",e,t)}const Zl="components";function Ql(e,t){return ta(Zl,e,!0,t)||e}const ea=Symbol.for("v-ndc");function ta(e,t,n=!0,s=!1){const o=Re||Ce;if(o){const r=o.type;{const l=ja(r,!1);if(l&&(l===t||l===Ke(t)||l===es(Ke(t))))return r}const i=To(o[e]||r[e],t)||To(o.appContext[e],t);return!i&&s?r:i}}function To(e,t){return e&&(e[t]||e[Ke(t)]||e[es(Ke(t))])}function Cn(e,t,n,s){let o;const r=n,i=z(e);if(i||ye(e)){const l=i&&ct(e);let a=!1,u=!1;l&&(a=!De(e),u=dt(e),e=os(e)),o=new Array(e.length);for(let c=0,f=e.length;c<f;c++)o[c]=t(a?u?Gt(Ge(e[c])):Ge(e[c]):e[c],c,void 0,r)}else if(typeof e=="number"){o=new Array(e);for(let l=0;l<e;l++)o[l]=t(l+1,l,void 0,r)}else if(de(e))if(e[Symbol.iterator])o=Array.from(e,(l,a)=>t(l,a,void 0,r));else{const l=Object.keys(e);o=new Array(l.length);for(let a=0,u=l.length;a<u;a++){const c=l[a];o[a]=t(e[c],c,a,r)}}else o=[];return o}const Is=e=>e?yi(e)?us(e):Is(e.parent):null,fn=xe(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=>Is(e.parent),$root:e=>Is(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>ti(e),$forceUpdate:e=>e.f||(e.f=()=>{eo(e.update)}),$nextTick:e=>e.n||(e.n=Et.bind(e.proxy)),$watch:e=>Rl.bind(e)}),ys=(e,t)=>e!==fe&&!e.__isScriptSetup&&ae(e,t),na={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:s,data:o,props:r,accessCache:i,type:l,appContext:a}=e;if(t[0]!=="$"){const m=i[t];if(m!==void 0)switch(m){case 1:return s[t];case 2:return o[t];case 4:return n[t];case 3:return r[t]}else{if(ys(s,t))return i[t]=1,s[t];if(o!==fe&&ae(o,t))return i[t]=2,o[t];if(ae(r,t))return i[t]=3,r[t];if(n!==fe&&ae(n,t))return i[t]=4,n[t];Rs&&(i[t]=0)}}const u=fn[t];let c,f;if(u)return t==="$attrs"&&Te(e.attrs,"get",""),u(e);if((c=l.__cssModules)&&(c=c[t]))return c;if(n!==fe&&ae(n,t))return i[t]=4,n[t];if(f=a.config.globalProperties,ae(f,t))return f[t]},set({_:e},t,n){const{data:s,setupState:o,ctx:r}=e;return ys(o,t)?(o[t]=n,!0):s!==fe&&ae(s,t)?(s[t]=n,!0):ae(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:o,props:r,type:i}},l){let a;return!!(n[l]||e!==fe&&l[0]!=="$"&&ae(e,l)||ys(t,l)||ae(r,l)||ae(s,l)||ae(fn,l)||ae(o.config.globalProperties,l)||(a=i.__cssModules)&&a[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ae(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function $o(e){return z(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Rs=!0;function sa(e){const t=ti(e),n=e.proxy,s=e.ctx;Rs=!1,t.beforeCreate&&ko(t.beforeCreate,e,"bc");const{data:o,computed:r,methods:i,watch:l,provide:a,inject:u,created:c,beforeMount:f,mounted:m,beforeUpdate:v,updated:w,activated:y,deactivated:A,beforeDestroy:b,beforeUnmount:S,destroyed:_,unmounted:k,render:D,renderTracked:X,renderTriggered:oe,errorCaptured:H,serverPrefetch:M,expose:W,inheritAttrs:ee,components:L,directives:U,filters:F}=t;if(u&&oa(u,s,null),i)for(const q in i){const ne=i[q];Q(ne)&&(s[q]=ne.bind(n))}if(o){const q=o.call(n,n);de(q)&&(e.data=rs(q))}if(Rs=!0,r)for(const q in r){const ne=r[q],be=Q(ne)?ne.bind(n,n):Q(ne.get)?ne.get.bind(n,n):st,Ne=!Q(ne)&&Q(ne.set)?ne.set.bind(n):st,we=Fe({get:be,set:Ne});Object.defineProperty(s,q,{enumerable:!0,configurable:!0,get:()=>we.value,set:O=>we.value=O})}if(l)for(const q in l)ei(l[q],s,n,q);if(a){const q=Q(a)?a.call(n):a;Reflect.ownKeys(q).forEach(ne=>{Vr(ne,q[ne])})}c&&ko(c,e,"c");function G(q,ne){z(ne)?ne.forEach(be=>q(be.bind(n))):ne&&q(ne.bind(n))}if(G(ql,f),G(mt,m),G(Gl,v),G(Qr,w),G(Kl,y),G(Vl,A),G(Jl,H),G(Xl,X),G(zl,oe),G(Nt,S),G(so,k),G(Yl,M),z(W))if(W.length){const q=e.exposed||(e.exposed={});W.forEach(ne=>{Object.defineProperty(q,ne,{get:()=>n[ne],set:be=>n[ne]=be,enumerable:!0})})}else e.exposed||(e.exposed={});D&&e.render===st&&(e.render=D),ee!=null&&(e.inheritAttrs=ee),L&&(e.components=L),U&&(e.directives=U),M&&to(e)}function oa(e,t,n=st){z(e)&&(e=Ls(e));for(const s in e){const o=e[s];let r;de(o)?"default"in o?r=Ct(o.from||s,o.default,!0):r=Ct(o.from||s):r=Ct(o),ve(r)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>r.value,set:i=>r.value=i}):t[s]=r}}function ko(e,t,n){Ye(z(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function ei(e,t,n,s){let o=s.includes(".")?qr(n,s):()=>n[s];if(ye(e)){const r=t[e];Q(r)&&qe(o,r)}else if(Q(e))qe(o,e.bind(n));else if(de(e))if(z(e))e.forEach(r=>ei(r,t,n,s));else{const r=Q(e.handler)?e.handler.bind(n):t[e.handler];Q(r)&&qe(o,r,e)}}function ti(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:o,optionsCache:r,config:{optionMergeStrategies:i}}=e.appContext,l=r.get(t);let a;return l?a=l:!o.length&&!n&&!s?a=t:(a={},o.length&&o.forEach(u=>Vn(a,u,i,!0)),Vn(a,t,i)),de(t)&&r.set(t,a),a}function Vn(e,t,n,s=!1){const{mixins:o,extends:r}=t;r&&Vn(e,r,n,!0),o&&o.forEach(i=>Vn(e,i,n,!0));for(const i in t)if(!(s&&i==="expose")){const l=ra[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const ra={data:Ao,props:Mo,emits:Mo,methods:nn,computed:nn,beforeCreate:$e,created:$e,beforeMount:$e,mounted:$e,beforeUpdate:$e,updated:$e,beforeDestroy:$e,beforeUnmount:$e,destroyed:$e,unmounted:$e,activated:$e,deactivated:$e,errorCaptured:$e,serverPrefetch:$e,components:nn,directives:nn,watch:la,provide:Ao,inject:ia};function Ao(e,t){return t?e?function(){return xe(Q(e)?e.call(this,this):e,Q(t)?t.call(this,this):t)}:t:e}function ia(e,t){return nn(Ls(e),Ls(t))}function Ls(e){if(z(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function $e(e,t){return e?[...new Set([].concat(e,t))]:t}function nn(e,t){return e?xe(Object.create(null),e,t):t}function Mo(e,t){return e?z(e)&&z(t)?[...new Set([...e,...t])]:xe(Object.create(null),$o(e),$o(t??{})):t}function la(e,t){if(!e)return t;if(!t)return e;const n=xe(Object.create(null),e);for(const s in t)n[s]=$e(e[s],t[s]);return n}function ni(){return{app:null,config:{isNativeTag:fr,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let aa=0;function ca(e,t){return function(s,o=null){Q(s)||(s=xe({},s)),o!=null&&!de(o)&&(o=null);const r=ni(),i=new WeakSet,l=[];let a=!1;const u=r.app={_uid:aa++,_component:s,_props:o,_container:null,_context:r,_instance:null,version:Ua,get config(){return r.config},set config(c){},use(c,...f){return i.has(c)||(c&&Q(c.install)?(i.add(c),c.install(u,...f)):Q(c)&&(i.add(c),c(u,...f))),u},mixin(c){return r.mixins.includes(c)||r.mixins.push(c),u},component(c,f){return f?(r.components[c]=f,u):r.components[c]},directive(c,f){return f?(r.directives[c]=f,u):r.directives[c]},mount(c,f,m){if(!a){const v=u._ceVNode||_e(s,o);return v.appContext=r,m===!0?m="svg":m===!1&&(m=void 0),e(v,c,m),a=!0,u._container=c,c.__vue_app__=u,us(v.component)}},onUnmount(c){l.push(c)},unmount(){a&&(Ye(l,u._instance,16),e(null,u._container),delete u._container.__vue_app__)},provide(c,f){return r.provides[c]=f,u},runWithContext(c){const f=Dt;Dt=u;try{return c()}finally{Dt=f}}};return u}}let Dt=null;const ua=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Ke(t)}Modifiers`]||e[`${St(t)}Modifiers`];function fa(e,t,...n){if(e.isUnmounted)return;const s=e.vnode.props||fe;let o=n;const r=t.startsWith("update:"),i=r&&ua(s,t.slice(7));i&&(i.trim&&(o=n.map(c=>ye(c)?c.trim():c)),i.number&&(o=n.map(ts)));let l,a=s[l=ps(t)]||s[l=ps(Ke(t))];!a&&r&&(a=s[l=ps(St(t))]),a&&Ye(a,e,6,o);const u=s[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Ye(u,e,6,o)}}const da=new WeakMap;function si(e,t,n=!1){const s=n?da:t.emitsCache,o=s.get(e);if(o!==void 0)return o;const r=e.emits;let i={},l=!1;if(!Q(e)){const a=u=>{const c=si(u,t,!0);c&&(l=!0,xe(i,c))};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!r&&!l?(de(e)&&s.set(e,null),null):(z(r)?r.forEach(a=>i[a]=null):xe(i,r),de(e)&&s.set(e,i),i)}function as(e,t){return!e||!Xn(t)?!1:(t=t.slice(2).replace(/Once$/,""),ae(e,t[0].toLowerCase()+t.slice(1))||ae(e,St(t))||ae(e,t))}function Po(e){const{type:t,vnode:n,proxy:s,withProxy:o,propsOptions:[r],slots:i,attrs:l,emit:a,render:u,renderCache:c,props:f,data:m,setupState:v,ctx:w,inheritAttrs:y}=e,A=Bn(e);let b,S;try{if(n.shapeFlag&4){const k=o||s,D=k;b=tt(u.call(D,k,c,f,v,m,w)),S=l}else{const k=t;b=tt(k.length>1?k(f,{attrs:l,slots:i,emit:a}):k(f,null)),S=t.props?l:pa(l)}}catch(k){dn.length=0,xn(k,e,1),b=_e(pt)}let _=b;if(S&&y!==!1){const k=Object.keys(S),{shapeFlag:D}=_;k.length&&D&7&&(r&&k.some(Ws)&&(S=ha(S,r)),_=Ft(_,S,!1,!0))}return n.dirs&&(_=Ft(_,null,!1,!0),_.dirs=_.dirs?_.dirs.concat(n.dirs):n.dirs),n.transition&&vn(_,n.transition),b=_,Bn(A),b}const pa=e=>{let t;for(const n in e)(n==="class"||n==="style"||Xn(n))&&((t||(t={}))[n]=e[n]);return t},ha=(e,t)=>{const n={};for(const s in e)(!Ws(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function ma(e,t,n){const{props:s,children:o,component:r}=e,{props:i,children:l,patchFlag:a}=t,u=r.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&a>=0){if(a&1024)return!0;if(a&16)return s?Oo(s,i,u):!!i;if(a&8){const c=t.dynamicProps;for(let f=0;f<c.length;f++){const m=c[f];if(i[m]!==s[m]&&!as(u,m))return!0}}}else return(o||l)&&(!l||!l.$stable)?!0:s===i?!1:s?i?Oo(s,i,u):!0:!!i;return!1}function Oo(e,t,n){const s=Object.keys(t);if(s.length!==Object.keys(e).length)return!0;for(let o=0;o<s.length;o++){const r=s[o];if(t[r]!==e[r]&&!as(n,r))return!0}return!1}function ga({vnode:e,parent:t},n){for(;t;){const s=t.subTree;if(s.suspense&&s.suspense.activeBranch===e&&(s.el=e.el),s===e)(e=t.vnode).el=n,t=t.parent;else break}}const oi={},ri=()=>Object.create(oi),ii=e=>Object.getPrototypeOf(e)===oi;function va(e,t,n,s=!1){const o={},r=ri();e.propsDefaults=Object.create(null),li(e,t,o,r);for(const i in e.propsOptions[0])i in o||(o[i]=void 0);n?e.props=s?o:vl(o):e.type.props?e.props=o:e.props=r,e.attrs=r}function ya(e,t,n,s){const{props:o,attrs:r,vnode:{patchFlag:i}}=e,l=le(o),[a]=e.propsOptions;let u=!1;if((s||i>0)&&!(i&16)){if(i&8){const c=e.vnode.dynamicProps;for(let f=0;f<c.length;f++){let m=c[f];if(as(e.emitsOptions,m))continue;const v=t[m];if(a)if(ae(r,m))v!==r[m]&&(r[m]=v,u=!0);else{const w=Ke(m);o[w]=Ds(a,l,w,v,e,!1)}else v!==r[m]&&(r[m]=v,u=!0)}}}else{li(e,t,o,r)&&(u=!0);let c;for(const f in l)(!t||!ae(t,f)&&((c=St(f))===f||!ae(t,c)))&&(a?n&&(n[f]!==void 0||n[c]!==void 0)&&(o[f]=Ds(a,l,f,void 0,e,!0)):delete o[f]);if(r!==l)for(const f in r)(!t||!ae(t,f))&&(delete r[f],u=!0)}u&<(e.attrs,"set","")}function li(e,t,n,s){const[o,r]=e.propsOptions;let i=!1,l;if(t)for(let a in t){if(on(a))continue;const u=t[a];let c;o&&ae(o,c=Ke(a))?!r||!r.includes(c)?n[c]=u:(l||(l={}))[c]=u:as(e.emitsOptions,a)||(!(a in s)||u!==s[a])&&(s[a]=u,i=!0)}if(r){const a=le(n),u=l||fe;for(let c=0;c<r.length;c++){const f=r[c];n[f]=Ds(o,a,f,u[f],e,!ae(u,f))}}return i}function Ds(e,t,n,s,o,r){const i=e[n];if(i!=null){const l=ae(i,"default");if(l&&s===void 0){const a=i.default;if(i.type!==Function&&!i.skipFactory&&Q(a)){const{propsDefaults:u}=o;if(n in u)s=u[n];else{const c=Sn(o);s=u[n]=a.call(null,t),c()}}else s=a;o.ce&&o.ce._setProp(n,s)}i[0]&&(r&&!l?s=!1:i[1]&&(s===""||s===St(n))&&(s=!0))}return s}const ba=new WeakMap;function ai(e,t,n=!1){const s=n?ba:t.propsCache,o=s.get(e);if(o)return o;const r=e.props,i={},l=[];let a=!1;if(!Q(e)){const c=f=>{a=!0;const[m,v]=ai(f,t,!0);xe(i,m),v&&l.push(...v)};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!r&&!a)return de(e)&&s.set(e,Kt),Kt;if(z(r))for(let c=0;c<r.length;c++){const f=Ke(r[c]);Io(f)&&(i[f]=fe)}else if(r)for(const c in r){const f=Ke(c);if(Io(f)){const m=r[c],v=i[f]=z(m)||Q(m)?{type:m}:xe({},m),w=v.type;let y=!1,A=!0;if(z(w))for(let b=0;b<w.length;++b){const S=w[b],_=Q(S)&&S.name;if(_==="Boolean"){y=!0;break}else _==="String"&&(A=!1)}else y=Q(w)&&w.name==="Boolean";v[0]=y,v[1]=A,(y||ae(v,"default"))&&l.push(f)}}const u=[i,l];return de(e)&&s.set(e,u),u}function Io(e){return e[0]!=="$"&&!on(e)}const oo=e=>e==="_"||e==="_ctx"||e==="$stable",ro=e=>z(e)?e.map(tt):[tt(e)],wa=(e,t,n)=>{if(t._n)return t;const s=Kr((...o)=>ro(t(...o)),n);return s._c=!1,s},ci=(e,t,n)=>{const s=e._ctx;for(const o in e){if(oo(o))continue;const r=e[o];if(Q(r))t[o]=wa(o,r,s);else if(r!=null){const i=ro(r);t[o]=()=>i}}},ui=(e,t)=>{const n=ro(t);e.slots.default=()=>n},fi=(e,t,n)=>{for(const s in t)(n||!oo(s))&&(e[s]=t[s])},_a=(e,t,n)=>{const s=e.slots=ri();if(e.vnode.shapeFlag&32){const o=t._;o?(fi(s,t,n),n&&mr(s,"_",o,!0)):ci(t,s)}else t&&ui(e,t)},xa=(e,t,n)=>{const{vnode:s,slots:o}=e;let r=!0,i=fe;if(s.shapeFlag&32){const l=t._;l?n&&l===1?r=!1:fi(o,t,n):(r=!t.$stable,ci(t,o)),i=t}else t&&(ui(e,t),i={default:1});if(r)for(const l in o)!oo(l)&&i[l]==null&&delete o[l]},ke=$a;function Ca(e){return Sa(e)}function Sa(e,t){const n=ns();n.__VUE__=!0;const{insert:s,remove:o,patchProp:r,createElement:i,createText:l,createComment:a,setText:u,setElementText:c,parentNode:f,nextSibling:m,setScopeId:v=st,insertStaticContent:w}=e,y=(d,p,h,g=null,x=null,E=null,I=void 0,P=null,T=!!p.dynamicChildren)=>{if(d===p)return;d&&!Bt(d,p)&&(g=$t(d),O(d,x,E,!0),d=null),p.patchFlag===-2&&(T=!1,p.dynamicChildren=null);const{type:$,ref:V,shapeFlag:j}=p;switch($){case cs:A(d,p,h,g);break;case pt:b(d,p,h,g);break;case ws:d==null&&S(p,h,g,I);break;case ge:L(d,p,h,g,x,E,I,P,T);break;default:j&1?D(d,p,h,g,x,E,I,P,T):j&6?U(d,p,h,g,x,E,I,P,T):(j&64||j&128)&&$.process(d,p,h,g,x,E,I,P,T,kt)}V!=null&&x?cn(V,d&&d.ref,E,p||d,!p):V==null&&d&&d.ref!=null&&cn(d.ref,null,E,d,!0)},A=(d,p,h,g)=>{if(d==null)s(p.el=l(p.children),h,g);else{const x=p.el=d.el;p.children!==d.children&&u(x,p.children)}},b=(d,p,h,g)=>{d==null?s(p.el=a(p.children||""),h,g):p.el=d.el},S=(d,p,h,g)=>{[d.el,d.anchor]=w(d.children,p,h,g,d.el,d.anchor)},_=({el:d,anchor:p},h,g)=>{let x;for(;d&&d!==p;)x=m(d),s(d,h,g),d=x;s(p,h,g)},k=({el:d,anchor:p})=>{let h;for(;d&&d!==p;)h=m(d),o(d),d=h;o(p)},D=(d,p,h,g,x,E,I,P,T)=>{if(p.type==="svg"?I="svg":p.type==="math"&&(I="mathml"),d==null)X(p,h,g,x,E,I,P,T);else{const $=d.el&&d.el._isVueCE?d.el:null;try{$&&$._beginPatch(),M(d,p,x,E,I,P,T)}finally{$&&$._endPatch()}}},X=(d,p,h,g,x,E,I,P)=>{let T,$;const{props:V,shapeFlag:j,transition:Y,dirs:Z}=d;if(T=d.el=i(d.type,E,V&&V.is,V),j&8?c(T,d.children):j&16&&H(d.children,T,null,g,x,bs(d,E),I,P),Z&&At(d,null,g,"created"),oe(T,d,d.scopeId,I,g),V){for(const pe in V)pe!=="value"&&!on(pe)&&r(T,pe,null,V[pe],E,g);"value"in V&&r(T,"value",null,V.value,E),($=V.onVnodeBeforeMount)&&Ze($,g,d)}Z&&At(d,null,g,"beforeMount");const ie=Ea(x,Y);ie&&Y.beforeEnter(T),s(T,p,h),(($=V&&V.onVnodeMounted)||ie||Z)&&ke(()=>{$&&Ze($,g,d),ie&&Y.enter(T),Z&&At(d,null,g,"mounted")},x)},oe=(d,p,h,g,x)=>{if(h&&v(d,h),g)for(let E=0;E<g.length;E++)v(d,g[E]);if(x){let E=x.subTree;if(p===E||hi(E.type)&&(E.ssContent===p||E.ssFallback===p)){const I=x.vnode;oe(d,I,I.scopeId,I.slotScopeIds,x.parent)}}},H=(d,p,h,g,x,E,I,P,T=0)=>{for(let $=T;$<d.length;$++){const V=d[$]=P?_t(d[$]):tt(d[$]);y(null,V,p,h,g,x,E,I,P)}},M=(d,p,h,g,x,E,I)=>{const P=p.el=d.el;let{patchFlag:T,dynamicChildren:$,dirs:V}=p;T|=d.patchFlag&16;const j=d.props||fe,Y=p.props||fe;let Z;if(h&&Mt(h,!1),(Z=Y.onVnodeBeforeUpdate)&&Ze(Z,h,p,d),V&&At(p,d,h,"beforeUpdate"),h&&Mt(h,!0),(j.innerHTML&&Y.innerHTML==null||j.textContent&&Y.textContent==null)&&c(P,""),$?W(d.dynamicChildren,$,P,h,g,bs(p,x),E):I||ne(d,p,P,null,h,g,bs(p,x),E,!1),T>0){if(T&16)ee(P,j,Y,h,x);else if(T&2&&j.class!==Y.class&&r(P,"class",null,Y.class,x),T&4&&r(P,"style",j.style,Y.style,x),T&8){const ie=p.dynamicProps;for(let pe=0;pe<ie.length;pe++){const ce=ie[pe],Pe=j[ce],Oe=Y[ce];(Oe!==Pe||ce==="value")&&r(P,ce,Pe,Oe,x,h)}}T&1&&d.children!==p.children&&c(P,p.children)}else!I&&$==null&&ee(P,j,Y,h,x);((Z=Y.onVnodeUpdated)||V)&&ke(()=>{Z&&Ze(Z,h,p,d),V&&At(p,d,h,"updated")},g)},W=(d,p,h,g,x,E,I)=>{for(let P=0;P<p.length;P++){const T=d[P],$=p[P],V=T.el&&(T.type===ge||!Bt(T,$)||T.shapeFlag&198)?f(T.el):h;y(T,$,V,null,g,x,E,I,!0)}},ee=(d,p,h,g,x)=>{if(p!==h){if(p!==fe)for(const E in p)!on(E)&&!(E in h)&&r(d,E,p[E],null,x,g);for(const E in h){if(on(E))continue;const I=h[E],P=p[E];I!==P&&E!=="value"&&r(d,E,P,I,x,g)}"value"in h&&r(d,"value",p.value,h.value,x)}},L=(d,p,h,g,x,E,I,P,T)=>{const $=p.el=d?d.el:l(""),V=p.anchor=d?d.anchor:l("");let{patchFlag:j,dynamicChildren:Y,slotScopeIds:Z}=p;Z&&(P=P?P.concat(Z):Z),d==null?(s($,h,g),s(V,h,g),H(p.children||[],h,V,x,E,I,P,T)):j>0&&j&64&&Y&&d.dynamicChildren&&d.dynamicChildren.length===Y.length?(W(d.dynamicChildren,Y,h,x,E,I,P),(p.key!=null||x&&p===x.subTree)&&io(d,p,!0)):ne(d,p,h,V,x,E,I,P,T)},U=(d,p,h,g,x,E,I,P,T)=>{p.slotScopeIds=P,d==null?p.shapeFlag&512?x.ctx.activate(p,h,g,I,T):F(p,h,g,x,E,I,T):J(d,p,T)},F=(d,p,h,g,x,E,I)=>{const P=d.component=Ra(d,g,x);if(no(d)&&(P.ctx.renderer=kt),La(P,!1,I),P.asyncDep){if(x&&x.registerDep(P,G,I),!d.el){const T=P.subTree=_e(pt);b(null,T,p,h),d.placeholder=T.el}}else G(P,d,p,h,x,E,I)},J=(d,p,h)=>{const g=p.component=d.component;if(ma(d,p,h))if(g.asyncDep&&!g.asyncResolved){q(g,p,h);return}else g.next=p,g.update();else p.el=d.el,g.vnode=p},G=(d,p,h,g,x,E,I)=>{const P=()=>{if(d.isMounted){let{next:j,bu:Y,u:Z,parent:ie,vnode:pe}=d;{const Xe=di(d);if(Xe){j&&(j.el=pe.el,q(d,j,I)),Xe.asyncDep.then(()=>{d.isUnmounted||P()});return}}let ce=j,Pe;Mt(d,!1),j?(j.el=pe.el,q(d,j,I)):j=pe,Y&&Rn(Y),(Pe=j.props&&j.props.onVnodeBeforeUpdate)&&Ze(Pe,ie,j,pe),Mt(d,!0);const Oe=Po(d),ze=d.subTree;d.subTree=Oe,y(ze,Oe,f(ze.el),$t(ze),d,x,E),j.el=Oe.el,ce===null&&ga(d,Oe.el),Z&&ke(Z,x),(Pe=j.props&&j.props.onVnodeUpdated)&&ke(()=>Ze(Pe,ie,j,pe),x)}else{let j;const{el:Y,props:Z}=p,{bm:ie,m:pe,parent:ce,root:Pe,type:Oe}=d,ze=un(p);Mt(d,!1),ie&&Rn(ie),!ze&&(j=Z&&Z.onVnodeBeforeMount)&&Ze(j,ce,p),Mt(d,!0);{Pe.ce&&Pe.ce._def.shadowRoot!==!1&&Pe.ce._injectChildStyle(Oe);const Xe=d.subTree=Po(d);y(null,Xe,h,g,d,x,E),p.el=Xe.el}if(pe&&ke(pe,x),!ze&&(j=Z&&Z.onVnodeMounted)){const Xe=p;ke(()=>Ze(j,ce,Xe),x)}(p.shapeFlag&256||ce&&un(ce.vnode)&&ce.vnode.shapeFlag&256)&&d.a&&ke(d.a,x),d.isMounted=!0,p=h=g=null}};d.scope.on();const T=d.effect=new xr(P);d.scope.off();const $=d.update=T.run.bind(T),V=d.job=T.runIfDirty.bind(T);V.i=d,V.id=d.uid,T.scheduler=()=>eo(V),Mt(d,!0),$()},q=(d,p,h)=>{p.component=d;const g=d.vnode.props;d.vnode=p,d.next=null,ya(d,p.props,g,h),xa(d,p.children,h),ut(),wo(d),ft()},ne=(d,p,h,g,x,E,I,P,T=!1)=>{const $=d&&d.children,V=d?d.shapeFlag:0,j=p.children,{patchFlag:Y,shapeFlag:Z}=p;if(Y>0){if(Y&128){Ne($,j,h,g,x,E,I,P,T);return}else if(Y&256){be($,j,h,g,x,E,I,P,T);return}}Z&8?(V&16&&Me($,x,E),j!==$&&c(h,j)):V&16?Z&16?Ne($,j,h,g,x,E,I,P,T):Me($,x,E,!0):(V&8&&c(h,""),Z&16&&H(j,h,g,x,E,I,P,T))},be=(d,p,h,g,x,E,I,P,T)=>{d=d||Kt,p=p||Kt;const $=d.length,V=p.length,j=Math.min($,V);let Y;for(Y=0;Y<j;Y++){const Z=p[Y]=T?_t(p[Y]):tt(p[Y]);y(d[Y],Z,h,null,x,E,I,P,T)}$>V?Me(d,x,E,!0,!1,j):H(p,h,g,x,E,I,P,T,j)},Ne=(d,p,h,g,x,E,I,P,T)=>{let $=0;const V=p.length;let j=d.length-1,Y=V-1;for(;$<=j&&$<=Y;){const Z=d[$],ie=p[$]=T?_t(p[$]):tt(p[$]);if(Bt(Z,ie))y(Z,ie,h,null,x,E,I,P,T);else break;$++}for(;$<=j&&$<=Y;){const Z=d[j],ie=p[Y]=T?_t(p[Y]):tt(p[Y]);if(Bt(Z,ie))y(Z,ie,h,null,x,E,I,P,T);else break;j--,Y--}if($>j){if($<=Y){const Z=Y+1,ie=Z<V?p[Z].el:g;for(;$<=Y;)y(null,p[$]=T?_t(p[$]):tt(p[$]),h,ie,x,E,I,P,T),$++}}else if($>Y)for(;$<=j;)O(d[$],x,E,!0),$++;else{const Z=$,ie=$,pe=new Map;for($=ie;$<=Y;$++){const Ie=p[$]=T?_t(p[$]):tt(p[$]);Ie.key!=null&&pe.set(Ie.key,$)}let ce,Pe=0;const Oe=Y-ie+1;let ze=!1,Xe=0;const Jt=new Array(Oe);for($=0;$<Oe;$++)Jt[$]=0;for($=Z;$<=j;$++){const Ie=d[$];if(Pe>=Oe){O(Ie,x,E,!0);continue}let Je;if(Ie.key!=null)Je=pe.get(Ie.key);else for(ce=ie;ce<=Y;ce++)if(Jt[ce-ie]===0&&Bt(Ie,p[ce])){Je=ce;break}Je===void 0?O(Ie,x,E,!0):(Jt[Je-ie]=$+1,Je>=Xe?Xe=Je:ze=!0,y(Ie,p[Je],h,null,x,E,I,P,T),Pe++)}const po=ze?Ta(Jt):Kt;for(ce=po.length-1,$=Oe-1;$>=0;$--){const Ie=ie+$,Je=p[Ie],ho=p[Ie+1],mo=Ie+1<V?ho.el||pi(ho):g;Jt[$]===0?y(null,Je,h,mo,x,E,I,P,T):ze&&(ce<0||$!==po[ce]?we(Je,h,mo,2):ce--)}}},we=(d,p,h,g,x=null)=>{const{el:E,type:I,transition:P,children:T,shapeFlag:$}=d;if($&6){we(d.component.subTree,p,h,g);return}if($&128){d.suspense.move(p,h,g);return}if($&64){I.move(d,p,h,kt);return}if(I===ge){s(E,p,h);for(let j=0;j<T.length;j++)we(T[j],p,h,g);s(d.anchor,p,h);return}if(I===ws){_(d,p,h);return}if(g!==2&&$&1&&P)if(g===0)P.beforeEnter(E),s(E,p,h),ke(()=>P.enter(E),x);else{const{leave:j,delayLeave:Y,afterLeave:Z}=P,ie=()=>{d.ctx.isUnmounted?o(E):s(E,p,h)},pe=()=>{E._isLeaving&&E[It](!0),j(E,()=>{ie(),Z&&Z()})};Y?Y(E,ie,pe):pe()}else s(E,p,h)},O=(d,p,h,g=!1,x=!1)=>{const{type:E,props:I,ref:P,children:T,dynamicChildren:$,shapeFlag:V,patchFlag:j,dirs:Y,cacheIndex:Z}=d;if(j===-2&&(x=!1),P!=null&&(ut(),cn(P,null,h,d,!0),ft()),Z!=null&&(p.renderCache[Z]=void 0),V&256){p.ctx.deactivate(d);return}const ie=V&1&&Y,pe=!un(d);let ce;if(pe&&(ce=I&&I.onVnodeBeforeUnmount)&&Ze(ce,p,d),V&6)me(d.component,h,g);else{if(V&128){d.suspense.unmount(h,g);return}ie&&At(d,null,p,"beforeUnmount"),V&64?d.type.remove(d,p,h,kt,g):$&&!$.hasOnce&&(E!==ge||j>0&&j&64)?Me($,p,h,!1,!0):(E===ge&&j&384||!x&&V&16)&&Me(T,p,h),g&&N(d)}(pe&&(ce=I&&I.onVnodeUnmounted)||ie)&&ke(()=>{ce&&Ze(ce,p,d),ie&&At(d,null,p,"unmounted")},h)},N=d=>{const{type:p,el:h,anchor:g,transition:x}=d;if(p===ge){re(h,g);return}if(p===ws){k(d);return}const E=()=>{o(h),x&&!x.persisted&&x.afterLeave&&x.afterLeave()};if(d.shapeFlag&1&&x&&!x.persisted){const{leave:I,delayLeave:P}=x,T=()=>I(h,E);P?P(d.el,E,T):T()}else E()},re=(d,p)=>{let h;for(;d!==p;)h=m(d),o(d),d=h;o(p)},me=(d,p,h)=>{const{bum:g,scope:x,job:E,subTree:I,um:P,m:T,a:$}=d;Ro(T),Ro($),g&&Rn(g),x.stop(),E&&(E.flags|=8,O(I,d,p,h)),P&&ke(P,p),ke(()=>{d.isUnmounted=!0},p)},Me=(d,p,h,g=!1,x=!1,E=0)=>{for(let I=E;I<d.length;I++)O(d[I],p,h,g,x)},$t=d=>{if(d.shapeFlag&6)return $t(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const p=m(d.anchor||d.el),h=p&&p[Gr];return h?m(h):p};let Xt=!1;const En=(d,p,h)=>{let g;d==null?p._vnode&&(O(p._vnode,null,null,!0),g=p._vnode.component):y(p._vnode||null,d,p,null,null,null,h),p._vnode=d,Xt||(Xt=!0,wo(g),Hr(),Xt=!1)},kt={p:y,um:O,m:we,r:N,mt:F,mc:H,pc:ne,pbc:W,n:$t,o:e};return{render:En,hydrate:void 0,createApp:ca(En)}}function bs({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 Ea(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function io(e,t,n=!1){const s=e.children,o=t.children;if(z(s)&&z(o))for(let r=0;r<s.length;r++){const i=s[r];let l=o[r];l.shapeFlag&1&&!l.dynamicChildren&&((l.patchFlag<=0||l.patchFlag===32)&&(l=o[r]=_t(o[r]),l.el=i.el),!n&&l.patchFlag!==-2&&io(i,l)),l.type===cs&&(l.patchFlag!==-1?l.el=i.el:l.__elIndex=r+(e.type===ge?1:0)),l.type===pt&&!l.el&&(l.el=i.el)}}function Ta(e){const t=e.slice(),n=[0];let s,o,r,i,l;const a=e.length;for(s=0;s<a;s++){const u=e[s];if(u!==0){if(o=n[n.length-1],e[o]<u){t[s]=o,n.push(s);continue}for(r=0,i=n.length-1;r<i;)l=r+i>>1,e[n[l]]<u?r=l+1:i=l;u<e[n[r]]&&(r>0&&(t[s]=n[r-1]),n[r]=s)}}for(r=n.length,i=n[r-1];r-- >0;)n[r]=i,i=t[i];return n}function di(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:di(t)}function Ro(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function pi(e){if(e.placeholder)return e.placeholder;const t=e.component;return t?pi(t.subTree):null}const hi=e=>e.__isSuspense;function $a(e,t){t&&t.pendingBranch?z(e)?t.effects.push(...e):t.effects.push(e):Ml(e)}const ge=Symbol.for("v-fgt"),cs=Symbol.for("v-txt"),pt=Symbol.for("v-cmt"),ws=Symbol.for("v-stc"),dn=[];let Le=null;function R(e=!1){dn.push(Le=e?null:[])}function ka(){dn.pop(),Le=dn[dn.length-1]||null}let yn=1;function Lo(e,t=!1){yn+=e,e<0&&Le&&t&&(Le.hasOnce=!0)}function mi(e){return e.dynamicChildren=yn>0?Le||Kt:null,ka(),yn>0&&Le&&Le.push(e),e}function B(e,t,n,s,o,r){return mi(C(e,t,n,s,o,r,!0))}function He(e,t,n,s,o){return mi(_e(e,t,n,s,o,!0))}function gi(e){return e?e.__v_isVNode===!0:!1}function Bt(e,t){return e.type===t.type&&e.key===t.key}const vi=({key:e})=>e??null,Dn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?ye(e)||ve(e)||Q(e)?{i:Re,r:e,k:t,f:!!n}:e:null);function C(e,t=null,n=null,s=0,o=null,r=e===ge?0:1,i=!1,l=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&vi(t),ref:t&&Dn(t),scopeId:Br,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:s,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:Re};return l?(lo(a,n),r&128&&e.normalize(a)):n&&(a.shapeFlag|=ye(n)?8:16),yn>0&&!i&&Le&&(a.patchFlag>0||r&6)&&a.patchFlag!==32&&Le.push(a),a}const _e=Aa;function Aa(e,t=null,n=null,s=0,o=null,r=!1){if((!e||e===ea)&&(e=pt),gi(e)){const l=Ft(e,t,!0);return n&&lo(l,n),yn>0&&!r&&Le&&(l.shapeFlag&6?Le[Le.indexOf(e)]=l:Le.push(l)),l.patchFlag=-2,l}if(Ha(e)&&(e=e.__vccOpts),t){t=Ma(t);let{class:l,style:a}=t;l&&!ye(l)&&(t.class=Be(l)),de(a)&&(is(a)&&!z(a)&&(a=xe({},a)),t.style=wn(a))}const i=ye(e)?1:hi(e)?128:Ll(e)?64:de(e)?4:Q(e)?2:0;return C(e,t,n,s,o,i,r,!0)}function Ma(e){return e?is(e)||ii(e)?xe({},e):e:null}function Ft(e,t,n=!1,s=!1){const{props:o,ref:r,patchFlag:i,children:l,transition:a}=e,u=t?Pa(o||{},t):o,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&vi(u),ref:t&&t.ref?n&&r?z(r)?r.concat(Dn(t)):[r,Dn(t)]:Dn(t):r,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!==ge?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ft(e.ssContent),ssFallback:e.ssFallback&&Ft(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&s&&vn(c,a.clone(c)),c}function Ue(e=" ",t=0){return _e(cs,null,e,t)}function se(e="",t=!1){return t?(R(),He(pt,null,e)):_e(pt,null,e)}function tt(e){return e==null||typeof e=="boolean"?_e(pt):z(e)?_e(ge,null,e.slice()):gi(e)?_t(e):_e(cs,null,String(e))}function _t(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ft(e)}function lo(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(z(t))n=16;else if(typeof t=="object")if(s&65){const o=t.default;o&&(o._c&&(o._d=!1),lo(e,o()),o._c&&(o._d=!0));return}else{n=32;const o=t._;!o&&!ii(t)?t._ctx=Re:o===3&&Re&&(Re.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else Q(t)?(t={default:t,_ctx:Re},n=32):(t=String(t),s&64?(n=16,t=[Ue(t)]):n=8);e.children=t,e.shapeFlag|=n}function Pa(...e){const t={};for(let n=0;n<e.length;n++){const s=e[n];for(const o in s)if(o==="class")t.class!==s.class&&(t.class=Be([t.class,s.class]));else if(o==="style")t.style=wn([t.style,s.style]);else if(Xn(o)){const r=t[o],i=s[o];i&&r!==i&&!(z(r)&&r.includes(i))&&(t[o]=r?[].concat(r,i):i)}else o!==""&&(t[o]=s[o])}return t}function Ze(e,t,n,s=null){Ye(e,t,7,[n,s])}const Oa=ni();let Ia=0;function Ra(e,t,n){const s=e.type,o=(t?t.appContext:e.appContext)||Oa,r={uid:Ia++,vnode:e,type:s,parent:t,appContext:o,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new br(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(o.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:ai(s,o),emitsOptions:si(s,o),emit:null,emitted:null,propsDefaults:fe,inheritAttrs:s.inheritAttrs,ctx:fe,data:fe,props:fe,attrs:fe,slots:fe,refs:fe,setupState:fe,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return r.ctx={_:r},r.root=t?t.root:r,r.emit=fa.bind(null,r),e.ce&&e.ce(r),r}let Ce=null;const ao=()=>Ce||Re;let Wn,Fs;{const e=ns(),t=(n,s)=>{let o;return(o=e[n])||(o=e[n]=[]),o.push(s),r=>{o.length>1?o.forEach(i=>i(r)):o[0](r)}};Wn=t("__VUE_INSTANCE_SETTERS__",n=>Ce=n),Fs=t("__VUE_SSR_SETTERS__",n=>Yt=n)}const Sn=e=>{const t=Ce;return Wn(e),e.scope.on(),()=>{e.scope.off(),Wn(t)}},Do=()=>{Ce&&Ce.scope.off(),Wn(null)};function yi(e){return e.vnode.shapeFlag&4}let Yt=!1;function La(e,t=!1,n=!1){t&&Fs(t);const{props:s,children:o}=e.vnode,r=yi(e);va(e,s,r,t),_a(e,o,n||t);const i=r?Da(e,t):void 0;return t&&Fs(!1),i}function Da(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,na);const{setup:s}=n;if(s){ut();const o=e.setupContext=s.length>1?Na(e):null,r=Sn(e),i=_n(s,e,0,[e.props,o]),l=dr(i);if(ft(),r(),(l||e.sp)&&!un(e)&&to(e),l){if(i.then(Do,Do),t)return i.then(a=>{Fo(e,a)}).catch(a=>{xn(a,e,0)});e.asyncDep=i}else Fo(e,i)}else bi(e)}function Fo(e,t,n){Q(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:de(t)&&(e.setupState=Fr(t)),bi(e)}function bi(e,t,n){const s=e.type;e.render||(e.render=s.render||st);{const o=Sn(e);ut();try{sa(e)}finally{ft(),o()}}}const Fa={get(e,t){return Te(e,"get",""),e[t]}};function Na(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Fa),slots:e.slots,emit:e.emit,expose:t}}function us(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Fr(Qs(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in fn)return fn[n](e)},has(t,n){return n in t||n in fn}})):e.proxy}function ja(e,t=!0){return Q(e)?e.displayName||e.name:e.name||t&&e.__name}function Ha(e){return Q(e)&&"__vccOpts"in e}const Fe=(e,t)=>El(e,t,Yt),Ua="3.5.27";let Ns;const No=typeof window<"u"&&window.trustedTypes;if(No)try{Ns=No.createPolicy("vue",{createHTML:e=>e})}catch{}const wi=Ns?e=>Ns.createHTML(e):e=>e,Ba="http://www.w3.org/2000/svg",Ka="http://www.w3.org/1998/Math/MathML",it=typeof document<"u"?document:null,jo=it&&it.createElement("template"),Va={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const o=t==="svg"?it.createElementNS(Ba,e):t==="mathml"?it.createElementNS(Ka,e):n?it.createElement(e,{is:n}):it.createElement(e);return e==="select"&&s&&s.multiple!=null&&o.setAttribute("multiple",s.multiple),o},createText:e=>it.createTextNode(e),createComment:e=>it.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>it.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,o,r){const i=n?n.previousSibling:t.lastChild;if(o&&(o===r||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===r||!(o=o.nextSibling)););else{jo.innerHTML=wi(s==="svg"?`<svg>${e}</svg>`:s==="mathml"?`<math>${e}</math>`:e);const l=jo.content;if(s==="svg"||s==="mathml"){const a=l.firstChild;for(;a.firstChild;)l.appendChild(a.firstChild);l.removeChild(a)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},gt="transition",Qt="animation",zt=Symbol("_vtc"),_i={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},Wa=xe({},Nl,_i),Pt=(e,t=[])=>{z(e)?e.forEach(n=>n(...t)):e&&e(...t)},Ho=e=>e?z(e)?e.some(t=>t.length>1):e.length>1:!1;function qa(e){const t={};for(const L in e)L in _i||(t[L]=e[L]);if(e.css===!1)return t;const{name:n="v",type:s,duration:o,enterFromClass:r=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:a=r,appearActiveClass:u=i,appearToClass:c=l,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:m=`${n}-leave-active`,leaveToClass:v=`${n}-leave-to`}=e,w=Ga(o),y=w&&w[0],A=w&&w[1],{onBeforeEnter:b,onEnter:S,onEnterCancelled:_,onLeave:k,onLeaveCancelled:D,onBeforeAppear:X=b,onAppear:oe=S,onAppearCancelled:H=_}=t,M=(L,U,F,J)=>{L._enterCancelled=J,vt(L,U?c:l),vt(L,U?u:i),F&&F()},W=(L,U)=>{L._isLeaving=!1,vt(L,f),vt(L,v),vt(L,m),U&&U()},ee=L=>(U,F)=>{const J=L?oe:S,G=()=>M(U,L,F);Pt(J,[U,G]),Uo(()=>{vt(U,L?a:r),Qe(U,L?c:l),Ho(J)||Bo(U,s,y,G)})};return xe(t,{onBeforeEnter(L){Pt(b,[L]),Qe(L,r),Qe(L,i)},onBeforeAppear(L){Pt(X,[L]),Qe(L,a),Qe(L,u)},onEnter:ee(!1),onAppear:ee(!0),onLeave(L,U){L._isLeaving=!0;const F=()=>W(L,U);Qe(L,f),L._enterCancelled?(Qe(L,m),js(L)):(js(L),Qe(L,m)),Uo(()=>{L._isLeaving&&(vt(L,f),Qe(L,v),Ho(k)||Bo(L,s,A,F))}),Pt(k,[L,F])},onEnterCancelled(L){M(L,!1,void 0,!0),Pt(_,[L])},onAppearCancelled(L){M(L,!0,void 0,!0),Pt(H,[L])},onLeaveCancelled(L){W(L),Pt(D,[L])}})}function Ga(e){if(e==null)return null;if(de(e))return[_s(e.enter),_s(e.leave)];{const t=_s(e);return[t,t]}}function _s(e){return Bi(e)}function Qe(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[zt]||(e[zt]=new Set)).add(t)}function vt(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const n=e[zt];n&&(n.delete(t),n.size||(e[zt]=void 0))}function Uo(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Ya=0;function Bo(e,t,n,s){const o=e._endId=++Ya,r=()=>{o===e._endId&&s()};if(n!=null)return setTimeout(r,n);const{type:i,timeout:l,propCount:a}=xi(e,t);if(!i)return s();const u=i+"end";let c=0;const f=()=>{e.removeEventListener(u,m),r()},m=v=>{v.target===e&&++c>=a&&f()};setTimeout(()=>{c<a&&f()},l+1),e.addEventListener(u,m)}function xi(e,t){const n=window.getComputedStyle(e),s=w=>(n[w]||"").split(", "),o=s(`${gt}Delay`),r=s(`${gt}Duration`),i=Ko(o,r),l=s(`${Qt}Delay`),a=s(`${Qt}Duration`),u=Ko(l,a);let c=null,f=0,m=0;t===gt?i>0&&(c=gt,f=i,m=r.length):t===Qt?u>0&&(c=Qt,f=u,m=a.length):(f=Math.max(i,u),c=f>0?i>u?gt:Qt:null,m=c?c===gt?r.length:a.length:0);const v=c===gt&&/\b(?:transform|all)(?:,|$)/.test(s(`${gt}Property`).toString());return{type:c,timeout:f,propCount:m,hasTransform:v}}function Ko(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((n,s)=>Vo(n)+Vo(e[s])))}function Vo(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function js(e){return(e?e.ownerDocument:document).body.offsetHeight}function za(e,t,n){const s=e[zt];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const qn=Symbol("_vod"),Ci=Symbol("_vsh"),sn={name:"show",beforeMount(e,{value:t},{transition:n}){e[qn]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):en(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:s}){!t!=!n&&(s?t?(s.beforeEnter(e),en(e,!0),s.enter(e)):s.leave(e,()=>{en(e,!1)}):en(e,t))},beforeUnmount(e,{value:t}){en(e,t)}};function en(e,t){e.style.display=t?e[qn]:"none",e[Ci]=!t}const Xa=Symbol(""),Ja=/(?:^|;)\s*display\s*:/;function Za(e,t,n){const s=e.style,o=ye(n);let r=!1;if(n&&!o){if(t)if(ye(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&Fn(s,l,"")}else for(const i in t)n[i]==null&&Fn(s,i,"");for(const i in n)i==="display"&&(r=!0),Fn(s,i,n[i])}else if(o){if(t!==n){const i=s[Xa];i&&(n+=";"+i),s.cssText=n,r=Ja.test(n)}}else t&&e.removeAttribute("style");qn in e&&(e[qn]=r?s.display:"",e[Ci]&&(s.display="none"))}const Wo=/\s*!important$/;function Fn(e,t,n){if(z(n))n.forEach(s=>Fn(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=Qa(e,t);Wo.test(n)?e.setProperty(St(s),n.replace(Wo,""),"important"):e[s]=n}}const qo=["Webkit","Moz","ms"],xs={};function Qa(e,t){const n=xs[t];if(n)return n;let s=Ke(t);if(s!=="filter"&&s in e)return xs[t]=s;s=es(s);for(let o=0;o<qo.length;o++){const r=qo[o]+s;if(r in e)return xs[t]=r}return t}const Go="http://www.w3.org/1999/xlink";function Yo(e,t,n,s,o,r=Yi(t)){s&&t.startsWith("xlink:")?n==null?e.removeAttributeNS(Go,t.slice(6,t.length)):e.setAttributeNS(Go,t,n):n==null||r&&!gr(n)?e.removeAttribute(t):e.setAttribute(t,r?"":ot(n)?String(n):n)}function zo(e,t,n,s,o){if(t==="innerHTML"||t==="textContent"){n!=null&&(e[t]=t==="innerHTML"?wi(n):n);return}const r=e.tagName;if(t==="value"&&r!=="PROGRESS"&&!r.includes("-")){const l=r==="OPTION"?e.getAttribute("value")||"":e.value,a=n==null?e.type==="checkbox"?"on":"":String(n);(l!==a||!("_value"in e))&&(e.value=a),n==null&&e.removeAttribute(t),e._value=n;return}let i=!1;if(n===""||n==null){const l=typeof e[t];l==="boolean"?n=gr(n):n==null&&l==="string"?(n="",i=!0):l==="number"&&(n=0,i=!0)}try{e[t]=n}catch{}i&&e.removeAttribute(o||t)}function Rt(e,t,n,s){e.addEventListener(t,n,s)}function ec(e,t,n,s){e.removeEventListener(t,n,s)}const Xo=Symbol("_vei");function tc(e,t,n,s,o=null){const r=e[Xo]||(e[Xo]={}),i=r[t];if(s&&i)i.value=s;else{const[l,a]=nc(t);if(s){const u=r[t]=rc(s,o);Rt(e,l,u,a)}else i&&(ec(e,l,i,a),r[t]=void 0)}}const Jo=/(?:Once|Passive|Capture)$/;function nc(e){let t;if(Jo.test(e)){t={};let s;for(;s=e.match(Jo);)e=e.slice(0,e.length-s[0].length),t[s[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):St(e.slice(2)),t]}let Cs=0;const sc=Promise.resolve(),oc=()=>Cs||(sc.then(()=>Cs=0),Cs=Date.now());function rc(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;Ye(ic(s,n.value),t,5,[s])};return n.value=e,n.attached=oc(),n}function ic(e,t){if(z(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>o=>!o._stopped&&s&&s(o))}else return t}const Zo=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,lc=(e,t,n,s,o,r)=>{const i=o==="svg";t==="class"?za(e,s,i):t==="style"?Za(e,n,s):Xn(t)?Ws(t)||tc(e,t,n,s,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):ac(e,t,s,i))?(zo(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Yo(e,t,s,i,r,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!ye(s))?zo(e,Ke(t),s,r,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),Yo(e,t,s,i))};function ac(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&Zo(t)&&Q(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const o=e.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return Zo(t)&&ye(n)?!1:t in e}const Si=new WeakMap,Ei=new WeakMap,Gn=Symbol("_moveCb"),Qo=Symbol("_enterCb"),cc=e=>(delete e.props.mode,e),uc=cc({name:"TransitionGroup",props:xe({},Wa,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=ao(),s=Fl();let o,r;return Qr(()=>{if(!o.length)return;const i=e.moveClass||`${e.name||"v"}-move`;if(!mc(o[0].el,n.vnode.el,i)){o=[];return}o.forEach(dc),o.forEach(pc);const l=o.filter(hc);js(n.vnode.el),l.forEach(a=>{const u=a.el,c=u.style;Qe(u,i),c.transform=c.webkitTransform=c.transitionDuration="";const f=u[Gn]=m=>{m&&m.target!==u||(!m||m.propertyName.endsWith("transform"))&&(u.removeEventListener("transitionend",f),u[Gn]=null,vt(u,i))};u.addEventListener("transitionend",f)}),o=[]}),()=>{const i=le(e),l=qa(i);let a=i.tag||ge;if(o=[],r)for(let u=0;u<r.length;u++){const c=r[u];c.el&&c.el instanceof Element&&(o.push(c),vn(c,Os(c,l,s,n)),Si.set(c,{left:c.el.offsetLeft,top:c.el.offsetTop}))}r=t.default?Jr(t.default()):[];for(let u=0;u<r.length;u++){const c=r[u];c.key!=null&&vn(c,Os(c,l,s,n))}return _e(a,null,r)}}}),fc=uc;function dc(e){const t=e.el;t[Gn]&&t[Gn](),t[Qo]&&t[Qo]()}function pc(e){Ei.set(e,{left:e.el.offsetLeft,top:e.el.offsetTop})}function hc(e){const t=Si.get(e),n=Ei.get(e),s=t.left-n.left,o=t.top-n.top;if(s||o){const r=e.el.style;return r.transform=r.webkitTransform=`translate(${s}px,${o}px)`,r.transitionDuration="0s",e}}function mc(e,t,n){const s=e.cloneNode(),o=e[zt];o&&o.forEach(l=>{l.split(/\s+/).forEach(a=>a&&s.classList.remove(a))}),n.split(/\s+/).forEach(l=>l&&s.classList.add(l)),s.style.display="none";const r=t.nodeType===1?t:t.parentNode;r.appendChild(s);const{hasTransform:i}=xi(s);return r.removeChild(s),i}const Yn=e=>{const t=e.props["onUpdate:modelValue"]||!1;return z(t)?n=>Rn(t,n):t};function gc(e){e.target.composing=!0}function er(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const qt=Symbol("_assign");function tr(e,t,n){return t&&(e=e.trim()),n&&(e=ts(e)),e}const fs={created(e,{modifiers:{lazy:t,trim:n,number:s}},o){e[qt]=Yn(o);const r=s||o.props&&o.props.type==="number";Rt(e,t?"change":"input",i=>{i.target.composing||e[qt](tr(e.value,n,r))}),(n||r)&&Rt(e,"change",()=>{e.value=tr(e.value,n,r)}),t||(Rt(e,"compositionstart",gc),Rt(e,"compositionend",er),Rt(e,"change",er))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:s,trim:o,number:r}},i){if(e[qt]=Yn(i),e.composing)return;const l=(r||e.type==="number")&&!/^0\d/.test(e.value)?ts(e.value):e.value,a=t??"";l!==a&&(document.activeElement===e&&e.type!=="range"&&(s&&t===n||o&&e.value.trim()===a)||(e.value=a))}},vc={deep:!0,created(e,{value:t,modifiers:{number:n}},s){const o=Jn(t);Rt(e,"change",()=>{const r=Array.prototype.filter.call(e.options,i=>i.selected).map(i=>n?ts(zn(i)):zn(i));e[qt](e.multiple?o?new Set(r):r:r[0]),e._assigning=!0,Et(()=>{e._assigning=!1})}),e[qt]=Yn(s)},mounted(e,{value:t}){nr(e,t)},beforeUpdate(e,t,n){e[qt]=Yn(n)},updated(e,{value:t}){e._assigning||nr(e,t)}};function nr(e,t){const n=e.multiple,s=z(t);if(!(n&&!s&&!Jn(t))){for(let o=0,r=e.options.length;o<r;o++){const i=e.options[o],l=zn(i);if(n)if(s){const a=typeof l;a==="string"||a==="number"?i.selected=t.some(u=>String(u)===String(l)):i.selected=Xi(t,l)>-1}else i.selected=t.has(l);else if(ss(zn(i),t)){e.selectedIndex!==o&&(e.selectedIndex=o);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function zn(e){return"_value"in e?e._value:e.value}const yc=["ctrl","shift","alt","meta"],bc={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)=>yc.some(n=>e[`${n}Key`]&&!t.includes(n))},Se=(e,t)=>{const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=((o,...r)=>{for(let i=0;i<t.length;i++){const l=bc[t[i]];if(l&&l(o,t))return}return e(o,...r)}))},wc={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},Hs=(e,t)=>{const n=e._withKeys||(e._withKeys={}),s=t.join(".");return n[s]||(n[s]=(o=>{if(!("key"in o))return;const r=St(o.key);if(t.some(i=>i===r||wc[i]===r))return e(o)}))},_c=xe({patchProp:lc},Va);let sr;function xc(){return sr||(sr=Ca(_c))}const Cc=((...e)=>{const t=xc().createApp(...e),{mount:n}=t;return t.mount=s=>{const o=Ec(s);if(!o)return;const r=t._component;!Q(r)&&!r.render&&!r.template&&(r.template=o.innerHTML),o.nodeType===1&&(o.textContent="");const i=n(o,!1,Sc(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),i},t});function Sc(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Ec(e){return ye(e)?document.querySelector(e):e}let Ti;const ds=e=>Ti=e,$i=Symbol();function Us(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var pn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(pn||(pn={}));function Tc(){const e=wr(!0),t=e.run(()=>K({}));let n=[],s=[];const o=Qs({install(r){ds(o),o._a=r,r.provide($i,o),r.config.globalProperties.$pinia=o,s.forEach(i=>n.push(i)),s=[]},use(r){return this._a?n.push(r):s.push(r),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return o}const ki=()=>{};function or(e,t,n,s=ki){e.add(t);const o=()=>{e.delete(t)&&s()};return!n&&_r()&&Ji(o),o}function Ht(e,...t){e.forEach(n=>{n(...t)})}const $c=e=>e(),rr=Symbol(),Ss=Symbol();function Bs(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,s)=>e.set(s,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const s=t[n],o=e[n];Us(o)&&Us(s)&&e.hasOwnProperty(n)&&!ve(s)&&!ct(s)?e[n]=Bs(o,s):e[n]=s}return e}const kc=Symbol();function Ac(e){return!Us(e)||!Object.prototype.hasOwnProperty.call(e,kc)}const{assign:yt}=Object;function Mc(e){return!!(ve(e)&&e.effect)}function Pc(e,t,n,s){const{state:o,actions:r,getters:i}=t,l=n.state.value[e];let a;function u(){l||(n.state.value[e]=o?o():{});const c=_l(n.state.value[e]);return yt(c,r,Object.keys(i||{}).reduce((f,m)=>(f[m]=Qs(Fe(()=>{ds(n);const v=n._s.get(e);return i[m].call(v,v)})),f),{}))}return a=Ai(e,u,t,n,s,!0),a}function Ai(e,t,n={},s,o,r){let i;const l=yt({actions:{}},n),a={deep:!0};let u,c,f=new Set,m=new Set,v;const w=s.state.value[e];!r&&!w&&(s.state.value[e]={});let y;function A(H){let M;u=c=!1,typeof H=="function"?(H(s.state.value[e]),M={type:pn.patchFunction,storeId:e,events:v}):(Bs(s.state.value[e],H),M={type:pn.patchObject,payload:H,storeId:e,events:v});const W=y=Symbol();Et().then(()=>{y===W&&(u=!0)}),c=!0,Ht(f,M,s.state.value[e])}const b=r?function(){const{state:M}=n,W=M?M():{};this.$patch(ee=>{yt(ee,W)})}:ki;function S(){i.stop(),f.clear(),m.clear(),s._s.delete(e)}const _=(H,M="")=>{if(rr in H)return H[Ss]=M,H;const W=function(){ds(s);const ee=Array.from(arguments),L=new Set,U=new Set;function F(q){L.add(q)}function J(q){U.add(q)}Ht(m,{args:ee,name:W[Ss],store:D,after:F,onError:J});let G;try{G=H.apply(this&&this.$id===e?this:D,ee)}catch(q){throw Ht(U,q),q}return G instanceof Promise?G.then(q=>(Ht(L,q),q)).catch(q=>(Ht(U,q),Promise.reject(q))):(Ht(L,G),G)};return W[rr]=!0,W[Ss]=M,W},k={_p:s,$id:e,$onAction:or.bind(null,m),$patch:A,$reset:b,$subscribe(H,M={}){const W=or(f,H,M.detached,()=>ee()),ee=i.run(()=>qe(()=>s.state.value[e],L=>{(M.flush==="sync"?c:u)&&H({storeId:e,type:pn.direct,events:v},L)},yt({},a,M)));return W},$dispose:S},D=rs(k);s._s.set(e,D);const oe=(s._a&&s._a.runWithContext||$c)(()=>s._e.run(()=>(i=wr()).run(()=>t({action:_}))));for(const H in oe){const M=oe[H];if(ve(M)&&!Mc(M)||ct(M))r||(w&&Ac(M)&&(ve(M)?M.value=w[H]:Bs(M,w[H])),s.state.value[e][H]=M);else if(typeof M=="function"){const W=_(M,H);oe[H]=W,l.actions[H]=M}}return yt(D,oe),yt(le(D),oe),Object.defineProperty(D,"$state",{get:()=>s.state.value[e],set:H=>{A(M=>{yt(M,H)})}}),s._p.forEach(H=>{yt(D,i.run(()=>H({store:D,app:s._a,pinia:s,options:l})))}),w&&r&&n.hydrate&&n.hydrate(D.$state,w),u=!0,c=!0,D}function Oc(e,t,n){let s;const o=typeof t=="function";s=o?n:t;function r(i,l){const a=Pl();return i=i||(a?Ct($i,null):null),i&&ds(i),i=Ti,i._s.has(e)||(o?Ai(e,t,s,i):Pc(e,s,i)),i._s.get(e)}return r.$id=e,r}const Tt=Oc("sessions",()=>{const e=K([]),t=Fe(()=>[...e.value].sort((U,F)=>{if(!U.alias)return F.alias?1:0;if(!F.alias)return-1;const J=U.alias.toLowerCase(),G=F.alias.toLowerCase();return J<G?-1:J>G?1:0})),n=K([]),s=K(null),o=K(!1),r=K(!1),i=K(""),l=K(0);let a=null,u=null,c=1e3;async function f(U,F={}){const J=await fetch(U,F);if(J.status===401&&(r.value=!1),!J.ok){const G=await J.json().catch(()=>({}));throw Object.assign(new Error(G.error||`Request failed (${J.status})`),{status:J.status})}return J}async function m(U,F=!1){const G=await(await f(`/api/sessions/${encodeURIComponent(U)}/root`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repin:F})})).json(),q=e.value.find(ne=>ne.name===U);return q&&(q.root=G.root),G.root}function v(){l.value++}async function w(){try{const F=await(await fetch("/api/auth/status")).json();i.value=typeof F.instance?.name=="string"?F.instance.name:"",o.value=!!F.authRequired,r.value=!!F.authenticated}catch{r.value=!1}return r.value}async function y(U){const F=await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({password:U})});if(!F.ok){const J=await F.json().catch(()=>({}));throw new Error(J.error||"Login failed")}r.value=!0}async function A(){try{await fetch("/api/auth/logout",{method:"POST"})}catch{}r.value=!1,e.value=[],s.value=null,a&&(a.onclose=null,a.close(),a=null)}async function b(){const U=await fetch("/api/sessions");if(U.status===401){r.value=!1;return}const F=await U.json();e.value=F.sessions}async function S(){const F=await(await fetch("/api/sessions/shells")).json();n.value=F.shells}async function _(U,F){const J=await fetch("/api/sessions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:U,shell:F})});if(!J.ok){const q=await J.json();throw new Error(q.error)}const G=await J.json();s.value=G.name,await b()}async function k(U){const F=await fetch(`/api/sessions/${U}/stop`,{method:"POST"});if(!F.ok){const J=await F.json();throw new Error(J.error)}await b()}async function D(U){const F=await fetch(`/api/sessions/${U}/restart`,{method:"POST"});if(!F.ok){const J=await F.json();throw new Error(J.error)}await b()}async function X(U,F){const J=await fetch(`/api/sessions/${U}/alias`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({alias:F})});if(!J.ok){const G=await J.json();throw new Error(G.error)}await b()}async function oe(U){const F=await fetch(`/api/sessions/${U}`,{method:"DELETE"});if(!F.ok){const J=await F.json();throw new Error(J.error)}s.value===U&&(s.value=null),await b()}function H(U){s.value=U}function M(){a&&(a.onclose=null,a.close());const U=location.protocol==="https:"?"wss":"ws";a=new WebSocket(`${U}://${location.host}/ws`),a.onmessage=F=>{let J=null,G=null;try{({event:J,data:G}=JSON.parse(F.data))}catch{}if(J==="session:title"&&G&&G.name){const q=e.value.find(ne=>ne.name===G.name);if(q){q.title=G.title,q.command=G.command,q.outputActive=!!G.outputActive;return}}if(J==="session:root"&&G?.name){const q=e.value.find(ne=>ne.name===G.name);q&&(q.root=G.root);return}b()},a.onopen=()=>{c=1e3,b()},a.onclose=()=>{W()}}function W(){u||(u=setTimeout(()=>{u=null,M(),c=Math.min(c*2,3e4)},c))}function ee(){b(),S(),M()}async function L({command:U,name:F}){return _(F||null,U||null)}return{sessions:e,sortedSessions:t,shells:n,current:s,authRequired:o,authenticated:r,instanceName:i,fileRevision:l,apiRequest:f,pinRoot:m,refreshFiles:v,init:ee,checkAuth:w,login:y,logout:A,fetchSessions:b,createSession:_,create:L,stopSession:k,restartSession:D,setAlias:X,removeSession:oe,select:H}}),Ve=(e,t)=>{const n=e.__vccOpts||e;for(const[s,o]of t)n[s]=o;return n},Ic=["title"],Rc={class:"card-content"},Lc={class:"card-top"},Dc=["onKeydown"],Fc={class:"session-name"},Nc={key:0,class:"alias-text"},jc={key:1,class:"real-name"},Hc={key:2},Uc={key:0,class:"confirm-bar"},Bc={key:1,class:"session-info"},Kc=["title"],Vc={class:"status-text"},Wc={__name:"SessionCard",props:{session:Object,active:Boolean,collapsed:Boolean},setup(e){const t=e,n=Tt(),s=Ct("toast"),o=K(!1),r=K(!1),i=K(""),l=K(null),a=Fe(()=>{const b=t.session.alias?`${t.session.alias} (${t.session.name})`:t.session.name;return t.session.pid?`${b} · PID ${t.session.pid}`:b}),u=Fe(()=>t.session.title||t.session.command||"");function c(b,S="info"){s?.value?.show(b,S)}function f(b,S){b.stopPropagation(),o.value=!0}async function m(b,S){b.stopPropagation();try{await n.removeSession(S)}catch(_){console.error(_)}o.value=!1}function v(b){b.stopPropagation(),o.value=!1}function w(b){b.stopPropagation(),i.value=t.session.alias||"",r.value=!0,Et(()=>l.value?.focus())}async function y(b){if(b&&b.stopPropagation(),!!r.value){r.value=!1;try{await n.setAlias(t.session.name,i.value.trim())}catch(S){c(S.message||"Failed to set alias","error")}}}function A(b){b.stopPropagation(),r.value=!1}return(b,S)=>(R(),B("div",{class:Be(["session-card",{active:e.active,collapsed:e.collapsed}]),title:a.value},[C("div",{class:Be(["status-indicator",[e.session.status,{"output-active":e.session.status==="running"&&e.session.outputActive}]])},null,2),nt(C("div",Rc,[C("div",Lc,[r.value?nt((R(),B("input",{key:0,ref_key:"aliasInput",ref:l,"onUpdate:modelValue":S[0]||(S[0]=_=>i.value=_),class:"alias-input",type:"text",maxlength:"100",placeholder:"Alias (Enter to save, Esc to cancel)",onClick:S[1]||(S[1]=Se(()=>{},["stop"])),onKeydown:[S[2]||(S[2]=Se(()=>{},["stop"])),S[3]||(S[3]=Hs(Se(_=>y(_),["prevent"]),["enter"])),Hs(Se(A,["prevent"]),["esc"])],onBlur:y},null,40,Dc)),[[fs,i.value]]):(R(),B(ge,{key:1},[C("div",Fc,[e.session.alias?(R(),B("span",Nc,te(e.session.alias),1)):se("",!0),e.session.alias?(R(),B("span",jc,te(e.session.name),1)):(R(),B("span",Hc,te(e.session.name),1))]),o.value?se("",!0):(R(),B("button",{key:0,class:"close-btn",title:"Set alias",onClick:S[4]||(S[4]=_=>w(_))},[...S[8]||(S[8]=[C("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[C("path",{d:"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"})],-1)])])),o.value?se("",!0):(R(),B("button",{key:1,class:"close-btn",title:"Delete session",onClick:S[5]||(S[5]=_=>f(_,e.session.name))},[...S[9]||(S[9]=[C("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[C("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),C("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])]))],64))]),o.value?(R(),B("div",Uc,[S[10]||(S[10]=C("span",{class:"confirm-text"},"Delete?",-1)),C("button",{class:"confirm-yes",onClick:S[6]||(S[6]=_=>m(_,e.session.name))},"Yes"),C("button",{class:"confirm-no",onClick:S[7]||(S[7]=_=>v(_))},"No")])):(R(),B("div",Bc,[C("span",{class:"pane-title",title:u.value},te(u.value),9,Kc),C("span",Vc,te(e.session.status),1)]))],512),[[sn,!e.collapsed]])],10,Ic))}},qc=Ve(Wc,[["__scopeId","data-v-0e38e5ff"]]),Gc="modulepreload",Yc=function(e){return"/"+e},ir={},co=function(t,n,s){let o=Promise.resolve();if(n&&n.length>0){let a=function(u){return Promise.all(u.map(c=>Promise.resolve(c).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");o=a(n.map(u=>{if(u=Yc(u),u in ir)return;ir[u]=!0;const c=u.endsWith(".css"),f=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const m=document.createElement("link");if(m.rel=c?"stylesheet":Gc,c||(m.as="script"),m.crossOrigin="",m.href=u,l&&m.setAttribute("nonce",l),document.head.appendChild(m),c)return new Promise((v,w)=>{m.addEventListener("load",v),m.addEventListener("error",()=>w(new Error(`Unable to preload CSS for ${u}`)))})}))}function r(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return o.then(i=>{for(const l of i||[])l.status==="rejected"&&r(l.reason);return t().catch(r)})},Es="https://acli-preview.invalid",lr=e=>e.split("/").map(encodeURIComponent).join("/");function ar(e){const t=[];for(const n of e.split("/"))!n||n==="."||(n===".."?t.pop():t.push(n));return`/${t.join("/")}`}function cr(e,t,n){if(typeof e!="string"||e.length>8192||/[\u0000-\u001f\u007f\\]/.test(e))throw new Error("不支持的链接地址");if(e=e.trim(),/^(?:https?:)?\/\//i.test(e)){const u=new URL(e,Es);if(!["http:","https:"].includes(u.protocol))throw new Error("不支持的链接协议");return{kind:"external",url:u.href}}if(/^[a-z][a-z\d+.-]*:/i.test(e))throw new Error("只支持项目内文件和 HTTP/HTTPS 链接");if(!t?.startsWith("/")||!n?.startsWith("/"))throw new Error("当前文档没有有效的项目目录");const s=ar(n),o=`${Es}${lr(t)}`,r=e.startsWith("/")?`${lr(s).replace(/\/$/,"")}${e}`:e;let i,l,a;try{i=new URL(r,o),l=ar(decodeURIComponent(i.pathname)),a=decodeURIComponent(i.hash.slice(1))}catch{throw new Error("链接包含无效的路径编码")}if(i.origin!==Es||/[\u0000-\u001f\u007f\\]/.test(l))throw new Error("不支持的链接地址");if(s!=="/"&&l!==s&&!l.startsWith(`${s}/`))throw new Error("链接超出了当前项目目录");return{kind:"file",path:l,hash:a}}function zc(e){return e.normalize("NFC").trim().toLowerCase().replace(/[^\p{L}\p{N}\p{M}_\s-]/gu,"").replace(/\s/g,"-")||"section"}function Xc(e){return`<script>(()=>{
|
|
3
|
+
const token=${JSON.stringify(e).replace(/</g,"\\u003c")};
|
|
4
|
+
const position=()=>({left:window.scrollX,top:window.scrollY});
|
|
5
|
+
const scroll=hash=>{const target=document.getElementById(hash)||Array.from(document.getElementsByName(hash))[0];if(target)target.scrollIntoView({behavior:'instant'});else if(!hash)window.scrollTo({left:0,top:0,behavior:'instant'})};
|
|
6
|
+
document.addEventListener('click',event=>{const link=event.target instanceof Element?event.target.closest('a[href]'):null;if(!event.isTrusted||!link)return;event.preventDefault();event.stopImmediatePropagation();const href=link.getAttribute('href');if(href.startsWith('#')){try{scroll(decodeURIComponent(href.slice(1)))}catch{};return}parent.postMessage({type:'acli-preview-link',token,href,scroll:position()},'*')},true);
|
|
7
|
+
window.addEventListener('message',event=>{const data=event.data;if(event.source!==parent||data?.type!=='acli-preview-scroll'||data.token!==token)return;if(Number.isFinite(data.left)&&Number.isFinite(data.top))window.scrollTo({left:data.left,top:data.top,behavior:'instant'});else if(typeof data.hash==='string'&&data.hash.length<=8192)scroll(data.hash)});
|
|
8
|
+
})()<\/script>`}function uo(e,t){return`${e.replace(/\/$/,"")}/${t}`}function Mi(e,t=!1,n=null){return`/api/files/content?${new URLSearchParams({path:e,...t?{download:"1"}:{},...n?{root:n}:{}})}`}function Pi(e){return e.includes(".")?e.split(".").pop().toLowerCase():""}function gd(e){const t=Pi(e);return["png","jpg","jpeg","gif","webp","svg","bmp","ico","avif","heic","heif"].includes(t)?"image":["mp3","wav","ogg","m4a","aac","flac","opus"].includes(t)?"audio":["mp4","webm","mov","m4v","ogv"].includes(t)?"video":t==="pdf"?"pdf":["md","markdown"].includes(t)?"markdown":["html","htm","xhtml"].includes(t)?"html":t==="docx"?"docx":["csv","tsv"].includes(t)?"table":["zip","gz","bz2","xz","7z","rar","tar","woff","woff2","ttf","exe","dll","so","dylib","db","sqlite","sqlite3","doc","xls","xlsx","ppt","pptx","wasm","bin"].includes(t)?"unsupported":"text"}function Jc(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KiB`:`${(e/(1024*1024)).toFixed(1)} MiB`}async function vd(e,t){const{default:n}=await co(async()=>{const{default:o}=await import("./papaparse.min-DBcLlWLv.js").then(r=>r.p);return{default:o}},__vite__mapDeps([0,1])),s=n.parse(e,{delimiter:Pi(t)==="tsv"?" ":",",skipEmptyLines:"greedy"});return s.errors.length?null:s.data}async function yd(e,t=null){const{default:n}=await co(async()=>{const{default:i}=await import("./markdown-it-CnX5h4q1.js");return{default:i}},[]),s=new n({html:!1,linkify:!0}),o=new Set;s.renderer.rules.heading_open=(i,l,a,u,c)=>{const f=i[l+1],m=f.children?.filter(A=>["text","code_inline","emoji"].includes(A.type)).map(A=>A.content).join("")||f.content,v=zc(m);let w=v,y=0;for(;o.has(w);)w=`${v}-${++y}`;return o.add(w),i[l].attrSet("id",w),c.renderToken(i,l,a)},s.renderer.rules.link_open=(i,l,a,u,c)=>{const f=i[l],m=f.attrGet("href")||"";if(t){f.attrSet("data-preview-href",m);try{const v=cr(m,t.path,t.root);f.attrSet("href",v.kind==="external"?v.url:"#")}catch{f.attrSet("href","#")}}return/^https?:\/\//i.test(f.attrGet("href"))&&(f.attrSet("target","_blank"),f.attrSet("rel","noopener noreferrer")),c.renderToken(i,l,a)};const r=s.renderer.rules.image;return s.renderer.rules.image=(i,l,a,u,c)=>{const f=i[l];if(t)try{const m=cr(f.attrGet("src")||"",t.path,t.root);f.attrSet("src",m.kind==="external"?m.url:Mi(m.path,!1,t.root))}catch{f.attrSet("src",""),f.attrSet("title","图片路径无效或超出当前项目目录")}return f.attrSet("referrerpolicy","no-referrer"),r(i,l,a,u,c)},s.render(e)}function bd(e,{linkToken:t}={}){return`<!doctype html><html><head><meta charset="utf-8"><meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'unsafe-inline'; style-src 'unsafe-inline'; img-src data: blob:; font-src data:; media-src data: blob:; base-uri 'none'; form-action 'none'"><meta name="referrer" content="no-referrer">${t?Xc(t):""}<style>body{font:15px/1.6 system-ui,sans-serif;padding:20px;overflow-wrap:anywhere}img{max-width:100%}table{border-collapse:collapse}td,th{border:1px solid #ccc;padding:6px}</style></head><body>${e}</body></html>`}const Ts=Object.freeze({M:"已修改",A:"已新增(已暂存)",U:"未跟踪的新文件",D:"已删除",R:"已重命名",C:"存在合并冲突"});function Oi(e,t,n=[]){const s=`${t.replace(/\/$/,"")}/`,o=new Map(e.map(i=>[i.path,{...i}])),r=new Map(n.map(i=>[i.path,i]));for(const i of n){if(!i.deleted||!i.path.startsWith(s))continue;const l=i.path.slice(s.length).split("/"),a=`${s}${l[0]}`;o.has(a)||o.set(a,{name:l[0],path:a,type:l.length>1?"directory":"file",size:0,mtime:null,virtual:!0,deleted:!0})}return[...o.values()].map(i=>{const l=r.get(i.path);return{...i,...l?.deleted?{virtual:!0,deleted:!0}:{},gitChange:l,gitStatus:l?.status,hasGitChanges:i.type==="directory"&&n.some(a=>a.path.startsWith(`${i.path}/`))}}).sort((i,l)=>(l.type==="directory")-(i.type==="directory")||i.name.localeCompare(l.name,void 0,{numeric:!0}))}function wd(e){let t=0,n=0,s=!1;const o=e.split(`
|
|
9
|
+
`);return o.at(-1)===""&&o.pop(),o.map(r=>{const i=/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/.exec(r);return i?(t=Number(i[1]),n=Number(i[2]),s=!0,{type:"hunk",text:r}):((r.startsWith("diff --git ")||r.startsWith("diff --no-index "))&&(s=!1),s&&r.startsWith("+")?{type:"add",sign:"+",text:r.slice(1),newLine:n++}:s&&r.startsWith("-")?{type:"delete",sign:"−",text:r.slice(1),oldLine:t++}:s&&r.startsWith(" ")?{type:"context",sign:" ",text:r.slice(1),oldLine:t++,newLine:n++}:{type:"meta",text:r})})}const Zc={role:"none"},Qc=["aria-expanded","aria-label","title"],eu={class:"chevron","aria-hidden":"true"},tu={class:"file-icon","aria-hidden":"true"},nu=["title"],su={key:1,class:"git-dot",title:"包含 Git 改动","aria-hidden":"true"},ou=["aria-label"],ru={key:0,role:"group",class:"tree-children"},iu={key:0,role:"none",class:"tree-status"},lu={key:1,role:"none",class:"tree-status error"},au={key:2,role:"none",class:"tree-status"},cu={__name:"FileTreeItem",props:{entry:{type:Object,required:!0},changes:{type:Array,default:()=>[]}},emits:["preview","menu","operation"],setup(e,{emit:t}){const n=e,s=t,o=Tt(),r=K(!1),i=K([]),l=K(!1),a=K(""),u=K(null),c=Fe(()=>Oi(i.value,n.entry.path,n.changes)),f=Fe(()=>{const b=n.entry;return b.virtual?`${b.path}
|
|
10
|
+
已从工作区删除,可查看 Git Diff`:`${b.path}
|
|
11
|
+
${Jc(b.size)} · ${new Date(b.mtime).toLocaleString()}${b.type==="symlink"?`
|
|
12
|
+
Symbolic link — target is not followed`:""}${b.gitStatus?`
|
|
13
|
+
Git:${Ts[b.gitStatus]}`:""}${b.gitChange?.originalPath?`
|
|
14
|
+
原路径:${b.gitChange.originalPath}`:""}`});let m=null;async function v(){if(m?.abort(),n.entry.virtual){i.value=[],l.value=!1,a.value="";return}const b=new AbortController;m=b,l.value=!0,a.value="";try{const _=await(await o.apiRequest(`/api/files?${new URLSearchParams({path:n.entry.path})}`,{signal:b.signal})).json();b.signal.aborted||(i.value=_.entries)}catch(S){b.signal.aborted||(a.value=S.message)}finally{b.signal.aborted||(l.value=!1)}}async function w(){n.entry.type==="directory"?(r.value=!r.value,r.value&&await v()):n.entry.type==="file"&&s("preview",n.entry)}function y(b){if(b.preventDefault(),n.entry.virtual)return;const S=u.value.getBoundingClientRect();s("menu",{entry:n.entry,x:b.clientX||S.left,y:b.clientY||S.bottom,trigger:u.value})}async function A(b){if(b.target!==u.value)return;const S=[...u.value.closest('[role="tree"]').querySelectorAll("[data-tree-row]")],_=S.indexOf(u.value);["ArrowDown","ArrowUp","Home","End"].includes(b.key)?(b.preventDefault(),S[b.key==="Home"?0:b.key==="End"?S.length-1:Math.max(0,Math.min(S.length-1,_+(b.key==="ArrowDown"?1:-1)))]?.focus()):b.key==="ArrowRight"&&n.entry.type==="directory"?(b.preventDefault(),r.value?(await Et(),u.value.parentElement.querySelector('[role="group"] [data-tree-row]')?.focus()):await w()):b.key==="ArrowLeft"?(b.preventDefault(),r.value?r.value=!1:u.value.parentElement.parentElement.closest("li")?.querySelector("[data-tree-row]")?.focus()):b.key==="Enter"||b.key===" "?(b.preventDefault(),w()):b.key==="ContextMenu"||b.shiftKey&&b.key==="F10"?y(b):!n.entry.virtual&&(b.key==="F2"||b.key==="Delete")&&(b.preventDefault(),s("operation",{kind:b.key==="F2"?"rename":"delete",entry:n.entry}))}return qe(()=>o.fileRevision,()=>{r.value&&v()}),qe(()=>n.entry.virtual,()=>{r.value&&v()}),Nt(()=>m?.abort()),(b,S)=>{const _=Ql("FileTreeItem",!0);return R(),B("li",Zc,[C("div",{ref_key:"row",ref:u,class:"tree-row",role:"treeitem","data-tree-row":"",tabindex:"0","aria-expanded":e.entry.type==="directory"?r.value:void 0,"aria-label":`${e.entry.name}${e.entry.gitStatus?`,${ue(Ts)[e.entry.gitStatus]}`:e.entry.hasGitChanges?",包含 Git 改动":""}`,title:f.value,onClick:w,onContextmenu:y,onKeydown:A},[C("span",eu,te(e.entry.type==="directory"?r.value?"⌄":"›":""),1),C("span",tu,te(e.entry.type==="directory"?"▱":e.entry.type==="symlink"?"↗":"≡"),1),C("span",{class:Be(["filename",{dotfile:e.entry.name.startsWith("."),deleted:e.entry.virtual}])},te(e.entry.name),3),C("span",{class:Be(["row-end",{"has-menu":!e.entry.virtual,"has-status":e.entry.gitStatus||e.entry.hasGitChanges}])},[e.entry.type!=="directory"&&e.entry.gitStatus?(R(),B("span",{key:0,class:Be(["git-badge",`git-${e.entry.gitStatus}`]),title:ue(Ts)[e.entry.gitStatus],"aria-hidden":"true"},te(e.entry.gitStatus),11,nu)):e.entry.hasGitChanges?(R(),B("span",su,"●")):se("",!0),e.entry.virtual?se("",!0):(R(),B("button",{key:2,class:"more","aria-label":`${e.entry.name} 文件操作`,title:"文件操作",onClick:Se(y,["stop"]),onKeydown:S[0]||(S[0]=Se(()=>{},["stop"]))},"⋯",40,ou))],2)],40,Qc),r.value?(R(),B("ul",ru,[l.value?(R(),B("li",iu,"加载中…")):a.value?(R(),B("li",lu,[Ue(te(a.value)+" ",1),C("button",{onClick:v},"重试")])):c.value.length?se("",!0):(R(),B("li",au,"空文件夹")),(R(!0),B(ge,null,Cn(c.value,k=>(R(),He(_,{key:k.path,entry:k,changes:e.changes,onPreview:S[1]||(S[1]=D=>s("preview",D)),onMenu:S[2]||(S[2]=D=>s("menu",D)),onOperation:S[3]||(S[3]=D=>s("operation",D))},null,8,["entry","changes"]))),128))])):se("",!0)])}}},uu=Ve(cu,[["__scopeId","data-v-5c068d88"]]),fu={id:"operation-title"},du={class:"operation-path"},pu={key:0},hu={key:1},mu=["disabled"],gu={key:2,class:"error",role:"alert"},vu={class:"dialog-actions"},yu=["disabled"],bu=["disabled"],wu={__name:"FileOperationDialog",props:{operation:{type:Object,required:!0},trash:String,busy:Boolean,error:String},emits:["close","submit"],setup(e,{emit:t}){const n=e,s=t,o=K(null),r=K(null),i=K(n.operation.kind==="rename"?n.operation.entry.name:n.operation.entry.path),l=Fe(()=>({rename:"重命名",move:"移动文件",delete:n.trash==="mv-trash"?"移到废纸篓?":"永久删除?"})[n.operation.kind]);let a;return mt(()=>{a=document.activeElement,o.value.showModal(),r.value?.select()}),Nt(()=>a?.focus()),(u,c)=>(R(),He(zr,{to:"body"},[C("dialog",{ref_key:"dialog",ref:o,class:"file-dialog","aria-labelledby":"operation-title",onCancel:c[3]||(c[3]=Se(f=>!e.busy&&s("close"),["prevent"])),onClick:c[4]||(c[4]=f=>{f.target===o.value&&!e.busy&&s("close")})},[C("form",{onSubmit:c[2]||(c[2]=Se(f=>s("submit",i.value),["prevent"]))},[C("h3",fu,te(l.value),1),C("p",du,te(e.operation.entry.path),1),e.operation.kind==="delete"?(R(),B("p",pu,te(e.trash==="mv-trash"?"文件将移到 ~/.Trash/,可从废纸篓找回。":"文件将永久删除,此操作无法撤销。"),1)):(R(),B("label",hu,[Ue(te(e.operation.kind==="rename"?"新名称":"目标完整路径(含文件名)")+" ",1),nt(C("input",{ref_key:"input",ref:r,"onUpdate:modelValue":c[0]||(c[0]=f=>i.value=f),required:"",disabled:e.busy,autocomplete:"off"},null,8,mu),[[fs,i.value]])])),e.error?(R(),B("p",gu,te(e.error),1)):se("",!0),C("div",vu,[C("button",{type:"button",class:"btn",disabled:e.busy,onClick:c[1]||(c[1]=f=>s("close"))},"取消",8,yu),C("button",{class:Be(["btn",e.operation.kind==="delete"?"delete-btn":"btn-primary"]),disabled:e.busy||!i.value.trim()},te(e.busy?"处理中…":l.value),11,bu)])],32)],544)]))}},_u=Ve(wu,[["__scopeId","data-v-5ceee09a"]]),xu={id:"clipboard-title"},Cu={id:"clipboard-help"},Su=["readonly","aria-label"],Eu={class:"clipboard-actions"},Tu=["disabled"],$u={__name:"ClipboardDialog",props:{mode:{type:String,required:!0},text:{type:String,default:""},shortcut:{type:String,required:!0}},emits:["close","paste"],setup(e,{emit:t}){const n=e,s=t,o=K(null),r=K(null),i=K(n.text);mt(()=>{o.value.focus(),n.mode==="copy"&&o.value.select()});function l(a){if(a.key==="Escape")a.preventDefault(),s("close");else if(a.key==="Tab"){const u=[...r.value.querySelectorAll("textarea, button:not(:disabled)")],c=u[0],f=u[u.length-1];a.shiftKey&&document.activeElement===c?(a.preventDefault(),f.focus()):!a.shiftKey&&document.activeElement===f&&(a.preventDefault(),c.focus())}}return(a,u)=>(R(),B("div",{class:"clipboard-overlay",onClick:u[3]||(u[3]=Se(c=>s("close"),["self"])),onKeydown:l},[C("form",{ref_key:"dialog",ref:r,class:"clipboard-dialog",role:"dialog","aria-modal":"true","aria-labelledby":"clipboard-title","aria-describedby":"clipboard-help",onSubmit:u[2]||(u[2]=Se(c=>s("paste",i.value),["prevent"]))},[C("h3",xu,te(e.mode==="copy"?"Copy text":"Paste text"),1),C("p",Cu,[u[4]||(u[4]=Ue(" Clipboard access is unavailable. ",-1)),e.mode==="copy"?(R(),B(ge,{key:0},[Ue("Copy the selected text with "+te(e.shortcut)+".",1)],64)):(R(),B(ge,{key:1},[Ue("Paste here with "+te(e.shortcut)+", then click Paste into terminal.",1)],64))]),nt(C("textarea",{ref_key:"textarea",ref:o,"onUpdate:modelValue":u[0]||(u[0]=c=>i.value=c),readonly:e.mode==="copy","aria-label":e.mode==="copy"?"Text to copy":"Text to paste",spellcheck:"false"},null,8,Su),[[fs,i.value]]),C("div",Eu,[C("button",{type:"button",class:"btn",onClick:u[1]||(u[1]=c=>s("close"))},te(e.mode==="copy"?"Done":"Cancel"),1),e.mode==="paste"?(R(),B("button",{key:0,class:"btn btn-primary",disabled:!i.value.length}," Paste into terminal ",8,Tu)):se("",!0)])],544)],32))}},Ii=Ve($u,[["__scopeId","data-v-317cb3e2"]]),ku=20,tn=3,Au=1,In=4,Mu=12,Ri=160,Pu=64;function Ou(e,t,n){if(!Number.isFinite(e.deltaY))return 0;if(e.deltaMode===1)return e.deltaY;if(e.deltaMode===2)return e.deltaY*(n>0&&Number.isFinite(n)?n:24);if(e.deltaMode!==0)return 0;const s=t>0&&Number.isFinite(t)?t:ku;return e.deltaY/s}function Iu({getRowHeight:e,getRows:t,emitStep:n,requestFrame:s,cancelFrame:o,now:r}){let i=0,l=0,a=null,u=null,c=In,f=null;function m(){f!==null&&o(f),f=null,i=0,l=0,a=null,u=null,c=In}function v(){if(r()-u>Pu){m();return}for(;i>=tn&&c>0;)if(i-=tn,c--,n(l,a)===!1){m();return}f===null&&c<In&&(f=s(()=>{f=null,c=In,i>=tn&&v()}))}return{wheel(w){const y=Ou(w,e(),t());if(!y||!Number.isFinite(y))return!1;const A=r(),b=Math.sign(y);return(b!==l||u===null||A-u>Ri||A<u)&&(i=tn-Au),l=b,u=A,a=w,i=Math.min(i+Math.abs(y),Mu*tn),v(),!0},cancel:m}}function Ru({doc:e,terminal:t}){const n=e.defaultView,s=t.element;if(!n?.WheelEvent||!s?.addEventListener)return()=>{};const o=[];function r(y,A,b,S={capture:!0}){y.addEventListener(A,b,S),o.push(()=>y.removeEventListener(A,b,S))}const i=()=>t.modes?.mouseTrackingMode,l=()=>["vt200","drag","any"].includes(i());let a="";const u=()=>`${i()}:${t.buffer?.active?.type}`,c=s.querySelector(".xterm-screen")||s;let f=0,m=0,v=-1/0;const w=Iu({getRowHeight:()=>{const y=n.performance.now();return(m!==t.rows||y-v>=Ri)&&(f=c.getBoundingClientRect().height/(t.rows||1),m=t.rows,v=y),f},getRows:()=>t.rows,requestFrame:y=>n.requestAnimationFrame(y),cancelFrame:y=>n.cancelAnimationFrame(y),now:()=>n.performance.now(),emitStep:(y,A)=>s.isConnected===!1||e.hidden||!l()||u()!==a?!1:(c.dispatchEvent(new n.WheelEvent("wheel",{deltaY:y,deltaMode:1,clientX:A.clientX,clientY:A.clientY,bubbles:!0,cancelable:!0,view:n})),!0)});r(s,"wheel",y=>{if(!y.isTrusted)return;const A=Math.abs(y.deltaX)>Math.abs(y.deltaY);if(y.defaultPrevented||y.ctrlKey||y.metaKey||y.altKey||y.shiftKey||A||!l()){w.cancel();return}u()!==a&&w.cancel(),a=u(),w.wheel(y)&&(y.preventDefault(),y.stopImmediatePropagation())},{capture:!0,passive:!1});for(const y of["keydown","pointerdown","touchstart","paste","visibilitychange"])r(e,y,w.cancel);return r(n,"blur",w.cancel),r(n,"resize",()=>{v=-1/0,w.cancel()}),()=>{w.cancel(),o.forEach(y=>y())}}function Nn(e){return!!(e&&(Array.from(e.types||[]).includes("Files")||Array.from(e.items||[]).some(t=>t.kind==="file")||e.files?.length))}function Li(e){const t=Array.from(e?.items||[]).filter(o=>o.kind==="file"),n=[];let s=!1;for(const o of t){if(o.webkitGetAsEntry?.()?.isDirectory){s=!0;continue}const r=o.getAsFile?.();r&&n.push(r)}return t.length||n.push(...Array.from(e?.files||[])),{files:n,hasDirectories:s}}function Lu(e,t=new Date){const n={"image/png":"png","image/jpeg":"jpg","image/gif":"gif","image/webp":"webp","image/bmp":"bmp","image/tiff":"tiff","image/svg+xml":"svg","image/avif":"avif","image/heic":"heic","image/heif":"heif"},s=t.toISOString().replace(/[-:.]/g,"");return e.map((o,r)=>{if(o.name&&!(o.type.startsWith("image/")&&/^image(?:\.[a-z0-9]+)?$/i.test(o.name)))return o;const i=n[o.type];return new File([o],`clipboard-${s}-${r+1}${i?`.${i}`:""}`,{type:o.type,lastModified:o.lastModified})})}function Di({element:e,onFiles:t,onDragChange:n=()=>{},ignore:s=()=>!1}){let o=0;const r=[],i={capture:!0};function l(c,f){e.addEventListener(c,f,i),r.push(()=>e.removeEventListener(c,f,i))}function a(c){c.preventDefault(),c.stopImmediatePropagation()}function u(){o=0,n(!1)}for(const c of["dragenter","dragover"])l(c,f=>{s(f)||!Nn(f.dataTransfer)||(a(f),c==="dragenter"&&o++,f.dataTransfer.dropEffect="copy",n(!0))});return l("dragleave",c=>{s(c)||!Nn(c.dataTransfer)||--o<=0&&u()}),l("dragend",u),l("drop",c=>{if(s(c)||!Nn(c.dataTransfer))return;a(c),u();const{files:f,hasDirectories:m}=Li(c.dataTransfer);t(f,{source:"drop",hasDirectories:m})}),()=>{r.forEach(c=>c()),u()}}async function Ks(e,t=document,n=navigator){try{if(n.clipboard?.writeText)return await n.clipboard.writeText(e),!0}catch{}if(!t.execCommand)return!1;const s=t.activeElement,o=t.createElement("textarea");o.value=e,o.readOnly=!0,o.style.cssText="position:fixed;left:-9999px;top:0;",t.body.appendChild(o);try{return o.focus({preventScroll:!0}),o.select(),t.execCommand("copy")}catch{return!1}finally{o.remove(),s?.focus({preventScroll:!0})}}const Du=10,Fu=.85,ur=.05,Nu=20;function ju(e,t){return Math.abs(t)>=Du&&Math.abs(t)>Math.abs(e)}function Hu({getRowHeight:e,emitWheel:t,requestFrame:n=s=>setTimeout(()=>s(performance.now()),16)}){let s=null,o=!1,r=0;function i(){const a=e();return a>0?a:Nu}function l(a){if(Number.isFinite(a)&&(r+=a/i(),Math.abs(r)>=1)){const u=Math.trunc(r);r-=u,t(-u*i(),s?.lastX??0,s?.lastY??0)}}return{touchStart(a){if(o=!1,!a.touches||a.touches.length!==1){s=null;return}const u=a.touches[0];s={id:u.identifier,startX:u.clientX,startY:u.clientY,lastX:u.clientX,lastY:u.clientY,lastTime:a.timeStamp??Date.now(),velocity:0,active:!1}},touchMove(a){if(!s)return;const u=[...a.touches].find(v=>v.identifier===s.id);if(!u)return;const c=a.timeStamp??Date.now();if(!s.active){if(!ju(u.clientX-s.startX,u.clientY-s.startY))return;s.active=!0,s.lastX=u.clientX,s.lastY=u.clientY,s.lastTime=c}a.preventDefault();const f=u.clientY-s.lastY,m=Math.max(c-s.lastTime,1);s.velocity=.8*s.velocity+.2*(f/m),s.lastX=u.clientX,s.lastY=u.clientY,s.lastTime=c,l(f)},touchEnd(a){if(!(!s||![...a.changedTouches].some(c=>c.identifier===s.id))){if(s.active&&Math.abs(s.velocity)>ur){o=!0;let c=s.velocity,f=s.lastTime;const m=v=>{if(!o)return;const w=Math.max((v??Date.now())-f,1);if(!Number.isFinite(w)){o=!1;return}if(f=v??Date.now(),c*=Math.pow(Fu,w/16),Math.abs(c)<ur){o=!1;return}l(c*w),n(m)};n(m)}s=null}},cancel(){o=!1,s=null,r=0}}}function Uu({doc:e,terminal:t,isMac:n,getCopyText:s,onCopy:o,onContextMenu:r,onDismiss:i,onInput:l,onSelection:a,onTmuxCopy:u,onFiles:c,onDragChange:f}){const m=[];function v(_,k,D={capture:!0}){e.addEventListener(_,k,D),m.push(()=>e.removeEventListener(_,k,D))}function w(_){_.preventDefault(),_.stopImmediatePropagation()}for(const _ of["pointerdown","pointerup","mousedown","mouseup","auxclick"])v(_,k=>{k.button===2||n&&k.button===0&&k.ctrlKey?(k.stopImmediatePropagation(),k.shiftKey||k.preventDefault()):_==="mousedown"&&(i(),k.button===0&&l())});v("contextmenu",_=>{if(_.shiftKey){i();return}w(_),r(_)}),m.push(Ru({doc:e,terminal:t})),c&&m.push(Di({element:e,onDragChange:f,onFiles:(_,k)=>{i(),c(_,k)}}));const y=Hu({getRowHeight:()=>t.element?t.element.getBoundingClientRect().height/(t.rows||1):0,emitWheel:(_,k,D)=>{const X=t.element?.querySelector(".xterm-screen")||t.element;!X||!e.defaultView||X.dispatchEvent(new e.defaultView.WheelEvent("wheel",{deltaY:_,deltaMode:0,clientX:k,clientY:D,bubbles:!0,cancelable:!0}))}}),A={capture:!0,passive:!1};v("touchstart",_=>y.touchStart(_),A),v("touchmove",_=>y.touchMove(_),A),v("touchend",_=>y.touchEnd(_),A),v("touchcancel",()=>y.cancel(),A),m.push(()=>y.cancel()),v("copy",_=>{const k=s();!k||!_.clipboardData||(_.clipboardData.setData("text/plain",k),w(_))}),v("paste",_=>{if(!_.clipboardData)return;if(c&&Nn(_.clipboardData)){const{files:D,hasDirectories:X}=Li(_.clipboardData);w(_),i(),c(D,{source:"paste",hasDirectories:X});return}const k=_.clipboardData.getData("text/plain");w(_),i(),l(),t.paste(k)}),v("keydown",_=>{const k=_.key.toLowerCase(),D=!_.altKey&&(n&&_.metaKey&&!_.ctrlKey&&k==="c"||_.ctrlKey&&_.shiftKey&&!_.metaKey&&k==="c"),X=!_.altKey&&(n&&_.metaKey&&k==="v"||_.ctrlKey&&k==="v");D?(w(_),o()):X?_.stopImmediatePropagation():(i(),["Shift","Control","Alt","Meta"].includes(_.key)||l())});const b=t.onSelectionChange(()=>a(t.getSelection()));m.push(()=>b.dispose());const S=t.parser.registerOscHandler(52,_=>{const k=_.indexOf(";");if(k<0)return!1;const D=_.slice(k+1);if(D==="?")return!1;try{const X=Uint8Array.from(atob(D),oe=>oe.charCodeAt(0));u(new TextDecoder().decode(X))}catch{}return!0});return m.push(()=>S.dispose()),()=>m.forEach(_=>_())}const Bu={class:"file-panel","aria-label":"文件管理器"},Ku={class:"file-toolbar"},Vu=["title"],Wu=["disabled"],qu=["disabled"],Gu=["title"],Yu={key:1,class:"panel-hint",role:"status"},zu={key:2,class:"panel-hint"},Xu={key:3,class:"panel-hint"},Ju={key:4,class:"panel-hint error",role:"alert"},Zu={key:5,class:"panel-hint git-warning",role:"status"},Qu={key:6,class:"panel-hint",role:"status"},ef=["aria-label","aria-busy"],tf={key:0,role:"none",class:"panel-hint"},nf=["disabled"],sf=["disabled"],of={__name:"FilePanel",setup(e){const t=Bl(()=>co(()=>import("./PreviewDialog-Ci4fyUxf.js"),__vite__mapDeps([2,3]))),n=Tt(),s=Ct("toast"),o=Fe(()=>n.sessions.find(O=>O.name===n.current)),r=K([]),i=K({available:!1,changes:[]}),l=K(""),a=Fe(()=>Oi(r.value,o.value?.root||"/",i.value.changes)),u=K(null),c=K(!1),f=K(!1),m=K(""),v=K(null),w=K(null),y=K(null),A=K(null),b=K(""),S=K(!1),_=K(!1),k=K(null);let D=null,X=0;const oe=/Mac|iPhone|iPad/.test(navigator.platform)?"⌘C":"Ctrl+C";function H(O,N="info",re){s?.value?.show(O,N,re)}async function M(){const O=o.value,N=++X;if(!O||O.root||O.status!=="running"){f.value=!1;return}f.value=!0,m.value="";try{await n.pinRoot(O.name)}catch(re){N===X&&o.value?.name===O.name&&(m.value=re.message)}finally{N===X&&(f.value=!1)}}async function W(){D?.abort();const O=new AbortController;D=O;const N=o.value?.root;if(!N){r.value=[],u.value=null,c.value=!1;return}c.value=!0,m.value="";const re=(async()=>{try{const Me=await(await n.apiRequest(`/api/git/status?${new URLSearchParams({root:N})}`,{signal:O.signal})).json();O.signal.aborted||(i.value=Me,l.value=Me.reason==="git-unavailable"?"未安装 Git,无法显示改动标记。":"")}catch(me){O.signal.aborted||(l.value=`Git 状态更新失败,已有标记可能已过时:${me.message}`)}})();try{const Me=await(await n.apiRequest(`/api/files?${new URLSearchParams({path:N})}`,{signal:O.signal})).json();O.signal.aborted||(r.value=Me.entries,u.value=Me.trash)}catch(me){O.signal.aborted||(m.value=me.message)}finally{await re,O.signal.aborted||(c.value=!1)}}function ee(O){i.value=O,l.value=O.reason==="git-unavailable"?"未安装 Git,无法显示改动标记。":""}async function L(){const O=o.value;if(!(!O||O.status!=="running"))try{await n.pinRoot(O.name,!0),n.refreshFiles(),H("已将文件根目录固定到 shell 当前目录。","success")}catch(N){H(N.message,"error")}}async function U(O){w.value=O,await Et(),!(!w.value||!y.value)&&(w.value.x=Math.max(8,Math.min(O.x,window.innerWidth-y.value.offsetWidth-8)),w.value.y=Math.max(8,Math.min(O.y,window.innerHeight-y.value.offsetHeight-8)),y.value.querySelector("button:not(:disabled)")?.focus())}function F(O=!1){O&&w.value?.trigger?.focus(),w.value=null}function J(O){if(["Escape","Tab"].includes(O.key))O.key==="Escape"&&O.preventDefault(),F(!0);else if(["ArrowDown","ArrowUp","Home","End"].includes(O.key)){O.preventDefault();const N=[...y.value.querySelectorAll("button:not(:disabled)")],re=N.indexOf(document.activeElement),me=O.key==="Home"?0:O.key==="End"?N.length-1:(re+(O.key==="ArrowDown"?1:-1)+N.length)%N.length;N[me]?.focus()}}function G(O,N=w.value?.entry){F(!0),!(!N||N.virtual||S.value||O==="delete"&&!u.value)&&(b.value="",A.value={kind:O,entry:N})}async function q(O){if(S.value)return;const{kind:N,entry:re}=A.value;S.value=!0,b.value="";try{if(N==="delete")await n.apiRequest(`/api/files?${new URLSearchParams({path:re.path})}`,{method:"DELETE"});else{if(N==="rename"&&(!O||O==="."||O===".."||O.includes("/")||O.includes("\0")))throw new Error("请输入不含 / 的有效文件名");const me=N==="rename"?uo(re.path.slice(0,re.path.lastIndexOf("/"))||"/",O):O;await n.apiRequest("/api/files",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({from:re.path,to:me})})}A.value=null,n.refreshFiles(),H(N==="delete"?u.value==="mv-trash"?"已移到废纸篓。":"已永久删除。":"文件已更新。","success")}catch(me){b.value=me.message}finally{S.value=!1}}function ne(O=w.value?.entry){if(F(!0),!O)return;const N=document.createElement("a");N.href=Mi(O.path,!0),N.download=O.name,document.body.append(N),N.click(),N.remove()}async function be(O=w.value?.entry){F(!0),await Ks(O.path)?H("路径已复制。","success"):k.value=O.path}async function Ne(O=w.value?.entry){const N=o.value?.root;if(F(!0),!(!O||!N||_.value)){_.value=!0;try{const me=await(await n.apiRequest("/api/files/archive",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:O.path,root:N})})).json();n.refreshFiles(),H(`已生成:${me.path}`,"success",{action:{label:"下载",onClick:()=>ne({path:me.path,name:me.path.split("/").pop()})}})}catch(re){H(re.message,"error")}finally{_.value=!1}}}function we(O){y.value?.contains(O.target)||F()}return qe(()=>[o.value?.name,o.value?.status],()=>{m.value="",M()},{immediate:!0}),qe(()=>[o.value?.name,o.value?.root],()=>{r.value=[],v.value=null,F(),i.value={available:!1,changes:[]},l.value="",S.value||(A.value=null),W()},{immediate:!0}),qe(()=>n.fileRevision,W),mt(()=>{document.addEventListener("pointerdown",we),window.addEventListener("resize",F)}),Nt(()=>{X++,D?.abort(),document.removeEventListener("pointerdown",we),window.removeEventListener("resize",F)}),(O,N)=>(R(),B("section",Bu,[C("div",Ku,[C("span",{class:"project-name",title:o.value?.root||""},te(o.value?.alias||o.value?.name||"文件"),9,Vu),C("button",{disabled:!o.value?.root||c.value,title:"刷新目录和 Git 标记","aria-label":"刷新目录和 Git 标记",onClick:N[0]||(N[0]=re=>ue(n).refreshFiles())},"↻",8,Wu),C("button",{disabled:o.value?.status!=="running",title:"重新固定到 shell 当前目录","aria-label":"重新固定到 shell 当前目录",onClick:L},"📍",8,qu)]),o.value?.root?(R(),B("div",{key:0,class:"root-path",title:o.value.root},te(o.value.root),9,Gu)):se("",!0),_.value?(R(),B("div",Yu,"正在生成 ZIP…")):se("",!0),o.value?!o.value.root&&!c.value&&!f.value&&!m.value?(R(),B("div",Xu,"启动 session 后自动确定根目录")):se("",!0):(R(),B("div",zu,"选择一个会话以浏览文件。")),m.value?(R(),B("div",Ju,[Ue(te(m.value)+" ",1),C("button",{onClick:N[1]||(N[1]=re=>o.value?.root?W():M())},"重试")])):se("",!0),l.value?(R(),B("div",Zu,te(l.value),1)):se("",!0),c.value||f.value?(R(),B("div",Qu,"加载中…")):se("",!0),o.value?.root?(R(),B("ul",{key:`${o.value.name}:${o.value.root}`,class:"file-tree",role:"tree","aria-label":o.value.root,"aria-busy":c.value},[(R(!0),B(ge,null,Cn(a.value,re=>(R(),He(uu,{key:re.path,entry:re,changes:i.value.changes,onPreview:N[2]||(N[2]=me=>v.value=me),onMenu:U,onOperation:me=>G(me.kind,me.entry)},null,8,["entry","changes","onOperation"]))),128)),!a.value.length&&!c.value&&!m.value?(R(),B("li",tf,"空文件夹")):se("",!0)],8,ef)):se("",!0),(R(),He(zr,{to:"body"},[w.value?(R(),B("div",{key:0,ref_key:"menuElement",ref:y,class:"file-menu",style:wn({left:`${w.value.x}px`,top:`${w.value.y}px`}),role:"menu","aria-label":"文件操作",onKeydown:J},[w.value.entry.type==="file"?(R(),B("button",{key:0,role:"menuitem",onClick:N[3]||(N[3]=re=>{v.value=w.value.entry,F(!0)})},"预览")):se("",!0),C("button",{role:"menuitem",onClick:N[4]||(N[4]=re=>G("rename"))},[...N[13]||(N[13]=[Ue("重命名 ",-1),C("span",null,"F2",-1)])]),C("button",{role:"menuitem",onClick:N[5]||(N[5]=re=>G("move"))},"移动…"),w.value.entry.type==="file"?(R(),B("button",{key:1,role:"menuitem",onClick:N[6]||(N[6]=re=>ne())},"下载")):se("",!0),w.value.entry.type==="directory"?(R(),B("button",{key:2,role:"menuitem",disabled:_.value,onClick:N[7]||(N[7]=re=>Ne())},"压缩为 ZIP",8,nf)):se("",!0),C("button",{role:"menuitem",onClick:N[8]||(N[8]=re=>be())},"复制路径"),C("button",{class:"danger",role:"menuitem",disabled:!u.value,onClick:N[9]||(N[9]=re=>G("delete"))},te(u.value==="mv-trash"?"移到废纸篓…":"永久删除…"),9,sf)],36)):se("",!0)])),v.value?(R(),He(ue(t),{key:8,entry:v.value,root:o.value.root,changes:i.value.changes,onGitStatus:ee,onClose:N[10]||(N[10]=re=>v.value=null)},null,8,["entry","root","changes"])):se("",!0),A.value?(R(),He(_u,{key:A.value.entry.path+A.value.kind,operation:A.value,trash:u.value,busy:S.value,error:b.value,onClose:N[11]||(N[11]=re=>A.value=null),onSubmit:q},null,8,["operation","trash","busy","error"])):se("",!0),k.value!==null?(R(),He(Ii,{key:10,mode:"copy",text:k.value,shortcut:ue(oe),onClose:N[12]||(N[12]=re=>k.value=null)},null,8,["text","shortcut"])):se("",!0)]))}},rf=Ve(of,[["__scopeId","data-v-771bf310"]]),lf={class:"sidebar-tabs",role:"tablist","aria-label":"侧栏"},af=["aria-selected"],cf=["aria-selected"],uf={class:"sessions-panel",id:"sessions-panel",role:"tabpanel","aria-labelledby":"sessions-tab"},ff={class:"sidebar-header"},df={class:"sidebar-title"},pf={class:"session-list"},hf={key:0,class:"empty-hint"},mf={key:0,id:"files-panel",class:"files-panel",role:"tabpanel","aria-labelledby":"files-tab"},gf={__name:"Sidebar",props:{collapsed:Boolean,mobile:Boolean},emits:["create","expand"],setup(e,{emit:t}){const n=t,s=Tt(),o=K("sessions");function r(i){o.value=i,n("expand")}return(i,l)=>(R(),B("aside",{class:Be(["sidebar",{collapsed:e.collapsed}])},[C("div",lf,[C("button",{id:"sessions-tab",role:"tab","aria-selected":o.value==="sessions","aria-controls":"sessions-panel",onClick:l[0]||(l[0]=a=>r("sessions"))},"会话",8,af),C("button",{id:"files-tab",role:"tab","aria-selected":o.value==="files","aria-controls":"files-panel",onClick:l[1]||(l[1]=a=>r("files"))},"文件",8,cf)]),nt(C("div",uf,[C("div",ff,[nt(C("h2",df,"Sessions",512),[[sn,!e.collapsed]]),C("button",{class:"icon-btn new-session-btn",onClick:l[2]||(l[2]=a=>n("create")),title:"New Session"},[l[3]||(l[3]=C("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[C("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),C("line",{x1:"5",y1:"12",x2:"19",y2:"12"})],-1)),nt(C("span",null,"New Session",512),[[sn,!e.collapsed]])])]),C("div",pf,[(R(!0),B(ge,null,Cn(ue(s).sortedSessions,a=>(R(),He(qc,{key:a.name,session:a,active:ue(s).current===a.name,collapsed:e.collapsed,onClick:u=>ue(s).select(a.name)},null,8,["session","active","collapsed","onClick"]))),128)),ue(s).sessions.length?se("",!0):nt((R(),B("div",hf,[...l[4]||(l[4]=[C("p",null,"No active sessions",-1),C("p",{class:"sub-hint"},"Create one to get started",-1)])],512)),[[sn,!e.collapsed]])])],512),[[sn,o.value==="sessions"]]),o.value==="files"&&!e.collapsed?(R(),B("div",mf,[_e(rf)])):se("",!0)],2))}},vf=Ve(gf,[["__scopeId","data-v-b8faf56e"]]),yf="/logo.svg",bf=["width","height"],wf={__name:"BrandMark",props:{size:{type:Number,default:32}},setup(e){return(t,n)=>(R(),B("img",{class:"brand-mark",src:yf,width:e.size,height:e.size,alt:"","aria-hidden":"true",draggable:"false"},null,8,bf))}},fo=Ve(wf,[["__scopeId","data-v-f54af403"]]);async function _f({files:e,directory:t,signal:n,onProgress:s=()=>{},onUnauthorized:o=()=>{},createXHR:r=()=>new XMLHttpRequest}){const i={completed:[],cancelled:[],failed:[]};for(let l=0;l<e.length;l++){const a=e[l],u=uo(t,a.name);if(n.aborted){i.cancelled.push(u);continue}s({index:l+1,total:e.length,percent:0,filename:a.name});try{const c=await new Promise((f,m)=>{const v=r(),w=()=>v.abort(),y=(A,b)=>{n.removeEventListener("abort",w),A(b)};v.open("POST",`/api/files/upload?${new URLSearchParams({dir:t,filename:a.name})}`),v.setRequestHeader("Content-Type","application/octet-stream"),v.upload.onprogress=A=>{A.lengthComputable&&s({index:l+1,total:e.length,percent:Math.round(A.loaded/A.total*100),filename:a.name})},v.onload=()=>{let A={};try{A=JSON.parse(v.responseText)}catch{}v.status===401&&o(),v.status>=200&&v.status<300&&A.path?y(f,A):y(m,new Error(A.error||`Upload failed (${v.status})`))},v.onerror=()=>y(m,new Error("Network error while uploading")),v.onabort=()=>y(m,new DOMException("Upload cancelled","AbortError")),n.addEventListener("abort",w,{once:!0}),n.aborted?y(m,new DOMException("Upload cancelled","AbortError")):v.send(a)});i.completed.push(c.path)}catch(c){n.aborted||c.name==="AbortError"?i.cancelled.push(u):i.failed.push({path:u,error:c.message})}}return i}const xf={key:0,class:"terminal-tools","aria-label":"Terminal tools"},Cf=["disabled","title"],Sf=["disabled","title"],Ef=["disabled","title"],Tf=["title"],$f=["value"],kf={key:1,class:"selection-hint"},Af=["src"],Mf={key:2,class:"file-drop-hint",role:"status"},Pf={key:3,class:"welcome__container"},Of={class:"welcome__content"},If={class:"welcome-brand"},Rf={class:"welcome__text"},Lf={class:"highlight"},Df=["disabled"],Ff=["disabled"],Nf={__name:"TerminalView",emits:["create"],setup(e,{emit:t}){const n=Tt(),s=t,o=Ct("toast"),r=K(null),i=K(null),l=K(!1),a=yl(null),u=K(""),c=K(""),f=K(null),m=K(null),v=K(null),w=/Mac|iPhone|iPad/.test(navigator.platform),y=w?"⌘C":"Ctrl+Shift+C",A=w?"⌘V":"Ctrl+Shift+V",b=w?"⌘V":"Ctrl+V",S=w?"Option":"Shift",_=Fe(()=>!!(u.value||c.value));let k=null,D=null,X=null;const oe=K(null),H=K(null),M=K(!1);let W=null,ee=null,L=!1;function U(h){return{name:h.name,root:(h.root?Promise.resolve(h.root):n.pinRoot(h.name)).then(g=>({root:g}),g=>({error:g}))}}function F(){O();const h=be.value;!h||h.status!=="running"||M.value||(ee=U(h),oe.value.click())}async function J(h){const g=h.join(`
|
|
15
|
+
`);await Ks(g)?we("路径已复制。","success"):v.value={mode:"copy",text:g}}async function G(h){const g=Array.from(h.target.files||[]);h.target.value="";const x=ee;ee=null,await ne(g,x)}function q(h,{source:g,hasDirectories:x}){if(O(),l.value=!1,M.value){we("正在上传,请稍后。");return}const E=be.value;if(!E||E.status!=="running"){we("请先选择正在运行的会话。");return}if(x&&we("暂不支持上传文件夹,已忽略文件夹。"),!h.length){x||we("浏览器未提供可读取的文件,请使用 Upload 选择文件。");return}const I=U(E);ne(g==="paste"?Lu(h):h,I)}async function ne(h,g){if(!h.length||!g||M.value)return;M.value=!0,W=new AbortController;const x=W.signal;try{const{root:E,error:I}=await g.root;if(I)throw I;if(x.aborted)return;const P=uo(E,"temp");L||(we("上传目录为项目下的 temp/,可在项目 .gitignore 中加入 temp/。"),L=!0);const T=await _f({files:h,directory:P,signal:x,onProgress:V=>{H.value={...V,session:g.name}},onUnauthorized:()=>{n.authenticated=!1,W?.abort()}});n.refreshFiles();const $=[`${g.name}:已完成 ${T.completed.length} 个、取消 ${T.cancelled.length} 个、失败 ${T.failed.length} 个`,...T.completed.map(V=>`已完成:${V}`),...T.cancelled.map(V=>`已取消:${V}`),...T.failed.map(V=>`失败:${V.path}
|
|
16
|
+
${V.error}`)].join(`
|
|
17
|
+
`);o?.value?.show($,T.failed.length?"error":T.cancelled.length?"info":"success",{duration:0,action:T.completed.length?{label:"复制路径",onClick:()=>J(T.completed)}:void 0})}catch(E){we(E.message,"error")}finally{M.value=!1,H.value=null,W=null}}const be=Fe(()=>n.sessions.find(h=>h.name===n.current)),Ne=Fe(()=>!be.value||be.value.status!=="running"?null:`/terminal/${be.value.name}`);function we(h,g="info"){o?.value?.show(h,g)}function O(h=!1){f.value=null,h&&a.value?.focus()}function N(){return a.value?.getSelection()||c.value}async function re(){O();const h=a.value,g=N();if(!h||!g){we(`Select text first (${S} + drag).`);return}const x=await Ks(g);a.value===h&&(x?(we("Copied to clipboard.","success"),h.focus()):v.value={mode:"copy",text:g})}function me(h,g=a.value){!g||g!==a.value||(c.value="",g.paste(h),g.focus())}async function Me(){O();const h=a.value;if(h)try{if(!navigator.clipboard?.readText)throw new Error("Clipboard unavailable");const g=await navigator.clipboard.readText();me(g,h)}catch{a.value===h&&(v.value={mode:"paste",text:""})}}function $t(){v.value=null,a.value?.focus()}function Xt(h){me(h),$t()}async function En(h){const g=r.value.getBoundingClientRect();f.value={x:g.left+h.clientX,y:g.top+h.clientY},await Et();const x=m.value;!x||!f.value||(f.value.x=Math.max(8,Math.min(f.value.x,window.innerWidth-x.offsetWidth-8)),f.value.y=Math.max(8,Math.min(f.value.y,window.innerHeight-x.offsetHeight-8)),x.querySelector("button:not(:disabled)")?.focus())}function kt(h){if(h.key==="Escape"||h.key==="Tab")h.key==="Escape"&&h.preventDefault(),O(!0);else if(["ArrowDown","ArrowUp","Home","End"].includes(h.key)){h.preventDefault();const g=[...m.value.querySelectorAll("button:not(:disabled)")],x=g.indexOf(document.activeElement),E=h.key==="Home"?0:h.key==="End"?g.length-1:(x+(h.key==="ArrowDown"?1:-1)+g.length)%g.length;g[E]?.focus()}}function Tn(){clearTimeout(X),X=null,k?.(),k=null,a.value=null,u.value="",c.value="",f.value=null,v.value=null,l.value=!1}function d(h){Tn();const g=h.target,x=n.current,E=Date.now()+1e4;function I(){if(r.value!==g)return;const P=g.contentWindow?.term;if(!P){Date.now()<E?X=setTimeout(I,50):we("Terminal clipboard controls could not load. Please reload the page.","error");return}a.value=P,P.options.macOptionClickForcesSelection=!0,u.value=P.getSelection(),k=Uu({doc:g.contentDocument,terminal:P,isMac:w,getCopyText:N,onCopy:re,onContextMenu:En,onDismiss:()=>O(),onInput:()=>{c.value=""},onSelection:T=>{u.value=T,T&&(c.value="")},onTmuxCopy:T=>{c.value=T},onFiles:(T,$)=>{n.current===x&&q(T,$)},onDragChange:T=>{n.current===x&&(l.value=T)}})}I()}function p(h){m.value?.contains(h.target)||O()}return qe(Ne,Tn),mt(()=>{D=Di({element:i.value,onFiles:q,onDragChange:h=>{l.value=h},ignore:()=>!!v.value}),document.addEventListener("pointerdown",p),window.addEventListener("resize",O)}),Nt(()=>{W?.abort(),D?.(),Tn(),document.removeEventListener("pointerdown",p),window.removeEventListener("resize",O)}),(h,g)=>(R(),B("div",{ref_key:"terminalArea",ref:i,class:"terminal-area"},[C("input",{ref_key:"fileInput",ref:oe,type:"file",multiple:"",hidden:"",onChange:G},null,544),be.value||M.value?(R(),B("div",xf,[C("button",{class:"clipboard-btn",disabled:!a.value||!_.value,title:`Copy selected text (${ue(y)})`,onMousedown:g[0]||(g[0]=Se(()=>{},["prevent"])),onClick:re},"Copy",40,Cf),C("button",{class:"clipboard-btn",disabled:!a.value,title:`Paste text from your computer (${ue(A)}); paste images/files inside the terminal with ${ue(b)}`,onMousedown:g[1]||(g[1]=Se(()=>{},["prevent"])),onClick:Me},"Paste",40,Sf),C("button",{class:"clipboard-btn",disabled:be.value?.status!=="running"||M.value,title:`上传到当前会话的 temp/;也可拖入文件或使用 ${ue(b)} 粘贴图片、文件。完成后手动复制路径。`,onClick:F},"Upload",8,Ef),M.value?(R(),B("div",{key:0,class:"upload-progress","aria-live":"polite",title:H.value?`${H.value.session}: ${H.value.filename}`:"准备上传"},[C("span",null,te(H.value?`${H.value.index}/${H.value.total} · ${H.value.percent}%`:"准备上传…"),1),C("progress",{value:H.value?.percent||0,max:"100","aria-label":"上传进度"},null,8,$f),C("button",{class:"clipboard-btn",onClick:g[2]||(g[2]=x=>ue(W)?.abort())},"取消")],8,Tf)):(R(),B("span",kf,te(ue(S))+" + drag to select · "+te(ue(y))+" / "+te(ue(A))+" · 拖入文件 / "+te(ue(b))+" 粘贴图片、文件上传",1))])):se("",!0),Ne.value?(R(),B("iframe",{ref_key:"iframe",ref:r,key:Ne.value,src:Ne.value,class:"terminal-frame",title:"Terminal",allow:"clipboard-read; clipboard-write",onLoad:d},null,40,Af)):se("",!0),l.value?(R(),B("div",Mf,te(M.value?"正在上传,请稍后":be.value?.status==="running"?"松开以上传到当前会话的 temp/":"请先选择正在运行的会话"),1)):se("",!0),Ne.value?se("",!0):(R(),B("div",Pf,[C("div",Of,[C("div",If,[_e(fo,{size:104}),g[6]||(g[6]=C("div",{class:"logo-text"},"ACLI Hub",-1))]),be.value?(R(),B(ge,{key:1},[C("p",Rf,[g[8]||(g[8]=Ue(" Session ",-1)),C("span",Lf,te(be.value.name),1),g[9]||(g[9]=Ue(" is currently stopped. ",-1))]),g[10]||(g[10]=C("p",{class:"sub-text"},"Restart the session to continue.",-1))],64)):(R(),B(ge,{key:0},[g[7]||(g[7]=C("p",{class:"welcome__text"},"No active session selected.",-1)),C("button",{class:"btn btn-primary",onClick:g[3]||(g[3]=x=>s("create"))}," Create First Session ")],64))])])),f.value?(R(),B("div",{key:4,ref_key:"menuElement",ref:m,class:"clipboard-menu",style:wn({left:`${f.value.x}px`,top:`${f.value.y}px`}),role:"menu","aria-label":"Terminal clipboard",onKeydown:kt},[C("button",{role:"menuitem",disabled:!_.value,onMousedown:g[4]||(g[4]=Se(()=>{},["prevent"])),onClick:re},[g[11]||(g[11]=Ue(" Copy ",-1)),C("span",null,te(ue(y)),1)],40,Df),C("button",{role:"menuitem",onMousedown:g[5]||(g[5]=Se(()=>{},["prevent"])),onClick:Me},[g[12]||(g[12]=Ue(" Paste ",-1)),C("span",null,te(ue(A)),1)],32),C("button",{role:"menuitem",disabled:be.value?.status!=="running"||M.value,onClick:F},"Upload files…",8,Ff),g[13]||(g[13]=C("p",null,"Shift + right-click for browser menu",-1))],36)):se("",!0),v.value?(R(),He(Ii,{key:5,mode:v.value.mode,text:v.value.text,shortcut:v.value.mode==="copy"?ue(w)?"⌘C":"Ctrl+C":ue(w)?"⌘V":"Ctrl+V",onClose:$t,onPaste:Xt},null,8,["mode","text","shortcut"])):se("",!0)],512))}},jf=Ve(Nf,[["__scopeId","data-v-dba7ce31"]]),Hf={class:"modal-header"},Uf={class:"modal-body"},Bf={class:"form-group"},Kf=["value"],Vf={class:"modal-footer"},Wf=["disabled"],qf={__name:"CreateDialog",emits:["close"],setup(e,{emit:t}){const n=t,s=Tt(),o=K({command:s.shells.length?s.shells[0].id:"bash"}),r=K(!1),i=K(null);let l=null;mt(()=>{l=document.activeElement,i.value?.focus()}),so(()=>{l?.isConnected&&l.focus()});async function a(){if(!r.value){r.value=!0;try{await s.create(o.value),n("close")}catch(u){console.error(u)}finally{r.value=!1,await Et(),document.activeElement===document.body&&i.value?.focus()}}}return(u,c)=>(R(),B("div",{class:"modal-overlay",onClick:c[3]||(c[3]=Se(f=>n("close"),["self"]))},[C("form",{class:"modal-content glass",onSubmit:Se(a,["prevent"])},[C("div",Hf,[c[4]||(c[4]=C("h3",null,"Create New Session",-1)),C("button",{type:"button",class:"close-btn",onClick:c[0]||(c[0]=f=>n("close"))},"✕")]),C("div",Uf,[C("label",Bf,[c[5]||(c[5]=C("span",{class:"label-text"},"Shell",-1)),nt(C("select",{"onUpdate:modelValue":c[1]||(c[1]=f=>o.value.command=f)},[(R(!0),B(ge,null,Cn(ue(s).shells,f=>(R(),B("option",{key:f.id,value:f.id},te(f.name),9,Kf))),128))],512),[[vc,o.value.command]])])]),C("div",Vf,[C("button",{type:"button",class:"btn",onClick:c[2]||(c[2]=f=>n("close"))},"Cancel"),C("button",{ref_key:"createButton",ref:i,type:"submit",class:"btn btn-primary",disabled:r.value},te(r.value?"Creating...":"Create Session"),9,Wf)])],32)]))}},Gf=Ve(qf,[["__scopeId","data-v-ef0ce732"]]),Yf={class:"login-screen"},zf={class:"login-logo"},Xf={key:0,class:"login-error",role:"alert"},Jf=["disabled"],Zf={__name:"LoginView",emits:["success"],setup(e,{emit:t}){const n=t,s=Tt(),o=K(""),r=K(""),i=K(!1),l=K(null);mt(()=>{l.value?.focus()});async function a(){if(!(!o.value||i.value)){i.value=!0,r.value="";try{await s.login(o.value),o.value="",n("success")}catch(u){r.value=u.message||"Login failed"}finally{i.value=!1}}}return(u,c)=>(R(),B("div",Yf,[C("form",{class:"login-card",onSubmit:Se(a,["prevent"])},[C("div",zf,[_e(fo,{size:72})]),c[2]||(c[2]=C("h1",null,"ACLI Hub",-1)),c[3]||(c[3]=C("p",{class:"login-hint"},"Enter the session password to continue",-1)),nt(C("input",{ref_key:"passwordInput",ref:l,"onUpdate:modelValue":c[0]||(c[0]=f=>o.value=f),type:"password",autocomplete:"current-password",placeholder:"Password","aria-label":"Password",onKeydown:c[1]||(c[1]=Hs(f=>{o.value="",r.value=""},["esc"]))},null,544),[[fs,o.value]]),r.value?(R(),B("p",Xf,te(r.value),1)):se("",!0),C("button",{type:"submit",class:"login-btn",disabled:!o.value||i.value},te(i.value?"Signing in…":"Sign in"),9,Jf)],32)]))}},Qf=Ve(Zf,[["__scopeId","data-v-86b6b672"]]),ed={class:"toast-container","aria-live":"polite"},td={class:"toast-message"},nd={class:"toast-actions"},sd=["onClick"],od=["onClick"],rd={__name:"Toast",setup(e,{expose:t}){const n=K([]);let s=0;const o=new Map;function r(l){clearTimeout(o.get(l)),o.delete(l),n.value=n.value.filter(a=>a.id!==l)}function i(l,a="info",{action:u,duration:c=u?0:4e3}={}){const f=++s;n.value.push({id:f,message:l,type:a,action:u}),c&&o.set(f,setTimeout(()=>r(f),c))}return Nt(()=>{for(const l of o.values())clearTimeout(l)}),t({show:i}),(l,a)=>(R(),B("div",ed,[_e(fc,{name:"toast"},{default:Kr(()=>[(R(!0),B(ge,null,Cn(n.value,u=>(R(),B("div",{key:u.id,class:Be(["toast",u.type])},[C("div",td,te(u.message),1),C("div",nd,[u.action?(R(),B("button",{key:0,onClick:u.action.onClick},te(u.action.label),9,sd)):se("",!0),C("button",{"aria-label":"Dismiss notification",onClick:c=>r(u.id)},"×",8,od)])],2))),128))]),_:1})]))}},id=Ve(rd,[["__scopeId","data-v-6bea03ca"]]);function ld(e,t=globalThis.document){return!t||typeof e!="string"||!e.trim()?!1:(t.title=`${e.trim()} · ACLI Hub`,!0)}const ad={key:1,class:"app-layout"},cd={class:"toolbar glass"},ud={class:"toolbar-left"},fd={class:"logo-wrapper"},dd={class:"toolbar-right"},pd={class:"main-area"},hd={__name:"App",setup(e){const t=Tt(),n=K(!1),s=K(!1),o=K(null),r=K(!1);window.innerWidth<768&&(n.value=!0),Vr("toast",o),qe(()=>t.authenticated,c=>{c&&t.init()}),mt(async()=>{await t.checkAuth(),r.value=!0,ld(t.instanceName)});async function l(){await t.logout()}function a(){n.value=!n.value}function u(){n.value=!0}return(c,f)=>r.value&&!ue(t).authenticated?(R(),He(Qf,{key:0})):r.value?(R(),B("div",ad,[C("header",cd,[C("div",ud,[C("button",{class:"icon-btn toggle-btn",onClick:a,"aria-label":"Toggle Sidebar"},[...f[4]||(f[4]=[C("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[C("line",{x1:"3",y1:"12",x2:"21",y2:"12"}),C("line",{x1:"3",y1:"6",x2:"21",y2:"6"}),C("line",{x1:"3",y1:"18",x2:"21",y2:"18"})],-1)])]),C("div",fd,[_e(fo,{size:28})]),f[5]||(f[5]=C("h1",{class:"toolbar-title"},"ACLI Hub",-1))]),C("div",dd,[ue(t).authRequired?(R(),B("button",{key:0,class:"icon-btn toggle-btn","aria-label":"Log out",title:"Log out",onClick:l},[...f[6]||(f[6]=[C("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[C("path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"}),C("polyline",{points:"16 17 21 12 16 7"}),C("line",{x1:"21",y1:"12",x2:"9",y2:"12"})],-1)])])):se("",!0)])]),C("div",pd,[C("div",{class:Be(["sidebar-overlay",{show:!n.value}]),onClick:u},null,2),_e(vf,{collapsed:n.value,onCreate:f[0]||(f[0]=m=>s.value=!0),onExpand:f[1]||(f[1]=m=>n.value=!1)},null,8,["collapsed"]),_e(jf,{onCreate:f[2]||(f[2]=m=>s.value=!0)})]),s.value?(R(),He(Gf,{key:0,onClose:f[3]||(f[3]=m=>s.value=!1)})):se("",!0),_e(id,{ref_key:"toastRef",ref:o},null,512)])):se("",!0)}},md=Ve(hd,[["__scopeId","data-v-cfab805f"]]),Fi=Cc(md);Fi.use(Tc());Fi.mount("#app");export{bd as A,yd as B,vd as C,ge as F,Ts as G,zr as T,co as _,Ve as a,Nt as b,R as c,He as d,Pi as e,C as f,B as g,se as h,ue as i,Jc as j,Mi as k,Cn as l,Ue as m,Be as n,mt as o,gd as p,Se as q,K as r,Et as s,te as t,Tt as u,yl as v,qe as w,Fe as x,wd as y,cr as z};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--bg-primary: #0f172a;--bg-secondary: #1e293b;--bg-tertiary: #334155;--bg-card: #1e293b;--bg-card-hover: #334155;--border-color: #334155;--border-color-hover: #475569;--text-primary: #f8fafc;--text-secondary: #94a3b8;--text-tertiary: #64748b;--accent-primary: #3b82f6;--accent-hover: #2563eb;--accent-dim: rgba(59, 130, 246, .15);--success: #10b981;--warning: #f59e0b;--danger: #ef4444;--sidebar-width: 260px;--sidebar-collapsed-width: 0px;--toolbar-height: 56px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1)}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;background:var(--bg-primary);color:var(--text-primary);overflow:hidden;height:100vh;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}#app{height:100vh;display:flex;flex-direction:column}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.glass{background:#1e293bb3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-color)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;border-radius:var(--radius-md);font-weight:500;cursor:pointer;transition:all .2s;border:1px solid transparent;outline:none}.btn-primary{background:var(--accent-primary);color:#fff}.btn-primary:hover{background:var(--accent-hover)}input{background:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-primary);padding:8px 12px;border-radius:var(--radius-md);outline:none;transition:border-color .2s}input:focus{border-color:var(--accent-primary)}.session-card[data-v-0e38e5ff]{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-md);cursor:pointer;transition:all .2s;border:1px solid transparent;color:var(--text-secondary)}.session-card[data-v-0e38e5ff]:hover{background:var(--bg-card-hover);color:var(--text-primary)}.session-card.active[data-v-0e38e5ff]{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-color)}.status-indicator[data-v-0e38e5ff]{width:8px;height:8px;border-radius:50%;background:var(--text-tertiary);flex-shrink:0}.status-indicator.running[data-v-0e38e5ff]{background:var(--success);box-shadow:0 0 8px #10b98166}.status-indicator.running.output-active[data-v-0e38e5ff]{background:var(--warning);box-shadow:0 0 8px #f59e0b66}.card-content[data-v-0e38e5ff]{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.card-top[data-v-0e38e5ff]{display:flex;align-items:center;gap:4px}.session-name[data-v-0e38e5ff]{font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0;display:flex;align-items:baseline;gap:6px}.alias-text[data-v-0e38e5ff]{overflow:hidden;text-overflow:ellipsis}.real-name[data-v-0e38e5ff]{flex-shrink:1;max-width:45%;overflow:hidden;text-overflow:ellipsis;font-size:11px;font-weight:400;color:var(--text-tertiary)}.alias-input[data-v-0e38e5ff]{flex:1;min-width:0;padding:2px 6px;font-size:13px;color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;outline:none}.alias-input[data-v-0e38e5ff]:focus{border-color:var(--accent-primary, #3b82f6)}.close-btn[data-v-0e38e5ff]{display:none;align-items:center;justify-content:center;background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:2px;border-radius:4px;flex-shrink:0}.session-card:hover .close-btn[data-v-0e38e5ff]{display:flex}.close-btn[data-v-0e38e5ff]:hover{background:var(--bg-tertiary);color:var(--danger)}.session-info[data-v-0e38e5ff]{display:flex;align-items:baseline;gap:8px;font-size:11px;color:var(--text-tertiary)}.pane-title[data-v-0e38e5ff]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.confirm-bar[data-v-0e38e5ff]{display:flex;align-items:center;gap:6px;font-size:12px}.confirm-text[data-v-0e38e5ff]{color:var(--danger);font-weight:500}.confirm-yes[data-v-0e38e5ff],.confirm-no[data-v-0e38e5ff]{background:none;border:1px solid var(--border-color);border-radius:4px;padding:1px 8px;font-size:11px;cursor:pointer;color:var(--text-secondary)}.confirm-yes[data-v-0e38e5ff]:hover{background:var(--danger);border-color:var(--danger);color:#fff}.confirm-no[data-v-0e38e5ff]:hover{background:var(--bg-tertiary);color:var(--text-primary)}.session-card.collapsed[data-v-0e38e5ff]{justify-content:center;padding:12px}.session-card.collapsed .status-indicator[data-v-0e38e5ff]{width:10px;height:10px}li[data-v-5c068d88]{list-style:none}.tree-row[data-v-5c068d88]{display:flex;align-items:center;gap:5px;min-height:31px;padding:2px 6px;cursor:pointer;border-radius:3px;outline-offset:-2px}.tree-row[data-v-5c068d88]:hover,.tree-row[data-v-5c068d88]:focus-visible{background:var(--bg-tertiary)}.chevron[data-v-5c068d88]{flex:0 0 10px;color:var(--text-secondary)}.file-icon[data-v-5c068d88]{color:var(--text-secondary);font-size:18px;width:15px}.filename[data-v-5c068d88]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px}.dotfile[data-v-5c068d88]{opacity:.55}.deleted[data-v-5c068d88]{text-decoration:line-through;opacity:.65}.row-end[data-v-5c068d88]{position:relative;flex:0 0 20px;height:24px}.git-badge[data-v-5c068d88],.git-dot[data-v-5c068d88]{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.git-badge[data-v-5c068d88]{font:600 11px/1.5 ui-monospace,monospace}.git-M[data-v-5c068d88],.git-dot[data-v-5c068d88]{color:#e5b45c}.git-A[data-v-5c068d88],.git-U[data-v-5c068d88]{color:#71c993}.git-D[data-v-5c068d88],.git-C[data-v-5c068d88]{color:#f08080}.git-R[data-v-5c068d88]{color:#79b8ff}.git-dot[data-v-5c068d88]{font-size:7px}.more[data-v-5c068d88]{position:absolute;inset:0;width:100%;background:var(--bg-tertiary);color:var(--text-secondary);border:none;border-radius:3px;cursor:pointer;padding:0;font-size:18px;opacity:0;pointer-events:none}.tree-row:hover .more[data-v-5c068d88],.tree-row:focus-within .more[data-v-5c068d88]{opacity:1;pointer-events:auto}.tree-row:hover .has-menu .git-badge[data-v-5c068d88],.tree-row:hover .has-menu .git-dot[data-v-5c068d88],.tree-row:focus-within .has-menu .git-badge[data-v-5c068d88],.tree-row:focus-within .has-menu .git-dot[data-v-5c068d88]{opacity:0}.tree-children[data-v-5c068d88]{margin-left:14px;padding-left:5px;border-left:1px solid var(--border-color)}.tree-status[data-v-5c068d88]{padding:5px 10px;color:var(--text-secondary);font-size:12px;overflow-wrap:anywhere}.tree-status button[data-v-5c068d88]{background:none;color:var(--text-primary);border:none;cursor:pointer;text-decoration:underline}.error[data-v-5c068d88]{color:var(--danger)}@media(hover:none){.more[data-v-5c068d88]{pointer-events:auto}.row-end:not(.has-status) .more[data-v-5c068d88]{opacity:1;background:transparent}}.file-dialog[data-v-5ceee09a]{margin:auto;width:min(480px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;padding:24px;background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg)}.file-dialog[data-v-5ceee09a]::backdrop{background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}p[data-v-5ceee09a]{margin:12px 0;color:var(--text-secondary)}.operation-path[data-v-5ceee09a]{overflow-wrap:anywhere;font:12px/1.6 monospace}label[data-v-5ceee09a]{display:flex;flex-direction:column;gap:8px}.dialog-actions[data-v-5ceee09a]{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.btn[data-v-5ceee09a]{background:var(--bg-tertiary);color:var(--text-primary)}.btn-primary[data-v-5ceee09a]{background:var(--accent-primary)}.delete-btn[data-v-5ceee09a]{background:var(--danger);color:#fff}.error[data-v-5ceee09a]{color:var(--danger)}button[data-v-5ceee09a]:disabled{opacity:.5;cursor:default}.clipboard-overlay[data-v-317cb3e2]{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.clipboard-dialog[data-v-317cb3e2]{width:min(520px,calc(100vw - 32px));padding:20px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}h3[data-v-317cb3e2]{font-size:16px}p[data-v-317cb3e2]{margin:12px 0;color:var(--text-secondary)}textarea[data-v-317cb3e2]{width:100%;height:180px;resize:vertical;padding:12px;background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);font:13px/1.5 monospace}textarea[data-v-317cb3e2]:focus{outline:2px solid var(--accent-primary);outline-offset:2px}.clipboard-actions[data-v-317cb3e2]{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}button[type=button][data-v-317cb3e2]{color:var(--text-primary);background:var(--bg-tertiary)}button[data-v-317cb3e2]:disabled{opacity:.5;cursor:default}.file-panel[data-v-771bf310]{display:flex;flex-direction:column;min-height:0;flex:1}.file-toolbar[data-v-771bf310]{display:flex;align-items:center;gap:4px;padding:10px 12px 4px}.project-name[data-v-771bf310]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600}.file-toolbar button[data-v-771bf310],.panel-hint button[data-v-771bf310]{border:none;background:transparent;color:var(--text-secondary);padding:3px 5px;cursor:pointer;font-size:17px}.file-toolbar button[data-v-771bf310]:hover{background:var(--bg-tertiary);border-radius:4px}button[data-v-771bf310]:disabled{opacity:.4;cursor:default}.root-path[data-v-771bf310]{color:var(--text-secondary);font:11px/1.6 monospace;overflow-wrap:anywhere;padding:0 12px 10px;border-bottom:1px solid var(--border-color)}.file-tree[data-v-771bf310]{overflow:auto;padding:6px;flex:1;min-height:0}.panel-hint[data-v-771bf310]{padding:12px;color:var(--text-secondary);font-size:12px;list-style:none;overflow-wrap:anywhere}.error[data-v-771bf310]{color:var(--danger)}.git-warning[data-v-771bf310]{color:#e5b45c}.file-menu[data-v-771bf310]{position:fixed;z-index:110;width:min(230px,calc(100vw - 16px));padding:6px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.file-menu button[data-v-771bf310]{display:flex;justify-content:space-between;width:100%;text-align:left;padding:8px 10px;background:none;color:var(--text-primary);border:none;border-radius:4px;cursor:pointer}.file-menu button[data-v-771bf310]:hover:not(:disabled),.file-menu button[data-v-771bf310]:focus-visible{background:var(--bg-tertiary)}.file-menu span[data-v-771bf310]{color:var(--text-secondary)}.file-menu .danger[data-v-771bf310]{color:var(--danger)}.sidebar[data-v-b8faf56e]{width:var(--sidebar-width);border-right:1px solid var(--border-color);background:var(--bg-secondary);display:flex;flex-direction:column;flex-shrink:0;transition:all .3s cubic-bezier(.4,0,.2,1);overflow:hidden;height:100%;z-index:20}.sidebar.collapsed[data-v-b8faf56e]{width:72px}.sidebar-tabs[data-v-b8faf56e]{display:flex;flex-shrink:0;border-bottom:1px solid var(--border-color)}.sidebar-tabs button[data-v-b8faf56e]{flex:1;padding:12px 4px;border:none;border-bottom:2px solid transparent;background:none;color:var(--text-secondary);cursor:pointer;font:inherit;font-size:12px}.sidebar-tabs button[aria-selected=true][data-v-b8faf56e]{border-bottom-color:var(--accent-primary);color:var(--text-primary);background:var(--bg-primary)}.sessions-panel[data-v-b8faf56e],.files-panel[data-v-b8faf56e]{display:flex;flex-direction:column;min-height:0;flex:1}.sidebar-header[data-v-b8faf56e]{padding:16px;border-bottom:1px solid var(--border-color);display:flex;flex-direction:column;gap:12px}.sidebar-title[data-v-b8faf56e]{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-tertiary);font-weight:600}.new-session-btn[data-v-b8faf56e]{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;background:var(--accent-primary);color:#fff;border:none;border-radius:var(--radius-md);padding:10px;cursor:pointer;font-weight:500;transition:all .2s}.new-session-btn[data-v-b8faf56e]:hover{background:var(--accent-hover)}.sidebar.collapsed .new-session-btn[data-v-b8faf56e]{padding:10px 0}.session-list[data-v-b8faf56e]{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:4px}.empty-hint[data-v-b8faf56e]{text-align:center;padding:40px 10px;color:var(--text-tertiary)}.empty-hint p[data-v-b8faf56e]{font-size:14px;margin-bottom:4px}.empty-hint .sub-hint[data-v-b8faf56e]{font-size:12px;opacity:.7}@media(max-width:768px){.sidebar[data-v-b8faf56e]{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-width);transform:translate(0);box-shadow:var(--shadow-md);z-index:50}.sidebar.collapsed[data-v-b8faf56e]{transform:translate(-100%);width:var(--sidebar-width)}}.brand-mark[data-v-f54af403]{display:block;flex-shrink:0;object-fit:contain}.terminal-area[data-v-95819edf]{flex:1;display:flex;flex-direction:column;overflow:hidden;background:#000;position:relative}.terminal-frame[data-v-95819edf]{flex:1;width:100%;min-height:0;border:none;background:#000}.terminal-tools[data-v-95819edf]{display:flex;align-items:center;flex-shrink:0;gap:8px;padding:6px 12px;background:var(--bg-primary);border-bottom:1px solid var(--border-color);flex-wrap:wrap}.upload-progress[data-v-95819edf]{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary)}.upload-progress progress[data-v-95819edf]{width:64px;height:4px;accent-color:var(--accent-primary)}.clipboard-btn[data-v-95819edf]{padding:4px 10px;background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer}.clipboard-btn[data-v-95819edf]:hover:not(:disabled){background:var(--bg-tertiary)}.clipboard-btn[data-v-95819edf]:disabled,.clipboard-menu button[data-v-95819edf]:disabled{opacity:.45;cursor:default}.selection-hint[data-v-95819edf]{color:var(--text-secondary);font-size:12px}.clipboard-menu[data-v-95819edf]{position:fixed;z-index:100;width:min(280px,calc(100vw - 16px));padding:6px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.clipboard-menu button[data-v-95819edf]{display:flex;justify-content:space-between;width:100%;padding:8px 10px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-primary);text-align:left;cursor:pointer}.clipboard-menu button[data-v-95819edf]:hover:not(:disabled),.clipboard-menu button[data-v-95819edf]:focus-visible{background:var(--bg-tertiary)}.clipboard-menu span[data-v-95819edf],.clipboard-menu p[data-v-95819edf]{color:var(--text-secondary);font-size:12px}.clipboard-menu p[data-v-95819edf]{padding:8px 10px 4px;border-top:1px solid var(--border-color)}@media(max-width:600px){.selection-hint[data-v-95819edf]{display:none}}.welcome__container[data-v-95819edf]{flex:1;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);background-image:radial-gradient(circle at center,var(--bg-secondary) 0%,var(--bg-primary) 100%)}.welcome__content[data-v-95819edf]{text-align:center;max-width:400px;padding:40px}.welcome-brand[data-v-95819edf]{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:24px}.logo-text[data-v-95819edf]{font-size:32px;font-weight:700;color:var(--text-primary);letter-spacing:-1px}.welcome__text[data-v-95819edf]{color:var(--text-secondary);font-size:16px;margin-bottom:24px}.highlight[data-v-95819edf]{color:var(--text-primary);font-weight:600}.sub-text[data-v-95819edf]{color:var(--text-tertiary);font-size:14px}.modal-overlay[data-v-ef0ce732]{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn-ef0ce732 .2s ease}.modal-content[data-v-ef0ce732]{width:100%;max-width:400px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin:16px;overflow:hidden;animation:slideUp-ef0ce732 .3s cubic-bezier(.16,1,.3,1)}.modal-header[data-v-ef0ce732]{padding:16px 20px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.modal-header h3[data-v-ef0ce732]{font-size:16px;font-weight:600;color:var(--text-primary)}.close-btn[data-v-ef0ce732]{background:none;border:none;color:var(--text-tertiary);cursor:pointer;font-size:18px;padding:4px;border-radius:4px}.close-btn[data-v-ef0ce732]:hover{background:var(--bg-tertiary);color:var(--text-primary)}.modal-body[data-v-ef0ce732]{padding:20px;display:flex;flex-direction:column;gap:16px}.form-group[data-v-ef0ce732]{display:flex;flex-direction:column;gap:8px}.label-text[data-v-ef0ce732]{font-size:13px;font-weight:500;color:var(--text-secondary)}select[data-v-ef0ce732]{width:100%;background:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-primary);padding:10px;border-radius:var(--radius-md);outline:none;font-size:14px;appearance:none}select[data-v-ef0ce732]:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-dim)}.modal-footer[data-v-ef0ce732]{padding:16px 20px;background:var(--bg-primary);border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;gap:12px}@keyframes fadeIn-ef0ce732{0%{opacity:0}to{opacity:1}}@keyframes slideUp-ef0ce732{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.login-screen[data-v-86b6b672]{height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-primary)}.login-card[data-v-86b6b672]{width:min(360px,calc(100vw - 48px));padding:32px;display:flex;flex-direction:column;align-items:center;gap:12px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.login-logo[data-v-86b6b672]{display:flex;align-items:center;justify-content:center;width:72px;height:72px}h1[data-v-86b6b672]{font-size:22px;font-weight:600;color:var(--text-primary);letter-spacing:-.5px}.login-hint[data-v-86b6b672]{margin:-4px 0 8px;font-size:13px;color:var(--text-secondary)}input[data-v-86b6b672]{width:100%;padding:10px 12px;font-size:14px;color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);outline:none}input[data-v-86b6b672]:focus{border-color:var(--accent-primary, #3b82f6)}.login-error[data-v-86b6b672]{width:100%;margin:0;font-size:13px;color:var(--danger)}.login-btn[data-v-86b6b672]{width:100%;margin-top:4px;padding:10px 12px;font-size:14px;font-weight:500;color:#fff;background:var(--accent-primary, #3b82f6);border:none;border-radius:var(--radius-md);cursor:pointer}.login-btn[data-v-86b6b672]:disabled{opacity:.5;cursor:default}.login-btn[data-v-86b6b672]:not(:disabled):hover{filter:brightness(1.1)}.toast-container[data-v-6bea03ca]{position:fixed;top:60px;right:16px;z-index:200;display:flex;flex-direction:column;gap:8px;max-width:min(520px,calc(100vw - 32px));max-height:calc(100vh - 80px);overflow:auto}.toast[data-v-6bea03ca]{padding:10px 16px;border-radius:8px;font-size:13px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-color);min-width:200px;background:var(--bg-secondary);display:flex;align-items:flex-start;gap:12px}.toast-message[data-v-6bea03ca]{white-space:pre-wrap;overflow-wrap:anywhere;max-height:35vh;overflow:auto;flex:1}.toast-actions[data-v-6bea03ca]{display:flex;gap:8px;flex-shrink:0}.toast-actions button[data-v-6bea03ca]{border:none;background:transparent;color:inherit;cursor:pointer;font:inherit}.toast.info[data-v-6bea03ca]{background:var(--bg-secondary);color:var(--text-primary)}.toast.error[data-v-6bea03ca]{background:var(--bg-secondary);color:var(--danger)}.toast.success[data-v-6bea03ca]{background:#4ade8026;color:#4ade80}.toast-enter-active[data-v-6bea03ca]{animation:slideIn-6bea03ca .3s ease}.toast-leave-active[data-v-6bea03ca]{animation:slideOut-6bea03ca .3s ease}@keyframes slideIn-6bea03ca{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOut-6bea03ca{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.app-layout[data-v-cfab805f]{height:100vh;display:flex;flex-direction:column}.toolbar[data-v-cfab805f]{height:var(--toolbar-height);display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid var(--border-color);flex-shrink:0;z-index:30;background:var(--bg-primary)}.toolbar-left[data-v-cfab805f]{display:flex;align-items:center;gap:12px}.toggle-btn[data-v-cfab805f]{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.toggle-btn[data-v-cfab805f]:hover{color:var(--text-primary);background:var(--bg-tertiary)}.logo-wrapper[data-v-cfab805f]{display:flex;align-items:center;justify-content:center;flex-shrink:0}.toolbar-title[data-v-cfab805f]{font-size:16px;font-weight:600;color:var(--text-primary);letter-spacing:-.5px}.main-area[data-v-cfab805f]{flex:1;display:flex;overflow:hidden;position:relative}.sidebar-overlay[data-v-cfab805f]{display:none;position:absolute;inset:0;background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:15;opacity:0;transition:opacity .3s ease;pointer-events:none}@media(max-width:768px){.sidebar-overlay[data-v-cfab805f]{display:block}.sidebar-overlay.show[data-v-cfab805f]{opacity:1;pointer-events:auto}}
|
|
1
|
+
:root{--bg-primary: #0f172a;--bg-secondary: #1e293b;--bg-tertiary: #334155;--bg-card: #1e293b;--bg-card-hover: #334155;--border-color: #334155;--border-color-hover: #475569;--text-primary: #f8fafc;--text-secondary: #94a3b8;--text-tertiary: #64748b;--accent-primary: #3b82f6;--accent-hover: #2563eb;--accent-dim: rgba(59, 130, 246, .15);--success: #10b981;--warning: #f59e0b;--danger: #ef4444;--sidebar-width: 260px;--sidebar-collapsed-width: 0px;--toolbar-height: 56px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1)}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;background:var(--bg-primary);color:var(--text-primary);overflow:hidden;height:100vh;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}#app{height:100vh;display:flex;flex-direction:column}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.glass{background:#1e293bb3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-color)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;border-radius:var(--radius-md);font-weight:500;cursor:pointer;transition:all .2s;border:1px solid transparent;outline:none}.btn-primary{background:var(--accent-primary);color:#fff}.btn-primary:hover{background:var(--accent-hover)}input{background:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-primary);padding:8px 12px;border-radius:var(--radius-md);outline:none;transition:border-color .2s}input:focus{border-color:var(--accent-primary)}.session-card[data-v-0e38e5ff]{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-md);cursor:pointer;transition:all .2s;border:1px solid transparent;color:var(--text-secondary)}.session-card[data-v-0e38e5ff]:hover{background:var(--bg-card-hover);color:var(--text-primary)}.session-card.active[data-v-0e38e5ff]{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-color)}.status-indicator[data-v-0e38e5ff]{width:8px;height:8px;border-radius:50%;background:var(--text-tertiary);flex-shrink:0}.status-indicator.running[data-v-0e38e5ff]{background:var(--success);box-shadow:0 0 8px #10b98166}.status-indicator.running.output-active[data-v-0e38e5ff]{background:var(--warning);box-shadow:0 0 8px #f59e0b66}.card-content[data-v-0e38e5ff]{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.card-top[data-v-0e38e5ff]{display:flex;align-items:center;gap:4px}.session-name[data-v-0e38e5ff]{font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0;display:flex;align-items:baseline;gap:6px}.alias-text[data-v-0e38e5ff]{overflow:hidden;text-overflow:ellipsis}.real-name[data-v-0e38e5ff]{flex-shrink:1;max-width:45%;overflow:hidden;text-overflow:ellipsis;font-size:11px;font-weight:400;color:var(--text-tertiary)}.alias-input[data-v-0e38e5ff]{flex:1;min-width:0;padding:2px 6px;font-size:13px;color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;outline:none}.alias-input[data-v-0e38e5ff]:focus{border-color:var(--accent-primary, #3b82f6)}.close-btn[data-v-0e38e5ff]{display:none;align-items:center;justify-content:center;background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:2px;border-radius:4px;flex-shrink:0}.session-card:hover .close-btn[data-v-0e38e5ff]{display:flex}.close-btn[data-v-0e38e5ff]:hover{background:var(--bg-tertiary);color:var(--danger)}.session-info[data-v-0e38e5ff]{display:flex;align-items:baseline;gap:8px;font-size:11px;color:var(--text-tertiary)}.pane-title[data-v-0e38e5ff]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.confirm-bar[data-v-0e38e5ff]{display:flex;align-items:center;gap:6px;font-size:12px}.confirm-text[data-v-0e38e5ff]{color:var(--danger);font-weight:500}.confirm-yes[data-v-0e38e5ff],.confirm-no[data-v-0e38e5ff]{background:none;border:1px solid var(--border-color);border-radius:4px;padding:1px 8px;font-size:11px;cursor:pointer;color:var(--text-secondary)}.confirm-yes[data-v-0e38e5ff]:hover{background:var(--danger);border-color:var(--danger);color:#fff}.confirm-no[data-v-0e38e5ff]:hover{background:var(--bg-tertiary);color:var(--text-primary)}.session-card.collapsed[data-v-0e38e5ff]{justify-content:center;padding:12px}.session-card.collapsed .status-indicator[data-v-0e38e5ff]{width:10px;height:10px}li[data-v-5c068d88]{list-style:none}.tree-row[data-v-5c068d88]{display:flex;align-items:center;gap:5px;min-height:31px;padding:2px 6px;cursor:pointer;border-radius:3px;outline-offset:-2px}.tree-row[data-v-5c068d88]:hover,.tree-row[data-v-5c068d88]:focus-visible{background:var(--bg-tertiary)}.chevron[data-v-5c068d88]{flex:0 0 10px;color:var(--text-secondary)}.file-icon[data-v-5c068d88]{color:var(--text-secondary);font-size:18px;width:15px}.filename[data-v-5c068d88]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px}.dotfile[data-v-5c068d88]{opacity:.55}.deleted[data-v-5c068d88]{text-decoration:line-through;opacity:.65}.row-end[data-v-5c068d88]{position:relative;flex:0 0 20px;height:24px}.git-badge[data-v-5c068d88],.git-dot[data-v-5c068d88]{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.git-badge[data-v-5c068d88]{font:600 11px/1.5 ui-monospace,monospace}.git-M[data-v-5c068d88],.git-dot[data-v-5c068d88]{color:#e5b45c}.git-A[data-v-5c068d88],.git-U[data-v-5c068d88]{color:#71c993}.git-D[data-v-5c068d88],.git-C[data-v-5c068d88]{color:#f08080}.git-R[data-v-5c068d88]{color:#79b8ff}.git-dot[data-v-5c068d88]{font-size:7px}.more[data-v-5c068d88]{position:absolute;inset:0;width:100%;background:var(--bg-tertiary);color:var(--text-secondary);border:none;border-radius:3px;cursor:pointer;padding:0;font-size:18px;opacity:0;pointer-events:none}.tree-row:hover .more[data-v-5c068d88],.tree-row:focus-within .more[data-v-5c068d88]{opacity:1;pointer-events:auto}.tree-row:hover .has-menu .git-badge[data-v-5c068d88],.tree-row:hover .has-menu .git-dot[data-v-5c068d88],.tree-row:focus-within .has-menu .git-badge[data-v-5c068d88],.tree-row:focus-within .has-menu .git-dot[data-v-5c068d88]{opacity:0}.tree-children[data-v-5c068d88]{margin-left:14px;padding-left:5px;border-left:1px solid var(--border-color)}.tree-status[data-v-5c068d88]{padding:5px 10px;color:var(--text-secondary);font-size:12px;overflow-wrap:anywhere}.tree-status button[data-v-5c068d88]{background:none;color:var(--text-primary);border:none;cursor:pointer;text-decoration:underline}.error[data-v-5c068d88]{color:var(--danger)}@media(hover:none){.more[data-v-5c068d88]{pointer-events:auto}.row-end:not(.has-status) .more[data-v-5c068d88]{opacity:1;background:transparent}}.file-dialog[data-v-5ceee09a]{margin:auto;width:min(480px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;padding:24px;background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg)}.file-dialog[data-v-5ceee09a]::backdrop{background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}p[data-v-5ceee09a]{margin:12px 0;color:var(--text-secondary)}.operation-path[data-v-5ceee09a]{overflow-wrap:anywhere;font:12px/1.6 monospace}label[data-v-5ceee09a]{display:flex;flex-direction:column;gap:8px}.dialog-actions[data-v-5ceee09a]{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.btn[data-v-5ceee09a]{background:var(--bg-tertiary);color:var(--text-primary)}.btn-primary[data-v-5ceee09a]{background:var(--accent-primary)}.delete-btn[data-v-5ceee09a]{background:var(--danger);color:#fff}.error[data-v-5ceee09a]{color:var(--danger)}button[data-v-5ceee09a]:disabled{opacity:.5;cursor:default}.clipboard-overlay[data-v-317cb3e2]{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.clipboard-dialog[data-v-317cb3e2]{width:min(520px,calc(100vw - 32px));padding:20px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}h3[data-v-317cb3e2]{font-size:16px}p[data-v-317cb3e2]{margin:12px 0;color:var(--text-secondary)}textarea[data-v-317cb3e2]{width:100%;height:180px;resize:vertical;padding:12px;background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);font:13px/1.5 monospace}textarea[data-v-317cb3e2]:focus{outline:2px solid var(--accent-primary);outline-offset:2px}.clipboard-actions[data-v-317cb3e2]{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}button[type=button][data-v-317cb3e2]{color:var(--text-primary);background:var(--bg-tertiary)}button[data-v-317cb3e2]:disabled{opacity:.5;cursor:default}.file-panel[data-v-771bf310]{display:flex;flex-direction:column;min-height:0;flex:1}.file-toolbar[data-v-771bf310]{display:flex;align-items:center;gap:4px;padding:10px 12px 4px}.project-name[data-v-771bf310]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600}.file-toolbar button[data-v-771bf310],.panel-hint button[data-v-771bf310]{border:none;background:transparent;color:var(--text-secondary);padding:3px 5px;cursor:pointer;font-size:17px}.file-toolbar button[data-v-771bf310]:hover{background:var(--bg-tertiary);border-radius:4px}button[data-v-771bf310]:disabled{opacity:.4;cursor:default}.root-path[data-v-771bf310]{color:var(--text-secondary);font:11px/1.6 monospace;overflow-wrap:anywhere;padding:0 12px 10px;border-bottom:1px solid var(--border-color)}.file-tree[data-v-771bf310]{overflow:auto;padding:6px;flex:1;min-height:0}.panel-hint[data-v-771bf310]{padding:12px;color:var(--text-secondary);font-size:12px;list-style:none;overflow-wrap:anywhere}.error[data-v-771bf310]{color:var(--danger)}.git-warning[data-v-771bf310]{color:#e5b45c}.file-menu[data-v-771bf310]{position:fixed;z-index:110;width:min(230px,calc(100vw - 16px));padding:6px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.file-menu button[data-v-771bf310]{display:flex;justify-content:space-between;width:100%;text-align:left;padding:8px 10px;background:none;color:var(--text-primary);border:none;border-radius:4px;cursor:pointer}.file-menu button[data-v-771bf310]:hover:not(:disabled),.file-menu button[data-v-771bf310]:focus-visible{background:var(--bg-tertiary)}.file-menu span[data-v-771bf310]{color:var(--text-secondary)}.file-menu .danger[data-v-771bf310]{color:var(--danger)}.sidebar[data-v-b8faf56e]{width:var(--sidebar-width);border-right:1px solid var(--border-color);background:var(--bg-secondary);display:flex;flex-direction:column;flex-shrink:0;transition:all .3s cubic-bezier(.4,0,.2,1);overflow:hidden;height:100%;z-index:20}.sidebar.collapsed[data-v-b8faf56e]{width:72px}.sidebar-tabs[data-v-b8faf56e]{display:flex;flex-shrink:0;border-bottom:1px solid var(--border-color)}.sidebar-tabs button[data-v-b8faf56e]{flex:1;padding:12px 4px;border:none;border-bottom:2px solid transparent;background:none;color:var(--text-secondary);cursor:pointer;font:inherit;font-size:12px}.sidebar-tabs button[aria-selected=true][data-v-b8faf56e]{border-bottom-color:var(--accent-primary);color:var(--text-primary);background:var(--bg-primary)}.sessions-panel[data-v-b8faf56e],.files-panel[data-v-b8faf56e]{display:flex;flex-direction:column;min-height:0;flex:1}.sidebar-header[data-v-b8faf56e]{padding:16px;border-bottom:1px solid var(--border-color);display:flex;flex-direction:column;gap:12px}.sidebar-title[data-v-b8faf56e]{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-tertiary);font-weight:600}.new-session-btn[data-v-b8faf56e]{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;background:var(--accent-primary);color:#fff;border:none;border-radius:var(--radius-md);padding:10px;cursor:pointer;font-weight:500;transition:all .2s}.new-session-btn[data-v-b8faf56e]:hover{background:var(--accent-hover)}.sidebar.collapsed .new-session-btn[data-v-b8faf56e]{padding:10px 0}.session-list[data-v-b8faf56e]{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:4px}.empty-hint[data-v-b8faf56e]{text-align:center;padding:40px 10px;color:var(--text-tertiary)}.empty-hint p[data-v-b8faf56e]{font-size:14px;margin-bottom:4px}.empty-hint .sub-hint[data-v-b8faf56e]{font-size:12px;opacity:.7}@media(max-width:768px){.sidebar[data-v-b8faf56e]{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-width);transform:translate(0);box-shadow:var(--shadow-md);z-index:50}.sidebar.collapsed[data-v-b8faf56e]{transform:translate(-100%);width:var(--sidebar-width)}}.brand-mark[data-v-f54af403]{display:block;flex-shrink:0;object-fit:contain}.terminal-area[data-v-dba7ce31]{flex:1;display:flex;flex-direction:column;overflow:hidden;background:#000;position:relative}.terminal-frame[data-v-dba7ce31]{flex:1;width:100%;min-height:0;border:none;background:#000}.file-drop-hint[data-v-dba7ce31]{position:absolute;inset:4px;z-index:10;display:flex;align-items:center;justify-content:center;border:2px dashed var(--accent-primary);border-radius:var(--radius-sm);background:#000000b3;color:var(--text-primary);pointer-events:none}.terminal-tools[data-v-dba7ce31]{display:flex;align-items:center;flex-shrink:0;gap:8px;padding:6px 12px;background:var(--bg-primary);border-bottom:1px solid var(--border-color);flex-wrap:wrap}.upload-progress[data-v-dba7ce31]{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary)}.upload-progress progress[data-v-dba7ce31]{width:64px;height:4px;accent-color:var(--accent-primary)}.clipboard-btn[data-v-dba7ce31]{padding:4px 10px;background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer}.clipboard-btn[data-v-dba7ce31]:hover:not(:disabled){background:var(--bg-tertiary)}.clipboard-btn[data-v-dba7ce31]:disabled,.clipboard-menu button[data-v-dba7ce31]:disabled{opacity:.45;cursor:default}.selection-hint[data-v-dba7ce31]{color:var(--text-secondary);font-size:12px}.clipboard-menu[data-v-dba7ce31]{position:fixed;z-index:100;width:min(280px,calc(100vw - 16px));padding:6px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.clipboard-menu button[data-v-dba7ce31]{display:flex;justify-content:space-between;width:100%;padding:8px 10px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-primary);text-align:left;cursor:pointer}.clipboard-menu button[data-v-dba7ce31]:hover:not(:disabled),.clipboard-menu button[data-v-dba7ce31]:focus-visible{background:var(--bg-tertiary)}.clipboard-menu span[data-v-dba7ce31],.clipboard-menu p[data-v-dba7ce31]{color:var(--text-secondary);font-size:12px}.clipboard-menu p[data-v-dba7ce31]{padding:8px 10px 4px;border-top:1px solid var(--border-color)}@media(max-width:600px){.selection-hint[data-v-dba7ce31]{display:none}}.welcome__container[data-v-dba7ce31]{flex:1;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);background-image:radial-gradient(circle at center,var(--bg-secondary) 0%,var(--bg-primary) 100%)}.welcome__content[data-v-dba7ce31]{text-align:center;max-width:400px;padding:40px}.welcome-brand[data-v-dba7ce31]{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:24px}.logo-text[data-v-dba7ce31]{font-size:32px;font-weight:700;color:var(--text-primary);letter-spacing:-1px}.welcome__text[data-v-dba7ce31]{color:var(--text-secondary);font-size:16px;margin-bottom:24px}.highlight[data-v-dba7ce31]{color:var(--text-primary);font-weight:600}.sub-text[data-v-dba7ce31]{color:var(--text-tertiary);font-size:14px}.modal-overlay[data-v-ef0ce732]{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn-ef0ce732 .2s ease}.modal-content[data-v-ef0ce732]{width:100%;max-width:400px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin:16px;overflow:hidden;animation:slideUp-ef0ce732 .3s cubic-bezier(.16,1,.3,1)}.modal-header[data-v-ef0ce732]{padding:16px 20px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.modal-header h3[data-v-ef0ce732]{font-size:16px;font-weight:600;color:var(--text-primary)}.close-btn[data-v-ef0ce732]{background:none;border:none;color:var(--text-tertiary);cursor:pointer;font-size:18px;padding:4px;border-radius:4px}.close-btn[data-v-ef0ce732]:hover{background:var(--bg-tertiary);color:var(--text-primary)}.modal-body[data-v-ef0ce732]{padding:20px;display:flex;flex-direction:column;gap:16px}.form-group[data-v-ef0ce732]{display:flex;flex-direction:column;gap:8px}.label-text[data-v-ef0ce732]{font-size:13px;font-weight:500;color:var(--text-secondary)}select[data-v-ef0ce732]{width:100%;background:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-primary);padding:10px;border-radius:var(--radius-md);outline:none;font-size:14px;appearance:none}select[data-v-ef0ce732]:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-dim)}.modal-footer[data-v-ef0ce732]{padding:16px 20px;background:var(--bg-primary);border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;gap:12px}@keyframes fadeIn-ef0ce732{0%{opacity:0}to{opacity:1}}@keyframes slideUp-ef0ce732{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.login-screen[data-v-86b6b672]{height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-primary)}.login-card[data-v-86b6b672]{width:min(360px,calc(100vw - 48px));padding:32px;display:flex;flex-direction:column;align-items:center;gap:12px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.login-logo[data-v-86b6b672]{display:flex;align-items:center;justify-content:center;width:72px;height:72px}h1[data-v-86b6b672]{font-size:22px;font-weight:600;color:var(--text-primary);letter-spacing:-.5px}.login-hint[data-v-86b6b672]{margin:-4px 0 8px;font-size:13px;color:var(--text-secondary)}input[data-v-86b6b672]{width:100%;padding:10px 12px;font-size:14px;color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);outline:none}input[data-v-86b6b672]:focus{border-color:var(--accent-primary, #3b82f6)}.login-error[data-v-86b6b672]{width:100%;margin:0;font-size:13px;color:var(--danger)}.login-btn[data-v-86b6b672]{width:100%;margin-top:4px;padding:10px 12px;font-size:14px;font-weight:500;color:#fff;background:var(--accent-primary, #3b82f6);border:none;border-radius:var(--radius-md);cursor:pointer}.login-btn[data-v-86b6b672]:disabled{opacity:.5;cursor:default}.login-btn[data-v-86b6b672]:not(:disabled):hover{filter:brightness(1.1)}.toast-container[data-v-6bea03ca]{position:fixed;top:60px;right:16px;z-index:200;display:flex;flex-direction:column;gap:8px;max-width:min(520px,calc(100vw - 32px));max-height:calc(100vh - 80px);overflow:auto}.toast[data-v-6bea03ca]{padding:10px 16px;border-radius:8px;font-size:13px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-color);min-width:200px;background:var(--bg-secondary);display:flex;align-items:flex-start;gap:12px}.toast-message[data-v-6bea03ca]{white-space:pre-wrap;overflow-wrap:anywhere;max-height:35vh;overflow:auto;flex:1}.toast-actions[data-v-6bea03ca]{display:flex;gap:8px;flex-shrink:0}.toast-actions button[data-v-6bea03ca]{border:none;background:transparent;color:inherit;cursor:pointer;font:inherit}.toast.info[data-v-6bea03ca]{background:var(--bg-secondary);color:var(--text-primary)}.toast.error[data-v-6bea03ca]{background:var(--bg-secondary);color:var(--danger)}.toast.success[data-v-6bea03ca]{background:#4ade8026;color:#4ade80}.toast-enter-active[data-v-6bea03ca]{animation:slideIn-6bea03ca .3s ease}.toast-leave-active[data-v-6bea03ca]{animation:slideOut-6bea03ca .3s ease}@keyframes slideIn-6bea03ca{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOut-6bea03ca{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.app-layout[data-v-cfab805f]{height:100vh;display:flex;flex-direction:column}.toolbar[data-v-cfab805f]{height:var(--toolbar-height);display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid var(--border-color);flex-shrink:0;z-index:30;background:var(--bg-primary)}.toolbar-left[data-v-cfab805f]{display:flex;align-items:center;gap:12px}.toggle-btn[data-v-cfab805f]{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.toggle-btn[data-v-cfab805f]:hover{color:var(--text-primary);background:var(--bg-tertiary)}.logo-wrapper[data-v-cfab805f]{display:flex;align-items:center;justify-content:center;flex-shrink:0}.toolbar-title[data-v-cfab805f]{font-size:16px;font-weight:600;color:var(--text-primary);letter-spacing:-.5px}.main-area[data-v-cfab805f]{flex:1;display:flex;overflow:hidden;position:relative}.sidebar-overlay[data-v-cfab805f]{display:none;position:absolute;inset:0;background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:15;opacity:0;transition:opacity .3s ease;pointer-events:none}@media(max-width:768px){.sidebar-overlay[data-v-cfab805f]{display:block}.sidebar-overlay.show[data-v-cfab805f]{opacity:1;pointer-events:auto}}
|
package/server/public/index.html
CHANGED
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
<link rel="apple-touch-icon" href="/apple-touch-icon.png" sizes="180x180" />
|
|
11
11
|
<link rel="manifest" href="/site.webmanifest" />
|
|
12
12
|
<title>ACLI Hub</title>
|
|
13
|
-
<script type="module" crossorigin src="/assets/index-
|
|
14
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
13
|
+
<script type="module" crossorigin src="/assets/index-4pGJ-wDO.js"></script>
|
|
14
|
+
<link rel="stylesheet" crossorigin href="/assets/index-yuyx9-SN.css">
|
|
15
15
|
</head>
|
|
16
16
|
<body>
|
|
17
17
|
<div id="app"></div>
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/papaparse.min-DBcLlWLv.js","assets/_commonjsHelpers-Cpj98o6Y.js","assets/PreviewDialog-Dc7jb9yA.js","assets/PreviewDialog-Du15-2g0.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))s(o);new MutationObserver(o=>{for(const r of o)if(r.type==="childList")for(const i of r.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&s(i)}).observe(document,{childList:!0,subtree:!0});function n(o){const r={};return o.integrity&&(r.integrity=o.integrity),o.referrerPolicy&&(r.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?r.credentials="include":o.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function s(o){if(o.ep)return;o.ep=!0;const r=n(o);fetch(o.href,r)}})();function Bs(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const de={},qt=[],lt=()=>{},ur=()=>!1,zn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Vs=e=>e.startsWith("onUpdate:"),Ce=Object.assign,Ws=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Li=Object.prototype.hasOwnProperty,ue=(e,t)=>Li.call(e,t),J=Array.isArray,Gt=e=>_n(e)==="[object Map]",Xn=e=>_n(e)==="[object Set]",mo=e=>_n(e)==="[object Date]",ee=e=>typeof e=="function",we=e=>typeof e=="string",at=e=>typeof e=="symbol",pe=e=>e!==null&&typeof e=="object",fr=e=>(pe(e)||ee(e))&&ee(e.then)&&ee(e.catch),dr=Object.prototype.toString,_n=e=>dr.call(e),Di=e=>_n(e).slice(8,-1),pr=e=>_n(e)==="[object Object]",Jn=e=>we(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,ln=Bs(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Zn=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},Fi=/-\w/g,qe=Zn(e=>e.replace(Fi,t=>t.slice(1).toUpperCase())),Ni=/\B([A-Z])/g,At=Zn(e=>e.replace(Ni,"-$1").toLowerCase()),Qn=Zn(e=>e.charAt(0).toUpperCase()+e.slice(1)),ds=Zn(e=>e?`on${Qn(e)}`:""),$t=(e,t)=>!Object.is(e,t),Rn=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},hr=(e,t,n,s=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},es=e=>{const t=parseFloat(e);return isNaN(t)?e:t},ji=e=>{const t=we(e)?Number(e):NaN;return isNaN(t)?e:t};let go;const ts=()=>go||(go=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function xn(e){if(J(e)){const t={};for(let n=0;n<e.length;n++){const s=e[n],o=we(s)?Bi(s):xn(s);if(o)for(const r in o)t[r]=o[r]}return t}else if(we(e)||pe(e))return e}const Hi=/;(?![^(]*\))/g,Ui=/:([^]+)/,Ki=/\/\*[^]*?\*\//g;function Bi(e){const t={};return e.replace(Ki,"").split(Hi).forEach(n=>{if(n){const s=n.split(Ui);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function We(e){let t="";if(we(e))t=e;else if(J(e))for(let n=0;n<e.length;n++){const s=We(e[n]);s&&(t+=s+" ")}else if(pe(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}const Vi="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",Wi=Bs(Vi);function mr(e){return!!e||e===""}function qi(e,t){if(e.length!==t.length)return!1;let n=!0;for(let s=0;n&&s<e.length;s++)n=ns(e[s],t[s]);return n}function ns(e,t){if(e===t)return!0;let n=mo(e),s=mo(t);if(n||s)return n&&s?e.getTime()===t.getTime():!1;if(n=at(e),s=at(t),n||s)return e===t;if(n=J(e),s=J(t),n||s)return n&&s?qi(e,t):!1;if(n=pe(e),s=pe(t),n||s){if(!n||!s)return!1;const o=Object.keys(e).length,r=Object.keys(t).length;if(o!==r)return!1;for(const i in e){const l=e.hasOwnProperty(i),a=t.hasOwnProperty(i);if(l&&!a||!l&&a||!ns(e[i],t[i]))return!1}}return String(e)===String(t)}function Gi(e,t){return e.findIndex(n=>ns(n,t))}const gr=e=>!!(e&&e.__v_isRef===!0),se=e=>we(e)?e:e==null?"":J(e)||pe(e)&&(e.toString===dr||!ee(e.toString))?gr(e)?se(e.value):JSON.stringify(e,vr,2):String(e),vr=(e,t)=>gr(t)?vr(e,t.value):Gt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,o],r)=>(n[ps(s,r)+" =>"]=o,n),{})}:Xn(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>ps(n))}:at(t)?ps(t):pe(t)&&!J(t)&&!pr(t)?String(t):t,ps=(e,t="")=>{var n;return at(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let Te;class yr{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=Te,!t&&Te&&(this.index=(Te.scopes||(Te.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].pause();for(t=0,n=this.effects.length;t<n;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].resume();for(t=0,n=this.effects.length;t<n;t++)this.effects[t].resume()}}run(t){if(this._active){const n=Te;try{return Te=this,t()}finally{Te=n}}}on(){++this._on===1&&(this.prevScope=Te,Te=this)}off(){this._on>0&&--this._on===0&&(Te=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,s;for(n=0,s=this.effects.length;n<s;n++)this.effects[n].stop();for(this.effects.length=0,n=0,s=this.cleanups.length;n<s;n++)this.cleanups[n]();if(this.cleanups.length=0,this.scopes){for(n=0,s=this.scopes.length;n<s;n++)this.scopes[n].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const o=this.parent.scopes.pop();o&&o!==this&&(this.parent.scopes[this.index]=o,o.index=this.index)}this.parent=void 0}}}function br(e){return new yr(e)}function wr(){return Te}function Yi(e,t=!1){Te&&Te.cleanups.push(e)}let me;const hs=new WeakSet;class _r{constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,Te&&Te.active&&Te.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,hs.has(this)&&(hs.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||Cr(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,vo(this),Sr(this);const t=me,n=Ye;me=this,Ye=!0;try{return this.fn()}finally{Er(this),me=t,Ye=n,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)Ys(t);this.deps=this.depsTail=void 0,vo(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?hs.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){Ts(this)&&this.run()}get dirty(){return Ts(this)}}let xr=0,an,cn;function Cr(e,t=!1){if(e.flags|=8,t){e.next=cn,cn=e;return}e.next=an,an=e}function qs(){xr++}function Gs(){if(--xr>0)return;if(cn){let t=cn;for(cn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;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(s){e||(e=s)}t=n}}if(e)throw e}function Sr(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Er(e){let t,n=e.depsTail,s=n;for(;s;){const o=s.prevDep;s.version===-1?(s===n&&(n=o),Ys(s),zi(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=o}e.deps=t,e.depsTail=n}function Ts(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Tr(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Tr(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===gn)||(e.globalVersion=gn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Ts(e))))return;e.flags|=2;const t=e.dep,n=me,s=Ye;me=e,Ye=!0;try{Sr(e);const o=e.fn(e._value);(t.version===0||$t(o,e._value))&&(e.flags|=128,e._value=o,t.version++)}catch(o){throw t.version++,o}finally{me=n,Ye=s,Er(e),e.flags&=-3}}function Ys(e,t=!1){const{dep:n,prevSub:s,nextSub:o}=e;if(s&&(s.nextSub=o,e.prevSub=void 0),o&&(o.prevSub=s,e.nextSub=void 0),n.subs===e&&(n.subs=s,!s&&n.computed)){n.computed.flags&=-5;for(let r=n.computed.deps;r;r=r.nextDep)Ys(r,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function zi(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Ye=!0;const $r=[];function mt(){$r.push(Ye),Ye=!1}function gt(){const e=$r.pop();Ye=e===void 0?!0:e}function vo(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=me;me=void 0;try{t()}finally{me=n}}}let gn=0;class Xi{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 zs{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!me||!Ye||me===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==me)n=this.activeLink=new Xi(me,this),me.deps?(n.prevDep=me.depsTail,me.depsTail.nextDep=n,me.depsTail=n):me.deps=me.depsTail=n,kr(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const s=n.nextDep;s.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=s),n.prevDep=me.depsTail,n.nextDep=void 0,me.depsTail.nextDep=n,me.depsTail=n,me.deps===n&&(me.deps=s)}return n}trigger(t){this.version++,gn++,this.notify(t)}notify(t){qs();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Gs()}}}function kr(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let s=t.deps;s;s=s.nextDep)kr(s)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Nn=new WeakMap,Nt=Symbol(""),$s=Symbol(""),vn=Symbol("");function $e(e,t,n){if(Ye&&me){let s=Nn.get(e);s||Nn.set(e,s=new Map);let o=s.get(n);o||(s.set(n,o=new zs),o.map=s,o.key=n),o.track()}}function dt(e,t,n,s,o,r){const i=Nn.get(e);if(!i){gn++;return}const l=a=>{a&&a.trigger()};if(qs(),t==="clear")i.forEach(l);else{const a=J(e),u=a&&Jn(n);if(a&&n==="length"){const c=Number(s);i.forEach((f,m)=>{(m==="length"||m===vn||!at(m)&&m>=c)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(vn)),t){case"add":a?u&&l(i.get("length")):(l(i.get(Nt)),Gt(e)&&l(i.get($s)));break;case"delete":a||(l(i.get(Nt)),Gt(e)&&l(i.get($s)));break;case"set":Gt(e)&&l(i.get(Nt));break}}Gs()}function Ji(e,t){const n=Nn.get(e);return n&&n.get(t)}function Kt(e){const t=ce(e);return t===e?t:($e(t,"iterate",vn),Ne(e)?t:t.map(Xe))}function ss(e){return $e(e=ce(e),"iterate",vn),e}function St(e,t){return vt(e)?Xt(ht(e)?Xe(t):t):Xe(t)}const Zi={__proto__:null,[Symbol.iterator](){return ms(this,Symbol.iterator,e=>St(this,e))},concat(...e){return Kt(this).concat(...e.map(t=>J(t)?Kt(t):t))},entries(){return ms(this,"entries",e=>(e[1]=St(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(s=>St(this,s)),arguments)},find(e,t){return ut(this,"find",e,t,n=>St(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=>St(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 gs(this,"includes",e)},indexOf(...e){return gs(this,"indexOf",e)},join(e){return Kt(this).join(e)},lastIndexOf(...e){return gs(this,"lastIndexOf",e)},map(e,t){return ut(this,"map",e,t,void 0,arguments)},pop(){return en(this,"pop")},push(...e){return en(this,"push",e)},reduce(e,...t){return yo(this,"reduce",e,t)},reduceRight(e,...t){return yo(this,"reduceRight",e,t)},shift(){return en(this,"shift")},some(e,t){return ut(this,"some",e,t,void 0,arguments)},splice(...e){return en(this,"splice",e)},toReversed(){return Kt(this).toReversed()},toSorted(e){return Kt(this).toSorted(e)},toSpliced(...e){return Kt(this).toSpliced(...e)},unshift(...e){return en(this,"unshift",e)},values(){return ms(this,"values",e=>St(this,e))}};function ms(e,t,n){const s=ss(e),o=s[t]();return s!==e&&!Ne(e)&&(o._next=o.next,o.next=()=>{const r=o._next();return r.done||(r.value=n(r.value)),r}),o}const Qi=Array.prototype;function ut(e,t,n,s,o,r){const i=ss(e),l=i!==e&&!Ne(e),a=i[t];if(a!==Qi[t]){const f=a.apply(e,r);return l?Xe(f):f}let u=n;i!==e&&(l?u=function(f,m){return n.call(this,St(e,f),m,e)}:n.length>2&&(u=function(f,m){return n.call(this,f,m,e)}));const c=a.call(i,u,s);return l&&o?o(c):c}function yo(e,t,n,s){const o=ss(e);let r=n;return o!==e&&(Ne(e)?n.length>3&&(r=function(i,l,a){return n.call(this,i,l,a,e)}):r=function(i,l,a){return n.call(this,i,St(e,l),a,e)}),o[t](r,...s)}function gs(e,t,n){const s=ce(e);$e(s,"iterate",vn);const o=s[t](...n);return(o===-1||o===!1)&&rs(n[0])?(n[0]=ce(n[0]),s[t](...n)):o}function en(e,t,n=[]){mt(),qs();const s=ce(e)[t].apply(e,n);return Gs(),gt(),s}const el=Bs("__proto__,__v_isRef,__isVue"),Ar=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(at));function tl(e){at(e)||(e=String(e));const t=ce(this);return $e(t,"has",e),t.hasOwnProperty(e)}class Mr{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,s){if(n==="__v_skip")return t.__v_skip;const o=this._isReadonly,r=this._isShallow;if(n==="__v_isReactive")return!o;if(n==="__v_isReadonly")return o;if(n==="__v_isShallow")return r;if(n==="__v_raw")return s===(o?r?fl:Rr:r?Ir:Or).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const i=J(t);if(!o){let a;if(i&&(a=Zi[n]))return a;if(n==="hasOwnProperty")return tl}const l=Reflect.get(t,n,be(t)?t:s);if((at(n)?Ar.has(n):el(n))||(o||$e(t,"get",n),r))return l;if(be(l)){const a=i&&Jn(n)?l:l.value;return o&&pe(a)?As(a):a}return pe(l)?o?As(l):os(l):l}}class Pr extends Mr{constructor(t=!1){super(!1,t)}set(t,n,s,o){let r=t[n];const i=J(t)&&Jn(n);if(!this._isShallow){const u=vt(r);if(!Ne(s)&&!vt(s)&&(r=ce(r),s=ce(s)),!i&&be(r)&&!be(s))return u||(r.value=s),!0}const l=i?Number(n)<t.length:ue(t,n),a=Reflect.set(t,n,s,be(t)?t:o);return t===ce(o)&&(l?$t(s,r)&&dt(t,"set",n,s):dt(t,"add",n,s)),a}deleteProperty(t,n){const s=ue(t,n);t[n];const o=Reflect.deleteProperty(t,n);return o&&s&&dt(t,"delete",n,void 0),o}has(t,n){const s=Reflect.has(t,n);return(!at(n)||!Ar.has(n))&&$e(t,"has",n),s}ownKeys(t){return $e(t,"iterate",J(t)?"length":Nt),Reflect.ownKeys(t)}}class nl extends Mr{constructor(t=!1){super(!0,t)}set(t,n){return!0}deleteProperty(t,n){return!0}}const sl=new Pr,ol=new nl,rl=new Pr(!0);const ks=e=>e,$n=e=>Reflect.getPrototypeOf(e);function il(e,t,n){return function(...s){const o=this.__v_raw,r=ce(o),i=Gt(r),l=e==="entries"||e===Symbol.iterator&&i,a=e==="keys"&&i,u=o[e](...s),c=n?ks:t?Xt:Xe;return!t&&$e(r,"iterate",a?$s:Nt),Ce(Object.create(u),{next(){const{value:f,done:m}=u.next();return m?{value:f,done:m}:{value:l?[c(f[0]),c(f[1])]:c(f),done:m}}})}}function kn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function ll(e,t){const n={get(o){const r=this.__v_raw,i=ce(r),l=ce(o);e||($t(o,l)&&$e(i,"get",o),$e(i,"get",l));const{has:a}=$n(i),u=t?ks:e?Xt:Xe;if(a.call(i,o))return u(r.get(o));if(a.call(i,l))return u(r.get(l));r!==i&&r.get(o)},get size(){const o=this.__v_raw;return!e&&$e(ce(o),"iterate",Nt),o.size},has(o){const r=this.__v_raw,i=ce(r),l=ce(o);return e||($t(o,l)&&$e(i,"has",o),$e(i,"has",l)),o===l?r.has(o):r.has(o)||r.has(l)},forEach(o,r){const i=this,l=i.__v_raw,a=ce(l),u=t?ks:e?Xt:Xe;return!e&&$e(a,"iterate",Nt),l.forEach((c,f)=>o.call(r,u(c),u(f),i))}};return Ce(n,e?{add:kn("add"),set:kn("set"),delete:kn("delete"),clear:kn("clear")}:{add(o){!t&&!Ne(o)&&!vt(o)&&(o=ce(o));const r=ce(this);return $n(r).has.call(r,o)||(r.add(o),dt(r,"add",o,o)),this},set(o,r){!t&&!Ne(r)&&!vt(r)&&(r=ce(r));const i=ce(this),{has:l,get:a}=$n(i);let u=l.call(i,o);u||(o=ce(o),u=l.call(i,o));const c=a.call(i,o);return i.set(o,r),u?$t(r,c)&&dt(i,"set",o,r):dt(i,"add",o,r),this},delete(o){const r=ce(this),{has:i,get:l}=$n(r);let a=i.call(r,o);a||(o=ce(o),a=i.call(r,o)),l&&l.call(r,o);const u=r.delete(o);return a&&dt(r,"delete",o,void 0),u},clear(){const o=ce(this),r=o.size!==0,i=o.clear();return r&&dt(o,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(o=>{n[o]=il(o,e,t)}),n}function Xs(e,t){const n=ll(e,t);return(s,o,r)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?s:Reflect.get(ue(n,o)&&o in s?n:s,o,r)}const al={get:Xs(!1,!1)},cl={get:Xs(!1,!0)},ul={get:Xs(!0,!1)};const Or=new WeakMap,Ir=new WeakMap,Rr=new WeakMap,fl=new WeakMap;function dl(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function pl(e){return e.__v_skip||!Object.isExtensible(e)?0:dl(Di(e))}function os(e){return vt(e)?e:Js(e,!1,sl,al,Or)}function hl(e){return Js(e,!1,rl,cl,Ir)}function As(e){return Js(e,!0,ol,ul,Rr)}function Js(e,t,n,s,o){if(!pe(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const r=pl(e);if(r===0)return e;const i=o.get(e);if(i)return i;const l=new Proxy(e,r===2?s:n);return o.set(e,l),l}function ht(e){return vt(e)?ht(e.__v_raw):!!(e&&e.__v_isReactive)}function vt(e){return!!(e&&e.__v_isReadonly)}function Ne(e){return!!(e&&e.__v_isShallow)}function rs(e){return e?!!e.__v_raw:!1}function ce(e){const t=e&&e.__v_raw;return t?ce(t):e}function Zs(e){return!ue(e,"__v_skip")&&Object.isExtensible(e)&&hr(e,"__v_skip",!0),e}const Xe=e=>pe(e)?os(e):e,Xt=e=>pe(e)?As(e):e;function be(e){return e?e.__v_isRef===!0:!1}function B(e){return Lr(e,!1)}function ml(e){return Lr(e,!0)}function Lr(e,t){return be(e)?e:new gl(e,t)}class gl{constructor(t,n){this.dep=new zs,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:ce(t),this._value=n?t:Xe(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,s=this.__v_isShallow||Ne(t)||vt(t);t=s?t:ce(t),$t(t,n)&&(this._rawValue=t,this._value=s?t:Xe(t),this.dep.trigger())}}function ve(e){return be(e)?e.value:e}const vl={get:(e,t,n)=>t==="__v_raw"?e:ve(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const o=e[t];return be(o)&&!be(n)?(o.value=n,!0):Reflect.set(e,t,n,s)}};function Dr(e){return ht(e)?e:new Proxy(e,vl)}function yl(e){const t=J(e)?new Array(e.length):{};for(const n in e)t[n]=wl(e,n);return t}class bl{constructor(t,n,s){this._object=t,this._key=n,this._defaultValue=s,this.__v_isRef=!0,this._value=void 0,this._raw=ce(t);let o=!0,r=t;if(!J(t)||!Jn(String(n)))do o=!rs(r)||Ne(r);while(o&&(r=r.__v_raw));this._shallow=o}get value(){let t=this._object[this._key];return this._shallow&&(t=ve(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&be(this._raw[this._key])){const n=this._object[this._key];if(be(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return Ji(this._raw,this._key)}}function wl(e,t,n){return new bl(e,t,n)}class _l{constructor(t,n,s){this.fn=t,this.setter=n,this._value=void 0,this.dep=new zs(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=gn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&me!==this)return Cr(this,!0),!0}get value(){const t=this.dep.track();return Tr(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function xl(e,t,n=!1){let s,o;return ee(e)?s=e:(s=e.get,o=e.set),new _l(s,o,n)}const An={},jn=new WeakMap;let Lt;function Cl(e,t=!1,n=Lt){if(n){let s=jn.get(n);s||jn.set(n,s=[]),s.push(e)}}function Sl(e,t,n=de){const{immediate:s,deep:o,once:r,scheduler:i,augmentJob:l,call:a}=n,u=k=>o?k:Ne(k)||o===!1||o===0?pt(k,1):pt(k);let c,f,m,g,y=!1,v=!1;if(be(e)?(f=()=>e.value,y=Ne(e)):ht(e)?(f=()=>u(e),y=!0):J(e)?(v=!0,y=e.some(k=>ht(k)||Ne(k)),f=()=>e.map(k=>{if(be(k))return k.value;if(ht(k))return u(k);if(ee(k))return a?a(k,2):k()})):ee(e)?t?f=a?()=>a(e,2):e:f=()=>{if(m){mt();try{m()}finally{gt()}}const k=Lt;Lt=c;try{return a?a(e,3,[g]):e(g)}finally{Lt=k}}:f=lt,t&&o){const k=f,U=o===!0?1/0:o;f=()=>pt(k(),U)}const T=wr(),p=()=>{c.stop(),T&&T.active&&Ws(T.effects,c)};if(r&&t){const k=t;t=(...U)=>{k(...U),p()}}let w=v?new Array(e.length).fill(An):An;const $=k=>{if(!(!(c.flags&1)||!c.dirty&&!k))if(t){const U=c.run();if(o||y||(v?U.some((te,ie)=>$t(te,w[ie])):$t(U,w))){m&&m();const te=Lt;Lt=c;try{const ie=[U,w===An?void 0:v&&w[0]===An?[]:w,g];w=U,a?a(t,3,ie):t(...ie)}finally{Lt=te}}}else c.run()};return l&&l($),c=new _r(f),c.scheduler=i?()=>i($,!1):$,g=k=>Cl(k,!1,c),m=c.onStop=()=>{const k=jn.get(c);if(k){if(a)a(k,4);else for(const U of k)U();jn.delete(c)}},t?s?$(!0):w=c.run():i?i($.bind(null,!0),!0):c.run(),p.pause=c.pause.bind(c),p.resume=c.resume.bind(c),p.stop=p,p}function pt(e,t=1/0,n){if(t<=0||!pe(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,be(e))pt(e.value,t,n);else if(J(e))for(let s=0;s<e.length;s++)pt(e[s],t,n);else if(Xn(e)||Gt(e))e.forEach(s=>{pt(s,t,n)});else if(pr(e)){for(const s in e)pt(e[s],t,n);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&pt(e[s],t,n)}return e}function Cn(e,t,n,s){try{return s?e(...s):e()}catch(o){Sn(o,t,n)}}function Je(e,t,n,s){if(ee(e)){const o=Cn(e,t,n,s);return o&&fr(o)&&o.catch(r=>{Sn(r,t,n)}),o}if(J(e)){const o=[];for(let r=0;r<e.length;r++)o.push(Je(e[r],t,n,s));return o}}function Sn(e,t,n,s=!0){const o=t?t.vnode:null,{errorHandler:r,throwUnhandledErrorInProduction:i}=t&&t.appContext.config||de;if(t){let l=t.parent;const a=t.proxy,u=`https://vuejs.org/error-reference/#runtime-${n}`;for(;l;){const c=l.ec;if(c){for(let f=0;f<c.length;f++)if(c[f](e,a,u)===!1)return}l=l.parent}if(r){mt(),Cn(r,null,10,[e,a,u]),gt();return}}El(e,n,o,s,i)}function El(e,t,n,s=!0,o=!1){if(o)throw e;console.error(e)}const Me=[];let ot=-1;const Yt=[];let Et=null,Vt=0;const Fr=Promise.resolve();let Hn=null;function Mt(e){const t=Hn||Fr;return e?t.then(this?e.bind(this):e):t}function Tl(e){let t=ot+1,n=Me.length;for(;t<n;){const s=t+n>>>1,o=Me[s],r=yn(o);r<e||r===e&&o.flags&2?t=s+1:n=s}return t}function Qs(e){if(!(e.flags&1)){const t=yn(e),n=Me[Me.length-1];!n||!(e.flags&2)&&t>=yn(n)?Me.push(e):Me.splice(Tl(t),0,e),e.flags|=1,Nr()}}function Nr(){Hn||(Hn=Fr.then(Hr))}function $l(e){J(e)?Yt.push(...e):Et&&e.id===-1?Et.splice(Vt+1,0,e):e.flags&1||(Yt.push(e),e.flags|=1),Nr()}function bo(e,t,n=ot+1){for(;n<Me.length;n++){const s=Me[n];if(s&&s.flags&2){if(e&&s.id!==e.uid)continue;Me.splice(n,1),n--,s.flags&4&&(s.flags&=-2),s(),s.flags&4||(s.flags&=-2)}}}function jr(e){if(Yt.length){const t=[...new Set(Yt)].sort((n,s)=>yn(n)-yn(s));if(Yt.length=0,Et){Et.push(...t);return}for(Et=t,Vt=0;Vt<Et.length;Vt++){const n=Et[Vt];n.flags&4&&(n.flags&=-2),n.flags&8||n(),n.flags&=-2}Et=null,Vt=0}}const yn=e=>e.id==null?e.flags&2?-1:1/0:e.id;function Hr(e){try{for(ot=0;ot<Me.length;ot++){const t=Me[ot];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),Cn(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;ot<Me.length;ot++){const t=Me[ot];t&&(t.flags&=-2)}ot=-1,Me.length=0,jr(),Hn=null,(Me.length||Yt.length)&&Hr()}}let De=null,Ur=null;function Un(e){const t=De;return De=e,Ur=e&&e.type.__scopeId||null,t}function Kr(e,t=De,n){if(!t||e._n)return e;const s=(...o)=>{s._d&&Ro(-1);const r=Un(t);let i;try{i=e(...o)}finally{Un(r),s._d&&Ro(1)}return i};return s._n=!0,s._c=!0,s._d=!0,s}function it(e,t){if(De===null)return e;const n=cs(De),s=e.dirs||(e.dirs=[]);for(let o=0;o<t.length;o++){let[r,i,l,a=de]=t[o];r&&(ee(r)&&(r={mounted:r,updated:r}),r.deep&&pt(i),s.push({dir:r,instance:n,value:i,oldValue:void 0,arg:l,modifiers:a}))}return e}function Ot(e,t,n,s){const o=e.dirs,r=t&&t.dirs;for(let i=0;i<o.length;i++){const l=o[i];r&&(l.oldValue=r[i].value);let a=l.dir[s];a&&(mt(),Je(a,n,8,[e.el,l,e,t]),gt())}}function Br(e,t){if(Se){let n=Se.provides;const s=Se.parent&&Se.parent.provides;s===n&&(n=Se.provides=Object.create(s)),n[e]=t}}function kt(e,t,n=!1){const s=lo();if(s||jt){let o=jt?jt._context.provides:s?s.parent==null||s.ce?s.vnode.appContext&&s.vnode.appContext.provides:s.parent.provides:void 0;if(o&&e in o)return o[e];if(arguments.length>1)return n&&ee(t)?t.call(s&&s.proxy):t}}function kl(){return!!(lo()||jt)}const Al=Symbol.for("v-scx"),Ml=()=>kt(Al);function ze(e,t,n){return Vr(e,t,n)}function Vr(e,t,n=de){const{immediate:s,deep:o,flush:r,once:i}=n,l=Ce({},n),a=t&&s||!t&&r!=="post";let u;if(Jt){if(r==="sync"){const g=Ml();u=g.__watcherHandles||(g.__watcherHandles=[])}else if(!a){const g=()=>{};return g.stop=lt,g.resume=lt,g.pause=lt,g}}const c=Se;l.call=(g,y,v)=>Je(g,c,y,v);let f=!1;r==="post"?l.scheduler=g=>{Ae(g,c&&c.suspense)}:r!=="sync"&&(f=!0,l.scheduler=(g,y)=>{y?g():Qs(g)}),l.augmentJob=g=>{t&&(g.flags|=4),f&&(g.flags|=2,c&&(g.id=c.uid,g.i=c))};const m=Sl(e,t,l);return Jt&&(u?u.push(m):a&&m()),m}function Pl(e,t,n){const s=this.proxy,o=we(e)?e.includes(".")?Wr(s,e):()=>s[e]:e.bind(s,s);let r;ee(t)?r=t:(r=t.handler,n=t);const i=Tn(this),l=Vr(o,r.bind(s),n);return i(),l}function Wr(e,t){const n=t.split(".");return()=>{let s=e;for(let o=0;o<n.length&&s;o++)s=s[n[o]];return s}}const qr=Symbol("_vte"),Ol=e=>e.__isTeleport,un=e=>e&&(e.disabled||e.disabled===""),wo=e=>e&&(e.defer||e.defer===""),_o=e=>typeof SVGElement<"u"&&e instanceof SVGElement,xo=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Ms=(e,t)=>{const n=e&&e.to;return we(n)?t?t(n):null:n},Gr={name:"Teleport",__isTeleport:!0,process(e,t,n,s,o,r,i,l,a,u){const{mc:c,pc:f,pbc:m,o:{insert:g,querySelector:y,createText:v,createComment:T}}=u,p=un(t.props);let{shapeFlag:w,children:$,dynamicChildren:k}=t;if(e==null){const U=t.el=v(""),te=t.anchor=v("");g(U,n,s),g(te,n,s);const ie=(A,G)=>{w&16&&c($,A,G,o,r,i,l,a)},V=()=>{const A=t.target=Ms(t.props,y),G=zr(A,t,v,g);A&&(i!=="svg"&&_o(A)?i="svg":i!=="mathml"&&xo(A)&&(i="mathml"),o&&o.isCE&&(o.ce._teleportTargets||(o.ce._teleportTargets=new Set)).add(A),p||(ie(A,G),Ln(t,!1)))};p&&(ie(n,te),Ln(t,!0)),wo(t.props)?(t.el.__isMounted=!1,Ae(()=>{V(),delete t.el.__isMounted},r)):V()}else{if(wo(t.props)&&e.el.__isMounted===!1){Ae(()=>{Gr.process(e,t,n,s,o,r,i,l,a,u)},r);return}t.el=e.el,t.targetStart=e.targetStart;const U=t.anchor=e.anchor,te=t.target=e.target,ie=t.targetAnchor=e.targetAnchor,V=un(e.props),A=V?n:te,G=V?U:ie;if(i==="svg"||_o(te)?i="svg":(i==="mathml"||xo(te))&&(i="mathml"),k?(m(e.dynamicChildren,k,A,o,r,i,l),ro(e,t,!0)):a||f(e,t,A,G,o,r,i,l,!1),p)V?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Mn(t,n,U,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const ne=t.target=Ms(t.props,y);ne&&Mn(t,ne,null,u,0)}else V&&Mn(t,te,ie,u,1);Ln(t,p)}},remove(e,t,n,{um:s,o:{remove:o}},r){const{shapeFlag:i,children:l,anchor:a,targetStart:u,targetAnchor:c,target:f,props:m}=e;if(f&&(o(u),o(c)),r&&o(a),i&16){const g=r||!un(m);for(let y=0;y<l.length;y++){const v=l[y];s(v,t,n,g,!!v.dynamicChildren)}}},move:Mn,hydrate:Il};function Mn(e,t,n,{o:{insert:s},m:o},r=2){r===0&&s(e.targetAnchor,t,n);const{el:i,anchor:l,shapeFlag:a,children:u,props:c}=e,f=r===2;if(f&&s(i,t,n),(!f||un(c))&&a&16)for(let m=0;m<u.length;m++)o(u[m],t,n,2);f&&s(l,t,n)}function Il(e,t,n,s,o,r,{o:{nextSibling:i,parentNode:l,querySelector:a,insert:u,createText:c}},f){function m(v,T,p,w){T.anchor=f(i(v),T,l(v),n,s,o,r),T.targetStart=p,T.targetAnchor=w}const g=t.target=Ms(t.props,a),y=un(t.props);if(g){const v=g._lpa||g.firstChild;if(t.shapeFlag&16)if(y)m(e,t,v,v&&i(v));else{t.anchor=i(e);let T=v;for(;T;){if(T&&T.nodeType===8){if(T.data==="teleport start anchor")t.targetStart=T;else if(T.data==="teleport anchor"){t.targetAnchor=T,g._lpa=t.targetAnchor&&i(t.targetAnchor);break}}T=i(T)}t.targetAnchor||zr(g,t,c,u),f(v&&i(v),t,g,n,s,o,r)}Ln(t,y)}else y&&t.shapeFlag&16&&m(e,t,e,i(e));return t.anchor&&i(t.anchor)}const Yr=Gr;function Ln(e,t){const n=e.ctx;if(n&&n.ut){let s,o;for(t?(s=e.el,o=e.anchor):(s=e.targetStart,o=e.targetAnchor);s&&s!==o;)s.nodeType===1&&s.setAttribute("data-v-owner",n.uid),s=s.nextSibling;n.ut()}}function zr(e,t,n,s){const o=t.targetStart=n(""),r=t.targetAnchor=n("");return o[qr]=r,e&&(s(o,e),s(r,e)),r}const Dt=Symbol("_leaveCb"),Pn=Symbol("_enterCb");function Rl(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return wt(()=>{e.isMounted=!0}),Ut(()=>{e.isUnmounting=!0}),e}const Ke=[Function,Array],Ll={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Ke,onEnter:Ke,onAfterEnter:Ke,onEnterCancelled:Ke,onBeforeLeave:Ke,onLeave:Ke,onAfterLeave:Ke,onLeaveCancelled:Ke,onBeforeAppear:Ke,onAppear:Ke,onAfterAppear:Ke,onAppearCancelled:Ke};function Dl(e,t){const{leavingVNodes:n}=e;let s=n.get(t.type);return s||(s=Object.create(null),n.set(t.type,s)),s}function Ps(e,t,n,s,o){const{appear:r,mode:i,persisted:l=!1,onBeforeEnter:a,onEnter:u,onAfterEnter:c,onEnterCancelled:f,onBeforeLeave:m,onLeave:g,onAfterLeave:y,onLeaveCancelled:v,onBeforeAppear:T,onAppear:p,onAfterAppear:w,onAppearCancelled:$}=t,k=String(e.key),U=Dl(n,e),te=(A,G)=>{A&&Je(A,s,9,G)},ie=(A,G)=>{const ne=G[1];te(A,G),J(A)?A.every(M=>M.length<=1)&&ne():A.length<=1&&ne()},V={mode:i,persisted:l,beforeEnter(A){let G=a;if(!n.isMounted)if(r)G=T||a;else return;A[Dt]&&A[Dt](!0);const ne=U[k];ne&&Wt(e,ne)&&ne.el[Dt]&&ne.el[Dt](),te(G,[A])},enter(A){let G=u,ne=c,M=f;if(!n.isMounted)if(r)G=p||u,ne=w||c,M=$||f;else return;let F=!1;const L=A[Pn]=z=>{F||(F=!0,z?te(M,[A]):te(ne,[A]),V.delayedLeave&&V.delayedLeave(),A[Pn]=void 0)};G?ie(G,[A,L]):L()},leave(A,G){const ne=String(e.key);if(A[Pn]&&A[Pn](!0),n.isUnmounting)return G();te(m,[A]);let M=!1;const F=A[Dt]=L=>{M||(M=!0,G(),L?te(v,[A]):te(y,[A]),A[Dt]=void 0,U[ne]===e&&delete U[ne])};U[ne]=e,g?ie(g,[A,F]):F()},clone(A){return Ps(A,t,n,s)}};return V}function bn(e,t){e.shapeFlag&6&&e.component?(e.transition=t,bn(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 Xr(e,t=!1,n){let s=[],o=0;for(let r=0;r<e.length;r++){let i=e[r];const l=n==null?i.key:String(n)+String(i.key!=null?i.key:r);i.type===ye?(i.patchFlag&128&&o++,s=s.concat(Xr(i.children,t,l))):(t||i.type!==yt)&&s.push(l!=null?Ht(i,{key:l}):i)}if(o>1)for(let r=0;r<s.length;r++)s[r].patchFlag=-2;return s}function Fl(e,t){return ee(e)?Ce({name:e.name},t,{setup:e}):e}function eo(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}const Kn=new WeakMap;function fn(e,t,n,s,o=!1){if(J(e)){e.forEach((y,v)=>fn(y,t&&(J(t)?t[v]:t),n,s,o));return}if(dn(s)&&!o){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&fn(e,t,n,s.component.subTree);return}const r=s.shapeFlag&4?cs(s.component):s.el,i=o?null:r,{i:l,r:a}=e,u=t&&t.r,c=l.refs===de?l.refs={}:l.refs,f=l.setupState,m=ce(f),g=f===de?ur:y=>ue(m,y);if(u!=null&&u!==a){if(Co(t),we(u))c[u]=null,g(u)&&(f[u]=null);else if(be(u)){u.value=null;const y=t;y.k&&(c[y.k]=null)}}if(ee(a))Cn(a,l,12,[i,c]);else{const y=we(a),v=be(a);if(y||v){const T=()=>{if(e.f){const p=y?g(a)?f[a]:c[a]:a.value;if(o)J(p)&&Ws(p,r);else if(J(p))p.includes(r)||p.push(r);else if(y)c[a]=[r],g(a)&&(f[a]=c[a]);else{const w=[r];a.value=w,e.k&&(c[e.k]=w)}}else y?(c[a]=i,g(a)&&(f[a]=i)):v&&(a.value=i,e.k&&(c[e.k]=i))};if(i){const p=()=>{T(),Kn.delete(e)};p.id=-1,Kn.set(e,p),Ae(p,n)}else Co(e),T()}}}function Co(e){const t=Kn.get(e);t&&(t.flags|=8,Kn.delete(e))}const So=e=>e.nodeType===8;ts().requestIdleCallback;ts().cancelIdleCallback;function Nl(e,t){if(So(e)&&e.data==="["){let n=1,s=e.nextSibling;for(;s;){if(s.nodeType===1){if(t(s)===!1)break}else if(So(s))if(s.data==="]"){if(--n===0)break}else s.data==="["&&n++;s=s.nextSibling}}else t(e)}const dn=e=>!!e.type.__asyncLoader;function jl(e){ee(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:s,delay:o=200,hydrate:r,timeout:i,suspensible:l=!0,onError:a}=e;let u=null,c,f=0;const m=()=>(f++,u=null,g()),g=()=>{let y;return u||(y=u=t().catch(v=>{if(v=v instanceof Error?v:new Error(String(v)),a)return new Promise((T,p)=>{a(v,()=>T(m()),()=>p(v),f+1)});throw v}).then(v=>y!==u&&u?u:(v&&(v.__esModule||v[Symbol.toStringTag]==="Module")&&(v=v.default),c=v,v)))};return Fl({name:"AsyncComponentWrapper",__asyncLoader:g,__asyncHydrate(y,v,T){let p=!1;(v.bu||(v.bu=[])).push(()=>p=!0);const w=()=>{p||T()},$=r?()=>{const k=r(w,U=>Nl(y,U));k&&(v.bum||(v.bum=[])).push(k)}:w;c?$():g().then(()=>!v.isUnmounted&&$())},get __asyncResolved(){return c},setup(){const y=Se;if(eo(y),c)return()=>On(c,y);const v=$=>{u=null,Sn($,y,13,!s)};if(l&&y.suspense||Jt)return g().then($=>()=>On($,y)).catch($=>(v($),()=>s?_e(s,{error:$}):null));const T=B(!1),p=B(),w=B(!!o);return o&&setTimeout(()=>{w.value=!1},o),i!=null&&setTimeout(()=>{if(!T.value&&!p.value){const $=new Error(`Async component timed out after ${i}ms.`);v($),p.value=$}},i),g().then(()=>{T.value=!0,y.parent&&to(y.parent.vnode)&&y.parent.update()}).catch($=>{v($),p.value=$}),()=>{if(T.value&&c)return On(c,y);if(p.value&&s)return _e(s,{error:p.value});if(n&&!w.value)return On(n,y)}}})}function On(e,t){const{ref:n,props:s,children:o,ce:r}=t.vnode,i=_e(e,s,o);return i.ref=n,i.ce=r,delete t.vnode.ce,i}const to=e=>e.type.__isKeepAlive;function Hl(e,t){Jr(e,"a",t)}function Ul(e,t){Jr(e,"da",t)}function Jr(e,t,n=Se){const s=e.__wdc||(e.__wdc=()=>{let o=n;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(is(t,s,n),n){let o=n.parent;for(;o&&o.parent;)to(o.parent.vnode)&&Kl(s,t,n,o),o=o.parent}}function Kl(e,t,n,s){const o=is(t,e,s,!0);no(()=>{Ws(s[t],o)},n)}function is(e,t,n=Se,s=!1){if(n){const o=n[e]||(n[e]=[]),r=t.__weh||(t.__weh=(...i)=>{mt();const l=Tn(n),a=Je(t,n,e,i);return l(),gt(),a});return s?o.unshift(r):o.push(r),r}}const bt=e=>(t,n=Se)=>{(!Jt||e==="sp")&&is(e,(...s)=>t(...s),n)},Bl=bt("bm"),wt=bt("m"),Vl=bt("bu"),Zr=bt("u"),Ut=bt("bum"),no=bt("um"),Wl=bt("sp"),ql=bt("rtg"),Gl=bt("rtc");function Yl(e,t=Se){is("ec",e,t)}const zl="components";function Xl(e,t){return Zl(zl,e,!0,t)||e}const Jl=Symbol.for("v-ndc");function Zl(e,t,n=!0,s=!1){const o=De||Se;if(o){const r=o.type;{const l=Da(r,!1);if(l&&(l===t||l===qe(t)||l===Qn(qe(t))))return r}const i=Eo(o[e]||r[e],t)||Eo(o.appContext[e],t);return!i&&s?r:i}}function Eo(e,t){return e&&(e[t]||e[qe(t)]||e[Qn(qe(t))])}function En(e,t,n,s){let o;const r=n,i=J(e);if(i||we(e)){const l=i&&ht(e);let a=!1,u=!1;l&&(a=!Ne(e),u=vt(e),e=ss(e)),o=new Array(e.length);for(let c=0,f=e.length;c<f;c++)o[c]=t(a?u?Xt(Xe(e[c])):Xe(e[c]):e[c],c,void 0,r)}else if(typeof e=="number"){o=new Array(e);for(let l=0;l<e;l++)o[l]=t(l+1,l,void 0,r)}else if(pe(e))if(e[Symbol.iterator])o=Array.from(e,(l,a)=>t(l,a,void 0,r));else{const l=Object.keys(e);o=new Array(l.length);for(let a=0,u=l.length;a<u;a++){const c=l[a];o[a]=t(e[c],c,a,r)}}else o=[];return o}const Os=e=>e?vi(e)?cs(e):Os(e.parent):null,pn=Ce(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=>Os(e.parent),$root:e=>Os(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>ei(e),$forceUpdate:e=>e.f||(e.f=()=>{Qs(e.update)}),$nextTick:e=>e.n||(e.n=Mt.bind(e.proxy)),$watch:e=>Pl.bind(e)}),vs=(e,t)=>e!==de&&!e.__isScriptSetup&&ue(e,t),Ql={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:s,data:o,props:r,accessCache:i,type:l,appContext:a}=e;if(t[0]!=="$"){const m=i[t];if(m!==void 0)switch(m){case 1:return s[t];case 2:return o[t];case 4:return n[t];case 3:return r[t]}else{if(vs(s,t))return i[t]=1,s[t];if(o!==de&&ue(o,t))return i[t]=2,o[t];if(ue(r,t))return i[t]=3,r[t];if(n!==de&&ue(n,t))return i[t]=4,n[t];Is&&(i[t]=0)}}const u=pn[t];let c,f;if(u)return t==="$attrs"&&$e(e.attrs,"get",""),u(e);if((c=l.__cssModules)&&(c=c[t]))return c;if(n!==de&&ue(n,t))return i[t]=4,n[t];if(f=a.config.globalProperties,ue(f,t))return f[t]},set({_:e},t,n){const{data:s,setupState:o,ctx:r}=e;return vs(o,t)?(o[t]=n,!0):s!==de&&ue(s,t)?(s[t]=n,!0):ue(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:o,props:r,type:i}},l){let a;return!!(n[l]||e!==de&&l[0]!=="$"&&ue(e,l)||vs(t,l)||ue(r,l)||ue(s,l)||ue(pn,l)||ue(o.config.globalProperties,l)||(a=i.__cssModules)&&a[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ue(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function To(e){return J(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Is=!0;function ea(e){const t=ei(e),n=e.proxy,s=e.ctx;Is=!1,t.beforeCreate&&$o(t.beforeCreate,e,"bc");const{data:o,computed:r,methods:i,watch:l,provide:a,inject:u,created:c,beforeMount:f,mounted:m,beforeUpdate:g,updated:y,activated:v,deactivated:T,beforeDestroy:p,beforeUnmount:w,destroyed:$,unmounted:k,render:U,renderTracked:te,renderTriggered:ie,errorCaptured:V,serverPrefetch:A,expose:G,inheritAttrs:ne,components:M,directives:F,filters:L}=t;if(u&&ta(u,s,null),i)for(const W in i){const oe=i[W];ee(oe)&&(s[W]=oe.bind(n))}if(o){const W=o.call(n,n);pe(W)&&(e.data=os(W))}if(Is=!0,r)for(const W in r){const oe=r[W],He=ee(oe)?oe.bind(n,n):ee(oe.get)?oe.get.bind(n,n):lt,ct=!ee(oe)&&ee(oe.set)?oe.set.bind(n):lt,Ue=je({get:He,set:ct});Object.defineProperty(s,W,{enumerable:!0,configurable:!0,get:()=>Ue.value,set:R=>Ue.value=R})}if(l)for(const W in l)Qr(l[W],s,n,W);if(a){const W=ee(a)?a.call(n):a;Reflect.ownKeys(W).forEach(oe=>{Br(oe,W[oe])})}c&&$o(c,e,"c");function q(W,oe){J(oe)?oe.forEach(He=>W(He.bind(n))):oe&&W(oe.bind(n))}if(q(Bl,f),q(wt,m),q(Vl,g),q(Zr,y),q(Hl,v),q(Ul,T),q(Yl,V),q(Gl,te),q(ql,ie),q(Ut,w),q(no,k),q(Wl,A),J(G))if(G.length){const W=e.exposed||(e.exposed={});G.forEach(oe=>{Object.defineProperty(W,oe,{get:()=>n[oe],set:He=>n[oe]=He,enumerable:!0})})}else e.exposed||(e.exposed={});U&&e.render===lt&&(e.render=U),ne!=null&&(e.inheritAttrs=ne),M&&(e.components=M),F&&(e.directives=F),A&&eo(e)}function ta(e,t,n=lt){J(e)&&(e=Rs(e));for(const s in e){const o=e[s];let r;pe(o)?"default"in o?r=kt(o.from||s,o.default,!0):r=kt(o.from||s):r=kt(o),be(r)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>r.value,set:i=>r.value=i}):t[s]=r}}function $o(e,t,n){Je(J(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function Qr(e,t,n,s){let o=s.includes(".")?Wr(n,s):()=>n[s];if(we(e)){const r=t[e];ee(r)&&ze(o,r)}else if(ee(e))ze(o,e.bind(n));else if(pe(e))if(J(e))e.forEach(r=>Qr(r,t,n,s));else{const r=ee(e.handler)?e.handler.bind(n):t[e.handler];ee(r)&&ze(o,r,e)}}function ei(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:o,optionsCache:r,config:{optionMergeStrategies:i}}=e.appContext,l=r.get(t);let a;return l?a=l:!o.length&&!n&&!s?a=t:(a={},o.length&&o.forEach(u=>Bn(a,u,i,!0)),Bn(a,t,i)),pe(t)&&r.set(t,a),a}function Bn(e,t,n,s=!1){const{mixins:o,extends:r}=t;r&&Bn(e,r,n,!0),o&&o.forEach(i=>Bn(e,i,n,!0));for(const i in t)if(!(s&&i==="expose")){const l=na[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const na={data:ko,props:Ao,emits:Ao,methods:on,computed:on,beforeCreate:ke,created:ke,beforeMount:ke,mounted:ke,beforeUpdate:ke,updated:ke,beforeDestroy:ke,beforeUnmount:ke,destroyed:ke,unmounted:ke,activated:ke,deactivated:ke,errorCaptured:ke,serverPrefetch:ke,components:on,directives:on,watch:oa,provide:ko,inject:sa};function ko(e,t){return t?e?function(){return Ce(ee(e)?e.call(this,this):e,ee(t)?t.call(this,this):t)}:t:e}function sa(e,t){return on(Rs(e),Rs(t))}function Rs(e){if(J(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function ke(e,t){return e?[...new Set([].concat(e,t))]:t}function on(e,t){return e?Ce(Object.create(null),e,t):t}function Ao(e,t){return e?J(e)&&J(t)?[...new Set([...e,...t])]:Ce(Object.create(null),To(e),To(t??{})):t}function oa(e,t){if(!e)return t;if(!t)return e;const n=Ce(Object.create(null),e);for(const s in t)n[s]=ke(e[s],t[s]);return n}function ti(){return{app:null,config:{isNativeTag:ur,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let ra=0;function ia(e,t){return function(s,o=null){ee(s)||(s=Ce({},s)),o!=null&&!pe(o)&&(o=null);const r=ti(),i=new WeakSet,l=[];let a=!1;const u=r.app={_uid:ra++,_component:s,_props:o,_container:null,_context:r,_instance:null,version:Na,get config(){return r.config},set config(c){},use(c,...f){return i.has(c)||(c&&ee(c.install)?(i.add(c),c.install(u,...f)):ee(c)&&(i.add(c),c(u,...f))),u},mixin(c){return r.mixins.includes(c)||r.mixins.push(c),u},component(c,f){return f?(r.components[c]=f,u):r.components[c]},directive(c,f){return f?(r.directives[c]=f,u):r.directives[c]},mount(c,f,m){if(!a){const g=u._ceVNode||_e(s,o);return g.appContext=r,m===!0?m="svg":m===!1&&(m=void 0),e(g,c,m),a=!0,u._container=c,c.__vue_app__=u,cs(g.component)}},onUnmount(c){l.push(c)},unmount(){a&&(Je(l,u._instance,16),e(null,u._container),delete u._container.__vue_app__)},provide(c,f){return r.provides[c]=f,u},runWithContext(c){const f=jt;jt=u;try{return c()}finally{jt=f}}};return u}}let jt=null;const la=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${qe(t)}Modifiers`]||e[`${At(t)}Modifiers`];function aa(e,t,...n){if(e.isUnmounted)return;const s=e.vnode.props||de;let o=n;const r=t.startsWith("update:"),i=r&&la(s,t.slice(7));i&&(i.trim&&(o=n.map(c=>we(c)?c.trim():c)),i.number&&(o=n.map(es)));let l,a=s[l=ds(t)]||s[l=ds(qe(t))];!a&&r&&(a=s[l=ds(At(t))]),a&&Je(a,e,6,o);const u=s[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Je(u,e,6,o)}}const ca=new WeakMap;function ni(e,t,n=!1){const s=n?ca:t.emitsCache,o=s.get(e);if(o!==void 0)return o;const r=e.emits;let i={},l=!1;if(!ee(e)){const a=u=>{const c=ni(u,t,!0);c&&(l=!0,Ce(i,c))};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!r&&!l?(pe(e)&&s.set(e,null),null):(J(r)?r.forEach(a=>i[a]=null):Ce(i,r),pe(e)&&s.set(e,i),i)}function ls(e,t){return!e||!zn(t)?!1:(t=t.slice(2).replace(/Once$/,""),ue(e,t[0].toLowerCase()+t.slice(1))||ue(e,At(t))||ue(e,t))}function Mo(e){const{type:t,vnode:n,proxy:s,withProxy:o,propsOptions:[r],slots:i,attrs:l,emit:a,render:u,renderCache:c,props:f,data:m,setupState:g,ctx:y,inheritAttrs:v}=e,T=Un(e);let p,w;try{if(n.shapeFlag&4){const k=o||s,U=k;p=rt(u.call(U,k,c,f,g,m,y)),w=l}else{const k=t;p=rt(k.length>1?k(f,{attrs:l,slots:i,emit:a}):k(f,null)),w=t.props?l:ua(l)}}catch(k){hn.length=0,Sn(k,e,1),p=_e(yt)}let $=p;if(w&&v!==!1){const k=Object.keys(w),{shapeFlag:U}=$;k.length&&U&7&&(r&&k.some(Vs)&&(w=fa(w,r)),$=Ht($,w,!1,!0))}return n.dirs&&($=Ht($,null,!1,!0),$.dirs=$.dirs?$.dirs.concat(n.dirs):n.dirs),n.transition&&bn($,n.transition),p=$,Un(T),p}const ua=e=>{let t;for(const n in e)(n==="class"||n==="style"||zn(n))&&((t||(t={}))[n]=e[n]);return t},fa=(e,t)=>{const n={};for(const s in e)(!Vs(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function da(e,t,n){const{props:s,children:o,component:r}=e,{props:i,children:l,patchFlag:a}=t,u=r.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&a>=0){if(a&1024)return!0;if(a&16)return s?Po(s,i,u):!!i;if(a&8){const c=t.dynamicProps;for(let f=0;f<c.length;f++){const m=c[f];if(i[m]!==s[m]&&!ls(u,m))return!0}}}else return(o||l)&&(!l||!l.$stable)?!0:s===i?!1:s?i?Po(s,i,u):!0:!!i;return!1}function Po(e,t,n){const s=Object.keys(t);if(s.length!==Object.keys(e).length)return!0;for(let o=0;o<s.length;o++){const r=s[o];if(t[r]!==e[r]&&!ls(n,r))return!0}return!1}function pa({vnode:e,parent:t},n){for(;t;){const s=t.subTree;if(s.suspense&&s.suspense.activeBranch===e&&(s.el=e.el),s===e)(e=t.vnode).el=n,t=t.parent;else break}}const si={},oi=()=>Object.create(si),ri=e=>Object.getPrototypeOf(e)===si;function ha(e,t,n,s=!1){const o={},r=oi();e.propsDefaults=Object.create(null),ii(e,t,o,r);for(const i in e.propsOptions[0])i in o||(o[i]=void 0);n?e.props=s?o:hl(o):e.type.props?e.props=o:e.props=r,e.attrs=r}function ma(e,t,n,s){const{props:o,attrs:r,vnode:{patchFlag:i}}=e,l=ce(o),[a]=e.propsOptions;let u=!1;if((s||i>0)&&!(i&16)){if(i&8){const c=e.vnode.dynamicProps;for(let f=0;f<c.length;f++){let m=c[f];if(ls(e.emitsOptions,m))continue;const g=t[m];if(a)if(ue(r,m))g!==r[m]&&(r[m]=g,u=!0);else{const y=qe(m);o[y]=Ls(a,l,y,g,e,!1)}else g!==r[m]&&(r[m]=g,u=!0)}}}else{ii(e,t,o,r)&&(u=!0);let c;for(const f in l)(!t||!ue(t,f)&&((c=At(f))===f||!ue(t,c)))&&(a?n&&(n[f]!==void 0||n[c]!==void 0)&&(o[f]=Ls(a,l,f,void 0,e,!0)):delete o[f]);if(r!==l)for(const f in r)(!t||!ue(t,f))&&(delete r[f],u=!0)}u&&dt(e.attrs,"set","")}function ii(e,t,n,s){const[o,r]=e.propsOptions;let i=!1,l;if(t)for(let a in t){if(ln(a))continue;const u=t[a];let c;o&&ue(o,c=qe(a))?!r||!r.includes(c)?n[c]=u:(l||(l={}))[c]=u:ls(e.emitsOptions,a)||(!(a in s)||u!==s[a])&&(s[a]=u,i=!0)}if(r){const a=ce(n),u=l||de;for(let c=0;c<r.length;c++){const f=r[c];n[f]=Ls(o,a,f,u[f],e,!ue(u,f))}}return i}function Ls(e,t,n,s,o,r){const i=e[n];if(i!=null){const l=ue(i,"default");if(l&&s===void 0){const a=i.default;if(i.type!==Function&&!i.skipFactory&&ee(a)){const{propsDefaults:u}=o;if(n in u)s=u[n];else{const c=Tn(o);s=u[n]=a.call(null,t),c()}}else s=a;o.ce&&o.ce._setProp(n,s)}i[0]&&(r&&!l?s=!1:i[1]&&(s===""||s===At(n))&&(s=!0))}return s}const ga=new WeakMap;function li(e,t,n=!1){const s=n?ga:t.propsCache,o=s.get(e);if(o)return o;const r=e.props,i={},l=[];let a=!1;if(!ee(e)){const c=f=>{a=!0;const[m,g]=li(f,t,!0);Ce(i,m),g&&l.push(...g)};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!r&&!a)return pe(e)&&s.set(e,qt),qt;if(J(r))for(let c=0;c<r.length;c++){const f=qe(r[c]);Oo(f)&&(i[f]=de)}else if(r)for(const c in r){const f=qe(c);if(Oo(f)){const m=r[c],g=i[f]=J(m)||ee(m)?{type:m}:Ce({},m),y=g.type;let v=!1,T=!0;if(J(y))for(let p=0;p<y.length;++p){const w=y[p],$=ee(w)&&w.name;if($==="Boolean"){v=!0;break}else $==="String"&&(T=!1)}else v=ee(y)&&y.name==="Boolean";g[0]=v,g[1]=T,(v||ue(g,"default"))&&l.push(f)}}const u=[i,l];return pe(e)&&s.set(e,u),u}function Oo(e){return e[0]!=="$"&&!ln(e)}const so=e=>e==="_"||e==="_ctx"||e==="$stable",oo=e=>J(e)?e.map(rt):[rt(e)],va=(e,t,n)=>{if(t._n)return t;const s=Kr((...o)=>oo(t(...o)),n);return s._c=!1,s},ai=(e,t,n)=>{const s=e._ctx;for(const o in e){if(so(o))continue;const r=e[o];if(ee(r))t[o]=va(o,r,s);else if(r!=null){const i=oo(r);t[o]=()=>i}}},ci=(e,t)=>{const n=oo(t);e.slots.default=()=>n},ui=(e,t,n)=>{for(const s in t)(n||!so(s))&&(e[s]=t[s])},ya=(e,t,n)=>{const s=e.slots=oi();if(e.vnode.shapeFlag&32){const o=t._;o?(ui(s,t,n),n&&hr(s,"_",o,!0)):ai(t,s)}else t&&ci(e,t)},ba=(e,t,n)=>{const{vnode:s,slots:o}=e;let r=!0,i=de;if(s.shapeFlag&32){const l=t._;l?n&&l===1?r=!1:ui(o,t,n):(r=!t.$stable,ai(t,o)),i=t}else t&&(ci(e,t),i={default:1});if(r)for(const l in o)!so(l)&&i[l]==null&&delete o[l]},Ae=Sa;function wa(e){return _a(e)}function _a(e,t){const n=ts();n.__VUE__=!0;const{insert:s,remove:o,patchProp:r,createElement:i,createText:l,createComment:a,setText:u,setElementText:c,parentNode:f,nextSibling:m,setScopeId:g=lt,insertStaticContent:y}=e,v=(d,h,b,S=null,x=null,C=null,D=void 0,O=null,P=!!h.dynamicChildren)=>{if(d===h)return;d&&!Wt(d,h)&&(S=X(d),R(d,x,C,!0),d=null),h.patchFlag===-2&&(P=!1,h.dynamicChildren=null);const{type:E,ref:Z,shapeFlag:N}=h;switch(E){case as:T(d,h,b,S);break;case yt:p(d,h,b,S);break;case bs:d==null&&w(h,b,S,D);break;case ye:M(d,h,b,S,x,C,D,O,P);break;default:N&1?U(d,h,b,S,x,C,D,O,P):N&6?F(d,h,b,S,x,C,D,O,P):(N&64||N&128)&&E.process(d,h,b,S,x,C,D,O,P,Re)}Z!=null&&x?fn(Z,d&&d.ref,C,h||d,!h):Z==null&&d&&d.ref!=null&&fn(d.ref,null,C,d,!0)},T=(d,h,b,S)=>{if(d==null)s(h.el=l(h.children),b,S);else{const x=h.el=d.el;h.children!==d.children&&u(x,h.children)}},p=(d,h,b,S)=>{d==null?s(h.el=a(h.children||""),b,S):h.el=d.el},w=(d,h,b,S)=>{[d.el,d.anchor]=y(d.children,h,b,S,d.el,d.anchor)},$=({el:d,anchor:h},b,S)=>{let x;for(;d&&d!==h;)x=m(d),s(d,b,S),d=x;s(h,b,S)},k=({el:d,anchor:h})=>{let b;for(;d&&d!==h;)b=m(d),o(d),d=b;o(h)},U=(d,h,b,S,x,C,D,O,P)=>{if(h.type==="svg"?D="svg":h.type==="math"&&(D="mathml"),d==null)te(h,b,S,x,C,D,O,P);else{const E=d.el&&d.el._isVueCE?d.el:null;try{E&&E._beginPatch(),A(d,h,x,C,D,O,P)}finally{E&&E._endPatch()}}},te=(d,h,b,S,x,C,D,O)=>{let P,E;const{props:Z,shapeFlag:N,transition:Y,dirs:Q}=d;if(P=d.el=i(d.type,C,Z&&Z.is,Z),N&8?c(P,d.children):N&16&&V(d.children,P,null,S,x,ys(d,C),D,O),Q&&Ot(d,null,S,"created"),ie(P,d,d.scopeId,D,S),Z){for(const he in Z)he!=="value"&&!ln(he)&&r(P,he,null,Z[he],C,S);"value"in Z&&r(P,"value",null,Z.value,C),(E=Z.onVnodeBeforeMount)&&nt(E,S,d)}Q&&Ot(d,null,S,"beforeMount");const le=xa(x,Y);le&&Y.beforeEnter(P),s(P,h,b),((E=Z&&Z.onVnodeMounted)||le||Q)&&Ae(()=>{E&&nt(E,S,d),le&&Y.enter(P),Q&&Ot(d,null,S,"mounted")},x)},ie=(d,h,b,S,x)=>{if(b&&g(d,b),S)for(let C=0;C<S.length;C++)g(d,S[C]);if(x){let C=x.subTree;if(h===C||pi(C.type)&&(C.ssContent===h||C.ssFallback===h)){const D=x.vnode;ie(d,D,D.scopeId,D.slotScopeIds,x.parent)}}},V=(d,h,b,S,x,C,D,O,P=0)=>{for(let E=P;E<d.length;E++){const Z=d[E]=O?Tt(d[E]):rt(d[E]);v(null,Z,h,b,S,x,C,D,O)}},A=(d,h,b,S,x,C,D)=>{const O=h.el=d.el;let{patchFlag:P,dynamicChildren:E,dirs:Z}=h;P|=d.patchFlag&16;const N=d.props||de,Y=h.props||de;let Q;if(b&&It(b,!1),(Q=Y.onVnodeBeforeUpdate)&&nt(Q,b,h,d),Z&&Ot(h,d,b,"beforeUpdate"),b&&It(b,!0),(N.innerHTML&&Y.innerHTML==null||N.textContent&&Y.textContent==null)&&c(O,""),E?G(d.dynamicChildren,E,O,b,S,ys(h,x),C):D||oe(d,h,O,null,b,S,ys(h,x),C,!1),P>0){if(P&16)ne(O,N,Y,b,x);else if(P&2&&N.class!==Y.class&&r(O,"class",null,Y.class,x),P&4&&r(O,"style",N.style,Y.style,x),P&8){const le=h.dynamicProps;for(let he=0;he<le.length;he++){const fe=le[he],Oe=N[fe],Ie=Y[fe];(Ie!==Oe||fe==="value")&&r(O,fe,Oe,Ie,x,b)}}P&1&&d.children!==h.children&&c(O,h.children)}else!D&&E==null&&ne(O,N,Y,b,x);((Q=Y.onVnodeUpdated)||Z)&&Ae(()=>{Q&&nt(Q,b,h,d),Z&&Ot(h,d,b,"updated")},S)},G=(d,h,b,S,x,C,D)=>{for(let O=0;O<h.length;O++){const P=d[O],E=h[O],Z=P.el&&(P.type===ye||!Wt(P,E)||P.shapeFlag&198)?f(P.el):b;v(P,E,Z,null,S,x,C,D,!0)}},ne=(d,h,b,S,x)=>{if(h!==b){if(h!==de)for(const C in h)!ln(C)&&!(C in b)&&r(d,C,h[C],null,x,S);for(const C in b){if(ln(C))continue;const D=b[C],O=h[C];D!==O&&C!=="value"&&r(d,C,O,D,x,S)}"value"in b&&r(d,"value",h.value,b.value,x)}},M=(d,h,b,S,x,C,D,O,P)=>{const E=h.el=d?d.el:l(""),Z=h.anchor=d?d.anchor:l("");let{patchFlag:N,dynamicChildren:Y,slotScopeIds:Q}=h;Q&&(O=O?O.concat(Q):Q),d==null?(s(E,b,S),s(Z,b,S),V(h.children||[],b,Z,x,C,D,O,P)):N>0&&N&64&&Y&&d.dynamicChildren&&d.dynamicChildren.length===Y.length?(G(d.dynamicChildren,Y,b,x,C,D,O),(h.key!=null||x&&h===x.subTree)&&ro(d,h,!0)):oe(d,h,b,Z,x,C,D,O,P)},F=(d,h,b,S,x,C,D,O,P)=>{h.slotScopeIds=O,d==null?h.shapeFlag&512?x.ctx.activate(h,b,S,D,P):L(h,b,S,x,C,D,P):z(d,h,P)},L=(d,h,b,S,x,C,D)=>{const O=d.component=Pa(d,S,x);if(to(d)&&(O.ctx.renderer=Re),Oa(O,!1,D),O.asyncDep){if(x&&x.registerDep(O,q,D),!d.el){const P=O.subTree=_e(yt);p(null,P,h,b),d.placeholder=P.el}}else q(O,d,h,b,x,C,D)},z=(d,h,b)=>{const S=h.component=d.component;if(da(d,h,b))if(S.asyncDep&&!S.asyncResolved){W(S,h,b);return}else S.next=h,S.update();else h.el=d.el,S.vnode=h},q=(d,h,b,S,x,C,D)=>{const O=()=>{if(d.isMounted){let{next:N,bu:Y,u:Q,parent:le,vnode:he}=d;{const et=fi(d);if(et){N&&(N.el=he.el,W(d,N,D)),et.asyncDep.then(()=>{d.isUnmounted||O()});return}}let fe=N,Oe;It(d,!1),N?(N.el=he.el,W(d,N,D)):N=he,Y&&Rn(Y),(Oe=N.props&&N.props.onVnodeBeforeUpdate)&&nt(Oe,le,N,he),It(d,!0);const Ie=Mo(d),Qe=d.subTree;d.subTree=Ie,v(Qe,Ie,f(Qe.el),X(Qe),d,x,C),N.el=Ie.el,fe===null&&pa(d,Ie.el),Q&&Ae(Q,x),(Oe=N.props&&N.props.onVnodeUpdated)&&Ae(()=>nt(Oe,le,N,he),x)}else{let N;const{el:Y,props:Q}=h,{bm:le,m:he,parent:fe,root:Oe,type:Ie}=d,Qe=dn(h);It(d,!1),le&&Rn(le),!Qe&&(N=Q&&Q.onVnodeBeforeMount)&&nt(N,fe,h),It(d,!0);{Oe.ce&&Oe.ce._def.shadowRoot!==!1&&Oe.ce._injectChildStyle(Ie);const et=d.subTree=Mo(d);v(null,et,b,S,d,x,C),h.el=et.el}if(he&&Ae(he,x),!Qe&&(N=Q&&Q.onVnodeMounted)){const et=h;Ae(()=>nt(N,fe,et),x)}(h.shapeFlag&256||fe&&dn(fe.vnode)&&fe.vnode.shapeFlag&256)&&d.a&&Ae(d.a,x),d.isMounted=!0,h=b=S=null}};d.scope.on();const P=d.effect=new _r(O);d.scope.off();const E=d.update=P.run.bind(P),Z=d.job=P.runIfDirty.bind(P);Z.i=d,Z.id=d.uid,P.scheduler=()=>Qs(Z),It(d,!0),E()},W=(d,h,b)=>{h.component=d;const S=d.vnode.props;d.vnode=h,d.next=null,ma(d,h.props,S,b),ba(d,h.children,b),mt(),bo(d),gt()},oe=(d,h,b,S,x,C,D,O,P=!1)=>{const E=d&&d.children,Z=d?d.shapeFlag:0,N=h.children,{patchFlag:Y,shapeFlag:Q}=h;if(Y>0){if(Y&128){ct(E,N,b,S,x,C,D,O,P);return}else if(Y&256){He(E,N,b,S,x,C,D,O,P);return}}Q&8?(Z&16&&Pe(E,x,C),N!==E&&c(b,N)):Z&16?Q&16?ct(E,N,b,S,x,C,D,O,P):Pe(E,x,C,!0):(Z&8&&c(b,""),Q&16&&V(N,b,S,x,C,D,O,P))},He=(d,h,b,S,x,C,D,O,P)=>{d=d||qt,h=h||qt;const E=d.length,Z=h.length,N=Math.min(E,Z);let Y;for(Y=0;Y<N;Y++){const Q=h[Y]=P?Tt(h[Y]):rt(h[Y]);v(d[Y],Q,b,null,x,C,D,O,P)}E>Z?Pe(d,x,C,!0,!1,N):V(h,b,S,x,C,D,O,P,N)},ct=(d,h,b,S,x,C,D,O,P)=>{let E=0;const Z=h.length;let N=d.length-1,Y=Z-1;for(;E<=N&&E<=Y;){const Q=d[E],le=h[E]=P?Tt(h[E]):rt(h[E]);if(Wt(Q,le))v(Q,le,b,null,x,C,D,O,P);else break;E++}for(;E<=N&&E<=Y;){const Q=d[N],le=h[Y]=P?Tt(h[Y]):rt(h[Y]);if(Wt(Q,le))v(Q,le,b,null,x,C,D,O,P);else break;N--,Y--}if(E>N){if(E<=Y){const Q=Y+1,le=Q<Z?h[Q].el:S;for(;E<=Y;)v(null,h[E]=P?Tt(h[E]):rt(h[E]),b,le,x,C,D,O,P),E++}}else if(E>Y)for(;E<=N;)R(d[E],x,C,!0),E++;else{const Q=E,le=E,he=new Map;for(E=le;E<=Y;E++){const Le=h[E]=P?Tt(h[E]):rt(h[E]);Le.key!=null&&he.set(Le.key,E)}let fe,Oe=0;const Ie=Y-le+1;let Qe=!1,et=0;const Qt=new Array(Ie);for(E=0;E<Ie;E++)Qt[E]=0;for(E=Q;E<=N;E++){const Le=d[E];if(Oe>=Ie){R(Le,x,C,!0);continue}let tt;if(Le.key!=null)tt=he.get(Le.key);else for(fe=le;fe<=Y;fe++)if(Qt[fe-le]===0&&Wt(Le,h[fe])){tt=fe;break}tt===void 0?R(Le,x,C,!0):(Qt[tt-le]=E+1,tt>=et?et=tt:Qe=!0,v(Le,h[tt],b,null,x,C,D,O,P),Oe++)}const fo=Qe?Ca(Qt):qt;for(fe=fo.length-1,E=Ie-1;E>=0;E--){const Le=le+E,tt=h[Le],po=h[Le+1],ho=Le+1<Z?po.el||di(po):S;Qt[E]===0?v(null,tt,b,ho,x,C,D,O,P):Qe&&(fe<0||E!==fo[fe]?Ue(tt,b,ho,2):fe--)}}},Ue=(d,h,b,S,x=null)=>{const{el:C,type:D,transition:O,children:P,shapeFlag:E}=d;if(E&6){Ue(d.component.subTree,h,b,S);return}if(E&128){d.suspense.move(h,b,S);return}if(E&64){D.move(d,h,b,Re);return}if(D===ye){s(C,h,b);for(let N=0;N<P.length;N++)Ue(P[N],h,b,S);s(d.anchor,h,b);return}if(D===bs){$(d,h,b);return}if(S!==2&&E&1&&O)if(S===0)O.beforeEnter(C),s(C,h,b),Ae(()=>O.enter(C),x);else{const{leave:N,delayLeave:Y,afterLeave:Q}=O,le=()=>{d.ctx.isUnmounted?o(C):s(C,h,b)},he=()=>{C._isLeaving&&C[Dt](!0),N(C,()=>{le(),Q&&Q()})};Y?Y(C,le,he):he()}else s(C,h,b)},R=(d,h,b,S=!1,x=!1)=>{const{type:C,props:D,ref:O,children:P,dynamicChildren:E,shapeFlag:Z,patchFlag:N,dirs:Y,cacheIndex:Q}=d;if(N===-2&&(x=!1),O!=null&&(mt(),fn(O,null,b,d,!0),gt()),Q!=null&&(h.renderCache[Q]=void 0),Z&256){h.ctx.deactivate(d);return}const le=Z&1&&Y,he=!dn(d);let fe;if(he&&(fe=D&&D.onVnodeBeforeUnmount)&&nt(fe,h,d),Z&6)ge(d.component,b,S);else{if(Z&128){d.suspense.unmount(b,S);return}le&&Ot(d,null,h,"beforeUnmount"),Z&64?d.type.remove(d,h,b,Re,S):E&&!E.hasOnce&&(C!==ye||N>0&&N&64)?Pe(E,h,b,!1,!0):(C===ye&&N&384||!x&&Z&16)&&Pe(P,h,b),S&&j(d)}(he&&(fe=D&&D.onVnodeUnmounted)||le)&&Ae(()=>{fe&&nt(fe,h,d),le&&Ot(d,null,h,"unmounted")},b)},j=d=>{const{type:h,el:b,anchor:S,transition:x}=d;if(h===ye){re(b,S);return}if(h===bs){k(d);return}const C=()=>{o(b),x&&!x.persisted&&x.afterLeave&&x.afterLeave()};if(d.shapeFlag&1&&x&&!x.persisted){const{leave:D,delayLeave:O}=x,P=()=>D(b,C);O?O(d.el,C,P):P()}else C()},re=(d,h)=>{let b;for(;d!==h;)b=m(d),o(d),d=b;o(h)},ge=(d,h,b)=>{const{bum:S,scope:x,job:C,subTree:D,um:O,m:P,a:E}=d;Io(P),Io(E),S&&Rn(S),x.stop(),C&&(C.flags|=8,R(D,d,h,b)),O&&Ae(O,h),Ae(()=>{d.isUnmounted=!0},h)},Pe=(d,h,b,S=!1,x=!1,C=0)=>{for(let D=C;D<d.length;D++)R(d[D],h,b,S,x)},X=d=>{if(d.shapeFlag&6)return X(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const h=m(d.anchor||d.el),b=h&&h[qr];return b?m(b):h};let H=!1;const xe=(d,h,b)=>{let S;d==null?h._vnode&&(R(h._vnode,null,null,!0),S=h._vnode.component):v(h._vnode||null,d,h,null,null,null,b),h._vnode=d,H||(H=!0,bo(S),jr(),H=!1)},Re={p:v,um:R,m:Ue,r:j,mt:L,mc:V,pc:oe,pbc:G,n:X,o:e};return{render:xe,hydrate:void 0,createApp:ia(xe)}}function ys({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 It({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function xa(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function ro(e,t,n=!1){const s=e.children,o=t.children;if(J(s)&&J(o))for(let r=0;r<s.length;r++){const i=s[r];let l=o[r];l.shapeFlag&1&&!l.dynamicChildren&&((l.patchFlag<=0||l.patchFlag===32)&&(l=o[r]=Tt(o[r]),l.el=i.el),!n&&l.patchFlag!==-2&&ro(i,l)),l.type===as&&(l.patchFlag!==-1?l.el=i.el:l.__elIndex=r+(e.type===ye?1:0)),l.type===yt&&!l.el&&(l.el=i.el)}}function Ca(e){const t=e.slice(),n=[0];let s,o,r,i,l;const a=e.length;for(s=0;s<a;s++){const u=e[s];if(u!==0){if(o=n[n.length-1],e[o]<u){t[s]=o,n.push(s);continue}for(r=0,i=n.length-1;r<i;)l=r+i>>1,e[n[l]]<u?r=l+1:i=l;u<e[n[r]]&&(r>0&&(t[s]=n[r-1]),n[r]=s)}}for(r=n.length,i=n[r-1];r-- >0;)n[r]=i,i=t[i];return n}function fi(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:fi(t)}function Io(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function di(e){if(e.placeholder)return e.placeholder;const t=e.component;return t?di(t.subTree):null}const pi=e=>e.__isSuspense;function Sa(e,t){t&&t.pendingBranch?J(e)?t.effects.push(...e):t.effects.push(e):$l(e)}const ye=Symbol.for("v-fgt"),as=Symbol.for("v-txt"),yt=Symbol.for("v-cmt"),bs=Symbol.for("v-stc"),hn=[];let Fe=null;function I(e=!1){hn.push(Fe=e?null:[])}function Ea(){hn.pop(),Fe=hn[hn.length-1]||null}let wn=1;function Ro(e,t=!1){wn+=e,e<0&&Fe&&t&&(Fe.hasOnce=!0)}function hi(e){return e.dynamicChildren=wn>0?Fe||qt:null,Ea(),wn>0&&Fe&&Fe.push(e),e}function K(e,t,n,s,o,r){return hi(_(e,t,n,s,o,r,!0))}function Be(e,t,n,s,o){return hi(_e(e,t,n,s,o,!0))}function mi(e){return e?e.__v_isVNode===!0:!1}function Wt(e,t){return e.type===t.type&&e.key===t.key}const gi=({key:e})=>e??null,Dn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?we(e)||be(e)||ee(e)?{i:De,r:e,k:t,f:!!n}:e:null);function _(e,t=null,n=null,s=0,o=null,r=e===ye?0:1,i=!1,l=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&gi(t),ref:t&&Dn(t),scopeId:Ur,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:s,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:De};return l?(io(a,n),r&128&&e.normalize(a)):n&&(a.shapeFlag|=we(n)?8:16),wn>0&&!i&&Fe&&(a.patchFlag>0||r&6)&&a.patchFlag!==32&&Fe.push(a),a}const _e=Ta;function Ta(e,t=null,n=null,s=0,o=null,r=!1){if((!e||e===Jl)&&(e=yt),mi(e)){const l=Ht(e,t,!0);return n&&io(l,n),wn>0&&!r&&Fe&&(l.shapeFlag&6?Fe[Fe.indexOf(e)]=l:Fe.push(l)),l.patchFlag=-2,l}if(Fa(e)&&(e=e.__vccOpts),t){t=$a(t);let{class:l,style:a}=t;l&&!we(l)&&(t.class=We(l)),pe(a)&&(rs(a)&&!J(a)&&(a=Ce({},a)),t.style=xn(a))}const i=we(e)?1:pi(e)?128:Ol(e)?64:pe(e)?4:ee(e)?2:0;return _(e,t,n,s,o,i,r,!0)}function $a(e){return e?rs(e)||ri(e)?Ce({},e):e:null}function Ht(e,t,n=!1,s=!1){const{props:o,ref:r,patchFlag:i,children:l,transition:a}=e,u=t?ka(o||{},t):o,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&gi(u),ref:t&&t.ref?n&&r?J(r)?r.concat(Dn(t)):[r,Dn(t)]:Dn(t):r,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!==ye?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ht(e.ssContent),ssFallback:e.ssFallback&&Ht(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&s&&bn(c,a.clone(c)),c}function Ve(e=" ",t=0){return _e(as,null,e,t)}function ae(e="",t=!1){return t?(I(),Be(yt,null,e)):_e(yt,null,e)}function rt(e){return e==null||typeof e=="boolean"?_e(yt):J(e)?_e(ye,null,e.slice()):mi(e)?Tt(e):_e(as,null,String(e))}function Tt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ht(e)}function io(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(J(t))n=16;else if(typeof t=="object")if(s&65){const o=t.default;o&&(o._c&&(o._d=!1),io(e,o()),o._c&&(o._d=!0));return}else{n=32;const o=t._;!o&&!ri(t)?t._ctx=De:o===3&&De&&(De.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else ee(t)?(t={default:t,_ctx:De},n=32):(t=String(t),s&64?(n=16,t=[Ve(t)]):n=8);e.children=t,e.shapeFlag|=n}function ka(...e){const t={};for(let n=0;n<e.length;n++){const s=e[n];for(const o in s)if(o==="class")t.class!==s.class&&(t.class=We([t.class,s.class]));else if(o==="style")t.style=xn([t.style,s.style]);else if(zn(o)){const r=t[o],i=s[o];i&&r!==i&&!(J(r)&&r.includes(i))&&(t[o]=r?[].concat(r,i):i)}else o!==""&&(t[o]=s[o])}return t}function nt(e,t,n,s=null){Je(e,t,7,[n,s])}const Aa=ti();let Ma=0;function Pa(e,t,n){const s=e.type,o=(t?t.appContext:e.appContext)||Aa,r={uid:Ma++,vnode:e,type:s,parent:t,appContext:o,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new yr(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(o.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:li(s,o),emitsOptions:ni(s,o),emit:null,emitted:null,propsDefaults:de,inheritAttrs:s.inheritAttrs,ctx:de,data:de,props:de,attrs:de,slots:de,refs:de,setupState:de,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return r.ctx={_:r},r.root=t?t.root:r,r.emit=aa.bind(null,r),e.ce&&e.ce(r),r}let Se=null;const lo=()=>Se||De;let Vn,Ds;{const e=ts(),t=(n,s)=>{let o;return(o=e[n])||(o=e[n]=[]),o.push(s),r=>{o.length>1?o.forEach(i=>i(r)):o[0](r)}};Vn=t("__VUE_INSTANCE_SETTERS__",n=>Se=n),Ds=t("__VUE_SSR_SETTERS__",n=>Jt=n)}const Tn=e=>{const t=Se;return Vn(e),e.scope.on(),()=>{e.scope.off(),Vn(t)}},Lo=()=>{Se&&Se.scope.off(),Vn(null)};function vi(e){return e.vnode.shapeFlag&4}let Jt=!1;function Oa(e,t=!1,n=!1){t&&Ds(t);const{props:s,children:o}=e.vnode,r=vi(e);ha(e,s,r,t),ya(e,o,n||t);const i=r?Ia(e,t):void 0;return t&&Ds(!1),i}function Ia(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Ql);const{setup:s}=n;if(s){mt();const o=e.setupContext=s.length>1?La(e):null,r=Tn(e),i=Cn(s,e,0,[e.props,o]),l=fr(i);if(gt(),r(),(l||e.sp)&&!dn(e)&&eo(e),l){if(i.then(Lo,Lo),t)return i.then(a=>{Do(e,a)}).catch(a=>{Sn(a,e,0)});e.asyncDep=i}else Do(e,i)}else yi(e)}function Do(e,t,n){ee(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:pe(t)&&(e.setupState=Dr(t)),yi(e)}function yi(e,t,n){const s=e.type;e.render||(e.render=s.render||lt);{const o=Tn(e);mt();try{ea(e)}finally{gt(),o()}}}const Ra={get(e,t){return $e(e,"get",""),e[t]}};function La(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Ra),slots:e.slots,emit:e.emit,expose:t}}function cs(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Dr(Zs(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 Da(e,t=!0){return ee(e)?e.displayName||e.name:e.name||t&&e.__name}function Fa(e){return ee(e)&&"__vccOpts"in e}const je=(e,t)=>xl(e,t,Jt),Na="3.5.27";let Fs;const Fo=typeof window<"u"&&window.trustedTypes;if(Fo)try{Fs=Fo.createPolicy("vue",{createHTML:e=>e})}catch{}const bi=Fs?e=>Fs.createHTML(e):e=>e,ja="http://www.w3.org/2000/svg",Ha="http://www.w3.org/1998/Math/MathML",ft=typeof document<"u"?document:null,No=ft&&ft.createElement("template"),Ua={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const o=t==="svg"?ft.createElementNS(ja,e):t==="mathml"?ft.createElementNS(Ha,e):n?ft.createElement(e,{is:n}):ft.createElement(e);return e==="select"&&s&&s.multiple!=null&&o.setAttribute("multiple",s.multiple),o},createText:e=>ft.createTextNode(e),createComment:e=>ft.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ft.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,o,r){const i=n?n.previousSibling:t.lastChild;if(o&&(o===r||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===r||!(o=o.nextSibling)););else{No.innerHTML=bi(s==="svg"?`<svg>${e}</svg>`:s==="mathml"?`<math>${e}</math>`:e);const l=No.content;if(s==="svg"||s==="mathml"){const a=l.firstChild;for(;a.firstChild;)l.appendChild(a.firstChild);l.removeChild(a)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},_t="transition",tn="animation",Zt=Symbol("_vtc"),wi={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},Ka=Ce({},Ll,wi),Rt=(e,t=[])=>{J(e)?e.forEach(n=>n(...t)):e&&e(...t)},jo=e=>e?J(e)?e.some(t=>t.length>1):e.length>1:!1;function Ba(e){const t={};for(const M in e)M in wi||(t[M]=e[M]);if(e.css===!1)return t;const{name:n="v",type:s,duration:o,enterFromClass:r=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:a=r,appearActiveClass:u=i,appearToClass:c=l,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:m=`${n}-leave-active`,leaveToClass:g=`${n}-leave-to`}=e,y=Va(o),v=y&&y[0],T=y&&y[1],{onBeforeEnter:p,onEnter:w,onEnterCancelled:$,onLeave:k,onLeaveCancelled:U,onBeforeAppear:te=p,onAppear:ie=w,onAppearCancelled:V=$}=t,A=(M,F,L,z)=>{M._enterCancelled=z,xt(M,F?c:l),xt(M,F?u:i),L&&L()},G=(M,F)=>{M._isLeaving=!1,xt(M,f),xt(M,g),xt(M,m),F&&F()},ne=M=>(F,L)=>{const z=M?ie:w,q=()=>A(F,M,L);Rt(z,[F,q]),Ho(()=>{xt(F,M?a:r),st(F,M?c:l),jo(z)||Uo(F,s,v,q)})};return Ce(t,{onBeforeEnter(M){Rt(p,[M]),st(M,r),st(M,i)},onBeforeAppear(M){Rt(te,[M]),st(M,a),st(M,u)},onEnter:ne(!1),onAppear:ne(!0),onLeave(M,F){M._isLeaving=!0;const L=()=>G(M,F);st(M,f),M._enterCancelled?(st(M,m),Ns(M)):(Ns(M),st(M,m)),Ho(()=>{M._isLeaving&&(xt(M,f),st(M,g),jo(k)||Uo(M,s,T,L))}),Rt(k,[M,L])},onEnterCancelled(M){A(M,!1,void 0,!0),Rt($,[M])},onAppearCancelled(M){A(M,!0,void 0,!0),Rt(V,[M])},onLeaveCancelled(M){G(M),Rt(U,[M])}})}function Va(e){if(e==null)return null;if(pe(e))return[ws(e.enter),ws(e.leave)];{const t=ws(e);return[t,t]}}function ws(e){return ji(e)}function st(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Zt]||(e[Zt]=new Set)).add(t)}function xt(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const n=e[Zt];n&&(n.delete(t),n.size||(e[Zt]=void 0))}function Ho(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Wa=0;function Uo(e,t,n,s){const o=e._endId=++Wa,r=()=>{o===e._endId&&s()};if(n!=null)return setTimeout(r,n);const{type:i,timeout:l,propCount:a}=_i(e,t);if(!i)return s();const u=i+"end";let c=0;const f=()=>{e.removeEventListener(u,m),r()},m=g=>{g.target===e&&++c>=a&&f()};setTimeout(()=>{c<a&&f()},l+1),e.addEventListener(u,m)}function _i(e,t){const n=window.getComputedStyle(e),s=y=>(n[y]||"").split(", "),o=s(`${_t}Delay`),r=s(`${_t}Duration`),i=Ko(o,r),l=s(`${tn}Delay`),a=s(`${tn}Duration`),u=Ko(l,a);let c=null,f=0,m=0;t===_t?i>0&&(c=_t,f=i,m=r.length):t===tn?u>0&&(c=tn,f=u,m=a.length):(f=Math.max(i,u),c=f>0?i>u?_t:tn:null,m=c?c===_t?r.length:a.length:0);const g=c===_t&&/\b(?:transform|all)(?:,|$)/.test(s(`${_t}Property`).toString());return{type:c,timeout:f,propCount:m,hasTransform:g}}function Ko(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((n,s)=>Bo(n)+Bo(e[s])))}function Bo(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Ns(e){return(e?e.ownerDocument:document).body.offsetHeight}function qa(e,t,n){const s=e[Zt];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Wn=Symbol("_vod"),xi=Symbol("_vsh"),rn={name:"show",beforeMount(e,{value:t},{transition:n}){e[Wn]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):nn(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:s}){!t!=!n&&(s?t?(s.beforeEnter(e),nn(e,!0),s.enter(e)):s.leave(e,()=>{nn(e,!1)}):nn(e,t))},beforeUnmount(e,{value:t}){nn(e,t)}};function nn(e,t){e.style.display=t?e[Wn]:"none",e[xi]=!t}const Ga=Symbol(""),Ya=/(?:^|;)\s*display\s*:/;function za(e,t,n){const s=e.style,o=we(n);let r=!1;if(n&&!o){if(t)if(we(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&Fn(s,l,"")}else for(const i in t)n[i]==null&&Fn(s,i,"");for(const i in n)i==="display"&&(r=!0),Fn(s,i,n[i])}else if(o){if(t!==n){const i=s[Ga];i&&(n+=";"+i),s.cssText=n,r=Ya.test(n)}}else t&&e.removeAttribute("style");Wn in e&&(e[Wn]=r?s.display:"",e[xi]&&(s.display="none"))}const Vo=/\s*!important$/;function Fn(e,t,n){if(J(n))n.forEach(s=>Fn(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=Xa(e,t);Vo.test(n)?e.setProperty(At(s),n.replace(Vo,""),"important"):e[s]=n}}const Wo=["Webkit","Moz","ms"],_s={};function Xa(e,t){const n=_s[t];if(n)return n;let s=qe(t);if(s!=="filter"&&s in e)return _s[t]=s;s=Qn(s);for(let o=0;o<Wo.length;o++){const r=Wo[o]+s;if(r in e)return _s[t]=r}return t}const qo="http://www.w3.org/1999/xlink";function Go(e,t,n,s,o,r=Wi(t)){s&&t.startsWith("xlink:")?n==null?e.removeAttributeNS(qo,t.slice(6,t.length)):e.setAttributeNS(qo,t,n):n==null||r&&!mr(n)?e.removeAttribute(t):e.setAttribute(t,r?"":at(n)?String(n):n)}function Yo(e,t,n,s,o){if(t==="innerHTML"||t==="textContent"){n!=null&&(e[t]=t==="innerHTML"?bi(n):n);return}const r=e.tagName;if(t==="value"&&r!=="PROGRESS"&&!r.includes("-")){const l=r==="OPTION"?e.getAttribute("value")||"":e.value,a=n==null?e.type==="checkbox"?"on":"":String(n);(l!==a||!("_value"in e))&&(e.value=a),n==null&&e.removeAttribute(t),e._value=n;return}let i=!1;if(n===""||n==null){const l=typeof e[t];l==="boolean"?n=mr(n):n==null&&l==="string"?(n="",i=!0):l==="number"&&(n=0,i=!0)}try{e[t]=n}catch{}i&&e.removeAttribute(o||t)}function Ft(e,t,n,s){e.addEventListener(t,n,s)}function Ja(e,t,n,s){e.removeEventListener(t,n,s)}const zo=Symbol("_vei");function Za(e,t,n,s,o=null){const r=e[zo]||(e[zo]={}),i=r[t];if(s&&i)i.value=s;else{const[l,a]=Qa(t);if(s){const u=r[t]=nc(s,o);Ft(e,l,u,a)}else i&&(Ja(e,l,i,a),r[t]=void 0)}}const Xo=/(?:Once|Passive|Capture)$/;function Qa(e){let t;if(Xo.test(e)){t={};let s;for(;s=e.match(Xo);)e=e.slice(0,e.length-s[0].length),t[s[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):At(e.slice(2)),t]}let xs=0;const ec=Promise.resolve(),tc=()=>xs||(ec.then(()=>xs=0),xs=Date.now());function nc(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;Je(sc(s,n.value),t,5,[s])};return n.value=e,n.attached=tc(),n}function sc(e,t){if(J(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>o=>!o._stopped&&s&&s(o))}else return t}const Jo=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,oc=(e,t,n,s,o,r)=>{const i=o==="svg";t==="class"?qa(e,s,i):t==="style"?za(e,n,s):zn(t)?Vs(t)||Za(e,t,n,s,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):rc(e,t,s,i))?(Yo(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Go(e,t,s,i,r,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!we(s))?Yo(e,qe(t),s,r,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),Go(e,t,s,i))};function rc(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&Jo(t)&&ee(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const o=e.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return Jo(t)&&we(n)?!1:t in e}const Ci=new WeakMap,Si=new WeakMap,qn=Symbol("_moveCb"),Zo=Symbol("_enterCb"),ic=e=>(delete e.props.mode,e),lc=ic({name:"TransitionGroup",props:Ce({},Ka,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=lo(),s=Rl();let o,r;return Zr(()=>{if(!o.length)return;const i=e.moveClass||`${e.name||"v"}-move`;if(!dc(o[0].el,n.vnode.el,i)){o=[];return}o.forEach(cc),o.forEach(uc);const l=o.filter(fc);Ns(n.vnode.el),l.forEach(a=>{const u=a.el,c=u.style;st(u,i),c.transform=c.webkitTransform=c.transitionDuration="";const f=u[qn]=m=>{m&&m.target!==u||(!m||m.propertyName.endsWith("transform"))&&(u.removeEventListener("transitionend",f),u[qn]=null,xt(u,i))};u.addEventListener("transitionend",f)}),o=[]}),()=>{const i=ce(e),l=Ba(i);let a=i.tag||ye;if(o=[],r)for(let u=0;u<r.length;u++){const c=r[u];c.el&&c.el instanceof Element&&(o.push(c),bn(c,Ps(c,l,s,n)),Ci.set(c,{left:c.el.offsetLeft,top:c.el.offsetTop}))}r=t.default?Xr(t.default()):[];for(let u=0;u<r.length;u++){const c=r[u];c.key!=null&&bn(c,Ps(c,l,s,n))}return _e(a,null,r)}}}),ac=lc;function cc(e){const t=e.el;t[qn]&&t[qn](),t[Zo]&&t[Zo]()}function uc(e){Si.set(e,{left:e.el.offsetLeft,top:e.el.offsetTop})}function fc(e){const t=Ci.get(e),n=Si.get(e),s=t.left-n.left,o=t.top-n.top;if(s||o){const r=e.el.style;return r.transform=r.webkitTransform=`translate(${s}px,${o}px)`,r.transitionDuration="0s",e}}function dc(e,t,n){const s=e.cloneNode(),o=e[Zt];o&&o.forEach(l=>{l.split(/\s+/).forEach(a=>a&&s.classList.remove(a))}),n.split(/\s+/).forEach(l=>l&&s.classList.add(l)),s.style.display="none";const r=t.nodeType===1?t:t.parentNode;r.appendChild(s);const{hasTransform:i}=_i(s);return r.removeChild(s),i}const Gn=e=>{const t=e.props["onUpdate:modelValue"]||!1;return J(t)?n=>Rn(t,n):t};function pc(e){e.target.composing=!0}function Qo(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const zt=Symbol("_assign");function er(e,t,n){return t&&(e=e.trim()),n&&(e=es(e)),e}const us={created(e,{modifiers:{lazy:t,trim:n,number:s}},o){e[zt]=Gn(o);const r=s||o.props&&o.props.type==="number";Ft(e,t?"change":"input",i=>{i.target.composing||e[zt](er(e.value,n,r))}),(n||r)&&Ft(e,"change",()=>{e.value=er(e.value,n,r)}),t||(Ft(e,"compositionstart",pc),Ft(e,"compositionend",Qo),Ft(e,"change",Qo))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:s,trim:o,number:r}},i){if(e[zt]=Gn(i),e.composing)return;const l=(r||e.type==="number")&&!/^0\d/.test(e.value)?es(e.value):e.value,a=t??"";l!==a&&(document.activeElement===e&&e.type!=="range"&&(s&&t===n||o&&e.value.trim()===a)||(e.value=a))}},hc={deep:!0,created(e,{value:t,modifiers:{number:n}},s){const o=Xn(t);Ft(e,"change",()=>{const r=Array.prototype.filter.call(e.options,i=>i.selected).map(i=>n?es(Yn(i)):Yn(i));e[zt](e.multiple?o?new Set(r):r:r[0]),e._assigning=!0,Mt(()=>{e._assigning=!1})}),e[zt]=Gn(s)},mounted(e,{value:t}){tr(e,t)},beforeUpdate(e,t,n){e[zt]=Gn(n)},updated(e,{value:t}){e._assigning||tr(e,t)}};function tr(e,t){const n=e.multiple,s=J(t);if(!(n&&!s&&!Xn(t))){for(let o=0,r=e.options.length;o<r;o++){const i=e.options[o],l=Yn(i);if(n)if(s){const a=typeof l;a==="string"||a==="number"?i.selected=t.some(u=>String(u)===String(l)):i.selected=Gi(t,l)>-1}else i.selected=t.has(l);else if(ns(Yn(i),t)){e.selectedIndex!==o&&(e.selectedIndex=o);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Yn(e){return"_value"in e?e._value:e.value}const mc=["ctrl","shift","alt","meta"],gc={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)=>mc.some(n=>e[`${n}Key`]&&!t.includes(n))},Ee=(e,t)=>{const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=((o,...r)=>{for(let i=0;i<t.length;i++){const l=gc[t[i]];if(l&&l(o,t))return}return e(o,...r)}))},vc={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},js=(e,t)=>{const n=e._withKeys||(e._withKeys={}),s=t.join(".");return n[s]||(n[s]=(o=>{if(!("key"in o))return;const r=At(o.key);if(t.some(i=>i===r||vc[i]===r))return e(o)}))},yc=Ce({patchProp:oc},Ua);let nr;function bc(){return nr||(nr=wa(yc))}const wc=((...e)=>{const t=bc().createApp(...e),{mount:n}=t;return t.mount=s=>{const o=xc(s);if(!o)return;const r=t._component;!ee(r)&&!r.render&&!r.template&&(r.template=o.innerHTML),o.nodeType===1&&(o.textContent="");const i=n(o,!1,_c(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),i},t});function _c(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function xc(e){return we(e)?document.querySelector(e):e}let Ei;const fs=e=>Ei=e,Ti=Symbol();function Hs(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var mn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(mn||(mn={}));function Cc(){const e=br(!0),t=e.run(()=>B({}));let n=[],s=[];const o=Zs({install(r){fs(o),o._a=r,r.provide(Ti,o),r.config.globalProperties.$pinia=o,s.forEach(i=>n.push(i)),s=[]},use(r){return this._a?n.push(r):s.push(r),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return o}const $i=()=>{};function sr(e,t,n,s=$i){e.add(t);const o=()=>{e.delete(t)&&s()};return!n&&wr()&&Yi(o),o}function Bt(e,...t){e.forEach(n=>{n(...t)})}const Sc=e=>e(),or=Symbol(),Cs=Symbol();function Us(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,s)=>e.set(s,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const s=t[n],o=e[n];Hs(o)&&Hs(s)&&e.hasOwnProperty(n)&&!be(s)&&!ht(s)?e[n]=Us(o,s):e[n]=s}return e}const Ec=Symbol();function Tc(e){return!Hs(e)||!Object.prototype.hasOwnProperty.call(e,Ec)}const{assign:Ct}=Object;function $c(e){return!!(be(e)&&e.effect)}function kc(e,t,n,s){const{state:o,actions:r,getters:i}=t,l=n.state.value[e];let a;function u(){l||(n.state.value[e]=o?o():{});const c=yl(n.state.value[e]);return Ct(c,r,Object.keys(i||{}).reduce((f,m)=>(f[m]=Zs(je(()=>{fs(n);const g=n._s.get(e);return i[m].call(g,g)})),f),{}))}return a=ki(e,u,t,n,s,!0),a}function ki(e,t,n={},s,o,r){let i;const l=Ct({actions:{}},n),a={deep:!0};let u,c,f=new Set,m=new Set,g;const y=s.state.value[e];!r&&!y&&(s.state.value[e]={});let v;function T(V){let A;u=c=!1,typeof V=="function"?(V(s.state.value[e]),A={type:mn.patchFunction,storeId:e,events:g}):(Us(s.state.value[e],V),A={type:mn.patchObject,payload:V,storeId:e,events:g});const G=v=Symbol();Mt().then(()=>{v===G&&(u=!0)}),c=!0,Bt(f,A,s.state.value[e])}const p=r?function(){const{state:A}=n,G=A?A():{};this.$patch(ne=>{Ct(ne,G)})}:$i;function w(){i.stop(),f.clear(),m.clear(),s._s.delete(e)}const $=(V,A="")=>{if(or in V)return V[Cs]=A,V;const G=function(){fs(s);const ne=Array.from(arguments),M=new Set,F=new Set;function L(W){M.add(W)}function z(W){F.add(W)}Bt(m,{args:ne,name:G[Cs],store:U,after:L,onError:z});let q;try{q=V.apply(this&&this.$id===e?this:U,ne)}catch(W){throw Bt(F,W),W}return q instanceof Promise?q.then(W=>(Bt(M,W),W)).catch(W=>(Bt(F,W),Promise.reject(W))):(Bt(M,q),q)};return G[or]=!0,G[Cs]=A,G},k={_p:s,$id:e,$onAction:sr.bind(null,m),$patch:T,$reset:p,$subscribe(V,A={}){const G=sr(f,V,A.detached,()=>ne()),ne=i.run(()=>ze(()=>s.state.value[e],M=>{(A.flush==="sync"?c:u)&&V({storeId:e,type:mn.direct,events:g},M)},Ct({},a,A)));return G},$dispose:w},U=os(k);s._s.set(e,U);const ie=(s._a&&s._a.runWithContext||Sc)(()=>s._e.run(()=>(i=br()).run(()=>t({action:$}))));for(const V in ie){const A=ie[V];if(be(A)&&!$c(A)||ht(A))r||(y&&Tc(A)&&(be(A)?A.value=y[V]:Us(A,y[V])),s.state.value[e][V]=A);else if(typeof A=="function"){const G=$(A,V);ie[V]=G,l.actions[V]=A}}return Ct(U,ie),Ct(ce(U),ie),Object.defineProperty(U,"$state",{get:()=>s.state.value[e],set:V=>{T(A=>{Ct(A,V)})}}),s._p.forEach(V=>{Ct(U,i.run(()=>V({store:U,app:s._a,pinia:s,options:l})))}),y&&r&&n.hydrate&&n.hydrate(U.$state,y),u=!0,c=!0,U}function Ac(e,t,n){let s;const o=typeof t=="function";s=o?n:t;function r(i,l){const a=kl();return i=i||(a?kt(Ti,null):null),i&&fs(i),i=Ei,i._s.has(e)||(o?ki(e,t,s,i):kc(e,s,i)),i._s.get(e)}return r.$id=e,r}const Pt=Ac("sessions",()=>{const e=B([]),t=je(()=>[...e.value].sort((F,L)=>{if(!F.alias)return L.alias?1:0;if(!L.alias)return-1;const z=F.alias.toLowerCase(),q=L.alias.toLowerCase();return z<q?-1:z>q?1:0})),n=B([]),s=B(null),o=B(!1),r=B(!1),i=B(""),l=B(0);let a=null,u=null,c=1e3;async function f(F,L={}){const z=await fetch(F,L);if(z.status===401&&(r.value=!1),!z.ok){const q=await z.json().catch(()=>({}));throw Object.assign(new Error(q.error||`Request failed (${z.status})`),{status:z.status})}return z}async function m(F,L=!1){const q=await(await f(`/api/sessions/${encodeURIComponent(F)}/root`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repin:L})})).json(),W=e.value.find(oe=>oe.name===F);return W&&(W.root=q.root),q.root}function g(){l.value++}async function y(){try{const L=await(await fetch("/api/auth/status")).json();i.value=typeof L.instance?.name=="string"?L.instance.name:"",o.value=!!L.authRequired,r.value=!!L.authenticated}catch{r.value=!1}return r.value}async function v(F){const L=await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({password:F})});if(!L.ok){const z=await L.json().catch(()=>({}));throw new Error(z.error||"Login failed")}r.value=!0}async function T(){try{await fetch("/api/auth/logout",{method:"POST"})}catch{}r.value=!1,e.value=[],s.value=null,a&&(a.onclose=null,a.close(),a=null)}async function p(){const F=await fetch("/api/sessions");if(F.status===401){r.value=!1;return}const L=await F.json();e.value=L.sessions}async function w(){const L=await(await fetch("/api/sessions/shells")).json();n.value=L.shells}async function $(F,L){const z=await fetch("/api/sessions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:F,shell:L})});if(!z.ok){const W=await z.json();throw new Error(W.error)}const q=await z.json();s.value=q.name,await p()}async function k(F){const L=await fetch(`/api/sessions/${F}/stop`,{method:"POST"});if(!L.ok){const z=await L.json();throw new Error(z.error)}await p()}async function U(F){const L=await fetch(`/api/sessions/${F}/restart`,{method:"POST"});if(!L.ok){const z=await L.json();throw new Error(z.error)}await p()}async function te(F,L){const z=await fetch(`/api/sessions/${F}/alias`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({alias:L})});if(!z.ok){const q=await z.json();throw new Error(q.error)}await p()}async function ie(F){const L=await fetch(`/api/sessions/${F}`,{method:"DELETE"});if(!L.ok){const z=await L.json();throw new Error(z.error)}s.value===F&&(s.value=null),await p()}function V(F){s.value=F}function A(){a&&(a.onclose=null,a.close());const F=location.protocol==="https:"?"wss":"ws";a=new WebSocket(`${F}://${location.host}/ws`),a.onmessage=L=>{let z=null,q=null;try{({event:z,data:q}=JSON.parse(L.data))}catch{}if(z==="session:title"&&q&&q.name){const W=e.value.find(oe=>oe.name===q.name);if(W){W.title=q.title,W.command=q.command,W.outputActive=!!q.outputActive;return}}if(z==="session:root"&&q?.name){const W=e.value.find(oe=>oe.name===q.name);W&&(W.root=q.root);return}p()},a.onopen=()=>{c=1e3,p()},a.onclose=()=>{G()}}function G(){u||(u=setTimeout(()=>{u=null,A(),c=Math.min(c*2,3e4)},c))}function ne(){p(),w(),A()}async function M({command:F,name:L}){return $(L||null,F||null)}return{sessions:e,sortedSessions:t,shells:n,current:s,authRequired:o,authenticated:r,instanceName:i,fileRevision:l,apiRequest:f,pinRoot:m,refreshFiles:g,init:ne,checkAuth:y,login:v,logout:T,fetchSessions:p,createSession:$,create:M,stopSession:k,restartSession:U,setAlias:te,removeSession:ie,select:V}}),Ge=(e,t)=>{const n=e.__vccOpts||e;for(const[s,o]of t)n[s]=o;return n},Mc=["title"],Pc={class:"card-content"},Oc={class:"card-top"},Ic=["onKeydown"],Rc={class:"session-name"},Lc={key:0,class:"alias-text"},Dc={key:1,class:"real-name"},Fc={key:2},Nc={key:0,class:"confirm-bar"},jc={key:1,class:"session-info"},Hc=["title"],Uc={class:"status-text"},Kc={__name:"SessionCard",props:{session:Object,active:Boolean,collapsed:Boolean},setup(e){const t=e,n=Pt(),s=kt("toast"),o=B(!1),r=B(!1),i=B(""),l=B(null),a=je(()=>{const p=t.session.alias?`${t.session.alias} (${t.session.name})`:t.session.name;return t.session.pid?`${p} · PID ${t.session.pid}`:p}),u=je(()=>t.session.title||t.session.command||"");function c(p,w="info"){s?.value?.show(p,w)}function f(p,w){p.stopPropagation(),o.value=!0}async function m(p,w){p.stopPropagation();try{await n.removeSession(w)}catch($){console.error($)}o.value=!1}function g(p){p.stopPropagation(),o.value=!1}function y(p){p.stopPropagation(),i.value=t.session.alias||"",r.value=!0,Mt(()=>l.value?.focus())}async function v(p){if(p&&p.stopPropagation(),!!r.value){r.value=!1;try{await n.setAlias(t.session.name,i.value.trim())}catch(w){c(w.message||"Failed to set alias","error")}}}function T(p){p.stopPropagation(),r.value=!1}return(p,w)=>(I(),K("div",{class:We(["session-card",{active:e.active,collapsed:e.collapsed}]),title:a.value},[_("div",{class:We(["status-indicator",[e.session.status,{"output-active":e.session.status==="running"&&e.session.outputActive}]])},null,2),it(_("div",Pc,[_("div",Oc,[r.value?it((I(),K("input",{key:0,ref_key:"aliasInput",ref:l,"onUpdate:modelValue":w[0]||(w[0]=$=>i.value=$),class:"alias-input",type:"text",maxlength:"100",placeholder:"Alias (Enter to save, Esc to cancel)",onClick:w[1]||(w[1]=Ee(()=>{},["stop"])),onKeydown:[w[2]||(w[2]=Ee(()=>{},["stop"])),w[3]||(w[3]=js(Ee($=>v($),["prevent"]),["enter"])),js(Ee(T,["prevent"]),["esc"])],onBlur:v},null,40,Ic)),[[us,i.value]]):(I(),K(ye,{key:1},[_("div",Rc,[e.session.alias?(I(),K("span",Lc,se(e.session.alias),1)):ae("",!0),e.session.alias?(I(),K("span",Dc,se(e.session.name),1)):(I(),K("span",Fc,se(e.session.name),1))]),o.value?ae("",!0):(I(),K("button",{key:0,class:"close-btn",title:"Set alias",onClick:w[4]||(w[4]=$=>y($))},[...w[8]||(w[8]=[_("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[_("path",{d:"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"})],-1)])])),o.value?ae("",!0):(I(),K("button",{key:1,class:"close-btn",title:"Delete session",onClick:w[5]||(w[5]=$=>f($,e.session.name))},[...w[9]||(w[9]=[_("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[_("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),_("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])]))],64))]),o.value?(I(),K("div",Nc,[w[10]||(w[10]=_("span",{class:"confirm-text"},"Delete?",-1)),_("button",{class:"confirm-yes",onClick:w[6]||(w[6]=$=>m($,e.session.name))},"Yes"),_("button",{class:"confirm-no",onClick:w[7]||(w[7]=$=>g($))},"No")])):(I(),K("div",jc,[_("span",{class:"pane-title",title:u.value},se(u.value),9,Hc),_("span",Uc,se(e.session.status),1)]))],512),[[rn,!e.collapsed]])],10,Mc))}},Bc=Ge(Kc,[["__scopeId","data-v-0e38e5ff"]]),Vc="modulepreload",Wc=function(e){return"/"+e},rr={},ao=function(t,n,s){let o=Promise.resolve();if(n&&n.length>0){let a=function(u){return Promise.all(u.map(c=>Promise.resolve(c).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");o=a(n.map(u=>{if(u=Wc(u),u in rr)return;rr[u]=!0;const c=u.endsWith(".css"),f=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const m=document.createElement("link");if(m.rel=c?"stylesheet":Vc,c||(m.as="script"),m.crossOrigin="",m.href=u,l&&m.setAttribute("nonce",l),document.head.appendChild(m),c)return new Promise((g,y)=>{m.addEventListener("load",g),m.addEventListener("error",()=>y(new Error(`Unable to preload CSS for ${u}`)))})}))}function r(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return o.then(i=>{for(const l of i||[])l.status==="rejected"&&r(l.reason);return t().catch(r)})},Ss="https://acli-preview.invalid",ir=e=>e.split("/").map(encodeURIComponent).join("/");function lr(e){const t=[];for(const n of e.split("/"))!n||n==="."||(n===".."?t.pop():t.push(n));return`/${t.join("/")}`}function ar(e,t,n){if(typeof e!="string"||e.length>8192||/[\u0000-\u001f\u007f\\]/.test(e))throw new Error("不支持的链接地址");if(e=e.trim(),/^(?:https?:)?\/\//i.test(e)){const u=new URL(e,Ss);if(!["http:","https:"].includes(u.protocol))throw new Error("不支持的链接协议");return{kind:"external",url:u.href}}if(/^[a-z][a-z\d+.-]*:/i.test(e))throw new Error("只支持项目内文件和 HTTP/HTTPS 链接");if(!t?.startsWith("/")||!n?.startsWith("/"))throw new Error("当前文档没有有效的项目目录");const s=lr(n),o=`${Ss}${ir(t)}`,r=e.startsWith("/")?`${ir(s).replace(/\/$/,"")}${e}`:e;let i,l,a;try{i=new URL(r,o),l=lr(decodeURIComponent(i.pathname)),a=decodeURIComponent(i.hash.slice(1))}catch{throw new Error("链接包含无效的路径编码")}if(i.origin!==Ss||/[\u0000-\u001f\u007f\\]/.test(l))throw new Error("不支持的链接地址");if(s!=="/"&&l!==s&&!l.startsWith(`${s}/`))throw new Error("链接超出了当前项目目录");return{kind:"file",path:l,hash:a}}function qc(e){return e.normalize("NFC").trim().toLowerCase().replace(/[^\p{L}\p{N}\p{M}_\s-]/gu,"").replace(/\s/g,"-")||"section"}function Gc(e){return`<script>(()=>{
|
|
3
|
-
const token=${JSON.stringify(e).replace(/</g,"\\u003c")};
|
|
4
|
-
const position=()=>({left:window.scrollX,top:window.scrollY});
|
|
5
|
-
const scroll=hash=>{const target=document.getElementById(hash)||Array.from(document.getElementsByName(hash))[0];if(target)target.scrollIntoView({behavior:'instant'});else if(!hash)window.scrollTo({left:0,top:0,behavior:'instant'})};
|
|
6
|
-
document.addEventListener('click',event=>{const link=event.target instanceof Element?event.target.closest('a[href]'):null;if(!event.isTrusted||!link)return;event.preventDefault();event.stopImmediatePropagation();const href=link.getAttribute('href');if(href.startsWith('#')){try{scroll(decodeURIComponent(href.slice(1)))}catch{};return}parent.postMessage({type:'acli-preview-link',token,href,scroll:position()},'*')},true);
|
|
7
|
-
window.addEventListener('message',event=>{const data=event.data;if(event.source!==parent||data?.type!=='acli-preview-scroll'||data.token!==token)return;if(Number.isFinite(data.left)&&Number.isFinite(data.top))window.scrollTo({left:data.left,top:data.top,behavior:'instant'});else if(typeof data.hash==='string'&&data.hash.length<=8192)scroll(data.hash)});
|
|
8
|
-
})()<\/script>`}function co(e,t){return`${e.replace(/\/$/,"")}/${t}`}function Ai(e,t=!1,n=null){return`/api/files/content?${new URLSearchParams({path:e,...t?{download:"1"}:{},...n?{root:n}:{}})}`}function Mi(e){return e.includes(".")?e.split(".").pop().toLowerCase():""}function dd(e){const t=Mi(e);return["png","jpg","jpeg","gif","webp","svg","bmp","ico","avif","heic","heif"].includes(t)?"image":["mp3","wav","ogg","m4a","aac","flac","opus"].includes(t)?"audio":["mp4","webm","mov","m4v","ogv"].includes(t)?"video":t==="pdf"?"pdf":["md","markdown"].includes(t)?"markdown":["html","htm","xhtml"].includes(t)?"html":t==="docx"?"docx":["csv","tsv"].includes(t)?"table":["zip","gz","bz2","xz","7z","rar","tar","woff","woff2","ttf","exe","dll","so","dylib","db","sqlite","sqlite3","doc","xls","xlsx","ppt","pptx","wasm","bin"].includes(t)?"unsupported":"text"}function Yc(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KiB`:`${(e/(1024*1024)).toFixed(1)} MiB`}async function pd(e,t){const{default:n}=await ao(async()=>{const{default:o}=await import("./papaparse.min-DBcLlWLv.js").then(r=>r.p);return{default:o}},__vite__mapDeps([0,1])),s=n.parse(e,{delimiter:Mi(t)==="tsv"?" ":",",skipEmptyLines:"greedy"});return s.errors.length?null:s.data}async function hd(e,t=null){const{default:n}=await ao(async()=>{const{default:i}=await import("./markdown-it-CnX5h4q1.js");return{default:i}},[]),s=new n({html:!1,linkify:!0}),o=new Set;s.renderer.rules.heading_open=(i,l,a,u,c)=>{const f=i[l+1],m=f.children?.filter(T=>["text","code_inline","emoji"].includes(T.type)).map(T=>T.content).join("")||f.content,g=qc(m);let y=g,v=0;for(;o.has(y);)y=`${g}-${++v}`;return o.add(y),i[l].attrSet("id",y),c.renderToken(i,l,a)},s.renderer.rules.link_open=(i,l,a,u,c)=>{const f=i[l],m=f.attrGet("href")||"";if(t){f.attrSet("data-preview-href",m);try{const g=ar(m,t.path,t.root);f.attrSet("href",g.kind==="external"?g.url:"#")}catch{f.attrSet("href","#")}}return/^https?:\/\//i.test(f.attrGet("href"))&&(f.attrSet("target","_blank"),f.attrSet("rel","noopener noreferrer")),c.renderToken(i,l,a)};const r=s.renderer.rules.image;return s.renderer.rules.image=(i,l,a,u,c)=>{const f=i[l];if(t)try{const m=ar(f.attrGet("src")||"",t.path,t.root);f.attrSet("src",m.kind==="external"?m.url:Ai(m.path,!1,t.root))}catch{f.attrSet("src",""),f.attrSet("title","图片路径无效或超出当前项目目录")}return f.attrSet("referrerpolicy","no-referrer"),r(i,l,a,u,c)},s.render(e)}function md(e,{linkToken:t}={}){return`<!doctype html><html><head><meta charset="utf-8"><meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'unsafe-inline'; style-src 'unsafe-inline'; img-src data: blob:; font-src data:; media-src data: blob:; base-uri 'none'; form-action 'none'"><meta name="referrer" content="no-referrer">${t?Gc(t):""}<style>body{font:15px/1.6 system-ui,sans-serif;padding:20px;overflow-wrap:anywhere}img{max-width:100%}table{border-collapse:collapse}td,th{border:1px solid #ccc;padding:6px}</style></head><body>${e}</body></html>`}const Es=Object.freeze({M:"已修改",A:"已新增(已暂存)",U:"未跟踪的新文件",D:"已删除",R:"已重命名",C:"存在合并冲突"});function Pi(e,t,n=[]){const s=`${t.replace(/\/$/,"")}/`,o=new Map(e.map(i=>[i.path,{...i}])),r=new Map(n.map(i=>[i.path,i]));for(const i of n){if(!i.deleted||!i.path.startsWith(s))continue;const l=i.path.slice(s.length).split("/"),a=`${s}${l[0]}`;o.has(a)||o.set(a,{name:l[0],path:a,type:l.length>1?"directory":"file",size:0,mtime:null,virtual:!0,deleted:!0})}return[...o.values()].map(i=>{const l=r.get(i.path);return{...i,...l?.deleted?{virtual:!0,deleted:!0}:{},gitChange:l,gitStatus:l?.status,hasGitChanges:i.type==="directory"&&n.some(a=>a.path.startsWith(`${i.path}/`))}}).sort((i,l)=>(l.type==="directory")-(i.type==="directory")||i.name.localeCompare(l.name,void 0,{numeric:!0}))}function gd(e){let t=0,n=0,s=!1;const o=e.split(`
|
|
9
|
-
`);return o.at(-1)===""&&o.pop(),o.map(r=>{const i=/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/.exec(r);return i?(t=Number(i[1]),n=Number(i[2]),s=!0,{type:"hunk",text:r}):((r.startsWith("diff --git ")||r.startsWith("diff --no-index "))&&(s=!1),s&&r.startsWith("+")?{type:"add",sign:"+",text:r.slice(1),newLine:n++}:s&&r.startsWith("-")?{type:"delete",sign:"−",text:r.slice(1),oldLine:t++}:s&&r.startsWith(" ")?{type:"context",sign:" ",text:r.slice(1),oldLine:t++,newLine:n++}:{type:"meta",text:r})})}const zc={role:"none"},Xc=["aria-expanded","aria-label","title"],Jc={class:"chevron","aria-hidden":"true"},Zc={class:"file-icon","aria-hidden":"true"},Qc=["title"],eu={key:1,class:"git-dot",title:"包含 Git 改动","aria-hidden":"true"},tu=["aria-label"],nu={key:0,role:"group",class:"tree-children"},su={key:0,role:"none",class:"tree-status"},ou={key:1,role:"none",class:"tree-status error"},ru={key:2,role:"none",class:"tree-status"},iu={__name:"FileTreeItem",props:{entry:{type:Object,required:!0},changes:{type:Array,default:()=>[]}},emits:["preview","menu","operation"],setup(e,{emit:t}){const n=e,s=t,o=Pt(),r=B(!1),i=B([]),l=B(!1),a=B(""),u=B(null),c=je(()=>Pi(i.value,n.entry.path,n.changes)),f=je(()=>{const p=n.entry;return p.virtual?`${p.path}
|
|
10
|
-
已从工作区删除,可查看 Git Diff`:`${p.path}
|
|
11
|
-
${Yc(p.size)} · ${new Date(p.mtime).toLocaleString()}${p.type==="symlink"?`
|
|
12
|
-
Symbolic link — target is not followed`:""}${p.gitStatus?`
|
|
13
|
-
Git:${Es[p.gitStatus]}`:""}${p.gitChange?.originalPath?`
|
|
14
|
-
原路径:${p.gitChange.originalPath}`:""}`});let m=null;async function g(){if(m?.abort(),n.entry.virtual){i.value=[],l.value=!1,a.value="";return}const p=new AbortController;m=p,l.value=!0,a.value="";try{const $=await(await o.apiRequest(`/api/files?${new URLSearchParams({path:n.entry.path})}`,{signal:p.signal})).json();p.signal.aborted||(i.value=$.entries)}catch(w){p.signal.aborted||(a.value=w.message)}finally{p.signal.aborted||(l.value=!1)}}async function y(){n.entry.type==="directory"?(r.value=!r.value,r.value&&await g()):n.entry.type==="file"&&s("preview",n.entry)}function v(p){if(p.preventDefault(),n.entry.virtual)return;const w=u.value.getBoundingClientRect();s("menu",{entry:n.entry,x:p.clientX||w.left,y:p.clientY||w.bottom,trigger:u.value})}async function T(p){if(p.target!==u.value)return;const w=[...u.value.closest('[role="tree"]').querySelectorAll("[data-tree-row]")],$=w.indexOf(u.value);["ArrowDown","ArrowUp","Home","End"].includes(p.key)?(p.preventDefault(),w[p.key==="Home"?0:p.key==="End"?w.length-1:Math.max(0,Math.min(w.length-1,$+(p.key==="ArrowDown"?1:-1)))]?.focus()):p.key==="ArrowRight"&&n.entry.type==="directory"?(p.preventDefault(),r.value?(await Mt(),u.value.parentElement.querySelector('[role="group"] [data-tree-row]')?.focus()):await y()):p.key==="ArrowLeft"?(p.preventDefault(),r.value?r.value=!1:u.value.parentElement.parentElement.closest("li")?.querySelector("[data-tree-row]")?.focus()):p.key==="Enter"||p.key===" "?(p.preventDefault(),y()):p.key==="ContextMenu"||p.shiftKey&&p.key==="F10"?v(p):!n.entry.virtual&&(p.key==="F2"||p.key==="Delete")&&(p.preventDefault(),s("operation",{kind:p.key==="F2"?"rename":"delete",entry:n.entry}))}return ze(()=>o.fileRevision,()=>{r.value&&g()}),ze(()=>n.entry.virtual,()=>{r.value&&g()}),Ut(()=>m?.abort()),(p,w)=>{const $=Xl("FileTreeItem",!0);return I(),K("li",zc,[_("div",{ref_key:"row",ref:u,class:"tree-row",role:"treeitem","data-tree-row":"",tabindex:"0","aria-expanded":e.entry.type==="directory"?r.value:void 0,"aria-label":`${e.entry.name}${e.entry.gitStatus?`,${ve(Es)[e.entry.gitStatus]}`:e.entry.hasGitChanges?",包含 Git 改动":""}`,title:f.value,onClick:y,onContextmenu:v,onKeydown:T},[_("span",Jc,se(e.entry.type==="directory"?r.value?"⌄":"›":""),1),_("span",Zc,se(e.entry.type==="directory"?"▱":e.entry.type==="symlink"?"↗":"≡"),1),_("span",{class:We(["filename",{dotfile:e.entry.name.startsWith("."),deleted:e.entry.virtual}])},se(e.entry.name),3),_("span",{class:We(["row-end",{"has-menu":!e.entry.virtual,"has-status":e.entry.gitStatus||e.entry.hasGitChanges}])},[e.entry.type!=="directory"&&e.entry.gitStatus?(I(),K("span",{key:0,class:We(["git-badge",`git-${e.entry.gitStatus}`]),title:ve(Es)[e.entry.gitStatus],"aria-hidden":"true"},se(e.entry.gitStatus),11,Qc)):e.entry.hasGitChanges?(I(),K("span",eu,"●")):ae("",!0),e.entry.virtual?ae("",!0):(I(),K("button",{key:2,class:"more","aria-label":`${e.entry.name} 文件操作`,title:"文件操作",onClick:Ee(v,["stop"]),onKeydown:w[0]||(w[0]=Ee(()=>{},["stop"]))},"⋯",40,tu))],2)],40,Xc),r.value?(I(),K("ul",nu,[l.value?(I(),K("li",su,"加载中…")):a.value?(I(),K("li",ou,[Ve(se(a.value)+" ",1),_("button",{onClick:g},"重试")])):c.value.length?ae("",!0):(I(),K("li",ru,"空文件夹")),(I(!0),K(ye,null,En(c.value,k=>(I(),Be($,{key:k.path,entry:k,changes:e.changes,onPreview:w[1]||(w[1]=U=>s("preview",U)),onMenu:w[2]||(w[2]=U=>s("menu",U)),onOperation:w[3]||(w[3]=U=>s("operation",U))},null,8,["entry","changes"]))),128))])):ae("",!0)])}}},lu=Ge(iu,[["__scopeId","data-v-5c068d88"]]),au={id:"operation-title"},cu={class:"operation-path"},uu={key:0},fu={key:1},du=["disabled"],pu={key:2,class:"error",role:"alert"},hu={class:"dialog-actions"},mu=["disabled"],gu=["disabled"],vu={__name:"FileOperationDialog",props:{operation:{type:Object,required:!0},trash:String,busy:Boolean,error:String},emits:["close","submit"],setup(e,{emit:t}){const n=e,s=t,o=B(null),r=B(null),i=B(n.operation.kind==="rename"?n.operation.entry.name:n.operation.entry.path),l=je(()=>({rename:"重命名",move:"移动文件",delete:n.trash==="mv-trash"?"移到废纸篓?":"永久删除?"})[n.operation.kind]);let a;return wt(()=>{a=document.activeElement,o.value.showModal(),r.value?.select()}),Ut(()=>a?.focus()),(u,c)=>(I(),Be(Yr,{to:"body"},[_("dialog",{ref_key:"dialog",ref:o,class:"file-dialog","aria-labelledby":"operation-title",onCancel:c[3]||(c[3]=Ee(f=>!e.busy&&s("close"),["prevent"])),onClick:c[4]||(c[4]=f=>{f.target===o.value&&!e.busy&&s("close")})},[_("form",{onSubmit:c[2]||(c[2]=Ee(f=>s("submit",i.value),["prevent"]))},[_("h3",au,se(l.value),1),_("p",cu,se(e.operation.entry.path),1),e.operation.kind==="delete"?(I(),K("p",uu,se(e.trash==="mv-trash"?"文件将移到 ~/.Trash/,可从废纸篓找回。":"文件将永久删除,此操作无法撤销。"),1)):(I(),K("label",fu,[Ve(se(e.operation.kind==="rename"?"新名称":"目标完整路径(含文件名)")+" ",1),it(_("input",{ref_key:"input",ref:r,"onUpdate:modelValue":c[0]||(c[0]=f=>i.value=f),required:"",disabled:e.busy,autocomplete:"off"},null,8,du),[[us,i.value]])])),e.error?(I(),K("p",pu,se(e.error),1)):ae("",!0),_("div",hu,[_("button",{type:"button",class:"btn",disabled:e.busy,onClick:c[1]||(c[1]=f=>s("close"))},"取消",8,mu),_("button",{class:We(["btn",e.operation.kind==="delete"?"delete-btn":"btn-primary"]),disabled:e.busy||!i.value.trim()},se(e.busy?"处理中…":l.value),11,gu)])],32)],544)]))}},yu=Ge(vu,[["__scopeId","data-v-5ceee09a"]]),bu={id:"clipboard-title"},wu={id:"clipboard-help"},_u=["readonly","aria-label"],xu={class:"clipboard-actions"},Cu=["disabled"],Su={__name:"ClipboardDialog",props:{mode:{type:String,required:!0},text:{type:String,default:""},shortcut:{type:String,required:!0}},emits:["close","paste"],setup(e,{emit:t}){const n=e,s=t,o=B(null),r=B(null),i=B(n.text);wt(()=>{o.value.focus(),n.mode==="copy"&&o.value.select()});function l(a){if(a.key==="Escape")a.preventDefault(),s("close");else if(a.key==="Tab"){const u=[...r.value.querySelectorAll("textarea, button:not(:disabled)")],c=u[0],f=u[u.length-1];a.shiftKey&&document.activeElement===c?(a.preventDefault(),f.focus()):!a.shiftKey&&document.activeElement===f&&(a.preventDefault(),c.focus())}}return(a,u)=>(I(),K("div",{class:"clipboard-overlay",onClick:u[3]||(u[3]=Ee(c=>s("close"),["self"])),onKeydown:l},[_("form",{ref_key:"dialog",ref:r,class:"clipboard-dialog",role:"dialog","aria-modal":"true","aria-labelledby":"clipboard-title","aria-describedby":"clipboard-help",onSubmit:u[2]||(u[2]=Ee(c=>s("paste",i.value),["prevent"]))},[_("h3",bu,se(e.mode==="copy"?"Copy text":"Paste text"),1),_("p",wu,[u[4]||(u[4]=Ve(" Clipboard access is unavailable. ",-1)),e.mode==="copy"?(I(),K(ye,{key:0},[Ve("Copy the selected text with "+se(e.shortcut)+".",1)],64)):(I(),K(ye,{key:1},[Ve("Paste here with "+se(e.shortcut)+", then click Paste into terminal.",1)],64))]),it(_("textarea",{ref_key:"textarea",ref:o,"onUpdate:modelValue":u[0]||(u[0]=c=>i.value=c),readonly:e.mode==="copy","aria-label":e.mode==="copy"?"Text to copy":"Text to paste",spellcheck:"false"},null,8,_u),[[us,i.value]]),_("div",xu,[_("button",{type:"button",class:"btn",onClick:u[1]||(u[1]=c=>s("close"))},se(e.mode==="copy"?"Done":"Cancel"),1),e.mode==="paste"?(I(),K("button",{key:0,class:"btn btn-primary",disabled:!i.value.length}," Paste into terminal ",8,Cu)):ae("",!0)])],544)],32))}},Oi=Ge(Su,[["__scopeId","data-v-317cb3e2"]]),Eu=20,sn=3,Tu=1,In=4,$u=12,Ii=160,ku=64;function Au(e,t,n){if(!Number.isFinite(e.deltaY))return 0;if(e.deltaMode===1)return e.deltaY;if(e.deltaMode===2)return e.deltaY*(n>0&&Number.isFinite(n)?n:24);if(e.deltaMode!==0)return 0;const s=t>0&&Number.isFinite(t)?t:Eu;return e.deltaY/s}function Mu({getRowHeight:e,getRows:t,emitStep:n,requestFrame:s,cancelFrame:o,now:r}){let i=0,l=0,a=null,u=null,c=In,f=null;function m(){f!==null&&o(f),f=null,i=0,l=0,a=null,u=null,c=In}function g(){if(r()-u>ku){m();return}for(;i>=sn&&c>0;)if(i-=sn,c--,n(l,a)===!1){m();return}f===null&&c<In&&(f=s(()=>{f=null,c=In,i>=sn&&g()}))}return{wheel(y){const v=Au(y,e(),t());if(!v||!Number.isFinite(v))return!1;const T=r(),p=Math.sign(v);return(p!==l||u===null||T-u>Ii||T<u)&&(i=sn-Tu),l=p,u=T,a=y,i=Math.min(i+Math.abs(v),$u*sn),g(),!0},cancel:m}}function Pu({doc:e,terminal:t}){const n=e.defaultView,s=t.element;if(!n?.WheelEvent||!s?.addEventListener)return()=>{};const o=[];function r(v,T,p,w={capture:!0}){v.addEventListener(T,p,w),o.push(()=>v.removeEventListener(T,p,w))}const i=()=>t.modes?.mouseTrackingMode,l=()=>["vt200","drag","any"].includes(i());let a="";const u=()=>`${i()}:${t.buffer?.active?.type}`,c=s.querySelector(".xterm-screen")||s;let f=0,m=0,g=-1/0;const y=Mu({getRowHeight:()=>{const v=n.performance.now();return(m!==t.rows||v-g>=Ii)&&(f=c.getBoundingClientRect().height/(t.rows||1),m=t.rows,g=v),f},getRows:()=>t.rows,requestFrame:v=>n.requestAnimationFrame(v),cancelFrame:v=>n.cancelAnimationFrame(v),now:()=>n.performance.now(),emitStep:(v,T)=>s.isConnected===!1||e.hidden||!l()||u()!==a?!1:(c.dispatchEvent(new n.WheelEvent("wheel",{deltaY:v,deltaMode:1,clientX:T.clientX,clientY:T.clientY,bubbles:!0,cancelable:!0,view:n})),!0)});r(s,"wheel",v=>{if(!v.isTrusted)return;const T=Math.abs(v.deltaX)>Math.abs(v.deltaY);if(v.defaultPrevented||v.ctrlKey||v.metaKey||v.altKey||v.shiftKey||T||!l()){y.cancel();return}u()!==a&&y.cancel(),a=u(),y.wheel(v)&&(v.preventDefault(),v.stopImmediatePropagation())},{capture:!0,passive:!1});for(const v of["keydown","pointerdown","touchstart","paste","visibilitychange"])r(e,v,y.cancel);return r(n,"blur",y.cancel),r(n,"resize",()=>{g=-1/0,y.cancel()}),()=>{y.cancel(),o.forEach(v=>v())}}async function Ks(e,t=document,n=navigator){try{if(n.clipboard?.writeText)return await n.clipboard.writeText(e),!0}catch{}if(!t.execCommand)return!1;const s=t.activeElement,o=t.createElement("textarea");o.value=e,o.readOnly=!0,o.style.cssText="position:fixed;left:-9999px;top:0;",t.body.appendChild(o);try{return o.focus({preventScroll:!0}),o.select(),t.execCommand("copy")}catch{return!1}finally{o.remove(),s?.focus({preventScroll:!0})}}const Ou=10,Iu=.85,cr=.05,Ru=20;function Lu(e,t){return Math.abs(t)>=Ou&&Math.abs(t)>Math.abs(e)}function Du({getRowHeight:e,emitWheel:t,requestFrame:n=s=>setTimeout(()=>s(performance.now()),16)}){let s=null,o=!1,r=0;function i(){const a=e();return a>0?a:Ru}function l(a){if(Number.isFinite(a)&&(r+=a/i(),Math.abs(r)>=1)){const u=Math.trunc(r);r-=u,t(-u*i(),s?.lastX??0,s?.lastY??0)}}return{touchStart(a){if(o=!1,!a.touches||a.touches.length!==1){s=null;return}const u=a.touches[0];s={id:u.identifier,startX:u.clientX,startY:u.clientY,lastX:u.clientX,lastY:u.clientY,lastTime:a.timeStamp??Date.now(),velocity:0,active:!1}},touchMove(a){if(!s)return;const u=[...a.touches].find(g=>g.identifier===s.id);if(!u)return;const c=a.timeStamp??Date.now();if(!s.active){if(!Lu(u.clientX-s.startX,u.clientY-s.startY))return;s.active=!0,s.lastX=u.clientX,s.lastY=u.clientY,s.lastTime=c}a.preventDefault();const f=u.clientY-s.lastY,m=Math.max(c-s.lastTime,1);s.velocity=.8*s.velocity+.2*(f/m),s.lastX=u.clientX,s.lastY=u.clientY,s.lastTime=c,l(f)},touchEnd(a){if(!(!s||![...a.changedTouches].some(c=>c.identifier===s.id))){if(s.active&&Math.abs(s.velocity)>cr){o=!0;let c=s.velocity,f=s.lastTime;const m=g=>{if(!o)return;const y=Math.max((g??Date.now())-f,1);if(!Number.isFinite(y)){o=!1;return}if(f=g??Date.now(),c*=Math.pow(Iu,y/16),Math.abs(c)<cr){o=!1;return}l(c*y),n(m)};n(m)}s=null}},cancel(){o=!1,s=null,r=0}}}function Fu({doc:e,terminal:t,isMac:n,getCopyText:s,onCopy:o,onContextMenu:r,onDismiss:i,onInput:l,onSelection:a,onTmuxCopy:u}){const c=[];function f(p,w,$={capture:!0}){e.addEventListener(p,w,$),c.push(()=>e.removeEventListener(p,w,$))}function m(p){p.preventDefault(),p.stopImmediatePropagation()}for(const p of["pointerdown","pointerup","mousedown","mouseup","auxclick"])f(p,w=>{w.button===2||n&&w.button===0&&w.ctrlKey?(w.stopImmediatePropagation(),w.shiftKey||w.preventDefault()):p==="mousedown"&&(i(),w.button===0&&l())});f("contextmenu",p=>{if(p.shiftKey){i();return}m(p),r(p)}),c.push(Pu({doc:e,terminal:t}));const g=Du({getRowHeight:()=>t.element?t.element.getBoundingClientRect().height/(t.rows||1):0,emitWheel:(p,w,$)=>{const k=t.element?.querySelector(".xterm-screen")||t.element;!k||!e.defaultView||k.dispatchEvent(new e.defaultView.WheelEvent("wheel",{deltaY:p,deltaMode:0,clientX:w,clientY:$,bubbles:!0,cancelable:!0}))}}),y={capture:!0,passive:!1};f("touchstart",p=>g.touchStart(p),y),f("touchmove",p=>g.touchMove(p),y),f("touchend",p=>g.touchEnd(p),y),f("touchcancel",()=>g.cancel(),y),c.push(()=>g.cancel()),f("copy",p=>{const w=s();!w||!p.clipboardData||(p.clipboardData.setData("text/plain",w),m(p))}),f("paste",p=>{if(!p.clipboardData)return;const w=p.clipboardData.getData("text/plain");m(p),i(),l(),t.paste(w)}),f("keydown",p=>{const w=p.key.toLowerCase(),$=!p.altKey&&(n&&p.metaKey&&!p.ctrlKey&&w==="c"||p.ctrlKey&&p.shiftKey&&!p.metaKey&&w==="c"),k=!p.altKey&&(n&&p.metaKey&&w==="v"||p.ctrlKey&&w==="v");$?(m(p),o()):k?p.stopImmediatePropagation():(i(),["Shift","Control","Alt","Meta"].includes(p.key)||l())});const v=t.onSelectionChange(()=>a(t.getSelection()));c.push(()=>v.dispose());const T=t.parser.registerOscHandler(52,p=>{const w=p.indexOf(";");if(w<0)return!1;const $=p.slice(w+1);if($==="?")return!1;try{const k=Uint8Array.from(atob($),U=>U.charCodeAt(0));u(new TextDecoder().decode(k))}catch{}return!0});return c.push(()=>T.dispose()),()=>c.forEach(p=>p())}const Nu={class:"file-panel","aria-label":"文件管理器"},ju={class:"file-toolbar"},Hu=["title"],Uu=["disabled"],Ku=["disabled"],Bu=["title"],Vu={key:1,class:"panel-hint",role:"status"},Wu={key:2,class:"panel-hint"},qu={key:3,class:"panel-hint"},Gu={key:4,class:"panel-hint error",role:"alert"},Yu={key:5,class:"panel-hint git-warning",role:"status"},zu={key:6,class:"panel-hint",role:"status"},Xu=["aria-label","aria-busy"],Ju={key:0,role:"none",class:"panel-hint"},Zu=["disabled"],Qu=["disabled"],ef={__name:"FilePanel",setup(e){const t=jl(()=>ao(()=>import("./PreviewDialog-Dc7jb9yA.js"),__vite__mapDeps([2,3]))),n=Pt(),s=kt("toast"),o=je(()=>n.sessions.find(R=>R.name===n.current)),r=B([]),i=B({available:!1,changes:[]}),l=B(""),a=je(()=>Pi(r.value,o.value?.root||"/",i.value.changes)),u=B(null),c=B(!1),f=B(!1),m=B(""),g=B(null),y=B(null),v=B(null),T=B(null),p=B(""),w=B(!1),$=B(!1),k=B(null);let U=null,te=0;const ie=/Mac|iPhone|iPad/.test(navigator.platform)?"⌘C":"Ctrl+C";function V(R,j="info",re){s?.value?.show(R,j,re)}async function A(){const R=o.value,j=++te;if(!R||R.root||R.status!=="running"){f.value=!1;return}f.value=!0,m.value="";try{await n.pinRoot(R.name)}catch(re){j===te&&o.value?.name===R.name&&(m.value=re.message)}finally{j===te&&(f.value=!1)}}async function G(){U?.abort();const R=new AbortController;U=R;const j=o.value?.root;if(!j){r.value=[],u.value=null,c.value=!1;return}c.value=!0,m.value="";const re=(async()=>{try{const Pe=await(await n.apiRequest(`/api/git/status?${new URLSearchParams({root:j})}`,{signal:R.signal})).json();R.signal.aborted||(i.value=Pe,l.value=Pe.reason==="git-unavailable"?"未安装 Git,无法显示改动标记。":"")}catch(ge){R.signal.aborted||(l.value=`Git 状态更新失败,已有标记可能已过时:${ge.message}`)}})();try{const Pe=await(await n.apiRequest(`/api/files?${new URLSearchParams({path:j})}`,{signal:R.signal})).json();R.signal.aborted||(r.value=Pe.entries,u.value=Pe.trash)}catch(ge){R.signal.aborted||(m.value=ge.message)}finally{await re,R.signal.aborted||(c.value=!1)}}function ne(R){i.value=R,l.value=R.reason==="git-unavailable"?"未安装 Git,无法显示改动标记。":""}async function M(){const R=o.value;if(!(!R||R.status!=="running"))try{await n.pinRoot(R.name,!0),n.refreshFiles(),V("已将文件根目录固定到 shell 当前目录。","success")}catch(j){V(j.message,"error")}}async function F(R){y.value=R,await Mt(),!(!y.value||!v.value)&&(y.value.x=Math.max(8,Math.min(R.x,window.innerWidth-v.value.offsetWidth-8)),y.value.y=Math.max(8,Math.min(R.y,window.innerHeight-v.value.offsetHeight-8)),v.value.querySelector("button:not(:disabled)")?.focus())}function L(R=!1){R&&y.value?.trigger?.focus(),y.value=null}function z(R){if(["Escape","Tab"].includes(R.key))R.key==="Escape"&&R.preventDefault(),L(!0);else if(["ArrowDown","ArrowUp","Home","End"].includes(R.key)){R.preventDefault();const j=[...v.value.querySelectorAll("button:not(:disabled)")],re=j.indexOf(document.activeElement),ge=R.key==="Home"?0:R.key==="End"?j.length-1:(re+(R.key==="ArrowDown"?1:-1)+j.length)%j.length;j[ge]?.focus()}}function q(R,j=y.value?.entry){L(!0),!(!j||j.virtual||w.value||R==="delete"&&!u.value)&&(p.value="",T.value={kind:R,entry:j})}async function W(R){if(w.value)return;const{kind:j,entry:re}=T.value;w.value=!0,p.value="";try{if(j==="delete")await n.apiRequest(`/api/files?${new URLSearchParams({path:re.path})}`,{method:"DELETE"});else{if(j==="rename"&&(!R||R==="."||R===".."||R.includes("/")||R.includes("\0")))throw new Error("请输入不含 / 的有效文件名");const ge=j==="rename"?co(re.path.slice(0,re.path.lastIndexOf("/"))||"/",R):R;await n.apiRequest("/api/files",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({from:re.path,to:ge})})}T.value=null,n.refreshFiles(),V(j==="delete"?u.value==="mv-trash"?"已移到废纸篓。":"已永久删除。":"文件已更新。","success")}catch(ge){p.value=ge.message}finally{w.value=!1}}function oe(R=y.value?.entry){if(L(!0),!R)return;const j=document.createElement("a");j.href=Ai(R.path,!0),j.download=R.name,document.body.append(j),j.click(),j.remove()}async function He(R=y.value?.entry){L(!0),await Ks(R.path)?V("路径已复制。","success"):k.value=R.path}async function ct(R=y.value?.entry){const j=o.value?.root;if(L(!0),!(!R||!j||$.value)){$.value=!0;try{const ge=await(await n.apiRequest("/api/files/archive",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:R.path,root:j})})).json();n.refreshFiles(),V(`已生成:${ge.path}`,"success",{action:{label:"下载",onClick:()=>oe({path:ge.path,name:ge.path.split("/").pop()})}})}catch(re){V(re.message,"error")}finally{$.value=!1}}}function Ue(R){v.value?.contains(R.target)||L()}return ze(()=>[o.value?.name,o.value?.status],()=>{m.value="",A()},{immediate:!0}),ze(()=>[o.value?.name,o.value?.root],()=>{r.value=[],g.value=null,L(),i.value={available:!1,changes:[]},l.value="",w.value||(T.value=null),G()},{immediate:!0}),ze(()=>n.fileRevision,G),wt(()=>{document.addEventListener("pointerdown",Ue),window.addEventListener("resize",L)}),Ut(()=>{te++,U?.abort(),document.removeEventListener("pointerdown",Ue),window.removeEventListener("resize",L)}),(R,j)=>(I(),K("section",Nu,[_("div",ju,[_("span",{class:"project-name",title:o.value?.root||""},se(o.value?.alias||o.value?.name||"文件"),9,Hu),_("button",{disabled:!o.value?.root||c.value,title:"刷新目录和 Git 标记","aria-label":"刷新目录和 Git 标记",onClick:j[0]||(j[0]=re=>ve(n).refreshFiles())},"↻",8,Uu),_("button",{disabled:o.value?.status!=="running",title:"重新固定到 shell 当前目录","aria-label":"重新固定到 shell 当前目录",onClick:M},"📍",8,Ku)]),o.value?.root?(I(),K("div",{key:0,class:"root-path",title:o.value.root},se(o.value.root),9,Bu)):ae("",!0),$.value?(I(),K("div",Vu,"正在生成 ZIP…")):ae("",!0),o.value?!o.value.root&&!c.value&&!f.value&&!m.value?(I(),K("div",qu,"启动 session 后自动确定根目录")):ae("",!0):(I(),K("div",Wu,"选择一个会话以浏览文件。")),m.value?(I(),K("div",Gu,[Ve(se(m.value)+" ",1),_("button",{onClick:j[1]||(j[1]=re=>o.value?.root?G():A())},"重试")])):ae("",!0),l.value?(I(),K("div",Yu,se(l.value),1)):ae("",!0),c.value||f.value?(I(),K("div",zu,"加载中…")):ae("",!0),o.value?.root?(I(),K("ul",{key:`${o.value.name}:${o.value.root}`,class:"file-tree",role:"tree","aria-label":o.value.root,"aria-busy":c.value},[(I(!0),K(ye,null,En(a.value,re=>(I(),Be(lu,{key:re.path,entry:re,changes:i.value.changes,onPreview:j[2]||(j[2]=ge=>g.value=ge),onMenu:F,onOperation:ge=>q(ge.kind,ge.entry)},null,8,["entry","changes","onOperation"]))),128)),!a.value.length&&!c.value&&!m.value?(I(),K("li",Ju,"空文件夹")):ae("",!0)],8,Xu)):ae("",!0),(I(),Be(Yr,{to:"body"},[y.value?(I(),K("div",{key:0,ref_key:"menuElement",ref:v,class:"file-menu",style:xn({left:`${y.value.x}px`,top:`${y.value.y}px`}),role:"menu","aria-label":"文件操作",onKeydown:z},[y.value.entry.type==="file"?(I(),K("button",{key:0,role:"menuitem",onClick:j[3]||(j[3]=re=>{g.value=y.value.entry,L(!0)})},"预览")):ae("",!0),_("button",{role:"menuitem",onClick:j[4]||(j[4]=re=>q("rename"))},[...j[13]||(j[13]=[Ve("重命名 ",-1),_("span",null,"F2",-1)])]),_("button",{role:"menuitem",onClick:j[5]||(j[5]=re=>q("move"))},"移动…"),y.value.entry.type==="file"?(I(),K("button",{key:1,role:"menuitem",onClick:j[6]||(j[6]=re=>oe())},"下载")):ae("",!0),y.value.entry.type==="directory"?(I(),K("button",{key:2,role:"menuitem",disabled:$.value,onClick:j[7]||(j[7]=re=>ct())},"压缩为 ZIP",8,Zu)):ae("",!0),_("button",{role:"menuitem",onClick:j[8]||(j[8]=re=>He())},"复制路径"),_("button",{class:"danger",role:"menuitem",disabled:!u.value,onClick:j[9]||(j[9]=re=>q("delete"))},se(u.value==="mv-trash"?"移到废纸篓…":"永久删除…"),9,Qu)],36)):ae("",!0)])),g.value?(I(),Be(ve(t),{key:8,entry:g.value,root:o.value.root,changes:i.value.changes,onGitStatus:ne,onClose:j[10]||(j[10]=re=>g.value=null)},null,8,["entry","root","changes"])):ae("",!0),T.value?(I(),Be(yu,{key:T.value.entry.path+T.value.kind,operation:T.value,trash:u.value,busy:w.value,error:p.value,onClose:j[11]||(j[11]=re=>T.value=null),onSubmit:W},null,8,["operation","trash","busy","error"])):ae("",!0),k.value!==null?(I(),Be(Oi,{key:10,mode:"copy",text:k.value,shortcut:ve(ie),onClose:j[12]||(j[12]=re=>k.value=null)},null,8,["text","shortcut"])):ae("",!0)]))}},tf=Ge(ef,[["__scopeId","data-v-771bf310"]]),nf={class:"sidebar-tabs",role:"tablist","aria-label":"侧栏"},sf=["aria-selected"],of=["aria-selected"],rf={class:"sessions-panel",id:"sessions-panel",role:"tabpanel","aria-labelledby":"sessions-tab"},lf={class:"sidebar-header"},af={class:"sidebar-title"},cf={class:"session-list"},uf={key:0,class:"empty-hint"},ff={key:0,id:"files-panel",class:"files-panel",role:"tabpanel","aria-labelledby":"files-tab"},df={__name:"Sidebar",props:{collapsed:Boolean,mobile:Boolean},emits:["create","expand"],setup(e,{emit:t}){const n=t,s=Pt(),o=B("sessions");function r(i){o.value=i,n("expand")}return(i,l)=>(I(),K("aside",{class:We(["sidebar",{collapsed:e.collapsed}])},[_("div",nf,[_("button",{id:"sessions-tab",role:"tab","aria-selected":o.value==="sessions","aria-controls":"sessions-panel",onClick:l[0]||(l[0]=a=>r("sessions"))},"会话",8,sf),_("button",{id:"files-tab",role:"tab","aria-selected":o.value==="files","aria-controls":"files-panel",onClick:l[1]||(l[1]=a=>r("files"))},"文件",8,of)]),it(_("div",rf,[_("div",lf,[it(_("h2",af,"Sessions",512),[[rn,!e.collapsed]]),_("button",{class:"icon-btn new-session-btn",onClick:l[2]||(l[2]=a=>n("create")),title:"New Session"},[l[3]||(l[3]=_("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[_("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),_("line",{x1:"5",y1:"12",x2:"19",y2:"12"})],-1)),it(_("span",null,"New Session",512),[[rn,!e.collapsed]])])]),_("div",cf,[(I(!0),K(ye,null,En(ve(s).sortedSessions,a=>(I(),Be(Bc,{key:a.name,session:a,active:ve(s).current===a.name,collapsed:e.collapsed,onClick:u=>ve(s).select(a.name)},null,8,["session","active","collapsed","onClick"]))),128)),ve(s).sessions.length?ae("",!0):it((I(),K("div",uf,[...l[4]||(l[4]=[_("p",null,"No active sessions",-1),_("p",{class:"sub-hint"},"Create one to get started",-1)])],512)),[[rn,!e.collapsed]])])],512),[[rn,o.value==="sessions"]]),o.value==="files"&&!e.collapsed?(I(),K("div",ff,[_e(tf)])):ae("",!0)],2))}},pf=Ge(df,[["__scopeId","data-v-b8faf56e"]]),hf="/logo.svg",mf=["width","height"],gf={__name:"BrandMark",props:{size:{type:Number,default:32}},setup(e){return(t,n)=>(I(),K("img",{class:"brand-mark",src:hf,width:e.size,height:e.size,alt:"","aria-hidden":"true",draggable:"false"},null,8,mf))}},uo=Ge(gf,[["__scopeId","data-v-f54af403"]]);async function vf({files:e,directory:t,signal:n,onProgress:s=()=>{},onUnauthorized:o=()=>{},createXHR:r=()=>new XMLHttpRequest}){const i={completed:[],cancelled:[],failed:[]};for(let l=0;l<e.length;l++){const a=e[l],u=co(t,a.name);if(n.aborted){i.cancelled.push(u);continue}s({index:l+1,total:e.length,percent:0,filename:a.name});try{const c=await new Promise((f,m)=>{const g=r(),y=()=>g.abort(),v=(T,p)=>{n.removeEventListener("abort",y),T(p)};g.open("POST",`/api/files/upload?${new URLSearchParams({dir:t,filename:a.name})}`),g.setRequestHeader("Content-Type","application/octet-stream"),g.upload.onprogress=T=>{T.lengthComputable&&s({index:l+1,total:e.length,percent:Math.round(T.loaded/T.total*100),filename:a.name})},g.onload=()=>{let T={};try{T=JSON.parse(g.responseText)}catch{}g.status===401&&o(),g.status>=200&&g.status<300&&T.path?v(f,T):v(m,new Error(T.error||`Upload failed (${g.status})`))},g.onerror=()=>v(m,new Error("Network error while uploading")),g.onabort=()=>v(m,new DOMException("Upload cancelled","AbortError")),n.addEventListener("abort",y,{once:!0}),n.aborted?v(m,new DOMException("Upload cancelled","AbortError")):g.send(a)});i.completed.push(c.path)}catch(c){n.aborted||c.name==="AbortError"?i.cancelled.push(u):i.failed.push({path:u,error:c.message})}}return i}const yf={class:"terminal-area"},bf={key:0,class:"terminal-tools","aria-label":"Terminal tools"},wf=["disabled","title"],_f=["disabled","title"],xf=["disabled"],Cf=["title"],Sf=["value"],Ef={key:1,class:"selection-hint"},Tf=["src"],$f={key:2,class:"welcome__container"},kf={class:"welcome__content"},Af={class:"welcome-brand"},Mf={class:"welcome__text"},Pf={class:"highlight"},Of=["disabled"],If=["disabled"],Rf={__name:"TerminalView",emits:["create"],setup(e,{emit:t}){const n=Pt(),s=t,o=kt("toast"),r=B(null),i=ml(null),l=B(""),a=B(""),u=B(null),c=B(null),f=B(null),m=/Mac|iPhone|iPad/.test(navigator.platform),g=m?"⌘C":"Ctrl+Shift+C",y=m?"⌘V":"Ctrl+Shift+V",v=m?"Option":"Shift",T=je(()=>!!(l.value||a.value));let p=null,w=null;const $=B(null),k=B(null),U=B(!1);let te=null,ie=null,V=!1;function A(){z();const X=M.value;!X||X.status!=="running"||U.value||(ie={name:X.name,root:(X.root?Promise.resolve(X.root):n.pinRoot(X.name)).then(H=>({root:H}),H=>({error:H}))},$.value.click())}async function G(X){const H=X.join(`
|
|
15
|
-
`);await Ks(H)?L("路径已复制。","success"):f.value={mode:"copy",text:H}}async function ne(X){const H=Array.from(X.target.files||[]);X.target.value="";const xe=ie;if(ie=null,!H.length||!xe||U.value)return;U.value=!0,te=new AbortController;const Re=te.signal;try{const{root:Ze,error:d}=await xe.root;if(d)throw d;if(Re.aborted)return;const h=co(Ze,"temp");V||(L("上传目录为项目下的 temp/,可在项目 .gitignore 中加入 temp/。"),V=!0);const b=await vf({files:H,directory:h,signal:Re,onProgress:x=>{k.value={...x,session:xe.name}},onUnauthorized:()=>{n.authenticated=!1,te?.abort()}});n.refreshFiles();const S=[`${xe.name}:已完成 ${b.completed.length} 个、取消 ${b.cancelled.length} 个、失败 ${b.failed.length} 个`,...b.completed.map(x=>`已完成:${x}`),...b.cancelled.map(x=>`已取消:${x}`),...b.failed.map(x=>`失败:${x.path}
|
|
16
|
-
${x.error}`)].join(`
|
|
17
|
-
`);o?.value?.show(S,b.failed.length?"error":b.cancelled.length?"info":"success",{duration:0,action:b.completed.length?{label:"复制路径",onClick:()=>G(b.completed)}:void 0})}catch(Ze){L(Ze.message,"error")}finally{U.value=!1,k.value=null,te=null}}const M=je(()=>n.sessions.find(X=>X.name===n.current)),F=je(()=>!M.value||M.value.status!=="running"?null:`/terminal/${M.value.name}`);function L(X,H="info"){o?.value?.show(X,H)}function z(X=!1){u.value=null,X&&i.value?.focus()}function q(){return i.value?.getSelection()||a.value}async function W(){z();const X=i.value,H=q();if(!X||!H){L(`Select text first (${v} + drag).`);return}const xe=await Ks(H);i.value===X&&(xe?(L("Copied to clipboard.","success"),X.focus()):f.value={mode:"copy",text:H})}function oe(X,H=i.value){!H||H!==i.value||(a.value="",H.paste(X),H.focus())}async function He(){z();const X=i.value;if(X)try{if(!navigator.clipboard?.readText)throw new Error("Clipboard unavailable");const H=await navigator.clipboard.readText();oe(H,X)}catch{i.value===X&&(f.value={mode:"paste",text:""})}}function ct(){f.value=null,i.value?.focus()}function Ue(X){oe(X),ct()}async function R(X){const H=r.value.getBoundingClientRect();u.value={x:H.left+X.clientX,y:H.top+X.clientY},await Mt();const xe=c.value;!xe||!u.value||(u.value.x=Math.max(8,Math.min(u.value.x,window.innerWidth-xe.offsetWidth-8)),u.value.y=Math.max(8,Math.min(u.value.y,window.innerHeight-xe.offsetHeight-8)),xe.querySelector("button:not(:disabled)")?.focus())}function j(X){if(X.key==="Escape"||X.key==="Tab")X.key==="Escape"&&X.preventDefault(),z(!0);else if(["ArrowDown","ArrowUp","Home","End"].includes(X.key)){X.preventDefault();const H=[...c.value.querySelectorAll("button:not(:disabled)")],xe=H.indexOf(document.activeElement),Re=X.key==="Home"?0:X.key==="End"?H.length-1:(xe+(X.key==="ArrowDown"?1:-1)+H.length)%H.length;H[Re]?.focus()}}function re(){clearTimeout(w),w=null,p?.(),p=null,i.value=null,l.value="",a.value="",u.value=null,f.value=null}function ge(X){re();const H=X.target,xe=Date.now()+1e4;function Re(){if(r.value!==H)return;const Ze=H.contentWindow?.term;if(!Ze){Date.now()<xe?w=setTimeout(Re,50):L("Terminal clipboard controls could not load. Please reload the page.","error");return}i.value=Ze,Ze.options.macOptionClickForcesSelection=!0,l.value=Ze.getSelection(),p=Fu({doc:H.contentDocument,terminal:Ze,isMac:m,getCopyText:q,onCopy:W,onContextMenu:R,onDismiss:()=>z(),onInput:()=>{a.value=""},onSelection:d=>{l.value=d,d&&(a.value="")},onTmuxCopy:d=>{a.value=d}})}Re()}function Pe(X){c.value?.contains(X.target)||z()}return ze(F,re),wt(()=>{document.addEventListener("pointerdown",Pe),window.addEventListener("resize",z)}),Ut(()=>{te?.abort(),re(),document.removeEventListener("pointerdown",Pe),window.removeEventListener("resize",z)}),(X,H)=>(I(),K("div",yf,[_("input",{ref_key:"fileInput",ref:$,type:"file",multiple:"",hidden:"",onChange:ne},null,544),M.value||U.value?(I(),K("div",bf,[_("button",{class:"clipboard-btn",disabled:!i.value||!T.value,title:`Copy selected text (${ve(g)})`,onMousedown:H[0]||(H[0]=Ee(()=>{},["prevent"])),onClick:W},"Copy",40,wf),_("button",{class:"clipboard-btn",disabled:!i.value,title:`Paste from your computer (${ve(y)})`,onMousedown:H[1]||(H[1]=Ee(()=>{},["prevent"])),onClick:He},"Paste",40,_f),_("button",{class:"clipboard-btn",disabled:M.value?.status!=="running"||U.value,onClick:A},"Upload",8,xf),U.value?(I(),K("div",{key:0,class:"upload-progress","aria-live":"polite",title:k.value?`${k.value.session}: ${k.value.filename}`:"准备上传"},[_("span",null,se(k.value?`${k.value.index}/${k.value.total} · ${k.value.percent}%`:"准备上传…"),1),_("progress",{value:k.value?.percent||0,max:"100","aria-label":"上传进度"},null,8,Sf),_("button",{class:"clipboard-btn",onClick:H[2]||(H[2]=xe=>ve(te)?.abort())},"取消")],8,Cf)):(I(),K("span",Ef,se(ve(v))+" + drag to select · "+se(ve(g))+" / "+se(ve(y)),1))])):ae("",!0),F.value?(I(),K("iframe",{ref_key:"iframe",ref:r,key:F.value,src:F.value,class:"terminal-frame",title:"Terminal",allow:"clipboard-read; clipboard-write",onLoad:ge},null,40,Tf)):(I(),K("div",$f,[_("div",kf,[_("div",Af,[_e(uo,{size:104}),H[6]||(H[6]=_("div",{class:"logo-text"},"ACLI Hub",-1))]),M.value?(I(),K(ye,{key:1},[_("p",Mf,[H[8]||(H[8]=Ve(" Session ",-1)),_("span",Pf,se(M.value.name),1),H[9]||(H[9]=Ve(" is currently stopped. ",-1))]),H[10]||(H[10]=_("p",{class:"sub-text"},"Restart the session to continue.",-1))],64)):(I(),K(ye,{key:0},[H[7]||(H[7]=_("p",{class:"welcome__text"},"No active session selected.",-1)),_("button",{class:"btn btn-primary",onClick:H[3]||(H[3]=xe=>s("create"))}," Create First Session ")],64))])])),u.value?(I(),K("div",{key:3,ref_key:"menuElement",ref:c,class:"clipboard-menu",style:xn({left:`${u.value.x}px`,top:`${u.value.y}px`}),role:"menu","aria-label":"Terminal clipboard",onKeydown:j},[_("button",{role:"menuitem",disabled:!T.value,onMousedown:H[4]||(H[4]=Ee(()=>{},["prevent"])),onClick:W},[H[11]||(H[11]=Ve(" Copy ",-1)),_("span",null,se(ve(g)),1)],40,Of),_("button",{role:"menuitem",onMousedown:H[5]||(H[5]=Ee(()=>{},["prevent"])),onClick:He},[H[12]||(H[12]=Ve(" Paste ",-1)),_("span",null,se(ve(y)),1)],32),_("button",{role:"menuitem",disabled:M.value?.status!=="running"||U.value,onClick:A},"Upload files…",8,If),H[13]||(H[13]=_("p",null,"Shift + right-click for browser menu",-1))],36)):ae("",!0),f.value?(I(),Be(Oi,{key:4,mode:f.value.mode,text:f.value.text,shortcut:f.value.mode==="copy"?ve(m)?"⌘C":"Ctrl+C":ve(m)?"⌘V":"Ctrl+V",onClose:ct,onPaste:Ue},null,8,["mode","text","shortcut"])):ae("",!0)]))}},Lf=Ge(Rf,[["__scopeId","data-v-95819edf"]]),Df={class:"modal-header"},Ff={class:"modal-body"},Nf={class:"form-group"},jf=["value"],Hf={class:"modal-footer"},Uf=["disabled"],Kf={__name:"CreateDialog",emits:["close"],setup(e,{emit:t}){const n=t,s=Pt(),o=B({command:s.shells.length?s.shells[0].id:"bash"}),r=B(!1),i=B(null);let l=null;wt(()=>{l=document.activeElement,i.value?.focus()}),no(()=>{l?.isConnected&&l.focus()});async function a(){if(!r.value){r.value=!0;try{await s.create(o.value),n("close")}catch(u){console.error(u)}finally{r.value=!1,await Mt(),document.activeElement===document.body&&i.value?.focus()}}}return(u,c)=>(I(),K("div",{class:"modal-overlay",onClick:c[3]||(c[3]=Ee(f=>n("close"),["self"]))},[_("form",{class:"modal-content glass",onSubmit:Ee(a,["prevent"])},[_("div",Df,[c[4]||(c[4]=_("h3",null,"Create New Session",-1)),_("button",{type:"button",class:"close-btn",onClick:c[0]||(c[0]=f=>n("close"))},"✕")]),_("div",Ff,[_("label",Nf,[c[5]||(c[5]=_("span",{class:"label-text"},"Shell",-1)),it(_("select",{"onUpdate:modelValue":c[1]||(c[1]=f=>o.value.command=f)},[(I(!0),K(ye,null,En(ve(s).shells,f=>(I(),K("option",{key:f.id,value:f.id},se(f.name),9,jf))),128))],512),[[hc,o.value.command]])])]),_("div",Hf,[_("button",{type:"button",class:"btn",onClick:c[2]||(c[2]=f=>n("close"))},"Cancel"),_("button",{ref_key:"createButton",ref:i,type:"submit",class:"btn btn-primary",disabled:r.value},se(r.value?"Creating...":"Create Session"),9,Uf)])],32)]))}},Bf=Ge(Kf,[["__scopeId","data-v-ef0ce732"]]),Vf={class:"login-screen"},Wf={class:"login-logo"},qf={key:0,class:"login-error",role:"alert"},Gf=["disabled"],Yf={__name:"LoginView",emits:["success"],setup(e,{emit:t}){const n=t,s=Pt(),o=B(""),r=B(""),i=B(!1),l=B(null);wt(()=>{l.value?.focus()});async function a(){if(!(!o.value||i.value)){i.value=!0,r.value="";try{await s.login(o.value),o.value="",n("success")}catch(u){r.value=u.message||"Login failed"}finally{i.value=!1}}}return(u,c)=>(I(),K("div",Vf,[_("form",{class:"login-card",onSubmit:Ee(a,["prevent"])},[_("div",Wf,[_e(uo,{size:72})]),c[2]||(c[2]=_("h1",null,"ACLI Hub",-1)),c[3]||(c[3]=_("p",{class:"login-hint"},"Enter the session password to continue",-1)),it(_("input",{ref_key:"passwordInput",ref:l,"onUpdate:modelValue":c[0]||(c[0]=f=>o.value=f),type:"password",autocomplete:"current-password",placeholder:"Password","aria-label":"Password",onKeydown:c[1]||(c[1]=js(f=>{o.value="",r.value=""},["esc"]))},null,544),[[us,o.value]]),r.value?(I(),K("p",qf,se(r.value),1)):ae("",!0),_("button",{type:"submit",class:"login-btn",disabled:!o.value||i.value},se(i.value?"Signing in…":"Sign in"),9,Gf)],32)]))}},zf=Ge(Yf,[["__scopeId","data-v-86b6b672"]]),Xf={class:"toast-container","aria-live":"polite"},Jf={class:"toast-message"},Zf={class:"toast-actions"},Qf=["onClick"],ed=["onClick"],td={__name:"Toast",setup(e,{expose:t}){const n=B([]);let s=0;const o=new Map;function r(l){clearTimeout(o.get(l)),o.delete(l),n.value=n.value.filter(a=>a.id!==l)}function i(l,a="info",{action:u,duration:c=u?0:4e3}={}){const f=++s;n.value.push({id:f,message:l,type:a,action:u}),c&&o.set(f,setTimeout(()=>r(f),c))}return Ut(()=>{for(const l of o.values())clearTimeout(l)}),t({show:i}),(l,a)=>(I(),K("div",Xf,[_e(ac,{name:"toast"},{default:Kr(()=>[(I(!0),K(ye,null,En(n.value,u=>(I(),K("div",{key:u.id,class:We(["toast",u.type])},[_("div",Jf,se(u.message),1),_("div",Zf,[u.action?(I(),K("button",{key:0,onClick:u.action.onClick},se(u.action.label),9,Qf)):ae("",!0),_("button",{"aria-label":"Dismiss notification",onClick:c=>r(u.id)},"×",8,ed)])],2))),128))]),_:1})]))}},nd=Ge(td,[["__scopeId","data-v-6bea03ca"]]);function sd(e,t=globalThis.document){return!t||typeof e!="string"||!e.trim()?!1:(t.title=`${e.trim()} · ACLI Hub`,!0)}const od={key:1,class:"app-layout"},rd={class:"toolbar glass"},id={class:"toolbar-left"},ld={class:"logo-wrapper"},ad={class:"toolbar-right"},cd={class:"main-area"},ud={__name:"App",setup(e){const t=Pt(),n=B(!1),s=B(!1),o=B(null),r=B(!1);window.innerWidth<768&&(n.value=!0),Br("toast",o),ze(()=>t.authenticated,c=>{c&&t.init()}),wt(async()=>{await t.checkAuth(),r.value=!0,sd(t.instanceName)});async function l(){await t.logout()}function a(){n.value=!n.value}function u(){n.value=!0}return(c,f)=>r.value&&!ve(t).authenticated?(I(),Be(zf,{key:0})):r.value?(I(),K("div",od,[_("header",rd,[_("div",id,[_("button",{class:"icon-btn toggle-btn",onClick:a,"aria-label":"Toggle Sidebar"},[...f[4]||(f[4]=[_("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[_("line",{x1:"3",y1:"12",x2:"21",y2:"12"}),_("line",{x1:"3",y1:"6",x2:"21",y2:"6"}),_("line",{x1:"3",y1:"18",x2:"21",y2:"18"})],-1)])]),_("div",ld,[_e(uo,{size:28})]),f[5]||(f[5]=_("h1",{class:"toolbar-title"},"ACLI Hub",-1))]),_("div",ad,[ve(t).authRequired?(I(),K("button",{key:0,class:"icon-btn toggle-btn","aria-label":"Log out",title:"Log out",onClick:l},[...f[6]||(f[6]=[_("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[_("path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"}),_("polyline",{points:"16 17 21 12 16 7"}),_("line",{x1:"21",y1:"12",x2:"9",y2:"12"})],-1)])])):ae("",!0)])]),_("div",cd,[_("div",{class:We(["sidebar-overlay",{show:!n.value}]),onClick:u},null,2),_e(pf,{collapsed:n.value,onCreate:f[0]||(f[0]=m=>s.value=!0),onExpand:f[1]||(f[1]=m=>n.value=!1)},null,8,["collapsed"]),_e(Lf,{onCreate:f[2]||(f[2]=m=>s.value=!0)})]),s.value?(I(),Be(Bf,{key:0,onClose:f[3]||(f[3]=m=>s.value=!1)})):ae("",!0),_e(nd,{ref_key:"toastRef",ref:o},null,512)])):ae("",!0)}},fd=Ge(ud,[["__scopeId","data-v-cfab805f"]]),Ri=wc(fd);Ri.use(Cc());Ri.mount("#app");export{md as A,hd as B,pd as C,ye as F,Es as G,Yr as T,ao as _,Ge as a,Ut as b,I as c,Be as d,Mi as e,_ as f,K as g,ae as h,ve as i,Yc as j,Ai as k,En as l,Ve as m,We as n,wt as o,dd as p,Ee as q,B as r,Mt as s,se as t,Pt as u,ml as v,ze as w,je as x,gd as y,ar as z};
|