tmux-ai-coder-panel 1.0.1__py3-none-any.whl

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.
@@ -0,0 +1,17 @@
1
+ """tmux-ai-coder-panel:Claude 键盘控制面板,单端口整体服务(FastAPI + Vue3 + tmux)。"""
2
+
3
+ __version__ = "1.0.1"
4
+
5
+ __all__ = ["app", "__version__"]
6
+
7
+
8
+ def __getattr__(name: str):
9
+ """惰性导入 app:避免 import 包即触发 main.py 的模块级副作用。
10
+
11
+ cli.py 需要先写 .env 再导入应用模块,使 load_dotenv() 能读到新配置;
12
+ 同时 `uvicorn tmux_ai_coder_panel:app` 仍可用(PEP 562 getattr 生效)。
13
+ """
14
+ if name == "app":
15
+ from .main import app
16
+ return app
17
+ raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
@@ -0,0 +1,6 @@
1
+ import sys
2
+
3
+ from .cli import main
4
+
5
+ if __name__ == "__main__":
6
+ sys.exit(main())
@@ -0,0 +1,202 @@
1
+ """tmux-ai-coder-panel 命令行入口。
2
+
3
+ tmux-ai-coder-panel # 默认 127.0.0.1:20016,端口被占用自动 +1
4
+ tmux-ai-coder-panel --host 0.0.0.0 # 局域网/公网访问
5
+ PORT=9999 tmux-ai-coder-panel # 覆盖起始端口
6
+ python -m tmux_ai_coder_panel # 等价于 tmux-ai-coder-panel
7
+ """
8
+
9
+ import ipaddress
10
+ import os
11
+ import secrets
12
+ import socket
13
+ import sys
14
+ from pathlib import Path
15
+
16
+ import uvicorn
17
+
18
+ DEFAULT_PORT = 20016
19
+ DEFAULT_HOST = "127.0.0.1"
20
+ MAX_PORT_ATTEMPTS = 50
21
+
22
+ USAGE = f"""tmux-ai-coder-panel - Claude 键盘控制面板
23
+
24
+ 用法:
25
+ tmux-ai-coder-panel [--port N] [--host IP] [--help] [--version]
26
+
27
+ 选项:
28
+ --port N 指定起始端口(默认 {DEFAULT_PORT},被占用自动 +1)
29
+ --host IP 监听地址(默认 {DEFAULT_HOST},局域网访问用 0.0.0.0)
30
+ -h, --help 显示本帮助
31
+ --version 显示版本号
32
+
33
+ 环境变量:
34
+ PORT=N 等价于 --port N,用于容器/脚本场景
35
+ HOST=IP 等价于 --host IP
36
+
37
+ 示例:
38
+ tmux-ai-coder-panel # 127.0.0.1:20016 起,冲突自动 +1
39
+ tmux-ai-coder-panel --host 0.0.0.0 # 局域网/公网访问
40
+ tmux-ai-coder-panel --port 3000 # 从 3000 起
41
+ """
42
+
43
+
44
+ def _parse_port(raw: str) -> int:
45
+ try:
46
+ return int(raw)
47
+ except ValueError:
48
+ print(f"[警告] 无效端口 {raw!r},使用默认 {DEFAULT_PORT}", file=sys.stderr)
49
+ return DEFAULT_PORT
50
+
51
+
52
+ def _parse_args(argv: list[str]):
53
+ """解析命令行参数,返回 (起始端口, 监听地址);--help/--version 直接退出。"""
54
+ port = None
55
+ host = None
56
+ i = 1
57
+ while i < len(argv):
58
+ arg = argv[i]
59
+ if arg in ("-h", "--help"):
60
+ print(USAGE, end="")
61
+ raise SystemExit(0)
62
+ if arg == "--version":
63
+ from . import __version__
64
+ print(f"tmux-ai-coder-panel {__version__}")
65
+ raise SystemExit(0)
66
+ if arg.startswith("--port="):
67
+ port = _parse_port(arg.split("=", 1)[1])
68
+ i += 1
69
+ continue
70
+ if arg in ("--port", "-p") and i + 1 < len(argv):
71
+ port = _parse_port(argv[i + 1])
72
+ i += 2
73
+ continue
74
+ if arg.startswith("--host="):
75
+ host = arg.split("=", 1)[1]
76
+ i += 1
77
+ continue
78
+ if arg in ("--host", "-H") and i + 1 < len(argv):
79
+ host = argv[i + 1]
80
+ i += 2
81
+ continue
82
+ print(f"[警告] 未知参数: {arg}", file=sys.stderr)
83
+ print(USAGE, end="", file=sys.stderr)
84
+ raise SystemExit(2)
85
+ return port, host
86
+
87
+
88
+ def _starting_port() -> int:
89
+ """PORT 环境变量覆盖起始端口;非法值回退默认并警告。"""
90
+ raw = os.environ.get("PORT")
91
+ if raw:
92
+ try:
93
+ return int(raw)
94
+ except ValueError:
95
+ print(f"[警告] PORT={raw!r} 不是有效端口,使用默认 {DEFAULT_PORT}", file=sys.stderr)
96
+ return DEFAULT_PORT
97
+
98
+
99
+ def _starting_host() -> str:
100
+ """HOST 环境变量覆盖监听地址;非法值回退默认并警告。"""
101
+ raw = os.environ.get("HOST")
102
+ if raw:
103
+ try:
104
+ ipaddress.ip_address(raw)
105
+ return raw
106
+ except ValueError:
107
+ print(f"[警告] HOST={raw!r} 不是有效 IP,使用默认 {DEFAULT_HOST}", file=sys.stderr)
108
+ return DEFAULT_HOST
109
+
110
+
111
+ def _validate_host(host: str) -> None:
112
+ """校验监听地址,非法 IP 直接退出。"""
113
+ try:
114
+ ipaddress.ip_address(host)
115
+ except ValueError:
116
+ print(f"[错误] 无效监听地址 {host!r},应为 IP(如 127.0.0.1 / 0.0.0.0)", file=sys.stderr)
117
+ raise SystemExit(2)
118
+
119
+
120
+ def find_free_port(start: int) -> int:
121
+ """从 start 开始 bind 探测,占用则 +1,返回首个空闲端口。"""
122
+ for port in range(start, start + MAX_PORT_ATTEMPTS):
123
+ with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
124
+ s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
125
+ try:
126
+ s.bind(("0.0.0.0", port))
127
+ except OSError:
128
+ continue
129
+ return port
130
+ raise RuntimeError(
131
+ f"端口 {start}~{start + MAX_PORT_ATTEMPTS - 1} 全部被占用,请设置 PORT 环境变量后重试"
132
+ )
133
+
134
+
135
+ def ensure_env_file() -> None:
136
+ """首次启动:cwd 无 .env 时生成随机账号密码并打印。
137
+
138
+ 契约:运行目录 = 配置目录(pip 安装后 .env 不进 site-packages)。
139
+ """
140
+ env_path = Path.cwd() / ".env"
141
+ if env_path.exists():
142
+ return
143
+ account = secrets.token_hex(4) # 8 位十六进制账号
144
+ password = secrets.token_urlsafe(12) # ~16 位 URL 安全随机密码
145
+ content = (
146
+ "# Claude Panel 环境变量配置(首次启动自动生成,可编辑后重启生效)\n"
147
+ f"PANEL_ACCOUNT={account}\n"
148
+ f"PANEL_SECERT={password}\n"
149
+ )
150
+ try:
151
+ env_path.write_text(content)
152
+ except OSError as exc: # 例如 cwd 只读
153
+ print(f"[警告] 无法写入 {env_path}: {exc}", file=sys.stderr)
154
+ print("[警告] 将以「不启用登录」模式启动,可稍后手动创建 .env 并重启", file=sys.stderr)
155
+ return
156
+ print(f"[首次启动] 已生成配置文件: {env_path}")
157
+ print(f"[首次启动] 账号: {account}")
158
+ print(f"[首次启动] 密码: {password} (可编辑该文件修改)")
159
+
160
+
161
+ def _print_banner(host: str, port: int) -> None:
162
+ """醒目启动横幅:最终端口 + 访问地址(仅监听 0.0.0.0 时展示局域网地址)。"""
163
+ lines = [f" 本机访问: http://127.0.0.1:{port}"]
164
+ if host == "0.0.0.0":
165
+ try:
166
+ ip = socket.gethostbyname(socket.gethostname())
167
+ except OSError:
168
+ ip = "127.0.0.1"
169
+ lines.append(f" 局域网: http://{ip}:{port}")
170
+ print("=" * 60)
171
+ print(" tmux-ai-coder-panel 已启动")
172
+ for line in lines:
173
+ print(line)
174
+ print(f" API 文档: http://127.0.0.1:{port}/docs")
175
+ print(" 按 Ctrl+C 停止服务")
176
+ print("=" * 60)
177
+
178
+
179
+ def main() -> int:
180
+ try:
181
+ cli_port, cli_host = _parse_args(sys.argv) # --port/--host/--help/--version
182
+ start_port = cli_port if cli_port is not None else _starting_port()
183
+ host = cli_host if cli_host is not None else _starting_host()
184
+ _validate_host(host)
185
+ ensure_env_file() # 无 .env 则生成随机账号密码写 cwd
186
+ port = find_free_port(start_port) # socket bind 探测,占用则 +1
187
+ from .main import app # 再导入(load_dotenv 读到新 .env)
188
+ _print_banner(host, port) # 打印最终 URL
189
+ uvicorn.run(app, host=host, port=port, log_level="info")
190
+ return 0
191
+ except KeyboardInterrupt:
192
+ print("\n[tmux-ai-coder-panel] 已停止(Ctrl+C)")
193
+ return 0
194
+ except SystemExit:
195
+ raise
196
+ except Exception as exc:
197
+ print(f"[tmux-ai-coder-panel] 启动失败: {exc}", file=sys.stderr)
198
+ return 1
199
+
200
+
201
+ if __name__ == "__main__":
202
+ sys.exit(main())
@@ -0,0 +1,26 @@
1
+ (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))s(o);new MutationObserver(o=>{for(const r of o)if(r.type==="childList")for(const 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)}})();/**
2
+ * @vue/shared v3.5.39
3
+ * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
+ * @license MIT
5
+ **/function Hs(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const oe={},Ft=[],ot=()=>{},ur=()=>!1,Jn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),zn=e=>e.startsWith("onUpdate:"),Ce=Object.assign,Us=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Mi=Object.prototype.hasOwnProperty,Z=(e,t)=>Mi.call(e,t),F=Array.isArray,Bt=e=>kn(e)==="[object Map]",Qt=e=>kn(e)==="[object Set]",fo=e=>kn(e)==="[object Date]",H=e=>typeof e=="function",ce=e=>typeof e=="string",rt=e=>typeof e=="symbol",$=e=>e!==null&&typeof e=="object",fr=e=>($(e)||H(e))&&H(e.then)&&H(e.catch),dr=Object.prototype.toString,kn=e=>dr.call(e),Di=e=>kn(e).slice(8,-1),hr=e=>kn(e)==="[object Object]",Gs=e=>ce(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,ln=Hs(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Yn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Ki=/-\w/g,Te=Yn(e=>e.replace(Ki,t=>t.slice(1).toUpperCase())),Li=/\B([A-Z])/g,At=Yn(e=>e.replace(Li,"-$1").toLowerCase()),Qn=Yn(e=>e.charAt(0).toUpperCase()+e.slice(1)),as=Yn(e=>e?`on${Qn(e)}`:""),st=(e,t)=>!Object.is(e,t),In=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},pr=(e,t,n,s=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},Xn=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let ho;const Zn=()=>ho||(ho=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ws(e){if(F(e)){const t={};for(let n=0;n<e.length;n++){const s=e[n],o=ce(s)?Hi(s):Ws(s);if(o)for(const r in o)t[r]=o[r]}return t}else if(ce(e)||$(e))return e}const ji=/;(?![^(]*\))/g,Fi=/:([^]+)/,Bi=/\/\*[^]*?\*\//g;function Hi(e){const t={};return e.replace(Bi,"").split(ji).forEach(n=>{if(n){const s=n.split(Fi);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function Ge(e){let t="";if(ce(e))t=e;else if(F(e))for(let n=0;n<e.length;n++){const s=Ge(e[n]);s&&(t+=s+" ")}else if($(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}const Ui="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",Gi=Hs(Ui);function gr(e){return!!e||e===""}function Wi(e,t){if(e.length!==t.length)return!1;let n=!0;for(let s=0;n&&s<e.length;s++)n=Xt(e[s],t[s]);return n}function Xt(e,t){if(e===t)return!0;let n=fo(e),s=fo(t);if(n||s)return n&&s?e.getTime()===t.getTime():!1;if(n=rt(e),s=rt(t),n||s)return e===t;if(n=F(e),s=F(t),n||s)return n&&s?Wi(e,t):!1;if(n=$(e),s=$(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||!Xt(e[i],t[i]))return!1}}return String(e)===String(t)}function qs(e,t){return e.findIndex(n=>Xt(n,t))}const mr=e=>!!(e&&e.__v_isRef===!0),de=e=>ce(e)?e:e==null?"":F(e)||$(e)&&(e.toString===dr||!H(e.toString))?mr(e)?de(e.value):JSON.stringify(e,yr,2):String(e),yr=(e,t)=>mr(t)?yr(e,t.value):Bt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,o],r)=>(n[cs(s,r)+" =>"]=o,n),{})}:Qt(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>cs(n))}:rt(t)?cs(t):$(t)&&!F(t)&&!hr(t)?String(t):t,cs=(e,t="")=>{var n;return rt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/**
6
+ * @vue/reactivity v3.5.39
7
+ * (c) 2018-present Yuxi (Evan) You and Vue contributors
8
+ * @license MIT
9
+ **/let ve;class qi{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&ve&&(ve.active?(this.parent=ve,this.index=(ve.scopes||(ve.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!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=ve;try{return ve=this,t()}finally{ve=n}}}on(){++this._on===1&&(this.prevScope=ve,ve=this)}off(){if(this._on>0&&--this._on===0){if(ve===this)ve=this.prevScope;else{let t=ve;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.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 Ji(){return ve}let ie;const us=new WeakSet;class vr{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,ve&&(ve.active?ve.effects.push(this):this.flags&=-2)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,us.has(this)&&(us.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,po(this),_r(this);const t=ie,n=We;ie=this,We=!0;try{return this.fn()}finally{wr(this),ie=t,We=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,po(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?us.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){xs(this)&&this.run()}get dirty(){return xs(this)}}let br=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 Js(){br++}function zs(){if(--br>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 _r(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function wr(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 xs(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(xr(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function xr(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===yn)||(e.globalVersion=yn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!xs(e))))return;e.flags|=2;const t=e.dep,n=ie,s=We;ie=e,We=!0;try{_r(e);const o=e.fn(e._value);(t.version===0||st(o,e._value))&&(e.flags|=128,e._value=o,t.version++)}catch(o){throw t.version++,o}finally{ie=n,We=s,wr(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 We=!0;const Sr=[];function it(){Sr.push(We),We=!1}function lt(){const e=Sr.pop();We=e===void 0?!0:e}function po(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ie;ie=void 0;try{t()}finally{ie=n}}}let yn=0;class Yi{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 Qs{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!ie||!We||ie===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ie)n=this.activeLink=new Yi(ie,this),ie.deps?(n.prevDep=ie.depsTail,ie.depsTail.nextDep=n,ie.depsTail=n):ie.deps=ie.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=ie.depsTail,n.nextDep=void 0,ie.depsTail.nextDep=n,ie.depsTail=n,ie.deps===n&&(ie.deps=s)}return n}trigger(t){this.version++,yn++,this.notify(t)}notify(t){Js();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{zs()}}}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 Ss=new WeakMap,Nt=Symbol(""),ks=Symbol(""),vn=Symbol("");function we(e,t,n){if(We&&ie){let s=Ss.get(e);s||Ss.set(e,s=new Map);let o=s.get(n);o||(s.set(n,o=new Qs),o.map=s,o.key=n),o.track()}}function ht(e,t,n,s,o,r){const i=Ss.get(e);if(!i){yn++;return}const l=a=>{a&&a.trigger()};if(Js(),t==="clear")i.forEach(l);else{const a=F(e),f=a&&Gs(n);if(a&&n==="length"){const u=Number(s);i.forEach((h,y)=>{(y==="length"||y===vn||!rt(y)&&y>=u)&&l(h)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),f&&l(i.get(vn)),t){case"add":a?f&&l(i.get("length")):(l(i.get(Nt)),Bt(e)&&l(i.get(ks)));break;case"delete":a||(l(i.get(Nt)),Bt(e)&&l(i.get(ks)));break;case"set":Bt(e)&&l(i.get(Nt));break}}zs()}function Mt(e){const t=X(e);return t===e?t:(we(t,"iterate",vn),je(e)?t:t.map(qe))}function $n(e){return we(e=X(e),"iterate",vn),e}function tt(e,t){return yt(e)?Wt(Vt(e)?qe(t):t):qe(t)}const Qi={__proto__:null,[Symbol.iterator](){return fs(this,Symbol.iterator,e=>tt(this,e))},concat(...e){return Mt(this).concat(...e.map(t=>F(t)?Mt(t):t))},entries(){return fs(this,"entries",e=>(e[1]=tt(this,e[1]),e))},every(e,t){return ct(this,"every",e,t,void 0,arguments)},filter(e,t){return ct(this,"filter",e,t,n=>n.map(s=>tt(this,s)),arguments)},find(e,t){return ct(this,"find",e,t,n=>tt(this,n),arguments)},findIndex(e,t){return ct(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ct(this,"findLast",e,t,n=>tt(this,n),arguments)},findLastIndex(e,t){return ct(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ct(this,"forEach",e,t,void 0,arguments)},includes(...e){return ds(this,"includes",e)},indexOf(...e){return ds(this,"indexOf",e)},join(e){return Mt(this).join(e)},lastIndexOf(...e){return ds(this,"lastIndexOf",e)},map(e,t){return ct(this,"map",e,t,void 0,arguments)},pop(){return $t(this,"pop")},push(...e){return $t(this,"push",e)},reduce(e,...t){return go(this,"reduce",e,t)},reduceRight(e,...t){return go(this,"reduceRight",e,t)},shift(){return $t(this,"shift")},some(e,t){return ct(this,"some",e,t,void 0,arguments)},splice(...e){return $t(this,"splice",e)},toReversed(){return Mt(this).toReversed()},toSorted(e){return Mt(this).toSorted(e)},toSpliced(...e){return Mt(this).toSpliced(...e)},unshift(...e){return $t(this,"unshift",e)},values(){return fs(this,"values",e=>tt(this,e))}};function fs(e,t,n){const s=$n(e),o=s[t]();return s!==e&&!je(e)&&(o._next=o.next,o.next=()=>{const r=o._next();return r.done||(r.value=n(r.value)),r}),o}const Xi=Array.prototype;function ct(e,t,n,s,o,r){const i=$n(e),l=i!==e&&!je(e),a=i[t];if(a!==Xi[t]){const h=a.apply(e,r);return l?qe(h):h}let f=n;i!==e&&(l?f=function(h,y){return n.call(this,tt(e,h),y,e)}:n.length>2&&(f=function(h,y){return n.call(this,h,y,e)}));const u=a.call(i,f,s);return l&&o?o(u):u}function go(e,t,n,s){const o=$n(e),r=o!==e&&!je(e);let i=n,l=!1;o!==e&&(r?(l=s.length===0,i=function(f,u,h){return l&&(l=!1,f=tt(e,f)),n.call(this,f,tt(e,u),h,e)}):n.length>3&&(i=function(f,u,h){return n.call(this,f,u,h,e)}));const a=o[t](i,...s);return l?tt(e,a):a}function ds(e,t,n){const s=X(e);we(s,"iterate",vn);const o=s[t](...n);return(o===-1||o===!1)&&$s(n[0])?(n[0]=X(n[0]),s[t](...n)):o}function $t(e,t,n=[]){it(),Js();const s=X(e)[t].apply(e,n);return zs(),lt(),s}const Zi=Hs("__proto__,__v_isRef,__isVue"),Er=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(rt));function $i(e){rt(e)||(e=String(e));const t=X(this);return we(t,"has",e),t.hasOwnProperty(e)}class Ar{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?cl:Pr:r?Or:Tr).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const i=F(t);if(!o){let a;if(i&&(a=Qi[n]))return a;if(n==="hasOwnProperty")return $i}const l=Reflect.get(t,n,Se(t)?t:s);if((rt(n)?Er.has(n):Zi(n))||(o||we(t,"get",n),r))return l;if(Se(l)){const a=i&&Gs(n)?l:l.value;return o&&$(a)?As(a):a}return $(l)?o?As(l):es(l):l}}class Rr extends Ar{constructor(t=!1){super(!1,t)}set(t,n,s,o){let r=t[n];const i=F(t)&&Gs(n);if(!this._isShallow){const f=yt(r);if(!je(s)&&!yt(s)&&(r=X(r),s=X(s)),!i&&Se(r)&&!Se(s))return f||(r.value=s),!0}const l=i?Number(n)<t.length:Z(t,n),a=Reflect.set(t,n,s,Se(t)?t:o);return t===X(o)&&a&&(l?st(s,r)&&ht(t,"set",n,s):ht(t,"add",n,s)),a}deleteProperty(t,n){const s=Z(t,n);t[n];const o=Reflect.deleteProperty(t,n);return o&&s&&ht(t,"delete",n,void 0),o}has(t,n){const s=Reflect.has(t,n);return(!rt(n)||!Er.has(n))&&we(t,"has",n),s}ownKeys(t){return we(t,"iterate",F(t)?"length":Nt),Reflect.ownKeys(t)}}class el extends Ar{constructor(t=!1){super(!0,t)}set(t,n){return!0}deleteProperty(t,n){return!0}}const tl=new Rr,nl=new el,sl=new Rr(!0);const Es=e=>e,Rn=e=>Reflect.getPrototypeOf(e);function ol(e,t,n){return function(...s){const o=this.__v_raw,r=X(o),i=Bt(r),l=e==="entries"||e===Symbol.iterator&&i,a=e==="keys"&&i,f=o[e](...s),u=n?Es:t?Wt:qe;return!t&&we(r,"iterate",a?ks:Nt),Ce(Object.create(f),{next(){const{value:h,done:y}=f.next();return y?{value:h,done:y}:{value:l?[u(h[0]),u(h[1])]:u(h),done:y}}})}}function Tn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function rl(e,t){const n={get(o){const r=this.__v_raw,i=X(r),l=X(o);e||(st(o,l)&&we(i,"get",o),we(i,"get",l));const{has:a}=Rn(i),f=t?Es:e?Wt:qe;if(a.call(i,o))return f(r.get(o));if(a.call(i,l))return f(r.get(l));r!==i&&r.get(o)},get size(){const o=this.__v_raw;return!e&&we(X(o),"iterate",Nt),o.size},has(o){const r=this.__v_raw,i=X(r),l=X(o);return e||(st(o,l)&&we(i,"has",o),we(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=X(l),f=t?Es:e?Wt:qe;return!e&&we(a,"iterate",Nt),l.forEach((u,h)=>o.call(r,f(u),f(h),i))}};return Ce(n,e?{add:Tn("add"),set:Tn("set"),delete:Tn("delete"),clear:Tn("clear")}:{add(o){const r=X(this),i=Rn(r),l=X(o),a=!t&&!je(o)&&!yt(o)?l:o;return i.has.call(r,a)||st(o,a)&&i.has.call(r,o)||st(l,a)&&i.has.call(r,l)||(r.add(a),ht(r,"add",a,a)),this},set(o,r){!t&&!je(r)&&!yt(r)&&(r=X(r));const i=X(this),{has:l,get:a}=Rn(i);let f=l.call(i,o);f||(o=X(o),f=l.call(i,o));const u=a.call(i,o);return i.set(o,r),f?st(r,u)&&ht(i,"set",o,r):ht(i,"add",o,r),this},delete(o){const r=X(this),{has:i,get:l}=Rn(r);let a=i.call(r,o);a||(o=X(o),a=i.call(r,o)),l&&l.call(r,o);const f=r.delete(o);return a&&ht(r,"delete",o,void 0),f},clear(){const o=X(this),r=o.size!==0,i=o.clear();return r&&ht(o,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(o=>{n[o]=ol(o,e,t)}),n}function Xs(e,t){const n=rl(e,t);return(s,o,r)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?s:Reflect.get(Z(n,o)&&o in s?n:s,o,r)}const il={get:Xs(!1,!1)},ll={get:Xs(!1,!0)},al={get:Xs(!0,!1)};const Tr=new WeakMap,Or=new WeakMap,Pr=new WeakMap,cl=new WeakMap;function ul(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function es(e){return yt(e)?e:Zs(e,!1,tl,il,Tr)}function Ir(e){return Zs(e,!1,sl,ll,Or)}function As(e){return Zs(e,!0,nl,al,Pr)}function Zs(e,t,n,s,o){if(!$(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const r=o.get(e);if(r)return r;const i=ul(Di(e));if(i===0)return e;const l=new Proxy(e,i===2?s:n);return o.set(e,l),l}function Vt(e){return yt(e)?Vt(e.__v_raw):!!(e&&e.__v_isReactive)}function yt(e){return!!(e&&e.__v_isReadonly)}function je(e){return!!(e&&e.__v_isShallow)}function $s(e){return e?!!e.__v_raw:!1}function X(e){const t=e&&e.__v_raw;return t?X(t):e}function fl(e){return!Z(e,"__v_skip")&&Object.isExtensible(e)&&pr(e,"__v_skip",!0),e}const qe=e=>$(e)?es(e):e,Wt=e=>$(e)?As(e):e;function Se(e){return e?e.__v_isRef===!0:!1}function J(e){return Nr(e,!1)}function dl(e){return Nr(e,!0)}function Nr(e,t){return Se(e)?e:new hl(e,t)}class hl{constructor(t,n){this.dep=new Qs,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:X(t),this._value=n?t:qe(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,s=this.__v_isShallow||je(t)||yt(t);t=s?t:X(t),st(t,n)&&(this._rawValue=t,this._value=s?t:qe(t),this.dep.trigger())}}function Ht(e){return Se(e)?e.value:e}const pl={get:(e,t,n)=>t==="__v_raw"?e:Ht(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const o=e[t];return Se(o)&&!Se(n)?(o.value=n,!0):Reflect.set(e,t,n,s)}};function Vr(e){return Vt(e)?e:new Proxy(e,pl)}class gl{constructor(t,n,s){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Qs(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=yn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&ie!==this)return Cr(this,!0),!0}get value(){const t=this.dep.track();return xr(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function ml(e,t,n=!1){let s,o;return H(e)?s=e:(s=e.get,o=e.set),new gl(s,o,n)}const On={},Kn=new WeakMap;let Ot;function yl(e,t=!1,n=Ot){if(n){let s=Kn.get(n);s||Kn.set(n,s=[]),s.push(e)}}function vl(e,t,n=oe){const{immediate:s,deep:o,once:r,scheduler:i,augmentJob:l,call:a}=n,f=P=>o?P:je(P)||o===!1||o===0?pt(P,1):pt(P);let u,h,y,b,E=!1,S=!1;if(Se(e)?(h=()=>e.value,E=je(e)):Vt(e)?(h=()=>f(e),E=!0):F(e)?(S=!0,E=e.some(P=>Vt(P)||je(P)),h=()=>e.map(P=>{if(Se(P))return P.value;if(Vt(P))return f(P);if(H(P))return a?a(P,2):P()})):H(e)?t?h=a?()=>a(e,2):e:h=()=>{if(y){it();try{y()}finally{lt()}}const P=Ot;Ot=u;try{return a?a(e,3,[b]):e(b)}finally{Ot=P}}:h=ot,t&&o){const P=h,W=o===!0?1/0:o;h=()=>pt(P(),W)}const V=Ji(),N=()=>{u.stop(),V&&V.active&&Us(V.effects,u)};if(r&&t){const P=t;t=(...W)=>{const re=P(...W);return N(),re}}let A=S?new Array(e.length).fill(On):On;const M=P=>{if(!(!(u.flags&1)||!u.dirty&&!P))if(t){const W=u.run();if(P||o||E||(S?W.some((re,L)=>st(re,A[L])):st(W,A))){y&&y();const re=Ot;Ot=u;try{const L=[W,A===On?void 0:S&&A[0]===On?[]:A,b];A=W,a?a(t,3,L):t(...L)}finally{Ot=re}}}else u.run()};return l&&l(M),u=new vr(h),u.scheduler=i?()=>i(M,!1):M,b=P=>yl(P,!1,u),y=u.onStop=()=>{const P=Kn.get(u);if(P){if(a)a(P,4);else for(const W of P)W();Kn.delete(u)}},t?s?M(!0):A=u.run():i?i(M.bind(null,!0),!0):u.run(),N.pause=u.pause.bind(u),N.resume=u.resume.bind(u),N.stop=N,N}function pt(e,t=1/0,n){if(t<=0||!$(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Se(e))pt(e.value,t,n);else if(F(e))for(let s=0;s<e.length;s++)pt(e[s],t,n);else if(Qt(e)||Bt(e))e.forEach(s=>{pt(s,t,n)});else if(hr(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}/**
10
+ * @vue/runtime-core v3.5.39
11
+ * (c) 2018-present Yuxi (Evan) You and Vue contributors
12
+ * @license MIT
13
+ **/function En(e,t,n,s){try{return s?e(...s):e()}catch(o){ts(o,t,n)}}function Je(e,t,n,s){if(H(e)){const o=En(e,t,n,s);return o&&fr(o)&&o.catch(r=>{ts(r,t,n)}),o}if(F(e)){const o=[];for(let r=0;r<e.length;r++)o.push(Je(e[r],t,n,s));return o}}function ts(e,t,n,s=!0){const o=t?t.vnode:null,{errorHandler:r,throwUnhandledErrorInProduction:i}=t&&t.appContext.config||oe;if(t){let l=t.parent;const a=t.proxy,f=`https://vuejs.org/error-reference/#runtime-${n}`;for(;l;){const u=l.ec;if(u){for(let h=0;h<u.length;h++)if(u[h](e,a,f)===!1)return}l=l.parent}if(r){it(),En(r,null,10,[e,a,f]),lt();return}}bl(e,n,o,s,i)}function bl(e,t,n,s=!0,o=!1){if(o)throw e;console.error(e)}const Re=[];let et=-1;const Ut=[];let wt=null,Dt=0;const Mr=Promise.resolve();let Ln=null;function bn(e){const t=Ln||Mr;return e?t.then(this?e.bind(this):e):t}function Cl(e){let t=et+1,n=Re.length;for(;t<n;){const s=t+n>>>1,o=Re[s],r=Cn(o);r<e||r===e&&o.flags&2?t=s+1:n=s}return t}function eo(e){if(!(e.flags&1)){const t=Cn(e),n=Re[Re.length-1];!n||!(e.flags&2)&&t>=Cn(n)?Re.push(e):Re.splice(Cl(t),0,e),e.flags|=1,Dr()}}function Dr(){Ln||(Ln=Mr.then(Lr))}function _l(e){F(e)?Ut.push(...e):wt&&e.id===-1?wt.splice(Dt+1,0,e):e.flags&1||(Ut.push(e),e.flags|=1),Dr()}function mo(e,t,n=et+1){for(;n<Re.length;n++){const s=Re[n];if(s&&s.flags&2){if(e&&s.id!==e.uid)continue;Re.splice(n,1),n--,s.flags&4&&(s.flags&=-2),s(),s.flags&4||(s.flags&=-2)}}}function Kr(e){if(Ut.length){const t=[...new Set(Ut)].sort((n,s)=>Cn(n)-Cn(s));if(Ut.length=0,wt){wt.push(...t);return}for(wt=t,Dt=0;Dt<wt.length;Dt++){const n=wt[Dt];n.flags&4&&(n.flags&=-2),n.flags&8||n(),n.flags&=-2}wt=null,Dt=0}}const Cn=e=>e.id==null?e.flags&2?-1:1/0:e.id;function Lr(e){try{for(et=0;et<Re.length;et++){const t=Re[et];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),En(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;et<Re.length;et++){const t=Re[et];t&&(t.flags&=-2)}et=-1,Re.length=0,Kr(),Ln=null,(Re.length||Ut.length)&&Lr()}}let Me=null,jr=null;function jn(e){const t=Me;return Me=e,jr=e&&e.type.__scopeId||null,t}function Fr(e,t=Me,n){if(!t||e._n)return e;const s=(...o)=>{s._d&&Hn(-1);const r=jn(t);let i;try{i=e(...o)}finally{jn(r),s._d&&Hn(1)}return i};return s._n=!0,s._c=!0,s._d=!0,s}function xt(e,t){if(Me===null)return e;const n=rs(Me),s=e.dirs||(e.dirs=[]);for(let o=0;o<t.length;o++){let[r,i,l,a=oe]=t[o];r&&(H(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 Rt(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&&(it(),Je(a,n,8,[e.el,l,e,t]),lt())}}function Nn(e,t){if(xe){let n=xe.provides;const s=xe.parent&&xe.parent.provides;s===n&&(n=xe.provides=Object.create(s)),n[e]=t}}function gt(e,t,n=!1){const s=Sa();if(s||Gt){let o=Gt?Gt._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&&H(t)?t.call(s&&s.proxy):t}}const wl=Symbol.for("v-scx"),xl=()=>gt(wl);function Vn(e,t,n){return Br(e,t,n)}function Br(e,t,n=oe){const{immediate:s,deep:o,flush:r,once:i}=n,l=Ce({},n),a=t&&s||!t&&r!=="post";let f;if(wn){if(r==="sync"){const b=xl();f=b.__watcherHandles||(b.__watcherHandles=[])}else if(!a){const b=()=>{};return b.stop=ot,b.resume=ot,b.pause=ot,b}}const u=xe;l.call=(b,E,S)=>Je(b,u,E,S);let h=!1;r==="post"?l.scheduler=b=>{Ee(b,u&&u.suspense)}:r!=="sync"&&(h=!0,l.scheduler=(b,E)=>{E?b():eo(b)}),l.augmentJob=b=>{t&&(b.flags|=4),h&&(b.flags|=2,u&&(b.id=u.uid,b.i=u))};const y=vl(e,t,l);return wn&&(f?f.push(y):a&&y()),y}function Sl(e,t,n){const s=this.proxy,o=ce(e)?e.includes(".")?Hr(s,e):()=>s[e]:e.bind(s,s);let r;H(t)?r=t:(r=t.handler,n=t);const i=An(this),l=Br(o,r.bind(s),n);return i(),l}function Hr(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 _t=new WeakMap,Ur=Symbol("_vte"),kl=e=>e.__isTeleport,Pt=e=>e&&(e.disabled||e.disabled===""),El=e=>e&&(e.defer||e.defer===""),yo=e=>typeof SVGElement<"u"&&e instanceof SVGElement,vo=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Rs=(e,t)=>{const n=e&&e.to;return ce(n)?t?t(n):null:n},Al={name:"Teleport",__isTeleport:!0,process(e,t,n,s,o,r,i,l,a,f){const{mc:u,pc:h,pbc:y,o:{insert:b,querySelector:E,createText:S,createComment:V,parentNode:N}}=f,A=Pt(t.props);let{dynamicChildren:M}=t;const P=(L,ee,z)=>{L.shapeFlag&16&&u(L.children,ee,z,o,r,i,l,a)},W=(L=t)=>{const ee=Pt(L.props),z=L.target=Rs(L.props,E),le=Ts(z,L,S,b);z&&(i!=="svg"&&yo(z)?i="svg":i!=="mathml"&&vo(z)&&(i="mathml"),o&&o.isCE&&(o.ce._teleportTargets||(o.ce._teleportTargets=new Set)).add(z),ee||(P(L,z,le),sn(L,!1)))},re=L=>{const ee=()=>{if(_t.get(L)===ee){if(_t.delete(L),Pt(L.props)){const z=N(L.el)||n;P(L,z,L.anchor),sn(L,!0)}W(L)}};_t.set(L,ee),Ee(ee,r)};if(e==null){const L=t.el=S(""),ee=t.anchor=S("");if(b(L,n,s),b(ee,n,s),El(t.props)||r&&r.pendingBranch){re(t);return}A&&(P(t,n,ee),sn(t,!0)),W()}else{t.el=e.el;const L=t.anchor=e.anchor,ee=_t.get(e);if(ee){ee.flags|=8,_t.delete(e),re(t);return}t.targetStart=e.targetStart;const z=t.target=e.target,le=t.targetAnchor=e.targetAnchor,me=Pt(e.props),Pe=me?n:z,ae=me?L:le;if(i==="svg"||yo(z)?i="svg":(i==="mathml"||vo(z))&&(i="mathml"),M?(y(e.dynamicChildren,M,Pe,o,r,i,l),ro(e,t,!0)):a||h(e,t,Pe,ae,o,r,i,l,!1),A)me?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Pn(t,n,L,f,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const Ie=Rs(t.props,E);Ie&&(t.target=Ie,Pn(t,Ie,null,f,0))}else me&&Pn(t,z,le,f,1);sn(t,A)}},remove(e,t,n,{um:s,o:{remove:o}},r){const{shapeFlag:i,children:l,anchor:a,targetStart:f,targetAnchor:u,target:h,props:y}=e,b=Pt(y),E=r||!b,S=_t.get(e);if(S&&(S.flags|=8,_t.delete(e)),h&&(o(f),o(u)),r&&o(a),!S&&(b||h)&&i&16)for(let V=0;V<l.length;V++){const N=l[V];s(N,t,n,E,!!N.dynamicChildren)}},move:Pn,hydrate:Rl};function Pn(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:f,props:u}=e,h=r===2;if(h&&s(i,t,n),!_t.has(e)&&(!h||Pt(u))&&a&16)for(let y=0;y<f.length;y++)o(f[y],t,n,2);h&&s(l,t,n)}function Rl(e,t,n,s,o,r,{o:{nextSibling:i,parentNode:l,querySelector:a,insert:f,createText:u}},h){function y(V,N){let A=N;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)}}function b(V,N){N.anchor=h(i(V),N,l(V),n,s,o,r)}const E=t.target=Rs(t.props,a),S=Pt(t.props);if(E){const V=E._lpa||E.firstChild;t.shapeFlag&16&&(S?(b(e,t),y(E,V),t.targetAnchor||Ts(E,t,u,f,l(e)===E?e:null)):(t.anchor=i(e),y(E,V),t.targetAnchor||Ts(E,t,u,f),h(V&&i(V),t,E,n,s,o,r))),sn(t,S)}else S&&t.shapeFlag&16&&(b(e,t),t.targetStart=e,t.targetAnchor=i(e));return t.anchor&&i(t.anchor)}const Tl=Al;function sn(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 Ts(e,t,n,s,o=null){const r=t.targetStart=n(""),i=t.targetAnchor=n("");return r[Ur]=i,e&&(s(r,e,o),s(i,e,o)),i}const hs=Symbol("_leaveCb");function to(e,t){e.shapeFlag&6&&e.component?(e.transition=t,to(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 Gr(e,t){return H(e)?Ce({name:e.name},t,{setup:e}):e}function Wr(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function bo(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const Fn=new WeakMap;function un(e,t,n,s,o=!1){if(F(e)){e.forEach((S,V)=>un(S,t&&(F(t)?t[V]:t),n,s,o));return}if(fn(s)&&!o){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&un(e,t,n,s.component.subTree);return}const r=s.shapeFlag&4?rs(s.component):s.el,i=o?null:r,{i:l,r:a}=e,f=t&&t.r,u=l.refs===oe?l.refs={}:l.refs,h=l.setupState,y=X(h),b=h===oe?ur:S=>bo(u,S)?!1:Z(y,S),E=(S,V)=>!(V&&bo(u,V));if(f!=null&&f!==a){if(Co(t),ce(f))u[f]=null,b(f)&&(h[f]=null);else if(Se(f)){const S=t;E(f,S.k)&&(f.value=null),S.k&&(u[S.k]=null)}}if(H(a)){it();try{En(a,l,12,[i,u])}finally{lt()}}else{const S=ce(a),V=Se(a);if(S||V){const N=()=>{if(e.f){const A=S?b(a)?h[a]:u[a]:E()||!e.k?a.value:u[e.k];if(o)F(A)&&Us(A,r);else if(F(A))A.includes(r)||A.push(r);else if(S)u[a]=[r],b(a)&&(h[a]=u[a]);else{const M=[r];E(a,e.k)&&(a.value=M),e.k&&(u[e.k]=M)}}else S?(u[a]=i,b(a)&&(h[a]=i)):V&&(E(a,e.k)&&(a.value=i),e.k&&(u[e.k]=i))};if(i){const A=()=>{N(),Fn.delete(e)};A.id=-1,Fn.set(e,A),Ee(A,n)}else Co(e),N()}}}function Co(e){const t=Fn.get(e);t&&(t.flags|=8,Fn.delete(e))}Zn().requestIdleCallback;Zn().cancelIdleCallback;const fn=e=>!!e.type.__asyncLoader,qr=e=>e.type.__isKeepAlive;function Ol(e,t){Jr(e,"a",t)}function Pl(e,t){Jr(e,"da",t)}function Jr(e,t,n=xe){const s=e.__wdc||(e.__wdc=()=>{let o=n;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(ns(t,s,n),n){let o=n.parent;for(;o&&o.parent;)qr(o.parent.vnode)&&Il(s,t,n,o),o=o.parent}}function Il(e,t,n,s){const o=ns(t,e,s,!0);no(()=>{Us(s[t],o)},n)}function ns(e,t,n=xe,s=!1){if(n){const o=n[e]||(n[e]=[]),r=t.__weh||(t.__weh=(...i)=>{it();const l=An(n),a=Je(t,n,e,i);return l(),lt(),a});return s?o.unshift(r):o.push(r),r}}const vt=e=>(t,n=xe)=>{(!wn||e==="sp")&&ns(e,(...s)=>t(...s),n)},Nl=vt("bm"),zr=vt("m"),Vl=vt("bu"),Ml=vt("u"),Dl=vt("bum"),no=vt("um"),Kl=vt("sp"),Ll=vt("rtg"),jl=vt("rtc");function Fl(e,t=xe){ns("ec",e,t)}const Bl="components";function Os(e,t){return Ul(Bl,e,!0,t)||e}const Hl=Symbol.for("v-ndc");function Ul(e,t,n=!0,s=!1){const o=Me||xe;if(o){const r=o.type;{const l=Ta(r,!1);if(l&&(l===t||l===Te(t)||l===Qn(Te(t))))return r}const i=_o(o[e]||r[e],t)||_o(o.appContext[e],t);return!i&&s?r:i}}function _o(e,t){return e&&(e[t]||e[Te(t)]||e[Qn(Te(t))])}function wo(e,t,n,s){let o;const r=n,i=F(e);if(i||ce(e)){const l=i&&Vt(e);let a=!1,f=!1;l&&(a=!je(e),f=yt(e),e=$n(e)),o=new Array(e.length);for(let u=0,h=e.length;u<h;u++)o[u]=t(a?f?Wt(qe(e[u])):qe(e[u]):e[u],u,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($(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,f=l.length;a<f;a++){const u=l[a];o[a]=t(e[u],u,a,r)}}else o=[];return o}const Ps=e=>e?pi(e)?rs(e):Ps(e.parent):null,dn=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=>Ps(e.parent),$root:e=>Ps(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Qr(e),$forceUpdate:e=>e.f||(e.f=()=>{eo(e.update)}),$nextTick:e=>e.n||(e.n=bn.bind(e.proxy)),$watch:e=>Sl.bind(e)}),ps=(e,t)=>e!==oe&&!e.__isScriptSetup&&Z(e,t),Gl={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 y=i[t];if(y!==void 0)switch(y){case 1:return s[t];case 2:return o[t];case 4:return n[t];case 3:return r[t]}else{if(ps(s,t))return i[t]=1,s[t];if(o!==oe&&Z(o,t))return i[t]=2,o[t];if(Z(r,t))return i[t]=3,r[t];if(n!==oe&&Z(n,t))return i[t]=4,n[t];Is&&(i[t]=0)}}const f=dn[t];let u,h;if(f)return t==="$attrs"&&we(e.attrs,"get",""),f(e);if((u=l.__cssModules)&&(u=u[t]))return u;if(n!==oe&&Z(n,t))return i[t]=4,n[t];if(h=a.config.globalProperties,Z(h,t))return h[t]},set({_:e},t,n){const{data:s,setupState:o,ctx:r}=e;return ps(o,t)?(o[t]=n,!0):s!==oe&&Z(s,t)?(s[t]=n,!0):Z(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!==oe&&l[0]!=="$"&&Z(e,l)||ps(t,l)||Z(r,l)||Z(s,l)||Z(dn,l)||Z(o.config.globalProperties,l)||(a=i.__cssModules)&&a[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Z(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function xo(e){return F(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Is=!0;function Wl(e){const t=Qr(e),n=e.proxy,s=e.ctx;Is=!1,t.beforeCreate&&So(t.beforeCreate,e,"bc");const{data:o,computed:r,methods:i,watch:l,provide:a,inject:f,created:u,beforeMount:h,mounted:y,beforeUpdate:b,updated:E,activated:S,deactivated:V,beforeDestroy:N,beforeUnmount:A,destroyed:M,unmounted:P,render:W,renderTracked:re,renderTriggered:L,errorCaptured:ee,serverPrefetch:z,expose:le,inheritAttrs:me,components:Pe,directives:ae,filters:Ie}=t;if(f&&ql(f,s,null),i)for(const Y in i){const q=i[Y];H(q)&&(s[Y]=q.bind(n))}if(o){const Y=o.call(n,n);$(Y)&&(e.data=es(Y))}if(Is=!0,r)for(const Y in r){const q=r[Y],Ke=H(q)?q.bind(n,n):H(q.get)?q.get.bind(n,n):ot,Fe=!H(q)&&H(q.set)?q.set.bind(n):ot,Le=Ve({get:Ke,set:Fe});Object.defineProperty(s,Y,{enumerable:!0,configurable:!0,get:()=>Le.value,set:_e=>Le.value=_e})}if(l)for(const Y in l)Yr(l[Y],s,n,Y);if(a){const Y=H(a)?a.call(n):a;Reflect.ownKeys(Y).forEach(q=>{Nn(q,Y[q])})}u&&So(u,e,"c");function ne(Y,q){F(q)?q.forEach(Ke=>Y(Ke.bind(n))):q&&Y(q.bind(n))}if(ne(Nl,h),ne(zr,y),ne(Vl,b),ne(Ml,E),ne(Ol,S),ne(Pl,V),ne(Fl,ee),ne(jl,re),ne(Ll,L),ne(Dl,A),ne(no,P),ne(Kl,z),F(le))if(le.length){const Y=e.exposed||(e.exposed={});le.forEach(q=>{Object.defineProperty(Y,q,{get:()=>n[q],set:Ke=>n[q]=Ke,enumerable:!0})})}else e.exposed||(e.exposed={});W&&e.render===ot&&(e.render=W),me!=null&&(e.inheritAttrs=me),Pe&&(e.components=Pe),ae&&(e.directives=ae),z&&Wr(e)}function ql(e,t,n=ot){F(e)&&(e=Ns(e));for(const s in e){const o=e[s];let r;$(o)?"default"in o?r=gt(o.from||s,o.default,!0):r=gt(o.from||s):r=gt(o),Se(r)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>r.value,set:i=>r.value=i}):t[s]=r}}function So(e,t,n){Je(F(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function Yr(e,t,n,s){let o=s.includes(".")?Hr(n,s):()=>n[s];if(ce(e)){const r=t[e];H(r)&&Vn(o,r)}else if(H(e))Vn(o,e.bind(n));else if($(e))if(F(e))e.forEach(r=>Yr(r,t,n,s));else{const r=H(e.handler)?e.handler.bind(n):t[e.handler];H(r)&&Vn(o,r,e)}}function Qr(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(f=>Bn(a,f,i,!0)),Bn(a,t,i)),$(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=Jl[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Jl={data:ko,props:Eo,emits:Eo,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:Yl,provide:ko,inject:zl};function ko(e,t){return t?e?function(){return Ce(H(e)?e.call(this,this):e,H(t)?t.call(this,this):t)}:t:e}function zl(e,t){return on(Ns(e),Ns(t))}function Ns(e){if(F(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 Eo(e,t){return e?F(e)&&F(t)?[...new Set([...e,...t])]:Ce(Object.create(null),xo(e),xo(t??{})):t}function Yl(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 Xr(){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 Ql=0;function Xl(e,t){return function(s,o=null){H(s)||(s=Ce({},s)),o!=null&&!$(o)&&(o=null);const r=Xr(),i=new WeakSet,l=[];let a=!1;const f=r.app={_uid:Ql++,_component:s,_props:o,_container:null,_context:r,_instance:null,version:Pa,get config(){return r.config},set config(u){},use(u,...h){return i.has(u)||(u&&H(u.install)?(i.add(u),u.install(f,...h)):H(u)&&(i.add(u),u(f,...h))),f},mixin(u){return r.mixins.includes(u)||r.mixins.push(u),f},component(u,h){return h?(r.components[u]=h,f):r.components[u]},directive(u,h){return h?(r.directives[u]=h,f):r.directives[u]},mount(u,h,y){if(!a){const b=f._ceVNode||be(s,o);return b.appContext=r,y===!0?y="svg":y===!1&&(y=void 0),e(b,u,y),a=!0,f._container=u,u.__vue_app__=f,rs(b.component)}},onUnmount(u){l.push(u)},unmount(){a&&(Je(l,f._instance,16),e(null,f._container),delete f._container.__vue_app__)},provide(u,h){return r.provides[u]=h,f},runWithContext(u){const h=Gt;Gt=f;try{return u()}finally{Gt=h}}};return f}}let Gt=null;const Zl=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Te(t)}Modifiers`]||e[`${At(t)}Modifiers`];function $l(e,t,...n){if(e.isUnmounted)return;const s=e.vnode.props||oe;let o=n;const r=t.startsWith("update:"),i=r&&Zl(s,t.slice(7));i&&(i.trim&&(o=n.map(u=>ce(u)?u.trim():u)),i.number&&(o=n.map(Xn)));let l,a=s[l=as(t)]||s[l=as(Te(t))];!a&&r&&(a=s[l=as(At(t))]),a&&Je(a,e,6,o);const f=s[l+"Once"];if(f){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Je(f,e,6,o)}}const ea=new WeakMap;function Zr(e,t,n=!1){const s=n?ea:t.emitsCache,o=s.get(e);if(o!==void 0)return o;const r=e.emits;let i={},l=!1;if(!H(e)){const a=f=>{const u=Zr(f,t,!0);u&&(l=!0,Ce(i,u))};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!r&&!l?($(e)&&s.set(e,null),null):(F(r)?r.forEach(a=>i[a]=null):Ce(i,r),$(e)&&s.set(e,i),i)}function ss(e,t){return!e||!Jn(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),Z(e,t[0].toLowerCase()+t.slice(1))||Z(e,At(t))||Z(e,t))}function Ao(e){const{type:t,vnode:n,proxy:s,withProxy:o,propsOptions:[r],slots:i,attrs:l,emit:a,render:f,renderCache:u,props:h,data:y,setupState:b,ctx:E,inheritAttrs:S}=e,V=jn(e);let N,A;try{if(n.shapeFlag&4){const P=o||s,W=P;N=nt(f.call(W,P,u,h,b,y,E)),A=l}else{const P=t;N=nt(P.length>1?P(h,{attrs:l,slots:i,emit:a}):P(h,null)),A=t.props?l:ta(l)}}catch(P){hn.length=0,ts(P,e,1),N=be(Et)}let M=N;if(A&&S!==!1){const P=Object.keys(A),{shapeFlag:W}=M;P.length&&W&7&&(r&&P.some(zn)&&(A=na(A,r)),M=qt(M,A,!1,!0))}return n.dirs&&(M=qt(M,null,!1,!0),M.dirs=M.dirs?M.dirs.concat(n.dirs):n.dirs),n.transition&&to(M,n.transition),N=M,jn(V),N}const ta=e=>{let t;for(const n in e)(n==="class"||n==="style"||Jn(n))&&((t||(t={}))[n]=e[n]);return t},na=(e,t)=>{const n={};for(const s in e)(!zn(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function sa(e,t,n){const{props:s,children:o,component:r}=e,{props:i,children:l,patchFlag:a}=t,f=r.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&a>=0){if(a&1024)return!0;if(a&16)return s?Ro(s,i,f):!!i;if(a&8){const u=t.dynamicProps;for(let h=0;h<u.length;h++){const y=u[h];if($r(i,s,y)&&!ss(f,y))return!0}}}else return(o||l)&&(!l||!l.$stable)?!0:s===i?!1:s?i?Ro(s,i,f):!0:!!i;return!1}function Ro(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($r(t,e,r)&&!ss(n,r))return!0}return!1}function $r(e,t,n){const s=e[n],o=t[n];return n==="style"&&$(s)&&$(o)?!Xt(s,o):s!==o}function oa({vnode:e,parent:t,suspense:n},s){for(;t;){const o=t.subTree;if(o.suspense&&o.suspense.activeBranch===e&&(o.suspense.vnode.el=o.el=s,e=o),o===e)(e=t.vnode).el=s,t=t.parent;else break}n&&n.activeBranch===e&&(n.vnode.el=s)}const ei={},ti=()=>Object.create(ei),ni=e=>Object.getPrototypeOf(e)===ei;function ra(e,t,n,s=!1){const o={},r=ti();e.propsDefaults=Object.create(null),si(e,t,o,r);for(const i in e.propsOptions[0])i in o||(o[i]=void 0);n?e.props=s?o:Ir(o):e.type.props?e.props=o:e.props=r,e.attrs=r}function ia(e,t,n,s){const{props:o,attrs:r,vnode:{patchFlag:i}}=e,l=X(o),[a]=e.propsOptions;let f=!1;if((s||i>0)&&!(i&16)){if(i&8){const u=e.vnode.dynamicProps;for(let h=0;h<u.length;h++){let y=u[h];if(ss(e.emitsOptions,y))continue;const b=t[y];if(a)if(Z(r,y))b!==r[y]&&(r[y]=b,f=!0);else{const E=Te(y);o[E]=Vs(a,l,E,b,e,!1)}else b!==r[y]&&(r[y]=b,f=!0)}}}else{si(e,t,o,r)&&(f=!0);let u;for(const h in l)(!t||!Z(t,h)&&((u=At(h))===h||!Z(t,u)))&&(a?n&&(n[h]!==void 0||n[u]!==void 0)&&(o[h]=Vs(a,l,h,void 0,e,!0)):delete o[h]);if(r!==l)for(const h in r)(!t||!Z(t,h))&&(delete r[h],f=!0)}f&&ht(e.attrs,"set","")}function si(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 f=t[a];let u;o&&Z(o,u=Te(a))?!r||!r.includes(u)?n[u]=f:(l||(l={}))[u]=f:ss(e.emitsOptions,a)||(!(a in s)||f!==s[a])&&(s[a]=f,i=!0)}if(r){const a=X(n),f=l||oe;for(let u=0;u<r.length;u++){const h=r[u];n[h]=Vs(o,a,h,f[h],e,!Z(f,h))}}return i}function Vs(e,t,n,s,o,r){const i=e[n];if(i!=null){const l=Z(i,"default");if(l&&s===void 0){const a=i.default;if(i.type!==Function&&!i.skipFactory&&H(a)){const{propsDefaults:f}=o;if(n in f)s=f[n];else{const u=An(o);s=f[n]=a.call(null,t),u()}}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 la=new WeakMap;function oi(e,t,n=!1){const s=n?la:t.propsCache,o=s.get(e);if(o)return o;const r=e.props,i={},l=[];let a=!1;if(!H(e)){const u=h=>{a=!0;const[y,b]=oi(h,t,!0);Ce(i,y),b&&l.push(...b)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!r&&!a)return $(e)&&s.set(e,Ft),Ft;if(F(r))for(let u=0;u<r.length;u++){const h=Te(r[u]);To(h)&&(i[h]=oe)}else if(r)for(const u in r){const h=Te(u);if(To(h)){const y=r[u],b=i[h]=F(y)||H(y)?{type:y}:Ce({},y),E=b.type;let S=!1,V=!0;if(F(E))for(let N=0;N<E.length;++N){const A=E[N],M=H(A)&&A.name;if(M==="Boolean"){S=!0;break}else M==="String"&&(V=!1)}else S=H(E)&&E.name==="Boolean";b[0]=S,b[1]=V,(S||Z(b,"default"))&&l.push(h)}}const f=[i,l];return $(e)&&s.set(e,f),f}function To(e){return e[0]!=="$"&&!ln(e)}const so=e=>e==="_"||e==="_ctx"||e==="$stable",oo=e=>F(e)?e.map(nt):[nt(e)],aa=(e,t,n)=>{if(t._n)return t;const s=Fr((...o)=>oo(t(...o)),n);return s._c=!1,s},ri=(e,t,n)=>{const s=e._ctx;for(const o in e){if(so(o))continue;const r=e[o];if(H(r))t[o]=aa(o,r,s);else if(r!=null){const i=oo(r);t[o]=()=>i}}},ii=(e,t)=>{const n=oo(t);e.slots.default=()=>n},li=(e,t,n)=>{for(const s in t)(n||!so(s))&&(e[s]=t[s])},ca=(e,t,n)=>{const s=e.slots=ti();if(e.vnode.shapeFlag&32){const o=t._;o?(li(s,t,n),n&&pr(s,"_",o,!0)):ri(t,s)}else t&&ii(e,t)},ua=(e,t,n)=>{const{vnode:s,slots:o}=e;let r=!0,i=oe;if(s.shapeFlag&32){const l=t._;l?n&&l===1?r=!1:li(o,t,n):(r=!t.$stable,ri(t,o)),i=t}else t&&(ii(e,t),i={default:1});if(r)for(const l in o)!so(l)&&i[l]==null&&delete o[l]},Ee=ga;function fa(e){return da(e)}function da(e,t){const n=Zn();n.__VUE__=!0;const{insert:s,remove:o,patchProp:r,createElement:i,createText:l,createComment:a,setText:f,setElementText:u,parentNode:h,nextSibling:y,setScopeId:b=ot,insertStaticContent:E}=e,S=(c,d,g,C=null,v=null,m=null,x=void 0,k=null,R=!!d.dynamicChildren)=>{if(c===d)return;c&&!en(c,d)&&(C=_(c),_e(c,v,m,!0),c=null),d.patchFlag===-2&&(R=!1,d.dynamicChildren=null);const{type:w,ref:j,shapeFlag:O}=d;switch(w){case os:V(c,d,g,C);break;case Et:N(c,d,g,C);break;case Mn:c==null&&A(d,g,C,x);break;case Ue:Pe(c,d,g,C,v,m,x,k,R);break;default:O&1?W(c,d,g,C,v,m,x,k,R):O&6?ae(c,d,g,C,v,m,x,k,R):(O&64||O&128)&&w.process(c,d,g,C,v,m,x,k,R,D)}j!=null&&v?un(j,c&&c.ref,m,d||c,!d):j==null&&c&&c.ref!=null&&un(c.ref,null,m,c,!0)},V=(c,d,g,C)=>{if(c==null)s(d.el=l(d.children),g,C);else{const v=d.el=c.el;d.children!==c.children&&f(v,d.children)}},N=(c,d,g,C)=>{c==null?s(d.el=a(d.children||""),g,C):d.el=c.el},A=(c,d,g,C)=>{[c.el,c.anchor]=E(c.children,d,g,C,c.el,c.anchor)},M=({el:c,anchor:d},g,C)=>{let v;for(;c&&c!==d;)v=y(c),s(c,g,C),c=v;s(d,g,C)},P=({el:c,anchor:d})=>{let g;for(;c&&c!==d;)g=y(c),o(c),c=g;o(d)},W=(c,d,g,C,v,m,x,k,R)=>{if(d.type==="svg"?x="svg":d.type==="math"&&(x="mathml"),c==null)re(d,g,C,v,m,x,k,R);else{const w=c.el&&c.el._isVueCE?c.el:null;try{w&&w._beginPatch(),z(c,d,v,m,x,k,R)}finally{w&&w._endPatch()}}},re=(c,d,g,C,v,m,x,k)=>{let R,w;const{props:j,shapeFlag:O,transition:K,dirs:B}=c;if(R=c.el=i(c.type,m,j&&j.is,j),O&8?u(R,c.children):O&16&&ee(c.children,R,null,C,v,gs(c,m),x,k),B&&Rt(c,null,C,"created"),L(R,c,c.scopeId,x,C),j){for(const se in j)se!=="value"&&!ln(se)&&r(R,se,null,j[se],m,C);"value"in j&&r(R,"value",null,j.value,m),(w=j.onVnodeBeforeMount)&&$e(w,C,c)}B&&Rt(c,null,C,"beforeMount");const G=ha(v,K);G&&K.beforeEnter(R),s(R,d,g),((w=j&&j.onVnodeMounted)||G||B)&&Ee(()=>{try{w&&$e(w,C,c),G&&K.enter(R),B&&Rt(c,null,C,"mounted")}finally{}},v)},L=(c,d,g,C,v)=>{if(g&&b(c,g),C)for(let m=0;m<C.length;m++)b(c,C[m]);if(v){let m=v.subTree;if(d===m||ui(m.type)&&(m.ssContent===d||m.ssFallback===d)){const x=v.vnode;L(c,x,x.scopeId,x.slotScopeIds,v.parent)}}},ee=(c,d,g,C,v,m,x,k,R=0)=>{for(let w=R;w<c.length;w++){const j=c[w]=k?dt(c[w]):nt(c[w]);S(null,j,d,g,C,v,m,x,k)}},z=(c,d,g,C,v,m,x)=>{const k=d.el=c.el;let{patchFlag:R,dynamicChildren:w,dirs:j}=d;R|=c.patchFlag&16;const O=c.props||oe,K=d.props||oe;let B;if(g&&Tt(g,!1),(B=K.onVnodeBeforeUpdate)&&$e(B,g,d,c),j&&Rt(d,c,g,"beforeUpdate"),g&&Tt(g,!0),w&&(!c.dynamicChildren||c.dynamicChildren.length!==w.length)&&(R=0,x=!1,w=null),(O.innerHTML&&K.innerHTML==null||O.textContent&&K.textContent==null)&&u(k,""),w?le(c.dynamicChildren,w,k,g,C,gs(d,v),m):x||q(c,d,k,null,g,C,gs(d,v),m,!1),R>0){if(R&16)me(k,O,K,g,v);else if(R&2&&O.class!==K.class&&r(k,"class",null,K.class,v),R&4&&r(k,"style",O.style,K.style,v),R&8){const G=d.dynamicProps;for(let se=0;se<G.length;se++){const te=G[se],fe=O[te],ye=K[te];(ye!==fe||te==="value")&&r(k,te,fe,ye,v,g)}}R&1&&c.children!==d.children&&u(k,d.children)}else!x&&w==null&&me(k,O,K,g,v);((B=K.onVnodeUpdated)||j)&&Ee(()=>{B&&$e(B,g,d,c),j&&Rt(d,c,g,"updated")},C)},le=(c,d,g,C,v,m,x)=>{for(let k=0;k<d.length;k++){const R=c[k],w=d[k],j=R.el&&(R.type===Ue||!en(R,w)||R.shapeFlag&198)?h(R.el):g;S(R,w,j,null,C,v,m,x,!0)}},me=(c,d,g,C,v)=>{if(d!==g){if(d!==oe)for(const m in d)!ln(m)&&!(m in g)&&r(c,m,d[m],null,v,C);for(const m in g){if(ln(m))continue;const x=g[m],k=d[m];x!==k&&m!=="value"&&r(c,m,k,x,v,C)}"value"in g&&r(c,"value",d.value,g.value,v)}},Pe=(c,d,g,C,v,m,x,k,R)=>{const w=d.el=c?c.el:l(""),j=d.anchor=c?c.anchor:l("");let{patchFlag:O,dynamicChildren:K,slotScopeIds:B}=d;B&&(k=k?k.concat(B):B),c==null?(s(w,g,C),s(j,g,C),ee(d.children||[],g,j,v,m,x,k,R)):O>0&&O&64&&K&&c.dynamicChildren&&c.dynamicChildren.length===K.length?(le(c.dynamicChildren,K,g,v,m,x,k),(d.key!=null||v&&d===v.subTree)&&ro(c,d,!0)):q(c,d,g,j,v,m,x,k,R)},ae=(c,d,g,C,v,m,x,k,R)=>{d.slotScopeIds=k,c==null?d.shapeFlag&512?v.ctx.activate(d,g,C,x,R):Ie(d,g,C,v,m,x,R):Ye(c,d,R)},Ie=(c,d,g,C,v,m,x)=>{const k=c.component=xa(c,C,v);if(qr(c)&&(k.ctx.renderer=D),ka(k,!1,x),k.asyncDep){if(v&&v.registerDep(k,ne,x),!c.el){const R=k.subTree=be(Et);N(null,R,d,g),c.placeholder=R.el}}else ne(k,c,d,g,v,m,x)},Ye=(c,d,g)=>{const C=d.component=c.component;if(sa(c,d,g))if(C.asyncDep&&!C.asyncResolved){Y(C,d,g);return}else C.next=d,C.update();else d.el=c.el,C.vnode=d},ne=(c,d,g,C,v,m,x)=>{const k=()=>{if(c.isMounted){let{next:O,bu:K,u:B,parent:G,vnode:se}=c;{const Xe=ai(c);if(Xe){O&&(O.el=se.el,Y(c,O,x)),Xe.asyncDep.then(()=>{Ee(()=>{c.isUnmounted||w()},v)});return}}let te=O,fe;Tt(c,!1),O?(O.el=se.el,Y(c,O,x)):O=se,K&&In(K),(fe=O.props&&O.props.onVnodeBeforeUpdate)&&$e(fe,G,O,se),Tt(c,!0);const ye=Ao(c),Qe=c.subTree;c.subTree=ye,S(Qe,ye,h(Qe.el),_(Qe),c,v,m),O.el=ye.el,te===null&&oa(c,ye.el),B&&Ee(B,v),(fe=O.props&&O.props.onVnodeUpdated)&&Ee(()=>$e(fe,G,O,se),v)}else{let O;const{el:K,props:B}=d,{bm:G,m:se,parent:te,root:fe,type:ye}=c,Qe=fn(d);Tt(c,!1),G&&In(G),!Qe&&(O=B&&B.onVnodeBeforeMount)&&$e(O,te,d),Tt(c,!0);{fe.ce&&fe.ce._hasShadowRoot()&&fe.ce._injectChildStyle(ye,c.parent?c.parent.type:void 0);const Xe=c.subTree=Ao(c);S(null,Xe,g,C,c,v,m),d.el=Xe.el}if(se&&Ee(se,v),!Qe&&(O=B&&B.onVnodeMounted)){const Xe=d;Ee(()=>$e(O,te,Xe),v)}(d.shapeFlag&256||te&&fn(te.vnode)&&te.vnode.shapeFlag&256)&&c.a&&Ee(c.a,v),c.isMounted=!0,d=g=C=null}};c.scope.on();const R=c.effect=new vr(k);c.scope.off();const w=c.update=R.run.bind(R),j=c.job=R.runIfDirty.bind(R);j.i=c,j.id=c.uid,R.scheduler=()=>eo(j),Tt(c,!0),w()},Y=(c,d,g)=>{d.component=c;const C=c.vnode.props;c.vnode=d,c.next=null,ia(c,d.props,C,g),ua(c,d.children,g),it(),mo(c),lt()},q=(c,d,g,C,v,m,x,k,R=!1)=>{const w=c&&c.children,j=c?c.shapeFlag:0,O=d.children,{patchFlag:K,shapeFlag:B}=d;if(K>0){if(K&128){Fe(w,O,g,C,v,m,x,k,R);return}else if(K&256){Ke(w,O,g,C,v,m,x,k,R);return}}B&8?(j&16&&Oe(w,v,m),O!==w&&u(g,O)):j&16?B&16?Fe(w,O,g,C,v,m,x,k,R):Oe(w,v,m,!0):(j&8&&u(g,""),B&16&&ee(O,g,C,v,m,x,k,R))},Ke=(c,d,g,C,v,m,x,k,R)=>{c=c||Ft,d=d||Ft;const w=c.length,j=d.length,O=Math.min(w,j);let K;for(K=0;K<O;K++){const B=d[K]=R?dt(d[K]):nt(d[K]);S(c[K],B,g,null,v,m,x,k,R)}w>j?Oe(c,v,m,!0,!1,O):ee(d,g,C,v,m,x,k,R,O)},Fe=(c,d,g,C,v,m,x,k,R)=>{let w=0;const j=d.length;let O=c.length-1,K=j-1;for(;w<=O&&w<=K;){const B=c[w],G=d[w]=R?dt(d[w]):nt(d[w]);if(en(B,G))S(B,G,g,null,v,m,x,k,R);else break;w++}for(;w<=O&&w<=K;){const B=c[O],G=d[K]=R?dt(d[K]):nt(d[K]);if(en(B,G))S(B,G,g,null,v,m,x,k,R);else break;O--,K--}if(w>O){if(w<=K){const B=K+1,G=B<j?d[B].el:C;for(;w<=K;)S(null,d[w]=R?dt(d[w]):nt(d[w]),g,G,v,m,x,k,R),w++}}else if(w>K)for(;w<=O;)_e(c[w],v,m,!0),w++;else{const B=w,G=w,se=new Map;for(w=G;w<=K;w++){const Ne=d[w]=R?dt(d[w]):nt(d[w]);Ne.key!=null&&se.set(Ne.key,w)}let te,fe=0;const ye=K-G+1;let Qe=!1,Xe=0;const Zt=new Array(ye);for(w=0;w<ye;w++)Zt[w]=0;for(w=B;w<=O;w++){const Ne=c[w];if(fe>=ye){_e(Ne,v,m,!0);continue}let Ze;if(Ne.key!=null)Ze=se.get(Ne.key);else for(te=G;te<=K;te++)if(Zt[te-G]===0&&en(Ne,d[te])){Ze=te;break}Ze===void 0?_e(Ne,v,m,!0):(Zt[Ze-G]=w+1,Ze>=Xe?Xe=Ze:Qe=!0,S(Ne,d[Ze],g,null,v,m,x,k,R),fe++)}const ao=Qe?pa(Zt):Ft;for(te=ao.length-1,w=ye-1;w>=0;w--){const Ne=G+w,Ze=d[Ne],co=d[Ne+1],uo=Ne+1<j?co.el||ci(co):C;Zt[w]===0?S(null,Ze,g,uo,v,m,x,k,R):Qe&&(te<0||w!==ao[te]?Le(Ze,g,uo,2):te--)}}},Le=(c,d,g,C,v=null)=>{const{el:m,type:x,transition:k,children:R,shapeFlag:w}=c;if(w&6){Le(c.component.subTree,d,g,C);return}if(w&128){c.suspense.move(d,g,C);return}if(w&64){x.move(c,d,g,D);return}if(x===Ue){s(m,d,g);for(let O=0;O<R.length;O++)Le(R[O],d,g,C);s(c.anchor,d,g);return}if(x===Mn){M(c,d,g);return}if(C!==2&&w&1&&k)if(C===0)k.persisted&&!m[hs]?s(m,d,g):(k.beforeEnter(m),s(m,d,g),Ee(()=>k.enter(m),v));else{const{leave:O,delayLeave:K,afterLeave:B}=k,G=()=>{c.ctx.isUnmounted?o(m):s(m,d,g)},se=()=>{const te=m._isLeaving||!!m[hs];m._isLeaving&&m[hs](!0),k.persisted&&!te?G():O(m,()=>{G(),B&&B()})};K?K(m,G,se):se()}else s(m,d,g)},_e=(c,d,g,C=!1,v=!1)=>{const{type:m,props:x,ref:k,children:R,dynamicChildren:w,shapeFlag:j,patchFlag:O,dirs:K,cacheIndex:B,memo:G}=c;if(O===-2&&(v=!1),k!=null&&(it(),un(k,null,g,c,!0),lt()),B!=null&&(d.renderCache[B]=void 0),j&256){d.ctx.deactivate(c);return}const se=j&1&&K,te=!fn(c);let fe;if(te&&(fe=x&&x.onVnodeBeforeUnmount)&&$e(fe,d,c),j&6)at(c.component,g,C);else{if(j&128){c.suspense.unmount(g,C);return}se&&Rt(c,null,d,"beforeUnmount"),j&64?c.type.remove(c,d,g,D,C):w&&!w.hasOnce&&(m!==Ue||O>0&&O&64)?Oe(w,d,g,!1,!0):(m===Ue&&O&384||!v&&j&16)&&Oe(R,d,g),C&&Be(c)}const ye=G!=null&&B==null;(te&&(fe=x&&x.onVnodeUnmounted)||se||ye)&&Ee(()=>{fe&&$e(fe,d,c),se&&Rt(c,null,d,"unmounted"),ye&&(c.el=null)},g)},Be=c=>{const{type:d,el:g,anchor:C,transition:v}=c;if(d===Ue){bt(g,C);return}if(d===Mn){P(c);return}const m=()=>{o(g),v&&!v.persisted&&v.afterLeave&&v.afterLeave()};if(c.shapeFlag&1&&v&&!v.persisted){const{leave:x,delayLeave:k}=v,R=()=>x(g,m);k?k(c.el,m,R):R()}else m()},bt=(c,d)=>{let g;for(;c!==d;)g=y(c),o(c),c=g;o(d)},at=(c,d,g)=>{const{bum:C,scope:v,job:m,subTree:x,um:k,m:R,a:w}=c;Oo(R),Oo(w),C&&In(C),v.stop(),m&&(m.flags|=8,_e(x,c,d,g)),k&&Ee(k,d),Ee(()=>{c.isUnmounted=!0},d)},Oe=(c,d,g,C=!1,v=!1,m=0)=>{for(let x=m;x<c.length;x++)_e(c[x],d,g,C,v)},_=c=>{if(c.shapeFlag&6)return _(c.component.subTree);if(c.shapeFlag&128)return c.suspense.next();const d=y(c.anchor||c.el),g=d&&d[Ur];return g?y(g):d};let I=!1;const T=(c,d,g)=>{let C;c==null?d._vnode&&(_e(d._vnode,null,null,!0),C=d._vnode.component):S(d._vnode||null,c,d,null,null,null,g),d._vnode=c,I||(I=!0,mo(C),Kr(),I=!1)},D={p:S,um:_e,m:Le,r:Be,mt:Ie,mc:ee,pc:q,pbc:le,n:_,o:e};return{render:T,hydrate:void 0,createApp:Xl(T)}}function gs({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 Tt({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function ha(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function ro(e,t,n=!1){const s=e.children,o=t.children;if(F(s)&&F(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]=dt(o[r]),l.el=i.el),!n&&l.patchFlag!==-2&&ro(i,l)),l.type===os&&(l.patchFlag===-1&&(l=o[r]=dt(l)),l.el=i.el),l.type===Et&&!l.el&&(l.el=i.el)}}function pa(e){const t=e.slice(),n=[0];let s,o,r,i,l;const a=e.length;for(s=0;s<a;s++){const f=e[s];if(f!==0){if(o=n[n.length-1],e[o]<f){t[s]=o,n.push(s);continue}for(r=0,i=n.length-1;r<i;)l=r+i>>1,e[n[l]]<f?r=l+1:i=l;f<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 ai(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:ai(t)}function Oo(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function ci(e){if(e.placeholder)return e.placeholder;const t=e.component;return t?ci(t.subTree):null}const ui=e=>e.__isSuspense;function ga(e,t){t&&t.pendingBranch?F(e)?t.effects.push(...e):t.effects.push(e):_l(e)}const Ue=Symbol.for("v-fgt"),os=Symbol.for("v-txt"),Et=Symbol.for("v-cmt"),Mn=Symbol.for("v-stc"),hn=[];let De=null;function he(e=!1){hn.push(De=e?null:[])}function ma(){hn.pop(),De=hn[hn.length-1]||null}let _n=1;function Hn(e,t=!1){_n+=e,e<0&&De&&t&&(De.hasOnce=!0)}function fi(e){return e.dynamicChildren=_n>0?De||Ft:null,ma(),_n>0&&De&&De.push(e),e}function ge(e,t,n,s,o,r){return fi(p(e,t,n,s,o,r,!0))}function di(e,t,n,s,o){return fi(be(e,t,n,s,o,!0))}function Un(e){return e?e.__v_isVNode===!0:!1}function en(e,t){return e.type===t.type&&e.key===t.key}const hi=({key:e})=>e??null,Dn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?ce(e)||Se(e)||H(e)?{i:Me,r:e,k:t,f:!!n}:e:null);function p(e,t=null,n=null,s=0,o=null,r=e===Ue?0:1,i=!1,l=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&hi(t),ref:t&&Dn(t),scopeId:jr,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:Me};return l?(Gn(a,n),r&128&&e.normalize(a)):n&&(a.shapeFlag|=ce(n)?8:16),_n>0&&!i&&De&&(a.patchFlag>0||r&6)&&a.patchFlag!==32&&De.push(a),a}const be=ya;function ya(e,t=null,n=null,s=0,o=null,r=!1){if((!e||e===Hl)&&(e=Et),Un(e)){const l=qt(e,t,!0);return n&&Gn(l,n),_n>0&&!r&&De&&(l.shapeFlag&6?De[De.indexOf(e)]=l:De.push(l)),l.patchFlag=-2,l}if(Oa(e)&&(e=e.__vccOpts),t){t=va(t);let{class:l,style:a}=t;l&&!ce(l)&&(t.class=Ge(l)),$(a)&&($s(a)&&!F(a)&&(a=Ce({},a)),t.style=Ws(a))}const i=ce(e)?1:ui(e)?128:kl(e)?64:$(e)?4:H(e)?2:0;return p(e,t,n,s,o,i,r,!0)}function va(e){return e?$s(e)||ni(e)?Ce({},e):e:null}function qt(e,t,n=!1,s=!1){const{props:o,ref:r,patchFlag:i,children:l,transition:a}=e,f=t?Ca(o||{},t):o,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:f,key:f&&hi(f),ref:t&&t.ref?n&&r?F(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!==Ue?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&&qt(e.ssContent),ssFallback:e.ssFallback&&qt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&s&&to(u,a.clone(u)),u}function He(e=" ",t=0){return be(os,null,e,t)}function ba(e,t){const n=be(Mn,null,e);return n.staticCount=t,n}function Lt(e="",t=!1){return t?(he(),di(Et,null,e)):be(Et,null,e)}function nt(e){return e==null||typeof e=="boolean"?be(Et):F(e)?be(Ue,null,e.slice()):Un(e)?dt(e):be(os,null,String(e))}function dt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:qt(e)}function Gn(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(F(t))n=16;else if(typeof t=="object")if(s&65){const o=t.default;o&&(o._c&&(o._d=!1),Gn(e,o()),o._c&&(o._d=!0));return}else{n=32;const o=t._;!o&&!ni(t)?t._ctx=Me:o===3&&Me&&(Me.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(H(t)){if(s&65){Gn(e,{default:t});return}t={default:t,_ctx:Me},n=32}else t=String(t),s&64?(n=16,t=[He(t)]):n=8;e.children=t,e.shapeFlag|=n}function Ca(...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=Ge([t.class,s.class]));else if(o==="style")t.style=Ws([t.style,s.style]);else if(Jn(o)){const r=t[o],i=s[o];i&&r!==i&&!(F(r)&&r.includes(i))?t[o]=r?[].concat(r,i):i:i==null&&r==null&&!zn(o)&&(t[o]=i)}else o!==""&&(t[o]=s[o])}return t}function $e(e,t,n,s=null){Je(e,t,7,[n,s])}const _a=Xr();let wa=0;function xa(e,t,n){const s=e.type,o=(t?t.appContext:e.appContext)||_a,r={uid:wa++,vnode:e,type:s,parent:t,appContext:o,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new qi(!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:oi(s,o),emitsOptions:Zr(s,o),emit:null,emitted:null,propsDefaults:oe,inheritAttrs:s.inheritAttrs,ctx:oe,data:oe,props:oe,attrs:oe,slots:oe,refs:oe,setupState:oe,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=$l.bind(null,r),e.ce&&e.ce(r),r}let xe=null;const Sa=()=>xe||Me;let Wn,Ms;{const e=Zn(),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=>xe=n),Ms=t("__VUE_SSR_SETTERS__",n=>wn=n)}const An=e=>{const t=xe;return Wn(e),e.scope.on(),()=>{e.scope.off(),Wn(t)}},Po=()=>{xe&&xe.scope.off(),Wn(null)};function pi(e){return e.vnode.shapeFlag&4}let wn=!1;function ka(e,t=!1,n=!1){t&&Ms(t);const{props:s,children:o}=e.vnode,r=pi(e);ra(e,s,r,t),ca(e,o,n||t);const i=r?Ea(e,t):void 0;return t&&Ms(!1),i}function Ea(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Gl);const{setup:s}=n;if(s){it();const o=e.setupContext=s.length>1?Ra(e):null,r=An(e),i=En(s,e,0,[e.props,o]),l=fr(i);if(lt(),r(),(l||e.sp)&&!fn(e)&&Wr(e),l){if(i.then(Po,Po),t)return i.then(a=>{Io(e,a)}).catch(a=>{ts(a,e,0)});e.asyncDep=i}else Io(e,i)}else gi(e)}function Io(e,t,n){H(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:$(t)&&(e.setupState=Vr(t)),gi(e)}function gi(e,t,n){const s=e.type;e.render||(e.render=s.render||ot);{const o=An(e);it();try{Wl(e)}finally{lt(),o()}}}const Aa={get(e,t){return we(e,"get",""),e[t]}};function Ra(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Aa),slots:e.slots,emit:e.emit,expose:t}}function rs(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Vr(fl(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in dn)return dn[n](e)},has(t,n){return n in t||n in dn}})):e.proxy}function Ta(e,t=!0){return H(e)?e.displayName||e.name:e.name||t&&e.__name}function Oa(e){return H(e)&&"__vccOpts"in e}const Ve=(e,t)=>ml(e,t,wn);function mi(e,t,n){try{Hn(-1);const s=arguments.length;return s===2?$(t)&&!F(t)?Un(t)?be(e,null,[t]):be(e,t):be(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&Un(n)&&(n=[n]),be(e,t,n))}finally{Hn(1)}}const Pa="3.5.39";/**
14
+ * @vue/runtime-dom v3.5.39
15
+ * (c) 2018-present Yuxi (Evan) You and Vue contributors
16
+ * @license MIT
17
+ **/let Ds;const No=typeof window<"u"&&window.trustedTypes;if(No)try{Ds=No.createPolicy("vue",{createHTML:e=>e})}catch{}const yi=Ds?e=>Ds.createHTML(e):e=>e,Ia="http://www.w3.org/2000/svg",Na="http://www.w3.org/1998/Math/MathML",ft=typeof document<"u"?document:null,Vo=ft&&ft.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"?ft.createElementNS(Ia,e):t==="mathml"?ft.createElementNS(Na,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{Vo.innerHTML=yi(s==="svg"?`<svg>${e}</svg>`:s==="mathml"?`<math>${e}</math>`:e);const l=Vo.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]}},Ma=Symbol("_vtc");function Da(e,t,n){const s=e[Ma];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const qn=Symbol("_vod"),vi=Symbol("_vsh"),Ka={name:"show",beforeMount(e,{value:t},{transition:n}){e[qn]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):tn(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),tn(e,!0),s.enter(e)):s.leave(e,()=>{tn(e,!1)}):tn(e,t))},beforeUnmount(e,{value:t}){tn(e,t)}};function tn(e,t){e.style.display=t?e[qn]:"none",e[vi]=!t}const La=Symbol(""),ja=/(?:^|;)\s*display\s*:/;function Fa(e,t,n){const s=e.style,o=ce(n);let r=!1;if(n&&!o){if(t)if(ce(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&rn(s,l,"")}else for(const i in t)n[i]==null&&rn(s,i,"");for(const i in n){i==="display"&&(r=!0);const l=n[i];l!=null?Ha(e,i,!ce(t)&&t?t[i]:void 0,l)||rn(s,i,l):rn(s,i,"")}}else if(o){if(t!==n){const i=s[La];i&&(n+=";"+i),s.cssText=n,r=ja.test(n)}}else t&&e.removeAttribute("style");qn in e&&(e[qn]=r?s.display:"",e[vi]&&(s.display="none"))}const Mo=/\s*!important$/;function rn(e,t,n){if(F(n))n.forEach(s=>rn(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=Ba(e,t);Mo.test(n)?e.setProperty(At(s),n.replace(Mo,""),"important"):e[s]=n}}const Do=["Webkit","Moz","ms"],ms={};function Ba(e,t){const n=ms[t];if(n)return n;let s=Te(t);if(s!=="filter"&&s in e)return ms[t]=s;s=Qn(s);for(let o=0;o<Do.length;o++){const r=Do[o]+s;if(r in e)return ms[t]=r}return t}function Ha(e,t,n,s){return e.tagName==="TEXTAREA"&&(t==="width"||t==="height")&&ce(s)&&n===s}const Ko="http://www.w3.org/1999/xlink";function Lo(e,t,n,s,o,r=Gi(t)){s&&t.startsWith("xlink:")?n==null?e.removeAttributeNS(Ko,t.slice(6,t.length)):e.setAttributeNS(Ko,t,n):n==null||r&&!gr(n)?e.removeAttribute(t):e.setAttribute(t,r?"":rt(n)?String(n):n)}function jo(e,t,n,s,o){if(t==="innerHTML"||t==="textContent"){n!=null&&(e[t]=t==="innerHTML"?yi(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 kt(e,t,n,s){e.addEventListener(t,n,s)}function Ua(e,t,n,s){e.removeEventListener(t,n,s)}const Fo=Symbol("_vei");function Ga(e,t,n,s,o=null){const r=e[Fo]||(e[Fo]={}),i=r[t];if(s&&i)i.value=s;else{const[l,a]=Ja(t);if(s){const f=r[t]=Qa(s,o);kt(e,l,f,a)}else i&&(Ua(e,l,i,a),r[t]=void 0)}}const Wa=/(Once|Passive|Capture)$/,qa=/^on:?(?:Once|Passive|Capture)$/;function Ja(e){let t,n;for(;(n=e.match(Wa))&&!qa.test(e);)t||(t={}),e=e.slice(0,e.length-n[1].length),t[n[1].toLowerCase()]=!0;return[e[2]===":"?e.slice(3):At(e.slice(2)),t]}let ys=0;const za=Promise.resolve(),Ya=()=>ys||(za.then(()=>ys=0),ys=Date.now());function Qa(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;const o=n.value;if(F(o)){const r=s.stopImmediatePropagation;s.stopImmediatePropagation=()=>{r.call(s),s._stopped=!0};const i=o.slice(),l=[s];for(let a=0;a<i.length&&!s._stopped;a++){const f=i[a];f&&Je(f,t,5,l)}}else Je(o,t,5,[s])};return n.value=e,n.attached=Ya(),n}const Bo=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Xa=(e,t,n,s,o,r)=>{const i=o==="svg";t==="class"?Da(e,s,i):t==="style"?Fa(e,n,s):Jn(t)?zn(t)||Ga(e,t,n,s,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Za(e,t,s,i))?(jo(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Lo(e,t,s,i,r,t!=="value")):e._isVueCE&&($a(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!ce(s)))?jo(e,Te(t),s,r,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),Lo(e,t,s,i))};function Za(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&Bo(t)&&H(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 Bo(t)&&ce(n)?!1:t in e}function $a(e,t){const n=e._def.props;if(!n)return!1;const s=Te(t);return Array.isArray(n)?n.some(o=>Te(o)===s):Object.keys(n).some(o=>Te(o)===s)}const Jt=e=>{const t=e.props["onUpdate:modelValue"]||!1;return F(t)?n=>In(t,n):t};function ec(e){e.target.composing=!0}function Ho(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const mt=Symbol("_assign");function Uo(e,t,n){return t&&(e=e.trim()),n&&(e=Xn(e)),e}const pn={created(e,{modifiers:{lazy:t,trim:n,number:s}},o){e[mt]=Jt(o);const r=s||o.props&&o.props.type==="number";kt(e,t?"change":"input",i=>{i.target.composing||e[mt](Uo(e.value,n,r))}),(n||r)&&kt(e,"change",()=>{e.value=Uo(e.value,n,r)}),t||(kt(e,"compositionstart",ec),kt(e,"compositionend",Ho),kt(e,"change",Ho))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:s,trim:o,number:r}},i){if(e[mt]=Jt(i),e.composing)return;const l=(r||e.type==="number")&&!/^0\d/.test(e.value)?Xn(e.value):e.value,a=t??"";if(l===a)return;const f=e.getRootNode();(f instanceof Document||f instanceof ShadowRoot)&&f.activeElement===e&&e.type!=="range"&&(s&&t===n||o&&e.value.trim()===a)||(e.value=a)}},tc={deep:!0,created(e,t,n){e[mt]=Jt(n),kt(e,"change",()=>{const s=e._modelValue,o=xn(e),r=e.checked,i=e[mt];if(F(s)){const l=qs(s,o),a=l!==-1;if(r&&!a)i(s.concat(o));else if(!r&&a){const f=[...s];f.splice(l,1),i(f)}}else if(Qt(s)){const l=new Set(s);r?l.add(o):l.delete(o),i(l)}else i(bi(e,r))})},mounted:Go,beforeUpdate(e,t,n){e[mt]=Jt(n),Go(e,t,n)}};function Go(e,{value:t,oldValue:n},s){e._modelValue=t;let o;if(F(t))o=qs(t,s.props.value)>-1;else if(Qt(t))o=t.has(s.props.value);else{if(t===n)return;o=Xt(t,bi(e,!0))}e.checked!==o&&(e.checked=o)}const nc={deep:!0,created(e,{value:t,modifiers:{number:n}},s){const o=Qt(t);kt(e,"change",()=>{const r=Array.prototype.filter.call(e.options,i=>i.selected).map(i=>n?Xn(xn(i)):xn(i));e[mt](e.multiple?o?new Set(r):r:r[0]),e._assigning=!0,bn(()=>{e._assigning=!1})}),e[mt]=Jt(s)},mounted(e,{value:t}){Wo(e,t)},beforeUpdate(e,t,n){e[mt]=Jt(n)},updated(e,{value:t}){e._assigning||Wo(e,t)}};function Wo(e,t){const n=e.multiple,s=F(t);if(!(n&&!s&&!Qt(t))){for(let o=0,r=e.options.length;o<r;o++){const i=e.options[o],l=xn(i);if(n)if(s){const a=typeof l;a==="string"||a==="number"?i.selected=t.some(f=>String(f)===String(l)):i.selected=qs(t,l)>-1}else i.selected=t.has(l);else if(Xt(xn(i),t)){e.selectedIndex!==o&&(e.selectedIndex=o);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function xn(e){return"_value"in e?e._value:e.value}function bi(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const sc=["ctrl","shift","alt","meta"],oc={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)=>sc.some(n=>e[`${n}Key`]&&!t.includes(n))},jt=(e,t)=>{if(!e)return e;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=oc[t[i]];if(l&&l(o,t))return}return e(o,...r)})},rc={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},vs=(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||rc[i]===r))return e(o)})},ic=Ce({patchProp:Xa},Va);let qo;function lc(){return qo||(qo=fa(ic))}const ac=(...e)=>{const t=lc().createApp(...e),{mount:n}=t;return t.mount=s=>{const o=uc(s);if(!o)return;const r=t._component;!H(r)&&!r.render&&!r.template&&(r.template=o.innerHTML),o.nodeType===1&&(o.textContent="");const i=n(o,!1,cc(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),i},t};function cc(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function uc(e){return ce(e)?document.querySelector(e):e}const Ks="panel_token";let gn=null;function fc(){return localStorage.getItem(Ks)||""}function Ci(e){e?localStorage.setItem(Ks,e):localStorage.removeItem(Ks)}async function Jo(){try{const e=await fetch("/api/auth/me",{credentials:"same-origin"});if(e.ok)return gn=!!(await e.json()).ok,gn}catch{}return gn=!1,!1}async function dc(e,t){const s=await(await fetch("/api/auth/login",{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify({account:e,password:t})})).json();return s.ok&&(Ci(s.token||""),gn=!0),s}async function hc(){try{await fetch("/api/auth/logout",{method:"POST",credentials:"same-origin"})}catch{}Ci(""),gn=!1}function pc(e){const t=window.location.protocol==="https:"?"wss:":"ws:",n=fc();return`${t}//${window.location.host}${e}${n?"?token="+encodeURIComponent(n):""}`}const is=(e,t)=>{const n=e.__vccOpts||e;for(const[s,o]of t)n[s]=o;return n},gc={name:"App",methods:{async onLogout(){await hc(),this.$router.replace({name:"Login"})}}},mc={id:"app"},yc={key:0,class:"app-nav"},vc={class:"nav-links"};function bc(e,t,n,s,o,r){const i=Os("router-link"),l=Os("router-view");return he(),ge("div",mc,[e.$route.name!=="Login"?(he(),ge("nav",yc,[t[3]||(t[3]=p("div",{class:"nav-brand"},[p("span",{class:"logo"},"⌨️"),p("h2",null,"Claude Panel")],-1)),t[4]||(t[4]=p("div",{id:"nav-controls",class:"nav-controls"},null,-1)),p("div",vc,[be(i,{to:"/",class:"nav-link"},{default:Fr(()=>[...t[1]||(t[1]=[p("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"18",height:"18"},[p("rect",{x:"2",y:"4",width:"20",height:"16",rx:"2"}),p("path",{d:"M6 8h.01M10 8h.01M14 8h.01M18 8h.01M8 12h.01M12 12h.01M16 12h.01M7 16h10"})],-1),He(" 控制面板 ",-1)])]),_:1}),p("a",{class:"nav-link logout-link",href:"#",onClick:t[0]||(t[0]=jt((...a)=>r.onLogout&&r.onLogout(...a),["prevent"]))},[...t[2]||(t[2]=[p("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"18",height:"18"},[p("path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"}),p("polyline",{points:"16 17 21 12 16 7"}),p("line",{x1:"21",y1:"12",x2:"9",y2:"12"})],-1),He(" 登出 ",-1)])])])])):Lt("",!0),be(l)])}const Cc=is(gc,[["render",bc],["__scopeId","data-v-68aa96d3"]]);/*!
18
+ * vue-router v4.6.4
19
+ * (c) 2025 Eduardo San Martin Morote
20
+ * @license MIT
21
+ */const Kt=typeof document<"u";function _i(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function _c(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&_i(e.default)}const Q=Object.assign;function bs(e,t){const n={};for(const s in t){const o=t[s];n[s]=ze(o)?o.map(e):e(o)}return n}const mn=()=>{},ze=Array.isArray;function zo(e,t){const n={};for(const s in e)n[s]=s in t?t[s]:e[s];return n}const wi=/#/g,wc=/&/g,xc=/\//g,Sc=/=/g,kc=/\?/g,xi=/\+/g,Ec=/%5B/g,Ac=/%5D/g,Si=/%5E/g,Rc=/%60/g,ki=/%7B/g,Tc=/%7C/g,Ei=/%7D/g,Oc=/%20/g;function io(e){return e==null?"":encodeURI(""+e).replace(Tc,"|").replace(Ec,"[").replace(Ac,"]")}function Pc(e){return io(e).replace(ki,"{").replace(Ei,"}").replace(Si,"^")}function Ls(e){return io(e).replace(xi,"%2B").replace(Oc,"+").replace(wi,"%23").replace(wc,"%26").replace(Rc,"`").replace(ki,"{").replace(Ei,"}").replace(Si,"^")}function Ic(e){return Ls(e).replace(Sc,"%3D")}function Nc(e){return io(e).replace(wi,"%23").replace(kc,"%3F")}function Vc(e){return Nc(e).replace(xc,"%2F")}function Sn(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Mc=/\/$/,Dc=e=>e.replace(Mc,"");function Cs(e,t,n="/"){let s,o={},r="",i="";const l=t.indexOf("#");let a=t.indexOf("?");return a=l>=0&&a>l?-1:a,a>=0&&(s=t.slice(0,a),r=t.slice(a,l>0?l:t.length),o=e(r.slice(1))),l>=0&&(s=s||t.slice(0,l),i=t.slice(l,t.length)),s=Fc(s??t,n),{fullPath:s+r+i,path:s,query:o,hash:Sn(i)}}function Kc(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Yo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Lc(e,t,n){const s=t.matched.length-1,o=n.matched.length-1;return s>-1&&s===o&&zt(t.matched[s],n.matched[o])&&Ai(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function zt(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Ai(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!jc(e[n],t[n]))return!1;return!0}function jc(e,t){return ze(e)?Qo(e,t):ze(t)?Qo(t,e):(e==null?void 0:e.valueOf())===(t==null?void 0:t.valueOf())}function Qo(e,t){return ze(t)?e.length===t.length&&e.every((n,s)=>n===t[s]):e.length===1&&e[0]===t}function Fc(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),s=e.split("/"),o=s[s.length-1];(o===".."||o===".")&&s.push("");let r=n.length-1,i,l;for(i=0;i<s.length;i++)if(l=s[i],l!==".")if(l==="..")r>1&&r--;else break;return n.slice(0,r).join("/")+"/"+s.slice(i).join("/")}const Ct={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let js=function(e){return e.pop="pop",e.push="push",e}({}),_s=function(e){return e.back="back",e.forward="forward",e.unknown="",e}({});function Bc(e){if(!e)if(Kt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Dc(e)}const Hc=/^[^#]+#/;function Uc(e,t){return e.replace(Hc,"#")+t}function Gc(e,t){const n=document.documentElement.getBoundingClientRect(),s=e.getBoundingClientRect();return{behavior:t.behavior,left:s.left-n.left-(t.left||0),top:s.top-n.top-(t.top||0)}}const ls=()=>({left:window.scrollX,top:window.scrollY});function Wc(e){let t;if("el"in e){const n=e.el,s=typeof n=="string"&&n.startsWith("#"),o=typeof n=="string"?s?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!o)return;t=Gc(o,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function Xo(e,t){return(history.state?history.state.position-t:-1)+e}const Fs=new Map;function qc(e,t){Fs.set(e,t)}function Jc(e){const t=Fs.get(e);return Fs.delete(e),t}function zc(e){return typeof e=="string"||e&&typeof e=="object"}function Ri(e){return typeof e=="string"||typeof e=="symbol"}let ue=function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e}({});const Ti=Symbol("");ue.MATCHER_NOT_FOUND+"",ue.NAVIGATION_GUARD_REDIRECT+"",ue.NAVIGATION_ABORTED+"",ue.NAVIGATION_CANCELLED+"",ue.NAVIGATION_DUPLICATED+"";function Yt(e,t){return Q(new Error,{type:e,[Ti]:!0},t)}function ut(e,t){return e instanceof Error&&Ti in e&&(t==null||!!(e.type&t))}const Yc=["params","query","hash"];function Qc(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of Yc)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function Xc(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let s=0;s<n.length;++s){const o=n[s].replace(xi," "),r=o.indexOf("="),i=Sn(r<0?o:o.slice(0,r)),l=r<0?null:Sn(o.slice(r+1));if(i in t){let a=t[i];ze(a)||(a=t[i]=[a]),a.push(l)}else t[i]=l}return t}function Zo(e){let t="";for(let n in e){const s=e[n];if(n=Ic(n),s==null){s!==void 0&&(t+=(t.length?"&":"")+n);continue}(ze(s)?s.map(o=>o&&Ls(o)):[s&&Ls(s)]).forEach(o=>{o!==void 0&&(t+=(t.length?"&":"")+n,o!=null&&(t+="="+o))})}return t}function Zc(e){const t={};for(const n in e){const s=e[n];s!==void 0&&(t[n]=ze(s)?s.map(o=>o==null?null:""+o):s==null?s:""+s)}return t}const $c=Symbol(""),$o=Symbol(""),lo=Symbol(""),Oi=Symbol(""),Bs=Symbol("");function nn(){let e=[];function t(s){return e.push(s),()=>{const o=e.indexOf(s);o>-1&&e.splice(o,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function St(e,t,n,s,o,r=i=>i()){const i=s&&(s.enterCallbacks[o]=s.enterCallbacks[o]||[]);return()=>new Promise((l,a)=>{const f=y=>{y===!1?a(Yt(ue.NAVIGATION_ABORTED,{from:n,to:t})):y instanceof Error?a(y):zc(y)?a(Yt(ue.NAVIGATION_GUARD_REDIRECT,{from:t,to:y})):(i&&s.enterCallbacks[o]===i&&typeof y=="function"&&i.push(y),l())},u=r(()=>e.call(s&&s.instances[o],t,n,f));let h=Promise.resolve(u);e.length<3&&(h=h.then(f)),h.catch(y=>a(y))})}function ws(e,t,n,s,o=r=>r()){const r=[];for(const i of e)for(const l in i.components){let a=i.components[l];if(!(t!=="beforeRouteEnter"&&!i.instances[l]))if(_i(a)){const f=(a.__vccOpts||a)[t];f&&r.push(St(f,n,s,i,l,o))}else{let f=a();r.push(()=>f.then(u=>{if(!u)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const h=_c(u)?u.default:u;i.mods[l]=u,i.components[l]=h;const y=(h.__vccOpts||h)[t];return y&&St(y,n,s,i,l,o)()}))}}return r}function eu(e,t){const n=[],s=[],o=[],r=Math.max(t.matched.length,e.matched.length);for(let i=0;i<r;i++){const l=t.matched[i];l&&(e.matched.find(f=>zt(f,l))?s.push(l):n.push(l));const a=e.matched[i];a&&(t.matched.find(f=>zt(f,a))||o.push(a))}return[n,s,o]}/*!
22
+ * vue-router v4.6.4
23
+ * (c) 2025 Eduardo San Martin Morote
24
+ * @license MIT
25
+ */let tu=()=>location.protocol+"//"+location.host;function Pi(e,t){const{pathname:n,search:s,hash:o}=t,r=e.indexOf("#");if(r>-1){let i=o.includes(e.slice(r))?e.slice(r).length:1,l=o.slice(i);return l[0]!=="/"&&(l="/"+l),Yo(l,"")}return Yo(n,e)+s+o}function nu(e,t,n,s){let o=[],r=[],i=null;const l=({state:y})=>{const b=Pi(e,location),E=n.value,S=t.value;let V=0;if(y){if(n.value=b,t.value=y,i&&i===E){i=null;return}V=S?y.position-S.position:0}else s(b);o.forEach(N=>{N(n.value,E,{delta:V,type:js.pop,direction:V?V>0?_s.forward:_s.back:_s.unknown})})};function a(){i=n.value}function f(y){o.push(y);const b=()=>{const E=o.indexOf(y);E>-1&&o.splice(E,1)};return r.push(b),b}function u(){if(document.visibilityState==="hidden"){const{history:y}=window;if(!y.state)return;y.replaceState(Q({},y.state,{scroll:ls()}),"")}}function h(){for(const y of r)y();r=[],window.removeEventListener("popstate",l),window.removeEventListener("pagehide",u),document.removeEventListener("visibilitychange",u)}return window.addEventListener("popstate",l),window.addEventListener("pagehide",u),document.addEventListener("visibilitychange",u),{pauseListeners:a,listen:f,destroy:h}}function er(e,t,n,s=!1,o=!1){return{back:e,current:t,forward:n,replaced:s,position:window.history.length,scroll:o?ls():null}}function su(e){const{history:t,location:n}=window,s={value:Pi(e,n)},o={value:t.state};o.value||r(s.value,{back:null,current:s.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function r(a,f,u){const h=e.indexOf("#"),y=h>-1?(n.host&&document.querySelector("base")?e:e.slice(h))+a:tu()+e+a;try{t[u?"replaceState":"pushState"](f,"",y),o.value=f}catch(b){console.error(b),n[u?"replace":"assign"](y)}}function i(a,f){r(a,Q({},t.state,er(o.value.back,a,o.value.forward,!0),f,{position:o.value.position}),!0),s.value=a}function l(a,f){const u=Q({},o.value,t.state,{forward:a,scroll:ls()});r(u.current,u,!0),r(a,Q({},er(s.value,a,null),{position:u.position+1},f),!1),s.value=a}return{location:s,state:o,push:l,replace:i}}function ou(e){e=Bc(e);const t=su(e),n=nu(e,t.state,t.location,t.replace);function s(r,i=!0){i||n.pauseListeners(),history.go(r)}const o=Q({location:"",base:e,go:s,createHref:Uc.bind(null,e)},t,n);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>t.state.value}),o}let It=function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e}({});var pe=function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e}(pe||{});const ru={type:It.Static,value:""},iu=/[a-zA-Z0-9_]/;function lu(e){if(!e)return[[]];if(e==="/")return[[ru]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(b){throw new Error(`ERR (${n})/"${f}": ${b}`)}let n=pe.Static,s=n;const o=[];let r;function i(){r&&o.push(r),r=[]}let l=0,a,f="",u="";function h(){f&&(n===pe.Static?r.push({type:It.Static,value:f}):n===pe.Param||n===pe.ParamRegExp||n===pe.ParamRegExpEnd?(r.length>1&&(a==="*"||a==="+")&&t(`A repeatable param (${f}) must be alone in its segment. eg: '/:ids+.`),r.push({type:It.Param,value:f,regexp:u,repeatable:a==="*"||a==="+",optional:a==="*"||a==="?"})):t("Invalid state to consume buffer"),f="")}function y(){f+=a}for(;l<e.length;){if(a=e[l++],a==="\\"&&n!==pe.ParamRegExp){s=n,n=pe.EscapeNext;continue}switch(n){case pe.Static:a==="/"?(f&&h(),i()):a===":"?(h(),n=pe.Param):y();break;case pe.EscapeNext:y(),n=s;break;case pe.Param:a==="("?n=pe.ParamRegExp:iu.test(a)?y():(h(),n=pe.Static,a!=="*"&&a!=="?"&&a!=="+"&&l--);break;case pe.ParamRegExp:a===")"?u[u.length-1]=="\\"?u=u.slice(0,-1)+a:n=pe.ParamRegExpEnd:u+=a;break;case pe.ParamRegExpEnd:h(),n=pe.Static,a!=="*"&&a!=="?"&&a!=="+"&&l--,u="";break;default:t("Unknown state");break}}return n===pe.ParamRegExp&&t(`Unfinished custom RegExp for param "${f}"`),h(),i(),o}const tr="[^/]+?",au={sensitive:!1,strict:!1,start:!0,end:!0};var Ae=function(e){return e[e._multiplier=10]="_multiplier",e[e.Root=90]="Root",e[e.Segment=40]="Segment",e[e.SubSegment=30]="SubSegment",e[e.Static=40]="Static",e[e.Dynamic=20]="Dynamic",e[e.BonusCustomRegExp=10]="BonusCustomRegExp",e[e.BonusWildcard=-50]="BonusWildcard",e[e.BonusRepeatable=-20]="BonusRepeatable",e[e.BonusOptional=-8]="BonusOptional",e[e.BonusStrict=.7000000000000001]="BonusStrict",e[e.BonusCaseSensitive=.25]="BonusCaseSensitive",e}(Ae||{});const cu=/[.+*?^${}()[\]/\\]/g;function uu(e,t){const n=Q({},au,t),s=[];let o=n.start?"^":"";const r=[];for(const f of e){const u=f.length?[]:[Ae.Root];n.strict&&!f.length&&(o+="/");for(let h=0;h<f.length;h++){const y=f[h];let b=Ae.Segment+(n.sensitive?Ae.BonusCaseSensitive:0);if(y.type===It.Static)h||(o+="/"),o+=y.value.replace(cu,"\\$&"),b+=Ae.Static;else if(y.type===It.Param){const{value:E,repeatable:S,optional:V,regexp:N}=y;r.push({name:E,repeatable:S,optional:V});const A=N||tr;if(A!==tr){b+=Ae.BonusCustomRegExp;try{`${A}`}catch(P){throw new Error(`Invalid custom RegExp for param "${E}" (${A}): `+P.message)}}let M=S?`((?:${A})(?:/(?:${A}))*)`:`(${A})`;h||(M=V&&f.length<2?`(?:/${M})`:"/"+M),V&&(M+="?"),o+=M,b+=Ae.Dynamic,V&&(b+=Ae.BonusOptional),S&&(b+=Ae.BonusRepeatable),A===".*"&&(b+=Ae.BonusWildcard)}u.push(b)}s.push(u)}if(n.strict&&n.end){const f=s.length-1;s[f][s[f].length-1]+=Ae.BonusStrict}n.strict||(o+="/?"),n.end?o+="$":n.strict&&!o.endsWith("/")&&(o+="(?:/|$)");const i=new RegExp(o,n.sensitive?"":"i");function l(f){const u=f.match(i),h={};if(!u)return null;for(let y=1;y<u.length;y++){const b=u[y]||"",E=r[y-1];h[E.name]=b&&E.repeatable?b.split("/"):b}return h}function a(f){let u="",h=!1;for(const y of e){(!h||!u.endsWith("/"))&&(u+="/"),h=!1;for(const b of y)if(b.type===It.Static)u+=b.value;else if(b.type===It.Param){const{value:E,repeatable:S,optional:V}=b,N=E in f?f[E]:"";if(ze(N)&&!S)throw new Error(`Provided param "${E}" is an array but it is not repeatable (* or + modifiers)`);const A=ze(N)?N.join("/"):N;if(!A)if(V)y.length<2&&(u.endsWith("/")?u=u.slice(0,-1):h=!0);else throw new Error(`Missing required param "${E}"`);u+=A}}return u||"/"}return{re:i,score:s,keys:r,parse:l,stringify:a}}function fu(e,t){let n=0;for(;n<e.length&&n<t.length;){const s=t[n]-e[n];if(s)return s;n++}return e.length<t.length?e.length===1&&e[0]===Ae.Static+Ae.Segment?-1:1:e.length>t.length?t.length===1&&t[0]===Ae.Static+Ae.Segment?1:-1:0}function Ii(e,t){let n=0;const s=e.score,o=t.score;for(;n<s.length&&n<o.length;){const r=fu(s[n],o[n]);if(r)return r;n++}if(Math.abs(o.length-s.length)===1){if(nr(s))return 1;if(nr(o))return-1}return o.length-s.length}function nr(e){const t=e[e.length-1];return e.length>0&&t[t.length-1]<0}const du={strict:!1,end:!0,sensitive:!1};function hu(e,t,n){const s=uu(lu(e.path),n),o=Q(s,{record:e,parent:t,children:[],alias:[]});return t&&!o.record.aliasOf==!t.record.aliasOf&&t.children.push(o),o}function pu(e,t){const n=[],s=new Map;t=zo(du,t);function o(h){return s.get(h)}function r(h,y,b){const E=!b,S=or(h);S.aliasOf=b&&b.record;const V=zo(t,h),N=[S];if("alias"in h){const P=typeof h.alias=="string"?[h.alias]:h.alias;for(const W of P)N.push(or(Q({},S,{components:b?b.record.components:S.components,path:W,aliasOf:b?b.record:S})))}let A,M;for(const P of N){const{path:W}=P;if(y&&W[0]!=="/"){const re=y.record.path,L=re[re.length-1]==="/"?"":"/";P.path=y.record.path+(W&&L+W)}if(A=hu(P,y,V),b?b.alias.push(A):(M=M||A,M!==A&&M.alias.push(A),E&&h.name&&!rr(A)&&i(h.name)),Ni(A)&&a(A),S.children){const re=S.children;for(let L=0;L<re.length;L++)r(re[L],A,b&&b.children[L])}b=b||A}return M?()=>{i(M)}:mn}function i(h){if(Ri(h)){const y=s.get(h);y&&(s.delete(h),n.splice(n.indexOf(y),1),y.children.forEach(i),y.alias.forEach(i))}else{const y=n.indexOf(h);y>-1&&(n.splice(y,1),h.record.name&&s.delete(h.record.name),h.children.forEach(i),h.alias.forEach(i))}}function l(){return n}function a(h){const y=yu(h,n);n.splice(y,0,h),h.record.name&&!rr(h)&&s.set(h.record.name,h)}function f(h,y){let b,E={},S,V;if("name"in h&&h.name){if(b=s.get(h.name),!b)throw Yt(ue.MATCHER_NOT_FOUND,{location:h});V=b.record.name,E=Q(sr(y.params,b.keys.filter(M=>!M.optional).concat(b.parent?b.parent.keys.filter(M=>M.optional):[]).map(M=>M.name)),h.params&&sr(h.params,b.keys.map(M=>M.name))),S=b.stringify(E)}else if(h.path!=null)S=h.path,b=n.find(M=>M.re.test(S)),b&&(E=b.parse(S),V=b.record.name);else{if(b=y.name?s.get(y.name):n.find(M=>M.re.test(y.path)),!b)throw Yt(ue.MATCHER_NOT_FOUND,{location:h,currentLocation:y});V=b.record.name,E=Q({},y.params,h.params),S=b.stringify(E)}const N=[];let A=b;for(;A;)N.unshift(A.record),A=A.parent;return{name:V,path:S,params:E,matched:N,meta:mu(N)}}e.forEach(h=>r(h));function u(){n.length=0,s.clear()}return{addRoute:r,resolve:f,removeRoute:i,clearRoutes:u,getRoutes:l,getRecordMatcher:o}}function sr(e,t){const n={};for(const s of t)s in e&&(n[s]=e[s]);return n}function or(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:gu(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function gu(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const s in e.components)t[s]=typeof n=="object"?n[s]:n;return t}function rr(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function mu(e){return e.reduce((t,n)=>Q(t,n.meta),{})}function yu(e,t){let n=0,s=t.length;for(;n!==s;){const r=n+s>>1;Ii(e,t[r])<0?s=r:n=r+1}const o=vu(e);return o&&(s=t.lastIndexOf(o,s-1)),s}function vu(e){let t=e;for(;t=t.parent;)if(Ni(t)&&Ii(e,t)===0)return t}function Ni({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function ir(e){const t=gt(lo),n=gt(Oi),s=Ve(()=>{const a=Ht(e.to);return t.resolve(a)}),o=Ve(()=>{const{matched:a}=s.value,{length:f}=a,u=a[f-1],h=n.matched;if(!u||!h.length)return-1;const y=h.findIndex(zt.bind(null,u));if(y>-1)return y;const b=lr(a[f-2]);return f>1&&lr(u)===b&&h[h.length-1].path!==b?h.findIndex(zt.bind(null,a[f-2])):y}),r=Ve(()=>o.value>-1&&xu(n.params,s.value.params)),i=Ve(()=>o.value>-1&&o.value===n.matched.length-1&&Ai(n.params,s.value.params));function l(a={}){if(wu(a)){const f=t[Ht(e.replace)?"replace":"push"](Ht(e.to)).catch(mn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>f),f}return Promise.resolve()}return{route:s,href:Ve(()=>s.value.href),isActive:r,isExactActive:i,navigate:l}}function bu(e){return e.length===1?e[0]:e}const Cu=Gr({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:ir,setup(e,{slots:t}){const n=es(ir(e)),{options:s}=gt(lo),o=Ve(()=>({[ar(e.activeClass,s.linkActiveClass,"router-link-active")]:n.isActive,[ar(e.exactActiveClass,s.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const r=t.default&&bu(t.default(n));return e.custom?r:mi("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:o.value},r)}}}),_u=Cu;function wu(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function xu(e,t){for(const n in t){const s=t[n],o=e[n];if(typeof s=="string"){if(s!==o)return!1}else if(!ze(o)||o.length!==s.length||s.some((r,i)=>r.valueOf()!==o[i].valueOf()))return!1}return!0}function lr(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const ar=(e,t,n)=>e??t??n,Su=Gr({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const s=gt(Bs),o=Ve(()=>e.route||s.value),r=gt($o,0),i=Ve(()=>{let f=Ht(r);const{matched:u}=o.value;let h;for(;(h=u[f])&&!h.components;)f++;return f}),l=Ve(()=>o.value.matched[i.value]);Nn($o,Ve(()=>i.value+1)),Nn($c,l),Nn(Bs,o);const a=J();return Vn(()=>[a.value,l.value,e.name],([f,u,h],[y,b,E])=>{u&&(u.instances[h]=f,b&&b!==u&&f&&f===y&&(u.leaveGuards.size||(u.leaveGuards=b.leaveGuards),u.updateGuards.size||(u.updateGuards=b.updateGuards))),f&&u&&(!b||!zt(u,b)||!y)&&(u.enterCallbacks[h]||[]).forEach(S=>S(f))},{flush:"post"}),()=>{const f=o.value,u=e.name,h=l.value,y=h&&h.components[u];if(!y)return cr(n.default,{Component:y,route:f});const b=h.props[u],E=b?b===!0?f.params:typeof b=="function"?b(f):b:null,V=mi(y,Q({},E,t,{onVnodeUnmounted:N=>{N.component.isUnmounted&&(h.instances[u]=null)},ref:a}));return cr(n.default,{Component:V,route:f})||V}}});function cr(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const ku=Su;function Eu(e){const t=pu(e.routes,e),n=e.parseQuery||Xc,s=e.stringifyQuery||Zo,o=e.history,r=nn(),i=nn(),l=nn(),a=dl(Ct);let f=Ct;Kt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=bs.bind(null,_=>""+_),h=bs.bind(null,Vc),y=bs.bind(null,Sn);function b(_,I){let T,D;return Ri(_)?(T=t.getRecordMatcher(_),D=I):D=_,t.addRoute(D,T)}function E(_){const I=t.getRecordMatcher(_);I&&t.removeRoute(I)}function S(){return t.getRoutes().map(_=>_.record)}function V(_){return!!t.getRecordMatcher(_)}function N(_,I){if(I=Q({},I||a.value),typeof _=="string"){const g=Cs(n,_,I.path),C=t.resolve({path:g.path},I),v=o.createHref(g.fullPath);return Q(g,C,{params:y(C.params),hash:Sn(g.hash),redirectedFrom:void 0,href:v})}let T;if(_.path!=null)T=Q({},_,{path:Cs(n,_.path,I.path).path});else{const g=Q({},_.params);for(const C in g)g[C]==null&&delete g[C];T=Q({},_,{params:h(g)}),I.params=h(I.params)}const D=t.resolve(T,I),U=_.hash||"";D.params=u(y(D.params));const c=Kc(s,Q({},_,{hash:Pc(U),path:D.path})),d=o.createHref(c);return Q({fullPath:c,hash:U,query:s===Zo?Zc(_.query):_.query||{}},D,{redirectedFrom:void 0,href:d})}function A(_){return typeof _=="string"?Cs(n,_,a.value.path):Q({},_)}function M(_,I){if(f!==_)return Yt(ue.NAVIGATION_CANCELLED,{from:I,to:_})}function P(_){return L(_)}function W(_){return P(Q(A(_),{replace:!0}))}function re(_,I){const T=_.matched[_.matched.length-1];if(T&&T.redirect){const{redirect:D}=T;let U=typeof D=="function"?D(_,I):D;return typeof U=="string"&&(U=U.includes("?")||U.includes("#")?U=A(U):{path:U},U.params={}),Q({query:_.query,hash:_.hash,params:U.path!=null?{}:_.params},U)}}function L(_,I){const T=f=N(_),D=a.value,U=_.state,c=_.force,d=_.replace===!0,g=re(T,D);if(g)return L(Q(A(g),{state:typeof g=="object"?Q({},U,g.state):U,force:c,replace:d}),I||T);const C=T;C.redirectedFrom=I;let v;return!c&&Lc(s,D,T)&&(v=Yt(ue.NAVIGATION_DUPLICATED,{to:C,from:D}),Le(D,D,!0,!1)),(v?Promise.resolve(v):le(C,D)).catch(m=>ut(m)?ut(m,ue.NAVIGATION_GUARD_REDIRECT)?m:Fe(m):q(m,C,D)).then(m=>{if(m){if(ut(m,ue.NAVIGATION_GUARD_REDIRECT))return L(Q({replace:d},A(m.to),{state:typeof m.to=="object"?Q({},U,m.to.state):U,force:c}),I||C)}else m=Pe(C,D,!0,d,U);return me(C,D,m),m})}function ee(_,I){const T=M(_,I);return T?Promise.reject(T):Promise.resolve()}function z(_){const I=bt.values().next().value;return I&&typeof I.runWithContext=="function"?I.runWithContext(_):_()}function le(_,I){let T;const[D,U,c]=eu(_,I);T=ws(D.reverse(),"beforeRouteLeave",_,I);for(const g of D)g.leaveGuards.forEach(C=>{T.push(St(C,_,I))});const d=ee.bind(null,_,I);return T.push(d),Oe(T).then(()=>{T=[];for(const g of r.list())T.push(St(g,_,I));return T.push(d),Oe(T)}).then(()=>{T=ws(U,"beforeRouteUpdate",_,I);for(const g of U)g.updateGuards.forEach(C=>{T.push(St(C,_,I))});return T.push(d),Oe(T)}).then(()=>{T=[];for(const g of c)if(g.beforeEnter)if(ze(g.beforeEnter))for(const C of g.beforeEnter)T.push(St(C,_,I));else T.push(St(g.beforeEnter,_,I));return T.push(d),Oe(T)}).then(()=>(_.matched.forEach(g=>g.enterCallbacks={}),T=ws(c,"beforeRouteEnter",_,I,z),T.push(d),Oe(T))).then(()=>{T=[];for(const g of i.list())T.push(St(g,_,I));return T.push(d),Oe(T)}).catch(g=>ut(g,ue.NAVIGATION_CANCELLED)?g:Promise.reject(g))}function me(_,I,T){l.list().forEach(D=>z(()=>D(_,I,T)))}function Pe(_,I,T,D,U){const c=M(_,I);if(c)return c;const d=I===Ct,g=Kt?history.state:{};T&&(D||d?o.replace(_.fullPath,Q({scroll:d&&g&&g.scroll},U)):o.push(_.fullPath,U)),a.value=_,Le(_,I,T,d),Fe()}let ae;function Ie(){ae||(ae=o.listen((_,I,T)=>{if(!at.listening)return;const D=N(_),U=re(D,at.currentRoute.value);if(U){L(Q(U,{replace:!0,force:!0}),D).catch(mn);return}f=D;const c=a.value;Kt&&qc(Xo(c.fullPath,T.delta),ls()),le(D,c).catch(d=>ut(d,ue.NAVIGATION_ABORTED|ue.NAVIGATION_CANCELLED)?d:ut(d,ue.NAVIGATION_GUARD_REDIRECT)?(L(Q(A(d.to),{force:!0}),D).then(g=>{ut(g,ue.NAVIGATION_ABORTED|ue.NAVIGATION_DUPLICATED)&&!T.delta&&T.type===js.pop&&o.go(-1,!1)}).catch(mn),Promise.reject()):(T.delta&&o.go(-T.delta,!1),q(d,D,c))).then(d=>{d=d||Pe(D,c,!1),d&&(T.delta&&!ut(d,ue.NAVIGATION_CANCELLED)?o.go(-T.delta,!1):T.type===js.pop&&ut(d,ue.NAVIGATION_ABORTED|ue.NAVIGATION_DUPLICATED)&&o.go(-1,!1)),me(D,c,d)}).catch(mn)}))}let Ye=nn(),ne=nn(),Y;function q(_,I,T){Fe(_);const D=ne.list();return D.length?D.forEach(U=>U(_,I,T)):console.error(_),Promise.reject(_)}function Ke(){return Y&&a.value!==Ct?Promise.resolve():new Promise((_,I)=>{Ye.add([_,I])})}function Fe(_){return Y||(Y=!_,Ie(),Ye.list().forEach(([I,T])=>_?T(_):I()),Ye.reset()),_}function Le(_,I,T,D){const{scrollBehavior:U}=e;if(!Kt||!U)return Promise.resolve();const c=!T&&Jc(Xo(_.fullPath,0))||(D||!T)&&history.state&&history.state.scroll||null;return bn().then(()=>U(_,I,c)).then(d=>d&&Wc(d)).catch(d=>q(d,_,I))}const _e=_=>o.go(_);let Be;const bt=new Set,at={currentRoute:a,listening:!0,addRoute:b,removeRoute:E,clearRoutes:t.clearRoutes,hasRoute:V,getRoutes:S,resolve:N,options:e,push:P,replace:W,go:_e,back:()=>_e(-1),forward:()=>_e(1),beforeEach:r.add,beforeResolve:i.add,afterEach:l.add,onError:ne.add,isReady:Ke,install(_){_.component("RouterLink",_u),_.component("RouterView",ku),_.config.globalProperties.$router=at,Object.defineProperty(_.config.globalProperties,"$route",{enumerable:!0,get:()=>Ht(a)}),Kt&&!Be&&a.value===Ct&&(Be=!0,P(o.location).catch(D=>{}));const I={};for(const D in Ct)Object.defineProperty(I,D,{get:()=>a.value[D],enumerable:!0});_.provide(lo,at),_.provide(Oi,Ir(I)),_.provide(Bs,a);const T=_.unmount;bt.add(_),_.unmount=function(){bt.delete(_),bt.size<1&&(f=Ct,ae&&ae(),ae=null,a.value=Ct,Be=!1,Y=!1),T()}}};function Oe(_){return _.reduce((I,T)=>I.then(()=>z(T)),Promise.resolve())}return at}const Au={name:"VirtualKeyboard",props:{modelValue:{type:String,default:""}},emits:["update:modelValue","send"],setup(e,{emit:t}){const n=J(!1),s=J(!1),o=J(!1),r=J(!1);return{shiftActive:n,ctrlActive:s,altActive:o,capsActive:r,handleVirtualKey:l=>{if(l==="Shift"){n.value=!n.value;return}if(l==="Ctrl"){s.value=!s.value;return}if(l==="Alt"){o.value=!o.value;return}if(l==="Caps"){r.value=!r.value;return}if(l==="Backspace"){t("update:modelValue",e.modelValue.slice(0,-1));return}if(l==="Enter"){console.log("[VirtualKeyboard] Enter 键被点击"),console.log("[VirtualKeyboard] 当前输入内容:",e.modelValue),t("send"),console.log("[VirtualKeyboard] 已触发 send 事件");return}if(l==="Space"){t("update:modelValue",e.modelValue+" ");return}if(l==="Tab"){t("update:modelValue",e.modelValue+" ");return}if(l==="Del")return;if(l==="Esc"||l==="esc"){t("send");return}let a=l;(n.value||r.value)&&(a.length===1&&a.match(/[a-z]/)&&(a=a.toUpperCase()),n.value&&(n.value=!1));let f="";s.value&&(f+="Ctrl+"),o.value&&(f+="Alt+"),t("update:modelValue",e.modelValue+f+a)}}}},Ru={class:"virtual-keyboard"},Tu={class:"keyboard-row"},Ou={class:"keyboard-row"},Pu={class:"keyboard-row"},Iu={class:"keyboard-row"},Nu={class:"keyboard-row"};function Vu(e,t,n,s,o,r){return he(),ge("div",Ru,[p("div",Tu,[p("button",{onClick:t[0]||(t[0]=i=>s.handleVirtualKey("`")),class:"key key-number"},"`"),p("button",{onClick:t[1]||(t[1]=i=>s.handleVirtualKey("1")),class:"key key-number"},"1"),p("button",{onClick:t[2]||(t[2]=i=>s.handleVirtualKey("2")),class:"key key-number"},"2"),p("button",{onClick:t[3]||(t[3]=i=>s.handleVirtualKey("3")),class:"key key-number"},"3"),p("button",{onClick:t[4]||(t[4]=i=>s.handleVirtualKey("4")),class:"key key-number"},"4"),p("button",{onClick:t[5]||(t[5]=i=>s.handleVirtualKey("5")),class:"key key-number"},"5"),p("button",{onClick:t[6]||(t[6]=i=>s.handleVirtualKey("6")),class:"key key-number"},"6"),p("button",{onClick:t[7]||(t[7]=i=>s.handleVirtualKey("7")),class:"key key-number"},"7"),p("button",{onClick:t[8]||(t[8]=i=>s.handleVirtualKey("8")),class:"key key-number"},"8"),p("button",{onClick:t[9]||(t[9]=i=>s.handleVirtualKey("9")),class:"key key-number"},"9"),p("button",{onClick:t[10]||(t[10]=i=>s.handleVirtualKey("0")),class:"key key-number"},"0"),p("button",{onClick:t[11]||(t[11]=i=>s.handleVirtualKey("-")),class:"key key-number"},"-"),p("button",{onClick:t[12]||(t[12]=i=>s.handleVirtualKey("=")),class:"key key-number"},"="),p("button",{onClick:t[13]||(t[13]=i=>s.handleVirtualKey("Backspace")),class:"key key-wide key-function"},"⌫ Del")]),p("div",Ou,[p("button",{onClick:t[14]||(t[14]=i=>s.handleVirtualKey("Tab")),class:"key key-tab key-function"},"Tab"),p("button",{onClick:t[15]||(t[15]=i=>s.handleVirtualKey("q")),class:"key key-letter"},"q"),p("button",{onClick:t[16]||(t[16]=i=>s.handleVirtualKey("w")),class:"key key-letter"},"w"),p("button",{onClick:t[17]||(t[17]=i=>s.handleVirtualKey("e")),class:"key key-letter"},"e"),p("button",{onClick:t[18]||(t[18]=i=>s.handleVirtualKey("r")),class:"key key-letter"},"r"),p("button",{onClick:t[19]||(t[19]=i=>s.handleVirtualKey("t")),class:"key key-letter"},"t"),p("button",{onClick:t[20]||(t[20]=i=>s.handleVirtualKey("y")),class:"key key-letter"},"y"),p("button",{onClick:t[21]||(t[21]=i=>s.handleVirtualKey("u")),class:"key key-letter"},"u"),p("button",{onClick:t[22]||(t[22]=i=>s.handleVirtualKey("i")),class:"key key-letter"},"i"),p("button",{onClick:t[23]||(t[23]=i=>s.handleVirtualKey("o")),class:"key key-letter"},"o"),p("button",{onClick:t[24]||(t[24]=i=>s.handleVirtualKey("p")),class:"key key-letter"},"p"),p("button",{onClick:t[25]||(t[25]=i=>s.handleVirtualKey("[")),class:"key key-symbol"},"["),p("button",{onClick:t[26]||(t[26]=i=>s.handleVirtualKey("]")),class:"key key-symbol"},"]"),p("button",{onClick:t[27]||(t[27]=i=>s.handleVirtualKey("\\")),class:"key key-symbol"},"\\")]),p("div",Pu,[p("button",{onClick:t[28]||(t[28]=i=>s.handleVirtualKey("Caps")),class:Ge(["key","key-modifier","key-caps",{"key-active":s.capsActive}])},"Caps",2),p("button",{onClick:t[29]||(t[29]=i=>s.handleVirtualKey("a")),class:"key key-letter"},"a"),p("button",{onClick:t[30]||(t[30]=i=>s.handleVirtualKey("s")),class:"key key-letter"},"s"),p("button",{onClick:t[31]||(t[31]=i=>s.handleVirtualKey("d")),class:"key key-letter"},"d"),p("button",{onClick:t[32]||(t[32]=i=>s.handleVirtualKey("f")),class:"key key-letter"},"f"),p("button",{onClick:t[33]||(t[33]=i=>s.handleVirtualKey("g")),class:"key key-letter"},"g"),p("button",{onClick:t[34]||(t[34]=i=>s.handleVirtualKey("h")),class:"key key-letter"},"h"),p("button",{onClick:t[35]||(t[35]=i=>s.handleVirtualKey("j")),class:"key key-letter"},"j"),p("button",{onClick:t[36]||(t[36]=i=>s.handleVirtualKey("k")),class:"key key-letter"},"k"),p("button",{onClick:t[37]||(t[37]=i=>s.handleVirtualKey("l")),class:"key key-letter"},"l"),p("button",{onClick:t[38]||(t[38]=i=>{s.handleVirtualKey(";")}),class:"key key-symbol"},";"),p("button",{onClick:t[39]||(t[39]=i=>s.handleVirtualKey("'")),class:"key key-symbol"},"'"),p("button",{onClick:t[40]||(t[40]=i=>s.handleVirtualKey("Enter")),class:"key key-enter"},"↵ Enter")]),p("div",Iu,[p("button",{onClick:t[41]||(t[41]=i=>s.handleVirtualKey("Shift")),class:Ge(["key","key-special","key-shift",{"key-active":s.shiftActive}])},"⇧ Shift",2),p("button",{onClick:t[42]||(t[42]=i=>s.handleVirtualKey("z")),class:"key key-letter"},"z"),p("button",{onClick:t[43]||(t[43]=i=>s.handleVirtualKey("x")),class:"key key-letter"},"x"),p("button",{onClick:t[44]||(t[44]=i=>s.handleVirtualKey("c")),class:"key key-letter"},"c"),p("button",{onClick:t[45]||(t[45]=i=>s.handleVirtualKey("v")),class:"key key-letter"},"v"),p("button",{onClick:t[46]||(t[46]=i=>s.handleVirtualKey("b")),class:"key key-letter"},"b"),p("button",{onClick:t[47]||(t[47]=i=>s.handleVirtualKey("n")),class:"key key-letter"},"n"),p("button",{onClick:t[48]||(t[48]=i=>s.handleVirtualKey("m")),class:"key key-letter"},"m"),p("button",{onClick:t[49]||(t[49]=i=>s.handleVirtualKey(",")),class:"key key-symbol"},","),p("button",{onClick:t[50]||(t[50]=i=>s.handleVirtualKey(".")),class:"key key-symbol"},"."),p("button",{onClick:t[51]||(t[51]=i=>s.handleVirtualKey("/")),class:"key key-symbol"},"/"),p("button",{onClick:t[52]||(t[52]=i=>s.handleVirtualKey("Shift")),class:Ge(["key","key-special","key-shift",{"key-active":s.shiftActive}])},"⇧ Shift",2)]),p("div",Nu,[p("button",{onClick:t[53]||(t[53]=i=>s.handleVirtualKey("Ctrl")),class:Ge(["key","key-modifier","key-ctrl",{"key-active":s.ctrlActive}])},"Ctrl",2),p("button",{onClick:t[54]||(t[54]=i=>s.handleVirtualKey("Alt")),class:Ge(["key","key-modifier","key-alt",{"key-active":s.altActive}])},"Alt",2),p("button",{onClick:t[55]||(t[55]=i=>s.handleVirtualKey("Space")),class:"key key-space"},"Space")])])}const Mu=is(Au,[["render",Vu],["__scopeId","data-v-1a7d5e30"]]),Du={name:"ControlPanel",components:{VirtualKeyboard:Mu},setup(){const e=J(!1),t=J(""),n=J("Ready"),s=J(""),o=J(!1),r=J([]),i=J([0,0,0,0,0,0,0]),l=J([]),a=J(""),f=J(60),u=J(!0),h=J(!1),y=J(null);let b=null;const E=J(""),S=J(!1),V=J(!1),N=J(!1),A=J(!1),M=J(!1),P=J(!1),W=v=>{if(v==="Shift"){N.value=!N.value;return}if(v==="Ctrl"){A.value=!A.value;return}if(v==="Alt"){M.value=!M.value;return}if(v==="Caps"){P.value=!P.value;return}if(v==="Backspace"){E.value=E.value.slice(0,-1);return}if(v==="Enter"){E.value+=`
26
+ `;return}if(v==="Space"){E.value+=" ";return}if(v==="Tab"){E.value+=" ";return}if(v==="Del")return;let m=v;(N.value||P.value)&&(m.length===1&&m.match(/[a-z]/)&&(m=m.toUpperCase()),N.value&&(N.value=!1));let x="";A.value&&(x+="Ctrl+"),M.value&&(x+="Alt+"),E.value+=x+m},re=J(!1),L=J(!1),ee=J(!1),z=J(""),le=J(""),me=J(!1),Pe=J(null);let ae=null,Ie=null,Ye=null;const ne=Ve(()=>t.value||""),Y=Ve(()=>{const v=z.value.trim();if(!v)return"";const x=v.replace(/\/+$/,"").split("/").filter(k=>k);return x.reverse(),x.join(".")}),q=v=>{const m=i.value[v];return m===0?"off":m===1?"on":m===2?"running":"off"},Ke=()=>{ae=new WebSocket(pc("/ws")),ae.onopen=()=>{e.value=!0,console.log("WebSocket 已连接")},ae.onmessage=v=>{const m=JSON.parse(v.data);m.type==="state"&&(o.value=m.auto_approve,i.value=m.led_status,n.value=m.lcd_message,m.current_mode&&!["0","1","2"].includes(m.current_mode.toString())&&(t.value=m.current_mode.toString()),m.logs&&(r.value=m.logs))},ae.onclose=()=>{e.value=!1,console.log("WebSocket 已断开,3秒后重连..."),Ie=setTimeout(Ke,3e3)},ae.onerror=v=>{console.error("WebSocket 错误:",v)}},Fe=v=>{ae&&ae.readyState===WebSocket.OPEN&&ae.send(JSON.stringify(v))},Le=v=>{Fe({type:"keypress",key:v})},_e=()=>{Fe({type:"toggle_auto_approve"})},Be=async()=>{if(ne.value){h.value=!0;try{const m=await(await fetch(`/api/tmux/logs?session=${encodeURIComponent(ne.value)}&lines=${f.value}`,{credentials:"include"})).json();m.success?(a.value=m.logs,await bn(),y.value&&(y.value.scrollTop=y.value.scrollHeight)):a.value=`错误: ${m.error||"加载日志失败"}`}catch(v){console.error("加载会话日志失败:",v),a.value=`加载失败: ${v.message}`}finally{h.value=!1}}},bt=()=>{u.value=!u.value,u.value?b=setInterval(()=>{Be()},3e3):b&&(clearInterval(b),b=null)},at=async()=>{if(console.log("[ControlPanel] sendCommand 被调用"),console.log("[ControlPanel] 当前选中的会话:",ne.value),console.log("[ControlPanel] 输入框内容:",E.value),!ne.value){console.warn("[ControlPanel] 未选择会话"),alert("请先选择一个 tmux 会话");return}const v=E.value;if(!v||!v.trim()){console.warn("[ControlPanel] 命令为空");return}console.log("[ControlPanel] 准备发送命令:",v),S.value=!0;try{console.log("[ControlPanel] 发送 POST 请求到 /api/tmux/send-command");const m=await fetch("/api/tmux/send-command",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({session:ne.value,command:v})});if(console.log("[ControlPanel] 收到响应,状态:",m.status),m.status===401){console.error("[ControlPanel] 认证失败,需要重新登录"),alert("登录已过期,请刷新页面重新登录");return}const x=await m.json();console.log("[ControlPanel] 响应数据:",x),x.success?(console.log("[ControlPanel] 命令发送成功"),E.value="",await Be()):(console.error("[ControlPanel] 命令发送失败:",x.error||x.detail),alert("发送命令失败: "+(x.error||x.detail||"未知错误")))}catch(m){console.error("[ControlPanel] 请求异常:",m),m.message==="Failed to fetch"?alert("发送命令失败: 无法连接到服务器,请检查网络连接或刷新页面重试"):alert("发送命令失败: "+m.message)}finally{S.value=!1,console.log("[ControlPanel] sendCommand 执行完毕")}},Oe=()=>{re.value=!0},_=()=>{re.value=!1},I=async()=>{if(ne.value){L.value=!0;try{const m=await(await fetch("/api/tmux/delete-session",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({session:ne.value})})).json();m.success?(_(),t.value="",a.value="",await D(),alert(m.message||"会话已删除")):alert("删除失败: "+(m.error||"未知错误"))}catch(v){console.error("删除会话失败:",v),alert("删除失败: "+v.message)}finally{L.value=!1}}},T=()=>{r.value=[]},D=async()=>{try{const m=await(await fetch("/api/tmux/sessions",{credentials:"include"})).json();m.success&&(l.value=m.sessions)}catch(v){console.error("加载 tmux 会话失败:",v)}},U=v=>v.startsWith("/")?v==="/"?"不允许使用根路径 /":v.includes("~")?"不允许使用 ~ 符号,请使用完整路径":"":"路径必须是绝对路径",c=async()=>{var v;ee.value=!0,z.value="",le.value="",await bn(),(v=Pe.value)==null||v.focus()},d=()=>{ee.value=!1,z.value="",le.value=""},g=async()=>{const v=z.value.trim(),m=U(v);if(m){le.value=m;return}if(!v){le.value="请输入路径";return}me.value=!0,le.value="";try{const k=await(await fetch("/api/tmux/create",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:v})})).json();k.success?(await D(),t.value=k.session_name,await C(),d(),n.value=k.message):le.value=k.error||"创建失败"}catch(x){console.error("创建会话失败:",x),le.value="创建失败: "+x.message}finally{me.value=!1}},C=async()=>{if(t.value)try{const m=await(await fetch("/api/tmux/attach",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({session_name:t.value})})).json();m.success?n.value=m.message:console.error("切换会话失败:",m.error)}catch(v){console.error("切换会话失败:",v)}};return zr(()=>{Ke(),D(),Ye=setInterval(D,5e3),u.value&&(b=setInterval(()=>{Be()},3e3))}),no(()=>{ae&&ae.close(),Ie&&clearTimeout(Ie),Ye&&clearInterval(Ye),b&&clearInterval(b)}),{wsConnected:e,currentMode:t,currentSessionName:ne,lcdMessage:n,lcdInput:s,autoApprove:o,logs:r,tmuxSessions:l,sessionLogs:a,logLines:f,autoRefresh:u,loadingLogs:h,terminalContent:y,commandInput:E,sendingCommand:S,keyboardExpanded:V,shiftActive:N,ctrlActive:A,altActive:M,capsActive:P,handleVirtualKey:W,showDeleteDialog:re,deletingSession:L,showDialog:ee,newSessionPath:z,validationError:le,creating:me,previewName:Y,pathInput:Pe,getLedClass:q,pressKey:Le,toggleAutoApprove:_e,changeMode:C,clearLogs:T,showCreateSessionDialog:c,closeDialog:d,createSession:g,loadSessionLogs:Be,toggleAutoRefresh:bt,sendCommand:at,showDeleteConfirm:Oe,closeDeleteDialog:_,confirmDeleteSession:I}}},Ku={class:"page"},Lu={class:"header-right"},ju={class:"tmux-select-wrap"},Fu={value:"",disabled:""},Bu=["value"],Hu={class:"keyboard-body"},Uu={class:"terminal-section"},Gu={class:"terminal-header"},Wu={class:"terminal-title"},qu={class:"terminal-controls"},Ju={class:"line-count-control"},zu=["title"],Yu=["disabled"],Qu={class:"terminal-scroll-wrapper"},Xu={class:"terminal-content",ref:"terminalContent"},Zu={key:0,class:"terminal-placeholder"},$u={key:1,class:"terminal-logs"},ef={key:2,class:"terminal-loading"},tf={class:"main-content"},nf={class:"command-input-section"},sf={class:"command-header"},of={class:"command-input-wrapper"},rf={class:"command-buttons"},lf=["disabled"],af={class:"control-buttons"},cf={class:"toggle-wrap-compact"},uf={class:"toggle-switch-compact",title:"自动批准拨杆"},ff={class:"virtual-keyboard-section"},df=["title"],hf={class:"log-box"},pf={class:"log-title"},gf={class:"log-list"},mf={class:"log-time"},yf={class:"log-action"},vf={class:"log-detail"},bf={class:"modal-header"},Cf={class:"modal-body"},_f={class:"form-group"},wf={key:0,class:"error-message"},xf={key:1,class:"preview-message"},Sf={class:"modal-footer"},kf=["disabled"],Ef={class:"modal-header modal-header-warning"},Af={class:"modal-body"},Rf={class:"warning-message"},Tf={class:"modal-footer"},Of=["disabled"];function Pf(e,t,n,s,o,r){const i=Os("VirtualKeyboard");return he(),ge("div",Ku,[(he(),di(Tl,{to:"#nav-controls"},[p("div",Lu,[p("span",{class:Ge(["badge",s.wsConnected?"badge-on":"badge-off"])}," WS "+de(s.wsConnected?"连接":"断开"),3),p("div",ju,[xt(p("select",{"onUpdate:modelValue":t[0]||(t[0]=l=>s.currentMode=l),onChange:t[1]||(t[1]=(...l)=>s.changeMode&&s.changeMode(...l)),title:"切换tmux会话",class:"tmux-select"},[p("option",Fu,de(s.tmuxSessions.length?"选择 tmux 会话":"(无活动会话,点击右侧「新增」创建)"),1),(he(!0),ge(Ue,null,wo(s.tmuxSessions,l=>(he(),ge("option",{key:l.name,value:l.name},de(l.name),9,Bu))),128))],544),[[nc,s.currentMode]])])])])),p("div",Hu,[p("div",Uu,[p("div",Gu,[p("div",Wu,[t[34]||(t[34]=p("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},[p("polyline",{points:"4 17 10 11 4 5"}),p("line",{x1:"12",y1:"19",x2:"20",y2:"19"})],-1)),p("span",null,de(s.currentSessionName?`会话日志: ${s.currentSessionName}`:"请选择会话"),1)]),p("div",qu,[p("div",Ju,[t[35]||(t[35]=p("label",null,"行数:",-1)),xt(p("input",{type:"number","onUpdate:modelValue":t[2]||(t[2]=l=>s.logLines=l),onChange:t[3]||(t[3]=(...l)=>s.loadSessionLogs&&s.loadSessionLogs(...l)),min:"10",max:"1000",class:"line-count-input"},null,544),[[pn,s.logLines,void 0,{number:!0}]])]),p("button",{onClick:t[4]||(t[4]=(...l)=>s.toggleAutoRefresh&&s.toggleAutoRefresh(...l)),class:Ge(["btn-auto-refresh",s.autoRefresh?"active":""]),title:s.autoRefresh?"关闭自动刷新":"开启自动刷新"},[t[36]||(t[36]=p("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"16",height:"16"},[p("polyline",{points:"23 4 23 10 17 10"}),p("path",{d:"M20.49 15a9 9 0 1 1-2.12-9.36L23 10"})],-1)),He(" "+de(s.autoRefresh?"3s":"自动"),1)],10,zu),p("button",{onClick:t[5]||(t[5]=(...l)=>s.loadSessionLogs&&s.loadSessionLogs(...l)),disabled:s.loadingLogs,class:"btn-refresh",title:"手动刷新"},[(he(),ge("svg",{class:Ge({spinning:s.loadingLogs}),viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"16",height:"16"},[...t[37]||(t[37]=[p("polyline",{points:"23 4 23 10 17 10"},null,-1),p("path",{d:"M20.49 15a9 9 0 1 1-2.12-9.36L23 10"},null,-1)])],2)),t[38]||(t[38]=He(" 刷新 ",-1))],8,Yu)])]),p("div",Qu,[p("div",Xu,[s.currentSessionName?s.sessionLogs?(he(),ge("pre",$u,de(s.sessionLogs),1)):(he(),ge("div",ef,[...t[40]||(t[40]=[p("div",{class:"loading-spinner"},null,-1),p("p",null,"加载日志中...",-1)])])):(he(),ge("div",Zu,[...t[39]||(t[39]=[p("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5",width:"48",height:"48"},[p("polyline",{points:"4 17 10 11 4 5"}),p("line",{x1:"12",y1:"19",x2:"20",y2:"19"})],-1),p("p",null,"请从顶部导航栏选择一个 tmux 会话",-1)])]))],512)])]),p("div",tf,[p("div",nf,[p("div",sf,[t[41]||(t[41]=p("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"18",height:"18"},[p("polyline",{points:"4 17 10 11 4 5"}),p("line",{x1:"12",y1:"19",x2:"20",y2:"19"})],-1)),p("span",null,"发送命令到会话: "+de(s.currentSessionName||"未选择"),1)]),p("div",of,[xt(p("textarea",{"onUpdate:modelValue":t[6]||(t[6]=l=>s.commandInput=l),onKeydown:[t[7]||(t[7]=vs(jt((...l)=>s.sendCommand&&s.sendCommand(...l),["ctrl"]),["enter"])),t[8]||(t[8]=vs(jt((...l)=>s.sendCommand&&s.sendCommand(...l),["meta"]),["enter"]))],placeholder:"输入命令...\\n支持多行输入\\nCtrl+Enter 或 ⌘+Enter 发送",class:"command-textarea",rows:"3"},null,544),[[pn,s.commandInput]]),p("div",rf,[p("button",{onClick:t[9]||(t[9]=(...l)=>s.sendCommand&&s.sendCommand(...l)),disabled:!s.currentSessionName||!s.commandInput.trim()||s.sendingCommand,class:"btn-send-command"},[t[42]||(t[42]=p("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"16",height:"16"},[p("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),p("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})],-1)),He(" "+de(s.sendingCommand?"发送中...":"发送"),1)],8,lf)])])]),p("div",af,[p("button",{class:"key-btn key-compact",onClick:t[10]||(t[10]=l=>s.pressKey("mic")),title:"语音输入"},[...t[43]||(t[43]=[ba('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-8b11815c><rect x="9" y="2" width="6" height="12" rx="3" data-v-8b11815c></rect><path d="M5 10a7 7 0 0 0 14 0" data-v-8b11815c></path><line x1="12" y1="19" x2="12" y2="22" data-v-8b11815c></line><line x1="8" y1="22" x2="16" y2="22" data-v-8b11815c></line></svg>',1)])]),p("button",{class:"key-btn key-compact key-yes",onClick:t[11]||(t[11]=l=>s.pressKey("yes")),title:"确认"},[...t[44]||(t[44]=[p("span",{class:"key-label-small"},"YES",-1)])]),p("button",{class:"key-btn key-compact key-no",onClick:t[12]||(t[12]=l=>s.pressKey("no")),title:"拒绝"},[...t[45]||(t[45]=[p("span",{class:"key-label-small"},"NO",-1)])]),p("div",cf,[t[47]||(t[47]=p("div",{class:"toggle-label-small"},"自动",-1)),p("label",uf,[xt(p("input",{type:"checkbox","onUpdate:modelValue":t[13]||(t[13]=l=>s.autoApprove=l),onChange:t[14]||(t[14]=(...l)=>s.toggleAutoApprove&&s.toggleAutoApprove(...l))},null,544),[[tc,s.autoApprove]]),t[46]||(t[46]=p("span",{class:"slider"},null,-1))])]),p("button",{class:"key-btn key-compact key-esc",onClick:t[15]||(t[15]=l=>s.pressKey("esc")),title:"退出"},[...t[48]||(t[48]=[p("span",{class:"key-label-small key-esc-label"},"esc",-1)])]),p("button",{class:"key-btn key-compact key-arrow-compact",onClick:t[16]||(t[16]=l=>s.pressKey("up")),title:"上"},[...t[49]||(t[49]=[p("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},[p("polyline",{points:"18 15 12 9 6 15"})],-1)])]),p("button",{class:"key-btn key-compact key-arrow-compact",onClick:t[17]||(t[17]=l=>s.pressKey("down")),title:"下"},[...t[50]||(t[50]=[p("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},[p("polyline",{points:"6 9 12 15 18 9"})],-1)])]),p("button",{class:"key-btn key-compact",onClick:t[18]||(t[18]=l=>s.pressKey("enter")),title:"提交/执行"},[...t[51]||(t[51]=[p("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.2","stroke-linecap":"round","stroke-linejoin":"round"},[p("polyline",{points:"9 10 4 15 9 20"}),p("path",{d:"M20 4v7a4 4 0 0 1-4 4H4"})],-1)])])]),p("div",ff,[p("div",{class:"virtual-keyboard-header",onClick:t[19]||(t[19]=l=>s.keyboardExpanded=!s.keyboardExpanded)},[t[52]||(t[52]=p("span",{class:"vkb-title"},[p("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"16",height:"16"},[p("rect",{x:"2",y:"4",width:"20",height:"16",rx:"2"}),p("path",{d:"M6 8h.01M10 8h.01M14 8h.01M18 8h.01M8 12h.01M12 12h.01M16 12h.01M7 16h10"})]),He(" 虚拟键盘 ")],-1)),p("span",{class:"vkb-toggle",title:s.keyboardExpanded?"收起键盘":"展开键盘"},de(s.keyboardExpanded?"收起 ▲":"展开 ▼"),9,df)]),xt(be(i,{modelValue:s.commandInput,"onUpdate:modelValue":t[20]||(t[20]=l=>s.commandInput=l),onSend:s.sendCommand},null,8,["modelValue","onSend"]),[[Ka,s.keyboardExpanded]])]),p("div",hf,[p("div",pf,[t[53]||(t[53]=He(" 事件日志 ",-1)),p("button",{onClick:t[21]||(t[21]=(...l)=>s.clearLogs&&s.clearLogs(...l)),class:"btn-ghost"},"清空")]),p("ul",gf,[(he(!0),ge(Ue,null,wo(s.logs,(l,a)=>(he(),ge("li",{key:a,class:"log-item"},[p("span",mf,de(l.time),1),p("span",yf,de(l.action),1),p("span",vf,de(l.detail),1)]))),128))])])])]),s.showDialog?(he(),ge("div",{key:0,class:"modal-overlay",onClick:t[28]||(t[28]=(...l)=>s.closeDialog&&s.closeDialog(...l))},[p("div",{class:"modal-content",onClick:t[27]||(t[27]=jt(()=>{},["stop"]))},[p("div",bf,[t[54]||(t[54]=p("h3",null,"🆕 新增 Tmux Session",-1)),p("button",{onClick:t[22]||(t[22]=(...l)=>s.closeDialog&&s.closeDialog(...l)),class:"btn-close"},"×")]),p("div",Cf,[p("div",_f,[t[56]||(t[56]=p("label",null,"项目路径(绝对路径)",-1)),xt(p("input",{type:"text","onUpdate:modelValue":t[23]||(t[23]=l=>s.newSessionPath=l),onKeyup:t[24]||(t[24]=vs((...l)=>s.createSession&&s.createSession(...l),["enter"])),placeholder:"例如: /Users/mac/codes",class:"path-input",ref:"pathInput"},null,544),[[pn,s.newSessionPath]]),s.validationError?(he(),ge("div",wf,de(s.validationError),1)):Lt("",!0),s.previewName?(he(),ge("div",xf,[t[55]||(t[55]=He(" 会话名称预览: ",-1)),p("code",null,de(s.previewName),1)])):Lt("",!0)])]),p("div",Sf,[p("button",{onClick:t[25]||(t[25]=(...l)=>s.closeDialog&&s.closeDialog(...l)),class:"btn-cancel"},"取消"),p("button",{onClick:t[26]||(t[26]=(...l)=>s.createSession&&s.createSession(...l)),disabled:s.creating,class:"btn-create"},de(s.creating?"创建中...":"创建"),9,kf)])])])):Lt("",!0),s.showDeleteDialog?(he(),ge("div",{key:1,class:"modal-overlay",onClick:t[33]||(t[33]=(...l)=>s.closeDeleteDialog&&s.closeDeleteDialog(...l))},[p("div",{class:"modal-content modal-small",onClick:t[32]||(t[32]=jt(()=>{},["stop"]))},[p("div",Ef,[t[57]||(t[57]=p("h3",null,"⚠️ 确认删除会话",-1)),p("button",{onClick:t[29]||(t[29]=(...l)=>s.closeDeleteDialog&&s.closeDeleteDialog(...l)),class:"btn-close"},"×")]),p("div",Af,[p("div",Rf,[t[60]||(t[60]=p("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"48",height:"48"},[p("path",{d:"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"}),p("line",{x1:"12",y1:"9",x2:"12",y2:"13"}),p("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})],-1)),p("p",null,[t[58]||(t[58]=He("确定要删除会话 ",-1)),p("code",null,de(s.currentSessionName),1),t[59]||(t[59]=He(" 吗?",-1))]),t[61]||(t[61]=p("p",{class:"warning-detail"},"此操作将:",-1)),t[62]||(t[62]=p("ul",{class:"warning-list"},[p("li",null,"停止该会话的日志管道"),p("li",null,"终止会话中的所有进程"),p("li",null,"删除该 tmux 会话")],-1)),t[63]||(t[63]=p("p",{class:"warning-note"},"此操作不可撤销!",-1))])]),p("div",Tf,[p("button",{onClick:t[30]||(t[30]=(...l)=>s.closeDeleteDialog&&s.closeDeleteDialog(...l)),class:"btn-cancel"},"取消"),p("button",{onClick:t[31]||(t[31]=(...l)=>s.confirmDeleteSession&&s.confirmDeleteSession(...l)),disabled:s.deletingSession,class:"btn-delete-confirm"},de(s.deletingSession?"删除中...":"确认删除"),9,Of)])])])):Lt("",!0)])}const If=is(Du,[["render",Pf],["__scopeId","data-v-8b11815c"]]),Nf={name:"Login",data(){return{account:"",password:"",loading:!1,error:""}},methods:{async onSubmit(){this.error="",this.loading=!0;try{const e=await dc(this.account,this.password);if(e.ok){const t=this.$route.query.redirect||"/";this.$router.replace(t)}else this.error=e.error||"登录失败"}catch{this.error="网络错误,请重试"}finally{this.loading=!1}}}},Vf={class:"login-wrap"},Mf={class:"form-group"},Df=["disabled"],Kf={class:"form-group"},Lf=["disabled"],jf={key:0,class:"error"},Ff=["disabled"];function Bf(e,t,n,s,o,r){return he(),ge("div",Vf,[p("form",{class:"login-card",onSubmit:t[2]||(t[2]=jt((...i)=>r.onSubmit&&r.onSubmit(...i),["prevent"]))},[t[5]||(t[5]=p("div",{class:"brand"},[p("span",{class:"logo"},"🎹"),p("h1",null,"Claude Panel")],-1)),t[6]||(t[6]=p("p",{class:"subtitle"},"请输入账号密码登录",-1)),p("div",Mf,[t[3]||(t[3]=p("label",null,"账号",-1)),xt(p("input",{type:"text","onUpdate:modelValue":t[0]||(t[0]=i=>o.account=i),autocomplete:"username",placeholder:"账号",disabled:o.loading,autofocus:""},null,8,Df),[[pn,o.account]])]),p("div",Kf,[t[4]||(t[4]=p("label",null,"密码",-1)),xt(p("input",{type:"password","onUpdate:modelValue":t[1]||(t[1]=i=>o.password=i),autocomplete:"current-password",placeholder:"密码",disabled:o.loading},null,8,Lf),[[pn,o.password]])]),o.error?(he(),ge("p",jf,de(o.error),1)):Lt("",!0),p("button",{class:"login-btn",type:"submit",disabled:o.loading},de(o.loading?"登录中…":"登 录"),9,Ff)],32)])}const Hf=is(Nf,[["render",Bf],["__scopeId","data-v-bdde2753"]]),Uf=[{path:"/login",name:"Login",component:Hf,meta:{public:!0}},{path:"/",name:"ControlPanel",component:If}],Vi=Eu({history:ou(),routes:Uf});Vi.beforeEach(async e=>e.meta.public?e.name==="Login"&&await Jo()?{name:"ControlPanel"}:!0:await Jo()?!0:{name:"Login",query:{redirect:e.fullPath}});ac(Cc).use(Vi).mount("#app");