diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index 42e1ebdb..a351646c 100644 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -45,11 +45,28 @@ s.close() } restore_persisted_env() { - if [ -f "${PERSIST_ENV}" ]; then - cp "${PERSIST_ENV}" /app/.env - chmod 600 /app/.env - echo "entrypoint: restored .env from ${PERSIST_ENV}" + if [ ! -f "${PERSIST_ENV}" ]; then + return 0 fi + if ! grep -q '^NEXUS_DATABASE_URL=' "${PERSIST_ENV}" 2>/dev/null; then + echo "entrypoint: warn — ${PERSIST_ENV} missing NEXUS_DATABASE_URL; skip restore (complete install wizard)" + return 0 + fi + cp "${PERSIST_ENV}" /app/.env + chmod 600 /app/.env + echo "entrypoint: restored .env from ${PERSIST_ENV}" +} + +# Compose may inject placeholder NEXUS_REDIS_URL (no password). Wizard .env wins. +export_app_env() { + if [ ! -f /app/.env ]; then + return 0 + fi + set -a + # shellcheck disable=SC1091 + . /app/.env + set +a + echo "entrypoint: exported NEXUS_* from /app/.env (overrides Compose placeholders)" } write_env_from_environment() { @@ -66,6 +83,10 @@ write_env_from_environment() { echo "entrypoint: install wizard pending — skip writing /app/.env" return 0 fi + if [ -z "${NEXUS_DATABASE_URL:-}" ]; then + echo "entrypoint: skip writing /app/.env — NEXUS_DATABASE_URL not set (use /app/install.html)" + return 0 + fi mkdir -p "${PERSIST_DIR}" { echo "# Generated by docker/entrypoint.sh — do not commit" @@ -101,5 +122,6 @@ fi restore_persisted_env write_env_from_environment +export_app_env exec "$@" diff --git a/docs/changelog/2026-06-06-docker-env-persist-wizard-sync.md b/docs/changelog/2026-06-06-docker-env-persist-wizard-sync.md new file mode 100644 index 00000000..0407d2a5 --- /dev/null +++ b/docs/changelog/2026-06-06-docker-env-persist-wizard-sync.md @@ -0,0 +1,27 @@ +# 2026-06-06 — Docker .env 持久化与 entrypoint 覆盖修复 + +## 摘要 + +修复 1Panel 安装向导完成后 `nx update`/容器重启导致 `nexus-state` 卷内 `.env` 缺少 `NEXUS_DATABASE_URL`、应用连 `127.0.0.1` 崩溃的问题。 + +## 动机 + +- `init-db` 仅写 `/app/.env`,卷同步依赖容器 EXIT trap,重建容器时 `restore_persisted_env` 可能恢复 entrypoint 生成的简版 env。 +- `write_env_from_environment` 在 `NEXUS_INSTALL_WIZARD_PENDING=0` 时用 `env | grep NEXUS_` 写卷,Compose 无 `NEXUS_DATABASE_URL`。 + +## 涉及文件 + +- `server/api/install.py` — `_sync_env_to_persist_volume`;`init-db` / Redis 修补 / lock 后立即同步卷 +- `docker/entrypoint.sh` — 无 `NEXUS_DATABASE_URL` 的卷不 restore;无 `NEXUS_DATABASE_URL` 环境变量时不生成 `.env`;`export_app_env` 在启动前 source `/app/.env`,使向导写入的 `DATABASE_URL` / `REDIS_URL` 覆盖 Compose 占位符 + +## 迁移 / 重启 + +已损坏的卷内 `.env` 需手工补全 `NEXUS_DATABASE_URL` 与 Redis URL 后 `docker start`;新装/重装向导自动同步。 + +## 验证 + +```bash +.venv/bin/pytest tests/test_security_unit.py -q +# 向导 init-db 后: +docker exec nexus-prod-nexus-1 grep NEXUS_DATABASE_URL /var/lib/nexus/.env +``` diff --git a/docs/changelog/2026-06-06-install-wizard-1panel-docker-guardian.md b/docs/changelog/2026-06-06-install-wizard-1panel-docker-guardian.md new file mode 100644 index 00000000..087a4d77 --- /dev/null +++ b/docs/changelog/2026-06-06-install-wizard-1panel-docker-guardian.md @@ -0,0 +1,29 @@ +# 2026-06-06 — 安装向导:1Panel Docker 进程守护 + +## 摘要 + +1Panel + Docker 部署路径下,安装向导步骤 5 展示 Docker/Compose 守护清单(替代 Supervisor/venv/Nginx 裸机清单);`init-db` 调用 `_configure_docker_guardian` 检测容器 health 与 1Panel 网络。 + +## 动机 + +- 1Panel 生产使用 `docker-compose.prod.yml`,进程守护由 **restart + healthcheck** 负责,容器内写 Supervisor 配置无意义且易误导。 +- 步骤 5 原清单面向宝塔/裸机,与 1Panel 运维路径不符。 + +## 涉及文件 + +- `server/api/install.py` — `_configure_docker_guardian`、`_configure_guardian` 分支、`docker_mode` 响应字段 +- `web/app/install.html` — 步骤 1 准备项、步骤 5 1Panel 清单(OpenResty/nx update) +- `docs/project/nexus-1panel-operations-knowledge.md` — §3.5 守护说明 +- `tests/test_security_unit.py` — Docker 守护分支测试 + +## 迁移 / 重启 + +无 schema 变更。部署后 `bash deploy/sync-install-wizard-to-container.sh` 或 `nx update`。 + +## 验证 + +```bash +.venv/bin/pytest tests/test_security_unit.py -k configure_guardian +``` + +浏览器完成向导步骤 5,确认显示「1Panel 后续配置」而非 Supervisor 清单。 diff --git a/docs/design/plans/2026-06-04-1panel-docker-production.md b/docs/design/plans/2026-06-04-1panel-docker-production.md index dd1e7e56..8473e050 100644 --- a/docs/design/plans/2026-06-04-1panel-docker-production.md +++ b/docs/design/plans/2026-06-04-1panel-docker-production.md @@ -289,7 +289,17 @@ docker compose -f docker/docker-compose.prod.yml exec mysql \ ## 6. 日常运维 -### 6.1 升级(Gitea 有新 commit) +### 6.1 一键升级(推荐) + +```bash +# 可选:echo 'NEXUS_GITEA_TOKEN=...' > /root/.nexus-deploy.env && chmod 600 /root/.nexus-deploy.env +bash /opt/nexus/deploy/upgrade-1panel-docker.sh --check # 仅查是否有更新 +bash /opt/nexus/deploy/upgrade-1panel-docker.sh # 备份 DB + pull + 重建 + /health +``` + +脚本:`deploy/upgrade-1panel-docker.sh`(`--no-backup` / `--prune` / `--dry-run`)。 + +### 6.2 手工升级 ```bash cd /opt/nexus diff --git a/docs/project/nexus-1panel-operations-knowledge.md b/docs/project/nexus-1panel-operations-knowledge.md index f0b09d0d..eaadd3ab 100644 --- a/docs/project/nexus-1panel-operations-knowledge.md +++ b/docs/project/nexus-1panel-operations-knowledge.md @@ -109,7 +109,7 @@ entrypoint EXIT trap | 3 | 初始化 | `POST /api/install/init-db` | 建表、三写、发 `install_token`;**.env 已存在则 403** | | 4 | 管理员 | `GET /api/install/connection-check` | 读 `.env` 验 MySQL+Redis | | 4 | 创建 admin | `POST /api/install/create-admin` | 需 `install_token` | -| 5 | 完成 | `POST /api/install/lock`(兜底) | 写 `.install_locked` | +| 5 | 完成 | `POST /api/install/lock`(兜底) | 写 `.install_locked`;**Docker 模式展示 1Panel 守护清单** | 辅助:`GET /status`、`GET /state`(断点续装)。 @@ -125,7 +125,17 @@ entrypoint EXIT trap | 用户名 | `nexus` | **无**(1Panel Redis 无账号;向导仅填密码) | | 密码 | 1Panel「数据库」里建的 nexus 密码 | 1Panel Redis **应用参数**中的口令 | -### 3.3 Docker 预填来源 +### 3.3 进程守护(1Panel Docker) + +| 层级 | 机制 | 说明 | +|------|------|------| +| Layer 1 | Compose `restart: unless-stopped` + `healthcheck` | 容器崩溃自动拉起 | +| Layer 2 | Python `self_monitor`(30s) | 向导完成后正常模式自动运行 | +| Layer 3 | 宿主机 OpenResty + 可选 `health_monitor.sh` | 反代 `127.0.0.1:8600`;见 `deploy/1panel/openresty-nexus.conf.example` | + +`init-db` 在 `NEXUS_DOCKER_WRITE_ENV=1` 时调用 `_configure_docker_guardian`(**不**在容器内写 Supervisor)。 + +### 3.4 Docker 预填来源 优先级(`_onepanel_service_host`): @@ -135,7 +145,7 @@ entrypoint EXIT trap `env-check` 在 `NEXUS_DOCKER_WRITE_ENV=1` 时返回 `docker_defaults`(主机/端口/库名,**不含** Redis 用户名)。前端会覆盖 stale 的 `127.0.0.1` / `host.docker.internal`,并隐藏 Redis 用户名字段。 -### 3.4 连接 URL 格式(必读) +### 3.5 连接 URL 格式(必读) **MySQL**(写入 `NEXUS_DATABASE_URL`): diff --git a/docs/reports/2026-06-06-1panel-install-wizard-verification.md b/docs/reports/2026-06-06-1panel-install-wizard-verification.md new file mode 100644 index 00000000..0f06e0bd --- /dev/null +++ b/docs/reports/2026-06-06-1panel-install-wizard-verification.md @@ -0,0 +1,101 @@ +# 1Panel 安装向导验收报告(待服务器执行) + +| 项 | 内容 | +|----|------| +| 日期 | 2026-06-06 | +| 目标 | 完成 `https://api.synaglobal.vip/app/install.html` 五步安装 | +| 代码基线 | `main` @ `b25d079`(1Panel 容器名 sync) | +| DNS | `api.synaglobal.vip` → `20.24.218.235`(新 VPS) | + +## Agent 侧探测(本机) + +| 检查 | 结果 | 说明 | +|------|------|------| +| SSH `Host nexus` | 失败 | 本机无 `~/.ssh/id_rsa_nexus`,无法代登服务器 | +| `https://api.synaglobal.vip/health` | 连接重置 | 外网 HTTPS 未通或 OpenResty 未反代 | +| `20.24.218.235:8600` | 不可达 | 预期:仅 `127.0.0.1:8600` 监听 | + +**结论**:安装向导必须在 **1Panel 终端** 本机验证;外网访问依赖 OpenResty 反代配置。 + +## 服务器执行清单(复制到 1Panel 终端) + +### 1. 更新到 b25d079+ 并 sync 1Panel 主机名 + +```bash +cd /opt/nexus +git fetch && git log -1 --oneline +nx update --no-cache +``` + +### 2. 一键验收 + +```bash +bash deploy/verify-1panel-install-wizard.sh +``` + +关键 `[PASS]`: + +- 已包含 b25d079 +- `NEXUS_1PANEL_DB_HOST=1Panel-mysql-*` +- `NEXUS_1PANEL_REDIS_HOST=1Panel-redis-*` +- Nexus 已接入 `1panel-network` +- 容器内 TCP → MySQL/Redis +- `/app/.env` 不存在 +- 步骤 3 预填 `db_host=1Panel-mysql-*`(非 `host.docker.internal`) + +### 3. 配置 OpenResty(外网访问) + +1. 1Panel → 应用商店 → **OpenResty** +2. 网站 → 域名 `api.synaglobal.vip` → 反代 `http://127.0.0.1:8600` +3. HTTPS → Let's Encrypt +4. 参考 `deploy/1panel/openresty-nexus.conf.example`(`/ws/` 超时 ≥ 3600s) + +验证: + +```bash +curl -sk https://api.synaglobal.vip/health # → ok +``` + +### 4. 1Panel 数据库准备 + +- 库名:`nexus` +- 用户:`nexus`(仅授权 `nexus` 库) +- 记下密码(步骤 3 填写) + +### 5. 浏览器完成安装向导 + +打开:`https://api.synaglobal.vip/app/install.html` + +| 步骤 | 要点 | +|------|------| +| 2 环境检测 | MySQL/Redis 显示 `✓ 已安装(1Panel-mysql-xxxx:3306)` | +| 3 数据库 | `db_host` / `redis_host` 为容器名;填 MySQL 密码;Redis 有密码则填 `redis_pass` | +| 4 连接 | MySQL + Redis 全绿 | +| 4 管理员 | 创建 admin 账号 | +| 5 锁定 | 完成安装 | + +### 6. 安装后 L5 抽测 + +```bash +curl -sk https://api.synaglobal.vip/health +curl -sk -o /dev/null -w '%{http_code}\n' https://api.synaglobal.vip/app/ +# 未登录 API → 401 +curl -sk -o /dev/null -w '%{http_code}\n' https://api.synaglobal.vip/api/servers/ +``` + +## 常见故障 + +| 现象 | 处理 | +|------|------| +| 步骤 3 仍是 `host.docker.internal` | `nx update --no-cache`;确认 `git log -1` ≥ b25d079 | +| MySQL `Can't connect on host.docker.internal` | `bash deploy/detect-1panel-services.sh` → `nx update` | +| `/app/install.html` 404 | `bash deploy/sync-install-wizard-to-container.sh` | +| `/app/.env` 已存在但向导未完成 | 删 `nexus-state` 卷内 `.env`,设 `NEXUS_INSTALL_WIZARD_PENDING=1`,`nx update` | +| 外网 HTTPS 失败、本机 8600 正常 | 配置 OpenResty 反代 + SSL | + +## DoD(待填) + +- [ ] `verify-1panel-install-wizard.sh` 全 PASS +- [ ] `https://api.synaglobal.vip/health` → `ok` +- [ ] 安装向导步骤 5 锁定完成 +- [ ] `/app/` 可登录 diff --git a/server/api/install.py b/server/api/install.py index 29653250..62b1d32b 100644 --- a/server/api/install.py +++ b/server/api/install.py @@ -443,6 +443,7 @@ def _patch_env_redis_url(new_url: str) -> None: out.append(new_line) write_utf8_lf(ENV_FILE, "\n".join(out) + "\n") logger.info("Patched NEXUS_REDIS_URL in %s", ENV_FILE) + _sync_env_to_persist_volume() def _resolve_redis_url(req: InitDbRequest) -> tuple[bool, str, str | None]: @@ -553,6 +554,28 @@ def _write_env(req: InitDbRequest, secret_key: str, api_key: str, encryption_key write_utf8_lf(ENV_FILE, "\n".join(lines) + "\n") logger.info(f".env written to {ENV_FILE}") + _sync_env_to_persist_volume() + + +def _persist_env_path() -> Path: + persist_dir = os.environ.get("NEXUS_PERSIST_DIR", "/var/lib/nexus").strip() or "/var/lib/nexus" + return Path(persist_dir) / ".env" + + +def _sync_env_to_persist_volume() -> None: + """Copy /app/.env to nexus-state volume immediately (Docker install wizard).""" + if not _is_docker_install_mode() or not ENV_FILE.is_file(): + return + dest = _persist_env_path() + try: + dest.parent.mkdir(parents=True, exist_ok=True) + import shutil + + shutil.copy2(ENV_FILE, dest) + dest.chmod(0o600) + logger.info("Synced .env to persist volume %s", dest) + except OSError as e: + logger.warning("Failed to sync .env to persist volume: %s", e) def _write_config_json(req: InitDbRequest, api_key: str, site_url: str) -> None: @@ -586,8 +609,62 @@ def _detect_bt_panel() -> bool: return Path("/www/server/panel/class/common.py").exists() +def _configure_docker_guardian(install_dir: str, api_port: str) -> list[str]: + """1Panel + Docker: Compose restart/healthcheck + in-app self_monitor (no host Supervisor).""" + results: list[str] = [] + + if Path("/.dockerenv").is_file(): + results.append("✓ Layer 1: Docker 容器运行中(Compose restart: unless-stopped)") + else: + results.append("⚠ Layer 1: 未检测到 /.dockerenv — 请确认使用 docker-compose.prod.yml 部署") + + results.append("✓ Layer 2: Python self_monitor 随正常模式启动(每 30s 自检 Redis/MySQL/WebSocket)") + + try: + import urllib.request + + with urllib.request.urlopen( + f"http://127.0.0.1:{api_port}/health", timeout=3.0 + ) as resp: + body = resp.read().decode().strip() + if body == "ok": + results.append(f"✓ 容器内 /health 正常(127.0.0.1:{api_port})") + else: + results.append(f"⚠ /health 响应异常: {body[:80]}") + except Exception as e: + results.append(f"⚠ 容器内 /health 暂不可达: {e}") + + db_host = _onepanel_service_host("DB") + redis_host = _onepanel_service_host("REDIS") + if db_host and redis_host: + results.append(f"✓ 1panel-network 容器名: MySQL={db_host}, Redis={redis_host}") + elif db_host or redis_host: + results.append( + f"⚠ 1Panel 主机名不完整(DB={db_host or '未设置'}, Redis={redis_host or '未设置'})" + ) + else: + results.append("ℹ 未配置 NEXUS_1PANEL_*_HOST — 宿主机执行 nx update 可自动探测") + + site_url = os.environ.get("NEXUS_API_BASE_URL", "").strip() + publish_port = os.environ.get("NEXUS_PUBLISH_PORT", api_port).strip() or api_port + if site_url: + results.append( + f"ℹ Layer 3(宿主机): 1Panel OpenResty 反代 {site_url} → 127.0.0.1:{publish_port}" + ) + else: + results.append( + f"ℹ Layer 3(宿主机): 配置 OpenResty 反代 → 127.0.0.1:{publish_port}(见 deploy/1panel/openresty-nexus.conf.example)" + ) + + results.append(f"ℹ 日常升级: 宿主机 cd {install_dir} && nx update") + return results + + def _configure_guardian(install_dir: str, api_port: str) -> list[str]: - """Best-effort: configure Supervisor, crontab, health_monitor.sh""" + """Best-effort process guardian: Docker/1Panel vs bare-metal Supervisor stack.""" + if _is_docker_install_mode(): + return _configure_docker_guardian(install_dir, api_port) + results: list[str] = [] bt_panel = _detect_bt_panel() @@ -687,6 +764,7 @@ def _configure_guardian(install_dir: str, api_port: str) -> list[str]: def _finalize_install_lock() -> None: """Write install lock marker and remove wizard state file.""" + _sync_env_to_persist_volume() write_utf8_lf( INSTALL_LOCK, f"Nexus installation locked at {datetime.now(timezone.utc).isoformat()}\n", @@ -1047,6 +1125,7 @@ async def init_db(req: InitDbRequest): "site_url": site_url, "api_port": req.api_port, "guardian_results": guardian_results, + "docker_mode": _is_docker_install_mode(), "step": 4, } write_utf8_lf(STATE_FILE, json.dumps(state, ensure_ascii=False) + "\n") @@ -1059,6 +1138,7 @@ async def init_db(req: InitDbRequest): "tables_created": 14, "guardian_results": guardian_results, "bt_panel": _detect_bt_panel(), + "docker_mode": _is_docker_install_mode(), } diff --git a/tests/test_security_unit.py b/tests/test_security_unit.py index a4b56f57..acd9685f 100644 --- a/tests/test_security_unit.py +++ b/tests/test_security_unit.py @@ -274,6 +274,28 @@ def test_redis_url_candidates_never_tries_root_in_docker_mode(monkeypatch): assert not any("root:" in u for u in urls) +def test_configure_guardian_docker_mode_skips_supervisor(monkeypatch): + from server.api import install as install_api + from server.api.install import _configure_docker_guardian, _configure_guardian + + monkeypatch.setenv("NEXUS_DOCKER_WRITE_ENV", "1") + monkeypatch.setenv("NEXUS_API_BASE_URL", "https://api.example.com") + monkeypatch.setattr( + install_api.Path, + "is_file", + lambda self: str(self) == "/.dockerenv", + ) + + docker_results = _configure_docker_guardian("/opt/nexus", "8600") + docker_text = "\n".join(docker_results) + assert "Supervisor" not in docker_text + assert "self_monitor" in docker_text + assert "OpenResty" in docker_text or "反代" in docker_text + + bare_results = _configure_guardian("/opt/nexus", "8600") + assert bare_results == docker_results + + def test_init_db_request_from_redis_url_legacy_and_colon_pass(): from server.api.install import _init_db_request_from_redis_url diff --git a/web/app/assets/AlertsPage-BgMCTUIE.js b/web/app/assets/AlertsPage-BgMCTUIE.js new file mode 100644 index 00000000..5d00c7a0 --- /dev/null +++ b/web/app/assets/AlertsPage-BgMCTUIE.js @@ -0,0 +1 @@ +import{$n as e,A as t,Ar as n,Br as r,Cr as i,F as a,N as o,Rt as s,X as c,Xn as l,_r as u,ar as d,er as f,hr as p,ir as m,k as h,nr as g,or as _,pr as v,w as y}from"./index-C_dP75wD.js";import{o as b,t as x}from"./VContainer-DGQjsCTw.js";import{t as S}from"./VChip-oig-b64O.js";import{t as C}from"./VSelect-V_uWG8_q.js";import{t as w}from"./VDataTableServer-BMEL-4WM.js";import{n as T,t as E}from"./VRow-MZyk7N4E.js";import{t as D}from"./VSpacer-Cl6Zcy_X.js";var O={class:`font-weight-medium`},k={class:`text-body-2`},A={class:`text-caption text-medium-emphasis`},j=_({__name:`AlertsPage`,setup(_){let j=b(),M=n(!1),N=n([]),P=n(0),F=n(1),I=n(null),L=n(null),R=n([{label:`今日告警`,value:`0`,color:`blue`,icon:`mdi-alert`},{label:`活跃告警`,value:`0`,color:`orange`,icon:`mdi-bell-ring`},{label:`已恢复`,value:`0`,color:`green`,icon:`mdi-check-circle`},{label:`Top 服务器`,value:`—`,color:`red`,icon:`mdi-server`}]),z=[{label:`CPU`,value:`cpu`},{label:`内存`,value:`memory`},{label:`磁盘`,value:`disk`},{label:`连接`,value:`connection`}],B=[{label:`活跃`,value:`active`},{label:`已恢复`,value:`recovered`}],V=[{title:`类型`,key:`alert_type`,width:100},{title:`服务器`,key:`server_name`},{title:`详情`,key:`value`},{title:`状态`,key:`is_recovery`,width:100},{title:`时间`,key:`created_at`,width:160}];async function H(){try{let e=await s.get(`/alert-history/stats`);R.value[0].value=String(e.today||0),R.value[1].value=String(e.active||0),R.value[2].value=String(e.recovered||0),R.value[3].value=e.top_server||`—`}catch{j(`加载统计失败`,`error`)}}async function U(){M.value=!0;try{let e=await s.get(`/alert-history/`,{page:F.value,per_page:20,type:I.value||void 0,status:L.value||void 0});N.value=e.items||[],P.value=e.total||0}catch{N.value=[]}finally{M.value=!1}}function W(e){return e===`cpu`||e===`CPU`?`error`:e===`memory`||e===`内存`?`warning`:e===`disk`||e===`磁盘`?`info`:`primary`}function G(e){return e===`cpu`||e===`CPU`?`mdi-chip`:e===`memory`||e===`内存`?`mdi-memory`:e===`disk`||e===`磁盘`?`mdi-harddisk`:`mdi-lan-disconnect`}return v(()=>{H(),U()}),(n,s)=>(p(),f(x,{fluid:``,class:`pa-6`},{default:i(()=>[d(E,{class:`mb-4`},{default:i(()=>[(p(!0),g(l,null,u(R.value,e=>(p(),f(T,{cols:`12`,sm:`6`,lg:`3`,key:e.label},{default:i(()=>[d(y,{elevation:`0`,lines:`two`,rounded:`lg`,border:``},{default:i(()=>[d(h,null,{append:i(()=>[d(c,{color:e.color,size:`30`},{default:i(()=>[m(r(e.icon),1)]),_:2},1032,[`color`])]),default:i(()=>[d(t,{class:`text-body-small`},{default:i(()=>[m(r(e.label),1)]),_:2},1024),d(t,null,{default:i(()=>[m(r(e.value),1)]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1}),d(o,{elevation:`0`,border:``,rounded:`lg`},{default:i(()=>[d(a,{class:`d-flex align-center`},{default:i(()=>[s[5]||=m(` 告警历史 `,-1),d(D),d(C,{modelValue:I.value,"onUpdate:modelValue":[s[0]||=e=>I.value=e,s[1]||=e=>{F.value=1,U()}],items:z,"item-title":`label`,"item-value":`value`,label:`类型`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`140px`},clearable:``},null,8,[`modelValue`]),d(C,{modelValue:L.value,"onUpdate:modelValue":[s[2]||=e=>L.value=e,s[3]||=e=>{F.value=1,U()}],items:B,"item-title":`label`,"item-value":`value`,label:`状态`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`140px`},class:`ml-3`,clearable:``},null,8,[`modelValue`])]),_:1}),d(w,{items:N.value,headers:V,"items-length":P.value,loading:M.value,page:F.value,"items-per-page":20,hover:``,density:`comfortable`,"onUpdate:page":s[4]||=e=>{F.value=e,U()}},{"item.alert_type":i(({item:e})=>[d(S,{color:W(e.alert_type),size:`small`,variant:`tonal`,label:``},{prepend:i(()=>[d(c,{size:`12`},{default:i(()=>[m(r(G(e.alert_type)),1)]),_:2},1024)]),default:i(()=>[m(` `+r(e.alert_type),1)]),_:2},1032,[`color`])]),"item.server_name":i(({item:t})=>[e(`span`,O,r(t.server_name),1)]),"item.value":i(({item:t})=>[e(`span`,k,r(t.value),1)]),"item.is_recovery":i(({item:e})=>[e.is_recovery?(p(),f(S,{key:0,color:`success`,size:`small`,variant:`tonal`,label:``},{default:i(()=>[...s[6]||=[m(`已恢复`,-1)]]),_:1})):(p(),f(S,{key:1,color:`error`,size:`small`,variant:`tonal`,label:``},{default:i(()=>[...s[7]||=[m(`告警中`,-1)]]),_:1}))]),"item.created_at":i(({item:t})=>[e(`span`,A,r(t.created_at),1)]),"no-data":i(()=>[...s[8]||=[e(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无数据`,-1)]]),_:1},8,[`items`,`items-length`,`loading`,`page`])]),_:1})]),_:1}))}});export{j as default}; \ No newline at end of file diff --git a/web/app/assets/AuditPage-7j50ERAw.js b/web/app/assets/AuditPage-7j50ERAw.js new file mode 100644 index 00000000..96ee24d9 --- /dev/null +++ b/web/app/assets/AuditPage-7j50ERAw.js @@ -0,0 +1 @@ +import{$n as e,Ar as t,Br as n,Cr as r,F as i,Ir as a,N as o,Rt as s,ar as c,er as l,hr as u,ir as d,or as f,pr as p,t as m}from"./index-C_dP75wD.js";import{o as h,t as g}from"./VContainer-DGQjsCTw.js";import{t as _}from"./VChip-oig-b64O.js";import{t as v}from"./VSelect-V_uWG8_q.js";import{t as y}from"./VDataTableServer-BMEL-4WM.js";import{t as b}from"./VSpacer-Cl6Zcy_X.js";import{a as x,n as S,r as C,t as w}from"./auditNormalize-BHJPJFP9.js";var T={class:`font-weight-medium`},E={class:`text-body-2`},D={class:`text-body-2 text-medium-emphasis text-truncate`,style:{"max-width":`300px`,display:`inline-block`}},O={class:`text-caption text-medium-emphasis`},k={class:`text-caption text-medium-emphasis`},A=f({__name:`AuditPage`,setup(f){let A=h(),j=t(!1),M=t([]),N=t(0),P=t(1),F=t(null),I=t(``),L=t(``),R=S,z=[{title:`操作`,key:`action`,width:100},{title:`用户`,key:`admin_username`,width:100},{title:`目标`,key:`target`,width:140},{title:`详情`,key:`detail`},{title:`IP`,key:`ip_address`,width:120},{title:`时间`,key:`created_at`,width:160}];async function B(){j.value=!0;try{let e=(P.value-1)*50,t=await s.get(`/audit/`,{limit:50,offset:e,action:F.value||void 0,admin_username:I.value||void 0,date_from:L.value||void 0});M.value=w(t.items||[]),N.value=t.total||0}catch{M.value=[],A(`加载审计日志失败`,`error`)}finally{j.value=!1}}function V(e){return e.startsWith(`create`)||e===`login`?`success`:e.startsWith(`update`)?`info`:e.startsWith(`delete`)||e===`logout`?`error`:e.includes(`execute`)||e.includes(`push`)||e.includes(`retry`)?`warning`:`primary`}return p(()=>B()),(t,s)=>(u(),l(g,{fluid:``,class:`pa-6`},{default:r(()=>[c(o,{elevation:`0`,border:``,rounded:`lg`},{default:r(()=>[c(i,{class:`d-flex align-center`},{default:r(()=>[s[7]||=d(` 审计日志 `,-1),c(b),c(v,{modelValue:F.value,"onUpdate:modelValue":[s[0]||=e=>F.value=e,s[1]||=e=>{P.value=1,B()}],items:a(R),"item-title":`label`,"item-value":`value`,label:`操作类型`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`200px`},clearable:``},null,8,[`modelValue`,`items`]),c(m,{modelValue:I.value,"onUpdate:modelValue":[s[2]||=e=>I.value=e,s[3]||=e=>{P.value=1,B()}],"prepend-inner-icon":`mdi-account`,label:`用户`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`140px`},class:`ml-3`,clearable:``},null,8,[`modelValue`]),c(m,{modelValue:L.value,"onUpdate:modelValue":[s[4]||=e=>L.value=e,s[5]||=e=>{P.value=1,B()}],"prepend-inner-icon":`mdi-calendar`,label:`日期`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`160px`},class:`ml-3`,type:`date`,clearable:``},null,8,[`modelValue`])]),_:1}),c(y,{items:M.value,headers:z,"items-length":N.value,loading:j.value,page:P.value,"items-per-page":50,hover:``,density:`compact`,"onUpdate:page":s[6]||=e=>{P.value=e,B()}},{"item.action":r(({item:e})=>[c(_,{color:V(e.action),size:`small`,variant:`tonal`,label:``},{default:r(()=>[d(n(a(C)(e.action)),1)]),_:2},1032,[`color`])]),"item.admin_username":r(({item:t})=>[e(`span`,T,n(t.admin_username),1)]),"item.target":r(({item:t})=>[e(`span`,E,n(a(x)(t.resource_type))+n(t.resource_id?` #${t.resource_id}`:``),1)]),"item.detail":r(({item:t})=>[e(`span`,D,n(t.detail||`—`),1)]),"item.ip_address":r(({item:t})=>[e(`span`,O,n(t.ip_address||`—`),1)]),"item.created_at":r(({item:t})=>[e(`span`,k,n(t.created_at),1)]),"no-data":r(()=>[...s[8]||=[e(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无数据`,-1)]]),_:1},8,[`items`,`items-length`,`loading`,`page`])]),_:1})]),_:1}))}});export{A as default}; \ No newline at end of file diff --git a/web/app/assets/CommandsPage-CA2YnvK1.js b/web/app/assets/CommandsPage-CA2YnvK1.js new file mode 100644 index 00000000..4e805553 --- /dev/null +++ b/web/app/assets/CommandsPage-CA2YnvK1.js @@ -0,0 +1 @@ +import{$n as e,Ar as t,Br as n,Cr as r,F as i,Ir as a,M as o,N as s,Rt as c,ar as l,er as u,hr as d,ir as f,or as p,pr as m}from"./index-C_dP75wD.js";import{o as h,t as g}from"./VContainer-DGQjsCTw.js";import{t as _}from"./VChip-oig-b64O.js";import{t as v}from"./VSelect-V_uWG8_q.js";import{t as y}from"./VDataTableServer-BMEL-4WM.js";import{t as b}from"./VSpacer-Cl6Zcy_X.js";import{t as x}from"./apiError-BgZlS-MZ.js";import{t as S}from"./useServerList-DS-TV_aM.js";var C={class:`text-body-2`},w={class:`text-medium-emphasis`},T={class:`text-medium-emphasis`},E={class:`text-caption text-medium-emphasis`},D={class:`font-weight-medium`},O={class:`text-caption text-medium-emphasis`},k=p({__name:`CommandsPage`,setup(p){let k=h(),{servers:A,loadServers:j}=S(),M=t(!1),N=t(`commands`),P=t(1),F=t(0),I=t(30),L=t(null),R=t([]),z=t([]),B=[{title:`命令`,key:`command`},{title:`服务器`,key:`server_name`},{title:`用户`,key:`admin_username`,width:100},{title:`时间`,key:`created_at`,width:160}],V=[{title:`服务器`,key:`server_name`},{title:`状态`,key:`status`,width:80},{title:`来源`,key:`remote_addr`,width:120},{title:`开始时间`,key:`started_at`,width:160}];async function H(){M.value=!0;try{if(N.value===`commands`){let e=await c.getList(`/assets/command-logs`,{server_id:L.value||void 0,page:P.value,per_page:I.value});R.value=e.items,F.value=e.total}else{let e=await c.getList(`/assets/ssh-sessions`,{server_id:L.value||void 0,page:P.value,per_page:I.value});z.value=e.items,F.value=e.total}}catch(e){R.value=[],z.value=[],k(x(e,`加载命令日志失败`),`error`)}finally{M.value=!1}}return m(()=>{j(),H()}),(t,c)=>(d(),u(g,{fluid:``,class:`pa-6`},{default:r(()=>[l(s,{elevation:`0`,border:``,rounded:`lg`},{default:r(()=>[l(i,{class:`d-flex align-center`},{default:r(()=>[c[4]||=f(` 命令日志 `,-1),l(b),l(v,{modelValue:N.value,"onUpdate:modelValue":[c[0]||=e=>N.value=e,H],items:[{title:`命令视图`,value:`commands`},{title:`会话视图`,value:`sessions`}],"item-title":`title`,"item-value":`value`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`160px`}},null,8,[`modelValue`]),l(v,{modelValue:L.value,"onUpdate:modelValue":[c[1]||=e=>L.value=e,H],items:a(A),"item-title":`name`,"item-value":`id`,label:`服务器`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`180px`},class:`ml-3`,clearable:``},null,8,[`modelValue`,`items`])]),_:1}),l(o),N.value===`commands`?(d(),u(y,{key:0,items:R.value,headers:B,"items-length":F.value,loading:M.value,page:P.value,"items-per-page":30,hover:``,density:`compact`,"onUpdate:page":c[2]||=e=>{P.value=e,H()}},{"item.command":r(({item:t})=>[e(`code`,C,n(t.command),1)]),"item.server_name":r(({item:t})=>[e(`span`,w,n(t.server_name||`—`),1)]),"item.admin_username":r(({item:t})=>[e(`span`,T,n(t.admin_username||`—`),1)]),"item.created_at":r(({item:t})=>[e(`span`,E,n(t.created_at),1)]),"no-data":r(()=>[...c[5]||=[e(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无数据`,-1)]]),_:1},8,[`items`,`items-length`,`loading`,`page`])):(d(),u(y,{key:1,items:z.value,headers:V,"items-length":F.value,loading:M.value,page:P.value,"items-per-page":30,hover:``,density:`compact`,"onUpdate:page":c[3]||=e=>{P.value=e,H()}},{"item.server_name":r(({item:t})=>[e(`span`,D,n(t.server_name||`—`),1)]),"item.status":r(({item:e})=>[l(_,{color:e.status===`closed`?`grey`:`success`,size:`small`,variant:`tonal`,label:``},{default:r(()=>[f(n(e.status),1)]),_:2},1032,[`color`])]),"item.started_at":r(({item:t})=>[e(`span`,O,n(t.started_at),1)]),"no-data":r(()=>[...c[6]||=[e(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无数据`,-1)]]),_:1},8,[`items`,`items-length`,`loading`,`page`]))]),_:1})]),_:1}))}});export{k as default}; \ No newline at end of file diff --git a/web/app/assets/CredentialsPage-C5c3D-5B.js b/web/app/assets/CredentialsPage-C5c3D-5B.js new file mode 100644 index 00000000..397fa564 --- /dev/null +++ b/web/app/assets/CredentialsPage-C5c3D-5B.js @@ -0,0 +1 @@ +import{t as e}from"./VDataTable-RUszusjq.js";import{$ as t,$n as n,Ar as r,Br as i,Cr as a,F as o,I as s,Ir as c,M as ee,N as l,P as u,R as d,Rt as f,Xn as te,ar as p,er as m,hr as h,ir as g,nr as ne,or as _,pr as v,t as y,tr as b,xr as re}from"./index-C_dP75wD.js";import{o as ie,t as ae}from"./VContainer-DGQjsCTw.js";import{t as x}from"./VChip-oig-b64O.js";import{t as S}from"./VDataTableServer-BMEL-4WM.js";import{t as C}from"./VSpacer-Cl6Zcy_X.js";import{t as w}from"./apiError-BgZlS-MZ.js";import{i as T}from"./validation-DMwOxx4a.js";import{t as E}from"./VDialog-CnSngTCg.js";import{t as D}from"./VTextarea-Bxfo_kiv.js";var oe={class:`text-caption text-medium-emphasis`},O=_({__name:`CredentialsPage`,setup(_){let O=ie();function se(e){if(!e)return`—`;let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString(`zh-CN`,{hour12:!1})}let k=r(!1),A=r(`passwords`),j=r(null),M=r(1),N=r(0),P=r(20),F=r([]),I=r(!1),L=r({name:``,password:``}),ce=[{title:`预设名称`,key:`name`},{title:`创建时间`,key:`created_at`,width:180},{title:`操作`,key:`actions`,width:150,align:`end`}],R=r([]),z=r(!1),B=r({name:``,public_key:``,private_key:``}),V=[{title:`名称`,key:`name`},{title:`私钥`,key:`private_key_set`,width:120},{title:`操作`,key:`actions`,width:150,align:`end`}],H=r([]),U=r(!1),W=r({name:``,host:``,port:3306,username:``,password:``,database:``}),le=[{title:`名称`,key:`name`},{title:`主机`,key:`host`},{title:`端口`,key:`port`,width:80},{title:`用户名`,key:`username`},{title:`数据库`,key:`database`},{title:`操作`,key:`actions`,width:150,align:`end`}],G=r(!1),K=r(``),q=r(null);async function J(){k.value=!0;try{let e=await f.getList(`/presets/`);F.value=e.items,N.value=e.total}catch(e){F.value=[],O(w(e,`加载密码预设失败`),`error`)}finally{k.value=!1}}async function Y(){k.value=!0;try{let e=await f.getList(`/ssh-key-presets/`,{page:M.value,per_page:P.value});R.value=e.items,N.value=e.total}catch(e){R.value=[],O(w(e,`加载 SSH 密钥失败`),`error`)}finally{k.value=!1}}async function X(){k.value=!0;try{let e=await f.getList(`/scripts/credentials`,{page:M.value,per_page:P.value});H.value=e.items,N.value=e.total}catch(e){H.value=[],O(w(e,`加载数据库凭据失败`),`error`)}finally{k.value=!1}}function Z(){switch(A.value){case`passwords`:J();break;case`sshkeys`:Y();break;case`db`:X();break}}re(A,()=>{M.value=1,Z()});function ue(e){j.value=e.id,L.value={name:e.name,password:``},I.value=!0}async function de(){let e=L.value.name.trim(),t=L.value.password;if(!e){O(`请填写预设名称`,`error`);return}if(!j.value&&!t){O(`请填写 SSH 密码`,`error`);return}try{if(j.value){let n={name:e};t&&(n.encrypted_pw=t),await f.put(`/presets/${j.value}`,n)}else await f.post(`/presets/`,{name:e,encrypted_pw:t});I.value=!1,J(),O(`保存成功`)}catch(e){O(e instanceof Error?e.message:`保存失败`,`error`)}}function fe(e){j.value=e.id,B.value={name:e.name,public_key:e.public_key||``,private_key:``},z.value=!0}async function Q(){try{j.value?await f.put(`/ssh-key-presets/${j.value}`,B.value):await f.post(`/ssh-key-presets/`,B.value),z.value=!1,Y(),O(`保存成功`)}catch(e){O(e.message||`保存失败`,`error`)}}function pe(e){j.value=e.id,W.value={name:e.name,host:e.host||``,port:e.port||3306,username:e.username||``,password:``,database:e.database||``},U.value=!0}async function me(){try{j.value?await f.put(`/scripts/credentials/${j.value}`,W.value):await f.post(`/scripts/credentials`,W.value),U.value=!1,X(),O(`保存成功`)}catch(e){O(e.message||`保存失败`,`error`)}}function he(){j.value=null,A.value===`passwords`?(L.value={name:``,password:``},I.value=!0):A.value===`sshkeys`?(B.value={name:``,public_key:``,private_key:``},z.value=!0):(W.value={name:``,host:``,port:3306,username:``,password:``,database:``},U.value=!0)}function $(e,t){K.value=e,q.value=t.id,G.value=!0}async function ge(){try{K.value===`password`?await f.delete(`/presets/${q.value}`):K.value===`sshkey`?await f.delete(`/ssh-key-presets/${q.value}`):await f.delete(`/scripts/credentials/${q.value}`),G.value=!1,Z(),O(`已删除`)}catch(e){O(e.message||`删除失败`,`error`)}}return v(()=>{Z()}),(r,f)=>(h(),m(ae,{fluid:``,class:`pa-6`},{default:a(()=>[p(l,{elevation:`0`,border:``,rounded:`lg`},{default:a(()=>[p(o,{class:`d-flex align-center`},{default:a(()=>[f[28]||=g(` 凭据管理 `,-1),p(C),p(t,{modelValue:A.value,"onUpdate:modelValue":f[0]||=e=>A.value=e,mandatory:``,density:`compact`,variant:`outlined`,class:`mr-3`},{default:a(()=>[p(d,{size:`small`,value:`passwords`},{default:a(()=>[...f[24]||=[g(`密码预设`,-1)]]),_:1}),p(d,{size:`small`,value:`sshkeys`},{default:a(()=>[...f[25]||=[g(`SSH 密钥`,-1)]]),_:1}),p(d,{size:`small`,value:`db`},{default:a(()=>[...f[26]||=[g(`数据库凭据`,-1)]]),_:1})]),_:1},8,[`modelValue`]),p(d,{color:`primary`,variant:`flat`,size:`small`,"prepend-icon":`mdi-plus`,onClick:he},{default:a(()=>[...f[27]||=[g(`添加`,-1)]]),_:1})]),_:1}),p(ee),A.value===`passwords`?(h(),ne(te,{key:0},[p(u,{class:`text-body-2 text-medium-emphasis pt-0 pb-2`},{default:a(()=>[...f[29]||=[g(` 保存常用 SSH 密码模板;在「服务器」里选择预设后由服务端解密填入。SSH 用户名在每台服务器上单独配置。 `,-1)]]),_:1}),p(e,{items:F.value,headers:ce,loading:k.value,hover:``,density:`comfortable`,"items-per-page":20},{"item.created_at":a(({item:e})=>[n(`span`,oe,i(se(e.created_at)),1)]),"item.actions":a(({item:e})=>[p(d,{variant:`text`,size:`x-small`,density:`compact`,onClick:t=>ue(e)},{default:a(()=>[...f[30]||=[g(`编辑`,-1)]]),_:1},8,[`onClick`]),p(d,{variant:`text`,size:`x-small`,color:`error`,density:`compact`,onClick:t=>$(`password`,e)},{default:a(()=>[...f[31]||=[g(`删除`,-1)]]),_:1},8,[`onClick`])]),"no-data":a(()=>[...f[32]||=[n(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无密码预设`,-1)]]),_:1},8,[`items`,`loading`])],64)):b(``,!0),A.value===`sshkeys`?(h(),m(S,{key:1,items:R.value,headers:V,"items-length":N.value,loading:k.value,page:M.value,"items-per-page":P.value,hover:``,density:`comfortable`,"onUpdate:page":f[1]||=e=>{M.value=e,Y()},"onUpdate:itemsPerPage":f[2]||=e=>{P.value=e,M.value=1,Y()}},{"item.private_key_set":a(({item:e})=>[p(x,{color:e.private_key_set?`success`:`grey`,size:`small`,variant:`tonal`,label:``},{default:a(()=>[g(i(e.private_key_set?`已设置`:`未设置`),1)]),_:2},1032,[`color`])]),"item.actions":a(({item:e})=>[p(d,{variant:`text`,size:`x-small`,density:`compact`,onClick:t=>fe(e)},{default:a(()=>[...f[33]||=[g(`编辑`,-1)]]),_:1},8,[`onClick`]),p(d,{variant:`text`,size:`x-small`,color:`error`,density:`compact`,onClick:t=>$(`sshkey`,e)},{default:a(()=>[...f[34]||=[g(`删除`,-1)]]),_:1},8,[`onClick`])]),"no-data":a(()=>[...f[35]||=[n(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无凭据`,-1)]]),_:1},8,[`items`,`items-length`,`loading`,`page`,`items-per-page`])):b(``,!0),A.value===`db`?(h(),m(S,{key:2,items:H.value,headers:le,"items-length":N.value,loading:k.value,page:M.value,"items-per-page":P.value,hover:``,density:`comfortable`,"onUpdate:page":f[3]||=e=>{M.value=e,X()},"onUpdate:itemsPerPage":f[4]||=e=>{P.value=e,M.value=1,X()}},{"item.actions":a(({item:e})=>[p(d,{variant:`text`,size:`x-small`,density:`compact`,onClick:t=>pe(e)},{default:a(()=>[...f[36]||=[g(`编辑`,-1)]]),_:1},8,[`onClick`]),p(d,{variant:`text`,size:`x-small`,color:`error`,density:`compact`,onClick:t=>$(`db`,e)},{default:a(()=>[...f[37]||=[g(`删除`,-1)]]),_:1},8,[`onClick`])]),"no-data":a(()=>[...f[38]||=[n(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无凭据`,-1)]]),_:1},8,[`items`,`items-length`,`loading`,`page`,`items-per-page`])):b(``,!0)]),_:1}),p(E,{modelValue:I.value,"onUpdate:modelValue":f[8]||=e=>I.value=e,"max-width":`500`},{default:a(()=>[p(l,{border:``},{default:a(()=>[p(o,null,{default:a(()=>[g(i(j.value?`编辑密码预设`:`新建密码预设`),1)]),_:1}),p(u,null,{default:a(()=>[p(y,{modelValue:L.value.name,"onUpdate:modelValue":f[5]||=e=>L.value.name=e,label:`预设名称`,variant:`outlined`,density:`compact`,class:`mb-2`,placeholder:`如:生产环境 root 密码`,rules:[c(T)(`预设名称`)]},null,8,[`modelValue`,`rules`]),p(y,{modelValue:L.value.password,"onUpdate:modelValue":f[6]||=e=>L.value.password=e,label:`SSH 密码`,variant:`outlined`,density:`compact`,type:`password`,placeholder:j.value?`留空表示不修改`:`必填`,rules:j.value?[]:[c(T)(`SSH 密码`)]},null,8,[`modelValue`,`placeholder`,`rules`])]),_:1}),p(s,null,{default:a(()=>[p(C),p(d,{variant:`text`,onClick:f[7]||=e=>I.value=!1},{default:a(()=>[...f[39]||=[g(`取消`,-1)]]),_:1}),p(d,{color:`primary`,variant:`flat`,onClick:de},{default:a(()=>[...f[40]||=[g(`保存`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),p(E,{modelValue:z.value,"onUpdate:modelValue":f[13]||=e=>z.value=e,"max-width":`500`},{default:a(()=>[p(l,{border:``},{default:a(()=>[p(o,null,{default:a(()=>[g(i(j.value?`编辑 SSH 密钥`:`新建 SSH 密钥`),1)]),_:1}),p(u,null,{default:a(()=>[p(y,{modelValue:B.value.name,"onUpdate:modelValue":f[9]||=e=>B.value.name=e,label:`名称`,variant:`outlined`,density:`compact`,class:`mb-2`},null,8,[`modelValue`]),p(D,{modelValue:B.value.public_key,"onUpdate:modelValue":f[10]||=e=>B.value.public_key=e,label:`公钥`,variant:`outlined`,density:`compact`,rows:`3`,class:`mb-2`},null,8,[`modelValue`]),p(D,{modelValue:B.value.private_key,"onUpdate:modelValue":f[11]||=e=>B.value.private_key=e,label:`私钥`,variant:`outlined`,density:`compact`,rows:`5`},null,8,[`modelValue`])]),_:1}),p(s,null,{default:a(()=>[p(C),p(d,{variant:`text`,onClick:f[12]||=e=>z.value=!1},{default:a(()=>[...f[41]||=[g(`取消`,-1)]]),_:1}),p(d,{color:`primary`,variant:`flat`,onClick:Q},{default:a(()=>[...f[42]||=[g(`保存`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),p(E,{modelValue:U.value,"onUpdate:modelValue":f[21]||=e=>U.value=e,"max-width":`500`},{default:a(()=>[p(l,{border:``},{default:a(()=>[p(o,null,{default:a(()=>[g(i(j.value?`编辑数据库凭据`:`新建数据库凭据`),1)]),_:1}),p(u,null,{default:a(()=>[p(y,{modelValue:W.value.name,"onUpdate:modelValue":f[14]||=e=>W.value.name=e,label:`名称`,variant:`outlined`,density:`compact`,class:`mb-2`},null,8,[`modelValue`]),p(y,{modelValue:W.value.host,"onUpdate:modelValue":f[15]||=e=>W.value.host=e,label:`主机`,variant:`outlined`,density:`compact`,class:`mb-2`},null,8,[`modelValue`]),p(y,{modelValue:W.value.port,"onUpdate:modelValue":f[16]||=e=>W.value.port=e,label:`端口`,variant:`outlined`,density:`compact`,type:`number`,class:`mb-2`},null,8,[`modelValue`]),p(y,{modelValue:W.value.username,"onUpdate:modelValue":f[17]||=e=>W.value.username=e,label:`用户名`,variant:`outlined`,density:`compact`,class:`mb-2`},null,8,[`modelValue`]),p(y,{modelValue:W.value.password,"onUpdate:modelValue":f[18]||=e=>W.value.password=e,label:`密码`,variant:`outlined`,density:`compact`,type:`password`,class:`mb-2`},null,8,[`modelValue`]),p(y,{modelValue:W.value.database,"onUpdate:modelValue":f[19]||=e=>W.value.database=e,label:`数据库`,variant:`outlined`,density:`compact`},null,8,[`modelValue`])]),_:1}),p(s,null,{default:a(()=>[p(C),p(d,{variant:`text`,onClick:f[20]||=e=>U.value=!1},{default:a(()=>[...f[43]||=[g(`取消`,-1)]]),_:1}),p(d,{color:`primary`,variant:`flat`,onClick:me},{default:a(()=>[...f[44]||=[g(`保存`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),p(E,{modelValue:G.value,"onUpdate:modelValue":f[23]||=e=>G.value=e,"max-width":`400`},{default:a(()=>[p(l,{border:``},{default:a(()=>[p(o,null,{default:a(()=>[...f[45]||=[g(`确认删除`,-1)]]),_:1}),p(u,null,{default:a(()=>[...f[46]||=[g(`确定要删除此凭据吗?`,-1)]]),_:1}),p(s,null,{default:a(()=>[p(C),p(d,{variant:`text`,onClick:f[22]||=e=>G.value=!1},{default:a(()=>[...f[47]||=[g(`取消`,-1)]]),_:1}),p(d,{color:`error`,variant:`flat`,onClick:ge},{default:a(()=>[...f[48]||=[g(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}});export{O as default}; \ No newline at end of file diff --git a/web/app/assets/DashboardPage-CUPD9pH7.js b/web/app/assets/DashboardPage-CUPD9pH7.js new file mode 100644 index 00000000..29fe4eda --- /dev/null +++ b/web/app/assets/DashboardPage-CUPD9pH7.js @@ -0,0 +1 @@ +import{$n as e,Ar as t,Br as n,Cr as r,Ht as i,Ir as a,J as o,L as s,Mt as ee,N as c,R as l,Rr as u,Rt as d,Tr as te,Xn as f,_r as p,ar as m,er as h,hr as g,ir as _,k as v,nr as y,or as b,pr as ne,t as re,tr as x,xr as ie}from"./index-C_dP75wD.js";import{o as ae,t as oe}from"./VContainer-DGQjsCTw.js";import{t as S}from"./VChip-oig-b64O.js";import{t as se}from"./VDataTableServer-BMEL-4WM.js";import{n as C,t as w}from"./VRow-MZyk7N4E.js";import{i as ce,t as le}from"./auditNormalize-BHJPJFP9.js";import{a as ue,i as de,n as T,r as E,t as D}from"./StatCardsRow-C1WUuCdM.js";import{t as O}from"./_plugin-vue_export-helper-BDNMzG2s.js";var k={class:`font-weight-medium`},A={class:`text-medium-emphasis`},j={class:`text-medium-emphasis`},M={class:`text-medium-emphasis`},N={class:`text-caption text-medium-emphasis`},P={class:`d-flex ga-1`},F={key:0,class:`text-center text-medium-emphasis py-4`},I={class:`text-body-large font-weight-regular`},L={class:`d-flex justify-space-between align-center text-medium-emphasis`},R={class:`py-1`},z={key:0,class:`text-center text-medium-emphasis py-4`},B={class:`text-caption`},V={class:`d-flex justify-space-between align-center`},H={class:`text-medium-emphasis`},fe={class:`text-body-2 font-weight-medium`},U={key:0,class:`text-center text-medium-emphasis py-4`},W=O(b({__name:`DashboardPage`,setup(b){let O=ae(),W=i(),G=t([{subtitle:`服务器总数`,title:`0`,icon:`mdi-server-network`,color:`blue`},{subtitle:`在线`,title:`0`,icon:`mdi-check-circle-outline`,color:`green`},{subtitle:`离线`,title:`0`,icon:`mdi-alert-circle-outline`,color:`orange`},{subtitle:`告警中`,title:`0`,icon:`mdi-bell-alert-outline`,color:`red`}]),{servers:pe,loading:me,page:he,itemsPerPage:ge,total:_e,search:K,loadServers:ve,onSearch:ye,onPageChange:be,onItemsPerPageChange:xe}=ue();async function Se(){try{await ve()}catch{O(`加载服务器列表失败`,`error`)}}let Ce=[{title:`状态`,key:`status`,width:100},{title:`名称`,key:`name`},{title:`地址`,key:`domain`},{title:`分类`,key:`category`,width:100},{title:`Agent`,key:`agent_version`,width:100},{title:`心跳`,key:`last_heartbeat`,width:140},{title:`操作`,key:`actions`,width:140,align:`end`}],q=t([]),J=t([{title:`在线率`,progress:0,text:`在`,value:`0%`},{title:`Agent 覆盖`,progress:0,text:`A`,value:`0%`},{title:`CPU 平均`,progress:0,text:`C`,value:`0%`},{title:`内存平均`,progress:0,text:`M`,value:`0%`}]),Y=t({}),X=t(0),Z=t([]);async function Q(){try{let e=await d.get(`/servers/stats`);G.value[0].title=String(e.total),G.value[1].title=String(e.online),G.value[2].title=String(e.offline),G.value[3].title=String(e.alerts??0),Y.value=e.categories||{},X.value=e.total;let t=e.total?Math.round(e.online/e.total*100):0;J.value[0].progress=t,J.value[0].value=`${t}%`}catch{O(`加载统计数据失败`,`error`)}}async function $(){try{q.value=((await d.get(`/alert-history/`,{limit:5})).items||[]).map(e=>({title:e.server_name,subtitle:`${e.alert_type} ${e.is_recovery?`(已恢复)`:``} · ${T(e.created_at)}`,value:e.value,color:e.is_recovery?`green`:`red`,icon:e.is_recovery?`mdi-check-circle`:`mdi-alert-circle`}))}catch{q.value=[],O(`加载告警记录失败`,`error`)}}async function we(){try{Z.value=le((await d.get(`/audit/`,{limit:10})).items||[]).slice(0,10)}catch{Z.value=[],O(`加载审计记录失败`,`error`)}}async function Te(){try{let e=await d.get(`/servers/`,{per_page:200}),t=e.items||[],n=e.total||t.length;if(n===0)return;let r=t.filter(e=>e.agent_version).length,i=Math.round(r/n*100);J.value[1].progress=i,J.value[1].value=`${i}%`;let a=t.filter(e=>e.system_info?.cpu_usage!=null),o=t.filter(e=>e.system_info?.mem_usage!=null);if(a.length>0){let e=Math.round(a.reduce((e,t)=>e+(t.system_info.cpu_usage||0),0)/a.length);J.value[2].progress=e,J.value[2].value=`${e}%`}if(o.length>0){let e=Math.round(o.reduce((e,t)=>e+(t.system_info.mem_usage||0),0)/o.length);J.value[3].progress=e,J.value[3].value=`${e}%`}}catch{}}function Ee(e){W.push({path:`/terminal`,query:{server_id:String(e.id)}})}function De(e){W.push({path:`/files`,query:{server_id:String(e.id)}})}return ie(ee().alerts,()=>{Q(),$()}),ne(()=>{Q(),Se(),$(),Te(),we(),d.post(`/settings/bing-wallpapers/sync`).catch(()=>{})}),(t,i)=>(g(),h(oe,{fluid:``,class:`pa-4 pa-md-6 dashboard-root`},{default:r(()=>[m(D,{items:G.value},null,8,[`items`]),m(c,{class:`my-5`,elevation:`0`,rounded:`lg`,title:`服务器列表`,border:``},{text:r(()=>[m(re,{modelValue:a(K),"onUpdate:modelValue":i[0]||=e=>te(K)?K.value=e:null,autocomplete:`off`,placeholder:`搜索...`,"prepend-inner-icon":`mdi-magnify`,variant:`outlined`,"hide-details":``,rounded:``,class:`mb-4`},null,8,[`modelValue`]),m(se,{items:a(pe),headers:Ce,"items-length":a(_e),loading:a(me),page:a(he),"items-per-page":a(ge),hover:``,"item-value":`id`,"onUpdate:page":a(be),"onUpdate:itemsPerPage":a(xe)},{"item.status":r(({item:e})=>[m(S,{color:a(E)(e.status),text:a(de)(e.status),border:`sm`,size:`x-small`,label:``},null,8,[`color`,`text`])]),"item.name":r(({item:t})=>[e(`span`,k,n(t.name),1)]),"item.domain":r(({item:t})=>[e(`span`,A,n(t.domain),1)]),"item.category":r(({item:t})=>[e(`span`,j,n(t.category||`—`),1)]),"item.agent_version":r(({item:t})=>[e(`span`,M,n(t.agent_version||`—`),1)]),"item.last_heartbeat":r(({item:t})=>[e(`span`,N,n(a(T)(t.last_heartbeat)),1)]),"item.actions":r(({item:t})=>[e(`div`,P,[m(l,{variant:`text`,size:`x-small`,color:`primary`,density:`compact`,onClick:e=>Ee(t)},{default:r(()=>[...i[1]||=[_(`终端`,-1)]]),_:1},8,[`onClick`]),m(l,{variant:`text`,size:`x-small`,density:`compact`,onClick:e=>De(t)},{default:r(()=>[...i[2]||=[_(`文件`,-1)]]),_:1},8,[`onClick`])])]),"no-data":r(()=>[...i[3]||=[e(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无服务器数据`,-1)]]),_:1},8,[`items`,`items-length`,`loading`,`page`,`items-per-page`,`onUpdate:page`,`onUpdate:itemsPerPage`])]),_:1}),m(w,null,{default:r(()=>[m(C,{cols:`12`,md:`6`},{default:r(()=>[m(c,{elevation:`0`,rounded:`lg`,title:`告警历史`,border:``},{append:r(()=>[...i[4]||=[e(`div`,{class:`my-5`},null,-1)]]),text:r(()=>[q.value.length===0?(g(),y(`div`,F,` 暂无告警 `)):x(``,!0),(g(!0),y(f,null,p(q.value,(t,i)=>(g(),h(v,{key:i,class:u([i!==0&&`mt-4`,`px-0`]),subtitle:t.subtitle,title:t.title,lines:`one`},{prepend:r(()=>[m(s,{color:t.color,icon:t.icon,variant:`tonal`,rounded:``},null,8,[`color`,`icon`])]),append:r(()=>[e(`span`,I,n(t.value),1)]),_:2},1032,[`class`,`subtitle`,`title`]))),128))]),_:1})]),_:1}),m(C,{cols:`12`,md:`6`},{default:r(()=>[m(c,{elevation:`0`,rounded:`lg`,title:`资源概览`,border:``},{append:r(()=>[...i[5]||=[e(`div`,{class:`my-5`},null,-1)]]),text:r(()=>[(g(!0),y(f,null,p(J.value,(t,i)=>(g(),h(v,{key:i,class:u([i!==0&&`mt-4`,`px-0`])},{prepend:r(()=>[m(s,{text:t.text,color:`primary`,size:`large`,variant:`tonal`},null,8,[`text`])]),title:r(()=>[e(`div`,L,[e(`span`,null,n(t.title),1),e(`span`,null,n(t.value),1)])]),subtitle:r(()=>[e(`div`,R,[m(o,{"model-value":t.progress,"bg-color":`surface-light`,"bg-opacity":`1`,color:`primary`,height:`8`,rounded:``},null,8,[`model-value`])])]),_:2},1032,[`class`]))),128))]),_:1})]),_:1})]),_:1}),m(w,null,{default:r(()=>[m(C,{cols:`12`,md:`6`},{default:r(()=>[m(c,{elevation:`0`,rounded:`lg`,title:`分类分布`,border:``},{text:r(()=>[Object.keys(Y.value).length===0?(g(),y(`div`,z,` 暂无分类数据 `)):x(``,!0),(g(!0),y(f,null,p(Y.value,(t,i)=>(g(),h(v,{key:i,class:`px-0`},{prepend:r(()=>[m(s,{color:`primary`,variant:`tonal`,size:`small`},{default:r(()=>[e(`span`,B,n(i[0]?.toUpperCase()),1)]),_:2},1024)]),title:r(()=>[e(`div`,V,[e(`span`,H,n(i===`uncategorized`?`未分类`:i),1),e(`span`,fe,n(t)+` 台`,1)])]),subtitle:r(()=>[m(o,{"model-value":X.value>0?t/X.value*100:0,"bg-color":`surface-light`,"bg-opacity":`1`,color:`primary`,height:`6`,rounded:``},null,8,[`model-value`])]),_:2},1024))),128))]),_:1})]),_:1}),m(C,{cols:`12`,md:`6`},{default:r(()=>[m(c,{elevation:`0`,rounded:`lg`,title:`最近操作`,border:``},{append:r(()=>[m(l,{size:`small`,variant:`text`,to:`/audit`},{default:r(()=>[...i[6]||=[_(`查看全部`,-1)]]),_:1})]),text:r(()=>[Z.value.length===0?(g(),y(`div`,U,` 暂无操作记录 `)):x(``,!0),(g(!0),y(f,null,p(Z.value,e=>(g(),h(v,{key:e.id,title:a(ce)(e),subtitle:`${e.admin_username} · ${a(T)(e.created_at)}`,class:`px-0`,lines:`two`},{append:r(()=>[m(S,{size:`x-small`,variant:`tonal`,label:``},{default:r(()=>[_(n(e.ip_address||`—`),1)]),_:2},1024)]),_:2},1032,[`title`,`subtitle`]))),128))]),_:1})]),_:1})]),_:1})]),_:1}))}}),[[`__scopeId`,`data-v-1a05ebac`]]);export{W as default}; \ No newline at end of file diff --git a/web/app/assets/DashboardPage-v46LnfLM.css b/web/app/assets/DashboardPage-v46LnfLM.css new file mode 100644 index 00000000..3292144a --- /dev/null +++ b/web/app/assets/DashboardPage-v46LnfLM.css @@ -0,0 +1 @@ +.dashboard-root[data-v-1a05ebac]{min-width:0;max-width:100%}.dashboard-root[data-v-1a05ebac] .v-table{overflow-x:auto} diff --git a/web/app/assets/FilesPage-DHKaHWZF.js b/web/app/assets/FilesPage-DHKaHWZF.js new file mode 100644 index 00000000..f536015e --- /dev/null +++ b/web/app/assets/FilesPage-DHKaHWZF.js @@ -0,0 +1,9 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/cssMode-BuJVMq_j.js","assets/editor.api2-CLbMfXfG.js","assets/editor-DX2BVZF3.css","assets/lspLanguageFeatures-AwKtp3Of.js","assets/workers-DM14Vrt9.js","assets/htmlMode-CDXfyb8Q.js","assets/jsonMode-C-E2rrx5.js","assets/freemarker2-I9KwzPpB.js","assets/handlebars-Bl8H3RSk.js","assets/html-XpCEj8Vy.js","assets/javascript-CPxb41VQ.js","assets/typescript-ATS9A1uY.js","assets/liquid-jdbpKAFn.js","assets/mdx-CsoA5_Q2.js","assets/python-DE4WCjRF.js","assets/razor-D1hEheuN.js","assets/xml-CU3YPnZx.js","assets/yaml-Tf_s7n-n.js"])))=>i.map(i=>d[i]); +import{a as e,c as t,d as n,f as r,g as i,h as a,i as o,l as s,m as c,n as l,o as u,p as d,r as f,s as p,t as m,u as h}from"./editor.api2-CLbMfXfG.js";import{t as g}from"./VDataTable-RUszusjq.js";import{$n as _,$t as v,A as y,Ar as b,Br as x,Bt as S,Cr as C,Ct as ee,Er as te,F as ne,Ft as re,H as w,Ht as ie,I as T,Ir as E,J as ae,Jn as oe,Lt as se,M as ce,N as D,Nr as le,Nt as O,Or as ue,P as de,Qn as k,R as A,Rn as j,Rr as fe,Rt as M,St as pe,Tt as me,V as he,Vt as ge,X as _e,Xn as ve,Y as ye,Yn as N,Zn as be,_ as xe,_r as Se,ar as P,b as F,br as Ce,bt as we,cn as Te,cr as Ee,ct as De,dn as Oe,dr as ke,er as I,fn as Ae,gr as je,hr as L,ir as R,jr as Me,jt as Ne,k as Pe,ln as Fe,lr as Ie,nn as Le,nr as z,or as Re,pr as ze,st as Be,t as B,tn as Ve,tr as V,ur as He,v as Ue,w as We,wt as Ge,x as Ke,xr as qe,xt as Je,y as Ye,yt as Xe,zn as Ze,zr as Qe,zt as $e}from"./index-C_dP75wD.js";import{t as et}from"./workers-DM14Vrt9.js";import{t as tt}from"./monaco.contribution-Cd7B4rFL.js";import{o as nt,t as rt}from"./VContainer-DGQjsCTw.js";import{t as it}from"./VChip-oig-b64O.js";import{t as at}from"./VSelect-V_uWG8_q.js";import{t as ot}from"./VCheckbox-yHF3vS12.js";import{n as st,t as ct}from"./VRow-MZyk7N4E.js";import{t as lt}from"./VSpacer-Cl6Zcy_X.js";import{t as ut}from"./apiError-BgZlS-MZ.js";import{t as dt}from"./useServerList-DS-TV_aM.js";import{i as ft}from"./validation-DMwOxx4a.js";import{t as pt}from"./VDialog-CnSngTCg.js";import{t as mt}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{a as ht,n as gt,t as _t}from"./VFileInput-FSrwyXa8.js";import{t as vt}from"./VAlert-CNuOH9h_.js";var yt=i({cssDefaults:()=>Ct,lessDefaults:()=>Tt,scssDefaults:()=>wt}),bt=class{constructor(e,t,n){this._onDidChange=new l,this._languageId=e,this.setOptions(t),this.setModeConfiguration(n)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this.options}get options(){return this._options}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setDiagnosticsOptions(e){this.setOptions(e)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}},xt={validate:!0,lint:{compatibleVendorPrefixes:`ignore`,vendorPrefix:`warning`,duplicateProperties:`warning`,emptyRules:`warning`,importStatement:`ignore`,boxModel:`ignore`,universalSelector:`ignore`,zeroUnits:`ignore`,fontFaceProperties:`warning`,hexColorLength:`error`,argumentsInColorFunction:`error`,unknownProperties:`warning`,ieHack:`ignore`,unknownVendorSpecificProperties:`ignore`,propertyIgnoredDueToDisplay:`warning`,important:`ignore`,float:`ignore`,idSelector:`ignore`},data:{useDefaultDataProvider:!0},format:{newlineBetweenSelectors:!0,newlineBetweenRules:!0,spaceAroundSelectorSeparator:!1,braceStyle:`collapse`,maxPreserveNewLines:void 0,preserveNewLines:!0}},St={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0,documentFormattingEdits:!0,documentRangeFormattingEdits:!0},Ct=new bt(`css`,xt,St),wt=new bt(`scss`,xt,St),Tt=new bt(`less`,xt,St);function Et(){return O(()=>import(`./cssMode-BuJVMq_j.js`),__vite__mapDeps([0,1,2,3,4]))}a.onLanguage(`less`,()=>{Et().then(e=>e.setupMode(Tt))}),a.onLanguage(`scss`,()=>{Et().then(e=>e.setupMode(wt))}),a.onLanguage(`css`,()=>{Et().then(e=>e.setupMode(Ct))});var Dt=i({handlebarDefaults:()=>Lt,handlebarLanguageService:()=>It,htmlDefaults:()=>Ft,htmlLanguageService:()=>Pt,razorDefaults:()=>zt,razorLanguageService:()=>Rt,registerHTMLLanguageService:()=>Vt}),Ot=class{constructor(e,t,n){this._onDidChange=new l,this._languageId=e,this.setOptions(t),this.setModeConfiguration(n)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get options(){return this._options}get modeConfiguration(){return this._modeConfiguration}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}},kt={format:{tabSize:4,insertSpaces:!1,wrapLineLength:120,unformatted:`default": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var`,contentUnformatted:`pre`,indentInnerHtml:!1,preserveNewLines:!0,maxPreserveNewLines:void 0,indentHandlebars:!1,endWithNewline:!1,extraLiners:`head, body, /html`,wrapAttributes:`auto`},suggest:{},data:{useDefaultDataProvider:!0}};function At(e){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:e===jt,documentFormattingEdits:e===jt,documentRangeFormattingEdits:e===jt}}var jt=`html`,Mt=`handlebars`,Nt=`razor`,Pt=Vt(jt,kt,At(jt)),Ft=Pt.defaults,It=Vt(Mt,kt,At(Mt)),Lt=It.defaults,Rt=Vt(Nt,kt,At(Nt)),zt=Rt.defaults;function Bt(){return O(()=>import(`./htmlMode-CDXfyb8Q.js`),__vite__mapDeps([5,1,2,3,4]))}function Vt(e,t=kt,n=At(e)){let r=new Ot(e,t,n),i,o=a.onLanguage(e,async()=>{i=(await Bt()).setupMode(r)});return{defaults:r,dispose(){o.dispose(),i?.dispose(),i=void 0}}}var Ht=i({getWorker:()=>Wt,jsonDefaults:()=>Ut}),Ut=new class{constructor(e,t,n){this._onDidChange=new l,this._languageId=e,this.setDiagnosticsOptions(t),this.setModeConfiguration(n)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}}(`json`,{validate:!0,allowComments:!0,schemas:[],enableSchemaRequest:!1,schemaRequest:`warning`,schemaValidation:`warning`,comments:`error`,trailingCommas:`error`},{documentFormattingEdits:!0,documentRangeFormattingEdits:!0,completionItems:!0,hovers:!0,documentSymbols:!0,tokens:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0}),Wt=()=>Gt().then(e=>e.getWorker());function Gt(){return O(()=>import(`./jsonMode-C-E2rrx5.js`),__vite__mapDeps([6,1,2,3,4]))}a.register({id:`json`,extensions:[`.json`,`.bowerrc`,`.jshintrc`,`.jscsrc`,`.eslintrc`,`.babelrc`,`.har`],aliases:[`JSON`,`json`],mimetypes:[`application/json`]}),a.onLanguage(`json`,()=>{Gt().then(e=>e.setupMode(Ut))});var Kt={},qt={},Jt=class e{static getOrCreate(t){return qt[t]||(qt[t]=new e(t)),qt[t]}constructor(e){this._languageId=e,this._loadingTriggered=!1,this._lazyLoadPromise=new Promise((e,t)=>{this._lazyLoadPromiseResolve=e,this._lazyLoadPromiseReject=t})}load(){return this._loadingTriggered||(this._loadingTriggered=!0,Kt[this._languageId].loader().then(e=>this._lazyLoadPromiseResolve(e),e=>this._lazyLoadPromiseReject(e))),this._lazyLoadPromise}};function H(e){let t=e.id;Kt[t]=e,a.register(e);let n=Jt.getOrCreate(t);a.registerTokensProviderFactory(t,{create:async()=>(await n.load()).language}),a.onLanguageEncountered(t,async()=>{let e=await n.load();a.setLanguageConfiguration(t,e.conf)})}H({id:`abap`,extensions:[`.abap`],aliases:[`abap`,`ABAP`],loader:()=>O(()=>import(`./abap-08VXUWAP.js`),[])}),H({id:`apex`,extensions:[`.cls`],aliases:[`Apex`,`apex`],mimetypes:[`text/x-apex-source`,`text/x-apex`],loader:()=>O(()=>import(`./apex-BWPQTe0t.js`),[])}),H({id:`azcli`,extensions:[`.azcli`],aliases:[`Azure CLI`,`azcli`],loader:()=>O(()=>import(`./azcli-Bc_sGQ0U.js`),[])}),H({id:`bat`,extensions:[`.bat`,`.cmd`],aliases:[`Batch`,`bat`],loader:()=>O(()=>import(`./bat-i0X4ZdIN.js`),[])}),H({id:`bicep`,extensions:[`.bicep`],aliases:[`Bicep`],loader:()=>O(()=>import(`./bicep-B5-_aFwp.js`),[])}),H({id:`cameligo`,extensions:[`.mligo`],aliases:[`Cameligo`],loader:()=>O(()=>import(`./cameligo-DMUM7wLl.js`),[])}),H({id:`clojure`,extensions:[`.clj`,`.cljs`,`.cljc`,`.edn`],aliases:[`clojure`,`Clojure`],loader:()=>O(()=>import(`./clojure-Cm7r79vr.js`),[])}),H({id:`coffeescript`,extensions:[`.coffee`],aliases:[`CoffeeScript`,`coffeescript`,`coffee`],mimetypes:[`text/x-coffeescript`,`text/coffeescript`],loader:()=>O(()=>import(`./coffee-Ba7i2nA0.js`),[])}),H({id:`c`,extensions:[`.c`,`.h`],aliases:[`C`,`c`],loader:()=>O(()=>import(`./cpp-C7h46wYY.js`),[])}),H({id:`cpp`,extensions:[`.cpp`,`.cc`,`.cxx`,`.hpp`,`.hh`,`.hxx`],aliases:[`C++`,`Cpp`,`cpp`],loader:()=>O(()=>import(`./cpp-C7h46wYY.js`),[])}),H({id:`csharp`,extensions:[`.cs`,`.csx`,`.cake`],aliases:[`C#`,`csharp`],loader:()=>O(()=>import(`./csharp-BKxtCVv1.js`),[])}),H({id:`csp`,extensions:[`.csp`],aliases:[`CSP`,`csp`],loader:()=>O(()=>import(`./csp-bTuwJoIa.js`),[])}),H({id:`css`,extensions:[`.css`],aliases:[`CSS`,`css`],mimetypes:[`text/css`],loader:()=>O(()=>import(`./css-DIMkf-bt.js`),[])}),H({id:`cypher`,extensions:[`.cypher`,`.cyp`],aliases:[`Cypher`,`OpenCypher`],loader:()=>O(()=>import(`./cypher-CVaqCwHa.js`),[])}),H({id:`dart`,extensions:[`.dart`],aliases:[`Dart`,`dart`],mimetypes:[`text/x-dart-source`,`text/x-dart`],loader:()=>O(()=>import(`./dart-onAF5SnQ.js`),[])}),H({id:`dockerfile`,extensions:[`.dockerfile`],filenames:[`Dockerfile`],aliases:[`Dockerfile`],loader:()=>O(()=>import(`./dockerfile-DZFCIeNp.js`),[])}),H({id:`ecl`,extensions:[`.ecl`],aliases:[`ECL`,`Ecl`,`ecl`],loader:()=>O(()=>import(`./ecl-D05T4iGw.js`),[])}),H({id:`elixir`,extensions:[`.ex`,`.exs`],aliases:[`Elixir`,`elixir`,`ex`],loader:()=>O(()=>import(`./elixir-6RTg0lbw.js`),[])}),H({id:`flow9`,extensions:[`.flow`],aliases:[`Flow9`,`Flow`,`flow9`,`flow`],loader:()=>O(()=>import(`./flow9-C5_-GSwl.js`),[])}),H({id:`fsharp`,extensions:[`.fs`,`.fsi`,`.ml`,`.mli`,`.fsx`,`.fsscript`],aliases:[`F#`,`FSharp`,`fsharp`],loader:()=>O(()=>import(`./fsharp-C8Ef5oNN.js`),[])}),H({id:`freemarker2`,extensions:[`.ftl`,`.ftlh`,`.ftlx`],aliases:[`FreeMarker2`,`Apache FreeMarker2`],loader:()=>O(()=>import(`./freemarker2-I9KwzPpB.js`).then(e=>e.TagAutoInterpolationDollar),__vite__mapDeps([7,1,2]))}),H({id:`freemarker2.tag-angle.interpolation-dollar`,aliases:[`FreeMarker2 (Angle/Dollar)`,`Apache FreeMarker2 (Angle/Dollar)`],loader:()=>O(()=>import(`./freemarker2-I9KwzPpB.js`).then(e=>e.TagAngleInterpolationDollar),__vite__mapDeps([7,1,2]))}),H({id:`freemarker2.tag-bracket.interpolation-dollar`,aliases:[`FreeMarker2 (Bracket/Dollar)`,`Apache FreeMarker2 (Bracket/Dollar)`],loader:()=>O(()=>import(`./freemarker2-I9KwzPpB.js`).then(e=>e.TagBracketInterpolationDollar),__vite__mapDeps([7,1,2]))}),H({id:`freemarker2.tag-angle.interpolation-bracket`,aliases:[`FreeMarker2 (Angle/Bracket)`,`Apache FreeMarker2 (Angle/Bracket)`],loader:()=>O(()=>import(`./freemarker2-I9KwzPpB.js`).then(e=>e.TagAngleInterpolationBracket),__vite__mapDeps([7,1,2]))}),H({id:`freemarker2.tag-bracket.interpolation-bracket`,aliases:[`FreeMarker2 (Bracket/Bracket)`,`Apache FreeMarker2 (Bracket/Bracket)`],loader:()=>O(()=>import(`./freemarker2-I9KwzPpB.js`).then(e=>e.TagBracketInterpolationBracket),__vite__mapDeps([7,1,2]))}),H({id:`freemarker2.tag-auto.interpolation-dollar`,aliases:[`FreeMarker2 (Auto/Dollar)`,`Apache FreeMarker2 (Auto/Dollar)`],loader:()=>O(()=>import(`./freemarker2-I9KwzPpB.js`).then(e=>e.TagAutoInterpolationDollar),__vite__mapDeps([7,1,2]))}),H({id:`freemarker2.tag-auto.interpolation-bracket`,aliases:[`FreeMarker2 (Auto/Bracket)`,`Apache FreeMarker2 (Auto/Bracket)`],loader:()=>O(()=>import(`./freemarker2-I9KwzPpB.js`).then(e=>e.TagAutoInterpolationBracket),__vite__mapDeps([7,1,2]))}),H({id:`go`,extensions:[`.go`],aliases:[`Go`],loader:()=>O(()=>import(`./go-C-y9NEjX.js`),[])}),H({id:`graphql`,extensions:[`.graphql`,`.gql`],aliases:[`GraphQL`,`graphql`,`gql`],mimetypes:[`application/graphql`],loader:()=>O(()=>import(`./graphql-fmXr3nnJ.js`),[])}),H({id:`handlebars`,extensions:[`.handlebars`,`.hbs`],aliases:[`Handlebars`,`handlebars`,`hbs`],mimetypes:[`text/x-handlebars-template`],loader:()=>O(()=>import(`./handlebars-Bl8H3RSk.js`),__vite__mapDeps([8,1,2]))}),H({id:`hcl`,extensions:[`.tf`,`.tfvars`,`.hcl`],aliases:[`Terraform`,`tf`,`HCL`,`hcl`],loader:()=>O(()=>import(`./hcl-CpzslTdj.js`),[])}),H({id:`html`,extensions:[`.html`,`.htm`,`.shtml`,`.xhtml`,`.mdoc`,`.jsp`,`.asp`,`.aspx`,`.jshtm`],aliases:[`HTML`,`htm`,`html`,`xhtml`],mimetypes:[`text/html`,`text/x-jshtm`,`text/template`,`text/ng-template`],loader:()=>O(()=>import(`./html-XpCEj8Vy.js`),__vite__mapDeps([9,1,2]))}),H({id:`ini`,extensions:[`.ini`,`.properties`,`.gitconfig`],filenames:[`config`,`.gitattributes`,`.gitconfig`,`.editorconfig`],aliases:[`Ini`,`ini`],loader:()=>O(()=>import(`./ini-sBoK_t0W.js`),[])}),H({id:`java`,extensions:[`.java`,`.jav`],aliases:[`Java`,`java`],mimetypes:[`text/x-java-source`,`text/x-java`],loader:()=>O(()=>import(`./java-BEtHBSE6.js`),[])}),H({id:`javascript`,extensions:[`.js`,`.es6`,`.jsx`,`.mjs`,`.cjs`],firstLine:`^#!.*\\bnode`,filenames:[`jakefile`],aliases:[`JavaScript`,`javascript`,`js`],mimetypes:[`text/javascript`],loader:()=>O(()=>import(`./javascript-CPxb41VQ.js`),__vite__mapDeps([10,11,1,2]))}),H({id:`julia`,extensions:[`.jl`],aliases:[`julia`,`Julia`],loader:()=>O(()=>import(`./julia-Bri6UV-V.js`),[])}),H({id:`kotlin`,extensions:[`.kt`,`.kts`],aliases:[`Kotlin`,`kotlin`],mimetypes:[`text/x-kotlin-source`,`text/x-kotlin`],loader:()=>O(()=>import(`./kotlin-BOotOW0E.js`),[])}),H({id:`less`,extensions:[`.less`],aliases:[`Less`,`less`],mimetypes:[`text/x-less`,`text/less`],loader:()=>O(()=>import(`./less-B9JPFI3C.js`),[])}),H({id:`lexon`,extensions:[`.lex`],aliases:[`Lexon`],loader:()=>O(()=>import(`./lexon-CfSJPG6W.js`),[])}),H({id:`lua`,extensions:[`.lua`],aliases:[`Lua`,`lua`],loader:()=>O(()=>import(`./lua-CsQS60Ue.js`),[])}),H({id:`liquid`,extensions:[`.liquid`,`.html.liquid`],aliases:[`Liquid`,`liquid`],mimetypes:[`application/liquid`],loader:()=>O(()=>import(`./liquid-jdbpKAFn.js`),__vite__mapDeps([12,1,2]))}),H({id:`m3`,extensions:[`.m3`,`.i3`,`.mg`,`.ig`],aliases:[`Modula-3`,`Modula3`,`modula3`,`m3`],loader:()=>O(()=>import(`./m3-D-oSqn_W.js`),[])}),H({id:`markdown`,extensions:[`.md`,`.markdown`,`.mdown`,`.mkdn`,`.mkd`,`.mdwn`,`.mdtxt`,`.mdtext`],aliases:[`Markdown`,`markdown`],loader:()=>O(()=>import(`./markdown-Cimd5fb3.js`),[])}),H({id:`mdx`,extensions:[`.mdx`],aliases:[`MDX`,`mdx`],loader:()=>O(()=>import(`./mdx-CsoA5_Q2.js`),__vite__mapDeps([13,1,2]))}),H({id:`mips`,extensions:[`.s`],aliases:[`MIPS`,`MIPS-V`],mimetypes:[`text/x-mips`,`text/mips`,`text/plaintext`],loader:()=>O(()=>import(`./mips-CIPQ_RoX.js`),[])}),H({id:`msdax`,extensions:[`.dax`,`.msdax`],aliases:[`DAX`,`MSDAX`],loader:()=>O(()=>import(`./msdax-DauUninz.js`),[])}),H({id:`mysql`,extensions:[],aliases:[`MySQL`,`mysql`],loader:()=>O(()=>import(`./mysql-SOo6toE5.js`),[])}),H({id:`objective-c`,extensions:[`.m`],aliases:[`Objective-C`],loader:()=>O(()=>import(`./objective-c-FvmIjYaQ.js`),[])}),H({id:`pascal`,extensions:[`.pas`,`.p`,`.pp`],aliases:[`Pascal`,`pas`],mimetypes:[`text/x-pascal-source`,`text/x-pascal`],loader:()=>O(()=>import(`./pascal-DrH0SRf2.js`),[])}),H({id:`pascaligo`,extensions:[`.ligo`],aliases:[`Pascaligo`,`ligo`],loader:()=>O(()=>import(`./pascaligo-D-ptJ9y-.js`),[])}),H({id:`perl`,extensions:[`.pl`,`.pm`],aliases:[`Perl`,`pl`],loader:()=>O(()=>import(`./perl-oz_6vUea.js`),[])}),H({id:`pgsql`,extensions:[],aliases:[`PostgreSQL`,`postgres`,`pg`,`postgre`],loader:()=>O(()=>import(`./pgsql-DTj74zXo.js`),[])}),H({id:`php`,extensions:[`.php`,`.php4`,`.php5`,`.phtml`,`.ctp`],aliases:[`PHP`,`php`],mimetypes:[`application/x-php`],loader:()=>O(()=>import(`./php-nr791fC2.js`),[])}),H({id:`pla`,extensions:[`.pla`],loader:()=>O(()=>import(`./pla-CopQ2nXW.js`),[])}),H({id:`postiats`,extensions:[`.dats`,`.sats`,`.hats`],aliases:[`ATS`,`ATS/Postiats`],loader:()=>O(()=>import(`./postiats-43DmfD33.js`),[])}),H({id:`powerquery`,extensions:[`.pq`,`.pqm`],aliases:[`PQ`,`M`,`Power Query`,`Power Query M`],loader:()=>O(()=>import(`./powerquery-D3hlyOfw.js`),[])}),H({id:`powershell`,extensions:[`.ps1`,`.psm1`,`.psd1`],aliases:[`PowerShell`,`powershell`,`ps`,`ps1`],loader:()=>O(()=>import(`./powershell-DmHpPYUd.js`),[])}),H({id:`proto`,extensions:[`.proto`],aliases:[`protobuf`,`Protocol Buffers`],loader:()=>O(()=>import(`./protobuf-C531GsRP.js`),[])}),H({id:`pug`,extensions:[`.jade`,`.pug`],aliases:[`Pug`,`Jade`,`jade`],loader:()=>O(()=>import(`./pug-Z5eAx3Zn.js`),[])}),H({id:`python`,extensions:[`.py`,`.rpy`,`.pyw`,`.cpy`,`.gyp`,`.gypi`],aliases:[`Python`,`py`],firstLine:`^#!/.*\\bpython[0-9.-]*\\b`,loader:()=>O(()=>import(`./python-DE4WCjRF.js`),__vite__mapDeps([14,1,2]))}),H({id:`qsharp`,extensions:[`.qs`],aliases:[`Q#`,`qsharp`],loader:()=>O(()=>import(`./qsharp-DkqhCAOL.js`),[])}),H({id:`r`,extensions:[`.r`,`.rhistory`,`.rmd`,`.rprofile`,`.rt`],aliases:[`R`,`r`],loader:()=>O(()=>import(`./r-BwWrilGY.js`),[])}),H({id:`razor`,extensions:[`.cshtml`],aliases:[`Razor`,`razor`],mimetypes:[`text/x-cshtml`],loader:()=>O(()=>import(`./razor-D1hEheuN.js`),__vite__mapDeps([15,1,2]))}),H({id:`redis`,extensions:[`.redis`],aliases:[`redis`],loader:()=>O(()=>import(`./redis-ClamHrr6.js`),[])}),H({id:`redshift`,extensions:[],aliases:[`Redshift`,`redshift`],loader:()=>O(()=>import(`./redshift-DT7zqm-g.js`),[])}),H({id:`restructuredtext`,extensions:[`.rst`],aliases:[`reStructuredText`,`restructuredtext`],loader:()=>O(()=>import(`./restructuredtext-BYgofb2h.js`),[])}),H({id:`ruby`,extensions:[`.rb`,`.rbx`,`.rjs`,`.gemspec`,`.pp`],filenames:[`rakefile`,`Gemfile`],aliases:[`Ruby`,`rb`],loader:()=>O(()=>import(`./ruby-DezsRK8O.js`),[])}),H({id:`rust`,extensions:[`.rs`,`.rlib`],aliases:[`Rust`,`rust`],loader:()=>O(()=>import(`./rust-DdL9SqIa.js`),[])}),H({id:`sb`,extensions:[`.sb`],aliases:[`Small Basic`,`sb`],loader:()=>O(()=>import(`./sb-CcwsVR0C.js`),[])}),H({id:`scala`,extensions:[`.scala`,`.sc`,`.sbt`],aliases:[`Scala`,`scala`,`SBT`,`Sbt`,`sbt`,`Dotty`,`dotty`],mimetypes:[`text/x-scala-source`,`text/x-scala`,`text/x-sbt`,`text/x-dotty`],loader:()=>O(()=>import(`./scala-DHpiXF5c.js`),[])}),H({id:`scheme`,extensions:[`.scm`,`.ss`,`.sch`,`.rkt`],aliases:[`scheme`,`Scheme`],loader:()=>O(()=>import(`./scheme-BeGwcela.js`),[])}),H({id:`scss`,extensions:[`.scss`],aliases:[`Sass`,`sass`,`scss`],mimetypes:[`text/x-scss`,`text/scss`],loader:()=>O(()=>import(`./scss-gp-XZpBa.js`),[])}),H({id:`shell`,extensions:[`.sh`,`.bash`],aliases:[`Shell`,`sh`],loader:()=>O(()=>import(`./shell-CC2rA5mh.js`),[])}),H({id:`sol`,extensions:[`.sol`],aliases:[`sol`,`solidity`,`Solidity`],loader:()=>O(()=>import(`./solidity-BEEn4gHE.js`),[])}),H({id:`aes`,extensions:[`.aes`],aliases:[`aes`,`sophia`,`Sophia`],loader:()=>O(()=>import(`./sophia-CRfGWb83.js`),[])}),H({id:`sparql`,extensions:[`.rq`],aliases:[`sparql`,`SPARQL`],loader:()=>O(()=>import(`./sparql-D_Lu-MrJ.js`),[])}),H({id:`sql`,extensions:[`.sql`],aliases:[`SQL`],loader:()=>O(()=>import(`./sql-NEE52Syq.js`),[])}),H({id:`st`,extensions:[`.st`,`.iecst`,`.iecplc`,`.lc3lib`,`.TcPOU`,`.TcDUT`,`.TcGVL`,`.TcIO`],aliases:[`StructuredText`,`scl`,`stl`],loader:()=>O(()=>import(`./st-DbInun42.js`),[])}),H({id:`swift`,aliases:[`Swift`,`swift`],extensions:[`.swift`],mimetypes:[`text/swift`],loader:()=>O(()=>import(`./swift-Bxkupp3x.js`),[])}),H({id:`systemverilog`,extensions:[`.sv`,`.svh`],aliases:[`SV`,`sv`,`SystemVerilog`,`systemverilog`],loader:()=>O(()=>import(`./systemverilog-Bz4Y3fRF.js`),[])}),H({id:`verilog`,extensions:[`.v`,`.vh`],aliases:[`V`,`v`,`Verilog`,`verilog`],loader:()=>O(()=>import(`./systemverilog-Bz4Y3fRF.js`),[])}),H({id:`tcl`,extensions:[`.tcl`],aliases:[`tcl`,`Tcl`,`tcltk`,`TclTk`,`tcl/tk`,`Tcl/Tk`],loader:()=>O(()=>import(`./tcl-DISqw1ZD.js`),[])}),H({id:`twig`,extensions:[`.twig`],aliases:[`Twig`,`twig`],mimetypes:[`text/x-twig`],loader:()=>O(()=>import(`./twig-De2hgUGE.js`),[])}),H({id:`typescript`,extensions:[`.ts`,`.tsx`,`.cts`,`.mts`],aliases:[`TypeScript`,`ts`,`typescript`],mimetypes:[`text/typescript`],loader:()=>O(()=>import(`./typescript-ATS9A1uY.js`),__vite__mapDeps([11,1,2]))}),H({id:`typespec`,extensions:[`.tsp`],aliases:[`TypeSpec`],loader:()=>O(()=>import(`./typespec-B8J7ngcE.js`),[])}),H({id:`vb`,extensions:[`.vb`],aliases:[`Visual Basic`,`vb`],loader:()=>O(()=>import(`./vb-DV3o63ZY.js`),[])}),H({id:`wgsl`,extensions:[`.wgsl`],aliases:[`WebGPU Shading Language`,`WGSL`,`wgsl`],loader:()=>O(()=>import(`./wgsl-DpFanUEy.js`),[])}),H({id:`xml`,extensions:[`.xml`,`.xsd`,`.dtd`,`.ascx`,`.csproj`,`.config`,`.props`,`.targets`,`.wxi`,`.wxl`,`.wxs`,`.xaml`,`.svg`,`.svgz`,`.opf`,`.xslt`,`.xsl`],firstLine:`(\\<\\?xml.*)|(\\O(()=>import(`./xml-CU3YPnZx.js`),__vite__mapDeps([16,1,2]))}),H({id:`yaml`,extensions:[`.yaml`,`.yml`],aliases:[`YAML`,`yaml`,`YML`,`yml`],mimetypes:[`application/x-yaml`,`text/x-yaml`],loader:()=>O(()=>import(`./yaml-Tf_s7n-n.js`),__vite__mapDeps([17,1,2]))});var Yt=i({MonacoLspClient:()=>Gi,WebSocketTransport:()=>Yi,createTransportToIFrame:()=>Qi,createTransportToWorker:()=>Zi}),Xt=Object.defineProperty,Zt=(e,t,n)=>t in e?Xt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,U=(e,t,n)=>Zt(e,typeof t==`symbol`?t:t+``,n),Qt,$t,en,tn,nn;function rn(e){return e.method!==void 0}var an;(function(e){function t(e){return e}e.create=t})(an||={});var on;(function(e){e.parseError=-32700,e.invalidRequest=-32600,e.methodNotFound=-32601,e.invalidParams=-32602,e.internalError=-32603;function t(e){return-32099<=e&&e<=-32e3}e.isServerError=t;function n(e){if(!t(e))throw Error(`Invalid range for a server error.`);return e}e.serverError=n,e.unexpectedServerError=-32e3;function r(e){return!0}e.isApplicationError=r;function i(e){return e}e.applicationError=i,e.genericApplicationError=-320100})(on||={});var sn=class{constructor(){U(this,`listeners`,new Set),U(this,`event`,e=>(this.listeners.add(e),{dispose:()=>{this.listeners.delete(e)}}))}fire(e){this.listeners.forEach(t=>t(e))}},cn=class{constructor(e){U(this,`_value`),U(this,`eventEmitter`),this._value=e,this.eventEmitter=new sn}get value(){return this._value}set value(e){this._value!==e&&(this._value=e,this.eventEmitter.fire(e))}get onChange(){return this.eventEmitter.event}};function ln(e,t){let n=setTimeout(t,e);return{dispose:()=>clearTimeout(n)}}function un(e,t,n){return e instanceof Set?(e.add(t),{dispose:()=>e.delete(t)}):(e.set(t,n),{dispose:()=>e.delete(t)})}var dn=class{constructor(){U(this,`_state`,`none`),U(this,`promise`),U(this,`resolve`,()=>{}),U(this,`reject`,()=>{}),this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}get state(){return this._state}},fn=(Qt=class{constructor(){U(this,`_unprocessedMessages`,[]),U(this,`_messageListener`),U(this,`id`,Qt.id++),U(this,`_state`,new cn({state:`open`})),U(this,`state`,this._state)}setListener(e){if(this._messageListener=e,e)for(;this._unprocessedMessages.length>0&&this._messageListener!==void 0;){let e=this._unprocessedMessages.shift();this._messageListener(e)}}send(e){return this._sendImpl(e)}_dispatchReceivedMessage(e){this._unprocessedMessages.length===0&&this._messageListener?this._messageListener(e):this._unprocessedMessages.push(e)}_onConnectionClosed(){this._state.value={state:`closed`,error:void 0}}log(e){return new pn(this,e??new mn)}},U(Qt,`id`,0),Qt),pn=class{constructor(e,t){U(this,`baseStream`),U(this,`logger`),this.baseStream=e,this.logger=t}get state(){return this.baseStream.state}setListener(e){if(e===void 0){this.baseStream.setListener(void 0);return}this.baseStream.setListener(t=>{this.logger.log(this.baseStream,`incoming`,t),e(t)})}send(e){return this.logger.log(this.baseStream,`outgoing`,e),this.baseStream.send(e)}toString(){return`StreamLogger/${this.baseStream.toString()}`}},mn=class{log(e,t,n){console.log(`${t===`incoming`?`<-`:`->`} [${e.toString()}] ${JSON.stringify(n)}`)}},hn=class e{constructor(e){U(this,`connect`),this.connect=e}mapContext(t){return new e(e=>this.connect(e?gn(e,t):void 0))}};function gn(e,t){return{handleNotification:(n,r)=>e.handleNotification(n,t(r)),handleRequest:(n,r,i)=>e.handleRequest(n,r,t(i))}}var _n=class e{constructor(e,t,n){U(this,`_stream`),U(this,`_listener`),U(this,`_logger`),U(this,`_unprocessedResponses`,new Map),U(this,`_lastUsedRequestId`,0),this._stream=e,this._listener=t,this._logger=n,this._stream.setListener(e=>{rn(e)?e.id===void 0?this._processNotification(e):this._processRequest(e):this._processResponse(e)})}static createChannel(t,n){let r=!1;return new hn(i=>{if(r)throw Error(`A channel to the stream ${t} was already constructed!`);return r=!0,new e(t,i,n)})}get state(){return this._stream.state}async _processNotification(e){if(e.id!==void 0)throw Error();if(!this._listener){this._logger&&this._logger.debug({text:`Notification ignored`,message:e});return}try{await this._listener.handleNotification({method:e.method,params:e.params||null})}catch(t){this._logger&&this._logger.warn({text:`Exception was thrown while handling notification: ${t}`,exception:t,message:e})}}async _processRequest(e){if(e.id===void 0)throw Error();let t;if(this._listener)try{t=await this._listener.handleRequest({method:e.method,params:e.params||null},e.id)}catch(n){this._logger&&this._logger.warn({text:`Exception was thrown while handling request: ${n}`,message:e,exception:n}),t={error:{code:on.internalError,message:`An unexpected exception was thrown.`,data:void 0}}}else this._logger&&this._logger.debug({text:`Received request even though not listening for requests`,message:e}),t={error:{code:on.methodNotFound,message:`This endpoint does not listen for requests or notifications.`,data:void 0}};let n;n=`result`in t?{jsonrpc:`2.0`,id:e.id,result:t.result}:{jsonrpc:`2.0`,id:e.id,error:t.error},await this._stream.send(n)}_processResponse(e){let t=``+e.id,n=this._unprocessedResponses.get(t);if(!n){this._logger&&this._logger.debug({text:`Got an unexpected response message`,message:e});return}this._unprocessedResponses.delete(t),n(e)}_newRequestId(){return this._lastUsedRequestId++}sendRequest(e,t,n){let r={jsonrpc:`2.0`,id:this._newRequestId(),method:e.method,params:e.params||void 0};return n&&n(r.id),new Promise((e,t)=>{let n=``+r.id;this._unprocessedResponses.set(n,n=>{`result`in n?e({result:n.result}):(n.error||t(Error(`Response had neither 'result' nor 'error' field set.`)),e({error:n.error}))}),this._stream.send(r).then(void 0,e=>{this._unprocessedResponses.delete(n),t(e)})})}sendNotification(e,t){let n={jsonrpc:`2.0`,id:void 0,method:e.method,params:e.params||void 0};return this._stream.send(n)}toString(){return`StreamChannel/`+this._stream.toString()}},vn;(function(e){function t(){return{deserializeFromJson:e=>({hasErrors:!1,value:e}),serializeToJson:e=>e}}e.sAny=t;function n(){return{deserializeFromJson:e=>({hasErrors:!1,value:{}}),serializeToJson:e=>({})}}e.sEmptyObject=n;function r(){return{deserializeFromJson:e=>({hasErrors:!1,value:void 0}),serializeToJson:e=>null}}e.sVoidFromNull=r})(vn||={});var yn=Symbol(`OptionalMethodNotFound`),bn=class{contextualize(e){return new xn(this,e)}},xn=class extends bn{constructor(e,t){super(),U(this,`underylingTypedChannel`),U(this,`converters`),this.underylingTypedChannel=e,this.converters=t}async request(e,t,n){let r=await this.converters.getSendContext(n);return this.underylingTypedChannel.request(e,t,r)}async notify(e,t,n){let r=await this.converters.getSendContext(n);return this.underylingTypedChannel.notify(e,t,r)}registerNotificationHandler(e,t){return this.underylingTypedChannel.registerNotificationHandler(e,async(e,n)=>await t(e,await this.converters.getNewContext(n)))}registerRequestHandler(e,t){return this.underylingTypedChannel.registerRequestHandler(e,async(e,n,r)=>await t(e,n,await this.converters.getNewContext(r)))}},Sn=class e extends bn{constructor(e,t={}){super(),U(this,`channelCtor`),U(this,`_requestSender`),U(this,`_handler`,new Map),U(this,`_unknownNotificationHandler`,new Set),U(this,`_timeout`),U(this,`sendExceptionDetails`,!1),U(this,`_logger`),U(this,`listeningDeferred`,new dn),U(this,`onListening`,this.listeningDeferred.promise),U(this,`_requestDidErrorEventEmitter`,new sn),U(this,`onRequestDidError`,this._requestDidErrorEventEmitter.event),this.channelCtor=e,this._logger=t.logger,this.sendExceptionDetails=!!t.sendExceptionDetails,this._timeout=ln(1e3,()=>{this._requestSender||console.warn(`"${this.startListen.name}" has not been called within 1 second after construction of this channel. Did you forget to call it?`,this)})}static fromTransport(t,n={}){return new e(_n.createChannel(t,n.logger),n)}startListen(){if(this._requestSender)throw Error(`"${this.startListen.name}" can be called only once, but it already has been called.`);this._timeout&&=(this._timeout.dispose(),void 0),this._requestSender=this.channelCtor.connect({handleRequest:(e,t,n)=>this.handleRequest(e,t,n),handleNotification:(e,t)=>this.handleNotification(e,t)}),this.listeningDeferred.resolve()}checkChannel(e){if(!e)throw Error(`"${this.startListen.name}" must be called before any messages can be sent or received.`);return!0}async handleRequest(e,t,n){let r=this._handler.get(e.method);if(!r)return this._logger&&this._logger.debug({text:`No request handler for "${e.method}".`,data:{requestObject:e}}),{error:{code:on.methodNotFound,message:`No request handler for "${e.method}".`,data:{method:e.method}}};if(r.kind!=`request`){let t=`"${e.method}" is registered as notification, but was sent as request.`;return this._logger&&this._logger.debug({text:t,data:{requestObject:e}}),{error:{code:on.invalidRequest,message:t,data:{method:e.method}}}}let i=r.requestType.paramsSerializer.deserializeFromJson(e.params);if(i.hasErrors){let t=`Got invalid params: ${i.errorMessage}`;return this._logger&&this._logger.debug({text:t,data:{requestObject:e,errorMessage:i.errorMessage}}),{error:{code:on.invalidParams,message:t,data:{errors:i.errorMessage}}}}else{let a=i.value,o;try{let e=await r.handler(a,t,n);if(`error`in e||`errorMessage`in e){let t=e.error?r.requestType.errorSerializer.serializeToJson(e.error):void 0;o={error:{code:e.errorCode||on.genericApplicationError,message:e.errorMessage||`An error was returned`,data:t}}}else o={result:r.requestType.resultSerializer.serializeToJson(e.ok)}}catch(t){t instanceof wn?o={error:{code:t.code,message:t.message}}:(this._logger&&this._logger.warn({text:`An exception was thrown while handling a request: ${t}.`,exception:t,data:{requestObject:e}}),o={error:{code:on.unexpectedServerError,message:this.sendExceptionDetails?`An exception was thrown while handling a request: ${t}.`:`Server has thrown an unexpected exception`}})}return o}}async handleNotification(e,t){let n=this._handler.get(e.method);if(!n){for(let t of this._unknownNotificationHandler)t(e);this._unknownNotificationHandler.size===0&&this._logger&&this._logger.debug({text:`Unhandled notification "${e.method}"`,data:{requestObject:e}});return}if(n.kind!=`notification`){this._logger&&this._logger.debug({text:`"${e.method}" is registered as request, but was sent as notification.`,data:{requestObject:e}});return}let r=n.notificationType.paramsSerializer.deserializeFromJson(e.params);if(r.hasErrors){this._logger&&this._logger.debug({text:`Got invalid params: ${r}`,data:{requestObject:e,errorMessage:r.errorMessage}});return}let i=r.value;for(let r of n.handlers)try{r(i,t)}catch(t){this._logger&&this._logger.warn({text:`An exception was thrown while handling a notification: ${t}.`,exception:t,data:{requestObject:e}})}}registerUnknownNotificationHandler(e){return un(this._unknownNotificationHandler,e)}registerRequestHandler(e,t){if(this._handler.get(e.method))throw Error(`Handler with method "${e.method}" already registered.`);return un(this._handler,e.method,{kind:`request`,requestType:e,handler:t})}registerNotificationHandler(e,t){let n=this._handler.get(e.method);if(!n)n={kind:`notification`,notificationType:e,handlers:new Set},this._handler.set(e.method,n);else{if(n.kind!==`notification`)throw Error(`Method "${e.method}" was already registered as request handler.`);if(n.notificationType!==e)throw Error(`Method "${e.method}" was registered for a different type.`)}return un(n.handlers,t)}getRegisteredTypes(){let e=[];for(let t of this._handler.values())t.kind===`notification`?e.push(t.notificationType):t.kind===`request`&&e.push(t.requestType);return e}async request(e,t,n){if(!this.checkChannel(this._requestSender))throw Error(`Impossible`);let r=e.paramsSerializer.serializeToJson(t);Cn(r);let i=await this._requestSender.sendRequest({method:e.method,params:r},n);if(`error`in i){if(e.isOptional&&i.error.code===on.methodNotFound)return yn;let t;if(i.error.data!==void 0){let n=e.errorSerializer.deserializeFromJson(i.error.data);if(n.hasErrors)throw Error(n.errorMessage);t=n.value}else t=void 0;let n=new wn(i.error.message,t,i.error.code);throw this._requestDidErrorEventEmitter.fire({error:n}),n}else{let t=e.resultSerializer.deserializeFromJson(i.result);if(t.hasErrors)throw Error(`Could not deserialize response: `+t.errorMessage+` + +${JSON.stringify(i,null,2)}`);return t.value}}async notify(e,t,n){if(!this.checkChannel(this._requestSender))throw Error();let r=e.paramsSerializer.serializeToJson(t);Cn(r),this._requestSender.sendNotification({method:e.method,params:r},n)}};function Cn(e){if(e!==null&&Array.isArray(e)&&typeof e!=`object`)throw Error(`Invalid value! Only null, array and object is allowed.`)}var wn=class e extends Error{constructor(t,n,r=on.genericApplicationError){super(t),U(this,`data`),U(this,`code`),this.data=n,this.code=r,Object.setPrototypeOf(this,e.prototype)}},Tn=class e{constructor(e,t,n,r,i=!1){U(this,`method`),U(this,`paramsSerializer`),U(this,`resultSerializer`),U(this,`errorSerializer`),U(this,`isOptional`),U(this,`kind`,`request`),this.method=e,this.paramsSerializer=t,this.resultSerializer=n,this.errorSerializer=r,this.isOptional=i}withMethod(t){return new e(t,this.paramsSerializer,this.resultSerializer,this.errorSerializer)}optional(){return new e(this.method,this.paramsSerializer,this.resultSerializer,this.errorSerializer,!0)}},En=class e{constructor(e,t){U(this,`method`),U(this,`paramsSerializer`),U(this,`kind`,`notification`),this.method=e,this.paramsSerializer=t}withMethod(t){return new e(t,this.paramsSerializer)}};function W(e){return new Tn((e||{}).method,vn.sAny(),vn.sAny(),vn.sAny())}function G(e){return new En((e||{}).method,vn.sAny())}var Dn=($t=Symbol(),en=class{constructor(e){U(this,`error`),U(this,$t),this.error=e}},U(en,`factory`,e=>new en(e)),en);function On(e){let t=kn(e.server),n=kn(e.client);return new An(e.tags||[],t,n)}function kn(e){let t={};for(let[n,r]of Object.entries(e)){let e=r.method?r.method:n;t[n]=r.withMethod(e)}return t}var An=class e{constructor(e=[],t,n){U(this,`tags`),U(this,`server`),U(this,`client`),this.tags=e,this.server=t,this.client=n}_onlyDesignTime(){return Error(`This property is not meant to be accessed at runtime`)}get TContractObject(){throw this._onlyDesignTime()}get TClientInterface(){throw this._onlyDesignTime()}get TServerInterface(){throw this._onlyDesignTime()}get TClientHandler(){throw this._onlyDesignTime()}get TServerHandler(){throw this._onlyDesignTime()}get TTags(){throw this._onlyDesignTime()}getInterface(e,t,n,r){let i=this.buildCounterpart(e,n),a=this.registerHandlers(e,t,r,i);return{counterpart:i,dispose:()=>a.dispose()}}buildCounterpart(e,t){let n={};for(let[r,i]of Object.entries(t)){let t;t=i.kind===`request`?i.isOptional?async(t,n)=>{t===void 0&&(t={});try{return await e.request(i,t,n)}catch(e){if(e&&e.code===on.methodNotFound)return yn;throw e}}:(t,n)=>(t===void 0&&(t={}),e.request(i,t,n)):(t,n)=>(t===void 0&&(t={}),e.notify(i,t,n)),n[r]=t}return n}registerHandlers(e,t,n,r){let i=[];for(let[a,o]of Object.entries(t))if(o.kind===`request`){let t=n[a];if(!t)continue;let s=this.createRequestHandler(r,t);i.push(e.registerRequestHandler(o,s))}else{let t=n[a];t&&i.push(e.registerNotificationHandler(o,(e,n)=>{t(e,{context:n,counterpart:r})}))}return{dispose:()=>i.forEach(e=>e.dispose())}}createRequestHandler(e,t){return async(n,r,i)=>{let a=await t(n,{context:i,counterpart:e,newErr:Dn.factory,requestId:r});return a instanceof Dn?a.error:{ok:a}}}static getServerFromStream(e,t,n,r){let i=Sn.fromTransport(t,n),{server:a}=e.getServer(i,r);return i.startListen(),{channel:i,server:a}}static registerServerToStream(e,t,n,r){let i=Sn.fromTransport(t,n),{client:a}=e.registerServer(i,r);return i.startListen(),{channel:i,client:a}}getServer(e,t){let{counterpart:n,dispose:r}=this.getInterface(e,this.client,this.server,t);return{server:n,dispose:r}}registerServer(e,t){let{counterpart:n,dispose:r}=this.getInterface(e,this.server,this.client,t);return{client:n,dispose:r}}withContext(){return new e(this.tags,this.server,this.client)}},jn=(function(e){return e.Comment=`comment`,e.Imports=`imports`,e.Region=`region`,e})({}),K=(function(e){return e[e.File=1]=`File`,e[e.Module=2]=`Module`,e[e.Namespace=3]=`Namespace`,e[e.Package=4]=`Package`,e[e.Class=5]=`Class`,e[e.Method=6]=`Method`,e[e.Property=7]=`Property`,e[e.Field=8]=`Field`,e[e.Constructor=9]=`Constructor`,e[e.Enum=10]=`Enum`,e[e.Interface=11]=`Interface`,e[e.Function=12]=`Function`,e[e.Variable=13]=`Variable`,e[e.Constant=14]=`Constant`,e[e.String=15]=`String`,e[e.Number=16]=`Number`,e[e.Boolean=17]=`Boolean`,e[e.Array=18]=`Array`,e[e.Object=19]=`Object`,e[e.Key=20]=`Key`,e[e.Null=21]=`Null`,e[e.EnumMember=22]=`EnumMember`,e[e.Struct=23]=`Struct`,e[e.Event=24]=`Event`,e[e.Operator=25]=`Operator`,e[e.TypeParameter=26]=`TypeParameter`,e})({}),Mn=(function(e){return e[e.Deprecated=1]=`Deprecated`,e})({}),Nn=(function(e){return e[e.Type=1]=`Type`,e[e.Parameter=2]=`Parameter`,e})({}),Pn=(function(e){return e[e.None=0]=`None`,e[e.Full=1]=`Full`,e[e.Incremental=2]=`Incremental`,e})({}),q=(function(e){return e[e.Text=1]=`Text`,e[e.Method=2]=`Method`,e[e.Function=3]=`Function`,e[e.Constructor=4]=`Constructor`,e[e.Field=5]=`Field`,e[e.Variable=6]=`Variable`,e[e.Class=7]=`Class`,e[e.Interface=8]=`Interface`,e[e.Module=9]=`Module`,e[e.Property=10]=`Property`,e[e.Unit=11]=`Unit`,e[e.Value=12]=`Value`,e[e.Enum=13]=`Enum`,e[e.Keyword=14]=`Keyword`,e[e.Snippet=15]=`Snippet`,e[e.Color=16]=`Color`,e[e.File=17]=`File`,e[e.Reference=18]=`Reference`,e[e.Folder=19]=`Folder`,e[e.EnumMember=20]=`EnumMember`,e[e.Constant=21]=`Constant`,e[e.Struct=22]=`Struct`,e[e.Event=23]=`Event`,e[e.Operator=24]=`Operator`,e[e.TypeParameter=25]=`TypeParameter`,e})({}),Fn=(function(e){return e[e.Deprecated=1]=`Deprecated`,e})({}),In=(function(e){return e[e.PlainText=1]=`PlainText`,e[e.Snippet=2]=`Snippet`,e})({}),Ln=(function(e){return e[e.Text=1]=`Text`,e[e.Read=2]=`Read`,e[e.Write=3]=`Write`,e})({}),Rn=(function(e){return e.Empty=``,e.QuickFix=`quickfix`,e.Refactor=`refactor`,e.RefactorExtract=`refactor.extract`,e.RefactorInline=`refactor.inline`,e.RefactorRewrite=`refactor.rewrite`,e.Source=`source`,e.SourceOrganizeImports=`source.organizeImports`,e.SourceFixAll=`source.fixAll`,e})({}),zn=(function(e){return e.PlainText=`plaintext`,e.Markdown=`markdown`,e})({}),Bn=(function(e){return e[e.Error=1]=`Error`,e[e.Warning=2]=`Warning`,e[e.Information=3]=`Information`,e[e.Hint=4]=`Hint`,e})({}),Vn=(function(e){return e[e.Unnecessary=1]=`Unnecessary`,e[e.Deprecated=2]=`Deprecated`,e})({}),Hn=(function(e){return e[e.Invoked=1]=`Invoked`,e[e.TriggerCharacter=2]=`TriggerCharacter`,e[e.TriggerForIncompleteCompletions=3]=`TriggerForIncompleteCompletions`,e})({}),Un=(function(e){return e[e.Invoked=1]=`Invoked`,e[e.TriggerCharacter=2]=`TriggerCharacter`,e[e.ContentChange=3]=`ContentChange`,e})({}),Wn=(function(e){return e[e.Invoked=1]=`Invoked`,e[e.Automatic=2]=`Automatic`,e})({}),Gn=(function(e){return e.Relative=`relative`,e})({}),J=class{constructor(e){this.method=e}},Y={textDocumentImplementation:new J(`textDocument/implementation`),textDocumentTypeDefinition:new J(`textDocument/typeDefinition`),textDocumentDocumentColor:new J(`textDocument/documentColor`),textDocumentColorPresentation:new J(`textDocument/colorPresentation`),textDocumentFoldingRange:new J(`textDocument/foldingRange`),textDocumentDeclaration:new J(`textDocument/declaration`),textDocumentSelectionRange:new J(`textDocument/selectionRange`),textDocumentPrepareCallHierarchy:new J(`textDocument/prepareCallHierarchy`),textDocumentSemanticTokensFull:new J(`textDocument/semanticTokens/full`),textDocumentSemanticTokensFullDelta:new J(`textDocument/semanticTokens/full/delta`),textDocumentLinkedEditingRange:new J(`textDocument/linkedEditingRange`),workspaceWillCreateFiles:new J(`workspace/willCreateFiles`),workspaceWillRenameFiles:new J(`workspace/willRenameFiles`),workspaceWillDeleteFiles:new J(`workspace/willDeleteFiles`),textDocumentMoniker:new J(`textDocument/moniker`),textDocumentPrepareTypeHierarchy:new J(`textDocument/prepareTypeHierarchy`),textDocumentInlineValue:new J(`textDocument/inlineValue`),textDocumentInlayHint:new J(`textDocument/inlayHint`),textDocumentDiagnostic:new J(`textDocument/diagnostic`),textDocumentInlineCompletion:new J(`textDocument/inlineCompletion`),textDocumentWillSaveWaitUntil:new J(`textDocument/willSaveWaitUntil`),textDocumentCompletion:new J(`textDocument/completion`),textDocumentHover:new J(`textDocument/hover`),textDocumentSignatureHelp:new J(`textDocument/signatureHelp`),textDocumentDefinition:new J(`textDocument/definition`),textDocumentReferences:new J(`textDocument/references`),textDocumentDocumentHighlight:new J(`textDocument/documentHighlight`),textDocumentDocumentSymbol:new J(`textDocument/documentSymbol`),textDocumentCodeAction:new J(`textDocument/codeAction`),workspaceSymbol:new J(`workspace/symbol`),textDocumentCodeLens:new J(`textDocument/codeLens`),textDocumentDocumentLink:new J(`textDocument/documentLink`),textDocumentFormatting:new J(`textDocument/formatting`),textDocumentRangeFormatting:new J(`textDocument/rangeFormatting`),textDocumentRangesFormatting:new J(`textDocument/rangesFormatting`),textDocumentOnTypeFormatting:new J(`textDocument/onTypeFormatting`),textDocumentRename:new J(`textDocument/rename`),workspaceExecuteCommand:new J(`workspace/executeCommand`),workspaceDidCreateFiles:new J(`workspace/didCreateFiles`),workspaceDidRenameFiles:new J(`workspace/didRenameFiles`),workspaceDidDeleteFiles:new J(`workspace/didDeleteFiles`),workspaceDidChangeConfiguration:new J(`workspace/didChangeConfiguration`),textDocumentDidOpen:new J(`textDocument/didOpen`),textDocumentDidChange:new J(`textDocument/didChange`),textDocumentDidClose:new J(`textDocument/didClose`),textDocumentDidSave:new J(`textDocument/didSave`),textDocumentWillSave:new J(`textDocument/willSave`),workspaceDidChangeWatchedFiles:new J(`workspace/didChangeWatchedFiles`)},Kn=On({server:{textDocumentImplementation:W({method:`textDocument/implementation`}),textDocumentTypeDefinition:W({method:`textDocument/typeDefinition`}),textDocumentDocumentColor:W({method:`textDocument/documentColor`}),textDocumentColorPresentation:W({method:`textDocument/colorPresentation`}),textDocumentFoldingRange:W({method:`textDocument/foldingRange`}),textDocumentDeclaration:W({method:`textDocument/declaration`}),textDocumentSelectionRange:W({method:`textDocument/selectionRange`}),textDocumentPrepareCallHierarchy:W({method:`textDocument/prepareCallHierarchy`}),callHierarchyIncomingCalls:W({method:`callHierarchy/incomingCalls`}),callHierarchyOutgoingCalls:W({method:`callHierarchy/outgoingCalls`}),textDocumentSemanticTokensFull:W({method:`textDocument/semanticTokens/full`}),textDocumentSemanticTokensFullDelta:W({method:`textDocument/semanticTokens/full/delta`}),textDocumentSemanticTokensRange:W({method:`textDocument/semanticTokens/range`}),textDocumentLinkedEditingRange:W({method:`textDocument/linkedEditingRange`}),workspaceWillCreateFiles:W({method:`workspace/willCreateFiles`}),workspaceWillRenameFiles:W({method:`workspace/willRenameFiles`}),workspaceWillDeleteFiles:W({method:`workspace/willDeleteFiles`}),textDocumentMoniker:W({method:`textDocument/moniker`}),textDocumentPrepareTypeHierarchy:W({method:`textDocument/prepareTypeHierarchy`}),typeHierarchySupertypes:W({method:`typeHierarchy/supertypes`}),typeHierarchySubtypes:W({method:`typeHierarchy/subtypes`}),textDocumentInlineValue:W({method:`textDocument/inlineValue`}),textDocumentInlayHint:W({method:`textDocument/inlayHint`}),inlayHintResolve:W({method:`inlayHint/resolve`}),textDocumentDiagnostic:W({method:`textDocument/diagnostic`}),workspaceDiagnostic:W({method:`workspace/diagnostic`}),textDocumentInlineCompletion:W({method:`textDocument/inlineCompletion`}),initialize:W({method:`initialize`}),shutdown:W({method:`shutdown`}),textDocumentWillSaveWaitUntil:W({method:`textDocument/willSaveWaitUntil`}),textDocumentCompletion:W({method:`textDocument/completion`}),completionItemResolve:W({method:`completionItem/resolve`}),textDocumentHover:W({method:`textDocument/hover`}),textDocumentSignatureHelp:W({method:`textDocument/signatureHelp`}),textDocumentDefinition:W({method:`textDocument/definition`}),textDocumentReferences:W({method:`textDocument/references`}),textDocumentDocumentHighlight:W({method:`textDocument/documentHighlight`}),textDocumentDocumentSymbol:W({method:`textDocument/documentSymbol`}),textDocumentCodeAction:W({method:`textDocument/codeAction`}),codeActionResolve:W({method:`codeAction/resolve`}),workspaceSymbol:W({method:`workspace/symbol`}),workspaceSymbolResolve:W({method:`workspaceSymbol/resolve`}),textDocumentCodeLens:W({method:`textDocument/codeLens`}),codeLensResolve:W({method:`codeLens/resolve`}),textDocumentDocumentLink:W({method:`textDocument/documentLink`}),documentLinkResolve:W({method:`documentLink/resolve`}),textDocumentFormatting:W({method:`textDocument/formatting`}),textDocumentRangeFormatting:W({method:`textDocument/rangeFormatting`}),textDocumentRangesFormatting:W({method:`textDocument/rangesFormatting`}),textDocumentOnTypeFormatting:W({method:`textDocument/onTypeFormatting`}),textDocumentRename:W({method:`textDocument/rename`}),textDocumentPrepareRename:W({method:`textDocument/prepareRename`}),workspaceExecuteCommand:W({method:`workspace/executeCommand`}),workspaceDidChangeWorkspaceFolders:G({method:`workspace/didChangeWorkspaceFolders`}),windowWorkDoneProgressCancel:G({method:`window/workDoneProgress/cancel`}),workspaceDidCreateFiles:G({method:`workspace/didCreateFiles`}),workspaceDidRenameFiles:G({method:`workspace/didRenameFiles`}),workspaceDidDeleteFiles:G({method:`workspace/didDeleteFiles`}),notebookDocumentDidOpen:G({method:`notebookDocument/didOpen`}),notebookDocumentDidChange:G({method:`notebookDocument/didChange`}),notebookDocumentDidSave:G({method:`notebookDocument/didSave`}),notebookDocumentDidClose:G({method:`notebookDocument/didClose`}),initialized:G({method:`initialized`}),exit:G({method:`exit`}),workspaceDidChangeConfiguration:G({method:`workspace/didChangeConfiguration`}),textDocumentDidOpen:G({method:`textDocument/didOpen`}),textDocumentDidChange:G({method:`textDocument/didChange`}),textDocumentDidClose:G({method:`textDocument/didClose`}),textDocumentDidSave:G({method:`textDocument/didSave`}),textDocumentWillSave:G({method:`textDocument/willSave`}),workspaceDidChangeWatchedFiles:G({method:`workspace/didChangeWatchedFiles`}),setTrace:G({method:`$/setTrace`}),cancelRequest:G({method:`$/cancelRequest`}),progress:G({method:`$/progress`})},client:{workspaceWorkspaceFolders:W({method:`workspace/workspaceFolders`}).optional(),workspaceConfiguration:W({method:`workspace/configuration`}).optional(),workspaceFoldingRangeRefresh:W({method:`workspace/foldingRange/refresh`}).optional(),windowWorkDoneProgressCreate:W({method:`window/workDoneProgress/create`}).optional(),workspaceSemanticTokensRefresh:W({method:`workspace/semanticTokens/refresh`}).optional(),windowShowDocument:W({method:`window/showDocument`}).optional(),workspaceInlineValueRefresh:W({method:`workspace/inlineValue/refresh`}).optional(),workspaceInlayHintRefresh:W({method:`workspace/inlayHint/refresh`}).optional(),workspaceDiagnosticRefresh:W({method:`workspace/diagnostic/refresh`}).optional(),clientRegisterCapability:W({method:`client/registerCapability`}).optional(),clientUnregisterCapability:W({method:`client/unregisterCapability`}).optional(),windowShowMessageRequest:W({method:`window/showMessageRequest`}).optional(),workspaceCodeLensRefresh:W({method:`workspace/codeLens/refresh`}).optional(),workspaceApplyEdit:W({method:`workspace/applyEdit`}).optional(),windowShowMessage:G({method:`window/showMessage`}),windowLogMessage:G({method:`window/logMessage`}),telemetryEvent:G({method:`telemetry/event`}),textDocumentPublishDiagnostics:G({method:`textDocument/publishDiagnostics`}),logTrace:G({method:`$/logTrace`}),cancelRequest:G({method:`$/cancelRequest`}),progress:G({method:`$/progress`})}});function qn(e,t){if(e.textModel!==t)throw Error(`Expected text model to be ${t}, but got ${e.textModel}`);return e}var X=(tn=class{constructor(){U(this,`_store`,new Jn)}dispose(){this._store.dispose()}_register(e){if(e===this)throw Error(`Cannot register a disposable on itself!`);return this._store.add(e)}},U(tn,`None`,Object.freeze({dispose(){}})),tn),Jn=(nn=class{constructor(){U(this,`_toDispose`,new Set),U(this,`_isDisposed`,!1)}dispose(){this._isDisposed||(this._isDisposed=!0,this.clear())}clear(){if(this._toDispose.size!==0)try{for(let e of this._toDispose)e.dispose()}finally{this._toDispose.clear()}}add(e){if(!e)return e;if(e===this)throw Error(`Cannot register a disposable on itself!`);return this._isDisposed?nn.DISABLE_DISPOSED_WARNING||console.warn(Error(`Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!`).stack):this._toDispose.add(e),e}},U(nn,`DISABLE_DISPOSED_WARNING`,!1),nn),Yn=new Map([[Rn.Empty,``],[Rn.QuickFix,`quickfix`],[Rn.Refactor,`refactor`],[Rn.RefactorExtract,`refactor.extract`],[Rn.RefactorInline,`refactor.inline`],[Rn.RefactorRewrite,`refactor.rewrite`],[Rn.Source,`source`],[Rn.SourceOrganizeImports,`source.organizeImports`],[Rn.SourceFixAll,`source.fixAll`]]);function Xn(e){if(e)return Yn.get(e)??e}var Zn=new Map([[a.CodeActionTriggerType.Invoke,Wn.Invoked],[a.CodeActionTriggerType.Auto,Wn.Automatic]]);function Qn(e){return Zn.get(e)??Wn.Invoked}var $n=new Map([[q.Text,a.CompletionItemKind.Text],[q.Method,a.CompletionItemKind.Method],[q.Function,a.CompletionItemKind.Function],[q.Constructor,a.CompletionItemKind.Constructor],[q.Field,a.CompletionItemKind.Field],[q.Variable,a.CompletionItemKind.Variable],[q.Class,a.CompletionItemKind.Class],[q.Interface,a.CompletionItemKind.Interface],[q.Module,a.CompletionItemKind.Module],[q.Property,a.CompletionItemKind.Property],[q.Unit,a.CompletionItemKind.Unit],[q.Value,a.CompletionItemKind.Value],[q.Enum,a.CompletionItemKind.Enum],[q.Keyword,a.CompletionItemKind.Keyword],[q.Snippet,a.CompletionItemKind.Snippet],[q.Color,a.CompletionItemKind.Color],[q.File,a.CompletionItemKind.File],[q.Reference,a.CompletionItemKind.Reference],[q.Folder,a.CompletionItemKind.Folder],[q.EnumMember,a.CompletionItemKind.EnumMember],[q.Constant,a.CompletionItemKind.Constant],[q.Struct,a.CompletionItemKind.Struct],[q.Event,a.CompletionItemKind.Event],[q.Operator,a.CompletionItemKind.Operator],[q.TypeParameter,a.CompletionItemKind.TypeParameter]]);function er(e){return e?$n.get(e)??a.CompletionItemKind.Text:a.CompletionItemKind.Text}var tr=new Map([[Fn.Deprecated,a.CompletionItemTag.Deprecated]]);function nr(e){return tr.get(e)}var rr=new Map([[a.CompletionTriggerKind.Invoke,Hn.Invoked],[a.CompletionTriggerKind.TriggerCharacter,Hn.TriggerCharacter],[a.CompletionTriggerKind.TriggerForIncompleteCompletions,Hn.TriggerForIncompleteCompletions]]);function ir(e){return rr.get(e)??Hn.Invoked}var ar=new Map([[In.Snippet,a.CompletionItemInsertTextRule.InsertAsSnippet]]);function or(e){if(e)return ar.get(e)}var sr=new Map([[K.File,a.SymbolKind.File],[K.Module,a.SymbolKind.Module],[K.Namespace,a.SymbolKind.Namespace],[K.Package,a.SymbolKind.Package],[K.Class,a.SymbolKind.Class],[K.Method,a.SymbolKind.Method],[K.Property,a.SymbolKind.Property],[K.Field,a.SymbolKind.Field],[K.Constructor,a.SymbolKind.Constructor],[K.Enum,a.SymbolKind.Enum],[K.Interface,a.SymbolKind.Interface],[K.Function,a.SymbolKind.Function],[K.Variable,a.SymbolKind.Variable],[K.Constant,a.SymbolKind.Constant],[K.String,a.SymbolKind.String],[K.Number,a.SymbolKind.Number],[K.Boolean,a.SymbolKind.Boolean],[K.Array,a.SymbolKind.Array],[K.Object,a.SymbolKind.Object],[K.Key,a.SymbolKind.Key],[K.Null,a.SymbolKind.Null],[K.EnumMember,a.SymbolKind.EnumMember],[K.Struct,a.SymbolKind.Struct],[K.Event,a.SymbolKind.Event],[K.Operator,a.SymbolKind.Operator],[K.TypeParameter,a.SymbolKind.TypeParameter]]);function cr(e){return sr.get(e)??a.SymbolKind.File}var lr=new Map([[Mn.Deprecated,a.SymbolTag.Deprecated]]);function ur(e){return lr.get(e)}var dr=new Map([[Ln.Text,a.DocumentHighlightKind.Text],[Ln.Read,a.DocumentHighlightKind.Read],[Ln.Write,a.DocumentHighlightKind.Write]]);function fr(e){return e?dr.get(e)??a.DocumentHighlightKind.Text:a.DocumentHighlightKind.Text}var pr=new Map([[jn.Comment,a.FoldingRangeKind.Comment],[jn.Imports,a.FoldingRangeKind.Imports],[jn.Region,a.FoldingRangeKind.Region]]);function mr(e){if(e)return pr.get(e)}var hr=new Map([[e.Error,Bn.Error],[e.Warning,Bn.Warning],[e.Info,Bn.Information],[e.Hint,Bn.Hint]]);function gr(e){return hr.get(e)??Bn.Error}var _r=new Map([[Bn.Error,e.Error],[Bn.Warning,e.Warning],[Bn.Information,e.Info],[Bn.Hint,e.Hint]]);function vr(t){return t?_r.get(t)??e.Error:e.Error}var yr=new Map([[Vn.Unnecessary,u.Unnecessary],[Vn.Deprecated,u.Deprecated]]);function br(e){return yr.get(e)}var xr=new Map([[a.SignatureHelpTriggerKind.Invoke,Un.Invoked],[a.SignatureHelpTriggerKind.TriggerCharacter,Un.TriggerCharacter],[a.SignatureHelpTriggerKind.ContentChange,Un.ContentChange]]);function Sr(e){return xr.get(e)??Un.Invoked}function Cr(e){if(e)return{id:e.command,title:e.title,arguments:e.arguments}}var wr=new Map([[Nn.Type,a.InlayHintKind.Type],[Nn.Parameter,a.InlayHintKind.Parameter]]);function Tr(e){return e?wr.get(e)??a.InlayHintKind.Type:a.InlayHintKind.Type}function Er(e,t){if(`targetUri`in e){let n=t.bridge.translateBackRange({uri:e.targetUri},e.targetRange);return{uri:n.textModel.uri,range:n.range,originSelectionRange:e.originSelectionRange?t.bridge.translateBackRange({uri:e.targetUri},e.originSelectionRange).range:void 0,targetSelectionRange:e.targetSelectionRange?t.bridge.translateBackRange({uri:e.targetUri},e.targetSelectionRange).range:void 0}}else{let n=t.bridge.translateBackRange({uri:e.uri},e.range);return{uri:n.textModel.uri,range:n.range}}}function Z(e){return!e||e.length===0?{language:`*`}:e.map(e=>`notebook`in e?typeof e.notebook==`string`?{notebookType:e.notebook,language:e.language}:{notebookType:e.notebook.notebookType,language:e.language,pattern:e.notebook.pattern,scheme:e.notebook.scheme}:{language:e.language,pattern:e.pattern,scheme:e.scheme})}function Dr(e,t){if(!t)return!0;let n=e.getLanguageId();if(e.uri.toString(!0),!t||t.length===0)return!0;for(let e of t)if(!(e.language&&e.language!==`*`&&e.language!==n))return!0;return!1}function Or(e){let t={severity:vr(e.severity),startLineNumber:e.range.start.line+1,startColumn:e.range.start.character+1,endLineNumber:e.range.end.line+1,endColumn:e.range.end.character+1,message:e.message,source:e.source,code:typeof e.code==`string`?e.code:e.code?.toString()};return e.tags&&(t.tags=e.tags.map(e=>br(e)).filter(e=>e!==void 0)),e.relatedInformation&&(t.relatedInformation=e.relatedInformation.map(e=>({resource:r.parse(e.location.uri),startLineNumber:e.location.range.start.line+1,startColumn:e.location.range.start.character+1,endLineNumber:e.location.range.end.line+1,endColumn:e.location.range.end.character+1,message:e.message}))),t}var kr=class extends X{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{completion:{dynamicRegistration:!0,contextSupport:!0,completionItemKind:{valueSet:Array.from($n.keys())},completionItem:{tagSupport:{valueSet:Array.from(tr.keys())},commitCharactersSupport:!0,deprecatedSupport:!0,preselectSupport:!0}}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Y.textDocumentCompletion,!0,e=>a.registerCompletionItemProvider(Z(e.documentSelector),new Ar(this._connection,e))))}},Ar=class{constructor(e,t){U(this,`resolveCompletionItem`),this._client=e,this._capabilities=t,t.resolveProvider&&(this.resolveCompletionItem=async(e,t)=>(Mr(e,await this._client.server.completionItemResolve(e._lspItem),this._client.bridge,e._translated,e._model),e))}get triggerCharacters(){return this._capabilities.triggerCharacters}async provideCompletionItems(e,t,n,r){let i=this._client.bridge.translate(e,t),a=await this._client.server.textDocumentCompletion({textDocument:i.textDocument,position:i.position,context:n.triggerCharacter?{triggerKind:ir(n.triggerKind),triggerCharacter:n.triggerCharacter}:void 0});return a?{suggestions:(Array.isArray(a)?a:a.items).map(n=>({...jr(n,this._client.bridge,i,e,t),_lspItem:n,_translated:i,_model:e}))}:{suggestions:[]}}};function jr(e,n,r,i,a){let o=e.insertText||e.label,s;e.textEdit&&(`range`in e.textEdit?(o=e.textEdit.newText,s=qn(n.translateBackRange(r.textDocument,e.textEdit.range),i).range):(o=e.textEdit.newText,s={insert:qn(n.translateBackRange(r.textDocument,e.textEdit.insert),i).range,replace:qn(n.translateBackRange(r.textDocument,e.textEdit.replace),i).range})),s||=t.fromPositions(a,a);let c={label:e.label,kind:er(e.kind),insertText:o,sortText:e.sortText,filterText:e.filterText,preselect:e.preselect,commitCharacters:e.commitCharacters,range:s};return Mr(c,e,n,r,i),c}function Mr(e,t,n,r,i){t.detail!==void 0&&(e.detail=t.detail),t.documentation!==void 0&&(e.documentation=Nr(t.documentation)),t.insertTextFormat!==void 0&&(e.insertTextRules=or(t.insertTextFormat)),t.tags&&t.tags.length>0&&(e.tags=t.tags.map(nr).filter(e=>e!==void 0)),t.additionalTextEdits&&t.additionalTextEdits.length>0&&(e.additionalTextEdits=t.additionalTextEdits.map(e=>({range:qn(n.translateBackRange(r.textDocument,e.range),i).range,text:e.newText}))),t.command&&(e.command=Cr(t.command))}function Nr(e){if(e)return typeof e==`string`?e:{value:e.value,isTrusted:!0}}var Pr=class extends X{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{hover:{dynamicRegistration:!0,contentFormat:[zn.Markdown,zn.PlainText]}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Y.textDocumentHover,!0,e=>a.registerHoverProvider(Z(e.documentSelector),new Fr(this._connection,e))))}},Fr=class{constructor(e,t){this._client=e,this._capabilities=t}async provideHover(e,t,n){let r=this._client.bridge.translate(e,t),i=await this._client.server.textDocumentHover({textDocument:r.textDocument,position:r.position});return!i||!i.contents?null:{contents:Ir(i.contents),range:i.range?this._client.bridge.translateBackRange(r.textDocument,i.range).range:void 0}}};function Ir(e){return Array.isArray(e)?e.map(e=>Lr(e)):[Lr(e)]}function Lr(e){return typeof e==`string`?{value:e,isTrusted:!0}:`kind`in e?{value:e.value,isTrusted:!0}:{value:`\`\`\`${e.language} +${e.value} +\`\`\``,isTrusted:!0}}var Rr=class extends X{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{signatureHelp:{dynamicRegistration:!0,contextSupport:!0,signatureInformation:{documentationFormat:[zn.Markdown,zn.PlainText],parameterInformation:{labelOffsetSupport:!0},activeParameterSupport:!0}}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Y.textDocumentSignatureHelp,!0,e=>a.registerSignatureHelpProvider(Z(e.documentSelector),new zr(this._connection,e))))}},zr=class{constructor(e,t){U(this,`signatureHelpTriggerCharacters`),U(this,`signatureHelpRetriggerCharacters`),this._client=e,this._capabilities=t,this.signatureHelpTriggerCharacters=t.triggerCharacters,this.signatureHelpRetriggerCharacters=t.retriggerCharacters}async provideSignatureHelp(e,t,n,r){let i=this._client.bridge.translate(e,t),a=await this._client.server.textDocumentSignatureHelp({textDocument:i.textDocument,position:i.position,context:{triggerKind:Sr(r.triggerKind),triggerCharacter:r.triggerCharacter,isRetrigger:r.isRetrigger}});return a?{value:{signatures:a.signatures.map(e=>({label:e.label,documentation:Br(e.documentation),parameters:e.parameters?.map(e=>({label:e.label,documentation:Br(e.documentation)}))||[],activeParameter:e.activeParameter})),activeSignature:a.activeSignature||0,activeParameter:a.activeParameter||0},dispose:()=>{}}:null}};function Br(e){if(e)return typeof e==`string`?e:{value:e.value,isTrusted:!0}}var Vr=class extends X{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{definition:{dynamicRegistration:!0,linkSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Y.textDocumentDefinition,!0,e=>a.registerDefinitionProvider(Z(e.documentSelector),new Hr(this._connection,e))))}},Hr=class{constructor(e,t){this._client=e,this._capabilities=t}async provideDefinition(e,t,n){let r=this._client.bridge.translate(e,t),i=await this._client.server.textDocumentDefinition({textDocument:r.textDocument,position:r.position});return i?Array.isArray(i)?i.map(e=>Er(e,this._client)):Er(i,this._client):null}},Ur=class extends X{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{declaration:{dynamicRegistration:!0,linkSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Y.textDocumentDeclaration,!0,e=>a.registerDeclarationProvider(Z(e.documentSelector),new Wr(this._connection,e))))}},Wr=class{constructor(e,t){this._client=e,this._capabilities=t}async provideDeclaration(e,t,n){let r=this._client.bridge.translate(e,t),i=await this._client.server.textDocumentDeclaration({textDocument:r.textDocument,position:r.position});return i?Array.isArray(i)?i.map(e=>Er(e,this._client)):Er(i,this._client):null}},Gr=class extends X{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{typeDefinition:{dynamicRegistration:!0,linkSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Y.textDocumentTypeDefinition,!0,e=>a.registerTypeDefinitionProvider(Z(e.documentSelector),new Kr(this._connection,e))))}},Kr=class{constructor(e,t){this._client=e,this._capabilities=t}async provideTypeDefinition(e,t,n){let r=this._client.bridge.translate(e,t),i=await this._client.server.textDocumentTypeDefinition({textDocument:r.textDocument,position:r.position});return i?Array.isArray(i)?i.map(e=>Er(e,this._client)):Er(i,this._client):null}},qr=class extends X{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{implementation:{dynamicRegistration:!0,linkSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Y.textDocumentImplementation,!0,e=>a.registerImplementationProvider(Z(e.documentSelector),new Jr(this._connection,e))))}},Jr=class{constructor(e,t){this._client=e,this._capabilities=t}async provideImplementation(e,t,n){let r=this._client.bridge.translate(e,t),i=await this._client.server.textDocumentImplementation({textDocument:r.textDocument,position:r.position});return i?Array.isArray(i)?i.map(e=>Er(e,this._client)):Er(i,this._client):null}},Yr=class extends X{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{references:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Y.textDocumentReferences,!0,e=>a.registerReferenceProvider(Z(e.documentSelector),new Xr(this._connection,e))))}},Xr=class{constructor(e,t){this._client=e,this._capabilities=t}async provideReferences(e,t,n,r){let i=this._client.bridge.translate(e,t),a=await this._client.server.textDocumentReferences({textDocument:i.textDocument,position:i.position,context:{includeDeclaration:n.includeDeclaration}});return a?a.map(e=>{let t=this._client.bridge.translateBackRange({uri:e.uri},e.range);return{uri:t.textModel.uri,range:t.range}}):null}},Zr=class extends X{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{documentHighlight:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Y.textDocumentDocumentHighlight,!0,e=>a.registerDocumentHighlightProvider(Z(e.documentSelector),new Qr(this._connection,e))))}},Qr=class{constructor(e,t){this._client=e,this._capabilities=t}async provideDocumentHighlights(e,t,n){let r=this._client.bridge.translate(e,t),i=await this._client.server.textDocumentDocumentHighlight({textDocument:r.textDocument,position:r.position});return i?i.map(e=>({range:this._client.bridge.translateBackRange(r.textDocument,e.range).range,kind:fr(e.kind)})):null}},$r=class extends X{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{documentSymbol:{dynamicRegistration:!0,hierarchicalDocumentSymbolSupport:!0,symbolKind:{valueSet:Array.from(sr.keys())},tagSupport:{valueSet:[Mn.Deprecated]}}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Y.textDocumentDocumentSymbol,!0,e=>a.registerDocumentSymbolProvider(Z(e.documentSelector),new ei(this._connection,e))))}},ei=class{constructor(e,t){this._client=e,this._capabilities=t}async provideDocumentSymbols(e,t){let n=this._client.bridge.translate(e,new p(1,1)),r=await this._client.server.textDocumentDocumentSymbol({textDocument:n.textDocument});return r?Array.isArray(r)&&r.length>0?`location`in r[0]?r.map(e=>ni(e,this._client)):r.map(e=>ti(e,this._client,n.textDocument)):[]:null}};function ti(e,t,n){return{name:e.name,detail:e.detail||``,kind:cr(e.kind),tags:e.tags?.map(e=>ur(e)).filter(e=>e!==void 0)||[],range:t.bridge.translateBackRange(n,e.range).range,selectionRange:t.bridge.translateBackRange(n,e.selectionRange).range,children:e.children?.map(e=>ti(e,t,n))||[]}}function ni(e,t){return{name:e.name,detail:``,kind:cr(e.kind),tags:e.tags?.map(e=>ur(e)).filter(e=>e!==void 0)||[],range:t.bridge.translateBackRange({uri:e.location.uri},e.location.range).range,selectionRange:t.bridge.translateBackRange({uri:e.location.uri},e.location.range).range,children:[]}}var ri=class extends X{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{rename:{dynamicRegistration:!0,prepareSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Y.textDocumentRename,!0,e=>a.registerRenameProvider(Z(e.documentSelector),new ii(this._connection,e))))}},ii=class{constructor(e,t){this._client=e,this._capabilities=t}async provideRenameEdits(e,t,n,r){let i=this._client.bridge.translate(e,t),a=await this._client.server.textDocumentRename({textDocument:i.textDocument,position:i.position,newName:n});return a?ai(a,this._client):null}async resolveRenameLocation(e,t,n){if(!this._capabilities.prepareProvider)return null;let r=this._client.bridge.translate(e,t),i=await this._client.server.textDocumentPrepareRename({textDocument:r.textDocument,position:r.position});if(!i)return null;if(`range`in i&&`placeholder`in i)return{range:this._client.bridge.translateBackRange(r.textDocument,i.range).range,text:i.placeholder};if(`defaultBehavior`in i)return null;if(`start`in i&&`end`in i){let t=this._client.bridge.translateBackRange(r.textDocument,i).range;return{range:t,text:e.getValueInRange(t)}}return null}};function ai(e,t){let n=[];if(e.changes)for(let r in e.changes){let i=e.changes[r];for(let e of i){let i=t.bridge.translateBackRange({uri:r},e.range);n.push({resource:i.textModel.uri,versionId:void 0,textEdit:{range:i.range,text:e.newText}})}}if(e.documentChanges){for(let r of e.documentChanges)if(`textDocument`in r){let e=r.textDocument.uri;for(let i of r.edits){let a=t.bridge.translateBackRange({uri:e},i.range);n.push({resource:a.textModel.uri,versionId:r.textDocument.version,textEdit:{range:a.range,text:i.newText}})}}}return{edits:n}}var oi=class extends X{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{codeAction:{dynamicRegistration:!0,codeActionLiteralSupport:{codeActionKind:{valueSet:Array.from(Yn.keys())}},isPreferredSupport:!0,disabledSupport:!0,dataSupport:!0,resolveSupport:{properties:[`edit`]}}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Y.textDocumentCodeAction,!0,e=>a.registerCodeActionProvider(Z(e.documentSelector),new si(this._connection,e))))}},si=class{constructor(e,t){U(this,`resolveCodeAction`),this._client=e,this._capabilities=t,t.resolveProvider&&(this.resolveCodeAction=async(e,t)=>{if(e._lspAction){let t=await this._client.server.codeActionResolve(e._lspAction);t.edit&&(e.edit=ci(t.edit,this._client)),t.command&&(e.command=Cr(t.command))}return e})}async provideCodeActions(e,n,r,i){let a=this._client.bridge.translate(e,n.getStartPosition()),o=await this._client.server.textDocumentCodeAction({textDocument:a.textDocument,range:this._client.bridge.translateRange(e,n),context:{diagnostics:r.markers.map(n=>({range:this._client.bridge.translateRange(e,t.lift(n)),message:n.message,severity:gr(n.severity)})),triggerKind:Qn(r.trigger)}});return o?{actions:(Array.isArray(o)?o:[o]).map(e=>{if(`title`in e&&!(`kind`in e)){let t=e;return{title:t.title,command:Cr(t)}}else{let t=e;return{title:t.title,kind:Xn(t.kind),isPreferred:t.isPreferred,disabled:t.disabled?.reason,edit:t.edit?ci(t.edit,this._client):void 0,command:Cr(t.command),_lspAction:t}}}),dispose:()=>{}}:null}};function ci(e,t){let n=[];if(e.changes)for(let r in e.changes){let i=e.changes[r];for(let e of i){let i=t.bridge.translateBackRange({uri:r},e.range);n.push({resource:i.textModel.uri,versionId:void 0,textEdit:{range:i.range,text:e.newText}})}}if(e.documentChanges){for(let r of e.documentChanges)if(`textDocument`in r){let e=r.textDocument.uri;for(let i of r.edits){let a=t.bridge.translateBackRange({uri:e},i.range);n.push({resource:a.textModel.uri,versionId:r.textDocument.version??void 0,textEdit:{range:a.range,text:i.newText}})}}}return{edits:n}}var li=class extends X{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{codeLens:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Y.textDocumentCodeLens,!0,e=>a.registerCodeLensProvider(Z(e.documentSelector),new ui(this._connection,e))))}},ui=class{constructor(e,t){this._client=e,this._capabilities=t}async provideCodeLenses(e,t){let n=this._client.bridge.translate(e,new p(1,1)),r=await this._client.server.textDocumentCodeLens({textDocument:n.textDocument});return r?{lenses:r.map(t=>({range:qn(this._client.bridge.translateBackRange(n.textDocument,t.range),e).range,command:Cr(t.command),_lspCodeLens:t})),dispose:()=>{}}:null}async resolveCodeLens(e,t,n){if(!this._capabilities.resolveProvider||!t._lspCodeLens)return t;let r=await this._client.server.codeLensResolve(t._lspCodeLens);return r.command&&(t.command={id:r.command.command,title:r.command.title,arguments:r.command.arguments}),t}},di=class extends X{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{documentLink:{dynamicRegistration:!0,tooltipSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Y.textDocumentDocumentLink,!0,e=>a.registerLinkProvider(Z(e.documentSelector),new fi(this._connection,e))))}},fi=class{constructor(e,t){this._client=e,this._capabilities=t}async provideLinks(e,t){let n=this._client.bridge.translate(e,new p(1,1)),r=await this._client.server.textDocumentDocumentLink({textDocument:n.textDocument});return r?{links:r.map(e=>({range:this._client.bridge.translateBackRange(n.textDocument,e.range).range,url:e.target,tooltip:e.tooltip}))}:null}async resolveLink(e,t){return this._capabilities.resolveProvider,e}},pi=class extends X{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{formatting:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Y.textDocumentFormatting,!0,e=>a.registerDocumentFormattingEditProvider(Z(e.documentSelector),new mi(this._connection,e))))}},mi=class{constructor(e,t){this._client=e,this._capabilities=t}async provideDocumentFormattingEdits(e,t,n){let r=this._client.bridge.translate(e,new p(1,1)),i=await this._client.server.textDocumentFormatting({textDocument:r.textDocument,options:{tabSize:t.tabSize,insertSpaces:t.insertSpaces}});return i?i.map(e=>({range:this._client.bridge.translateBackRange(r.textDocument,e.range).range,text:e.newText})):null}},hi=class extends X{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{rangeFormatting:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Y.textDocumentRangeFormatting,!0,e=>a.registerDocumentRangeFormattingEditProvider(Z(e.documentSelector),new gi(this._connection,e))))}},gi=class{constructor(e,t){this._client=e,this._capabilities=t}async provideDocumentRangeFormattingEdits(e,t,n,r){let i=this._client.bridge.translate(e,t.getStartPosition()),a=await this._client.server.textDocumentRangeFormatting({textDocument:i.textDocument,range:this._client.bridge.translateRange(e,t),options:{tabSize:n.tabSize,insertSpaces:n.insertSpaces}});return a?a.map(e=>({range:this._client.bridge.translateBackRange(i.textDocument,e.range).range,text:e.newText})):null}},_i=class extends X{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{onTypeFormatting:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Y.textDocumentOnTypeFormatting,!0,e=>a.registerOnTypeFormattingEditProvider(Z(e.documentSelector),new vi(this._connection,e))))}},vi=class{constructor(e,t){U(this,`autoFormatTriggerCharacters`),this._client=e,this._capabilities=t,this.autoFormatTriggerCharacters=[t.firstTriggerCharacter,...t.moreTriggerCharacter||[]]}async provideOnTypeFormattingEdits(e,t,n,r,i){let a=this._client.bridge.translate(e,t),o=await this._client.server.textDocumentOnTypeFormatting({textDocument:a.textDocument,position:a.position,ch:n,options:{tabSize:r.tabSize,insertSpaces:r.insertSpaces}});return o?o.map(e=>({range:this._client.bridge.translateBackRange(a.textDocument,e.range).range,text:e.newText})):null}},yi=class extends X{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{foldingRange:{dynamicRegistration:!0,rangeLimit:5e3,lineFoldingOnly:!1,foldingRangeKind:{valueSet:[jn.Comment,jn.Imports,jn.Region]}}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Y.textDocumentFoldingRange,!0,e=>a.registerFoldingRangeProvider(Z(e.documentSelector),new bi(this._connection,e))))}},bi=class{constructor(e,t){this._client=e,this._capabilities=t}async provideFoldingRanges(e,t,n){let r=this._client.bridge.translate(e,new p(1,1)),i=await this._client.server.textDocumentFoldingRange({textDocument:r.textDocument});return i?i.map(e=>({start:e.startLine+1,end:e.endLine+1,kind:mr(e.kind)})):null}},xi=class extends X{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{selectionRange:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Y.textDocumentSelectionRange,!0,e=>a.registerSelectionRangeProvider(Z(e.documentSelector),new Si(this._connection,e))))}},Si=class{constructor(e,t){this._client=e,this._capabilities=t}async provideSelectionRanges(e,t,n){let r=this._client.bridge.translate(e,t[0]),i=await this._client.server.textDocumentSelectionRange({textDocument:r.textDocument,positions:t.map(t=>this._client.bridge.translate(e,t).position)});return i?i.map(e=>this.convertSelectionRange(e,r.textDocument)):null}convertSelectionRange(e,t){let n=[],r=e;for(;r;)n.push({range:this._client.bridge.translateBackRange(t,r.range).range}),r=r.parent;return n}},Ci=class extends X{constructor(e){super(),U(this,`_providers`,new Set),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{inlayHint:{dynamicRegistration:!0,resolveSupport:{properties:[`tooltip`,`textEdits`,`label.tooltip`,`label.location`,`label.command`]}}},workspace:{inlayHint:{refreshSupport:!0}}})),this._register(this._connection.connection.registerRequestHandler(Kn.client.workspaceInlayHintRefresh,async()=>{for(let e of this._providers)e.refresh();return{ok:null}})),this._register(this._connection.capabilities.registerCapabilityHandler(Y.textDocumentInlayHint,!0,e=>{let t=new wi(this._connection,e);this._providers.add(t);let n=a.registerInlayHintsProvider(Z(e.documentSelector),t);return{dispose:()=>{this._providers.delete(t),n.dispose()}}}))}},wi=class{constructor(e,t){U(this,`_onDidChangeInlayHints`,new l),U(this,`onDidChangeInlayHints`,this._onDidChangeInlayHints.event),U(this,`resolveInlayHint`),this._client=e,this._capabilities=t,t.resolveProvider&&(this.resolveInlayHint=async(e,t)=>{let n=await this._client.server.inlayHintResolve(e._lspInlayHint);return n.tooltip&&(e.tooltip=Di(n.tooltip)),n.label!==e._lspInlayHint.label&&(e.label=Ei(n.label)),n.textEdits&&(e.textEdits=n.textEdits.map(t=>({range:this._client.bridge.translateBackRange({uri:e._targetUri},t.range).range,text:t.newText}))),e})}refresh(){this._onDidChangeInlayHints.fire()}async provideInlayHints(e,t,n){let r=this._client.bridge.translate(e,t.getStartPosition()),i=await Ti(async()=>await this._client.server.textDocumentInlayHint({textDocument:r.textDocument,range:this._client.bridge.translateRange(e,t)}));return i?{hints:i.map(t=>({label:Ei(t.label),position:qn(this._client.bridge.translateBack(r.textDocument,t.position),e).position,kind:Tr(t.kind),tooltip:Di(t.tooltip),paddingLeft:t.paddingLeft,paddingRight:t.paddingRight,textEdits:t.textEdits?.map(t=>({range:qn(this._client.bridge.translateBackRange(r.textDocument,t.range),e).range,text:t.newText})),_lspInlayHint:t,_targetUri:r.textDocument.uri})),dispose:()=>{}}:null}};async function Ti(e){for(let t=3;;t--)try{return await e()}catch(e){if(e.message===`content modified`&&t>0)continue;throw e}}function Ei(e){return typeof e==`string`?e:e.map(e=>{let n={label:e.value,tooltip:Di(e.tooltip),command:Cr(e.command)};return e.location&&(n.location={uri:r.parse(e.location.uri),range:new t(e.location.range.start.line+1,e.location.range.start.character+1,e.location.range.end.line+1,e.location.range.end.character+1)}),n})}function Di(e){if(e)return typeof e==`string`?e:{value:e.value,isTrusted:!0}}var Oi=class extends X{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{semanticTokens:{dynamicRegistration:!0,requests:{range:!0,full:{delta:!0}},tokenTypes:[`namespace`,`type`,`class`,`enum`,`interface`,`struct`,`typeParameter`,`parameter`,`variable`,`property`,`enumMember`,`event`,`function`,`method`,`macro`,`keyword`,`modifier`,`comment`,`string`,`number`,`regexp`,`operator`,`decorator`],tokenModifiers:[`declaration`,`definition`,`readonly`,`static`,`deprecated`,`abstract`,`async`,`modification`,`documentation`,`defaultLibrary`],formats:[Gn.Relative],overlappingTokenSupport:!1,multilineTokenSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Y.textDocumentSemanticTokensFull,!0,e=>a.registerDocumentSemanticTokensProvider(Z(e.documentSelector),new ki(this._connection,e))))}},ki=class{constructor(e,t){this._client=e,this._capabilities=t}getLegend(){return{tokenTypes:this._capabilities.legend.tokenTypes,tokenModifiers:this._capabilities.legend.tokenModifiers}}releaseDocumentSemanticTokens(e){}async provideDocumentSemanticTokens(e,t,n){let r=this._client.bridge.translate(e,e.getPositionAt(0)),i=this._capabilities.full;if(t&&i&&typeof i==`object`&&i.delta){let e=await this._client.server.textDocumentSemanticTokensFullDelta({textDocument:r.textDocument,previousResultId:t});return e?`edits`in e?{resultId:e.resultId,edits:e.edits.map(e=>({start:e.start,deleteCount:e.deleteCount,data:e.data?new Uint32Array(e.data):void 0}))}:{resultId:e.resultId,data:new Uint32Array(e.data)}:null}let a=await this._client.server.textDocumentSemanticTokensFull({textDocument:r.textDocument});return a?{resultId:a.resultId,data:new Uint32Array(a.data)}:null}async provideDocumentSemanticTokensEdits(e,t,n){return this.provideDocumentSemanticTokens(e,t,n)}},Ai=class extends X{constructor(e){super(),U(this,`_diagnosticsMarkerOwner`,`lsp`),U(this,`_pullDiagnosticProviders`,new Map),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{publishDiagnostics:{relatedInformation:!0,tagSupport:{valueSet:[...yr.keys()]},versionSupport:!0,codeDescriptionSupport:!0,dataSupport:!0},diagnostic:{dynamicRegistration:!0,relatedDocumentSupport:!0}}})),this._register(this._connection.connection.registerNotificationHandler(Kn.client.textDocumentPublishDiagnostics,e=>this._handlePublishDiagnostics(e))),this._register(this._connection.capabilities.registerCapabilityHandler(Y.textDocumentDiagnostic,!0,e=>{let t=new Jn;for(let n of d.getModels())this._addPullDiagnosticProvider(n,e,t);return t.add(d.onDidCreateModel(n=>{this._addPullDiagnosticProvider(n,e,t)})),t}))}_addPullDiagnosticProvider(e,t,n){if(e.getLanguageId(),!Dr(e,t.documentSelector))return;let r=new ji(e,this._connection,this._diagnosticsMarkerOwner,t);this._pullDiagnosticProviders.set(e,r),n.add(r),n.add(e.onWillDispose(()=>{this._pullDiagnosticProviders.delete(e)}))}_handlePublishDiagnostics(e){let t=e.uri;try{let n=this._connection.bridge.translateBack({uri:t},{line:0,character:0}).textModel;if(!n||n.isDisposed())return;let r=e.diagnostics.map(e=>Or(e));d.setModelMarkers(n,this._diagnosticsMarkerOwner,r)}catch(e){console.debug(`Could not set diagnostics for ${t}:`,e)}}},ji=class extends X{constructor(e,t,n,r){super(),U(this,`_updateHandle`),U(this,`_previousResultId`),this._model=e,this._connection=t,this._markerOwner=n,this._capability=r,this._register(this._model.onDidChangeContent(()=>{this._scheduleDiagnosticUpdate()})),this._scheduleDiagnosticUpdate()}_scheduleDiagnosticUpdate(){this._updateHandle!==void 0&&clearTimeout(this._updateHandle),this._updateHandle=window.setTimeout(()=>{this._updateHandle=void 0,this._requestDiagnostics()},500)}async _requestDiagnostics(){if(!this._model.isDisposed())try{let e=this._connection.bridge.translate(this._model,new p(1,1)),t=await this._connection.server.textDocumentDiagnostic({textDocument:e.textDocument,identifier:this._capability.identifier,previousResultId:this._previousResultId});if(this._model.isDisposed())return;this._handleDiagnosticReport(t)}catch(e){console.error(`Error requesting diagnostics:`,e)}}_handleDiagnosticReport(e){if(e.kind===`full`){this._previousResultId=e.resultId;let t=e.items.map(e=>Or(e));d.setModelMarkers(this._model,this._markerOwner,t),`relatedDocuments`in e&&e.relatedDocuments&&this._handleRelatedDocuments(e.relatedDocuments)}else e.kind===`unchanged`&&(this._previousResultId=e.resultId)}_handleRelatedDocuments(e){for(let[t,n]of Object.entries(e))try{let e=this._connection.bridge.translateBack({uri:t},{line:0,character:0}).textModel;if(!e||e.isDisposed())continue;if(n.kind===`full`){let t=n.items.map(e=>Or(e));d.setModelMarkers(e,this._markerOwner,t)}}catch(e){console.debug(`Could not set related diagnostics for ${t}:`,e)}}dispose(){this._updateHandle!==void 0&&(clearTimeout(this._updateHandle),this._updateHandle=void 0),super.dispose()}},Mi=class{constructor(e,t,n,r){this.server=e,this.bridge=t,this.capabilities=n,this.connection=r}},Ni=class extends X{constructor(e){super(),U(this,`_staticCapabilities`,new Set),U(this,`_dynamicFromStatic`,zi.create()),U(this,`_registrations`,new Map),U(this,`_serverCapabilities`),this._connection=e,this._register(this._connection.registerRequestHandler(Kn.client.clientRegisterCapability,async e=>{for(let t of e.registrations){let e=Li(t.method),n=new Fi(t.id,e,t.registerOptions,!1);this._registerCapabilityOptions(n)}return{ok:null}})),this._register(this._connection.registerRequestHandler(Kn.client.clientUnregisterCapability,async e=>{for(let t of e.unregisterations){let e=Li(t.method),n=this._registrations.get(e),r=n?.registrations.get(t.id);if(!r)throw Error(`No registration for method ${t.method} with id ${t.id}`);r?.handlerDisposables.forEach(e=>e.dispose()),n?.registrations.delete(t.id)}return{ok:null}}))}_registerCapabilityOptions(e){let t=this._registrations.get(e.capability);if(t||(t=new Ri,this._registrations.set(e.capability,t)),t.registrations.has(e.id))throw Error(`Handler for method ${e.capability.method} with id ${e.id} already registered`);t.registrations.set(e.id,e);for(let n of t.handlers)!n.handleStaticCapability&&e.isFromStatic||e.handlerDisposables.set(n,n.handler(e.options))}setServerCapabilities(e){if(this._serverCapabilities)throw Error(`Server capabilities already set`);this._serverCapabilities=e;for(let t of Object.values(Y)){let n=this._dynamicFromStatic.getOptions(t,e);n&&this._registerCapabilityOptions(new Fi(t.method,t,n,!0))}}getClientCapabilities(){let e={};for(let t of this._staticCapabilities)Bi(e,t.cap);return e}addStaticClientCapabilities(e){let t={cap:e};return this._staticCapabilities.add(t),{dispose:()=>{this._staticCapabilities.delete(t)}}}registerCapabilityHandler(e,t,n){let r=this._registrations.get(e);r||(r=new Ri,this._registrations.set(e,r));let i=new Pi(e,t,n);r.handlers.add(i);for(let e of r.registrations.values())!i.handleStaticCapability&&e.isFromStatic||e.handlerDisposables.set(i,n(e.options));return{dispose:()=>{r.handlers.delete(i);for(let e of r.registrations.values()){let t=e.handlerDisposables.get(i);t&&(t.dispose(),e.handlerDisposables.delete(i))}}}}},Pi=class{constructor(e,t,n){this.capability=e,this.handleStaticCapability=t,this.handler=n}},Fi=class{constructor(e,t,n,r){U(this,`handlerDisposables`,new Map),this.id=e,this.capability=t,this.options=n,this.isFromStatic=r}},Ii=new Map([...Object.values(Y)].map(e=>[e.method,e]));function Li(e){let t=Ii.get(e);if(!t)throw Error(`No capability found for method ${e}`);return t}var Ri=class{constructor(){U(this,`handlers`,new Set),U(this,`registrations`,new Map)}},zi=class e{constructor(){U(this,`_mappings`,new Map)}static create(){let t=new e;return t.set(Y.textDocumentDidChange,e=>{if(e.textDocumentSync!==void 0)return typeof e.textDocumentSync==`object`?{syncKind:e.textDocumentSync.change??Pn.None,documentSelector:null}:{syncKind:e.textDocumentSync,documentSelector:null}}),t.set(Y.textDocumentCompletion,e=>e.completionProvider),t.set(Y.textDocumentHover,e=>e.hoverProvider),t.set(Y.textDocumentSignatureHelp,e=>e.signatureHelpProvider),t.set(Y.textDocumentDefinition,e=>e.definitionProvider),t.set(Y.textDocumentReferences,e=>e.referencesProvider),t.set(Y.textDocumentDocumentHighlight,e=>e.documentHighlightProvider),t.set(Y.textDocumentDocumentSymbol,e=>e.documentSymbolProvider),t.set(Y.textDocumentCodeAction,e=>e.codeActionProvider),t.set(Y.textDocumentCodeLens,e=>e.codeLensProvider),t.set(Y.textDocumentDocumentLink,e=>e.documentLinkProvider),t.set(Y.textDocumentFormatting,e=>e.documentFormattingProvider),t.set(Y.textDocumentRangeFormatting,e=>e.documentRangeFormattingProvider),t.set(Y.textDocumentOnTypeFormatting,e=>e.documentOnTypeFormattingProvider),t.set(Y.textDocumentRename,e=>e.renameProvider),t.set(Y.textDocumentFoldingRange,e=>e.foldingRangeProvider),t.set(Y.textDocumentDeclaration,e=>e.declarationProvider),t.set(Y.textDocumentTypeDefinition,e=>e.typeDefinitionProvider),t.set(Y.textDocumentImplementation,e=>e.implementationProvider),t.set(Y.textDocumentDocumentColor,e=>e.colorProvider),t.set(Y.textDocumentSelectionRange,e=>e.selectionRangeProvider),t.set(Y.textDocumentLinkedEditingRange,e=>e.linkedEditingRangeProvider),t.set(Y.textDocumentPrepareCallHierarchy,e=>e.callHierarchyProvider),t.set(Y.textDocumentSemanticTokensFull,e=>e.semanticTokensProvider),t.set(Y.textDocumentInlayHint,e=>e.inlayHintProvider),t.set(Y.textDocumentInlineValue,e=>e.inlineValueProvider),t.set(Y.textDocumentDiagnostic,e=>e.diagnosticProvider),t.set(Y.textDocumentMoniker,e=>e.monikerProvider),t.set(Y.textDocumentPrepareTypeHierarchy,e=>e.typeHierarchyProvider),t.set(Y.workspaceSymbol,e=>e.workspaceSymbolProvider),t.set(Y.workspaceExecuteCommand,e=>e.executeCommandProvider),t}set(e,t){if(this._mappings.has(e.method))throw Error(`Capability for method ${e.method} already registered`);this._mappings.set(e.method,t)}getOptions(e,t){let n=this._mappings.get(e.method);if(n)return n(t)}};function Bi(e,t){for(let n of Object.keys(t)){let r=t[n];if(r===void 0)continue;let i=e[n];if(i===void 0){e[n]=r;continue}if(typeof r!=`object`||!r){e[n]=r;continue}if(typeof i!=`object`||!i){e[n]=r;continue}Bi(i,r)}}var Vi=class extends X{constructor(e,t){super(),U(this,`_managedModels`,new Map),U(this,`_managedModelsReverse`,new Map),U(this,`_started`,!1),this._server=e,this._capabilities=t,this._register(this._capabilities.addStaticClientCapabilities({textDocument:{synchronization:{dynamicRegistration:!0,willSave:!1,willSaveWaitUntil:!1,didSave:!1}}})),this._register(t.registerCapabilityHandler(Y.textDocumentDidChange,!0,e=>{if(this._started)return{dispose:()=>{}};this._started=!0,this._register(d.onDidCreateModel(e=>{this._getOrCreateManagedModel(e)}));for(let e of d.getModels())this._getOrCreateManagedModel(e);return{dispose:()=>{}}}))}_getOrCreateManagedModel(e){if(!this._started)throw Error(`Not started`);let t=e.uri.toString(!0).toLowerCase(),n=this._managedModels.get(e);return n||(n=new Hi(e,this._server),this._managedModels.set(e,n),this._managedModelsReverse.set(t,e)),e.onWillDispose(()=>{n.dispose(),this._managedModels.delete(e),this._managedModelsReverse.delete(t)}),n}translateBack(e,t){let n=e.uri.toLowerCase(),r=this._managedModelsReverse.get(n);if(!r)throw Error(`No text model for uri ${n}`);return{textModel:r,position:new p(t.line+1,t.character+1)}}translateBackRange(e,n){let r=e.uri.toLowerCase(),i=this._managedModelsReverse.get(r);if(!i)throw Error(`No text model for uri ${r}`);return{textModel:i,range:new t(n.start.line+1,n.start.character+1,n.end.line+1,n.end.character+1)}}translate(e,t){return{textDocument:{uri:e.uri.toString(!0)},position:{line:t.lineNumber-1,character:t.column-1}}}translateRange(e,t){return{start:{line:t.startLineNumber-1,character:t.startColumn-1},end:{line:t.endLineNumber-1,character:t.endColumn-1}}}},Hi=class extends X{constructor(e,t){super(),this._textModel=e,this._api=t;let n=e.uri.toString(!0).toLowerCase();this._api.textDocumentDidOpen({textDocument:{languageId:e.getLanguageId(),uri:n,version:e.getVersionId(),text:e.getValue()}}),this._register(e.onDidChangeContent(t=>{let r=t.changes.map(e=>Ui(e));this._api.textDocumentDidChange({textDocument:{uri:n,version:e.getVersionId()},contentChanges:r})})),this._register({dispose:()=>{this._api.textDocumentDidClose({textDocument:{uri:n}})}})}};function Ui(e){return{range:Wi(e.range),rangeLength:e.rangeLength,text:e.text}}function Wi(e){return{start:{line:e.startLineNumber-1,character:e.startColumn-1},end:{line:e.endLineNumber-1,character:e.endColumn-1}}}var Gi=class{constructor(e){U(this,`_connection`),U(this,`_capabilitiesRegistry`),U(this,`_bridge`),U(this,`_initPromise`);let t=Sn.fromTransport(e),n=Kn.getServer(t,{});t.startListen(),this._capabilitiesRegistry=new Ni(t),this._bridge=new Vi(n.server,this._capabilitiesRegistry),this._connection=new Mi(n.server,this._bridge,this._capabilitiesRegistry,t),this.createFeatures(),this._initPromise=this._init()}async _init(){let e=await this._connection.server.initialize({processId:null,capabilities:this._capabilitiesRegistry.getClientCapabilities(),rootUri:null});this._connection.server.initialized({}),this._capabilitiesRegistry.setServerCapabilities(e.capabilities)}createFeatures(){let e=new Jn;return e.add(new kr(this._connection)),e.add(new Pr(this._connection)),e.add(new Rr(this._connection)),e.add(new Vr(this._connection)),e.add(new Ur(this._connection)),e.add(new Gr(this._connection)),e.add(new qr(this._connection)),e.add(new Yr(this._connection)),e.add(new Zr(this._connection)),e.add(new $r(this._connection)),e.add(new ri(this._connection)),e.add(new oi(this._connection)),e.add(new li(this._connection)),e.add(new di(this._connection)),e.add(new pi(this._connection)),e.add(new hi(this._connection)),e.add(new _i(this._connection)),e.add(new yi(this._connection)),e.add(new xi(this._connection)),e.add(new Ci(this._connection)),e.add(new Oi(this._connection)),e.add(new Ai(this._connection)),e}},Ki=null;typeof WebSocket<`u`?Ki=WebSocket:typeof MozWebSocket<`u`?Ki=MozWebSocket:typeof global<`u`?Ki=global.WebSocket||global.MozWebSocket:typeof window<`u`?Ki=window.WebSocket||window.MozWebSocket:typeof self<`u`&&(Ki=self.WebSocket||self.MozWebSocket);var qi=Ki;function Ji(e){return`host`in e?{address:`${e.forceTls?`wss`:`ws`}://${e.host}:${e.port}`}:e}var Yi=class e extends fn{constructor(e){super(),U(this,`socket`),U(this,`errorEmitter`,new sn),U(this,`onError`,this.errorEmitter),this.socket=e,e.onmessage=e=>{try{let t=e.data;if(typeof t==`string`){let e=JSON.parse(t);this._dispatchReceivedMessage(e)}else throw Error(`Not supported`)}catch(e){this.errorEmitter.fire({error:e})}},e.onclose=e=>{this._onConnectionClosed()}}static connectTo(t){let n=new qi(Ji(t).address);return new Promise((t,r)=>{n.onerror=e=>{r(e)},n.onopen=()=>{t(new e(n))}})}static fromWebSocket(t){return new e(t)}close(){this.socket.close()}dispose(){this.close()}_sendImpl(e){let t=JSON.stringify(e);return new Promise((e,n)=>{this.socket.send(t,t=>{t?n(t):e()})})}toString(){return`${this.id}@${this.socket.url}`}},Xi=class extends fn{constructor(e,t=void 0,n=void 0){super(),U(this,`_windowLike`),U(this,`_source`),U(this,`_loadingState`),U(this,`_disposed`,!1),U(this,`_messageHandler`,({data:e,source:t})=>{this._source&&t!==this._source||typeof e==`object`&&e&&this._dispatchReceivedMessage(e)}),this._windowLike=e,this._source=t,this._loadingState=n,this._windowLike.addEventListener(`message`,this._messageHandler)}async _sendImpl(e){if(this._disposed)throw Error(`Transport is disposed`);this._loadingState&&!this._loadingState.loaded&&await this._loadingState.onLoaded,this._windowLike.postMessage(e)}toString(){return`${this.id}@${this._windowLike}`}dispose(){this._disposed||(this._disposed=!0,this._windowLike.removeEventListener(`message`,this._messageHandler))}};function Zi(e){if(typeof window>`u`)throw Error(`call this function from the main browser thread`);return new Xi(e)}function Qi(e){if(typeof window>`u`)throw Error(`call this function from the main browser thread`);return new Xi(e.contentWindow,e.contentWindow,{loaded:window.document.readyState===`complete`,onLoaded:new Promise(e=>{window.addEventListener(`load`,()=>e())})})}function $i(){return c}globalThis.MonacoEnvironment?.globalAPI&&(globalThis.monaco=$i());var ea=i({CancellationTokenSource:()=>m,Emitter:()=>l,KeyCode:()=>f,KeyMod:()=>o,MarkerSeverity:()=>e,MarkerTag:()=>u,Position:()=>p,Range:()=>t,Selection:()=>s,SelectionDirection:()=>h,Token:()=>n,Uri:()=>r,createWebWorker:()=>et,css:()=>yt,editor:()=>d,html:()=>Dt,json:()=>Ht,languages:()=>a,lsp:()=>Yt,typescript:()=>tt}),ta=$i();ta.languages.css=yt,ta.languages.html=Dt,ta.languages.typescript=tt,ta.languages.json=Ht;function na(e){return new Worker(`/app/assets/editor.worker-Cn2oRESe.js`,{name:e?.name})}function ra(e){return new Worker(`/app/assets/css.worker-CvXBzhp8.js`,{name:e?.name})}function ia(e){return new Worker(`/app/assets/html.worker-BO6WuOEO.js`,{name:e?.name})}function aa(e){return new Worker(`/app/assets/json.worker-BkJRGcCJ.js`,{name:e?.name})}function oa(e){return new Worker(`/app/assets/ts.worker-B6r0Skfj.js`,{name:e?.name})}var sa=!1,ca=!1;function la(){if(!ca){ca=!0;try{let e=new na;setTimeout(()=>e.terminate(),0)}catch{}}}function ua(){sa||(sa=!0,self.MonacoEnvironment={getWorker(e,t){switch(t){case`json`:return new aa;case`css`:case`scss`:case`less`:return new ra;case`html`:case`handlebars`:case`razor`:return new ia;case`typescript`:case`javascript`:return new oa;default:return new na}}})}var da=[{token:``,foreground:`D4D4D4`},{token:`comment`,foreground:`6A9955`,fontStyle:`italic`},{token:`comment.line`,foreground:`6A9955`,fontStyle:`italic`},{token:`comment.block`,foreground:`6A9955`,fontStyle:`italic`},{token:`keyword`,foreground:`569CD6`,fontStyle:`bold`},{token:`keyword.control`,foreground:`C586C0`},{token:`string`,foreground:`CE9178`},{token:`string.escape`,foreground:`D7BA7D`},{token:`number`,foreground:`B5CEA8`},{token:`regexp`,foreground:`D16969`},{token:`type`,foreground:`4EC9B0`},{token:`type.identifier`,foreground:`4EC9B0`},{token:`class`,foreground:`4EC9B0`},{token:`interface`,foreground:`4EC9B0`},{token:`function`,foreground:`DCDCAA`},{token:`method`,foreground:`DCDCAA`},{token:`variable`,foreground:`9CDCFE`},{token:`variable.predefined`,foreground:`4FC1FF`},{token:`constant`,foreground:`4FC1FF`},{token:`tag`,foreground:`569CD6`},{token:`attribute.name`,foreground:`9CDCFE`},{token:`attribute.value`,foreground:`CE9178`},{token:`delimiter`,foreground:`D4D4D4`},{token:`operator`,foreground:`D4D4D4`},{token:`metatag`,foreground:`569CD6`},{token:`metatag.content.html`,foreground:`CE9178`},{token:`key`,foreground:`9CDCFE`},{token:`string.key`,foreground:`9CDCFE`},{token:`string.value`,foreground:`CE9178`}],fa=[{token:``,foreground:`24292E`},{token:`comment`,foreground:`6A737D`,fontStyle:`italic`},{token:`keyword`,foreground:`D73A49`,fontStyle:`bold`},{token:`string`,foreground:`032F62`},{token:`number`,foreground:`005CC5`},{token:`type`,foreground:`22863A`},{token:`function`,foreground:`6F42C1`},{token:`variable`,foreground:`24292E`},{token:`tag`,foreground:`22863A`},{token:`attribute.name`,foreground:`6F42C1`},{token:`attribute.value`,foreground:`032F62`}];function pa(e){e.editor.defineTheme(`nexus-dark`,{base:`vs-dark`,inherit:!0,rules:da,colors:{"editor.background":`#1E1E1E`,"editor.foreground":`#D4D4D4`,"editorLineNumber.foreground":`#858585`,"editorLineNumber.activeForeground":`#C6C6C6`,"editor.selectionBackground":`#264F78`,"editor.inactiveSelectionBackground":`#3A3D41`,"editor.lineHighlightBackground":`#2A2D2E`,"editorCursor.foreground":`#AEAFAD`,"editorWhitespace.foreground":`#3B3B3B`,"editorIndentGuide.background":`#404040`,"editorIndentGuide.activeBackground":`#707070`,"editorBracketMatch.background":`#0064001a`,"editorBracketMatch.border":`#888888`}}),e.editor.defineTheme(`nexus-light`,{base:`vs`,inherit:!0,rules:fa,colors:{"editor.background":`#FFFFFF`,"editor.foreground":`#24292E`,"editorLineNumber.foreground":`#959DA5`,"editorLineNumber.activeForeground":`#24292E`,"editor.selectionBackground":`#C8E1FF`,"editor.lineHighlightBackground":`#F6F8FA`,"editorCursor.foreground":`#24292E`,"editorIndentGuide.background":`#EFF2F5`,"editorIndentGuide.activeBackground":`#D0D7DE`}})}function ma(){return`nexus-dark`}function ha(e){e.editor.setTheme(ma())}var ga=!1;function _a(){a.getLanguages().some(e=>e.id===`nginx`)||(a.register({id:`nginx`,extensions:[`.conf`],aliases:[`Nginx`,`nginx`]}),a.setMonarchTokensProvider(`nginx`,{defaultToken:``,ignoreCase:!0,tokenizer:{root:[[/\s+#.*$/,`comment`],[/#.*$/,`comment`],[/\b(server|listen|location|root|index|include|proxy_pass|proxy_set_header|fastcgi_pass|try_files|return|rewrite|if|set|limit_req|upstream|map|geo|ssl_certificate|access_log|error_log|gzip|types|default_type)\b/,`keyword`],[/\$[a-zA-Z_][\w]*/,`variable.predefined`],[/"[^"]*"/,`string`],[/'[^']*'/,`string`],[/\d+\.\d+\.\d+\.\d+/,`number`],[/\d+[kmg]?\b/,`number`],[/[{};]/,`delimiter`]]}}))}function va(){return ga||=(ua(),pa(ea),_a(),ha(ea),!0),ea}function ya(e){return{theme:ma(),automaticLayout:!0,lineNumbers:`on`,folding:!0,bracketPairColorization:{enabled:!0,independentColorPoolPerBracketType:!0},matchBrackets:`always`,fontSize:14,fontLigatures:!0,fontFamily:`ui-monospace, SFMono-Regular, 'Cascadia Code', Menlo, Monaco, Consolas, 'Courier New', monospace`,minimap:{enabled:!0},tabSize:4,insertSpaces:!0,wordWrap:`off`,scrollBeyondLastLine:!1,suggestOnTriggerCharacters:!0,smoothScrolling:!0,renderWhitespace:`selection`,colorDecorators:!0,occurrencesHighlight:`singleFile`,selectionHighlight:!0,renderLineHighlight:`line`,guides:{bracketPairs:!0,bracketPairsHorizontal:!0,indentation:!0,highlightActiveIndentation:!0},...e}}var ba=Symbol(`filesPage`);function xa(e){je(ba,ue(e))}function Sa(){let e=Ee(ba);if(!e)throw Error(`useFilesPageContext() must be used inside FilesPage`);return e}var Ca=Ae({divider:[Number,String],...Oe()},`VBreadcrumbsDivider`),wa=Te()({name:`VBreadcrumbsDivider`,props:Ca(),setup(e,{slots:t}){return Le(()=>_(`li`,{"aria-hidden":`true`,class:fe([`v-breadcrumbs-divider`,e.class]),style:Qe(e.style)},[t?.default?.()??e.divider])),{}}}),Ta=Ae({active:Boolean,activeClass:String,activeColor:String,color:String,disabled:Boolean,title:String,...Oe(),...Ze(ee(),[`width`,`maxWidth`]),...he(),...Ne({tag:`li`})},`VBreadcrumbsItem`),Ea=Te()({name:`VBreadcrumbsItem`,props:Ta(),setup(e,{slots:t,attrs:n}){let r=w(e,n),i=k(()=>e.active||r.isActive?.value),{dimensionStyles:a}=Ge(e),{textColorClasses:o,textColorStyles:s}=pe(()=>i.value?e.activeColor:e.color);return Le(()=>P(e.tag,{class:fe([`v-breadcrumbs-item`,{"v-breadcrumbs-item--active":i.value,"v-breadcrumbs-item--disabled":e.disabled,[`${e.activeClass}`]:i.value&&e.activeClass},o.value,e.class]),style:Qe([s.value,a.value,e.style]),"aria-current":i.value?`page`:void 0},{default:()=>[r.isLink.value?_(`a`,Ie({class:`v-breadcrumbs-item--link`,onClick:r.navigate.value},r.linkProps),[t.default?.()??e.title]):t.default?.()??e.title]})),{}}}),Da=Ae({activeClass:String,activeColor:String,bgColor:String,color:String,disabled:Boolean,divider:{type:String,default:`/`},icon:Ve,items:{type:Array,default:()=>[]},...Oe(),...Be(),...Xe(),...Ne({tag:`ul`})},`VBreadcrumbs`),Oa=Te()({name:`VBreadcrumbs`,props:Da(),setup(e,{slots:t}){let{backgroundColorClasses:n,backgroundColorStyles:r}=Je(()=>e.bgColor),{densityClasses:i}=De(e),{roundedClasses:a}=we(e);Fe({VBreadcrumbsDivider:{divider:le(()=>e.divider)},VBreadcrumbsItem:{activeClass:le(()=>e.activeClass),activeColor:le(()=>e.activeColor),color:le(()=>e.color),disabled:le(()=>e.disabled)}});let o=k(()=>e.items.map(e=>typeof e==`string`?{item:{title:e},raw:e}:{item:e,raw:e}));return Le(()=>{let s=!!(t.prepend||e.icon);return P(e.tag,{class:fe([`v-breadcrumbs`,n.value,i.value,a.value,e.class]),style:Qe([r.value,e.style])},{default:()=>[s&&_(`li`,{key:`prepend`,class:`v-breadcrumbs__prepend`},[t.prepend?P(me,{key:`prepend-defaults`,disabled:!e.icon,defaults:{VIcon:{icon:e.icon,start:!0}}},t.prepend):P(_e,{key:`prepend-icon`,start:!0,icon:e.icon},null)]),o.value.map(({item:e,raw:n},r,i)=>_(ve,null,[t.item?.({item:e,index:r})??P(Ea,Ie({key:r,disabled:r>=i.length-1},typeof e==`string`?{title:e}:e),{default:t.title?()=>t.title?.({item:e,index:r}):void 0}),rt.divider?.({item:n,index:r}):void 0})])),t.default?.()]})}),{}}}),ka={class:`text-body-2 mr-4`},Aa=Re({__name:`FilesBreadcrumb`,setup(e){let t=Sa();return(e,n)=>(L(),z(ve,null,[P(Oa,{items:E(t).breadcrumbs,class:`pa-0 mb-2`},{item:C(({item:e,index:n})=>[P(Ea,{disabled:e.disabled,class:fe({"text-primary":!e.disabled,"cursor-pointer":!e.disabled}),onClick:e=>E(t).onBreadcrumbClick(n)},{default:C(()=>[R(x(e.title),1)]),_:2},1032,[`disabled`,`class`,`onClick`])]),divider:C(()=>[...n[1]||=[R(`/`,-1)]]),_:1},8,[`items`]),E(t).selectedFileCount>0?(L(),I(D,{key:0,class:`mb-4`,color:`primary`,variant:`tonal`,rounded:`lg`},{default:C(()=>[P(de,{class:`d-flex align-center py-2`},{default:C(()=>[_(`span`,ka,`已选择 `+x(E(t).selectedFileCount)+` 个文件`,1),P(lt),P(A,{size:`small`,variant:`text`,color:`error`,onClick:E(t).batchDelete},{default:C(()=>[...n[2]||=[R(`批量删除`,-1)]]),_:1},8,[`onClick`]),P(A,{size:`small`,variant:`text`,onClick:n[0]||=e=>E(t).selectedFiles=[]},{default:C(()=>[...n[3]||=[R(`取消选择`,-1)]]),_:1})]),_:1})]),_:1})):V(``,!0)],64))}});function ja(e){return e.filter(e=>e.name&&e.name!==`.`&&e.name!==`..`).map(e=>{let t=e.type===`directory`||!!e.is_dir,n=e.type===`symlink`||!!e.is_link,r=0;if(!t&&!n&&e.size!=null){let t=typeof e.size==`number`?e.size:parseInt(String(e.size),10);r=Number.isFinite(t)?t:0}let i=`file`;return t?i=`directory`:n&&(i=`symlink`),{name:e.name,type:i,size:r,modified:e.modified??``,permissions:e.permissions??e.perms??``,owner:e.owner??``,group:e.group??``,mode_octal:e.mode_octal??``,link_target:e.link_target??null}})}function Ma(e){if(Array.isArray(e))return{items:e};let t=e;return Array.isArray(t.items)?{items:t.items,error:t.error}:t.entries?.length?{items:ja(t.entries),error:t.error}:{items:t.items??[],error:t.error}}var Na=`/www/wwwroot`;function Pa(e){if(e==null)return``;if(typeof e==`string`)return e;if(typeof e==`object`&&`value`in e){let t=e.value;if(typeof t==`string`)return t}return String(e)}function Q(e){let t=Pa(e).trim().replace(/\\/g,`/`);if(!t||t===`.`)return`/`;let n=t.startsWith(`/`)?t:`/${t}`;return n=n.replace(/\/+/g,`/`),n.length>1&&n.endsWith(`/`)&&(n=n.slice(0,-1)),n}function Fa(e){return Q(e).split(`/`).filter(Boolean)}function $(e,t){let n=Q(e),r=t.replace(/\/+/g,``).trim();if(!r||r===`.`)return n;if(r===`..`){let e=Fa(n);return e.pop(),e.length?`/${e.join(`/`)}`:`/`}return n===`/`?`/${r}`:`${n}/${r}`}function Ia(e){let t=Fa(e);return t.length?(t.pop(),t.length?`/${t.join(`/`)}`:`/`):null}function La(e){let t=e.trim();return t?t.includes(`/`)||t.includes(`\\`)||t.includes(`\0`)?`名称不能包含路径分隔符`:t===`.`||t===`..`?`非法名称`:!0:`名称不能为空`}function Ra(e){let t=Fa(Q(e)),n=[{title:`/`,path:`/`,disabled:t.length===0}],r=``;for(let e=0;eQ(n.rootPath||`/www/wwwroot`)),a=t,o=b(!1),s=b(null),c=b(new Set),l=b(new Map);function u(e){let t=new Set(c.value);e(t),c.value=t}function d(e){let t=new Map(l.value);e(t),l.value=t}function f(){c.value=new Set([i.value])}let p=k(()=>{let e=[],t=(n,r)=>{let i=l.value.get(n)??[];for(let n of i)e.push({...n,depth:r}),c.value.has(n.path)&&t(n.path,r+1)};return t(i.value,0),e});async function m(e){if(!n.serverId)return[];let{items:t}=Ma(await M.post(`/sync/browse`,{server_id:n.serverId,path:Q(e)}));return t.filter(e=>e.type===`directory`).sort((e,t)=>e.name.localeCompare(t.name)).map(t=>({path:$(e,t.name),name:t.name,depth:0,hasChildren:!0,loaded:!1}))}async function h(e){if(n.serverId){s.value=e;try{let t=await m(e);d(n=>{n.set(e,t);for(let e of t)n.has(e.path)||n.set(e.path,[])})}catch(e){r(e instanceof Error?e.message:`加载目录失败`,`error`)}finally{s.value=null}}}async function g(){if(!n.serverId)return;o.value=!0,l.value=new Map,f();let e=i.value;try{await h(e),d(t=>{for(let n of t.get(e)??[])t.has(n.path)||t.set(n.path,[])})}finally{o.value=!1}}async function v(e){if(c.value.has(e.path)){u(t=>{t.delete(e.path)});return}l.value.has(e.path)||await h(e.path),u(t=>{t.add(e.path)})}function y(e){let t=Q(e),n=i.value;t!==n&&u(e=>{if(e.add(n),!t.startsWith(n))return;let r=t.slice(n.length).replace(/^\//,``);if(!r)return;let i=n;for(let t of r.split(`/`).filter(Boolean))i=$(i,t),e.add(i)})}qe(()=>[n.serverId,i.value],([e])=>{e?g():(l.value=new Map,c.value=new Set)},{immediate:!0});async function S(e){if(!n.serverId)return;let t=Q(e),r=i.value;if(y(t),l.value.has(r)||await h(r),t===r||!t.startsWith(r))return;let a=t.slice(r.length).replace(/^\//,``).split(`/`).filter(Boolean),o=r;for(let e of a)l.value.has(o)||await h(o),o=$(o,e)}return qe(()=>n.currentPath,e=>{e&&S(e)},{immediate:!0}),(t,n)=>(L(),I(D,{border:``,rounded:`lg`,class:fe([`file-dir-tree d-flex flex-column`,{"file-dir-tree--embedded":e.embedded}])},{default:C(()=>[e.embedded?(L(),z(`div`,za,[P(_e,{size:`16`,class:`mr-1 text-medium-emphasis`},{default:C(()=>[...n[2]||=[R(`mdi-file-tree`,-1)]]),_:1}),n[3]||=_(`span`,{class:`text-caption text-medium-emphasis`},`目录`,-1),P(lt),P(A,{icon:`mdi-refresh`,size:`x-small`,variant:`text`,disabled:!e.serverId,onClick:g},null,8,[`disabled`])])):(L(),I(ne,{key:0,class:`text-subtitle-2 py-2 px-3 d-flex align-center`},{default:C(()=>[P(_e,{size:`18`,class:`mr-1`},{default:C(()=>[...n[0]||=[R(`mdi-file-tree`,-1)]]),_:1}),n[1]||=R(` 目录 `,-1),P(lt),P(A,{icon:`mdi-refresh`,size:`x-small`,variant:`text`,disabled:!e.serverId,onClick:g},null,8,[`disabled`])]),_:1})),P(ce),P(de,{class:`file-dir-tree-body pa-0 flex-grow-1`},{default:C(()=>[e.serverId?o.value?(L(),I(ae,{key:1,indeterminate:``})):p.value.length===0?(L(),z(`div`,Va,` 暂无子目录(可点刷新) `)):(L(),I(We,{key:3,density:`compact`,nav:``,class:`py-0`},{default:C(()=>[(L(!0),z(ve,null,Se(p.value,t=>(L(),z(`div`,{key:t.path,class:`file-dir-tree-row d-flex align-center`,style:Qe({paddingLeft:`${8+t.depth*14}px`})},[_(`button`,{type:`button`,class:`file-dir-tree-toggle`,onClick:N(e=>v(t),[`stop`])},[s.value===t.path?(L(),I(ye,{key:0,indeterminate:``,size:`14`,width:`2`})):(L(),I(_e,{key:1,size:`16`},{default:C(()=>[R(x(c.value.has(t.path)?`mdi-chevron-down`:`mdi-chevron-right`),1)]),_:2},1024))],8,Ha),_(`button`,{type:`button`,class:fe([`file-dir-tree-label text-body-2 text-truncate`,{"file-dir-tree-label--active":E(Q)(e.currentPath)===t.path}]),onClick:e=>a(`navigate`,t.path),onContextmenu:N(e=>a(`paste-target`,t.path),[`prevent`])},[P(_e,{size:`14`,class:`mr-1`},{default:C(()=>[...n[4]||=[R(`mdi-folder-outline`,-1)]]),_:1}),R(` `+x(t.name),1)],42,Ua)],4))),128))]),_:1})):(L(),z(`div`,Ba,`请先选择服务器`))]),_:1})]),_:1},8,[`class`]))}}),[[`__scopeId`,`data-v-d76d91c6`]]);function Ga(e,t){try{let n=localStorage.getItem(e);if(!n)return t;let r=JSON.parse(n);if(typeof r.x==`number`&&typeof r.y==`number`&&typeof r.w==`number`&&typeof r.h==`number`)return r}catch{}return t}function Ka(e,t){try{localStorage.setItem(e,JSON.stringify(t))}catch{}}function qa(e,t){let n=b(Ga(e,t)),r={px:0,py:0,rx:0,ry:0},i=!1,a={px:0,py:0,rw:0,rh:0},o=k(()=>({left:`${n.value.x}px`,top:`${n.value.y}px`,width:`${n.value.w}px`,height:`${n.value.h}px`}));function s(){let e=Math.min(window.innerWidth-16,1400),t=Math.min(window.innerHeight-16,900);n.value.w=Math.max(480,Math.min(n.value.w,e)),n.value.h=Math.max(320,Math.min(n.value.h,t)),n.value.x=Math.max(8,Math.min(n.value.x,window.innerWidth-n.value.w-8)),n.value.y=Math.max(8,Math.min(n.value.y,window.innerHeight-n.value.h-8))}function c(e){if(i){n.value.w=Math.max(480,a.rw+e.clientX-a.px),n.value.h=Math.max(320,a.rh+e.clientY-a.py),s();return}n.value.x=r.rx+e.clientX-r.px,n.value.y=r.ry+e.clientY-r.py,s()}function l(){i=!1,window.removeEventListener(`mousemove`,c),window.removeEventListener(`mouseup`,l),Ka(e,n.value)}function u(e){e.button===0&&(r={px:e.clientX,py:e.clientY,rx:n.value.x,ry:n.value.y},window.addEventListener(`mousemove`,c),window.addEventListener(`mouseup`,l))}function d(e){e.button===0&&(e.stopPropagation(),i=!0,a={px:e.clientX,py:e.clientY,rw:n.value.w,rh:n.value.h},window.addEventListener(`mousemove`,c),window.addEventListener(`mouseup`,l))}function f(){n.value.x=Math.max(16,(window.innerWidth-n.value.w)/2),n.value.y=Math.max(16,(window.innerHeight-n.value.h)/2),Ka(e,n.value)}return ke(()=>{window.removeEventListener(`mousemove`,c),window.removeEventListener(`mouseup`,l)}),{rect:n,panelStyle:o,startDrag:u,startResize:d,centerOnScreen:f,clampToViewport:s}}var Ja={js:`javascript`,mjs:`javascript`,cjs:`javascript`,jsx:`javascript`,ts:`typescript`,mts:`typescript`,cts:`typescript`,tsx:`typescript`,vue:`html`,py:`python`,pyw:`python`,rb:`ruby`,sh:`shell`,bash:`shell`,zsh:`shell`,fish:`shell`,php:`php`,phtml:`php`,java:`java`,go:`go`,rs:`rust`,c:`c`,cpp:`cpp`,cc:`cpp`,cxx:`cpp`,h:`c`,hpp:`cpp`,cs:`csharp`,swift:`swift`,kt:`kotlin`,kts:`kotlin`,html:`html`,htm:`html`,xhtml:`html`,css:`css`,scss:`scss`,sass:`scss`,less:`less`,json:`json`,jsonc:`json`,xml:`xml`,xsl:`xml`,xsd:`xml`,svg:`xml`,yaml:`yaml`,yml:`yaml`,toml:`toml`,md:`markdown`,mdx:`mdx`,sql:`sql`,graphql:`graphql`,gql:`graphql`,dockerfile:`dockerfile`,conf:`ini`,cfg:`ini`,cnf:`ini`,ini:`ini`,properties:`ini`,env:`ini`,tpl:`html`,twig:`twig`,blade:`php`,lua:`lua`,pl:`perl`,pm:`perl`,ps1:`powershell`,psm1:`powershell`,bat:`bat`,cmd:`bat`,r:`r`,dart:`dart`,scala:`scala`,clj:`clojure`,ex:`elixir`,exs:`elixir`,erl:`elixir`,hs:`haskell`,ml:`fsharp`,fs:`fsharp`,fsx:`fsharp`,vb:`vb`,pas:`pascal`,dockerignore:`plaintext`,gitignore:`plaintext`,gitattributes:`plaintext`,editorconfig:`ini`,htaccess:`shell`,service:`ini`,socket:`ini`,timer:`ini`,mount:`ini`,fstab:`ini`,crt:`plaintext`,pem:`plaintext`,key:`plaintext`,pub:`plaintext`,log:`plaintext`,lock:`json`},Ya={dockerfile:`dockerfile`,makefile:`makefile`,gnumakefile:`makefile`,"cmakelists.txt":`plaintext`,gemfile:`ruby`,rakefile:`ruby`,vagrantfile:`ruby`,nginx:`nginx`,"nginx.conf":`nginx`,".env":`ini`,".env.example":`ini`,".env.local":`ini`,".gitignore":`plaintext`,".dockerignore":`plaintext`,".htaccess":`shell`,hosts:`plaintext`,crontab:`shell`,"supervisord.conf":`ini`,"php.ini":`ini`,"my.cnf":`ini`},Xa=[{title:`自动`,value:`auto`},{title:`Plain Text`,value:`plaintext`},{title:`PHP`,value:`php`},{title:`JavaScript`,value:`javascript`},{title:`TypeScript`,value:`typescript`},{title:`JSON`,value:`json`},{title:`HTML`,value:`html`},{title:`CSS`,value:`css`},{title:`SCSS`,value:`scss`},{title:`Shell`,value:`shell`},{title:`Python`,value:`python`},{title:`Go`,value:`go`},{title:`Rust`,value:`rust`},{title:`Java`,value:`java`},{title:`C`,value:`c`},{title:`C++`,value:`cpp`},{title:`C#`,value:`csharp`},{title:`SQL`,value:`sql`},{title:`YAML`,value:`yaml`},{title:`TOML`,value:`toml`},{title:`INI / Config`,value:`ini`},{title:`Markdown`,value:`markdown`},{title:`Dockerfile`,value:`dockerfile`},{title:`Nginx`,value:`nginx`},{title:`XML`,value:`xml`},{title:`Vue (HTML)`,value:`html`},{title:`Ruby`,value:`ruby`},{title:`Perl`,value:`perl`},{title:`PowerShell`,value:`powershell`}];function Za(e,t){let n=e.toLowerCase(),r=(t?.split(`/`).pop()??e).toLowerCase();if(Ya[r])return Ya[r];if(Ya[n])return Ya[n];if(n.endsWith(`.blade.php`))return`php`;let i=n.split(`.`);if(i.length>2&&i[i.length-1]===`php`&&i.slice(-2).join(`.`)===`blade.php`)return`php`;let a=n.includes(`.`)?n.split(`.`).pop()??``:``;return a&&Ja[a]?Ja[a]:r.includes(`nginx`)&&(r.endsWith(`.conf`)||r===`nginx.conf`)?`nginx`:`plaintext`}function Qa(e,t,n){return n&&n!==`auto`?n:Za(e,t)}var $a={class:`text-truncate`,style:{"max-width":`130px`}},eo={key:0,class:`text-warning ml-1`,style:{"font-size":`10px`}},to={class:`file-editor-main d-flex flex-grow-1 min-h-0`},no={class:`file-editor-content d-flex flex-column flex-grow-1 min-w-0 min-h-0`},ro={class:`file-editor-body flex-grow-1 position-relative min-h-0`},io={class:`file-editor-status text-caption px-3 py-1 d-flex flex-wrap align-center ga-3`},ao={class:`text-mono`},oo={key:0,class:`text-primary`,style:{"font-size":`11px`}},so={class:`text-truncate flex-grow-1 text-medium-emphasis`},co={key:2,class:`text-warning`},lo={key:0,class:`text-warning ml-1`},uo=`nexus_file_editor_float`,fo=mt(Re({__name:`FileEditorWorkbench`,props:{serverId:{},currentPath:{}},emits:[`saved`,`closed`,`path-change`,`paste-target`],setup(e,{expose:t,emit:n}){let r=va(),i=e,a=n,o=nt(),s=Math.min(1120,Math.round(window.innerWidth*.88)),c=Math.min(760,Math.round(window.innerHeight*.82)),{panelStyle:l,startDrag:u,startResize:d,clampToViewport:f}=qa(uo,{x:Math.max(24,(window.innerWidth-s)/2),y:Math.max(24,(window.innerHeight-c)/2),w:s,h:c}),p=Me([]),m=b(null),h=b(!1),g=b(!1),v=b(!1),y=b(!1),S=b(!1),ee=b(1),w=b(1),ie=b(i.currentPath||`/www/wwwroot`),oe=k(()=>{let e=Q(i.currentPath||`/www/wwwroot`);return e===`/`||e.startsWith(`/www/wwwroot`)?Na:e}),se=b(!0),le=b(!1),O=b(null),ue=b(),j=null,pe=null,me=0;function he(){p.value=p.value.slice()}function ge(e,t){e.modified!==t&&(e.modified=t,he())}let ye=b(null),xe=b(!1),F=k(()=>p.value.find(e=>e.id===m.value)??null),Ce=k(()=>F.value?Qa(F.value.name,F.value.path,F.value.languageId):`plaintext`),we=k({get:()=>{let e=F.value?.languageId;return e==null||e===``?`auto`:String(e)},set:e=>{if(!F.value)return;let t=e==null?`auto`:String(e);F.value.languageId=t===`auto`?null:t}}),Te=k(()=>g.value?void 0:l.value),Ee=k(()=>xe.value?`关闭编辑器`:`关闭文件`),De=k(()=>{let e=(ye.value?p.value.find(e=>e.id===ye.value):p.value.find(e=>e.modified))?.name??`文件`;return xe.value?`「${e}」等未保存的更改将丢失,确定吗?`:`「${e}」已修改但未保存,确定要关闭吗?`}),Oe=k(()=>O.value?p.value.find(e=>e.id===O.value)?.name??``:``);function Ae(e){return e.replace(/\r\n/g,` +`).replace(/\r/g,` +`)}function je(e,t){let n=Ae(e);return t===`CRLF`?n.replace(/\n/g,`\r +`):n}function Ne(e){return Qa(e.name,e.path,e.languageId)}function Pe(e){return`${i.serverId}:${Q(e)}`}function Fe(e){let t=Ia(Q(e));t&&(ie.value=t)}function Ie(e){ie.value=Q(e),a(`path-change`,ie.value)}function Le(e){g.value||e.target.closest(`button, .v-tab, .v-btn, input, a`)||u(e)}function Re(){if(!j)return;let e=j.getPosition();ee.value=e?.lineNumber??1,w.value=e?.column??1}function ze(e=!1){if(!j||!F.value)return;let t=F.value,n=j.saveViewState();t.viewState=n?te(n):null;let r=()=>{!j||F.value?.id!==t.id||(t.content=Ae(j.getValue()),ge(t,t.content!==t.originalContent))};if(e){pe&&=(clearTimeout(pe),null),r();return}pe&&clearTimeout(pe),pe=setTimeout(r,250)}async function Be(){let e=++me;if(await He(),await He(),e!==me||!F.value)return;Ge();let t=(n=0)=>{if(e!==me||!j)return;j.layout();let r=ue.value;r&&(r.clientWidth<2||r.clientHeight<2)&&n<12&&setTimeout(()=>t(n+1),50)};requestAnimationFrame(()=>t())}function B(){me++,pe&&=(clearTimeout(pe),null),j?.dispose(),j=null,y.value=!1}function Ve(){for(let e of p.value)e.model?.dispose();p.value=[],m.value=null,B(),g.value=!1,h.value=!1}function Ue(e){let t=F.value;!t||!t.model||(t.languageId=e===`auto`||!e?null:e,r.editor.setModelLanguage(t.model,Ne(t)))}function We(e){if(j){if(!e.model){let t=Ne(e),n=Ae(e.content);e.model=te(r.editor.createModel(n,t,r.Uri.parse(`nexus://${i.serverId}${e.path}`)))}j.setModel(e.model),e.viewState&&j.restoreViewState(e.viewState),r.editor.setModelLanguage(e.model,Ne(e)),Fe(e.path),Re()}}function Ge(){if(!ue.value||!F.value)return;B(),y.value=!1;let e=F.value;if(!e.model){let t=Ne(e),n=Ae(e.content);e.model=te(r.editor.createModel(n,t,r.Uri.parse(`nexus://${i.serverId}${e.path}`)))}j=r.editor.create(ue.value,{...ya(),model:e.model,wordWrap:se.value?`on`:`off`,automaticLayout:!0}),e.viewState&&j.restoreViewState(e.viewState),j.onDidChangeModelContent(()=>{ze(),Re()}),j.onDidChangeCursorPosition(()=>{Re()}),j.addCommand(r.KeyMod.CtrlCmd|r.KeyCode.KeyS,()=>{st()}),j.addCommand(r.KeyCode.Escape,()=>{g.value&&=!1}),j.addCommand(r.KeyMod.Alt|r.KeyCode.KeyZ,()=>{ot()}),Fe(e.path),ha(r),y.value=!0,Re()}function Ke(e){if(typeof e!=`string`||!e)return;ze(!0),m.value=e;let t=p.value.find(t=>t.id===e);t&&(j?We(t):Be())}function Je(e){m.value=e,h.value=!1,He(()=>{f();let t=p.value.find(t=>t.id===e);t&&(j?We(t):Be())})}function Ye(e){let t=Pe(e.path),n=p.value.find(e=>e.id===t);if(n){m.value=t,h.value=!1,Be().then(()=>{j&&We(n)});return}try{let n=Ae(e.content),a=Qa(e.name,e.path,null),o=r.Uri.parse(`nexus://${i.serverId}${e.path}`),s=r.editor.getModel(o);s&&s.dispose();let c=te(r.editor.createModel(n,a,o));p.value=[...p.value,{id:t,path:e.path,name:e.name,content:n,originalContent:n,modified:!1,languageId:null,eol:e.eol,etag:e.etag,mtime:e.mtime,model:c,viewState:null}],m.value=t,h.value=!1,Fe(e.path),Be()}catch(e){o(e instanceof Error?e.message:`无法打开编辑器`,`error`),console.error(`[FileEditorWorkbench] openFile failed`,e)}}function Xe(e){let t=p.value.findIndex(t=>t.id===e);if(!(t<0)){if(p.value[t].model?.dispose(),p.value=p.value.filter(t=>t.id!==e),p.value.length===0){m.value=null,B(),g.value=!1,h.value=!1,a(`closed`);return}if(m.value===e){let e=p.value[Math.min(t,p.value.length-1)];m.value=e.id,Be().then(()=>{let t=p.value.find(t=>t.id===e.id);t&&j&&We(t)})}}}function Ze(e){let t=p.value.find(t=>t.id===e);if(!t)return;if(m.value===e&&ze(!0),t.modified){ye.value=e,xe.value=!1,S.value=!0;return}let n=m.value===e;n&&B(),Xe(e),n&&m.value&&Be()}function $e(){if(ze(!0),p.value.some(e=>e.modified)){ye.value=null,xe.value=!0,S.value=!0;return}Ve(),a(`closed`)}function et(){S.value=!1,ye.value=null,xe.value=!1}function tt(){if(S.value=!1,xe.value)Ve(),a(`closed`);else if(ye.value){let e=ye.value,t=m.value===e;t&&B(),Xe(e),t&&m.value&&Be()}ye.value=null,xe.value=!1}async function rt(){let e=xe.value,t=ye.value;if(await st(),S.value=!1,xe.value=!1,ye.value=null,e){p.value.some(e=>e.modified)||(Ve(),a(`closed`));return}if(t){let e=p.value.find(e=>e.id===t);if(e&&!e.modified){let e=m.value===t;e&&B(),Xe(t),e&&m.value&&Be()}}}function ot(){se.value=!se.value,j?.updateOptions({wordWrap:se.value?`on`:`off`})}async function st(e=!1){if(!i.serverId){o(`请先选择服务器`,`error`);return}ze(!0);let t=F.value;if(!t||!t.modified)return;let n=je(j?.getValue()??t.content,t.eol);v.value=!0;try{let r=await M.post(`/sync/write-file`,{server_id:i.serverId,path:t.path,content:n,etag:e?null:t.etag}),s=Ae(n);t.content=s,t.originalContent=s,ge(t,!1),t.etag=r?.etag??null,he(),o(`文件已保存`),a(`saved`,t.path)}catch(e){if(e instanceof re&&e.status===409){O.value=t.id,le.value=!0;return}o(e instanceof re||e instanceof Error?e.message:`保存失败`,`error`)}finally{v.value=!1}}function ct(){le.value=!1,O.value=null}async function ut(){le.value=!1;let e=O.value;O.value=null,!(!e||m.value!==e)&&await st(!0)}function dt(){le.value=!1;let e=O.value;if(O.value=null,!e)return;let t=p.value.find(t=>t.id===e);if(t){if(t.content=t.originalContent,ge(t,!1),t.model){let e=je(t.originalContent,t.eol);t.model.setValue(Ae(e))}he(),o(`已放弃本地修改`,`info`)}}qe(()=>i.currentPath,e=>{e&&(ie.value=Q(e))}),qe(g,()=>{He(()=>j?.layout())}),qe(h,e=>{e||He(()=>j?.layout())});function ft(){return p.value.length>0}return t({openFile:Ye,hasOpenTabs:ft}),ke(()=>{for(let e of p.value)e.model?.dispose();B()}),(t,n)=>(L(),z(ve,null,[(L(),I(be,{to:`body`},[p.value.length>0&&!h.value&&F.value?(L(),z(`div`,{key:0,class:fe([`file-editor-float`,{"file-editor-float--maximized":g.value}]),style:Qe(Te.value)},[P(D,{border:``,rounded:`lg`,class:`file-editor-panel d-flex flex-column h-100`},{default:C(()=>[_(`div`,{class:fe([`file-editor-toolbar d-flex align-center flex-shrink-0`,{"file-editor-toolbar--draggable":!g.value}]),onMousedown:Le},[g.value?V(``,!0):(L(),I(_e,{key:0,size:`16`,class:`ml-2 mr-1 text-disabled file-editor-drag-hint`,onMousedown:n[0]||=N(()=>{},[`stop`])},{default:C(()=>[...n[19]||=[R(` mdi-drag `,-1)]]),_:1})),P(gt,{"model-value":m.value??void 0,density:`compact`,"show-arrows":``,class:`file-editor-tabs flex-grow-1 min-w-0`,"onUpdate:modelValue":Ke,onMousedown:n[1]||=N(()=>{},[`stop`])},{default:C(()=>[(L(!0),z(ve,null,Se(p.value,e=>(L(),I(ht,{key:e.id,value:e.id,class:`text-none px-2`},{default:C(()=>[_(`span`,$a,x(e.name),1),e.modified?(L(),z(`span`,eo,`●`)):V(``,!0),P(A,{icon:`mdi-close`,size:`x-small`,variant:`text`,class:`ml-1 opacity-60`,density:`compact`,onClick:N(t=>Ze(e.id),[`stop`])},null,8,[`onClick`])]),_:2},1032,[`value`]))),128))]),_:1},8,[`model-value`]),P(ce,{vertical:``,class:`mx-1`,style:{height:`20px`,"align-self":`center`},onMousedown:n[2]||=N(()=>{},[`stop`])}),P(at,{modelValue:we.value,"onUpdate:modelValue":[n[3]||=e=>we.value=e,Ue],items:E(Xa),"item-title":`title`,"item-value":`value`,density:`compact`,variant:`plain`,"hide-details":``,class:`file-editor-lang-select flex-shrink-0`,onMousedown:n[4]||=N(()=>{},[`stop`])},null,8,[`modelValue`,`items`]),P(A,{size:`small`,variant:`text`,color:se.value?`primary`:void 0,title:se.value?`关闭自动换行 (Alt+Z)`:`开启自动换行 (Alt+Z)`,density:`compact`,class:`flex-shrink-0 text-none px-2`,onMousedown:n[5]||=N(()=>{},[`stop`]),onClick:ot},{default:C(()=>[...n[20]||=[R(` 自动换行 `,-1)]]),_:1},8,[`color`,`title`]),P(ce,{vertical:``,class:`mx-1`,style:{height:`20px`,"align-self":`center`},onMousedown:n[6]||=N(()=>{},[`stop`])}),P(A,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-content-save`,loading:v.value,disabled:!F.value?.modified||!y.value,class:`flex-shrink-0 mr-1`,onMousedown:n[7]||=N(()=>{},[`stop`]),onClick:st},{default:C(()=>[...n[21]||=[R(` 保存 `,-1)]]),_:1},8,[`loading`,`disabled`]),P(A,{size:`small`,variant:`text`,icon:g.value?`mdi-fullscreen-exit`:`mdi-fullscreen`,title:g.value?`退出全屏 (Esc)`:`全屏`,density:`compact`,onMousedown:n[8]||=N(()=>{},[`stop`]),onClick:n[9]||=e=>g.value=!g.value},null,8,[`icon`,`title`]),P(A,{size:`small`,variant:`text`,icon:`mdi-window-minimize`,title:`最小化`,density:`compact`,onMousedown:n[10]||=N(()=>{},[`stop`]),onClick:n[11]||=e=>h.value=!0}),P(A,{size:`small`,variant:`text`,icon:`mdi-close`,title:`关闭编辑器`,density:`compact`,class:`mr-1`,onMousedown:n[12]||=N(()=>{},[`stop`]),onClick:$e})],34),_(`div`,to,[_(`aside`,{class:`file-editor-sidebar flex-shrink-0`,onMousedown:n[14]||=N(()=>{},[`stop`])},[P(Wa,{embedded:``,"server-id":e.serverId||null,"root-path":oe.value,"current-path":ie.value,onNavigate:Ie,onPasteTarget:n[13]||=e=>a(`paste-target`,e)},null,8,[`server-id`,`root-path`,`current-path`])],32),_(`div`,no,[_(`div`,ro,[y.value?V(``,!0):(L(),I(ae,{key:0,indeterminate:``,absolute:``,class:`file-editor-progress`})),_(`div`,{ref_key:`editorHost`,ref:ue,class:`file-editor-host`},null,512)]),_(`div`,io,[_(`span`,ao,x(ee.value)+`:`+x(w.value),1),P(ce,{vertical:``,style:{height:`12px`}}),_(`span`,null,x(Ce.value),1),P(ce,{vertical:``,style:{height:`12px`}}),se.value?(L(),z(`span`,oo,`换行`)):V(``,!0),se.value?(L(),I(ce,{key:1,vertical:``,style:{height:`12px`}})):V(``,!0),_(`span`,so,x(F.value?.path??``),1),F.value?.modified?(L(),z(`span`,co,`未保存`)):V(``,!0)])])]),g.value?V(``,!0):(L(),z(`div`,{key:0,class:`file-editor-resize`,title:`拖动调整大小`,onMousedown:n[15]||=N((...e)=>E(d)&&E(d)(...e),[`stop`])},null,32))]),_:1})],6)):V(``,!0),p.value.length>0&&h.value?(L(),I(D,{key:1,border:``,rounded:`lg`,class:`file-editor-dock`},{default:C(()=>[n[22]||=_(`span`,{class:`text-caption text-medium-emphasis mr-2`},`编辑器`,-1),(L(!0),z(ve,null,Se(p.value,e=>(L(),I(it,{key:e.id,size:`small`,color:e.id===m.value?`primary`:void 0,variant:`tonal`,class:`cursor-pointer`,onClick:t=>Je(e.id)},{default:C(()=>[R(x(e.name)+` `,1),e.modified?(L(),z(`span`,lo,`●`)):V(``,!0)]),_:2},1032,[`color`,`onClick`]))),128)),P(lt),P(A,{size:`x-small`,variant:`text`,icon:`mdi-dock-window`,title:`展开`,onClick:n[16]||=e=>h.value=!1}),P(A,{size:`x-small`,variant:`text`,icon:`mdi-close`,title:`关闭全部`,onClick:$e})]),_:1})):V(``,!0)])),P(pt,{modelValue:S.value,"onUpdate:modelValue":n[17]||=e=>S.value=e,"max-width":`400`},{default:C(()=>[P(D,{border:``},{default:C(()=>[P(ne,null,{default:C(()=>[R(x(Ee.value),1)]),_:1}),P(de,null,{default:C(()=>[R(x(De.value),1)]),_:1}),P(T,null,{default:C(()=>[P(lt),P(A,{variant:`text`,onClick:et},{default:C(()=>[...n[23]||=[R(`取消`,-1)]]),_:1}),P(A,{color:`error`,variant:`flat`,onClick:tt},{default:C(()=>[...n[24]||=[R(`不保存`,-1)]]),_:1}),P(A,{color:`primary`,variant:`flat`,onClick:rt},{default:C(()=>[...n[25]||=[R(`保存`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),P(pt,{modelValue:le.value,"onUpdate:modelValue":n[18]||=e=>le.value=e,"max-width":`440`,persistent:``},{default:C(()=>[P(D,{border:``},{default:C(()=>[P(ne,{class:`text-warning`},{default:C(()=>[P(_e,{start:``},{default:C(()=>[...n[26]||=[R(`mdi-alert-outline`,-1)]]),_:1}),n[27]||=R(` 文件冲突 `,-1)]),_:1}),P(de,null,{default:C(()=>[R(` 「`+x(Oe.value)+`」已被外部修改。`,1),n[28]||=_(`br`,null,null,-1),n[29]||=_(`strong`,null,`覆盖`,-1),n[30]||=R(`会以当前编辑内容覆盖服务器版本;`,-1),n[31]||=_(`strong`,null,`放弃`,-1),n[32]||=R(`会丢弃本地修改。 `,-1)]),_:1}),P(T,null,{default:C(()=>[P(lt),P(A,{variant:`text`,onClick:ct},{default:C(()=>[...n[33]||=[R(`取消`,-1)]]),_:1}),P(A,{color:`error`,variant:`flat`,onClick:dt},{default:C(()=>[...n[34]||=[R(`放弃本地修改`,-1)]]),_:1}),P(A,{color:`warning`,variant:`flat`,onClick:ut},{default:C(()=>[...n[35]||=[R(`强制覆盖`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`])],64))}}),[[`__scopeId`,`data-v-509107ff`]]);function po(e){return e==null?``:String(e).trim()}function mo(e){if(e.type===`symlink`)return`—`;let t=po(e.owner),n=po(e.group);return t?!n||n===t?t:`${t}:${n}`:`—`}function ho(e){if(e===`root`)return`warning`}function go(e){let t=[];e.permissions&&t.push(e.permissions),e.mode_octal&&t.push(e.mode_octal);let n=po(e.owner),r=po(e.group);return n&&t.push(r&&r!==n?`${n}:${r}`:n),t.join(` · `)||`—`}var _o=[{label:`文件 644`,mode:`644`,for:`file`},{label:`目录 755`,mode:`755`,for:`directory`},{label:`私密 600`,mode:`600`,for:`file`},{label:`协作 775`,mode:`775`,for:`directory`},{label:`可执行 755`,mode:`755`,for:`file`}],vo=`docs/deploy/nexus-files-sudoers.example`;function yo(e){let t=e.toLowerCase();return t.includes(`permission denied`)||t.includes(`operation not permitted`)||t.includes(`无法访问`)||t.includes(`无权限`)||t.includes(`无写入权限`)||t.includes(`读取失败`)||t.includes(`chmod 失败`)}function bo(e,t){if(!t||t===`root`||e.type!==`file`)return!1;let n=e.permissions??``;if(n.length<10)return!1;let r=po(e.owner),i=po(e.group),a=n.slice(1,4),o=n.slice(4,7),s=n.slice(7,10);return r===t?!a.includes(`r`):(i&&i===t||!s.includes(`r`))&&!o.includes(`r`)}function xo(){return`目标机安装示例:${vo}(复制到 /etc/sudoers.d/nexus-files 后执行 visudo -cf 校验)`}function So(e){if(e.isRootSsh)return null;let t=[],n=e.unreadableCount??0;if(e.lastReadDeniedPath&&t.push(`无法读取「${e.lastReadDeniedPath}」:当前 SSH 用户无权限。`),n>0&&e.sshUser&&t.push(`当前目录约 ${n} 个文件对 SSH 用户「${e.sshUser}」不可读。`),t.length>0&&(e.filesElevation===`off`?t.push(`此服务器「文件提权」已关闭,不会自动 sudo。`):e.canSudo?e.whitelistOk?t.push(`系统已自动尝试 sudo -n 提权,如仍失败请检查 sudoers 白名单。`):t.push(`已有 sudo 但白名单不完整(须含 bash、chmod、chown、tee、cat 等)。`):t.push(`请配置免密 sudo(NOPASSWD)或使用「一键配置」,或改用 root SSH 用户。`)),!t.length)return null;let r=e.filesElevation===`off`||!e.canSudo||!e.whitelistOk?` ${xo()}`:``;return{type:!e.canSudo||e.filesElevation===`off`?`error`:`warning`,text:`${t.join(` `)}${r}`}}var Co={key:0,class:`text-body-2 mb-3 text-medium-emphasis`},wo={key:1,class:`text-caption mb-4`},To={class:`d-flex flex-wrap ga-2 mb-4`},Eo={class:`d-flex align-center flex-wrap ga-2 mb-2`},Do={class:`text-body-2`},Oo={key:0,class:`text-caption mt-1`},ko={class:`text-caption text-medium-emphasis mb-0`},Ao=Re({__name:`FilePermissionDialog`,props:{modelValue:{type:Boolean},file:{},serverId:{},loading:{type:Boolean}},emits:[`update:modelValue`,`apply`],setup(e,{emit:t}){let n=e,r=t,i=b(``),a=b(``),o=b(``),s=b(null),c=b(!1),l=b(!1),u=k(()=>n.file?.type===`directory`),d=k(()=>n.file?.name??``),f=k(()=>n.file?go(n.file):``),p=k(()=>{let e=n.file?.type===`directory`?`directory`:`file`;return _o.filter(t=>t.for===e||t.for===`file`)}),m=k(()=>s.value?s.value.is_root||s.value.can_sudo_nopasswd&&s.value.whitelist_ok?`success`:s.value.can_sudo_nopasswd?`warning`:`error`:`info`);qe(()=>[n.modelValue,n.file],([e,t])=>{!e||!t||(i.value=t.mode_octal||``,a.value=t.owner||``,o.value=t.group&&t.group!==t.owner?t.group:``,l.value=!1,s.value=null,n.serverId&&g())});function h(e){return e===`off`?`关闭提权`:e===`always_sudo`?`始终 sudo`:`自动 sudo`}async function g(){if(n.serverId){c.value=!0;try{s.value=await M.get(`/servers/${n.serverId}/files-capability`)}catch(e){s.value={ssh_user:``,is_root:!1,files_elevation:`auto_sudo`,can_sudo_nopasswd:!1,whitelist_ok:!1,message:e instanceof Error?e.message:`检测失败`,docs_path:`docs/deploy/nexus-files-sudoers.example`}}finally{c.value=!1}}}function v(e){return t=>!!String(t||``).trim()||`${e}不能为空`}function y(e){return/^[0-7]{3,4}$/.test(String(e||``).trim())||`格式: 3–4 位八进制`}let S=/^[a-zA-Z0-9_.-]+$/;function ee(e){let t=String(e||``).trim();return t?S.test(t)||`仅允许字母、数字、._-`:!0}function te(e){let t=String(e||``).trim();return t?a.value.trim()?S.test(t)||`仅允许字母、数字、._-`:`请先填写属主`:!0}function re(e){i.value=e}function w(){let e=i.value.trim();if(!/^[0-7]{3,4}$/.test(e))return;let t=a.value.trim(),s=o.value.trim(),c=u.value&&l.value;if(c){let t=n.file?.name??`该目录`;if(!window.confirm(`确认对目录「${t}」及其全部子项递归应用权限 ${e}?此操作影响范围大且不可自动撤销。`))return}r(`apply`,{mode:e,owner:t||void 0,group:s||void 0,recursive:c||void 0})}return(t,n)=>(L(),I(pt,{"model-value":e.modelValue,"max-width":`520`,"onUpdate:modelValue":n[5]||=e=>r(`update:modelValue`,e)},{default:C(()=>[P(D,{border:``},{default:C(()=>[P(ne,null,{default:C(()=>[...n[6]||=[R(`修改权限`,-1)]]),_:1}),P(de,null,{default:C(()=>[d.value?(L(),z(`p`,Co,x(d.value),1)):V(``,!0),f.value?(L(),z(`p`,wo,` 当前:`+x(f.value),1)):V(``,!0),_(`div`,To,[(L(!0),z(ve,null,Se(p.value,e=>(L(),I(it,{key:e.mode+e.label,size:`small`,variant:`tonal`,color:`primary`,onClick:t=>re(e.mode)},{default:C(()=>[R(x(e.label),1)]),_:2},1032,[`onClick`]))),128))]),P(B,{modelValue:i.value,"onUpdate:modelValue":n[0]||=e=>i.value=e,label:`八进制权限`,variant:`outlined`,density:`compact`,placeholder:`644 / 755`,rules:[v(`权限`),y],class:`mb-2`,onKeydown:oe(w,[`enter`])},null,8,[`modelValue`,`rules`]),P(B,{modelValue:a.value,"onUpdate:modelValue":n[1]||=e=>a.value=e,label:`属主(可选)`,variant:`outlined`,density:`compact`,placeholder:`www`,rules:[ee],class:`mb-2`},null,8,[`modelValue`,`rules`]),P(B,{modelValue:o.value,"onUpdate:modelValue":n[2]||=e=>o.value=e,label:`属组(可选)`,variant:`outlined`,density:`compact`,placeholder:`www`,rules:[te],class:`mb-2`},null,8,[`modelValue`,`rules`]),u.value?(L(),I(ot,{key:2,modelValue:l.value,"onUpdate:modelValue":n[3]||=e=>l.value=e,label:`同时修改子项(递归 chmod/chown)`,density:`compact`,"hide-details":``,color:`warning`,class:`mb-2`},null,8,[`modelValue`])):V(``,!0),P(ce,{class:`my-4`}),_(`div`,Eo,[n[8]||=_(`span`,{class:`text-caption text-medium-emphasis`},`提权能力`,-1),P(A,{size:`small`,variant:`tonal`,loading:c.value,disabled:!e.serverId,onClick:g},{default:C(()=>[...n[7]||=[R(` 检测提权能力 `,-1)]]),_:1},8,[`loading`,`disabled`])]),s.value?(L(),I(vt,{key:3,type:m.value,variant:`tonal`,density:`compact`,class:`mb-2`},{default:C(()=>[_(`div`,Do,x(s.value.message),1),s.value.ssh_user?(L(),z(`div`,Oo,` SSH 用户:`+x(s.value.ssh_user)+` · 策略:`+x(h(s.value.files_elevation)),1)):V(``,!0)]),_:1},8,[`type`])):V(``,!0),_(`p`,ko,[n[9]||=R(` 非 root 用户写/chmod 失败时将按服务器策略尝试 `,-1),n[10]||=_(`code`,null,`sudo -n`,-1),R(`。 `+x(E(xo)()),1)])]),_:1}),P(T,null,{default:C(()=>[P(lt),P(A,{variant:`text`,onClick:n[4]||=e=>r(`update:modelValue`,!1)},{default:C(()=>[...n[11]||=[R(`取消`,-1)]]),_:1}),P(A,{color:`primary`,variant:`flat`,loading:e.loading,onClick:w},{default:C(()=>[...n[12]||=[R(`应用`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`model-value`]))}}),jo={class:`text-body-2 mb-3`},Mo={class:`text-body-2 mb-2 text-truncate`},No={class:`text-truncate`},Po={key:1,class:`files-preview-body text-body-2`},Fo=mt(Re({__name:`FilesDialogs`,setup(e){let t=Sa();return(e,n)=>(L(),z(ve,null,[P(pt,{modelValue:E(t).showUpload,"onUpdate:modelValue":n[2]||=e=>E(t).showUpload=e,"max-width":`500`},{default:C(()=>[P(D,{border:``},{default:C(()=>[P(ne,null,{default:C(()=>[...n[25]||=[R(`上传文件`,-1)]]),_:1}),P(de,null,{default:C(()=>[P(_t,{modelValue:E(t).uploadFiles,"onUpdate:modelValue":n[0]||=e=>E(t).uploadFiles=e,label:`选择文件`,variant:`outlined`,multiple:``,"show-size":``},null,8,[`modelValue`])]),_:1}),P(T,null,{default:C(()=>[P(lt),P(A,{variant:`text`,onClick:n[1]||=e=>E(t).showUpload=!1},{default:C(()=>[...n[26]||=[R(`取消`,-1)]]),_:1}),P(A,{color:`primary`,variant:`flat`,loading:E(t).uploading,onClick:E(t).doUpload},{default:C(()=>[...n[27]||=[R(`上传`,-1)]]),_:1},8,[`loading`,`onClick`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),P(pt,{modelValue:E(t).showNewFile,"onUpdate:modelValue":n[5]||=e=>E(t).showNewFile=e,"max-width":`400`},{default:C(()=>[P(D,{border:``},{default:C(()=>[P(ne,null,{default:C(()=>[...n[28]||=[R(`新建文件`,-1)]]),_:1}),P(de,null,{default:C(()=>[P(B,{modelValue:E(t).newFileName,"onUpdate:modelValue":n[3]||=e=>E(t).newFileName=e,label:`文件名`,variant:`outlined`,density:`compact`,rules:[E(t).validatePathSegment],placeholder:`example.conf`,autofocus:``,onKeydown:oe(E(t).doNewFile,[`enter`])},null,8,[`modelValue`,`rules`,`onKeydown`])]),_:1}),P(T,null,{default:C(()=>[P(lt),P(A,{variant:`text`,onClick:n[4]||=e=>E(t).showNewFile=!1},{default:C(()=>[...n[29]||=[R(`取消`,-1)]]),_:1}),P(A,{color:`primary`,variant:`flat`,loading:E(t).actionLoading,onClick:E(t).doNewFile},{default:C(()=>[...n[30]||=[R(`创建`,-1)]]),_:1},8,[`loading`,`onClick`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),P(pt,{modelValue:E(t).showMkdir,"onUpdate:modelValue":n[8]||=e=>E(t).showMkdir=e,"max-width":`400`},{default:C(()=>[P(D,{border:``},{default:C(()=>[P(ne,null,{default:C(()=>[...n[31]||=[R(`新建目录`,-1)]]),_:1}),P(de,null,{default:C(()=>[P(B,{modelValue:E(t).mkdirName,"onUpdate:modelValue":n[6]||=e=>E(t).mkdirName=e,label:`目录名`,variant:`outlined`,density:`compact`,rules:[E(t).validatePathSegment],onKeydown:oe(E(t).doMkdir,[`enter`])},null,8,[`modelValue`,`rules`,`onKeydown`])]),_:1}),P(T,null,{default:C(()=>[P(lt),P(A,{variant:`text`,onClick:n[7]||=e=>E(t).showMkdir=!1},{default:C(()=>[...n[32]||=[R(`取消`,-1)]]),_:1}),P(A,{color:`primary`,variant:`flat`,onClick:E(t).doMkdir},{default:C(()=>[...n[33]||=[R(`创建`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),P(pt,{modelValue:E(t).showFileDelete,"onUpdate:modelValue":n[10]||=e=>E(t).showFileDelete=e,"max-width":`400`},{default:C(()=>[P(D,{border:``},{default:C(()=>[P(ne,null,{default:C(()=>[...n[34]||=[R(`确认删除`,-1)]]),_:1}),P(de,null,{default:C(()=>[n[35]||=R(` 确定要删除 `,-1),_(`strong`,null,x(E(t).deletingFile?.name),1),n[36]||=R(` 吗? `,-1)]),_:1}),P(T,null,{default:C(()=>[P(lt),P(A,{variant:`text`,onClick:n[9]||=e=>E(t).showFileDelete=!1},{default:C(()=>[...n[37]||=[R(`取消`,-1)]]),_:1}),P(A,{color:`error`,variant:`flat`,onClick:E(t).doDeleteFile},{default:C(()=>[...n[38]||=[R(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),P(pt,{modelValue:E(t).showRename,"onUpdate:modelValue":n[13]||=e=>E(t).showRename=e,"max-width":`400`},{default:C(()=>[P(D,{border:``},{default:C(()=>[P(ne,null,{default:C(()=>[...n[39]||=[R(`重命名`,-1)]]),_:1}),P(de,null,{default:C(()=>[P(B,{modelValue:E(t).newName,"onUpdate:modelValue":n[11]||=e=>E(t).newName=e,label:`新名称`,variant:`outlined`,density:`compact`,rules:[E(t).required(`名称`)],autofocus:``,onKeydown:oe(E(t).doRename,[`enter`])},null,8,[`modelValue`,`rules`,`onKeydown`])]),_:1}),P(T,null,{default:C(()=>[P(lt),P(A,{variant:`text`,onClick:n[12]||=e=>E(t).showRename=!1},{default:C(()=>[...n[40]||=[R(`取消`,-1)]]),_:1}),P(A,{color:`primary`,variant:`flat`,onClick:E(t).doRename},{default:C(()=>[...n[41]||=[R(`确定`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),P(Ao,{modelValue:E(t).showChmod,"onUpdate:modelValue":n[14]||=e=>E(t).showChmod=e,file:E(t).chmodFile,"server-id":E(t).selectedServer,loading:E(t).chmodLoading,onApply:E(t).doChmod},null,8,[`modelValue`,`file`,`server-id`,`loading`,`onApply`]),P(pt,{modelValue:E(t).showCompress,"onUpdate:modelValue":n[18]||=e=>E(t).showCompress=e,"max-width":`440`},{default:C(()=>[P(D,{border:``},{default:C(()=>[P(ne,null,{default:C(()=>[...n[42]||=[R(`压缩`,-1)]]),_:1}),P(de,null,{default:C(()=>[_(`p`,jo,`将压缩 `+x(E(t).compressPaths.length)+` 项到当前目录`,1),P(B,{modelValue:E(t).compressDest,"onUpdate:modelValue":n[15]||=e=>E(t).compressDest=e,label:`压缩包路径`,variant:`outlined`,density:`compact`},null,8,[`modelValue`]),P(at,{modelValue:E(t).compressFormat,"onUpdate:modelValue":n[16]||=e=>E(t).compressFormat=e,items:[{title:`tar.gz`,value:`tar.gz`},{title:`zip`,value:`zip`}],"item-title":`title`,"item-value":`value`,label:`格式`,variant:`outlined`,density:`compact`},null,8,[`modelValue`])]),_:1}),P(T,null,{default:C(()=>[P(lt),P(A,{variant:`text`,onClick:n[17]||=e=>E(t).showCompress=!1},{default:C(()=>[...n[43]||=[R(`取消`,-1)]]),_:1}),P(A,{color:`primary`,variant:`flat`,loading:E(t).actionLoading,onClick:E(t).doCompress},{default:C(()=>[...n[44]||=[R(`压缩`,-1)]]),_:1},8,[`loading`,`onClick`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),P(pt,{modelValue:E(t).showDecompress,"onUpdate:modelValue":n[21]||=e=>E(t).showDecompress=e,"max-width":`440`},{default:C(()=>[P(D,{border:``},{default:C(()=>[P(ne,null,{default:C(()=>[...n[45]||=[R(`解压`,-1)]]),_:1}),P(de,null,{default:C(()=>[_(`p`,Mo,x(E(t).decompressSource),1),P(B,{modelValue:E(t).decompressDest,"onUpdate:modelValue":n[19]||=e=>E(t).decompressDest=e,label:`解压到目录`,variant:`outlined`,density:`compact`},null,8,[`modelValue`])]),_:1}),P(T,null,{default:C(()=>[P(lt),P(A,{variant:`text`,onClick:n[20]||=e=>E(t).showDecompress=!1},{default:C(()=>[...n[46]||=[R(`取消`,-1)]]),_:1}),P(A,{color:`primary`,variant:`flat`,loading:E(t).actionLoading,onClick:E(t).doDecompress},{default:C(()=>[...n[47]||=[R(`解压`,-1)]]),_:1},8,[`loading`,`onClick`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),P(pt,{modelValue:E(t).showPreview,"onUpdate:modelValue":n[24]||=e=>E(t).showPreview=e,"max-width":`900`,scrollable:``},{default:C(()=>[P(D,{border:``},{default:C(()=>[P(ne,{class:`d-flex align-center`},{default:C(()=>[_(`span`,No,x(E(t).previewTitle),1),P(lt),P(A,{icon:`mdi-close`,variant:`text`,onClick:n[22]||=e=>E(t).showPreview=!1})]),_:1}),P(ce),P(de,{style:{"max-height":`70vh`}},{default:C(()=>[E(t).previewLoading?(L(),I(ae,{key:0,indeterminate:``,class:`mb-2`})):(L(),z(`pre`,Po,x(E(t).previewContent),1))]),_:1}),P(T,null,{default:C(()=>[P(lt),P(A,{variant:`text`,onClick:n[23]||=e=>E(t).showPreview=!1},{default:C(()=>[...n[48]||=[R(`关闭`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`])],64))}}),[[`__scopeId`,`data-v-110ea120`]]),Io=Ae({id:String,interactive:Boolean,text:String,...j(F({closeOnBack:!1,location:`end`,locationStrategy:`connected`,eager:!0,minWidth:0,offset:10,openOnClick:!1,openOnHover:!0,origin:`auto`,scrim:!1,scrollStrategy:`reposition`,transition:null}),[`absolute`,`retainFocus`,`captureFocus`,`disableInitialFocus`])},`VTooltip`),Lo=Te()({name:`VTooltip`,props:Io(),emits:{"update:modelValue":e=>!0},setup(e,{slots:t}){let n=v(e,`modelValue`),{scopeId:r}=Ke(),i=Ce(),a=le(()=>e.id||`v-tooltip-${i}`),o=b(),s=k(()=>e.location.split(` `).length>1?e.location:e.location+` center`),c=k(()=>e.origin===`auto`||e.origin===`overlap`||e.origin.split(` `).length>1||e.location.split(` `).length>1?e.origin:e.origin+` center`),l=le(()=>e.transition==null?n.value?`scale-transition`:`fade-transition`:e.transition),u=k(()=>Ie({"aria-describedby":a.value},e.activatorProps));return Le(()=>{let i=Ye.filterProps(e);return P(Ye,Ie({ref:o,class:[`v-tooltip`,{"v-tooltip--interactive":e.interactive},e.class],style:e.style,id:a.value},i,{modelValue:n.value,"onUpdate:modelValue":e=>n.value=e,transition:l.value,absolute:!0,location:s.value,origin:c.value,role:`tooltip`,activatorProps:u.value,_disableGlobalStack:!0},r),{activator:t.activator,default:(...n)=>t.default?.(...n)??e.text})}),Ue({},o)}}),Ro={class:`d-flex align-center ga-2 min-w-0`},zo={class:`min-w-0`},Bo={key:0,class:`text-caption text-medium-emphasis text-truncate`},Vo={class:`text-medium-emphasis`},Ho={class:`text-medium-emphasis`},Uo={class:`files-row-actions`},Wo={key:0,class:`text-center text-medium-emphasis py-8`},Go={key:0,class:`text-caption mt-2 text-disabled`},Ko=mt(Re({__name:`FilesList`,setup(e){let t=Sa();return(e,n)=>(L(),z(ve,null,[P(D,{elevation:`0`,border:``,rounded:`lg`,class:fe([`position-relative`,{"files-drop-active":E(t).dropActive}]),onDragenter:n[1]||=N(e=>E(t).dropActive=!0,[`prevent`]),onDragover:n[2]||=N(e=>E(t).dropActive=!0,[`prevent`]),onDragleave:n[3]||=N(e=>E(t).dropActive=!1,[`prevent`]),onDrop:N(E(t).onDropFiles,[`prevent`])},{default:C(()=>[E(t).loadingVisible?(L(),I(ae,{key:0,indeterminate:``,color:`primary`,height:`2`,class:`files-table-progress`})):V(``,!0),P(g,{modelValue:E(t).selectedFiles,"onUpdate:modelValue":n[0]||=e=>E(t).selectedFiles=e,items:E(t).displayedFiles,headers:E(t).fileHeaders,loading:E(t).loadingVisible,"show-select":``,"return-object":``,hover:``,density:`comfortable`,"item-value":`name`,"row-props":E(t).fileRowProps},{"item.name":C(({item:e})=>[_(`div`,Ro,[P(_e,{color:E(t).entryIconColor(e),size:`20`},{default:C(()=>[R(x(E(t).entryIcon(e)),1)]),_:2},1032,[`color`]),E(t).isEntryLikelyUnreadable(e,E(t).sshUserForFiles)?(L(),I(_e,{key:0,size:`18`,color:`warning`,title:`当前 SSH 用户可能无法读取`},{default:C(()=>[...n[20]||=[R(` mdi-shield-lock `,-1)]]),_:1})):V(``,!0),_(`div`,zo,[_(`span`,{class:fe({"font-weight-medium":e.type===`directory`})},x(e.name),3),e.type===`symlink`&&e.link_target?(L(),z(`div`,Bo,` → `+x(e.link_target),1)):V(``,!0)])])]),"item.owner":C(({item:e})=>[P(Lo,{text:E(t).permissionTooltip(e),location:`top`},{activator:C(({props:n})=>[P(it,Ie(n,{size:`small`,variant:`tonal`,color:E(t).ownerChipColor(e.owner||``),class:`text-none`}),{default:C(()=>[R(x(E(t).formatOwnerChip(e)),1)]),_:2},1040,[`color`])]),_:2},1032,[`text`])]),"item.size":C(({item:e})=>[_(`span`,Vo,x(e.type===`directory`?`—`:E(t).formatSize(e.size)),1)]),"item.modified":C(({item:e})=>[_(`span`,Ho,x(e.modified||`—`),1)]),"item.actions":C(({item:e})=>[_(`div`,Uo,[E(t).isRegularFile(e)?(L(),I(A,{key:0,variant:`outlined`,size:`small`,color:`primary`,class:`files-action-btn`,"prepend-icon":`mdi-pencil-outline`,onClick:N(n=>E(t).editFile(e),[`stop`])},{default:C(()=>[...n[21]||=[R(` 编辑 `,-1)]]),_:1},8,[`onClick`])):V(``,!0),E(t).isRegularFile(e)?(L(),I(A,{key:1,variant:`outlined`,size:`small`,class:`files-action-btn`,"prepend-icon":`mdi-eye-outline`,onClick:N(n=>E(t).previewFile(e),[`stop`])},{default:C(()=>[...n[22]||=[R(` 查看 `,-1)]]),_:1},8,[`onClick`])):V(``,!0),E(t).isRegularFile(e)?(L(),I(A,{key:2,variant:`outlined`,size:`small`,class:`files-action-btn`,"prepend-icon":`mdi-download-outline`,onClick:N(n=>E(t).downloadFile(e),[`stop`])},{default:C(()=>[...n[23]||=[R(` 下载 `,-1)]]),_:1},8,[`onClick`])):V(``,!0),P(A,{variant:`outlined`,size:`small`,color:`error`,class:`files-action-btn`,"prepend-icon":`mdi-delete-outline`,onClick:N(n=>E(t).confirmDeleteFile(e),[`stop`])},{default:C(()=>[...n[24]||=[R(` 删除 `,-1)]]),_:1},8,[`onClick`])])]),"no-data":C(()=>[E(t).pageReady&&!E(t).loading&&!E(t).loadingVisible&&E(t).files.length===0?(L(),z(`div`,Wo,[P(_e,{size:`40`,class:`mb-2`},{default:C(()=>[...n[25]||=[R(`mdi-folder-open-outline`,-1)]]),_:1}),_(`div`,null,x(E(t).emptyHint),1),E(t).selectedServer?(L(),z(`div`,Go,` 单击目录进入 · 双击文件编辑 · Ctrl+A 全选 · Ctrl+C/V 复制粘贴 `)):V(``,!0)])):V(``,!0)]),_:1},8,[`modelValue`,`items`,`headers`,`loading`,`row-props`])]),_:1},8,[`class`,`onDrop`]),P(xe,{modelValue:E(t).showContextMenu,"onUpdate:modelValue":n[19]||=e=>E(t).showContextMenu=e,target:[E(t).contextX,E(t).contextY],location:`bottom start`},{default:C(()=>[P(We,{density:`compact`,nav:``},{default:C(()=>[E(t).contextFile&&E(t).contextFile.type===`directory`?(L(),I(Pe,{key:0,"prepend-icon":`mdi-folder-open`,onClick:n[4]||=e=>E(t).contextAction(`open`)},{default:C(()=>[P(y,null,{default:C(()=>[...n[26]||=[R(`打开`,-1)]]),_:1})]),_:1})):V(``,!0),E(t).contextFile&&E(t).isRegularFile(E(t).contextFile)?(L(),I(Pe,{key:1,"prepend-icon":`mdi-pencil`,onClick:n[5]||=e=>E(t).contextAction(`edit`)},{default:C(()=>[P(y,null,{default:C(()=>[...n[27]||=[R(`编辑`,-1)]]),_:1})]),_:1})):V(``,!0),E(t).contextFile&&E(t).isRegularFile(E(t).contextFile)?(L(),I(Pe,{key:2,"prepend-icon":`mdi-eye`,onClick:n[6]||=e=>E(t).contextAction(`preview`)},{default:C(()=>[P(y,null,{default:C(()=>[...n[28]||=[R(`查看`,-1)]]),_:1})]),_:1})):V(``,!0),E(t).contextFile&&E(t).isRegularFile(E(t).contextFile)?(L(),I(Pe,{key:3,"prepend-icon":`mdi-download`,onClick:n[7]||=e=>E(t).contextAction(`download`)},{default:C(()=>[P(y,null,{default:C(()=>[...n[29]||=[R(`下载`,-1)]]),_:1})]),_:1})):V(``,!0),E(t).contextFile?(L(),I(Pe,{key:4,"prepend-icon":`mdi-content-copy`,onClick:n[8]||=e=>E(t).contextAction(`copy`)},{default:C(()=>[P(y,null,{default:C(()=>[...n[30]||=[R(`复制 (Ctrl+C)`,-1)]]),_:1})]),_:1})):V(``,!0),E(t).contextFile?(L(),I(Pe,{key:5,"prepend-icon":`mdi-content-cut`,onClick:n[9]||=e=>E(t).contextAction(`cut`)},{default:C(()=>[P(y,null,{default:C(()=>[...n[31]||=[R(`剪切 (Ctrl+X)`,-1)]]),_:1})]),_:1})):V(``,!0),P(Pe,{"prepend-icon":`mdi-content-paste`,disabled:!E(t).canPasteHere,onClick:n[10]||=e=>E(t).contextAction(`paste`)},{default:C(()=>[P(y,null,{default:C(()=>[...n[32]||=[R(`粘贴到当前目录 (Ctrl+V)`,-1)]]),_:1})]),_:1},8,[`disabled`]),E(t).contextFile?.type===`directory`&&E(t).canPasteHere?(L(),I(Pe,{key:6,"prepend-icon":`mdi-folder-arrow-down`,onClick:n[11]||=e=>E(t).contextAction(`pasteInto`)},{default:C(()=>[P(y,null,{default:C(()=>[R(`粘贴到「`+x(E(t).contextFile.name)+`」`,1)]),_:1})]),_:1})):V(``,!0),P(Pe,{"prepend-icon":`mdi-link-variant`,onClick:n[12]||=e=>E(t).contextAction(`copyPath`)},{default:C(()=>[P(y,null,{default:C(()=>[...n[33]||=[R(`复制路径`,-1)]]),_:1})]),_:1}),P(Pe,{"prepend-icon":`mdi-console`,onClick:n[13]||=e=>E(t).contextAction(`terminal`)},{default:C(()=>[P(y,null,{default:C(()=>[...n[34]||=[R(`终端`,-1)]]),_:1})]),_:1}),P(ce),E(t).contextFile&&(E(t).isRegularFile(E(t).contextFile)||E(t).contextFile.type===`directory`)?(L(),I(Pe,{key:7,"prepend-icon":`mdi-zip-box`,onClick:n[14]||=e=>E(t).contextAction(`compress`)},{default:C(()=>[P(y,null,{default:C(()=>[...n[35]||=[R(`压缩`,-1)]]),_:1})]),_:1})):V(``,!0),E(t).contextFile&&E(t).isArchiveName(E(t).contextFile.name)?(L(),I(Pe,{key:8,"prepend-icon":`mdi-package-up`,onClick:n[15]||=e=>E(t).contextAction(`decompress`)},{default:C(()=>[P(y,null,{default:C(()=>[...n[36]||=[R(`解压`,-1)]]),_:1})]),_:1})):V(``,!0),P(ce),P(Pe,{"prepend-icon":`mdi-file-rename-box`,onClick:n[16]||=e=>E(t).contextAction(`rename`)},{default:C(()=>[P(y,null,{default:C(()=>[...n[37]||=[R(`重命名`,-1)]]),_:1})]),_:1}),P(Pe,{"prepend-icon":`mdi-lock`,onClick:n[17]||=e=>E(t).contextAction(`chmod`)},{default:C(()=>[P(y,null,{default:C(()=>[...n[38]||=[R(`修改权限`,-1)]]),_:1})]),_:1}),P(ce),P(Pe,{"prepend-icon":`mdi-delete`,onClick:n[18]||=e=>E(t).contextAction(`delete`)},{default:C(()=>[P(y,{class:`text-error`},{default:C(()=>[...n[39]||=[R(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`,`target`])],64))}}),[[`__scopeId`,`data-v-4c4bf95f`]]),qo={class:`d-flex flex-wrap align-center justify-space-between ga-2`},Jo=Re({__name:`FilesPermissionAlert`,setup(e){let t=Sa();return(e,n)=>E(t).filesAccessHint?(L(),I(vt,{key:0,type:E(t).filesAccessHint.type,variant:`tonal`,closable:``,prominent:``,density:`comfortable`,class:`mb-4`,icon:`mdi-shield-lock-outline`,"onClick:close":E(t).dismissFilesAccessHint},{default:C(()=>[_(`div`,qo,[_(`span`,null,x(E(t).filesAccessHint.text.split(`目标机安装示例`)[0].trim()),1),E(t).sshUserForFiles&&E(t).sshUserForFiles!==`root`?(L(),I(A,{key:0,size:`small`,variant:`flat`,color:`primary`,"prepend-icon":`mdi-auto-fix`,loading:E(t).setupSudoLoading,disabled:E(t).setupSudoDone,onClick:N(E(t).setupFilesSudo,[`stop`])},{default:C(()=>[R(x(E(t).setupSudoDone?`已配置`:`一键配置 sudo 权限`),1)]),_:1},8,[`loading`,`disabled`,`onClick`])):V(``,!0)])]),_:1},8,[`type`,`onClick:close`])):V(``,!0)}}),Yo={class:`text-caption text-medium-emphasis mb-2 d-flex flex-wrap align-center ga-2`},Xo=Re({__name:`FilesStatusBar`,setup(e){let t=Sa();return(e,n)=>(L(),z(`div`,Yo,[_(`span`,null,x(E(t).statusSummary),1),E(t).browseError?(L(),I(it,{key:0,size:`x-small`,color:`warning`,variant:`tonal`},{default:C(()=>[R(x(E(t).browseError),1)]),_:1})):V(``,!0),E(t).hasClipboard?(L(),I(it,{key:1,size:`x-small`,color:`info`,variant:`tonal`,class:`cursor-pointer`,onClick:n[0]||=()=>E(t).pasteClipboard()},{default:C(()=>[R(x(E(t).clipboardSummary)+` → `+x(E(t).pasteDestLabel)+` · Ctrl+V 粘贴 `,1)]),_:1})):V(``,!0)]))}}),Zo=Re({__name:`FilesToolbar`,setup(e){let t=Sa();return(e,n)=>(L(),I(D,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4 pa-4`},{default:C(()=>[P(ct,{align:`center`,dense:``},{default:C(()=>[P(st,{cols:`12`,sm:`4`},{default:C(()=>[P(at,{modelValue:E(t).selectedServer,"onUpdate:modelValue":[n[0]||=e=>E(t).selectedServer=e,E(t).onServerChange],items:E(t).serverList,"item-title":`name`,"item-value":`id`,label:`选择服务器`,variant:`outlined`,density:`compact`,"prepend-inner-icon":`mdi-server`},null,8,[`modelValue`,`items`,`onUpdate:modelValue`])]),_:1}),P(st,{cols:`12`,sm:`4`},{default:C(()=>[P(B,{modelValue:E(t).currentPath,"onUpdate:modelValue":n[1]||=e=>E(t).currentPath=e,label:`路径`,variant:`outlined`,density:`compact`,"prepend-inner-icon":`mdi-folder`,"append-inner-icon":`mdi-arrow-right`,"onClick:appendInner":E(t).browseCurrent,onKeydown:oe(E(t).browseCurrent,[`enter`])},null,8,[`modelValue`,`onClick:appendInner`,`onKeydown`])]),_:1}),P(st,{cols:`12`,sm:`3`},{default:C(()=>[P(B,{modelValue:E(t).fileFilter,"onUpdate:modelValue":n[2]||=e=>E(t).fileFilter=e,label:`筛选文件名`,variant:`outlined`,density:`compact`,"prepend-inner-icon":`mdi-magnify`,clearable:``,"hide-details":``},null,8,[`modelValue`])]),_:1}),P(st,{cols:`12`,sm:`3`},{default:C(()=>[P(at,{modelValue:E(t).extFilter,"onUpdate:modelValue":n[3]||=e=>E(t).extFilter=e,items:E(t).FILE_EXT_FILTERS,"item-title":`title`,"item-value":`value`,label:`类型`,variant:`outlined`,density:`compact`,"hide-details":``,clearable:``},null,8,[`modelValue`,`items`])]),_:1}),P(st,{cols:`12`,sm:`2`},{default:C(()=>[P(at,{modelValue:E(t).sortBy,"onUpdate:modelValue":n[4]||=e=>E(t).sortBy=e,items:E(t).sortOptions,"item-title":`title`,"item-value":`value`,label:`排序`,variant:`outlined`,density:`compact`,"hide-details":``},null,8,[`modelValue`,`items`])]),_:1}),P(st,{cols:`12`,class:`d-flex ga-2 flex-wrap justify-end`},{default:C(()=>[P(A,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-upload`,onClick:n[5]||=e=>E(t).showUpload=!0},{default:C(()=>[...n[10]||=[R(` 上传 `,-1)]]),_:1}),P(A,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-file-plus`,disabled:!E(t).selectedServer,onClick:n[6]||=e=>E(t).showNewFile=!0},{default:C(()=>[...n[11]||=[R(` 新建文件 `,-1)]]),_:1},8,[`disabled`]),P(A,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-folder-plus`,onClick:n[7]||=e=>E(t).showMkdir=!0},{default:C(()=>[...n[12]||=[R(` 新建目录 `,-1)]]),_:1}),P(A,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-zip-box`,disabled:!E(t).selectedServer||!E(t).selectedFileCount,onClick:n[8]||=e=>E(t).openCompressDialog()},{default:C(()=>[...n[13]||=[R(` 压缩 `,-1)]]),_:1},8,[`disabled`]),P(A,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-content-paste`,disabled:!E(t).canPasteHere,onClick:n[9]||=()=>E(t).pasteClipboard()},{default:C(()=>[...n[14]||=[R(` 粘贴 `,-1)]]),_:1},8,[`disabled`]),P(A,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-arrow-up`,disabled:!E(t).canGoUp,onClick:E(t).goUp},{default:C(()=>[...n[15]||=[R(` 上级 `,-1)]]),_:1},8,[`disabled`,`onClick`]),P(A,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-refresh`,onClick:E(t).browseCurrent},{default:C(()=>[...n[16]||=[R(`刷新`,-1)]]),_:1},8,[`onClick`]),P(A,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-console`,disabled:!E(t).selectedServer,onClick:E(t).openInTerminal},{default:C(()=>[...n[17]||=[R(` 终端 `,-1)]]),_:1},8,[`disabled`,`onClick`])]),_:1})]),_:1})]),_:1}))}}),Qo=b(null);function $o(){let e=k(()=>Qo.value!==null),t=k(()=>Qo.value?`${Qo.value.mode===`cut`?`已剪切`:`已复制`} ${Qo.value.paths.length} 项`:``);function n(e,t,n){if(!n.length)return!1;let r=[...new Set(n.map(e=>Q(e)))];return Qo.value={mode:e,serverId:t,paths:r,label:r.map(e=>e.split(`/`).pop()||e).join(`, `)},!0}function r(){Qo.value=null}function i(e){return!!(Qo.value&&e&&Qo.value.serverId===e)}function a(e,t){let n=Q(t);for(let t of e){let e=Q(t);if(n===e)return`「${e.split(`/`).pop()||e}」与目标路径相同,无需粘贴`;if(n.startsWith(`${e}/`))return`不能粘贴到源目录「${e}」的内部`}return null}async function o(e){let t=Qo.value;if(!t)throw Error(`剪贴板为空`);let n=Q(e),i=a(t.paths,n);if(i)throw Error(i);let o=t.mode===`cut`?`move`:`copy`;await M.post(`/sync/file-clipboard`,{server_id:t.serverId,mode:o,sources:t.paths,dest_dir:n}),t.mode===`cut`&&r()}return{clipboard:Qo,hasClipboard:e,clipboardSummary:t,setFromSelection:n,clear:r,canPasteOnServer:i,validatePasteTarget:a,pasteToDirectory:o}}function es(e){if(!(e instanceof HTMLElement))return!1;let t=e.tagName;return t===`INPUT`||t===`TEXTAREA`||e.isContentEditable}function ts(e,t,n){function r(r){if(!es(r.target)){if(r.key===`F5`){r.preventDefault(),e.refresh();return}if(r.key===`Backspace`){r.preventDefault(),e.goUp();return}if(r.key===`F2`&&t.value.length===1){r.preventDefault(),e.renameSelection();return}if(r.key===`Delete`&&t.value.length>0&&(r.preventDefault(),e.deleteSelection()),(r.ctrlKey||r.metaKey)&&r.key.toLowerCase()===`a`){r.preventDefault(),e.selectAll();return}if((r.ctrlKey||r.metaKey)&&r.key.toLowerCase()===`c`){t.value.length>0&&(r.preventDefault(),e.copySelection());return}if((r.ctrlKey||r.metaKey)&&r.key.toLowerCase()===`x`){t.value.length>0&&(r.preventDefault(),e.cutSelection());return}(r.ctrlKey||r.metaKey)&&r.key.toLowerCase()===`v`&&n.value&&(r.preventDefault(),e.pasteClipboard())}}ze(()=>window.addEventListener(`keydown`,r)),ke(()=>window.removeEventListener(`keydown`,r))}var ns=`nexus:files:last_server_id`,rs=`nexus:files-hint-dismissed`,is=5e3;function as(e,t){return`${e}:${t}`}var os=$e(`files`,()=>{let e=b(null),t=b(Na),n=b([]),r=b(!1),i=b(!1),a=b(``),o=b(null),s=b(null),c=b(!1),l=b(!1),u=b(!1),d=b(!1),f=b(!1),p=b(!1),m=new Map;function h(e){return Date.now()-e.at<=is}function g(e,t){return m.get(as(e,t))??null}function _(e,t){let n=g(e,t);return!n||!h(n)?null:n.items}function v(e,t){return g(e,t)?.etag}function y(e,t){let n=g(e,t);n&&(n.at=Date.now())}function x(e,t,n,r){let i=as(e,t),a=m.get(i);if(m.set(i,{items:n,at:Date.now(),etag:r??a?.etag}),m.size>50){let e=[...m.entries()].sort((e,t)=>e[1].at-t[1].at)[0];e&&m.delete(e[0])}}function S(e,t){if(e==null){m.clear();return}if(t==null){let t=`${e}:`;for(let e of[...m.keys()])e.startsWith(t)&&m.delete(e);return}m.delete(as(e,t))}function C(){s.value=null,c.value=!1,u.value=!1}return{selectedServer:e,currentPath:t,files:n,loading:r,loadingVisible:i,browseError:a,filesCapability:o,lastReadDeniedPath:s,accessHintDismissed:c,setupSudoLoading:l,setupSudoDone:u,pageReady:d,routeReady:f,initing:p,getCacheEntry:g,getCached:_,getCachedEtag:v,touchCache:y,setCached:x,invalidateCache:S,resetForServerChange:C}}),ss={directory:0,symlink:1,file:2};function cs(e,t,n){let r=n===`asc`?1:-1;return[...e].sort((e,n)=>{let i=ss[e.type]??9,a=ss[n.type]??9;if(i!==a)return i-a;let o=0;return o=t===`name`?e.name.localeCompare(n.name):t===`size`?(e.size??0)-(n.size??0):(e.modified??``).localeCompare(n.modified??``),o*r})}var ls=[{title:`全部`,value:``},{title:`.conf / .ini`,value:`conf,ini`},{title:`.log`,value:`log`},{title:`.sh`,value:`sh`},{title:`.py`,value:`py`},{title:`.json`,value:`json`},{title:`.yml / .yaml`,value:`yml,yaml`},{title:`.txt`,value:`txt`},{title:`.php`,value:`php`},{title:`.js / .ts`,value:`js,ts`}];function us(e,t){if(!t)return!0;let n=e.toLowerCase();return t.split(`,`).some(e=>n.endsWith(`.${e.trim()}`))}function ds(e){let t=e.toLowerCase();return t.endsWith(`.tar.gz`)||t.endsWith(`.tgz`)||t.endsWith(`.zip`)}var fs=300*1024,ps=2*1024*1024,ms=40,hs=4,gs=new Map;function _s(e,t){return`${e}:${Q(t)}`}function vs(e){let t=Q(e),n=t.lastIndexOf(`/`);return n<=0?`/`:t.slice(0,n)||`/`}function ys(){gs.clear()}function bs(e,t){let n=Q(t);for(let t of[...gs.keys()]){if(!t.startsWith(`${e}:`)){gs.delete(t);continue}vs(t.slice(`${e}:`.length))!==n&&gs.delete(t)}}function xs(e,t){gs.delete(_s(e,t))}function Ss(e){if(e.type!==`file`)return!1;let t=e.size??0;return t>0&&t<=307200}function Cs(e){return e!=null&&e>0&&e>2097152}function ws(e){return typeof e==`string`?{content:e,mtime:null,etag:null,eol:`LF`}:{content:e.content??JSON.stringify(e,null,2),mtime:e.mtime??null,etag:e.etag??null,eol:e.eol??`LF`}}async function Ts(e,t,n=fs){let r=_s(e,t),i=gs.get(r);if(i!==void 0)return i;let a=ws(await M.post(`/sync/read-file`,{server_id:e,path:Q(t),max_size:n}));return gs.set(r,a),a}function Es(e,t,n){let r=n.filter(Ss).sort((e,t)=>(e.size??0)-(t.size??0)).slice(0,ms);if(!r.length)return;let i=0,a=async()=>{for(;ia()))}function Ds(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.rel=`noopener`,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(n)}function Os(e){let t=nt(),{selectedServer:n,currentPath:r}=S(os()),{selectedFiles:i,selectedAbsolutePaths:a,clearSelection:o}=e.selection,{setFromSelection:s,canPasteOnServer:c,pasteToDirectory:l}=$o(),u=b(!1),d=b(!1),f=b(!1),p=b(``),m=b(!1),h=b(!1),g=b(``),_=b(`tar.gz`),v=b([]),y=b(!1),x=b(``),C=b(`.`),ee=b(!1),te=b([]),ne=b(!1),re=b(``),w=e.actionLoading??b(!1),ie=b(null),T=b(!1),E=b(``),ae=b(null),oe=b(!1),se=b(!1),ce=b(null),D=b(!1),le=b(0),O=b(0),ue=b(null);function de(e){if(e)return Q(e);let t=i.value.filter(e=>e.type===`directory`);return t.length===1&&i.value.length===1?$(r.value,t[0].name):Q(r.value)}let A=k(()=>{let e=de();return e===Q(r.value)?`当前目录`:e});function j(e){if(!n.value)return;let r=a(e);if(!r.length){t(`请先选择文件或目录`,`warning`);return}s(`copy`,n.value,r)&&t(`已复制 ${r.length} 项`)}function fe(e){if(!n.value)return;let r=a(e);if(!r.length){t(`请先选择文件或目录`,`warning`);return}s(`cut`,n.value,r)&&t(`已剪切 ${r.length} 项`)}async function pe(r){if(!n.value){t(`请先选择服务器`,`warning`);return}if(!c(n.value)){t(`剪贴板为空或服务器不一致`,`warning`);return}let i=de(r);w.value=!0;try{await l(i),o(),e.invalidateAfterMutation(i),await e.browse({force:!0}),t(`已粘贴到 ${i}`)}catch(e){t(e instanceof Error?e.message:`粘贴失败`,`error`)}finally{w.value=!1}}async function me(e){if(u.value=!1,!n.value){t(`请先选择服务器`,`warning`);return}let r=e.dataTransfer?.files;r?.length&&(te.value=Array.from(r),await Oe())}function he(t){if(D.value=!1,!ue.value)return;let n=ue.value;switch(t){case`open`:e.openEntry(n);break;case`copy`:j([n]);break;case`cut`:fe([n]);break;case`paste`:pe();break;case`pasteInto`:n.type===`directory`&&pe($(r.value,n.name));break;case`edit`:e.editFile(n);break;case`preview`:e.previewFile(n);break;case`download`:we(n);break;case`copyPath`:ge(n);break;case`terminal`:e.openInTerminal();break;case`compress`:_e([n]);break;case`decompress`:ve(n);break;case`rename`:xe(n);break;case`chmod`:P(n);break;case`delete`:Te(n);break}}async function ge(e){let n=$(r.value,e.name);try{await navigator.clipboard.writeText(n),t(`路径已复制`)}catch{t(`复制失败`,`error`)}}function _e(e){if(!n.value)return;let a=e?.length?e:i.value.length?i.value:[];if(!a.length){t(`请选择要压缩的文件或目录`,`warning`);return}v.value=a.map(e=>$(r.value,e.name));let o=a.length===1?a[0].name.replace(/\.[^.]+$/,``):`archive`;g.value=$(r.value,`${o}.tar.gz`),_.value=`tar.gz`,h.value=!0}function ve(e){if(n.value){if(!ds(e.name)){t(`仅支持 .tar.gz / .tgz / .zip`,`warning`);return}x.value=$(r.value,e.name),C.value=r.value,y.value=!0}}async function ye(){if(!(!n.value||!v.value.length||!g.value)){w.value=!0;try{let r=g.value;_.value===`zip`&&!r.endsWith(`.zip`)&&(r=r.replace(/\.tar\.gz$/i,`.zip`),r.endsWith(`.zip`)||(r+=`.zip`)),await M.post(`/sync/compress`,{server_id:n.value,paths:v.value,dest:r,format:_.value}),h.value=!1,o(),e.invalidateAfterMutation(),await e.browse({force:!0}),t(`压缩完成`)}catch(e){t(e instanceof Error?e.message:`压缩失败`,`error`)}finally{w.value=!1}}}async function N(){if(!(!n.value||!x.value)){w.value=!0;try{await M.post(`/sync/decompress`,{server_id:n.value,path:x.value,dest:C.value||`.`}),y.value=!1,e.invalidateAfterMutation(),await e.browse({force:!0}),t(`解压完成`)}catch(e){t(e instanceof Error?e.message:`解压失败`,`error`)}finally{w.value=!1}}}async function be(){if(!n.value||!p.value)return;let i=La(p.value);if(i!==!0){t(i,`warning`);return}let a=p.value,o=$(r.value,a);w.value=!0;try{await M.post(`/sync/write-file`,{server_id:n.value,path:o,content:``}),f.value=!1,p.value=``,xs(n.value,o),e.invalidateAfterMutation(),await e.browse({force:!0}),t(`文件已创建`),await He(),e.editorWorkbench.value?.openFile({path:o,name:a,content:``,eol:`LF`,etag:null,mtime:null})}catch(e){t(e instanceof Error?e.message:`创建失败`,`error`)}finally{w.value=!1}}function xe(e){ae.value=e,E.value=e.name,T.value=!0}async function Se(){if(!(!n.value||!ae.value||!E.value))try{await M.post(`/sync/file-ops`,{server_id:n.value,operation:`rename`,path:$(r.value,ae.value.name),new_path:$(r.value,E.value)}),T.value=!1,e.invalidateAfterMutation(),await e.browse({force:!0}),t(`重命名成功`)}catch(e){t(e instanceof Error?e.message:`重命名失败`,`error`)}}function P(e){ce.value=e,oe.value=!0}async function F(i){if(!(!n.value||!ce.value)){se.value=!0;try{await M.post(`/sync/chmod`,{server_id:n.value,path:$(r.value,ce.value.name),mode:i.mode,owner:i.owner,group:i.group,recursive:i.recursive??!1}),oe.value=!1,e.invalidateAfterMutation(),await e.browse({force:!0}),t(`权限已修改`)}catch(e){t(e instanceof Error?e.message:`修改权限失败`,`error`)}finally{se.value=!1}}}async function Ce(){if(!n.value||!i.value.length||!confirm(`确定删除 ${i.value.length} 个文件?`))return;let a=0,s=0;for(let e of i.value)try{await M.post(`/sync/file-ops`,{server_id:n.value,operation:`delete`,path:$(r.value,e.name)}),a++}catch{s++}o(),e.invalidateAfterMutation(),await e.browse({force:!0}),s===0?t(`已删除 ${a} 项`):t(`删除完成:成功 ${a},失败 ${s}`,s>0?`warning`:`success`)}async function we(e){if(n.value)try{let i=$(r.value,e.name),{blob:a,filename:o}=await M.download(`/sync/download`,{server_id:n.value,path:i});Ds(a,o),t(`已下载 ${o}`)}catch(e){t(e instanceof Error?e.message:`下载失败`,`error`)}}async function Te(e){ie.value=e,ee.value=!0}async function Ee(){if(!(!n.value||!ie.value)){w.value=!0;try{await M.post(`/sync/file-ops`,{server_id:n.value,operation:`delete`,path:$(r.value,ie.value.name)}),ee.value=!1,e.invalidateAfterMutation(),await e.browse({force:!0}),t(`已删除`)}catch(e){t(e instanceof Error?e.message:`删除失败`,`error`)}finally{w.value=!1}}}async function De(){if(!n.value||!re.value)return;let i=La(re.value);if(i!==!0){t(i,`warning`);return}w.value=!0;try{await M.post(`/sync/file-ops`,{server_id:n.value,operation:`mkdir`,path:$(r.value,re.value)}),m.value=!1,re.value=``,e.invalidateAfterMutation(),await e.browse({force:!0}),t(`目录已创建`)}catch(e){t(e instanceof Error?e.message:`创建失败`,`error`)}finally{w.value=!1}}async function Oe(){if(!(!n.value||!te.value.length)){ne.value=!0;try{let i=new FormData;for(let e of te.value)i.append(`files`,e);i.append(`server_id`,String(n.value)),i.append(`remote_path`,r.value),await M.upload(`/sync/upload`,i),d.value=!1,te.value=[],e.invalidateAfterMutation(),await e.browse({force:!0}),t(`上传成功`)}catch(e){t(e instanceof Error?e.message:`上传失败`,`error`)}finally{ne.value=!1}}}function ke(e){return e instanceof HTMLElement?!!e.closest(`button, a, input, .v-checkbox, .v-selection-control`):!1}function I(e){let t=e.item;return{class:t.type===`directory`?`files-row--dir`:void 0,style:{cursor:t.type===`directory`||t.type===`symlink`?`pointer`:`default`},onClick:e=>{ke(e.target)||e.detail===1&&Ae(e,{item:t})},onDblclick:e=>{ke(e.target)||je(e,{item:t})},onContextmenu:e=>{ke(e.target)||L(e,{item:t})}}}function Ae(t,{item:n}){(n.type===`directory`||n.type===`symlink`)&&e.openEntry(n)}function je(t,{item:n}){n.type===`file`&&e.editFile(n)}function L(e,{item:t}){e.preventDefault(),ue.value=t,le.value=e.clientX,O.value=e.clientY,D.value=!0}return{dropActive:u,showUpload:d,showNewFile:f,newFileName:p,showMkdir:m,showCompress:h,compressDest:g,compressFormat:_,compressPaths:v,showDecompress:y,decompressSource:x,decompressDest:C,showFileDelete:ee,uploadFiles:te,uploading:ne,mkdirName:re,actionLoading:w,deletingFile:ie,showRename:T,newName:E,renamingFile:ae,showChmod:oe,chmodLoading:se,chmodFile:ce,showContextMenu:D,contextX:le,contextY:O,contextFile:ue,copyToClipboard:j,cutToClipboard:fe,pasteClipboard:pe,onDropFiles:me,contextAction:he,openCompressDialog:_e,openDecompressDialog:ve,doCompress:ye,doDecompress:N,doNewFile:be,startRename:xe,doRename:Se,startChmod:P,doChmod:F,batchDelete:Ce,downloadFile:we,confirmDeleteFile:Te,doDeleteFile:Ee,doMkdir:De,doUpload:Oe,fileRowProps:I,pasteDestLabel:A}}var ks=!1;function As(){O(async()=>{let{initMonaco:e}=await import(`./initMonaco-Cqv-KFLL.js`);return{initMonaco:e}},[]).then(({initMonaco:e})=>{e(),la()})}function js(){ks||(ks=!0,typeof requestIdleCallback==`function`?requestIdleCallback(As,{timeout:3e3}):setTimeout(As,300))}var Ms=200,Ns=0,Ps=null,Fs=``,Is=null;function Ls(e){return e.includes(`No such file or directory`)||e.includes(`not a directory`)}function Rs(e,t){return Ls(e)?`路径不存在:${t},请检查服务器「target_path」设置`:e.includes(`Permission denied`)||e.includes(`Operation not permitted`)?`无读取权限(${t})`:e.includes(`connection_error`)||e.includes(`SSH pool at capacity`)?`SSH 连接失败或连接池繁忙,请稍后点「刷新」重试`:e.includes(`timed out`)||e.includes(`timeout`)?`远程命令超时(${t}),请检查目标机负载或网络`:e}function zs(e){e.loading=!0,!Is&&(Is=setTimeout(()=>{Is=null,e.loading&&(e.loadingVisible=!0)},Ms))}function Bs(e){e.loading=!1,Is&&=(clearTimeout(Is),null),e.loadingVisible=!1}async function Vs(e,t,n){let r={};n&&(r[`If-None-Match`]=n);try{return await se(`/files/browse`,{method:`GET`,params:{server_id:e,path:t},headers:r})}catch(n){if(!(n instanceof re&&(n.status>=500||n.status===404||n.status===405)))throw n;return{status:200,data:await M.post(`/sync/browse`,{server_id:e,path:t}),etag:null}}}function Hs(e){let t=nt(),n=ge(),r=ie(),i=os(),{selectedServer:a,currentPath:o,files:s,loading:c,loadingVisible:l,browseError:u,pageReady:d,filesCapability:f}=S(i);function p(){let e={...n.query};a.value?(e.server_id=String(a.value),e.path=o.value===`/www/wwwroot`?void 0:o.value):(delete e.server_id,delete e.path),r.replace({query:e})}let m=k(()=>d.value?a.value?u.value?u.value:e?.value.trim()?`无匹配文件`:f.value?.is_root?`目录为空(${o.value}),可在上方修改路径或到「服务器」核对 target_path`:`目录为空(${o.value})`:`请先选择服务器`:`正在加载…`);function h(e,n,r,a,c){if(c!==Ns)return!1;let{items:l,error:d}=Ma(r??{items:[]});if(d&&Ls(d)&&n!==`/`){u.value=``;let e=Ia(n);if(e)return t(`路径 "${n}" 不存在,已自动跳转到上级目录`,`info`),o.value=e,g(),!0}return u.value=d?Rs(d,n):``,d&&!Ls(d)&&t(Rs(d,n),`warning`),s.value=l,d||i.setCached(e,n,l,a??void 0),e&&l.length&&(bs(e,n),Es(e,n,l),js()),!0}async function g(e){if(!a.value)return;let n=Q(o.value),r=a.value,c=`${r}:${n}`,l=e?.force?null:i.getCached(r,n);if(l&&(s.value=l,u.value=``),Ps&&Fs===c)return Ps;Fs=c;let d=++Ns;zs(i),o.value=n;let f=e?.force?void 0:i.getCachedEtag(r,n);return Ps=(async()=>{try{let e=await Vs(r,n,f);if(d!==Ns)return;if(e.status===304){let t=i.getCacheEntry(r,n);if(t){s.value=t.items,i.touchCache(r,n),u.value=``;return}if(e=await Vs(r,n),d!==Ns)return}h(r,n,e.data,e.etag,d)}catch(e){if(d!==Ns)return;let n=ut(e,`浏览目录失败`);u.value=n,t(n,`error`)}finally{d===Ns&&(Bs(i),p()),Fs===c&&(Ps=null,Fs=``)}})(),Ps}function _(){if(!a.value){t(`请先选择服务器`,`warning`);return}o.value=Q(o.value),i.invalidateCache(a.value,o.value),g({force:!0})}function v(e){if(!a.value)return;let t=e??o.value;i.invalidateCache(a.value,Q(t)),ys()}return{emptyHint:m,browse:g,browseCurrent:_,invalidateAfterMutation:v,loadingVisible:l}}function Us(e){return e?e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/1024/1024).toFixed(1)} MB`:`—`}function Ws(e){let t=nt(),{selectedServer:n,currentPath:r,lastReadDeniedPath:i,accessHintDismissed:a}=S(os()),o=b(!1),s=b(``),c=b(``),l=b(!1),u=b(null);async function d(){let e=Date.now()+8e3;for(;Date.now()setTimeout(e,40)),await He()}return u.value}function f(e,n){return Cs(e.size)?(t(`文件超过 2MB(${Us(e.size)}),无法${n},请下载或使用终端`,`warning`),!0):!1}function p(t){n.value&&t&&xs(n.value,t),e.invalidateAfterMutation(),e.browse({force:!0})}async function m(e){if(!n.value||f(e,`查看`))return;let u=$(r.value,e.name);s.value=e.name,c.value=``,l.value=!0,o.value=!0,(e.size??0)>307200&&t(`文件较大(${Us(e.size)}),正在加载…`,`info`);try{c.value=(await Ts(n.value,u,2097152)).content||`(空文件)`}catch(n){let r=n instanceof Error?n.message:`读取失败`;c.value=r,yo(r)&&(i.value=e.name,a.value=!1),t(r,`error`)}finally{l.value=!1}}async function h(o){if(n.value&&!f(o,`编辑`)){(o.size??0)>307200&&t(`文件较大(${Us(o.size)}),正在加载…`,`info`),e.actionLoading.value=!0;try{let e=$(r.value,o.name),i=await Ts(n.value,e,ps),a=await d();if(!a){t(`编辑器尚未就绪,请稍后重试`,`error`);return}a.openFile({path:e,name:o.name,content:i.content,eol:i.eol,etag:i.etag,mtime:i.mtime})}catch(e){let n=e instanceof Error?e.message:`读取失败`;yo(n)&&(i.value=o.name,a.value=!1),t(n,`error`)}finally{e.actionLoading.value=!1}}}return{showPreview:o,previewTitle:s,previewContent:c,previewLoading:l,editorWorkbench:u,previewFile:m,editFile:h,onEditorSaved:p,formatSize:Us}}function Gs(e){let t=nt(),n=ge(),r=ie(),{servers:i,loadServers:a}=dt(),o=os(),{selectedServer:s,currentPath:c,pageReady:l,routeReady:u,initing:d,accessHintDismissed:f}=S(o),p=k(()=>Ra(c.value)),m=k(()=>Ia(c.value)!==null);function h(e){if(e==null)return Na;let t=i.value.find(t=>t.id===e)?.target_path?.trim();return t?Q(t):Na}function g(){let e=n.query.path;return typeof e==`string`&&e.trim()?Q(e):h(s.value)}function _(){let e=n.query.server_id;if(e){let t=Number(e);if(Number.isFinite(t)&&i.value.some(e=>e.id===t))return t}let t=sessionStorage.getItem(ns);if(t){let e=Number(t);if(Number.isFinite(e)&&i.value.some(t=>t.id===e))return e}return i.value[0]?.id??null}function v(n){if(!s.value){t(`请先选择服务器`,`warning`);return}c.value=Q(n),e.clearSelection(),e.browse()}function y(e){if(e.type===`directory`){v($(c.value,e.name));return}if(e.type===`symlink`){let n=e.link_target?.trim();n?.startsWith(`/`)?v(n):t(n?`符号链接 → ${n}`:`相对符号链接(请在终端中打开)`,`info`)}}function b(){let e=Ia(c.value);e!=null&&v(e)}function x(e){let t=p.value[e];t&&!t.disabled&&v(t.path)}function C(){s.value&&r.push({path:`/terminal`,query:{server_id:String(s.value),path:c.value||`/`}})}function ee(){d.value||(s.value&&sessionStorage.setItem(ns,String(s.value)),o.invalidateCache(),c.value=h(s.value),e.clearSelection(),o.resetForServerChange(),sessionStorage.removeItem(rs),(async()=>{await e.refreshFilesCapability(),await e.browse({force:!0})})())}return ze(async()=>{d.value=!0;try{if(await a(),sessionStorage.getItem(`nexus:files-hint-dismissed`)&&(f.value=!0),!i.value.length){t(`暂无可用服务器,请先在「服务器」页添加`,`warning`),l.value=!0;return}let r=_();if(r==null){l.value=!0;return}s.value=r;let o=n.query.path;c.value=typeof o==`string`&&o?Q(o):h(r),await e.refreshFilesCapability(),await e.browse(),l.value=!0,u.value=!0}finally{d.value=!1}}),qe(()=>n.query.server_id,t=>{u.value&&t&&Number(t)!==s.value&&(s.value=Number(t),c.value=g(),o.resetForServerChange(),(async()=>{await e.refreshFilesCapability(),await e.browse({force:!0})})())}),qe(()=>n.query.path,()=>{if(!u.value||!s.value)return;let t=g();t!==Q(c.value)&&(c.value=t,e.clearSelection(),e.browse())}),{serverList:i,breadcrumbs:p,canGoUp:m,navigateToPath:v,openEntry:y,goUp:b,onBreadcrumbClick:x,openInTerminal:C,onServerChange:ee,defaultPathForServer:h}}function Ks(e){let t=nt(),{selectedServer:n,files:r,browseError:i,filesCapability:a,lastReadDeniedPath:o,accessHintDismissed:s,setupSudoLoading:c,setupSudoDone:l}=S(os()),u=k(()=>a.value?.ssh_user??null),d=k(()=>{let e=u.value;return e?r.value.filter(t=>bo(t,e)).length:0}),f=k(()=>{if(s.value||!n.value||i.value&&Ls(i.value))return null;let e=a.value;return So({sshUser:e?.ssh_user,canSudo:e?.can_sudo_nopasswd??!1,whitelistOk:e?.whitelist_ok??!1,isRootSsh:e?.is_root??!1,filesElevation:e?.files_elevation,capabilityMessage:e?.message,lastReadDeniedPath:o.value,unreadableCount:d.value})});function p(){s.value=!0,sessionStorage.setItem(rs,`1`)}async function m(){if(!n.value){a.value=null;return}try{a.value=await M.get(`/servers/${n.value}/files-capability`)}catch{a.value=null}}async function h(){if(n.value){c.value=!0;try{let r=await M.post(`/servers/${n.value}/setup-files-sudo`,{});l.value=!0,t(r.message||`sudoers 配置成功,文件管理器现在可自动提权`,`success`),p(),await m(),await e.browse({force:!0})}catch(e){t(`一键配置失败:${e instanceof Error?e.message:`配置失败`}`,`error`)}finally{c.value=!1}}}return{sshUserForFiles:u,filesAccessHint:f,dismissFilesAccessHint:p,refreshFilesCapability:m,setupFilesSudo:h}}function qs(){let{currentPath:e}=S(os()),t=b([]),n=k(()=>t.value.length);function r(){t.value=[]}function i(n){return(n?.length?n:t.value).map(t=>$(e.value,t.name))}return{selectedFiles:t,selectedFileCount:n,clearSelection:r,selectedAbsolutePaths:i}}function Js(){let e=b(``),t=b(``),n=b(`name`),r=[{title:`名称`,value:`name`},{title:`大小`,value:`size`},{title:`修改时间`,value:`modified`}],{selectedServer:i,currentPath:a,files:o,loading:s,browseError:c,pageReady:l,setupSudoLoading:u,setupSudoDone:d}=S(os()),f=qs(),{selectedFiles:p,selectedFileCount:m,clearSelection:h}=f,{emptyHint:g,browse:_,browseCurrent:v,invalidateAfterMutation:y,loadingVisible:x}=Hs(e),C=Ks({browse:_}),{sshUserForFiles:ee,filesAccessHint:te,dismissFilesAccessHint:ne,setupFilesSudo:re}=C,w=Gs({browse:_,refreshFilesCapability:C.refreshFilesCapability,clearSelection:h}),ie=b(!1),T=Ws({browse:_,invalidateAfterMutation:y,actionLoading:ie}),E=Os({browse:_,invalidateAfterMutation:y,selection:f,openEntry:w.openEntry,editFile:T.editFile,previewFile:T.previewFile,openInTerminal:w.openInTerminal,editorWorkbench:T.editorWorkbench,actionLoading:ie}),{hasClipboard:ae,clipboardSummary:oe,canPasteOnServer:se}=$o(),ce=k(()=>se(i.value)),D=k(()=>{let r=cs(o.value,n.value,`asc`),i=t.value;i&&(r=r.filter(e=>us(e.name,i)));let a=e.value.trim().toLowerCase();return a&&(r=r.filter(e=>e.name.toLowerCase().includes(a))),r}),le=k(()=>{let e=o.value.filter(e=>e.type===`directory`).length,t=o.value.filter(e=>e.type===`file`).length,n=o.value.filter(e=>e.type===`symlink`).length,r=o.value.filter(Ss).length,i=[`${e} 个目录`,`${t} 个文件`];return n&&i.push(`${n} 个链接`),r&&i.push(`${r} 个 ≤300KB 可预加载`),`${i.join(`,`)} · ${a.value}`});function O(e){return ds(e)}function ue(e){return e.type===`directory`?`mdi-folder`:e.type===`symlink`?`mdi-link-variant`:`mdi-file-outline`}function de(e){return e.type===`directory`?`amber`:e.type===`symlink`?`teal`:`blue`}function A(e){return e.type===`file`}return ts({refresh:v,goUp:w.goUp,renameSelection:()=>{p.value.length===1&&E.startRename(p.value[0])},deleteSelection:()=>{p.value.length>0&&E.batchDelete()},selectAll:()=>{p.value=[...D.value]},copySelection:()=>E.copyToClipboard(),cutSelection:()=>E.cutToClipboard(),pasteClipboard:()=>{E.pasteClipboard()}},p,ce),{FILE_EXT_FILTERS:ls,validatePathSegment:La,required:ft,fileFilter:e,extFilter:t,sortBy:n,sortOptions:r,selectedServer:i,currentPath:a,files:o,loading:s,loadingVisible:x,browseError:c,pageReady:l,setupSudoLoading:u,setupSudoDone:d,serverList:w.serverList,onServerChange:w.onServerChange,browseCurrent:v,filesAccessHint:te,dismissFilesAccessHint:ne,setupFilesSudo:re,sshUserForFiles:ee,statusSummary:le,hasClipboard:ae,clipboardSummary:oe,pasteDestLabel:E.pasteDestLabel,canPasteHere:ce,breadcrumbs:w.breadcrumbs,onBreadcrumbClick:w.onBreadcrumbClick,canGoUp:w.canGoUp,goUp:w.goUp,selectedFiles:p,selectedFileCount:m,displayedFiles:D,fileHeaders:[{title:`名称`,key:`name`},{title:`归属`,key:`owner`,width:110,sortable:!1},{title:`大小`,key:`size`,width:120},{title:`修改时间`,key:`modified`,width:180},{title:`操作`,key:`actions`,width:300,sortable:!1,align:`end`}],fileRowProps:E.fileRowProps,dropActive:E.dropActive,onDropFiles:E.onDropFiles,emptyHint:g,entryIcon:ue,entryIconColor:de,isEntryLikelyUnreadable:bo,formatOwnerChip:mo,ownerChipColor:ho,permissionTooltip:go,formatSize:T.formatSize,isRegularFile:A,isArchiveName:O,showUpload:E.showUpload,uploadFiles:E.uploadFiles,uploading:E.uploading,doUpload:E.doUpload,showNewFile:E.showNewFile,newFileName:E.newFileName,doNewFile:E.doNewFile,showMkdir:E.showMkdir,mkdirName:E.mkdirName,doMkdir:E.doMkdir,showFileDelete:E.showFileDelete,deletingFile:E.deletingFile,doDeleteFile:E.doDeleteFile,showRename:E.showRename,newName:E.newName,doRename:E.doRename,showChmod:E.showChmod,chmodFile:E.chmodFile,chmodLoading:E.chmodLoading,doChmod:E.doChmod,showCompress:E.showCompress,compressDest:E.compressDest,compressFormat:E.compressFormat,compressPaths:E.compressPaths,doCompress:E.doCompress,showDecompress:E.showDecompress,decompressSource:E.decompressSource,decompressDest:E.decompressDest,doDecompress:E.doDecompress,showContextMenu:E.showContextMenu,contextX:E.contextX,contextY:E.contextY,contextFile:E.contextFile,contextAction:E.contextAction,actionLoading:ie,batchDelete:E.batchDelete,openCompressDialog:E.openCompressDialog,showPreview:T.showPreview,previewTitle:T.previewTitle,previewContent:T.previewContent,previewLoading:T.previewLoading,editorWorkbench:T.editorWorkbench,onEditorSaved:T.onEditorSaved,navigateToPath:w.navigateToPath,pasteClipboard:E.pasteClipboard,editFile:T.editFile,previewFile:T.previewFile,downloadFile:E.downloadFile,confirmDeleteFile:E.confirmDeleteFile,openInTerminal:w.openInTerminal}}var Ys=Re({__name:`FilesPage`,setup(e){let t=Js();xa(t);let{editorWorkbench:n}=t,{selectedServer:r,currentPath:i}=S(os());return(e,a)=>(L(),I(rt,{fluid:``,class:`pa-6`},{default:C(()=>[P(Zo),P(Jo),P(Xo),P(Aa),P(Ko),P(Fo),P(fo,{ref_key:`editorWorkbench`,ref:n,"server-id":E(r)??0,"current-path":E(i),onSaved:a[0]||=e=>E(t).onEditorSaved(e),onPathChange:E(t).navigateToPath,onPasteTarget:E(t).pasteClipboard},null,8,[`server-id`,`current-path`,`onPathChange`,`onPasteTarget`])]),_:1}))}});export{Ys as default,ea as i,va as n,ha as r,ya as t}; \ No newline at end of file diff --git a/web/app/assets/LoginPage-Cau2AFzJ.js b/web/app/assets/LoginPage-Cau2AFzJ.js new file mode 100644 index 00000000..27c7960c --- /dev/null +++ b/web/app/assets/LoginPage-Cau2AFzJ.js @@ -0,0 +1 @@ +import{$n as e,Ar as t,Br as n,Cr as r,Ft as i,Ht as a,It as o,N as s,Pt as c,Qn as l,R as u,Rr as d,Rt as f,Vt as p,Yn as m,ar as h,c as g,cn as _,dn as v,er as y,fn as b,hr as x,ir as S,l as C,mr as w,nn as T,nr as E,or as D,pr as O,t as k,tr as A,v as j,xr as M,zr as N}from"./index-C_dP75wD.js";import{t as P}from"./VChip-oig-b64O.js";import{t as F}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as I}from"./VAlert-CNuOH9h_.js";var L=b({...v(),...C()},`VForm`),R=_()({name:`VForm`,props:L(),emits:{"update:modelValue":e=>!0,submit:e=>!0},setup(n,{slots:r,emit:i}){let a=g(n),o=t();function s(e){e.preventDefault(),a.reset()}function c(e){let t=e,n=a.validate();t.then=n.then.bind(n),t.catch=n.catch.bind(n),t.finally=n.finally.bind(n),i(`submit`,t),t.defaultPrevented||n.then(({valid:e})=>{e&&o.value?.submit()}),t.preventDefault()}return T(()=>e(`form`,{ref:o,class:d([`v-form`,n.class]),style:N(n.style),novalidate:!0,onReset:s,onSubmit:c},[r.default?.({get errors(){return a.errors.value},get isDisabled(){return a.isDisabled.value},get isReadonly(){return a.isReadonly.value},get isValidating(){return a.isValidating.value},get isValid(){return a.isValid.value},get items(){return a.items.value},validate:a.validate,reset:a.reset,resetValidation:a.resetValidation})])),j(a,o)}}),z={class:`login-page`},B={class:`login-center`},V={key:2,class:`text-center mt-4`},H=F(D({__name:`LoginPage`,setup(d){let g=p(),_=a(),v=c(),b=t(``),C=t(``),T=t(``),D=t(!1),j=t(!1),F=t(``),L=t(!1),H=t(0),U=t(null),W=t([]),G=t(0),K=null,q=l(()=>W.value.length===0?``:W.value[G.value]);async function J(){try{let e=await f.get(`/settings/bing-wallpapers`);e?.urls?.length&&(W.value=e.urls,G.value=Math.floor(Math.random()*e.urls.length))}catch{}}function Y(){K&&clearInterval(K),!(W.value.length<=1)&&(K=setInterval(()=>{G.value=(G.value+1)%W.value.length},36e5))}O(async()=>{await J(),Y()}),w(()=>{K&&clearInterval(K),Z&&clearInterval(Z)});let X=t(Date.now()),Z=null,Q=l(()=>{if(!U.value)return 0;let e=new Date(U.value).getTime()-X.value;return Math.max(0,Math.ceil(e/6e4))});M(U,e=>{Z&&=(clearInterval(Z),null),e&&(Z=setInterval(()=>{X.value=Date.now()},3e4))});async function $(){if(!b.value||!C.value){F.value=`请输入用户名和密码`;return}j.value=!0,F.value=``;try{await v.login(b.value,C.value,L.value?T.value:void 0);let e=g.query.redirect||`/`,t=e.startsWith(`/`)&&!e.startsWith(`//`)?e:`/`;_.push(t)}catch(e){e instanceof o?(L.value=!0,F.value=e.message):e instanceof i?e.status===429?(U.value=new Date(Date.now()+900*1e3).toISOString(),F.value=`登录尝试过多,账户已锁定 15 分钟`):(H.value++,F.value=e.message):F.value=`网络错误,请重试`}finally{j.value=!1}}return(t,i)=>(x(),E(`div`,z,[e(`div`,{class:`wallpaper-bg`,style:N({backgroundImage:`url(${q.value})`})},null,4),i[6]||=e(`div`,{class:`wallpaper-overlay`},null,-1),e(`div`,B,[h(s,{elevation:`0`,rounded:`xl`,class:`login-card pa-10`,border:``},{default:r(()=>[F.value?(x(),y(I,{key:0,type:`error`,density:`compact`,class:`mb-4`,closable:``,"onClick:close":i[0]||=e=>F.value=``,rounded:`lg`,variant:`tonal`},{default:r(()=>[S(n(F.value),1)]),_:1})):A(``,!0),U.value?(x(),y(I,{key:1,type:`warning`,density:`compact`,class:`mb-4`,rounded:`lg`,variant:`tonal`},{default:r(()=>[S(` 账户已锁定,请 `+n(Q.value)+` 分钟后重试 `,1)]),_:1})):A(``,!0),h(R,{onSubmit:m($,[`prevent`])},{default:r(()=>[h(k,{modelValue:b.value,"onUpdate:modelValue":i[1]||=e=>b.value=e,label:`用户名`,variant:`outlined`,density:`comfortable`,"prepend-inner-icon":`mdi-account-outline`,disabled:j.value,class:`mb-4`,autocomplete:`username`,rounded:`lg`,"hide-details":`auto`},null,8,[`modelValue`,`disabled`]),h(k,{modelValue:C.value,"onUpdate:modelValue":i[2]||=e=>C.value=e,label:`密码`,variant:`outlined`,density:`comfortable`,"prepend-inner-icon":`mdi-lock-outline`,"append-inner-icon":D.value?`mdi-eye`:`mdi-eye-off`,type:D.value?`text`:`password`,"onClick:appendInner":i[3]||=e=>D.value=!D.value,disabled:j.value,class:`mb-4`,autocomplete:`current-password`,rounded:`lg`,"hide-details":`auto`},null,8,[`modelValue`,`append-inner-icon`,`type`,`disabled`]),L.value?(x(),y(k,{key:0,modelValue:T.value,"onUpdate:modelValue":i[4]||=e=>T.value=e,label:`TOTP 验证码`,variant:`outlined`,density:`comfortable`,"prepend-inner-icon":`mdi-shield-key-outline`,disabled:j.value,class:`mb-4`,autocomplete:`one-time-code`,rounded:`lg`,"hide-details":`auto`},null,8,[`modelValue`,`disabled`])):A(``,!0),h(u,{type:`submit`,color:`primary`,variant:`flat`,block:``,size:`large`,loading:j.value,disabled:!!U.value,rounded:`lg`,class:`mt-2`,height:`48`},{default:r(()=>[...i[5]||=[S(` 登录 `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1}),H.value>0&&!U.value?(x(),E(`div`,V,[h(P,{size:`small`,variant:`tonal`,color:`warning`,label:``},{default:r(()=>[S(` 已失败 `+n(H.value)+` 次 `,1)]),_:1})])):A(``,!0)]),_:1})])]))}}),[[`__scopeId`,`data-v-c0c6156f`]]);export{H as default}; \ No newline at end of file diff --git a/web/app/assets/LoginPage-CnG6rjqR.css b/web/app/assets/LoginPage-CnG6rjqR.css new file mode 100644 index 00000000..a83cf5f4 --- /dev/null +++ b/web/app/assets/LoginPage-CnG6rjqR.css @@ -0,0 +1 @@ +.login-page[data-v-c0c6156f]{width:100%;min-height:100vh;position:relative;overflow:hidden}.wallpaper-bg[data-v-c0c6156f]{z-index:0;background-position:50%;background-repeat:no-repeat;background-size:cover;transition:background-image 1.5s ease-in-out;position:fixed;inset:0}.wallpaper-overlay[data-v-c0c6156f]{z-index:1;background:linear-gradient(135deg,#00000073 0%,#0003 100%);position:fixed;inset:0}.login-center[data-v-c0c6156f]{z-index:2;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex;position:relative}.login-card[data-v-c0c6156f]{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);width:100%;max-width:420px;background:rgba(var(--v-theme-surface), .92)!important} diff --git a/web/app/assets/PushPage-CPXCI12O.js b/web/app/assets/PushPage-CPXCI12O.js new file mode 100644 index 00000000..cf0ffb0d --- /dev/null +++ b/web/app/assets/PushPage-CPXCI12O.js @@ -0,0 +1 @@ +import{a as e}from"./VDataTable-RUszusjq.js";import{$n as t,$t as n,Ar as r,Br as i,Cr as a,F as o,I as s,Ir as c,J as l,M as u,N as d,P as f,Pt as p,Qn as m,R as h,Rn as g,Rr as _,Rt as v,X as y,Xn as b,Yn as x,_r as S,ar as C,br as w,cn as T,er as E,fn as D,h as ee,hr as O,ir as k,k as A,kr as j,lr as M,mr as te,nn as N,nr as P,o as F,or as I,pr as ne,rr as re,s as ie,t as L,tn as R,tr as z,v as ae,w as B,wn as oe}from"./index-C_dP75wD.js";import{a as se,i as ce,n as V,o as H,r as le,t as ue}from"./VContainer-DGQjsCTw.js";import{t as U}from"./VChip-oig-b64O.js";import{t as W}from"./VSelect-V_uWG8_q.js";import{t as de}from"./VCheckbox-yHF3vS12.js";import{t as fe}from"./VDataTableServer-BMEL-4WM.js";import{n as G,t as K}from"./VRow-MZyk7N4E.js";import{t as q}from"./VSpacer-Cl6Zcy_X.js";import{t as J}from"./VDialog-CnSngTCg.js";import{t as Y}from"./VAlert-CNuOH9h_.js";import{t as pe}from"./wsUrl-CqmqkTTE.js";var me=[[/rsync:\s*connection unexpectedly closed/gi,`rsync:连接意外关闭`],[/rsync error:\s*some files\/attrs were not transferred/gi,`rsync 错误:部分文件或属性未能传输`],[/rsync error:\s*error in rsync protocol data stream/gi,`rsync 错误:协议数据流异常`],[/rsync error:\s*/gi,`rsync 错误:`],[/rsync:\s*/gi,`rsync:`],[/Host key verification failed/gi,`SSH 主机密钥验证失败`],[/Could not resolve hostname/gi,`无法解析主机名`],[/Permission denied,\s*please try again/gi,`权限被拒绝,请重试`],[/Permission denied\s*\(publickey/gi,`公钥认证失败,权限被拒绝`],[/Permission denied/gi,`权限被拒绝`],[/No such file or directory/gi,`文件或目录不存在`],[/Connection refused/gi,`连接被拒绝`],[/Connection timed out/gi,`连接超时`],[/Connection reset by peer/gi,`连接被对端重置`],[/Network is unreachable/gi,`网络不可达`],[/No route to host/gi,`无法路由到主机`],[/No space left on device/gi,`磁盘空间不足`],[/Read-only file system/gi,`文件系统为只读`],[/Operation timed out/gi,`操作超时`],[/Operation not permitted/gi,`操作不允许`],[/Authentication failed/gi,`认证失败`],[/Broken pipe/gi,`连接中断(管道破裂)`],[/Protocol error/gi,`协议错误`],[/Too many open files/gi,`打开的文件过多`],[/Name or service not known/gi,`无法解析主机名或服务名`],[/ssh:\s*connect to host/gi,`ssh:无法连接到主机`],[/ssh:\s*/gi,`ssh:`],[/Command failed\s*\(exit\s*(\d+)\)/gi,`命令失败(退出码 $1)`],[/rsync exited with code\s*(\d+)/gi,`rsync 退出码 $1`],[/\bexit code\s*(\d+)/gi,`退出码 $1`],[/Server not found/gi,`服务器不存在`],[/failed to set times on/gi,`无法设置文件时间戳:`],[/\bsender\b/gi,`发送端`],[/\breceiver\b/gi,`接收端`]],he=/[\u4e00-\u9fff\u3400-\u4dbf]/g;function ge(e){let t=e.match(he);if(!t?.length)return!1;let n=e.replace(/\s+/g,``);return n.length?t.length/n.length>=.2:!1}function X(e){if(e==null)return``;let t=e.trim();if(!t)return``;if(ge(t))return e;let n=t;for(let[e,t]of me)n=n.replace(e,t);return n}function Z(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}function _e(e){if(!e)return`—`;let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString(`zh-CN`,{hour12:!1})}function ve(e){switch(e){case`success`:return`成功`;case`failed`:return`失败`;case`running`:return`进行中`;case`cancelled`:return`已取消`;default:return e}}function ye(e){switch(e){case`success`:return`success`;case`failed`:return`error`;case`cancelled`:return`grey`;case`running`:return`info`;default:return`warning`}}function be(e){switch(e){case`incremental`:return`增量`;case`full`:return`全量`;case`checksum`:return`校验和`;case`overwrite`:return`覆盖`;default:return e||`—`}}function xe(e){return e===`成功`?`success`:e===`失败`?`error`:e===`已取消`?`grey`:`warning`}function Se(e){return e?`success`:`error`}var Ce=I({__name:`PushDiagnoseDialog`,props:{modelValue:{type:Boolean},loading:{type:Boolean},result:{},targetName:{}},emits:[`update:modelValue`],setup(e){return(t,n)=>(O(),E(J,{"model-value":e.modelValue,"max-width":`520`,"onUpdate:modelValue":n[1]||=e=>t.$emit(`update:modelValue`,e)},{default:a(()=>[C(d,{border:``},{default:a(()=>[C(o,null,{default:a(()=>[k(`推送失败诊断 — `+i(e.targetName),1)]),_:1}),C(f,null,{default:a(()=>[e.loading?(O(),E(l,{key:0,indeterminate:``,class:`mb-3`})):e.result?(O(),P(b,{key:1},[C(B,{density:`compact`},{default:a(()=>[C(A,{title:`SSH 连接`},{append:a(()=>[C(y,{color:e.result.ssh_ok?`success`:`error`},{default:a(()=>[k(i(e.result.ssh_ok?`mdi-check`:`mdi-close`),1)]),_:1},8,[`color`])]),_:1}),e.result.disk_avail?(O(),E(A,{key:0,title:`磁盘可用: ${e.result.disk_avail}`},null,8,[`title`])):z(``,!0),e.result.disk_used_pct==null?z(``,!0):(O(),E(A,{key:1,title:`磁盘使用率: ${e.result.disk_used_pct}%`},null,8,[`title`])),C(A,{title:`目标路径存在`},{append:a(()=>[C(y,{color:e.result.path_exists?`success`:`error`},{default:a(()=>[k(i(e.result.path_exists?`mdi-check`:`mdi-close`),1)]),_:1},8,[`color`])]),_:1}),e.result.path_perms?(O(),E(A,{key:2,subtitle:e.result.path_perms,title:`权限`},null,8,[`subtitle`])):z(``,!0),C(A,{title:`目标路径可写`},{append:a(()=>[C(y,{color:e.result.path_writable?`success`:`error`},{default:a(()=>[k(i(e.result.path_writable?`mdi-check`:`mdi-close`),1)]),_:1},8,[`color`])]),_:1})]),_:1}),(O(!0),P(b,null,S(e.result.errors,(e,t)=>(O(),E(Y,{key:t,type:`error`,density:`compact`,variant:`tonal`,class:`mt-2`},{default:a(()=>[k(i(c(X)(e)),1)]),_:2},1024))),128))],64)):z(``,!0)]),_:1}),C(s,null,{default:a(()=>[C(q),C(h,{variant:`text`,onClick:n[0]||=e=>t.$emit(`update:modelValue`,!1)},{default:a(()=>[...n[2]||=[k(`关闭`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`model-value`]))}}),we={class:`text-caption`},Te={class:`text-caption text-medium-emphasis`},Ee=[`title`],De={key:1,class:`text-caption text-medium-emphasis`},Oe=I({__name:`PushHistoryTable`,props:{items:{},headers:{},total:{},loading:{type:Boolean},page:{},statusFilter:{},syncModeFilter:{},serverFilter:{},statusOptions:{},syncModeOptions:{},serverOptions:{},reconciling:{type:Boolean}},emits:[`update:page`,`update:statusFilter`,`update:syncModeFilter`,`update:serverFilter`,`filter-change`,`page-change`,`reconcile`,`diagnose`],setup(e){return(n,r)=>(O(),E(d,{elevation:`0`,border:``,rounded:`lg`},{default:a(()=>[C(o,{class:`d-flex flex-wrap align-center ga-2`},{default:a(()=>[r[6]||=t(`span`,null,`推送历史`,-1),C(q),C(W,{"model-value":e.statusFilter,items:e.statusOptions,"item-title":`label`,"item-value":`value`,label:`状态`,variant:`outlined`,density:`compact`,"hide-details":``,clearable:``,style:{"max-width":`120px`},"onUpdate:modelValue":r[0]||=e=>{n.$emit(`update:statusFilter`,e),n.$emit(`filter-change`)}},null,8,[`model-value`,`items`]),C(W,{"model-value":e.syncModeFilter,items:e.syncModeOptions,"item-title":`label`,"item-value":`value`,label:`模式`,variant:`outlined`,density:`compact`,"hide-details":``,clearable:``,style:{"max-width":`120px`},"onUpdate:modelValue":r[1]||=e=>{n.$emit(`update:syncModeFilter`,e),n.$emit(`filter-change`)}},null,8,[`model-value`,`items`]),C(W,{"model-value":e.serverFilter,items:e.serverOptions,"item-title":`title`,"item-value":`value`,label:`服务器`,variant:`outlined`,density:`compact`,"hide-details":``,clearable:``,style:{"max-width":`180px`},"onUpdate:modelValue":r[2]||=e=>{n.$emit(`update:serverFilter`,e),n.$emit(`filter-change`)}},null,8,[`model-value`,`items`]),C(h,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-wrench`,loading:e.reconciling,onClick:r[3]||=e=>n.$emit(`reconcile`)},{default:a(()=>[...r[5]||=[k(` 修复卡住记录 `,-1)]]),_:1},8,[`loading`])]),_:1}),C(fe,{items:e.items,headers:e.headers,"items-length":e.total,loading:e.loading,page:e.page,"items-per-page":15,hover:``,density:`comfortable`,"onUpdate:page":r[4]||=e=>{n.$emit(`update:page`,e),n.$emit(`page-change`)}},{"item.status":a(({item:e})=>[C(U,{color:c(ye)(e.status),size:`x-small`,variant:`tonal`,label:``,border:`sm`},{default:a(()=>[k(i(c(ve)(e.status)),1)]),_:2},1032,[`color`])]),"item.sync_mode":a(({item:e})=>[t(`span`,we,i(c(be)(e.sync_mode)),1)]),"item.started_at":a(({item:e})=>[t(`span`,Te,i(c(_e)(e.started_at)),1)]),"item.error_message":a(({item:e})=>[e.error_message?(O(),P(`span`,{key:0,class:`text-caption text-error text-truncate d-inline-block`,style:{"max-width":`200px`},title:c(X)(e.error_message)},i(c(X)(e.error_message)),9,Ee)):(O(),P(`span`,De,`—`))]),"item.actions":a(({item:e})=>[e.status===`failed`?(O(),E(h,{key:0,size:`x-small`,variant:`tonal`,"prepend-icon":`mdi-stethoscope`,onClick:t=>n.$emit(`diagnose`,e)},{default:a(()=>[...r[7]||=[k(` 诊断 `,-1)]]),_:1},8,[`onClick`])):z(``,!0)]),"no-data":a(()=>[...r[8]||=[t(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无数据`,-1)]]),_:1},8,[`items`,`headers`,`items-length`,`loading`,`page`])]),_:1}))}}),ke={class:`text-caption text-medium-emphasis`},Ae={key:2,class:`mb-2 text-body-2`},je={key:0,class:`text-error text-caption`},Me={key:1,class:`text-warning text-caption`},Ne={key:2,class:`text-caption text-medium-emphasis`},Pe=I({__name:`PushPreviewDialog`,props:{modelValue:{type:Boolean},loading:{type:Boolean},results:{},selectedCount:{},previewDone:{},previewTotal:{},largeBatch:{type:Boolean},warnThreshold:{},errorCount:{},syncMode:{}},emits:[`update:modelValue`,`confirm-push`],setup(n){return(r,u)=>(O(),E(J,{"model-value":n.modelValue,"max-width":`800`,"onUpdate:modelValue":u[2]||=e=>r.$emit(`update:modelValue`,e)},{default:a(()=>[C(d,{border:``},{default:a(()=>[C(o,{class:`d-flex align-center`},{default:a(()=>[u[3]||=k(` 推送预览 `,-1),C(q),t(`span`,ke,[n.loading?(O(),P(b,{key:0},[k(i(n.previewDone)+` / `+i(n.previewTotal)+` 台`,1)],64)):(O(),P(b,{key:1},[k(i(n.results.length)+` 台`,1)],64))])]),_:1}),C(f,null,{default:a(()=>[n.loading?(O(),E(l,{key:0,"model-value":n.previewTotal?Math.round(n.previewDone/n.previewTotal*100):0,class:`mb-3`},null,8,[`model-value`])):z(``,!0),n.largeBatch&&!n.loading?(O(),E(Y,{key:1,type:`info`,density:`compact`,variant:`tonal`,class:`mb-2`},{default:a(()=>[k(` 已预览 `+i(n.results.length)+` 台服务器(超过 `+i(n.warnThreshold)+` 台时推送耗时可能较长) `,1)]),_:1})):z(``,!0),n.loading?z(``,!0):(O(),P(`div`,Ae,[u[4]||=k(` 将推送到 `,-1),t(`strong`,null,i(n.selectedCount),1),u[5]||=k(` 台服务器 `,-1)])),n.results.length?(O(),E(e,{key:3,density:`compact`},{default:a(()=>[u[6]||=t(`thead`,null,[t(`tr`,null,[t(`th`,null,`服务器`),t(`th`,null,`文件数`),t(`th`,null,`预计传输`),t(`th`,null,`大小`),t(`th`,null,`备注`)])],-1),t(`tbody`,null,[(O(!0),P(b,null,S(n.results,e=>(O(),P(`tr`,{key:e.server_id},[t(`td`,null,i(e.server_name),1),t(`td`,null,i(e.stats?.files_total??`—`),1),t(`td`,null,i(e.stats?.files_transferred??`—`),1),t(`td`,null,i(e.stats?c(Z)(e.stats.transfer_size_bytes??0):`—`),1),t(`td`,null,[e.error?(O(),P(`span`,je,i(c(X)(e.error)),1)):n.syncMode===`full`&&(e.stats?.files_deleted??0)>0?(O(),P(`span`,Me,`将删除 `+i(e.stats?.files_deleted)+` 个远端文件`,1)):(O(),P(`span`,Ne,`—`))])]))),128))])]),_:1})):z(``,!0),n.errorCount>0&&!n.loading?(O(),E(Y,{key:4,type:`warning`,density:`compact`,variant:`tonal`,class:`mt-3`},{default:a(()=>[k(i(n.errorCount)+` 台预览失败,推送时这些服务器可能仍会失败 `,1)]),_:1})):z(``,!0)]),_:1}),C(s,null,{default:a(()=>[C(q),C(h,{variant:`text`,onClick:u[0]||=e=>r.$emit(`update:modelValue`,!1)},{default:a(()=>[...u[7]||=[k(`关闭`,-1)]]),_:1}),C(h,{color:`primary`,variant:`flat`,disabled:n.loading,onClick:u[1]||=e=>r.$emit(`confirm-push`)},{default:a(()=>[...u[8]||=[k(`确认推送`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`model-value`]))}}),Fe={key:1,class:`text-caption text-medium-emphasis mb-2`},Ie=I({__name:`PushProgressList`,props:{items:{},batchId:{},pushing:{type:Boolean},cancelling:{type:Boolean},doneCount:{},totalProgress:{}},emits:[`cancel`],setup(e){return(n,r)=>e.items.length>0?(O(),E(d,{key:0,class:`mb-4`,elevation:`0`,border:``,rounded:`lg`},{default:a(()=>[C(o,{class:`d-flex align-center text-subtitle-1`},{default:a(()=>[r[2]||=k(` 推送进度 `,-1),C(q),e.batchId&&e.items.some(e=>e.status===`running`||e.status===`pending`)&&e.pushing?(O(),E(h,{key:0,size:`small`,variant:`tonal`,color:`error`,class:`mr-2`,loading:e.cancelling,onClick:r[0]||=e=>n.$emit(`cancel`)},{default:a(()=>[...r[1]||=[k(` 取消推送 `,-1)]]),_:1},8,[`loading`])):z(``,!0),C(U,{size:`small`,variant:`tonal`,color:`primary`},{default:a(()=>[k(i(e.items.filter(e=>e.status===`success`).length)+`/`+i(e.items.length)+` 完成 `,1)]),_:1})]),_:1}),C(u),C(f,null,{default:a(()=>[e.pushing||e.totalProgress>0?(O(),E(l,{key:0,"model-value":e.totalProgress,color:`primary`,height:`8`,rounded:``,class:`mb-3`},null,8,[`model-value`])):z(``,!0),e.items.length?(O(),P(`div`,Fe,i(e.doneCount)+` / `+i(e.items.length)+` 台已结束 `,1)):z(``,!0),C(B,{density:`compact`},{default:a(()=>[(O(!0),P(b,null,S(e.items,e=>(O(),E(A,{key:e.id,title:e.name},re({append:a(()=>[e.status===`pending`?(O(),E(y,{key:0,color:`grey`},{default:a(()=>[...r[3]||=[k(`mdi-clock-outline`,-1)]]),_:1})):e.status===`running`?(O(),E(y,{key:1,color:`blue`,class:`mdi-spin`},{default:a(()=>[...r[4]||=[k(`mdi-loading`,-1)]]),_:1})):e.status===`success`?(O(),E(y,{key:2,color:`green`},{default:a(()=>[...r[5]||=[k(`mdi-check-circle`,-1)]]),_:1})):e.status===`cancelled`?(O(),E(y,{key:3,color:`grey`},{default:a(()=>[...r[6]||=[k(`mdi-cancel`,-1)]]),_:1})):(O(),E(y,{key:4,color:`red`},{default:a(()=>[...r[7]||=[k(`mdi-alert-circle`,-1)]]),_:1}))]),_:2},[e.detail?{name:`subtitle`,fn:a(()=>[t(`span`,{class:_(e.status===`failed`?`text-error`:`text-medium-emphasis`)},i(e.detail),3)]),key:`0`}:void 0]),1032,[`title`]))),128))]),_:1})]),_:1})]),_:1})):z(``,!0)}}),Le={key:0,class:`text-center text-medium-emphasis py-6`},Re={class:`d-flex align-center px-2 mb-2`},ze={class:`text-caption text-medium-emphasis ml-1`},Be={class:`d-flex align-center ga-2`},Ve={class:`text-body-2 font-weight-medium text-truncate`},He={class:`text-caption text-medium-emphasis text-truncate`},Ue={key:0,class:`text-caption mt-1`},We=I({__name:`PushServerGrid`,props:{selectAll:{type:Boolean},serverSearch:{},serversLoading:{type:Boolean},serversByCategory:{},selectedIds:{},pushStatus:{},isCategoryAllSelected:{type:Function}},emits:[`update:serverSearch`,`toggle-all`,`refresh`,`toggle-category`,`toggle-server`],setup(e){return(n,r)=>(O(),E(d,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:a(()=>[C(o,{class:`d-flex align-center`},{default:a(()=>[C(de,{"model-value":e.selectAll,label:`全选`,density:`compact`,"hide-details":``,class:`mr-4`,"onUpdate:modelValue":r[0]||=e=>n.$emit(`toggle-all`)},null,8,[`model-value`]),C(L,{"model-value":e.serverSearch,"prepend-inner-icon":`mdi-magnify`,label:`搜索服务器...`,density:`compact`,"hide-details":``,variant:`outlined`,rounded:``,style:{"max-width":`240px`},"onUpdate:modelValue":r[1]||=e=>n.$emit(`update:serverSearch`,e)},null,8,[`model-value`]),C(h,{icon:`mdi-refresh`,variant:`text`,size:`small`,loading:e.serversLoading,title:`刷新在线状态`,onClick:r[2]||=e=>n.$emit(`refresh`)},null,8,[`loading`])]),_:1}),C(u),C(f,{class:`pa-2`},{default:a(()=>[e.serversByCategory.length===0?(O(),P(`div`,Le,`暂无服务器`)):(O(!0),P(b,{key:1},S(e.serversByCategory,o=>(O(),P(`div`,{key:o.category,class:`mb-4`},[t(`div`,Re,[C(h,{size:`x-small`,variant:`text`,color:e.isCategoryAllSelected(o.category)?`primary`:`default`,onClick:e=>n.$emit(`toggle-category`,o.category)},{default:a(()=>[C(y,{size:`16`,class:`mr-1`},{default:a(()=>[k(i(e.isCategoryAllSelected(o.category)?`mdi-checkbox-marked`:`mdi-checkbox-blank-outline`),1)]),_:2},1024),k(` `+i(o.category),1)]),_:2},1032,[`color`,`onClick`]),t(`span`,ze,` (`+i(o.servers.filter(t=>e.selectedIds.has(t.id)).length)+`/`+i(o.servers.length)+`) `,1)]),C(K,{dense:``},{default:a(()=>[(O(!0),P(b,null,S(o.servers,o=>(O(),E(G,{key:o.id,cols:`6`,sm:`4`,md:`3`,lg:`2`},{default:a(()=>[C(d,{color:e.selectedIds.has(o.id)?`primary`:void 0,variant:e.selectedIds.has(o.id)?`tonal`:`outlined`,rounded:`lg`,class:`pa-3 cursor-pointer`,onClick:e=>n.$emit(`toggle-server`,o.id)},{default:a(()=>[t(`div`,Be,[C(y,{color:c(Se)(o.is_online),size:`12`},{default:a(()=>[...r[3]||=[k(`mdi-circle`,-1)]]),_:1},8,[`color`]),t(`span`,Ve,i(o.name),1)]),t(`div`,He,i(o.domain),1),e.pushStatus[o.id]?(O(),P(`div`,Ue,[C(U,{color:c(xe)(e.pushStatus[o.id]),size:`x-small`,variant:`tonal`,label:``,border:`sm`},{default:a(()=>[k(i(e.pushStatus[o.id]),1)]),_:2},1032,[`color`])])):z(``,!0)]),_:2},1032,[`color`,`variant`,`onClick`])]),_:2},1024))),128))]),_:2},1024)]))),128))]),_:1})]),_:1}))}}),Ge=D({...le({falseIcon:`$radioOff`,trueIcon:`$radioOn`})},`VRadio`),Q=T()({name:`VRadio`,props:Ge(),setup(e,{slots:t}){return N(()=>C(V,M(V.filterProps(e),{class:[`v-radio`,e.class],style:e.style,type:`radio`}),t)),{}}}),Ke=D({height:{type:[Number,String],default:`auto`},...g(ie(),[`direction`]),...g(se(),[`multiple`]),trueIcon:{type:R,default:`$radioOn`},falseIcon:{type:R,default:`$radioOff`},type:{type:String,default:`radio`}},`VRadioGroup`),qe=T()({name:`VRadioGroup`,inheritAttrs:!1,props:Ke(),emits:{"update:modelValue":e=>!0},setup(e,{attrs:i,slots:a}){let o=w(),s=m(()=>e.id||`radio-group-${o}`),c=n(e,`modelValue`),l=r();return N(()=>{let[n,r]=oe(i),o=F.filterProps(e),u=V.filterProps(e),d=a.label?a.label({label:e.label,props:{for:s.value}}):e.label;return C(F,M({ref:l,class:[`v-radio-group`,e.class],style:e.style},n,o,{modelValue:c.value,"onUpdate:modelValue":e=>c.value=e,id:s.value}),{...a,default:({id:n,messagesId:i,isDisabled:o,isReadonly:s})=>t(b,null,[d&&C(ee,{id:n.value},{default:()=>[d]}),C(ce,M(u,{id:n.value,"aria-describedby":i.value,defaultsTarget:`VRadio`,trueIcon:e.trueIcon,falseIcon:e.falseIcon,type:e.type,disabled:o.value,readonly:s.value,"aria-labelledby":d?n.value:void 0,multiple:!1},r,{modelValue:c.value,"onUpdate:modelValue":e=>c.value=e}),a)])})}),ae({},l)}}),Je={class:`text-caption text-medium-emphasis mt-1`},Ye=I({__name:`PushSyncModeCard`,props:{syncMode:{},syncModeDesc:{}},emits:[`update:syncMode`],setup(e,{emit:n}){let r=n;function s(e){e!=null&&r(`update:syncMode`,e)}return(n,r)=>(O(),E(d,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:a(()=>[C(o,{class:`text-subtitle-1`},{default:a(()=>[...r[0]||=[k(`同步模式`,-1)]]),_:1}),C(f,null,{default:a(()=>[C(qe,{"model-value":e.syncMode,inline:``,density:`compact`,"onUpdate:modelValue":s},{default:a(()=>[C(Q,{label:`增量同步`,value:`incremental`}),C(Q,{label:`全量同步`,value:`full`}),C(Q,{label:`校验和同步`,value:`checksum`})]),_:1},8,[`model-value`]),e.syncMode===`full`?(O(),E(Y,{key:0,type:`warning`,density:`compact`,variant:`tonal`,class:`mt-2`},{default:a(()=>[...r[1]||=[k(` 全量同步会删除目标目录中不存在于源目录的文件 `,-1)]]),_:1})):z(``,!0),t(`div`,Je,i(e.syncModeDesc),1)]),_:1})]),_:1}))}}),Xe=I({__name:`PushToolbar`,props:{sourcePath:{},targetPath:{},zipLocked:{type:Boolean},pushing:{type:Boolean}},emits:[`update:sourcePath`,`update:targetPath`,`preview`,`push`],setup(e){return(t,n)=>(O(),E(d,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4 pa-4`},{default:a(()=>[C(K,{align:`center`,dense:``},{default:a(()=>[C(G,{cols:`12`,sm:`4`},{default:a(()=>[C(L,{"model-value":e.sourcePath,label:`推送源路径`,variant:`outlined`,density:`compact`,"prepend-inner-icon":`mdi-folder`,disabled:e.zipLocked,hint:e.zipLocked?`已使用 ZIP 解压目录作为源路径`:void 0,"persistent-hint":``,"onUpdate:modelValue":n[0]||=e=>t.$emit(`update:sourcePath`,e)},null,8,[`model-value`,`disabled`,`hint`])]),_:1}),C(G,{cols:`12`,sm:`4`},{default:a(()=>[C(L,{"model-value":e.targetPath,label:`目标路径`,variant:`outlined`,density:`compact`,"prepend-inner-icon":`mdi-folder-marker`,"onUpdate:modelValue":n[1]||=e=>t.$emit(`update:targetPath`,e)},null,8,[`model-value`])]),_:1}),C(G,{cols:`12`,sm:`4`,class:`d-flex ga-2 justify-end`},{default:a(()=>[C(h,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-eye`,onClick:n[2]||=e=>t.$emit(`preview`)},{default:a(()=>[...n[4]||=[k(`预览`,-1)]]),_:1}),C(h,{size:`small`,color:`primary`,variant:`flat`,"prepend-icon":`mdi-upload`,loading:e.pushing,onClick:n[3]||=e=>t.$emit(`push`)},{default:a(()=>[...n[5]||=[k(` 推送 `,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1}))}}),Ze={key:0},Qe={key:1,class:`d-flex align-center`},$e=I({__name:`PushZipUpload`,props:{uploadedZip:{},isDragging:{type:Boolean},zipUploading:{type:Boolean}},emits:[`dragover`,`dragleave`,`drop`,`file-select`,`clear`],setup(e){let n=r(null);return(r,s)=>(O(),E(d,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:a(()=>[C(o,{class:`text-subtitle-1`},{default:a(()=>[...s[6]||=[k(`源文件`,-1)]]),_:1}),C(f,null,{default:a(()=>[e.uploadedZip?(O(),P(`div`,Qe,[C(y,{class:`mr-2`},{default:a(()=>[...s[10]||=[k(`mdi-folder-zip`,-1)]]),_:1}),t(`span`,null,i(e.uploadedZip.name)+` (`+i(e.uploadedZip.fileCount)+` 个文件, `+i(c(Z)(e.uploadedZip.size))+`)`,1),C(q),C(h,{size:`small`,variant:`text`,color:`error`,onClick:s[5]||=e=>r.$emit(`clear`)},{default:a(()=>[...s[11]||=[k(`清除`,-1)]]),_:1})])):(O(),P(`div`,Ze,[t(`div`,{class:_([`border-dashed border rounded pa-6 text-center cursor-pointer`,{"border-primary bg-primary-lighten-5":e.isDragging}]),onDragover:s[0]||=x(e=>r.$emit(`dragover`),[`prevent`]),onDragleave:s[1]||=e=>r.$emit(`dragleave`),onDrop:s[2]||=x(e=>r.$emit(`drop`,e),[`prevent`]),onClick:s[3]||=e=>n.value?.click()},[C(y,{size:`48`,color:`grey`},{default:a(()=>[...s[7]||=[k(`mdi-cloud-upload-outline`,-1)]]),_:1}),s[8]||=t(`div`,{class:`text-body-2 mt-2`},`拖拽 ZIP 文件到此处,或点击选择`,-1),s[9]||=t(`div`,{class:`text-caption text-medium-emphasis`},`支持 .zip 格式`,-1)],34),t(`input`,{ref_key:`zipInputRef`,ref:n,type:`file`,accept:`.zip`,hidden:``,onChange:s[4]||=e=>r.$emit(`file-select`,e)},null,544)])),e.zipUploading?(O(),E(l,{key:2,indeterminate:``,class:`mt-2`})):z(``,!0)]),_:1})]),_:1}))}}),$=[`success`,`failed`,`cancelled`];function et(){let e=H(),t=r(``),n=r(``),i=r(`incremental`),a=r(!1),o=r(null),s=r(!1),c=m(()=>{switch(i.value){case`incremental`:return`仅传输新增或修改的文件`;case`full`:return`使目标目录与源目录完全一致,会删除不存在于源的文件`;case`checksum`:return`通过文件内容校验和判断是否需要传输`;default:return``}});function l(){return o.value?.sourcePath||t.value}function u(t){return l()?n.value.trim()?t===0?(e(`请选择至少一台服务器`,`warning`),!1):!0:(e(`请填写目标路径`,`warning`),!1):(e(`请选择源路径或上传 ZIP 文件`,`warning`),!1)}async function d(e){a.value=!1;let t=e.dataTransfer?.files[0];t?.name.endsWith(`.zip`)&&await p(t)}function f(e){let t=e.target.files?.[0];t&&p(t)}async function p(t){s.value=!0;try{let n=new FormData;n.append(`file`,t);let r=await v.upload(`/sync/upload-zip`,n);o.value={name:t.name,sourcePath:r.source_path,fileCount:r.file_count,size:r.size},e(`ZIP 上传成功`)}catch(t){e(t instanceof Error?t.message:`上传失败`,`error`)}finally{s.value=!1}}function h(){o.value=null}return{sourcePath:t,targetPath:n,syncMode:i,syncModeDesc:c,isDragging:a,uploadedZip:o,zipUploading:s,effectiveSourcePath:l,validateForm:u,handleZipDrop:d,handleZipSelect:f,clearZipUpload:h}}function tt(e){let t=r([]),n=r(!1),i=r(``),a=r(new Set),o=null;async function s(){n.value=!0;try{t.value=(await v.get(`/servers/`,{per_page:200})).items||[]}catch{t.value=[]}finally{n.value=!1}}function c(e){l(),o=setInterval(()=>{e()||s()},6e4)}function l(){o&&=(clearInterval(o),null)}let u=m(()=>{if(!i.value)return t.value;let e=i.value.toLowerCase();return t.value.filter(t=>t.name.toLowerCase().includes(e)||(t.domain||``).toLowerCase().includes(e))}),d=m(()=>{let e=u.value;return e.length>0&&e.every(e=>a.value.has(e.id))}),f=m(()=>{let e={};for(let t of u.value){let n=t.category||`未分类`;e[n]||(e[n]=[]),e[n].push(t)}return Object.entries(e).map(([e,t])=>({category:e,servers:t}))});function p(e){let t=f.value.find(t=>t.category===e);return!t||t.servers.length===0?!1:t.servers.every(e=>a.value.has(e.id))}function h(e){let t=f.value.find(t=>t.category===e);if(!t)return;let n=new Set(a.value),r=t.servers.every(e=>n.has(e.id));for(let e of t.servers)r?n.delete(e.id):n.add(e.id);a.value=n}function g(e){let t=new Set(a.value);t.has(e)?t.delete(e):t.add(e),a.value=t}function _(){let e=u.value,t=e.length>0&&e.every(e=>a.value.has(e.id)),n=new Set(a.value);for(let r of e)t?n.delete(r.id):n.add(r.id);a.value=n}return{servers:t,serversLoading:n,serverSearch:i,selectedIds:a,pushStatus:e,filteredServers:u,selectAll:d,serversByCategory:f,loadServers:s,startAutoRefresh:c,stopAutoRefresh:l,isCategoryAllSelected:p,toggleCategory:h,toggleServer:g,toggleAll:_}}function nt(){return crypto.randomUUID().replace(/-/g,``).slice(0,12)}function rt(e,t,n){let i=H(),a=p(),o=r(!1),s=r(!1),c=r([]),l=r(``),u=r(null),d=[],f=m(()=>c.value.filter(e=>$.includes(e.status)).length),h=m(()=>{let e=c.value.length;return e?Math.round(f.value/e*100):0});function g(){d.forEach(e=>clearTimeout(e)),d.length=0}function _(){let e=c.value.length;if(!e||!o.value||c.value.filter(e=>$.includes(e.status)).lengthe.status===`failed`).length,r=c.value.filter(e=>e.status===`cancelled`).length,a=c.value.filter(e=>e.status===`success`).length;i(`推送完成:${a} 成功,${t} 失败${r?`,${r} 取消`:``}`)}function y(e){if(e.type!==`sync_progress`||e.batch_id!==l.value||e.server_id==null)return;let n=c.value.findIndex(t=>t.id===e.server_id);if(n===-1)return;let r=c.value[n],i=e.status;if(i===`running`)r.status=`running`,r.detail=`同步中...`;else if(i===`success`){r.status=`success`;let n=e.duration_seconds;r.detail=n==null?`完成`:`完成(${n}s)`,t.pushStatus.value[e.server_id]=`成功`}else i===`failed`?(r.status=`failed`,r.detail=X(e.error_message)||`失败`,t.pushStatus.value[e.server_id]=`失败`):i===`cancelled`&&(r.status=`cancelled`,r.detail=X(e.error_message)||`已取消`,t.pushStatus.value[e.server_id]=`已取消`);_()}function b(e){let n=e.results;if(n){for(let[e,r]of Object.entries(n)){let n=Number(e);if(!Number.isFinite(n))continue;let i=c.value.findIndex(e=>e.id===n);if(i===-1)continue;let a=c.value[i],o=r.status;if(o===`success`){a.status=`success`;let e=r.duration_seconds;a.detail=e==null?`完成`:`完成(${e}s)`,t.pushStatus.value[n]=`成功`}else o===`failed`?(a.status=`failed`,a.detail=X(r.error_message)||`失败`,t.pushStatus.value[n]=`失败`):o===`cancelled`&&(a.status=`cancelled`,a.detail=X(r.error_message)||`已取消`,t.pushStatus.value[n]=`已取消`)}_()}}function x(){if(!a.token)return Promise.reject(Error(`未登录,无法连接推送进度`));S();let e=pe(`/ws/sync`,{token:a.token}),r=new WebSocket(e);return new Promise((e,s)=>{r.onopen=()=>e(),r.onerror=()=>s(Error(`推送进度 WebSocket 连接失败`)),r.onmessage=e=>{if(e.data!==`pong`)try{let t=JSON.parse(e.data);if(t.type===`ping`){r.send(`pong`);return}y(t)}catch{}},r.onclose=e=>{if(u.value=null,e.code===4001||e.code===4401){a.forceLogout();return}e.code!==1e3&&o.value&&(c.value.forEach(e=>{(e.status===`pending`||e.status===`running`)&&(e.status=`failed`,e.detail=`连接中断`,t.pushStatus.value[e.id]=`失败`)}),o.value=!1,i(`推送进度连接中断,部分服务器状态未知`,`warning`),n())},u.value=r})}function S(){u.value&&=(u.value.close(1e3),null)}async function C(){if(l.value){s.value=!0;try{await v.post(`/sync/cancel`,{batch_id:l.value}),c.value.forEach(e=>{(e.status===`pending`||e.status===`running`)&&(e.status=`cancelled`,e.detail=`已取消`,t.pushStatus.value[e.id]=`已取消`)}),o.value=!1,S(),n(),i(`推送已取消`)}catch(e){i(e instanceof Error?e.message:`取消失败`,`error`)}finally{s.value=!1}}}async function w(){if(o.value||!e.validateForm(t.selectedIds.value.size))return;g(),S(),l.value=``,t.pushStatus.value={};let r=[...t.selectedIds.value];c.value=r.map(e=>({id:e,name:t.servers.value.find(t=>t.id===e)?.name||`#${e}`,status:`pending`})),o.value=!0,l.value=nt();try{await x();let t=await v.post(`/sync/files`,{source_path:e.effectiveSourcePath(),target_path:e.targetPath.value,server_ids:r,sync_mode:e.syncMode.value,batch_id:l.value});t.batch_id&&t.batch_id!==l.value&&(l.value=t.batch_id),b(t)}catch(e){S();let t=e instanceof Error?e.message:`推送请求失败`;c.value.forEach(e=>{e.status=`failed`,e.detail=t}),o.value=!1,i(t,`error`),n();return}let a=setTimeout(()=>{o.value&&(c.value.forEach(e=>{(e.status===`pending`||e.status===`running`)&&(e.status=`failed`,e.detail=`等待超时`,t.pushStatus.value[e.id]=`失败`)}),o.value=!1,S(),n(),i(`推送超时,${f.value}/${c.value.length} 台已有结果`,`warning`))},3e5);d.push(a)}function T(){S(),g()}return{pushing:o,cancelling:s,wsProgressItems:c,pushBatchId:l,doneCount:f,totalProgress:h,doPush:w,cancelPush:C,dispose:T}}function it(e,t){let n=r(!1),i=r([]),a=r(!1),o=r(0),s=r(0),c=m(()=>o.value>30),l=m(()=>i.value.filter(e=>e.error).length);async function u(t,n){try{let r=await v.post(`/sync/preview`,{source_path:e.effectiveSourcePath(),target_path:e.targetPath.value,server_id:t,sync_mode:e.syncMode.value});return r.error?{server_id:t,server_name:n,error:r.error}:{server_id:t,server_name:r.server_name||n,stats:r.stats}}catch(e){return{server_id:t,server_name:n,error:e instanceof Error?e.message:`预览失败`}}}async function d(){if(!e.validateForm(t.selectedIds.value.size))return;let r=[...t.selectedIds.value];o.value=r.length,s.value=0,n.value=!0,a.value=!0,i.value=[];let c=r.map(e=>({id:e,name:t.servers.value.find(t=>t.id===e)?.name||`#${e}`}));for(let e=0;eu(e.id,e.name)));i.value=[...i.value,...n],s.value=i.value.length}a.value=!1}function f(){n.value=!1}function p(e){n.value=!1,e()}return{showPreview:n,previewResults:i,previewLoading:a,previewTotal:o,previewDone:s,previewLargeBatch:c,previewWarnThreshold:30,previewErrorCount:l,doPreview:d,closePreview:f,confirmAndPush:p}}var at=[{label:`成功`,value:`success`},{label:`失败`,value:`failed`},{label:`进行中`,value:`running`},{label:`已取消`,value:`cancelled`}],ot=[{label:`增量`,value:`incremental`},{label:`全量`,value:`full`},{label:`校验和`,value:`checksum`}],st=[{title:`时间`,key:`started_at`,width:170},{title:`服务器`,key:`server_name`,width:120},{title:`状态`,key:`status`,width:88},{title:`模式`,key:`sync_mode`,width:88},{title:`源路径`,key:`source_path`},{title:`目标路径`,key:`target_path`},{title:`错误`,key:`error_message`,width:200},{title:`操作`,key:`actions`,width:88,sortable:!1}];function ct(e,t){let n=H(),i=r([]),a=r(0),o=r(!1),s=r(1),c=r(null),l=r(null),u=r(null),d=r(!1),f=r(!1),p=r(!1),h=r(null),g=r(null),_=m(()=>t.servers.value.map(e=>({title:e.name,value:e.id})));function y(){s.value=1,b()}async function b(){o.value=!0;try{let e={page:s.value,per_page:15};c.value&&(e.status=c.value),l.value&&(e.sync_mode=l.value),u.value!=null&&(e.server_id=u.value);let t=await v.get(`/servers/logs`,e);i.value=t.items||[],a.value=t.total||0}catch{i.value=[],a.value=0}finally{o.value=!1}}async function x(){d.value=!0;try{let e=(await v.post(`/sync/reconcile-stale-logs`,{max_age_minutes:120})).reconciled??0;n(e>0?`已订正 ${e} 条卡住的推送记录`:`没有需要订正的记录`),await b()}catch(e){n(e instanceof Error?e.message:`订正失败`,`error`)}finally{d.value=!1}}async function S(t){g.value=t,h.value=null,f.value=!0,p.value=!0;try{h.value=await v.post(`/sync/diagnose`,{server_id:t.server_id,target_path:t.target_path||e.targetPath.value||void 0})}catch(e){n(e instanceof Error?e.message:`诊断失败`,`error`),f.value=!1}finally{p.value=!1}}function C(){f.value=!1}return{logs:i,logTotal:a,logLoading:o,logPage:s,logStatusFilter:c,logSyncModeFilter:l,logServerFilter:u,reconcilingLogs:d,logStatusOptions:at,logSyncModeOptions:ot,logHeaders:st,logServerOptions:_,showDiagnose:f,diagnoseLoading:p,diagnoseResult:h,diagnoseTarget:g,onLogFilterChange:y,loadLogs:b,reconcileStaleLogs:x,openDiagnose:S,closeDiagnose:C}}function lt(){let e=et(),t=tt(r({})),n=ct(e,t),i=rt(e,t,()=>n.loadLogs()),a=it(e,t);function o(){a.confirmAndPush(()=>i.doPush())}return ne(()=>{t.loadServers(),n.loadLogs(),t.startAutoRefresh(()=>i.pushing.value)}),te(()=>{i.dispose(),t.stopAutoRefresh()}),{form:j(e),servers:j(t),progress:j(i),preview:j(a),logs:j(n),onConfirmAndPush:o}}var ut=I({__name:`PushPage`,setup(e){let{form:t,servers:n,progress:r,preview:i,logs:o,onConfirmAndPush:s}=lt();return(e,l)=>(O(),E(ue,{fluid:``,class:`pa-6`},{default:a(()=>[C($e,{"uploaded-zip":c(t).uploadedZip,"is-dragging":c(t).isDragging,"zip-uploading":c(t).zipUploading,onDragover:l[0]||=e=>c(t).isDragging=!0,onDragleave:l[1]||=e=>c(t).isDragging=!1,onDrop:c(t).handleZipDrop,onFileSelect:c(t).handleZipSelect,onClear:c(t).clearZipUpload},null,8,[`uploaded-zip`,`is-dragging`,`zip-uploading`,`onDrop`,`onFileSelect`,`onClear`]),C(Xe,{"source-path":c(t).sourcePath,"onUpdate:sourcePath":l[2]||=e=>c(t).sourcePath=e,"target-path":c(t).targetPath,"onUpdate:targetPath":l[3]||=e=>c(t).targetPath=e,"zip-locked":!!c(t).uploadedZip,pushing:c(r).pushing,onPreview:c(i).doPreview,onPush:c(r).doPush},null,8,[`source-path`,`target-path`,`zip-locked`,`pushing`,`onPreview`,`onPush`]),C(We,{"select-all":c(n).selectAll,"server-search":c(n).serverSearch,"onUpdate:serverSearch":l[4]||=e=>c(n).serverSearch=e,"servers-loading":c(n).serversLoading,"servers-by-category":c(n).serversByCategory,"selected-ids":c(n).selectedIds,"push-status":c(n).pushStatus,"is-category-all-selected":c(n).isCategoryAllSelected,onToggleAll:c(n).toggleAll,onRefresh:c(n).loadServers,onToggleCategory:c(n).toggleCategory,onToggleServer:c(n).toggleServer},null,8,[`select-all`,`server-search`,`servers-loading`,`servers-by-category`,`selected-ids`,`push-status`,`is-category-all-selected`,`onToggleAll`,`onRefresh`,`onToggleCategory`,`onToggleServer`]),C(Ye,{"sync-mode":c(t).syncMode,"onUpdate:syncMode":l[5]||=e=>c(t).syncMode=e,"sync-mode-desc":c(t).syncModeDesc},null,8,[`sync-mode`,`sync-mode-desc`]),C(Ie,{items:c(r).wsProgressItems,"batch-id":c(r).pushBatchId,pushing:c(r).pushing,cancelling:c(r).cancelling,"done-count":c(r).doneCount,"total-progress":c(r).totalProgress,onCancel:c(r).cancelPush},null,8,[`items`,`batch-id`,`pushing`,`cancelling`,`done-count`,`total-progress`,`onCancel`]),C(Pe,{modelValue:c(i).showPreview,"onUpdate:modelValue":l[6]||=e=>c(i).showPreview=e,loading:c(i).previewLoading,results:c(i).previewResults,"selected-count":c(n).selectedIds.size,"preview-done":c(i).previewDone,"preview-total":c(i).previewTotal,"large-batch":c(i).previewLargeBatch,"warn-threshold":c(i).previewWarnThreshold,"error-count":c(i).previewErrorCount,"sync-mode":c(t).syncMode,onConfirmPush:c(s)},null,8,[`modelValue`,`loading`,`results`,`selected-count`,`preview-done`,`preview-total`,`large-batch`,`warn-threshold`,`error-count`,`sync-mode`,`onConfirmPush`]),C(Ce,{modelValue:c(o).showDiagnose,"onUpdate:modelValue":l[7]||=e=>c(o).showDiagnose=e,loading:c(o).diagnoseLoading,result:c(o).diagnoseResult,"target-name":c(o).diagnoseTarget?.server_name??void 0},null,8,[`modelValue`,`loading`,`result`,`target-name`]),C(Oe,{items:c(o).logs,headers:c(o).logHeaders,total:c(o).logTotal,loading:c(o).logLoading,page:c(o).logPage,"onUpdate:page":l[8]||=e=>c(o).logPage=e,"status-filter":c(o).logStatusFilter,"onUpdate:statusFilter":l[9]||=e=>c(o).logStatusFilter=e,"sync-mode-filter":c(o).logSyncModeFilter,"onUpdate:syncModeFilter":l[10]||=e=>c(o).logSyncModeFilter=e,"server-filter":c(o).logServerFilter,"onUpdate:serverFilter":l[11]||=e=>c(o).logServerFilter=e,"status-options":c(o).logStatusOptions,"sync-mode-options":c(o).logSyncModeOptions,"server-options":c(o).logServerOptions,reconciling:c(o).reconcilingLogs,onFilterChange:c(o).onLogFilterChange,onPageChange:c(o).loadLogs,onReconcile:c(o).reconcileStaleLogs,onDiagnose:c(o).openDiagnose},null,8,[`items`,`headers`,`total`,`loading`,`page`,`status-filter`,`sync-mode-filter`,`server-filter`,`status-options`,`sync-mode-options`,`server-options`,`reconciling`,`onFilterChange`,`onPageChange`,`onReconcile`,`onDiagnose`])]),_:1}))}});export{ut as default}; \ No newline at end of file diff --git a/web/app/assets/RetriesPage-CaygSdmM.js b/web/app/assets/RetriesPage-CaygSdmM.js new file mode 100644 index 00000000..f7fe8873 --- /dev/null +++ b/web/app/assets/RetriesPage-CaygSdmM.js @@ -0,0 +1 @@ +import{$n as e,Ar as t,Br as n,Cr as r,F as i,I as a,N as o,P as s,R as c,Rt as l,ar as u,er as d,hr as f,ir as p,or as m,pr as h,tr as g}from"./index-C_dP75wD.js";import{o as _,t as v}from"./VContainer-DGQjsCTw.js";import{t as y}from"./VChip-oig-b64O.js";import{t as b}from"./VSelect-V_uWG8_q.js";import{t as x}from"./VDataTableServer-BMEL-4WM.js";import{t as S}from"./VSpacer-Cl6Zcy_X.js";import{t as C}from"./VDialog-CnSngTCg.js";var w={class:`font-weight-medium text-truncate d-inline-block`,style:{"max-width":`240px`}},T={class:`text-medium-emphasis`},E={class:`text-medium-emphasis`},D={class:`text-caption text-medium-emphasis`},O={class:`text-caption text-medium-emphasis`},k=m({__name:`RetriesPage`,setup(m){let k=_(),A=t(!1),j=t([]),M=t(0),N=t(1),P=t(null),F=t(!1),I=t(null),L=[{label:`待重试`,value:`pending`},{label:`重试中`,value:`retrying`},{label:`成功`,value:`success`},{label:`失败`,value:`failed`}],R=[{title:`状态`,key:`status`,width:100},{title:`任务`,key:`operation`},{title:`服务器`,key:`server_name`},{title:`次数`,key:`retry_count`,width:100},{title:`下次重试`,key:`next_retry_at`,width:140},{title:`创建时间`,key:`created_at`,width:160},{title:``,key:`actions`,width:120,align:`end`,sortable:!1}];async function z(){A.value=!0;try{let e=(await l.getList(`/retries/`,{limit:200})).items||[];P.value&&(e=e.filter(e=>e.status===P.value)),M.value=e.length;let t=(N.value-1)*20;j.value=e.slice(t,t+20)}catch(e){j.value=[],M.value=0,k(e instanceof Error?e.message:`加载重试队列失败`,`error`)}finally{A.value=!1}}async function B(e){try{await l.post(`/retries/${e.id}/retry`),z(),k(`重试已触发`)}catch(e){k(e.message||`操作失败`,`error`)}}function V(e){I.value=e.id,F.value=!0}async function H(){if(I.value)try{await l.delete(`/retries/${I.value}`),F.value=!1,z(),k(`已删除`)}catch(e){k(e.message||`删除失败`,`error`)}}function U(e){return e===`success`?`success`:e===`failed`?`error`:e===`retrying`?`warning`:`info`}function W(e){return e===`pending`?`待重试`:e===`retrying`?`重试中`:e===`success`?`成功`:e===`failed`?`失败`:e}function G(e){return e.source_path&&e.target_path?`${e.source_path} → ${e.target_path}`:e.source_path||e.target_path||`文件推送`}return h(()=>z()),(t,l)=>(f(),d(v,{fluid:``,class:`pa-6`},{default:r(()=>[u(o,{elevation:`0`,border:``,rounded:`lg`},{default:r(()=>[u(i,{class:`d-flex align-center text-h6`},{default:r(()=>[l[5]||=p(` 重试队列 `,-1),u(S),u(b,{modelValue:P.value,"onUpdate:modelValue":[l[0]||=e=>P.value=e,l[1]||=e=>{N.value=1,z()}],items:L,"item-title":`label`,"item-value":`value`,label:`状态筛选`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`160px`},clearable:``},null,8,[`modelValue`])]),_:1}),u(x,{items:j.value,headers:R,"items-length":M.value,loading:A.value,page:N.value,"items-per-page":20,hover:``,density:`comfortable`,"onUpdate:page":l[2]||=e=>{N.value=e,z()}},{"item.status":r(({item:e})=>[u(y,{color:U(e.status),size:`x-small`,variant:`tonal`,label:``,border:`sm`},{default:r(()=>[p(n(W(e.status)),1)]),_:2},1032,[`color`])]),"item.operation":r(({item:t})=>[e(`span`,w,n(G(t)),1)]),"item.server_name":r(({item:t})=>[e(`span`,T,n(t.server_name||`—`),1)]),"item.retry_count":r(({item:t})=>[e(`span`,E,n(t.retry_count||0)+` / `+n(t.max_retries||3),1)]),"item.next_retry_at":r(({item:t})=>[e(`span`,D,n(t.next_retry_at||`—`),1)]),"item.created_at":r(({item:t})=>[e(`span`,O,n(t.created_at),1)]),"item.actions":r(({item:e})=>[e.status===`pending`||e.status===`failed`?(f(),d(c,{key:0,variant:`text`,size:`x-small`,color:`primary`,density:`compact`,onClick:t=>B(e)},{default:r(()=>[...l[6]||=[p(` 重试 `,-1)]]),_:1},8,[`onClick`])):g(``,!0),u(c,{variant:`text`,size:`x-small`,color:`error`,density:`compact`,onClick:t=>V(e)},{default:r(()=>[...l[7]||=[p(` 删除 `,-1)]]),_:1},8,[`onClick`])]),"no-data":r(()=>[...l[8]||=[e(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无数据`,-1)]]),_:1},8,[`items`,`items-length`,`loading`,`page`])]),_:1}),u(C,{modelValue:F.value,"onUpdate:modelValue":l[4]||=e=>F.value=e,"max-width":`400`},{default:r(()=>[u(o,{border:``},{default:r(()=>[u(i,null,{default:r(()=>[...l[9]||=[p(`确认删除`,-1)]]),_:1}),u(s,null,{default:r(()=>[...l[10]||=[p(`确定要删除此重试任务吗?`,-1)]]),_:1}),u(a,null,{default:r(()=>[u(S),u(c,{variant:`text`,onClick:l[3]||=e=>F.value=!1},{default:r(()=>[...l[11]||=[p(`取消`,-1)]]),_:1}),u(c,{color:`error`,variant:`flat`,onClick:H},{default:r(()=>[...l[12]||=[p(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}});export{k as default}; \ No newline at end of file diff --git a/web/app/assets/SchedulesPage-CxS2y1OK.js b/web/app/assets/SchedulesPage-CxS2y1OK.js new file mode 100644 index 00000000..27785411 --- /dev/null +++ b/web/app/assets/SchedulesPage-CxS2y1OK.js @@ -0,0 +1 @@ +import{$n as e,Ar as t,Br as n,Cr as r,F as i,I as a,Ir as o,N as s,P as c,R as l,Rt as u,ar as d,er as ee,hr as f,ir as p,or as m,pr as h,t as g}from"./index-C_dP75wD.js";import{o as _,t as v}from"./VContainer-DGQjsCTw.js";import{t as y}from"./VChip-oig-b64O.js";import{t as b}from"./VSelect-V_uWG8_q.js";import{t as x}from"./VDataTableServer-BMEL-4WM.js";import{t as S}from"./VSpacer-Cl6Zcy_X.js";import{t as C}from"./useServerList-DS-TV_aM.js";import{t as w}from"./VDialog-CnSngTCg.js";import{t as T}from"./VSwitch-5b3JXWIr.js";var E={class:`text-medium-emphasis`},D={class:`text-caption text-medium-emphasis`},O={class:`text-caption text-medium-emphasis`},k=m({__name:`SchedulesPage`,setup(m){let k=_(),{servers:A,loadServers:j}=C(),M=t(!1),N=t(null),P=t(null),F=t([]),I=t(1),L=t(0),R=t(20),z=t(!1),B=t(null),V=t(!1),H=t({name:``,cron:``,source_path:``,target_path:``,server_ids:[],enabled:!0}),U=t(!1),W=t(null),G=[{title:`名称`,key:`name`},{title:`Cron`,key:`cron_expr`,width:160},{title:`源路径`,key:`source_path`},{title:`目标路径`,key:`target_path`},{title:`服务器`,key:`server_count`,width:80},{title:`上次运行`,key:`last_run_at`,width:140},{title:`下次运行`,key:`next_run`,width:140},{title:`启用`,key:`enabled`,width:80},{title:`操作`,key:`actions`,width:200,align:`end`}];function K(e){if(Array.isArray(e))return e.map(e=>Number(e)).filter(e=>!Number.isNaN(e));if(typeof e==`string`&&e.trim())try{let t=JSON.parse(e);if(Array.isArray(t))return t.map(e=>Number(e)).filter(e=>!Number.isNaN(e))}catch{}return[]}function q(e){return K(e).length}function J(e){return{...e,server_ids:K(e.server_ids)}}function Y(){let e=H.value.server_ids;if(!H.value.name.trim())throw Error(`请填写调度名称`);if(!H.value.cron.trim())throw Error(`请填写 Cron 表达式`);if(!/^[\d\s*/,\-]+$/.test(H.value.cron.trim()))throw Error(`Cron 表达式格式不正确`);if(!e.length)throw Error(`请至少选择一台服务器`);if(!H.value.source_path.trim())throw Error(`请填写推送源路径`);return{name:H.value.name.trim(),cron_expr:H.value.cron.trim(),source_path:H.value.source_path.trim(),server_ids:JSON.stringify(e),run_mode:`cron`,schedule_type:`push`,enabled:H.value.enabled,sync_mode:`incremental`}}function X(e){I.value=e,Q()}function Z(e){R.value=e,I.value=1,Q()}async function Q(){M.value=!0;try{let e=((await u.getList(`/schedules/`)).items||[]).map(J);L.value=e.length;let t=(I.value-1)*R.value;F.value=e.slice(t,t+R.value)}catch(e){F.value=[],L.value=0,k(e instanceof Error?e.message:`加载调度列表失败`,`error`)}finally{M.value=!1}}function $(e){B.value=e,e?H.value={name:e.name,cron:e.cron_expr||``,source_path:e.source_path||``,target_path:e.target_path||``,server_ids:K(e.server_ids),enabled:e.enabled}:H.value={name:``,cron:``,source_path:``,target_path:``,server_ids:[],enabled:!0},z.value=!0}async function te(){V.value=!0;try{let e=Y();B.value?await u.put(`/schedules/${B.value.id}`,e):await u.post(`/schedules/`,e),z.value=!1,Q(),k(`保存成功`)}catch(e){k(e.message||`保存失败`,`error`)}finally{V.value=!1}}async function ne(e){N.value=e.id;try{await u.put(`/schedules/${e.id}`,{enabled:e.enabled})}catch(t){e.enabled=!e.enabled,k(t.message||`操作失败`,`error`)}finally{N.value=null}}async function re(e){P.value=e.id;try{await u.post(`/sync/files`,{source_path:e.source_path,target_path:e.target_path||`/tmp`,server_ids:K(e.server_ids)}),k(`已触发推送`)}catch(e){k(e.message||`执行失败`,`error`)}finally{P.value=null}}function ie(e){W.value=e,U.value=!0}async function ae(){if(W.value)try{await u.delete(`/schedules/${W.value.id}`),U.value=!1,Q(),k(`已删除`)}catch(e){k(e.message||`删除失败`,`error`)}}return h(()=>{Q(),j()}),(t,u)=>(f(),ee(v,{fluid:``,class:`pa-6`},{default:r(()=>[d(s,{elevation:`0`,border:``,rounded:`lg`},{default:r(()=>[d(i,{class:`d-flex align-center text-h6`},{default:r(()=>[u[12]||=p(` 推送调度 `,-1),d(S),d(l,{color:`primary`,variant:`flat`,size:`small`,"prepend-icon":`mdi-plus`,onClick:u[0]||=e=>$(null)},{default:r(()=>[...u[11]||=[p(`新建调度`,-1)]]),_:1})]),_:1}),d(x,{items:F.value,headers:G,"items-length":L.value,loading:M.value,page:I.value,"items-per-page":R.value,hover:``,density:`comfortable`,"onUpdate:page":X,"onUpdate:itemsPerPage":Z},{"item.enabled":r(({item:e})=>[d(T,{modelValue:e.enabled,"onUpdate:modelValue":[t=>e.enabled=t,t=>ne(e)],color:`primary`,density:`compact`,"hide-details":``,loading:N.value===e.id},null,8,[`modelValue`,`onUpdate:modelValue`,`loading`])]),"item.cron_expr":r(({item:e})=>[d(y,{size:`small`,variant:`tonal`,label:``,"prepend-icon":`mdi-clock-outline`},{default:r(()=>[p(n(e.cron_expr||`—`),1)]),_:2},1024)]),"item.server_count":r(({item:t})=>[e(`span`,E,n(q(t.server_ids))+` 台`,1)]),"item.last_run_at":r(({item:t})=>[e(`span`,D,n(t.last_run_at||`从未运行`),1)]),"item.next_run":r(({item:t})=>[e(`span`,O,n(t.next_run||`—`),1)]),"item.actions":r(({item:e})=>[d(l,{variant:`text`,size:`x-small`,density:`compact`,onClick:t=>$(e)},{default:r(()=>[...u[13]||=[p(`编辑`,-1)]]),_:1},8,[`onClick`]),d(l,{variant:`text`,size:`x-small`,density:`compact`,loading:P.value===e.id,onClick:t=>re(e)},{default:r(()=>[...u[14]||=[p(`立即执行`,-1)]]),_:1},8,[`loading`,`onClick`]),d(l,{variant:`text`,size:`x-small`,color:`error`,density:`compact`,onClick:t=>ie(e)},{default:r(()=>[...u[15]||=[p(`删除`,-1)]]),_:1},8,[`onClick`])]),"no-data":r(()=>[...u[16]||=[e(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无计划任务`,-1)]]),_:1},8,[`items`,`items-length`,`loading`,`page`,`items-per-page`])]),_:1}),d(w,{modelValue:z.value,"onUpdate:modelValue":u[8]||=e=>z.value=e,"max-width":`600`},{default:r(()=>[d(s,{border:``},{default:r(()=>[d(i,null,{default:r(()=>[p(n(B.value?`编辑调度`:`新建调度`),1)]),_:1}),d(c,null,{default:r(()=>[d(g,{modelValue:H.value.name,"onUpdate:modelValue":u[1]||=e=>H.value.name=e,label:`调度名称`,variant:`outlined`,density:`compact`,class:`mb-2`},null,8,[`modelValue`]),d(g,{modelValue:H.value.cron,"onUpdate:modelValue":u[2]||=e=>H.value.cron=e,label:`Cron 表达式`,variant:`outlined`,density:`compact`,hint:`例如: */30 * * * *`,"persistent-hint":``,class:`mb-2`},null,8,[`modelValue`]),d(g,{modelValue:H.value.source_path,"onUpdate:modelValue":u[3]||=e=>H.value.source_path=e,label:`推送源路径`,variant:`outlined`,density:`compact`,class:`mb-2`},null,8,[`modelValue`]),d(g,{modelValue:H.value.target_path,"onUpdate:modelValue":u[4]||=e=>H.value.target_path=e,label:`目标路径`,variant:`outlined`,density:`compact`,class:`mb-2`},null,8,[`modelValue`]),d(b,{modelValue:H.value.server_ids,"onUpdate:modelValue":u[5]||=e=>H.value.server_ids=e,items:o(A),"item-title":`name`,"item-value":`id`,label:`目标服务器`,variant:`outlined`,density:`compact`,multiple:``,chips:``,class:`mb-2`},null,8,[`modelValue`,`items`]),d(T,{modelValue:H.value.enabled,"onUpdate:modelValue":u[6]||=e=>H.value.enabled=e,label:`启用`,color:`primary`,density:`compact`,"hide-details":``},null,8,[`modelValue`])]),_:1}),d(a,null,{default:r(()=>[d(S),d(l,{variant:`text`,onClick:u[7]||=e=>z.value=!1},{default:r(()=>[...u[17]||=[p(`取消`,-1)]]),_:1}),d(l,{color:`primary`,variant:`flat`,onClick:te,loading:V.value},{default:r(()=>[...u[18]||=[p(`保存`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),d(w,{modelValue:U.value,"onUpdate:modelValue":u[10]||=e=>U.value=e,"max-width":`400`},{default:r(()=>[d(s,{border:``},{default:r(()=>[d(i,null,{default:r(()=>[...u[19]||=[p(`确认删除`,-1)]]),_:1}),d(c,null,{default:r(()=>[u[20]||=p(`确定要删除调度 `,-1),e(`strong`,null,n(W.value?.name),1),u[21]||=p(` 吗?`,-1)]),_:1}),d(a,null,{default:r(()=>[d(S),d(l,{variant:`text`,onClick:u[9]||=e=>U.value=!1},{default:r(()=>[...u[22]||=[p(`取消`,-1)]]),_:1}),d(l,{color:`error`,variant:`flat`,onClick:ae},{default:r(()=>[...u[23]||=[p(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}});export{k as default}; \ No newline at end of file diff --git a/web/app/assets/ScriptsPage-CknVO2RI.js b/web/app/assets/ScriptsPage-CknVO2RI.js new file mode 100644 index 00000000..a110ad49 --- /dev/null +++ b/web/app/assets/ScriptsPage-CknVO2RI.js @@ -0,0 +1 @@ +import{t as e,x as t}from"./VDataTable-RUszusjq.js";import{$n as n,Ar as r,Br as i,Cr as a,Et as ee,F as o,I as s,Ir as c,J as te,Jn as ne,M as l,N as u,P as d,Qn as f,R as p,Rt as m,X as h,Xn as re,Yn as ie,_ as ae,_r as oe,ar as g,er as _,hr as v,ir as y,k as b,lr as se,mr as ce,nr as x,or as le,pr as ue,qn as de,t as S,tr as C,w as fe,wr as pe,xr as me}from"./index-C_dP75wD.js";import{o as he,t as ge}from"./VContainer-DGQjsCTw.js";import{t as w}from"./VChip-oig-b64O.js";import{t as _e}from"./VSelect-V_uWG8_q.js";import{n as T,t as ve}from"./VRow-MZyk7N4E.js";import{t as E}from"./VSpacer-Cl6Zcy_X.js";import{t as ye}from"./apiError-BgZlS-MZ.js";import{t as be}from"./useServerList-DS-TV_aM.js";import{i as D}from"./validation-DMwOxx4a.js";import{t as O}from"./VDialog-CnSngTCg.js";import{t as xe}from"./VTextarea-Bxfo_kiv.js";var Se={class:`text-body-1 font-weight-medium`},Ce={class:`text-body-2 text-medium-emphasis`},we={class:`text-caption text-medium-emphasis mt-2`},Te={key:1,class:`d-flex justify-center mt-4`},Ee={class:`text-caption`},De={class:`d-flex align-center ga-2`},Oe={class:`text-body-2`},ke={key:0},Ae={key:1,class:`text-medium-emphasis`},k=le({__name:`ScriptsPage`,setup(le){let k=he(),{servers:je,loadServers:Me}=be(),A=r(!1),j=r(``),M=r([]),N=r(1),P=r(0),F=r(20),I=r(!1),L=r(null),R=r(!1),z=r({name:``,category:``,description:``,content:``}),B=r(!1),V=r(null),H=r([]),U=r(300),W=r(!1),G=r(!1),K=r(null),q=r(!1),Ne=r(null),J=r([]),Y=r(!1),X=r(``),Z=r([]),Pe=r(60),Fe=r(!1),Q=r([]),Ie=null,Le=[{title:`命令`,key:`command`},{title:`状态`,key:`status`,width:100},{title:`进度`,key:`progress`,width:100},{title:`操作人`,key:`operator`,width:80},{title:`开始时间`,key:`started_at`,width:160}],Re=f(()=>{if(!j.value)return M.value;let e=j.value.toLowerCase();return M.value.filter(t=>t.name.toLowerCase().includes(e)||(t.category||``).toLowerCase().includes(e))});async function $(){A.value=!0;try{let e=await m.getList(`/scripts/`,{page:N.value,per_page:F.value});M.value=e.items,P.value=e.total}catch(e){M.value=[],k(ye(e,`加载脚本列表失败`),`error`)}finally{A.value=!1}}me(j,()=>{N.value=1,$()});function ze(e){L.value=e,e?z.value={name:e.name,category:e.category||``,description:e.description||``,content:e.content||``}:z.value={name:``,category:``,description:``,content:``},I.value=!0}async function Be(){R.value=!0;try{L.value?await m.put(`/scripts/${L.value.id}`,z.value):await m.post(`/scripts/`,z.value),I.value=!1,$(),k(`保存成功`)}catch(e){k(e.message||`保存失败`,`error`)}finally{R.value=!1}}function Ve(e){V.value=e,H.value=[],B.value=!0}async function He(){if(!V.value||!H.value.length){k(`请选择服务器`,`warning`);return}W.value=!0;try{let e=await m.post(`/scripts/exec`,{script_id:V.value.id,server_ids:H.value,timeout:U.value});B.value=!1,k(`脚本已提交执行`),qe(V.value.name,e.execution_id,H.value.length)}catch(e){k(e.message||`执行失败`,`error`)}finally{W.value=!1}}function Ue(e){K.value=e,G.value=!0}async function We(){if(K.value)try{await m.delete(`/scripts/${K.value.id}`),G.value=!1,$(),k(`已删除`)}catch(e){k(e.message||`删除失败`,`error`)}}async function Ge(e){Ne.value=e,q.value=!0;try{J.value=(await m.get(`/scripts/executions`,{script_id:e.id})).items||[]}catch{J.value=[]}}async function Ke(){if(!(!X.value||Z.value.length===0)){Fe.value=!0;try{let e=await m.post(`/scripts/exec`,{command:X.value,server_ids:Z.value,timeout:Pe.value});k(`已在 ${Z.value.length} 台服务器上执行`),qe(`临时命令`,e.execution_id,Z.value.length)}catch(e){k(e.message||`执行失败`,`error`)}finally{Fe.value=!1}}}function qe(e,t,n){Q.value.unshift({id:t,name:e,status:`running`,totalServers:n,completedServers:0,refreshing:!1}),Je()}function Je(){Ie||=setInterval(async()=>{let e=Q.value.filter(e=>e.status===`running`);if(e.length===0){Ye();return}for(let t of e)await Xe(t)},5e3)}function Ye(){Ie&&=(clearInterval(Ie),null)}async function Xe(e){e.refreshing=!0;try{let t=await m.get(`/scripts/executions/${e.id}`),n=t.results||{};e.completedServers=Object.values(n).filter(e=>e.status!==`running`&&e.status!==`pending`).length,e.status=t.status}catch{}finally{e.refreshing=!1}}async function Ze(e){try{await m.post(`/scripts/executions/${e.id}/stop`),e.status=`failed`,k(`已发送停止指令`)}catch(e){k(e.message||`停止失败`,`error`)}}function Qe(e){return e===`running`?`blue`:e===`completed`?`green`:e===`failed`?`red`:`orange`}function $e(e){return e===`running`?`执行中`:e===`completed`?`已完成`:e===`failed`?`失败`:`部分完成`}return ue(()=>{$(),Me()}),ce(()=>{Ye()}),(r,f)=>(v(),_(ge,{fluid:``,class:`pa-6`},{default:a(()=>[g(u,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:a(()=>[g(o,{class:`d-flex align-center`},{default:a(()=>[f[22]||=y(` 脚本库 `,-1),g(E),g(S,{modelValue:j.value,"onUpdate:modelValue":f[0]||=e=>j.value=e,"prepend-inner-icon":`mdi-magnify`,label:`搜索...`,density:`compact`,"hide-details":``,variant:`outlined`,rounded:``,style:{"max-width":`240px`}},null,8,[`modelValue`]),g(p,{color:`primary`,variant:`flat`,class:`ml-3`,"prepend-icon":`mdi-plus`,size:`small`,onClick:f[1]||=e=>ze(null)},{default:a(()=>[...f[21]||=[y(` 新建脚本 `,-1)]]),_:1})]),_:1})]),_:1}),g(u,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:a(()=>[g(o,{class:`d-flex align-center`,style:{cursor:`pointer`},onClick:f[2]||=e=>Y.value=!Y.value},{default:a(()=>[g(h,{class:`mr-2`},{default:a(()=>[...f[23]||=[y(`mdi-console`,-1)]]),_:1}),f[24]||=y(` 临时命令执行 `,-1),g(E),g(h,null,{default:a(()=>[y(i(Y.value?`mdi-chevron-up`:`mdi-chevron-down`),1)]),_:1})]),_:1}),g(ee,null,{default:a(()=>[pe(n(`div`,null,[g(l),g(d,null,{default:a(()=>[g(xe,{modelValue:X.value,"onUpdate:modelValue":f[3]||=e=>X.value=e,label:`命令`,variant:`outlined`,density:`compact`,rows:`3`,placeholder:`输入要执行的命令... (Ctrl+Enter 执行)`,class:`mb-3`,onKeydown:ne(ie(Ke,[`ctrl`]),[`enter`]),rules:[c(D)(`命令`)]},null,8,[`modelValue`,`onKeydown`,`rules`]),g(ve,{dense:``},{default:a(()=>[g(T,{cols:`12`,md:`6`},{default:a(()=>[g(_e,{modelValue:Z.value,"onUpdate:modelValue":f[4]||=e=>Z.value=e,items:c(je),"item-title":`name`,"item-value":`id`,label:`目标服务器`,variant:`outlined`,density:`compact`,multiple:``,chips:``,"closable-chips":``},null,8,[`modelValue`,`items`])]),_:1}),g(T,{cols:`6`,md:`3`},{default:a(()=>[g(S,{modelValue:Pe.value,"onUpdate:modelValue":f[5]||=e=>Pe.value=e,modelModifiers:{number:!0},label:`超时(秒)`,variant:`outlined`,density:`compact`,type:`number`},null,8,[`modelValue`])]),_:1}),g(T,{cols:`6`,md:`3`,class:`d-flex align-center`},{default:a(()=>[g(p,{color:`primary`,variant:`flat`,onClick:Ke,loading:Fe.value,disabled:!X.value||Z.value.length===0},{default:a(()=>[...f[25]||=[y(` 执行 `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})]),_:1})],512),[[de,Y.value]])]),_:1})]),_:1}),A.value?(v(),_(te,{key:0,indeterminate:``,color:`primary`})):C(``,!0),g(ve,null,{default:a(()=>[(v(!0),x(re,null,oe(Re.value,e=>(v(),_(T,{cols:`12`,sm:`6`,md:`4`,key:e.id},{default:a(()=>[g(u,{elevation:`0`,border:``,rounded:`lg`,class:`fill-height`},{default:a(()=>[g(o,{class:`d-flex align-center`},{default:a(()=>[g(h,{color:`primary`,class:`mr-2`},{default:a(()=>[...f[26]||=[y(`mdi-code-braces`,-1)]]),_:1}),n(`span`,Se,i(e.name),1),g(E),g(ae,null,{activator:a(({props:e})=>[g(p,se({icon:`mdi-dots-vertical`,variant:`text`,size:`small`},{ref_for:!0},e),null,16)]),default:a(()=>[g(fe,{density:`compact`},{default:a(()=>[g(b,{title:`编辑`,onClick:t=>ze(e)},{prepend:a(()=>[g(h,null,{default:a(()=>[...f[27]||=[y(`mdi-pencil`,-1)]]),_:1})]),_:1},8,[`onClick`]),g(b,{title:`执行`,onClick:t=>Ve(e)},{prepend:a(()=>[g(h,null,{default:a(()=>[...f[28]||=[y(`mdi-play`,-1)]]),_:1})]),_:1},8,[`onClick`]),g(b,{title:`删除`,onClick:t=>Ue(e),class:`text-error`},{prepend:a(()=>[g(h,{color:`error`},{default:a(()=>[...f[29]||=[y(`mdi-delete`,-1)]]),_:1})]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024)]),_:2},1024),g(d,null,{default:a(()=>[e.category?(v(),_(w,{key:0,size:`small`,variant:`tonal`,label:``,class:`mb-2`},{default:a(()=>[y(i(e.category),1)]),_:2},1024)):C(``,!0),n(`div`,Ce,i(e.description||`无描述`),1),n(`div`,we,` 更新于 `+i(e.updated_at||e.created_at),1)]),_:2},1024),g(s,null,{default:a(()=>[g(p,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-play`,color:`primary`,onClick:t=>Ve(e)},{default:a(()=>[...f[30]||=[y(`执行`,-1)]]),_:1},8,[`onClick`]),g(E),g(p,{size:`small`,variant:`text`,onClick:t=>Ge(e)},{default:a(()=>[...f[31]||=[y(`历史`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1}),P.value>F.value?(v(),x(`div`,Te,[g(t,{modelValue:N.value,"onUpdate:modelValue":[f[6]||=e=>N.value=e,$],length:Math.ceil(P.value/F.value),rounded:``,density:`compact`},null,8,[`modelValue`,`length`])])):C(``,!0),Q.value.length>0?(v(),_(u,{key:2,elevation:`0`,border:``,rounded:`lg`,class:`mt-4`},{default:a(()=>[g(o,{class:`d-flex align-center text-subtitle-1`},{default:a(()=>[g(h,{class:`mr-2`},{default:a(()=>[...f[32]||=[y(`mdi-progress-clock`,-1)]]),_:1}),f[34]||=y(` 执行状态 `,-1),g(E),g(p,{size:`small`,variant:`text`,onClick:f[7]||=e=>Q.value=[]},{default:a(()=>[...f[33]||=[y(`清除`,-1)]]),_:1})]),_:1}),g(l),g(d,null,{default:a(()=>[g(fe,{density:`compact`},{default:a(()=>[(v(!0),x(re,null,oe(Q.value,e=>(v(),_(b,{key:e.id,title:e.name},{subtitle:a(()=>[n(`span`,Ee,`ID: `+i(e.id)+` · `+i(e.totalServers)+` 台服务器`,1)]),append:a(()=>[n(`div`,De,[g(w,{color:Qe(e.status),size:`x-small`,variant:`tonal`,label:``},{default:a(()=>[y(i($e(e.status)),1)]),_:2},1032,[`color`]),g(p,{size:`x-small`,variant:`text`,onClick:t=>Xe(e),loading:e.refreshing},{default:a(()=>[...f[35]||=[y(` 刷新 `,-1)]]),_:1},8,[`onClick`,`loading`]),e.status===`running`?(v(),_(p,{key:0,size:`x-small`,variant:`text`,color:`error`,onClick:t=>Ze(e)},{default:a(()=>[...f[36]||=[y(` 停止 `,-1)]]),_:1},8,[`onClick`])):C(``,!0)])]),_:2},1032,[`title`]))),128))]),_:1})]),_:1})]),_:1})):C(``,!0),g(O,{modelValue:I.value,"onUpdate:modelValue":f[13]||=e=>I.value=e,"max-width":`800`,scrollable:``},{default:a(()=>[g(u,{border:``},{default:a(()=>[g(o,null,{default:a(()=>[y(i(L.value?`编辑脚本`:`新建脚本`),1)]),_:1}),g(l),g(d,null,{default:a(()=>[g(S,{modelValue:z.value.name,"onUpdate:modelValue":f[8]||=e=>z.value.name=e,label:`脚本名称`,variant:`outlined`,density:`compact`,class:`mb-2`,rules:[c(D)(`脚本名称`)]},null,8,[`modelValue`,`rules`]),g(S,{modelValue:z.value.category,"onUpdate:modelValue":f[9]||=e=>z.value.category=e,label:`分类`,variant:`outlined`,density:`compact`,class:`mb-2`},null,8,[`modelValue`]),g(xe,{modelValue:z.value.description,"onUpdate:modelValue":f[10]||=e=>z.value.description=e,label:`描述`,variant:`outlined`,density:`compact`,rows:`2`,class:`mb-2`},null,8,[`modelValue`]),g(xe,{modelValue:z.value.content,"onUpdate:modelValue":f[11]||=e=>z.value.content=e,label:`脚本内容`,variant:`outlined`,density:`compact`,rows:`14`,class:`mt-2 font-monospace`,rules:[c(D)(`脚本内容`)]},null,8,[`modelValue`,`rules`])]),_:1}),g(l),g(s,null,{default:a(()=>[g(E),g(p,{variant:`text`,onClick:f[12]||=e=>I.value=!1},{default:a(()=>[...f[37]||=[y(`取消`,-1)]]),_:1}),g(p,{color:`primary`,variant:`flat`,onClick:Be,loading:R.value},{default:a(()=>[...f[38]||=[y(`保存`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),g(O,{modelValue:B.value,"onUpdate:modelValue":f[17]||=e=>B.value=e,"max-width":`600`},{default:a(()=>[g(u,{border:``},{default:a(()=>[g(o,null,{default:a(()=>[y(`执行脚本: `+i(V.value?.name),1)]),_:1}),g(d,null,{default:a(()=>[g(_e,{modelValue:H.value,"onUpdate:modelValue":f[14]||=e=>H.value=e,items:c(je),"item-title":`name`,"item-value":`id`,label:`选择服务器`,variant:`outlined`,density:`compact`,multiple:``,chips:``,class:`mb-2`},null,8,[`modelValue`,`items`]),g(S,{modelValue:U.value,"onUpdate:modelValue":f[15]||=e=>U.value=e,label:`超时(秒)`,variant:`outlined`,density:`compact`,type:`number`},null,8,[`modelValue`])]),_:1}),g(s,null,{default:a(()=>[g(E),g(p,{variant:`text`,onClick:f[16]||=e=>B.value=!1},{default:a(()=>[...f[39]||=[y(`取消`,-1)]]),_:1}),g(p,{color:`primary`,variant:`flat`,onClick:He,loading:W.value},{default:a(()=>[...f[40]||=[y(`执行`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),g(O,{modelValue:G.value,"onUpdate:modelValue":f[19]||=e=>G.value=e,"max-width":`400`},{default:a(()=>[g(u,{border:``},{default:a(()=>[g(o,null,{default:a(()=>[...f[41]||=[y(`确认删除`,-1)]]),_:1}),g(d,null,{default:a(()=>[f[42]||=y(`确定要删除脚本 `,-1),n(`strong`,null,i(K.value?.name),1),f[43]||=y(` 吗?`,-1)]),_:1}),g(s,null,{default:a(()=>[g(E),g(p,{variant:`text`,onClick:f[18]||=e=>G.value=!1},{default:a(()=>[...f[44]||=[y(`取消`,-1)]]),_:1}),g(p,{color:`error`,variant:`flat`,onClick:We},{default:a(()=>[...f[45]||=[y(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),g(O,{modelValue:q.value,"onUpdate:modelValue":f[20]||=e=>q.value=e,"max-width":`800`,scrollable:``},{default:a(()=>[g(u,{border:``},{default:a(()=>[g(o,null,{default:a(()=>[y(`执行历史: `+i(Ne.value?.name),1)]),_:1}),g(l),g(d,null,{default:a(()=>[g(e,{items:J.value,headers:Le,density:`compact`,hover:``},{"item.status":a(({item:e})=>[g(w,{color:e.status===`completed`?`success`:e.status===`failed`?`error`:`info`,size:`small`,variant:`tonal`,label:``},{default:a(()=>[y(i(e.status),1)]),_:2},1032,[`color`])]),"item.command":a(({item:e})=>[n(`code`,Oe,i(e.command.length>60?e.command.slice(0,60)+`…`:e.command),1)]),"item.progress":a(({item:e})=>[e.progress?(v(),x(`span`,ke,i(e.progress.done)+`/`+i(e.progress.total),1)):(v(),x(`span`,Ae,`—`))]),"no-data":a(()=>[...f[46]||=[n(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无数据`,-1)]]),_:1},8,[`items`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}});export{k as default}; \ No newline at end of file diff --git a/web/app/assets/ServersPage-6zeh5KJx.js b/web/app/assets/ServersPage-6zeh5KJx.js new file mode 100644 index 00000000..415eeba0 --- /dev/null +++ b/web/app/assets/ServersPage-6zeh5KJx.js @@ -0,0 +1,3 @@ +import{$ as e,$n as t,$t as n,Ar as r,B as i,Bn as a,Br as o,C as s,Cn as c,Cr as l,Ct as u,D as ee,E as d,Et as f,F as p,Gt as m,Ht as h,I as g,Ir as _,J as te,L as ne,Ln as re,M as v,N as y,Nr as b,O as ie,P as x,Qn as S,R as C,Rn as ae,Rr as w,Rt as T,S as E,Sn as oe,St as se,Tr as D,Tt as ce,Vn as le,Wt as ue,X as de,Xn as fe,Yn as O,Zt as pe,_ as me,_n as he,_r as k,an as ge,ar as A,bt as j,cn as M,cr as N,dn as _e,er as P,et as ve,fn as F,ft as I,gr as L,hr as R,ir as z,jr as B,jt as V,k as ye,kn as be,ln as xe,lr as H,m as Se,n as Ce,nn as U,nr as W,nt as G,or as we,pr as Te,pt as Ee,qn as De,rt as Oe,t as K,tn as ke,tr as q,tt as Ae,u as je,ur as J,v as Me,w as Ne,wr as Y,wt as Pe,xr as Fe,xt as Ie,yt as Le,zn as Re,zr as ze}from"./index-C_dP75wD.js";import{o as Be,t as Ve}from"./VContainer-DGQjsCTw.js";import{t as He}from"./VChip-oig-b64O.js";import{a as X,c as Ue,d as We,f as Ge,i as Ke,l as qe,n as Je,o as Ye,r as Xe,s as Ze,t as Z,u as Qe}from"./VSelect-V_uWG8_q.js";import{t as $e}from"./VDataTableServer-BMEL-4WM.js";import{n as Q,t as et}from"./VRow-MZyk7N4E.js";import{t as $}from"./VSpacer-Cl6Zcy_X.js";import{t as tt}from"./apiError-BgZlS-MZ.js";import{i as nt}from"./validation-DMwOxx4a.js";import{t as rt}from"./VDialog-CnSngTCg.js";import{t as it}from"./VTextarea-Bxfo_kiv.js";import{a as at,i as ot,n as st,r as ct,t as lt}from"./StatCardsRow-C1WUuCdM.js";import{a as ut,i as dt,n as ft,r as pt,t as mt}from"./VFileInput-FSrwyXa8.js";import{t as ht}from"./VAlert-CNuOH9h_.js";function gt(e){if(typeof e==`number`&&Number.isFinite(e)&&e>0)return Math.trunc(e);if(typeof e==`string`&&/^\d+$/.test(e.trim())){let t=Number(e.trim());return Number.isFinite(t)&&t>0?t:null}return null}function _t(e){let t=[];for(let n of e){let e=gt(typeof n==`object`&&n&&`id`in n?n.id:n);e!==null&&t.push(e)}return[...new Set(t)]}function vt(e){return(e||[]).filter(e=>e.success).length}var yt=F({alwaysFilter:Boolean,autoSelectFirst:{type:[Boolean,String]},clearOnSelect:{type:Boolean,default:!0},delimiters:Array,...X({filterKeys:[`title`]}),...Je({hideNoData:!0,returnObject:!0}),...ae(Ce({modelValue:null,role:`combobox`}),[`validationValue`,`dirty`])},`VCombobox`),bt=M()({name:`VCombobox`,props:yt(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:search":e=>!0,"update:menu":e=>!0},setup(e,{emit:i,slots:o}){let{t:s}=pe(),l=r(),u=B(!1),f=B(!0),p=B(!1),m=r(),h=r(),g=B(-1),_=!1,{items:te,transformIn:y,transformOut:x}=ee(e),{textColorClasses:C,textColorStyles:ae}=se(()=>l.value?.color),{InputIcon:T}=Se(e),E=n(e,`modelValue`,[],e=>y(a(e)),t=>{let n=x(t);return e.multiple?n:n[0]??null}),D=je(e),ue=b(()=>e.closableChips&&!D.isReadonly.value&&!D.isDisabled.value),O=S(()=>!!(e.chips||o.chip)),k=S(()=>O.value||!!o.selection),j=B(!e.multiple&&!k.value?E.value[0]?.title??``:``),M=B(null),N=S({get:()=>j.value,set:async t=>{if(j.value=t??``,t===null||t===``&&!e.multiple&&!k.value?E.value=[]:!e.multiple&&!k.value&&(E.value=[d(e,t)],J(()=>h.value?.scrollToIndex(0))),t&&e.multiple&&e.delimiters?.length){let e=Je(t);e.length>1&&(Z(e),j.value=``)}t||(g.value=-1),f.value=!t}}),_e=S(()=>typeof e.counterValue==`function`?e.counterValue(E.value):typeof e.counterValue==`number`?e.counterValue:e.multiple?E.value.length:N.value.length),{filteredItems:P,getMatches:ve}=Ye(e,te,()=>M.value??(e.alwaysFilter||!f.value?N.value:``)),F=S(()=>e.hideSelected&&M.value===null?P.value.filter(e=>!E.value.some(t=>t.value===e.value)):P.value),I=S(()=>e.hideNoData&&!F.value.length||D.isReadonly.value||D.isDisabled.value),L=n(e,`menu`),R=S({get:()=>L.value,set:e=>{L.value&&!e&&m.value?.ΨopenChildren.size||e&&I.value||(L.value=e)}}),{menuId:V,ariaExpanded:xe,ariaControls:Ce}=Xe(e,R);Fe(j,e=>{_?J(()=>_=!1):u.value&&!R.value&&(R.value=!0),i(`update:search`,e)}),Fe(E,t=>{!e.multiple&&!k.value&&(j.value=t[0]?.title??``)});let W=S(()=>E.value.map(e=>e.value)),G=S(()=>F.value.find(e=>e.type===`item`&&!e.props.disabled)),we=S(()=>(e.autoSelectFirst===!0||e.autoSelectFirst===`exact`&&N.value===G.value?.title)&&F.value.length>0&&!f.value&&!p.value),Te=r(),Ee=r(),De=r(),Oe=Ue(Te,l),ke=qe(R,()=>m.value?.contentEl,()=>l.value?.controlRef),{onTabKeydown:q}=Ze({groups:[{type:`element`,contentRef:Ee},{type:`list`,contentRef:Te,displayItemsCount:()=>F.value.length},{type:`element`,contentRef:De}],onLeave:()=>{R.value=!1,l.value?.focus()}});function Ae(t){_=!0,J(()=>_=!1),e.openOnClear&&(R.value=!0)}function Y(){I.value||(R.value=!0)}function Pe(e){I.value||(u.value&&(e.preventDefault(),e.stopPropagation()),R.value=!R.value)}function Ie(e){e.key===`Tab`&&q(e),Te.value?.$el.contains(e.target)&&(he(e)||e.key===`Backspace`)&&l.value?.focus()}function Le(t){if(be(t)||D.isReadonly.value)return;let n=l.value?.selectionStart,r=E.value.length;if([`Enter`,`ArrowDown`,`ArrowUp`].includes(t.key)&&t.preventDefault(),[`Enter`,`ArrowDown`].includes(t.key)&&(R.value=!0),[`Escape`].includes(t.key)&&(R.value=!1),we.value&&[`Enter`,`Tab`].includes(t.key)&&G.value&&!E.value.some(({value:e})=>e===G.value.value)&&X(G.value),t.key===`ArrowDown`&&we.value&&Te.value?.focus(`next`),t.key===`Enter`&&N.value&&(X(d(e,N.value),!0,!0),k.value&&(j.value=``)),[`Backspace`,`Delete`].includes(t.key)){if(!e.multiple&&k.value&&E.value.length>0&&!N.value)return X(E.value[0],!1);if(~g.value){t.preventDefault();let e=g.value;X(E.value[g.value],!1),g.value=e>=r-1?r-2:e}else t.key===`Backspace`&&!N.value&&(g.value=r-1);return}if(e.multiple)if(t.key===`ArrowLeft`){if(g.value<0&&n&&n>0)return;let e=g.value>-1?g.value-1:r-1;E.value[e]?g.value=e:(g.value=-1,l.value?.setSelectionRange(N.value.length,N.value.length))}else if(t.key===`ArrowRight`){if(g.value<0)return;let e=g.value+1;E.value[e]?g.value=e:(g.value=-1,l.value?.setSelectionRange(0,0))}else ~g.value&&he(t)&&(g.value=-1)}function Re(t){let n=Je(t?.clipboardData?.getData(`Text`)??``);n.length>1&&e.multiple&&(t.preventDefault(),Z(n))}function Be(){e.eager&&h.value?.calculateVisibleItems()}function Ve(){u.value&&(m.value?.contentEl?._clickOutside?.lastMousedownWasOutside?u.value=!1:l.value?.focus()),f.value=!0,M.value=null}function X(t,n=!0,r=!1){if(!(!t||t.props.disabled))if(e.multiple){let r=E.value.findIndex(n=>(e.valueComparator||ge)(n.value,t.value)),i=n??!~r;if(~r){let e=i?[...E.value,t]:[...E.value];e.splice(r,1),E.value=e}else i&&(E.value=[...E.value,t]);e.clearOnSelect&&(N.value=``)}else{let i=n!==!1;E.value=i?[t]:[],(!f.value||e.alwaysFilter)&&j.value&&(M.value=j.value),j.value=i&&!k.value?t.title:``,J(()=>{R.value=r,f.value=!0})}}function Je(t){let n=[` +`,...e.delimiters??[]].map(c).join(`|`);return t.split(RegExp(`(?:${n})+`))}async function Z(t){for(let n of t)n=n.trim(),n&&(X(d(e,n)),await J())}function $e(e){u.value=!0,setTimeout(()=>{p.value=!0})}function Q(e){if(p.value=!1,!l.value?.$el.contains(e.relatedTarget)){if(ke(e))return;u.value=!1}}let et=0;function $(){et=performance.now()}function tt(e){let t=e.relatedTarget;((m.value?.contentEl)?.contains(t)||!t&&performance.now()-et<10)&&(u.value=!0)}return Fe(u,(t,n)=>{if(!(t||t===n)&&(g.value=-1,R.value=!1,N.value)){if(e.multiple){X(d(e,N.value));return}if(!k.value)return;E.value.some(({title:e})=>e===N.value)?j.value=``:X(d(e,N.value))}}),Fe(R,t=>{if(!e.hideSelected&&t&&E.value.length&&f.value){let t=F.value.findIndex(t=>E.value.some(n=>(e.valueComparator||ge)(n.value,t.value)));le&&window.requestAnimationFrame(()=>{t>=0&&h.value?.scrollToIndex(t)})}t&&(M.value=null)}),Fe(te,(e,t)=>{R.value||u.value&&!t.length&&e.length&&(R.value=!0)}),U(()=>{let n=!!(!e.hideNoData||F.value.length||o[`prepend-item`]||o[`append-item`]||o[`no-data`]),r=E.value.length>0,i=K.filterProps(e),a={search:N,filteredItems:P.value};return A(K,H({ref:l},i,{modelValue:N.value,"onUpdate:modelValue":e=>N.value=e,focused:u.value,"onUpdate:focused":e=>u.value=e,validationValue:E.externalValue,counterValue:_e.value,dirty:r,class:[`v-combobox`,{"v-combobox--active-menu":R.value,"v-combobox--chips":!!e.chips,"v-combobox--selection-slot":!!k.value,"v-combobox--selecting-index":g.value>-1,[`v-combobox--${e.multiple?`multiple`:`single`}`]:!0},e.class],style:e.style,readonly:D.isReadonly.value,placeholder:r?void 0:e.placeholder,"onClick:clear":Ae,"onMousedown:control":Y,onKeydown:Le,onPaste:Re,onBlur:tt,"aria-expanded":xe.value,"aria-controls":Ce.value}),{...o,default:({id:r})=>t(fe,null,[A(me,H({id:V.value,ref:m,modelValue:R.value,"onUpdate:modelValue":e=>R.value=e,activator:`parent`,disabled:I.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,onAfterEnter:Be,onAfterLeave:Ve},e.menuProps,{contentClass:[`v-combobox__content`,e.menuProps?.contentClass]}),{default:()=>[A(We,{elevation:e.menuElevation,onFocusin:$e,onKeydown:Ie,onMousedown:$},{default:()=>[o[`menu-header`]&&t(`header`,{ref:Ee},[o[`menu-header`](a)]),n&&A(Ne,H({key:`combobox-list`,ref:Te,filterable:!0,selected:W.value,selectStrategy:e.multiple?`independent`:`single-independent`,onMousedown:e=>e.preventDefault(),selectable:!!F.value.length,onFocusout:Q,tabindex:`-1`,"aria-live":`polite`,"aria-labelledby":`${r.value}-label`,"aria-multiselectable":e.multiple,color:e.itemColor??e.color},Oe,e.listProps),{default:()=>[o[`prepend-item`]?.(),!F.value.length&&!e.hideNoData&&(o[`no-data`]?.()??A(ye,{key:`no-data`,title:s(e.noDataText)},null)),A(Qe,{ref:h,renderless:!0,items:F.value,itemKey:`value`},{default:({item:n,index:r,itemRef:i})=>{let a=H(n.props,{ref:i,key:n.value,active:we.value&&n===G.value?!0:void 0,onClick:()=>X(n,null),"aria-posinset":r+1,"aria-setsize":F.value.length});return n.type===`divider`?o.divider?.({props:n.raw,index:r})??A(v,H(n.props,{key:`divider-${r}`}),null):n.type===`subheader`?o.subheader?.({props:n.raw,index:r})??A(ie,H(n.props,{key:`subheader-${r}`}),null):o.item?.({item:n.raw,internalItem:n,index:r,props:a})??A(ye,H(a,{role:`option`}),{prepend:({isSelected:r})=>t(fe,null,[e.multiple&&!e.hideSelected?A(Ge,{key:n.value,modelValue:r,ripple:!1,tabindex:`-1`,"aria-hidden":!0,onClick:e=>e.preventDefault()},null):void 0,n.props.prependAvatar&&A(ne,{image:n.props.prependAvatar},null),n.props.prependIcon&&A(de,{icon:n.props.prependIcon},null)]),title:()=>f.value?n.title:Ke(`v-combobox`,n.title,ve(n)?.title)})}}),o[`append-item`]?.()]}),o[`menu-footer`]&&t(`footer`,{ref:De},[o[`menu-footer`](a)])]})]}),E.value.map((n,r)=>{function i(e){e.stopPropagation(),e.preventDefault(),X(n,!1)}let a=H(He.filterProps(n.props),{"onClick:close":i,onKeydown(e){e.key!==`Enter`&&e.key!==` `||(e.preventDefault(),e.stopPropagation(),i(e))},onMousedown(e){e.preventDefault(),e.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0}),s=O.value?!!o.chip:!!o.selection,c=s?oe(O.value?o.chip({item:n.raw,internalItem:n,index:r,props:a}):o.selection({item:n.raw,internalItem:n,index:r})):void 0;if(!(s&&!c))return t(`div`,{key:n.value,class:w([`v-combobox__selection`,r===g.value&&[`v-combobox__selection--selected`,C.value]]),style:ze(r===g.value?ae.value:{})},[O.value?o.chip?A(ce,{key:`chip-defaults`,defaults:{VChip:{closable:ue.value,size:`small`,text:n.title}}},{default:()=>[c]}):A(He,H({key:`chip`,closable:ue.value,size:`small`,text:n.title,disabled:n.props.disabled},a),null):c??t(`span`,{class:`v-combobox__selection-text`},[n.title,e.multiple&&rt(fe,null,[o[`append-inner`]?.(...n),(!e.hideNoData||e.items.length)&&e.menuIcon?A(de,{class:`v-combobox__menu-icon`,color:l.value?.fieldIconColor,icon:e.menuIcon,onMousedown:Pe,onClick:re,"aria-hidden":!0,tabindex:`-1`},null):void 0,e.appendInnerIcon&&A(T,{key:`append-icon`,name:`appendInner`,color:n[0].iconColor.value},null)])})}),Me({isFocused:u,isPristine:f,menu:R,search:N,selectionIndex:g,filteredItems:P,select:X},l)}}),xt=Symbol.for(`vuetify:v-expansion-panel`),St=F({..._e(),...E()},`VExpansionPanelText`),Ct=M()({name:`VExpansionPanelText`,props:St(),setup(e,{slots:n}){let r=N(xt);if(!r)throw Error(`[Vuetify] v-expansion-panel-text needs to be placed inside v-expansion-panel`);let{hasContent:i,onAfterLeave:a}=s(e,r.isSelected);return U(()=>A(f,{onAfterLeave:a},{default:()=>[Y(t(`div`,{class:w([`v-expansion-panel-text`,e.class]),style:ze(e.style)},[n.default&&i.value&&t(`div`,{class:`v-expansion-panel-text__wrapper`},[n.default?.()])]),[[De,r.isSelected.value]])]})),{}}}),wt=F({color:String,expandIcon:{type:ke,default:`$expand`},collapseIcon:{type:ke,default:`$collapse`},hideActions:Boolean,focusable:Boolean,static:Boolean,ripple:{type:[Boolean,Object],default:!1},readonly:Boolean,..._e(),...u()},`VExpansionPanelTitle`),Tt=M()({name:`VExpansionPanelTitle`,directives:{vRipple:i},props:wt(),setup(e,{slots:n}){let r=N(xt);if(!r)throw Error(`[Vuetify] v-expansion-panel-title needs to be placed inside v-expansion-panel`);let{backgroundColorClasses:a,backgroundColorStyles:o}=Ie(()=>e.color),{dimensionStyles:s}=Pe(e),c=S(()=>({collapseIcon:e.collapseIcon,disabled:r.disabled.value,expanded:r.isSelected.value,expandIcon:e.expandIcon,readonly:e.readonly})),l=b(()=>r.isSelected.value?e.collapseIcon:e.expandIcon);return U(()=>Y(t(`button`,{class:w([`v-expansion-panel-title`,{"v-expansion-panel-title--active":r.isSelected.value,"v-expansion-panel-title--focusable":e.focusable,"v-expansion-panel-title--static":e.static},a.value,e.class]),style:ze([o.value,s.value,e.style]),type:`button`,tabindex:r.disabled.value?-1:void 0,disabled:r.disabled.value,"aria-expanded":r.isSelected.value,onClick:e.readonly?void 0:r.toggle},[t(`span`,{class:`v-expansion-panel-title__overlay`},null),n.default?.(c.value),!e.hideActions&&A(ce,{defaults:{VIcon:{icon:l.value}}},{default:()=>[t(`span`,{class:`v-expansion-panel-title__icon`},[n.actions?.(c.value)??A(de,null,null)])]})]),[[i,e.ripple]])),{}}}),Et=F({title:String,text:String,bgColor:String,...I(),...ve(),...Le(),...V(),...wt(),...St()},`VExpansionPanel`),Dt=M()({name:`VExpansionPanel`,props:Et(),emits:{"group:selected":e=>!0},setup(e,{slots:n}){let r=Oe(e,xt),{backgroundColorClasses:i,backgroundColorStyles:a}=Ie(()=>e.bgColor),{elevationClasses:o}=Ee(e),{roundedClasses:s}=j(e),c=b(()=>r?.disabled.value||e.disabled),l=S(()=>r.group.items.value.reduce((e,t,n)=>(r.group.selected.value.includes(t.id)&&e.push(n),e),[])),u=S(()=>{let e=r.group.items.value.findIndex(e=>e.id===r.id);return!r.isSelected.value&&l.value.some(t=>t-e===1)}),ee=S(()=>{let e=r.group.items.value.findIndex(e=>e.id===r.id);return!r.isSelected.value&&l.value.some(t=>t-e===-1)});return L(xt,r),U(()=>{let l=!!(n.text||e.text),d=!!(n.title||e.title),f=Tt.filterProps(e),p=Ct.filterProps(e);return A(e.tag,{class:w([`v-expansion-panel`,{"v-expansion-panel--active":r.isSelected.value,"v-expansion-panel--before-active":u.value,"v-expansion-panel--after-active":ee.value,"v-expansion-panel--disabled":c.value},s.value,i.value,e.class]),style:ze([a.value,e.style])},{default:()=>[t(`div`,{class:w([`v-expansion-panel__shadow`,...o.value])},null),A(ce,{defaults:{VExpansionPanelTitle:{...f},VExpansionPanelText:{...p}}},{default:()=>[d&&A(Tt,{key:`title`},{default:()=>[n.title?n.title():e.title]}),l&&A(Ct,{key:`text`},{default:()=>[n.text?n.text():e.text]}),n.default?.()]})]})}),{groupItem:r}}}),Ot=[`default`,`accordion`,`inset`,`popout`],kt=F({flat:Boolean,...Ae(),...Re(Et(),[`bgColor`,`collapseIcon`,`color`,`eager`,`elevation`,`expandIcon`,`focusable`,`hideActions`,`readonly`,`ripple`,`static`]),...Le(),...ue(),..._e(),...V(),variant:{type:String,default:`default`,validator:e=>Ot.includes(e)}},`VExpansionPanels`),At=M()({name:`VExpansionPanels`,props:kt(),emits:{"update:modelValue":e=>!0},setup(e,{slots:t}){let{next:n,prev:r}=G(e,xt),{themeClasses:i}=m(e),{roundedClasses:a}=j(e),o=b(()=>e.variant&&`v-expansion-panels--variant-${e.variant}`);return xe({VExpansionPanel:{bgColor:b(()=>e.bgColor),collapseIcon:b(()=>e.collapseIcon),color:b(()=>e.color),eager:b(()=>e.eager),elevation:b(()=>e.elevation),expandIcon:b(()=>e.expandIcon),focusable:b(()=>e.focusable),hideActions:b(()=>e.hideActions),readonly:b(()=>e.readonly),ripple:b(()=>e.ripple),static:b(()=>e.static)}}),U(()=>A(e.tag,{class:w([`v-expansion-panels`,{"v-expansion-panels--flat":e.flat,"v-expansion-panels--tile":e.tile},i.value,a.value,o.value,e.class]),style:ze(e.style)},{default:()=>[t.default?.({prev:r,next:n})]})),{next:n,prev:r}}}),jt=we({__name:`ServerFormDialog`,props:{modelValue:{type:Boolean},form:{},isEditing:{type:Boolean},saving:{type:Boolean},lookupsLoading:{type:Boolean},passwordPresets:{},sshKeyPresets:{},categoryOptions:{},platforms:{},nodes:{},editHints:{},filesElevationItems:{}},emits:[`update:modelValue`,`save`],setup(n,{emit:r}){let i=n,a=r,s=S(()=>i.form.preset_id||i.isEditing?[]:[nt(`SSH 密码或选择密码预设`)]),c=S(()=>i.form.ssh_key_preset_id||i.isEditing?[]:[nt(`私钥或选择 SSH 密钥预设`)]);return(r,i)=>(R(),P(rt,{"model-value":n.modelValue,"max-width":`720`,scrollable:``,persistent:``,"onUpdate:modelValue":i[18]||=e=>a(`update:modelValue`,e)},{default:l(()=>[A(y,{border:``},{default:l(()=>[A(p,{class:`d-flex align-center`},{default:l(()=>[z(o(n.isEditing?`编辑服务器`:`添加服务器`)+` `,1),A($),A(C,{icon:`mdi-close`,variant:`text`,size:`small`,disabled:n.saving,onClick:i[0]||=e=>a(`update:modelValue`,!1)},null,8,[`disabled`])]),_:1}),A(v),A(x,{class:`pt-4`},{default:l(()=>[n.lookupsLoading?(R(),P(te,{key:0,indeterminate:``,color:`primary`,class:`mb-3`})):q(``,!0),i[21]||=t(`div`,{class:`text-subtitle-2 text-medium-emphasis mb-2`},`基本信息`,-1),A(et,{dense:``},{default:l(()=>[A(Q,{cols:`12`,sm:`6`},{default:l(()=>[A(K,{modelValue:n.form.name,"onUpdate:modelValue":i[1]||=e=>n.form.name=e,label:`名称`,variant:`outlined`,density:`compact`,rules:[_(nt)(`服务器名称`)]},null,8,[`modelValue`,`rules`])]),_:1}),A(Q,{cols:`12`,sm:`6`},{default:l(()=>[A(K,{modelValue:n.form.domain,"onUpdate:modelValue":i[2]||=e=>n.form.domain=e,label:`域名 / IP`,variant:`outlined`,density:`compact`,placeholder:`例:192.168.1.10`,rules:[_(nt)(`域名或 IP`)]},null,8,[`modelValue`,`rules`])]),_:1}),A(Q,{cols:`6`,sm:`4`},{default:l(()=>[A(K,{modelValue:n.form.port,"onUpdate:modelValue":i[3]||=e=>n.form.port=e,modelModifiers:{number:!0},label:`SSH 端口`,type:`number`,variant:`outlined`,density:`compact`},null,8,[`modelValue`])]),_:1}),A(Q,{cols:`6`,sm:`8`},{default:l(()=>[A(K,{modelValue:n.form.username,"onUpdate:modelValue":i[4]||=e=>n.form.username=e,label:`SSH 用户名`,variant:`outlined`,density:`compact`,placeholder:`root`,rules:[_(nt)(`SSH 用户名`)]},null,8,[`modelValue`,`rules`])]),_:1})]),_:1}),A(v,{class:`my-4`}),i[22]||=t(`div`,{class:`text-subtitle-2 text-medium-emphasis mb-2`},`认证方式`,-1),A(e,{modelValue:n.form.auth_method,"onUpdate:modelValue":i[5]||=e=>n.form.auth_method=e,mandatory:``,density:`compact`,variant:`outlined`,class:`mb-3`},{default:l(()=>[A(C,{value:`password`,size:`small`},{default:l(()=>[...i[19]||=[z(`密码`,-1)]]),_:1}),A(C,{value:`key`,size:`small`},{default:l(()=>[...i[20]||=[z(`SSH 密钥`,-1)]]),_:1})]),_:1},8,[`modelValue`]),n.form.auth_method===`password`?(R(),W(fe,{key:1},[A(Z,{modelValue:n.form.preset_id,"onUpdate:modelValue":i[6]||=e=>n.form.preset_id=e,items:n.passwordPresets,"item-title":`name`,"item-value":`id`,label:`密码预设(可选)`,variant:`outlined`,density:`compact`,clearable:``,class:`mb-2`,hint:`选择后由服务端解密填入,无需再填密码框`,"persistent-hint":``},null,8,[`modelValue`,`items`]),n.form.preset_id?q(``,!0):(R(),P(K,{key:0,modelValue:n.form.password,"onUpdate:modelValue":i[7]||=e=>n.form.password=e,label:`SSH 密码`,variant:`outlined`,density:`compact`,type:`password`,placeholder:n.isEditing&&n.editHints.password_set?`留空表示不修改`:`安装 Agent 需可 SSH`,rules:s.value},null,8,[`modelValue`,`placeholder`,`rules`]))],64)):(R(),W(fe,{key:2},[A(Z,{modelValue:n.form.ssh_key_preset_id,"onUpdate:modelValue":i[8]||=e=>n.form.ssh_key_preset_id=e,items:n.sshKeyPresets,"item-title":`name`,"item-value":`id`,label:`SSH 密钥预设(可选)`,variant:`outlined`,density:`compact`,clearable:``,class:`mb-2`,hint:`选择后由服务端解密私钥,无需再粘贴`,"persistent-hint":``},null,8,[`modelValue`,`items`]),A(K,{modelValue:n.form.ssh_key_path,"onUpdate:modelValue":i[9]||=e=>n.form.ssh_key_path=e,label:`密钥路径(可选)`,variant:`outlined`,density:`compact`,placeholder:`~/.ssh/id_rsa`,class:`mb-2`},null,8,[`modelValue`]),n.form.ssh_key_preset_id?q(``,!0):(R(),P(it,{key:0,modelValue:n.form.ssh_key_private,"onUpdate:modelValue":i[10]||=e=>n.form.ssh_key_private=e,label:`私钥 PEM`,variant:`outlined`,density:`compact`,rows:`4`,"auto-grow":``,placeholder:n.isEditing&&n.editHints.ssh_key_private_set?`留空表示不修改私钥`:`粘贴 -----BEGIN ... PRIVATE KEY-----`,rules:c.value},null,8,[`modelValue`,`placeholder`,`rules`]))],64)),A(v,{class:`my-4`}),i[23]||=t(`div`,{class:`text-subtitle-2 text-medium-emphasis mb-2`},`部署`,-1),A(K,{modelValue:n.form.target_path,"onUpdate:modelValue":i[11]||=e=>n.form.target_path=e,label:`目标路径`,variant:`outlined`,density:`compact`,placeholder:`/www/wwwroot`,hint:`文件同步与推送的根目录,须为绝对路径`,"persistent-hint":``,class:`mb-2`,rules:[_(nt)(`目标路径`)]},null,8,[`modelValue`,`rules`]),A(bt,{modelValue:n.form.category,"onUpdate:modelValue":i[12]||=e=>n.form.category=e,items:n.categoryOptions,label:`分类`,variant:`outlined`,density:`compact`,clearable:``,hint:`可从已有分类选择或输入新分类`,"persistent-hint":``},null,8,[`modelValue`,`items`]),A(At,{variant:`accordion`,class:`mt-4`},{default:l(()=>[A(Dt,{title:`高级选项`},{default:l(()=>[A(Ct,null,{default:l(()=>[A(Z,{modelValue:n.form.platform_id,"onUpdate:modelValue":i[13]||=e=>n.form.platform_id=e,items:n.platforms,"item-title":`name`,"item-value":`id`,label:`平台`,variant:`outlined`,density:`compact`,clearable:``,class:`mb-2`},null,8,[`modelValue`,`items`]),A(Z,{modelValue:n.form.node_id,"onUpdate:modelValue":i[14]||=e=>n.form.node_id=e,items:n.nodes,"item-title":`name`,"item-value":`id`,label:`节点`,variant:`outlined`,density:`compact`,clearable:``,class:`mb-2`},null,8,[`modelValue`,`items`]),A(Z,{modelValue:n.form.files_elevation,"onUpdate:modelValue":i[15]||=e=>n.form.files_elevation=e,items:n.filesElevationItems,"item-title":`title`,"item-value":`value`,label:`文件管理提权`,variant:`outlined`,density:`compact`,hint:`非 root 用户需目标机配置免密 sudo`,"persistent-hint":``},null,8,[`modelValue`,`items`])]),_:1})]),_:1})]),_:1})]),_:1}),A(v),A(g,{class:`pa-4`},{default:l(()=>[A($),A(C,{variant:`text`,disabled:n.saving,onClick:i[16]||=e=>a(`update:modelValue`,!1)},{default:l(()=>[...i[24]||=[z(`取消`,-1)]]),_:1},8,[`disabled`]),A(C,{color:`primary`,variant:`flat`,loading:n.saving,onClick:i[17]||=e=>a(`save`)},{default:l(()=>[...i[25]||=[z(`保存`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`model-value`]))}});function Mt(){return{name:``,domain:``,port:22,username:`root`,auth_method:`password`,preset_id:null,password:``,ssh_key_preset_id:null,ssh_key_path:``,ssh_key_private:``,target_path:`/www/wwwroot`,category:``,platform_id:null,node_id:null,files_elevation:`auto_sudo`}}function Nt(e){return e===`uncategorized`?``:e}function Pt(e){let t=e.auth_method===`key`?`key`:`password`;return{name:e.name,domain:e.domain||``,port:e.port??22,username:e.username||`root`,auth_method:t,preset_id:e.preset_id,password:``,ssh_key_preset_id:e.ssh_key_preset_id,ssh_key_path:e.ssh_key_path||``,ssh_key_private:``,target_path:e.target_path||`/www/wwwroot`,category:e.category||``,platform_id:e.platform_id,node_id:e.node_id,files_elevation:e.files_elevation||`auto_sudo`}}function Ft(e){let t=Be(),n=r(!1),i=r(null),a=r(!1),o=r(Mt()),s=r({password_set:!1,ssh_key_private_set:!1}),c=r([]),l=r([]),u=r([]),ee=r([]),d=r([]),f=r(!1),p=S(()=>i.value!=null),m=[{title:`自动(权限失败时 sudo)`,value:`auto_sudo`},{title:`关闭 sudo`,value:`off`},{title:`始终 sudo(排障)`,value:`always_sudo`}];async function h(){f.value=!0;try{let[e,t,n,r]=await Promise.all([T.get(`/servers/categories`),T.getList(`/presets/`,{per_page:500}),T.getList(`/ssh-key-presets/`,{per_page:500}),T.get(`/assets/nodes`)]),i=new Set;for(let t of e.categories||[]){let e=Nt(t.name);e&&i.add(e)}u.value=[...i].sort((e,t)=>e.localeCompare(t,`zh`)),ee.value=(e.platforms||[]).map(e=>({id:e.id,name:e.name})),c.value=t.items||[],l.value=n.items||[],d.value=Array.isArray(r)?r:[]}catch{t(`加载表单选项失败`,`error`)}finally{f.value=!1}}async function g(){i.value=null,o.value=Mt(),s.value={password_set:!1,ssh_key_private_set:!1},n.value=!0,await h()}async function _(e){i.value=e.id,o.value=Pt(e),s.value={password_set:!!e.password_set,ssh_key_private_set:!!(e.ssh_key_private_set||e.ssh_key_configured)},n.value=!0,await h()}function te(){n.value=!1,i.value=null,o.value=Mt(),s.value={password_set:!1,ssh_key_private_set:!1}}function ne(){let e=o.value;if(!e.name.trim())return`请填写服务器名称`;if(!e.domain.trim())return`请填写域名或 IP`;if(!e.username.trim())return`请填写 SSH 用户名`;let t=Number(e.port);if(!Number.isFinite(t)||t<1||t>65535)return`SSH 端口无效`;let n=e.target_path.trim();if(!n)return`请填写目标路径(部署根目录)`;if(!n.startsWith(`/`))return`目标路径须为绝对路径(以 / 开头)`;if(e.auth_method===`password`){if(!p.value&&!e.preset_id&&!e.password.trim())return`请选择密码预设或填写 SSH 密码(安装 Agent 需要可 SSH)`}else if(!p.value&&!e.ssh_key_preset_id&&!e.ssh_key_private.trim())return`请选择 SSH 密钥预设或粘贴私钥`;return null}function re(){let e=o.value,t={name:e.name.trim(),domain:e.domain.trim(),port:Number(e.port),username:e.username.trim()||`root`,auth_method:e.auth_method,target_path:e.target_path.trim(),category:e.category.trim()||void 0,platform_id:e.platform_id??void 0,node_id:e.node_id??void 0,files_elevation:e.files_elevation,agent_port:8601};return e.auth_method===`password`?(e.preset_id!=null&&(t.preset_id=e.preset_id),e.password.trim()&&(t.password=e.password.trim()),p.value||!e.preset_id&&e.password.trim()):(e.ssh_key_preset_id!=null&&(t.ssh_key_preset_id=e.ssh_key_preset_id),e.ssh_key_path.trim()&&(t.ssh_key_path=e.ssh_key_path.trim()),e.ssh_key_private.trim()&&(t.ssh_key_private=e.ssh_key_private.trim())),t}async function v(){let n=ne();if(n){t(n,`error`);return}a.value=!0;try{let n=re();p.value&&i.value!=null?await T.put(`/servers/${i.value}`,n):await T.post(`/servers/`,n),te(),e(),t(`保存成功`)}catch(e){t(tt(e,`保存失败`),`error`)}finally{a.value=!1}}return{visible:n,editingId:i,isEditing:p,saving:a,form:o,editHints:s,passwordPresets:c,sshKeyPresets:l,categoryOptions:u,platforms:ee,nodes:d,lookupsLoading:f,filesElevationItems:m,openAdd:g,openEdit:_,close:te,save:v}}var It={class:`text-body-2 mr-4`},Lt={class:`font-weight-medium`},Rt={class:`text-medium-emphasis`},zt={key:1,class:`text-medium-emphasis`},Bt={class:`text-medium-emphasis`},Vt={class:`text-caption text-medium-emphasis`},Ht={class:`d-flex ga-1`},Ut={class:`text-h6`},Wt={class:`text-h6`},Gt={class:`text-h6`},Kt={class:`text-h6`},qt={key:0,class:`text-medium-emphasis text-center py-4`},Jt=we({__name:`ServersPage`,setup(e){let n=Be(),i=h(),{servers:a,loading:s,page:c,itemsPerPage:u,total:ee,search:d,loadServers:m,onSearch:te,onPageChange:ne,onItemsPerPageChange:re}=at();async function b(){try{await m()}catch{n(`加载服务器列表失败`,`error`)}}let ie=r(!1),ae=r(!1),w=r(null),{visible:E,form:oe,isEditing:se,saving:ce,lookupsLoading:le,passwordPresets:ue,sshKeyPresets:pe,categoryOptions:me,platforms:he,nodes:ge,editHints:j,filesElevationItems:M,openAdd:N,openEdit:_e,close:ve,save:F}=Ft(()=>{b(),Se()});Fe(E,(e,t)=>{t&&!e&&ve()});let I=r([]),L=S(()=>new Set(_t(I.value))),B=r(null),V=r(`info`),be=r([]),xe=[{title:`状态`,key:`status`,width:100},{title:`名称`,key:`name`},{title:`地址`,key:`address`},{title:`分类`,key:`category`,width:100},{title:`Agent`,key:`agent`,width:100},{title:`心跳`,key:`heartbeat`,width:120},{title:`操作`,key:`actions`,width:200,align:`end`}],H=r([{subtitle:`服务器总数`,title:`0`,icon:`mdi-server-network`,color:`blue`},{subtitle:`在线`,title:`0`,icon:`mdi-check-circle-outline`,color:`green`},{subtitle:`离线`,title:`0`,icon:`mdi-alert-circle-outline`,color:`orange`},{subtitle:`告警中`,title:`0`,icon:`mdi-bell-alert-outline`,color:`red`}]);async function Se(){try{let e=await T.get(`/servers/stats`);H.value[0].title=String(e.total),H.value[1].title=String(e.online),H.value[2].title=String(e.offline),H.value[3].title=String(e.alerts??0)}catch{}}function Ce(e){i.push({path:`/terminal`,query:{server_id:String(e.id)}})}function U(e){i.push({path:`/files`,query:{server_id:String(e.id)}})}let G=r(!1);async function we(){let e=_t(I.value);if(e.length){n(`正在检查 ${e.length} 台服务器...`);try{await T.post(`/servers/check`,{server_ids:e}),n(`健康检查完成`),b()}catch(e){n(tt(e,`检查失败`),`error`)}}}async function Ee(){if(confirm(`确定删除选中的 ${L.value.size} 台服务器?`)){for(let e of L.value)try{await T.delete(`/servers/${e}`)}catch{}I.value=[],n(`批量删除完成`),b(),Se()}}async function De(){let e=_t(I.value);if(e.length){G.value=!0;try{n(`安装完成: ${vt((await T.post(`/servers/batch/install-agent`,{server_ids:e})).results)}/${e.length} 成功`),b()}catch(e){n(tt(e,`安装失败`),`error`)}finally{G.value=!1}}}async function Oe(){let e=_t(I.value);if(e.length){G.value=!0;try{n(`升级完成: ${vt((await T.post(`/servers/batch/upgrade-agent`,{server_ids:e})).results)}/${e.length} 成功`),b()}catch(e){n(tt(e,`升级失败`),`error`)}finally{G.value=!1}}}async function ke(){let e=_t(I.value);if(e.length&&confirm(`确定卸载选中的 ${e.length} 台服务器的 Agent?`)){G.value=!0;try{n(`卸载完成: ${vt((await T.post(`/servers/batch/uninstall-agent`,{server_ids:e})).results)}/${e.length} 成功`),b()}catch(e){n(tt(e,`卸载失败`),`error`)}finally{G.value=!1}}}async function Ae(){try{let e=await T.getList(`/servers/`,{per_page:5e3}),t=[`ID`,`名称`,`地址`,`端口`,`用户名`,`分类`,`状态`,`Agent版本`,`最后心跳`],r=(e.items||[]).map(e=>[e.id,e.name,e.domain,e.port,e.username,e.category||``,e.status,e.agent_version||``,e.last_heartbeat||``]),i=``+[t.join(`,`),...r.map(e=>e.map(e=>`"${String(e).replace(/"/g,`""`)}"`).join(`,`))].join(` +`),a=new Blob([i],{type:`text/csv;charset=utf-8;`}),o=URL.createObjectURL(a),s=document.createElement(`a`);s.href=o,s.download=`servers_${new Date().toISOString().slice(0,10)}.csv`,s.click(),URL.revokeObjectURL(o),n(`导出完成`)}catch(e){n(e.message||`导出失败`,`error`)}}let je=r(!1),J=r([]),Me=r(!1),Y=r(null);async function Pe(){if(J.value?.length){Me.value=!0,Y.value=null;try{let e=new FormData;e.append(`file`,J.value[0]),Y.value=await T.upload(`/servers/import`,e),n(`导入完成`),b()}catch(e){n(e instanceof Error?e.message:`导入失败`,`error`)}finally{Me.value=!1}}}async function Ie(e){B.value=e,V.value=`info`;try{be.value=(await T.get(`/servers/${e.id}/logs`,{limit:20})).items||[]}catch{be.value=[]}}function Le(e){_e(e)}function Re(e){w.value=e,ie.value=!0}async function ze(){if(w.value){ae.value=!0;try{await T.delete(`/servers/${w.value.id}`),ie.value=!1,b(),Se(),n(`已删除`)}catch(e){n(e.message||`删除失败`,`error`)}finally{ae.value=!1}}}return Te(()=>{Se(),b()}),(e,n)=>(R(),P(Ve,{fluid:``,class:`pa-4 pa-md-6`},{default:l(()=>[A(lt,{items:H.value},null,8,[`items`]),A(y,{elevation:`0`,rounded:`lg`,class:`my-5`,border:``},{default:l(()=>[A(p,{class:`d-flex align-center`},{default:l(()=>[n[17]||=z(` 服务器列表 `,-1),A($),A(K,{modelValue:_(d),"onUpdate:modelValue":[n[0]||=e=>D(d)?d.value=e:null,_(te)],"prepend-inner-icon":`mdi-magnify`,label:`搜索...`,density:`compact`,"hide-details":``,rounded:``,style:{"max-width":`240px`},variant:`outlined`},null,8,[`modelValue`,`onUpdate:modelValue`]),A(C,{color:`primary`,variant:`flat`,class:`ml-3`,"prepend-icon":`mdi-plus`,size:`small`,onClick:_(N)},{default:l(()=>[...n[14]||=[z(` 添加 `,-1)]]),_:1},8,[`onClick`]),A(C,{variant:`tonal`,class:`ml-2`,"prepend-icon":`mdi-download`,size:`small`,onClick:Ae},{default:l(()=>[...n[15]||=[z(` 导出CSV `,-1)]]),_:1}),A(C,{variant:`tonal`,class:`ml-2`,"prepend-icon":`mdi-file-import`,size:`small`,onClick:n[1]||=e=>je.value=!0},{default:l(()=>[...n[16]||=[z(` 导入 `,-1)]]),_:1})]),_:1}),L.value.size>0?(R(),P(y,{key:0,class:`mx-4 mb-2`,color:`primary`,variant:`tonal`,rounded:`lg`},{default:l(()=>[A(x,{class:`d-flex align-center py-2`},{default:l(()=>[t(`span`,It,`已选择 `+o(L.value.size)+` 台服务器`,1),A($),A(C,{size:`small`,variant:`text`,onClick:we},{default:l(()=>[...n[18]||=[z(`健康检查`,-1)]]),_:1}),A(C,{size:`small`,variant:`text`,onClick:De,loading:G.value},{default:l(()=>[...n[19]||=[z(`安装Agent`,-1)]]),_:1},8,[`loading`]),A(C,{size:`small`,variant:`text`,onClick:Oe,loading:G.value},{default:l(()=>[...n[20]||=[z(`升级Agent`,-1)]]),_:1},8,[`loading`]),A(C,{size:`small`,variant:`text`,color:`error`,onClick:ke,loading:G.value},{default:l(()=>[...n[21]||=[z(`卸载Agent`,-1)]]),_:1},8,[`loading`]),A(C,{size:`small`,variant:`text`,color:`error`,onClick:Ee},{default:l(()=>[...n[22]||=[z(`批量删除`,-1)]]),_:1}),A(C,{size:`small`,variant:`text`,onClick:n[2]||=e=>I.value=[]},{default:l(()=>[...n[23]||=[z(`取消选择`,-1)]]),_:1})]),_:1})]),_:1})):q(``,!0),A($e,{items:_(a),headers:xe,"items-length":_(ee),loading:_(s),page:_(c),"items-per-page":_(u),hover:``,density:`comfortable`,"item-value":`id`,"show-select":``,modelValue:I.value,"onUpdate:modelValue":n[3]||=e=>I.value=e,"onUpdate:page":_(ne),"onUpdate:itemsPerPage":_(re),"onClick:row":n[4]||=(e,{item:t})=>Ie(t)},{"item.status":l(({item:e})=>[A(He,{color:_(ct)(e.status),size:`x-small`,variant:`tonal`,label:``,border:`sm`},{default:l(()=>[z(o(_(ot)(e.status)),1)]),_:2},1032,[`color`])]),"item.name":l(({item:e})=>[t(`span`,Lt,o(e.name),1)]),"item.address":l(({item:e})=>[t(`span`,Rt,o(e.domain)+`:`+o(e.port),1)]),"item.category":l(({item:e})=>[e.category?(R(),P(He,{key:0,color:`primary`,variant:`tonal`,size:`small`,label:``},{default:l(()=>[z(o(e.category),1)]),_:2},1024)):(R(),W(`span`,zt,`—`))]),"item.agent":l(({item:e})=>[t(`span`,Bt,o(e.agent_version||`—`),1)]),"item.heartbeat":l(({item:e})=>[t(`span`,Vt,o(_(st)(e.last_heartbeat)),1)]),"item.actions":l(({item:e})=>[t(`div`,Ht,[A(C,{variant:`text`,size:`x-small`,color:`primary`,density:`compact`,onClick:O(t=>Ce(e),[`stop`])},{default:l(()=>[...n[24]||=[z(`终端`,-1)]]),_:1},8,[`onClick`]),A(C,{variant:`text`,size:`x-small`,density:`compact`,onClick:O(t=>U(e),[`stop`])},{default:l(()=>[...n[25]||=[z(`文件`,-1)]]),_:1},8,[`onClick`]),A(C,{variant:`text`,size:`x-small`,density:`compact`,onClick:O(t=>Le(e),[`stop`])},{default:l(()=>[...n[26]||=[z(`编辑`,-1)]]),_:1},8,[`onClick`]),A(C,{variant:`text`,size:`x-small`,color:`error`,density:`compact`,onClick:O(t=>Re(e),[`stop`])},{default:l(()=>[...n[27]||=[z(`删除`,-1)]]),_:1},8,[`onClick`])])]),"no-data":l(()=>[...n[28]||=[t(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无服务器数据`,-1)]]),_:1},8,[`items`,`items-length`,`loading`,`page`,`items-per-page`,`modelValue`,`onUpdate:page`,`onUpdate:itemsPerPage`])]),_:1}),A(f,null,{default:l(()=>[B.value?(R(),P(y,{key:0,class:`mt-4`,elevation:`0`,border:``,rounded:`lg`},{default:l(()=>[A(p,{class:`d-flex align-center`},{default:l(()=>[A(de,{class:`mr-2`},{default:l(()=>[...n[29]||=[z(`mdi-information-outline`,-1)]]),_:1}),z(` `+o(B.value.name)+` `,1),A(He,{color:_(ct)(B.value.status),size:`small`,variant:`tonal`,label:``,class:`ml-2`},{default:l(()=>[z(o(_(ot)(B.value.status)),1)]),_:1},8,[`color`]),A($),A(C,{icon:`mdi-close`,size:`small`,variant:`text`,onClick:n[5]||=e=>B.value=null})]),_:1}),A(v),A(ft,{modelValue:V.value,"onUpdate:modelValue":n[6]||=e=>V.value=e,density:`compact`},{default:l(()=>[A(ut,{value:`info`},{default:l(()=>[...n[30]||=[z(`系统信息`,-1)]]),_:1}),A(ut,{value:`logs`},{default:l(()=>[...n[31]||=[z(`同步日志`,-1)]]),_:1})]),_:1},8,[`modelValue`]),A(dt,{modelValue:V.value,"onUpdate:modelValue":n[7]||=e=>V.value=e},{default:l(()=>[A(pt,{value:`info`},{default:l(()=>[A(x,null,{default:l(()=>[A(et,{dense:``},{default:l(()=>[A(Q,{cols:`6`,md:`3`},{default:l(()=>[n[32]||=t(`div`,{class:`text-caption text-medium-emphasis`},`CPU`,-1),t(`div`,Ut,o(B.value.system_info?.cpu_usage??`—`)+`%`,1)]),_:1}),A(Q,{cols:`6`,md:`3`},{default:l(()=>[n[33]||=t(`div`,{class:`text-caption text-medium-emphasis`},`内存`,-1),t(`div`,Wt,o(B.value.system_info?.mem_usage??`—`)+`%`,1)]),_:1}),A(Q,{cols:`6`,md:`3`},{default:l(()=>[n[34]||=t(`div`,{class:`text-caption text-medium-emphasis`},`磁盘`,-1),t(`div`,Gt,o(B.value.system_info?.disk_usage??`—`)+`%`,1)]),_:1}),A(Q,{cols:`6`,md:`3`},{default:l(()=>[n[35]||=t(`div`,{class:`text-caption text-medium-emphasis`},`Agent`,-1),t(`div`,Kt,o(B.value.agent_version||`未安装`),1)]),_:1})]),_:1})]),_:1})]),_:1}),A(pt,{value:`logs`},{default:l(()=>[A(x,null,{default:l(()=>[be.value.length===0?(R(),W(`div`,qt,`暂无同步日志`)):(R(),P(Ne,{key:1,density:`compact`},{default:l(()=>[(R(!0),W(fe,null,k(be.value,e=>(R(),P(ye,{key:e.id,subtitle:e.created_at,title:`${e.source_path} → ${e.target_path}`},{append:l(()=>[A(He,{size:`x-small`,color:e.status===`success`?`green`:`red`,variant:`tonal`,label:``},{default:l(()=>[z(o(e.status),1)]),_:2},1032,[`color`])]),_:2},1032,[`subtitle`,`title`]))),128))]),_:1}))]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1})):q(``,!0)]),_:1}),A(jt,{modelValue:_(E),"onUpdate:modelValue":n[8]||=e=>D(E)?E.value=e:null,form:_(oe),"is-editing":_(se),saving:_(ce),"lookups-loading":_(le),"password-presets":_(ue),"ssh-key-presets":_(pe),"category-options":_(me),platforms:_(he),nodes:_(ge),"edit-hints":_(j),"files-elevation-items":_(M),onSave:_(F)},null,8,[`modelValue`,`form`,`is-editing`,`saving`,`lookups-loading`,`password-presets`,`ssh-key-presets`,`category-options`,`platforms`,`nodes`,`edit-hints`,`files-elevation-items`,`onSave`]),A(rt,{modelValue:ie.value,"onUpdate:modelValue":n[10]||=e=>ie.value=e,"max-width":`400`},{default:l(()=>[A(y,{border:``},{default:l(()=>[A(p,null,{default:l(()=>[...n[36]||=[z(`确认删除`,-1)]]),_:1}),A(x,null,{default:l(()=>[n[37]||=z(`确定要删除服务器 `,-1),t(`strong`,null,o(w.value?.name),1),n[38]||=z(` 吗?`,-1)]),_:1}),A(g,null,{default:l(()=>[A($),A(C,{variant:`text`,onClick:n[9]||=e=>ie.value=!1},{default:l(()=>[...n[39]||=[z(`取消`,-1)]]),_:1}),A(C,{color:`error`,variant:`flat`,onClick:ze,loading:ae.value},{default:l(()=>[...n[40]||=[z(`删除`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),A(rt,{modelValue:je.value,"onUpdate:modelValue":n[13]||=e=>je.value=e,"max-width":`500`},{default:l(()=>[A(y,{border:``},{default:l(()=>[A(p,null,{default:l(()=>[...n[41]||=[z(`导入服务器`,-1)]]),_:1}),A(x,null,{default:l(()=>[n[42]||=t(`div`,{class:`text-body-2 text-medium-emphasis mb-3`},[z(` 上传 CSV 文件批量导入服务器。 `),t(`a`,{href:`/app/servers_import_template.csv`,download:``,class:`text-primary`},`下载模板`)],-1),A(mt,{modelValue:J.value,"onUpdate:modelValue":n[11]||=e=>J.value=e,label:`选择 CSV 文件`,variant:`outlined`,density:`compact`,accept:`.csv`,"show-size":``},null,8,[`modelValue`]),Y.value?(R(),P(ht,{key:0,type:Y.value.failed>0?`warning`:`success`,density:`compact`,variant:`tonal`,class:`mt-3`},{default:l(()=>[z(` 成功 `+o(Y.value.created)+`,跳过 `+o(Y.value.skipped)+`,失败 `+o(Y.value.failed),1)]),_:1},8,[`type`])):q(``,!0)]),_:1}),A(g,null,{default:l(()=>[A($),A(C,{variant:`text`,onClick:n[12]||=e=>je.value=!1},{default:l(()=>[...n[43]||=[z(`关闭`,-1)]]),_:1}),A(C,{color:`primary`,variant:`flat`,onClick:Pe,loading:Me.value,disabled:!J.value?.length},{default:l(()=>[...n[44]||=[z(`开始导入`,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}});export{Jt as default}; \ No newline at end of file diff --git a/web/app/assets/SettingsPage-BNhfSvbM.js b/web/app/assets/SettingsPage-BNhfSvbM.js new file mode 100644 index 00000000..17070f9d --- /dev/null +++ b/web/app/assets/SettingsPage-BNhfSvbM.js @@ -0,0 +1,3 @@ +import{$n as e,A as t,Ar as n,Br as r,Cr as i,F as a,I as o,Ir as s,J as ee,Jn as c,M as l,N as u,P as d,Pt as f,R as p,Rt as m,X as h,Xn as g,_r as _,ar as v,er as y,hr as b,ir as x,j as te,k as S,nr as C,or as w,pr as ne,t as T,tr as E,w as D}from"./index-C_dP75wD.js";import{o as re,t as ie}from"./VContainer-DGQjsCTw.js";import{t as ae}from"./VChip-oig-b64O.js";import{n as O,t as oe}from"./VRow-MZyk7N4E.js";import{t as k}from"./VSpacer-Cl6Zcy_X.js";import{i as A,n as se,r as j,t as ce}from"./validation-DMwOxx4a.js";import{t as M}from"./VDialog-CnSngTCg.js";import{t as N}from"./VTextarea-Bxfo_kiv.js";import{t as P}from"./VSwitch-5b3JXWIr.js";import{n as F,r as le}from"./useTerminalQuickCommands-CK2x9Goo.js";var I={key:1,class:`text-medium-emphasis text-body-2 mb-4`},L={class:`text-caption text-medium-emphasis mr-2`,style:{"min-width":`1.5rem`}},R={class:`d-flex flex-wrap ga-2`},z=w({__name:`TerminalQuickCommandsSettings`,setup(c){let f=re(),{commands:m,loading:w,load:ie,create:O,update:oe,remove:A,reorder:se,customCommands:j,builtinCommands:ce}=F(),N=n(!1),P=n(null),z=n(``),B=n(``),V=n(!1),H=n(!1),U=n(!1),W=n(null),ue=n(``);function de(){P.value=null,z.value=``,B.value=``,N.value=!0}function fe(e){P.value=e.id,z.value=e.name,B.value=e.cmd.replace(/\r$/,``),N.value=!0}async function pe(){if(!z.value.trim()||!B.value.trim()){f(`名称和命令不能为空`,`warning`);return}let e=B.value.trim();e.endsWith(`\r`)||(e+=`\r`),V.value=!0;try{P.value?await oe(P.value,z.value,e):await O(z.value,e),N.value=!1,f(`已保存`)}catch(e){f(e instanceof Error?e.message:`保存失败`,`error`)}finally{V.value=!1}}function G(e){W.value=e.id,ue.value=e.name,U.value=!0}async function K(){if(W.value){V.value=!0;try{await A(W.value),U.value=!1,f(`已删除`)}catch(e){f(e instanceof Error?e.message:`删除失败`,`error`)}finally{V.value=!1}}}async function q(e){let t=j();if(e<=0)return;let n=t.map(e=>e.id),r=n[e-1];n[e-1]=n[e],n[e]=r,await Y(n)}async function J(e){let t=j();if(e>=t.length-1)return;let n=t.map(e=>e.id),r=n[e+1];n[e+1]=n[e],n[e]=r,await Y(n)}async function Y(e){H.value=!0;try{await se(e)}catch(e){f(e instanceof Error?e.message:`排序失败`,`error`)}finally{H.value=!1}}return ne(()=>{ie().catch(e=>f(e.message,`error`))}),(n,c)=>(b(),y(u,{id:`terminal-quick-commands`,elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:i(()=>[v(a,{class:`d-flex align-center flex-wrap ga-2`},{default:i(()=>[v(h,{class:`mr-1`},{default:i(()=>[...c[6]||=[x(`mdi-flash`,-1)]]),_:1}),c[8]||=x(` 终端快捷命令 `,-1),v(k),v(p,{size:`small`,color:`primary`,variant:`flat`,"prepend-icon":`mdi-plus`,onClick:de},{default:i(()=>[...c[7]||=[x(` 添加命令 `,-1)]]),_:1})]),_:1}),v(l),v(d,null,{default:i(()=>[c[9]||=e(`div`,{class:`text-body-2 text-medium-emphasis mb-4`},` 自定义命令显示在终端栏最前(优先级最高)。终端页仅可点击执行;在此添加、编辑、删除与调整顺序。 `,-1),s(w)?(b(),y(ee,{key:0,indeterminate:``,color:`primary`,class:`mb-3`})):E(``,!0),s(j)().length===0&&!s(w)?(b(),C(`div`,I,` 暂无自定义命令,点击「添加命令」创建。 `)):E(``,!0),s(j)().length?(b(),y(D,{key:2,density:`compact`,class:`mb-4 pa-0`},{default:i(()=>[(b(!0),C(g,null,_(s(j)(),(n,a)=>(b(),y(S,{key:n.id,border:``,rounded:`lg`,class:`mb-2`},{prepend:i(()=>[e(`span`,L,r(a+1),1)]),append:i(()=>[v(p,{icon:`mdi-arrow-up`,size:`x-small`,variant:`text`,disabled:a===0||H.value,onClick:e=>q(a)},null,8,[`disabled`,`onClick`]),v(p,{icon:`mdi-arrow-down`,size:`x-small`,variant:`text`,disabled:a===s(j)().length-1||H.value,onClick:e=>J(a)},null,8,[`disabled`,`onClick`]),v(p,{icon:`mdi-pencil`,size:`x-small`,variant:`text`,onClick:e=>fe(n)},null,8,[`onClick`]),v(p,{icon:`mdi-delete`,size:`x-small`,variant:`text`,color:`error`,onClick:e=>G(n)},null,8,[`onClick`])]),default:i(()=>[v(t,null,{default:i(()=>[x(r(n.name),1)]),_:2},1024),v(te,{class:`font-mono text-truncate`},{default:i(()=>[x(r(n.cmd),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})):E(``,!0),c[10]||=e(`div`,{class:`text-subtitle-2 mb-2`},`系统内置(不可编辑)`,-1),e(`div`,R,[(b(!0),C(g,null,_(s(ce)(),e=>(b(),y(ae,{key:e.id,size:`small`,variant:`outlined`,label:``},{default:i(()=>[x(r(e.name),1)]),_:2},1024))),128))])]),_:1}),v(M,{modelValue:N.value,"onUpdate:modelValue":c[3]||=e=>N.value=e,"max-width":`520`},{default:i(()=>[v(u,{border:``},{default:i(()=>[v(a,null,{default:i(()=>[x(r(P.value?`编辑命令`:`添加快捷命令`),1)]),_:1}),v(d,null,{default:i(()=>[v(T,{modelValue:z.value,"onUpdate:modelValue":c[0]||=e=>z.value=e,label:`显示名称`,variant:`outlined`,density:`compact`,class:`mb-3`},null,8,[`modelValue`]),c[11]||=e(`div`,{class:`text-body-2 text-medium-emphasis mb-2`},`命令内容(发送时自动追加回车)`,-1),v(le,{modelValue:B.value,"onUpdate:modelValue":c[1]||=e=>B.value=e,multiline:``,rows:4,placeholder:`systemctl status nginx`},null,8,[`modelValue`])]),_:1}),v(o,null,{default:i(()=>[v(k),v(p,{variant:`text`,onClick:c[2]||=e=>N.value=!1},{default:i(()=>[...c[12]||=[x(`取消`,-1)]]),_:1}),v(p,{color:`primary`,variant:`flat`,loading:V.value,onClick:pe},{default:i(()=>[...c[13]||=[x(`保存`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),v(M,{modelValue:U.value,"onUpdate:modelValue":c[5]||=e=>U.value=e,"max-width":`400`},{default:i(()=>[v(u,{border:``},{default:i(()=>[v(a,null,{default:i(()=>[...c[14]||=[x(`删除命令`,-1)]]),_:1}),v(d,null,{default:i(()=>[x(`确定删除「`+r(ue.value)+`」?`,1)]),_:1}),v(o,null,{default:i(()=>[v(k),v(p,{variant:`text`,onClick:c[4]||=e=>U.value=!1},{default:i(()=>[...c[15]||=[x(`取消`,-1)]]),_:1}),v(p,{color:`error`,variant:`flat`,loading:V.value,onClick:K},{default:i(()=>[...c[16]||=[x(`删除`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}}),B={class:`d-flex align-center mb-3`},V={key:0,class:`text-center mb-3`},H=[`src`],U={key:0,class:`d-flex align-center justify-center ga-2 mt-2`},W={class:`text-caption pa-1 bg-grey-lighten-4 rounded`,style:{"user-select":`all`}},ue={key:1},de={key:1,class:`d-flex ga-2 align-center`},fe={class:`d-flex align-center ga-2`},pe={class:`text-body-2 text-medium-emphasis mb-3`},G=w({__name:`SettingsPage`,setup(t){let g=re(),_=f(),te=n(!1),S=n({system_name:``,system_title:``,cpu_alert_threshold:80,mem_alert_threshold:80,disk_alert_threshold:80,db_pool_size:10,db_max_overflow:20,telegram_bot_token:``,telegram_chat_id:``}),w=n(``),D=n(!1),F=n(!1),le=n(!1),I=n(!1),L=n({current:``,new_pw:``,confirm:``,totp_code:``}),R=n(!1),G=n(``),K=n(``),q=n(``),J=n(!1),Y=n(!1),me=n(``),he=n(``),ge=n(!1),X=n(!1),_e=n(``),Z=n(!1),Q=n(`api_key`),$=n(``),ve=n(!1),ye=n(!1),be=n(``),xe=n(!1);async function Se(){te.value=!0;try{let e=await m.get(`/settings/`),t=Array.isArray(e)?e:[],n=Object.keys(S.value);for(let e of t){let t=e.key;if(t===`telegram_bot_token`){D.value=!!e.value_set,w.value=``;continue}if(t&&n.includes(t)){let n=e.value;typeof n==`string`&&/^\d+(\.\d+)?$/.test(n)?S.value[t]=Number(n):S.value[t]=n}}}catch{g(`加载设置失败`,`error`)}finally{te.value=!1}}async function Ce(){try{let e=await m.get(`/settings/ip-allowlist`);ye.value=e.enabled||!1,be.value=[...e.manual_ips||[],...e.subscription_ips||[]].join(` +`)}catch{g(`加载白名单失败`,`error`)}}async function we(){F.value=!0;let e=w.value.trim();try{let t=Object.entries(S.value).filter(([e])=>[`system_name`,`system_title`,`cpu_alert_threshold`,`mem_alert_threshold`,`disk_alert_threshold`,`db_pool_size`,`db_max_overflow`,`telegram_chat_id`].includes(e));e&&t.push([`telegram_bot_token`,e]);for(let[e,n]of t)await m.put(`/settings/${e}`,{value:n});g(`设置已保存`),e&&(D.value=!0,w.value=``,I.value=!1)}catch(e){g(e instanceof Error?e.message:`保存失败`,`error`)}finally{F.value=!1}}async function Te(){le.value=!0;try{await m.post(`/settings/telegram/test`),g(`测试消息已发送`)}catch(e){g(e.message||`发送失败`,`error`)}finally{le.value=!1}}async function Ee(){if(L.value.new_pw!==L.value.confirm){g(`两次密码不一致`,`error`);return}R.value=!0;try{let e={current_password:L.value.current,new_password:L.value.new_pw};_.admin?.totp_enabled&&L.value.totp_code&&(e.totp_code=L.value.totp_code),await m.put(`/auth/password`,e),L.value={current:``,new_pw:``,confirm:``,totp_code:``},g(`密码已修改`)}catch(e){g(e instanceof Error?e.message:`修改失败`,`error`)}finally{R.value=!1}}async function De(){try{let e=await m.post(`/auth/totp/setup`);G.value=e.qr_code,K.value=e.secret||``}catch(e){g(e instanceof Error?e.message:`生成失败`,`error`)}}async function Oe(){J.value=!0;try{await m.post(`/auth/totp/enable`,{code:q.value}),await _.fetchProfile(),G.value=``,q.value=``,g(`TOTP 已启用`)}catch(e){g(e.message||`启用失败`,`error`)}finally{J.value=!1}}function ke(){Y.value=!0}async function Ae(){ge.value=!0;try{await m.post(`/auth/totp/disable`,{admin_id:_.admin?.id,current_password:me.value,totp_code:he.value}),await _.fetchProfile(),Y.value=!1,me.value=``,he.value=``,g(`TOTP 已禁用`)}catch(e){g(e.message||`禁用失败`,`error`)}finally{ge.value=!1}}function je(){K.value&&(navigator.clipboard.writeText(K.value),g(`密钥已复制`))}async function Me(){if(X.value){X.value=!1;return}Q.value=`api_key`,Z.value=!0,$.value=``}async function Ne(){if(I.value&&w.value){I.value=!1,w.value=``;return}Q.value=`telegram`,Z.value=!0,$.value=``}async function Pe(){if(!$.value){g(`请输入密码`,`error`);return}ve.value=!0;try{Q.value===`telegram`?(w.value=(await m.post(`/settings/telegram/reveal-token`,{current_password:$.value})).value,I.value=!0):(_e.value=(await m.post(`/settings/api-key/reveal`,{current_password:$.value})).api_key,X.value=!0),Z.value=!1,$.value=``}catch(e){g(e instanceof Error?e.message:`验证失败`,`error`)}finally{ve.value=!1}}async function Fe(){Q.value=`api_key`,await Pe()}function Ie(){_e.value&&(navigator.clipboard.writeText(_e.value),g(`已复制到剪贴板`))}async function Le(){try{await m.post(`/settings/ip-allowlist/toggle`,{enabled:ye.value})}catch(e){g(e.message||`操作失败`,`error`)}}async function Re(){xe.value=!0;try{let e=be.value.split(` +`).map(e=>e.trim()).filter(Boolean);await m.post(`/settings/ip-allowlist`,{ips:e}),g(`白名单已保存`)}catch(e){g(e.message||`保存失败`,`error`)}finally{xe.value=!1}}return ne(()=>{Se(),Ce(),_.fetchProfile()}),(t,n)=>(b(),y(ie,{fluid:``,class:`pa-6`},{default:i(()=>[v(oe,null,{default:i(()=>[v(O,{cols:`12`,lg:`6`},{default:i(()=>[v(u,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:i(()=>[v(a,{class:`d-flex align-center`},{default:i(()=>[v(h,{class:`mr-2`},{default:i(()=>[...n[23]||=[x(`mdi-cog`,-1)]]),_:1}),n[24]||=x(` 系统设置 `,-1)]),_:1}),te.value?(b(),y(ee,{key:0,indeterminate:``,color:`primary`})):E(``,!0),v(l),v(d,null,{default:i(()=>[v(T,{modelValue:S.value.system_name,"onUpdate:modelValue":n[0]||=e=>S.value.system_name=e,label:`系统名称`,variant:`outlined`,density:`compact`,class:`mb-3`,rules:[s(A)(`系统名称`)]},null,8,[`modelValue`,`rules`]),v(T,{modelValue:S.value.system_title,"onUpdate:modelValue":n[1]||=e=>S.value.system_title=e,label:`系统标题`,variant:`outlined`,density:`compact`,class:`mb-3`,rules:[s(A)(`系统标题`)]},null,8,[`modelValue`,`rules`]),v(l,{class:`my-4`}),n[25]||=e(`div`,{class:`text-subtitle-2 mb-3`},`告警阈值`,-1),v(oe,{dense:``},{default:i(()=>[v(O,{cols:`4`},{default:i(()=>[v(T,{modelValue:S.value.cpu_alert_threshold,"onUpdate:modelValue":n[2]||=e=>S.value.cpu_alert_threshold=e,label:`CPU %`,variant:`outlined`,density:`compact`,type:`number`,rules:[s(A)(`阈值`),s(j)(1,100,`阈值`)]},null,8,[`modelValue`,`rules`])]),_:1}),v(O,{cols:`4`},{default:i(()=>[v(T,{modelValue:S.value.mem_alert_threshold,"onUpdate:modelValue":n[3]||=e=>S.value.mem_alert_threshold=e,label:`内存 %`,variant:`outlined`,density:`compact`,type:`number`,rules:[s(A)(`阈值`),s(j)(1,100,`阈值`)]},null,8,[`modelValue`,`rules`])]),_:1}),v(O,{cols:`4`},{default:i(()=>[v(T,{modelValue:S.value.disk_alert_threshold,"onUpdate:modelValue":n[4]||=e=>S.value.disk_alert_threshold=e,label:`磁盘 %`,variant:`outlined`,density:`compact`,type:`number`,rules:[s(A)(`阈值`),s(j)(1,100,`阈值`)]},null,8,[`modelValue`,`rules`])]),_:1})]),_:1}),v(l,{class:`my-4`}),n[26]||=e(`div`,{class:`text-subtitle-2 mb-3`},`连接池`,-1),v(oe,{dense:``},{default:i(()=>[v(O,{cols:`6`},{default:i(()=>[v(T,{modelValue:S.value.db_pool_size,"onUpdate:modelValue":n[5]||=e=>S.value.db_pool_size=e,label:`连接池大小`,variant:`outlined`,density:`compact`,type:`number`,rules:[s(A)(),s(ce)()]},null,8,[`modelValue`,`rules`])]),_:1}),v(O,{cols:`6`},{default:i(()=>[v(T,{modelValue:S.value.db_max_overflow,"onUpdate:modelValue":n[6]||=e=>S.value.db_max_overflow=e,label:`溢出连接数`,variant:`outlined`,density:`compact`,type:`number`,rules:[s(A)(),s(ce)()]},null,8,[`modelValue`,`rules`])]),_:1})]),_:1})]),_:1}),v(o,{class:`px-4 pb-4`},{default:i(()=>[v(k),v(p,{color:`primary`,variant:`flat`,onClick:we,loading:F.value},{default:i(()=>[...n[27]||=[x(`保存设置`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1}),v(z),v(u,{elevation:`0`,border:``,rounded:`lg`},{default:i(()=>[v(a,{class:`d-flex align-center`},{default:i(()=>[v(h,{class:`mr-2`},{default:i(()=>[...n[28]||=[x(`mdi-send`,-1)]]),_:1}),n[29]||=x(` Telegram 推送 `,-1)]),_:1}),v(l),v(d,null,{default:i(()=>[v(T,{modelValue:w.value,"onUpdate:modelValue":n[7]||=e=>w.value=e,label:`Bot Token`,variant:`outlined`,density:`compact`,class:`mb-3`,placeholder:D.value?`已配置(留空保持不变)`:`输入 Bot Token`,type:I.value?`text`:`password`,"append-inner-icon":I.value?`mdi-eye`:`mdi-eye-off`,"onClick:appendInner":Ne},null,8,[`modelValue`,`placeholder`,`type`,`append-inner-icon`]),D.value&&!w.value?(b(),y(ae,{key:0,size:`small`,color:`success`,variant:`tonal`,class:`mb-3`},{default:i(()=>[...n[30]||=[x(`Token 已配置`,-1)]]),_:1})):E(``,!0),v(T,{modelValue:S.value.telegram_chat_id,"onUpdate:modelValue":n[8]||=e=>S.value.telegram_chat_id=e,label:`Chat ID`,variant:`outlined`,density:`compact`,class:`mb-3`},null,8,[`modelValue`]),v(p,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-message-text`,onClick:Te,loading:le.value},{default:i(()=>[...n[31]||=[x(`发送测试消息`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1}),v(O,{cols:`12`,lg:`6`},{default:i(()=>[v(u,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:i(()=>[v(a,{class:`d-flex align-center`},{default:i(()=>[v(h,{class:`mr-2`},{default:i(()=>[...n[32]||=[x(`mdi-lock`,-1)]]),_:1}),n[33]||=x(` 修改密码 `,-1)]),_:1}),v(l),v(d,null,{default:i(()=>[v(T,{modelValue:L.value.current,"onUpdate:modelValue":n[9]||=e=>L.value.current=e,label:`当前密码`,variant:`outlined`,density:`compact`,type:`password`,class:`mb-3`,rules:[s(A)(`密码`)]},null,8,[`modelValue`,`rules`]),v(T,{modelValue:L.value.new_pw,"onUpdate:modelValue":n[10]||=e=>L.value.new_pw=e,label:`新密码`,variant:`outlined`,density:`compact`,type:`password`,class:`mb-3`,rules:[s(A)(`密码`)]},null,8,[`modelValue`,`rules`]),v(T,{modelValue:L.value.confirm,"onUpdate:modelValue":n[11]||=e=>L.value.confirm=e,label:`确认新密码`,variant:`outlined`,density:`compact`,type:`password`,class:`mb-3`,rules:[s(A)(`确认密码`),s(se)(()=>L.value.new_pw)]},null,8,[`modelValue`,`rules`]),s(_).admin?.totp_enabled?(b(),y(T,{key:0,modelValue:L.value.totp_code,"onUpdate:modelValue":n[12]||=e=>L.value.totp_code=e,label:`TOTP 验证码`,variant:`outlined`,density:`compact`,type:`text`,inputmode:`numeric`,maxlength:`6`,class:`mb-3`,rules:s(_).admin?.totp_enabled?[s(A)(`验证码`)]:[]},null,8,[`modelValue`,`rules`])):E(``,!0)]),_:1}),v(o,{class:`px-4 pb-4`},{default:i(()=>[v(k),v(p,{color:`primary`,variant:`flat`,onClick:Ee,loading:R.value},{default:i(()=>[...n[34]||=[x(`修改密码`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1}),v(u,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:i(()=>[v(a,{class:`d-flex align-center`},{default:i(()=>[v(h,{class:`mr-2`},{default:i(()=>[...n[35]||=[x(`mdi-shield-key`,-1)]]),_:1}),n[36]||=x(` 双因素认证 (TOTP) `,-1)]),_:1}),v(l),v(d,null,{default:i(()=>[e(`div`,B,[n[37]||=e(`span`,{class:`text-body-2`},`状态:`,-1),v(ae,{color:s(_).admin?.totp_enabled?`success`:`grey`,size:`small`,variant:`tonal`,label:``,class:`ml-2`},{default:i(()=>[x(r(s(_).admin?.totp_enabled?`已启用`:`未启用`),1)]),_:1},8,[`color`])]),G.value?(b(),C(`div`,V,[e(`img`,{src:G.value,alt:`TOTP QR`,style:{"max-width":`200px`}},null,8,H),K.value?(b(),C(`div`,U,[e(`code`,W,r(K.value),1),v(p,{size:`x-small`,variant:`text`,icon:`mdi-content-copy`,onClick:je})])):E(``,!0),n[38]||=e(`div`,{class:`text-caption text-medium-emphasis mt-1`},`用认证器 App 扫描二维码或手动输入密钥`,-1)])):E(``,!0),s(_).admin?.totp_enabled?(b(),y(p,{key:2,size:`small`,variant:`tonal`,color:`error`,"prepend-icon":`mdi-shield-off`,onClick:ke},{default:i(()=>[...n[41]||=[x(`禁用 TOTP`,-1)]]),_:1})):(b(),C(`div`,ue,[G.value?(b(),C(`div`,de,[v(T,{modelValue:q.value,"onUpdate:modelValue":n[13]||=e=>q.value=e,label:`验证码`,variant:`outlined`,density:`compact`,style:{"max-width":`160px`}},null,8,[`modelValue`]),v(p,{color:`primary`,variant:`flat`,size:`small`,onClick:Oe,loading:J.value},{default:i(()=>[...n[40]||=[x(`启用`,-1)]]),_:1},8,[`loading`])])):(b(),y(p,{key:0,size:`small`,variant:`tonal`,"prepend-icon":`mdi-qrcode`,onClick:De},{default:i(()=>[...n[39]||=[x(`生成二维码`,-1)]]),_:1}))]))]),_:1})]),_:1}),v(u,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:i(()=>[v(a,{class:`d-flex align-center`},{default:i(()=>[v(h,{class:`mr-2`},{default:i(()=>[...n[42]||=[x(`mdi-key`,-1)]]),_:1}),n[43]||=x(` API Key `,-1)]),_:1}),v(l),v(d,null,{default:i(()=>[e(`div`,fe,[v(T,{"model-value":X.value?_e.value:`••••••••`,label:`API Key`,variant:`outlined`,density:`compact`,readonly:``,type:X.value?`text`:`password`,style:{"max-width":`320px`}},null,8,[`model-value`,`type`]),v(p,{variant:`text`,size:`small`,icon:X.value?`mdi-eye-off`:`mdi-eye`,onClick:Me},null,8,[`icon`]),v(p,{variant:`text`,size:`small`,icon:`mdi-content-copy`,onClick:Ie})])]),_:1})]),_:1}),v(u,{elevation:`0`,border:``,rounded:`lg`},{default:i(()=>[v(a,{class:`d-flex align-center`},{default:i(()=>[v(h,{class:`mr-2`},{default:i(()=>[...n[44]||=[x(`mdi-ip-network`,-1)]]),_:1}),n[45]||=x(` IP 白名单 `,-1)]),_:1}),v(l),v(d,null,{default:i(()=>[v(P,{modelValue:ye.value,"onUpdate:modelValue":[n[14]||=e=>ye.value=e,Le],label:`启用 IP 白名单`,color:`primary`,density:`compact`,"hide-details":``,class:`mb-3`},null,8,[`modelValue`]),v(N,{modelValue:be.value,"onUpdate:modelValue":n[15]||=e=>be.value=e,label:`IP 列表(每行一个)`,variant:`outlined`,density:`compact`,rows:`4`,class:`mb-2`},null,8,[`modelValue`]),v(p,{size:`small`,variant:`tonal`,onClick:Re,loading:xe.value},{default:i(()=>[...n[46]||=[x(`保存`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1})]),_:1}),v(M,{modelValue:Z.value,"onUpdate:modelValue":n[18]||=e=>Z.value=e,"max-width":`400`},{default:i(()=>[v(u,{border:``},{default:i(()=>[v(a,null,{default:i(()=>[x(r(Q.value===`telegram`?`查看 Bot Token`:`验证身份`),1)]),_:1}),v(d,null,{default:i(()=>[e(`div`,pe,r(Q.value===`telegram`?`请输入当前密码以查看 Telegram Bot Token`:`请输入当前密码以查看 API Key`),1),v(T,{modelValue:$.value,"onUpdate:modelValue":n[16]||=e=>$.value=e,label:`当前密码`,variant:`outlined`,density:`compact`,type:`password`,autofocus:``,onKeydown:c(Fe,[`enter`]),rules:[s(A)(`密码`)]},null,8,[`modelValue`,`rules`])]),_:1}),v(o,null,{default:i(()=>[v(k),v(p,{variant:`text`,onClick:n[17]||=e=>Z.value=!1},{default:i(()=>[...n[47]||=[x(`取消`,-1)]]),_:1}),v(p,{color:`primary`,variant:`flat`,onClick:Pe,loading:ve.value},{default:i(()=>[...n[48]||=[x(`确认`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),v(M,{modelValue:Y.value,"onUpdate:modelValue":n[22]||=e=>Y.value=e,"max-width":`400`},{default:i(()=>[v(u,{border:``},{default:i(()=>[v(a,null,{default:i(()=>[...n[49]||=[x(`禁用 TOTP`,-1)]]),_:1}),v(d,null,{default:i(()=>[v(T,{modelValue:me.value,"onUpdate:modelValue":n[19]||=e=>me.value=e,label:`当前密码`,variant:`outlined`,density:`compact`,type:`password`,class:`mb-2`,rules:[s(A)()]},null,8,[`modelValue`,`rules`]),v(T,{modelValue:he.value,"onUpdate:modelValue":n[20]||=e=>he.value=e,label:`验证码`,variant:`outlined`,density:`compact`,rules:[s(A)()]},null,8,[`modelValue`,`rules`])]),_:1}),v(o,null,{default:i(()=>[v(k),v(p,{variant:`text`,onClick:n[21]||=e=>Y.value=!1},{default:i(()=>[...n[50]||=[x(`取消`,-1)]]),_:1}),v(p,{color:`error`,variant:`flat`,onClick:Ae,loading:ge.value},{default:i(()=>[...n[51]||=[x(`禁用`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}});export{G as default}; \ No newline at end of file diff --git a/web/app/assets/StatCardsRow-C1WUuCdM.js b/web/app/assets/StatCardsRow-C1WUuCdM.js new file mode 100644 index 00000000..a98214c7 --- /dev/null +++ b/web/app/assets/StatCardsRow-C1WUuCdM.js @@ -0,0 +1 @@ +import{$n as e,Ar as t,Br as n,Cr as r,L as i,N as a,P as o,Rr as s,Rt as c,X as l,Xn as u,_r as d,ar as f,er as p,hr as m,mr as h,nr as g,or as _}from"./index-C_dP75wD.js";import{n as v,t as y}from"./VRow-MZyk7N4E.js";import{t as b}from"./_plugin-vue_export-helper-BDNMzG2s.js";function x(){let e=t([]),n=t(!1),r=t(1),i=t(20),a=t(0),o=t(``);async function s(){n.value=!0;try{let t=await c.get(`/servers/`,{page:r.value,per_page:i.value,search:o.value||void 0});e.value=t.items||[],a.value=t.total||0}catch(t){throw e.value=[],a.value=0,t}finally{n.value=!1}}let l;h(()=>clearTimeout(l));function u(){clearTimeout(l),l=setTimeout(()=>{r.value=1,s()},300)}function d(e){r.value=e,s()}function f(e){i.value=e,r.value=1,s()}return{servers:e,loading:n,page:r,itemsPerPage:i,total:a,search:o,loadServers:s,onSearch:u,onPageChange:d,onItemsPerPageChange:f}}function S(e){switch(e){case`online`:return`success`;case`offline`:return`error`;default:return`warning`}}function C(e){switch(e){case`online`:return`在线`;case`offline`:return`离线`;default:return`未知`}}function w(e){if(!e)return`—`;let t=new Date(e);if(isNaN(t.getTime()))return`—`;let n=Date.now()-t.getTime();return n<6e4?`刚刚`:n<36e5?`${Math.floor(n/6e4)} 分钟前`:n<864e5?`${Math.floor(n/36e5)} 小时前`:`${Math.floor(n/864e5)} 天前`}var T={class:`text-caption text-medium-emphasis mb-1`,style:{"font-size":`14px`,"letter-spacing":`0.5px`,"text-transform":`uppercase`}},E=b(_({__name:`StatCardsRow`,props:{items:{}},setup(t){return(c,h)=>(m(),p(y,null,{default:r(()=>[(m(!0),g(u,null,d(t.items,(t,c)=>(m(),p(v,{key:c,cols:`6`,sm:`3`},{default:r(()=>[f(a,{elevation:`0`,rounded:`xl`,border:``,class:`stat-card`},{default:r(()=>[f(o,{class:`pa-4 d-flex align-center justify-space-between`},{default:r(()=>[e(`div`,null,[e(`div`,T,n(t.subtitle),1),e(`div`,{class:s([`font-weight-bold`,`text-`+t.color]),style:{"font-size":`36px`,"line-height":`1.1`}},n(t.title),3)]),f(i,{color:t.color,size:`48`,rounded:`lg`,class:`stat-icon`},{default:r(()=>[f(l,{icon:t.icon,size:`24`,color:`white`},null,8,[`icon`])]),_:2},1032,[`color`])]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1}))}}),[[`__scopeId`,`data-v-68b984da`]]);export{x as a,C as i,w as n,S as r,E as t}; \ No newline at end of file diff --git a/web/app/assets/TerminalPage-CWBSa0uQ.js b/web/app/assets/TerminalPage-CWBSa0uQ.js new file mode 100644 index 00000000..d350f50e --- /dev/null +++ b/web/app/assets/TerminalPage-CWBSa0uQ.js @@ -0,0 +1,40 @@ +import{$n as e,A as t,Ar as n,Br as r,Cr as i,Er as a,F as o,Ht as s,Ir as c,Kt as l,M as u,N as d,P as f,Qn as p,R as m,Rr as h,Rt as g,Tr as _,Vt as ee,X as te,Xn as v,Yn as ne,_ as re,_r as ie,ar as y,cr as ae,dr as oe,er as b,hr as x,ir as S,k as C,nr as w,or as se,pr as T,t as ce,tr as le,ur as ue,vr as de,w as fe,xr as pe,y as me,zr as he}from"./index-C_dP75wD.js";import{o as ge,t as _e}from"./VContainer-DGQjsCTw.js";import{t as ve}from"./VChip-oig-b64O.js";import{t as ye}from"./VSelect-V_uWG8_q.js";import{t as be}from"./VDialog-CnSngTCg.js";import{t as E}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as xe}from"./wsUrl-CqmqkTTE.js";import{r as Se,t as Ce}from"./useTerminalQuickCommands-CK2x9Goo.js";var we=Object.defineProperty,Te=Object.getOwnPropertyDescriptor,Ee=(e,t)=>{for(var n in t)we(e,n,{get:t[n],enumerable:!0})},D=(e,t,n,r)=>{for(var i=r>1?void 0:r?Te(t,n):t,a=e.length-1,o;a>=0;a--)(o=e[a])&&(i=(r?o(t,n,i):o(i))||i);return r&&i&&we(t,n,i),i},O=(e,t)=>(n,r)=>t(n,r,e),De=`Terminal input`,Oe={get:()=>De,set:e=>De=e},ke=`Too much output to announce, navigate to rows manually to read`,Ae={get:()=>ke,set:e=>ke=e};function je(e){return e.replace(/\r?\n/g,`\r`)}function Me(e,t){return t?`\x1B[200~`+e+`\x1B[201~`:e}function Ne(e,t){e.clipboardData&&e.clipboardData.setData(`text/plain`,t.selectionText),e.preventDefault()}function Pe(e,t,n,r){e.stopPropagation(),e.clipboardData&&Fe(e.clipboardData.getData(`text/plain`),t,n,r)}function Fe(e,t,n,r){e=je(e),e=Me(e,n.decPrivateModes.bracketedPasteMode&&r.rawOptions.ignoreBracketedPasteMode!==!0),n.triggerDataEvent(e,!0),t.value=``}function Ie(e,t,n){let r=n.getBoundingClientRect(),i=e.clientX-r.left-10,a=e.clientY-r.top-10;t.style.width=`20px`,t.style.height=`20px`,t.style.left=`${i}px`,t.style.top=`${a}px`,t.style.zIndex=`1000`,t.focus()}function Le(e,t,n,r,i){Ie(e,t,n),i&&r.rightClickSelect(e),t.value=r.selectionText,t.select()}function Re(e){return e>65535?(e-=65536,String.fromCharCode((e>>10)+55296)+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)}function ze(e,t=0,n=e.length){let r=``;for(let i=t;i65535?(t-=65536,r+=String.fromCharCode((t>>10)+55296)+String.fromCharCode(t%1024+56320)):r+=String.fromCharCode(t)}return r}var Be=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i=0;if(this._interim){let n=e.charCodeAt(i++);56320<=n&&n<=57343?t[r++]=(this._interim-55296)*1024+n-56320+65536:(t[r++]=this._interim,t[r++]=n),this._interim=0}for(let a=i;a=n)return this._interim=i,r;let o=e.charCodeAt(a);56320<=o&&o<=57343?t[r++]=(i-55296)*1024+o-56320+65536:(t[r++]=i,t[r++]=o);continue}i!==65279&&(t[r++]=i)}return r}},Ve=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i,a,o,s,c=0,l=0;if(this.interim[0]){let i=!1,a=this.interim[0];a&=(a&224)==192?31:(a&240)==224?15:7;let o=0,s;for(;(s=this.interim[++o]&63)&&o<4;)a<<=6,a|=s;let c=(this.interim[0]&224)==192?2:(this.interim[0]&240)==224?3:4,u=c-o;for(;l=n)return 0;if(s=e[l++],(s&192)!=128){l--,i=!0;break}else this.interim[o++]=s,a<<=6,a|=s&63}i||(c===2?a<128?l--:t[r++]=a:c===3?a<2048||a>=55296&&a<=57343||a===65279||(t[r++]=a):a<65536||a>1114111||(t[r++]=a)),this.interim.fill(0)}let u=n-4,d=l;for(;d=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(c=(i&31)<<6|a&63,c<128){d--;continue}t[r++]=c}else if((i&240)==224){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(c=(i&15)<<12|(a&63)<<6|o&63,c<2048||c>=55296&&c<=57343||c===65279)continue;t[r++]=c}else if((i&248)==240){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,this.interim[2]=o,r;if(s=e[d++],(s&192)!=128){d--;continue}if(c=(i&7)<<18|(a&63)<<12|(o&63)<<6|s&63,c<65536||c>1114111)continue;t[r++]=c}}return r}},He=``,Ue=` `,We=class e{constructor(){this.fg=0,this.bg=0,this.extended=new Ge}static toColorRGB(e){return[e>>>16&255,e>>>8&255,e&255]}static fromColorRGB(e){return(e[0]&255)<<16|(e[1]&255)<<8|e[2]&255}clone(){let t=new e;return t.fg=this.fg,t.bg=this.bg,t.extended=this.extended.clone(),t}isInverse(){return this.fg&67108864}isBold(){return this.fg&134217728}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?1:this.fg&268435456}isBlink(){return this.fg&536870912}isInvisible(){return this.fg&1073741824}isItalic(){return this.bg&67108864}isDim(){return this.bg&134217728}isStrikethrough(){return this.fg&2147483648}isProtected(){return this.bg&536870912}isOverline(){return this.bg&1073741824}getFgColorMode(){return this.fg&50331648}getBgColorMode(){return this.bg&50331648}isFgRGB(){return(this.fg&50331648)==50331648}isBgRGB(){return(this.bg&50331648)==50331648}isFgPalette(){return(this.fg&50331648)==16777216||(this.fg&50331648)==33554432}isBgPalette(){return(this.bg&50331648)==16777216||(this.bg&50331648)==33554432}isFgDefault(){return(this.fg&50331648)==0}isBgDefault(){return(this.bg&50331648)==0}isAttributeDefault(){return this.fg===0&&this.bg===0}getFgColor(){switch(this.fg&50331648){case 16777216:case 33554432:return this.fg&255;case 50331648:return this.fg&16777215;default:return-1}}getBgColor(){switch(this.bg&50331648){case 16777216:case 33554432:return this.bg&255;case 50331648:return this.bg&16777215;default:return-1}}hasExtendedAttrs(){return this.bg&268435456}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(this.bg&268435456&&~this.extended.underlineColor)switch(this.extended.underlineColor&50331648){case 16777216:case 33554432:return this.extended.underlineColor&255;case 50331648:return this.extended.underlineColor&16777215;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return this.bg&268435456&&~this.extended.underlineColor?this.extended.underlineColor&50331648:this.getFgColorMode()}isUnderlineColorRGB(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==50331648:this.isFgRGB()}isUnderlineColorPalette(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==16777216||(this.extended.underlineColor&50331648)==33554432:this.isFgPalette()}isUnderlineColorDefault(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==0:this.isFgDefault()}getUnderlineStyle(){return this.fg&268435456?this.bg&268435456?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}},Ge=class e{constructor(e=0,t=0){this._ext=0,this._urlId=0,this._ext=e,this._urlId=t}get ext(){return this._urlId?this._ext&-469762049|this.underlineStyle<<26:this._ext}set ext(e){this._ext=e}get underlineStyle(){return this._urlId?5:(this._ext&469762048)>>26}set underlineStyle(e){this._ext&=-469762049,this._ext|=e<<26&469762048}get underlineColor(){return this._ext&67108863}set underlineColor(e){this._ext&=-67108864,this._ext|=e&67108863}get urlId(){return this._urlId}set urlId(e){this._urlId=e}get underlineVariantOffset(){let e=(this._ext&3758096384)>>29;return e<0?e^4294967288:e}set underlineVariantOffset(e){this._ext&=536870911,this._ext|=e<<29&3758096384}clone(){return new e(this._ext,this._urlId)}isEmpty(){return this.underlineStyle===0&&this._urlId===0}},Ke=class e extends We{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new Ge,this.combinedData=``}static fromCharData(t){let n=new e;return n.setFromCharData(t),n}isCombined(){return this.content&2097152}getWidth(){return this.content>>22}getChars(){return this.content&2097152?this.combinedData:this.content&2097151?Re(this.content&2097151):``}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):this.content&2097151}setFromCharData(e){this.fg=e[0],this.bg=0;let t=!1;if(e[1].length>2)t=!0;else if(e[1].length===2){let n=e[1].charCodeAt(0);if(55296<=n&&n<=56319){let r=e[1].charCodeAt(1);56320<=r&&r<=57343?this.content=(n-55296)*1024+r-56320+65536|e[2]<<22:t=!0}else t=!0}else this.content=e[1].charCodeAt(0)|e[2]<<22;t&&(this.combinedData=e[1],this.content=2097152|e[2]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}},qe=`di$target`,Je=`di$dependencies`,Ye=new Map;function Xe(e){return e[Je]||[]}function k(e){if(Ye.has(e))return Ye.get(e);let t=function(e,n,r){if(arguments.length!==3)throw Error(`@IServiceName-decorator can only be used to decorate a parameter`);Ze(t,e,r)};return t._id=e,Ye.set(e,t),t}function Ze(e,t,n){t[qe]===t?t[Je].push({id:e,index:n}):(t[Je]=[{id:e,index:n}],t[qe]=t)}var A=k(`BufferService`),Qe=k(`CoreMouseService`),$e=k(`CoreService`),et=k(`CharsetService`),tt=k(`InstantiationService`),nt=k(`LogService`),rt=k(`OptionsService`),it=k(`OscLinkService`),at=k(`UnicodeService`),ot=k(`DecorationService`),st=class{constructor(e,t,n){this._bufferService=e,this._optionsService=t,this._oscLinkService=n}provideLinks(e,t){let n=this._bufferService.buffer.lines.get(e-1);if(!n){t(void 0);return}let r=[],i=this._optionsService.rawOptions.linkHandler,a=new Ke,o=n.getTrimmedLength(),s=-1,c=-1,l=!1;for(let t=0;ti?i.activate(e,t,a):ct(e,t),hover:(e,t)=>i?.hover?.(e,t,a),leave:(e,t)=>i?.leave?.(e,t,a)})}l=!1,a.hasExtendedAttrs()&&a.extended.urlId?(c=t,s=a.extended.urlId):(c=-1,s=-1)}}t(r)}};st=D([O(0,A),O(1,rt),O(2,it)],st);function ct(e,t){if(confirm(`Do you want to navigate to ${t}? + +WARNING: This link could potentially be dangerous`)){let e=window.open();if(e){try{e.opener=null}catch{}e.location.href=t}else console.warn(`Opening link blocked as opener could not be cleared`)}}var lt=k(`CharSizeService`),ut=k(`CoreBrowserService`),dt=k(`MouseService`),ft=k(`RenderService`),pt=k(`SelectionService`),mt=k(`CharacterJoinerService`),ht=k(`ThemeService`),gt=k(`LinkProviderService`),_t=new class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?Ct.isErrorNoTelemetry(e)?new Ct(e.message+` + +`+e.stack):Error(e.message+` + +`+e.stack):e},0)}}addListener(e){return this.listeners.push(e),()=>{this._removeListener(e)}}emit(e){this.listeners.forEach(t=>{t(e)})}_removeListener(e){this.listeners.splice(this.listeners.indexOf(e),1)}setUnexpectedErrorHandler(e){this.unexpectedErrorHandler=e}getUnexpectedErrorHandler(){return this.unexpectedErrorHandler}onUnexpectedError(e){this.unexpectedErrorHandler(e),this.emit(e)}onUnexpectedExternalError(e){this.unexpectedErrorHandler(e)}};function vt(e){bt(e)||_t.onUnexpectedError(e)}var yt=`Canceled`;function bt(e){return e instanceof xt?!0:e instanceof Error&&e.name===yt&&e.message===yt}var xt=class extends Error{constructor(){super(yt),this.name=this.message}};function St(e){return Error(e?`Illegal argument: ${e}`:`Illegal argument`)}var Ct=class e extends Error{constructor(e){super(e),this.name=`CodeExpectedError`}static fromError(t){if(t instanceof e)return t;let n=new e;return n.message=t.message,n.stack=t.stack,n}static isErrorNoTelemetry(e){return e.name===`CodeExpectedError`}},wt=class e extends Error{constructor(t){super(t||`An unexpected bug occurred.`),Object.setPrototypeOf(this,e.prototype)}};function Tt(e,t,n=0,r=e.length){let i=n,a=r;for(;i{function t(e){return e<0}e.isLessThan=t;function n(e){return e<=0}e.isLessThanOrEqual=n;function r(e){return e>0}e.isGreaterThan=r;function i(e){return e===0}e.isNeitherLessOrGreaterThan=i,e.greaterThan=1,e.lessThan=-1,e.neitherLessOrGreaterThan=0})(Ot||={});function kt(e,t){return(n,r)=>t(e(n),e(r))}var At=(e,t)=>e-t,jt=class e{constructor(e){this.iterate=e}forEach(e){this.iterate(t=>(e(t),!0))}toArray(){let e=[];return this.iterate(t=>(e.push(t),!0)),e}filter(t){return new e(e=>this.iterate(n=>t(n)?e(n):!0))}map(t){return new e(e=>this.iterate(n=>e(t(n))))}some(e){let t=!1;return this.iterate(n=>(t=e(n),!t)),t}findFirst(e){let t;return this.iterate(n=>e(n)?(t=n,!1):!0),t}findLast(e){let t;return this.iterate(n=>(e(n)&&(t=n),!0)),t}findLastMaxBy(e){let t,n=!0;return this.iterate(r=>((n||Ot.isGreaterThan(e(r,t)))&&(n=!1,t=r),!0)),t}};jt.empty=new jt(e=>{});function Mt(e,t){let n=Object.create(null);for(let r of e){let e=t(r),i=n[e];i||=n[e]=[],i.push(r)}return n}var Nt=class{constructor(){this.map=new Map}add(e,t){let n=this.map.get(e);n||(n=new Set,this.map.set(e,n)),n.add(t)}delete(e,t){let n=this.map.get(e);n&&(n.delete(t),n.size===0&&this.map.delete(e))}forEach(e,t){let n=this.map.get(e);n&&n.forEach(t)}get(e){return this.map.get(e)||new Set}};function Pt(e,t){let n=this,r=!1,i;return function(){if(r)return i;if(r=!0,t)try{i=e.apply(n,arguments)}finally{t()}else i=e.apply(n,arguments);return i}}var Ft;(e=>{function t(e){return e&&typeof e==`object`&&typeof e[Symbol.iterator]==`function`}e.is=t;let n=Object.freeze([]);function r(){return n}e.empty=r;function*i(e){yield e}e.single=i;function a(e){return t(e)?e:i(e)}e.wrap=a;function o(e){return e||n}e.from=o;function*s(e){for(let t=e.length-1;t>=0;t--)yield e[t]}e.reverse=s;function c(e){return!e||e[Symbol.iterator]().next().done===!0}e.isEmpty=c;function l(e){return e[Symbol.iterator]().next().value}e.first=l;function u(e,t){let n=0;for(let r of e)if(t(r,n++))return!0;return!1}e.some=u;function d(e,t){for(let n of e)if(t(n))return n}e.find=d;function*f(e,t){for(let n of e)t(n)&&(yield n)}e.filter=f;function*p(e,t){let n=0;for(let r of e)yield t(r,n++)}e.map=p;function*m(e,t){let n=0;for(let r of e)yield*t(r,n++)}e.flatMap=m;function*h(...e){for(let t of e)yield*t}e.concat=h;function g(e,t,n){let r=n;for(let n of e)r=t(r,n);return r}e.reduce=g;function*_(e,t,n=e.length){for(t<0&&(t+=e.length),n<0?n+=e.length:n>e.length&&(n=e.length);tt.source!==null&&!this.getRootParent(t,e).isSingleton).flatMap(([e])=>e)}computeLeakingDisposables(e=10,t){let n;if(t)n=t;else{let e=new Map,t=[...this.livingDisposables.values()].filter(t=>t.source!==null&&!this.getRootParent(t,e).isSingleton);if(t.length===0)return;let r=new Set(t.map(e=>e.value));if(n=t.filter(e=>!(e.parent&&r.has(e.parent))),n.length===0)throw Error(`There are cyclic diposable chains!`)}if(!n)return;function r(e){function t(e,t){for(;e.length>0&&t.some(t=>typeof t==`string`?t===e[0]:e[0].match(t));)e.shift()}let n=e.source.split(` +`).map(e=>e.trim().replace(`at `,``)).filter(e=>e!==``);return t(n,[`Error`,/^trackDisposable \(.*\)$/,/^DisposableTracker.trackDisposable \(.*\)$/]),n.reverse()}let i=new Nt;for(let e of n){let t=r(e);for(let n=0;n<=t.length;n++)i.add(t.slice(0,n).join(` +`),e)}n.sort(kt(e=>e.idx,At));let a=``,o=0;for(let t of n.slice(0,e)){o++;let e=r(t),s=[];for(let t=0;tr(e)[t]),e=>e);delete o[e[t]];for(let[e,t]of Object.entries(o))s.unshift(` - stacktraces of ${t.length} other leaks continue with ${e}`);s.unshift(a)}a+=` + + +==================== Leaking disposable ${o}/${n.length}: ${t.value.constructor.name} ==================== +${s.join(` +`)} +============================================================ + +`}return n.length>e&&(a+=` + + +... and ${n.length-e} more leaking disposables + +`),{leaks:n,details:a}}};Rt.idx=0;function zt(e){Lt=e}if(It){let e=`__is_disposable_tracked__`;zt(new class{trackDisposable(t){let n=Error(`Potentially leaked disposable`).stack;setTimeout(()=>{t[e]||console.log(n)},3e3)}setParent(t,n){if(t&&t!==M.None)try{t[e]=!0}catch{}}markAsDisposed(t){if(t&&t!==M.None)try{t[e]=!0}catch{}}markAsSingleton(e){}})}function Bt(e){return Lt?.trackDisposable(e),e}function Vt(e){Lt?.markAsDisposed(e)}function Ht(e,t){Lt?.setParent(e,t)}function Ut(e,t){if(Lt)for(let n of e)Lt.setParent(n,t)}function Wt(e){return Lt?.markAsSingleton(e),e}function Gt(e){if(Ft.is(e)){let t=[];for(let n of e)if(n)try{n.dispose()}catch(e){t.push(e)}if(t.length===1)throw t[0];if(t.length>1)throw AggregateError(t,`Encountered errors while disposing of store`);return Array.isArray(e)?[]:e}else if(e)return e.dispose(),e}function Kt(...e){let t=j(()=>Gt(e));return Ut(e,t),t}function j(e){let t=Bt({dispose:Pt(()=>{Vt(t),e()})});return t}var qt=class e{constructor(){this._toDispose=new Set,this._isDisposed=!1,Bt(this)}dispose(){this._isDisposed||(Vt(this),this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{Gt(this._toDispose)}finally{this._toDispose.clear()}}add(t){if(!t)return t;if(t===this)throw Error(`Cannot register a disposable on itself!`);return Ht(t,this),this._isDisposed?e.DISABLE_DISPOSED_WARNING||console.warn(Error(`Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!`).stack):this._toDispose.add(t),t}delete(e){if(e){if(e===this)throw Error(`Cannot dispose a disposable on itself!`);this._toDispose.delete(e),e.dispose()}}deleteAndLeak(e){e&&this._toDispose.has(e)&&(this._toDispose.delete(e),Ht(e,null))}};qt.DISABLE_DISPOSED_WARNING=!1;var Jt=qt,M=class{constructor(){this._store=new Jt,Bt(this),Ht(this._store,this)}dispose(){Vt(this),this._store.dispose()}_register(e){if(e===this)throw Error(`Cannot register a disposable on itself!`);return this._store.add(e)}};M.None=Object.freeze({dispose(){}});var Yt=class{constructor(){this._isDisposed=!1,Bt(this)}get value(){return this._isDisposed?void 0:this._value}set value(e){this._isDisposed||e===this._value||(this._value?.dispose(),e&&Ht(e,this),this._value=e)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,Vt(this),this._value?.dispose(),this._value=void 0}clearAndLeak(){let e=this._value;return this._value=void 0,e&&Ht(e,null),e}},Xt=typeof window==`object`?window:globalThis,Zt=class e{constructor(t){this.element=t,this.next=e.Undefined,this.prev=e.Undefined}};Zt.Undefined=new Zt(void 0);var N=Zt,Qt=class{constructor(){this._first=N.Undefined,this._last=N.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===N.Undefined}clear(){let e=this._first;for(;e!==N.Undefined;){let t=e.next;e.prev=N.Undefined,e.next=N.Undefined,e=t}this._first=N.Undefined,this._last=N.Undefined,this._size=0}unshift(e){return this._insert(e,!1)}push(e){return this._insert(e,!0)}_insert(e,t){let n=new N(e);if(this._first===N.Undefined)this._first=n,this._last=n;else if(t){let e=this._last;this._last=n,n.prev=e,e.next=n}else{let e=this._first;this._first=n,n.next=e,e.prev=n}this._size+=1;let r=!1;return()=>{r||(r=!0,this._remove(n))}}shift(){if(this._first!==N.Undefined){let e=this._first.element;return this._remove(this._first),e}}pop(){if(this._last!==N.Undefined){let e=this._last.element;return this._remove(this._last),e}}_remove(e){if(e.prev!==N.Undefined&&e.next!==N.Undefined){let t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===N.Undefined&&e.next===N.Undefined?(this._first=N.Undefined,this._last=N.Undefined):e.next===N.Undefined?(this._last=this._last.prev,this._last.next=N.Undefined):e.prev===N.Undefined&&(this._first=this._first.next,this._first.prev=N.Undefined);--this._size}*[Symbol.iterator](){let e=this._first;for(;e!==N.Undefined;)yield e.element,e=e.next}},$t=globalThis.performance&&typeof globalThis.performance.now==`function`,en=class e{static create(t){return new e(t)}constructor(e){this._now=$t&&e===!1?Date.now:globalThis.performance.now.bind(globalThis.performance),this._startTime=this._now(),this._stopTime=-1}stop(){this._stopTime=this._now()}reset(){this._startTime=this._now(),this._stopTime=-1}elapsed(){return this._stopTime===-1?this._now()-this._startTime:this._stopTime-this._startTime}},tn=!1,nn=!1,rn=!1,P;(e=>{e.None=()=>M.None;function t(e){if(rn){let{onDidAddListener:t}=e,n=un.create(),r=0;e.onDidAddListener=()=>{++r===2&&(console.warn(`snapshotted emitter LIKELY used public and SHOULD HAVE BEEN created with DisposableStore. snapshotted here`),n.print()),t?.()}}}function n(e,t){return f(e,()=>{},0,void 0,!0,void 0,t)}e.defer=n;function r(e){return(t,n=null,r)=>{let i=!1,a;return a=e(e=>{if(!i)return a?a.dispose():i=!0,t.call(n,e)},null,r),i&&a.dispose(),a}}e.once=r;function i(e,t,n){return u((n,r=null,i)=>e(e=>n.call(r,t(e)),null,i),n)}e.map=i;function a(e,t,n){return u((n,r=null,i)=>e(e=>{t(e),n.call(r,e)},null,i),n)}e.forEach=a;function o(e,t,n){return u((n,r=null,i)=>e(e=>t(e)&&n.call(r,e),null,i),n)}e.filter=o;function s(e){return e}e.signal=s;function c(...e){return(t,n=null,r)=>d(Kt(...e.map(e=>e(e=>t.call(n,e)))),r)}e.any=c;function l(e,t,n,r){let a=n;return i(e,e=>(a=t(a,e),a),r)}e.reduce=l;function u(e,n){let r,i={onWillAddFirstListener(){r=e(a.fire,a)},onDidRemoveLastListener(){r?.dispose()}};n||t(i);let a=new F(i);return n?.add(a),a.event}function d(e,t){return t instanceof Array?t.push(e):t&&t.add(e),e}function f(e,n,r=100,i=!1,a=!1,o,s){let c,l,u,d=0,f,p={leakWarningThreshold:o,onWillAddFirstListener(){c=e(e=>{d++,l=n(l,e),i&&!u&&(m.fire(l),l=void 0),f=()=>{let e=l;l=void 0,u=void 0,(!i||d>1)&&m.fire(e),d=0},typeof r==`number`?(clearTimeout(u),u=setTimeout(f,r)):u===void 0&&(u=0,queueMicrotask(f))})},onWillRemoveListener(){a&&d>0&&f?.()},onDidRemoveLastListener(){f=void 0,c.dispose()}};s||t(p);let m=new F(p);return s?.add(m),m.event}e.debounce=f;function p(t,n=0,r){return e.debounce(t,(e,t)=>e?(e.push(t),e):[t],n,void 0,!0,void 0,r)}e.accumulate=p;function m(e,t=(e,t)=>e===t,n){let r=!0,i;return o(e,e=>{let n=r||!t(e,i);return r=!1,i=e,n},n)}e.latch=m;function h(t,n,r){return[e.filter(t,n,r),e.filter(t,e=>!n(e),r)]}e.split=h;function g(e,t=!1,n=[],r){let i=n.slice(),a=e(e=>{i?i.push(e):s.fire(e)});r&&r.add(a);let o=()=>{i?.forEach(e=>s.fire(e)),i=null},s=new F({onWillAddFirstListener(){a||(a=e(e=>s.fire(e)),r&&r.add(a))},onDidAddFirstListener(){i&&(t?setTimeout(o):o())},onDidRemoveLastListener(){a&&a.dispose(),a=null}});return r&&r.add(s),s.event}e.buffer=g;function _(e,t){return(n,r,i)=>{let a=t(new te);return e(function(e){let t=a.evaluate(e);t!==ee&&n.call(r,t)},void 0,i)}}e.chain=_;let ee=Symbol(`HaltChainable`);class te{constructor(){this.steps=[]}map(e){return this.steps.push(e),this}forEach(e){return this.steps.push(t=>(e(t),t)),this}filter(e){return this.steps.push(t=>e(t)?t:ee),this}reduce(e,t){let n=t;return this.steps.push(t=>(n=e(n,t),n)),this}latch(e=(e,t)=>e===t){let t=!0,n;return this.steps.push(r=>{let i=t||!e(r,n);return t=!1,n=r,i?r:ee}),this}evaluate(e){for(let t of this.steps)if(e=t(e),e===ee)break;return e}}function v(e,t,n=e=>e){let r=(...e)=>i.fire(n(...e)),i=new F({onWillAddFirstListener:()=>e.on(t,r),onDidRemoveLastListener:()=>e.removeListener(t,r)});return i.event}e.fromNodeEventEmitter=v;function ne(e,t,n=e=>e){let r=(...e)=>i.fire(n(...e)),i=new F({onWillAddFirstListener:()=>e.addEventListener(t,r),onDidRemoveLastListener:()=>e.removeEventListener(t,r)});return i.event}e.fromDOMEventEmitter=ne;function re(e){return new Promise(t=>r(e)(t))}e.toPromise=re;function ie(e){let t=new F;return e.then(e=>{t.fire(e)},()=>{t.fire(void 0)}).finally(()=>{t.dispose()}),t.event}e.fromPromise=ie;function y(e,t){return e(e=>t.fire(e))}e.forward=y;function ae(e,t,n){return t(n),e(e=>t(e))}e.runAndSubscribe=ae;class oe{constructor(e,n){this._observable=e,this._counter=0,this._hasChanged=!1;let r={onWillAddFirstListener:()=>{e.addObserver(this)},onDidRemoveLastListener:()=>{e.removeObserver(this)}};n||t(r),this.emitter=new F(r),n&&n.add(this.emitter)}beginUpdate(e){this._counter++}handlePossibleChange(e){}handleChange(e,t){this._hasChanged=!0}endUpdate(e){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function b(e,t){return new oe(e,t).emitter.event}e.fromObservable=b;function x(e){return(t,n,r)=>{let i=0,a=!1,o={beginUpdate(){i++},endUpdate(){i--,i===0&&(e.reportChanges(),a&&(a=!1,t.call(n)))},handlePossibleChange(){},handleChange(){a=!0}};e.addObserver(o),e.reportChanges();let s={dispose(){e.removeObserver(o)}};return r instanceof Jt?r.add(s):Array.isArray(r)&&r.push(s),s}}e.fromObservableLight=x})(P||={});var an=class e{constructor(t){this.listenerCount=0,this.invocationCount=0,this.elapsedOverall=0,this.durations=[],this.name=`${t}_${e._idPool++}`,e.all.add(this)}start(e){this._stopWatch=new en,this.listenerCount=e}stop(){if(this._stopWatch){let e=this._stopWatch.elapsed();this.durations.push(e),this.elapsedOverall+=e,this.invocationCount+=1,this._stopWatch=void 0}}};an.all=new Set,an._idPool=0;var on=an,sn=-1,cn=class e{constructor(t,n,r=(e._idPool++).toString(16).padStart(3,`0`)){this._errorHandler=t,this.threshold=n,this.name=r,this._warnCountdown=0}dispose(){this._stacks?.clear()}check(e,t){let n=this.threshold;if(n<=0||t{let t=this._stacks.get(e.value)||0;this._stacks.set(e.value,t-1)}}getMostFrequentStack(){if(!this._stacks)return;let e,t=0;for(let[n,r]of this._stacks)(!e||t{if(e instanceof mn)t(e);else for(let n=0;n{e.length!==0&&(console.warn(`[LEAKING LISTENERS] GC'ed these listeners that were NOT yet disposed:`),console.warn(e.join(` +`)),e.length=0)},3e3),_n=new FinalizationRegistry(t=>{typeof t==`string`&&e.push(t)})}var F=class{constructor(e){this._size=0,this._options=e,this._leakageMon=sn>0||this._options?.leakWarningThreshold?new ln(e?.onListenerError??vt,this._options?.leakWarningThreshold??sn):void 0,this._perfMon=this._options?._profName?new on(this._options._profName):void 0,this._deliveryQueue=this._options?.deliveryQueue}dispose(){if(!this._disposed){if(this._disposed=!0,this._deliveryQueue?.current===this&&this._deliveryQueue.reset(),this._listeners){if(nn){let e=this._listeners;queueMicrotask(()=>{gn(e,e=>e.stack?.print())})}this._listeners=void 0,this._size=0}this._options?.onDidRemoveLastListener?.(),this._leakageMon?.dispose()}}get event(){return this._event??=(e,t,n)=>{if(this._leakageMon&&this._size>this._leakageMon.threshold**2){let e=`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;console.warn(e);let t=this._leakageMon.getMostFrequentStack()??[`UNKNOWN stack`,-1],n=new fn(`${e}. HINT: Stack shows most frequent listener (${t[1]}-times)`,t[0]);return(this._options?.onListenerError||vt)(n),M.None}if(this._disposed)return M.None;t&&(e=e.bind(t));let r=new mn(e),i;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(r.stack=un.create(),i=this._leakageMon.check(r.stack,this._size+1)),nn&&(r.stack=un.create()),this._listeners?this._listeners instanceof mn?(this._deliveryQueue??=new vn,this._listeners=[this._listeners,r]):this._listeners.push(r):(this._options?.onWillAddFirstListener?.(this),this._listeners=r,this._options?.onDidAddFirstListener?.(this)),this._size++;let a=j(()=>{_n?.unregister(a),i?.(),this._removeListener(r)});if(n instanceof Jt?n.add(a):Array.isArray(n)&&n.push(a),_n){let e=Error().stack.split(` +`).slice(2,3).join(` +`).trim(),t=/(file:|vscode-file:\/\/vscode-app)?(\/[^:]*:\d+:\d+)/.exec(e);_n.register(a,t?.[2]??e,a)}return a},this._event}_removeListener(e){if(this._options?.onWillRemoveListener?.(this),!this._listeners)return;if(this._size===1){this._listeners=void 0,this._options?.onDidRemoveLastListener?.(this),this._size=0;return}let t=this._listeners,n=t.indexOf(e);if(n===-1)throw console.log(`disposed?`,this._disposed),console.log(`size?`,this._size),console.log(`arr?`,JSON.stringify(this._listeners)),Error(`Attempted to dispose unknown listener`);this._size--,t[n]=void 0;let r=this._deliveryQueue.current===this;if(this._size*hn<=t.length){let e=0;for(let n=0;n0}},vn=class{constructor(){this.i=-1,this.end=0}enqueue(e,t,n){this.i=0,this.end=n,this.current=e,this.value=t}reset(){this.i=this.end,this.current=void 0,this.value=void 0}},yn=class{constructor(){this.mapWindowIdToZoomLevel=new Map,this._onDidChangeZoomLevel=new F,this.onDidChangeZoomLevel=this._onDidChangeZoomLevel.event,this.mapWindowIdToZoomFactor=new Map,this._onDidChangeFullscreen=new F,this.onDidChangeFullscreen=this._onDidChangeFullscreen.event,this.mapWindowIdToFullScreen=new Map}getZoomLevel(e){return this.mapWindowIdToZoomLevel.get(this.getWindowId(e))??0}setZoomLevel(e,t){if(this.getZoomLevel(t)===e)return;let n=this.getWindowId(t);this.mapWindowIdToZoomLevel.set(n,e),this._onDidChangeZoomLevel.fire(n)}getZoomFactor(e){return this.mapWindowIdToZoomFactor.get(this.getWindowId(e))??1}setZoomFactor(e,t){this.mapWindowIdToZoomFactor.set(this.getWindowId(t),e)}setFullscreen(e,t){if(this.isFullscreen(t)===e)return;let n=this.getWindowId(t);this.mapWindowIdToFullScreen.set(n,e),this._onDidChangeFullscreen.fire(n)}isFullscreen(e){return!!this.mapWindowIdToFullScreen.get(this.getWindowId(e))}getWindowId(e){return e.vscodeWindowId}};yn.INSTANCE=new yn;var bn=yn;function xn(e,t,n){typeof t==`string`&&(t=e.matchMedia(t)),t.addEventListener(`change`,n)}bn.INSTANCE.onDidChangeZoomLevel;function Sn(e){return bn.INSTANCE.getZoomFactor(e)}bn.INSTANCE.onDidChangeFullscreen;var Cn=typeof navigator==`object`?navigator.userAgent:``,wn=Cn.indexOf(`Firefox`)>=0,Tn=Cn.indexOf(`AppleWebKit`)>=0,En=Cn.indexOf(`Chrome`)>=0,Dn=!En&&Cn.indexOf(`Safari`)>=0;Cn.indexOf(`Electron/`),Cn.indexOf(`Android`);var On=!1;if(typeof Xt.matchMedia==`function`){let e=Xt.matchMedia(`(display-mode: standalone) or (display-mode: window-controls-overlay)`),t=Xt.matchMedia(`(display-mode: fullscreen)`);On=e.matches,xn(Xt,e,({matches:e})=>{On&&t.matches||(On=e)})}function kn(){return On}var An=`en`,jn=!1,Mn=!1,Nn=!1,Pn=!1,Fn=!1,In=An,Ln,Rn=globalThis,zn;typeof Rn.vscode<`u`&&typeof Rn.vscode.process<`u`?zn=Rn.vscode.process:typeof process<`u`&&typeof process?.versions?.node==`string`&&(zn=process);var Bn=typeof zn?.versions?.electron==`string`&&zn?.type===`renderer`;if(typeof zn==`object`){jn=zn.platform===`win32`,Mn=zn.platform===`darwin`,Nn=zn.platform===`linux`,Nn&&zn.env.SNAP&&zn.env.SNAP_REVISION,zn.env.CI||zn.env.BUILD_ARTIFACTSTAGINGDIRECTORY,In=An;let e=zn.env.VSCODE_NLS_CONFIG;if(e)try{let t=JSON.parse(e);t.userLocale,t.osLocale,In=t.resolvedLanguage||An,t.languagePack?.translationsConfigFile}catch{}Pn=!0}else typeof navigator==`object`&&!Bn?(Ln=navigator.userAgent,jn=Ln.indexOf(`Windows`)>=0,Mn=Ln.indexOf(`Macintosh`)>=0,(Ln.indexOf(`Macintosh`)>=0||Ln.indexOf(`iPad`)>=0||Ln.indexOf(`iPhone`)>=0)&&navigator.maxTouchPoints&&navigator.maxTouchPoints,Nn=Ln.indexOf(`Linux`)>=0,Ln?.indexOf(`Mobi`),Fn=!0,In=globalThis._VSCODE_NLS_LANGUAGE||An,navigator.language.toLowerCase()):console.error(`Unable to resolve platform.`);var Vn=jn,Hn=Mn,Un=Nn,Wn=Pn;Fn&&typeof Rn.importScripts==`function`&&Rn.origin;var Gn=Ln,Kn=In,qn;(e=>{function t(){return Kn}e.value=t;function n(){return Kn.length===2?Kn===`en`:Kn.length>=3?Kn[0]===`e`&&Kn[1]===`n`&&Kn[2]===`-`:!1}e.isDefaultVariant=n;function r(){return Kn===`en`}e.isDefault=r})(qn||={});var Jn=typeof Rn.postMessage==`function`&&!Rn.importScripts;(()=>{if(Jn){let e=[];Rn.addEventListener(`message`,t=>{if(t.data&&t.data.vscodeScheduleAsyncWork)for(let n=0,r=e.length;n{let r=++t;e.push({id:r,callback:n}),Rn.postMessage({vscodeScheduleAsyncWork:r},`*`)}}return e=>setTimeout(e)})();var Yn=!!(Gn&&Gn.indexOf(`Chrome`)>=0);Gn&&Gn.indexOf(`Firefox`),!Yn&&Gn&&Gn.indexOf(`Safari`),Gn&&Gn.indexOf(`Edg/`),Gn&&Gn.indexOf(`Android`);var Xn=typeof navigator==`object`?navigator:{};Wn||document.queryCommandSupported&&document.queryCommandSupported(`copy`)||Xn&&Xn.clipboard&&Xn.clipboard.writeText,Wn||Xn&&Xn.clipboard&&Xn.clipboard.readText,Wn||kn()||Xn.keyboard,`ontouchstart`in Xt||Xn.maxTouchPoints,Xt.PointerEvent&&(`ontouchstart`in Xt||navigator.maxTouchPoints);var Zn=class{constructor(){this._keyCodeToStr=[],this._strToKeyCode=Object.create(null)}define(e,t){this._keyCodeToStr[e]=t,this._strToKeyCode[t.toLowerCase()]=e}keyCodeToStr(e){return this._keyCodeToStr[e]}strToKeyCode(e){return this._strToKeyCode[e.toLowerCase()]||0}},Qn=new Zn,$n=new Zn,er=new Zn,tr=Array(230),nr;(e=>{function t(e){return Qn.keyCodeToStr(e)}e.toString=t;function n(e){return Qn.strToKeyCode(e)}e.fromString=n;function r(e){return $n.keyCodeToStr(e)}e.toUserSettingsUS=r;function i(e){return er.keyCodeToStr(e)}e.toUserSettingsGeneral=i;function a(e){return $n.strToKeyCode(e)||er.strToKeyCode(e)}e.fromUserSettings=a;function o(e){if(e>=98&&e<=113)return null;switch(e){case 16:return`Up`;case 18:return`Down`;case 15:return`Left`;case 17:return`Right`}return Qn.keyCodeToStr(e)}e.toElectronAccelerator=o})(nr||={});var rr=class e{constructor(e,t,n,r,i){this.ctrlKey=e,this.shiftKey=t,this.altKey=n,this.metaKey=r,this.keyCode=i}equals(t){return t instanceof e&&this.ctrlKey===t.ctrlKey&&this.shiftKey===t.shiftKey&&this.altKey===t.altKey&&this.metaKey===t.metaKey&&this.keyCode===t.keyCode}getHashCode(){return`K${this.ctrlKey?`1`:`0`}${this.shiftKey?`1`:`0`}${this.altKey?`1`:`0`}${this.metaKey?`1`:`0`}${this.keyCode}`}isModifierKey(){return this.keyCode===0||this.keyCode===5||this.keyCode===57||this.keyCode===6||this.keyCode===4}toKeybinding(){return new ir([this])}isDuplicateModifierCase(){return this.ctrlKey&&this.keyCode===5||this.shiftKey&&this.keyCode===4||this.altKey&&this.keyCode===6||this.metaKey&&this.keyCode===57}},ir=class{constructor(e){if(e.length===0)throw St(`chords`);this.chords=e}getHashCode(){let e=``;for(let t=0,n=this.chords.length;t{function t(t){return t===e.None||t===e.Cancelled||t instanceof vr?!0:!t||typeof t!=`object`?!1:typeof t.isCancellationRequested==`boolean`&&typeof t.onCancellationRequested==`function`}e.isCancellationToken=t,e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:P.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:gr})})(_r||={});var vr=class{constructor(){this._isCancelled=!1,this._emitter=null}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?gr:(this._emitter||=new F,this._emitter.event)}dispose(){this._emitter&&=(this._emitter.dispose(),null)}},yr=class{constructor(e,t){this._isDisposed=!1,this._token=-1,typeof e==`function`&&typeof t==`number`&&this.setIfNotSet(e,t)}dispose(){this.cancel(),this._isDisposed=!0}cancel(){this._token!==-1&&(clearTimeout(this._token),this._token=-1)}cancelAndSet(e,t){if(this._isDisposed)throw new wt(`Calling 'cancelAndSet' on a disposed TimeoutTimer`);this.cancel(),this._token=setTimeout(()=>{this._token=-1,e()},t)}setIfNotSet(e,t){if(this._isDisposed)throw new wt(`Calling 'setIfNotSet' on a disposed TimeoutTimer`);this._token===-1&&(this._token=setTimeout(()=>{this._token=-1,e()},t))}},br=class{constructor(){this.disposable=void 0,this.isDisposed=!1}cancel(){this.disposable?.dispose(),this.disposable=void 0}cancelAndSet(e,t,n=globalThis){if(this.isDisposed)throw new wt(`Calling 'cancelAndSet' on a disposed IntervalTimer`);this.cancel();let r=n.setInterval(()=>{e()},t);this.disposable=j(()=>{n.clearInterval(r),this.disposable=void 0})}dispose(){this.cancel(),this.isDisposed=!0}};(function(){typeof globalThis.requestIdleCallback!=`function`||globalThis.cancelIdleCallback})();var xr;(e=>{async function t(e){let t,n=await Promise.all(e.map(e=>e.then(e=>e,e=>{t||=e})));if(typeof t<`u`)throw t;return n}e.settled=t;function n(e){return new Promise(async(t,n)=>{try{await e(t,n)}catch(e){n(e)}})}e.withAsyncBody=n})(xr||={});var Sr=class e{static fromArray(t){return new e(e=>{e.emitMany(t)})}static fromPromise(t){return new e(async e=>{e.emitMany(await t)})}static fromPromises(t){return new e(async e=>{await Promise.all(t.map(async t=>e.emitOne(await t)))})}static merge(t){return new e(async e=>{await Promise.all(t.map(async t=>{for await(let n of t)e.emitOne(n)}))})}constructor(e,t){this._state=0,this._results=[],this._error=null,this._onReturn=t,this._onStateChanged=new F,queueMicrotask(async()=>{let t={emitOne:e=>this.emitOne(e),emitMany:e=>this.emitMany(e),reject:e=>this.reject(e)};try{await Promise.resolve(e(t)),this.resolve()}catch(e){this.reject(e)}finally{t.emitOne=void 0,t.emitMany=void 0,t.reject=void 0}})}[Symbol.asyncIterator](){let e=0;return{next:async()=>{do{if(this._state===2)throw this._error;if(e(this._onReturn?.(),{done:!0,value:void 0})}}static map(t,n){return new e(async e=>{for await(let r of t)e.emitOne(n(r))})}map(t){return e.map(this,t)}static filter(t,n){return new e(async e=>{for await(let r of t)n(r)&&e.emitOne(r)})}filter(t){return e.filter(this,t)}static coalesce(t){return e.filter(t,e=>!!e)}coalesce(){return e.coalesce(this)}static async toPromise(e){let t=[];for await(let n of e)t.push(n);return t}toPromise(){return e.toPromise(this)}emitOne(e){this._state===0&&(this._results.push(e),this._onStateChanged.fire())}emitMany(e){this._state===0&&(this._results=this._results.concat(e),this._onStateChanged.fire())}resolve(){this._state===0&&(this._state=1,this._onStateChanged.fire())}reject(e){this._state===0&&(this._state=2,this._error=e,this._onStateChanged.fire())}};Sr.EMPTY=Sr.fromArray([]);function Cr(e){return 55296<=e&&e<=56319}function wr(e){return 56320<=e&&e<=57343}function Tr(e,t){return(e-55296<<10)+(t-56320)+65536}function Er(e){return Dr(e,0)}function Dr(e,t){switch(typeof e){case`object`:return e===null?Or(349,t):Array.isArray(e)?jr(e,t):Mr(e,t);case`string`:return Ar(e,t);case`boolean`:return kr(e,t);case`number`:return Or(e,t);case`undefined`:return Or(937,t);default:return Or(617,t)}}function Or(e,t){return(t<<5)-t+e|0}function kr(e,t){return Or(e?433:863,t)}function Ar(e,t){t=Or(149417,t);for(let n=0,r=e.length;nDr(t,e),t)}function Mr(e,t){return t=Or(181387,t),Object.keys(e).sort().reduce((t,n)=>(t=Ar(n,t),Dr(e[n],t)),t)}function Nr(e,t,n=32){let r=n-t,i=~((1<>>r)>>>0}function Pr(e,t=0,n=e.byteLength,r=0){for(let i=0;ie.toString(16).padStart(2,`0`)).join(``):Fr((e>>>0).toString(16),t/4)}var Lr=class e{constructor(){this._h0=1732584193,this._h1=4023233417,this._h2=2562383102,this._h3=271733878,this._h4=3285377520,this._buff=new Uint8Array(67),this._buffDV=new DataView(this._buff.buffer),this._buffLen=0,this._totalLen=0,this._leftoverHighSurrogate=0,this._finished=!1}update(e){let t=e.length;if(t===0)return;let n=this._buff,r=this._buffLen,i=this._leftoverHighSurrogate,a,o;for(i===0?(a=e.charCodeAt(0),o=0):(a=i,o=-1,i=0);;){let s=a;if(Cr(a))if(o+1>>6,e[t++]=128|(n&63)>>>0):n<65536?(e[t++]=224|(n&61440)>>>12,e[t++]=128|(n&4032)>>>6,e[t++]=128|(n&63)>>>0):(e[t++]=240|(n&1835008)>>>18,e[t++]=128|(n&258048)>>>12,e[t++]=128|(n&4032)>>>6,e[t++]=128|(n&63)>>>0),t>=64&&(this._step(),t-=64,this._totalLen+=64,e[0]=e[64],e[1]=e[65],e[2]=e[66]),t}digest(){return this._finished||(this._finished=!0,this._leftoverHighSurrogate&&(this._leftoverHighSurrogate=0,this._buffLen=this._push(this._buff,this._buffLen,65533)),this._totalLen+=this._buffLen,this._wrapUp()),Ir(this._h0)+Ir(this._h1)+Ir(this._h2)+Ir(this._h3)+Ir(this._h4)}_wrapUp(){this._buff[this._buffLen++]=128,Pr(this._buff,this._buffLen),this._buffLen>56&&(this._step(),Pr(this._buff));let e=8*this._totalLen;this._buffDV.setUint32(56,Math.floor(e/4294967296),!1),this._buffDV.setUint32(60,e%4294967296,!1),this._step()}_step(){let t=e._bigBlock32,n=this._buffDV;for(let e=0;e<64;e+=4)t.setUint32(e,n.getUint32(e,!1),!1);for(let e=64;e<320;e+=4)t.setUint32(e,Nr(t.getUint32(e-12,!1)^t.getUint32(e-32,!1)^t.getUint32(e-56,!1)^t.getUint32(e-64,!1),1),!1);let r=this._h0,i=this._h1,a=this._h2,o=this._h3,s=this._h4,c,l,u;for(let e=0;e<80;e++)e<20?(c=i&a|~i&o,l=1518500249):e<40?(c=i^a^o,l=1859775393):e<60?(c=i&a|i&o|a&o,l=2400959708):(c=i^a^o,l=3395469782),u=Nr(r,5)+c+s+l+t.getUint32(e*4,!1)&4294967295,s=o,o=a,a=Nr(i,30),i=r,r=u;this._h0=this._h0+r&4294967295,this._h1=this._h1+i&4294967295,this._h2=this._h2+a&4294967295,this._h3=this._h3+o&4294967295,this._h4=this._h4+s&4294967295}};Lr._bigBlock32=new DataView(new ArrayBuffer(320));var{registerWindow:Rr,getWindow:zr,getDocument:Br,getWindows:Vr,getWindowsCount:Hr,getWindowId:Ur,getWindowById:Wr,hasWindow:Gr,onDidRegisterWindow:Kr,onWillUnregisterWindow:qr,onDidUnregisterWindow:Jr}=function(){let e=new Map,t={window:Xt,disposables:new Jt};e.set(Xt.vscodeWindowId,t);let n=new F,r=new F,i=new F;function a(n,r){return(typeof n==`number`?e.get(n):void 0)??(r?t:void 0)}return{onDidRegisterWindow:n.event,onWillUnregisterWindow:i.event,onDidUnregisterWindow:r.event,registerWindow(t){if(e.has(t.vscodeWindowId))return M.None;let a=new Jt,o={window:t,disposables:a.add(new Jt)};return e.set(t.vscodeWindowId,o),a.add(j(()=>{e.delete(t.vscodeWindowId),r.fire(t)})),a.add(I(t,L.BEFORE_UNLOAD,()=>{i.fire(t)})),n.fire(o),a},getWindows(){return e.values()},getWindowsCount(){return e.size},getWindowId(e){return e.vscodeWindowId},hasWindow(t){return e.has(t)},getWindowById:a,getWindow(e){let t=e;if(t?.ownerDocument?.defaultView)return t.ownerDocument.defaultView.window;let n=e;return n?.view?n.view.window:Xt},getDocument(e){return zr(e).document}}}(),Yr=class{constructor(e,t,n,r){this._node=e,this._type=t,this._handler=n,this._options=r||!1,this._node.addEventListener(this._type,this._handler,this._options)}dispose(){this._handler&&=(this._node.removeEventListener(this._type,this._handler,this._options),this._node=null,null)}};function I(e,t,n,r){return new Yr(e,t,n,r)}function Xr(e,t){return function(n){return t(new mr(e,n))}}function Zr(e){return function(t){return e(new ur(t))}}var Qr=function(e,t,n,r){let i=n;return t===`click`||t===`mousedown`||t===`contextmenu`?i=Xr(zr(e),n):(t===`keydown`||t===`keypress`||t===`keyup`)&&(i=Zr(n)),I(e,t,i,r)},$r,ei=class extends br{constructor(e){super(),this.defaultTarget=e&&zr(e)}cancelAndSet(e,t,n){return super.cancelAndSet(e,t,n??this.defaultTarget)}},ti=class{constructor(e,t=0){this._runner=e,this.priority=t,this._canceled=!1}dispose(){this._canceled=!0}execute(){if(!this._canceled)try{this._runner()}catch(e){vt(e)}}static sort(e,t){return t.priority-e.priority}};(function(){let e=new Map,t=new Map,n=new Map,r=new Map,i=i=>{n.set(i,!1);let a=e.get(i)??[];for(t.set(i,a),e.set(i,[]),r.set(i,!0);a.length>0;)a.sort(ti.sort),a.shift().execute();r.set(i,!1)};$r=(t,r,a=0)=>{let o=Ur(t),s=new ti(r,a),c=e.get(o);return c||(c=[],e.set(o,c)),c.push(s),n.get(o)||(n.set(o,!0),t.requestAnimationFrame(()=>i(o))),s}})();var ni=class e{constructor(e,t){this.width=e,this.height=t}with(t=this.width,n=this.height){return t!==this.width||n!==this.height?new e(t,n):this}static is(e){return typeof e==`object`&&typeof e.height==`number`&&typeof e.width==`number`}static lift(t){return t instanceof e?t:new e(t.width,t.height)}static equals(e,t){return e===t?!0:!e||!t?!1:e.width===t.width&&e.height===t.height}};ni.None=new ni(0,0);function ri(e){let t=e.getBoundingClientRect(),n=zr(e);return{left:t.left+n.scrollX,top:t.top+n.scrollY,width:t.width,height:t.height}}new class{constructor(){this.mutationObservers=new Map}observe(e,t,n){let r=this.mutationObservers.get(e);r||(r=new Map,this.mutationObservers.set(e,r));let i=Er(n),a=r.get(i);if(a)a.users+=1;else{let o=new F,s=new MutationObserver(e=>o.fire(e));s.observe(e,n);let c=a={users:1,observer:s,onDidMutate:o.event};t.add(j(()=>{--c.users,c.users===0&&(o.dispose(),s.disconnect(),r?.delete(i),r?.size===0&&this.mutationObservers.delete(e))})),r.set(i,a)}return a.onDidMutate}};var L={CLICK:`click`,AUXCLICK:`auxclick`,DBLCLICK:`dblclick`,MOUSE_UP:`mouseup`,MOUSE_DOWN:`mousedown`,MOUSE_OVER:`mouseover`,MOUSE_MOVE:`mousemove`,MOUSE_OUT:`mouseout`,MOUSE_ENTER:`mouseenter`,MOUSE_LEAVE:`mouseleave`,MOUSE_WHEEL:`wheel`,POINTER_UP:`pointerup`,POINTER_DOWN:`pointerdown`,POINTER_MOVE:`pointermove`,POINTER_LEAVE:`pointerleave`,CONTEXT_MENU:`contextmenu`,WHEEL:`wheel`,KEY_DOWN:`keydown`,KEY_PRESS:`keypress`,KEY_UP:`keyup`,LOAD:`load`,BEFORE_UNLOAD:`beforeunload`,UNLOAD:`unload`,PAGE_SHOW:`pageshow`,PAGE_HIDE:`pagehide`,PASTE:`paste`,ABORT:`abort`,ERROR:`error`,RESIZE:`resize`,SCROLL:`scroll`,FULLSCREEN_CHANGE:`fullscreenchange`,WK_FULLSCREEN_CHANGE:`webkitfullscreenchange`,SELECT:`select`,CHANGE:`change`,SUBMIT:`submit`,RESET:`reset`,FOCUS:`focus`,FOCUS_IN:`focusin`,FOCUS_OUT:`focusout`,BLUR:`blur`,INPUT:`input`,STORAGE:`storage`,DRAG_START:`dragstart`,DRAG:`drag`,DRAG_ENTER:`dragenter`,DRAG_LEAVE:`dragleave`,DRAG_OVER:`dragover`,DROP:`drop`,DRAG_END:`dragend`,ANIMATION_START:Tn?`webkitAnimationStart`:`animationstart`,ANIMATION_END:Tn?`webkitAnimationEnd`:`animationend`,ANIMATION_ITERATION:Tn?`webkitAnimationIteration`:`animationiteration`},ii=/([\w\-]+)?(#([\w\-]+))?((\.([\w\-]+))*)/;function ai(e,t,n,...r){let i=ii.exec(t);if(!i)throw Error(`Bad use of emmet`);let a=i[1]||`div`,o;return o=e===`http://www.w3.org/1999/xhtml`?document.createElement(a):document.createElementNS(e,a),i[3]&&(o.id=i[3]),i[4]&&(o.className=i[4].replace(/\./g,` `).trim()),n&&Object.entries(n).forEach(([e,t])=>{typeof t>`u`||(/^on\w+$/.test(e)?o[e]=t:e===`selected`?t&&o.setAttribute(e,`true`):o.setAttribute(e,t))}),o.append(...r),o}function oi(e,t,...n){return ai(`http://www.w3.org/1999/xhtml`,e,t,...n)}oi.SVG=function(e,t,...n){return ai(`http://www.w3.org/2000/svg`,e,t,...n)};var si=class{constructor(e){this.domNode=e,this._maxWidth=``,this._width=``,this._height=``,this._top=``,this._left=``,this._bottom=``,this._right=``,this._paddingTop=``,this._paddingLeft=``,this._paddingBottom=``,this._paddingRight=``,this._fontFamily=``,this._fontWeight=``,this._fontSize=``,this._fontStyle=``,this._fontFeatureSettings=``,this._fontVariationSettings=``,this._textDecoration=``,this._lineHeight=``,this._letterSpacing=``,this._className=``,this._display=``,this._position=``,this._visibility=``,this._color=``,this._backgroundColor=``,this._layerHint=!1,this._contain=`none`,this._boxShadow=``}setMaxWidth(e){let t=ci(e);this._maxWidth!==t&&(this._maxWidth=t,this.domNode.style.maxWidth=this._maxWidth)}setWidth(e){let t=ci(e);this._width!==t&&(this._width=t,this.domNode.style.width=this._width)}setHeight(e){let t=ci(e);this._height!==t&&(this._height=t,this.domNode.style.height=this._height)}setTop(e){let t=ci(e);this._top!==t&&(this._top=t,this.domNode.style.top=this._top)}setLeft(e){let t=ci(e);this._left!==t&&(this._left=t,this.domNode.style.left=this._left)}setBottom(e){let t=ci(e);this._bottom!==t&&(this._bottom=t,this.domNode.style.bottom=this._bottom)}setRight(e){let t=ci(e);this._right!==t&&(this._right=t,this.domNode.style.right=this._right)}setPaddingTop(e){let t=ci(e);this._paddingTop!==t&&(this._paddingTop=t,this.domNode.style.paddingTop=this._paddingTop)}setPaddingLeft(e){let t=ci(e);this._paddingLeft!==t&&(this._paddingLeft=t,this.domNode.style.paddingLeft=this._paddingLeft)}setPaddingBottom(e){let t=ci(e);this._paddingBottom!==t&&(this._paddingBottom=t,this.domNode.style.paddingBottom=this._paddingBottom)}setPaddingRight(e){let t=ci(e);this._paddingRight!==t&&(this._paddingRight=t,this.domNode.style.paddingRight=this._paddingRight)}setFontFamily(e){this._fontFamily!==e&&(this._fontFamily=e,this.domNode.style.fontFamily=this._fontFamily)}setFontWeight(e){this._fontWeight!==e&&(this._fontWeight=e,this.domNode.style.fontWeight=this._fontWeight)}setFontSize(e){let t=ci(e);this._fontSize!==t&&(this._fontSize=t,this.domNode.style.fontSize=this._fontSize)}setFontStyle(e){this._fontStyle!==e&&(this._fontStyle=e,this.domNode.style.fontStyle=this._fontStyle)}setFontFeatureSettings(e){this._fontFeatureSettings!==e&&(this._fontFeatureSettings=e,this.domNode.style.fontFeatureSettings=this._fontFeatureSettings)}setFontVariationSettings(e){this._fontVariationSettings!==e&&(this._fontVariationSettings=e,this.domNode.style.fontVariationSettings=this._fontVariationSettings)}setTextDecoration(e){this._textDecoration!==e&&(this._textDecoration=e,this.domNode.style.textDecoration=this._textDecoration)}setLineHeight(e){let t=ci(e);this._lineHeight!==t&&(this._lineHeight=t,this.domNode.style.lineHeight=this._lineHeight)}setLetterSpacing(e){let t=ci(e);this._letterSpacing!==t&&(this._letterSpacing=t,this.domNode.style.letterSpacing=this._letterSpacing)}setClassName(e){this._className!==e&&(this._className=e,this.domNode.className=this._className)}toggleClassName(e,t){this.domNode.classList.toggle(e,t),this._className=this.domNode.className}setDisplay(e){this._display!==e&&(this._display=e,this.domNode.style.display=this._display)}setPosition(e){this._position!==e&&(this._position=e,this.domNode.style.position=this._position)}setVisibility(e){this._visibility!==e&&(this._visibility=e,this.domNode.style.visibility=this._visibility)}setColor(e){this._color!==e&&(this._color=e,this.domNode.style.color=this._color)}setBackgroundColor(e){this._backgroundColor!==e&&(this._backgroundColor=e,this.domNode.style.backgroundColor=this._backgroundColor)}setLayerHinting(e){this._layerHint!==e&&(this._layerHint=e,this.domNode.style.transform=this._layerHint?`translate3d(0px, 0px, 0px)`:``)}setBoxShadow(e){this._boxShadow!==e&&(this._boxShadow=e,this.domNode.style.boxShadow=e)}setContain(e){this._contain!==e&&(this._contain=e,this.domNode.style.contain=this._contain)}setAttribute(e,t){this.domNode.setAttribute(e,t)}removeAttribute(e){this.domNode.removeAttribute(e)}appendChild(e){this.domNode.appendChild(e.domNode)}removeChild(e){this.domNode.removeChild(e.domNode)}};function ci(e){return typeof e==`number`?`${e}px`:e}function li(e){return new si(e)}var ui=class{constructor(){this._hooks=new Jt,this._pointerMoveCallback=null,this._onStopCallback=null}dispose(){this.stopMonitoring(!1),this._hooks.dispose()}stopMonitoring(e,t){if(!this.isMonitoring())return;this._hooks.clear(),this._pointerMoveCallback=null;let n=this._onStopCallback;this._onStopCallback=null,e&&n&&n(t)}isMonitoring(){return!!this._pointerMoveCallback}startMonitoring(e,t,n,r,i){this.isMonitoring()&&this.stopMonitoring(!1),this._pointerMoveCallback=r,this._onStopCallback=i;let a=e;try{e.setPointerCapture(t),this._hooks.add(j(()=>{try{e.releasePointerCapture(t)}catch{}}))}catch{a=zr(e)}this._hooks.add(I(a,L.POINTER_MOVE,e=>{if(e.buttons!==n){this.stopMonitoring(!0);return}e.preventDefault(),this._pointerMoveCallback(e)})),this._hooks.add(I(a,L.POINTER_UP,e=>this.stopMonitoring(!0)))}};function di(e,t,n){let r=null,i=null;if(typeof n.value==`function`?(r=`value`,i=n.value,i.length!==0&&console.warn(`Memoize should only be used in functions with zero parameters`)):typeof n.get==`function`&&(r=`get`,i=n.get),!i)throw Error(`not supported`);let a=`$memoize$${t}`;n[r]=function(...e){return this.hasOwnProperty(a)||Object.defineProperty(this,a,{configurable:!1,enumerable:!1,writable:!1,value:i.apply(this,e)}),this[a]}}var fi;(e=>(e.Tap=`-xterm-gesturetap`,e.Change=`-xterm-gesturechange`,e.Start=`-xterm-gesturestart`,e.End=`-xterm-gesturesend`,e.Contextmenu=`-xterm-gesturecontextmenu`))(fi||={});var pi=class e extends M{constructor(){super(),this.dispatched=!1,this.targets=new Qt,this.ignoreTargets=new Qt,this.activeTouches={},this.handle=null,this._lastSetTapCountTime=0,this._register(P.runAndSubscribe(Kr,({window:e,disposables:t})=>{t.add(I(e.document,`touchstart`,e=>this.onTouchStart(e),{passive:!1})),t.add(I(e.document,`touchend`,t=>this.onTouchEnd(e,t))),t.add(I(e.document,`touchmove`,e=>this.onTouchMove(e),{passive:!1}))},{window:Xt,disposables:this._store}))}static addTarget(t){return e.isTouchDevice()?(e.INSTANCE||=Wt(new e),j(e.INSTANCE.targets.push(t))):M.None}static ignoreTarget(t){return e.isTouchDevice()?(e.INSTANCE||=Wt(new e),j(e.INSTANCE.ignoreTargets.push(t))):M.None}static isTouchDevice(){return`ontouchstart`in Xt||navigator.maxTouchPoints>0}dispose(){this.handle&&=(this.handle.dispose(),null),super.dispose()}onTouchStart(e){let t=Date.now();this.handle&&=(this.handle.dispose(),null);for(let n=0,r=e.targetTouches.length;n=e.HOLD_DELAY&&Math.abs(s.initialPageX-Dt(s.rollingPageX))<30&&Math.abs(s.initialPageY-Dt(s.rollingPageY))<30){let e=this.newGestureEvent(fi.Contextmenu,s.initialTarget);e.pageX=Dt(s.rollingPageX),e.pageY=Dt(s.rollingPageY),this.dispatchEvent(e)}else if(i===1){let e=Dt(s.rollingPageX),n=Dt(s.rollingPageY),i=Dt(s.rollingTimestamps)-s.rollingTimestamps[0],a=e-s.rollingPageX[0],o=n-s.rollingPageY[0],c=[...this.targets].filter(e=>s.initialTarget instanceof Node&&e.contains(s.initialTarget));this.inertia(t,c,r,Math.abs(a)/i,a>0?1:-1,e,Math.abs(o)/i,o>0?1:-1,n)}this.dispatchEvent(this.newGestureEvent(fi.End,s.initialTarget)),delete this.activeTouches[o.identifier]}this.dispatched&&=(n.preventDefault(),n.stopPropagation(),!1)}newGestureEvent(e,t){let n=document.createEvent(`CustomEvent`);return n.initEvent(e,!1,!0),n.initialTarget=t,n.tapCount=0,n}dispatchEvent(t){if(t.type===fi.Tap){let n=new Date().getTime(),r=0;r=n-this._lastSetTapCountTime>e.CLEAR_TAP_COUNT_TIME?1:2,this._lastSetTapCountTime=n,t.tapCount=r}else (t.type===fi.Change||t.type===fi.Contextmenu)&&(this._lastSetTapCountTime=0);if(t.initialTarget instanceof Node){for(let e of this.ignoreTargets)if(e.contains(t.initialTarget))return;let e=[];for(let n of this.targets)if(n.contains(t.initialTarget)){let r=0,i=t.initialTarget;for(;i&&i!==n;)r++,i=i.parentElement;e.push([r,n])}e.sort((e,t)=>e[0]-t[0]);for(let[n,r]of e)r.dispatchEvent(t),this.dispatched=!0}}inertia(t,n,r,i,a,o,s,c,l){this.handle=$r(t,()=>{let u=Date.now(),d=u-r,f=0,p=0,m=!0;i+=e.SCROLL_FRICTION*d,s+=e.SCROLL_FRICTION*d,i>0&&(m=!1,f=a*i*d),s>0&&(m=!1,p=c*s*d);let h=this.newGestureEvent(fi.Change);h.translationX=f,h.translationY=p,n.forEach(e=>e.dispatchEvent(h)),m||this.inertia(t,n,u,i,a,o+f,s,c,l+p)})}onTouchMove(e){let t=Date.now();for(let n=0,r=e.changedTouches.length;n3&&(i.rollingPageX.shift(),i.rollingPageY.shift(),i.rollingTimestamps.shift()),i.rollingPageX.push(r.pageX),i.rollingPageY.push(r.pageY),i.rollingTimestamps.push(t)}this.dispatched&&=(e.preventDefault(),e.stopPropagation(),!1)}};pi.SCROLL_FRICTION=-.005,pi.HOLD_DELAY=700,pi.CLEAR_TAP_COUNT_TIME=400,D([di],pi,`isTouchDevice`,1);var mi=pi,hi=class extends M{onclick(e,t){this._register(I(e,L.CLICK,n=>t(new mr(zr(e),n))))}onmousedown(e,t){this._register(I(e,L.MOUSE_DOWN,n=>t(new mr(zr(e),n))))}onmouseover(e,t){this._register(I(e,L.MOUSE_OVER,n=>t(new mr(zr(e),n))))}onmouseleave(e,t){this._register(I(e,L.MOUSE_LEAVE,n=>t(new mr(zr(e),n))))}onkeydown(e,t){this._register(I(e,L.KEY_DOWN,e=>t(new ur(e))))}onkeyup(e,t){this._register(I(e,L.KEY_UP,e=>t(new ur(e))))}oninput(e,t){this._register(I(e,L.INPUT,t))}onblur(e,t){this._register(I(e,L.BLUR,t))}onfocus(e,t){this._register(I(e,L.FOCUS,t))}onchange(e,t){this._register(I(e,L.CHANGE,t))}ignoreGesture(e){return mi.ignoreTarget(e)}},gi=11,_i=class extends hi{constructor(e){super(),this._onActivate=e.onActivate,this.bgDomNode=document.createElement(`div`),this.bgDomNode.className=`arrow-background`,this.bgDomNode.style.position=`absolute`,this.bgDomNode.style.width=e.bgWidth+`px`,this.bgDomNode.style.height=e.bgHeight+`px`,typeof e.top<`u`&&(this.bgDomNode.style.top=`0px`),typeof e.left<`u`&&(this.bgDomNode.style.left=`0px`),typeof e.bottom<`u`&&(this.bgDomNode.style.bottom=`0px`),typeof e.right<`u`&&(this.bgDomNode.style.right=`0px`),this.domNode=document.createElement(`div`),this.domNode.className=e.className,this.domNode.style.position=`absolute`,this.domNode.style.width=gi+`px`,this.domNode.style.height=gi+`px`,typeof e.top<`u`&&(this.domNode.style.top=e.top+`px`),typeof e.left<`u`&&(this.domNode.style.left=e.left+`px`),typeof e.bottom<`u`&&(this.domNode.style.bottom=e.bottom+`px`),typeof e.right<`u`&&(this.domNode.style.right=e.right+`px`),this._pointerMoveMonitor=this._register(new ui),this._register(Qr(this.bgDomNode,L.POINTER_DOWN,e=>this._arrowPointerDown(e))),this._register(Qr(this.domNode,L.POINTER_DOWN,e=>this._arrowPointerDown(e))),this._pointerdownRepeatTimer=this._register(new ei),this._pointerdownScheduleRepeatTimer=this._register(new yr)}_arrowPointerDown(e){!e.target||!(e.target instanceof Element)||(this._onActivate(),this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancelAndSet(()=>{this._pointerdownRepeatTimer.cancelAndSet(()=>this._onActivate(),1e3/24,zr(e))},200),this._pointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,e=>{},()=>{this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancel()}),e.preventDefault())}},vi=class e{constructor(e,t,n,r,i,a,o){this._forceIntegerValues=e,this._scrollStateBrand=void 0,this._forceIntegerValues&&(t|=0,n|=0,r|=0,i|=0,a|=0,o|=0),this.rawScrollLeft=r,this.rawScrollTop=o,t<0&&(t=0),r+t>n&&(r=n-t),r<0&&(r=0),i<0&&(i=0),o+i>a&&(o=a-i),o<0&&(o=0),this.width=t,this.scrollWidth=n,this.scrollLeft=r,this.height=i,this.scrollHeight=a,this.scrollTop=o}equals(e){return this.rawScrollLeft===e.rawScrollLeft&&this.rawScrollTop===e.rawScrollTop&&this.width===e.width&&this.scrollWidth===e.scrollWidth&&this.scrollLeft===e.scrollLeft&&this.height===e.height&&this.scrollHeight===e.scrollHeight&&this.scrollTop===e.scrollTop}withScrollDimensions(t,n){return new e(this._forceIntegerValues,typeof t.width<`u`?t.width:this.width,typeof t.scrollWidth<`u`?t.scrollWidth:this.scrollWidth,n?this.rawScrollLeft:this.scrollLeft,typeof t.height<`u`?t.height:this.height,typeof t.scrollHeight<`u`?t.scrollHeight:this.scrollHeight,n?this.rawScrollTop:this.scrollTop)}withScrollPosition(t){return new e(this._forceIntegerValues,this.width,this.scrollWidth,typeof t.scrollLeft<`u`?t.scrollLeft:this.rawScrollLeft,this.height,this.scrollHeight,typeof t.scrollTop<`u`?t.scrollTop:this.rawScrollTop)}createScrollEvent(e,t){let n=this.width!==e.width,r=this.scrollWidth!==e.scrollWidth,i=this.scrollLeft!==e.scrollLeft,a=this.height!==e.height,o=this.scrollHeight!==e.scrollHeight,s=this.scrollTop!==e.scrollTop;return{inSmoothScrolling:t,oldWidth:e.width,oldScrollWidth:e.scrollWidth,oldScrollLeft:e.scrollLeft,width:this.width,scrollWidth:this.scrollWidth,scrollLeft:this.scrollLeft,oldHeight:e.height,oldScrollHeight:e.scrollHeight,oldScrollTop:e.scrollTop,height:this.height,scrollHeight:this.scrollHeight,scrollTop:this.scrollTop,widthChanged:n,scrollWidthChanged:r,scrollLeftChanged:i,heightChanged:a,scrollHeightChanged:o,scrollTopChanged:s}}},yi=class extends M{constructor(e){super(),this._scrollableBrand=void 0,this._onScroll=this._register(new F),this.onScroll=this._onScroll.event,this._smoothScrollDuration=e.smoothScrollDuration,this._scheduleAtNextAnimationFrame=e.scheduleAtNextAnimationFrame,this._state=new vi(e.forceIntegerValues,0,0,0,0,0,0),this._smoothScrolling=null}dispose(){this._smoothScrolling&&=(this._smoothScrolling.dispose(),null),super.dispose()}setSmoothScrollDuration(e){this._smoothScrollDuration=e}validateScrollPosition(e){return this._state.withScrollPosition(e)}getScrollDimensions(){return this._state}setScrollDimensions(e,t){let n=this._state.withScrollDimensions(e,t);this._setState(n,!!this._smoothScrolling),this._smoothScrolling?.acceptScrollDimensions(this._state)}getFutureScrollPosition(){return this._smoothScrolling?this._smoothScrolling.to:this._state}getCurrentScrollPosition(){return this._state}setScrollPositionNow(e){let t=this._state.withScrollPosition(e);this._smoothScrolling&&=(this._smoothScrolling.dispose(),null),this._setState(t,!1)}setScrollPositionSmooth(e,t){if(this._smoothScrollDuration===0)return this.setScrollPositionNow(e);if(this._smoothScrolling){e={scrollLeft:typeof e.scrollLeft>`u`?this._smoothScrolling.to.scrollLeft:e.scrollLeft,scrollTop:typeof e.scrollTop>`u`?this._smoothScrolling.to.scrollTop:e.scrollTop};let n=this._state.withScrollPosition(e);if(this._smoothScrolling.to.scrollLeft===n.scrollLeft&&this._smoothScrolling.to.scrollTop===n.scrollTop)return;let r;r=t?new Ci(this._smoothScrolling.from,n,this._smoothScrolling.startTime,this._smoothScrolling.duration):this._smoothScrolling.combine(this._state,n,this._smoothScrollDuration),this._smoothScrolling.dispose(),this._smoothScrolling=r}else{let t=this._state.withScrollPosition(e);this._smoothScrolling=Ci.start(this._state,t,this._smoothScrollDuration)}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame(()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())})}hasPendingScrollAnimation(){return!!this._smoothScrolling}_performSmoothScrolling(){if(!this._smoothScrolling)return;let e=this._smoothScrolling.tick(),t=this._state.withScrollPosition(e);if(this._setState(t,!0),this._smoothScrolling){if(e.isDone){this._smoothScrolling.dispose(),this._smoothScrolling=null;return}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame(()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())})}}_setState(e,t){let n=this._state;n.equals(e)||(this._state=e,this._onScroll.fire(this._state.createScrollEvent(n,t)))}},bi=class{constructor(e,t,n){this.scrollLeft=e,this.scrollTop=t,this.isDone=n}};function xi(e,t){let n=t-e;return function(t){return e+n*Ti(t)}}function Si(e,t,n){return function(r){return r2.5*n){let r,i;return e{this._domNode?.setClassName(this._visibleClassName)},0))}_hide(e){this._revealTimer.cancel(),this._isVisible&&(this._isVisible=!1,this._domNode?.setClassName(this._invisibleClassName+(e?` fade`:``)))}},Di=140,Oi=class extends hi{constructor(e){super(),this._lazyRender=e.lazyRender,this._host=e.host,this._scrollable=e.scrollable,this._scrollByPage=e.scrollByPage,this._scrollbarState=e.scrollbarState,this._visibilityController=this._register(new Ei(e.visibility,`visible scrollbar `+e.extraScrollbarClassName,`invisible scrollbar `+e.extraScrollbarClassName)),this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._pointerMoveMonitor=this._register(new ui),this._shouldRender=!0,this.domNode=li(document.createElement(`div`)),this.domNode.setAttribute(`role`,`presentation`),this.domNode.setAttribute(`aria-hidden`,`true`),this._visibilityController.setDomNode(this.domNode),this.domNode.setPosition(`absolute`),this._register(I(this.domNode.domNode,L.POINTER_DOWN,e=>this._domNodePointerDown(e)))}_createArrow(e){let t=this._register(new _i(e));this.domNode.domNode.appendChild(t.bgDomNode),this.domNode.domNode.appendChild(t.domNode)}_createSlider(e,t,n,r){this.slider=li(document.createElement(`div`)),this.slider.setClassName(`slider`),this.slider.setPosition(`absolute`),this.slider.setTop(e),this.slider.setLeft(t),typeof n==`number`&&this.slider.setWidth(n),typeof r==`number`&&this.slider.setHeight(r),this.slider.setLayerHinting(!0),this.slider.setContain(`strict`),this.domNode.domNode.appendChild(this.slider.domNode),this._register(I(this.slider.domNode,L.POINTER_DOWN,e=>{e.button===0&&(e.preventDefault(),this._sliderPointerDown(e))})),this.onclick(this.slider.domNode,e=>{e.leftButton&&e.stopPropagation()})}_onElementSize(e){return this._scrollbarState.setVisibleSize(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollSize(e){return this._scrollbarState.setScrollSize(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollPosition(e){return this._scrollbarState.setScrollPosition(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}beginReveal(){this._visibilityController.setShouldBeVisible(!0)}beginHide(){this._visibilityController.setShouldBeVisible(!1)}render(){this._shouldRender&&(this._shouldRender=!1,this._renderDomNode(this._scrollbarState.getRectangleLargeSize(),this._scrollbarState.getRectangleSmallSize()),this._updateSlider(this._scrollbarState.getSliderSize(),this._scrollbarState.getArrowSize()+this._scrollbarState.getSliderPosition()))}_domNodePointerDown(e){e.target===this.domNode.domNode&&this._onPointerDown(e)}delegatePointerDown(e){let t=this.domNode.domNode.getClientRects()[0].top,n=t+this._scrollbarState.getSliderPosition(),r=t+this._scrollbarState.getSliderPosition()+this._scrollbarState.getSliderSize(),i=this._sliderPointerPosition(e);n<=i&&i<=r?e.button===0&&(e.preventDefault(),this._sliderPointerDown(e)):this._onPointerDown(e)}_onPointerDown(e){let t,n;if(e.target===this.domNode.domNode&&typeof e.offsetX==`number`&&typeof e.offsetY==`number`)t=e.offsetX,n=e.offsetY;else{let r=ri(this.domNode.domNode);t=e.pageX-r.left,n=e.pageY-r.top}let r=this._pointerDownRelativePosition(t,n);this._setDesiredScrollPositionNow(this._scrollByPage?this._scrollbarState.getDesiredScrollPositionFromOffsetPaged(r):this._scrollbarState.getDesiredScrollPositionFromOffset(r)),e.button===0&&(e.preventDefault(),this._sliderPointerDown(e))}_sliderPointerDown(e){if(!e.target||!(e.target instanceof Element))return;let t=this._sliderPointerPosition(e),n=this._sliderOrthogonalPointerPosition(e),r=this._scrollbarState.clone();this.slider.toggleClassName(`active`,!0),this._pointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,e=>{let i=this._sliderOrthogonalPointerPosition(e),a=Math.abs(i-n);if(Vn&&a>Di){this._setDesiredScrollPositionNow(r.getScrollPosition());return}let o=this._sliderPointerPosition(e)-t;this._setDesiredScrollPositionNow(r.getDesiredScrollPositionFromDelta(o))},()=>{this.slider.toggleClassName(`active`,!1),this._host.onDragEnd()}),this._host.onDragStart()}_setDesiredScrollPositionNow(e){let t={};this.writeScrollPosition(t,e),this._scrollable.setScrollPositionNow(t)}updateScrollbarSize(e){this._updateScrollbarSize(e),this._scrollbarState.setScrollbarSize(e),this._shouldRender=!0,this._lazyRender||this.render()}isNeeded(){return this._scrollbarState.isNeeded()}},ki=class e{constructor(e,t,n,r,i,a){this._scrollbarSize=Math.round(t),this._oppositeScrollbarSize=Math.round(n),this._arrowSize=Math.round(e),this._visibleSize=r,this._scrollSize=i,this._scrollPosition=a,this._computedAvailableSize=0,this._computedIsNeeded=!1,this._computedSliderSize=0,this._computedSliderRatio=0,this._computedSliderPosition=0,this._refreshComputedValues()}clone(){return new e(this._arrowSize,this._scrollbarSize,this._oppositeScrollbarSize,this._visibleSize,this._scrollSize,this._scrollPosition)}setVisibleSize(e){let t=Math.round(e);return this._visibleSize===t?!1:(this._visibleSize=t,this._refreshComputedValues(),!0)}setScrollSize(e){let t=Math.round(e);return this._scrollSize===t?!1:(this._scrollSize=t,this._refreshComputedValues(),!0)}setScrollPosition(e){let t=Math.round(e);return this._scrollPosition===t?!1:(this._scrollPosition=t,this._refreshComputedValues(),!0)}setScrollbarSize(e){this._scrollbarSize=Math.round(e)}setOppositeScrollbarSize(e){this._oppositeScrollbarSize=Math.round(e)}static _computeValues(e,t,n,r,i){let a=Math.max(0,n-e),o=Math.max(0,a-2*t),s=r>0&&r>n;if(!s)return{computedAvailableSize:Math.round(a),computedIsNeeded:s,computedSliderSize:Math.round(o),computedSliderRatio:0,computedSliderPosition:0};let c=Math.round(Math.max(20,Math.floor(n*o/r))),l=(o-c)/(r-n),u=i*l;return{computedAvailableSize:Math.round(a),computedIsNeeded:s,computedSliderSize:Math.round(c),computedSliderRatio:l,computedSliderPosition:Math.round(u)}}_refreshComputedValues(){let t=e._computeValues(this._oppositeScrollbarSize,this._arrowSize,this._visibleSize,this._scrollSize,this._scrollPosition);this._computedAvailableSize=t.computedAvailableSize,this._computedIsNeeded=t.computedIsNeeded,this._computedSliderSize=t.computedSliderSize,this._computedSliderRatio=t.computedSliderRatio,this._computedSliderPosition=t.computedSliderPosition}getArrowSize(){return this._arrowSize}getScrollPosition(){return this._scrollPosition}getRectangleLargeSize(){return this._computedAvailableSize}getRectangleSmallSize(){return this._scrollbarSize}isNeeded(){return this._computedIsNeeded}getSliderSize(){return this._computedSliderSize}getSliderPosition(){return this._computedSliderPosition}getDesiredScrollPositionFromOffset(e){if(!this._computedIsNeeded)return 0;let t=e-this._arrowSize-this._computedSliderSize/2;return Math.round(t/this._computedSliderRatio)}getDesiredScrollPositionFromOffsetPaged(e){if(!this._computedIsNeeded)return 0;let t=e-this._arrowSize,n=this._scrollPosition;return t0&&Math.abs(e.deltaY)>0)return 1;let n=.5;if((!this._isAlmostInt(e.deltaX)||!this._isAlmostInt(e.deltaY))&&(n+=.25),t){let r=Math.abs(e.deltaX),i=Math.abs(e.deltaY),a=Math.abs(t.deltaX),o=Math.abs(t.deltaY),s=Math.max(Math.min(r,a),1),c=Math.max(Math.min(i,o),1),l=Math.max(r,a),u=Math.max(i,o);l%s===0&&u%c===0&&(n-=.5)}return Math.min(Math.max(n,0),1)}_isAlmostInt(e){return Math.abs(Math.round(e)-e)<.01}};Ii.INSTANCE=new Ii;var Li=Ii,Ri=class extends hi{constructor(e,t,n){super(),this._onScroll=this._register(new F),this.onScroll=this._onScroll.event,this._onWillScroll=this._register(new F),this.onWillScroll=this._onWillScroll.event,this._options=Bi(t),this._scrollable=n,this._register(this._scrollable.onScroll(e=>{this._onWillScroll.fire(e),this._onDidScroll(e),this._onScroll.fire(e)}));let r={onMouseWheel:e=>this._onMouseWheel(e),onDragStart:()=>this._onDragStart(),onDragEnd:()=>this._onDragEnd()};this._verticalScrollbar=this._register(new ji(this._scrollable,this._options,r)),this._horizontalScrollbar=this._register(new Ai(this._scrollable,this._options,r)),this._domNode=document.createElement(`div`),this._domNode.className=`xterm-scrollable-element `+this._options.className,this._domNode.setAttribute(`role`,`presentation`),this._domNode.style.position=`relative`,this._domNode.appendChild(e),this._domNode.appendChild(this._horizontalScrollbar.domNode.domNode),this._domNode.appendChild(this._verticalScrollbar.domNode.domNode),this._options.useShadows?(this._leftShadowDomNode=li(document.createElement(`div`)),this._leftShadowDomNode.setClassName(`shadow`),this._domNode.appendChild(this._leftShadowDomNode.domNode),this._topShadowDomNode=li(document.createElement(`div`)),this._topShadowDomNode.setClassName(`shadow`),this._domNode.appendChild(this._topShadowDomNode.domNode),this._topLeftShadowDomNode=li(document.createElement(`div`)),this._topLeftShadowDomNode.setClassName(`shadow`),this._domNode.appendChild(this._topLeftShadowDomNode.domNode)):(this._leftShadowDomNode=null,this._topShadowDomNode=null,this._topLeftShadowDomNode=null),this._listenOnDomNode=this._options.listenOnDomNode||this._domNode,this._mouseWheelToDispose=[],this._setListeningToMouseWheel(this._options.handleMouseWheel),this.onmouseover(this._listenOnDomNode,e=>this._onMouseOver(e)),this.onmouseleave(this._listenOnDomNode,e=>this._onMouseLeave(e)),this._hideTimeout=this._register(new yr),this._isDragging=!1,this._mouseIsOver=!1,this._shouldRender=!0,this._revealOnScroll=!0}get options(){return this._options}dispose(){this._mouseWheelToDispose=Gt(this._mouseWheelToDispose),super.dispose()}getDomNode(){return this._domNode}getOverviewRulerLayoutInfo(){return{parent:this._domNode,insertBefore:this._verticalScrollbar.domNode.domNode}}delegateVerticalScrollbarPointerDown(e){this._verticalScrollbar.delegatePointerDown(e)}getScrollDimensions(){return this._scrollable.getScrollDimensions()}setScrollDimensions(e){this._scrollable.setScrollDimensions(e,!1)}updateClassName(e){this._options.className=e,Hn&&(this._options.className+=` mac`),this._domNode.className=`xterm-scrollable-element `+this._options.className}updateOptions(e){typeof e.handleMouseWheel<`u`&&(this._options.handleMouseWheel=e.handleMouseWheel,this._setListeningToMouseWheel(this._options.handleMouseWheel)),typeof e.mouseWheelScrollSensitivity<`u`&&(this._options.mouseWheelScrollSensitivity=e.mouseWheelScrollSensitivity),typeof e.fastScrollSensitivity<`u`&&(this._options.fastScrollSensitivity=e.fastScrollSensitivity),typeof e.scrollPredominantAxis<`u`&&(this._options.scrollPredominantAxis=e.scrollPredominantAxis),typeof e.horizontal<`u`&&(this._options.horizontal=e.horizontal),typeof e.vertical<`u`&&(this._options.vertical=e.vertical),typeof e.horizontalScrollbarSize<`u`&&(this._options.horizontalScrollbarSize=e.horizontalScrollbarSize),typeof e.verticalScrollbarSize<`u`&&(this._options.verticalScrollbarSize=e.verticalScrollbarSize),typeof e.scrollByPage<`u`&&(this._options.scrollByPage=e.scrollByPage),this._horizontalScrollbar.updateOptions(this._options),this._verticalScrollbar.updateOptions(this._options),this._options.lazyRender||this._render()}setRevealOnScroll(e){this._revealOnScroll=e}delegateScrollFromMouseWheelEvent(e){this._onMouseWheel(new hr(e))}_setListeningToMouseWheel(e){this._mouseWheelToDispose.length>0!==e&&(this._mouseWheelToDispose=Gt(this._mouseWheelToDispose),e)&&this._mouseWheelToDispose.push(I(this._listenOnDomNode,L.MOUSE_WHEEL,e=>{this._onMouseWheel(new hr(e))},{passive:!1}))}_onMouseWheel(e){if(e.browserEvent?.defaultPrevented)return;let t=Li.INSTANCE;Pi&&t.acceptStandardWheelEvent(e);let n=!1;if(e.deltaY||e.deltaX){let r=e.deltaY*this._options.mouseWheelScrollSensitivity,i=e.deltaX*this._options.mouseWheelScrollSensitivity;this._options.scrollPredominantAxis&&(this._options.scrollYToX&&i+r===0?i=r=0:Math.abs(r)>=Math.abs(i)?i=0:r=0),this._options.flipAxes&&([r,i]=[i,r]);let a=!Hn&&e.browserEvent&&e.browserEvent.shiftKey;(this._options.scrollYToX||a)&&!i&&(i=r,r=0),e.browserEvent&&e.browserEvent.altKey&&(i*=this._options.fastScrollSensitivity,r*=this._options.fastScrollSensitivity);let o=this._scrollable.getFutureScrollPosition(),s={};if(r){let e=Ni*r,t=o.scrollTop-(e<0?Math.floor(e):Math.ceil(e));this._verticalScrollbar.writeScrollPosition(s,t)}if(i){let e=Ni*i,t=o.scrollLeft-(e<0?Math.floor(e):Math.ceil(e));this._horizontalScrollbar.writeScrollPosition(s,t)}s=this._scrollable.validateScrollPosition(s),(o.scrollLeft!==s.scrollLeft||o.scrollTop!==s.scrollTop)&&(Pi&&this._options.mouseWheelSmoothScroll&&t.isPhysicalMouseWheel()?this._scrollable.setScrollPositionSmooth(s):this._scrollable.setScrollPositionNow(s),n=!0)}let r=n;!r&&this._options.alwaysConsumeMouseWheel&&(r=!0),!r&&this._options.consumeMouseWheelIfScrollbarIsNeeded&&(this._verticalScrollbar.isNeeded()||this._horizontalScrollbar.isNeeded())&&(r=!0),r&&(e.preventDefault(),e.stopPropagation())}_onDidScroll(e){this._shouldRender=this._horizontalScrollbar.onDidScroll(e)||this._shouldRender,this._shouldRender=this._verticalScrollbar.onDidScroll(e)||this._shouldRender,this._options.useShadows&&(this._shouldRender=!0),this._revealOnScroll&&this._reveal(),this._options.lazyRender||this._render()}renderNow(){if(!this._options.lazyRender)throw Error("Please use `lazyRender` together with `renderNow`!");this._render()}_render(){if(this._shouldRender&&(this._shouldRender=!1,this._horizontalScrollbar.render(),this._verticalScrollbar.render(),this._options.useShadows)){let e=this._scrollable.getCurrentScrollPosition(),t=e.scrollTop>0,n=e.scrollLeft>0,r=n?` left`:``,i=t?` top`:``,a=n||t?` top-left-corner`:``;this._leftShadowDomNode.setClassName(`shadow${r}`),this._topShadowDomNode.setClassName(`shadow${i}`),this._topLeftShadowDomNode.setClassName(`shadow${a}${i}${r}`)}}_onDragStart(){this._isDragging=!0,this._reveal()}_onDragEnd(){this._isDragging=!1,this._hide()}_onMouseLeave(e){this._mouseIsOver=!1,this._hide()}_onMouseOver(e){this._mouseIsOver=!0,this._reveal()}_reveal(){this._verticalScrollbar.beginReveal(),this._horizontalScrollbar.beginReveal(),this._scheduleHide()}_hide(){!this._mouseIsOver&&!this._isDragging&&(this._verticalScrollbar.beginHide(),this._horizontalScrollbar.beginHide())}_scheduleHide(){!this._mouseIsOver&&!this._isDragging&&this._hideTimeout.cancelAndSet(()=>this._hide(),Mi)}},zi=class extends Ri{constructor(e,t,n){super(e,t,n)}setScrollPosition(e){e.reuseAnimation?this._scrollable.setScrollPositionSmooth(e,e.reuseAnimation):this._scrollable.setScrollPositionNow(e)}getScrollPosition(){return this._scrollable.getCurrentScrollPosition()}};function Bi(e){let t={lazyRender:typeof e.lazyRender<`u`?e.lazyRender:!1,className:typeof e.className<`u`?e.className:``,useShadows:typeof e.useShadows<`u`?e.useShadows:!0,handleMouseWheel:typeof e.handleMouseWheel<`u`?e.handleMouseWheel:!0,flipAxes:typeof e.flipAxes<`u`?e.flipAxes:!1,consumeMouseWheelIfScrollbarIsNeeded:typeof e.consumeMouseWheelIfScrollbarIsNeeded<`u`?e.consumeMouseWheelIfScrollbarIsNeeded:!1,alwaysConsumeMouseWheel:typeof e.alwaysConsumeMouseWheel<`u`?e.alwaysConsumeMouseWheel:!1,scrollYToX:typeof e.scrollYToX<`u`?e.scrollYToX:!1,mouseWheelScrollSensitivity:typeof e.mouseWheelScrollSensitivity<`u`?e.mouseWheelScrollSensitivity:1,fastScrollSensitivity:typeof e.fastScrollSensitivity<`u`?e.fastScrollSensitivity:5,scrollPredominantAxis:typeof e.scrollPredominantAxis<`u`?e.scrollPredominantAxis:!0,mouseWheelSmoothScroll:typeof e.mouseWheelSmoothScroll<`u`?e.mouseWheelSmoothScroll:!0,arrowSize:typeof e.arrowSize<`u`?e.arrowSize:11,listenOnDomNode:typeof e.listenOnDomNode<`u`?e.listenOnDomNode:null,horizontal:typeof e.horizontal<`u`?e.horizontal:1,horizontalScrollbarSize:typeof e.horizontalScrollbarSize<`u`?e.horizontalScrollbarSize:10,horizontalSliderSize:typeof e.horizontalSliderSize<`u`?e.horizontalSliderSize:0,horizontalHasArrows:typeof e.horizontalHasArrows<`u`?e.horizontalHasArrows:!1,vertical:typeof e.vertical<`u`?e.vertical:1,verticalScrollbarSize:typeof e.verticalScrollbarSize<`u`?e.verticalScrollbarSize:10,verticalHasArrows:typeof e.verticalHasArrows<`u`?e.verticalHasArrows:!1,verticalSliderSize:typeof e.verticalSliderSize<`u`?e.verticalSliderSize:0,scrollByPage:typeof e.scrollByPage<`u`?e.scrollByPage:!1};return t.horizontalSliderSize=typeof e.horizontalSliderSize<`u`?e.horizontalSliderSize:t.horizontalScrollbarSize,t.verticalSliderSize=typeof e.verticalSliderSize<`u`?e.verticalSliderSize:t.verticalScrollbarSize,Hn&&(t.className+=` mac`),t}var Vi=class extends M{constructor(e,t,n,r,i,a,o,s){super(),this._bufferService=n,this._optionsService=o,this._renderService=s,this._onRequestScrollLines=this._register(new F),this.onRequestScrollLines=this._onRequestScrollLines.event,this._isSyncing=!1,this._isHandlingScroll=!1,this._suppressOnScrollHandler=!1;let c=this._register(new yi({forceIntegerValues:!1,smoothScrollDuration:this._optionsService.rawOptions.smoothScrollDuration,scheduleAtNextAnimationFrame:e=>$r(r.window,e)}));this._register(this._optionsService.onSpecificOptionChange(`smoothScrollDuration`,()=>{c.setSmoothScrollDuration(this._optionsService.rawOptions.smoothScrollDuration)})),this._scrollableElement=this._register(new zi(t,{vertical:1,horizontal:2,useShadows:!1,mouseWheelSmoothScroll:!0,...this._getChangeOptions()},c)),this._register(this._optionsService.onMultipleOptionChange([`scrollSensitivity`,`fastScrollSensitivity`,`overviewRuler`],()=>this._scrollableElement.updateOptions(this._getChangeOptions()))),this._register(i.onProtocolChange(e=>{this._scrollableElement.updateOptions({handleMouseWheel:!(e&16)})})),this._scrollableElement.setScrollDimensions({height:0,scrollHeight:0}),this._register(P.runAndSubscribe(a.onChangeColors,()=>{this._scrollableElement.getDomNode().style.backgroundColor=a.colors.background.css})),e.appendChild(this._scrollableElement.getDomNode()),this._register(j(()=>this._scrollableElement.getDomNode().remove())),this._styleElement=r.mainDocument.createElement(`style`),t.appendChild(this._styleElement),this._register(j(()=>this._styleElement.remove())),this._register(P.runAndSubscribe(a.onChangeColors,()=>{this._styleElement.textContent=[`.xterm .xterm-scrollable-element > .scrollbar > .slider {`,` background: ${a.colors.scrollbarSliderBackground.css};`,`}`,`.xterm .xterm-scrollable-element > .scrollbar > .slider:hover {`,` background: ${a.colors.scrollbarSliderHoverBackground.css};`,`}`,`.xterm .xterm-scrollable-element > .scrollbar > .slider.active {`,` background: ${a.colors.scrollbarSliderActiveBackground.css};`,`}`].join(` +`)})),this._register(this._bufferService.onResize(()=>this.queueSync())),this._register(this._bufferService.buffers.onBufferActivate(()=>{this._latestYDisp=void 0,this.queueSync()})),this._register(this._bufferService.onScroll(()=>this._sync())),this._register(this._scrollableElement.onScroll(e=>this._handleScroll(e)))}scrollLines(e){let t=this._scrollableElement.getScrollPosition();this._scrollableElement.setScrollPosition({reuseAnimation:!0,scrollTop:t.scrollTop+e*this._renderService.dimensions.css.cell.height})}scrollToLine(e,t){t&&(this._latestYDisp=e),this._scrollableElement.setScrollPosition({reuseAnimation:!t,scrollTop:e*this._renderService.dimensions.css.cell.height})}_getChangeOptions(){return{mouseWheelScrollSensitivity:this._optionsService.rawOptions.scrollSensitivity,fastScrollSensitivity:this._optionsService.rawOptions.fastScrollSensitivity,verticalScrollbarSize:this._optionsService.rawOptions.overviewRuler?.width||14}}queueSync(e){e!==void 0&&(this._latestYDisp=e),this._queuedAnimationFrame===void 0&&(this._queuedAnimationFrame=this._renderService.addRefreshCallback(()=>{this._queuedAnimationFrame=void 0,this._sync(this._latestYDisp)}))}_sync(e=this._bufferService.buffer.ydisp){!this._renderService||this._isSyncing||(this._isSyncing=!0,this._suppressOnScrollHandler=!0,this._scrollableElement.setScrollDimensions({height:this._renderService.dimensions.css.canvas.height,scrollHeight:this._renderService.dimensions.css.cell.height*this._bufferService.buffer.lines.length}),this._suppressOnScrollHandler=!1,e!==this._latestYDisp&&this._scrollableElement.setScrollPosition({scrollTop:e*this._renderService.dimensions.css.cell.height}),this._isSyncing=!1)}_handleScroll(e){if(!this._renderService||this._isHandlingScroll||this._suppressOnScrollHandler)return;this._isHandlingScroll=!0;let t=Math.round(e.scrollTop/this._renderService.dimensions.css.cell.height),n=t-this._bufferService.buffer.ydisp;n!==0&&(this._latestYDisp=t,this._onRequestScrollLines.fire(n)),this._isHandlingScroll=!1}};Vi=D([O(2,A),O(3,ut),O(4,Qe),O(5,ht),O(6,rt),O(7,ft)],Vi);var Hi=class extends M{constructor(e,t,n,r,i){super(),this._screenElement=e,this._bufferService=t,this._coreBrowserService=n,this._decorationService=r,this._renderService=i,this._decorationElements=new Map,this._altBufferIsActive=!1,this._dimensionsChanged=!1,this._container=document.createElement(`div`),this._container.classList.add(`xterm-decoration-container`),this._screenElement.appendChild(this._container),this._register(this._renderService.onRenderedViewportChange(()=>this._doRefreshDecorations())),this._register(this._renderService.onDimensionsChange(()=>{this._dimensionsChanged=!0,this._queueRefresh()})),this._register(this._coreBrowserService.onDprChange(()=>this._queueRefresh())),this._register(this._bufferService.buffers.onBufferActivate(()=>{this._altBufferIsActive=this._bufferService.buffer===this._bufferService.buffers.alt})),this._register(this._decorationService.onDecorationRegistered(()=>this._queueRefresh())),this._register(this._decorationService.onDecorationRemoved(e=>this._removeDecoration(e))),this._register(j(()=>{this._container.remove(),this._decorationElements.clear()}))}_queueRefresh(){this._animationFrame===void 0&&(this._animationFrame=this._renderService.addRefreshCallback(()=>{this._doRefreshDecorations(),this._animationFrame=void 0}))}_doRefreshDecorations(){for(let e of this._decorationService.decorations)this._renderDecoration(e);this._dimensionsChanged=!1}_renderDecoration(e){this._refreshStyle(e),this._dimensionsChanged&&this._refreshXPosition(e)}_createElement(e){let t=this._coreBrowserService.mainDocument.createElement(`div`);t.classList.add(`xterm-decoration`),t.classList.toggle(`xterm-decoration-top-layer`,e?.options?.layer===`top`),t.style.width=`${Math.round((e.options.width||1)*this._renderService.dimensions.css.cell.width)}px`,t.style.height=`${(e.options.height||1)*this._renderService.dimensions.css.cell.height}px`,t.style.top=`${(e.marker.line-this._bufferService.buffers.active.ydisp)*this._renderService.dimensions.css.cell.height}px`,t.style.lineHeight=`${this._renderService.dimensions.css.cell.height}px`;let n=e.options.x??0;return n&&n>this._bufferService.cols&&(t.style.display=`none`),this._refreshXPosition(e,t),t}_refreshStyle(e){let t=e.marker.line-this._bufferService.buffers.active.ydisp;if(t<0||t>=this._bufferService.rows)e.element&&(e.element.style.display=`none`,e.onRenderEmitter.fire(e.element));else{let n=this._decorationElements.get(e);n||(n=this._createElement(e),e.element=n,this._decorationElements.set(e,n),this._container.appendChild(n),e.onDispose(()=>{this._decorationElements.delete(e),n.remove()})),n.style.display=this._altBufferIsActive?`none`:`block`,this._altBufferIsActive||(n.style.width=`${Math.round((e.options.width||1)*this._renderService.dimensions.css.cell.width)}px`,n.style.height=`${(e.options.height||1)*this._renderService.dimensions.css.cell.height}px`,n.style.top=`${t*this._renderService.dimensions.css.cell.height}px`,n.style.lineHeight=`${this._renderService.dimensions.css.cell.height}px`),e.onRenderEmitter.fire(n)}}_refreshXPosition(e,t=e.element){if(!t)return;let n=e.options.x??0;(e.options.anchor||`left`)===`right`?t.style.right=n?`${n*this._renderService.dimensions.css.cell.width}px`:``:t.style.left=n?`${n*this._renderService.dimensions.css.cell.width}px`:``}_removeDecoration(e){this._decorationElements.get(e)?.remove(),this._decorationElements.delete(e),e.dispose()}};Hi=D([O(1,A),O(2,ut),O(3,ot),O(4,ft)],Hi);var Ui=class{constructor(){this._zones=[],this._zonePool=[],this._zonePoolIndex=0,this._linePadding={full:0,left:0,center:0,right:0}}get zones(){return this._zonePool.length=Math.min(this._zonePool.length,this._zones.length),this._zones}clear(){this._zones.length=0,this._zonePoolIndex=0}addDecoration(e){if(e.options.overviewRulerOptions){for(let t of this._zones)if(t.color===e.options.overviewRulerOptions.color&&t.position===e.options.overviewRulerOptions.position){if(this._lineIntersectsZone(t,e.marker.line))return;if(this._lineAdjacentToZone(t,e.marker.line,e.options.overviewRulerOptions.position)){this._addLineToZone(t,e.marker.line);return}}if(this._zonePoolIndex=e.startBufferLine&&t<=e.endBufferLine}_lineAdjacentToZone(e,t,n){return t>=e.startBufferLine-this._linePadding[n||`full`]&&t<=e.endBufferLine+this._linePadding[n||`full`]}_addLineToZone(e,t){e.startBufferLine=Math.min(e.startBufferLine,t),e.endBufferLine=Math.max(e.endBufferLine,t)}},Wi={full:0,left:0,center:0,right:0},Gi={full:0,left:0,center:0,right:0},Ki={full:0,left:0,center:0,right:0},qi=class extends M{constructor(e,t,n,r,i,a,o,s){super(),this._viewportElement=e,this._screenElement=t,this._bufferService=n,this._decorationService=r,this._renderService=i,this._optionsService=a,this._themeService=o,this._coreBrowserService=s,this._colorZoneStore=new Ui,this._shouldUpdateDimensions=!0,this._shouldUpdateAnchor=!0,this._lastKnownBufferLength=0,this._canvas=this._coreBrowserService.mainDocument.createElement(`canvas`),this._canvas.classList.add(`xterm-decoration-overview-ruler`),this._refreshCanvasDimensions(),this._viewportElement.parentElement?.insertBefore(this._canvas,this._viewportElement),this._register(j(()=>this._canvas?.remove()));let c=this._canvas.getContext(`2d`);if(c)this._ctx=c;else throw Error(`Ctx cannot be null`);this._register(this._decorationService.onDecorationRegistered(()=>this._queueRefresh(void 0,!0))),this._register(this._decorationService.onDecorationRemoved(()=>this._queueRefresh(void 0,!0))),this._register(this._renderService.onRenderedViewportChange(()=>this._queueRefresh())),this._register(this._bufferService.buffers.onBufferActivate(()=>{this._canvas.style.display=this._bufferService.buffer===this._bufferService.buffers.alt?`none`:`block`})),this._register(this._bufferService.onScroll(()=>{this._lastKnownBufferLength!==this._bufferService.buffers.normal.lines.length&&(this._refreshDrawHeightConstants(),this._refreshColorZonePadding())})),this._register(this._renderService.onRender(()=>{(!this._containerHeight||this._containerHeight!==this._screenElement.clientHeight)&&(this._queueRefresh(!0),this._containerHeight=this._screenElement.clientHeight)})),this._register(this._coreBrowserService.onDprChange(()=>this._queueRefresh(!0))),this._register(this._optionsService.onSpecificOptionChange(`overviewRuler`,()=>this._queueRefresh(!0))),this._register(this._themeService.onChangeColors(()=>this._queueRefresh())),this._queueRefresh(!0)}get _width(){return this._optionsService.options.overviewRuler?.width||0}_refreshDrawConstants(){let e=Math.floor((this._canvas.width-1)/3),t=Math.ceil((this._canvas.width-1)/3);Gi.full=this._canvas.width,Gi.left=e,Gi.center=t,Gi.right=e,this._refreshDrawHeightConstants(),Ki.full=1,Ki.left=1,Ki.center=1+Gi.left,Ki.right=1+Gi.left+Gi.center}_refreshDrawHeightConstants(){Wi.full=Math.round(2*this._coreBrowserService.dpr);let e=this._canvas.height/this._bufferService.buffer.lines.length,t=Math.round(Math.max(Math.min(e,12),6)*this._coreBrowserService.dpr);Wi.left=t,Wi.center=t,Wi.right=t}_refreshColorZonePadding(){this._colorZoneStore.setPadding({full:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*Wi.full),left:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*Wi.left),center:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*Wi.center),right:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*Wi.right)}),this._lastKnownBufferLength=this._bufferService.buffers.normal.lines.length}_refreshCanvasDimensions(){this._canvas.style.width=`${this._width}px`,this._canvas.width=Math.round(this._width*this._coreBrowserService.dpr),this._canvas.style.height=`${this._screenElement.clientHeight}px`,this._canvas.height=Math.round(this._screenElement.clientHeight*this._coreBrowserService.dpr),this._refreshDrawConstants(),this._refreshColorZonePadding()}_refreshDecorations(){this._shouldUpdateDimensions&&this._refreshCanvasDimensions(),this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height),this._colorZoneStore.clear();for(let e of this._decorationService.decorations)this._colorZoneStore.addDecoration(e);this._ctx.lineWidth=1,this._renderRulerOutline();let e=this._colorZoneStore.zones;for(let t of e)t.position!==`full`&&this._renderColorZone(t);for(let t of e)t.position===`full`&&this._renderColorZone(t);this._shouldUpdateDimensions=!1,this._shouldUpdateAnchor=!1}_renderRulerOutline(){this._ctx.fillStyle=this._themeService.colors.overviewRulerBorder.css,this._ctx.fillRect(0,0,1,this._canvas.height),this._optionsService.rawOptions.overviewRuler.showTopBorder&&this._ctx.fillRect(1,0,this._canvas.width-1,1),this._optionsService.rawOptions.overviewRuler.showBottomBorder&&this._ctx.fillRect(1,this._canvas.height-1,this._canvas.width-1,this._canvas.height)}_renderColorZone(e){this._ctx.fillStyle=e.color,this._ctx.fillRect(Ki[e.position||`full`],Math.round((this._canvas.height-1)*(e.startBufferLine/this._bufferService.buffers.active.lines.length)-Wi[e.position||`full`]/2),Gi[e.position||`full`],Math.round((this._canvas.height-1)*((e.endBufferLine-e.startBufferLine)/this._bufferService.buffers.active.lines.length)+Wi[e.position||`full`]))}_queueRefresh(e,t){this._shouldUpdateDimensions=e||this._shouldUpdateDimensions,this._shouldUpdateAnchor=t||this._shouldUpdateAnchor,this._animationFrame===void 0&&(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>{this._refreshDecorations(),this._animationFrame=void 0}))}};qi=D([O(2,A),O(3,ot),O(4,ft),O(5,rt),O(6,ht),O(7,ut)],qi);var R;(e=>(e.NUL=`\0`,e.SOH=``,e.STX=``,e.ETX=``,e.EOT=``,e.ENQ=``,e.ACK=``,e.BEL=`\x07`,e.BS=`\b`,e.HT=` `,e.LF=` +`,e.VT=`\v`,e.FF=`\f`,e.CR=`\r`,e.SO=``,e.SI=``,e.DLE=``,e.DC1=``,e.DC2=``,e.DC3=``,e.DC4=``,e.NAK=``,e.SYN=``,e.ETB=``,e.CAN=``,e.EM=``,e.SUB=``,e.ESC=`\x1B`,e.FS=``,e.GS=``,e.RS=``,e.US=``,e.SP=` `,e.DEL=``))(R||={});var Ji;(e=>(e.PAD=`€`,e.HOP=``,e.BPH=`‚`,e.NBH=`ƒ`,e.IND=`„`,e.NEL=`…`,e.SSA=`†`,e.ESA=`‡`,e.HTS=`ˆ`,e.HTJ=`‰`,e.VTS=`Š`,e.PLD=`‹`,e.PLU=`Œ`,e.RI=``,e.SS2=`Ž`,e.SS3=``,e.DCS=``,e.PU1=`‘`,e.PU2=`’`,e.STS=`“`,e.CCH=`”`,e.MW=`•`,e.SPA=`–`,e.EPA=`—`,e.SOS=`˜`,e.SGCI=`™`,e.SCI=`š`,e.CSI=`›`,e.ST=`œ`,e.OSC=``,e.PM=`ž`,e.APC=`Ÿ`))(Ji||={});var Yi;(e=>e.ST=`${R.ESC}\\`)(Yi||={});var Xi=class{constructor(e,t,n,r,i,a){this._textarea=e,this._compositionView=t,this._bufferService=n,this._optionsService=r,this._coreService=i,this._renderService=a,this._isComposing=!1,this._isSendingComposition=!1,this._compositionPosition={start:0,end:0},this._dataAlreadySent=``}get isComposing(){return this._isComposing}compositionstart(){this._isComposing=!0,this._compositionPosition.start=this._textarea.value.length,this._compositionView.textContent=``,this._dataAlreadySent=``,this._compositionView.classList.add(`active`)}compositionupdate(e){this._compositionView.textContent=e.data,this.updateCompositionElements(),setTimeout(()=>{this._compositionPosition.end=this._textarea.value.length},0)}compositionend(){this._finalizeComposition(!0)}keydown(e){if(this._isComposing||this._isSendingComposition){if(e.keyCode===20||e.keyCode===229||e.keyCode===16||e.keyCode===17||e.keyCode===18)return!1;this._finalizeComposition(!1)}return e.keyCode===229?(this._handleAnyTextareaChanges(),!1):!0}_finalizeComposition(e){if(this._compositionView.classList.remove(`active`),this._isComposing=!1,e){let e={start:this._compositionPosition.start,end:this._compositionPosition.end};this._isSendingComposition=!0,setTimeout(()=>{if(this._isSendingComposition){this._isSendingComposition=!1;let t;e.start+=this._dataAlreadySent.length,t=this._isComposing?this._textarea.value.substring(e.start,this._compositionPosition.start):this._textarea.value.substring(e.start),t.length>0&&this._coreService.triggerDataEvent(t,!0)}},0)}else{this._isSendingComposition=!1;let e=this._textarea.value.substring(this._compositionPosition.start,this._compositionPosition.end);this._coreService.triggerDataEvent(e,!0)}}_handleAnyTextareaChanges(){let e=this._textarea.value;setTimeout(()=>{if(!this._isComposing){let t=this._textarea.value,n=t.replace(e,``);this._dataAlreadySent=n,t.length>e.length?this._coreService.triggerDataEvent(n,!0):t.lengththis.updateCompositionElements(!0),0)}}};Xi=D([O(2,A),O(3,rt),O(4,$e),O(5,ft)],Xi);var z=0,B=0,V=0,H=0,Zi={css:`#00000000`,rgba:0},U;(e=>{function t(e,t,n,r){return r===void 0?`#${ea(e)}${ea(t)}${ea(n)}`:`#${ea(e)}${ea(t)}${ea(n)}${ea(r)}`}e.toCss=t;function n(e,t,n,r=255){return(e<<24|t<<16|n<<8|r)>>>0}e.toRgba=n;function r(t,n,r,i){return{css:e.toCss(t,n,r,i),rgba:e.toRgba(t,n,r,i)}}e.toColor=r})(U||={});var W;(e=>{function t(e,t){if(H=(t.rgba&255)/255,H===1)return{css:t.css,rgba:t.rgba};let n=t.rgba>>24&255,r=t.rgba>>16&255,i=t.rgba>>8&255,a=e.rgba>>24&255,o=e.rgba>>16&255,s=e.rgba>>8&255;return z=a+Math.round((n-a)*H),B=o+Math.round((r-o)*H),V=s+Math.round((i-s)*H),{css:U.toCss(z,B,V),rgba:U.toRgba(z,B,V)}}e.blend=t;function n(e){return(e.rgba&255)==255}e.isOpaque=n;function r(e,t,n){let r=$i.ensureContrastRatio(e.rgba,t.rgba,n);if(r)return U.toColor(r>>24&255,r>>16&255,r>>8&255)}e.ensureContrastRatio=r;function i(e){let t=(e.rgba|255)>>>0;return[z,B,V]=$i.toChannels(t),{css:U.toCss(z,B,V),rgba:t}}e.opaque=i;function a(e,t){return H=Math.round(t*255),[z,B,V]=$i.toChannels(e.rgba),{css:U.toCss(z,B,V,H),rgba:U.toRgba(z,B,V,H)}}e.opacity=a;function o(e,t){return H=e.rgba&255,a(e,H*t/255)}e.multiplyOpacity=o;function s(e){return[e.rgba>>24&255,e.rgba>>16&255,e.rgba>>8&255]}e.toColorRGB=s})(W||={});var G;(e=>{let t,n;try{let e=document.createElement(`canvas`);e.width=1,e.height=1;let r=e.getContext(`2d`,{willReadFrequently:!0});r&&(t=r,t.globalCompositeOperation=`copy`,n=t.createLinearGradient(0,0,1,1))}catch{}function r(e){if(e.match(/#[\da-f]{3,8}/i))switch(e.length){case 4:return z=parseInt(e.slice(1,2).repeat(2),16),B=parseInt(e.slice(2,3).repeat(2),16),V=parseInt(e.slice(3,4).repeat(2),16),U.toColor(z,B,V);case 5:return z=parseInt(e.slice(1,2).repeat(2),16),B=parseInt(e.slice(2,3).repeat(2),16),V=parseInt(e.slice(3,4).repeat(2),16),H=parseInt(e.slice(4,5).repeat(2),16),U.toColor(z,B,V,H);case 7:return{css:e,rgba:(parseInt(e.slice(1),16)<<8|255)>>>0};case 9:return{css:e,rgba:parseInt(e.slice(1),16)>>>0}}let r=e.match(/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(,\s*(0|1|\d?\.(\d+))\s*)?\)/);if(r)return z=parseInt(r[1]),B=parseInt(r[2]),V=parseInt(r[3]),H=Math.round((r[5]===void 0?1:parseFloat(r[5]))*255),U.toColor(z,B,V,H);if(!t||!n||(t.fillStyle=n,t.fillStyle=e,typeof t.fillStyle!=`string`)||(t.fillRect(0,0,1,1),[z,B,V,H]=t.getImageData(0,0,1,1).data,H!==255))throw Error(`css.toColor: Unsupported css format`);return{rgba:U.toRgba(z,B,V,H),css:e}}e.toColor=r})(G||={});var Qi;(e=>{function t(e){return n(e>>16&255,e>>8&255,e&255)}e.relativeLuminance=t;function n(e,t,n){let r=e/255,i=t/255,a=n/255,o=r<=.03928?r/12.92:((r+.055)/1.055)**2.4,s=i<=.03928?i/12.92:((i+.055)/1.055)**2.4,c=a<=.03928?a/12.92:((a+.055)/1.055)**2.4;return o*.2126+s*.7152+c*.0722}e.relativeLuminance2=n})(Qi||={});var $i;(e=>{function t(e,t){if(H=(t&255)/255,H===1)return t;let n=t>>24&255,r=t>>16&255,i=t>>8&255,a=e>>24&255,o=e>>16&255,s=e>>8&255;return z=a+Math.round((n-a)*H),B=o+Math.round((r-o)*H),V=s+Math.round((i-s)*H),U.toRgba(z,B,V)}e.blend=t;function n(e,t,n){let a=Qi.relativeLuminance(e>>8),o=Qi.relativeLuminance(t>>8);if(ta(a,o)>8));if(sta(a,Qi.relativeLuminance(r>>8))?o:r}return o}let s=i(e,t,n),c=ta(a,Qi.relativeLuminance(s>>8));if(cta(a,Qi.relativeLuminance(i>>8))?s:i}return s}}e.ensureContrastRatio=n;function r(e,t,n){let r=e>>24&255,i=e>>16&255,a=e>>8&255,o=t>>24&255,s=t>>16&255,c=t>>8&255,l=ta(Qi.relativeLuminance2(o,s,c),Qi.relativeLuminance2(r,i,a));for(;l0||s>0||c>0);)o-=Math.max(0,Math.ceil(o*.1)),s-=Math.max(0,Math.ceil(s*.1)),c-=Math.max(0,Math.ceil(c*.1)),l=ta(Qi.relativeLuminance2(o,s,c),Qi.relativeLuminance2(r,i,a));return(o<<24|s<<16|c<<8|255)>>>0}e.reduceLuminance=r;function i(e,t,n){let r=e>>24&255,i=e>>16&255,a=e>>8&255,o=t>>24&255,s=t>>16&255,c=t>>8&255,l=ta(Qi.relativeLuminance2(o,s,c),Qi.relativeLuminance2(r,i,a));for(;l>>0}e.increaseLuminance=i;function a(e){return[e>>24&255,e>>16&255,e>>8&255,e&255]}e.toChannels=a})($i||={});function ea(e){let t=e.toString(16);return t.length<2?`0`+t:t}function ta(e,t){return e1){let e=this._getJoinedRanges(r,o,a,t,i);for(let t=0;t1){let e=this._getJoinedRanges(r,o,a,t,i);for(let t=0;t=oe,se=S,T=this._workCell;if(f.length>0&&S===f[0][0]&&w){let r=f.shift(),i=this._isCellInSelection(r[0],t);for(ee=r[0]+1;ee=r[1],w?(C=!0,T=new na(this._workCell,e.translateToString(!0,r[0],r[1]),r[1]-r[0]),se=r[1]-1,m=T.getWidth()):oe=r[1]}let ce=this._isCellInSelection(S,t),le=n&&S===a,ue=x&&S>=l&&S<=u,de=!1;this._decorationService.forEachDecorationAtCell(S,t,void 0,e=>{de=!0});let fe=T.getChars()||Ue;if(fe===` `&&(T.isUnderline()||T.isOverline())&&(fe=`\xA0`),ae=m*s-c.get(fe,T.isBold(),T.isItalic()),!h)h=this._document.createElement(`span`);else if(g&&(ce&&y||!ce&&!y&&T.bg===te)&&(ce&&y&&p.selectionForeground||T.fg===v)&&T.extended.ext===ne&&ue===re&&ae===ie&&!le&&!C&&!de&&w){T.isInvisible()?_+=Ue:_+=fe,g++;continue}else g&&(h.textContent=_),h=this._document.createElement(`span`),g=0,_=``;if(te=T.bg,v=T.fg,ne=T.extended.ext,re=ue,ie=ae,y=ce,C&&a>=S&&a<=se&&(a=S),!this._coreService.isCursorHidden&&le&&this._coreService.isCursorInitialized){if(b.push(`xterm-cursor`),this._coreBrowserService.isFocused)o&&b.push(`xterm-cursor-blink`),b.push(r===`bar`?`xterm-cursor-bar`:r===`underline`?`xterm-cursor-underline`:`xterm-cursor-block`);else if(i)switch(i){case`outline`:b.push(`xterm-cursor-outline`);break;case`block`:b.push(`xterm-cursor-block`);break;case`bar`:b.push(`xterm-cursor-bar`);break;case`underline`:b.push(`xterm-cursor-underline`);break;default:break}}if(T.isBold()&&b.push(`xterm-bold`),T.isItalic()&&b.push(`xterm-italic`),T.isDim()&&b.push(`xterm-dim`),_=T.isInvisible()?Ue:T.getChars()||Ue,T.isUnderline()&&(b.push(`xterm-underline-${T.extended.underlineStyle}`),_===` `&&(_=`\xA0`),!T.isUnderlineColorDefault()))if(T.isUnderlineColorRGB())h.style.textDecorationColor=`rgb(${We.toColorRGB(T.getUnderlineColor()).join(`,`)})`;else{let e=T.getUnderlineColor();this._optionsService.rawOptions.drawBoldTextInBrightColors&&T.isBold()&&e<8&&(e+=8),h.style.textDecorationColor=p.ansi[e].css}T.isOverline()&&(b.push(`xterm-overline`),_===` `&&(_=`\xA0`)),T.isStrikethrough()&&b.push(`xterm-strikethrough`),ue&&(h.style.textDecoration=`underline`);let pe=T.getFgColor(),me=T.getFgColorMode(),he=T.getBgColor(),ge=T.getBgColorMode(),_e=!!T.isInverse();if(_e){let e=pe;pe=he,he=e;let t=me;me=ge,ge=t}let ve,ye,be=!1;this._decorationService.forEachDecorationAtCell(S,t,void 0,e=>{e.options.layer!==`top`&&be||(e.backgroundColorRGB&&(ge=50331648,he=e.backgroundColorRGB.rgba>>8&16777215,ve=e.backgroundColorRGB),e.foregroundColorRGB&&(me=50331648,pe=e.foregroundColorRGB.rgba>>8&16777215,ye=e.foregroundColorRGB),be=e.options.layer===`top`)}),!be&&ce&&(ve=this._coreBrowserService.isFocused?p.selectionBackgroundOpaque:p.selectionInactiveBackgroundOpaque,he=ve.rgba>>8&16777215,ge=50331648,be=!0,p.selectionForeground&&(me=50331648,pe=p.selectionForeground.rgba>>8&16777215,ye=p.selectionForeground)),be&&b.push(`xterm-decoration-top`);let E;switch(ge){case 16777216:case 33554432:E=p.ansi[he],b.push(`xterm-bg-${he}`);break;case 50331648:E=U.toColor(he>>16,he>>8&255,he&255),this._addStyle(h,`background-color:#${ua((he>>>0).toString(16),`0`,6)}`);break;default:_e?(E=p.foreground,b.push(`xterm-bg-257`)):E=p.background}switch(ve||T.isDim()&&(ve=W.multiplyOpacity(E,.5)),me){case 16777216:case 33554432:T.isBold()&&pe<8&&this._optionsService.rawOptions.drawBoldTextInBrightColors&&(pe+=8),this._applyMinimumContrast(h,E,p.ansi[pe],T,ve,void 0)||b.push(`xterm-fg-${pe}`);break;case 50331648:let e=U.toColor(pe>>16&255,pe>>8&255,pe&255);this._applyMinimumContrast(h,E,e,T,ve,ye)||this._addStyle(h,`color:#${ua(pe.toString(16),`0`,6)}`);break;default:this._applyMinimumContrast(h,E,p.foreground,T,ve,ye)||_e&&b.push(`xterm-fg-257`)}b.length&&=(h.className=b.join(` `),0),!le&&!C&&!de&&w?g++:h.textContent=_,ae!==this.defaultSpacing&&(h.style.letterSpacing=`${ae}px`),d.push(h),S=se}return h&&g&&(h.textContent=_),d}_applyMinimumContrast(e,t,n,r,i,a){if(this._optionsService.rawOptions.minimumContrastRatio===1||oa(r.getCode()))return!1;let o=this._getContrastCache(r),s;if(!i&&!a&&(s=o.getColor(t.rgba,n.rgba)),s===void 0){let e=this._optionsService.rawOptions.minimumContrastRatio/(r.isDim()?2:1);s=W.ensureContrastRatio(i||t,a||n,e),o.setColor((i||t).rgba,(a||n).rgba,s??null)}return s?(this._addStyle(e,`color:${s.css}`),!0):!1}_getContrastCache(e){return e.isDim()?this._themeService.colors.halfContrastCache:this._themeService.colors.contrastCache}_addStyle(e,t){e.setAttribute(`style`,`${e.getAttribute(`style`)||``}${t};`)}_isCellInSelection(e,t){let n=this._selectionStart,r=this._selectionEnd;return!n||!r?!1:this._columnSelectMode?n[0]<=r[0]?e>=n[0]&&t>=n[1]&&e=n[1]&&e>=r[0]&&t<=r[1]:t>n[1]&&t=n[0]&&e=n[0]}};la=D([O(1,mt),O(2,rt),O(3,ut),O(4,$e),O(5,ot),O(6,ht)],la);function ua(e,t,n){for(;e.length0&&(this._flat[r]=t),t}let i=e;t&&(i+=`B`),n&&(i+=`I`);let a=this._holey.get(i);if(a===void 0){let r=0;t&&(r|=1),n&&(r|=2),a=this._measure(e,r),a>0&&this._holey.set(i,a)}return a}_measure(e,t){let n=this._measureElements[t];return n.textContent=e.repeat(32),n.offsetWidth/32}},fa=class{constructor(){this.clear()}clear(){this.hasSelection=!1,this.columnSelectMode=!1,this.viewportStartRow=0,this.viewportEndRow=0,this.viewportCappedStartRow=0,this.viewportCappedEndRow=0,this.startCol=0,this.endCol=0,this.selectionStart=void 0,this.selectionEnd=void 0}update(e,t,n,r=!1){if(this.selectionStart=t,this.selectionEnd=n,!t||!n||t[0]===n[0]&&t[1]===n[1]){this.clear();return}let i=e.buffers.active.ydisp,a=t[1]-i,o=n[1]-i,s=Math.max(a,0),c=Math.min(o,e.rows-1);if(s>=e.rows||c<0){this.clear();return}this.hasSelection=!0,this.columnSelectMode=r,this.viewportStartRow=a,this.viewportEndRow=o,this.viewportCappedStartRow=s,this.viewportCappedEndRow=c,this.startCol=t[0],this.endCol=n[0]}isCellSelected(e,t,n){return this.hasSelection?(n-=e.buffer.active.viewportY,this.columnSelectMode?this.startCol<=this.endCol?t>=this.startCol&&n>=this.viewportCappedStartRow&&t=this.viewportCappedStartRow&&t>=this.endCol&&n<=this.viewportCappedEndRow:n>this.viewportStartRow&&n=this.startCol&&t=this.startCol):!1}};function pa(){return new fa}var ma=`xterm-dom-renderer-owner-`,ha=`xterm-rows`,ga=`xterm-fg-`,_a=`xterm-bg-`,va=`xterm-focus`,ya=`xterm-selection`,ba=1,xa=class extends M{constructor(e,t,n,r,i,a,o,s,c,l,u,d,f,p){super(),this._terminal=e,this._document=t,this._element=n,this._screenElement=r,this._viewportElement=i,this._helperContainer=a,this._linkifier2=o,this._charSizeService=c,this._optionsService=l,this._bufferService=u,this._coreService=d,this._coreBrowserService=f,this._themeService=p,this._terminalClass=ba++,this._rowElements=[],this._selectionRenderModel=pa(),this.onRequestRedraw=this._register(new F).event,this._rowContainer=this._document.createElement(`div`),this._rowContainer.classList.add(ha),this._rowContainer.style.lineHeight=`normal`,this._rowContainer.setAttribute(`aria-hidden`,`true`),this._refreshRowElements(this._bufferService.cols,this._bufferService.rows),this._selectionContainer=this._document.createElement(`div`),this._selectionContainer.classList.add(ya),this._selectionContainer.setAttribute(`aria-hidden`,`true`),this.dimensions=sa(),this._updateDimensions(),this._register(this._optionsService.onOptionChange(()=>this._handleOptionsChanged())),this._register(this._themeService.onChangeColors(e=>this._injectCss(e))),this._injectCss(this._themeService.colors),this._rowFactory=s.createInstance(la,document),this._element.classList.add(ma+this._terminalClass),this._screenElement.appendChild(this._rowContainer),this._screenElement.appendChild(this._selectionContainer),this._register(this._linkifier2.onShowLinkUnderline(e=>this._handleLinkHover(e))),this._register(this._linkifier2.onHideLinkUnderline(e=>this._handleLinkLeave(e))),this._register(j(()=>{this._element.classList.remove(ma+this._terminalClass),this._rowContainer.remove(),this._selectionContainer.remove(),this._widthCache.dispose(),this._themeStyleElement.remove(),this._dimensionsStyleElement.remove()})),this._widthCache=new da(this._document,this._helperContainer),this._widthCache.setFont(this._optionsService.rawOptions.fontFamily,this._optionsService.rawOptions.fontSize,this._optionsService.rawOptions.fontWeight,this._optionsService.rawOptions.fontWeightBold),this._setDefaultSpacing()}_updateDimensions(){let e=this._coreBrowserService.dpr;this.dimensions.device.char.width=this._charSizeService.width*e,this.dimensions.device.char.height=Math.ceil(this._charSizeService.height*e),this.dimensions.device.cell.width=this.dimensions.device.char.width+Math.round(this._optionsService.rawOptions.letterSpacing),this.dimensions.device.cell.height=Math.floor(this.dimensions.device.char.height*this._optionsService.rawOptions.lineHeight),this.dimensions.device.char.left=0,this.dimensions.device.char.top=0,this.dimensions.device.canvas.width=this.dimensions.device.cell.width*this._bufferService.cols,this.dimensions.device.canvas.height=this.dimensions.device.cell.height*this._bufferService.rows,this.dimensions.css.canvas.width=Math.round(this.dimensions.device.canvas.width/e),this.dimensions.css.canvas.height=Math.round(this.dimensions.device.canvas.height/e),this.dimensions.css.cell.width=this.dimensions.css.canvas.width/this._bufferService.cols,this.dimensions.css.cell.height=this.dimensions.css.canvas.height/this._bufferService.rows;for(let e of this._rowElements)e.style.width=`${this.dimensions.css.canvas.width}px`,e.style.height=`${this.dimensions.css.cell.height}px`,e.style.lineHeight=`${this.dimensions.css.cell.height}px`,e.style.overflow=`hidden`;this._dimensionsStyleElement||(this._dimensionsStyleElement=this._document.createElement(`style`),this._screenElement.appendChild(this._dimensionsStyleElement));let t=`${this._terminalSelector} .${ha} span { display: inline-block; height: 100%; vertical-align: top;}`;this._dimensionsStyleElement.textContent=t,this._selectionContainer.style.height=this._viewportElement.style.height,this._screenElement.style.width=`${this.dimensions.css.canvas.width}px`,this._screenElement.style.height=`${this.dimensions.css.canvas.height}px`}_injectCss(e){this._themeStyleElement||(this._themeStyleElement=this._document.createElement(`style`),this._screenElement.appendChild(this._themeStyleElement));let t=`${this._terminalSelector} .${ha} { pointer-events: none; color: ${e.foreground.css}; font-family: ${this._optionsService.rawOptions.fontFamily}; font-size: ${this._optionsService.rawOptions.fontSize}px; font-kerning: none; white-space: pre}`;t+=`${this._terminalSelector} .${ha} .xterm-dim { color: ${W.multiplyOpacity(e.foreground,.5).css};}`,t+=`${this._terminalSelector} span:not(.xterm-bold) { font-weight: ${this._optionsService.rawOptions.fontWeight};}${this._terminalSelector} span.xterm-bold { font-weight: ${this._optionsService.rawOptions.fontWeightBold};}${this._terminalSelector} span.xterm-italic { font-style: italic;}`;let n=`blink_underline_${this._terminalClass}`,r=`blink_bar_${this._terminalClass}`,i=`blink_block_${this._terminalClass}`;t+=`@keyframes ${n} { 50% { border-bottom-style: hidden; }}`,t+=`@keyframes ${r} { 50% { box-shadow: none; }}`,t+=`@keyframes ${i} { 0% { background-color: ${e.cursor.css}; color: ${e.cursorAccent.css}; } 50% { background-color: inherit; color: ${e.cursor.css}; }}`,t+=`${this._terminalSelector} .${ha}.${va} .xterm-cursor.xterm-cursor-blink.xterm-cursor-underline { animation: ${n} 1s step-end infinite;}${this._terminalSelector} .${ha}.${va} .xterm-cursor.xterm-cursor-blink.xterm-cursor-bar { animation: ${r} 1s step-end infinite;}${this._terminalSelector} .${ha}.${va} .xterm-cursor.xterm-cursor-blink.xterm-cursor-block { animation: ${i} 1s step-end infinite;}${this._terminalSelector} .${ha} .xterm-cursor.xterm-cursor-block { background-color: ${e.cursor.css}; color: ${e.cursorAccent.css};}${this._terminalSelector} .${ha} .xterm-cursor.xterm-cursor-block:not(.xterm-cursor-blink) { background-color: ${e.cursor.css} !important; color: ${e.cursorAccent.css} !important;}${this._terminalSelector} .${ha} .xterm-cursor.xterm-cursor-outline { outline: 1px solid ${e.cursor.css}; outline-offset: -1px;}${this._terminalSelector} .${ha} .xterm-cursor.xterm-cursor-bar { box-shadow: ${this._optionsService.rawOptions.cursorWidth}px 0 0 ${e.cursor.css} inset;}${this._terminalSelector} .${ha} .xterm-cursor.xterm-cursor-underline { border-bottom: 1px ${e.cursor.css}; border-bottom-style: solid; height: calc(100% - 1px);}`,t+=`${this._terminalSelector} .${ya} { position: absolute; top: 0; left: 0; z-index: 1; pointer-events: none;}${this._terminalSelector}.focus .${ya} div { position: absolute; background-color: ${e.selectionBackgroundOpaque.css};}${this._terminalSelector} .${ya} div { position: absolute; background-color: ${e.selectionInactiveBackgroundOpaque.css};}`;for(let[n,r]of e.ansi.entries())t+=`${this._terminalSelector} .${ga}${n} { color: ${r.css}; }${this._terminalSelector} .${ga}${n}.xterm-dim { color: ${W.multiplyOpacity(r,.5).css}; }${this._terminalSelector} .${_a}${n} { background-color: ${r.css}; }`;t+=`${this._terminalSelector} .${ga}257 { color: ${W.opaque(e.background).css}; }${this._terminalSelector} .${ga}257.xterm-dim { color: ${W.multiplyOpacity(W.opaque(e.background),.5).css}; }${this._terminalSelector} .${_a}257 { background-color: ${e.foreground.css}; }`,this._themeStyleElement.textContent=t}_setDefaultSpacing(){let e=this.dimensions.css.cell.width-this._widthCache.get(`W`,!1,!1);this._rowContainer.style.letterSpacing=`${e}px`,this._rowFactory.defaultSpacing=e}handleDevicePixelRatioChange(){this._updateDimensions(),this._widthCache.clear(),this._setDefaultSpacing()}_refreshRowElements(e,t){for(let e=this._rowElements.length;e<=t;e++){let e=this._document.createElement(`div`);this._rowContainer.appendChild(e),this._rowElements.push(e)}for(;this._rowElements.length>t;)this._rowContainer.removeChild(this._rowElements.pop())}handleResize(e,t){this._refreshRowElements(e,t),this._updateDimensions(),this.handleSelectionChanged(this._selectionRenderModel.selectionStart,this._selectionRenderModel.selectionEnd,this._selectionRenderModel.columnSelectMode)}handleCharSizeChanged(){this._updateDimensions(),this._widthCache.clear(),this._setDefaultSpacing()}handleBlur(){this._rowContainer.classList.remove(va),this.renderRows(0,this._bufferService.rows-1)}handleFocus(){this._rowContainer.classList.add(va),this.renderRows(this._bufferService.buffer.y,this._bufferService.buffer.y)}handleSelectionChanged(e,t,n){if(this._selectionContainer.replaceChildren(),this._rowFactory.handleSelectionChanged(e,t,n),this.renderRows(0,this._bufferService.rows-1),!e||!t||(this._selectionRenderModel.update(this._terminal,e,t,n),!this._selectionRenderModel.hasSelection))return;let r=this._selectionRenderModel.viewportStartRow,i=this._selectionRenderModel.viewportEndRow,a=this._selectionRenderModel.viewportCappedStartRow,o=this._selectionRenderModel.viewportCappedEndRow,s=this._document.createDocumentFragment();if(n){let n=e[0]>t[0];s.appendChild(this._createSelectionElement(a,n?t[0]:e[0],n?e[0]:t[0],o-a+1))}else{let n=r===a?e[0]:0,c=a===i?t[0]:this._bufferService.cols;s.appendChild(this._createSelectionElement(a,n,c));let l=o-a-1;if(s.appendChild(this._createSelectionElement(a+1,0,this._bufferService.cols,l)),a!==o){let e=i===o?t[0]:this._bufferService.cols;s.appendChild(this._createSelectionElement(o,0,e))}}this._selectionContainer.appendChild(s)}_createSelectionElement(e,t,n,r=1){let i=this._document.createElement(`div`),a=t*this.dimensions.css.cell.width,o=this.dimensions.css.cell.width*(n-t);return a+o>this.dimensions.css.canvas.width&&(o=this.dimensions.css.canvas.width-a),i.style.height=`${r*this.dimensions.css.cell.height}px`,i.style.top=`${e*this.dimensions.css.cell.height}px`,i.style.left=`${a}px`,i.style.width=`${o}px`,i}handleCursorMove(){}_handleOptionsChanged(){this._updateDimensions(),this._injectCss(this._themeService.colors),this._widthCache.setFont(this._optionsService.rawOptions.fontFamily,this._optionsService.rawOptions.fontSize,this._optionsService.rawOptions.fontWeight,this._optionsService.rawOptions.fontWeightBold),this._setDefaultSpacing()}clear(){for(let e of this._rowElements)e.replaceChildren()}renderRows(e,t){let n=this._bufferService.buffer,r=n.ybase+n.y,i=Math.min(n.x,this._bufferService.cols-1),a=this._coreService.decPrivateModes.cursorBlink??this._optionsService.rawOptions.cursorBlink,o=this._coreService.decPrivateModes.cursorStyle??this._optionsService.rawOptions.cursorStyle,s=this._optionsService.rawOptions.cursorInactiveStyle;for(let c=e;c<=t;c++){let e=c+n.ydisp,t=this._rowElements[c],l=n.lines.get(e);if(!t||!l)break;t.replaceChildren(...this._rowFactory.createRow(l,e,e===r,o,s,i,a,this.dimensions.css.cell.width,this._widthCache,-1,-1))}}get _terminalSelector(){return`.${ma}${this._terminalClass}`}_handleLinkHover(e){this._setCellUnderline(e.x1,e.x2,e.y1,e.y2,e.cols,!0)}_handleLinkLeave(e){this._setCellUnderline(e.x1,e.x2,e.y1,e.y2,e.cols,!1)}_setCellUnderline(e,t,n,r,i,a){n<0&&(e=0),r<0&&(t=0);let o=this._bufferService.rows-1;n=Math.max(Math.min(n,o),0),r=Math.max(Math.min(r,o),0),i=Math.min(i,this._bufferService.cols);let s=this._bufferService.buffer,c=s.ybase+s.y,l=Math.min(s.x,i-1),u=this._optionsService.rawOptions.cursorBlink,d=this._optionsService.rawOptions.cursorStyle,f=this._optionsService.rawOptions.cursorInactiveStyle;for(let o=n;o<=r;++o){let p=o+s.ydisp,m=this._rowElements[o],h=s.lines.get(p);if(!m||!h)break;m.replaceChildren(...this._rowFactory.createRow(h,p,p===c,d,f,l,u,this.dimensions.css.cell.width,this._widthCache,a?o===n?e:0:-1,a?(o===r?t:i)-1:-1))}}};xa=D([O(7,tt),O(8,lt),O(9,rt),O(10,A),O(11,$e),O(12,ut),O(13,ht)],xa);var Sa=class extends M{constructor(e,t,n){super(),this._optionsService=n,this.width=0,this.height=0,this._onCharSizeChange=this._register(new F),this.onCharSizeChange=this._onCharSizeChange.event;try{this._measureStrategy=this._register(new Ta(this._optionsService))}catch{this._measureStrategy=this._register(new wa(e,t,this._optionsService))}this._register(this._optionsService.onMultipleOptionChange([`fontFamily`,`fontSize`],()=>this.measure()))}get hasValidSize(){return this.width>0&&this.height>0}measure(){let e=this._measureStrategy.measure();(e.width!==this.width||e.height!==this.height)&&(this.width=e.width,this.height=e.height,this._onCharSizeChange.fire())}};Sa=D([O(2,rt)],Sa);var Ca=class extends M{constructor(){super(...arguments),this._result={width:0,height:0}}_validateAndSet(e,t){e!==void 0&&e>0&&t!==void 0&&t>0&&(this._result.width=e,this._result.height=t)}},wa=class extends Ca{constructor(e,t,n){super(),this._document=e,this._parentElement=t,this._optionsService=n,this._measureElement=this._document.createElement(`span`),this._measureElement.classList.add(`xterm-char-measure-element`),this._measureElement.textContent=`W`.repeat(32),this._measureElement.setAttribute(`aria-hidden`,`true`),this._measureElement.style.whiteSpace=`pre`,this._measureElement.style.fontKerning=`none`,this._parentElement.appendChild(this._measureElement)}measure(){return this._measureElement.style.fontFamily=this._optionsService.rawOptions.fontFamily,this._measureElement.style.fontSize=`${this._optionsService.rawOptions.fontSize}px`,this._validateAndSet(Number(this._measureElement.offsetWidth)/32,Number(this._measureElement.offsetHeight)),this._result}},Ta=class extends Ca{constructor(e){super(),this._optionsService=e,this._canvas=new OffscreenCanvas(100,100),this._ctx=this._canvas.getContext(`2d`);let t=this._ctx.measureText(`W`);if(!(`width`in t&&`fontBoundingBoxAscent`in t&&`fontBoundingBoxDescent`in t))throw Error(`Required font metrics not supported`)}measure(){this._ctx.font=`${this._optionsService.rawOptions.fontSize}px ${this._optionsService.rawOptions.fontFamily}`;let e=this._ctx.measureText(`W`);return this._validateAndSet(e.width,e.fontBoundingBoxAscent+e.fontBoundingBoxDescent),this._result}},Ea=class extends M{constructor(e,t,n){super(),this._textarea=e,this._window=t,this.mainDocument=n,this._isFocused=!1,this._cachedIsFocused=void 0,this._screenDprMonitor=this._register(new Da(this._window)),this._onDprChange=this._register(new F),this.onDprChange=this._onDprChange.event,this._onWindowChange=this._register(new F),this.onWindowChange=this._onWindowChange.event,this._register(this.onWindowChange(e=>this._screenDprMonitor.setWindow(e))),this._register(P.forward(this._screenDprMonitor.onDprChange,this._onDprChange)),this._register(I(this._textarea,`focus`,()=>this._isFocused=!0)),this._register(I(this._textarea,`blur`,()=>this._isFocused=!1))}get window(){return this._window}set window(e){this._window!==e&&(this._window=e,this._onWindowChange.fire(this._window))}get dpr(){return this.window.devicePixelRatio}get isFocused(){return this._cachedIsFocused===void 0&&(this._cachedIsFocused=this._isFocused&&this._textarea.ownerDocument.hasFocus(),queueMicrotask(()=>this._cachedIsFocused=void 0)),this._cachedIsFocused}},Da=class extends M{constructor(e){super(),this._parentWindow=e,this._windowResizeListener=this._register(new Yt),this._onDprChange=this._register(new F),this.onDprChange=this._onDprChange.event,this._outerListener=()=>this._setDprAndFireIfDiffers(),this._currentDevicePixelRatio=this._parentWindow.devicePixelRatio,this._updateDpr(),this._setWindowResizeListener(),this._register(j(()=>this.clearListener()))}setWindow(e){this._parentWindow=e,this._setWindowResizeListener(),this._setDprAndFireIfDiffers()}_setWindowResizeListener(){this._windowResizeListener.value=I(this._parentWindow,`resize`,()=>this._setDprAndFireIfDiffers())}_setDprAndFireIfDiffers(){this._parentWindow.devicePixelRatio!==this._currentDevicePixelRatio&&this._onDprChange.fire(this._parentWindow.devicePixelRatio),this._updateDpr()}_updateDpr(){this._outerListener&&(this._resolutionMediaMatchList?.removeListener(this._outerListener),this._currentDevicePixelRatio=this._parentWindow.devicePixelRatio,this._resolutionMediaMatchList=this._parentWindow.matchMedia(`screen and (resolution: ${this._parentWindow.devicePixelRatio}dppx)`),this._resolutionMediaMatchList.addListener(this._outerListener))}clearListener(){!this._resolutionMediaMatchList||!this._outerListener||(this._resolutionMediaMatchList.removeListener(this._outerListener),this._resolutionMediaMatchList=void 0,this._outerListener=void 0)}},Oa=class extends M{constructor(){super(),this.linkProviders=[],this._register(j(()=>this.linkProviders.length=0))}registerLinkProvider(e){return this.linkProviders.push(e),{dispose:()=>{let t=this.linkProviders.indexOf(e);t!==-1&&this.linkProviders.splice(t,1)}}}};function ka(e,t,n){let r=n.getBoundingClientRect(),i=e.getComputedStyle(n),a=parseInt(i.getPropertyValue(`padding-left`)),o=parseInt(i.getPropertyValue(`padding-top`));return[t.clientX-r.left-a,t.clientY-r.top-o]}function Aa(e,t,n,r,i,a,o,s,c){if(!a)return;let l=ka(e,t,n);if(l)return l[0]=Math.ceil((l[0]+(c?o/2:0))/o),l[1]=Math.ceil(l[1]/s),l[0]=Math.min(Math.max(l[0],1),r+ +!!c),l[1]=Math.min(Math.max(l[1],1),i),l}var ja=class{constructor(e,t){this._renderService=e,this._charSizeService=t}getCoords(e,t,n,r,i){return Aa(window,e,t,n,r,this._charSizeService.hasValidSize,this._renderService.dimensions.css.cell.width,this._renderService.dimensions.css.cell.height,i)}getMouseReportCoords(e,t){let n=ka(window,e,t);if(this._charSizeService.hasValidSize)return n[0]=Math.min(Math.max(n[0],0),this._renderService.dimensions.css.canvas.width-1),n[1]=Math.min(Math.max(n[1],0),this._renderService.dimensions.css.canvas.height-1),{col:Math.floor(n[0]/this._renderService.dimensions.css.cell.width),row:Math.floor(n[1]/this._renderService.dimensions.css.cell.height),x:Math.floor(n[0]),y:Math.floor(n[1])}}};ja=D([O(0,ft),O(1,lt)],ja);var Ma=class{constructor(e,t){this._renderCallback=e,this._coreBrowserService=t,this._refreshCallbacks=[]}dispose(){this._animationFrame&&=(this._coreBrowserService.window.cancelAnimationFrame(this._animationFrame),void 0)}addRefreshCallback(e){return this._refreshCallbacks.push(e),this._animationFrame||=this._coreBrowserService.window.requestAnimationFrame(()=>this._innerRefresh()),this._animationFrame}refresh(e,t,n){this._rowCount=n,e=e===void 0?0:e,t=t===void 0?this._rowCount-1:t,this._rowStart=this._rowStart===void 0?e:Math.min(this._rowStart,e),this._rowEnd=this._rowEnd===void 0?t:Math.max(this._rowEnd,t),!this._animationFrame&&(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>this._innerRefresh()))}_innerRefresh(){if(this._animationFrame=void 0,this._rowStart===void 0||this._rowEnd===void 0||this._rowCount===void 0){this._runRefreshCallbacks();return}let e=Math.max(this._rowStart,0),t=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(e,t),this._runRefreshCallbacks()}_runRefreshCallbacks(){for(let e of this._refreshCallbacks)e(0);this._refreshCallbacks=[]}},Na={};Ee(Na,{getSafariVersion:()=>Ba,isChromeOS:()=>Ka,isFirefox:()=>La,isIpad:()=>Ha,isIphone:()=>Ua,isLegacyEdge:()=>Ra,isLinux:()=>Ga,isMac:()=>Va,isNode:()=>Pa,isSafari:()=>za,isWindows:()=>Wa});var Pa=typeof process<`u`&&`title`in process,Fa=Pa?`node`:navigator.userAgent,Ia=Pa?`node`:navigator.platform,La=Fa.includes(`Firefox`),Ra=Fa.includes(`Edge`),za=/^((?!chrome|android).)*safari/i.test(Fa);function Ba(){if(!za)return 0;let e=Fa.match(/Version\/(\d+)/);return e===null||e.length<2?0:parseInt(e[1])}var Va=[`Macintosh`,`MacIntel`,`MacPPC`,`Mac68K`].includes(Ia),Ha=Ia===`iPad`,Ua=Ia===`iPhone`,Wa=[`Windows`,`Win16`,`Win32`,`WinCE`].includes(Ia),Ga=Ia.indexOf(`Linux`)>=0,Ka=/\bCrOS\b/.test(Fa),qa=class{constructor(){this._tasks=[],this._i=0}enqueue(e){this._tasks.push(e),this._start()}flush(){for(;this._ii){r-t<-20&&console.warn(`task queue exceeded allotted deadline by ${Math.abs(Math.round(r-t))}ms`),this._start();return}r=i}this.clear()}},Ja=class extends qa{_requestCallback(e){return setTimeout(()=>e(this._createDeadline(16)))}_cancelCallback(e){clearTimeout(e)}_createDeadline(e){let t=performance.now()+e;return{timeRemaining:()=>Math.max(0,t-performance.now())}}},Ya=class extends qa{_requestCallback(e){return requestIdleCallback(e)}_cancelCallback(e){cancelIdleCallback(e)}},Xa=!Pa&&`requestIdleCallback`in window?Ya:Ja,Za=class{constructor(){this._queue=new Xa}set(e){this._queue.clear(),this._queue.enqueue(e)}flush(){this._queue.flush()}},Qa=class extends M{constructor(e,t,n,r,i,a,o,s,c){super(),this._rowCount=e,this._optionsService=n,this._charSizeService=r,this._coreService=i,this._coreBrowserService=s,this._renderer=this._register(new Yt),this._pausedResizeTask=new Za,this._observerDisposable=this._register(new Yt),this._isPaused=!1,this._needsFullRefresh=!1,this._isNextRenderRedrawOnly=!0,this._needsSelectionRefresh=!1,this._canvasWidth=0,this._canvasHeight=0,this._selectionState={start:void 0,end:void 0,columnSelectMode:!1},this._onDimensionsChange=this._register(new F),this.onDimensionsChange=this._onDimensionsChange.event,this._onRenderedViewportChange=this._register(new F),this.onRenderedViewportChange=this._onRenderedViewportChange.event,this._onRender=this._register(new F),this.onRender=this._onRender.event,this._onRefreshRequest=this._register(new F),this.onRefreshRequest=this._onRefreshRequest.event,this._renderDebouncer=new Ma((e,t)=>this._renderRows(e,t),this._coreBrowserService),this._register(this._renderDebouncer),this._syncOutputHandler=new $a(this._coreBrowserService,this._coreService,()=>this._fullRefresh()),this._register(j(()=>this._syncOutputHandler.dispose())),this._register(this._coreBrowserService.onDprChange(()=>this.handleDevicePixelRatioChange())),this._register(o.onResize(()=>this._fullRefresh())),this._register(o.buffers.onBufferActivate(()=>this._renderer.value?.clear())),this._register(this._optionsService.onOptionChange(()=>this._handleOptionsChanged())),this._register(this._charSizeService.onCharSizeChange(()=>this.handleCharSizeChanged())),this._register(a.onDecorationRegistered(()=>this._fullRefresh())),this._register(a.onDecorationRemoved(()=>this._fullRefresh())),this._register(this._optionsService.onMultipleOptionChange([`customGlyphs`,`drawBoldTextInBrightColors`,`letterSpacing`,`lineHeight`,`fontFamily`,`fontSize`,`fontWeight`,`fontWeightBold`,`minimumContrastRatio`,`rescaleOverlappingGlyphs`],()=>{this.clear(),this.handleResize(o.cols,o.rows),this._fullRefresh()})),this._register(this._optionsService.onMultipleOptionChange([`cursorBlink`,`cursorStyle`],()=>this.refreshRows(o.buffer.y,o.buffer.y,!0))),this._register(c.onChangeColors(()=>this._fullRefresh())),this._registerIntersectionObserver(this._coreBrowserService.window,t),this._register(this._coreBrowserService.onWindowChange(e=>this._registerIntersectionObserver(e,t)))}get dimensions(){return this._renderer.value.dimensions}_registerIntersectionObserver(e,t){if(`IntersectionObserver`in e){let n=new e.IntersectionObserver(e=>this._handleIntersectionChange(e[e.length-1]),{threshold:0});n.observe(t),this._observerDisposable.value=j(()=>n.disconnect())}}_handleIntersectionChange(e){this._isPaused=e.isIntersecting===void 0?e.intersectionRatio===0:!e.isIntersecting,!this._isPaused&&!this._charSizeService.hasValidSize&&this._charSizeService.measure(),!this._isPaused&&this._needsFullRefresh&&(this._pausedResizeTask.flush(),this.refreshRows(0,this._rowCount-1),this._needsFullRefresh=!1)}refreshRows(e,t,n=!1){if(this._isPaused){this._needsFullRefresh=!0;return}if(this._coreService.decPrivateModes.synchronizedOutput){this._syncOutputHandler.bufferRows(e,t);return}let r=this._syncOutputHandler.flush();r&&(e=Math.min(e,r.start),t=Math.max(t,r.end)),n||(this._isNextRenderRedrawOnly=!1),this._renderDebouncer.refresh(e,t,this._rowCount)}_renderRows(e,t){if(this._renderer.value){if(this._coreService.decPrivateModes.synchronizedOutput){this._syncOutputHandler.bufferRows(e,t);return}e=Math.min(e,this._rowCount-1),t=Math.min(t,this._rowCount-1),this._renderer.value.renderRows(e,t),this._needsSelectionRefresh&&=(this._renderer.value.handleSelectionChanged(this._selectionState.start,this._selectionState.end,this._selectionState.columnSelectMode),!1),this._isNextRenderRedrawOnly||this._onRenderedViewportChange.fire({start:e,end:t}),this._onRender.fire({start:e,end:t}),this._isNextRenderRedrawOnly=!0}}resize(e,t){this._rowCount=t,this._fireOnCanvasResize()}_handleOptionsChanged(){this._renderer.value&&(this.refreshRows(0,this._rowCount-1),this._fireOnCanvasResize())}_fireOnCanvasResize(){this._renderer.value&&(this._renderer.value.dimensions.css.canvas.width===this._canvasWidth&&this._renderer.value.dimensions.css.canvas.height===this._canvasHeight||this._onDimensionsChange.fire(this._renderer.value.dimensions))}hasRenderer(){return!!this._renderer.value}setRenderer(e){this._renderer.value=e,this._renderer.value&&(this._renderer.value.onRequestRedraw(e=>this.refreshRows(e.start,e.end,!0)),this._needsSelectionRefresh=!0,this._fullRefresh())}addRefreshCallback(e){return this._renderDebouncer.addRefreshCallback(e)}_fullRefresh(){this._isPaused?this._needsFullRefresh=!0:this.refreshRows(0,this._rowCount-1)}clearTextureAtlas(){this._renderer.value&&(this._renderer.value.clearTextureAtlas?.(),this._fullRefresh())}handleDevicePixelRatioChange(){this._charSizeService.measure(),this._renderer.value&&(this._renderer.value.handleDevicePixelRatioChange(),this.refreshRows(0,this._rowCount-1))}handleResize(e,t){this._renderer.value&&(this._isPaused?this._pausedResizeTask.set(()=>this._renderer.value?.handleResize(e,t)):this._renderer.value.handleResize(e,t),this._fullRefresh())}handleCharSizeChanged(){this._renderer.value?.handleCharSizeChanged()}handleBlur(){this._renderer.value?.handleBlur()}handleFocus(){this._renderer.value?.handleFocus()}handleSelectionChanged(e,t,n){this._selectionState.start=e,this._selectionState.end=t,this._selectionState.columnSelectMode=n,this._renderer.value?.handleSelectionChanged(e,t,n)}handleCursorMove(){this._renderer.value?.handleCursorMove()}clear(){this._renderer.value?.clear()}};Qa=D([O(2,rt),O(3,lt),O(4,$e),O(5,ot),O(6,A),O(7,ut),O(8,ht)],Qa);var $a=class{constructor(e,t,n){this._coreBrowserService=e,this._coreService=t,this._onTimeout=n,this._start=0,this._end=0,this._isBuffering=!1}bufferRows(e,t){this._isBuffering?(this._start=Math.min(this._start,e),this._end=Math.max(this._end,t)):(this._start=e,this._end=t,this._isBuffering=!0),this._timeout===void 0&&(this._timeout=this._coreBrowserService.window.setTimeout(()=>{this._timeout=void 0,this._coreService.decPrivateModes.synchronizedOutput=!1,this._onTimeout()},1e3))}flush(){if(this._timeout!==void 0&&(this._coreBrowserService.window.clearTimeout(this._timeout),this._timeout=void 0),!this._isBuffering)return;let e={start:this._start,end:this._end};return this._isBuffering=!1,e}dispose(){this._timeout!==void 0&&(this._coreBrowserService.window.clearTimeout(this._timeout),this._timeout=void 0)}};function eo(e,t,n,r){let i=n.buffer.x,a=n.buffer.y;if(!n.buffer.hasScrollback)return ro(i,a,e,t,n,r)+io(a,t,n,r)+ao(i,a,e,t,n,r);let o;if(a===t)return o=i>e?`D`:`C`,po(Math.abs(i-e),fo(o,r));o=a>t?`D`:`C`;let s=Math.abs(a-t);return po(no(a>t?e:i,n)+(s-1)*n.cols+1+to(a>t?i:e,n),fo(o,r))}function to(e,t){return e-1}function no(e,t){return t.cols-e}function ro(e,t,n,r,i,a){return io(t,r,i,a).length===0?``:po(uo(e,t,e,t-so(t,i),!1,i).length,fo(`D`,a))}function io(e,t,n,r){let i=e-so(e,n),a=t-so(t,n);return po(Math.abs(i-a)-oo(e,t,n),fo(lo(e,t),r))}function ao(e,t,n,r,i,a){let o;o=io(t,r,i,a).length>0?r-so(r,i):t;let s=r,c=co(e,t,n,r,i,a);return po(uo(e,o,n,s,c===`C`,i).length,fo(c,a))}function oo(e,t,n){let r=0,i=e-so(e,n),a=t-so(t,n);for(let o=0;o=0&&e0?r-so(r,i):t,e=n&&ot?`A`:`B`}function uo(e,t,n,r,i,a){let o=e,s=t,c=``;for(;(o!==n||s!==r)&&s>=0&&sa.cols-1?(c+=a.buffer.translateBufferLineToString(s,!1,e,o),o=0,e=0,s++):!i&&o<0&&(c+=a.buffer.translateBufferLineToString(s,!1,0,e+1),o=a.cols-1,e=o,s--);return c+a.buffer.translateBufferLineToString(s,!1,e,o)}function fo(e,t){let n=t?`O`:`[`;return R.ESC+n+e}function po(e,t){e=Math.floor(e);let n=``;for(let r=0;rthis._bufferService.cols?e%this._bufferService.cols===0?[this._bufferService.cols,this.selectionStart[1]+Math.floor(e/this._bufferService.cols)-1]:[e%this._bufferService.cols,this.selectionStart[1]+Math.floor(e/this._bufferService.cols)]:[e,this.selectionStart[1]]}if(this.selectionStartLength&&this.selectionEnd[1]===this.selectionStart[1]){let e=this.selectionStart[0]+this.selectionStartLength;return e>this._bufferService.cols?[e%this._bufferService.cols,this.selectionStart[1]+Math.floor(e/this._bufferService.cols)]:[Math.max(e,this.selectionEnd[0]),this.selectionEnd[1]]}return this.selectionEnd}}areSelectionValuesReversed(){let e=this.selectionStart,t=this.selectionEnd;return!e||!t?!1:e[1]>t[1]||e[1]===t[1]&&e[0]>t[0]}handleTrim(e){return this.selectionStart&&(this.selectionStart[1]-=e),this.selectionEnd&&(this.selectionEnd[1]-=e),this.selectionEnd&&this.selectionEnd[1]<0?(this.clearSelection(),!0):(this.selectionStart&&this.selectionStart[1]<0&&(this.selectionStart[1]=0),!1)}};function ho(e,t){if(e.start.y>e.end.y)throw Error(`Buffer range end (${e.end.x}, ${e.end.y}) cannot be before start (${e.start.x}, ${e.start.y})`);return t*(e.end.y-e.start.y)+(e.end.x-e.start.x+1)}var go=50,_o=15,vo=50,yo=500,bo=RegExp(`\xA0`,`g`),xo=class extends M{constructor(e,t,n,r,i,a,o,s,c){super(),this._element=e,this._screenElement=t,this._linkifier=n,this._bufferService=r,this._coreService=i,this._mouseService=a,this._optionsService=o,this._renderService=s,this._coreBrowserService=c,this._dragScrollAmount=0,this._enabled=!0,this._workCell=new Ke,this._mouseDownTimeStamp=0,this._oldHasSelection=!1,this._oldSelectionStart=void 0,this._oldSelectionEnd=void 0,this._onLinuxMouseSelection=this._register(new F),this.onLinuxMouseSelection=this._onLinuxMouseSelection.event,this._onRedrawRequest=this._register(new F),this.onRequestRedraw=this._onRedrawRequest.event,this._onSelectionChange=this._register(new F),this.onSelectionChange=this._onSelectionChange.event,this._onRequestScrollLines=this._register(new F),this.onRequestScrollLines=this._onRequestScrollLines.event,this._mouseMoveListener=e=>this._handleMouseMove(e),this._mouseUpListener=e=>this._handleMouseUp(e),this._coreService.onUserInput(()=>{this.hasSelection&&this.clearSelection()}),this._trimListener=this._bufferService.buffer.lines.onTrim(e=>this._handleTrim(e)),this._register(this._bufferService.buffers.onBufferActivate(e=>this._handleBufferActivate(e))),this.enable(),this._model=new mo(this._bufferService),this._activeSelectionMode=0,this._register(j(()=>{this._removeMouseDownListeners()})),this._register(this._bufferService.onResize(e=>{e.rowsChanged&&this.clearSelection()}))}reset(){this.clearSelection()}disable(){this.clearSelection(),this._enabled=!1}enable(){this._enabled=!0}get selectionStart(){return this._model.finalSelectionStart}get selectionEnd(){return this._model.finalSelectionEnd}get hasSelection(){let e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd;return!e||!t?!1:e[0]!==t[0]||e[1]!==t[1]}get selectionText(){let e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd;if(!e||!t)return``;let n=this._bufferService.buffer,r=[];if(this._activeSelectionMode===3){if(e[0]===t[0])return``;let i=e[0]e.replace(bo,` `)).join(Wa?`\r +`:` +`)}clearSelection(){this._model.clearSelection(),this._removeMouseDownListeners(),this.refresh(),this._onSelectionChange.fire()}refresh(e){this._refreshAnimationFrame||=this._coreBrowserService.window.requestAnimationFrame(()=>this._refresh()),Ga&&e&&this.selectionText.length&&this._onLinuxMouseSelection.fire(this.selectionText)}_refresh(){this._refreshAnimationFrame=void 0,this._onRedrawRequest.fire({start:this._model.finalSelectionStart,end:this._model.finalSelectionEnd,columnSelectMode:this._activeSelectionMode===3})}_isClickInSelection(e){let t=this._getMouseBufferCoords(e),n=this._model.finalSelectionStart,r=this._model.finalSelectionEnd;return!n||!r||!t?!1:this._areCoordsInSelection(t,n,r)}isCellInSelection(e,t){let n=this._model.finalSelectionStart,r=this._model.finalSelectionEnd;return!n||!r?!1:this._areCoordsInSelection([e,t],n,r)}_areCoordsInSelection(e,t,n){return e[1]>t[1]&&e[1]=t[0]&&e[0]=t[0]}_selectWordAtCursor(e,t){let n=this._linkifier.currentLink?.link?.range;if(n)return this._model.selectionStart=[n.start.x-1,n.start.y-1],this._model.selectionStartLength=ho(n,this._bufferService.cols),this._model.selectionEnd=void 0,!0;let r=this._getMouseBufferCoords(e);return r?(this._selectWordAt(r,t),this._model.selectionEnd=void 0,!0):!1}selectAll(){this._model.isSelectAllActive=!0,this.refresh(),this._onSelectionChange.fire()}selectLines(e,t){this._model.clearSelection(),e=Math.max(e,0),t=Math.min(t,this._bufferService.buffer.lines.length-1),this._model.selectionStart=[0,e],this._model.selectionEnd=[this._bufferService.cols,t],this.refresh(),this._onSelectionChange.fire()}_handleTrim(e){this._model.handleTrim(e)&&this.refresh()}_getMouseBufferCoords(e){let t=this._mouseService.getCoords(e,this._screenElement,this._bufferService.cols,this._bufferService.rows,!0);if(t)return t[0]--,t[1]--,t[1]+=this._bufferService.buffer.ydisp,t}_getMouseEventScrollAmount(e){let t=ka(this._coreBrowserService.window,e,this._screenElement)[1],n=this._renderService.dimensions.css.canvas.height;return t>=0&&t<=n?0:(t>n&&(t-=n),t=Math.min(Math.max(t,-go),go),t/=go,t/Math.abs(t)+Math.round(t*(_o-1)))}shouldForceSelection(e){return Va?e.altKey&&this._optionsService.rawOptions.macOptionClickForcesSelection:e.shiftKey}handleMouseDown(e){if(this._mouseDownTimeStamp=e.timeStamp,!(e.button===2&&this.hasSelection)&&e.button===0){if(!this._enabled){if(!this.shouldForceSelection(e))return;e.stopPropagation()}e.preventDefault(),this._dragScrollAmount=0,this._enabled&&e.shiftKey?this._handleIncrementalClick(e):e.detail===1?this._handleSingleClick(e):e.detail===2?this._handleDoubleClick(e):e.detail===3&&this._handleTripleClick(e),this._addMouseDownListeners(),this.refresh(!0)}}_addMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.addEventListener(`mousemove`,this._mouseMoveListener),this._screenElement.ownerDocument.addEventListener(`mouseup`,this._mouseUpListener)),this._dragScrollIntervalTimer=this._coreBrowserService.window.setInterval(()=>this._dragScroll(),vo)}_removeMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.removeEventListener(`mousemove`,this._mouseMoveListener),this._screenElement.ownerDocument.removeEventListener(`mouseup`,this._mouseUpListener)),this._coreBrowserService.window.clearInterval(this._dragScrollIntervalTimer),this._dragScrollIntervalTimer=void 0}_handleIncrementalClick(e){this._model.selectionStart&&(this._model.selectionEnd=this._getMouseBufferCoords(e))}_handleSingleClick(e){if(this._model.selectionStartLength=0,this._model.isSelectAllActive=!1,this._activeSelectionMode=this.shouldColumnSelect(e)?3:0,this._model.selectionStart=this._getMouseBufferCoords(e),!this._model.selectionStart)return;this._model.selectionEnd=void 0;let t=this._bufferService.buffer.lines.get(this._model.selectionStart[1]);t&&t.length!==this._model.selectionStart[0]&&t.hasWidth(this._model.selectionStart[0])===0&&this._model.selectionStart[0]++}_handleDoubleClick(e){this._selectWordAtCursor(e,!0)&&(this._activeSelectionMode=1)}_handleTripleClick(e){let t=this._getMouseBufferCoords(e);t&&(this._activeSelectionMode=2,this._selectLineAt(t[1]))}shouldColumnSelect(e){return e.altKey&&!(Va&&this._optionsService.rawOptions.macOptionClickForcesSelection)}_handleMouseMove(e){if(e.stopImmediatePropagation(),!this._model.selectionStart)return;let t=this._model.selectionEnd?[this._model.selectionEnd[0],this._model.selectionEnd[1]]:null;if(this._model.selectionEnd=this._getMouseBufferCoords(e),!this._model.selectionEnd){this.refresh(!0);return}this._activeSelectionMode===2?this._model.selectionEnd[1]0?this._model.selectionEnd[0]=this._bufferService.cols:this._dragScrollAmount<0&&(this._model.selectionEnd[0]=0));let n=this._bufferService.buffer;if(this._model.selectionEnd[1]0?(this._activeSelectionMode!==3&&(this._model.selectionEnd[0]=this._bufferService.cols),this._model.selectionEnd[1]=Math.min(e.ydisp+this._bufferService.rows,e.lines.length-1)):(this._activeSelectionMode!==3&&(this._model.selectionEnd[0]=0),this._model.selectionEnd[1]=e.ydisp),this.refresh()}}_handleMouseUp(e){let t=e.timeStamp-this._mouseDownTimeStamp;if(this._removeMouseDownListeners(),this.selectionText.length<=1&&tthis._handleTrim(e))}_convertViewportColToCharacterIndex(e,t){let n=t;for(let r=0;t>=r;r++){let i=e.loadCell(r,this._workCell).getChars().length;this._workCell.getWidth()===0?n--:i>1&&t!==r&&(n+=i-1)}return n}setSelection(e,t,n){this._model.clearSelection(),this._removeMouseDownListeners(),this._model.selectionStart=[e,t],this._model.selectionStartLength=n,this.refresh(),this._fireEventIfSelectionChanged()}rightClickSelect(e){this._isClickInSelection(e)||(this._selectWordAtCursor(e,!1)&&this.refresh(!0),this._fireEventIfSelectionChanged())}_getWordAt(e,t,n=!0,r=!0){if(e[0]>=this._bufferService.cols)return;let i=this._bufferService.buffer,a=i.lines.get(e[1]);if(!a)return;let o=i.translateBufferLineToString(e[1],!1),s=this._convertViewportColToCharacterIndex(a,e[0]),c=s,l=e[0]-s,u=0,d=0,f=0,p=0;if(o.charAt(s)===` `){for(;s>0&&o.charAt(s-1)===` `;)s--;for(;c1&&(p+=r-1,c+=r-1);t>0&&s>0&&!this._isCharWordSeparator(a.loadCell(t-1,this._workCell));){a.loadCell(t-1,this._workCell);let e=this._workCell.getChars().length;this._workCell.getWidth()===0?(u++,t--):e>1&&(f+=e-1,s-=e-1),s--,t--}for(;n1&&(p+=e-1,c+=e-1),c++,n++}}c++;let m=s+l-u+f,h=Math.min(this._bufferService.cols,c-s+u+d-f-p);if(!(!t&&o.slice(s,c).trim()===``)){if(n&&m===0&&a.getCodePoint(0)!==32){let t=i.lines.get(e[1]-1);if(t&&a.isWrapped&&t.getCodePoint(this._bufferService.cols-1)!==32){let t=this._getWordAt([this._bufferService.cols-1,e[1]-1],!1,!0,!1);if(t){let e=this._bufferService.cols-t.start;m-=e,h+=e}}}if(r&&m+h===this._bufferService.cols&&a.getCodePoint(this._bufferService.cols-1)!==32){let t=i.lines.get(e[1]+1);if(t?.isWrapped&&t.getCodePoint(0)!==32){let t=this._getWordAt([0,e[1]+1],!1,!1,!0);t&&(h+=t.length)}}return{start:m,length:h}}}_selectWordAt(e,t){let n=this._getWordAt(e,t);if(n){for(;n.start<0;)n.start+=this._bufferService.cols,e[1]--;this._model.selectionStart=[n.start,e[1]],this._model.selectionStartLength=n.length}}_selectToWordAt(e){let t=this._getWordAt(e,!0);if(t){let n=e[1];for(;t.start<0;)t.start+=this._bufferService.cols,n--;if(!this._model.areSelectionValuesReversed())for(;t.start+t.length>this._bufferService.cols;)t.length-=this._bufferService.cols,n++;this._model.selectionEnd=[this._model.areSelectionValuesReversed()?t.start:t.start+t.length,n]}}_isCharWordSeparator(e){return e.getWidth()===0?!1:this._optionsService.rawOptions.wordSeparator.indexOf(e.getChars())>=0}_selectLineAt(e){let t=this._bufferService.buffer.getWrappedRangeForLine(e),n={start:{x:0,y:t.first},end:{x:this._bufferService.cols-1,y:t.last}};this._model.selectionStart=[0,t.first],this._model.selectionEnd=void 0,this._model.selectionStartLength=ho(n,this._bufferService.cols)}};xo=D([O(3,A),O(4,$e),O(5,dt),O(6,rt),O(7,ft),O(8,ut)],xo);var So=class{constructor(){this._data={}}set(e,t,n){this._data[e]||(this._data[e]={}),this._data[e][t]=n}get(e,t){return this._data[e]?this._data[e][t]:void 0}clear(){this._data={}}},Co=class{constructor(){this._color=new So,this._css=new So}setCss(e,t,n){this._css.set(e,t,n)}getCss(e,t){return this._css.get(e,t)}setColor(e,t,n){this._color.set(e,t,n)}getColor(e,t){return this._color.get(e,t)}clear(){this._color.clear(),this._css.clear()}},K=Object.freeze((()=>{let e=[G.toColor(`#2e3436`),G.toColor(`#cc0000`),G.toColor(`#4e9a06`),G.toColor(`#c4a000`),G.toColor(`#3465a4`),G.toColor(`#75507b`),G.toColor(`#06989a`),G.toColor(`#d3d7cf`),G.toColor(`#555753`),G.toColor(`#ef2929`),G.toColor(`#8ae234`),G.toColor(`#fce94f`),G.toColor(`#729fcf`),G.toColor(`#ad7fa8`),G.toColor(`#34e2e2`),G.toColor(`#eeeeec`)],t=[0,95,135,175,215,255];for(let n=0;n<216;n++){let r=t[n/36%6|0],i=t[n/6%6|0],a=t[n%6];e.push({css:U.toCss(r,i,a),rgba:U.toRgba(r,i,a)})}for(let t=0;t<24;t++){let n=8+t*10;e.push({css:U.toCss(n,n,n),rgba:U.toRgba(n,n,n)})}return e})()),wo=G.toColor(`#ffffff`),To=G.toColor(`#000000`),Eo=G.toColor(`#ffffff`),Do=To,Oo={css:`rgba(255, 255, 255, 0.3)`,rgba:4294967117},ko=wo,Ao=class extends M{constructor(e){super(),this._optionsService=e,this._contrastCache=new Co,this._halfContrastCache=new Co,this._onChangeColors=this._register(new F),this.onChangeColors=this._onChangeColors.event,this._colors={foreground:wo,background:To,cursor:Eo,cursorAccent:Do,selectionForeground:void 0,selectionBackgroundTransparent:Oo,selectionBackgroundOpaque:W.blend(To,Oo),selectionInactiveBackgroundTransparent:Oo,selectionInactiveBackgroundOpaque:W.blend(To,Oo),scrollbarSliderBackground:W.opacity(wo,.2),scrollbarSliderHoverBackground:W.opacity(wo,.4),scrollbarSliderActiveBackground:W.opacity(wo,.5),overviewRulerBorder:wo,ansi:K.slice(),contrastCache:this._contrastCache,halfContrastCache:this._halfContrastCache},this._updateRestoreColors(),this._setTheme(this._optionsService.rawOptions.theme),this._register(this._optionsService.onSpecificOptionChange(`minimumContrastRatio`,()=>this._contrastCache.clear())),this._register(this._optionsService.onSpecificOptionChange(`theme`,()=>this._setTheme(this._optionsService.rawOptions.theme)))}get colors(){return this._colors}_setTheme(e={}){let t=this._colors;if(t.foreground=q(e.foreground,wo),t.background=q(e.background,To),t.cursor=W.blend(t.background,q(e.cursor,Eo)),t.cursorAccent=W.blend(t.background,q(e.cursorAccent,Do)),t.selectionBackgroundTransparent=q(e.selectionBackground,Oo),t.selectionBackgroundOpaque=W.blend(t.background,t.selectionBackgroundTransparent),t.selectionInactiveBackgroundTransparent=q(e.selectionInactiveBackground,t.selectionBackgroundTransparent),t.selectionInactiveBackgroundOpaque=W.blend(t.background,t.selectionInactiveBackgroundTransparent),t.selectionForeground=e.selectionForeground?q(e.selectionForeground,Zi):void 0,t.selectionForeground===Zi&&(t.selectionForeground=void 0),W.isOpaque(t.selectionBackgroundTransparent)&&(t.selectionBackgroundTransparent=W.opacity(t.selectionBackgroundTransparent,.3)),W.isOpaque(t.selectionInactiveBackgroundTransparent)&&(t.selectionInactiveBackgroundTransparent=W.opacity(t.selectionInactiveBackgroundTransparent,.3)),t.scrollbarSliderBackground=q(e.scrollbarSliderBackground,W.opacity(t.foreground,.2)),t.scrollbarSliderHoverBackground=q(e.scrollbarSliderHoverBackground,W.opacity(t.foreground,.4)),t.scrollbarSliderActiveBackground=q(e.scrollbarSliderActiveBackground,W.opacity(t.foreground,.5)),t.overviewRulerBorder=q(e.overviewRulerBorder,ko),t.ansi=K.slice(),t.ansi[0]=q(e.black,K[0]),t.ansi[1]=q(e.red,K[1]),t.ansi[2]=q(e.green,K[2]),t.ansi[3]=q(e.yellow,K[3]),t.ansi[4]=q(e.blue,K[4]),t.ansi[5]=q(e.magenta,K[5]),t.ansi[6]=q(e.cyan,K[6]),t.ansi[7]=q(e.white,K[7]),t.ansi[8]=q(e.brightBlack,K[8]),t.ansi[9]=q(e.brightRed,K[9]),t.ansi[10]=q(e.brightGreen,K[10]),t.ansi[11]=q(e.brightYellow,K[11]),t.ansi[12]=q(e.brightBlue,K[12]),t.ansi[13]=q(e.brightMagenta,K[13]),t.ansi[14]=q(e.brightCyan,K[14]),t.ansi[15]=q(e.brightWhite,K[15]),e.extendedAnsi){let n=Math.min(t.ansi.length-16,e.extendedAnsi.length);for(let r=0;re.index-t.index),r=[];for(let t of n){let n=this._services.get(t.id);if(!n)throw Error(`[createInstance] ${e.name} depends on UNKNOWN service ${t.id._id}.`);r.push(n)}let i=n.length>0?n[0].index:t.length;if(t.length!==i)throw Error(`[createInstance] First service dependency of ${e.name} at position ${i+1} conflicts with ${t.length} static arguments`);return new e(...t,...r)}},No={trace:0,debug:1,info:2,warn:3,error:4,off:5},Po=`xterm.js: `,Fo=class extends M{constructor(e){super(),this._optionsService=e,this._logLevel=5,this._updateLogLevel(),this._register(this._optionsService.onSpecificOptionChange(`logLevel`,()=>this._updateLogLevel())),Io=this}get logLevel(){return this._logLevel}_updateLogLevel(){this._logLevel=No[this._optionsService.rawOptions.logLevel]}_evalLazyOptionalParams(e){for(let t=0;tthis._length)for(let t=this._length;t=e;t--)this._array[this._getCyclicIndex(t+n.length)]=this._array[this._getCyclicIndex(t)];for(let t=0;tthis._maxLength){let e=this._length+n.length-this._maxLength;this._startIndex+=e,this._length=this._maxLength,this.onTrimEmitter.fire(e)}else this._length+=n.length}trimStart(e){e>this._length&&(e=this._length),this._startIndex+=e,this._length-=e,this.onTrimEmitter.fire(e)}shiftElements(e,t,n){if(!(t<=0)){if(e<0||e>=this._length)throw Error(`start argument out of range`);if(e+n<0)throw Error(`Cannot shift elements in list beyond index 0`);if(n>0){for(let r=t-1;r>=0;r--)this.set(e+r+n,this.get(e+r));let r=e+t+n-this._length;if(r>0)for(this._length+=r;this._length>this._maxLength;)this._length--,this._startIndex++,this.onTrimEmitter.fire(1)}else for(let r=0;r>22,t&2097152?this._combined[e].charCodeAt(this._combined[e].length-1):n]}set(e,t){this._data[e*J+1]=t[0],t[1].length>1?(this._combined[e]=t[1],this._data[e*J+0]=e|2097152|t[2]<<22):this._data[e*J+0]=t[1].charCodeAt(0)|t[2]<<22}getWidth(e){return this._data[e*J+0]>>22}hasWidth(e){return this._data[e*J+0]&12582912}getFg(e){return this._data[e*J+1]}getBg(e){return this._data[e*J+2]}hasContent(e){return this._data[e*J+0]&4194303}getCodePoint(e){let t=this._data[e*J+0];return t&2097152?this._combined[e].charCodeAt(this._combined[e].length-1):t&2097151}isCombined(e){return this._data[e*J+0]&2097152}getString(e){let t=this._data[e*J+0];return t&2097152?this._combined[e]:t&2097151?Re(t&2097151):``}isProtected(e){return this._data[e*J+2]&536870912}loadCell(e,t){return Ro=e*J,t.content=this._data[Ro+0],t.fg=this._data[Ro+1],t.bg=this._data[Ro+2],t.content&2097152&&(t.combinedData=this._combined[e]),t.bg&268435456&&(t.extended=this._extendedAttrs[e]),t}setCell(e,t){t.content&2097152&&(this._combined[e]=t.combinedData),t.bg&268435456&&(this._extendedAttrs[e]=t.extended),this._data[e*J+0]=t.content,this._data[e*J+1]=t.fg,this._data[e*J+2]=t.bg}setCellFromCodepoint(e,t,n,r){r.bg&268435456&&(this._extendedAttrs[e]=r.extended),this._data[e*J+0]=t|n<<22,this._data[e*J+1]=r.fg,this._data[e*J+2]=r.bg}addCodepointToCell(e,t,n){let r=this._data[e*J+0];r&2097152?this._combined[e]+=Re(t):r&2097151?(this._combined[e]=Re(r&2097151)+Re(t),r&=-2097152,r|=2097152):r=t|1<<22,n&&(r&=-12582913,r|=n<<22),this._data[e*J+0]=r}insertCells(e,t,n){if(e%=this.length,e&&this.getWidth(e-1)===2&&this.setCellFromCodepoint(e-1,0,1,n),t=0;--n)this.setCell(e+t+n,this.loadCell(e+n,r));for(let r=0;rthis.length){if(this._data.buffer.byteLength>=n*4)this._data=new Uint32Array(this._data.buffer,0,n);else{let e=new Uint32Array(n);e.set(this._data),this._data=e}for(let n=this.length;n=e&&delete this._combined[r]}let r=Object.keys(this._extendedAttrs);for(let t=0;t=e&&delete this._extendedAttrs[n]}}return this.length=e,n*4*zo=0;--e)if(this._data[e*J+0]&4194303)return e+(this._data[e*J+0]>>22);return 0}getNoBgTrimmedLength(){for(let e=this.length-1;e>=0;--e)if(this._data[e*J+0]&4194303||this._data[e*J+2]&50331648)return e+(this._data[e*J+0]>>22);return 0}copyCellsFrom(e,t,n,r,i){let a=e._data;if(i)for(let i=r-1;i>=0;i--){for(let e=0;e=t&&(this._combined[i-t+n]=e._combined[i])}}translateToString(e,t,n,r){t??=0,n??=this.length,e&&(n=Math.min(n,this.getTrimmedLength())),r&&(r.length=0);let i=``;for(;t>22||1}return r&&r.push(t),i}};function Vo(e,t,n,r,i,a){let o=[];for(let s=0;s=s&&r0&&(e>d||u[e].getTrimmedLength()===0);e--)h++;h>0&&(o.push(s+u.length-h),o.push(h)),s+=u.length-1}return o}function Ho(e,t){let n=[],r=0,i=t[r],a=0;for(let o=0;oGo(e,r,t)).reduce((e,t)=>e+t),a=0,o=0,s=0;for(;sc&&(a-=c,o++);let l=e[o].getWidth(a-1)===2;l&&a--;let u=l?n-1:n;r.push(u),s+=u}return r}function Go(e,t,n){if(t===e.length-1)return e[t].getTrimmedLength();let r=!e[t].hasContent(n-1)&&e[t].getWidth(n-1)===1,i=e[t+1].getWidth(0)===2;return r&&i?n-1:n}var Ko=class e{constructor(t){this.line=t,this.isDisposed=!1,this._disposables=[],this._id=e._nextId++,this._onDispose=this.register(new F),this.onDispose=this._onDispose.event}get id(){return this._id}dispose(){this.isDisposed||(this.isDisposed=!0,this.line=-1,this._onDispose.fire(),Gt(this._disposables),this._disposables.length=0)}register(e){return this._disposables.push(e),e}};Ko._nextId=1;var qo=Ko,X={},Jo=X.B;X[0]={"`":`◆`,a:`▒`,b:`␉`,c:`␌`,d:`␍`,e:`␊`,f:`°`,g:`±`,h:`␤`,i:`␋`,j:`┘`,k:`┐`,l:`┌`,m:`└`,n:`┼`,o:`⎺`,p:`⎻`,q:`─`,r:`⎼`,s:`⎽`,t:`├`,u:`┤`,v:`┴`,w:`┬`,x:`│`,y:`≤`,z:`≥`,"{":`π`,"|":`≠`,"}":`£`,"~":`·`},X.A={"#":`£`},X.B=void 0,X[4]={"#":`£`,"@":`¾`,"[":`ij`,"\\":`½`,"]":`|`,"{":`¨`,"|":`f`,"}":`¼`,"~":`´`},X.C=X[5]={"[":`Ä`,"\\":`Ö`,"]":`Å`,"^":`Ü`,"`":`é`,"{":`ä`,"|":`ö`,"}":`å`,"~":`ü`},X.R={"#":`£`,"@":`à`,"[":`°`,"\\":`ç`,"]":`§`,"{":`é`,"|":`ù`,"}":`è`,"~":`¨`},X.Q={"@":`à`,"[":`â`,"\\":`ç`,"]":`ê`,"^":`î`,"`":`ô`,"{":`é`,"|":`ù`,"}":`è`,"~":`û`},X.K={"@":`§`,"[":`Ä`,"\\":`Ö`,"]":`Ü`,"{":`ä`,"|":`ö`,"}":`ü`,"~":`ß`},X.Y={"#":`£`,"@":`§`,"[":`°`,"\\":`ç`,"]":`é`,"`":`ù`,"{":`à`,"|":`ò`,"}":`è`,"~":`ì`},X.E=X[6]={"@":`Ä`,"[":`Æ`,"\\":`Ø`,"]":`Å`,"^":`Ü`,"`":`ä`,"{":`æ`,"|":`ø`,"}":`å`,"~":`ü`},X.Z={"#":`£`,"@":`§`,"[":`¡`,"\\":`Ñ`,"]":`¿`,"{":`°`,"|":`ñ`,"}":`ç`},X.H=X[7]={"@":`É`,"[":`Ä`,"\\":`Ö`,"]":`Å`,"^":`Ü`,"`":`é`,"{":`ä`,"|":`ö`,"}":`å`,"~":`ü`},X[`=`]={"#":`ù`,"@":`à`,"[":`é`,"\\":`ç`,"]":`ê`,"^":`î`,_:`è`,"`":`ô`,"{":`ä`,"|":`ö`,"}":`ü`,"~":`û`};var Yo=4294967295,Xo=class{constructor(e,t,n){this._hasScrollback=e,this._optionsService=t,this._bufferService=n,this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.tabs={},this.savedY=0,this.savedX=0,this.savedCurAttrData=Y.clone(),this.savedCharset=Jo,this.markers=[],this._nullCell=Ke.fromCharData([0,He,1,0]),this._whitespaceCell=Ke.fromCharData([0,Ue,1,32]),this._isClearing=!1,this._memoryCleanupQueue=new Xa,this._memoryCleanupPosition=0,this._cols=this._bufferService.cols,this._rows=this._bufferService.rows,this.lines=new Lo(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}getNullCell(e){return e?(this._nullCell.fg=e.fg,this._nullCell.bg=e.bg,this._nullCell.extended=e.extended):(this._nullCell.fg=0,this._nullCell.bg=0,this._nullCell.extended=new Ge),this._nullCell}getWhitespaceCell(e){return e?(this._whitespaceCell.fg=e.fg,this._whitespaceCell.bg=e.bg,this._whitespaceCell.extended=e.extended):(this._whitespaceCell.fg=0,this._whitespaceCell.bg=0,this._whitespaceCell.extended=new Ge),this._whitespaceCell}getBlankLine(e,t){return new Bo(this._bufferService.cols,this.getNullCell(e),t)}get hasScrollback(){return this._hasScrollback&&this.lines.maxLength>this._rows}get isCursorInViewport(){let e=this.ybase+this.y-this.ydisp;return e>=0&&eYo?Yo:t}fillViewportRows(e){if(this.lines.length===0){e===void 0&&(e=Y);let t=this._rows;for(;t--;)this.lines.push(this.getBlankLine(e))}}clear(){this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.lines=new Lo(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}resize(e,t){let n=this.getNullCell(Y),r=0,i=this._getCorrectBufferLength(t);if(i>this.lines.maxLength&&(this.lines.maxLength=i),this.lines.length>0){if(this._cols0&&this.lines.length<=this.ybase+this.y+a+1?(this.ybase--,a++,this.ydisp>0&&this.ydisp--):this.lines.push(new Bo(e,n)));else for(let e=this._rows;e>t;e--)this.lines.length>t+this.ybase&&(this.lines.length>this.ybase+this.y+1?this.lines.pop():(this.ybase++,this.ydisp++));if(i0&&(this.lines.trimStart(e),this.ybase=Math.max(this.ybase-e,0),this.ydisp=Math.max(this.ydisp-e,0),this.savedY=Math.max(this.savedY-e,0)),this.lines.maxLength=i}this.x=Math.min(this.x,e-1),this.y=Math.min(this.y,t-1),a&&(this.y+=a),this.savedX=Math.min(this.savedX,e-1),this.scrollTop=0}if(this.scrollBottom=t-1,this._isReflowEnabled&&(this._reflow(e,t),this._cols>e))for(let t=0;t.1*this.lines.length&&(this._memoryCleanupPosition=0,this._memoryCleanupQueue.enqueue(()=>this._batchedMemoryCleanup()))}_batchedMemoryCleanup(){let e=!0;this._memoryCleanupPosition>=this.lines.length&&(this._memoryCleanupPosition=0,e=!1);let t=0;for(;this._memoryCleanupPosition100)return!0;return e}get _isReflowEnabled(){let e=this._optionsService.rawOptions.windowsPty;return e&&e.buildNumber?this._hasScrollback&&e.backend===`conpty`&&e.buildNumber>=21376:this._hasScrollback&&!this._optionsService.rawOptions.windowsMode}_reflow(e,t){this._cols!==e&&(e>this._cols?this._reflowLarger(e,t):this._reflowSmaller(e,t))}_reflowLarger(e,t){let n=this._optionsService.rawOptions.reflowCursorLine,r=Vo(this.lines,this._cols,e,this.ybase+this.y,this.getNullCell(Y),n);if(r.length>0){let n=Ho(this.lines,r);Uo(this.lines,n.layout),this._reflowLargerAdjustViewport(e,t,n.countRemoved)}}_reflowLargerAdjustViewport(e,t,n){let r=this.getNullCell(Y),i=n;for(;i-- >0;)this.ybase===0?(this.y>0&&this.y--,this.lines.length=0;o--){let s=this.lines.get(o);if(!s||!s.isWrapped&&s.getTrimmedLength()<=e)continue;let c=[s];for(;s.isWrapped&&o>0;)s=this.lines.get(--o),c.unshift(s);if(!n){let e=this.ybase+this.y;if(e>=o&&e0&&(i.push({start:o+c.length+a,newLines:p}),a+=p.length),c.push(...p);let m=u.length-1,h=u[m];h===0&&(m--,h=u[m]);let g=c.length-d-1,_=l;for(;g>=0;){let e=Math.min(_,h);if(c[m]===void 0)break;c[m].copyCellsFrom(c[g],_-e,h-e,e,!0),h-=e,h===0&&(m--,h=u[m]),_-=e,_===0&&(g--,_=Go(c,Math.max(g,0),this._cols))}for(let t=0;t0;)this.ybase===0?this.y0){let e=[],t=[];for(let e=0;e=0;l--)if(s&&s.start>r+c){for(let e=s.newLines.length-1;e>=0;e--)this.lines.set(l--,s.newLines[e]);l++,e.push({index:r+1,amount:s.newLines.length}),c+=s.newLines.length,s=i[++o]}else this.lines.set(l,t[r--]);let l=0;for(let t=e.length-1;t>=0;t--)e[t].index+=l,this.lines.onInsertEmitter.fire(e[t]),l+=e[t].amount;let u=Math.max(0,n+a-this.lines.maxLength);u>0&&this.lines.onTrimEmitter.fire(u)}}translateBufferLineToString(e,t,n=0,r){let i=this.lines.get(e);return i?i.translateToString(t,n,r):``}getWrappedRangeForLine(e){let t=e,n=e;for(;t>0&&this.lines.get(t).isWrapped;)t--;for(;n+10;);return e>=this._cols?this._cols-1:e<0?0:e}nextStop(e){for(e??=this.x;!this.tabs[++e]&&e=this._cols?this._cols-1:e<0?0:e}clearMarkers(e){this._isClearing=!0;for(let t=0;t{t.line-=e,t.line<0&&t.dispose()})),t.register(this.lines.onInsert(e=>{t.line>=e.index&&(t.line+=e.amount)})),t.register(this.lines.onDelete(e=>{t.line>=e.index&&t.linee.index&&(t.line-=e.amount)})),t.register(t.onDispose(()=>this._removeMarker(t))),t}_removeMarker(e){this._isClearing||this.markers.splice(this.markers.indexOf(e),1)}},Zo=class extends M{constructor(e,t){super(),this._optionsService=e,this._bufferService=t,this._onBufferActivate=this._register(new F),this.onBufferActivate=this._onBufferActivate.event,this.reset(),this._register(this._optionsService.onSpecificOptionChange(`scrollback`,()=>this.resize(this._bufferService.cols,this._bufferService.rows))),this._register(this._optionsService.onSpecificOptionChange(`tabStopWidth`,()=>this.setupTabStops()))}reset(){this._normal=new Xo(!0,this._optionsService,this._bufferService),this._normal.fillViewportRows(),this._alt=new Xo(!1,this._optionsService,this._bufferService),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}),this.setupTabStops()}get alt(){return this._alt}get active(){return this._activeBuffer}get normal(){return this._normal}activateNormalBuffer(){this._activeBuffer!==this._normal&&(this._normal.x=this._alt.x,this._normal.y=this._alt.y,this._alt.clearAllMarkers(),this._alt.clear(),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}))}activateAltBuffer(e){this._activeBuffer!==this._alt&&(this._alt.fillViewportRows(e),this._alt.x=this._normal.x,this._alt.y=this._normal.y,this._activeBuffer=this._alt,this._onBufferActivate.fire({activeBuffer:this._alt,inactiveBuffer:this._normal}))}resize(e,t){this._normal.resize(e,t),this._alt.resize(e,t),this.setupTabStops(e)}setupTabStops(e){this._normal.setupTabStops(e),this._alt.setupTabStops(e)}},Qo=2,$o=1,es=class extends M{constructor(e){super(),this.isUserScrolling=!1,this._onResize=this._register(new F),this.onResize=this._onResize.event,this._onScroll=this._register(new F),this.onScroll=this._onScroll.event,this.cols=Math.max(e.rawOptions.cols||0,Qo),this.rows=Math.max(e.rawOptions.rows||0,$o),this.buffers=this._register(new Zo(e,this)),this._register(this.buffers.onBufferActivate(e=>{this._onScroll.fire(e.activeBuffer.ydisp)}))}get buffer(){return this.buffers.active}resize(e,t){let n=this.cols!==e,r=this.rows!==t;this.cols=e,this.rows=t,this.buffers.resize(e,t),this._onResize.fire({cols:e,rows:t,colsChanged:n,rowsChanged:r})}reset(){this.buffers.reset(),this.isUserScrolling=!1}scroll(e,t=!1){let n=this.buffer,r;r=this._cachedBlankLine,(!r||r.length!==this.cols||r.getFg(0)!==e.fg||r.getBg(0)!==e.bg)&&(r=n.getBlankLine(e,t),this._cachedBlankLine=r),r.isWrapped=t;let i=n.ybase+n.scrollTop,a=n.ybase+n.scrollBottom;if(n.scrollTop===0){let e=n.lines.isFull;a===n.lines.length-1?e?n.lines.recycle().copyFrom(r):n.lines.push(r.clone()):n.lines.splice(a+1,0,r.clone()),e?this.isUserScrolling&&(n.ydisp=Math.max(n.ydisp-1,0)):(n.ybase++,this.isUserScrolling||n.ydisp++)}else{let e=a-i+1;n.lines.shiftElements(i+1,e-1,-1),n.lines.set(a,r.clone())}this.isUserScrolling||(n.ydisp=n.ybase),this._onScroll.fire(n.ydisp)}scrollLines(e,t){let n=this.buffer;if(e<0){if(n.ydisp===0)return;this.isUserScrolling=!0}else e+n.ydisp>=n.ybase&&(this.isUserScrolling=!1);let r=n.ydisp;n.ydisp=Math.max(Math.min(n.ydisp+e,n.ybase),0),r!==n.ydisp&&(t||this._onScroll.fire(n.ydisp))}};es=D([O(0,rt)],es);var ts={cols:80,rows:24,cursorBlink:!1,cursorStyle:`block`,cursorWidth:1,cursorInactiveStyle:`outline`,customGlyphs:!0,drawBoldTextInBrightColors:!0,documentOverride:null,fastScrollModifier:`alt`,fastScrollSensitivity:5,fontFamily:`monospace`,fontSize:15,fontWeight:`normal`,fontWeightBold:`bold`,ignoreBracketedPasteMode:!1,lineHeight:1,letterSpacing:0,linkHandler:null,logLevel:`info`,logger:null,scrollback:1e3,scrollOnEraseInDisplay:!1,scrollOnUserInput:!0,scrollSensitivity:1,screenReaderMode:!1,smoothScrollDuration:0,macOptionIsMeta:!1,macOptionClickForcesSelection:!1,minimumContrastRatio:1,disableStdin:!1,allowProposedApi:!1,allowTransparency:!1,tabStopWidth:8,theme:{},reflowCursorLine:!1,rescaleOverlappingGlyphs:!1,rightClickSelectsWord:Va,windowOptions:{},windowsMode:!1,windowsPty:{},wordSeparator:` ()[]{}',"\``,altClickMovesCursor:!0,convertEol:!1,termName:`xterm`,cancelEvents:!1,overviewRuler:{}},ns=[`normal`,`bold`,`100`,`200`,`300`,`400`,`500`,`600`,`700`,`800`,`900`],rs=class extends M{constructor(e){super(),this._onOptionChange=this._register(new F),this.onOptionChange=this._onOptionChange.event;let t={...ts};for(let n in e)if(n in t)try{let r=e[n];t[n]=this._sanitizeAndValidateOption(n,r)}catch(e){console.error(e)}this.rawOptions=t,this.options={...t},this._setupOptions(),this._register(j(()=>{this.rawOptions.linkHandler=null,this.rawOptions.documentOverride=null}))}onSpecificOptionChange(e,t){return this.onOptionChange(n=>{n===e&&t(this.rawOptions[e])})}onMultipleOptionChange(e,t){return this.onOptionChange(n=>{e.indexOf(n)!==-1&&t()})}_setupOptions(){let e=e=>{if(!(e in ts))throw Error(`No option with key "${e}"`);return this.rawOptions[e]},t=(e,t)=>{if(!(e in ts))throw Error(`No option with key "${e}"`);t=this._sanitizeAndValidateOption(e,t),this.rawOptions[e]!==t&&(this.rawOptions[e]=t,this._onOptionChange.fire(e))};for(let n in this.rawOptions){let r={get:e.bind(this,n),set:t.bind(this,n)};Object.defineProperty(this.options,n,r)}}_sanitizeAndValidateOption(e,t){switch(e){case`cursorStyle`:if(t||=ts[e],!is(t))throw Error(`"${t}" is not a valid value for ${e}`);break;case`wordSeparator`:t||=ts[e];break;case`fontWeight`:case`fontWeightBold`:if(typeof t==`number`&&1<=t&&t<=1e3)break;t=ns.includes(t)?t:ts[e];break;case`cursorWidth`:t=Math.floor(t);case`lineHeight`:case`tabStopWidth`:if(t<1)throw Error(`${e} cannot be less than 1, value: ${t}`);break;case`minimumContrastRatio`:t=Math.max(1,Math.min(21,Math.round(t*10)/10));break;case`scrollback`:if(t=Math.min(t,4294967295),t<0)throw Error(`${e} cannot be less than 0, value: ${t}`);break;case`fastScrollSensitivity`:case`scrollSensitivity`:if(t<=0)throw Error(`${e} cannot be less than or equal to 0, value: ${t}`);break;case`rows`:case`cols`:if(!t&&t!==0)throw Error(`${e} must be numeric, value: ${t}`);break;case`windowsPty`:t??={};break}return t}};function is(e){return e===`block`||e===`underline`||e===`bar`}function as(e,t=5){if(typeof e!=`object`)return e;let n=Array.isArray(e)?[]:{};for(let r in e)n[r]=t<=1?e[r]:e[r]&&as(e[r],t-1);return n}var os=Object.freeze({insertMode:!1}),ss=Object.freeze({applicationCursorKeys:!1,applicationKeypad:!1,bracketedPasteMode:!1,cursorBlink:void 0,cursorStyle:void 0,origin:!1,reverseWraparound:!1,sendFocus:!1,synchronizedOutput:!1,wraparound:!0}),cs=class extends M{constructor(e,t,n){super(),this._bufferService=e,this._logService=t,this._optionsService=n,this.isCursorInitialized=!1,this.isCursorHidden=!1,this._onData=this._register(new F),this.onData=this._onData.event,this._onUserInput=this._register(new F),this.onUserInput=this._onUserInput.event,this._onBinary=this._register(new F),this.onBinary=this._onBinary.event,this._onRequestScrollToBottom=this._register(new F),this.onRequestScrollToBottom=this._onRequestScrollToBottom.event,this.modes=as(os),this.decPrivateModes=as(ss)}reset(){this.modes=as(os),this.decPrivateModes=as(ss)}triggerDataEvent(e,t=!1){if(this._optionsService.rawOptions.disableStdin)return;let n=this._bufferService.buffer;t&&this._optionsService.rawOptions.scrollOnUserInput&&n.ybase!==n.ydisp&&this._onRequestScrollToBottom.fire(),t&&this._onUserInput.fire(),this._logService.debug(`sending data "${e}"`),this._logService.trace(`sending data (codes)`,()=>e.split(``).map(e=>e.charCodeAt(0))),this._onData.fire(e)}triggerBinaryEvent(e){this._optionsService.rawOptions.disableStdin||(this._logService.debug(`sending binary "${e}"`),this._logService.trace(`sending binary (codes)`,()=>e.split(``).map(e=>e.charCodeAt(0))),this._onBinary.fire(e))}};cs=D([O(0,A),O(1,nt),O(2,rt)],cs);var ls={NONE:{events:0,restrict:()=>!1},X10:{events:1,restrict:e=>e.button===4||e.action!==1?!1:(e.ctrl=!1,e.alt=!1,e.shift=!1,!0)},VT200:{events:19,restrict:e=>e.action!==32},DRAG:{events:23,restrict:e=>!(e.action===32&&e.button===3)},ANY:{events:31,restrict:e=>!0}};function us(e,t){let n=(e.ctrl?16:0)|(e.shift?4:0)|(e.alt?8:0);return e.button===4?(n|=64,n|=e.action):(n|=e.button&3,e.button&4&&(n|=64),e.button&8&&(n|=128),e.action===32?n|=32:e.action===0&&!t&&(n|=3)),n}var ds=String.fromCharCode,fs={DEFAULT:e=>{let t=[us(e,!1)+32,e.col+32,e.row+32];return t[0]>255||t[1]>255||t[2]>255?``:`\x1B[M${ds(t[0])}${ds(t[1])}${ds(t[2])}`},SGR:e=>{let t=e.action===0&&e.button!==4?`m`:`M`;return`\x1B[<${us(e,!0)};${e.col};${e.row}${t}`},SGR_PIXELS:e=>{let t=e.action===0&&e.button!==4?`m`:`M`;return`\x1B[<${us(e,!0)};${e.x};${e.y}${t}`}},ps=class extends M{constructor(e,t,n){super(),this._bufferService=e,this._coreService=t,this._optionsService=n,this._protocols={},this._encodings={},this._activeProtocol=``,this._activeEncoding=``,this._lastEvent=null,this._wheelPartialScroll=0,this._onProtocolChange=this._register(new F),this.onProtocolChange=this._onProtocolChange.event;for(let e of Object.keys(ls))this.addProtocol(e,ls[e]);for(let e of Object.keys(fs))this.addEncoding(e,fs[e]);this.reset()}addProtocol(e,t){this._protocols[e]=t}addEncoding(e,t){this._encodings[e]=t}get activeProtocol(){return this._activeProtocol}get areMouseEventsActive(){return this._protocols[this._activeProtocol].events!==0}set activeProtocol(e){if(!this._protocols[e])throw Error(`unknown protocol "${e}"`);this._activeProtocol=e,this._onProtocolChange.fire(this._protocols[e].events)}get activeEncoding(){return this._activeEncoding}set activeEncoding(e){if(!this._encodings[e])throw Error(`unknown encoding "${e}"`);this._activeEncoding=e}reset(){this.activeProtocol=`NONE`,this.activeEncoding=`DEFAULT`,this._lastEvent=null,this._wheelPartialScroll=0}consumeWheelEvent(e,t,n){if(e.deltaY===0||e.shiftKey||t===void 0||n===void 0)return 0;let r=t/n,i=this._applyScrollModifier(e.deltaY,e);return e.deltaMode===WheelEvent.DOM_DELTA_PIXEL?(i/=r+0,Math.abs(e.deltaY)<50&&(i*=.3),this._wheelPartialScroll+=i,i=Math.floor(Math.abs(this._wheelPartialScroll))*(this._wheelPartialScroll>0?1:-1),this._wheelPartialScroll%=1):e.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(i*=this._bufferService.rows),i}_applyScrollModifier(e,t){return t.altKey||t.ctrlKey||t.shiftKey?e*this._optionsService.rawOptions.fastScrollSensitivity*this._optionsService.rawOptions.scrollSensitivity:e*this._optionsService.rawOptions.scrollSensitivity}triggerMouseEvent(e){if(e.col<0||e.col>=this._bufferService.cols||e.row<0||e.row>=this._bufferService.rows||e.button===4&&e.action===32||e.button===3&&e.action!==32||e.button!==4&&(e.action===2||e.action===3)||(e.col++,e.row++,e.action===32&&this._lastEvent&&this._equalEvents(this._lastEvent,e,this._activeEncoding===`SGR_PIXELS`))||!this._protocols[this._activeProtocol].restrict(e))return!1;let t=this._encodings[this._activeEncoding](e);return t&&(this._activeEncoding===`DEFAULT`?this._coreService.triggerBinaryEvent(t):this._coreService.triggerDataEvent(t,!0)),this._lastEvent=e,!0}explainEvents(e){return{down:!!(e&1),up:!!(e&2),drag:!!(e&4),move:!!(e&8),wheel:!!(e&16)}}_equalEvents(e,t,n){if(n){if(e.x!==t.x||e.y!==t.y)return!1}else if(e.col!==t.col||e.row!==t.row)return!1;return!(e.button!==t.button||e.action!==t.action||e.ctrl!==t.ctrl||e.alt!==t.alt||e.shift!==t.shift)}};ps=D([O(0,A),O(1,$e),O(2,rt)],ps);var ms=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531]],hs=[[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]],Z;function gs(e,t){let n=0,r=t.length-1,i;if(et[r][1])return!1;for(;r>=n;)if(i=n+r>>1,e>t[i][1])n=i+1;else if(e=131072&&e<=196605||e>=196608&&e<=262141?2:1}charProperties(e,t){let n=this.wcwidth(e),r=n===0&&t!==0;if(r){let e=vs.extractWidth(t);e===0?r=!1:e>n&&(n=e)}return vs.createPropertyValue(0,n,r)}},vs=class e{constructor(){this._providers=Object.create(null),this._active=``,this._onChange=new F,this.onChange=this._onChange.event;let e=new _s;this.register(e),this._active=e.version,this._activeProvider=e}static extractShouldJoin(e){return(e&1)!=0}static extractWidth(e){return e>>1&3}static extractCharKind(e){return e>>3}static createPropertyValue(e,t,n=!1){return(e&16777215)<<3|(t&3)<<1|!!n}dispose(){this._onChange.dispose()}get versions(){return Object.keys(this._providers)}get activeVersion(){return this._active}set activeVersion(e){if(!this._providers[e])throw Error(`unknown Unicode version "${e}"`);this._active=e,this._activeProvider=this._providers[e],this._onChange.fire(e)}register(e){this._providers[e.version]=e}wcwidth(e){return this._activeProvider.wcwidth(e)}getStringCellWidth(t){let n=0,r=0,i=t.length;for(let a=0;a=i)return n+this.wcwidth(o);let e=t.charCodeAt(a);56320<=e&&e<=57343?o=(o-55296)*1024+e-56320+65536:n+=this.wcwidth(e)}let s=this.charProperties(o,r),c=e.extractWidth(s);e.extractShouldJoin(s)&&(c-=e.extractWidth(r)),n+=c,r=s}return n}charProperties(e,t){return this._activeProvider.charProperties(e,t)}},ys=class{constructor(){this.glevel=0,this._charsets=[]}reset(){this.charset=void 0,this._charsets=[],this.glevel=0}setgLevel(e){this.glevel=e,this.charset=this._charsets[e]}setgCharset(e,t){this._charsets[e]=t,this.glevel===e&&(this.charset=t)}};function bs(e){let t=e.buffer.lines.get(e.buffer.ybase+e.buffer.y-1)?.get(e.cols-1),n=e.buffer.lines.get(e.buffer.ybase+e.buffer.y);n&&t&&(n.isWrapped=t[3]!==0&&t[3]!==32)}var xs=2147483647,Ss=256,Cs=class e{constructor(e=32,t=32){if(this.maxLength=e,this.maxSubParamsLength=t,t>Ss)throw Error(`maxSubParamsLength must not be greater than 256`);this.params=new Int32Array(e),this.length=0,this._subParams=new Int32Array(t),this._subParamsLength=0,this._subParamsIdx=new Uint16Array(e),this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}static fromArray(t){let n=new e;if(!t.length)return n;for(let e=+!!Array.isArray(t[0]);e>8,r=this._subParamsIdx[t]&255;r-n>0&&e.push(Array.prototype.slice.call(this._subParams,n,r))}return e}reset(){this.length=0,this._subParamsLength=0,this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}addParam(e){if(this._digitIsSub=!1,this.length>=this.maxLength){this._rejectDigits=!0;return}if(e<-1)throw Error(`values lesser than -1 are not allowed`);this._subParamsIdx[this.length]=this._subParamsLength<<8|this._subParamsLength,this.params[this.length++]=e>xs?xs:e}addSubParam(e){if(this._digitIsSub=!0,this.length){if(this._rejectDigits||this._subParamsLength>=this.maxSubParamsLength){this._rejectSubDigits=!0;return}if(e<-1)throw Error(`values lesser than -1 are not allowed`);this._subParams[this._subParamsLength++]=e>xs?xs:e,this._subParamsIdx[this.length-1]++}}hasSubParams(e){return(this._subParamsIdx[e]&255)-(this._subParamsIdx[e]>>8)>0}getSubParams(e){let t=this._subParamsIdx[e]>>8,n=this._subParamsIdx[e]&255;return n-t>0?this._subParams.subarray(t,n):null}getSubParamsAll(){let e={};for(let t=0;t>8,r=this._subParamsIdx[t]&255;r-n>0&&(e[t]=this._subParams.slice(n,r))}return e}addDigit(e){let t;if(this._rejectDigits||!(t=this._digitIsSub?this._subParamsLength:this.length)||this._digitIsSub&&this._rejectSubDigits)return;let n=this._digitIsSub?this._subParams:this.params,r=n[t-1];n[t-1]=~r?Math.min(r*10+e,xs):e}},ws=[],Ts=class{constructor(){this._state=0,this._active=ws,this._id=-1,this._handlers=Object.create(null),this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}registerHandler(e,t){this._handlers[e]===void 0&&(this._handlers[e]=[]);let n=this._handlers[e];return n.push(t),{dispose:()=>{let e=n.indexOf(t);e!==-1&&n.splice(e,1)}}}clearHandler(e){this._handlers[e]&&delete this._handlers[e]}setHandlerFallback(e){this._handlerFb=e}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=ws}reset(){if(this._state===2)for(let e=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;e>=0;--e)this._active[e].end(!1);this._stack.paused=!1,this._active=ws,this._id=-1,this._state=0}_start(){if(this._active=this._handlers[this._id]||ws,!this._active.length)this._handlerFb(this._id,`START`);else for(let e=this._active.length-1;e>=0;e--)this._active[e].start()}_put(e,t,n){if(!this._active.length)this._handlerFb(this._id,`PUT`,ze(e,t,n));else for(let r=this._active.length-1;r>=0;r--)this._active[r].put(e,t,n)}start(){this.reset(),this._state=1}put(e,t,n){if(this._state!==3){if(this._state===1)for(;t0&&this._put(e,t,n)}}end(e,t=!0){if(this._state!==0){if(this._state!==3)if(this._state===1&&this._start(),!this._active.length)this._handlerFb(this._id,`END`,e);else{let n=!1,r=this._active.length-1,i=!1;if(this._stack.paused&&(r=this._stack.loopPosition-1,n=t,i=this._stack.fallThrough,this._stack.paused=!1),!i&&n===!1){for(;r>=0&&(n=this._active[r].end(e),n!==!0);r--)if(n instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=r,this._stack.fallThrough=!1,n;r--}for(;r>=0;r--)if(n=this._active[r].end(!1),n instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=r,this._stack.fallThrough=!0,n}this._active=ws,this._id=-1,this._state=0}}},Es=class{constructor(e){this._handler=e,this._data=``,this._hitLimit=!1}start(){this._data=``,this._hitLimit=!1}put(e,t,n){this._hitLimit||(this._data+=ze(e,t,n),this._data.length>1e7&&(this._data=``,this._hitLimit=!0))}end(e){let t=!1;if(this._hitLimit)t=!1;else if(e&&(t=this._handler(this._data),t instanceof Promise))return t.then(e=>(this._data=``,this._hitLimit=!1,e));return this._data=``,this._hitLimit=!1,t}},Ds=[],Os=class{constructor(){this._handlers=Object.create(null),this._active=Ds,this._ident=0,this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=Ds}registerHandler(e,t){this._handlers[e]===void 0&&(this._handlers[e]=[]);let n=this._handlers[e];return n.push(t),{dispose:()=>{let e=n.indexOf(t);e!==-1&&n.splice(e,1)}}}clearHandler(e){this._handlers[e]&&delete this._handlers[e]}setHandlerFallback(e){this._handlerFb=e}reset(){if(this._active.length)for(let e=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;e>=0;--e)this._active[e].unhook(!1);this._stack.paused=!1,this._active=Ds,this._ident=0}hook(e,t){if(this.reset(),this._ident=e,this._active=this._handlers[e]||Ds,!this._active.length)this._handlerFb(this._ident,`HOOK`,t);else for(let e=this._active.length-1;e>=0;e--)this._active[e].hook(t)}put(e,t,n){if(!this._active.length)this._handlerFb(this._ident,`PUT`,ze(e,t,n));else for(let r=this._active.length-1;r>=0;r--)this._active[r].put(e,t,n)}unhook(e,t=!0){if(!this._active.length)this._handlerFb(this._ident,`UNHOOK`,e);else{let n=!1,r=this._active.length-1,i=!1;if(this._stack.paused&&(r=this._stack.loopPosition-1,n=t,i=this._stack.fallThrough,this._stack.paused=!1),!i&&n===!1){for(;r>=0&&(n=this._active[r].unhook(e),n!==!0);r--)if(n instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=r,this._stack.fallThrough=!1,n;r--}for(;r>=0;r--)if(n=this._active[r].unhook(!1),n instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=r,this._stack.fallThrough=!0,n}this._active=Ds,this._ident=0}},ks=new Cs;ks.addParam(0);var As=class{constructor(e){this._handler=e,this._data=``,this._params=ks,this._hitLimit=!1}hook(e){this._params=e.length>1||e.params[0]?e.clone():ks,this._data=``,this._hitLimit=!1}put(e,t,n){this._hitLimit||(this._data+=ze(e,t,n),this._data.length>1e7&&(this._data=``,this._hitLimit=!0))}unhook(e){let t=!1;if(this._hitLimit)t=!1;else if(e&&(t=this._handler(this._data,this._params),t instanceof Promise))return t.then(e=>(this._params=ks,this._data=``,this._hitLimit=!1,e));return this._params=ks,this._data=``,this._hitLimit=!1,t}},js=class{constructor(e){this.table=new Uint8Array(e)}setDefault(e,t){this.table.fill(e<<4|t)}add(e,t,n,r){this.table[t<<8|e]=n<<4|r}addMany(e,t,n,r){for(let i=0;it),n=(e,n)=>t.slice(e,n),r=n(32,127),i=n(0,24);i.push(25),i.push.apply(i,n(28,32));let a=n(0,14),o;for(o in e.setDefault(1,0),e.addMany(r,0,2,0),a)e.addMany([24,26,153,154],o,3,0),e.addMany(n(128,144),o,3,0),e.addMany(n(144,152),o,3,0),e.add(156,o,0,0),e.add(27,o,11,1),e.add(157,o,4,8),e.addMany([152,158,159],o,0,7),e.add(155,o,11,3),e.add(144,o,11,9);return e.addMany(i,0,3,0),e.addMany(i,1,3,1),e.add(127,1,0,1),e.addMany(i,8,0,8),e.addMany(i,3,3,3),e.add(127,3,0,3),e.addMany(i,4,3,4),e.add(127,4,0,4),e.addMany(i,6,3,6),e.addMany(i,5,3,5),e.add(127,5,0,5),e.addMany(i,2,3,2),e.add(127,2,0,2),e.add(93,1,4,8),e.addMany(r,8,5,8),e.add(127,8,5,8),e.addMany([156,27,24,26,7],8,6,0),e.addMany(n(28,32),8,0,8),e.addMany([88,94,95],1,0,7),e.addMany(r,7,0,7),e.addMany(i,7,0,7),e.add(156,7,0,0),e.add(127,7,0,7),e.add(91,1,11,3),e.addMany(n(64,127),3,7,0),e.addMany(n(48,60),3,8,4),e.addMany([60,61,62,63],3,9,4),e.addMany(n(48,60),4,8,4),e.addMany(n(64,127),4,7,0),e.addMany([60,61,62,63],4,0,6),e.addMany(n(32,64),6,0,6),e.add(127,6,0,6),e.addMany(n(64,127),6,0,0),e.addMany(n(32,48),3,9,5),e.addMany(n(32,48),5,9,5),e.addMany(n(48,64),5,0,6),e.addMany(n(64,127),5,7,0),e.addMany(n(32,48),4,9,5),e.addMany(n(32,48),1,9,2),e.addMany(n(32,48),2,9,2),e.addMany(n(48,127),2,10,0),e.addMany(n(48,80),1,10,0),e.addMany(n(81,88),1,10,0),e.addMany([89,90,92],1,10,0),e.addMany(n(96,127),1,10,0),e.add(80,1,11,9),e.addMany(i,9,0,9),e.add(127,9,0,9),e.addMany(n(28,32),9,0,9),e.addMany(n(32,48),9,9,12),e.addMany(n(48,60),9,8,10),e.addMany([60,61,62,63],9,9,10),e.addMany(i,11,0,11),e.addMany(n(32,128),11,0,11),e.addMany(n(28,32),11,0,11),e.addMany(i,10,0,10),e.add(127,10,0,10),e.addMany(n(28,32),10,0,10),e.addMany(n(48,60),10,8,10),e.addMany([60,61,62,63],10,0,11),e.addMany(n(32,48),10,9,12),e.addMany(i,12,0,12),e.add(127,12,0,12),e.addMany(n(28,32),12,0,12),e.addMany(n(32,48),12,9,12),e.addMany(n(48,64),12,0,11),e.addMany(n(64,127),12,12,13),e.addMany(n(64,127),10,12,13),e.addMany(n(64,127),9,12,13),e.addMany(i,13,13,13),e.addMany(r,13,13,13),e.add(127,13,0,13),e.addMany([27,156,24,26],13,14,0),e.add(Ms,0,2,0),e.add(Ms,8,5,8),e.add(Ms,6,0,6),e.add(Ms,11,0,11),e.add(Ms,13,13,13),e}(),Ps=class extends M{constructor(e=Ns){super(),this._transitions=e,this._parseStack={state:0,handlers:[],handlerPos:0,transition:0,chunkPos:0},this.initialState=0,this.currentState=this.initialState,this._params=new Cs,this._params.addParam(0),this._collect=0,this.precedingJoinState=0,this._printHandlerFb=(e,t,n)=>{},this._executeHandlerFb=e=>{},this._csiHandlerFb=(e,t)=>{},this._escHandlerFb=e=>{},this._errorHandlerFb=e=>e,this._printHandler=this._printHandlerFb,this._executeHandlers=Object.create(null),this._csiHandlers=Object.create(null),this._escHandlers=Object.create(null),this._register(j(()=>{this._csiHandlers=Object.create(null),this._executeHandlers=Object.create(null),this._escHandlers=Object.create(null)})),this._oscParser=this._register(new Ts),this._dcsParser=this._register(new Os),this._errorHandler=this._errorHandlerFb,this.registerEscHandler({final:`\\`},()=>!0)}_identifier(e,t=[64,126]){let n=0;if(e.prefix){if(e.prefix.length>1)throw Error(`only one byte as prefix supported`);if(n=e.prefix.charCodeAt(0),n&&60>n||n>63)throw Error(`prefix must be in range 0x3c .. 0x3f`)}if(e.intermediates){if(e.intermediates.length>2)throw Error(`only two bytes as intermediates are supported`);for(let t=0;tr||r>47)throw Error(`intermediate must be in range 0x20 .. 0x2f`);n<<=8,n|=r}}if(e.final.length!==1)throw Error(`final must be a single byte`);let r=e.final.charCodeAt(0);if(t[0]>r||r>t[1])throw Error(`final must be in range ${t[0]} .. ${t[1]}`);return n<<=8,n|=r,n}identToString(e){let t=[];for(;e;)t.push(String.fromCharCode(e&255)),e>>=8;return t.reverse().join(``)}setPrintHandler(e){this._printHandler=e}clearPrintHandler(){this._printHandler=this._printHandlerFb}registerEscHandler(e,t){let n=this._identifier(e,[48,126]);this._escHandlers[n]===void 0&&(this._escHandlers[n]=[]);let r=this._escHandlers[n];return r.push(t),{dispose:()=>{let e=r.indexOf(t);e!==-1&&r.splice(e,1)}}}clearEscHandler(e){this._escHandlers[this._identifier(e,[48,126])]&&delete this._escHandlers[this._identifier(e,[48,126])]}setEscHandlerFallback(e){this._escHandlerFb=e}setExecuteHandler(e,t){this._executeHandlers[e.charCodeAt(0)]=t}clearExecuteHandler(e){this._executeHandlers[e.charCodeAt(0)]&&delete this._executeHandlers[e.charCodeAt(0)]}setExecuteHandlerFallback(e){this._executeHandlerFb=e}registerCsiHandler(e,t){let n=this._identifier(e);this._csiHandlers[n]===void 0&&(this._csiHandlers[n]=[]);let r=this._csiHandlers[n];return r.push(t),{dispose:()=>{let e=r.indexOf(t);e!==-1&&r.splice(e,1)}}}clearCsiHandler(e){this._csiHandlers[this._identifier(e)]&&delete this._csiHandlers[this._identifier(e)]}setCsiHandlerFallback(e){this._csiHandlerFb=e}registerDcsHandler(e,t){return this._dcsParser.registerHandler(this._identifier(e),t)}clearDcsHandler(e){this._dcsParser.clearHandler(this._identifier(e))}setDcsHandlerFallback(e){this._dcsParser.setHandlerFallback(e)}registerOscHandler(e,t){return this._oscParser.registerHandler(e,t)}clearOscHandler(e){this._oscParser.clearHandler(e)}setOscHandlerFallback(e){this._oscParser.setHandlerFallback(e)}setErrorHandler(e){this._errorHandler=e}clearErrorHandler(){this._errorHandler=this._errorHandlerFb}reset(){this.currentState=this.initialState,this._oscParser.reset(),this._dcsParser.reset(),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingJoinState=0,this._parseStack.state!==0&&(this._parseStack.state=2,this._parseStack.handlers=[])}_preserveStack(e,t,n,r,i){this._parseStack.state=e,this._parseStack.handlers=t,this._parseStack.handlerPos=n,this._parseStack.transition=r,this._parseStack.chunkPos=i}parse(e,t,n){let r=0,i=0,a=0,o;if(this._parseStack.state)if(this._parseStack.state===2)this._parseStack.state=0,a=this._parseStack.chunkPos+1;else{if(n===void 0||this._parseStack.state===1)throw this._parseStack.state=1,Error(`improper continuation due to previous async handler, giving up parsing`);let t=this._parseStack.handlers,i=this._parseStack.handlerPos-1;switch(this._parseStack.state){case 3:if(n===!1&&i>-1){for(;i>=0&&(o=t[i](this._params),o!==!0);i--)if(o instanceof Promise)return this._parseStack.handlerPos=i,o}this._parseStack.handlers=[];break;case 4:if(n===!1&&i>-1){for(;i>=0&&(o=t[i](),o!==!0);i--)if(o instanceof Promise)return this._parseStack.handlerPos=i,o}this._parseStack.handlers=[];break;case 6:if(r=e[this._parseStack.chunkPos],o=this._dcsParser.unhook(r!==24&&r!==26,n),o)return o;r===27&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0;break;case 5:if(r=e[this._parseStack.chunkPos],o=this._oscParser.end(r!==24&&r!==26,n),o)return o;r===27&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0;break}this._parseStack.state=0,a=this._parseStack.chunkPos+1,this.precedingJoinState=0,this.currentState=this._parseStack.transition&15}for(let n=a;n>4){case 2:for(let i=n+1;;++i){if(i>=t||(r=e[i])<32||r>126&&r=t||(r=e[i])<32||r>126&&r=t||(r=e[i])<32||r>126&&r=t||(r=e[i])<32||r>126&&r=0&&(o=a[s](this._params),o!==!0);s--)if(o instanceof Promise)return this._preserveStack(3,a,s,i,n),o;s<0&&this._csiHandlerFb(this._collect<<8|r,this._params),this.precedingJoinState=0;break;case 8:do switch(r){case 59:this._params.addParam(0);break;case 58:this._params.addSubParam(-1);break;default:this._params.addDigit(r-48)}while(++n47&&r<60);n--;break;case 9:this._collect<<=8,this._collect|=r;break;case 10:let c=this._escHandlers[this._collect<<8|r],l=c?c.length-1:-1;for(;l>=0&&(o=c[l](),o!==!0);l--)if(o instanceof Promise)return this._preserveStack(4,c,l,i,n),o;l<0&&this._escHandlerFb(this._collect<<8|r),this.precedingJoinState=0;break;case 11:this._params.reset(),this._params.addParam(0),this._collect=0;break;case 12:this._dcsParser.hook(this._collect<<8|r,this._params);break;case 13:for(let i=n+1;;++i)if(i>=t||(r=e[i])===24||r===26||r===27||r>127&&r=t||(r=e[i])<32||r>127&&r>4:i>>8}return n}}function Rs(e,t){let n=e.toString(16),r=n.length<2?`0`+n:n;switch(t){case 4:return n[0];case 8:return r;case 12:return(r+r).slice(0,3);default:return r+r}}function zs(e,t=16){let[n,r,i]=e;return`rgb:${Rs(n,t)}/${Rs(r,t)}/${Rs(i,t)}`}var Bs={"(":0,")":1,"*":2,"+":3,"-":1,".":2},Vs=131072,Hs=10;function Us(e,t){if(e>24)return t.setWinLines||!1;switch(e){case 1:return!!t.restoreWin;case 2:return!!t.minimizeWin;case 3:return!!t.setWinPosition;case 4:return!!t.setWinSizePixels;case 5:return!!t.raiseWin;case 6:return!!t.lowerWin;case 7:return!!t.refreshWin;case 8:return!!t.setWinSizeChars;case 9:return!!t.maximizeWin;case 10:return!!t.fullscreenWin;case 11:return!!t.getWinState;case 13:return!!t.getWinPosition;case 14:return!!t.getWinSizePixels;case 15:return!!t.getScreenSizePixels;case 16:return!!t.getCellSizePixels;case 18:return!!t.getWinSizeChars;case 19:return!!t.getScreenSizeChars;case 20:return!!t.getIconTitle;case 21:return!!t.getWinTitle;case 22:return!!t.pushTitle;case 23:return!!t.popTitle;case 24:return!!t.setWinLines}return!1}var Ws=5e3,Gs=0,Ks=class extends M{constructor(e,t,n,r,i,a,o,s,c=new Ps){super(),this._bufferService=e,this._charsetService=t,this._coreService=n,this._logService=r,this._optionsService=i,this._oscLinkService=a,this._coreMouseService=o,this._unicodeService=s,this._parser=c,this._parseBuffer=new Uint32Array(4096),this._stringDecoder=new Be,this._utf8Decoder=new Ve,this._windowTitle=``,this._iconName=``,this._windowTitleStack=[],this._iconNameStack=[],this._curAttrData=Y.clone(),this._eraseAttrDataInternal=Y.clone(),this._onRequestBell=this._register(new F),this.onRequestBell=this._onRequestBell.event,this._onRequestRefreshRows=this._register(new F),this.onRequestRefreshRows=this._onRequestRefreshRows.event,this._onRequestReset=this._register(new F),this.onRequestReset=this._onRequestReset.event,this._onRequestSendFocus=this._register(new F),this.onRequestSendFocus=this._onRequestSendFocus.event,this._onRequestSyncScrollBar=this._register(new F),this.onRequestSyncScrollBar=this._onRequestSyncScrollBar.event,this._onRequestWindowsOptionsReport=this._register(new F),this.onRequestWindowsOptionsReport=this._onRequestWindowsOptionsReport.event,this._onA11yChar=this._register(new F),this.onA11yChar=this._onA11yChar.event,this._onA11yTab=this._register(new F),this.onA11yTab=this._onA11yTab.event,this._onCursorMove=this._register(new F),this.onCursorMove=this._onCursorMove.event,this._onLineFeed=this._register(new F),this.onLineFeed=this._onLineFeed.event,this._onScroll=this._register(new F),this.onScroll=this._onScroll.event,this._onTitleChange=this._register(new F),this.onTitleChange=this._onTitleChange.event,this._onColor=this._register(new F),this.onColor=this._onColor.event,this._parseStack={paused:!1,cursorStartX:0,cursorStartY:0,decodedLength:0,position:0},this._specialColors=[256,257,258],this._register(this._parser),this._dirtyRowTracker=new qs(this._bufferService),this._activeBuffer=this._bufferService.buffer,this._register(this._bufferService.buffers.onBufferActivate(e=>this._activeBuffer=e.activeBuffer)),this._parser.setCsiHandlerFallback((e,t)=>{this._logService.debug(`Unknown CSI code: `,{identifier:this._parser.identToString(e),params:t.toArray()})}),this._parser.setEscHandlerFallback(e=>{this._logService.debug(`Unknown ESC code: `,{identifier:this._parser.identToString(e)})}),this._parser.setExecuteHandlerFallback(e=>{this._logService.debug(`Unknown EXECUTE code: `,{code:e})}),this._parser.setOscHandlerFallback((e,t,n)=>{this._logService.debug(`Unknown OSC code: `,{identifier:e,action:t,data:n})}),this._parser.setDcsHandlerFallback((e,t,n)=>{t===`HOOK`&&(n=n.toArray()),this._logService.debug(`Unknown DCS code: `,{identifier:this._parser.identToString(e),action:t,payload:n})}),this._parser.setPrintHandler((e,t,n)=>this.print(e,t,n)),this._parser.registerCsiHandler({final:`@`},e=>this.insertChars(e)),this._parser.registerCsiHandler({intermediates:` `,final:`@`},e=>this.scrollLeft(e)),this._parser.registerCsiHandler({final:`A`},e=>this.cursorUp(e)),this._parser.registerCsiHandler({intermediates:` `,final:`A`},e=>this.scrollRight(e)),this._parser.registerCsiHandler({final:`B`},e=>this.cursorDown(e)),this._parser.registerCsiHandler({final:`C`},e=>this.cursorForward(e)),this._parser.registerCsiHandler({final:`D`},e=>this.cursorBackward(e)),this._parser.registerCsiHandler({final:`E`},e=>this.cursorNextLine(e)),this._parser.registerCsiHandler({final:`F`},e=>this.cursorPrecedingLine(e)),this._parser.registerCsiHandler({final:`G`},e=>this.cursorCharAbsolute(e)),this._parser.registerCsiHandler({final:`H`},e=>this.cursorPosition(e)),this._parser.registerCsiHandler({final:`I`},e=>this.cursorForwardTab(e)),this._parser.registerCsiHandler({final:`J`},e=>this.eraseInDisplay(e,!1)),this._parser.registerCsiHandler({prefix:`?`,final:`J`},e=>this.eraseInDisplay(e,!0)),this._parser.registerCsiHandler({final:`K`},e=>this.eraseInLine(e,!1)),this._parser.registerCsiHandler({prefix:`?`,final:`K`},e=>this.eraseInLine(e,!0)),this._parser.registerCsiHandler({final:`L`},e=>this.insertLines(e)),this._parser.registerCsiHandler({final:`M`},e=>this.deleteLines(e)),this._parser.registerCsiHandler({final:`P`},e=>this.deleteChars(e)),this._parser.registerCsiHandler({final:`S`},e=>this.scrollUp(e)),this._parser.registerCsiHandler({final:`T`},e=>this.scrollDown(e)),this._parser.registerCsiHandler({final:`X`},e=>this.eraseChars(e)),this._parser.registerCsiHandler({final:`Z`},e=>this.cursorBackwardTab(e)),this._parser.registerCsiHandler({final:"`"},e=>this.charPosAbsolute(e)),this._parser.registerCsiHandler({final:`a`},e=>this.hPositionRelative(e)),this._parser.registerCsiHandler({final:`b`},e=>this.repeatPrecedingCharacter(e)),this._parser.registerCsiHandler({final:`c`},e=>this.sendDeviceAttributesPrimary(e)),this._parser.registerCsiHandler({prefix:`>`,final:`c`},e=>this.sendDeviceAttributesSecondary(e)),this._parser.registerCsiHandler({final:`d`},e=>this.linePosAbsolute(e)),this._parser.registerCsiHandler({final:`e`},e=>this.vPositionRelative(e)),this._parser.registerCsiHandler({final:`f`},e=>this.hVPosition(e)),this._parser.registerCsiHandler({final:`g`},e=>this.tabClear(e)),this._parser.registerCsiHandler({final:`h`},e=>this.setMode(e)),this._parser.registerCsiHandler({prefix:`?`,final:`h`},e=>this.setModePrivate(e)),this._parser.registerCsiHandler({final:`l`},e=>this.resetMode(e)),this._parser.registerCsiHandler({prefix:`?`,final:`l`},e=>this.resetModePrivate(e)),this._parser.registerCsiHandler({final:`m`},e=>this.charAttributes(e)),this._parser.registerCsiHandler({final:`n`},e=>this.deviceStatus(e)),this._parser.registerCsiHandler({prefix:`?`,final:`n`},e=>this.deviceStatusPrivate(e)),this._parser.registerCsiHandler({intermediates:`!`,final:`p`},e=>this.softReset(e)),this._parser.registerCsiHandler({intermediates:` `,final:`q`},e=>this.setCursorStyle(e)),this._parser.registerCsiHandler({final:`r`},e=>this.setScrollRegion(e)),this._parser.registerCsiHandler({final:`s`},e=>this.saveCursor(e)),this._parser.registerCsiHandler({final:`t`},e=>this.windowOptions(e)),this._parser.registerCsiHandler({final:`u`},e=>this.restoreCursor(e)),this._parser.registerCsiHandler({intermediates:`'`,final:`}`},e=>this.insertColumns(e)),this._parser.registerCsiHandler({intermediates:`'`,final:`~`},e=>this.deleteColumns(e)),this._parser.registerCsiHandler({intermediates:`"`,final:`q`},e=>this.selectProtected(e)),this._parser.registerCsiHandler({intermediates:`$`,final:`p`},e=>this.requestMode(e,!0)),this._parser.registerCsiHandler({prefix:`?`,intermediates:`$`,final:`p`},e=>this.requestMode(e,!1)),this._parser.setExecuteHandler(R.BEL,()=>this.bell()),this._parser.setExecuteHandler(R.LF,()=>this.lineFeed()),this._parser.setExecuteHandler(R.VT,()=>this.lineFeed()),this._parser.setExecuteHandler(R.FF,()=>this.lineFeed()),this._parser.setExecuteHandler(R.CR,()=>this.carriageReturn()),this._parser.setExecuteHandler(R.BS,()=>this.backspace()),this._parser.setExecuteHandler(R.HT,()=>this.tab()),this._parser.setExecuteHandler(R.SO,()=>this.shiftOut()),this._parser.setExecuteHandler(R.SI,()=>this.shiftIn()),this._parser.setExecuteHandler(Ji.IND,()=>this.index()),this._parser.setExecuteHandler(Ji.NEL,()=>this.nextLine()),this._parser.setExecuteHandler(Ji.HTS,()=>this.tabSet()),this._parser.registerOscHandler(0,new Es(e=>(this.setTitle(e),this.setIconName(e),!0))),this._parser.registerOscHandler(1,new Es(e=>this.setIconName(e))),this._parser.registerOscHandler(2,new Es(e=>this.setTitle(e))),this._parser.registerOscHandler(4,new Es(e=>this.setOrReportIndexedColor(e))),this._parser.registerOscHandler(8,new Es(e=>this.setHyperlink(e))),this._parser.registerOscHandler(10,new Es(e=>this.setOrReportFgColor(e))),this._parser.registerOscHandler(11,new Es(e=>this.setOrReportBgColor(e))),this._parser.registerOscHandler(12,new Es(e=>this.setOrReportCursorColor(e))),this._parser.registerOscHandler(104,new Es(e=>this.restoreIndexedColor(e))),this._parser.registerOscHandler(110,new Es(e=>this.restoreFgColor(e))),this._parser.registerOscHandler(111,new Es(e=>this.restoreBgColor(e))),this._parser.registerOscHandler(112,new Es(e=>this.restoreCursorColor(e))),this._parser.registerEscHandler({final:`7`},()=>this.saveCursor()),this._parser.registerEscHandler({final:`8`},()=>this.restoreCursor()),this._parser.registerEscHandler({final:`D`},()=>this.index()),this._parser.registerEscHandler({final:`E`},()=>this.nextLine()),this._parser.registerEscHandler({final:`H`},()=>this.tabSet()),this._parser.registerEscHandler({final:`M`},()=>this.reverseIndex()),this._parser.registerEscHandler({final:`=`},()=>this.keypadApplicationMode()),this._parser.registerEscHandler({final:`>`},()=>this.keypadNumericMode()),this._parser.registerEscHandler({final:`c`},()=>this.fullReset()),this._parser.registerEscHandler({final:`n`},()=>this.setgLevel(2)),this._parser.registerEscHandler({final:`o`},()=>this.setgLevel(3)),this._parser.registerEscHandler({final:`|`},()=>this.setgLevel(3)),this._parser.registerEscHandler({final:`}`},()=>this.setgLevel(2)),this._parser.registerEscHandler({final:`~`},()=>this.setgLevel(1)),this._parser.registerEscHandler({intermediates:`%`,final:`@`},()=>this.selectDefaultCharset()),this._parser.registerEscHandler({intermediates:`%`,final:`G`},()=>this.selectDefaultCharset());for(let e in X)this._parser.registerEscHandler({intermediates:`(`,final:e},()=>this.selectCharset(`(`+e)),this._parser.registerEscHandler({intermediates:`)`,final:e},()=>this.selectCharset(`)`+e)),this._parser.registerEscHandler({intermediates:`*`,final:e},()=>this.selectCharset(`*`+e)),this._parser.registerEscHandler({intermediates:`+`,final:e},()=>this.selectCharset(`+`+e)),this._parser.registerEscHandler({intermediates:`-`,final:e},()=>this.selectCharset(`-`+e)),this._parser.registerEscHandler({intermediates:`.`,final:e},()=>this.selectCharset(`.`+e)),this._parser.registerEscHandler({intermediates:`/`,final:e},()=>this.selectCharset(`/`+e));this._parser.registerEscHandler({intermediates:`#`,final:`8`},()=>this.screenAlignmentPattern()),this._parser.setErrorHandler(e=>(this._logService.error(`Parsing error: `,e),e)),this._parser.registerDcsHandler({intermediates:`$`,final:`q`},new As((e,t)=>this.requestStatusString(e,t)))}getAttrData(){return this._curAttrData}_preserveStack(e,t,n,r){this._parseStack.paused=!0,this._parseStack.cursorStartX=e,this._parseStack.cursorStartY=t,this._parseStack.decodedLength=n,this._parseStack.position=r}_logSlowResolvingAsync(e){this._logService.logLevel<=3&&Promise.race([e,new Promise((e,t)=>setTimeout(()=>t(`#SLOW_TIMEOUT`),Ws))]).catch(e=>{if(e!==`#SLOW_TIMEOUT`)throw e;console.warn(`async parser handler taking longer than ${Ws} ms`)})}_getCurrentLinkId(){return this._curAttrData.extended.urlId}parse(e,t){let n,r=this._activeBuffer.x,i=this._activeBuffer.y,a=0,o=this._parseStack.paused;if(o){if(n=this._parser.parse(this._parseBuffer,this._parseStack.decodedLength,t))return this._logSlowResolvingAsync(n),n;r=this._parseStack.cursorStartX,i=this._parseStack.cursorStartY,this._parseStack.paused=!1,e.length>Vs&&(a=this._parseStack.position+Vs)}if(this._logService.logLevel<=1&&this._logService.debug(`parsing data ${typeof e==`string`?` "${e}"`:` "${Array.prototype.map.call(e,e=>String.fromCharCode(e)).join(``)}"`}`),this._logService.logLevel===0&&this._logService.trace(`parsing data (codes)`,typeof e==`string`?e.split(``).map(e=>e.charCodeAt(0)):e),this._parseBuffer.lengthVs)for(let t=a;t0&&d.getWidth(this._activeBuffer.x-1)===2&&d.setCellFromCodepoint(this._activeBuffer.x-1,0,1,u);let f=this._parser.precedingJoinState;for(let p=t;ps){if(c){let e=d,t=this._activeBuffer.x-m;for(this._activeBuffer.x=m,this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData(),!0)):(this._activeBuffer.y>=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!0),d=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y),m>0&&d instanceof Bo&&d.copyCellsFrom(e,t,0,m,!1);t=0;)d.setCellFromCodepoint(this._activeBuffer.x++,0,0,u);continue}if(l&&(d.insertCells(this._activeBuffer.x,i-m,this._activeBuffer.getNullCell(u)),d.getWidth(s-1)===2&&d.setCellFromCodepoint(s-1,0,1,u)),d.setCellFromCodepoint(this._activeBuffer.x++,r,i,u),i>0)for(;--i;)d.setCellFromCodepoint(this._activeBuffer.x++,0,0,u)}this._parser.precedingJoinState=f,this._activeBuffer.x0&&d.getWidth(this._activeBuffer.x)===0&&!d.hasContent(this._activeBuffer.x)&&d.setCellFromCodepoint(this._activeBuffer.x,0,1,u),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}registerCsiHandler(e,t){return e.final===`t`&&!e.prefix&&!e.intermediates?this._parser.registerCsiHandler(e,e=>Us(e.params[0],this._optionsService.rawOptions.windowOptions)?t(e):!0):this._parser.registerCsiHandler(e,t)}registerDcsHandler(e,t){return this._parser.registerDcsHandler(e,new As(t))}registerEscHandler(e,t){return this._parser.registerEscHandler(e,t)}registerOscHandler(e,t){return this._parser.registerOscHandler(e,new Es(t))}bell(){return this._onRequestBell.fire(),!0}lineFeed(){return this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._optionsService.rawOptions.convertEol&&(this._activeBuffer.x=0),this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData())):this._activeBuffer.y>=this._bufferService.rows?this._activeBuffer.y=this._bufferService.rows-1:this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.x>=this._bufferService.cols&&this._activeBuffer.x--,this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._onLineFeed.fire(),!0}carriageReturn(){return this._activeBuffer.x=0,!0}backspace(){if(!this._coreService.decPrivateModes.reverseWraparound)return this._restrictCursor(),this._activeBuffer.x>0&&this._activeBuffer.x--,!0;if(this._restrictCursor(this._bufferService.cols),this._activeBuffer.x>0)this._activeBuffer.x--;else if(this._activeBuffer.x===0&&this._activeBuffer.y>this._activeBuffer.scrollTop&&this._activeBuffer.y<=this._activeBuffer.scrollBottom&&this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y)?.isWrapped){this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.y--,this._activeBuffer.x=this._bufferService.cols-1;let e=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);e.hasWidth(this._activeBuffer.x)&&!e.hasContent(this._activeBuffer.x)&&this._activeBuffer.x--}return this._restrictCursor(),!0}tab(){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let e=this._activeBuffer.x;return this._activeBuffer.x=this._activeBuffer.nextStop(),this._optionsService.rawOptions.screenReaderMode&&this._onA11yTab.fire(this._activeBuffer.x-e),!0}shiftOut(){return this._charsetService.setgLevel(1),!0}shiftIn(){return this._charsetService.setgLevel(0),!0}_restrictCursor(e=this._bufferService.cols-1){this._activeBuffer.x=Math.min(e,Math.max(0,this._activeBuffer.x)),this._activeBuffer.y=this._coreService.decPrivateModes.origin?Math.min(this._activeBuffer.scrollBottom,Math.max(this._activeBuffer.scrollTop,this._activeBuffer.y)):Math.min(this._bufferService.rows-1,Math.max(0,this._activeBuffer.y)),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_setCursor(e,t){this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._coreService.decPrivateModes.origin?(this._activeBuffer.x=e,this._activeBuffer.y=this._activeBuffer.scrollTop+t):(this._activeBuffer.x=e,this._activeBuffer.y=t),this._restrictCursor(),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_moveCursor(e,t){this._restrictCursor(),this._setCursor(this._activeBuffer.x+e,this._activeBuffer.y+t)}cursorUp(e){let t=this._activeBuffer.y-this._activeBuffer.scrollTop;return t>=0?this._moveCursor(0,-Math.min(t,e.params[0]||1)):this._moveCursor(0,-(e.params[0]||1)),!0}cursorDown(e){let t=this._activeBuffer.scrollBottom-this._activeBuffer.y;return t>=0?this._moveCursor(0,Math.min(t,e.params[0]||1)):this._moveCursor(0,e.params[0]||1),!0}cursorForward(e){return this._moveCursor(e.params[0]||1,0),!0}cursorBackward(e){return this._moveCursor(-(e.params[0]||1),0),!0}cursorNextLine(e){return this.cursorDown(e),this._activeBuffer.x=0,!0}cursorPrecedingLine(e){return this.cursorUp(e),this._activeBuffer.x=0,!0}cursorCharAbsolute(e){return this._setCursor((e.params[0]||1)-1,this._activeBuffer.y),!0}cursorPosition(e){return this._setCursor(e.length>=2?(e.params[1]||1)-1:0,(e.params[0]||1)-1),!0}charPosAbsolute(e){return this._setCursor((e.params[0]||1)-1,this._activeBuffer.y),!0}hPositionRelative(e){return this._moveCursor(e.params[0]||1,0),!0}linePosAbsolute(e){return this._setCursor(this._activeBuffer.x,(e.params[0]||1)-1),!0}vPositionRelative(e){return this._moveCursor(0,e.params[0]||1),!0}hVPosition(e){return this.cursorPosition(e),!0}tabClear(e){let t=e.params[0];return t===0?delete this._activeBuffer.tabs[this._activeBuffer.x]:t===3&&(this._activeBuffer.tabs={}),!0}cursorForwardTab(e){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let t=e.params[0]||1;for(;t--;)this._activeBuffer.x=this._activeBuffer.nextStop();return!0}cursorBackwardTab(e){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let t=e.params[0]||1;for(;t--;)this._activeBuffer.x=this._activeBuffer.prevStop();return!0}selectProtected(e){let t=e.params[0];return t===1&&(this._curAttrData.bg|=536870912),(t===2||t===0)&&(this._curAttrData.bg&=-536870913),!0}_eraseInBufferLine(e,t,n,r=!1,i=!1){let a=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);a.replaceCells(t,n,this._activeBuffer.getNullCell(this._eraseAttrData()),i),r&&(a.isWrapped=!1)}_resetBufferLine(e,t=!1){let n=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);n&&(n.fill(this._activeBuffer.getNullCell(this._eraseAttrData()),t),this._bufferService.buffer.clearMarkers(this._activeBuffer.ybase+e),n.isWrapped=!1)}eraseInDisplay(e,t=!1){this._restrictCursor(this._bufferService.cols);let n;switch(e.params[0]){case 0:for(n=this._activeBuffer.y,this._dirtyRowTracker.markDirty(n),this._eraseInBufferLine(n++,this._activeBuffer.x,this._bufferService.cols,this._activeBuffer.x===0,t);n=this._bufferService.cols&&(this._activeBuffer.lines.get(n+1).isWrapped=!1);n--;)this._resetBufferLine(n,t);this._dirtyRowTracker.markDirty(0);break;case 2:if(this._optionsService.rawOptions.scrollOnEraseInDisplay){for(n=this._bufferService.rows,this._dirtyRowTracker.markRangeDirty(0,n-1);n--&&!this._activeBuffer.lines.get(this._activeBuffer.ybase+n)?.getTrimmedLength(););for(;n>=0;n--)this._bufferService.scroll(this._eraseAttrData())}else{for(n=this._bufferService.rows,this._dirtyRowTracker.markDirty(n-1);n--;)this._resetBufferLine(n,t);this._dirtyRowTracker.markDirty(0)}break;case 3:let e=this._activeBuffer.lines.length-this._bufferService.rows;e>0&&(this._activeBuffer.lines.trimStart(e),this._activeBuffer.ybase=Math.max(this._activeBuffer.ybase-e,0),this._activeBuffer.ydisp=Math.max(this._activeBuffer.ydisp-e,0),this._onScroll.fire(0));break}return!0}eraseInLine(e,t=!1){switch(this._restrictCursor(this._bufferService.cols),e.params[0]){case 0:this._eraseInBufferLine(this._activeBuffer.y,this._activeBuffer.x,this._bufferService.cols,this._activeBuffer.x===0,t);break;case 1:this._eraseInBufferLine(this._activeBuffer.y,0,this._activeBuffer.x+1,!1,t);break;case 2:this._eraseInBufferLine(this._activeBuffer.y,0,this._bufferService.cols,!0,t);break}return this._dirtyRowTracker.markDirty(this._activeBuffer.y),!0}insertLines(e){this._restrictCursor();let t=e.params[0]||1;if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.y65535?2:1}let c=s;for(let e=1;e0||(this._is(`xterm`)||this._is(`rxvt-unicode`)||this._is(`screen`)?this._coreService.triggerDataEvent(R.ESC+`[?1;2c`):this._is(`linux`)&&this._coreService.triggerDataEvent(R.ESC+`[?6c`)),!0}sendDeviceAttributesSecondary(e){return e.params[0]>0||(this._is(`xterm`)?this._coreService.triggerDataEvent(R.ESC+`[>0;276;0c`):this._is(`rxvt-unicode`)?this._coreService.triggerDataEvent(R.ESC+`[>85;95;0c`):this._is(`linux`)?this._coreService.triggerDataEvent(e.params[0]+`c`):this._is(`screen`)&&this._coreService.triggerDataEvent(R.ESC+`[>83;40003;0c`)),!0}_is(e){return(this._optionsService.rawOptions.termName+``).indexOf(e)===0}setMode(e){for(let t=0;t(e[e.NOT_RECOGNIZED=0]=`NOT_RECOGNIZED`,e[e.SET=1]=`SET`,e[e.RESET=2]=`RESET`,e[e.PERMANENTLY_SET=3]=`PERMANENTLY_SET`,e[e.PERMANENTLY_RESET=4]=`PERMANENTLY_RESET`))(n||={});let r=this._coreService.decPrivateModes,{activeProtocol:i,activeEncoding:a}=this._coreMouseService,o=this._coreService,{buffers:s,cols:c}=this._bufferService,{active:l,alt:u}=s,d=this._optionsService.rawOptions,f=(e,n)=>(o.triggerDataEvent(`${R.ESC}[${t?``:`?`}${e};${n}$y`),!0),p=e=>e?1:2,m=e.params[0];return t?m===2?f(m,4):m===4?f(m,p(o.modes.insertMode)):m===12?f(m,3):m===20?f(m,p(d.convertEol)):f(m,0):m===1?f(m,p(r.applicationCursorKeys)):m===3?f(m,d.windowOptions.setWinLines?c===80?2:+(c===132):0):m===6?f(m,p(r.origin)):m===7?f(m,p(r.wraparound)):m===8?f(m,3):m===9?f(m,p(i===`X10`)):m===12?f(m,p(d.cursorBlink)):m===25?f(m,p(!o.isCursorHidden)):m===45?f(m,p(r.reverseWraparound)):m===66?f(m,p(r.applicationKeypad)):m===67?f(m,4):m===1e3?f(m,p(i===`VT200`)):m===1002?f(m,p(i===`DRAG`)):m===1003?f(m,p(i===`ANY`)):m===1004?f(m,p(r.sendFocus)):m===1005?f(m,4):m===1006?f(m,p(a===`SGR`)):m===1015?f(m,4):m===1016?f(m,p(a===`SGR_PIXELS`)):m===1048?f(m,1):m===47||m===1047||m===1049?f(m,p(l===u)):m===2004?f(m,p(r.bracketedPasteMode)):m===2026?f(m,p(r.synchronizedOutput)):f(m,0)}_updateAttrColor(e,t,n,r,i){return t===2?(e|=50331648,e&=-16777216,e|=We.fromColorRGB([n,r,i])):t===5&&(e&=-50331904,e|=33554432|n&255),e}_extractColor(e,t,n){let r=[0,0,-1,0,0,0],i=0,a=0;do{if(r[a+i]=e.params[t+a],e.hasSubParams(t+a)){let n=e.getSubParams(t+a),o=0;do r[1]===5&&(i=1),r[a+o+1+i]=n[o];while(++o=2||r[1]===2&&a+i>=5)break;r[1]&&(i=1)}while(++a+t5)&&(e=1),t.extended.underlineStyle=e,t.fg|=268435456,e===0&&(t.fg&=-268435457),t.updateExtended()}_processSGR0(e){e.fg=Y.fg,e.bg=Y.bg,e.extended=e.extended.clone(),e.extended.underlineStyle=0,e.extended.underlineColor&=-67108864,e.updateExtended()}charAttributes(e){if(e.length===1&&e.params[0]===0)return this._processSGR0(this._curAttrData),!0;let t=e.length,n,r=this._curAttrData;for(let i=0;i=30&&n<=37?(r.fg&=-50331904,r.fg|=16777216|n-30):n>=40&&n<=47?(r.bg&=-50331904,r.bg|=16777216|n-40):n>=90&&n<=97?(r.fg&=-50331904,r.fg|=n-90|16777224):n>=100&&n<=107?(r.bg&=-50331904,r.bg|=n-100|16777224):n===0?this._processSGR0(r):n===1?r.fg|=134217728:n===3?r.bg|=67108864:n===4?(r.fg|=268435456,this._processUnderline(e.hasSubParams(i)?e.getSubParams(i)[0]:1,r)):n===5?r.fg|=536870912:n===7?r.fg|=67108864:n===8?r.fg|=1073741824:n===9?r.fg|=2147483648:n===2?r.bg|=134217728:n===21?this._processUnderline(2,r):n===22?(r.fg&=-134217729,r.bg&=-134217729):n===23?r.bg&=-67108865:n===24?(r.fg&=-268435457,this._processUnderline(0,r)):n===25?r.fg&=-536870913:n===27?r.fg&=-67108865:n===28?r.fg&=-1073741825:n===29?r.fg&=2147483647:n===39?(r.fg&=-67108864,r.fg|=Y.fg&16777215):n===49?(r.bg&=-67108864,r.bg|=Y.bg&16777215):n===38||n===48||n===58?i+=this._extractColor(e,i,r):n===53?r.bg|=1073741824:n===55?r.bg&=-1073741825:n===59?(r.extended=r.extended.clone(),r.extended.underlineColor=-1,r.updateExtended()):n===100?(r.fg&=-67108864,r.fg|=Y.fg&16777215,r.bg&=-67108864,r.bg|=Y.bg&16777215):this._logService.debug(`Unknown SGR attribute: %d.`,n);return!0}deviceStatus(e){switch(e.params[0]){case 5:this._coreService.triggerDataEvent(`${R.ESC}[0n`);break;case 6:let e=this._activeBuffer.y+1,t=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${R.ESC}[${e};${t}R`);break}return!0}deviceStatusPrivate(e){switch(e.params[0]){case 6:let e=this._activeBuffer.y+1,t=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${R.ESC}[?${e};${t}R`);break;case 15:break;case 25:break;case 26:break;case 53:break}return!0}softReset(e){return this._coreService.isCursorHidden=!1,this._onRequestSyncScrollBar.fire(),this._activeBuffer.scrollTop=0,this._activeBuffer.scrollBottom=this._bufferService.rows-1,this._curAttrData=Y.clone(),this._coreService.reset(),this._charsetService.reset(),this._activeBuffer.savedX=0,this._activeBuffer.savedY=this._activeBuffer.ybase,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,this._coreService.decPrivateModes.origin=!1,!0}setCursorStyle(e){let t=e.length===0?1:e.params[0];if(t===0)this._coreService.decPrivateModes.cursorStyle=void 0,this._coreService.decPrivateModes.cursorBlink=void 0;else{switch(t){case 1:case 2:this._coreService.decPrivateModes.cursorStyle=`block`;break;case 3:case 4:this._coreService.decPrivateModes.cursorStyle=`underline`;break;case 5:case 6:this._coreService.decPrivateModes.cursorStyle=`bar`;break}let e=t%2==1;this._coreService.decPrivateModes.cursorBlink=e}return!0}setScrollRegion(e){let t=e.params[0]||1,n;return(e.length<2||(n=e.params[1])>this._bufferService.rows||n===0)&&(n=this._bufferService.rows),n>t&&(this._activeBuffer.scrollTop=t-1,this._activeBuffer.scrollBottom=n-1,this._setCursor(0,0)),!0}windowOptions(e){if(!Us(e.params[0],this._optionsService.rawOptions.windowOptions))return!0;let t=e.length>1?e.params[1]:0;switch(e.params[0]){case 14:t!==2&&this._onRequestWindowsOptionsReport.fire(0);break;case 16:this._onRequestWindowsOptionsReport.fire(1);break;case 18:this._bufferService&&this._coreService.triggerDataEvent(`${R.ESC}[8;${this._bufferService.rows};${this._bufferService.cols}t`);break;case 22:(t===0||t===2)&&(this._windowTitleStack.push(this._windowTitle),this._windowTitleStack.length>Hs&&this._windowTitleStack.shift()),(t===0||t===1)&&(this._iconNameStack.push(this._iconName),this._iconNameStack.length>Hs&&this._iconNameStack.shift());break;case 23:(t===0||t===2)&&this._windowTitleStack.length&&this.setTitle(this._windowTitleStack.pop()),(t===0||t===1)&&this._iconNameStack.length&&this.setIconName(this._iconNameStack.pop());break}return!0}saveCursor(e){return this._activeBuffer.savedX=this._activeBuffer.x,this._activeBuffer.savedY=this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,!0}restoreCursor(e){return this._activeBuffer.x=this._activeBuffer.savedX||0,this._activeBuffer.y=Math.max(this._activeBuffer.savedY-this._activeBuffer.ybase,0),this._curAttrData.fg=this._activeBuffer.savedCurAttrData.fg,this._curAttrData.bg=this._activeBuffer.savedCurAttrData.bg,this._charsetService.charset=this._savedCharset,this._activeBuffer.savedCharset&&(this._charsetService.charset=this._activeBuffer.savedCharset),this._restrictCursor(),!0}setTitle(e){return this._windowTitle=e,this._onTitleChange.fire(e),!0}setIconName(e){return this._iconName=e,!0}setOrReportIndexedColor(e){let t=[],n=e.split(`;`);for(;n.length>1;){let e=n.shift(),r=n.shift();if(/^\d+$/.exec(e)){let n=parseInt(e);if(Js(n))if(r===`?`)t.push({type:0,index:n});else{let e=Ls(r);e&&t.push({type:1,index:n,color:e})}}}return t.length&&this._onColor.fire(t),!0}setHyperlink(e){let t=e.indexOf(`;`);if(t===-1)return!0;let n=e.slice(0,t).trim(),r=e.slice(t+1);return r?this._createHyperlink(n,r):n.trim()?!1:this._finishHyperlink()}_createHyperlink(e,t){this._getCurrentLinkId()&&this._finishHyperlink();let n=e.split(`:`),r,i=n.findIndex(e=>e.startsWith(`id=`));return i!==-1&&(r=n[i].slice(3)||void 0),this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=this._oscLinkService.registerLink({id:r,uri:t}),this._curAttrData.updateExtended(),!0}_finishHyperlink(){return this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=0,this._curAttrData.updateExtended(),!0}_setOrReportSpecialColor(e,t){let n=e.split(`;`);for(let e=0;e=this._specialColors.length);++e,++t)if(n[e]===`?`)this._onColor.fire([{type:0,index:this._specialColors[t]}]);else{let r=Ls(n[e]);r&&this._onColor.fire([{type:1,index:this._specialColors[t],color:r}])}return!0}setOrReportFgColor(e){return this._setOrReportSpecialColor(e,0)}setOrReportBgColor(e){return this._setOrReportSpecialColor(e,1)}setOrReportCursorColor(e){return this._setOrReportSpecialColor(e,2)}restoreIndexedColor(e){if(!e)return this._onColor.fire([{type:2}]),!0;let t=[],n=e.split(`;`);for(let e=0;e=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._restrictCursor(),!0}tabSet(){return this._activeBuffer.tabs[this._activeBuffer.x]=!0,!0}reverseIndex(){if(this._restrictCursor(),this._activeBuffer.y===this._activeBuffer.scrollTop){let e=this._activeBuffer.scrollBottom-this._activeBuffer.scrollTop;this._activeBuffer.lines.shiftElements(this._activeBuffer.ybase+this._activeBuffer.y,e,1),this._activeBuffer.lines.set(this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.getBlankLine(this._eraseAttrData())),this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom)}else this._activeBuffer.y--,this._restrictCursor();return!0}fullReset(){return this._parser.reset(),this._onRequestReset.fire(),!0}reset(){this._curAttrData=Y.clone(),this._eraseAttrDataInternal=Y.clone()}_eraseAttrData(){return this._eraseAttrDataInternal.bg&=-67108864,this._eraseAttrDataInternal.bg|=this._curAttrData.bg&67108863,this._eraseAttrDataInternal}setgLevel(e){return this._charsetService.setgLevel(e),!0}screenAlignmentPattern(){let e=new Ke;e.content=4194373,e.fg=this._curAttrData.fg,e.bg=this._curAttrData.bg,this._setCursor(0,0);for(let t=0;t(this._coreService.triggerDataEvent(`${R.ESC}${e}${R.ESC}\\`),!0),r=this._bufferService.buffer,i=this._optionsService.rawOptions;return n(e===`"q`?`P1$r${+!!this._curAttrData.isProtected()}"q`:e===`"p`?`P1$r61;1"p`:e===`r`?`P1$r${r.scrollTop+1};${r.scrollBottom+1}r`:e===`m`?`P1$r0m`:e===` q`?`P1$r${{block:2,underline:4,bar:6}[i.cursorStyle]-+!!i.cursorBlink} q`:`P0$r`)}markRangeDirty(e,t){this._dirtyRowTracker.markRangeDirty(e,t)}},qs=class{constructor(e){this._bufferService=e,this.clearRange()}clearRange(){this.start=this._bufferService.buffer.y,this.end=this._bufferService.buffer.y}markDirty(e){ethis.end&&(this.end=e)}markRangeDirty(e,t){e>t&&(Gs=e,e=t,t=Gs),ethis.end&&(this.end=t)}markAllDirty(){this.markRangeDirty(0,this._bufferService.rows-1)}};qs=D([O(0,A)],qs);function Js(e){return 0<=e&&e<256}var Ys=5e7,Xs=12,Zs=50,Qs=class extends M{constructor(e){super(),this._action=e,this._writeBuffer=[],this._callbacks=[],this._pendingData=0,this._bufferOffset=0,this._isSyncWriting=!1,this._syncCalls=0,this._didUserInput=!1,this._onWriteParsed=this._register(new F),this.onWriteParsed=this._onWriteParsed.event}handleUserInput(){this._didUserInput=!0}writeSync(e,t){if(t!==void 0&&this._syncCalls>t){this._syncCalls=0;return}if(this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(void 0),this._syncCalls++,this._isSyncWriting)return;this._isSyncWriting=!0;let n;for(;n=this._writeBuffer.shift();){this._action(n);let e=this._callbacks.shift();e&&e()}this._pendingData=0,this._bufferOffset=2147483647,this._isSyncWriting=!1,this._syncCalls=0}write(e,t){if(this._pendingData>Ys)throw Error(`write data discarded, use flow control to avoid losing data`);if(!this._writeBuffer.length){if(this._bufferOffset=0,this._didUserInput){this._didUserInput=!1,this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(t),this._innerWrite();return}setTimeout(()=>this._innerWrite())}this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(t)}_innerWrite(e=0,t=!0){let n=e||performance.now();for(;this._writeBuffer.length>this._bufferOffset;){let e=this._writeBuffer[this._bufferOffset],r=this._action(e,t);if(r){r.catch(e=>(queueMicrotask(()=>{throw e}),Promise.resolve(!1))).then(e=>performance.now()-n>=Xs?setTimeout(()=>this._innerWrite(0,e)):this._innerWrite(n,e));return}let i=this._callbacks[this._bufferOffset];if(i&&i(),this._bufferOffset++,this._pendingData-=e.length,performance.now()-n>=Xs)break}this._writeBuffer.length>this._bufferOffset?(this._bufferOffset>Zs&&(this._writeBuffer=this._writeBuffer.slice(this._bufferOffset),this._callbacks=this._callbacks.slice(this._bufferOffset),this._bufferOffset=0),setTimeout(()=>this._innerWrite())):(this._writeBuffer.length=0,this._callbacks.length=0,this._pendingData=0,this._bufferOffset=0),this._onWriteParsed.fire()}},$s=class{constructor(e){this._bufferService=e,this._nextId=1,this._entriesWithId=new Map,this._dataByLinkId=new Map}registerLink(e){let t=this._bufferService.buffer;if(e.id===void 0){let n=t.addMarker(t.ybase+t.y),r={data:e,id:this._nextId++,lines:[n]};return n.onDispose(()=>this._removeMarkerFromLink(r,n)),this._dataByLinkId.set(r.id,r),r.id}let n=e,r=this._getEntryIdKey(n),i=this._entriesWithId.get(r);if(i)return this.addLineToLink(i.id,t.ybase+t.y),i.id;let a=t.addMarker(t.ybase+t.y),o={id:this._nextId++,key:this._getEntryIdKey(n),data:n,lines:[a]};return a.onDispose(()=>this._removeMarkerFromLink(o,a)),this._entriesWithId.set(o.key,o),this._dataByLinkId.set(o.id,o),o.id}addLineToLink(e,t){let n=this._dataByLinkId.get(e);if(n&&n.lines.every(e=>e.line!==t)){let e=this._bufferService.buffer.addMarker(t);n.lines.push(e),e.onDispose(()=>this._removeMarkerFromLink(n,e))}}getLinkData(e){return this._dataByLinkId.get(e)?.data}_getEntryIdKey(e){return`${e.id};;${e.uri}`}_removeMarkerFromLink(e,t){let n=e.lines.indexOf(t);n!==-1&&(e.lines.splice(n,1),e.lines.length===0&&(e.data.id!==void 0&&this._entriesWithId.delete(e.key),this._dataByLinkId.delete(e.id)))}};$s=D([O(0,A)],$s);var ec=!1,tc=class extends M{constructor(e){super(),this._windowsWrappingHeuristics=this._register(new Yt),this._onBinary=this._register(new F),this.onBinary=this._onBinary.event,this._onData=this._register(new F),this.onData=this._onData.event,this._onLineFeed=this._register(new F),this.onLineFeed=this._onLineFeed.event,this._onResize=this._register(new F),this.onResize=this._onResize.event,this._onWriteParsed=this._register(new F),this.onWriteParsed=this._onWriteParsed.event,this._onScroll=this._register(new F),this._instantiationService=new Mo,this.optionsService=this._register(new rs(e)),this._instantiationService.setService(rt,this.optionsService),this._bufferService=this._register(this._instantiationService.createInstance(es)),this._instantiationService.setService(A,this._bufferService),this._logService=this._register(this._instantiationService.createInstance(Fo)),this._instantiationService.setService(nt,this._logService),this.coreService=this._register(this._instantiationService.createInstance(cs)),this._instantiationService.setService($e,this.coreService),this.coreMouseService=this._register(this._instantiationService.createInstance(ps)),this._instantiationService.setService(Qe,this.coreMouseService),this.unicodeService=this._register(this._instantiationService.createInstance(vs)),this._instantiationService.setService(at,this.unicodeService),this._charsetService=this._instantiationService.createInstance(ys),this._instantiationService.setService(et,this._charsetService),this._oscLinkService=this._instantiationService.createInstance($s),this._instantiationService.setService(it,this._oscLinkService),this._inputHandler=this._register(new Ks(this._bufferService,this._charsetService,this.coreService,this._logService,this.optionsService,this._oscLinkService,this.coreMouseService,this.unicodeService)),this._register(P.forward(this._inputHandler.onLineFeed,this._onLineFeed)),this._register(this._inputHandler),this._register(P.forward(this._bufferService.onResize,this._onResize)),this._register(P.forward(this.coreService.onData,this._onData)),this._register(P.forward(this.coreService.onBinary,this._onBinary)),this._register(this.coreService.onRequestScrollToBottom(()=>this.scrollToBottom(!0))),this._register(this.coreService.onUserInput(()=>this._writeBuffer.handleUserInput())),this._register(this.optionsService.onMultipleOptionChange([`windowsMode`,`windowsPty`],()=>this._handleWindowsPtyOptionChange())),this._register(this._bufferService.onScroll(()=>{this._onScroll.fire({position:this._bufferService.buffer.ydisp}),this._inputHandler.markRangeDirty(this._bufferService.buffer.scrollTop,this._bufferService.buffer.scrollBottom)})),this._writeBuffer=this._register(new Qs((e,t)=>this._inputHandler.parse(e,t))),this._register(P.forward(this._writeBuffer.onWriteParsed,this._onWriteParsed))}get onScroll(){return this._onScrollApi||(this._onScrollApi=this._register(new F),this._onScroll.event(e=>{this._onScrollApi?.fire(e.position)})),this._onScrollApi.event}get cols(){return this._bufferService.cols}get rows(){return this._bufferService.rows}get buffers(){return this._bufferService.buffers}get options(){return this.optionsService.options}set options(e){for(let t in e)this.optionsService.options[t]=e[t]}write(e,t){this._writeBuffer.write(e,t)}writeSync(e,t){this._logService.logLevel<=3&&!ec&&(this._logService.warn(`writeSync is unreliable and will be removed soon.`),ec=!0),this._writeBuffer.writeSync(e,t)}input(e,t=!0){this.coreService.triggerDataEvent(e,t)}resize(e,t){isNaN(e)||isNaN(t)||(e=Math.max(e,Qo),t=Math.max(t,$o),this._bufferService.resize(e,t))}scroll(e,t=!1){this._bufferService.scroll(e,t)}scrollLines(e,t){this._bufferService.scrollLines(e,t)}scrollPages(e){this.scrollLines(e*(this.rows-1))}scrollToTop(){this.scrollLines(-this._bufferService.buffer.ydisp)}scrollToBottom(e){this.scrollLines(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp)}scrollToLine(e){let t=e-this._bufferService.buffer.ydisp;t!==0&&this.scrollLines(t)}registerEscHandler(e,t){return this._inputHandler.registerEscHandler(e,t)}registerDcsHandler(e,t){return this._inputHandler.registerDcsHandler(e,t)}registerCsiHandler(e,t){return this._inputHandler.registerCsiHandler(e,t)}registerOscHandler(e,t){return this._inputHandler.registerOscHandler(e,t)}_setup(){this._handleWindowsPtyOptionChange()}reset(){this._inputHandler.reset(),this._bufferService.reset(),this._charsetService.reset(),this.coreService.reset(),this.coreMouseService.reset()}_handleWindowsPtyOptionChange(){let e=!1,t=this.optionsService.rawOptions.windowsPty;t&&t.buildNumber!==void 0&&t.buildNumber!==void 0?e=t.backend===`conpty`&&t.buildNumber<21376:this.optionsService.rawOptions.windowsMode&&(e=!0),e?this._enableWindowsWrappingHeuristics():this._windowsWrappingHeuristics.clear()}_enableWindowsWrappingHeuristics(){if(!this._windowsWrappingHeuristics.value){let e=[];e.push(this.onLineFeed(bs.bind(null,this._bufferService))),e.push(this.registerCsiHandler({final:`H`},()=>(bs(this._bufferService),!1))),this._windowsWrappingHeuristics.value=j(()=>{for(let t of e)t.dispose()})}}},nc={48:[`0`,`)`],49:[`1`,`!`],50:[`2`,`@`],51:[`3`,`#`],52:[`4`,`$`],53:[`5`,`%`],54:[`6`,`^`],55:[`7`,`&`],56:[`8`,`*`],57:[`9`,`(`],186:[`;`,`:`],187:[`=`,`+`],188:[`,`,`<`],189:[`-`,`_`],190:[`.`,`>`],191:[`/`,`?`],192:["`",`~`],219:[`[`,`{`],220:[`\\`,`|`],221:[`]`,`}`],222:[`'`,`"`]};function rc(e,t,n,r){let i={type:0,cancel:!1,key:void 0},a=!!e.shiftKey|(e.altKey?2:0)|(e.ctrlKey?4:0)|(e.metaKey?8:0);switch(e.keyCode){case 0:e.key===`UIKeyInputUpArrow`?t?i.key=R.ESC+`OA`:i.key=R.ESC+`[A`:e.key===`UIKeyInputLeftArrow`?t?i.key=R.ESC+`OD`:i.key=R.ESC+`[D`:e.key===`UIKeyInputRightArrow`?t?i.key=R.ESC+`OC`:i.key=R.ESC+`[C`:e.key===`UIKeyInputDownArrow`&&(t?i.key=R.ESC+`OB`:i.key=R.ESC+`[B`);break;case 8:i.key=e.ctrlKey?`\b`:R.DEL,e.altKey&&(i.key=R.ESC+i.key);break;case 9:if(e.shiftKey){i.key=R.ESC+`[Z`;break}i.key=R.HT,i.cancel=!0;break;case 13:i.key=e.altKey?R.ESC+R.CR:R.CR,i.cancel=!0;break;case 27:i.key=R.ESC,e.altKey&&(i.key=R.ESC+R.ESC),i.cancel=!0;break;case 37:if(e.metaKey)break;a?i.key=R.ESC+`[1;`+(a+1)+`D`:t?i.key=R.ESC+`OD`:i.key=R.ESC+`[D`;break;case 39:if(e.metaKey)break;a?i.key=R.ESC+`[1;`+(a+1)+`C`:t?i.key=R.ESC+`OC`:i.key=R.ESC+`[C`;break;case 38:if(e.metaKey)break;a?i.key=R.ESC+`[1;`+(a+1)+`A`:t?i.key=R.ESC+`OA`:i.key=R.ESC+`[A`;break;case 40:if(e.metaKey)break;a?i.key=R.ESC+`[1;`+(a+1)+`B`:t?i.key=R.ESC+`OB`:i.key=R.ESC+`[B`;break;case 45:!e.shiftKey&&!e.ctrlKey&&(i.key=R.ESC+`[2~`);break;case 46:a?i.key=R.ESC+`[3;`+(a+1)+`~`:i.key=R.ESC+`[3~`;break;case 36:a?i.key=R.ESC+`[1;`+(a+1)+`H`:t?i.key=R.ESC+`OH`:i.key=R.ESC+`[H`;break;case 35:a?i.key=R.ESC+`[1;`+(a+1)+`F`:t?i.key=R.ESC+`OF`:i.key=R.ESC+`[F`;break;case 33:e.shiftKey?i.type=2:e.ctrlKey?i.key=R.ESC+`[5;`+(a+1)+`~`:i.key=R.ESC+`[5~`;break;case 34:e.shiftKey?i.type=3:e.ctrlKey?i.key=R.ESC+`[6;`+(a+1)+`~`:i.key=R.ESC+`[6~`;break;case 112:a?i.key=R.ESC+`[1;`+(a+1)+`P`:i.key=R.ESC+`OP`;break;case 113:a?i.key=R.ESC+`[1;`+(a+1)+`Q`:i.key=R.ESC+`OQ`;break;case 114:a?i.key=R.ESC+`[1;`+(a+1)+`R`:i.key=R.ESC+`OR`;break;case 115:a?i.key=R.ESC+`[1;`+(a+1)+`S`:i.key=R.ESC+`OS`;break;case 116:a?i.key=R.ESC+`[15;`+(a+1)+`~`:i.key=R.ESC+`[15~`;break;case 117:a?i.key=R.ESC+`[17;`+(a+1)+`~`:i.key=R.ESC+`[17~`;break;case 118:a?i.key=R.ESC+`[18;`+(a+1)+`~`:i.key=R.ESC+`[18~`;break;case 119:a?i.key=R.ESC+`[19;`+(a+1)+`~`:i.key=R.ESC+`[19~`;break;case 120:a?i.key=R.ESC+`[20;`+(a+1)+`~`:i.key=R.ESC+`[20~`;break;case 121:a?i.key=R.ESC+`[21;`+(a+1)+`~`:i.key=R.ESC+`[21~`;break;case 122:a?i.key=R.ESC+`[23;`+(a+1)+`~`:i.key=R.ESC+`[23~`;break;case 123:a?i.key=R.ESC+`[24;`+(a+1)+`~`:i.key=R.ESC+`[24~`;break;default:if(e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey)e.keyCode>=65&&e.keyCode<=90?i.key=String.fromCharCode(e.keyCode-64):e.keyCode===32?i.key=R.NUL:e.keyCode>=51&&e.keyCode<=55?i.key=String.fromCharCode(e.keyCode-51+27):e.keyCode===56?i.key=R.DEL:e.keyCode===219?i.key=R.ESC:e.keyCode===220?i.key=R.FS:e.keyCode===221&&(i.key=R.GS);else if((!n||r)&&e.altKey&&!e.metaKey){let t=nc[e.keyCode]?.[+!!e.shiftKey];if(t)i.key=R.ESC+t;else if(e.keyCode>=65&&e.keyCode<=90){let t=e.ctrlKey?e.keyCode-64:e.keyCode+32,n=String.fromCharCode(t);e.shiftKey&&(n=n.toUpperCase()),i.key=R.ESC+n}else if(e.keyCode===32)i.key=R.ESC+(e.ctrlKey?R.NUL:` `);else if(e.key===`Dead`&&e.code.startsWith(`Key`)){let t=e.code.slice(3,4);e.shiftKey||(t=t.toLowerCase()),i.key=R.ESC+t,i.cancel=!0}}else n&&!e.altKey&&!e.ctrlKey&&!e.shiftKey&&e.metaKey?e.keyCode===65&&(i.type=1):e.key&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&e.keyCode>=48&&e.key.length===1?i.key=e.key:e.key&&e.ctrlKey&&(e.key===`_`&&(i.key=R.US),e.key===`@`&&(i.key=R.NUL));break}return i}var Q=0,ic=class{constructor(e){this._getKey=e,this._array=[],this._insertedValues=[],this._flushInsertedTask=new Xa,this._isFlushingInserted=!1,this._deletedIndices=[],this._flushDeletedTask=new Xa,this._isFlushingDeleted=!1}clear(){this._array.length=0,this._insertedValues.length=0,this._flushInsertedTask.clear(),this._isFlushingInserted=!1,this._deletedIndices.length=0,this._flushDeletedTask.clear(),this._isFlushingDeleted=!1}insert(e){this._flushCleanupDeleted(),this._insertedValues.length===0&&this._flushInsertedTask.enqueue(()=>this._flushInserted()),this._insertedValues.push(e)}_flushInserted(){let e=this._insertedValues.sort((e,t)=>this._getKey(e)-this._getKey(t)),t=0,n=0,r=Array(this._array.length+this._insertedValues.length);for(let i=0;i=this._array.length||this._getKey(e[t])<=this._getKey(this._array[n])?(r[i]=e[t],t++):r[i]=this._array[n++];this._array=r,this._insertedValues.length=0}_flushCleanupInserted(){!this._isFlushingInserted&&this._insertedValues.length>0&&this._flushInsertedTask.flush()}delete(e){if(this._flushCleanupInserted(),this._array.length===0)return!1;let t=this._getKey(e);if(t===void 0||(Q=this._search(t),Q===-1)||this._getKey(this._array[Q])!==t)return!1;do if(this._array[Q]===e)return this._deletedIndices.length===0&&this._flushDeletedTask.enqueue(()=>this._flushDeleted()),this._deletedIndices.push(Q),!0;while(++Qe-t),t=0,n=Array(this._array.length-e.length),r=0;for(let i=0;i0&&this._flushDeletedTask.flush()}*getKeyIterator(e){if(this._flushCleanupInserted(),this._flushCleanupDeleted(),this._array.length!==0&&(Q=this._search(e),!(Q<0||Q>=this._array.length)&&this._getKey(this._array[Q])===e))do yield this._array[Q];while(++Q=this._array.length)&&this._getKey(this._array[Q])===e))do t(this._array[Q]);while(++Q=t;){let r=t+n>>1,i=this._getKey(this._array[r]);if(i>e)n=r-1;else if(i0&&this._getKey(this._array[r-1])===e;)r--;return r}}return t}},ac=0,oc=0,sc=class extends M{constructor(){super(),this._decorations=new ic(e=>e?.marker.line),this._onDecorationRegistered=this._register(new F),this.onDecorationRegistered=this._onDecorationRegistered.event,this._onDecorationRemoved=this._register(new F),this.onDecorationRemoved=this._onDecorationRemoved.event,this._register(j(()=>this.reset()))}get decorations(){return this._decorations.values()}registerDecoration(e){if(e.marker.isDisposed)return;let t=new cc(e);if(t){let e=t.marker.onDispose(()=>t.dispose()),n=t.onDispose(()=>{n.dispose(),t&&(this._decorations.delete(t)&&this._onDecorationRemoved.fire(t),e.dispose())});this._decorations.insert(t),this._onDecorationRegistered.fire(t)}return t}reset(){for(let e of this._decorations.values())e.dispose();this._decorations.clear()}*getDecorationsAtCell(e,t,n){let r=0,i=0;for(let a of this._decorations.getKeyIterator(t))r=a.options.x??0,i=r+(a.options.width??1),e>=r&&e{ac=t.options.x??0,oc=ac+(t.options.width??1),e>=ac&&e=this._debounceThresholdMS)this._lastRefreshMs=r,this._innerRefresh();else if(!this._additionalRefreshRequested){let e=r-this._lastRefreshMs,t=this._debounceThresholdMS-e;this._additionalRefreshRequested=!0,this._refreshTimeoutID=window.setTimeout(()=>{this._lastRefreshMs=performance.now(),this._innerRefresh(),this._additionalRefreshRequested=!1,this._refreshTimeoutID=void 0},t)}}_innerRefresh(){if(this._rowStart===void 0||this._rowEnd===void 0||this._rowCount===void 0)return;let e=Math.max(this._rowStart,0),t=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(e,t)}},dc=20,fc=!1,pc=class extends M{constructor(e,t,n,r){super(),this._terminal=e,this._coreBrowserService=n,this._renderService=r,this._rowColumns=new WeakMap,this._liveRegionLineCount=0,this._charsToConsume=[],this._charsToAnnounce=``;let i=this._coreBrowserService.mainDocument;this._accessibilityContainer=i.createElement(`div`),this._accessibilityContainer.classList.add(`xterm-accessibility`),this._rowContainer=i.createElement(`div`),this._rowContainer.setAttribute(`role`,`list`),this._rowContainer.classList.add(`xterm-accessibility-tree`),this._rowElements=[];for(let e=0;ethis._handleBoundaryFocus(e,0),this._bottomBoundaryFocusListener=e=>this._handleBoundaryFocus(e,1),this._rowElements[0].addEventListener(`focus`,this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener(`focus`,this._bottomBoundaryFocusListener),this._accessibilityContainer.appendChild(this._rowContainer),this._liveRegion=i.createElement(`div`),this._liveRegion.classList.add(`live-region`),this._liveRegion.setAttribute(`aria-live`,`assertive`),this._accessibilityContainer.appendChild(this._liveRegion),this._liveRegionDebouncer=this._register(new uc(this._renderRows.bind(this))),!this._terminal.element)throw Error(`Cannot enable accessibility before Terminal.open`);fc?(this._accessibilityContainer.classList.add(`debug`),this._rowContainer.classList.add(`debug`),this._debugRootContainer=i.createElement(`div`),this._debugRootContainer.classList.add(`xterm`),this._debugRootContainer.appendChild(i.createTextNode(`------start a11y------`)),this._debugRootContainer.appendChild(this._accessibilityContainer),this._debugRootContainer.appendChild(i.createTextNode(`------end a11y------`)),this._terminal.element.insertAdjacentElement(`afterend`,this._debugRootContainer)):this._terminal.element.insertAdjacentElement(`afterbegin`,this._accessibilityContainer),this._register(this._terminal.onResize(e=>this._handleResize(e.rows))),this._register(this._terminal.onRender(e=>this._refreshRows(e.start,e.end))),this._register(this._terminal.onScroll(()=>this._refreshRows())),this._register(this._terminal.onA11yChar(e=>this._handleChar(e))),this._register(this._terminal.onLineFeed(()=>this._handleChar(` +`))),this._register(this._terminal.onA11yTab(e=>this._handleTab(e))),this._register(this._terminal.onKey(e=>this._handleKey(e.key))),this._register(this._terminal.onBlur(()=>this._clearLiveRegion())),this._register(this._renderService.onDimensionsChange(()=>this._refreshRowsDimensions())),this._register(I(i,`selectionchange`,()=>this._handleSelectionChange())),this._register(this._coreBrowserService.onDprChange(()=>this._refreshRowsDimensions())),this._refreshRowsDimensions(),this._refreshRows(),this._register(j(()=>{fc?this._debugRootContainer.remove():this._accessibilityContainer.remove(),this._rowElements.length=0}))}_handleTab(e){for(let t=0;t0?this._charsToConsume.shift()!==e&&(this._charsToAnnounce+=e):this._charsToAnnounce+=e,e===` +`&&(this._liveRegionLineCount++,this._liveRegionLineCount===dc+1&&(this._liveRegion.textContent+=Ae.get())))}_clearLiveRegion(){this._liveRegion.textContent=``,this._liveRegionLineCount=0}_handleKey(e){this._clearLiveRegion(),/\p{Control}/u.test(e)||this._charsToConsume.push(e)}_refreshRows(e,t){this._liveRegionDebouncer.refresh(e,t,this._terminal.rows)}_renderRows(e,t){let n=this._terminal.buffer,r=n.lines.length.toString();for(let i=e;i<=t;i++){let e=n.lines.get(n.ydisp+i),t=[],a=e?.translateToString(!0,void 0,void 0,t)||``,o=(n.ydisp+i+1).toString(),s=this._rowElements[i];s&&(a.length===0?(s.textContent=`\xA0`,this._rowColumns.set(s,[0,1])):(s.textContent=a,this._rowColumns.set(s,t)),s.setAttribute(`aria-posinset`,o),s.setAttribute(`aria-setsize`,r),this._alignRowWidth(s))}this._announceCharacters()}_announceCharacters(){this._charsToAnnounce.length!==0&&(this._liveRegion.textContent+=this._charsToAnnounce,this._charsToAnnounce=``)}_handleBoundaryFocus(e,t){let n=e.target,r=this._rowElements[t===0?1:this._rowElements.length-2];if(n.getAttribute(`aria-posinset`)===(t===0?`1`:`${this._terminal.buffer.lines.length}`)||e.relatedTarget!==r)return;let i,a;if(t===0?(i=n,a=this._rowElements.pop(),this._rowContainer.removeChild(a)):(i=this._rowElements.shift(),a=n,this._rowContainer.removeChild(i)),i.removeEventListener(`focus`,this._topBoundaryFocusListener),a.removeEventListener(`focus`,this._bottomBoundaryFocusListener),t===0){let e=this._createAccessibilityTreeNode();this._rowElements.unshift(e),this._rowContainer.insertAdjacentElement(`afterbegin`,e)}else{let e=this._createAccessibilityTreeNode();this._rowElements.push(e),this._rowContainer.appendChild(e)}this._rowElements[0].addEventListener(`focus`,this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener(`focus`,this._bottomBoundaryFocusListener),this._terminal.scrollLines(t===0?-1:1),this._rowElements[t===0?1:this._rowElements.length-2].focus(),e.preventDefault(),e.stopImmediatePropagation()}_handleSelectionChange(){if(this._rowElements.length===0)return;let e=this._coreBrowserService.mainDocument.getSelection();if(!e)return;if(e.isCollapsed){this._rowContainer.contains(e.anchorNode)&&this._terminal.clearSelection();return}if(!e.anchorNode||!e.focusNode){console.error(`anchorNode and/or focusNode are null`);return}let t={node:e.anchorNode,offset:e.anchorOffset},n={node:e.focusNode,offset:e.focusOffset};if((t.node.compareDocumentPosition(n.node)&Node.DOCUMENT_POSITION_PRECEDING||t.node===n.node&&t.offset>n.offset)&&([t,n]=[n,t]),t.node.compareDocumentPosition(this._rowElements[0])&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_FOLLOWING)&&(t={node:this._rowElements[0].childNodes[0],offset:0}),!this._rowContainer.contains(t.node))return;let r=this._rowElements.slice(-1)[0];if(n.node.compareDocumentPosition(r)&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_PRECEDING)&&(n={node:r,offset:r.textContent?.length??0}),!this._rowContainer.contains(n.node))return;let i=({node:e,offset:t})=>{let n=e instanceof Text?e.parentNode:e,r=parseInt(n?.getAttribute(`aria-posinset`),10)-1;if(isNaN(r))return console.warn(`row is invalid. Race condition?`),null;let i=this._rowColumns.get(n);if(!i)return console.warn(`columns is null. Race condition?`),null;let a=t=this._terminal.cols&&(++r,a=0),{row:r,column:a}},a=i(t),o=i(n);if(!(!a||!o)){if(a.row>o.row||a.row===o.row&&a.column>=o.column)throw Error(`invalid range`);this._terminal.select(a.column,a.row,(o.row-a.row)*this._terminal.cols-a.column+o.column)}}_handleResize(e){this._rowElements[this._rowElements.length-1].removeEventListener(`focus`,this._bottomBoundaryFocusListener);for(let e=this._rowContainer.children.length;ee;)this._rowContainer.removeChild(this._rowElements.pop());this._rowElements[this._rowElements.length-1].addEventListener(`focus`,this._bottomBoundaryFocusListener),this._refreshRowsDimensions()}_createAccessibilityTreeNode(){let e=this._coreBrowserService.mainDocument.createElement(`div`);return e.setAttribute(`role`,`listitem`),e.tabIndex=-1,this._refreshRowDimensions(e),e}_refreshRowsDimensions(){if(this._renderService.dimensions.css.cell.height){Object.assign(this._accessibilityContainer.style,{width:`${this._renderService.dimensions.css.canvas.width}px`,fontSize:`${this._terminal.options.fontSize}px`}),this._rowElements.length!==this._terminal.rows&&this._handleResize(this._terminal.rows);for(let e=0;e{Gt(this._linkCacheDisposables),this._linkCacheDisposables.length=0,this._lastMouseEvent=void 0,this._activeProviderReplies?.clear()})),this._register(this._bufferService.onResize(()=>{this._clearCurrentLink(),this._wasResized=!0})),this._register(I(this._element,`mouseleave`,()=>{this._isMouseOut=!0,this._clearCurrentLink()})),this._register(I(this._element,`mousemove`,this._handleMouseMove.bind(this))),this._register(I(this._element,`mousedown`,this._handleMouseDown.bind(this))),this._register(I(this._element,`mouseup`,this._handleMouseUp.bind(this)))}get currentLink(){return this._currentLink}_handleMouseMove(e){this._lastMouseEvent=e;let t=this._positionFromMouseEvent(e,this._element,this._mouseService);if(!t)return;this._isMouseOut=!1;let n=e.composedPath();for(let e=0;e{e?.forEach(e=>{e.link.dispose&&e.link.dispose()})}),this._activeProviderReplies=new Map,this._activeLine=e.y);let n=!1;for(let[r,i]of this._linkProviderService.linkProviders.entries())t?this._activeProviderReplies?.get(r)&&(n=this._checkLinkProviderResult(r,e,n)):i.provideLinks(e.y,t=>{if(this._isMouseOut)return;let i=t?.map(e=>({link:e}));this._activeProviderReplies?.set(r,i),n=this._checkLinkProviderResult(r,e,n),this._activeProviderReplies?.size===this._linkProviderService.linkProviders.length&&this._removeIntersectingLinks(e.y,this._activeProviderReplies)})}_removeIntersectingLinks(e,t){let n=new Set;for(let r=0;re?this._bufferService.cols:r.link.range.end.x;for(let e=a;e<=o;e++){if(n.has(e)){i.splice(t--,1);break}n.add(e)}}}}_checkLinkProviderResult(e,t,n){if(!this._activeProviderReplies)return n;let r=this._activeProviderReplies.get(e),i=!1;for(let t=0;tthis._linkAtPosition(e.link,t));e&&(n=!0,this._handleNewLink(e))}if(this._activeProviderReplies.size===this._linkProviderService.linkProviders.length&&!n)for(let e=0;ethis._linkAtPosition(e.link,t));if(r){n=!0,this._handleNewLink(r);break}}return n}_handleMouseDown(){this._mouseDownLink=this._currentLink}_handleMouseUp(e){if(!this._currentLink)return;let t=this._positionFromMouseEvent(e,this._element,this._mouseService);t&&this._mouseDownLink&&hc(this._mouseDownLink.link,this._currentLink.link)&&this._linkAtPosition(this._currentLink.link,t)&&this._currentLink.link.activate(e,this._currentLink.link.text)}_clearCurrentLink(e,t){!this._currentLink||!this._lastMouseEvent||(!e||!t||this._currentLink.link.range.start.y>=e&&this._currentLink.link.range.end.y<=t)&&(this._linkLeave(this._element,this._currentLink.link,this._lastMouseEvent),this._currentLink=void 0,Gt(this._linkCacheDisposables),this._linkCacheDisposables.length=0)}_handleNewLink(e){if(!this._lastMouseEvent)return;let t=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);t&&this._linkAtPosition(e.link,t)&&(this._currentLink=e,this._currentLink.state={decorations:{underline:e.link.decorations===void 0?!0:e.link.decorations.underline,pointerCursor:e.link.decorations===void 0?!0:e.link.decorations.pointerCursor},isHovered:!0},this._linkHover(this._element,e.link,this._lastMouseEvent),e.link.decorations={},Object.defineProperties(e.link.decorations,{pointerCursor:{get:()=>this._currentLink?.state?.decorations.pointerCursor,set:e=>{this._currentLink?.state&&this._currentLink.state.decorations.pointerCursor!==e&&(this._currentLink.state.decorations.pointerCursor=e,this._currentLink.state.isHovered&&this._element.classList.toggle(`xterm-cursor-pointer`,e))}},underline:{get:()=>this._currentLink?.state?.decorations.underline,set:t=>{this._currentLink?.state&&this._currentLink?.state?.decorations.underline!==t&&(this._currentLink.state.decorations.underline=t,this._currentLink.state.isHovered&&this._fireUnderlineEvent(e.link,t))}}}),this._linkCacheDisposables.push(this._renderService.onRenderedViewportChange(e=>{if(!this._currentLink)return;let t=e.start===0?0:e.start+1+this._bufferService.buffer.ydisp,n=this._bufferService.buffer.ydisp+1+e.end;if(this._currentLink.link.range.start.y>=t&&this._currentLink.link.range.end.y<=n&&(this._clearCurrentLink(t,n),this._lastMouseEvent)){let e=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);e&&this._askForLink(e,!1)}})))}_linkHover(e,t,n){this._currentLink?.state&&(this._currentLink.state.isHovered=!0,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(t,!0),this._currentLink.state.decorations.pointerCursor&&e.classList.add(`xterm-cursor-pointer`)),t.hover&&t.hover(n,t.text)}_fireUnderlineEvent(e,t){let n=e.range,r=this._bufferService.buffer.ydisp,i=this._createLinkUnderlineEvent(n.start.x-1,n.start.y-r-1,n.end.x,n.end.y-r-1,void 0);(t?this._onShowLinkUnderline:this._onHideLinkUnderline).fire(i)}_linkLeave(e,t,n){this._currentLink?.state&&(this._currentLink.state.isHovered=!1,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(t,!1),this._currentLink.state.decorations.pointerCursor&&e.classList.remove(`xterm-cursor-pointer`)),t.leave&&t.leave(n,t.text)}_linkAtPosition(e,t){let n=e.range.start.y*this._bufferService.cols+e.range.start.x,r=e.range.end.y*this._bufferService.cols+e.range.end.x,i=t.y*this._bufferService.cols+t.x;return n<=i&&i<=r}_positionFromMouseEvent(e,t,n){let r=n.getCoords(e,t,this._bufferService.cols,this._bufferService.rows);if(r)return{x:r[0],y:r[1]+this._bufferService.buffer.ydisp}}_createLinkUnderlineEvent(e,t,n,r,i){return{x1:e,y1:t,x2:n,y2:r,cols:this._bufferService.cols,fg:i}}};mc=D([O(1,dt),O(2,ft),O(3,A),O(4,gt)],mc);function hc(e,t){return e.text===t.text&&e.range.start.x===t.range.start.x&&e.range.start.y===t.range.start.y&&e.range.end.x===t.range.end.x&&e.range.end.y===t.range.end.y}var gc=class extends tc{constructor(e={}){super(e),this._linkifier=this._register(new Yt),this.browser=Na,this._keyDownHandled=!1,this._keyDownSeen=!1,this._keyPressHandled=!1,this._unprocessedDeadKey=!1,this._accessibilityManager=this._register(new Yt),this._onCursorMove=this._register(new F),this.onCursorMove=this._onCursorMove.event,this._onKey=this._register(new F),this.onKey=this._onKey.event,this._onRender=this._register(new F),this.onRender=this._onRender.event,this._onSelectionChange=this._register(new F),this.onSelectionChange=this._onSelectionChange.event,this._onTitleChange=this._register(new F),this.onTitleChange=this._onTitleChange.event,this._onBell=this._register(new F),this.onBell=this._onBell.event,this._onFocus=this._register(new F),this._onBlur=this._register(new F),this._onA11yCharEmitter=this._register(new F),this._onA11yTabEmitter=this._register(new F),this._onWillOpen=this._register(new F),this._setup(),this._decorationService=this._instantiationService.createInstance(sc),this._instantiationService.setService(ot,this._decorationService),this._linkProviderService=this._instantiationService.createInstance(Oa),this._instantiationService.setService(gt,this._linkProviderService),this._linkProviderService.registerLinkProvider(this._instantiationService.createInstance(st)),this._register(this._inputHandler.onRequestBell(()=>this._onBell.fire())),this._register(this._inputHandler.onRequestRefreshRows(e=>this.refresh(e?.start??0,e?.end??this.rows-1))),this._register(this._inputHandler.onRequestSendFocus(()=>this._reportFocus())),this._register(this._inputHandler.onRequestReset(()=>this.reset())),this._register(this._inputHandler.onRequestWindowsOptionsReport(e=>this._reportWindowsOptions(e))),this._register(this._inputHandler.onColor(e=>this._handleColorEvent(e))),this._register(P.forward(this._inputHandler.onCursorMove,this._onCursorMove)),this._register(P.forward(this._inputHandler.onTitleChange,this._onTitleChange)),this._register(P.forward(this._inputHandler.onA11yChar,this._onA11yCharEmitter)),this._register(P.forward(this._inputHandler.onA11yTab,this._onA11yTabEmitter)),this._register(this._bufferService.onResize(e=>this._afterResize(e.cols,e.rows))),this._register(j(()=>{this._customKeyEventHandler=void 0,this.element?.parentNode?.removeChild(this.element)}))}get linkifier(){return this._linkifier.value}get onFocus(){return this._onFocus.event}get onBlur(){return this._onBlur.event}get onA11yChar(){return this._onA11yCharEmitter.event}get onA11yTab(){return this._onA11yTabEmitter.event}get onWillOpen(){return this._onWillOpen.event}_handleColorEvent(e){if(this._themeService)for(let t of e){let e,n=``;switch(t.index){case 256:e=`foreground`,n=`10`;break;case 257:e=`background`,n=`11`;break;case 258:e=`cursor`,n=`12`;break;default:e=`ansi`,n=`4;`+t.index}switch(t.type){case 0:let r=W.toColorRGB(e===`ansi`?this._themeService.colors.ansi[t.index]:this._themeService.colors[e]);this.coreService.triggerDataEvent(`${R.ESC}]${n};${zs(r)}${Yi.ST}`);break;case 1:if(e===`ansi`)this._themeService.modifyColors(e=>e.ansi[t.index]=U.toColor(...t.color));else{let n=e;this._themeService.modifyColors(e=>e[n]=U.toColor(...t.color))}break;case 2:this._themeService.restoreColor(t.index);break}}}_setup(){super._setup(),this._customKeyEventHandler=void 0}get buffer(){return this.buffers.active}focus(){this.textarea&&this.textarea.focus({preventScroll:!0})}_handleScreenReaderModeOptionChange(e){e?!this._accessibilityManager.value&&this._renderService&&(this._accessibilityManager.value=this._instantiationService.createInstance(pc,this)):this._accessibilityManager.clear()}_handleTextAreaFocus(e){this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(R.ESC+`[I`),this.element.classList.add(`focus`),this._showCursor(),this._onFocus.fire()}blur(){return this.textarea?.blur()}_handleTextAreaBlur(){this.textarea.value=``,this.refresh(this.buffer.y,this.buffer.y),this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(R.ESC+`[O`),this.element.classList.remove(`focus`),this._onBlur.fire()}_syncTextArea(){if(!this.textarea||!this.buffer.isCursorInViewport||this._compositionHelper.isComposing||!this._renderService)return;let e=this.buffer.ybase+this.buffer.y,t=this.buffer.lines.get(e);if(!t)return;let n=Math.min(this.buffer.x,this.cols-1),r=this._renderService.dimensions.css.cell.height,i=t.getWidth(n),a=this._renderService.dimensions.css.cell.width*i,o=this.buffer.y*this._renderService.dimensions.css.cell.height,s=n*this._renderService.dimensions.css.cell.width;this.textarea.style.left=s+`px`,this.textarea.style.top=o+`px`,this.textarea.style.width=a+`px`,this.textarea.style.height=r+`px`,this.textarea.style.lineHeight=r+`px`,this.textarea.style.zIndex=`-5`}_initGlobal(){this._bindKeys(),this._register(I(this.element,`copy`,e=>{this.hasSelection()&&Ne(e,this._selectionService)}));let e=e=>Pe(e,this.textarea,this.coreService,this.optionsService);this._register(I(this.textarea,`paste`,e)),this._register(I(this.element,`paste`,e)),La?this._register(I(this.element,`mousedown`,e=>{e.button===2&&Le(e,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)})):this._register(I(this.element,`contextmenu`,e=>{Le(e,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)})),Ga&&this._register(I(this.element,`auxclick`,e=>{e.button===1&&Ie(e,this.textarea,this.screenElement)}))}_bindKeys(){this._register(I(this.textarea,`keyup`,e=>this._keyUp(e),!0)),this._register(I(this.textarea,`keydown`,e=>this._keyDown(e),!0)),this._register(I(this.textarea,`keypress`,e=>this._keyPress(e),!0)),this._register(I(this.textarea,`compositionstart`,()=>this._compositionHelper.compositionstart())),this._register(I(this.textarea,`compositionupdate`,e=>this._compositionHelper.compositionupdate(e))),this._register(I(this.textarea,`compositionend`,()=>this._compositionHelper.compositionend())),this._register(I(this.textarea,`input`,e=>this._inputEvent(e),!0)),this._register(this.onRender(()=>this._compositionHelper.updateCompositionElements()))}open(e){if(!e)throw Error(`Terminal requires a parent element.`);if(e.isConnected||this._logService.debug(`Terminal.open was called on an element that was not attached to the DOM`),this.element?.ownerDocument.defaultView&&this._coreBrowserService){this.element.ownerDocument.defaultView!==this._coreBrowserService.window&&(this._coreBrowserService.window=this.element.ownerDocument.defaultView);return}this._document=e.ownerDocument,this.options.documentOverride&&this.options.documentOverride instanceof Document&&(this._document=this.optionsService.rawOptions.documentOverride),this.element=this._document.createElement(`div`),this.element.dir=`ltr`,this.element.classList.add(`terminal`),this.element.classList.add(`xterm`),e.appendChild(this.element);let t=this._document.createDocumentFragment();this._viewportElement=this._document.createElement(`div`),this._viewportElement.classList.add(`xterm-viewport`),t.appendChild(this._viewportElement),this.screenElement=this._document.createElement(`div`),this.screenElement.classList.add(`xterm-screen`),this._register(I(this.screenElement,`mousemove`,e=>this.updateCursorStyle(e))),this._helperContainer=this._document.createElement(`div`),this._helperContainer.classList.add(`xterm-helpers`),this.screenElement.appendChild(this._helperContainer),t.appendChild(this.screenElement);let n=this.textarea=this._document.createElement(`textarea`);this.textarea.classList.add(`xterm-helper-textarea`),this.textarea.setAttribute(`aria-label`,Oe.get()),Ka||this.textarea.setAttribute(`aria-multiline`,`false`),this.textarea.setAttribute(`autocorrect`,`off`),this.textarea.setAttribute(`autocapitalize`,`off`),this.textarea.setAttribute(`spellcheck`,`false`),this.textarea.tabIndex=0,this._register(this.optionsService.onSpecificOptionChange(`disableStdin`,()=>n.readOnly=this.optionsService.rawOptions.disableStdin)),this.textarea.readOnly=this.optionsService.rawOptions.disableStdin,this._coreBrowserService=this._register(this._instantiationService.createInstance(Ea,this.textarea,e.ownerDocument.defaultView??window,this._document??typeof window<`u`?window.document:null)),this._instantiationService.setService(ut,this._coreBrowserService),this._register(I(this.textarea,`focus`,e=>this._handleTextAreaFocus(e))),this._register(I(this.textarea,`blur`,()=>this._handleTextAreaBlur())),this._helperContainer.appendChild(this.textarea),this._charSizeService=this._instantiationService.createInstance(Sa,this._document,this._helperContainer),this._instantiationService.setService(lt,this._charSizeService),this._themeService=this._instantiationService.createInstance(Ao),this._instantiationService.setService(ht,this._themeService),this._characterJoinerService=this._instantiationService.createInstance(ra),this._instantiationService.setService(mt,this._characterJoinerService),this._renderService=this._register(this._instantiationService.createInstance(Qa,this.rows,this.screenElement)),this._instantiationService.setService(ft,this._renderService),this._register(this._renderService.onRenderedViewportChange(e=>this._onRender.fire(e))),this.onResize(e=>this._renderService.resize(e.cols,e.rows)),this._compositionView=this._document.createElement(`div`),this._compositionView.classList.add(`composition-view`),this._compositionHelper=this._instantiationService.createInstance(Xi,this.textarea,this._compositionView),this._helperContainer.appendChild(this._compositionView),this._mouseService=this._instantiationService.createInstance(ja),this._instantiationService.setService(dt,this._mouseService);let r=this._linkifier.value=this._register(this._instantiationService.createInstance(mc,this.screenElement));this.element.appendChild(t);try{this._onWillOpen.fire(this.element)}catch{}this._renderService.hasRenderer()||this._renderService.setRenderer(this._createRenderer()),this._register(this.onCursorMove(()=>{this._renderService.handleCursorMove(),this._syncTextArea()})),this._register(this.onResize(()=>this._renderService.handleResize(this.cols,this.rows))),this._register(this.onBlur(()=>this._renderService.handleBlur())),this._register(this.onFocus(()=>this._renderService.handleFocus())),this._viewport=this._register(this._instantiationService.createInstance(Vi,this.element,this.screenElement)),this._register(this._viewport.onRequestScrollLines(e=>{super.scrollLines(e,!1),this.refresh(0,this.rows-1)})),this._selectionService=this._register(this._instantiationService.createInstance(xo,this.element,this.screenElement,r)),this._instantiationService.setService(pt,this._selectionService),this._register(this._selectionService.onRequestScrollLines(e=>this.scrollLines(e.amount,e.suppressScrollEvent))),this._register(this._selectionService.onSelectionChange(()=>this._onSelectionChange.fire())),this._register(this._selectionService.onRequestRedraw(e=>this._renderService.handleSelectionChanged(e.start,e.end,e.columnSelectMode))),this._register(this._selectionService.onLinuxMouseSelection(e=>{this.textarea.value=e,this.textarea.focus(),this.textarea.select()})),this._register(P.any(this._onScroll.event,this._inputHandler.onScroll)(()=>{this._selectionService.refresh(),this._viewport?.queueSync()})),this._register(this._instantiationService.createInstance(Hi,this.screenElement)),this._register(I(this.element,`mousedown`,e=>this._selectionService.handleMouseDown(e))),this.coreMouseService.areMouseEventsActive?(this._selectionService.disable(),this.element.classList.add(`enable-mouse-events`)):this._selectionService.enable(),this.options.screenReaderMode&&(this._accessibilityManager.value=this._instantiationService.createInstance(pc,this)),this._register(this.optionsService.onSpecificOptionChange(`screenReaderMode`,e=>this._handleScreenReaderModeOptionChange(e))),this.options.overviewRuler.width&&(this._overviewRulerRenderer=this._register(this._instantiationService.createInstance(qi,this._viewportElement,this.screenElement))),this.optionsService.onSpecificOptionChange(`overviewRuler`,e=>{!this._overviewRulerRenderer&&e&&this._viewportElement&&this.screenElement&&(this._overviewRulerRenderer=this._register(this._instantiationService.createInstance(qi,this._viewportElement,this.screenElement)))}),this._charSizeService.measure(),this.refresh(0,this.rows-1),this._initGlobal(),this.bindMouse()}_createRenderer(){return this._instantiationService.createInstance(xa,this,this._document,this.element,this.screenElement,this._viewportElement,this._helperContainer,this.linkifier)}bindMouse(){let e=this,t=this.element;function n(t){let n=e._mouseService.getMouseReportCoords(t,e.screenElement);if(!n)return!1;let r,i;switch(t.overrideType||t.type){case`mousemove`:i=32,t.buttons===void 0?(r=3,t.button!==void 0&&(r=t.button<3?t.button:3)):r=t.buttons&1?0:t.buttons&4?1:t.buttons&2?2:3;break;case`mouseup`:i=0,r=t.button<3?t.button:3;break;case`mousedown`:i=1,r=t.button<3?t.button:3;break;case`wheel`:if(e._customWheelEventHandler&&e._customWheelEventHandler(t)===!1)return!1;let n=t.deltaY;if(n===0||e.coreMouseService.consumeWheelEvent(t,e._renderService?.dimensions?.device?.cell?.height,e._coreBrowserService?.dpr)===0)return!1;i=n<0?0:1,r=4;break;default:return!1}return i===void 0||r===void 0||r>4?!1:e.coreMouseService.triggerMouseEvent({col:n.col,row:n.row,x:n.x,y:n.y,button:r,action:i,ctrl:t.ctrlKey,alt:t.altKey,shift:t.shiftKey})}let r={mouseup:null,wheel:null,mousedrag:null,mousemove:null},i={mouseup:e=>(n(e),e.buttons||(this._document.removeEventListener(`mouseup`,r.mouseup),r.mousedrag&&this._document.removeEventListener(`mousemove`,r.mousedrag)),this.cancel(e)),wheel:e=>(n(e),this.cancel(e,!0)),mousedrag:e=>{e.buttons&&n(e)},mousemove:e=>{e.buttons||n(e)}};this._register(this.coreMouseService.onProtocolChange(e=>{e?(this.optionsService.rawOptions.logLevel===`debug`&&this._logService.debug(`Binding to mouse events:`,this.coreMouseService.explainEvents(e)),this.element.classList.add(`enable-mouse-events`),this._selectionService.disable()):(this._logService.debug(`Unbinding from mouse events.`),this.element.classList.remove(`enable-mouse-events`),this._selectionService.enable()),e&8?r.mousemove||=(t.addEventListener(`mousemove`,i.mousemove),i.mousemove):(t.removeEventListener(`mousemove`,r.mousemove),r.mousemove=null),e&16?r.wheel||=(t.addEventListener(`wheel`,i.wheel,{passive:!1}),i.wheel):(t.removeEventListener(`wheel`,r.wheel),r.wheel=null),e&2?r.mouseup||=i.mouseup:(this._document.removeEventListener(`mouseup`,r.mouseup),r.mouseup=null),e&4?r.mousedrag||=i.mousedrag:(this._document.removeEventListener(`mousemove`,r.mousedrag),r.mousedrag=null)})),this.coreMouseService.activeProtocol=this.coreMouseService.activeProtocol,this._register(I(t,`mousedown`,e=>{if(e.preventDefault(),this.focus(),!(!this.coreMouseService.areMouseEventsActive||this._selectionService.shouldForceSelection(e)))return n(e),r.mouseup&&this._document.addEventListener(`mouseup`,r.mouseup),r.mousedrag&&this._document.addEventListener(`mousemove`,r.mousedrag),this.cancel(e)})),this._register(I(t,`wheel`,t=>{if(!r.wheel){if(this._customWheelEventHandler&&this._customWheelEventHandler(t)===!1)return!1;if(!this.buffer.hasScrollback){if(t.deltaY===0)return!1;if(e.coreMouseService.consumeWheelEvent(t,e._renderService?.dimensions?.device?.cell?.height,e._coreBrowserService?.dpr)===0)return this.cancel(t,!0);let n=R.ESC+(this.coreService.decPrivateModes.applicationCursorKeys?`O`:`[`)+(t.deltaY<0?`A`:`B`);return this.coreService.triggerDataEvent(n,!0),this.cancel(t,!0)}}},{passive:!1}))}refresh(e,t){this._renderService?.refreshRows(e,t)}updateCursorStyle(e){this._selectionService?.shouldColumnSelect(e)?this.element.classList.add(`column-select`):this.element.classList.remove(`column-select`)}_showCursor(){this.coreService.isCursorInitialized||(this.coreService.isCursorInitialized=!0,this.refresh(this.buffer.y,this.buffer.y))}scrollLines(e,t){this._viewport?this._viewport.scrollLines(e):super.scrollLines(e,t),this.refresh(0,this.rows-1)}scrollPages(e){this.scrollLines(e*(this.rows-1))}scrollToTop(){this.scrollLines(-this._bufferService.buffer.ydisp)}scrollToBottom(e){e&&this._viewport?this._viewport.scrollToLine(this.buffer.ybase,!0):this.scrollLines(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp)}scrollToLine(e){let t=e-this._bufferService.buffer.ydisp;t!==0&&this.scrollLines(t)}paste(e){Fe(e,this.textarea,this.coreService,this.optionsService)}attachCustomKeyEventHandler(e){this._customKeyEventHandler=e}attachCustomWheelEventHandler(e){this._customWheelEventHandler=e}registerLinkProvider(e){return this._linkProviderService.registerLinkProvider(e)}registerCharacterJoiner(e){if(!this._characterJoinerService)throw Error(`Terminal must be opened first`);let t=this._characterJoinerService.register(e);return this.refresh(0,this.rows-1),t}deregisterCharacterJoiner(e){if(!this._characterJoinerService)throw Error(`Terminal must be opened first`);this._characterJoinerService.deregister(e)&&this.refresh(0,this.rows-1)}get markers(){return this.buffer.markers}registerMarker(e){return this.buffer.addMarker(this.buffer.ybase+this.buffer.y+e)}registerDecoration(e){return this._decorationService.registerDecoration(e)}hasSelection(){return this._selectionService?this._selectionService.hasSelection:!1}select(e,t,n){this._selectionService.setSelection(e,t,n)}getSelection(){return this._selectionService?this._selectionService.selectionText:``}getSelectionPosition(){if(!(!this._selectionService||!this._selectionService.hasSelection))return{start:{x:this._selectionService.selectionStart[0],y:this._selectionService.selectionStart[1]},end:{x:this._selectionService.selectionEnd[0],y:this._selectionService.selectionEnd[1]}}}clearSelection(){this._selectionService?.clearSelection()}selectAll(){this._selectionService?.selectAll()}selectLines(e,t){this._selectionService?.selectLines(e,t)}_keyDown(e){if(this._keyDownHandled=!1,this._keyDownSeen=!0,this._customKeyEventHandler&&this._customKeyEventHandler(e)===!1)return!1;let t=this.browser.isMac&&this.options.macOptionIsMeta&&e.altKey;if(!t&&!this._compositionHelper.keydown(e))return this.options.scrollOnUserInput&&this.buffer.ybase!==this.buffer.ydisp&&this.scrollToBottom(!0),!1;!t&&(e.key===`Dead`||e.key===`AltGraph`)&&(this._unprocessedDeadKey=!0);let n=rc(e,this.coreService.decPrivateModes.applicationCursorKeys,this.browser.isMac,this.options.macOptionIsMeta);if(this.updateCursorStyle(e),n.type===3||n.type===2){let t=this.rows-1;return this.scrollLines(n.type===2?-t:t),this.cancel(e,!0)}if(n.type===1&&this.selectAll(),this._isThirdLevelShift(this.browser,e)||(n.cancel&&this.cancel(e,!0),!n.key)||e.key&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&e.key.length===1&&e.key.charCodeAt(0)>=65&&e.key.charCodeAt(0)<=90)return!0;if(this._unprocessedDeadKey)return this._unprocessedDeadKey=!1,!0;if((n.key===R.ETX||n.key===R.CR)&&(this.textarea.value=``),this._onKey.fire({key:n.key,domEvent:e}),this._showCursor(),this.coreService.triggerDataEvent(n.key,!0),!this.optionsService.rawOptions.screenReaderMode||e.altKey||e.ctrlKey)return this.cancel(e,!0);this._keyDownHandled=!0}_isThirdLevelShift(e,t){let n=e.isMac&&!this.options.macOptionIsMeta&&t.altKey&&!t.ctrlKey&&!t.metaKey||e.isWindows&&t.altKey&&t.ctrlKey&&!t.metaKey||e.isWindows&&t.getModifierState(`AltGraph`);return t.type===`keypress`?n:n&&(!t.keyCode||t.keyCode>47)}_keyUp(e){this._keyDownSeen=!1,!(this._customKeyEventHandler&&this._customKeyEventHandler(e)===!1)&&(_c(e)||this.focus(),this.updateCursorStyle(e),this._keyPressHandled=!1)}_keyPress(e){let t;if(this._keyPressHandled=!1,this._keyDownHandled||this._customKeyEventHandler&&this._customKeyEventHandler(e)===!1)return!1;if(this.cancel(e),e.charCode)t=e.charCode;else if(e.which===null||e.which===void 0)t=e.keyCode;else if(e.which!==0&&e.charCode!==0)t=e.which;else return!1;return!t||(e.altKey||e.ctrlKey||e.metaKey)&&!this._isThirdLevelShift(this.browser,e)?!1:(t=String.fromCharCode(t),this._onKey.fire({key:t,domEvent:e}),this._showCursor(),this.coreService.triggerDataEvent(t,!0),this._keyPressHandled=!0,this._unprocessedDeadKey=!1,!0)}_inputEvent(e){if(e.data&&e.inputType===`insertText`&&(!e.composed||!this._keyDownSeen)&&!this.optionsService.rawOptions.screenReaderMode){if(this._keyPressHandled)return!1;this._unprocessedDeadKey=!1;let t=e.data;return this.coreService.triggerDataEvent(t,!0),this.cancel(e),!0}return!1}resize(e,t){if(e===this.cols&&t===this.rows){this._charSizeService&&!this._charSizeService.hasValidSize&&this._charSizeService.measure();return}super.resize(e,t)}_afterResize(e,t){this._charSizeService?.measure()}clear(){if(!(this.buffer.ybase===0&&this.buffer.y===0)){this.buffer.clearAllMarkers(),this.buffer.lines.set(0,this.buffer.lines.get(this.buffer.ybase+this.buffer.y)),this.buffer.lines.length=1,this.buffer.ydisp=0,this.buffer.ybase=0,this.buffer.y=0;for(let e=1;e=0;e--)this._addons[e].instance.dispose()}loadAddon(e,t){let n={instance:t,dispose:t.dispose,isDisposed:!1};this._addons.push(n),t.dispose=()=>this._wrappedAddonDispose(n),t.activate(e)}_wrappedAddonDispose(e){if(e.isDisposed)return;let t=-1;for(let n=0;n=this._line.length))return t?(this._line.loadCell(e,t),t):this._line.loadCell(e,new Ke)}translateToString(e,t,n){return this._line.translateToString(e,t,n)}},bc=class{constructor(e,t){this._buffer=e,this.type=t}init(e){return this._buffer=e,this}get cursorY(){return this._buffer.y}get cursorX(){return this._buffer.x}get viewportY(){return this._buffer.ydisp}get baseY(){return this._buffer.ybase}get length(){return this._buffer.lines.length}getLine(e){let t=this._buffer.lines.get(e);if(t)return new yc(t)}getNullCell(){return new Ke}},xc=class extends M{constructor(e){super(),this._core=e,this._onBufferChange=this._register(new F),this.onBufferChange=this._onBufferChange.event,this._normal=new bc(this._core.buffers.normal,`normal`),this._alternate=new bc(this._core.buffers.alt,`alternate`),this._core.buffers.onBufferActivate(()=>this._onBufferChange.fire(this.active))}get active(){if(this._core.buffers.active===this._core.buffers.normal)return this.normal;if(this._core.buffers.active===this._core.buffers.alt)return this.alternate;throw Error(`Active buffer is neither normal nor alternate`)}get normal(){return this._normal.init(this._core.buffers.normal)}get alternate(){return this._alternate.init(this._core.buffers.alt)}},Sc=class{constructor(e){this._core=e}registerCsiHandler(e,t){return this._core.registerCsiHandler(e,e=>t(e.toArray()))}addCsiHandler(e,t){return this.registerCsiHandler(e,t)}registerDcsHandler(e,t){return this._core.registerDcsHandler(e,(e,n)=>t(e,n.toArray()))}addDcsHandler(e,t){return this.registerDcsHandler(e,t)}registerEscHandler(e,t){return this._core.registerEscHandler(e,t)}addEscHandler(e,t){return this.registerEscHandler(e,t)}registerOscHandler(e,t){return this._core.registerOscHandler(e,t)}addOscHandler(e,t){return this.registerOscHandler(e,t)}},Cc=class{constructor(e){this._core=e}register(e){this._core.unicodeService.register(e)}get versions(){return this._core.unicodeService.versions}get activeVersion(){return this._core.unicodeService.activeVersion}set activeVersion(e){this._core.unicodeService.activeVersion=e}},wc=[`cols`,`rows`],Tc=0,Ec=class extends M{constructor(e){super(),this._core=this._register(new gc(e)),this._addonManager=this._register(new vc),this._publicOptions={...this._core.options};let t=e=>this._core.options[e],n=(e,t)=>{this._checkReadonlyOptions(e),this._core.options[e]=t};for(let e in this._core.options){let r={get:t.bind(this,e),set:n.bind(this,e)};Object.defineProperty(this._publicOptions,e,r)}}_checkReadonlyOptions(e){if(wc.includes(e))throw Error(`Option "${e}" can only be set in the constructor`)}_checkProposedApi(){if(!this._core.optionsService.rawOptions.allowProposedApi)throw Error(`You must set the allowProposedApi option to true to use proposed API`)}get onBell(){return this._core.onBell}get onBinary(){return this._core.onBinary}get onCursorMove(){return this._core.onCursorMove}get onData(){return this._core.onData}get onKey(){return this._core.onKey}get onLineFeed(){return this._core.onLineFeed}get onRender(){return this._core.onRender}get onResize(){return this._core.onResize}get onScroll(){return this._core.onScroll}get onSelectionChange(){return this._core.onSelectionChange}get onTitleChange(){return this._core.onTitleChange}get onWriteParsed(){return this._core.onWriteParsed}get element(){return this._core.element}get parser(){return this._parser||=new Sc(this._core),this._parser}get unicode(){return this._checkProposedApi(),new Cc(this._core)}get textarea(){return this._core.textarea}get rows(){return this._core.rows}get cols(){return this._core.cols}get buffer(){return this._buffer||=this._register(new xc(this._core)),this._buffer}get markers(){return this._checkProposedApi(),this._core.markers}get modes(){let e=this._core.coreService.decPrivateModes,t=`none`;switch(this._core.coreMouseService.activeProtocol){case`X10`:t=`x10`;break;case`VT200`:t=`vt200`;break;case`DRAG`:t=`drag`;break;case`ANY`:t=`any`;break}return{applicationCursorKeysMode:e.applicationCursorKeys,applicationKeypadMode:e.applicationKeypad,bracketedPasteMode:e.bracketedPasteMode,insertMode:this._core.coreService.modes.insertMode,mouseTrackingMode:t,originMode:e.origin,reverseWraparoundMode:e.reverseWraparound,sendFocusMode:e.sendFocus,synchronizedOutputMode:e.synchronizedOutput,wraparoundMode:e.wraparound}}get options(){return this._publicOptions}set options(e){for(let t in e)this._publicOptions[t]=e[t]}blur(){this._core.blur()}focus(){this._core.focus()}input(e,t=!0){this._core.input(e,t)}resize(e,t){this._verifyIntegers(e,t),this._core.resize(e,t)}open(e){this._core.open(e)}attachCustomKeyEventHandler(e){this._core.attachCustomKeyEventHandler(e)}attachCustomWheelEventHandler(e){this._core.attachCustomWheelEventHandler(e)}registerLinkProvider(e){return this._core.registerLinkProvider(e)}registerCharacterJoiner(e){return this._checkProposedApi(),this._core.registerCharacterJoiner(e)}deregisterCharacterJoiner(e){this._checkProposedApi(),this._core.deregisterCharacterJoiner(e)}registerMarker(e=0){return this._verifyIntegers(e),this._core.registerMarker(e)}registerDecoration(e){return this._checkProposedApi(),this._verifyPositiveIntegers(e.x??0,e.width??0,e.height??0),this._core.registerDecoration(e)}hasSelection(){return this._core.hasSelection()}select(e,t,n){this._verifyIntegers(e,t,n),this._core.select(e,t,n)}getSelection(){return this._core.getSelection()}getSelectionPosition(){return this._core.getSelectionPosition()}clearSelection(){this._core.clearSelection()}selectAll(){this._core.selectAll()}selectLines(e,t){this._verifyIntegers(e,t),this._core.selectLines(e,t)}dispose(){super.dispose()}scrollLines(e){this._verifyIntegers(e),this._core.scrollLines(e)}scrollPages(e){this._verifyIntegers(e),this._core.scrollPages(e)}scrollToTop(){this._core.scrollToTop()}scrollToBottom(){this._core.scrollToBottom()}scrollToLine(e){this._verifyIntegers(e),this._core.scrollToLine(e)}clear(){this._core.clear()}write(e,t){this._core.write(e,t)}writeln(e,t){this._core.write(e),this._core.write(`\r +`,t)}paste(e){this._core.paste(e)}refresh(e,t){this._verifyIntegers(e,t),this._core.refresh(e,t)}reset(){this._core.reset()}clearTextureAtlas(){this._core.clearTextureAtlas()}loadAddon(e){this._addonManager.loadAddon(this,e)}static get strings(){return{get promptLabel(){return Oe.get()},set promptLabel(e){Oe.set(e)},get tooMuchOutput(){return Ae.get()},set tooMuchOutput(e){Ae.set(e)}}}_verifyIntegers(...e){for(Tc of e)if(Tc===1/0||isNaN(Tc)||Tc%1!=0)throw Error(`This API only accepts integers`)}_verifyPositiveIntegers(...e){for(Tc of e)if(Tc&&(Tc===1/0||isNaN(Tc)||Tc%1!=0||Tc<0))throw Error(`This API only accepts positive integers`)}},Dc=2,Oc=1,kc=class{activate(e){this._terminal=e}dispose(){}fit(){let e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;let t=this._terminal._core;(this._terminal.rows!==e.rows||this._terminal.cols!==e.cols)&&(t._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal||!this._terminal.element||!this._terminal.element.parentElement)return;let e=this._terminal._core._renderService.dimensions;if(e.css.cell.width===0||e.css.cell.height===0)return;let t=this._terminal.options.scrollback===0?0:this._terminal.options.overviewRuler?.width||14,n=window.getComputedStyle(this._terminal.element.parentElement),r=parseInt(n.getPropertyValue(`height`)),i=Math.max(0,parseInt(n.getPropertyValue(`width`))),a=window.getComputedStyle(this._terminal.element),o={top:parseInt(a.getPropertyValue(`padding-top`)),bottom:parseInt(a.getPropertyValue(`padding-bottom`)),right:parseInt(a.getPropertyValue(`padding-right`)),left:parseInt(a.getPropertyValue(`padding-left`))},s=o.top+o.bottom,c=o.right+o.left,l=r-s,u=i-c-t;return{cols:Math.max(Dc,Math.floor(u/e.css.cell.width)),rows:Math.max(Oc,Math.floor(l/e.css.cell.height))}}},Ac=class{constructor(e,t,n,r={}){this._terminal=e,this._regex=t,this._handler=n,this._options=r}provideLinks(e,t){let n=Mc.computeLink(e,this._regex,this._terminal,this._handler);t(this._addCallbacks(n))}_addCallbacks(e){return e.map(e=>(e.leave=this._options.leave,e.hover=(t,n)=>{if(this._options.hover){let{range:r}=e;this._options.hover(t,n,r)}},e))}};function jc(e){try{let t=new URL(e),n=t.password&&t.username?`${t.protocol}//${t.username}:${t.password}@${t.host}`:t.username?`${t.protocol}//${t.username}@${t.host}`:`${t.protocol}//${t.host}`;return e.toLocaleLowerCase().startsWith(n.toLocaleLowerCase())}catch{return!1}}var Mc=class e{static computeLink(t,n,r,i){let a=new RegExp(n.source,(n.flags||``)+`g`),[o,s]=e._getWindowedLineStrings(t-1,r),c=o.join(``),l,u=[];for(;l=a.exec(c);){let t=l[0];if(!jc(t))continue;let[n,a]=e._mapStrIdx(r,s,0,l.index),[o,c]=e._mapStrIdx(r,n,a,t.length);if(n===-1||a===-1||o===-1||c===-1)continue;let d={start:{x:a+1,y:n+1},end:{x:c,y:o+1}};u.push({range:d,text:t,activate:i})}return u}static _getWindowedLineStrings(e,t){let n,r=e,i=e,a=0,o=``,s=[];if(n=t.buffer.active.getLine(e)){let e=n.translateToString(!0);if(n.isWrapped&&e[0]!==` `){for(a=0;(n=t.buffer.active.getLine(--r))&&a<2048&&(o=n.translateToString(!0),a+=o.length,s.push(o),!(!n.isWrapped||o.indexOf(` `)!==-1)););s.reverse()}for(s.push(e),a=0;(n=t.buffer.active.getLine(++i))&&n.isWrapped&&a<2048&&(o=n.translateToString(!0),a+=o.length,s.push(o),o.indexOf(` `)===-1););}return[s,r]}static _mapStrIdx(e,t,n,r){let i=e.buffer.active,a=i.getNullCell(),o=n;for(;r;){let e=i.getLine(t);if(!e)return[-1,-1];for(let n=o;n`]*[^\s"':,.!?{}|\\\^~\[\]`()<>]/;function Pc(e,t){let n=window.open();if(n){try{n.opener=null}catch{}n.location.href=t}else console.warn(`Opening link blocked as opener could not be cleared`)}var Fc=class{constructor(e=Pc,t={}){this._handler=e,this._options=t}activate(e){this._terminal=e;let t=this._options,n=t.urlRegex||Nc;this._linkProvider=this._terminal.registerLinkProvider(new Ac(this._terminal,n,this._handler,t))}dispose(){this._linkProvider?.dispose()}},Ic=new Map;function Lc(){return{ws:null,term:null,fitAddon:null,resizeObserver:null,reconnectTimer:null,pingTimer:null,uptimeTimer:null}}function Rc(e){let t=Lc();return Ic.set(e,t),t}function $(e){return Ic.get(e)}function zc(e){Ic.delete(e)}function Bc(e,t){let n=$(e);n&&(n.term=a(t))}function Vc(e,t){let n=$(e);n&&(n.fitAddon=a(t))}function Hc(e,t){let n=$(e);n&&(n.resizeObserver=a(t))}function Uc(e){return $(e)?.ws?.readyState===WebSocket.OPEN}function Wc(e){Ic.forEach((t,n)=>e(n,t))}function Gc(e){let t=(e||``).trim();return t&&/^[^\x00-\x1f\x7f"'`\\]+$/.test(t)?t:``}function Kc(e){switch(e.status){case`connecting`:return`连接中…`;case`connected`:return`已连接`;case`error`:return`连接失败`;default:return`未连接`}}function qc(e){switch(e.status){case`connecting`:return`warning`;case`connected`:return`success`;case`error`:return`error`;default:return`grey`}}var Jc=`nexus_term_fontSize`,Yc=`nexus_term_scrollback`,Xc=[{title:`1 千行`,value:1e3},{title:`5 千行`,value:5e3},{title:`1 万行`,value:1e4},{title:`5 万行`,value:5e4}];function Zc(){let e=n(parseInt(localStorage.getItem(Jc)||`14`,10)),t=n(parseInt(localStorage.getItem(Yc)||`1000`,10));function r(t){e.value=Math.max(10,Math.min(24,e.value+t)),localStorage.setItem(Jc,String(e.value)),Wc((t,n)=>{if(n.term){n.term.options.fontSize=e.value;try{n.fitAddon?.fit()}catch{}}})}function i(e){t.value=e,localStorage.setItem(Yc,String(e)),Wc((t,n)=>{n.term&&(n.term.options.scrollback=e)})}function a(t){let n=$(t)?.term;n&&(n.options.fontSize=e.value)}return{fontSize:e,scrollback:t,scrollbackOptions:Xc,changeFontSize:r,changeScrollback:i,applyFontToSession:a}}var Qc=`nexus_term_history`;function $c(){try{return JSON.parse(localStorage.getItem(Qc)||`[]`)}catch{return[]}}function el(e,t){let r=n(``);function i(){let n=e();if(!n||!Uc(n.id))return;let i=r.value;if(!i||(n.cmdHistory.push(i),n.cmdIdx=-1,!t(n.id,i+`\r`)))return;r.value=``;let a=$c();a.length>=200&&a.shift(),a.push(i),localStorage.setItem(Qc,JSON.stringify(a))}function a(e){if(e.key===`Enter`&&!e.shiftKey){e.preventDefault(),i();return}if(e.key===`ArrowUp`){e.preventDefault(),o();return}e.key===`ArrowDown`&&(e.preventDefault(),s())}function o(){let t=e();t&&t.cmdIdx0?(t.cmdIdx--,r.value=t.cmdHistory[t.cmdHistory.length-1-t.cmdIdx]):(t.cmdIdx=-1,r.value=``))}function c(n){let r=e();!r||!Uc(r.id)||t(r.id,String.fromCharCode(n.toLowerCase().charCodeAt(0)-96))}function l(n){let r=e();!r||!Uc(r.id)||t(r.id,n)}function u(){return[...$c()]}return{cmdInput:r,sendCmd:i,onCmdKeydown:a,cmdHistoryUp:o,cmdHistoryDown:s,sendCtrl:c,sendKey:l,loadHistoryForNewSession:u}}var tl=10;function nl(e){let t=ee(),r=s(),i=l(),a=ge(),o=Zc(),c=n([]),u=n(``),d=n(null),f=new Map,m=n(!1),h=n([]),_=n(``),te=n([]),v=p(()=>c.value.find(e=>e.id===u.value)||null),ne=p(()=>{let e=u.value;return e?Uc(e):!1}),re=p(()=>{let e=_.value.toLowerCase().trim();return h.value.filter(t=>!e||t.name.toLowerCase().includes(e)||t.domain.toLowerCase().includes(e))}),ie=p(()=>c.value.length===0&&!m.value);function y(e){return c.value.find(t=>t.id===e)}function ae(e,t){let n=$(e)?.ws;return!n||n.readyState!==WebSocket.OPEN?!1:(n.send(JSON.stringify({type:`DATA`,data:t})),!0)}let oe=el(()=>v.value,ae);function b(){Wc((e,t)=>{try{t.fitAddon?.fit()}catch{}})}pe(e,()=>{ue(()=>{b(),setTimeout(b,220)})});function x(e,t){e&&f.set(t,e)}function S(){let e=i.global.current.value.dark;return new Ec({cursorBlink:!0,cursorStyle:`bar`,fontSize:o.fontSize.value,scrollback:o.scrollback.value,fontFamily:`"Cascadia Code","Fira Code","JetBrains Mono",Menlo,monospace`,theme:e?{background:`#0b1120`,foreground:`#e2e8f0`,cursor:`#7c8bf4`,selectionBackground:`#334155`,black:`#1e293b`,red:`#f87171`,green:`#4ade80`,yellow:`#fbbf24`,blue:`#60a5fa`,magenta:`#c084fc`,cyan:`#22d3ee`,white:`#e2e8f0`,brightBlack:`#64748b`,brightRed:`#fca5a5`,brightGreen:`#86efac`,brightYellow:`#fde047`,brightBlue:`#93c5fd`,brightMagenta:`#d8b4fe`,brightCyan:`#67e8f9`,brightWhite:`#f8fafc`}:{background:`#f8fafc`,foreground:`#0f172a`,cursor:`#4f46e5`,selectionBackground:`#bfdbfe`,black:`#1e293b`,red:`#dc2626`,green:`#16a34a`,yellow:`#ca8a04`,blue:`#2563eb`,magenta:`#9333ea`,cyan:`#0891b2`,white:`#f1f5f9`,brightBlack:`#64748b`,brightRed:`#ef4444`,brightGreen:`#22c55e`,brightYellow:`#eab308`,brightBlue:`#3b82f6`,brightMagenta:`#a855f7`,brightCyan:`#06b6d4`,brightWhite:`#ffffff`},allowProposedApi:!0,drawBoldTextInBrightColors:!0})}function C(e,t){let n=Gc(t);!n||!Uc(e.id)||(ae(e.id,`cd ${n}\r`),e.initialCdSent=!0)}function w(e){let t=$(e.id);t?.uptimeTimer&&(clearInterval(t.uptimeTimer),t.uptimeTimer=null),e.uptime=``}function se(e){if(!e.connectionStartTime){e.uptime=``;return}let t=Math.floor((Date.now()-e.connectionStartTime)/1e3),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60;e.uptime=`${String(n).padStart(2,`0`)}:${String(r).padStart(2,`0`)}:${String(i).padStart(2,`0`)}`}function T(e){e.connectionStartTime=Date.now(),w(e),se(e);let t=$(e.id);t&&(t.uptimeTimer=setInterval(()=>se(e),1e3))}function ce(e){let t=$(e.id);t?.pingTimer&&(clearInterval(t.pingTimer),t.pingTimer=null),e.pingMs=null}function le(e){ce(e),e.pingMs=null;let t=$(e.id);t&&(t.pingTimer=setInterval(()=>{Uc(e.id)&&$(e.id)?.ws?.send(JSON.stringify({type:`PING`,ts:Date.now()}))},5e3))}function de(e){let t=$(e);if(t){if(t.reconnectTimer&&=(clearTimeout(t.reconnectTimer),null),t.pingTimer&&=(clearInterval(t.pingTimer),null),t.uptimeTimer&&=(clearInterval(t.uptimeTimer),null),t.ws){try{t.ws.close(1e3)}catch{}t.ws=null}if(t.term){try{t.term.dispose()}catch{}t.term=null}if(t.resizeObserver){try{t.resizeObserver.disconnect()}catch{}t.resizeObserver=null}t.fitAddon=null,zc(e)}}async function fe(e){let t=y(e);if(!t)return;let n=$(e);if(!n)return;if(n.ws){try{n.ws.close(1e3)}catch{}n.ws=null}t.status=`connecting`;let i;try{i=(await g.post(`/auth/webssh-token`,{server_id:t.serverId})).webssh_token}catch(e){let r=e instanceof Error?e.message:`无法获取终端令牌`;t.status=`error`,n.term?.writeln(`\r\n\x1b[31m⚠ ${r}\x1b[0m`),t.showOverlay=!0,t.overlayMsg=r,t.reconnectCountdown=``;return}let a=xe(`/ws/terminal/${t.serverId}`,{token:i}),o=new WebSocket(a);n.ws=o,o.onopen=()=>{t.status=`connected`,t.manualDisconnect=!1,t.reconnectAttempt=0,n.reconnectTimer&&=(clearTimeout(n.reconnectTimer),null),t.showOverlay=!1,t.overlayMsg=``,t.reconnectCountdown=``,T(t),le(t),n.term?.focus()},o.onmessage=e=>{try{let r=JSON.parse(e.data);switch(r.type){case`TERMINAL_INIT`:t.serverName=r.server_name||t.serverName;{let e=n.fitAddon?.proposeDimensions();e&&o.readyState===WebSocket.OPEN&&o.send(JSON.stringify({type:`RESIZE`,cols:e.cols,rows:e.rows}))}t.pendingPath&&!t.initialCdSent&&o.readyState===WebSocket.OPEN&&C(t,t.pendingPath);break;case`DATA`:n.term?.write(r.data);break;case`ERROR`:n.term?.write(`\r\n\x1b[31m⚠ ${r.message}\x1b[0m\r\n`);break;case`PONG`:t.pingMs=Date.now()-(r.ts||0);break;case`CLOSE`:n.term?.write(`\r +\x1B[33m━━ 连接已关闭 ━━\x1B[0m\r +`);break}}catch{n.term?.write(e.data)}},o.onclose=e=>{if(ce(t),e.code===4001){n.term?.write(`\r +\x1B[31m⚠ 认证失败,请重新登录\x1B[0m\r +`),setTimeout(()=>r.push(`/login`),2e3);return}if(e.code===4003){t.status=`error`,n.term?.write(`\r\n\x1b[31m⚠ 授权失败: ${e.reason||`SSH凭据未配置`}\x1b[0m\r\n`),t.showOverlay=!0,t.overlayMsg=e.reason||`SSH 凭据未配置`,t.reconnectCountdown=``;return}t.status=`error`,n.ws=null,!t.manualDisconnect&&e.code!==1e3&&e.code!==4001&&e.code!==4003?me(t):(t.showOverlay=!0,t.overlayMsg=`连接已断开`,t.reconnectCountdown=``)},o.onerror=()=>{}}function me(e){let t=$(e.id);if(!t)return;e.reconnectAttempt++;let n=Math.min(1e3*2**(e.reconnectAttempt-1),3e4);e.showOverlay=!0,e.overlayMsg=`连接已断开`,e.reconnectCountdown=`${Math.ceil(n/1e3)} 秒后自动重连…`,t.reconnectTimer=setTimeout(()=>{he(e)},n)}async function he(e){let t=$(e.id);t&&(e.showOverlay=!1,e.reconnectCountdown=``,e.manualDisconnect=!1,e.reconnectAttempt=0,t.term?.clear(),await fe(e.id))}function _e(){let e=v.value;if(!e)return;let t=$(e.id);t?.reconnectTimer&&(clearTimeout(t.reconnectTimer),t.reconnectTimer=null),e.reconnectAttempt=0,he(e)}function ve(){let e=v.value;if(!e)return;let t=$(e.id);t&&(e.manualDisconnect=!0,t.reconnectTimer&&=(clearTimeout(t.reconnectTimer),null),t.ws&&=(t.ws.readyState===WebSocket.OPEN&&(t.ws.send(JSON.stringify({type:`CLOSE`})),t.ws.close(1e3,`User disconnect`)),null),ce(e),w(e),e.showOverlay=!0,e.overlayMsg=`连接已断开`,e.reconnectCountdown=``)}async function ye(e){u.value=e,await ue();let t=$(e);t?.fitAddon&&setTimeout(()=>{try{t.fitAddon.fit()}catch{}},50),t?.term?.focus()}async function be(e){let t=c.value.findIndex(t=>t.id===e);if(t<0)return;if(de(e),f.delete(e),c.value.splice(t,1),c.value.length===0){u.value=``;return}let n=Math.min(t,c.value.length-1);await ye(c.value[n].id)}async function E(e,t){if(c.value.length>=tl){a(`最多10个标签`,`warning`);return}if(!e){m.value=!0;return}let n=c.value.find(t=>t.serverId===e);if(n){a(`该服务器已有会话,已切换过去`,`info`),await ye(n.id),t?.path&&C(n,t.path);return}let r=h.value.find(t=>t.id===e),i=r?r.name:`#${e}`,o=`term_${Date.now()}`,s={id:o,serverId:e,serverName:i,cwd:``,cmdHistory:oe.loadHistoryForNewSession(),cmdIdx:-1,reconnectAttempt:0,manualDisconnect:!1,status:`idle`,showOverlay:!1,overlayMsg:``,reconnectCountdown:``,uptime:``,pingMs:null,connectionStartTime:0,pendingPath:Gc(t?.path||``),initialCdSent:!1};Rc(o),c.value.push(s),await ye(o),await ue();let l=f.get(o);if(!l)return;let u=S(),d=new kc;u.loadAddon(d),u.loadAddon(new Fc),u.open(l),Bc(o,u),Vc(o,d),u.onData(e=>{Uc(o)&&ae(o,e)}),u.onResize(({cols:e,rows:t})=>{let n=$(o)?.ws;n?.readyState===WebSocket.OPEN&&n.send(JSON.stringify({type:`RESIZE`,cols:e,rows:t}))}),u.onTitleChange(e=>{let t=y(o);if(t){let n=e.match(/^(\/.+)/);n&&(t.cwd=n[1])}});let p=new ResizeObserver(()=>{try{d.fit()}catch{}});p.observe(l),Hc(o,p),await fe(o),setTimeout(()=>{try{d.fit()}catch{}},100),u.focus()}async function Se(){let e=Number(t.query.server_id)||0,n=Gc(String(t.query.path||``)),r=t.query.new_tab===`1`||t.query.new_tab===`true`;if(e){if(!r){let t=c.value.find(t=>t.serverId===e);if(t){await ye(t.id),n&&C(t,n);return}}await E(e,{path:n})}}function we(){document.fullscreenElement?document.exitFullscreen?.():d.value?.requestFullscreen?.()}async function Te(){try{te.value=Ce(await g.get(`/terminal/quick-commands`)||[])}catch{a(`快捷命令加载失败,已使用内置命令`,`warning`),te.value=Ce([{id:1,name:`系统状态`,cmd:`systemctl status --no-pager 2>&1 | head -20\r`,is_builtin:!0,sort_order:1001},{id:2,name:`系统日志`,cmd:`journalctl -n 30 --no-pager 2>&1\r`,is_builtin:!0,sort_order:1002},{id:3,name:`磁盘使用`,cmd:`df -h\r`,is_builtin:!0,sort_order:1003},{id:4,name:`内存使用`,cmd:`free -h\r`,is_builtin:!0,sort_order:1004},{id:5,name:`进程列表`,cmd:`ps aux --sort=-%mem 2>&1 | head -15\r`,is_builtin:!0,sort_order:1005}])}}function Ee(e){let t=v.value;if(!t||!Uc(t.id)){a(`终端未连接`,`warning`);return}ae(t.id,e),$(t.id)?.term?.focus()}async function D(){try{h.value=(await g.get(`/servers/`,{per_page:200})).items||[]}catch{}}function O(e){if(e.ctrlKey&&e.key===`l`){e.preventDefault();let t=v.value,n=t?$(t.id):void 0;n?.term&&(n.term.clear(),Uc(t.id)&&ae(t.id,`\f`));return}if(e.ctrlKey&&(e.key===`+`||e.key===`=`)){e.preventDefault(),o.changeFontSize(1);return}e.ctrlKey&&e.key===`-`&&(e.preventDefault(),o.changeFontSize(-1)),e.ctrlKey&&e.shiftKey&&e.key===`F`&&(e.preventDefault(),we())}function De(){c.value.map(e=>e.id).forEach(de),f.clear(),c.value=[],u.value=``}return pe(()=>[t.query.server_id,t.query.path,t.query.new_tab],()=>{Se()}),{sessions:c,activeSessionId:u,activeSession:v,activeSessionConnected:ne,termContainer:d,showServerDialog:m,servers:h,serverSearch:_,filteredServers:re,showEmptyPicker:ie,quickCmds:te,fontSize:o.fontSize,scrollback:o.scrollback,scrollbackOptions:o.scrollbackOptions,changeFontSize:o.changeFontSize,changeScrollback:o.changeScrollback,cmdInput:oe.cmdInput,sendCmd:oe.sendCmd,onCmdKeydown:oe.onCmdKeydown,sendCtrl:oe.sendCtrl,sendKey:oe.sendKey,setTermRef:x,switchTab:ye,closeTab:be,newSession:E,disconnect:ve,reconnect:_e,toggleFullscreen:we,loadQuickCmds:Te,execQuickCmd:Ee,loadServers:D,applyRouteQuery:Se,onGlobalKeydown:O,disposeAllSessions:De,getNative:$,sendWsData:ae}}var rl={class:`d-flex align-center px-2 py-1 shrink-0 terminal-tab-bar`},il={class:`d-flex align-center ga-1 overflow-x-auto flex-grow-1`},al={class:`text-truncate terminal-tab-bar__title`},ol=E(se({__name:`TerminalTabBar`,props:{sessions:{},activeSessionId:{}},emits:[`switch`,`close`,`new`],setup(t){return(n,a)=>(x(),w(`div`,rl,[e(`div`,il,[(x(!0),w(v,null,ie(t.sessions,o=>(x(),b(ve,{key:o.id,variant:o.id===t.activeSessionId?`flat`:`outlined`,color:o.id===t.activeSessionId?`primary`:`default`,size:`small`,label:``,class:`cursor-pointer`,onClick:e=>n.$emit(`switch`,o.id)},{prepend:i(()=>[y(te,{size:`8`,color:o.status===`connected`?`success`:o.status===`connecting`?`warning`:`grey`},{default:i(()=>[...a[1]||=[S(` mdi-circle `,-1)]]),_:1},8,[`color`])]),default:i(()=>[e(`span`,al,r(o.serverName),1),y(te,{end:``,size:`12`,class:`ml-1`,onClick:ne(e=>n.$emit(`close`,o.id),[`stop`])},{default:i(()=>[...a[2]||=[S(`mdi-close`,-1)]]),_:1},8,[`onClick`])]),_:2},1032,[`variant`,`color`,`onClick`]))),128)),y(m,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-plus`,onClick:a[0]||=e=>n.$emit(`new`)},{default:i(()=>[...a[3]||=[S(` 新建会话 `,-1)]]),_:1})])]))}}),[[`__scopeId`,`data-v-071fb540`]]),sl={class:`d-flex align-center justify-space-between px-4 py-1 shrink-0 terminal-toolbar`},cl={class:`d-flex align-center ga-3`},ll={class:`text-body-2 font-weight-medium`},ul={key:0,class:`text-caption text-medium-emphasis font-mono terminal-toolbar__cwd`},dl={key:2,class:`text-caption text-medium-emphasis`},fl={key:3,class:`text-caption text-medium-emphasis`},pl={class:`d-flex align-center ga-2 terminal-toolbar-actions`},ml={class:`text-body-2 font-weight-medium terminal-toolbar__font-size`},hl=E(se({__name:`TerminalToolbar`,props:{session:{},fontSize:{},scrollback:{}},emits:[`font-change`,`scrollback-change`,`fullscreen`,`disconnect`],setup(t){let n=t,a=p(()=>n.session?Kc(n.session):``),o=p(()=>n.session?qc(n.session):`grey`);return(n,s)=>(x(),w(`div`,sl,[e(`div`,cl,[e(`span`,ll,r(t.session?.serverName||`...`),1),t.session?.cwd?(x(),w(`span`,ul,r(t.session.cwd),1)):le(``,!0),t.session?(x(),b(ve,{key:1,color:o.value,variant:`tonal`,size:`x-small`,label:``},{prepend:i(()=>[y(te,{start:``,size:`8`},{default:i(()=>[...s[5]||=[S(`mdi-circle`,-1)]]),_:1})]),default:i(()=>[S(` `+r(a.value),1)]),_:1},8,[`color`])):le(``,!0),t.session?.uptime?(x(),w(`span`,dl,r(t.session.uptime),1)):le(``,!0),t.session?.pingMs!==null&&t.session?.pingMs!==void 0?(x(),w(`span`,fl,r(t.session.pingMs)+`ms `,1)):le(``,!0)]),e(`div`,pl,[s[10]||=e(`span`,{class:`text-body-2 text-medium-emphasis shrink-0`},`字号`,-1),y(m,{variant:`tonal`,size:`small`,onClick:s[0]||=e=>n.$emit(`font-change`,-1)},{default:i(()=>[...s[6]||=[S(`缩小`,-1)]]),_:1}),e(`span`,ml,r(t.fontSize),1),y(m,{variant:`tonal`,size:`small`,onClick:s[1]||=e=>n.$emit(`font-change`,1)},{default:i(()=>[...s[7]||=[S(`放大`,-1)]]),_:1}),y(ye,{"model-value":t.scrollback,items:c(Xc),"item-title":`title`,"item-value":`value`,label:`回滚行数`,density:`comfortable`,"hide-details":``,variant:`outlined`,class:`terminal-toolbar-scrollback`,"onUpdate:modelValue":s[2]||=e=>n.$emit(`scrollback-change`,e)},null,8,[`model-value`,`items`]),y(m,{variant:`tonal`,size:`small`,"prepend-icon":`mdi-fullscreen`,onClick:s[3]||=e=>n.$emit(`fullscreen`)},{default:i(()=>[...s[8]||=[S(` 全屏 `,-1)]]),_:1}),y(m,{variant:`tonal`,size:`small`,color:`error`,"prepend-icon":`mdi-link-off`,onClick:s[4]||=e=>n.$emit(`disconnect`)},{default:i(()=>[...s[9]||=[S(` 断开 `,-1)]]),_:1})])]))}}),[[`__scopeId`,`data-v-951cf59a`]]),gl={key:0,class:`d-flex flex-column align-center justify-center fill-height pa-6`},_l={class:`text-center`},vl={class:`text-h6 mb-2`},yl={key:0,class:`text-body-2 text-medium-emphasis mb-4`},bl={class:`d-flex ga-3 justify-center`},xl=E(se({__name:`TerminalArea`,props:{sessions:{},activeSessionId:{},activeSession:{},showEmpty:{type:Boolean}},emits:[`context-menu`,`reconnect`,`go-servers`,`pane-ref`],setup(t,{expose:a,emit:o}){let s=t,c=o,l=n(null);function u(e){let t=e===s.activeSessionId;return{position:`absolute`,top:`0`,right:`0`,bottom:`0`,left:`0`,zIndex:+!!t,pointerEvents:t?`auto`:`none`,opacity:+!!t}}function d(e,t){c(`pane-ref`,e,t)}return a({containerRef:l}),(n,a)=>(x(),w(`div`,{ref_key:`containerRef`,ref:l,class:`flex-grow-1 terminal-area`,onContextmenu:a[2]||=e=>n.$emit(`context-menu`,e)},[(x(!0),w(v,null,ie(t.sessions,e=>(x(),w(`div`,{key:e.id,ref_for:!0,ref:t=>d(t,e.id),class:`terminal-area__pane`,style:he(u(e.id))},null,4))),128)),t.showEmpty?(x(),w(`div`,gl,[y(te,{size:`56`,color:`primary`,class:`mb-3`},{default:i(()=>[...a[3]||=[S(`mdi-console-network`,-1)]]),_:1}),a[4]||=e(`div`,{class:`text-h6 mb-1 text-center`},`WebSSH 终端`,-1),a[5]||=e(`div`,{class:`text-body-2 text-medium-emphasis mb-4 text-center`},` 选择一台服务器开始会话,或从服务器页点击「终端」 `,-1),de(n.$slots,`empty-picker`,{},void 0,!0)])):le(``,!0),t.activeSession?.showOverlay?(x(),b(me,{key:1,"model-value":!0,class:`d-flex align-center justify-center`,persistent:``},{default:i(()=>[e(`div`,_l,[e(`div`,vl,r(t.activeSession.overlayMsg),1),t.activeSession.reconnectCountdown?(x(),w(`div`,yl,r(t.activeSession.reconnectCountdown),1)):le(``,!0),e(`div`,bl,[y(m,{color:`primary`,variant:`flat`,onClick:a[0]||=e=>n.$emit(`reconnect`)},{default:i(()=>[...a[6]||=[S(`重新连接`,-1)]]),_:1}),y(m,{variant:`outlined`,onClick:a[1]||=e=>n.$emit(`go-servers`)},{default:i(()=>[...a[7]||=[S(`返回列表`,-1)]]),_:1})])])]),_:1})):le(``,!0)],544))}}),[[`__scopeId`,`data-v-bf9b6089`]]),Sl={class:`flex-grow-1 cmd-bar__input-wrap`},Cl={class:`terminal-hotkeys shrink-0 pl-3`},wl={class:`d-flex flex-column ga-2`},Tl=E(se({__name:`TerminalCmdBar`,props:{modelValue:{},disabled:{type:Boolean}},emits:[`update:modelValue`,`keydown`,`send`,`ctrl`,`key`,`context-menu`],setup(t,{expose:r}){let a=n(null);function o(){return a.value?.getInputEl()??null}function s(){return a.value?.getSelectionText()??``}function c(){a.value?.selectAllInput()}async function l(e){await a.value?.insertAtSelection(e)}return r({getInputEl:o,getSelectionText:s,selectAllInput:c,insertAtSelection:l}),(n,r)=>(x(),w(`div`,{class:h([`d-flex align-start ga-2 px-3 py-2 shrink-0 cmd-bar cmd-bar--tall`,{"opacity-50 pointer-events-none":t.disabled}]),onContextmenu:r[6]||=e=>n.$emit(`context-menu`,e)},[r[12]||=e(`span`,{class:`cmd-bar__prompt font-mono text-primary shrink-0`},`❯`,-1),e(`div`,Sl,[y(Se,{ref_key:`fieldRef`,ref:a,"model-value":t.modelValue,multiline:``,rows:3,size:`large`,placeholder:`输入命令,Enter 发送,Shift+Enter 换行`,disabled:t.disabled,"onUpdate:modelValue":r[0]||=e=>n.$emit(`update:modelValue`,e),onKeydown:r[1]||=e=>n.$emit(`keydown`,e)},null,8,[`model-value`,`disabled`])]),y(m,{size:`default`,variant:`tonal`,color:`primary`,class:`mt-1`,disabled:t.disabled,onClick:r[2]||=e=>n.$emit(`send`)},{default:i(()=>[...r[7]||=[S(` 发送 `,-1)]]),_:1},8,[`disabled`]),e(`div`,Cl,[r[11]||=e(`div`,{class:`text-body-2 font-weight-medium text-medium-emphasis mb-2`},`快捷键`,-1),e(`div`,wl,[y(m,{size:`default`,variant:`outlined`,block:``,onClick:r[3]||=e=>n.$emit(`ctrl`,`c`)},{default:i(()=>[...r[8]||=[S(`中断 (Ctrl+C)`,-1)]]),_:1}),y(m,{size:`default`,variant:`outlined`,block:``,onClick:r[4]||=e=>n.$emit(`ctrl`,`d`)},{default:i(()=>[...r[9]||=[S(`退出 (Ctrl+D)`,-1)]]),_:1}),y(m,{size:`default`,variant:`outlined`,block:``,onClick:r[5]||=e=>n.$emit(`key`,` `)},{default:i(()=>[...r[10]||=[S(`补全 (Tab)`,-1)]]),_:1})])])],34))}}),[[`__scopeId`,`data-v-2acd4b40`]]),El={class:`terminal-quick-bar shrink-0`},Dl={class:`d-flex align-center ga-1 flex-grow-1 overflow-x-auto`},Ol=E(se({__name:`TerminalQuickBar`,props:{commands:{}},emits:[`exec`],setup(t){return(n,a)=>(x(),w(`div`,El,[a[1]||=e(`span`,{class:`terminal-quick-bar__label`},`快捷命令`,-1),e(`div`,Dl,[(x(!0),w(v,null,ie(t.commands,e=>(x(),b(ve,{key:e.id,size:`small`,variant:e.is_builtin?`outlined`:`flat`,color:e.is_builtin?`default`:`primary`,label:``,class:`cursor-pointer`,onClick:t=>n.$emit(`exec`,e.cmd)},{default:i(()=>[S(r(e.name),1)]),_:2},1032,[`variant`,`color`,`onClick`]))),128))]),y(m,{size:`small`,variant:`text`,"prepend-icon":`mdi-cog-outline`,to:{path:`/settings`,hash:`#terminal-quick-commands`}},{default:i(()=>[...a[0]||=[S(` 管理 `,-1)]]),_:1})]))}}),[[`__scopeId`,`data-v-aa74ff73`]]),kl=E(se({__name:`TerminalServerPicker`,props:{servers:{},search:{},mode:{default:`inline`}},emits:[`update:search`,`select`],setup(e){return(t,n)=>e.mode===`inline`?(x(),b(d,{key:0,border:``,rounded:`lg`,class:`empty-server-picker`,"max-width":`520`,width:`100%`},{default:i(()=>[y(f,{class:`pa-3`},{default:i(()=>[y(ce,{"model-value":e.search,"prepend-inner-icon":`mdi-magnify`,placeholder:`搜索服务器…`,variant:`outlined`,density:`compact`,"hide-details":``,class:`mb-2`,"onUpdate:modelValue":n[0]||=e=>t.$emit(`update:search`,e)},null,8,[`model-value`]),y(fe,{density:`compact`,class:`empty-server-picker__list`,nav:``},{default:i(()=>[(x(!0),w(v,null,ie(e.servers,e=>(x(),b(C,{key:e.id,title:e.name,subtitle:e.domain,rounded:`lg`,onClick:n=>t.$emit(`select`,e.id)},{prepend:i(()=>[y(te,{color:e.is_online?`success`:`grey`,size:`8`},{default:i(()=>[...n[2]||=[S(`mdi-circle`,-1)]]),_:1},8,[`color`])]),_:2},1032,[`title`,`subtitle`,`onClick`]))),128)),e.servers.length===0?(x(),b(C,{key:0,class:`text-medium-emphasis`},{default:i(()=>[...n[3]||=[S(` 暂无匹配的服务器 `,-1)]]),_:1})):le(``,!0)]),_:1})]),_:1})]),_:1})):(x(),w(v,{key:1},[y(ce,{"model-value":e.search,"prepend-inner-icon":`mdi-magnify`,placeholder:`搜索…`,variant:`outlined`,density:`compact`,class:`mb-3`,"onUpdate:modelValue":n[1]||=e=>t.$emit(`update:search`,e)},null,8,[`model-value`]),y(fe,{density:`compact`,"max-height":`300`,style:{"overflow-y":`auto`}},{default:i(()=>[(x(!0),w(v,null,ie(e.servers,e=>(x(),b(C,{key:e.id,title:e.name,subtitle:e.domain,onClick:n=>t.$emit(`select`,e.id)},{prepend:i(()=>[y(te,{color:e.is_online?`success`:`grey`,size:`8`},{default:i(()=>[...n[4]||=[S(`mdi-circle`,-1)]]),_:1},8,[`color`])]),_:2},1032,[`title`,`subtitle`,`onClick`]))),128)),e.servers.length===0?(x(),b(C,{key:0,class:`text-medium-emphasis`},{default:i(()=>[...n[5]||=[S(` 暂无匹配的服务器 `,-1)]]),_:1})):le(``,!0)]),_:1})],64))}}),[[`__scopeId`,`data-v-abd2b4bc`]]),Al={class:`d-flex flex-column flex-grow-1`,style:{"min-height":`0`}},jl=E(se({__name:`TerminalPage`,setup(r){let a=s(),m=l(),g=ge(),{sessions:ee,activeSessionId:te,activeSession:ne,activeSessionConnected:ie,termContainer:se,showServerDialog:ce,serverSearch:ue,filteredServers:de,showEmptyPicker:me,quickCmds:he,fontSize:ve,scrollback:ye,changeFontSize:E,changeScrollback:xe,cmdInput:Se,sendCmd:Ce,onCmdKeydown:we,sendCtrl:Te,sendKey:Ee,setTermRef:D,switchTab:O,closeTab:De,newSession:Oe,disconnect:ke,reconnect:Ae,toggleFullscreen:je,loadQuickCmds:Me,execQuickCmd:Ne,loadServers:Pe,applyRouteQuery:Fe,onGlobalKeydown:Ie,disposeAllSessions:Le,getNative:Re}=nl(ae(`nexusDrawer`,n(!0))),ze=n(null),Be=n(null);pe(()=>ze.value?.containerRef,e=>{se.value=e??null},{flush:`post`});let Ve=n(!1),He=n(0),Ue=n(0),We=n(`terminal`),Ge=p(()=>Ue.value>window.innerHeight*.55?`top end`:`bottom end`);function Ke(e){ue.value=e}function qe(e,t){e.preventDefault(),We.value=t,He.value=e.clientX,Ue.value=e.clientY,Ve.value=!0}function Je(e){qe(e,`terminal`)}function Ye(e){qe(e,`command`)}function Xe(e){ce.value=!1,Oe(e)}function k(){if(Ve.value=!1,We.value===`command`){let e=Be.value?.getSelectionText()||``;if(e){navigator.clipboard.writeText(e).catch(()=>g(`复制失败`,`error`));return}}let e=window.getSelection()?.toString();if(e){navigator.clipboard.writeText(e).catch(()=>g(`复制失败`,`error`));return}let t=ne.value;if(t){let e=Re(t.id)?.term?.getSelection();e&&navigator.clipboard.writeText(e).catch(()=>g(`复制失败`,`error`))}}async function Ze(){Ve.value=!1;try{let e=await navigator.clipboard.readText();if(!e)return;if(We.value===`command`){await Be.value?.insertAtSelection(e);return}let t=ne.value;Re(t?.id||``)?.term?.paste(e)}catch{g(`剪贴板访问被拒绝`,`warning`)}}function A(){if(Ve.value=!1,We.value===`command`){Be.value?.selectAllInput();return}Re(ne.value?.id||``)?.term?.selectAll()}function Qe(){Ve.value=!1,Re(ne.value?.id||``)?.term?.clear()}function $e(){Ve.value=!1;let e=ne.value;e&&De(e.id)}return T(async()=>{document.addEventListener(`keydown`,Ie),await Pe(),await Me(),await Fe()}),oe(()=>{document.removeEventListener(`keydown`,Ie),Le()}),(n,r)=>(x(),b(_e,{fluid:``,class:h([`pa-0 d-flex flex-column terminal-root`,c(m).global.current.value.dark?`terminal-root--dark`:`terminal-root--light`])},{default:i(()=>[y(re,{modelValue:Ve.value,"onUpdate:modelValue":r[0]||=e=>Ve.value=e,target:[He.value,Ue.value],location:Ge.value,"content-class":`terminal-ctx-menu`},{default:i(()=>[y(fe,{density:`comfortable`,nav:``,class:`py-1`},{default:i(()=>[y(C,{"prepend-icon":`mdi-content-copy`,rounded:`lg`,onClick:k},{default:i(()=>[y(t,null,{default:i(()=>[...r[6]||=[S(`复制`,-1)]]),_:1})]),_:1}),y(C,{"prepend-icon":`mdi-content-paste`,rounded:`lg`,onClick:Ze},{default:i(()=>[y(t,null,{default:i(()=>[...r[7]||=[S(`粘贴`,-1)]]),_:1})]),_:1}),y(C,{"prepend-icon":`mdi-select-all`,rounded:`lg`,onClick:A},{default:i(()=>[y(t,null,{default:i(()=>[...r[8]||=[S(`全选`,-1)]]),_:1})]),_:1}),We.value===`terminal`?(x(),w(v,{key:0},[y(u,{class:`my-1`}),y(C,{"prepend-icon":`mdi-delete-sweep`,rounded:`lg`,onClick:Qe},{default:i(()=>[y(t,null,{default:i(()=>[...r[9]||=[S(`清屏`,-1)]]),_:1})]),_:1}),y(C,{"prepend-icon":`mdi-logout`,rounded:`lg`,disabled:!c(ne),onClick:$e},{default:i(()=>[y(t,{class:`text-error`},{default:i(()=>[...r[10]||=[S(`断开连接`,-1)]]),_:1})]),_:1},8,[`disabled`])],64)):le(``,!0)]),_:1})]),_:1},8,[`modelValue`,`target`,`location`]),e(`div`,Al,[y(ol,{sessions:c(ee),"active-session-id":c(te),onSwitch:c(O),onClose:c(De),onNew:r[1]||=e=>c(Oe)()},null,8,[`sessions`,`active-session-id`,`onSwitch`,`onClose`]),c(ee).length>0?(x(),b(hl,{key:0,session:c(ne),"font-size":c(ve),scrollback:c(ye),onFontChange:c(E),onScrollbackChange:c(xe),onFullscreen:c(je),onDisconnect:c(ke)},null,8,[`session`,`font-size`,`scrollback`,`onFontChange`,`onScrollbackChange`,`onFullscreen`,`onDisconnect`])):le(``,!0),y(xl,{ref_key:`areaRef`,ref:ze,sessions:c(ee),"active-session-id":c(te),"active-session":c(ne),"show-empty":c(me),onContextMenu:Je,onPaneRef:c(D),onReconnect:c(Ae),onGoServers:r[3]||=e=>c(a).push(`/servers`)},{"empty-picker":i(()=>[y(kl,{servers:c(de),search:c(ue),mode:`inline`,"onUpdate:search":Ke,onSelect:r[2]||=e=>c(Oe)(e)},null,8,[`servers`,`search`])]),_:1},8,[`sessions`,`active-session-id`,`active-session`,`show-empty`,`onPaneRef`,`onReconnect`]),y(Ol,{commands:c(he),onExec:c(Ne)},null,8,[`commands`,`onExec`]),y(Tl,{ref_key:`cmdBarRef`,ref:Be,modelValue:c(Se),"onUpdate:modelValue":r[4]||=e=>_(Se)?Se.value=e:null,disabled:!c(ie),onKeydown:c(we),onSend:c(Ce),onCtrl:c(Te),onKey:c(Ee),onContextMenu:Ye},null,8,[`modelValue`,`disabled`,`onKeydown`,`onSend`,`onCtrl`,`onKey`])]),y(be,{modelValue:c(ce),"onUpdate:modelValue":r[5]||=e=>_(ce)?ce.value=e:null,"max-width":`400`},{default:i(()=>[y(d,{border:``},{default:i(()=>[y(o,null,{default:i(()=>[...r[11]||=[S(`选择服务器`,-1)]]),_:1}),y(f,null,{default:i(()=>[y(kl,{servers:c(de),search:c(ue),mode:`dialog`,"onUpdate:search":Ke,onSelect:Xe},null,8,[`servers`,`search`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1},8,[`class`]))}}),[[`__scopeId`,`data-v-c1a5c8c6`]]);export{jl as default}; \ No newline at end of file diff --git a/web/app/assets/VAlert-CNuOH9h_.js b/web/app/assets/VAlert-CNuOH9h_.js new file mode 100644 index 00000000..b7d6a870 --- /dev/null +++ b/web/app/assets/VAlert-CNuOH9h_.js @@ -0,0 +1 @@ +import{$n as e,$t as t,Ct as n,Gt as r,Nr as i,Qn as a,R as o,Rr as s,St as c,Tt as l,U as u,W as d,Wt as f,X as p,Zt as m,ar as h,at as g,bt as _,cn as v,ct as y,dn as b,dt as x,fn as S,ft as C,it as w,jt as T,lr as E,on as D,ot as O,pt as k,st as A,tn as j,ut as M,wt as N,yt as P,zr as F}from"./index-C_dP75wD.js";var I=D(`v-alert-title`),L=S({iconSize:[Number,String],iconSizes:{type:Array,default:()=>[[`x-small`,10],[`small`,16],[`default`,24],[`large`,28],[`x-large`,32]]}},`iconSize`);function R(e,t){return{iconSize:a(()=>{let n=new Map(e.iconSizes),r=e.iconSize??t()??`default`;return n.has(r)?n.get(r):r})}}var z=[`success`,`info`,`warning`,`error`],B=S({border:{type:[Boolean,String],validator:e=>typeof e==`boolean`||[`top`,`end`,`bottom`,`start`].includes(e)},borderColor:String,closable:Boolean,closeIcon:{type:j,default:`$close`},closeLabel:{type:String,default:`$vuetify.close`},icon:{type:[Boolean,String,Function,Object],default:null},modelValue:{type:Boolean,default:!0},prominent:Boolean,title:String,text:String,type:{type:String,validator:e=>z.includes(e)},...b(),...A(),...n(),...C(),...L(),...M(),...u(),...P(),...T(),...f(),...g({variant:`flat`})},`VAlert`),V=v()({name:`VAlert`,props:B(),emits:{"click:close":e=>!0,"update:modelValue":e=>!0},setup(n,{emit:a,slots:u}){let f=t(n,`modelValue`),g=i(()=>{if(n.icon!==!1)return n.type?n.icon??`$${n.type}`:n.icon}),{iconSize:v}=R(n,()=>n.prominent?44:void 0),{themeClasses:b}=r(n),{colorClasses:S,colorStyles:C,variantClasses:T}=O(()=>({color:n.color??n.type,variant:n.variant})),{densityClasses:D}=y(n),{dimensionStyles:A}=N(n),{elevationClasses:j}=k(n),{locationStyles:M}=x(n),{positionClasses:P}=d(n),{roundedClasses:L}=_(n),{textColorClasses:z,textColorStyles:B}=c(()=>n.borderColor),{t:V}=m(),H=i(()=>({"aria-label":V(n.closeLabel),onClick(e){f.value=!1,a(`click:close`,e)}}));return()=>{let t=!!(u.prepend||g.value),r=!!(u.title||n.title),i=!!(u.close||n.closable),a={density:n.density,icon:g.value,size:n.iconSize||n.prominent?v.value:void 0};return f.value&&h(n.tag,{class:s([`v-alert`,n.border&&{"v-alert--border":!!n.border,[`v-alert--border-${n.border===!0?`start`:n.border}`]:!0},{"v-alert--prominent":n.prominent},b.value,S.value,D.value,j.value,P.value,L.value,T.value,n.class]),style:F([C.value,A.value,M.value,n.style]),role:`alert`},{default:()=>[w(!1,`v-alert`),n.border&&e(`div`,{key:`border`,class:s([`v-alert__border`,z.value]),style:F(B.value)},null),t&&e(`div`,{key:`prepend`,class:`v-alert__prepend`},[u.prepend?h(l,{key:`prepend-defaults`,disabled:!g.value,defaults:{VIcon:{...a}}},u.prepend):h(p,E({key:`prepend-icon`},a),null)]),e(`div`,{class:`v-alert__content`},[r&&h(I,{key:`title`},{default:()=>[u.title?.()??n.title]}),u.text?.()??n.text,u.default?.()]),u.append&&e(`div`,{key:`append`,class:`v-alert__append`},[u.append()]),i&&e(`div`,{key:`close`,class:`v-alert__close`},[u.close?h(l,{key:`close-defaults`,defaults:{VBtn:{icon:n.closeIcon,size:`x-small`,variant:`text`}}},{default:()=>[u.close?.({props:H.value})]}):h(o,E({key:`close-btn`,icon:n.closeIcon,size:`x-small`,variant:`text`},H.value),null)])]})}}});export{V as t}; \ No newline at end of file diff --git a/web/app/assets/VCheckbox-yHF3vS12.js b/web/app/assets/VCheckbox-yHF3vS12.js new file mode 100644 index 00000000..68895821 --- /dev/null +++ b/web/app/assets/VCheckbox-yHF3vS12.js @@ -0,0 +1 @@ +import{$t as e,Ar as t,Rn as n,ar as r,br as i,cn as a,fn as o,lr as s,nn as c,o as l,p as u,s as d,v as f,wn as p}from"./index-C_dP75wD.js";import{f as m,p as h}from"./VSelect-V_uWG8_q.js";var g=o({...n(d(),[`direction`]),...n(h(),[`inline`])},`VCheckbox`),_=a()({name:`VCheckbox`,inheritAttrs:!1,props:g(),emits:{"update:modelValue":e=>!0,"update:focused":e=>!0},setup(n,{attrs:a,slots:o}){let d=e(n,`modelValue`),{isFocused:h,focus:g,blur:_}=u(n),v=t(),y=i();return c(()=>{let[e,t]=p(a),i=l.filterProps(n),c=m.filterProps(n);return r(l,s({ref:v,class:[`v-checkbox`,n.class]},e,i,{modelValue:d.value,"onUpdate:modelValue":e=>d.value=e,id:n.id||`checkbox-${y}`,focused:h.value,style:n.style}),{...o,default:({id:e,messagesId:n,isDisabled:i,isReadonly:a,isValid:l})=>r(m,s(c,{id:e.value,"aria-describedby":n.value,disabled:i.value,readonly:a.value},t,{error:l.value===!1,modelValue:d.value,"onUpdate:modelValue":e=>d.value=e,onFocus:g,onBlur:_}),o)})}),f({},v)}});export{_ as t}; \ No newline at end of file diff --git a/web/app/assets/VChip-oig-b64O.js b/web/app/assets/VChip-oig-b64O.js new file mode 100644 index 00000000..fb607fc6 --- /dev/null +++ b/web/app/assets/VChip-oig-b64O.js @@ -0,0 +1 @@ +import{$n as e,$t as t,B as n,Br as r,Dt as i,Gt as a,H as o,L as s,Nr as c,Ot as l,Q as u,Qn as d,Qt as f,Rr as p,Tn as m,Tt as h,Ut as g,V as _,Vn as v,Wt as y,X as b,Xn as x,Xt as S,Yt as C,Z as w,Zt as T,an as E,ar as D,at as O,bt as ee,cn as k,ct as A,dn as j,et as M,fn as N,ft as P,ht as F,it as I,jr as L,jt as R,ln as z,lr as B,mn as V,mt as H,nn as te,nt as U,ot as W,pt as G,qn as K,qt as ne,rt as q,st as J,tn as Y,tt as X,wr as re,xr as ie,yt as ae,zr as oe}from"./index-C_dP75wD.js";function se({selectedElement:e,containerElement:t,isRtl:n,isHorizontal:r}){let i=Z(r,t),a=ue(r,n,t),o=Z(r,e),s=de(r,e),c=o*.4;return a>s?s-c:a+itypeof e==`boolean`||[`always`,`desktop`,`mobile`,`never`].includes(e)},...j(),...C({mobile:null}),...R(),...X({selectedClass:`v-slide-group-item--active`})},`VSlideGroup`),$=k()({name:`VSlideGroup`,props:Q(),emits:{"update:modelValue":e=>!0},setup(t,{slots:n}){let{isRtl:r}=f(),{displayClasses:i,mobile:a}=S(t),o=U(t,t.symbol),s=L(!1),c=L(0),u=L(0),h=L(0),_=d(()=>t.direction===`horizontal`),{resizeRef:y,contentRect:x}=g(),{resizeRef:C,contentRect:w}=g(),T=ne(),E=d(()=>({container:y.el,duration:200,easing:`easeOutQuart`})),O=d(()=>o.selected.value.length?o.items.value.findIndex(e=>e.id===o.selected.value[0]):-1),ee=d(()=>o.selected.value.length?o.items.value.findIndex(e=>e.id===o.selected.value[o.selected.value.length-1]):-1);if(v){let e=-1;ie(()=>[o.selected.value,x.value,w.value,_.value],()=>{cancelAnimationFrame(e),e=requestAnimationFrame(()=>{if(x.value&&w.value){let e=_.value?`width`:`height`;u.value=x.value[e],h.value=w.value[e],s.value=u.value+1=0&&C.el){let e=C.el.children[ee.value];A(e,t.centerActive)}})})}let k=L(!1);function A(e,t){let n=0;n=t?ce({containerElement:y.el,isHorizontal:_.value,selectedElement:e}):se({containerElement:y.el,isHorizontal:_.value,isRtl:r.value,selectedElement:e}),j(n)}function j(e){if(!v||!y.el)return;let t=Z(_.value,y.el),n=ue(_.value,r.value,y.el);if(!(le(_.value,y.el)<=t||Math.abs(e-n)<16)){if(_.value&&r.value&&y.el){let{scrollWidth:t,offsetWidth:n}=y.el;e=t-n-e}_.value?T.horizontal(e,E.value):T(e,E.value)}}function M(e){let{scrollTop:t,scrollLeft:n}=e.target;c.value=_.value?n:t}function N(e){if(k.value=!0,!(!s.value||!C.el)){for(let t of e.composedPath())for(let e of C.el.children)if(e===t){A(e);return}}}function P(e){k.value=!1}let F=!1;function I(e){!F&&!k.value&&!(e.relatedTarget&&C.el?.contains(e.relatedTarget))&&V(),F=!1}function R(){F=!0}function z(e){if(!C.el)return;function t(t){e.preventDefault(),V(t)}_.value?e.key===`ArrowRight`?t(r.value?`prev`:`next`):e.key===`ArrowLeft`&&t(r.value?`next`:`prev`):e.key===`ArrowDown`?t(`next`):e.key===`ArrowUp`&&t(`prev`),e.key===`Home`?t(`first`):e.key===`End`&&t(`last`)}function B(e,t){if(!e)return;let n=e;do n=n?.[t===`next`?`nextElementSibling`:`previousElementSibling`];while(n?.hasAttribute(`disabled`));return n}function V(e){if(!C.el)return;let t;if(!e)t=m(C.el)[0];else if(e===`next`){if(t=B(C.el.querySelector(`:focus`),e),!t)return V(`first`)}else if(e===`prev`){if(t=B(C.el.querySelector(`:focus`),e),!t)return V(`last`)}else e===`first`?(t=C.el.firstElementChild,t?.hasAttribute(`disabled`)&&(t=B(t,`next`))):e===`last`&&(t=C.el.lastElementChild,t?.hasAttribute(`disabled`)&&(t=B(t,`prev`)));t&&t.focus({preventScroll:!0})}function H(e){let t=_.value&&r.value?-1:1,n=(e===`prev`?-t:t)*u.value,i=c.value+n;if(_.value&&r.value&&y.el){let{scrollWidth:e,offsetWidth:t}=y.el;i+=e-t}j(i)}let W=d(()=>({next:o.next,prev:o.prev,select:o.select,isSelected:o.isSelected})),G=d(()=>s.value||Math.abs(c.value)>0),K=d(()=>{switch(t.showArrows){case`never`:return!1;case`always`:return!0;case`desktop`:return!a.value;case!0:return G.value;case`mobile`:return a.value||G.value;default:return!a.value&&G.value}}),q=d(()=>Math.abs(c.value)>1),J=d(()=>G.value?h.value-u.value-Math.abs(c.value)>1:!1);return te(()=>D(t.tag,{class:p([`v-slide-group`,{"v-slide-group--vertical":!_.value,"v-slide-group--has-affixes":K.value,"v-slide-group--is-overflowing":s.value},i.value,t.class]),style:oe(t.style),tabindex:k.value||o.selected.value.length?-1:0,onFocus:I},{default:()=>[K.value&&e(`div`,{key:`prev`,class:p([`v-slide-group__prev`,{"v-slide-group__prev--disabled":!q.value}]),onMousedown:R,onClick:()=>q.value&&H(`prev`)},[n.prev?.(W.value)??D(l,null,{default:()=>[D(b,{icon:r.value?t.nextIcon:t.prevIcon},null)]})]),e(`div`,{key:`container`,ref:y,class:p([`v-slide-group__container`,t.contentClass]),onScroll:M},[e(`div`,{ref:C,class:`v-slide-group__content`,onFocusin:N,onFocusout:P,onKeydown:z},[n.default?.(W.value)])]),K.value&&e(`div`,{key:`next`,class:p([`v-slide-group__next`,{"v-slide-group__next--disabled":!J.value}]),onMousedown:R,onClick:()=>J.value&&H(`next`)},[n.next?.(W.value)??D(l,null,{default:()=>[D(b,{icon:r.value?t.prevIcon:t.nextIcon},null)]})])]})),{selected:o.selected,scrollTo:H,scrollOffset:c,focus:V,hasPrev:q,hasNext:J}}}),pe=Symbol.for(`vuetify:v-chip-group`),me=N({baseColor:String,column:Boolean,filter:Boolean,valueComparator:{type:Function,default:E},...Q({scrollToActive:!1}),...j(),...X({selectedClass:`v-chip--selected`}),...R(),...y(),...O({variant:`tonal`})},`VChipGroup`);k()({name:`VChipGroup`,props:me(),emits:{"update:modelValue":e=>!0},setup(e,{slots:t}){let{themeClasses:n}=a(e),{isSelected:r,select:i,next:o,prev:s,selected:l}=U(e,pe);return z({VChip:{baseColor:c(()=>e.baseColor),color:c(()=>e.color),disabled:c(()=>e.disabled),filter:c(()=>e.filter),variant:c(()=>e.variant)}}),te(()=>D($,B($.filterProps(e),{class:[`v-chip-group`,{"v-chip-group--column":e.column},n.value,e.class],style:e.style}),{default:()=>[t.default?.({isSelected:r,select:i,next:o,prev:s,selected:l.value})]})),{}}});var he=N({activeClass:String,appendAvatar:String,appendIcon:Y,baseColor:String,closable:Boolean,closeIcon:{type:Y,default:`$delete`},closeLabel:{type:String,default:`$vuetify.close`},draggable:Boolean,filter:Boolean,filterIcon:{type:Y,default:`$complete`},label:Boolean,link:{type:Boolean,default:void 0},pill:Boolean,prependAvatar:String,prependIcon:Y,ripple:{type:[Boolean,Object],default:!0},text:{type:[String,Number,Boolean],default:void 0},modelValue:{type:Boolean,default:!0},onClick:V(),onClickOnce:V(),...H(),...j(),...J(),...P(),...M(),...ae(),..._(),...w(),...R({tag:`span`}),...y(),...O({variant:`tonal`})},`VChip`),ge=k()({name:`VChip`,directives:{vRipple:n},props:he(),emits:{"click:close":e=>!0,"update:modelValue":e=>!0,"group:selected":e=>!0,click:e=>!0},setup(l,{attrs:f,emit:p,slots:m}){let{t:g}=T(),{borderClasses:_}=F(l),{densityClasses:v}=A(l),{elevationClasses:y}=G(l),{roundedClasses:S}=ee(l),{sizeClasses:C}=u(l),{themeClasses:w}=a(l),E=t(l,`modelValue`),O=q(l,pe,!1),k=q(l,fe,!1),j=o(l,f),M=c(()=>l.link!==!1&&j.isLink.value),N=d(()=>!l.disabled&&l.link!==!1&&(!!O||l.link||j.isClickable.value)),P=c(()=>({"aria-label":g(l.closeLabel),disabled:l.disabled,onClick(e){e.preventDefault(),e.stopPropagation(),E.value=!1,p(`click:close`,e)}}));ie(E,e=>{e?(O?.register(),k?.register()):(O?.unregister(),k?.unregister())});let{colorClasses:L,colorStyles:R,variantClasses:z}=W(()=>({color:!O||O.isSelected.value?l.color??l.baseColor:l.baseColor,variant:l.variant}));function V(e){p(`click`,e),N.value&&(j.navigate.value?.(e),O?.toggle())}function H(e){(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),V(e))}return()=>{let t=j.isLink.value?`a`:l.tag,a=!!(l.appendIcon||l.appendAvatar),o=!!(a||m.append),c=!!(m.close||l.closable),u=!!(m.filter||l.filter)&&O,d=!!(l.prependIcon||l.prependAvatar),f=!!(d||m.prepend);return E.value&&re(D(t,B(j.linkProps,{class:[`v-chip`,{"v-chip--disabled":l.disabled,"v-chip--label":l.label,"v-chip--link":N.value,"v-chip--filter":u,"v-chip--pill":l.pill,[`${l.activeClass}`]:l.activeClass&&j.isActive?.value},w.value,_.value,L.value,v.value,y.value,S.value,C.value,z.value,O?.selectedClass.value,l.class],style:[R.value,l.style],disabled:l.disabled||void 0,draggable:l.draggable,tabindex:N.value?0:void 0,onClick:V,onKeydown:N.value&&!M.value&&H}),{default:()=>[I(N.value,`v-chip`),u&&D(i,{key:`filter`},{default:()=>[re(e(`div`,{class:`v-chip__filter`},[m.filter?D(h,{key:`filter-defaults`,disabled:!l.filterIcon,defaults:{VIcon:{icon:l.filterIcon}}},m.filter):D(b,{key:`filter-icon`,icon:l.filterIcon},null)]),[[K,O.isSelected.value]])]}),f&&e(`div`,{key:`prepend`,class:`v-chip__prepend`},[m.prepend?D(h,{key:`prepend-defaults`,disabled:!d,defaults:{VAvatar:{image:l.prependAvatar,start:!0},VIcon:{icon:l.prependIcon,start:!0}}},m.prepend):e(x,null,[l.prependIcon&&D(b,{key:`prepend-icon`,icon:l.prependIcon,start:!0},null),l.prependAvatar&&D(s,{key:`prepend-avatar`,image:l.prependAvatar,start:!0},null)])]),e(`div`,{class:`v-chip__content`,"data-no-activator":``},[m.default?.({isSelected:O?.isSelected.value,selectedClass:O?.selectedClass.value,select:O?.select,toggle:O?.toggle,value:O?.value.value,disabled:l.disabled})??r(l.text)]),o&&e(`div`,{key:`append`,class:`v-chip__append`},[m.append?D(h,{key:`append-defaults`,disabled:!a,defaults:{VAvatar:{end:!0,image:l.appendAvatar},VIcon:{end:!0,icon:l.appendIcon}}},m.append):e(x,null,[l.appendIcon&&D(b,{key:`append-icon`,end:!0,icon:l.appendIcon},null),l.appendAvatar&&D(s,{key:`append-avatar`,end:!0,image:l.appendAvatar},null)])]),c&&e(`button`,B({key:`close`,class:`v-chip__close`,type:`button`,"data-testid":`close-chip`},P.value),[m.close?D(h,{key:`close-defaults`,defaults:{VIcon:{icon:l.closeIcon,size:`x-small`}}},m.close):D(b,{key:`close-icon`,icon:l.closeIcon,size:`x-small`},null)])]}),[[n,N.value&&l.ripple,null]])}}});export{$ as n,Q as r,ge as t}; \ No newline at end of file diff --git a/web/app/assets/VContainer-DGQjsCTw.js b/web/app/assets/VContainer-DGQjsCTw.js new file mode 100644 index 00000000..67fbe6d4 --- /dev/null +++ b/web/app/assets/VContainer-DGQjsCTw.js @@ -0,0 +1 @@ +import{$n as e,$t as t,Ar as n,B as r,Bn as i,Ct as a,Dr as o,In as s,Nr as c,Qn as l,Qt as u,Rr as d,St as f,Wt as p,X as m,Xn as h,an as g,ar as _,br as v,cn as y,cr as b,ct as x,dn as S,fn as C,gr as w,h as T,jr as E,jt as D,ln as O,lr as k,nn as A,st as j,tn as M,ur as N,wn as P,wr as F,wt as I,xt as L,zr as R}from"./index-C_dP75wD.js";function z(){return(e,t=`success`)=>{window.$snackbar?.(e,t)}}var B=Symbol.for(`vuetify:selection-control-group`),V=C({color:String,disabled:{type:Boolean,default:null},defaultsTarget:String,error:Boolean,id:String,inline:Boolean,falseIcon:M,trueIcon:M,ripple:{type:[Boolean,Object],default:!0},multiple:{type:Boolean,default:null},name:String,readonly:{type:Boolean,default:null},modelValue:null,type:String,valueComparator:{type:Function,default:g},...S(),...j(),...p()},`SelectionControlGroup`),H=C({...V({defaultsTarget:`VSelectionControl`})},`VSelectionControlGroup`),U=y()({name:`VSelectionControlGroup`,props:H(),emits:{"update:modelValue":e=>!0},setup(n,{slots:r}){let i=t(n,`modelValue`),a=v(),s=c(()=>n.id||`v-selection-control-group-${a}`),l=c(()=>n.name||s.value),u=new Set;return w(B,{modelValue:i,forceUpdate:()=>{u.forEach(e=>e())},onForceUpdate:e=>{u.add(e),o(()=>{u.delete(e)})}}),O({[n.defaultsTarget]:{color:c(()=>n.color),disabled:c(()=>n.disabled),density:c(()=>n.density),error:c(()=>n.error),inline:c(()=>n.inline),modelValue:i,multiple:c(()=>!!n.multiple||n.multiple==null&&Array.isArray(i.value)),name:l,falseIcon:c(()=>n.falseIcon),trueIcon:c(()=>n.trueIcon),readonly:c(()=>n.readonly),ripple:c(()=>n.ripple),type:c(()=>n.type),valueComparator:c(()=>n.valueComparator)}}),A(()=>e(`div`,{class:d([`v-selection-control-group`,{"v-selection-control-group--inline":n.inline},n.class]),style:R(n.style),role:n.type===`radio`?`radiogroup`:void 0},[r.default?.()])),{}}}),W=C({label:String,baseColor:String,trueValue:null,falseValue:null,value:null,...S(),...V()},`VSelectionControl`);function G(e){let n=b(B,void 0),{densityClasses:r}=x(e),a=t(e,`modelValue`),o=l(()=>e.trueValue===void 0?e.value===void 0?!0:e.value:e.trueValue),s=l(()=>e.falseValue===void 0?!1:e.falseValue),c=l(()=>!!e.multiple||e.multiple==null&&Array.isArray(a.value)),u=l({get(){let t=n?n.modelValue.value:a.value;return c.value?i(t).some(t=>e.valueComparator(t,o.value)):e.valueComparator(t,o.value)},set(t){if(e.readonly)return;let r=t?o.value:s.value,l=r;c.value&&(l=t?[...i(a.value),r]:i(a.value).filter(t=>!e.valueComparator(t,o.value))),n?n.modelValue.value=l:a.value=l}}),{textColorClasses:d,textColorStyles:p}=f(()=>{if(!(e.error||e.disabled))return u.value?e.color:e.baseColor}),{backgroundColorClasses:m,backgroundColorStyles:h}=L(()=>u.value&&!e.error&&!e.disabled?e.color:e.baseColor);return{group:n,densityClasses:r,trueValue:o,falseValue:s,model:u,textColorClasses:d,textColorStyles:p,backgroundColorClasses:m,backgroundColorStyles:h,icon:l(()=>u.value?e.trueIcon:e.falseIcon)}}var K=y()({name:`VSelectionControl`,directives:{vRipple:r},inheritAttrs:!1,props:W(),emits:{"update:modelValue":e=>!0},setup(t,{attrs:i,slots:a}){let{group:o,densityClasses:l,icon:u,model:f,textColorClasses:p,textColorStyles:g,backgroundColorClasses:y,backgroundColorStyles:b,trueValue:x}=G(t),S=v(),C=E(!1),w=E(!1),D=n(),O=c(()=>t.id||`input-${S}`),j=c(()=>!t.disabled&&!t.readonly);o?.onForceUpdate(()=>{D.value&&(D.value.checked=f.value)});function M(e){t.disabled||(C.value=!0,s(e.target,`:focus-visible`)!==!1&&(w.value=!0))}function I(){C.value=!1,w.value=!1}function L(e){e.stopPropagation()}function z(e){if(!j.value){D.value&&(D.value.checked=f.value);return}t.readonly&&o&&N(()=>o.forceUpdate()),f.value=e.target.checked}return A(()=>{let n=a.label?a.label({label:t.label,props:{for:O.value}}):t.label,[o,s]=P(i),c=e(`input`,k({ref:D,checked:f.value,disabled:!!t.disabled,id:O.value,onBlur:I,onFocus:M,onInput:z,"aria-disabled":!!t.disabled,"aria-label":t.label,type:t.type,value:x.value,name:t.name,"aria-checked":t.type===`checkbox`?f.value:void 0},s),null);return e(`div`,k({class:[`v-selection-control`,{"v-selection-control--dirty":f.value,"v-selection-control--disabled":t.disabled,"v-selection-control--error":t.error,"v-selection-control--focused":C.value,"v-selection-control--focus-visible":w.value,"v-selection-control--inline":t.inline},l.value,t.class]},o,{style:t.style}),[e(`div`,{class:d([`v-selection-control__wrapper`,p.value]),style:R(g.value)},[a.default?.({backgroundColorClasses:y,backgroundColorStyles:b}),F(e(`div`,{class:d([`v-selection-control__input`])},[a.input?.({model:f,textColorClasses:p,textColorStyles:g,backgroundColorClasses:y,backgroundColorStyles:b,inputNode:c,icon:u.value,props:{onFocus:M,onBlur:I,id:O.value}})??e(h,null,[u.value&&_(m,{key:`icon`,icon:u.value},null),c])]),[[r,!t.disabled&&!t.readonly&&t.ripple,null,{center:!0,circle:!0}]])]),n&&_(T,{for:O.value,onClick:L},{default:()=>[n]})])}),{isFocused:C,input:D}}}),q=C({fluid:{type:Boolean,default:!1},...S(),...a(),...D()},`VContainer`),J=y()({name:`VContainer`,props:q(),setup(e,{slots:t}){let{rtlClasses:n}=u(),{dimensionStyles:r}=I(e);return A(()=>_(e.tag,{class:d([`v-container`,{"v-container--fluid":e.fluid},n.value,e.class]),style:R([r.value,e.style])},t)),{}}});export{V as a,U as i,K as n,z as o,W as r,J as t}; \ No newline at end of file diff --git a/web/app/assets/VDataTable-RUszusjq.js b/web/app/assets/VDataTable-RUszusjq.js new file mode 100644 index 00000000..8a6771ed --- /dev/null +++ b/web/app/assets/VDataTable-RUszusjq.js @@ -0,0 +1 @@ +import{$n as e,$t as t,An as n,Ar as r,Bn as i,Br as a,Dn as o,En as s,Fr as c,G as l,Gt as u,K as d,Lr as f,M as p,Mn as m,Mr as h,Nn as g,Nr as _,Pn as v,Pr as y,Qn as b,Qt as x,R as S,Rn as C,Rr as w,Sr as T,Ut as E,Wn as D,Wt as O,X as k,Xn as A,Xt as j,Yn as M,Yt as N,Z as ee,Zt as P,an as F,ar as I,at as te,bn as L,cn as R,cr as z,ct as ne,dn as re,fn as B,fr as ie,ft as ae,gr as V,hn as oe,ir as H,jn as U,jr as se,jt as ce,ln as W,lr as G,mn as le,mt as ue,nn as K,q as de,sn as fe,st as q,tn as J,un as pe,ur as me,vn as he,xr as ge,xt as _e,yn as Y,yt as ve,zn as ye,zr as be}from"./index-C_dP75wD.js";import{t as xe}from"./VChip-oig-b64O.js";import{a as Se,f as X,o as Ce,t as we}from"./VSelect-V_uWG8_q.js";function Te(e,t,n){return Object.keys(e).filter(e=>m(e)&&e.endsWith(t)).reduce((r,i)=>(r[i.slice(0,-t.length)]=t=>oe(e[i],t,n(t)),r),{})}function Ee(){let e=r([]);ie(()=>e.value=[]);function t(t,n){e.value[n]=t}return{refs:e,updateRef:t}}var De=B({activeColor:String,start:{type:[Number,String],default:1},modelValue:{type:Number,default:e=>e.start},disabled:Boolean,length:{type:[Number,String],default:1,validator:e=>e%1==0},totalVisible:[Number,String],firstIcon:{type:J,default:`$first`},prevIcon:{type:J,default:`$prev`},nextIcon:{type:J,default:`$next`},lastIcon:{type:J,default:`$last`},ariaLabel:{type:String,default:`$vuetify.pagination.ariaLabel.root`},pageAriaLabel:{type:String,default:`$vuetify.pagination.ariaLabel.page`},currentPageAriaLabel:{type:String,default:`$vuetify.pagination.ariaLabel.currentPage`},firstAriaLabel:{type:String,default:`$vuetify.pagination.ariaLabel.first`},previousAriaLabel:{type:String,default:`$vuetify.pagination.ariaLabel.previous`},nextAriaLabel:{type:String,default:`$vuetify.pagination.ariaLabel.next`},lastAriaLabel:{type:String,default:`$vuetify.pagination.ariaLabel.last`},ellipsis:{type:String,default:`...`},showFirstLastPage:Boolean,...ue(),...re(),...q(),...ae(),...ve(),...ee(),...ce({tag:`nav`}),...O(),...te({variant:`text`})},`VPagination`),Oe=R()({name:`VPagination`,props:De(),emits:{"update:modelValue":e=>!0,first:e=>!0,prev:e=>!0,next:e=>!0,last:e=>!0},setup(n,{slots:r,emit:i}){let a=t(n,`modelValue`),{t:o,n:s}=P(),{isRtl:c}=x(),{themeClasses:l}=u(n),{width:d}=j(),f=se(-1);W(void 0,{scoped:!0});let{resizeRef:p}=E(e=>{if(!e.length)return;let{target:t,contentRect:n}=e[0],r=t.querySelector(`.v-pagination__list > *`);if(!r)return;let i=n.width;f.value=y(i,r.offsetWidth+parseFloat(getComputedStyle(r).marginRight)*2)}),m=b(()=>parseInt(n.length,10)),h=b(()=>parseInt(n.start,10)),g=b(()=>n.totalVisible==null?f.value>=0?f.value:y(d.value,58):parseInt(n.totalVisible,10));function y(e,t){let r=n.showFirstLastPage?5:3;return Math.max(0,Math.floor(Number(((e-t*r)/t).toFixed(2))))}let C=b(()=>{if(m.value<=0||isNaN(m.value)||m.value>2**53-1||g.value<=0)return[];if(g.value===1)return[a.value];if(m.value<=g.value)return L(m.value,h.value);let e=g.value%2==0,t=e?g.value/2:Math.floor(g.value/2),r=e?t:t+1,i=m.value-t;if(r-a.value>=0)return[...L(Math.max(1,g.value-1),h.value),n.ellipsis,m.value];if(a.value-i>=+!!e){let e=g.value-1,t=m.value-e+h.value;return[h.value,n.ellipsis,...L(e,t)]}else{let e=Math.max(1,g.value-2),t=e===1?a.value:a.value-Math.ceil(e/2)+h.value;return[h.value,n.ellipsis,...L(e,t),n.ellipsis,m.value]}});function T(e,t,n){e.preventDefault(),a.value=t,n&&i(n,t)}let{refs:D,updateRef:O}=Ee();W({VPaginationBtn:{color:_(()=>n.color),border:_(()=>n.border),density:_(()=>n.density),size:_(()=>n.size),variant:_(()=>n.variant),rounded:_(()=>n.rounded),elevation:_(()=>n.elevation)}});let k=b(()=>C.value.map((e,t)=>{let r=e=>O(e,t);if(typeof e==`string`)return{isActive:!1,key:`ellipsis-${t}`,page:e,props:{ref:r,ellipsis:!0,icon:!0,disabled:!0}};{let t=e===a.value;return{isActive:t,key:e,page:s(e),props:{ref:r,ellipsis:!1,icon:!0,disabled:!!n.disabled||Number(n.length)<2,color:t?n.activeColor:n.color,"aria-current":t,"aria-label":o(t?n.currentPageAriaLabel:n.pageAriaLabel,e),onClick:t=>T(t,e)}}}})),A=b(()=>{let e=!!n.disabled||a.value<=h.value,t=!!n.disabled||a.value>=h.value+m.value-1;return{first:n.showFirstLastPage?{icon:c.value?n.lastIcon:n.firstIcon,onClick:e=>T(e,h.value,`first`),disabled:e,"aria-label":o(n.firstAriaLabel),"aria-disabled":e}:void 0,prev:{icon:c.value?n.nextIcon:n.prevIcon,onClick:e=>T(e,a.value-1,`prev`),disabled:e,"aria-label":o(n.previousAriaLabel),"aria-disabled":e},next:{icon:c.value?n.prevIcon:n.nextIcon,onClick:e=>T(e,a.value+1,`next`),disabled:t,"aria-label":o(n.nextAriaLabel),"aria-disabled":t},last:n.showFirstLastPage?{icon:c.value?n.firstIcon:n.lastIcon,onClick:e=>T(e,h.value+m.value-1,`last`),disabled:t,"aria-label":o(n.lastAriaLabel),"aria-disabled":t}:void 0}});function M(){let e=a.value-h.value;D.value[e]?.$el.focus()}function N(e){e.key===v.left&&!n.disabled&&a.value>Number(n.start)?(--a.value,me(M)):e.key===v.right&&!n.disabled&&a.valueI(n.tag,{ref:p,class:w([`v-pagination`,l.value,n.class]),style:be(n.style),role:`navigation`,"aria-label":o(n.ariaLabel),onKeydown:N,"data-test":`v-pagination-root`},{default:()=>[e(`ul`,{class:`v-pagination__list`},[n.showFirstLastPage&&e(`li`,{key:`first`,class:`v-pagination__first`,"data-test":`v-pagination-first`},[r.first?r.first(A.value.first):I(S,G({_as:`VPaginationBtn`},A.value.first),null)]),e(`li`,{key:`prev`,class:`v-pagination__prev`,"data-test":`v-pagination-prev`},[r.prev?r.prev(A.value.prev):I(S,G({_as:`VPaginationBtn`},A.value.prev),null)]),k.value.map((t,n)=>e(`li`,{key:t.key,class:w([`v-pagination__item`,{"v-pagination__item--is-active":t.isActive}]),"data-test":`v-pagination-item`},[r.item?r.item(t):I(S,G({_as:`VPaginationBtn`},t.props),{default:()=>[t.page]})])),e(`li`,{key:`next`,class:`v-pagination__next`,"data-test":`v-pagination-next`},[r.next?r.next(A.value.next):I(S,G({_as:`VPaginationBtn`},A.value.next),null)]),n.showFirstLastPage&&e(`li`,{key:`last`,class:`v-pagination__last`,"data-test":`v-pagination-last`},[r.last?r.last(A.value.last):I(S,G({_as:`VPaginationBtn`},A.value.last),null)])])]})),{}}}),ke=B({page:{type:[Number,String],default:1},itemsPerPage:{type:[Number,String],default:10},pageBy:{type:String,default:`any`}},`DataTable-paginate`),Ae=Symbol.for(`vuetify:data-table-pagination`);function je(e){return{page:t(e,`page`,void 0,e=>Number(e??1)),itemsPerPage:t(e,`itemsPerPage`,void 0,e=>Number(e??10))}}function Me(e){let{page:t,itemsPerPage:n,itemsLength:r}=e,i=b(()=>n.value===-1?0:n.value*(t.value-1)),a=b(()=>n.value===-1?r.value:Math.min(r.value,i.value+n.value)),o=b(()=>n.value===-1||r.value===0?1:Math.ceil(r.value/n.value));ge([t,o],()=>{t.value>o.value&&(t.value=o.value)});function s(e){n.value=e,t.value=1}function c(){t.value=he(t.value+1,1,o.value)}function l(){t.value=he(t.value-1,1,o.value)}function u(e){t.value=he(e,1,o.value)}let d={page:t,itemsPerPage:n,startIndex:i,stopIndex:a,pageCount:o,itemsLength:r,nextPage:c,prevPage:l,setPage:u,setItemsPerPage:s};return V(Ae,d),d}function Ne(){let e=z(Ae);if(!e)throw Error(`Missing pagination!`);return e}function Pe(e){let t=pe(`usePaginatedItems`),{items:n,startIndex:r,stopIndex:i,itemsPerPage:a}=e,o=b(()=>a.value<=0?c(n):c(n).slice(r.value,i.value));return ge(o,e=>{t.emit(`update:currentItems`,e)},{immediate:!0}),{paginatedItems:o}}function Fe(e){let{sortedItems:t,paginate:n,group:r}=e,i=c(e.pageBy);if(i===`item`){let{paginatedItems:e,pageCount:i,setItemsPerPage:a,prevPage:o,nextPage:s,setPage:c}=n(t),{flatItems:l}=r(e);return{pageCount:i,setItemsPerPage:a,prevPage:o,nextPage:s,setPage:c,paginatedItems:l}}if(i===`group`){let{flatItems:e,groups:i}=r(t),{paginatedItems:a,pageCount:o,setItemsPerPage:s,prevPage:c,nextPage:l,setPage:u}=n(i);return{pageCount:o,setItemsPerPage:s,prevPage:c,nextPage:l,setPage:u,paginatedItems:b(()=>{if(!a.value.length)return[];let t=a.value.at(0).id,n=a.value.at(-1).id,r=e.value.findIndex(e=>e.type===`group`&&e.id===t),i=e.value.findIndex(e=>e.type===`group`&&e.id===n),o=e.value.findIndex((e,t)=>t>i&&e.type===`group`&&e.depth===0);return e.value.slice(r,o===-1?void 0:o)})}}if(i===`any`){let{flatItems:e}=r(t),{paginatedItems:i,pageCount:a,setItemsPerPage:o,prevPage:s,nextPage:c,setPage:l}=n(e);return{pageCount:a,setItemsPerPage:o,prevPage:s,nextPage:c,setPage:l,paginatedItems:i}}throw Error(`Unrecognized pagination target ${i}`)}var Ie=B({color:String,prevIcon:{type:J,default:`$prev`},nextIcon:{type:J,default:`$next`},firstIcon:{type:J,default:`$first`},lastIcon:{type:J,default:`$last`},itemsPerPageText:{type:String,default:`$vuetify.dataFooter.itemsPerPageText`},pageText:{type:String,default:`$vuetify.dataFooter.pageText`},firstPageLabel:{type:String,default:`$vuetify.dataFooter.firstPage`},prevPageLabel:{type:String,default:`$vuetify.dataFooter.prevPage`},nextPageLabel:{type:String,default:`$vuetify.dataFooter.nextPage`},lastPageLabel:{type:String,default:`$vuetify.dataFooter.lastPage`},itemsPerPageOptions:{type:Array,default:()=>[{value:10,title:`10`},{value:25,title:`25`},{value:50,title:`50`},{value:100,title:`100`},{value:-1,title:`$vuetify.dataFooter.itemsPerPageAll`}]},showCurrentPage:Boolean},`VDataTableFooter`),Le=R()({name:`VDataTableFooter`,props:Ie(),setup(t,{slots:n}){let{t:r}=P(),{page:i,pageCount:a,startIndex:o,stopIndex:s,itemsLength:c,itemsPerPage:l,setItemsPerPage:u}=Ne(),d=b(()=>t.itemsPerPageOptions.map(e=>typeof e==`number`?{value:e,title:e===-1?r(`$vuetify.dataFooter.itemsPerPageAll`):String(e)}:{...e,title:isNaN(Number(e.title))?r(e.title):e.title}));return K(()=>{let f=Oe.filterProps(t);return e(`div`,{class:`v-data-table-footer`},[n.prepend?.(),e(`div`,{class:`v-data-table-footer__items-per-page`},[e(`span`,null,[r(t.itemsPerPageText)]),I(we,{items:d.value,itemColor:t.color,modelValue:l.value,"onUpdate:modelValue":e=>u(Number(e)),density:`compact`,variant:`outlined`,"aria-label":r(t.itemsPerPageText),hideDetails:!0},null)]),e(`div`,{class:`v-data-table-footer__info`},[e(`div`,null,[r(t.pageText,c.value?o.value+1:0,s.value,c.value)])]),e(`div`,{class:`v-data-table-footer__pagination`},[I(Oe,G({modelValue:i.value,"onUpdate:modelValue":e=>i.value=e,density:`comfortable`,firstAriaLabel:t.firstPageLabel,lastAriaLabel:t.lastPageLabel,length:a.value,nextAriaLabel:t.nextPageLabel,previousAriaLabel:t.prevPageLabel,rounded:!0,showFirstLastPage:!0,totalVisible:+!!t.showCurrentPage,variant:`plain`},C(f,[`color`])),null)])])}),{}}}),Z=fe({align:{type:String,default:`start`},fixed:{type:[Boolean,String],default:!1},fixedOffset:[Number,String],fixedEndOffset:[Number,String],height:[Number,String],lastFixed:Boolean,firstFixedEnd:Boolean,noPadding:Boolean,indent:[Number,String],empty:Boolean,tag:String,width:[Number,String],maxWidth:[Number,String],nowrap:Boolean},(e,{slots:t})=>{let n=e.tag??`td`,r=typeof e.fixed==`string`?e.fixed:e.fixed?`start`:`none`;return I(n,{class:w([`v-data-table__td`,{"v-data-table-column--fixed":r===`start`,"v-data-table-column--fixed-end":r===`end`,"v-data-table-column--last-fixed":e.lastFixed,"v-data-table-column--first-fixed-end":e.firstFixedEnd,"v-data-table-column--no-padding":e.noPadding,"v-data-table-column--nowrap":e.nowrap,"v-data-table-column--empty":e.empty},`v-data-table-column--align-${e.align}`]),style:{height:Y(e.height),width:Y(e.width),maxWidth:Y(e.maxWidth),left:r===`start`?Y(e.fixedOffset||null):void 0,right:r===`end`?Y(e.fixedEndOffset||null):void 0,paddingInlineStart:e.indent?Y(e.indent):void 0}},{default:()=>[t.default?.()]})}),Re=B({headers:Array},`DataTable-header`),ze=Symbol.for(`vuetify:data-table-headers`),Be={title:``,sortable:!1},Ve={...Be,width:48};function He(e=[]){let t=e.map(e=>({element:e,priority:0}));return{enqueue:(e,n)=>{let r=!1;for(let i=0;in){t.splice(i,0,{element:e,priority:n}),r=!0;break}r||t.push({element:e,priority:n})},size:()=>t.length,count:()=>{let e=0;if(!t.length)return 0;let n=Math.floor(t[0].priority);for(let r=0;rt.shift()}}function Ue(e,t=[]){if(!e.children)t.push(e);else for(let n of e.children)Ue(n,t);return t}function We(e,t=new Set){for(let n of e)n.key&&t.add(n.key),n.children&&We(n.children,t);return t}function Ge(e){if(e.key){if(e.key===`data-table-group`)return Be;if([`data-table-expand`,`data-table-select`].includes(e.key))return Ve}}function Ke(e,t=0){return e.children?Math.max(t,...e.children.map(e=>Ke(e,t+1))):t}function qe(e){let t=!1;function n(e,r,i=`none`){if(e)if(i!==`none`&&(e.fixed=i),e.fixed===!0&&(e.fixed=`start`),e.fixed===r)if(e.children)if(r===`start`)for(let t=e.children.length-1;t>=0;t--)n(e.children[t],r,r);else for(let t=0;t=0;t--)n(e.children[t],r);else for(let t=0;t=0;t--)n(e[t],`start`);for(let t=0;t=0;t--)i=Ye(e[t],i)}function Je(e,t=0){if(!e)return t;if(e.children){e.fixedOffset=t;for(let n of e.children)t=Je(n,t)}else e.fixed&&e.fixed!==`end`&&(e.fixedOffset=t,t+=parseFloat(e.width||`0`)||0);return t}function Ye(e,t=0){if(!e)return t;if(e.children){e.fixedEndOffset=t;for(let n of e.children)t=Ye(n,t)}else e.fixed===`end`&&(e.fixedEndOffset=t,t+=parseFloat(e.width||`0`)||0);return t}function Xe(e,t){let n=[],r=0,i=He(e);for(;i.size()>0;){let e=i.count(),a=[],o=1;for(;e>0;){let{element:n,priority:s}=i.dequeue(),c=t-r-Ke(n);if(a.push({...n,rowspan:c??1,colspan:n.children?Ue(n).length:1}),n.children)for(let e of n.children){let t=s%1+o/10**(r+2);i.enqueue(e,r+c+t)}o+=1,--e}r+=1,n.push(a)}return{columns:e.map(e=>Ue(e)).flat(),headers:n}}function Ze(e){let t=[];for(let n of e){let e={...Ge(n),...n},r=e.key??(typeof e.value==`string`?e.value:null),i=e.value??r??null,a={...e,key:r,value:i,sortable:e.sortable??(e.key!=null||!!e.sort),children:e.children?Ze(e.children):void 0};t.push(a)}return t}function Qe(e,t){let n=r([]),i=r([]),a=r({}),o=r({}),s=r({});T(()=>{let r=(e.headers||Object.keys(e.items[0]??{}).map(e=>({key:e,title:f(e)}))).slice(),c=We(r);t?.groupBy?.value.length&&!c.has(`data-table-group`)&&r.unshift({key:`data-table-group`,title:`Group`}),t?.showSelect?.value&&!c.has(`data-table-select`)&&r.unshift({key:`data-table-select`}),t?.showExpand?.value&&!c.has(`data-table-expand`)&&r.push({key:`data-table-expand`});let l=Ze(r);qe(l);let u=Xe(l,Math.max(...l.map(e=>Ke(e)))+1);n.value=u.headers,i.value=u.columns;let d=u.headers.flat(1);for(let e of d)e.key&&(e.sortable&&(e.sort&&(a.value[e.key]=e.sort),e.sortRaw&&(o.value[e.key]=e.sortRaw)),e.filter&&(s.value[e.key]=e.filter))});let c={headers:n,columns:i,sortFunctions:a,sortRawFunctions:o,filterFunctions:s};return V(ze,c),c}function Q(){let e=z(ze);if(!e)throw Error(`Missing headers!`);return e}var $e={showSelectAll:!1,allSelected:()=>[],select:({items:e,value:t})=>new Set(t?[e[0]?.value]:[]),selectAll:({selected:e})=>e},et={showSelectAll:!0,allSelected:({currentPage:e})=>e,select:({items:e,value:t,selected:n})=>{for(let r of e)t?n.add(r.value):n.delete(r.value);return n},selectAll:({value:e,currentPage:t,selected:n})=>et.select({items:t,value:e,selected:n})},tt={showSelectAll:!0,allSelected:({allItems:e})=>e,select:({items:e,value:t,selected:n})=>{for(let r of e)t?n.add(r.value):n.delete(r.value);return n},selectAll:({value:e,allItems:t})=>new Set(e?t.map(e=>e.value):[])},nt=B({showSelect:Boolean,selectStrategy:{type:[String,Object],default:`page`},modelValue:{type:Array,default:()=>[]},valueComparator:Function},`DataTable-select`),rt=Symbol.for(`vuetify:data-table-selection`);function it(e,{allItems:n,currentPage:r}){let a=t(e,`modelValue`,e.modelValue,t=>{let r=e.valueComparator;return r?new Set(i(t).map(e=>n.value.find(t=>r(e,t.value))?.value??e)):new Set(i(t).map(e=>g(e)?n.value.find(t=>e===t.value)?.value??e:n.value.find(t=>F(e,t.value))?.value??e))},e=>[...e.values()]),o=b(()=>n.value.filter(e=>e.selectable)),s=b(()=>c(r).filter(e=>e.selectable)),l=b(()=>{if(typeof e.selectStrategy==`object`)return e.selectStrategy;switch(e.selectStrategy){case`single`:return $e;case`all`:return tt;default:return et}}),u=se(null);function d(e){return i(e).every(e=>a.value.has(e.value))}function f(e){return i(e).some(e=>a.value.has(e.value))}function p(e,t){a.value=l.value.select({items:e,value:t,selected:new Set(a.value)})}function m(t,n,i){let a=[],o=c(r);if(n??=o.findIndex(e=>e.value===t.value),e.selectStrategy!==`single`&&i?.shiftKey&&u.value!==null){let[e,t]=[u.value,n].sort((e,t)=>e-t);a.push(...o.slice(e,t+1).filter(e=>e.selectable))}else a.push(t),u.value=n;p(a,!d([t]))}function h(e){a.value=l.value.selectAll({value:e,allItems:o.value,currentPage:s.value,selected:new Set(a.value)})}let v={toggleSelect:m,select:p,selectAll:h,isSelected:d,isSomeSelected:f,someSelected:b(()=>a.value.size>0),allSelected:b(()=>{let e=l.value.allSelected({allItems:o.value,currentPage:s.value});return!!e.length&&d(e)}),showSelectAll:_(()=>l.value.showSelectAll),lastSelectedIndex:u,selectStrategy:l};return V(rt,v),v}function $(){let e=z(rt);if(!e)throw Error(`Missing selection!`);return e}var at=B({initialSortOrder:{type:String,default:`asc`,validator:e=>!e||[`asc`,`desc`].includes(e)},sortBy:{type:Array,default:()=>[]},customKeySort:Object,multiSort:{type:[Boolean,Object],default:!1},mustSort:Boolean},`DataTable-sort`),ot=Symbol.for(`vuetify:data-table-sort`);function st(e){let n=_(()=>e.initialSortOrder),r=t(e,`sortBy`),i=_(()=>e.mustSort);return{initialSortOrder:n,sortBy:r,multiSort:_(()=>e.multiSort),mustSort:i}}function ct(e,t){if(!U(e))return{active:!!e};let{key:n,mode:r,modifier:i}=e,a=i===`alt`&&t?.altKey||i===`shift`&&t?.shiftKey;return{active:!n||t?.ctrlKey||t?.metaKey||!1,mode:a?r===`append`?`prepend`:`append`:r}}function lt(e){let{initialSortOrder:t,sortBy:n,mustSort:r,multiSort:i,page:a}=e,o=(e,o,s=!1)=>{if(e.key==null)return;let c=n.value.map(e=>({...e}))??[],l=c.find(t=>t.key===e.key),u=t.value,d=t.value===`desc`?`asc`:`desc`;if(l)l.order===d?s||r.value&&c.length===1?l.order=t.value:c=c.filter(t=>t.key!==e.key):l.order=d;else{let{active:t,mode:n}=ct(i.value,o);t?n===`prepend`?c.unshift({key:e.key,order:u}):c.push({key:e.key,order:u}):c=[{key:e.key,order:u}]}n.value=c,a&&(a.value=1)};function s(e){return!!n.value.find(t=>t.key===e.key)}let c={sortBy:n,toggleSort:o,isSorted:s};return V(ot,c),c}function ut(){let e=z(ot);if(!e)throw Error(`Missing sort!`);return e}function dt(e,t,n,r){let i=P();return{sortedItems:b(()=>n.value.length?ft(t.value,n.value,i.current.value,{transform:r?.transform,sortFunctions:{...e.customKeySort,...r?.sortFunctions?.value},sortRawFunctions:r?.sortRawFunctions?.value}):t.value)}}function ft(e,t,r,i){let a=new Intl.Collator(r,{sensitivity:`accent`,usage:`sort`});return e.map(e=>[e,i?.transform?i.transform(e):e]).sort((e,r)=>{for(let o=0;oe==null?e:e.toString().toLocaleLowerCase()),d!==f))return n(d)&&n(f)?0:n(d)?-1:n(f)?1:!isNaN(d)&&!isNaN(f)?Number(d)-Number(f):a.compare(d,f)}return 0}).map(([e])=>e)}var pt=B({color:String,disableSort:Boolean,fixedHeader:Boolean,multiSort:Boolean,initialSortOrder:String,sortIcon:{type:J},sortAscIcon:{type:J,default:`$sortAsc`},sortDescIcon:{type:J,default:`$sortDesc`},headerProps:{type:Object},sticky:Boolean,...q(),...N(),...d()},`VDataTableHeaders`),mt=R()({name:`VDataTableHeaders`,props:pt(),setup(t,{slots:n}){let{t:r}=P(),{toggleSort:a,sortBy:o,isSorted:s}=ut(),{someSelected:c,allSelected:u,selectAll:d,showSelectAll:f}=$(),{columns:p,headers:m}=Q(),{loaderClasses:h}=de(t);function g(e,n){if(!(t.sticky||t.fixedHeader)&&!e.fixed)return;let r=typeof e.fixed==`string`?e.fixed:e.fixed?`start`:`none`;return{position:`sticky`,left:r===`start`?Y(e.fixedOffset):void 0,right:r===`end`?Y(e.fixedEndOffset):void 0,top:t.sticky||t.fixedHeader?`calc(var(--v-table-header-height) * ${n})`:void 0}}function _(e,n){e.key===`Enter`&&!t.disableSort&&a(n,e)}function v(e){switch(o.value.find(t=>t.key===e.key)?.order){case`asc`:return t.sortAscIcon;case`desc`:return t.sortDescIcon;default:return t.sortIcon||(t.initialSortOrder===`asc`?t.sortAscIcon:t.sortDescIcon)}}let{backgroundColorClasses:y,backgroundColorStyles:x}=_e(()=>t.color),{displayClasses:S,mobile:C}=j(t),T=b(()=>({headers:m.value,columns:p.value,toggleSort:a,isSorted:s,sortBy:o.value,someSelected:c.value,allSelected:u.value,selectAll:d,getSortIcon:v})),E=b(()=>[`v-data-table__th`,{"v-data-table__th--sticky":t.sticky||t.fixedHeader},S.value,h.value]),D=({column:r,x:i,y:l})=>{let p=r.key===`data-table-select`||r.key===`data-table-expand`,m=r.key===`data-table-group`&&r.width===0&&!r.title,h=G(t.headerProps??{},r.headerProps??{}),b=r.sortable&&!t.disableSort;return I(Z,G({tag:`th`,align:r.align,class:[{"v-data-table__th--sortable":b,"v-data-table__th--sorted":s(r),"v-data-table__th--fixed":r.fixed},...E.value],style:{width:Y(r.width),minWidth:Y(r.minWidth),maxWidth:Y(r.maxWidth),...g(r,l)},colspan:r.colspan,rowspan:r.rowspan,fixed:r.fixed,nowrap:r.nowrap,lastFixed:r.lastFixed,firstFixedEnd:r.firstFixedEnd,noPadding:p,empty:m,tabindex:b?0:void 0,onClick:b?e=>a(r,e):void 0,onKeydown:b?e=>_(e,r):void 0},h),{default:()=>{let i=`header.${r.key}`,l={column:r,selectAll:d,isSorted:s,toggleSort:a,sortBy:o.value,someSelected:c.value,allSelected:u.value,getSortIcon:v};return n[i]?n[i](l):m?``:r.key===`data-table-select`?n[`header.data-table-select`]?.(l)??(f.value&&I(X,{color:t.color,density:t.density,modelValue:u.value,indeterminate:c.value&&!u.value,"onUpdate:modelValue":d},null)):e(`div`,{class:`v-data-table-header__content`},[e(`span`,null,[r.title]),r.sortable&&!t.disableSort&&I(k,{key:`icon`,class:`v-data-table-header__sort-icon`,icon:v(r)},null),t.multiSort&&s(r)&&e(`div`,{key:`badge`,class:w([`v-data-table-header__sort-badge`,...y.value]),style:be(x.value)},[o.value.findIndex(e=>e.key===r.key)+1])])}})},O=()=>{let n=b(()=>p.value.filter(e=>e?.sortable&&!t.disableSort)),l=p.value.find(e=>e.key===`data-table-select`),f=b({get:()=>n.value.filter(({key:e})=>o.value.some(t=>t.key===e)),set:e=>{let t=i(e),n=o.value.map(e=>e.key);t.filter(({key:e})=>!n.includes(e)).forEach(e=>a(e)),me(()=>o.value=o.value.filter(({key:e})=>t.some(t=>t.key===e)))}});return I(Z,G({tag:`th`,class:[...E.value],colspan:m.value.length+1},t.headerProps),{default:()=>[e(`div`,{class:`v-data-table-header__content`},[I(we,{modelValue:f.value,"onUpdate:modelValue":e=>f.value=e,chips:!0,color:t.color,class:`v-data-table__td-sort-select`,clearable:!0,density:`default`,items:n.value,label:r(`$vuetify.dataTable.sortBy`),multiple:t.multiSort,variant:`underlined`,returnObject:!0,"onClick:clear":()=>o.value=[]},{append:l?()=>I(X,{color:t.color,density:`compact`,modelValue:u.value,indeterminate:c.value&&!u.value,"onUpdate:modelValue":()=>d(!u.value)},null):void 0,chip:({internalItem:e})=>I(xe,{onClick:e.raw.sortable?()=>a(e.raw,void 0,!0):void 0,onMousedown:e=>{e.preventDefault(),e.stopPropagation()}},{default:()=>[e.title,I(k,{class:w([`v-data-table__td-sort-icon`,s(e.raw)&&`v-data-table__td-sort-icon-active`]),icon:v(e.raw),size:`small`},null)]})})])]})};K(()=>C.value?e(`tr`,null,[I(O,null,null)]):e(A,null,[n.headers?n.headers(T.value):m.value.map((t,n)=>e(`tr`,null,[t.map((e,t)=>I(D,{column:e,x:t,y:n},null))])),t.loading&&e(`tr`,{class:`v-data-table-progress`},[e(`th`,{colspan:p.value.length},[I(l,{name:`v-data-table-progress`,absolute:!0,active:!0,color:typeof t.loading==`boolean`||t.loading===`true`?t.color:t.loading,indeterminate:!0},{default:n.loader})])])]))}}),ht=B({groupBy:{type:Array,default:()=>[]}},`DataTable-group`),gt=Symbol.for(`vuetify:data-table-group`);function _t(e){return{groupBy:t(e,`groupBy`)}}function vt(e){let{disableSort:t,groupBy:n,sortBy:i}=e,a=r(new Set),o=b(()=>n.value.map(e=>({...e,order:e.order??!1})).concat(t?.value?[]:i.value));function s(e){return a.value.has(e.id)}function c(e){let t=new Set(a.value);s(e)?t.delete(e.id):t.add(e.id),a.value=t}function l(e){function t(e){let n=[];for(let r of e.items)`type`in r&&r.type===`group`?n.push(...t(r)):n.push(r);return[...new Set(n)]}return t({type:`group`,items:e,id:`dummy`,key:`dummy`,value:`dummy`,depth:0})}let u={sortByWithGroups:o,toggleGroup:c,opened:a,groupBy:n,extractRows:l,isGroupOpen:s};return V(gt,u),u}function yt(){let e=z(gt);if(!e)throw Error(`Missing group!`);return e}function bt(e,t){if(!e.length)return[];let n=new Map;for(let r of e){let e=s(r.raw,t);n.has(e)||n.set(e,[]),n.get(e).push(r)}return n}function xt(e,t,n=0,r=`root`){if(!t.length)return[];let i=bt(e,t[0]),a=[],o=t.slice(1);return i.forEach((e,i)=>{let s=t[0],c=`${r}_${s}_${i}`;a.push({depth:n,id:c,key:s,value:i,items:o.length?xt(e,o,n+1,c):e,type:`group`})}),a}function St(e,t,n){let r=[];for(let i of e)`type`in i&&i.type===`group`?(i.value!=null&&r.push(i),(t.has(i.id)||i.value==null)&&(r.push(...St(i.items,t,n)),n&&r.push({...i,type:`group-summary`}))):r.push(i);return r}function Ct(e,t,n,r){let i=b(()=>t.value.length?xt(c(e),t.value.map(e=>e.key)):[]);return{groups:i,flatItems:b(()=>t.value.length?St(i.value,n.value,c(r)):c(e))}}var wt=B({item:{type:Object,required:!0},groupCollapseIcon:{type:J,default:`$tableGroupCollapse`},groupExpandIcon:{type:J,default:`$tableGroupExpand`},...q()},`VDataTableGroupHeaderRow`),Tt=R()({name:`VDataTableGroupHeaderRow`,props:wt(),setup(t,{slots:n}){let{isGroupOpen:r,toggleGroup:i,extractRows:a}=yt(),{isSelected:o,isSomeSelected:s,select:c}=$(),{columns:l}=Q(),u=b(()=>a([t.item])),d=_(()=>l.value.length-+!!l.value.some(e=>e.key===`data-table-select`));return()=>e(`tr`,{class:`v-data-table-group-header-row`,style:{"--v-data-table-group-header-row-depth":t.item.depth}},[l.value.map(a=>{if(a.key===`data-table-group`){let a=r(t.item)?t.groupCollapseIcon:t.groupExpandIcon,o=()=>i(t.item);return n[`data-table-group`]?.({item:t.item,count:u.value.length,props:{icon:a,onClick:o}})??I(Z,{class:`v-data-table-group-header-row__column`,colspan:d.value},{default:()=>[I(S,{size:`small`,variant:`text`,icon:a,onClick:o},null),e(`span`,null,[t.item.value]),e(`span`,null,[H(`(`),u.value.length,H(`)`)])]})}else if(a.key===`data-table-select`){let e=u.value.filter(e=>e.selectable),r=e.length>0&&o(e),i=s(e)&&!r,a=t=>c(e,t);return n[`data-table-select`]?.({props:{modelValue:r,indeterminate:i,"onUpdate:modelValue":a}})??I(Z,{class:`v-data-table__td--select-row`,noPadding:!0},{default:()=>[I(X,{density:t.density,disabled:e.length===0,modelValue:r,indeterminate:i,"onUpdate:modelValue":a},null)]})}return``})])}}),Et=B({expandOnClick:Boolean,showExpand:Boolean,expanded:{type:Array,default:()=>[]}},`DataTable-expand`),Dt=Symbol.for(`vuetify:datatable:expanded`);function Ot(e){let n=_(()=>e.expandOnClick),r=t(e,`expanded`,e.expanded,e=>new Set(e),e=>[...e.values()]);function i(e,t){let n=new Set(r.value),i=h(e.value);if(t)n.add(e.value);else{let e=[...r.value].find(e=>h(e)===i);n.delete(e)}r.value=n}function a(e){let t=h(e.value);return[...r.value].some(e=>h(e)===t)}function o(e){i(e,!a(e))}let s={expand:i,expanded:r,expandOnClick:n,isExpanded:a,toggleExpand:o};return V(Dt,s),s}function kt(){let e=z(Dt);if(!e)throw Error(`foo`);return e}var At=B({color:String,index:Number,item:Object,cellProps:[Object,Function],collapseIcon:{type:J,default:`$collapse`},expandIcon:{type:J,default:`$expand`},onClick:le(),onContextmenu:le(),onDblclick:le(),...q(),...N()},`VDataTableRow`),jt=R()({name:`VDataTableRow`,props:At(),setup(t,{slots:n}){let{displayClasses:r,mobile:i}=j(t,`v-data-table__tr`),{isSelected:o,toggleSelect:c,someSelected:l,allSelected:u,selectAll:d}=$(),{isExpanded:f,toggleExpand:p}=kt(),{toggleSort:m,sortBy:h,isSorted:g}=ut(),{columns:_}=Q();K(()=>e(`tr`,{class:w([`v-data-table__tr`,{"v-data-table__tr--clickable":!!(t.onClick||t.onContextmenu||t.onDblclick)},r.value]),onClick:t.onClick,onContextmenu:t.onContextmenu,onDblclick:t.onDblclick},[t.item&&_.value.map((r,_)=>{let v=t.item,y=`item.${r.key}`,b=`header.${r.key}`,x={index:t.index,item:v.raw,internalItem:v,value:s(v.columns,r.key),column:r,isSelected:o,toggleSelect:c,isExpanded:f,toggleExpand:p},C={column:r,selectAll:d,isSorted:g,toggleSort:m,sortBy:h.value,someSelected:l.value,allSelected:u.value,getSortIcon:()=>``},w=typeof t.cellProps==`function`?t.cellProps({index:x.index,item:x.item,internalItem:x.internalItem,value:x.value,column:r}):t.cellProps,T=typeof r.cellProps==`function`?r.cellProps({index:x.index,item:x.item,internalItem:x.internalItem,value:x.value}):r.cellProps,E=r.key===`data-table-select`||r.key===`data-table-expand`,D=r.key===`data-table-group`&&r.width===0&&!r.title;return I(Z,G({align:r.align,indent:r.indent,class:{"v-data-table__td--expanded-row":r.key===`data-table-expand`,"v-data-table__td--select-row":r.key===`data-table-select`},fixed:r.fixed,fixedOffset:r.fixedOffset,fixedEndOffset:r.fixedEndOffset,lastFixed:r.lastFixed,firstFixedEnd:r.firstFixedEnd,maxWidth:i.value?void 0:r.maxWidth,noPadding:E,empty:D,nowrap:r.nowrap,width:i.value?void 0:r.width},w,T),{default:()=>{if(r.key===`data-table-select`)return n[`item.data-table-select`]?.({...x,props:{color:t.color,disabled:!v.selectable,modelValue:o([v]),onClick:M(()=>c(v),[`stop`])}})??I(X,{color:t.color,disabled:!v.selectable,density:t.density,modelValue:o([v]),onClick:M(e=>c(v,t.index,e),[`stop`])},null);if(r.key===`data-table-expand`)return n[`item.data-table-expand`]?.({...x,props:{icon:f(v)?t.collapseIcon:t.expandIcon,size:`small`,variant:`text`,onClick:M(()=>p(v),[`stop`])}})??I(S,{icon:f(v)?t.collapseIcon:t.expandIcon,size:`small`,variant:`text`,onClick:M(()=>p(v),[`stop`])},null);if(n[y]&&!i.value)return n[y](x);let s=a(x.value);return i.value?e(A,null,[e(`div`,{class:`v-data-table__td-title`},[n[b]?.(C)??r.title]),e(`div`,{class:`v-data-table__td-value`},[n[y]?.(x)??s])]):s}})})]))}}),Mt=B({color:String,loading:[Boolean,String],loadingText:{type:String,default:`$vuetify.dataIterator.loadingText`},hideNoData:Boolean,items:{type:Array,default:()=>[]},noDataText:{type:String,default:`$vuetify.noDataText`},rowProps:[Object,Function],cellProps:[Object,Function],...ye(At(),[`collapseIcon`,`expandIcon`,`density`]),...ye(wt(),[`groupCollapseIcon`,`groupExpandIcon`,`density`]),...N()},`VDataTableRows`),Nt=R()({name:`VDataTableRows`,inheritAttrs:!1,props:Mt(),setup(t,{attrs:n,slots:r}){let{columns:i}=Q(),{expandOnClick:a,toggleExpand:o,isExpanded:s}=kt(),{isSelected:c,toggleSelect:l}=$(),{toggleGroup:u,isGroupOpen:d}=yt(),{t:f}=P(),{mobile:p}=j(t);return K(()=>{let m=ye(t,[`groupCollapseIcon`,`groupExpandIcon`,`density`]);return t.loading&&(!t.items.length||r.loading)?e(`tr`,{class:`v-data-table-rows-loading`,key:`loading`},[e(`td`,{colspan:i.value.length},[r.loading?.()??f(t.loadingText)])]):!t.loading&&!t.items.length&&!t.hideNoData?e(`tr`,{class:`v-data-table-rows-no-data`,key:`no-data`},[e(`td`,{colspan:i.value.length},[r[`no-data`]?.()??f(t.noDataText)])]):e(A,null,[t.items.map((f,h)=>{if(f.type===`group`){let e={index:h,item:f,columns:i.value,isExpanded:s,toggleExpand:o,isSelected:c,toggleSelect:l,toggleGroup:u,isGroupOpen:d};return r[`group-header`]?r[`group-header`](e):I(Tt,G({key:`group-header_${f.id}`,item:f},Te(n,`:groupHeader`,()=>e),m),r)}if(f.type===`group-summary`){let e={index:h,item:f,columns:i.value,toggleGroup:u};return r[`group-summary`]?.(e)??``}let g={index:f.virtualIndex??h,item:f.raw,internalItem:f,columns:i.value,isExpanded:s,toggleExpand:o,isSelected:c,toggleSelect:l},_={...g,props:G({key:`item_${f.key??f.index}`,onClick:a.value?()=>{o(f)}:void 0,index:h,item:f,color:t.color,cellProps:t.cellProps,collapseIcon:t.collapseIcon,expandIcon:t.expandIcon,density:t.density,mobile:p.value},Te(n,`:row`,()=>g),typeof t.rowProps==`function`?t.rowProps({item:g.item,index:g.index,internalItem:g.internalItem}):t.rowProps)};return e(A,{key:_.props.key},[r.item?r.item(_):I(jt,_.props,r),s(f)&&r[`expanded-row`]?.(g)])})])}),{}}}),Pt=B({fixedHeader:Boolean,fixedFooter:Boolean,height:[Number,String],hover:Boolean,striped:{type:String,default:null,validator:e=>[`even`,`odd`].includes(e)},...re(),...q(),...ce(),...O()},`VTable`),Ft=R()({name:`VTable`,props:Pt(),setup(t,{slots:n,emit:r}){let{themeClasses:i}=u(t),{densityClasses:a}=ne(t);return K(()=>I(t.tag,{class:w([`v-table`,{"v-table--fixed-height":!!t.height,"v-table--fixed-header":t.fixedHeader,"v-table--fixed-footer":t.fixedFooter,"v-table--has-top":!!n.top,"v-table--has-bottom":!!n.bottom,"v-table--hover":t.hover,"v-table--striped-even":t.striped===`even`,"v-table--striped-odd":t.striped===`odd`},i.value,a.value,t.class]),style:be(t.style)},{default:()=>[n.top?.(),n.default?e(`div`,{class:`v-table__wrapper`,style:{height:Y(t.height)}},[e(`table`,null,[n.default()])]):n.wrapper?.(),n.bottom?.()]})),{}}}),It=B({items:{type:Array,default:()=>[]},itemValue:{type:[String,Array,Function],default:`id`},itemSelectable:{type:[String,Array,Function],default:null},rowProps:[Object,Function],cellProps:[Object,Function],returnObject:Boolean},`DataTable-items`);function Lt(e,t,n,r){let i=e.returnObject?t:o(t,e.itemValue),a=o(t,e.itemSelectable,!0),s=r.reduce((e,n)=>(n.key!=null&&(e[n.key]=o(t,n.value)),e),{});return{type:`item`,key:e.returnObject?o(t,e.itemValue):i,index:n,value:i,selectable:a,columns:s,raw:t}}function Rt(e,t,n){return t.map((t,r)=>Lt(e,t,r,n))}function zt(e,t){return{items:b(()=>Rt(e,e.items,t.value))}}function Bt({page:e,itemsPerPage:t,sortBy:n,groupBy:r,search:i}){let a=pe(`VDataTable`),o=()=>({page:e.value,itemsPerPage:t.value,sortBy:n.value,groupBy:r.value,search:i.value}),s=null;ge(o,t=>{F(s,t)||(s&&s.search!==t.search&&(e.value=1),a.emit(`update:options`,t),s=t)},{deep:!0,immediate:!0})}var Vt=B({...Mt(),hideDefaultBody:Boolean,hideDefaultFooter:Boolean,hideDefaultHeader:Boolean,width:[String,Number],search:String,...Et(),...ht(),...Re(),...It(),...nt(),...at(),...C(pt(),[`multiSort`,`initialSortOrder`]),...Pt()},`DataTable`),Ht=B({...ke(),...Vt(),...Se(),...Ie()},`VDataTable`),Ut=R()({name:`VDataTable`,props:Ht(),emits:{"update:modelValue":e=>!0,"update:page":e=>!0,"update:itemsPerPage":e=>!0,"update:sortBy":e=>!0,"update:options":e=>!0,"update:groupBy":e=>!0,"update:expanded":e=>!0,"update:currentItems":e=>!0},setup(t,{attrs:n,slots:r}){let{groupBy:i}=_t(t),{initialSortOrder:a,sortBy:o,multiSort:s,mustSort:l}=st(t),{page:u,itemsPerPage:d}=je(t),{disableSort:f}=y(t),{columns:m,headers:h,sortFunctions:g,sortRawFunctions:v,filterFunctions:x}=Qe(t,{groupBy:i,showSelect:_(()=>t.showSelect),showExpand:_(()=>t.showExpand)}),{items:S}=zt(t,m),w=_(()=>t.search),{filteredItems:T}=Ce(t,S,w,{transform:e=>e.columns,customKeyFilter:x}),{toggleSort:E}=lt({initialSortOrder:a,sortBy:o,multiSort:s,mustSort:l,page:u}),{sortByWithGroups:D,opened:O,extractRows:k,isGroupOpen:j,toggleGroup:M}=vt({groupBy:i,sortBy:o,disableSort:f}),{sortedItems:N}=dt(t,T,D,{transform:e=>({...e.raw,...e.columns}),sortFunctions:g,sortRawFunctions:v}),{pageCount:ee,setItemsPerPage:P,prevPage:F,nextPage:te,setPage:L,paginatedItems:R}=Fe({pageBy:b(()=>t.pageBy===`auto`?t.groupBy.length?`group`:`item`:t.pageBy),sortedItems:N,paginate:e=>{let{startIndex:t,stopIndex:n,pageCount:r,setItemsPerPage:i,prevPage:a,nextPage:o,setPage:s}=Me({page:u,itemsPerPage:d,itemsLength:b(()=>c(e).length)}),{paginatedItems:l}=Pe({items:e,startIndex:t,stopIndex:n,itemsPerPage:d});return{paginatedItems:l,pageCount:r,setItemsPerPage:i,prevPage:a,nextPage:o,setPage:s}},group:e=>Ct(e,i,O,()=>!!r[`group-summary`])}),z=b(()=>k(R.value)),{isSelected:ne,select:re,selectAll:B,toggleSelect:ie,someSelected:ae,allSelected:V}=it(t,{allItems:S,currentPage:z}),{isExpanded:oe,toggleExpand:H}=Ot(t);Bt({page:u,itemsPerPage:d,sortBy:o,groupBy:i,search:w}),W({VDataTableRows:{hideNoData:_(()=>t.hideNoData),noDataText:_(()=>t.noDataText),loading:_(()=>t.loading),loadingText:_(()=>t.loadingText)}});let U=b(()=>({page:u.value,itemsPerPage:d.value,sortBy:o.value,pageCount:ee.value,toggleSort:E,setItemsPerPage:P,prevPage:F,nextPage:te,setPage:L,someSelected:ae.value,allSelected:V.value,isSelected:ne,select:re,selectAll:B,toggleSelect:ie,isExpanded:oe,toggleExpand:H,isGroupOpen:j,toggleGroup:M,items:z.value.map(e=>e.raw),internalItems:z.value,groupedItems:R.value,columns:m.value,headers:h.value}));return K(()=>{let i=Le.filterProps(t),a=mt.filterProps(C(t,[`multiSort`])),o=Nt.filterProps(t),s=Ft.filterProps(t);return I(Ft,G({class:[`v-data-table`,{"v-data-table--show-select":t.showSelect,"v-data-table--loading":t.loading},t.class],style:t.style},s,{fixedHeader:t.fixedHeader||t.sticky}),{top:()=>r.top?.(U.value),default:()=>r.default?r.default(U.value):e(A,null,[r.colgroup?.(U.value),!t.hideDefaultHeader&&e(`thead`,{key:`thead`},[I(mt,G(a,{multiSort:!!t.multiSort}),r)]),r.thead?.(U.value),!t.hideDefaultBody&&e(`tbody`,null,[r[`body.prepend`]?.(U.value),r.body?r.body(U.value):I(Nt,G(n,o,{items:R.value}),r),r[`body.append`]?.(U.value)]),r.tbody?.(U.value),r.tfoot?.(U.value)]),bottom:()=>r.bottom?r.bottom(U.value):!t.hideDefaultFooter&&e(A,null,[I(p,null,null),I(Le,i,{prepend:r[`footer.prepend`]})])})}),{}}});export{Ie as _,Ft as a,Me as b,_t as c,mt as d,st as f,Le as g,Qe as h,zt as i,vt as l,it as m,Vt as n,Nt as o,lt as p,Bt as r,Ot as s,Ut as t,Ct as u,je as v,Oe as x,ke as y}; \ No newline at end of file diff --git a/web/app/assets/VDataTableServer-BMEL-4WM.js b/web/app/assets/VDataTableServer-BMEL-4WM.js new file mode 100644 index 00000000..03b69016 --- /dev/null +++ b/web/app/assets/VDataTableServer-BMEL-4WM.js @@ -0,0 +1 @@ +import{_ as e,a as t,b as n,c as r,d as i,f as a,g as o,h as s,i as c,l,m as u,n as d,o as f,p,r as m,s as h,u as ee,v as te,y as g}from"./VDataTable-RUszusjq.js";import{$n as _,M as v,Nr as y,Pr as b,Qn as x,Rn as S,Xn as C,ar as w,cn as T,fn as E,gr as ne,ln as D,lr as O,nn as k}from"./index-C_dP75wD.js";var A=E({itemsLength:{type:[Number,String],required:!0},...g(),...d(),...e()},`VDataTableServer`),j=T()({name:`VDataTableServer`,props:A(),emits:{"update:modelValue":e=>!0,"update:page":e=>!0,"update:itemsPerPage":e=>!0,"update:sortBy":e=>!0,"update:options":e=>!0,"update:expanded":e=>!0,"update:groupBy":e=>!0},setup(e,{attrs:d,slots:g}){let{groupBy:T}=r(e),{initialSortOrder:E,sortBy:A,multiSort:j,mustSort:M}=a(e),{page:N,itemsPerPage:P}=te(e),{disableSort:F}=b(e),I=x(()=>parseInt(e.itemsLength,10)),{columns:L,headers:R}=s(e,{groupBy:T,showSelect:y(()=>e.showSelect),showExpand:y(()=>e.showExpand)}),{items:z}=c(e,L),{toggleSort:B}=p({initialSortOrder:E,sortBy:A,multiSort:j,mustSort:M,page:N}),{opened:V,isGroupOpen:H,toggleGroup:re,extractRows:U}=l({groupBy:T,sortBy:A,disableSort:F}),{pageCount:W,setItemsPerPage:G,prevPage:K,nextPage:q,setPage:J}=n({page:N,itemsPerPage:P,itemsLength:I}),{flatItems:Y}=ee(z,T,V,()=>!!g[`group-summary`]),{isSelected:X,select:ie,selectAll:ae,toggleSelect:oe,someSelected:se,allSelected:ce}=u(e,{allItems:z,currentPage:z}),{isExpanded:Z,toggleExpand:le}=h(e),Q=x(()=>U(z.value));m({page:N,itemsPerPage:P,sortBy:A,groupBy:T,search:y(()=>e.search)}),ne(`v-data-table`,{toggleSort:B,sortBy:A}),D({VDataTableRows:{hideNoData:y(()=>e.hideNoData),noDataText:y(()=>e.noDataText),loading:y(()=>e.loading),loadingText:y(()=>e.loadingText)}});let $=x(()=>({page:N.value,itemsPerPage:P.value,sortBy:A.value,pageCount:W.value,toggleSort:B,setItemsPerPage:G,prevPage:K,nextPage:q,setPage:J,someSelected:se.value,allSelected:ce.value,isSelected:X,select:ie,selectAll:ae,toggleSelect:oe,isExpanded:Z,toggleExpand:le,isGroupOpen:H,toggleGroup:re,items:Q.value.map(e=>e.raw),internalItems:Q.value,groupedItems:Y.value,columns:L.value,headers:R.value}));k(()=>{let n=o.filterProps(e),r=i.filterProps(S(e,[`multiSort`])),a=f.filterProps(e),s=t.filterProps(e);return w(t,O({class:[`v-data-table`,{"v-data-table--loading":e.loading},e.class],style:e.style},s,{fixedHeader:e.fixedHeader||e.sticky}),{top:()=>g.top?.($.value),default:()=>g.default?g.default($.value):_(C,null,[g.colgroup?.($.value),!e.hideDefaultHeader&&_(`thead`,{key:`thead`,class:`v-data-table__thead`,role:`rowgroup`},[w(i,O(r,{multiSort:!!e.multiSort}),g)]),g.thead?.($.value),!e.hideDefaultBody&&_(`tbody`,{class:`v-data-table__tbody`,role:`rowgroup`},[g[`body.prepend`]?.($.value),g.body?g.body($.value):w(f,O(d,a,{items:Y.value}),g),g[`body.append`]?.($.value)]),g.tbody?.($.value),g.tfoot?.($.value)]),bottom:()=>g.bottom?g.bottom($.value):!e.hideDefaultFooter&&_(C,null,[w(v,null,null),w(o,n,{prepend:g[`footer.prepend`]})])})})}});export{j as t}; \ No newline at end of file diff --git a/web/app/assets/VDialog-CnSngTCg.js b/web/app/assets/VDialog-CnSngTCg.js new file mode 100644 index 00000000..c7091c34 --- /dev/null +++ b/web/app/assets/VDialog-CnSngTCg.js @@ -0,0 +1 @@ +import{$t as e,Ar as t,At as n,Rn as r,Tt as i,ar as a,b as o,cn as s,fn as c,lr as l,nn as u,ur as d,v as f,x as p,xr as m,y as h}from"./index-C_dP75wD.js";var g=c({fullscreen:Boolean,scrollable:Boolean,...r(o({captureFocus:!0,origin:`center center`,scrollStrategy:`block`,transition:{component:n},zIndex:2400,retainFocus:!0}),[`disableInitialFocus`])},`VDialog`),_=s()({name:`VDialog`,props:g(),emits:{"update:modelValue":e=>!0,afterEnter:()=>!0,afterLeave:()=>!0},setup(n,{emit:r,slots:o}){let s=e(n,`modelValue`),{scopeId:c}=p(),g=t();function _(){r(`afterEnter`),(n.scrim||n.retainFocus)&&g.value?.contentEl&&!g.value.contentEl.contains(document.activeElement)&&g.value.contentEl.focus({preventScroll:!0})}function v(){r(`afterLeave`)}return m(s,async e=>{e||(await d(),g.value.activatorEl?.focus({preventScroll:!0}))}),u(()=>{let e=h.filterProps(n),t=l({"aria-haspopup":`dialog`},n.activatorProps),r=l({tabindex:-1},n.contentProps);return a(h,l({ref:g,class:[`v-dialog`,{"v-dialog--fullscreen":n.fullscreen,"v-dialog--scrollable":n.scrollable},n.class],style:n.style},e,{modelValue:s.value,"onUpdate:modelValue":e=>s.value=e,"aria-modal":`true`,activatorProps:t,contentProps:r,height:n.fullscreen?void 0:n.height,width:n.fullscreen?void 0:n.width,maxHeight:n.fullscreen?void 0:n.maxHeight,maxWidth:n.fullscreen?void 0:n.maxWidth,role:`dialog`,onAfterEnter:_,onAfterLeave:v},c),{activator:o.activator,default:(...e)=>a(i,{root:`VDialog`},{default:()=>[o.default?.(...e)]})})}),f({},g)}});export{_ as t}; \ No newline at end of file diff --git a/web/app/assets/VFileInput-BqbgVHjZ.css b/web/app/assets/VFileInput-BqbgVHjZ.css new file mode 100644 index 00000000..5926d740 --- /dev/null +++ b/web/app/assets/VFileInput-BqbgVHjZ.css @@ -0,0 +1 @@ +@layer vuetify-components{.v-slide-group--horizontal .v-tab{max-width:360px}.v-slide-group--vertical .v-tab{justify-content:start}.v-tab__slider{pointer-events:none;opacity:0;background:currentColor;width:100%;height:2px;position:absolute;bottom:0;left:0}.v-tab--selected .v-tab__slider{opacity:1}.v-slide-group--vertical .v-tab__slider{width:2px;height:100%;top:0}.v-tabs{height:var(--v-tabs-height);display:flex}.v-tabs--density-default{--v-tabs-height:48px}.v-tabs--density-default.v-tabs--stacked{--v-tabs-height:72px}.v-tabs--density-comfortable{--v-tabs-height:44px}.v-tabs--density-comfortable.v-tabs--stacked{--v-tabs-height:68px}.v-tabs--density-compact{--v-tabs-height:36px}.v-tabs--density-compact.v-tabs--stacked{--v-tabs-height:60px}.v-tabs.v-slide-group--vertical{--v-tabs-height:48px;flex:none;height:auto}.v-tabs--align-tabs-title:not(.v-slide-group--has-affixes) .v-tab:first-child{margin-inline-start:42px}.v-tabs--fixed-tabs .v-slide-group__content>:last-child,.v-tabs--align-tabs-center .v-slide-group__content>:last-child{margin-inline-end:auto}.v-tabs--fixed-tabs .v-slide-group__content>:first-child,.v-tabs--align-tabs-center .v-slide-group__content>:first-child{margin-inline-start:auto}.v-tabs--grow{flex-grow:1}.v-tabs--grow .v-tab{flex:1 0 auto;max-width:none}.v-tabs--align-tabs-end .v-tab:first-child{margin-inline-start:auto}.v-tabs--align-tabs-end .v-tab:last-child{margin-inline-end:0}.v-tabs--inset{--v-tabs-inset-radius:4px;--v-tabs-inset-padding:4px;--v-tabs-slider-background:rgba(var(--v-theme-on-surface), .2);background:color-mix(in srgb, rgb(var(--v-theme-on-surface)) 6%, transparent);box-shadow:inset 0 0 0 2px rgba(var(--v-border-color), var(--v-border-opacity));border-radius:calc(var(--v-tabs-inset-radius) + var(--v-tabs-inset-padding))}.v-tabs--inset .v-tab{margin:var(--v-tabs-inset-padding);transition-property:box-shadow,transform,opacity,background,color}.v-tabs--inset .v-tab.v-tab.v-btn{border-radius:var(--v-tabs-inset-radius)}.v-tabs--inset .v-tab:focus-visible{outline:2px solid rgb(var(--v-border-color));outline-offset:2px}.v-tabs--inset .v-tab:focus-visible:after{opacity:0}.v-tabs--inset:not(.v-tabs--fixed-tabs,.v-tabs--grow){max-width:max-content}.v-tabs--inset.v-tabs--fixed-tabs .v-slide-group__content{padding-inline:var(--v-tabs-inset-padding)}.v-tabs--inset .v-tab__slider{background:var(--v-tabs-slider-background);border-radius:var(--v-tabs-inset-radius);z-index:-1;width:auto;inset:0}.v-tabs--inset.v-tabs--horizontal{height:calc(var(--v-tabs-height) + var(--v-tabs-inset-padding) * 2);--v-tabs-inset-tab-radius:calc(var(--v-tabs-outer-radius) - var(--v-tabs-inset-padding) + 4px)}.v-tabs--inset.v-tabs--horizontal .v-tab__slider{height:auto}.v-tabs--inset .v-btn__overlay{display:none}.v-tabs--inset.v-tabs--vertical .v-tab{grid-template-columns:max-content 1fr max-content}.v-tabs--inset.v-tabs--vertical .v-tab>.v-btn__content{justify-content:start}.v-tabs--inset.v-tabs--vertical .v-tab .v-tab__slider{width:auto}@media (width<=1144.98px){.v-tabs.v-slide-group--is-overflowing.v-slide-group--horizontal:not(.v-slide-group--has-affixes) .v-tab:first-child{margin-inline-start:52px}.v-tabs.v-slide-group--is-overflowing.v-slide-group--horizontal:not(.v-slide-group--has-affixes) .v-tab:last-child{margin-inline-end:52px}}.v-window{overflow:hidden}.v-window__container{height:inherit;flex-direction:column;transition:all .3s cubic-bezier(.25,.8,.5,1);display:flex;position:relative}.v-window__controls{pointer-events:none;justify-content:space-between;align-items:center;width:100%;height:100%;padding:0 16px;display:flex;position:absolute;top:0;left:0}.v-window__controls>*{pointer-events:auto}.v-window--show-arrows-on-hover{overflow:hidden}.v-window--show-arrows-on-hover .v-window__left{transform:translate(-200%)}:has(.v-window__controls--right).v-window--show-arrows-on-hover .v-window__left{transform:translate(200%)}.v-window--show-arrows-on-hover .v-window__right{transform:translate(200%)}:has(.v-window__controls--left).v-window--show-arrows-on-hover .v-window__right{transform:translate(-200%)}.v-window--show-arrows-on-hover:hover .v-window__left,.v-window--show-arrows-on-hover:hover .v-window__right{transform:translate(0)}.v-window--vertical-arrows .v-window__controls{flex-direction:column;justify-content:center;gap:12px}.v-window--vertical-arrows .v-window__controls--left{align-items:start}.v-window--vertical-arrows .v-window__controls--right{align-items:end}.v-window--vertical-arrows .v-window__controls .v-window__left .v-icon,.v-window--vertical-arrows .v-window__controls .v-window__right .v-icon{transform:rotate(90deg)}.v-window--crossfade>.v-window__container{isolation:isolate}.v-window--crossfade>.v-window__container>.v-window-item{mix-blend-mode:plus-lighter}.v-file-input--hide.v-input .v-field,.v-file-input--hide.v-input .v-input__control,.v-file-input--hide.v-input .v-input__details{display:none}.v-file-input--hide.v-input .v-input__prepend{grid-area:control;margin:0 auto}.v-file-input--chips.v-input--density-compact .v-field--variant-solo .v-label.v-field-label--floating,.v-file-input--chips.v-input--density-compact .v-field--variant-solo-inverted .v-label.v-field-label--floating,.v-file-input--chips.v-input--density-compact .v-field--variant-filled .v-label.v-field-label--floating,.v-file-input--chips.v-input--density-compact .v-field--variant-solo-filled .v-label.v-field-label--floating{top:0}.v-file-input .v-field__input{word-break:break-word}.v-file-input input[type=file]{opacity:0;z-index:0;width:100%;height:100%;position:absolute;top:0;left:0}.v-file-input--dragging input[type=file]{z-index:1}}@layer vuetify-overrides{.v-tab{height:var(--v-tabs-height);border-radius:0;min-width:90px}.v-window-item{transition-duration:var(--v-window-transition-duration,revert-layer)}}@layer vuetify-final.trumps{@media (forced-colors:active){.v-tab--selected.v-btn{color:highlight}.v-tab__slider{background:highlight}}}@layer vuetify-final.transitions{.v-window-x-transition-enter-active,.v-window-x-transition-leave-active,.v-window-x-reverse-transition-enter-active,.v-window-x-reverse-transition-leave-active,.v-window-y-transition-enter-active,.v-window-y-transition-leave-active,.v-window-y-reverse-transition-enter-active,.v-window-y-reverse-transition-leave-active{transition:all .3s cubic-bezier(.25,.8,.5,1)}@media (prefers-reduced-motion:reduce){.v-window-x-transition-enter-active,.v-window-x-transition-leave-active,.v-window-x-reverse-transition-enter-active,.v-window-x-reverse-transition-leave-active,.v-window-y-transition-enter-active,.v-window-y-transition-leave-active,.v-window-y-reverse-transition-enter-active,.v-window-y-reverse-transition-leave-active{transition-duration:0s}}.v-window-x-transition-leave-from,.v-window-x-transition-leave-to,.v-window-x-reverse-transition-leave-from,.v-window-x-reverse-transition-leave-to,.v-window-y-transition-leave-from,.v-window-y-transition-leave-to,.v-window-y-reverse-transition-leave-from,.v-window-y-reverse-transition-leave-to{width:100%;position:absolute;top:0}.v-window-x-transition-enter-from{transform:translate(100%)}.v-window-x-transition-leave-to,.v-window-x-reverse-transition-enter-from{transform:translate(-100%)}.v-window-x-reverse-transition-leave-to{transform:translate(100%)}.v-window-y-transition-enter-from{transform:translateY(100%)}.v-window-y-transition-leave-to,.v-window-y-reverse-transition-enter-from{transform:translateY(-100%)}.v-window-y-reverse-transition-leave-to{transform:translateY(100%)}.v-window-crossfade-transition-enter-active,.v-window-crossfade-transition-leave-active{transition:all .3s cubic-bezier(.25,.8,.5,1)}.v-window-crossfade-transition-leave-from,.v-window-crossfade-transition-leave-to{width:100%;position:absolute;top:0}.v-window-crossfade-transition-enter-from,.v-window-crossfade-transition-leave-to{opacity:0}} diff --git a/web/app/assets/VFileInput-FSrwyXa8.js b/web/app/assets/VFileInput-FSrwyXa8.js new file mode 100644 index 00000000..e35d94d3 --- /dev/null +++ b/web/app/assets/VFileInput-FSrwyXa8.js @@ -0,0 +1 @@ +import{$n as e,$t as t,Ar as n,Bn as r,C as i,Fn as a,Gt as o,Hn as s,Nr as c,On as l,Qn as u,Qt as d,R as f,Rn as p,Rr as m,S as h,St as g,Vn as _,Wt as v,Xn as y,Zt as b,_t as x,ar as S,cn as C,cr as w,ct as T,d as E,dn as D,et as O,f as k,fn as A,g as j,gr as M,hn as N,in as P,jn as F,jr as I,jt as L,ln as R,lr as z,lt as B,nn as V,nt as H,o as ee,p as te,pn as ne,qn as re,rn as ie,rt as U,s as W,st as G,ur as K,v as q,wn as ae,wr as J,x as Y,xr as oe,xt as se,yn as X,z as ce,zn as le,zr as Z}from"./index-C_dP75wD.js";import{n as ue,r as de,t as fe}from"./VChip-oig-b64O.js";var Q=Symbol.for(`vuetify:v-tabs`),pe=A({fixed:Boolean,sliderColor:String,sliderTransition:String,sliderTransitionDuration:[String,Number],hideSlider:Boolean,inset:Boolean,direction:{type:String,default:`horizontal`},...p(ce({selectedClass:`v-tab--selected`,variant:`text`}),[`active`,`block`,`flat`,`location`,`position`,`symbol`])},`VTab`),me=C()({name:`VTab`,props:pe(),setup(t,{slots:r,attrs:i}){let{textColorClasses:a,textColorStyles:o}=g(()=>t.sliderColor),{backgroundColorClasses:s,backgroundColorStyles:c}=se(()=>t.sliderColor),l=n(),d=n(),p=u(()=>t.direction===`horizontal`),h=u(()=>l.value?.group?.isSelected.value??!1);function _(e,t){return{opacity:[0,1]}}function v(e,n){return t.direction===`vertical`?{transform:[`scaleY(0)`,`scaleY(1)`]}:{transform:[`scaleX(0)`,`scaleX(1)`]}}function b(e,t){let n=t.getBoundingClientRect(),r=e.getBoundingClientRect(),i=p.value?`x`:`y`,a=p.value?`X`:`Y`,o=p.value?`right`:`bottom`,s=p.value?`width`:`height`,c=n[i]>r[i]?n[o]-r[o]:n[i]-r[i],l=Math.sign(c)>0?p.value?`right`:`bottom`:Math.sign(c)<0?p.value?`left`:`top`:`center`,u=(Math.abs(c)+(Math.sign(c)<0?n[s]:r[s]))/Math.max(n[s],r[s])||0,d=n[s]/r[s]||0,f=1.5;return{transform:[`translate${a}(${c}px) scale${a}(${d})`,`translate${a}(${c/f}px) scale${a}(${(u-1)/f+1})`,`none`],transformOrigin:[,,,].fill(l)}}function x({value:e}){if(e){let e=l.value?.$el.parentElement?.querySelector(`.v-tab--selected .v-tab__slider`),n=d.value;if(!e||!n)return;let r=getComputedStyle(e).backgroundColor,i={fade:_,grow:v,shift:b}[t.sliderTransition??`shift`]??b,a=Number(t.sliderTransitionDuration)||({fade:400,grow:350,shift:225}[t.sliderTransition??`shift`]??225);ne(n,{backgroundColor:[r,r],...i(n,e)},{duration:a,easing:P})}}return V(()=>{let n=f.filterProps(t);return S(f,z({symbol:Q,ref:l,class:[`v-tab`,t.class,h.value&&t.inset?s.value:[]],style:[t.style,h.value&&t.inset?c.value:[],{backgroundColor:h.value&&t.inset?`transparent !important`:void 0}],tabindex:h.value?0:-1,role:`tab`,"aria-selected":String(h.value),active:!1},n,i,{block:t.fixed,maxWidth:t.fixed?300:void 0,"onGroup:selected":x}),{...r,default:()=>e(y,null,[r.default?.()??t.text,!t.hideSlider&&e(`div`,{ref:d,class:m([`v-tab__slider`,t.inset?s.value:a.value]),style:Z([o.value,t.inset?c.value:a.value])},null)])})}),q({},l)}}),he=e=>{let{touchstartX:t,touchendX:n,touchstartY:r,touchendY:i}=e,a=.5;e.offsetX=n-t,e.offsetY=i-r,Math.abs(e.offsetY)t+16&&e.right(e)),Math.abs(e.offsetX)r+16&&e.down(e))};function ge(e,t){let n=e.changedTouches[0];t.touchstartX=n.clientX,t.touchstartY=n.clientY,t.start?.({originalEvent:e,...t})}function _e(e,t){let n=e.changedTouches[0];t.touchendX=n.clientX,t.touchendY=n.clientY,t.end?.({originalEvent:e,...t}),he(t)}function ve(e,t){let n=e.changedTouches[0];t.touchmoveX=n.clientX,t.touchmoveY=n.clientY,t.move?.({originalEvent:e,...t})}function ye(e={}){let t={touchstartX:0,touchstartY:0,touchendX:0,touchendY:0,touchmoveX:0,touchmoveY:0,offsetX:0,offsetY:0,left:e.left,right:e.right,up:e.up,down:e.down,start:e.start,move:e.move,end:e.end};return{touchstart:e=>ge(e,t),touchend:e=>_e(e,t),touchmove:e=>ve(e,t)}}function be(e,t){let n=t.value,r=n?.parent?e.parentElement:e,i=n?.options??{passive:!0},o=t.instance?.$.uid;if(!r||o===void 0)return;let s=ye(t.value);r._touchHandlers=r._touchHandlers??Object.create(null),r._touchHandlers[o]=s,a(s).forEach(e=>{r.addEventListener(e,s[e],i)})}function xe(e,t){let n=t.value?.parent?e.parentElement:e,r=t.instance?.$.uid;if(!n?._touchHandlers||r===void 0)return;let i=n._touchHandlers[r];a(i).forEach(e=>{n.removeEventListener(e,i[e])}),delete n._touchHandlers[r]}var $={mounted:be,unmounted:xe},Se=Symbol.for(`vuetify:v-window`),Ce=Symbol.for(`vuetify:v-window-group`),we=A({continuous:Boolean,nextIcon:{type:[Boolean,String,Function,Object],default:`$next`},prevIcon:{type:[Boolean,String,Function,Object],default:`$prev`},reverse:Boolean,showArrows:{type:[Boolean,String],validator:e=>typeof e==`boolean`||e===`hover`},verticalArrows:[Boolean,String],touch:{type:[Object,Boolean],default:void 0},direction:{type:String,default:`horizontal`},modelValue:null,disabled:Boolean,selectedClass:{type:String,default:`v-window-item--active`},mandatory:{type:[Boolean,String],default:`force`},crossfade:Boolean,transitionDuration:Number,...D(),...L(),...v()},`VWindow`),Te=C()({name:`VWindow`,directives:{vTouch:$},props:we(),emits:{"update:modelValue":e=>!0},setup(t,{slots:r}){let{themeClasses:i}=o(t),{isRtl:a}=d(),{t:l}=b(),p=H(t,Ce),h=n(),g=u(()=>a.value?!t.reverse:t.reverse),v=I(!1),y=u(()=>t.crossfade?`v-window-crossfade-transition`:`v-window-${t.direction===`vertical`?`y`:`x`}${(g.value?!v.value:v.value)?`-reverse`:``}-transition`),x=I(0),C=n(void 0),w=u(()=>p.items.value.findIndex(e=>p.selected.value.includes(e.id)));oe(w,(e,t)=>{let n,r={left:0,top:0};_&&t>=0&&(n=ie(h.value),r.left=n?.scrollLeft,r.top=n?.scrollTop);let i=p.items.value.length,a=i-1;i<=2?v.value=e{!_||!n||(n.scrollTop!==r.top&&n.scrollTo({...r,behavior:`instant`}),requestAnimationFrame(()=>{n&&n.scrollTop!==r.top&&n.scrollTo({...r,behavior:`instant`})}))})},{flush:`sync`}),M(Se,{transition:y,isReversed:v,transitionCount:x,transitionHeight:C,rootRef:h});let T=c(()=>t.continuous||w.value!==0),E=c(()=>t.continuous||w.value!==p.items.value.length-1);function D(){T.value&&p.prev()}function O(){E.value&&p.next()}let k=u(()=>{let n=[],i={icon:a.value?t.nextIcon:t.prevIcon,class:`v-window__${g.value?`right`:`left`}`,onClick:p.prev,"aria-label":l(`$vuetify.carousel.prev`)};n.push(T.value?r.prev?r.prev({props:i}):S(f,i,null):e(`div`,null,null));let o={icon:a.value?t.prevIcon:t.nextIcon,class:`v-window__${g.value?`left`:`right`}`,onClick:p.next,"aria-label":l(`$vuetify.carousel.next`)};return n.push(E.value?r.next?r.next({props:o}):S(f,o,null):e(`div`,null,null)),n}),A=u(()=>t.touch===!1?t.touch:{left:()=>{g.value?D():O()},right:()=>{g.value?O():D()},start:({originalEvent:e})=>{e.stopPropagation()},...t.touch===!0?{}:t.touch});function j(e){(t.direction===`horizontal`&&e.key===`ArrowLeft`||t.direction===`vertical`&&e.key===`ArrowUp`)&&(e.preventDefault(),D(),K(()=>{T.value?N(0):N(1)})),(t.direction===`horizontal`&&e.key===`ArrowRight`||t.direction===`vertical`&&e.key===`ArrowDown`)&&(e.preventDefault(),O(),K(()=>{E.value?N(1):N(0)}))}function N(e){let t=k.value[e];t&&(Array.isArray(t)?t[0]:t).el?.focus()}return V(()=>J(S(t.tag,{ref:h,class:m([`v-window`,{"v-window--show-arrows-on-hover":t.showArrows===`hover`,"v-window--vertical-arrows":!!t.verticalArrows,"v-window--crossfade":!!t.crossfade},i.value,t.class]),style:Z([t.style,{"--v-window-transition-duration":s()?null:X(t.transitionDuration,`ms`)}])},{default:()=>[e(`div`,{class:`v-window__container`,style:{height:C.value}},[r.default?.({group:p}),t.showArrows!==!1&&e(`div`,{class:m([`v-window__controls`,{"v-window__controls--left":t.verticalArrows===`left`||t.verticalArrows===!0},{"v-window__controls--right":t.verticalArrows===`right`}]),onKeydown:j},[k.value])]),r.additional?.({group:p})]}),[[$,A.value]])),{group:p}}}),Ee=A({...p(we(),[`continuous`,`nextIcon`,`prevIcon`,`showArrows`,`touch`,`mandatory`])},`VTabsWindow`),De=C()({name:`VTabsWindow`,props:Ee(),emits:{"update:modelValue":e=>!0},setup(e,{slots:n}){let r=w(Q,null),i=t(e,`modelValue`),a=u({get(){return i.value!=null||!r?i.value:r.items.value.find(e=>r.selected.value.includes(e.id))?.value},set(e){i.value=e}});return V(()=>S(Te,z({_as:`VTabsWindow`},Te.filterProps(e),{modelValue:a.value,"onUpdate:modelValue":e=>a.value=e,class:[`v-tabs-window`,e.class],style:e.style,mandatory:!1,touch:!1}),n)),{}}}),Oe=A({reverseTransition:{type:[Boolean,String],default:void 0},transition:{type:[Boolean,String],default:void 0},...D(),...O(),...h()},`VWindowItem`),ke=C()({name:`VWindowItem`,directives:{vTouch:$},props:Oe(),emits:{"group:selected":e=>!0},setup(t,{slots:n}){let r=w(Se),a=U(t,Ce),{isBooted:o}=B();if(!r||!a)throw Error(`[Vuetify] VWindowItem must be used inside VWindow`);let s=I(!1),c=u(()=>o.value&&(r.isReversed.value?t.reverseTransition!==!1:t.transition!==!1));function l(){!s.value||!r||(s.value=!1,r.transitionCount.value>0&&(--r.transitionCount.value,r.transitionCount.value===0&&(r.transitionHeight.value=void 0)))}function d(){s.value||!r||(s.value=!0,r.transitionCount.value===0&&(r.transitionHeight.value=X(r.rootRef.value?.clientHeight)),r.transitionCount.value+=1)}function f(){l()}function p(e){s.value&&K(()=>{!c.value||!s.value||!r||(r.transitionHeight.value=X(e.clientHeight))})}let h=u(()=>{let e=r.isReversed.value?t.reverseTransition:t.transition;return c.value?{name:typeof e==`string`?e:r.transition.value,onBeforeEnter:d,onAfterEnter:l,onEnterCancelled:f,onBeforeLeave:d,onAfterLeave:l,onLeaveCancelled:f,onEnter:p}:!1}),{hasContent:g}=i(t,a.isSelected);return V(()=>S(x,{transition:h.value,disabled:!o.value},{default:()=>[J(e(`div`,{class:m([`v-window-item`,a.selectedClass.value,t.class]),style:Z(t.style)},[g.value&&n.default?.()]),[[re,a.isSelected.value]])]})),{groupItem:a}}}),Ae=A({...Oe()},`VTabsWindowItem`),je=C()({name:`VTabsWindowItem`,props:Ae(),setup(e,{slots:t}){return V(()=>S(ke,z({_as:`VTabsWindowItem`},ke.filterProps(e),{class:[`v-tabs-window-item`,e.class],style:e.style}),t)),{}}});function Me(e){return e?e.map(e=>F(e)?e:{text:e,value:e}):[]}var Ne=A({alignTabs:{type:String,default:`start`},color:String,fixedTabs:Boolean,items:{type:Array,default:()=>[]},stacked:Boolean,bgColor:String,grow:Boolean,height:{type:[Number,String],default:void 0},hideSlider:Boolean,inset:Boolean,insetPadding:[String,Number],insetRadius:[String,Number],sliderColor:String,...le(pe(),[`spaced`,`sliderTransition`,`sliderTransitionDuration`]),...de({mandatory:`force`,selectedClass:`v-tab-item--selected`}),...G(),...L()},`VTabs`),Pe=C()({name:`VTabs`,props:Ne(),emits:{"update:modelValue":e=>!0},setup(n,{attrs:r,slots:i}){let a=t(n,`modelValue`),o=u(()=>Me(n.items)),{densityClasses:s}=T(n),{backgroundColorClasses:l,backgroundColorStyles:d}=se(()=>n.bgColor),{scopeId:f}=Y();return R({VTab:{color:c(n,`color`),direction:c(n,`direction`),stacked:c(n,`stacked`),fixed:c(n,`fixedTabs`),inset:c(n,`inset`),sliderColor:c(n,`sliderColor`),sliderTransition:c(n,`sliderTransition`),sliderTransitionDuration:c(n,`sliderTransitionDuration`),hideSlider:c(n,`hideSlider`)}}),V(()=>{let t=ue.filterProps(n),c=!!(i.window||n.items.length>0);return e(y,null,[S(ue,z(t,{modelValue:a.value,"onUpdate:modelValue":e=>a.value=e,class:[`v-tabs`,`v-tabs--${n.direction}`,`v-tabs--align-tabs-${n.alignTabs}`,{"v-tabs--fixed-tabs":n.fixedTabs,"v-tabs--grow":n.grow,"v-tabs--inset":n.inset,"v-tabs--stacked":n.stacked},s.value,l.value,n.class],style:[{"--v-tabs-height":X(n.height),"--v-tabs-inset-padding":n.inset?X(n.insetPadding):void 0,"--v-tabs-inset-radius":n.inset?X(n.insetRadius):void 0},d.value,n.style],role:`tablist`,symbol:Q},f,r),{default:i.default??(()=>o.value.map(e=>i.tab?.({item:e})??S(me,z(e,{key:e.text,value:e.value,spaced:n.spaced}),{default:i[`tab.${e.value}`]?()=>i[`tab.${e.value}`]?.({item:e}):void 0}))),prev:i.prev,next:i.next}),c&&S(De,z({modelValue:a.value,"onUpdate:modelValue":e=>a.value=e,key:`tabs-window`},f),{default:()=>[o.value.map(e=>i.item?.({item:e})??S(je,{value:e.value},{default:()=>i[`item.${e.value}`]?.({item:e})})),i.window?.()]})])}),{}}});function Fe(){function e(e){return[...e.dataTransfer?.items??[]].filter(e=>e.kind===`file`).map(e=>e.webkitGetAsEntry()).filter(Boolean).length>0||[...e.dataTransfer?.files??[]].length>0}async function t(e){let t=[],n=[...e.dataTransfer?.items??[]].filter(e=>e.kind===`file`).map(e=>e.webkitGetAsEntry()).filter(Boolean);if(n.length)for(let e of n){let n=await Ie(e,Le(`.`,e));t.push(...n.map(e=>e.file))}else t.push(...e.dataTransfer?.files??[]);return t}return{handleDrop:t,hasFilesOrFolders:e}}function Ie(e,t=``){return new Promise((n,r)=>{e.isFile?e.file(e=>n([{file:e,path:t}]),r):e.isDirectory&&e.createReader().readEntries(async e=>{let r=[];for(let n of e)r.push(...await Ie(n,Le(t,n)));n(r)})})}function Le(e,t){return t.isDirectory?`${e}/${t.name}`:e}var Re=A({filterByType:String},`file-accept`);function ze(e){let t=u(()=>e.filterByType?Be(e.filterByType):null);function n(e){if(t.value){let n=e.filter(t.value);return{accepted:n,rejected:e.filter(e=>!n.includes(e))}}return{accepted:e,rejected:[]}}return{filterAccepted:n}}function Be(e){let t=e.split(`,`).map(e=>e.trim().toLowerCase()),n=t.filter(e=>e.startsWith(`.`)),r=t.filter(e=>e.endsWith(`/*`)),i=t.filter(e=>!n.includes(e)&&!r.includes(e));return e=>{let t=e.name.split(`.`).at(-1)?.toLowerCase()??``,a=e.type.split(`/`).at(0)?.toLowerCase()??``;return i.includes(e.type)||n.includes(`.${t}`)||r.includes(`${a}/*`)}}var Ve=A({chips:Boolean,counter:Boolean,counterSizeString:{type:String,default:`$vuetify.fileInput.counterSize`},counterString:{type:String,default:`$vuetify.fileInput.counter`},hideInput:Boolean,multiple:Boolean,showSize:{type:[Boolean,Number,String],default:!1,validator:e=>typeof e==`boolean`||[1e3,1024].includes(Number(e))},truncateLength:{type:[Number,String],default:22},...p(W({prependIcon:`$file`}),[`direction`]),modelValue:{type:[Array,Object],default:e=>e.multiple?[]:null,validator:e=>r(e).every(e=>typeof e==`object`&&!!e)},...Re(),...k({clearable:!0})},`VFileInput`),He=C()({name:`VFileInput`,inheritAttrs:!1,props:Ve(),emits:{"click:control":e=>!0,"mousedown:control":e=>!0,"update:focused":e=>!0,"update:modelValue":e=>!0,rejected:e=>!0},setup(i,{attrs:a,emit:o,slots:s}){let{t:d}=b(),{filterAccepted:f}=ze(i),p=t(i,`modelValue`,i.modelValue,e=>r(e),e=>!i.multiple&&Array.isArray(e)?e[0]:e),{isFocused:h,focus:g,blur:_}=te(i),v=u(()=>typeof i.showSize==`boolean`?void 0:i.showSize),x=u(()=>(p.value??[]).reduce((e,{size:t=0})=>e+t,0)),C=u(()=>l(x.value,v.value)),w=u(()=>(p.value??[]).map(e=>{let{name:t=``,size:n=0}=e,r=ie(t);return i.showSize?`${r} (${l(n,v.value)})`:r})),T=u(()=>{let e=p.value?.length??0;return i.showSize?d(i.counterSizeString,e,C.value):d(i.counterString,e)}),D=n(),O=n(),k=n(),A=c(()=>h.value||i.active),M=u(()=>[`plain`,`underlined`].includes(i.variant)),P=I(!1),{handleDrop:F,hasFilesOrFolders:L}=Fe();function R(){k.value!==document.activeElement&&k.value?.focus(),h.value||g()}function B(e){k.value?.click()}function H(e){o(`mousedown:control`,e)}function ne(e){k.value?.click(),o(`click:control`,e)}function re(e){e.stopPropagation(),R(),K(()=>{p.value=[],N(i[`onClick:clear`],e)})}function ie(e){if(e.length{(!Array.isArray(e)||!e.length)&&k.value&&(k.value.value=``)}),V(()=>{let t=!!(s.counter||i.counter),n=!!(t||s.details),[r,o]=ae(a),{modelValue:c,...l}=ee.filterProps(i),u={...E.filterProps(i),"onClick:clear":re},d=a.webkitdirectory!==void 0&&a.webkitdirectory!==!1,f=a.accept?String(a.accept):void 0,g=d?void 0:i.filterByType??f;return S(ee,z({ref:D,modelValue:i.multiple?p.value:p.value[0],class:[`v-file-input`,{"v-file-input--chips":!!i.chips,"v-file-input--dragging":P.value,"v-file-input--hide":i.hideInput,"v-input--plain-underlined":M.value},i.class],style:i.style,"onClick:prepend":B},r,l,{centerAffix:!M.value,focused:h.value,indentDetails:i.indentDetails??!M.value}),{...s,default:({id:t,isDisabled:n,isDirty:r,isReadonly:a,isValid:c,hasDetails:l})=>S(E,z({ref:O,prependIcon:i.prependIcon,onMousedown:H,onClick:ne,"onClick:prependInner":i[`onClick:prependInner`],"onClick:appendInner":i[`onClick:appendInner`]},u,{id:t.value,active:A.value||r.value,dirty:r.value||i.dirty,disabled:n.value,focused:h.value,details:l.value,error:c.value===!1,onDragover:U,onDrop:G}),{...s,default:({props:{class:t,...r},controlRef:c})=>e(y,null,[e(`input`,z({ref:e=>k.value=c.value=e,type:`file`,accept:g,readonly:a.value,disabled:n.value,multiple:i.multiple,name:i.name,onClick:e=>{e.stopPropagation(),a.value&&e.preventDefault(),R()},onChange:J,onDragleave:W,onFocus:R,onBlur:_},r,o),null),e(`div`,{class:m(t)},[!!p.value?.length&&!i.hideInput&&(s.selection?s.selection({fileNames:w.value,totalBytes:x.value,totalBytesReadable:C.value}):i.chips?w.value.map(e=>S(fe,{key:e,size:`small`,text:e},null)):w.value.join(`, `))])])}),details:n?n=>e(y,null,[s.details?.(n),t&&e(y,null,[e(`span`,null,null),S(j,{active:!!p.value?.length,value:T.value,disabled:i.disabled},s.counter)])]):void 0})}),q({},D,O,k)}});export{me as a,De as i,Pe as n,je as r,He as t}; \ No newline at end of file diff --git a/web/app/assets/VRow-MZyk7N4E.js b/web/app/assets/VRow-MZyk7N4E.js new file mode 100644 index 00000000..3f773324 --- /dev/null +++ b/web/app/assets/VRow-MZyk7N4E.js @@ -0,0 +1 @@ +import{Fn as e,Gn as t,Jt as n,Lr as r,Qn as i,cn as a,dn as o,fn as s,jt as c,sr as l,st as u,yn as d}from"./index-C_dP75wD.js";var f=n.reduce((e,t)=>(e[t]={type:[Boolean,String,Number],default:!1},e),{}),p=n.reduce((e,t)=>{let n=`offset`+r(t);return e[n]={type:[String,Number],default:null},e},{}),m={col:e(f),offset:e(p),order:[`order`,`orderSm`,`orderMd`,`orderLg`,`orderXl`,`orderXxl`]};function h(e){if(typeof e==`string`&&e.includes(`/`)){let[t,n]=e.split(`/`);return{cols:Number(t),size:Number(n)}}return{cols:e}}function g(e,t,n){if(n==null||n===!1)return{};let{cols:r,size:i}=h(n),a=t.replace(e,``).toLowerCase();return e===`offset`?{className:`v-col--offset-${a}-${r}`,variables:[{[`--v-col-offset-base-${a}`]:i}]}:e===`order`?{className:`order-${a}-${r}`}:{className:r===``||r===!0?`v-col--${a}`:`v-col--cols-${a}-${r}`,variables:[{[`--v-col-size-base-${a}`]:i}]}}var _=[`auto`,`start`,`end`,`center`,`baseline`,`stretch`],v=e=>_.includes(e),y=s({cols:{type:[Boolean,String,Number],default:!1},...f,offset:{type:[String,Number],default:null},...p,order:{type:[String,Number],default:null},orderSm:{type:[String,Number],default:null},orderMd:{type:[String,Number],default:null},orderLg:{type:[String,Number],default:null},orderXl:{type:[String,Number],default:null},orderXxl:{type:[String,Number],default:null},alignSelf:{type:String,default:null,validator:v},...o(),...c()},`VCol`),b=a()({name:`VCol`,props:y(),setup(e,{slots:t}){let n=i(()=>h(e.cols).size),r=i(()=>h(e.offset).size),a=i(()=>{let t=[`v-col`],n=[],r;for(r in m)m[r].forEach(i=>{let a=e[i],{className:o,variables:s}=g(r,i,a);o&&t.push(o),s&&n.push(...s)});let{cols:i}=h(e.cols),{cols:a}=h(e.offset);return t.push({[`v-col--cols-${i}`]:i,[`v-col--offset-${a}`]:a,[`order-${e.order}`]:e.order,[`align-self-${e.alignSelf}`]:e.alignSelf}),{classes:t,variables:n}});return()=>l(e.tag,{class:[a.value.classes,e.class],style:[{"--v-col-size-base":n.value},{"--v-col-offset-base":r.value},a.value.variables,e.style]},t.default?.())}}),x=[`start`,`end`,`center`],S=[`space-between`,`space-around`,`space-evenly`],C=[...x,`baseline`,`stretch`],w=e=>C.includes(e),T=[...x,...S],E=e=>T.includes(e),D=[...x,...S,`stretch`],O=e=>D.includes(e),k={align:[`align`,`alignSm`,`alignMd`,`alignLg`,`alignXl`,`alignXxl`],justify:[`justify`,`justifySm`,`justifyMd`,`justifyLg`,`justifyXl`,`justifyXxl`],alignContent:[`alignContent`,`alignContentSm`,`alignContentMd`,`alignContentLg`,`alignContentXl`,`alignContentXxl`]},A={align:`align`,justify:`justify`,alignContent:`align-content`};function j(e,t,n){let r=A[e];if(n!=null){if(t){let n=t.replace(e,``);r+=`-${n}`}return r+=`-${n}`,r.toLowerCase()}}var M=s({dense:Boolean,align:{type:String,default:null,validator:w},alignSm:{type:String,default:null,validator:w},alignMd:{type:String,default:null,validator:w},alignLg:{type:String,default:null,validator:w},alignXl:{type:String,default:null,validator:w},alignXxl:{type:String,default:null,validator:w},justify:{type:String,default:null,validator:E},justifySm:{type:String,default:null,validator:E},justifyMd:{type:String,default:null,validator:E},justifyLg:{type:String,default:null,validator:E},justifyXl:{type:String,default:null,validator:E},justifyXxl:{type:String,default:null,validator:E},alignContent:{type:String,default:null,validator:O},alignContentSm:{type:String,default:null,validator:O},alignContentMd:{type:String,default:null,validator:O},alignContentLg:{type:String,default:null,validator:O},alignContentXl:{type:String,default:null,validator:O},alignContentXxl:{type:String,default:null,validator:O},noGutters:Boolean,gap:[Number,String,Array],size:[Number,String],...o(),...u(),...c()},`VRow`),N=a()({name:`VRow`,props:M(),setup(e,{slots:n}){e.dense&&t(`dense`,`density="comfortable"`);let r=i(()=>{let t=[],n;for(n in k)k[n].forEach(r=>{let i=e[r],a=j(n,r,i);a&&t.push(a)});return t.push({"v-row--no-gutters":e.noGutters,"v-row--density-default":e.density===`default`&&!e.noGutters&&!e.dense,"v-row--density-compact":e.density===`compact`,"v-row--density-comfortable":e.density===`comfortable`||e.dense,[`align-${e.align}`]:e.align,[`justify-${e.justify}`]:e.justify,[`align-content-${e.alignContent}`]:e.alignContent}),t}),a=i(()=>Array.isArray(e.gap)?d(e.gap[0]||0):d(e.gap)),o=i(()=>Array.isArray(e.gap)?d(e.gap[1]||0):a.value);return()=>l(e.tag,{class:[`v-row`,r.value,e.class],style:[{"--v-col-gap-x":a.value,"--v-col-gap-y":o.value,"--v-row-columns":e.size},e.style]},n.default?.())}});export{b as n,N as t}; \ No newline at end of file diff --git a/web/app/assets/VSelect-V_uWG8_q.js b/web/app/assets/VSelect-V_uWG8_q.js new file mode 100644 index 00000000..82f5e06f --- /dev/null +++ b/web/app/assets/VSelect-V_uWG8_q.js @@ -0,0 +1 @@ +import{$n as e,$t as t,Ar as n,At as r,Bn as i,Ct as a,D as o,Dn as s,Dr as c,Fr as l,Gt as u,In as d,Ir as f,L as p,M as m,Nr as h,O as g,Qn as _,Rn as v,Rr as y,Sn as b,Sr as x,T as S,Tn as C,Tt as ee,U as w,Ut as te,Vn as ne,W as T,Wt as re,X as E,Xn as D,Xt as O,Zt as k,_ as A,_n as j,a as M,an as N,ar as P,br as ie,bt as F,cn as I,dn as L,dt as ae,en as R,fn as z,ft as oe,gn as se,ht as B,ir as ce,jr as V,jt as H,k as le,lr as U,m as ue,mt as W,n as G,nn as K,pr as de,pt as fe,rn as pe,t as me,tn as q,u as he,un as J,ur as ge,ut as _e,v as ve,vn as Y,vt as ye,w as be,wt as X,xn as xe,xr as Z,xt as Se,yn as Q,yt as $,zr as Ce}from"./index-C_dP75wD.js";import{n as we,r as Te}from"./VContainer-DGQjsCTw.js";import{t as Ee}from"./VChip-oig-b64O.js";var De=z({indeterminate:Boolean,indeterminateIcon:{type:q,default:`$checkboxIndeterminate`},...Te({falseIcon:`$checkboxOff`,trueIcon:`$checkboxOn`})},`VCheckboxBtn`),Oe=I()({name:`VCheckboxBtn`,props:De(),emits:{"update:modelValue":e=>!0,"update:indeterminate":e=>!0},setup(e,{slots:n}){let r=t(e,`indeterminate`),i=t(e,`modelValue`);function a(e){r.value&&=!1}let o=h(()=>r.value?e.indeterminateIcon:e.falseIcon),s=h(()=>r.value?e.indeterminateIcon:e.trueIcon);return K(()=>P(we,U(v(we.filterProps(e),[`modelValue`]),{modelValue:i.value,"onUpdate:modelValue":[e=>i.value=e,a],class:[`v-checkbox-btn`,e.class],style:e.style,type:`checkbox`,falseIcon:o.value,trueIcon:s.value,"aria-checked":r.value?`mixed`:void 0}),n)),{}}}),ke=z({color:String,...W(),...L(),...a(),...oe(),..._e(),...w(),...$(),...H(),...re()},`VSheet`),Ae=I()({name:`VSheet`,props:ke(),setup(e,{slots:t}){let{themeClasses:n}=u(e),{backgroundColorClasses:r,backgroundColorStyles:i}=Se(()=>e.color),{borderClasses:a}=B(e),{dimensionStyles:o}=X(e),{elevationClasses:s}=fe(e),{locationStyles:c}=ae(e),{positionClasses:l}=T(e),{roundedClasses:d}=F(e);return K(()=>P(e.tag,{class:y([`v-sheet`,n.value,r.value,a.value,s.value,l.value,d.value,e.class]),style:Ce([i.value,o.value,c.value,e.style])},t)),{}}}),je=z({renderless:Boolean,...L()},`VVirtualScrollItem`),Me=I()({name:`VVirtualScrollItem`,inheritAttrs:!1,props:je(),emits:{"update:height":e=>!0},setup(t,{attrs:n,emit:r,slots:i}){let{resizeRef:a,contentRect:o}=te(void 0,`border`);Z(()=>o.value?.height,e=>{e!=null&&r(`update:height`,e)}),K(()=>t.renderless?e(D,null,[i.default?.({itemRef:a})]):e(`div`,U({ref:a,class:[`v-virtual-scroll__item`,t.class],style:t.style},n),[i.default?.()]))}}),Ne=-1,Pe=1,Fe=100,Ie=z({itemHeight:{type:[Number,String],default:null},itemKey:{type:[String,Array,Function],default:null},height:[Number,String]},`virtual`);function Le(e,t){let r=O(),i=V(0);x(()=>{i.value=parseFloat(e.itemHeight||0)});let a=V(0),o=V(Math.ceil((parseInt(e.height)||r.height.value)/(i.value||16))||1),l=V(0),u=V(0),d=n(),f=n(),p=0,{resizeRef:m,contentRect:h}=te();x(()=>{m.value=d.value});let g=_(()=>d.value===document.documentElement?r.height.value:h.value?.height||parseInt(e.height)||0),v=_(()=>!!(d.value&&f.value&&g.value&&i.value)),y=Array.from({length:t.value.length}),b=Array.from({length:t.value.length}),S=V(0),C=-1;function ee(e){return y[e]||i.value}let w=xe(()=>{let e=performance.now();b[0]=0;let n=t.value.length;for(let e=1;e<=n;e++)b[e]=(b[e-1]||0)+ee(e-1);S.value=Math.max(S.value,performance.now()-e)},S),T=Z(v,e=>{e&&(T(),p=f.value.offsetTop,w.immediate(),F(),~C&&ge(()=>{ne&&window.requestAnimationFrame(()=>{L(C),C=-1})}))});c(()=>{w.clear()});function re(e,t){let n=y[e],r=i.value;i.value=r?Math.min(i.value,t):t,(n!==t||r!==i.value)&&(y[e]=t,w())}function E(e){e=Y(e,0,t.value.length);let n=Math.floor(e),r=e%1,i=n+1,a=b[n]||0;return a+((b[i]||a)-a)*r}function D(e){return Re(b,e)}let k=0,A=0,j=0;Z(g,(e,t)=>{F(),e{A=0,F()})});let M=-1;function N(){if(!d.value||!f.value)return;let e=d.value.scrollTop,t=performance.now();t-j>500?(A=Math.sign(e-k),p=f.value.offsetTop):A=e-k,k=e,j=t,window.clearTimeout(M),M=window.setTimeout(P,500),F()}function P(){!d.value||!f.value||(A=0,j=0,window.clearTimeout(M),F())}let ie=-1;function F(){cancelAnimationFrame(ie),ie=requestAnimationFrame(I)}function I(){if(!d.value||!g.value||!i.value)return;let e=k-p,n=Math.sign(A),r=Y(D(Math.max(0,e-Fe)),0,t.value.length),s=Y(D(e+g.value+Fe)+1,r+1,t.value.length);if((n!==Ne||ro.value)){let e=E(a.value)-E(r),n=E(s)-E(o.value);Math.max(e,n)>Fe?(a.value=r,o.value=s):(r<=0&&(a.value=r),s>=t.value.length&&(o.value=s))}l.value=E(a.value),u.value=E(t.value.length)-E(o.value)}function L(e){let t=E(e);!d.value||e&&!t?C=e:d.value.scrollTop=t}let ae=_(()=>t.value.slice(a.value,o.value).map((t,n)=>{let r=n+a.value;return{raw:t,index:r,key:s(t,e.itemKey,r)}}));return Z(t,()=>{y=Array.from({length:t.value.length}),b=Array.from({length:t.value.length}),w.immediate(),F()},{deep:1}),{calculateVisibleItems:F,containerRef:d,markerRef:f,computedItems:ae,paddingTop:l,paddingBottom:u,scrollToIndex:L,handleScroll:N,handleScrollend:P,handleItemResize:re}}function Re(e,t){let n=e.length-1,r=0,i=0,a=null,o=-1;if(e[n]>1,a=e[i],a>t)n=i-1;else if(a[]},renderless:Boolean,...Ie(),...L(),...a()},`VVirtualScroll`),Be=I()({name:`VVirtualScroll`,props:ze(),setup(t,{slots:n}){let r=J(`VVirtualScroll`),{dimensionStyles:i}=X(t),{calculateVisibleItems:a,containerRef:o,markerRef:s,handleScroll:l,handleScrollend:u,handleItemResize:d,scrollToIndex:f,paddingTop:p,paddingBottom:m,computedItems:g}=Le(t,h(()=>t.items));return R(()=>t.renderless,()=>{function e(e=!1){let t=e?`addEventListener`:`removeEventListener`;ne&&(o.value===document.documentElement?(document[t](`scroll`,l,{passive:!0}),document[t](`scrollend`,u)):(o.value?.[t](`scroll`,l,{passive:!0}),o.value?.[t](`scrollend`,u)))}de(()=>{o.value=pe(r.vnode.el,!0),e(!0)}),c(e)}),K(()=>{let r=g.value.map(e=>P(Me,{key:e.key,renderless:t.renderless,"onUpdate:height":t=>d(e.index,t)},{default:t=>n.default?.({item:e.raw,index:e.index,...t})}));return t.renderless?e(D,null,[e(`div`,{ref:s,class:`v-virtual-scroll__spacer`,style:{paddingTop:Q(p.value)}},null),r,e(`div`,{class:`v-virtual-scroll__spacer`,style:{paddingBottom:Q(m.value)}},null)]):e(`div`,{ref:o,class:y([`v-virtual-scroll`,t.class]),onScrollPassive:l,onScrollend:u,style:Ce([i.value,t.style])},[e(`div`,{ref:s,class:`v-virtual-scroll__container`,style:{paddingTop:Q(p.value),paddingBottom:Q(m.value)}},[r])])}),{calculateVisibleItems:a,scrollToIndex:f}}});function Ve(e,t,n){return function(r){return!r.relatedTarget&&document.activeElement===document.body&&e.value?(requestAnimationFrame(()=>{if(!e.value)return;let r=t();((r&&C(r)[0])??n())?.focus({preventScroll:!0})}),!0):!1}}function He(e,t){let n=V(!1),r;function i(e){cancelAnimationFrame(r),n.value=!0,r=requestAnimationFrame(()=>{r=requestAnimationFrame(()=>{n.value=!1})})}async function a(){await new Promise(e=>requestAnimationFrame(e)),await new Promise(e=>requestAnimationFrame(e)),await new Promise(e=>requestAnimationFrame(e)),await new Promise(e=>{if(n.value){let t=Z(n,()=>{t(),e()})}else e()})}async function o(n){if(n.key===`Tab`&&t.value?.focus(),![`PageDown`,`PageUp`,`Home`,`End`].includes(n.key))return;let r=e.value?.$el;if(!r)return;(n.key===`Home`||n.key===`End`)&&r.scrollTo({top:n.key===`Home`?0:r.scrollHeight,behavior:`smooth`}),await a();let i=r.querySelectorAll(`:scope > :not(.v-virtual-scroll__spacer)`);if(n.key===`PageDown`||n.key===`Home`){let e=r.getBoundingClientRect().top;for(let t of i)if(t.getBoundingClientRect().top>=e){t.focus();break}}else{let e=r.getBoundingClientRect().bottom;for(let t of[...i].reverse())if(t.getBoundingClientRect().bottom<=e){t.focus();break}}}return{onScrollPassive:i,onKeydown:o}}function Ue({groups:e,onLeave:t}){function n(e){return e.type===`list`?e.contentRef.value?.$el:e.contentRef.value}function r(e){let t=n(e);return t?C(t):[]}function i(n){let i=n.target,o=n.shiftKey?`backward`:`forward`,s=e.map(r),c=e.map(e=>e.type===`list`?e.contentRef.value?.$el:e.contentRef.value).findIndex(e=>e?.contains(i)),u=a(s,c,o,i);if(u===null){let r=e[c],i=s[c];(r.type===`list`||(o===`forward`?i.at(-1)===n.target:i.at(0)===n.target))&&t()}else{n.preventDefault(),n.stopImmediatePropagation();let t=e[u];if(t.type===`list`&&l(t.displayItemsCount)>0)t.contentRef.value?.focus(0);else{let e=o===`forward`;s[u].at(e?0:-1).focus()}}}function a(t,n,r,i){let a=e[n],o=t[n];if(a.type!==`list`&&!(r===`forward`?o.at(-1)===i:o.at(0)===i))return null;let s=r===`forward`?1:-1;for(let r=n+s;r>=0&&r0||n.type===`list`&&l(n.displayItemsCount)>0)return r}return null}return{onTabKeydown:i}}var We=(e,t,n)=>{if(e==null||t==null)return-1;if(!t.length)return 0;e=e.toString().toLocaleLowerCase(),t=t.toString().toLocaleLowerCase();let r=[],i=e.indexOf(t);for(;~i;)r.push([i,i+t.length]),i=e.indexOf(t,i+t.length);return r.length?r:-1};function Ge(e,t){if(!(e==null||typeof e==`boolean`||e===-1))return typeof e==`number`?[[e,e+t.length]]:Array.isArray(e[0])?e:[e]}var Ke=z({customFilter:Function,customKeyFilter:Object,filterKeys:[Array,String],filterMode:{type:String,default:`intersection`},noFilter:Boolean},`filter`);function qe(e,t,n){let r=[],a=n?.default??We,o=n?.filterKeys?i(n.filterKeys):!1,c=Object.keys(n?.customKeyFilter??{}).length;if(!e?.length)return r;let l=[];loop:for(let u=0;u0)&&!n?.noFilter){let e=!1;if(typeof d==`object`){if(d.type===`divider`||d.type===`subheader`){(l.at(-1)?.type!==`divider`||d.type!==`subheader`)&&(l=[]),l.push({index:u,matches:{},type:d.type});continue}let r=o||Object.keys(f);e=r.length===c;for(let e of r){let r=s(f,e),i=n?.customKeyFilter?.[e];if(h=i?i(r,t,d):a(r,t,d),h!==-1&&h!==!1)i?p[e]=Ge(h,t):m[e]=Ge(h,t);else if(n?.filterMode===`every`)continue loop}}else h=a(d,t,d),h!==-1&&h!==!1&&(m.title=Ge(h,t));let r=Object.keys(m).length,i=Object.keys(p).length;if(!r&&!i||n?.filterMode===`union`&&i!==c&&!r||n?.filterMode===`intersection`&&(i!==c||!r&&c>0&&!e))continue}l.length&&(r.push(...l),l=[]),r.push({index:u,matches:{...m,...p}})}return r}function Je(e,t,n,r){let i=V([]),a=V(new Map),o=_(()=>r?.transform?f(t).map(e=>[e,r.transform(e)]):f(t));x(()=>{let s=typeof n==`function`?n():f(n),c=typeof s!=`string`&&typeof s!=`number`?``:String(s),l=qe(o.value,c,{customKeyFilter:{...e.customKeyFilter,...f(r?.customKeyFilter)},default:e.customFilter,filterKeys:e.filterKeys,filterMode:e.filterMode,noFilter:e.noFilter}),u=f(t),d=[],p=new Map;l.forEach(({index:e,matches:t})=>{let n=u[e];d.push(n),p.set(n.value,t)}),i.value=d,a.value=p});function s(e){return a.value.get(e.value)}return{filteredItems:i,filteredMatches:a,getMatches:s}}function Ye(t,n,r){return r==null||!r.length?n:r.map((i,a)=>{let o=a===0?0:r[a-1][1],s=[e(`span`,{class:y(`${t}__unmask`)},[n.slice(o,i[0])]),e(`span`,{class:y(`${t}__mask`)},[n.slice(i[0],i[1])])];return a===r.length-1&&s.push(e(`span`,{class:y(`${t}__unmask`)},[n.slice(i[1])])),e(D,null,[s])})}var Xe=z({closeText:{type:String,default:`$vuetify.close`},openText:{type:String,default:`$vuetify.open`}},`autocomplete`);function Ze(e,t){let n=ie(),r=_(()=>`menu-${n}`);return{menuId:r,ariaExpanded:h(()=>l(t)),ariaControls:h(()=>r.value)}}var Qe=z({chips:Boolean,closableChips:Boolean,eager:Boolean,hideNoData:Boolean,hideSelected:Boolean,listProps:{type:Object},menu:Boolean,menuElevation:[Number,String],menuIcon:{type:q,default:`$dropdown`},menuProps:{type:Object},multiple:Boolean,noDataText:{type:String,default:`$vuetify.noDataText`},openOnClear:Boolean,itemColor:String,noAutoScroll:Boolean,...Xe(),...S({itemChildren:!1})},`Select`),$e=z({search:String,...Ke({filterKeys:[`title`]}),...Qe(),...v(G({modelValue:null,role:`combobox`}),[`validationValue`,`dirty`]),...ye({transition:{component:r}})},`VSelect`),et=I()({name:`VSelect`,props:$e(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:menu":e=>!0,"update:search":e=>!0},setup(r,{slots:a}){let{t:s}=k(),c=n(),l=n(),u=n(),f=n(),v=n(),{items:y,transformIn:x,transformOut:S}=o(r),C=t(r,`search`,``),{filteredItems:w,getMatches:te}=Je(r,y,()=>C.value),T=t(r,`modelValue`,[],e=>x(e===null?[null]:i(e)),e=>{let t=S(e);return r.multiple?t:t[0]??null}),re=_(()=>typeof r.counterValue==`function`?r.counterValue(T.value):typeof r.counterValue==`number`?r.counterValue:T.value.length),O=he(r),ie=M(r),F=_(()=>T.value.map(e=>e.value)),I=V(!1),L=h(()=>r.closableChips&&!O.isReadonly.value&&!O.isDisabled.value),{InputIcon:ae}=ue(r),R=``,z=0,oe,B=_(()=>{let e=C.value?w.value:y.value;return r.hideSelected?e.filter(e=>!T.value.some(t=>(r.valueComparator||N)(t,e))):e}),H=_(()=>r.hideNoData&&!B.value.length||O.isReadonly.value||O.isDisabled.value),W=t(r,`menu`),G=_({get:()=>W.value,set:e=>{W.value&&!e&&l.value?.ΨopenChildren.size||e&&H.value||(W.value=e)}}),{menuId:de,ariaExpanded:fe,ariaControls:pe}=Ze(r,G),q=_(()=>({...r.menuProps,activatorProps:{...r.menuProps?.activatorProps||{},"aria-haspopup":`listbox`}})),J=n(),_e=He(J,c),Y=Ve(G,()=>l.value?.contentEl,()=>c.value?.controlRef),{onTabKeydown:ye}=Ue({groups:[{type:`element`,contentRef:u},{type:`list`,contentRef:J,displayItemsCount:()=>B.value.length},{type:`element`,contentRef:f}],onLeave:()=>{G.value=!1,c.value?.focus()}});function X(e){r.openOnClear&&(G.value=!0)}function xe(){H.value||(G.value=!G.value)}function Se(e){e.key===`Tab`&&ye(e),J.value?.$el.contains(e.target)&&j(e)&&Q(e)}function Q(e){if(!e.key||O.isReadonly.value)return;if([`Enter`,` `,`ArrowDown`,`ArrowUp`,`Home`,`End`].includes(e.key)&&e.preventDefault(),[`Enter`,`ArrowDown`,` `].includes(e.key)&&(G.value=!0),[`Escape`,`Tab`].includes(e.key)&&(G.value=!1),r.clearable&&e.key===`Backspace`){e.preventDefault(),T.value=[],X(e);return}if(e.key===`Home`?J.value?.focus(`first`):e.key===`End`&&J.value?.focus(`last`),!j(e))return;let t=performance.now();t-oe>1e3&&(R=``,z=0),R+=e.key.toLowerCase(),oe=t;let n=B.value;function i(){let t=a();return t||R.at(-1)===R.at(-2)&&(R=R.slice(0,-1),z++,t=a(),t)||(z=0,t=a(),t)?t:(R=e.key.toLowerCase(),a())}function a(){for(let e=z;e(r.valueComparator||N)(t.value,e.value)),i=t??!~n;if(~n){let t=i?[...T.value,e]:[...T.value];t.splice(n,1),T.value=t}else i&&(T.value=[...T.value,e])}else T.value=t===!1?[]:[e],ge(()=>{G.value=!1})}function Ce(e){let t=e.target;c.value?.$el.contains(t)||(G.value=!1)}function we(){return B.value.findIndex(e=>T.value.some(t=>(r.valueComparator||N)(t.value,e.value)))}function Te(){if(!T.value.length)return-1;let e=r.valueComparator||N,t=0;for(let n of B.value){if(T.value.some(t=>e(t.value,n.value)))return n.props.disabled?-1:t;n.props.disabled||t++}return-1}function De(){if(r.eager&&v.value?.calculateVisibleItems(),J.value&&I.value){let e=Te();J.value.focus(e>=0?e:`first`,{focusVisible:!1})}}function ke(){C.value=``,I.value&&c.value?.focus()}function je(e){I.value=!0}function Me(e){if(!c.value?.$el.contains(e.relatedTarget)&&!e.currentTarget.contains(e.relatedTarget)){if(Y(e))return;I.value=!1}}function Ne(e){if(e==null)T.value=[];else if(d(c.value,`:autofill`)||d(c.value,`:-webkit-autofill`)){let t=y.value.find(t=>t.title===e);t&&$(t)}else c.value&&(c.value.value=``)}return Z(G,()=>{if(!r.hideSelected&&G.value&&T.value.length){let e=we();ne&&!r.noAutoScroll&&window.requestAnimationFrame(()=>{e>=0&&v.value?.scrollToIndex(e)})}}),Z(y,(e,t)=>{G.value||I.value&&r.hideNoData&&!t.length&&e.length&&(G.value=!0)}),K(()=>{let t=!!(r.chips||a.chip),n=!!(!r.hideNoData||B.value.length||a[`prepend-item`]||a[`append-item`]||a[`no-data`]),i=T.value.length>0,o=me.filterProps(r),d=i||!I.value&&r.label&&!r.persistentPlaceholder?void 0:r.placeholder,h={search:C,filteredItems:w.value};return P(me,U({ref:c},o,{modelValue:T.value.map(e=>e.props.title).join(`, `),name:void 0,"onUpdate:modelValue":Ne,focused:I.value,"onUpdate:focused":e=>I.value=e,validationValue:T.externalValue,counterValue:re.value,dirty:i,class:[`v-select`,{"v-select--active-menu":G.value,"v-select--chips":!!r.chips,[`v-select--${r.multiple?`multiple`:`single`}`]:!0,"v-select--selected":T.value.length,"v-select--selection-slot":!!a.selection},r.class],style:r.style,inputmode:`none`,placeholder:d,"onClick:clear":X,"onMousedown:control":xe,onBlur:Ce,onKeydown:Q,"aria-expanded":fe.value,"aria-controls":pe.value}),{...a,default:({id:i})=>e(D,null,[e(`select`,{hidden:!0,multiple:r.multiple,name:ie.fieldName.value},[y.value.map(t=>e(`option`,{key:t.value,value:t.value,selected:F.value.includes(t.value)},null))]),P(A,U({id:de.value,ref:l,modelValue:G.value,"onUpdate:modelValue":e=>G.value=e,activator:`parent`,disabled:H.value,eager:r.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:r.transition,onAfterEnter:De,onAfterLeave:ke},q.value,{contentClass:[`v-select__content`,q.value.contentClass]}),{default:()=>[P(Ae,{elevation:r.menuElevation,onFocusin:je,onFocusout:Me,onKeydown:Se},{default:()=>[a[`menu-header`]&&e(`header`,{ref:u},[a[`menu-header`](h)]),n&&P(be,U({key:`select-list`,ref:J,selected:F.value,selectStrategy:r.multiple?`independent`:`single-independent`,tabindex:`-1`,selectable:!!B.value.length,"aria-live":`polite`,"aria-labelledby":`${i.value}-label`,"aria-multiselectable":r.multiple,color:r.itemColor??r.color},_e,r.listProps),{default:()=>[a[`prepend-item`]?.(),!B.value.length&&!r.hideNoData&&(a[`no-data`]?.()??P(le,{key:`no-data`,title:s(r.noDataText)},null)),P(Be,{ref:v,renderless:!0,items:B.value,itemKey:`value`},{default:({item:t,index:n,itemRef:i})=>{let o=se(t.props),s=U(t.props,{ref:i,key:t.value,onClick:()=>$(t,null),"aria-posinset":n+1,"aria-setsize":B.value.length});return t.type===`divider`?a.divider?.({props:t.raw,index:n})??P(m,U(t.props,{key:`divider-${n}`}),null):t.type===`subheader`?a.subheader?.({props:t.raw,index:n})??P(g,U(t.props,{key:`subheader-${n}`}),null):a.item?.({item:t.raw,internalItem:t,index:n,props:s})??P(le,U(s,{role:`option`}),{prepend:({isSelected:n})=>e(D,null,[r.multiple&&!r.hideSelected?P(Oe,{key:t.value,modelValue:n,ripple:!1,tabindex:`-1`,"aria-hidden":!0,onClick:e=>e.preventDefault()},null):void 0,o.prependAvatar&&P(p,{image:o.prependAvatar},null),o.prependIcon&&P(E,{icon:o.prependIcon},null)]),title:()=>C.value?Ye(`v-select`,t.title,te(t)?.title):t.title})}}),a[`append-item`]?.()]}),a[`menu-footer`]&&e(`footer`,{ref:f},[a[`menu-footer`](h)])]})]}),T.value.map((n,i)=>{function o(e){e.stopPropagation(),e.preventDefault(),$(n,!1)}let s=U(Ee.filterProps(n.props),{"onClick:close":o,onKeydown(e){e.key!==`Enter`&&e.key!==` `||(e.preventDefault(),e.stopPropagation(),o(e))},onMousedown(e){e.preventDefault(),e.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0}),c=t?!!a.chip:!!a.selection,l=c?b(t?a.chip({item:n.raw,internalItem:n,index:i,props:s}):a.selection({item:n.raw,internalItem:n,index:i})):void 0;if(!(c&&!l))return e(`div`,{key:n.value,class:`v-select__selection`},[t?a.chip?P(ee,{key:`chip-defaults`,defaults:{VChip:{closable:L.value,size:`small`,text:n.title}}},{default:()=>[l]}):P(Ee,U({key:`chip`,closable:L.value,size:`small`,text:n.title,disabled:n.props.disabled},s),null):l??e(`span`,{class:`v-select__selection-text`},[n.title,r.multiple&&ie(D,null,[a[`append-inner`]?.(...t),r.menuIcon?P(E,{class:`v-select__menu-icon`,color:c.value?.fieldIconColor,icon:r.menuIcon,"aria-hidden":!0},null):void 0,r.appendInnerIcon&&P(ae,{key:`append-icon`,name:`appendInner`,color:t[0].iconColor.value},null)])})}),ve({isFocused:I,menu:G,search:C,filteredItems:w,select:$},c)}});export{Ke as a,He as c,Ae as d,Oe as f,Ye as i,Ve as l,Qe as n,Je as o,De as p,Ze as r,Ue as s,et as t,Be as u}; \ No newline at end of file diff --git a/web/app/assets/VSpacer-Cl6Zcy_X.js b/web/app/assets/VSpacer-Cl6Zcy_X.js new file mode 100644 index 00000000..440a026d --- /dev/null +++ b/web/app/assets/VSpacer-Cl6Zcy_X.js @@ -0,0 +1 @@ +import{on as e}from"./index-C_dP75wD.js";var t=e(`v-spacer`,`div`,`VSpacer`);export{t}; \ No newline at end of file diff --git a/web/app/assets/VSwitch-5b3JXWIr.js b/web/app/assets/VSwitch-5b3JXWIr.js new file mode 100644 index 00000000..1fb9b2aa --- /dev/null +++ b/web/app/assets/VSwitch-5b3JXWIr.js @@ -0,0 +1 @@ +import{$n as e,$t as t,Ar as n,G as r,Nr as i,Rr as a,Tt as o,Un as s,X as c,Xn as l,Y as u,ar as d,br as f,cn as p,fn as m,kt as h,lr as g,nn as _,o as v,p as y,q as b,s as x,v as S,wn as C,zr as w}from"./index-C_dP75wD.js";import{n as T,r as E}from"./VContainer-DGQjsCTw.js";var D=m({indeterminate:Boolean,inset:Boolean,flat:Boolean,loading:{type:[Boolean,String],default:!1},...x(),...E()},`VSwitch`),O=p()({name:`VSwitch`,inheritAttrs:!1,props:D(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:indeterminate":e=>!0},setup(p,{attrs:m,slots:x}){let E=t(p,`indeterminate`),D=t(p,`modelValue`),{loaderClasses:O}=b(p),{isFocused:k,focus:A,blur:j}=y(p),M=n(),N=n(),P=s&&window.matchMedia(`(forced-colors: active)`).matches,F=i(()=>typeof p.loading==`string`&&p.loading!==``?p.loading:p.color),I=f(),L=i(()=>p.id||`switch-${I}`);function R(){E.value&&=!1}function z(e){e.stopPropagation(),e.preventDefault(),M.value?.input?.click()}return _(()=>{let[t,n]=C(m),i=v.filterProps(p),s=T.filterProps(p);return d(v,g({ref:N,class:[`v-switch`,{"v-switch--flat":p.flat},{"v-switch--inset":p.inset},{"v-switch--indeterminate":E.value},O.value,p.class]},t,i,{modelValue:D.value,"onUpdate:modelValue":e=>D.value=e,id:L.value,focused:k.value,style:p.style}),{...x,default:({id:t,messagesId:i,isDisabled:f,isReadonly:m,isValid:_})=>{let v={model:D,isValid:_};return d(T,g({ref:M},s,{modelValue:D.value,"onUpdate:modelValue":[e=>D.value=e,R],id:t.value,"aria-describedby":i.value,type:`checkbox`,"aria-checked":E.value?`mixed`:void 0,disabled:f.value,readonly:m.value,onFocus:A,onBlur:j},n),{...x,default:({backgroundColorClasses:t,backgroundColorStyles:n})=>e(`div`,{class:a([`v-switch__track`,P?void 0:t.value]),style:w(n.value),onClick:z},[x[`track-true`]&&e(`div`,{key:`prepend`,class:`v-switch__track-true`},[x[`track-true`](v)]),x[`track-false`]&&e(`div`,{key:`append`,class:`v-switch__track-false`},[x[`track-false`](v)])]),input:({inputNode:t,icon:n,backgroundColorClasses:i,backgroundColorStyles:s})=>e(l,null,[t,e(`div`,{class:a([`v-switch__thumb`,{"v-switch__thumb--filled":n||p.loading},p.inset||P?void 0:i.value]),style:w(p.inset?void 0:s.value)},[x.thumb?d(o,{defaults:{VIcon:{icon:n,size:`x-small`}}},{default:()=>[x.thumb({...v,icon:n})]}):d(h,null,{default:()=>[p.loading?d(r,{name:`v-switch`,active:!0,color:_.value===!1?void 0:F.value},{default:e=>x.loader?x.loader(e):d(u,{active:e.isActive,color:e.color,indeterminate:!0,size:`16`,width:`2`},null)}):n&&d(c,{key:String(n),icon:n,size:`x-small`},null)]})])])})}})}),S({},N)}});export{O as t}; \ No newline at end of file diff --git a/web/app/assets/VTextarea-Bxfo_kiv.js b/web/app/assets/VTextarea-Bxfo_kiv.js new file mode 100644 index 00000000..e2e38f23 --- /dev/null +++ b/web/app/assets/VTextarea-Bxfo_kiv.js @@ -0,0 +1 @@ +import{$n as e,$t as t,Ar as n,Kn as r,Qn as i,Rn as a,Rr as o,Sr as s,Xn as c,Xt as l,a as u,ar as d,cn as f,d as p,dr as m,f as h,fn as g,g as _,gt as v,hn as ee,i as y,jr as b,lr as x,nn as S,o as C,p as w,pr as T,r as E,s as D,ur as O,v as te,vn as k,wn as A,wr as j,xr as M,yn as N}from"./index-C_dP75wD.js";var P=g({autoGrow:Boolean,autofocus:Boolean,counter:[Boolean,Number,String],counterValue:Function,prefix:String,placeholder:String,persistentPlaceholder:Boolean,persistentCounter:Boolean,noResize:Boolean,rows:{type:[Number,String],default:5,validator:e=>!isNaN(parseFloat(e))},maxHeight:{type:[Number,String],validator:e=>!isNaN(parseFloat(e))},maxRows:{type:[Number,String],validator:e=>!isNaN(parseFloat(e))},suffix:String,modelModifiers:Object,...y(),...a(D(),[`direction`]),...h()},`VTextarea`),F=f()({name:`VTextarea`,directives:{vIntersect:v},inheritAttrs:!1,props:P(),emits:{"click:control":e=>!0,"mousedown:control":e=>!0,"update:focused":e=>!0,"update:modelValue":e=>!0,"update:rows":e=>!0},setup(a,{attrs:f,emit:h,slots:g}){let y=t(a,`modelValue`),{isFocused:D,focus:P,blur:F}=w(a),{onIntersect:I}=E(a),L=i(()=>typeof a.counterValue==`function`?a.counterValue(y.value):(y.value||``).toString().length),R=i(()=>{if(f.maxlength)return f.maxlength;if(!(!a.counter||typeof a.counter!=`number`&&typeof a.counter!=`string`))return a.counter}),z=n(),B=n(),V=b(``),H=n(),U=n(0),{platform:W}=l(),G=u(a),K=i(()=>a.persistentPlaceholder||D.value||a.active);function q(){G.isSuppressing.value&&G.update(),H.value!==document.activeElement&&H.value?.focus(),D.value||P()}function J(e){q(),h(`click:control`,e)}function ne(e){h(`mousedown:control`,e)}function re(e){e.stopPropagation(),q(),O(()=>{y.value=``,ee(a[`onClick:clear`],e)})}function ie(e){let t=e.target;if(!a.modelModifiers?.trim){y.value=t.value;return}let n=t.value,r=t.selectionStart,i=t.selectionEnd;y.value=n,O(()=>{let e=0;n.trimStart().length===t.value.length&&(e=n.length-t.value.length),r!=null&&(t.selectionStart=r-e),i!=null&&(t.selectionEnd=i-e)})}let Y=n(),X=n(Number(a.rows)),Z=i(()=>[`plain`,`underlined`].includes(a.variant));s(()=>{a.autoGrow||(X.value=Number(a.rows))});function Q(){O(()=>{if(!H.value)return;if(W.value.firefox){U.value=12;return}let{offsetWidth:e,clientWidth:t}=H.value;U.value=Math.max(0,e-t)}),a.autoGrow&&O(()=>{if(!Y.value||!B.value)return;let e=getComputedStyle(Y.value),t=getComputedStyle(B.value.$el),n=parseFloat(e.getPropertyValue(`--v-field-padding-top`))+parseFloat(e.getPropertyValue(`--v-input-padding-top`))+parseFloat(e.getPropertyValue(`--v-field-padding-bottom`)),r=Y.value.scrollHeight,i=parseFloat(e.lineHeight),o=Math.max(parseFloat(a.rows)*i+n,parseFloat(t.getPropertyValue(`--v-input-control-height`))),s=a.maxHeight?parseFloat(a.maxHeight):parseFloat(a.maxRows)*i+n||1/0,c=k(r??0,o,s);X.value=Math.floor((c-n)/i),V.value=N(c)})}T(Q),M(y,Q),M(()=>a.rows,Q),M(()=>a.maxHeight,Q),M(()=>a.maxRows,Q),M(()=>a.density,Q),M(X,e=>{h(`update:rows`,e)});let $;return M(Y,e=>{e?($=new ResizeObserver(Q),$.observe(Y.value)):$?.disconnect()}),m(()=>{$?.disconnect()}),S(()=>{let t=!!(g.counter||a.counter||a.counterValue),n=!!(t||g.details),[i,s]=A(f),{modelValue:l,...u}=C.filterProps(a),m={...p.filterProps(a),"onClick:clear":re};return d(C,x({ref:z,modelValue:y.value,"onUpdate:modelValue":e=>y.value=e,class:[`v-textarea v-text-field`,{"v-textarea--prefixed":a.prefix,"v-textarea--suffixed":a.suffix,"v-text-field--prefixed":a.prefix,"v-text-field--suffixed":a.suffix,"v-textarea--auto-grow":a.autoGrow,"v-textarea--no-resize":a.noResize||a.autoGrow,"v-input--plain-underlined":Z.value},a.class],style:[{"--v-textarea-max-height":a.maxHeight?N(a.maxHeight):void 0,"--v-textarea-scroll-bar-width":N(U.value)},a.style]},i,u,{centerAffix:X.value===1&&!Z.value,focused:D.value,indentDetails:a.indentDetails??!Z.value}),{...g,default:({id:t,isDisabled:n,isDirty:i,isReadonly:l,isValid:u,hasDetails:f})=>d(p,x({ref:B,style:{"--v-textarea-control-height":V.value},onClick:J,onMousedown:ne,"onClick:prependInner":a[`onClick:prependInner`],"onClick:appendInner":a[`onClick:appendInner`]},m,{id:t.value,active:K.value||i.value,labelId:`${t.value}-label`,centerAffix:X.value===1&&!Z.value,dirty:i.value||a.dirty,disabled:n.value,focused:D.value,details:f.value,error:u.value===!1}),{...g,default:({props:{class:i,...u},controlRef:d})=>e(c,null,[a.prefix&&e(`span`,{class:`v-text-field__prefix`},[a.prefix]),j(e(`textarea`,x({ref:e=>H.value=d.value=e,class:i,value:y.value,onInput:ie,autofocus:a.autofocus,readonly:l.value,disabled:n.value,placeholder:a.placeholder,rows:a.rows,name:G.fieldName.value,autocomplete:G.fieldAutocomplete.value,onFocus:q,onBlur:F,"aria-labelledby":`${t.value}-label`},u,s),null),[[v,{handler:I},null,{once:!0}]]),a.autoGrow&&j(e(`textarea`,{class:o([i,`v-textarea__sizer`]),id:`${u.id}-sizer`,"onUpdate:modelValue":e=>y.value=e,ref:Y,readonly:!0,"aria-hidden":`true`},null),[[r,y.value]]),a.suffix&&e(`span`,{class:`v-text-field__suffix`},[a.suffix])])}),details:n?n=>e(c,null,[g.details?.(n),t&&e(c,null,[e(`span`,null,null),d(_,{active:a.persistentCounter||D.value,value:L.value,max:R.value,disabled:a.disabled},g.counter)])]):void 0})}),te({},z,B,H)}});export{F as t}; \ No newline at end of file diff --git a/web/app/assets/apiError-BgZlS-MZ.js b/web/app/assets/apiError-BgZlS-MZ.js new file mode 100644 index 00000000..c05694cf --- /dev/null +++ b/web/app/assets/apiError-BgZlS-MZ.js @@ -0,0 +1 @@ +import{Ft as e}from"./index-C_dP75wD.js";function t(t,n){if(t instanceof e){let e=t.detail??t.message;return typeof e==`string`?e:Array.isArray(e)?e.map(e=>e?.msg||JSON.stringify(e)).join(`; `):e&&typeof e==`object`?JSON.stringify(e):t.message||n}return t instanceof Error&&t.message||n}export{t}; \ No newline at end of file diff --git a/web/app/assets/index-C_dP75wD.js b/web/app/assets/index-C_dP75wD.js new file mode 100644 index 00000000..c812a9da --- /dev/null +++ b/web/app/assets/index-C_dP75wD.js @@ -0,0 +1,15 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DashboardPage-CUPD9pH7.js","assets/_plugin-vue_export-helper-BDNMzG2s.js","assets/VChip-oig-b64O.js","assets/VChip-DNKJRTa0.css","assets/VDataTableServer-BMEL-4WM.js","assets/VDataTable-RUszusjq.js","assets/VSelect-V_uWG8_q.js","assets/VContainer-DGQjsCTw.js","assets/VContainer-IzsWbU8Q.css","assets/VSelect-ALpjlDrA.css","assets/VDataTable-DlpDfCoY.css","assets/VRow-MZyk7N4E.js","assets/VRow-DIr3-SqU.css","assets/StatCardsRow-C1WUuCdM.js","assets/StatCardsRow-DyK28H-z.css","assets/auditNormalize-BHJPJFP9.js","assets/DashboardPage-v46LnfLM.css","assets/ServersPage-6zeh5KJx.js","assets/VAlert-CNuOH9h_.js","assets/VAlert-B33BooF0.css","assets/VDialog-CnSngTCg.js","assets/VDialog-DP-kc9Gx.css","assets/VFileInput-FSrwyXa8.js","assets/VFileInput-BqbgVHjZ.css","assets/VSpacer-Cl6Zcy_X.js","assets/VSpacer-DfbUir7X.css","assets/VTextarea-Bxfo_kiv.js","assets/VTextarea-DDl63AeD.css","assets/apiError-BgZlS-MZ.js","assets/validation-DMwOxx4a.js","assets/ServersPage-DekSFWtA.css","assets/TerminalPage-CWBSa0uQ.js","assets/useTerminalQuickCommands-CK2x9Goo.js","assets/useTerminalQuickCommands--q0R-DyO.css","assets/wsUrl-CqmqkTTE.js","assets/TerminalPage-C5acvP05.css","assets/FilesPage-DHKaHWZF.js","assets/editor.api2-CLbMfXfG.js","assets/editor-DX2BVZF3.css","assets/workers-DM14Vrt9.js","assets/monaco.contribution-Cd7B4rFL.js","assets/VCheckbox-yHF3vS12.js","assets/VCheckbox-ChRKi1kj.css","assets/useServerList-DS-TV_aM.js","assets/FilesPage-Cy80IqJy.css","assets/PushPage-CPXCI12O.js","assets/PushPage-C9f4tbih.css","assets/ScriptsPage-CknVO2RI.js","assets/CredentialsPage-C5c3D-5B.js","assets/SchedulesPage-CxS2y1OK.js","assets/VSwitch-5b3JXWIr.js","assets/VSwitch-DPhHiAlh.css","assets/RetriesPage-CaygSdmM.js","assets/CommandsPage-CA2YnvK1.js","assets/AlertsPage-BgMCTUIE.js","assets/AuditPage-7j50ERAw.js","assets/SettingsPage-BNhfSvbM.js","assets/LoginPage-Cau2AFzJ.js","assets/LoginPage-CnG6rjqR.css"])))=>i.map(i=>d[i]); +(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();function e(e){let t=Object.create(null);for(let n of e.split(`,`))t[n]=1;return e=>e in t}var t={},n=[],r=()=>{},i=()=>!1,a=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),o=e=>e.startsWith(`onUpdate:`),s=Object.assign,c=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},l=Object.prototype.hasOwnProperty,u=(e,t)=>l.call(e,t),d=Array.isArray,f=e=>x(e)===`[object Map]`,p=e=>x(e)===`[object Set]`,m=e=>x(e)===`[object Date]`,h=e=>typeof e==`function`,g=e=>typeof e==`string`,_=e=>typeof e==`symbol`,v=e=>typeof e==`object`&&!!e,y=e=>(v(e)||h(e))&&h(e.then)&&h(e.catch),b=Object.prototype.toString,x=e=>b.call(e),S=e=>x(e).slice(8,-1),C=e=>x(e)===`[object Object]`,w=e=>g(e)&&e!==`NaN`&&e[0]!==`-`&&``+parseInt(e,10)===e,T=e(`,key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted`),E=e=>{let t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},ee=/-\w/g,D=E(e=>e.replace(ee,e=>e.slice(1).toUpperCase())),te=/\B([A-Z])/g,ne=E(e=>e.replace(te,`-$1`).toLowerCase()),re=E(e=>e.charAt(0).toUpperCase()+e.slice(1)),ie=E(e=>e?`on${re(e)}`:``),ae=(e,t)=>!Object.is(e,t),oe=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},ce=e=>{let t=parseFloat(e);return isNaN(t)?e:t},le=e=>{let t=g(e)?Number(e):NaN;return isNaN(t)?e:t},ue,de=()=>ue||=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:{};function O(e){if(d(e)){let t={};for(let n=0;n{if(e){let n=e.split(pe);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function k(e){let t=``;if(g(e))t=e;else if(d(e))for(let n=0;n!!(e&&e.__v_isRef===!0),Se=e=>g(e)?e:e==null?``:d(e)||v(e)&&(e.toString===b||!h(e.toString))?xe(e)?Se(e.value):JSON.stringify(e,Ce,2):String(e),Ce=(e,t)=>xe(t)?Ce(e,t.value):f(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[we(t,r)+` =>`]=n,e),{})}:p(t)?{[`Set(${t.size})`]:[...t.values()].map(e=>we(e))}:_(t)?we(t):v(t)&&!d(t)&&!C(t)?String(t):t,we=(e,t=``)=>_(e)?`Symbol(${e.description??t})`:e,Te,Ee=class{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!e&&Te&&(Te.active?(this.parent=Te,this.index=(Te.scopes||=[]).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,t;if(this.scopes)for(e=0,t=this.scopes.length;e0&&--this._on===0){if(Te===this)Te=this.prevScope;else{let e=Te;for(;e;){if(e.prevScope===this){e.prevScope=this.prevScope;break}e=e.prevScope}}this.prevScope=void 0}}stop(e){if(this._active){this._active=!1;let t,n;for(t=0,n=this.effects.length;t0)return;if(Pe){let e=Pe;for(Pe=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}let e;for(;Ne;){let t=Ne;for(Ne=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(t){e||=t}t=n}}if(e)throw e}function Re(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function ze(e){let t,n=e.depsTail,r=n;for(;r;){let e=r.prevDep;r.version===-1?(r===n&&(n=e),He(r),Ue(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function Be(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Ve(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Ve(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Ye)||(e.globalVersion=Ye,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Be(e))))return;e.flags|=2;let t=e.dep,n=A,r=We;A=e,We=!0;try{Re(e);let n=e.fn(e._value);(t.version===0||ae(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{A=n,We=r,ze(e),e.flags&=-3}}function He(e,t=!1){let{dep:n,prevSub:r,nextSub:i}=e;if(r&&(r.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)He(e,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Ue(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}var We=!0,Ge=[];function Ke(){Ge.push(We),We=!1}function qe(){let e=Ge.pop();We=e===void 0?!0:e}function Je(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=A;A=void 0;try{t()}finally{A=e}}}var Ye=0,Xe=class{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}},Ze=class{constructor(e){this.computed=e,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(e){if(!A||!We||A===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==A)t=this.activeLink=new Xe(A,this),A.deps?(t.prevDep=A.depsTail,A.depsTail.nextDep=t,A.depsTail=t):A.deps=A.depsTail=t,Qe(t);else if(t.version===-1&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=A.depsTail,t.nextDep=void 0,A.depsTail.nextDep=t,A.depsTail=t,A.deps===t&&(A.deps=e)}return t}trigger(e){this.version++,Ye++,this.notify(e)}notify(e){Ie();try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{Le()}}};function Qe(e){if(e.dep.sc++,e.sub.flags&4){let t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let e=t.deps;e;e=e.nextDep)Qe(e)}let n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}var $e=new WeakMap,et=Symbol(``),tt=Symbol(``),nt=Symbol(``);function rt(e,t,n){if(We&&A){let t=$e.get(e);t||$e.set(e,t=new Map);let r=t.get(n);r||(t.set(n,r=new Ze),r.map=t,r.key=n),r.track()}}function it(e,t,n,r,i,a){let o=$e.get(e);if(!o){Ye++;return}let s=e=>{e&&e.trigger()};if(Ie(),t===`clear`)o.forEach(s);else{let i=d(e),a=i&&w(n);if(i&&n===`length`){let e=Number(r);o.forEach((t,n)=>{(n===`length`||n===nt||!_(n)&&n>=e)&&s(t)})}else switch((n!==void 0||o.has(void 0))&&s(o.get(n)),a&&s(o.get(nt)),t){case`add`:i?a&&s(o.get(`length`)):(s(o.get(et)),f(e)&&s(o.get(tt)));break;case`delete`:i||(s(o.get(et)),f(e)&&s(o.get(tt)));break;case`set`:f(e)&&s(o.get(et));break}}Le()}function at(e,t){let n=$e.get(e);return n&&n.get(t)}function ot(e){let t=j(e);return t===e?t:(rt(t,`iterate`,nt),Gt(e)?t:t.map(Jt))}function st(e){return rt(e=j(e),`iterate`,nt),e}function ct(e,t){return Wt(e)?Yt(Ut(e)?Jt(t):t):Jt(t)}var lt={__proto__:null,[Symbol.iterator](){return ut(this,Symbol.iterator,e=>ct(this,e))},concat(...e){return ot(this).concat(...e.map(e=>d(e)?ot(e):e))},entries(){return ut(this,`entries`,e=>(e[1]=ct(this,e[1]),e))},every(e,t){return ft(this,`every`,e,t,void 0,arguments)},filter(e,t){return ft(this,`filter`,e,t,e=>e.map(e=>ct(this,e)),arguments)},find(e,t){return ft(this,`find`,e,t,e=>ct(this,e),arguments)},findIndex(e,t){return ft(this,`findIndex`,e,t,void 0,arguments)},findLast(e,t){return ft(this,`findLast`,e,t,e=>ct(this,e),arguments)},findLastIndex(e,t){return ft(this,`findLastIndex`,e,t,void 0,arguments)},forEach(e,t){return ft(this,`forEach`,e,t,void 0,arguments)},includes(...e){return mt(this,`includes`,e)},indexOf(...e){return mt(this,`indexOf`,e)},join(e){return ot(this).join(e)},lastIndexOf(...e){return mt(this,`lastIndexOf`,e)},map(e,t){return ft(this,`map`,e,t,void 0,arguments)},pop(){return ht(this,`pop`)},push(...e){return ht(this,`push`,e)},reduce(e,...t){return pt(this,`reduce`,e,t)},reduceRight(e,...t){return pt(this,`reduceRight`,e,t)},shift(){return ht(this,`shift`)},some(e,t){return ft(this,`some`,e,t,void 0,arguments)},splice(...e){return ht(this,`splice`,e)},toReversed(){return ot(this).toReversed()},toSorted(e){return ot(this).toSorted(e)},toSpliced(...e){return ot(this).toSpliced(...e)},unshift(...e){return ht(this,`unshift`,e)},values(){return ut(this,`values`,e=>ct(this,e))}};function ut(e,t,n){let r=st(e),i=r[t]();return r!==e&&!Gt(e)&&(i._next=i.next,i.next=()=>{let e=i._next();return e.done||(e.value=n(e.value)),e}),i}var dt=Array.prototype;function ft(e,t,n,r,i,a){let o=st(e),s=o!==e&&!Gt(e),c=o[t];if(c!==dt[t]){let t=c.apply(e,a);return s?Jt(t):t}let l=n;o!==e&&(s?l=function(t,r){return n.call(this,ct(e,t),r,e)}:n.length>2&&(l=function(t,r){return n.call(this,t,r,e)}));let u=c.call(o,l,r);return s&&i?i(u):u}function pt(e,t,n,r){let i=st(e),a=i!==e&&!Gt(e),o=n,s=!1;i!==e&&(a?(s=r.length===0,o=function(t,r,i){return s&&(s=!1,t=ct(e,t)),n.call(this,t,ct(e,r),i,e)}):n.length>3&&(o=function(t,r,i){return n.call(this,t,r,i,e)}));let c=i[t](o,...r);return s?ct(e,c):c}function mt(e,t,n){let r=j(e);rt(r,`iterate`,nt);let i=r[t](...n);return(i===-1||i===!1)&&Kt(n[0])?(n[0]=j(n[0]),r[t](...n)):i}function ht(e,t,n=[]){Ke(),Ie();let r=j(e)[t].apply(e,n);return Le(),qe(),r}var gt=e(`__proto__,__v_isRef,__isVue`),_t=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!==`arguments`&&e!==`caller`).map(e=>Symbol[e]).filter(_));function vt(e){_(e)||(e=String(e));let t=j(this);return rt(t,`has`,e),t.hasOwnProperty(e)}var yt=class{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if(t===`__v_skip`)return e.__v_skip;let r=this._isReadonly,i=this._isShallow;if(t===`__v_isReactive`)return!r;if(t===`__v_isReadonly`)return r;if(t===`__v_isShallow`)return i;if(t===`__v_raw`)return n===(r?i?Lt:It:i?Ft:Pt).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let a=d(e);if(!r){let e;if(a&&(e=lt[t]))return e;if(t===`hasOwnProperty`)return vt}let o=Reflect.get(e,t,M(e)?e:n);if((_(t)?_t.has(t):gt(t))||(r||rt(e,`get`,t),i))return o;if(M(o)){let e=a&&w(t)?o:o.value;return r&&v(e)?Vt(e):e}return v(o)?r?Vt(o):zt(o):o}},bt=class extends yt{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t],a=d(e)&&w(t);if(!this._isShallow){let e=Wt(i);if(!Gt(n)&&!Wt(n)&&(i=j(i),n=j(n)),!a&&M(i)&&!M(n))return e||(i.value=n),!0}let o=a?Number(t)e,Et=e=>Reflect.getPrototypeOf(e);function Dt(e,t,n){return function(...r){let i=this.__v_raw,a=j(i),o=f(a),c=e===`entries`||e===Symbol.iterator&&o,l=e===`keys`&&o,u=i[e](...r),d=n?Tt:t?Yt:Jt;return!t&&rt(a,`iterate`,l?tt:et),s(Object.create(u),{next(){let{value:e,done:t}=u.next();return t?{value:e,done:t}:{value:c?[d(e[0]),d(e[1])]:d(e),done:t}}})}}function Ot(e){return function(...t){return e===`delete`?!1:e===`clear`?void 0:this}}function kt(e,t){let n={get(n){let r=this.__v_raw,i=j(r),a=j(n);e||(ae(n,a)&&rt(i,`get`,n),rt(i,`get`,a));let{has:o}=Et(i),s=t?Tt:e?Yt:Jt;if(o.call(i,n))return s(r.get(n));if(o.call(i,a))return s(r.get(a));r!==i&&r.get(n)},get size(){let t=this.__v_raw;return!e&&rt(j(t),`iterate`,et),t.size},has(t){let n=this.__v_raw,r=j(n),i=j(t);return e||(ae(t,i)&&rt(r,`has`,t),rt(r,`has`,i)),t===i?n.has(t):n.has(t)||n.has(i)},forEach(n,r){let i=this,a=i.__v_raw,o=j(a),s=t?Tt:e?Yt:Jt;return!e&&rt(o,`iterate`,et),a.forEach((e,t)=>n.call(r,s(e),s(t),i))}};return s(n,e?{add:Ot(`add`),set:Ot(`set`),delete:Ot(`delete`),clear:Ot(`clear`)}:{add(e){let n=j(this),r=Et(n),i=j(e),a=!t&&!Gt(e)&&!Wt(e)?i:e;return r.has.call(n,a)||ae(e,a)&&r.has.call(n,e)||ae(i,a)&&r.has.call(n,i)||(n.add(a),it(n,`add`,a,a)),this},set(e,n){!t&&!Gt(n)&&!Wt(n)&&(n=j(n));let r=j(this),{has:i,get:a}=Et(r),o=i.call(r,e);o||=(e=j(e),i.call(r,e));let s=a.call(r,e);return r.set(e,n),o?ae(n,s)&&it(r,`set`,e,n,s):it(r,`add`,e,n),this},delete(e){let t=j(this),{has:n,get:r}=Et(t),i=n.call(t,e);i||=(e=j(e),n.call(t,e));let a=r?r.call(t,e):void 0,o=t.delete(e);return i&&it(t,`delete`,e,void 0,a),o},clear(){let e=j(this),t=e.size!==0,n=e.clear();return t&&it(e,`clear`,void 0,void 0,void 0),n}}),[`keys`,`values`,`entries`,Symbol.iterator].forEach(r=>{n[r]=Dt(r,e,t)}),n}function At(e,t){let n=kt(e,t);return(t,r,i)=>r===`__v_isReactive`?!e:r===`__v_isReadonly`?e:r===`__v_raw`?t:Reflect.get(u(n,r)&&r in t?n:t,r,i)}var jt={get:At(!1,!1)},Mt={get:At(!1,!0)},Nt={get:At(!0,!1)},Pt=new WeakMap,Ft=new WeakMap,It=new WeakMap,Lt=new WeakMap;function Rt(e){switch(e){case`Object`:case`Array`:return 1;case`Map`:case`Set`:case`WeakMap`:case`WeakSet`:return 2;default:return 0}}function zt(e){return Wt(e)?e:Ht(e,!1,St,jt,Pt)}function Bt(e){return Ht(e,!1,wt,Mt,Ft)}function Vt(e){return Ht(e,!0,Ct,Nt,It)}function Ht(e,t,n,r,i){if(!v(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;let a=i.get(e);if(a)return a;let o=Rt(S(e));if(o===0)return e;let s=new Proxy(e,o===2?r:n);return i.set(e,s),s}function Ut(e){return Wt(e)?Ut(e.__v_raw):!!(e&&e.__v_isReactive)}function Wt(e){return!!(e&&e.__v_isReadonly)}function Gt(e){return!!(e&&e.__v_isShallow)}function Kt(e){return e?!!e.__v_raw:!1}function j(e){let t=e&&e.__v_raw;return t?j(t):e}function qt(e){return!u(e,`__v_skip`)&&Object.isExtensible(e)&&se(e,`__v_skip`,!0),e}var Jt=e=>v(e)?zt(e):e,Yt=e=>v(e)?Vt(e):e;function M(e){return e?e.__v_isRef===!0:!1}function N(e){return Xt(e,!1)}function P(e){return Xt(e,!0)}function Xt(e,t){return M(e)?e:new Zt(e,t)}var Zt=class{constructor(e,t){this.dep=new Ze,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:j(e),this._value=t?e:Jt(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||Gt(e)||Wt(e);e=n?e:j(e),ae(e,t)&&(this._rawValue=e,this._value=n?e:Jt(e),this.dep.trigger())}};function F(e){return M(e)?e.value:e}function Qt(e){return h(e)?e():F(e)}var $t={get:(e,t,n)=>t===`__v_raw`?e:F(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let i=e[t];return M(i)&&!M(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function en(e){return Ut(e)?e:new Proxy(e,$t)}function tn(e){let t=d(e)?Array(e.length):{};for(let n in e)t[n]=an(e,n);return t}var nn=class{constructor(e,t,n){this._object=e,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=_(t)?t:String(t),this._raw=j(e);let r=!0,i=e;if(!d(e)||_(this._key)||!w(this._key))do r=!Kt(i)||Gt(i);while(r&&(i=i.__v_raw));this._shallow=r}get value(){let e=this._object[this._key];return this._shallow&&(e=F(e)),this._value=e===void 0?this._defaultValue:e}set value(e){if(this._shallow&&M(this._raw[this._key])){let t=this._object[this._key];if(M(t)){t.value=e;return}}this._object[this._key]=e}get dep(){return at(this._raw,this._key)}},rn=class{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}};function I(e,t,n){return M(e)?e:h(e)?new rn(e):v(e)&&arguments.length>1?an(e,t,n):N(e)}function an(e,t,n){return new nn(e,t,n)}var on=class{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new Ze(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Ye-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&A!==this)return Fe(this,!0),!0}get value(){let e=this.dep.track();return Ve(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}};function sn(e,t,n=!1){let r,i;return h(e)?r=e:(r=e.get,i=e.set),new on(r,i,n)}var cn={},ln=new WeakMap,un=void 0;function dn(e,t=!1,n=un){if(n){let t=ln.get(n);t||ln.set(n,t=[]),t.push(e)}}function fn(e,n,i=t){let{immediate:a,deep:o,once:s,scheduler:l,augmentJob:u,call:f}=i,p=e=>o?e:Gt(e)||o===!1||o===0?pn(e,1):pn(e),m,g,_,v,y=!1,b=!1;if(M(e)?(g=()=>e.value,y=Gt(e)):Ut(e)?(g=()=>p(e),y=!0):d(e)?(b=!0,y=e.some(e=>Ut(e)||Gt(e)),g=()=>e.map(e=>{if(M(e))return e.value;if(Ut(e))return p(e);if(h(e))return f?f(e,2):e()})):g=h(e)?n?f?()=>f(e,2):e:()=>{if(_){Ke();try{_()}finally{qe()}}let t=un;un=m;try{return f?f(e,3,[v]):e(v)}finally{un=t}}:r,n&&o){let e=g,t=o===!0?1/0:o;g=()=>pn(e(),t)}let x=Oe(),S=()=>{m.stop(),x&&x.active&&c(x.effects,m)};if(s&&n){let e=n;n=(...t)=>{e(...t),S()}}let C=b?Array(e.length).fill(cn):cn,w=e=>{if(!(!(m.flags&1)||!m.dirty&&!e))if(n){let e=m.run();if(o||y||(b?e.some((e,t)=>ae(e,C[t])):ae(e,C))){_&&_();let t=un;un=m;try{let t=[e,C===cn?void 0:b&&C[0]===cn?[]:C,v];C=e,f?f(n,3,t):n(...t)}finally{un=t}}}else m.run()};return u&&u(w),m=new je(g),m.scheduler=l?()=>l(w,!1):w,v=e=>dn(e,!1,m),_=m.onStop=()=>{let e=ln.get(m);if(e){if(f)f(e,4);else for(let t of e)t();ln.delete(m)}},n?a?w(!0):C=m.run():l?l(w.bind(null,!0),!0):m.run(),S.pause=m.pause.bind(m),S.resume=m.resume.bind(m),S.stop=S,S}function pn(e,t=1/0,n){if(t<=0||!v(e)||e.__v_skip||(n||=new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,M(e))pn(e.value,t,n);else if(d(e))for(let r=0;r{pn(e,t,n)});else if(C(e)){for(let r in e)pn(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&pn(e[r],t,n)}return e}function mn(e,t,n,r){try{return r?e(...r):e()}catch(e){gn(e,t,n)}}function hn(e,t,n,r){if(h(e)){let i=mn(e,t,n,r);return i&&y(i)&&i.catch(e=>{gn(e,t,n)}),i}if(d(e)){let i=[];for(let a=0;a>>1,i=vn[r],a=Mn(i);a=Mn(n)?vn.push(e):vn.splice(En(t),0,e),e.flags|=1,On()}}function On(){wn||=Cn.then(Nn)}function kn(e){d(e)?bn.push(...e):xn&&e.id===-1?xn.splice(Sn+1,0,e):e.flags&1||(bn.push(e),e.flags|=1),On()}function An(e,t,n=yn+1){for(;nMn(e)-Mn(t));if(bn.length=0,xn){xn.push(...e);return}for(xn=e,Sn=0;Sne.id==null?e.flags&2?-1:1/0:e.id;function Nn(e){try{for(yn=0;yn{r._d&&Ca(-1);let i=In(t),a;try{a=e(...n)}finally{In(i),r._d&&Ca(1)}return a};return r._n=!0,r._c=!0,r._d=!0,r}function Ln(e,n){if(Pn===null)return e;let r=ao(Pn),i=e.dirs||=[];for(let e=0;e1)return n&&h(t)?t.call(r&&r.proxy):t}}function Bn(){return!!(Wa()||Ei)}var Vn=Symbol.for(`v-scx`),Hn=()=>R(Vn);function Un(e,t){return Wn(e,null,t)}function z(e,t,n){return Wn(e,t,n)}function Wn(e,n,i=t){let{immediate:a,deep:o,flush:c,once:l}=i,u=s({},i),d=n&&a||!n&&c!==`post`,f;if(Xa){if(c===`sync`){let e=Hn();f=e.__watcherHandles||=[]}else if(!d){let e=()=>{};return e.stop=r,e.resume=r,e.pause=r,e}}let p=Ua;u.call=(e,t,n)=>hn(e,p,t,n);let m=!1;c===`post`?u.scheduler=e=>{ra(e,p&&p.suspense)}:c!==`sync`&&(m=!0,u.scheduler=(e,t)=>{t?e():Dn(e)}),u.augmentJob=e=>{n&&(e.flags|=4),m&&(e.flags|=2,p&&(e.id=p.uid,e.i=p))};let h=fn(e,n,u);return Xa&&(f?f.push(h):d&&h()),h}function Gn(e,t,n){let r=this.proxy,i=g(e)?e.includes(`.`)?Kn(r,e):()=>r[e]:e.bind(r,r),a;h(t)?a=t:(a=t.handler,n=t);let o=qa(this),s=Wn(i,a.bind(r),n);return o(),s}function Kn(e,t){let n=t.split(`.`);return()=>{let t=e;for(let e=0;ee.__isTeleport,Xn=e=>e&&(e.disabled||e.disabled===``),Zn=e=>e&&(e.defer||e.defer===``),Qn=e=>typeof SVGElement<`u`&&e instanceof SVGElement,$n=e=>typeof MathMLElement==`function`&&e instanceof MathMLElement,er=(e,t)=>{let n=e&&e.to;return g(n)?t?t(n):null:n},tr={name:`Teleport`,__isTeleport:!0,process(e,t,n,r,i,a,o,s,c,l){let{mc:u,pc:d,pbc:f,o:{insert:p,querySelector:m,createText:h,createComment:g,parentNode:_}}=l,v=Xn(t.props),{dynamicChildren:y}=t,b=(e,t,n)=>{e.shapeFlag&16&&u(e.children,t,n,i,a,o,s,c)},x=(e=t)=>{let n=Xn(e.props),r=e.target=er(e.props,m),a=or(r,e,h,p);r&&(o!==`svg`&&Qn(r)?o=`svg`:o!==`mathml`&&$n(r)&&(o=`mathml`),i&&i.isCE&&(i.ce._teleportTargets||(i.ce._teleportTargets=new Set)).add(r),n||(b(e,r,a),ar(e,!1)))},S=e=>{let t=()=>{qn.get(e)===t&&(qn.delete(e),Xn(e.props)&&(b(e,_(e.el)||n,e.anchor),ar(e,!0)),x(e))};qn.set(e,t),ra(t,a)};if(e==null){let e=t.el=h(``),i=t.anchor=h(``);if(p(e,n,r),p(i,n,r),Zn(t.props)||a&&a.pendingBranch){S(t);return}v&&(b(t,n,i),ar(t,!0)),x()}else{t.el=e.el;let r=t.anchor=e.anchor,u=qn.get(e);if(u){u.flags|=8,qn.delete(e),S(t);return}t.targetStart=e.targetStart;let p=t.target=e.target,h=t.targetAnchor=e.targetAnchor,g=Xn(e.props),_=g?n:p,b=g?r:h;if(o===`svg`||Qn(p)?o=`svg`:(o===`mathml`||$n(p))&&(o=`mathml`),y?(f(e.dynamicChildren,y,_,i,a,o,s),la(e,t,!0)):c||d(e,t,_,b,i,a,o,s,!1),v)g?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):nr(t,n,r,l,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){let e=t.target=er(t.props,m);e&&nr(t,e,null,l,0)}else g&&nr(t,p,h,l,1);ar(t,v)}},remove(e,t,n,{um:r,o:{remove:i}},a){let{shapeFlag:o,children:s,anchor:c,targetStart:l,targetAnchor:u,target:d,props:f}=e,p=a||!Xn(f),m=qn.get(e);if(m&&(m.flags|=8,qn.delete(e)),d&&(i(l),i(u)),a&&i(c),!m&&o&16)for(let e=0;e{e.isMounted=!0}),Vr(()=>{e.isUnmounting=!0}),e}var ur=[Function,Array],dr={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:ur,onEnter:ur,onAfterEnter:ur,onEnterCancelled:ur,onBeforeLeave:ur,onLeave:ur,onAfterLeave:ur,onLeaveCancelled:ur,onBeforeAppear:ur,onAppear:ur,onAfterAppear:ur,onAppearCancelled:ur},fr=e=>{let t=e.subTree;return t.component?fr(t.component):t},pr={name:`BaseTransition`,props:dr,setup(e,{slots:t}){let n=Wa(),r=lr();return()=>{let i=t.default&&xr(t.default(),!0),a=i&&i.length?mr(i):n.subTree?Fa():void 0;if(!a)return;let o=j(e),{mode:s}=o;if(r.isLeaving)return vr(a);let c=yr(a);if(!c)return vr(a);let l=_r(c,o,r,n,e=>l=e);c.type!==_a&&br(c,l);let u=n.subTree&&yr(n.subTree);if(u&&u.type!==_a&&!Oa(u,c)&&fr(n).type!==_a){let e=_r(u,o,r,n);if(br(u,e),s===`out-in`&&c.type!==_a)return r.isLeaving=!0,e.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete e.afterLeave,u=void 0},vr(a);s===`in-out`&&c.type!==_a?e.delayLeave=(e,t,n)=>{let i=gr(r,u);i[String(u.key)]=u,e[sr]=()=>{t(),e[sr]=void 0,delete l.delayedLeave,u=void 0},l.delayedLeave=()=>{n(),delete l.delayedLeave,u=void 0}}:u=void 0}else u&&=void 0;return a}}};function mr(e){let t=e[0];if(e.length>1){for(let n of e)if(n.type!==_a){t=n;break}}return t}var hr=pr;function gr(e,t){let{leavingVNodes:n}=e,r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function _r(e,t,n,r,i){let{appear:a,mode:o,persisted:s=!1,onBeforeEnter:c,onEnter:l,onAfterEnter:u,onEnterCancelled:f,onBeforeLeave:p,onLeave:m,onAfterLeave:h,onLeaveCancelled:g,onBeforeAppear:_,onAppear:v,onAfterAppear:y,onAppearCancelled:b}=t,x=String(e.key),S=gr(n,e),C=(e,t)=>{e&&hn(e,r,9,t)},w=(e,t)=>{let n=t[1];C(e,t),d(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},T={mode:o,persisted:s,beforeEnter(t){let r=c;if(!n.isMounted)if(a)r=_||c;else return;t[sr]&&t[sr](!0);let i=S[x];i&&Oa(e,i)&&i.el[sr]&&i.el[sr](),C(r,[t])},enter(t){if(S[x]===e)return;let r=l,i=u,o=f;if(!n.isMounted)if(a)r=v||l,i=y||u,o=b||f;else return;let s=!1;t[cr]=e=>{s||(s=!0,C(e?o:i,[t]),T.delayedLeave&&T.delayedLeave(),t[cr]=void 0)};let c=t[cr].bind(null,!1);r?w(r,[t,c]):c()},leave(t,r){let i=String(e.key);if(t[cr]&&t[cr](!0),n.isUnmounting)return r();C(p,[t]);let a=!1;t[sr]=n=>{a||(a=!0,r(),C(n?g:h,[t]),t[sr]=void 0,S[i]===e&&delete S[i])};let o=t[sr].bind(null,!1);S[i]=e,m?w(m,[t,o]):o()},clone(e){let a=_r(e,t,n,r,i);return i&&i(a),a}};return T}function vr(e){if(Ar(e))return e=Na(e),e.children=null,e}function yr(e){if(!Ar(e))return Yn(e.type)&&e.children?mr(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&h(n.default))return n.default()}}function br(e,t){e.shapeFlag&6&&e.component?(e.transition=t,br(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function xr(e,t=!1,n){let r=[],i=0;for(let a=0;a1)for(let e=0;eDr(e,n&&(d(n)?n[t]:n),r,a,o));return}if(kr(a)&&!o){a.shapeFlag&512&&a.type.__asyncResolved&&a.component.subTree.component&&Dr(e,n,r,a.component.subTree);return}let s=a.shapeFlag&4?ao(a.component):a.el,l=o?null:s,{i:f,r:p}=e,m=n&&n.r,_=f.refs===t?f.refs={}:f.refs,v=f.setupState,y=j(v),b=v===t?i:e=>Tr(_,e)?!1:u(y,e),x=(e,t)=>!(t&&Tr(_,t));if(m!=null&&m!==p){if(Or(n),g(m))_[m]=null,b(m)&&(v[m]=null);else if(M(m)){let e=n;x(m,e.k)&&(m.value=null),e.k&&(_[e.k]=null)}}if(h(p))mn(p,f,12,[l,_]);else{let t=g(p),n=M(p);if(t||n){let i=()=>{if(e.f){let n=t?b(p)?v[p]:_[p]:x(p)||!e.k?p.value:_[e.k];if(o)d(n)&&c(n,s);else if(d(n))n.includes(s)||n.push(s);else if(t)_[p]=[s],b(p)&&(v[p]=_[p]);else{let t=[s];x(p,e.k)&&(p.value=t),e.k&&(_[e.k]=t)}}else t?(_[p]=l,b(p)&&(v[p]=l)):n&&(x(p,e.k)&&(p.value=l),e.k&&(_[e.k]=l))};if(l){let t=()=>{i(),Er.delete(e)};t.id=-1,Er.set(e,t),ra(t,r)}else Or(e),i()}}}function Or(e){let t=Er.get(e);t&&(t.flags|=8,Er.delete(e))}de().requestIdleCallback,de().cancelIdleCallback;var kr=e=>!!e.type.__asyncLoader,Ar=e=>e.type.__isKeepAlive;function jr(e,t){Nr(e,`a`,t)}function Mr(e,t){Nr(e,`da`,t)}function Nr(e,t,n=Ua){let r=e.__wdc||=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()};if(Fr(t,r,n),n){let e=n.parent;for(;e&&e.parent;)Ar(e.parent.vnode)&&Pr(r,t,n,e),e=e.parent}}function Pr(e,t,n,r){let i=Fr(t,e,r,!0);Hr(()=>{c(r[t],i)},n)}function Fr(e,t,n=Ua,r=!1){if(n){let i=n[e]||(n[e]=[]),a=t.__weh||=(...r)=>{Ke();let i=qa(n),a=hn(t,n,e,r);return i(),qe(),a};return r?i.unshift(a):i.push(a),a}}var Ir=e=>(t,n=Ua)=>{(!Xa||e===`sp`)&&Fr(e,(...e)=>t(...e),n)},Lr=Ir(`bm`),Rr=Ir(`m`),zr=Ir(`bu`),Br=Ir(`u`),Vr=Ir(`bum`),Hr=Ir(`um`),Ur=Ir(`sp`),Wr=Ir(`rtg`),Gr=Ir(`rtc`);function Kr(e,t=Ua){Fr(`ec`,e,t)}var qr=`components`;function Jr(e,t){return Zr(qr,e,!0,t)||e}var Yr=Symbol.for(`v-ndc`);function Xr(e){return g(e)?Zr(qr,e,!1)||e:e||Yr}function Zr(e,t,n=!0,r=!1){let i=Pn||Ua;if(i){let n=i.type;if(e===qr){let e=oo(n,!1);if(e&&(e===t||e===D(t)||e===re(D(t))))return n}let a=Qr(i[e]||n[e],t)||Qr(i.appContext[e],t);return!a&&r?n:a}}function Qr(e,t){return e&&(e[t]||e[D(t)]||e[re(D(t))])}function $r(e,t,n,r){let i,a=n&&n[r],o=d(e);if(o||g(e)){let n=o&&Ut(e),r=!1,s=!1;n&&(r=!Gt(e),s=Wt(e),e=st(e)),i=Array(e.length);for(let n=0,o=e.length;nt(e,n,void 0,a&&a[n]));else{let n=Object.keys(e);i=Array(n.length);for(let r=0,o=n.length;r{let t=r.fn(...e);return t&&(t.key=r.key),t}:r.fn)}return e}function ti(e,t,n={},r,i){if(Pn.ce||Pn.parent&&kr(Pn.parent)&&Pn.parent.ce){let e=Object.keys(n).length>0;return t!==`default`&&(n.name=t),V(),Ea(B,null,[U(`slot`,n,r&&r())],e?-2:64)}let a=e[t];a&&a._c&&(a._d=!1),V();let o=a&&ni(a(n)),s=n.key||o&&o.key,c=Ea(B,{key:(s&&!_(s)?s:`_${t}`)+(!o&&r?`_fb`:``)},o||(r?r():[]),o&&e._===1?64:-2);return!i&&c.scopeId&&(c.slotScopeIds=[c.scopeId+`-s`]),a&&a._c&&(a._d=!0),c}function ni(e){return e.some(e=>Da(e)?!(e.type===_a||e.type===B&&!ni(e.children)):!0)?e:null}var ri=e=>e?Ya(e)?ao(e):ri(e.parent):null,ii=s(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=>ri(e.parent),$root:e=>ri(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>pi(e),$forceUpdate:e=>e.f||=()=>{Dn(e.update)},$nextTick:e=>e.n||=Tn.bind(e.proxy),$watch:e=>Gn.bind(e)}),ai=(e,n)=>e!==t&&!e.__isScriptSetup&&u(e,n),oi={get({_:e},n){if(n===`__v_skip`)return!0;let{ctx:r,setupState:i,data:a,props:o,accessCache:s,type:c,appContext:l}=e;if(n[0]!==`$`){let e=s[n];if(e!==void 0)switch(e){case 1:return i[n];case 2:return a[n];case 4:return r[n];case 3:return o[n]}else if(ai(i,n))return s[n]=1,i[n];else if(a!==t&&u(a,n))return s[n]=2,a[n];else if(u(o,n))return s[n]=3,o[n];else if(r!==t&&u(r,n))return s[n]=4,r[n];else ci&&(s[n]=0)}let d=ii[n],f,p;if(d)return n===`$attrs`&&rt(e.attrs,`get`,``),d(e);if((f=c.__cssModules)&&(f=f[n]))return f;if(r!==t&&u(r,n))return s[n]=4,r[n];if(p=l.config.globalProperties,u(p,n))return p[n]},set({_:e},n,r){let{data:i,setupState:a,ctx:o}=e;return ai(a,n)?(a[n]=r,!0):i!==t&&u(i,n)?(i[n]=r,!0):u(e.props,n)||n[0]===`$`&&n.slice(1)in e?!1:(o[n]=r,!0)},has({_:{data:e,setupState:n,accessCache:r,ctx:i,appContext:a,props:o,type:s}},c){let l;return!!(r[c]||e!==t&&c[0]!==`$`&&u(e,c)||ai(n,c)||u(o,c)||u(i,c)||u(ii,c)||u(a.config.globalProperties,c)||(l=s.__cssModules)&&l[c])},defineProperty(e,t,n){return n.get==null?u(n,`value`)&&this.set(e,t,n.value,null):e._.accessCache[t]=0,Reflect.defineProperty(e,t,n)}};function si(e){return d(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}var ci=!0;function li(e){let t=pi(e),n=e.proxy,i=e.ctx;ci=!1,t.beforeCreate&&di(t.beforeCreate,e,`bc`);let{data:a,computed:o,methods:s,watch:c,provide:l,inject:u,created:f,beforeMount:p,mounted:m,beforeUpdate:g,updated:_,activated:y,deactivated:b,beforeDestroy:x,beforeUnmount:S,destroyed:C,unmounted:w,render:T,renderTracked:E,renderTriggered:ee,errorCaptured:D,serverPrefetch:te,expose:ne,inheritAttrs:re,components:ie,directives:ae,filters:oe}=t;if(u&&ui(u,i,null),s)for(let e in s){let t=s[e];h(t)&&(i[e]=t.bind(n))}if(a){let t=a.call(n,n);v(t)&&(e.data=zt(t))}if(ci=!0,o)for(let e in o){let t=o[e],a=G({get:h(t)?t.bind(n,n):h(t.get)?t.get.bind(n,n):r,set:!h(t)&&h(t.set)?t.set.bind(n):r});Object.defineProperty(i,e,{enumerable:!0,configurable:!0,get:()=>a.value,set:e=>a.value=e})}if(c)for(let e in c)fi(c[e],i,n,e);if(l){let e=h(l)?l.call(n):l;Reflect.ownKeys(e).forEach(t=>{zn(t,e[t])})}f&&di(f,e,`c`);function se(e,t){d(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(se(Lr,p),se(Rr,m),se(zr,g),se(Br,_),se(jr,y),se(Mr,b),se(Kr,D),se(Gr,E),se(Wr,ee),se(Vr,S),se(Hr,w),se(Ur,te),d(ne))if(ne.length){let t=e.exposed||={};ne.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||={};T&&e.render===r&&(e.render=T),re!=null&&(e.inheritAttrs=re),ie&&(e.components=ie),ae&&(e.directives=ae),te&&wr(e)}function ui(e,t,n=r){d(e)&&(e=vi(e));for(let n in e){let r=e[n],i;i=v(r)?`default`in r?R(r.from||n,r.default,!0):R(r.from||n):R(r),M(i)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>i.value,set:e=>i.value=e}):t[n]=i}}function di(e,t,n){hn(d(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function fi(e,t,n,r){let i=r.includes(`.`)?Kn(n,r):()=>n[r];if(g(e)){let n=t[e];h(n)&&z(i,n)}else if(h(e))z(i,e.bind(n));else if(v(e))if(d(e))e.forEach(e=>fi(e,t,n,r));else{let r=h(e.handler)?e.handler.bind(n):t[e.handler];h(r)&&z(i,r,e)}}function pi(e){let t=e.type,{mixins:n,extends:r}=t,{mixins:i,optionsCache:a,config:{optionMergeStrategies:o}}=e.appContext,s=a.get(t),c;return s?c=s:!i.length&&!n&&!r?c=t:(c={},i.length&&i.forEach(e=>mi(c,e,o,!0)),mi(c,t,o)),v(t)&&a.set(t,c),c}function mi(e,t,n,r=!1){let{mixins:i,extends:a}=t;a&&mi(e,a,n,!0),i&&i.forEach(t=>mi(e,t,n,!0));for(let i in t)if(!(r&&i===`expose`)){let r=hi[i]||n&&n[i];e[i]=r?r(e[i],t[i]):t[i]}return e}var hi={data:gi,props:xi,emits:xi,methods:bi,computed:bi,beforeCreate:yi,created:yi,beforeMount:yi,mounted:yi,beforeUpdate:yi,updated:yi,beforeDestroy:yi,beforeUnmount:yi,destroyed:yi,unmounted:yi,activated:yi,deactivated:yi,errorCaptured:yi,serverPrefetch:yi,components:bi,directives:bi,watch:Si,provide:gi,inject:_i};function gi(e,t){return t?e?function(){return s(h(e)?e.call(this,this):e,h(t)?t.call(this,this):t)}:t:e}function _i(e,t){return bi(vi(e),vi(t))}function vi(e){if(d(e)){let t={};for(let n=0;nt===`modelValue`||t===`model-value`?e.modelModifiers:e[`${t}Modifiers`]||e[`${D(t)}Modifiers`]||e[`${ne(t)}Modifiers`];function Oi(e,n,...r){if(e.isUnmounted)return;let i=e.vnode.props||t,a=r,o=n.startsWith(`update:`),s=o&&Di(i,n.slice(7));s&&(s.trim&&(a=r.map(e=>g(e)?e.trim():e)),s.number&&(a=r.map(ce)));let c,l=i[c=ie(n)]||i[c=ie(D(n))];!l&&o&&(l=i[c=ie(ne(n))]),l&&hn(l,e,6,a);let u=i[c+`Once`];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[c])return;e.emitted[c]=!0,hn(u,e,6,a)}}var ki=new WeakMap;function Ai(e,t,n=!1){let r=n?ki:t.emitsCache,i=r.get(e);if(i!==void 0)return i;let a=e.emits,o={},c=!1;if(!h(e)){let r=e=>{let n=Ai(e,t,!0);n&&(c=!0,s(o,n))};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}return!a&&!c?(v(e)&&r.set(e,null),null):(d(a)?a.forEach(e=>o[e]=null):s(o,a),v(e)&&r.set(e,o),o)}function ji(e,t){return!e||!a(t)?!1:(t=t.slice(2).replace(/Once$/,``),u(e,t[0].toLowerCase()+t.slice(1))||u(e,ne(t))||u(e,t))}function Mi(e){let{type:t,vnode:n,proxy:r,withProxy:i,propsOptions:[a],slots:s,attrs:c,emit:l,render:u,renderCache:d,props:f,data:p,setupState:m,ctx:h,inheritAttrs:g}=e,_=In(e),v,y;try{if(n.shapeFlag&4){let e=i||r,t=e;v=Ia(u.call(t,e,d,f,m,p,h)),y=c}else{let e=t;v=Ia(e.length>1?e(f,{attrs:c,slots:s,emit:l}):e(f,null)),y=t.props?c:Ni(c)}}catch(t){ya.length=0,gn(t,e,1),v=U(_a)}let b=v;if(y&&g!==!1){let e=Object.keys(y),{shapeFlag:t}=b;e.length&&t&7&&(a&&e.some(o)&&(y=Pi(y,a)),b=Na(b,y,!1,!0))}return n.dirs&&(b=Na(b,null,!1,!0),b.dirs=b.dirs?b.dirs.concat(n.dirs):n.dirs),n.transition&&br(b,n.transition),v=b,In(_),v}var Ni=e=>{let t;for(let n in e)(n===`class`||n===`style`||a(n))&&((t||={})[n]=e[n]);return t},Pi=(e,t)=>{let n={};for(let r in e)(!o(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Fi(e,t,n){let{props:r,children:i,component:a}=e,{props:o,children:s,patchFlag:c}=t,l=a.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?Ii(r,o,l):!!o;if(c&8){let e=t.dynamicProps;for(let t=0;tObject.create(zi),Vi=e=>Object.getPrototypeOf(e)===zi;function Hi(e,t,n,r=!1){let i={},a=Bi();e.propsDefaults=Object.create(null),Wi(e,t,i,a);for(let t in e.propsOptions[0])t in i||(i[t]=void 0);n?e.props=r?i:Bt(i):e.type.props?e.props=i:e.props=a,e.attrs=a}function Ui(e,t,n,r){let{props:i,attrs:a,vnode:{patchFlag:o}}=e,s=j(i),[c]=e.propsOptions,l=!1;if((r||o>0)&&!(o&16)){if(o&8){let n=e.vnode.dynamicProps;for(let r=0;r{p=!0;let[t,n]=qi(e,r,!0);s(l,t),n&&f.push(...n)};!i&&r.mixins.length&&r.mixins.forEach(t),e.extends&&t(e.extends),e.mixins&&e.mixins.forEach(t)}if(!c&&!p)return v(e)&&a.set(e,n),n;if(d(c))for(let e=0;ee===`_`||e===`_ctx`||e===`$stable`,Xi=e=>d(e)?e.map(Ia):[Ia(e)],Zi=(e,t,n)=>{if(t._n)return t;let r=L((...e)=>Xi(t(...e)),n);return r._c=!1,r},Qi=(e,t,n)=>{let r=e._ctx;for(let n in e){if(Yi(n))continue;let i=e[n];if(h(i))t[n]=Zi(n,i,r);else if(i!=null){let e=Xi(i);t[n]=()=>e}}},$i=(e,t)=>{let n=Xi(t);e.slots.default=()=>n},ea=(e,t,n)=>{for(let r in t)(n||!Yi(r))&&(e[r]=t[r])},ta=(e,t,n)=>{let r=e.slots=Bi();if(e.vnode.shapeFlag&32){let e=t._;e?(ea(r,t,n),n&&se(r,`_`,e,!0)):Qi(t,r)}else t&&$i(e,t)},na=(e,n,r)=>{let{vnode:i,slots:a}=e,o=!0,s=t;if(i.shapeFlag&32){let e=n._;e?r&&e===1?o=!1:ea(a,n,r):(o=!n.$stable,Qi(n,a)),s=n}else n&&($i(e,n),s={default:1});if(o)for(let e in a)!Yi(e)&&s[e]==null&&delete a[e]},ra=ha;function ia(e){return aa(e)}function aa(e,i){let a=de();a.__VUE__=!0;let{insert:o,remove:s,patchProp:c,createElement:l,createText:u,createComment:d,setText:f,setElementText:p,parentNode:m,nextSibling:h,setScopeId:g=r,insertStaticContent:_}=e,v=(e,t,n,r=null,i=null,a=null,o=void 0,s=null,c=!!t.dynamicChildren)=>{if(e===t)return;e&&!Oa(e,t)&&(r=ye(e),he(e,i,a,!0),e=null),t.patchFlag===-2&&(c=!1,t.dynamicChildren=null);let{type:l,ref:u,shapeFlag:d}=t;switch(l){case ga:y(e,t,n,r);break;case _a:b(e,t,n,r);break;case va:e??x(t,n,r,o);break;case B:ie(e,t,n,r,i,a,o,s,c);break;default:d&1?w(e,t,n,r,i,a,o,s,c):d&6?ae(e,t,n,r,i,a,o,s,c):(d&64||d&128)&&l.process(e,t,n,r,i,a,o,s,c,Se)}u!=null&&i?Dr(u,e&&e.ref,a,t||e,!t):u==null&&e&&e.ref!=null&&Dr(e.ref,null,a,e,!0)},y=(e,t,n,r)=>{if(e==null)o(t.el=u(t.children),n,r);else{let n=t.el=e.el;t.children!==e.children&&f(n,t.children)}},b=(e,t,n,r)=>{e==null?o(t.el=d(t.children||``),n,r):t.el=e.el},x=(e,t,n,r)=>{[e.el,e.anchor]=_(e.children,t,n,r,e.el,e.anchor)},S=({el:e,anchor:t},n,r)=>{let i;for(;e&&e!==t;)i=h(e),o(e,n,r),e=i;o(t,n,r)},C=({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=h(e),s(e),e=n;s(t)},w=(e,t,n,r,i,a,o,s,c)=>{if(t.type===`svg`?o=`svg`:t.type===`math`&&(o=`mathml`),e==null)E(t,n,r,i,a,o,s,c);else{let n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),te(e,t,i,a,o,s,c)}finally{n&&n._endPatch()}}},E=(e,t,n,r,i,a,s,u)=>{let d,f,{props:m,shapeFlag:h,transition:g,dirs:_}=e;if(d=e.el=l(e.type,a,m&&m.is,m),h&8?p(d,e.children):h&16&&D(e.children,d,null,r,i,oa(e,a),s,u),_&&Rn(e,null,r,`created`),ee(d,e,e.scopeId,s,r),m){for(let e in m)e!==`value`&&!T(e)&&c(d,e,null,m[e],a,r);`value`in m&&c(d,`value`,null,m.value,a),(f=m.onVnodeBeforeMount)&&za(f,r,e)}_&&Rn(e,null,r,`beforeMount`);let v=ca(i,g);v&&g.beforeEnter(d),o(d,t,n),((f=m&&m.onVnodeMounted)||v||_)&&ra(()=>{try{f&&za(f,r,e),v&&g.enter(d),_&&Rn(e,null,r,`mounted`)}finally{}},i)},ee=(e,t,n,r,i)=>{if(n&&g(e,n),r)for(let t=0;t{for(let l=c;l{let l=n.el=e.el,{patchFlag:u,dynamicChildren:d,dirs:f}=n;u|=e.patchFlag&16;let m=e.props||t,h=n.props||t,g;if(r&&sa(r,!1),(g=h.onVnodeBeforeUpdate)&&za(g,r,n,e),f&&Rn(n,e,r,`beforeUpdate`),r&&sa(r,!0),(m.innerHTML&&h.innerHTML==null||m.textContent&&h.textContent==null)&&p(l,``),d?ne(e.dynamicChildren,d,l,r,i,oa(n,a),o):s||O(e,n,l,null,r,i,oa(n,a),o,!1),u>0){if(u&16)re(l,m,h,r,a);else if(u&2&&m.class!==h.class&&c(l,`class`,null,h.class,a),u&4&&c(l,`style`,m.style,h.style,a),u&8){let e=n.dynamicProps;for(let t=0;t{g&&za(g,r,n,e),f&&Rn(n,e,r,`updated`)},i)},ne=(e,t,n,r,i,a,o)=>{for(let s=0;s{if(n!==r){if(n!==t)for(let t in n)!T(t)&&!(t in r)&&c(e,t,n[t],null,a,i);for(let t in r){if(T(t))continue;let o=r[t],s=n[t];o!==s&&t!==`value`&&c(e,t,s,o,a,i)}`value`in r&&c(e,`value`,n.value,r.value,a)}},ie=(e,t,n,r,i,a,s,c,l)=>{let d=t.el=e?e.el:u(``),f=t.anchor=e?e.anchor:u(``),{patchFlag:p,dynamicChildren:m,slotScopeIds:h}=t;h&&(c=c?c.concat(h):h),e==null?(o(d,n,r),o(f,n,r),D(t.children||[],n,f,i,a,s,c,l)):p>0&&p&64&&m&&e.dynamicChildren&&e.dynamicChildren.length===m.length?(ne(e.dynamicChildren,m,n,i,a,s,c),(t.key!=null||i&&t===i.subTree)&&la(e,t,!0)):O(e,t,n,f,i,a,s,c,l)},ae=(e,t,n,r,i,a,o,s,c)=>{t.slotScopeIds=s,e==null?t.shapeFlag&512?i.ctx.activate(t,n,r,o,c):se(t,n,r,i,a,o,c):ce(e,t,c)},se=(e,t,n,r,i,a,o)=>{let s=e.component=Ha(e,r,i);if(Ar(e)&&(s.ctx.renderer=Se),Za(s,!1,o),s.asyncDep){if(i&&i.registerDep(s,le,o),!e.el){let r=s.subTree=U(_a);b(null,r,t,n),e.placeholder=r.el}}else le(s,e,t,n,i,a,o)},ce=(e,t,n)=>{let r=t.component=e.component;if(Fi(e,t,n))if(r.asyncDep&&!r.asyncResolved){ue(r,t,n);return}else r.next=t,r.update();else t.el=e.el,r.vnode=t},le=(e,t,n,r,i,a,o)=>{let s=()=>{if(e.isMounted){let{next:t,bu:n,u:r,parent:s,vnode:c}=e;{let n=da(e);if(n){t&&(t.el=c.el,ue(e,t,o)),n.asyncDep.then(()=>{ra(()=>{e.isUnmounted||l()},i)});return}}let u=t,d;sa(e,!1),t?(t.el=c.el,ue(e,t,o)):t=c,n&&oe(n),(d=t.props&&t.props.onVnodeBeforeUpdate)&&za(d,s,t,c),sa(e,!0);let f=Mi(e),p=e.subTree;e.subTree=f,v(p,f,m(p.el),ye(p),e,i,a),t.el=f.el,u===null&&Ri(e,f.el),r&&ra(r,i),(d=t.props&&t.props.onVnodeUpdated)&&ra(()=>za(d,s,t,c),i)}else{let o,{el:s,props:c}=t,{bm:l,m:u,parent:d,root:f,type:p}=e,m=kr(t);if(sa(e,!1),l&&oe(l),!m&&(o=c&&c.onVnodeBeforeMount)&&za(o,d,t),sa(e,!0),s&&we){let t=()=>{e.subTree=Mi(e),we(s,e.subTree,e,i,null)};m&&p.__asyncHydrate?p.__asyncHydrate(s,e,t):t()}else{f.ce&&f.ce._hasShadowRoot()&&f.ce._injectChildStyle(p,e.parent?e.parent.type:void 0);let o=e.subTree=Mi(e);v(null,o,n,r,e,i,a),t.el=o.el}if(u&&ra(u,i),!m&&(o=c&&c.onVnodeMounted)){let e=t;ra(()=>za(o,d,e),i)}(t.shapeFlag&256||d&&kr(d.vnode)&&d.vnode.shapeFlag&256)&&e.a&&ra(e.a,i),e.isMounted=!0,t=n=r=null}};e.scope.on();let c=e.effect=new je(s);e.scope.off();let l=e.update=c.run.bind(c),u=e.job=c.runIfDirty.bind(c);u.i=e,u.id=e.uid,c.scheduler=()=>Dn(u),sa(e,!0),l()},ue=(e,t,n)=>{t.component=e;let r=e.vnode.props;e.vnode=t,e.next=null,Ui(e,t.props,r,n),na(e,t.children,n),Ke(),An(e),qe()},O=(e,t,n,r,i,a,o,s,c=!1)=>{let l=e&&e.children,u=e?e.shapeFlag:0,d=t.children,{patchFlag:f,shapeFlag:m}=t;if(f>0){if(f&128){pe(l,d,n,r,i,a,o,s,c);return}else if(f&256){fe(l,d,n,r,i,a,o,s,c);return}}m&8?(u&16&&ve(l,i,a),d!==l&&p(n,d)):u&16?m&16?pe(l,d,n,r,i,a,o,s,c):ve(l,i,a,!0):(u&8&&p(n,``),m&16&&D(d,n,r,i,a,o,s,c))},fe=(e,t,r,i,a,o,s,c,l)=>{e||=n,t||=n;let u=e.length,d=t.length,f=Math.min(u,d),p;for(p=0;pd?ve(e,a,o,!0,!1,f):D(t,r,i,a,o,s,c,l,f)},pe=(e,t,r,i,a,o,s,c,l)=>{let u=0,d=t.length,f=e.length-1,p=d-1;for(;u<=f&&u<=p;){let n=e[u],i=t[u]=l?La(t[u]):Ia(t[u]);if(Oa(n,i))v(n,i,r,null,a,o,s,c,l);else break;u++}for(;u<=f&&u<=p;){let n=e[f],i=t[p]=l?La(t[p]):Ia(t[p]);if(Oa(n,i))v(n,i,r,null,a,o,s,c,l);else break;f--,p--}if(u>f){if(u<=p){let e=p+1,n=ep)for(;u<=f;)he(e[u],a,o,!0),u++;else{let m=u,h=u,g=new Map;for(u=h;u<=p;u++){let e=t[u]=l?La(t[u]):Ia(t[u]);e.key!=null&&g.set(e.key,u)}let _,y=0,b=p-h+1,x=!1,S=0,C=Array(b);for(u=0;u=b){he(n,a,o,!0);continue}let i;if(n.key!=null)i=g.get(n.key);else for(_=h;_<=p;_++)if(C[_-h]===0&&Oa(n,t[_])){i=_;break}i===void 0?he(n,a,o,!0):(C[i-h]=u+1,i>=S?S=i:x=!0,v(n,t[i],r,null,a,o,s,c,l),y++)}let w=x?ua(C):n;for(_=w.length-1,u=b-1;u>=0;u--){let e=h+u,n=t[e],f=t[e+1],p=e+1{let{el:a,type:c,transition:l,children:u,shapeFlag:d}=e;if(d&6){me(e.component.subTree,t,n,r);return}if(d&128){e.suspense.move(t,n,r);return}if(d&64){c.move(e,t,n,Se);return}if(c===B){o(a,t,n);for(let e=0;el.enter(a),i));else{let{leave:r,delayLeave:i,afterLeave:c}=l,u=()=>{e.ctx.isUnmounted?s(a):o(a,t,n)},d=()=>{let e=a._isLeaving||!!a[sr];a._isLeaving&&a[sr](!0),l.persisted&&!e?u():r(a,()=>{u(),c&&c()})};i?i(a,u,d):d()}else o(a,t,n)},he=(e,t,n,r=!1,i=!1)=>{let{type:a,props:o,ref:s,children:c,dynamicChildren:l,shapeFlag:u,patchFlag:d,dirs:f,cacheIndex:p,memo:m}=e;if(d===-2&&(i=!1),s!=null&&(Ke(),Dr(s,null,n,e,!0),qe()),p!=null&&(t.renderCache[p]=void 0),u&256){t.ctx.deactivate(e);return}let h=u&1&&f,g=!kr(e),_;if(g&&(_=o&&o.onVnodeBeforeUnmount)&&za(_,t,e),u&6)_e(e.component,n,r);else{if(u&128){e.suspense.unmount(n,r);return}h&&Rn(e,null,t,`beforeUnmount`),u&64?e.type.remove(e,t,n,Se,r):l&&!l.hasOnce&&(a!==B||d>0&&d&64)?ve(l,t,n,!1,!0):(a===B&&d&384||!i&&u&16)&&ve(c,t,n),r&&k(e)}let v=m!=null&&p==null;(g&&(_=o&&o.onVnodeUnmounted)||h||v)&&ra(()=>{_&&za(_,t,e),h&&Rn(e,null,t,`unmounted`),v&&(e.el=null)},n)},k=e=>{let{type:t,el:n,anchor:r,transition:i}=e;if(t===B){ge(n,r);return}if(t===va){C(e);return}let a=()=>{s(n),i&&!i.persisted&&i.afterLeave&&i.afterLeave()};if(e.shapeFlag&1&&i&&!i.persisted){let{leave:t,delayLeave:r}=i,o=()=>t(n,a);r?r(e.el,a,o):o()}else a()},ge=(e,t)=>{let n;for(;e!==t;)n=h(e),s(e),e=n;s(t)},_e=(e,t,n)=>{let{bum:r,scope:i,job:a,subTree:o,um:s,m:c,a:l}=e;fa(c),fa(l),r&&oe(r),i.stop(),a&&(a.flags|=8,he(o,e,t,n)),s&&ra(s,t),ra(()=>{e.isUnmounted=!0},t)},ve=(e,t,n,r=!1,i=!1,a=0)=>{for(let o=a;o{if(e.shapeFlag&6)return ye(e.component.subTree);if(e.shapeFlag&128)return e.suspense.next();let t=h(e.anchor||e.el),n=t&&t[Jn];return n?h(n):t},be=!1,xe=(e,t,n)=>{let r;e==null?t._vnode&&(he(t._vnode,null,null,!0),r=t._vnode.component):v(t._vnode||null,e,t,null,null,null,n),t._vnode=e,be||=(be=!0,An(r),jn(),!1)},Se={p:v,um:he,m:me,r:k,mt:se,mc:D,pc:O,pbc:ne,n:ye,o:e},Ce,we;return i&&([Ce,we]=i(Se)),{render:xe,hydrate:Ce,createApp:Ti(xe,Ce)}}function oa({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 sa({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function ca(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function la(e,t,n=!1){let r=e.children,i=t.children;if(d(r)&&d(i))for(let e=0;e>1,e[n[s]]0&&(t[r]=n[a-1]),n[a]=r)}}for(a=n.length,o=n[a-1];a-- >0;)n[a]=o,o=t[o];return n}function da(e){let t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:da(t)}function fa(e){if(e)for(let t=0;te.__isSuspense;function ha(e,t){t&&t.pendingBranch?d(e)?t.effects.push(...e):t.effects.push(e):kn(e)}var B=Symbol.for(`v-fgt`),ga=Symbol.for(`v-txt`),_a=Symbol.for(`v-cmt`),va=Symbol.for(`v-stc`),ya=[],ba=null;function V(e=!1){ya.push(ba=e?null:[])}function xa(){ya.pop(),ba=ya[ya.length-1]||null}var Sa=1;function Ca(e,t=!1){Sa+=e,e<0&&ba&&t&&(ba.hasOnce=!0)}function wa(e){return e.dynamicChildren=Sa>0?ba||n:null,xa(),Sa>0&&ba&&ba.push(e),e}function Ta(e,t,n,r,i,a){return wa(H(e,t,n,r,i,a,!0))}function Ea(e,t,n,r,i){return wa(U(e,t,n,r,i,!0))}function Da(e){return e?e.__v_isVNode===!0:!1}function Oa(e,t){return e.type===t.type&&e.key===t.key}var ka=({key:e})=>e??null,Aa=({ref:e,ref_key:t,ref_for:n})=>(typeof e==`number`&&(e=``+e),e==null?null:g(e)||M(e)||h(e)?{i:Pn,r:e,k:t,f:!!n}:e);function H(e,t=null,n=null,r=0,i=null,a=e===B?0:1,o=!1,s=!1){let c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ka(t),ref:t&&Aa(t),scopeId:Fn,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:a,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:Pn};return s?(Ra(c,n),a&128&&e.normalize(c)):n&&(c.shapeFlag|=g(n)?8:16),Sa>0&&!o&&ba&&(c.patchFlag>0||a&6)&&c.patchFlag!==32&&ba.push(c),c}var U=ja;function ja(e,t=null,n=null,r=0,i=null,a=!1){if((!e||e===Yr)&&(e=_a),Da(e)){let r=Na(e,t,!0);return n&&Ra(r,n),Sa>0&&!a&&ba&&(r.shapeFlag&6?ba[ba.indexOf(e)]=r:ba.push(r)),r.patchFlag=-2,r}if(so(e)&&(e=e.__vccOpts),t){t=Ma(t);let{class:e,style:n}=t;e&&!g(e)&&(t.class=k(e)),v(n)&&(Kt(n)&&!d(n)&&(n=s({},n)),t.style=O(n))}let o=g(e)?1:ma(e)?128:Yn(e)?64:v(e)?4:h(e)?2:0;return H(e,t,n,r,i,o,a,!0)}function Ma(e){return e?Kt(e)||Vi(e)?s({},e):e:null}function Na(e,t,n=!1,r=!1){let{props:i,ref:a,patchFlag:o,children:s,transition:c}=e,l=t?W(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&ka(l),ref:t&&t.ref?n&&a?d(a)?a.concat(Aa(t)):[a,Aa(t)]:Aa(t):a,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:s,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==B?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Na(e.ssContent),ssFallback:e.ssFallback&&Na(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&br(u,c.clone(u)),u}function Pa(e=` `,t=0){return U(ga,null,e,t)}function Fa(e=``,t=!1){return t?(V(),Ea(_a,null,e)):U(_a,null,e)}function Ia(e){return e==null||typeof e==`boolean`?U(_a):d(e)?U(B,null,e.slice()):Da(e)?La(e):U(ga,null,String(e))}function La(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Na(e)}function Ra(e,t){let n=0,{shapeFlag:r}=e;if(t==null)t=null;else if(d(t))n=16;else if(typeof t==`object`)if(r&65){let n=t.default;n&&(n._c&&(n._d=!1),Ra(e,n()),n._c&&(n._d=!0));return}else{n=32;let r=t._;!r&&!Vi(t)?t._ctx=Pn:r===3&&Pn&&(Pn.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else h(t)?(t={default:t,_ctx:Pn},n=32):(t=String(t),r&64?(n=16,t=[Pa(t)]):n=8);e.children=t,e.shapeFlag|=n}function W(...e){let t={};for(let n=0;nUa||Pn,Ga,Ka;{let e=de(),t=(t,n)=>{let r;return(r=e[t])||(r=e[t]=[]),r.push(n),e=>{r.length>1?r.forEach(t=>t(e)):r[0](e)}};Ga=t(`__VUE_INSTANCE_SETTERS__`,e=>Ua=e),Ka=t(`__VUE_SSR_SETTERS__`,e=>Xa=e)}var qa=e=>{let t=Ua;return Ga(e),e.scope.on(),()=>{e.scope.off(),Ga(t)}},Ja=()=>{Ua&&Ua.scope.off(),Ga(null)};function Ya(e){return e.vnode.shapeFlag&4}var Xa=!1;function Za(e,t=!1,n=!1){t&&Ka(t);let{props:r,children:i}=e.vnode,a=Ya(e);Hi(e,r,a,t),ta(e,i,n||t);let o=a?Qa(e,t):void 0;return t&&Ka(!1),o}function Qa(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,oi);let{setup:r}=n;if(r){Ke();let n=e.setupContext=r.length>1?io(e):null,i=qa(e),a=mn(r,e,0,[e.props,n]),o=y(a);if(qe(),i(),(o||e.sp)&&!kr(e)&&wr(e),o){if(a.then(Ja,Ja),t)return a.then(n=>{$a(e,n,t)}).catch(t=>{gn(t,e,0)});e.asyncDep=a}else $a(e,a,t)}else no(e,t)}function $a(e,t,n){h(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:v(t)&&(e.setupState=en(t)),no(e,n)}var eo,to;function no(e,t,n){let i=e.type;if(!e.render){if(!t&&eo&&!i.render){let t=i.template||pi(e).template;if(t){let{isCustomElement:n,compilerOptions:r}=e.appContext.config,{delimiters:a,compilerOptions:o}=i;i.render=eo(t,s(s({isCustomElement:n,delimiters:a},r),o))}}e.render=i.render||r,to&&to(e)}{let t=qa(e);Ke();try{li(e)}finally{qe(),t()}}}var ro={get(e,t){return rt(e,`get`,``),e[t]}};function io(e){return{attrs:new Proxy(e.attrs,ro),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function ao(e){return e.exposed?e.exposeProxy||=new Proxy(en(qt(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in ii)return ii[n](e)},has(e,t){return t in e||t in ii}}):e.proxy}function oo(e,t=!0){return h(e)?e.displayName||e.name:e.name||t&&e.__name}function so(e){return h(e)&&`__vccOpts`in e}var G=(e,t)=>sn(e,t,Xa);function co(e,t,n){try{Ca(-1);let r=arguments.length;return r===2?v(t)&&!d(t)?Da(t)?U(e,null,[t]):U(e,t):U(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Da(n)&&(n=[n]),U(e,t,n))}finally{Ca(1)}}var lo=`3.5.35`,uo=r,fo=void 0,po=typeof window<`u`&&window.trustedTypes;if(po)try{fo=po.createPolicy(`vue`,{createHTML:e=>e})}catch{}var mo=fo?e=>fo.createHTML(e):e=>e,ho=`http://www.w3.org/2000/svg`,go=`http://www.w3.org/1998/Math/MathML`,_o=typeof document<`u`?document:null,vo=_o&&_o.createElement(`template`),yo={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{let i=t===`svg`?_o.createElementNS(ho,e):t===`mathml`?_o.createElementNS(go,e):n?_o.createElement(e,{is:n}):_o.createElement(e);return e===`select`&&r&&r.multiple!=null&&i.setAttribute(`multiple`,r.multiple),i},createText:e=>_o.createTextNode(e),createComment:e=>_o.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>_o.querySelector(e),setScopeId(e,t){e.setAttribute(t,``)},insertStaticContent(e,t,n,r,i,a){let o=n?n.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),!(i===a||!(i=i.nextSibling)););else{vo.innerHTML=mo(r===`svg`?`${e}`:r===`mathml`?`${e}`:e);let i=vo.content;if(r===`svg`||r===`mathml`){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},bo=`transition`,xo=`animation`,So=Symbol(`_vtc`),Co={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},wo=s({},dr,Co),To=(e=>(e.displayName=`Transition`,e.props=wo,e))((e,{slots:t})=>co(hr,Oo(e),t)),Eo=(e,t=[])=>{d(e)?e.forEach(e=>e(...t)):e&&e(...t)},Do=e=>e?d(e)?e.some(e=>e.length>1):e.length>1:!1;function Oo(e){let t={};for(let n in e)n in Co||(t[n]=e[n]);if(e.css===!1)return t;let{name:n=`v`,type:r,duration:i,enterFromClass:a=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:c=`${n}-enter-to`,appearFromClass:l=a,appearActiveClass:u=o,appearToClass:d=c,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,h=ko(i),g=h&&h[0],_=h&&h[1],{onBeforeEnter:v,onEnter:y,onEnterCancelled:b,onLeave:x,onLeaveCancelled:S,onBeforeAppear:C=v,onAppear:w=y,onAppearCancelled:T=b}=t,E=(e,t,n,r)=>{e._enterCancelled=r,Mo(e,t?d:c),Mo(e,t?u:o),n&&n()},ee=(e,t)=>{e._isLeaving=!1,Mo(e,f),Mo(e,m),Mo(e,p),t&&t()},D=e=>(t,n)=>{let i=e?w:y,o=()=>E(t,e,n);Eo(i,[t,o]),No(()=>{Mo(t,e?l:a),jo(t,e?d:c),Do(i)||Fo(t,r,g,o)})};return s(t,{onBeforeEnter(e){Eo(v,[e]),jo(e,a),jo(e,o)},onBeforeAppear(e){Eo(C,[e]),jo(e,l),jo(e,u)},onEnter:D(!1),onAppear:D(!0),onLeave(e,t){e._isLeaving=!0;let n=()=>ee(e,t);jo(e,f),e._enterCancelled?(jo(e,p),zo(e)):(zo(e),jo(e,p)),No(()=>{e._isLeaving&&(Mo(e,f),jo(e,m),Do(x)||Fo(e,r,_,n))}),Eo(x,[e,n])},onEnterCancelled(e){E(e,!1,void 0,!0),Eo(b,[e])},onAppearCancelled(e){E(e,!0,void 0,!0),Eo(T,[e])},onLeaveCancelled(e){ee(e),Eo(S,[e])}})}function ko(e){if(e==null)return null;if(v(e))return[Ao(e.enter),Ao(e.leave)];{let t=Ao(e);return[t,t]}}function Ao(e){return le(e)}function jo(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[So]||(e[So]=new Set)).add(t)}function Mo(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));let n=e[So];n&&(n.delete(t),n.size||(e[So]=void 0))}function No(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}var Po=0;function Fo(e,t,n,r){let i=e._endId=++Po,a=()=>{i===e._endId&&r()};if(n!=null)return setTimeout(a,n);let{type:o,timeout:s,propCount:c}=Io(e,t);if(!o)return r();let l=o+`end`,u=0,d=()=>{e.removeEventListener(l,f),a()},f=t=>{t.target===e&&++u>=c&&d()};setTimeout(()=>{u(n[e]||``).split(`, `),i=r(`${bo}Delay`),a=r(`${bo}Duration`),o=Lo(i,a),s=r(`${xo}Delay`),c=r(`${xo}Duration`),l=Lo(s,c),u=null,d=0,f=0;t===bo?o>0&&(u=bo,d=o,f=a.length):t===xo?l>0&&(u=xo,d=l,f=c.length):(d=Math.max(o,l),u=d>0?o>l?bo:xo:null,f=u?u===bo?a.length:c.length:0);let p=u===bo&&/\b(?:transform|all)(?:,|$)/.test(r(`${bo}Property`).toString());return{type:u,timeout:d,propCount:f,hasTransform:p}}function Lo(e,t){for(;e.lengthRo(t)+Ro(e[n])))}function Ro(e){return e===`auto`?0:Number(e.slice(0,-1).replace(`,`,`.`))*1e3}function zo(e){return(e?e.ownerDocument:document).body.offsetHeight}function Bo(e,t,n){let r=e[So];r&&(t=(t?[t,...r]:[...r]).join(` `)),t==null?e.removeAttribute(`class`):n?e.setAttribute(`class`,t):e.className=t}var Vo=Symbol(`_vod`),Ho=Symbol(`_vsh`),Uo={name:`show`,beforeMount(e,{value:t},{transition:n}){e[Vo]=e.style.display===`none`?``:e.style.display,n&&t?n.beforeEnter(e):Wo(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),Wo(e,!0),r.enter(e)):r.leave(e,()=>{Wo(e,!1)}):Wo(e,t))},beforeUnmount(e,{value:t}){Wo(e,t)}};function Wo(e,t){e.style.display=t?e[Vo]:`none`,e[Ho]=!t}var Go=Symbol(``),Ko=/(?:^|;)\s*display\s*:/;function qo(e,t,n){let r=e.style,i=g(n),a=!1;if(n&&!i){if(t)if(g(t))for(let e of t.split(`;`)){let t=e.slice(0,e.indexOf(`:`)).trim();n[t]??Yo(r,t,``)}else for(let e in t)n[e]??Yo(r,e,``);for(let i in n){i===`display`&&(a=!0);let o=n[i];o==null?Yo(r,i,``):$o(e,i,!g(t)&&t?t[i]:void 0,o)||Yo(r,i,o)}}else if(i){if(t!==n){let e=r[Go];e&&(n+=`;`+e),r.cssText=n,a=Ko.test(n)}}else t&&e.removeAttribute(`style`);Vo in e&&(e[Vo]=a?r.display:``,e[Ho]&&(r.display=`none`))}var Jo=/\s*!important$/;function Yo(e,t,n){if(d(n))n.forEach(n=>Yo(e,t,n));else if(n??=``,t.startsWith(`--`))e.setProperty(t,n);else{let r=Qo(e,t);Jo.test(n)?e.setProperty(ne(r),n.replace(Jo,``),`important`):e[r]=n}}var Xo=[`Webkit`,`Moz`,`ms`],Zo={};function Qo(e,t){let n=Zo[t];if(n)return n;let r=D(t);if(r!==`filter`&&r in e)return Zo[t]=r;r=re(r);for(let n=0;nls||=(us.then(()=>ls=0),Date.now());function fs(e,t){let n=e=>{if(!e._vts)e._vts=Date.now();else if(e._vts<=n.attached)return;let r=n.value;if(d(r)){let n=e.stopImmediatePropagation;e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0};let i=r.slice(),a=[e];for(let n=0;ne.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,ms=(e,t,n,r,i,s)=>{let c=i===`svg`;t===`class`?Bo(e,r,c):t===`style`?qo(e,n,r):a(t)?o(t)||os(e,t,n,r,s):(t[0]===`.`?(t=t.slice(1),!0):t[0]===`^`?(t=t.slice(1),!1):hs(e,t,r,c))?(ns(e,t,r),!e.tagName.includes(`-`)&&(t===`value`||t===`checked`||t===`selected`)&&ts(e,t,r,c,s,t!==`value`)):e._isVueCE&&(gs(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!g(r)))?ns(e,D(t),r,s,t):(t===`true-value`?e._trueValue=r:t===`false-value`&&(e._falseValue=r),ts(e,t,r,c))};function hs(e,t,n,r){if(r)return!!(t===`innerHTML`||t===`textContent`||t in e&&ps(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`){let t=e.tagName;if(t===`IMG`||t===`VIDEO`||t===`CANVAS`||t===`SOURCE`)return!1}return ps(t)&&g(n)?!1:t in e}function gs(e,t){let n=e._def.props;if(!n)return!1;let r=D(t);return Array.isArray(n)?n.some(e=>D(e)===r):Object.keys(n).some(e=>D(e)===r)}var _s=new WeakMap,vs=new WeakMap,ys=Symbol(`_moveCb`),bs=Symbol(`_enterCb`),xs=(e=>(delete e.props.mode,e))({name:`TransitionGroup`,props:s({},wo,{tag:String,moveClass:String}),setup(e,{slots:t}){let n=Wa(),r=lr(),i,a;return Br(()=>{if(!i.length)return;let t=e.moveClass||`${e.name||`v`}-move`;if(!Es(i[0].el,n.vnode.el,t)){i=[];return}i.forEach(Ss),i.forEach(Cs);let r=i.filter(ws);zo(n.vnode.el),r.forEach(e=>{let n=e.el,r=n.style;jo(n,t),r.transform=r.webkitTransform=r.transitionDuration=``;let i=n[ys]=e=>{e&&e.target!==n||(!e||e.propertyName.endsWith(`transform`))&&(n.removeEventListener(`transitionend`,i),n[ys]=null,Mo(n,t))};n.addEventListener(`transitionend`,i)}),i=[]}),()=>{let o=j(e),s=Oo(o),c=o.tag||B;if(i=[],a)for(let e=0;e{e.split(/\s+/).forEach(e=>e&&r.classList.remove(e))}),n.split(/\s+/).forEach(e=>e&&r.classList.add(e)),r.style.display=`none`;let a=t.nodeType===1?t:t.parentNode;a.appendChild(r);let{hasTransform:o}=Io(r);return a.removeChild(r),o}var Ds=e=>{let t=e.props[`onUpdate:modelValue`]||!1;return d(t)?e=>oe(t,e):t};function Os(e){e.target.composing=!0}function ks(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event(`input`)))}var As=Symbol(`_assign`);function js(e,t,n){return t&&(e=e.trim()),n&&(e=ce(e)),e}var Ms={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e[As]=Ds(i);let a=r||i.props&&i.props.type===`number`;rs(e,t?`change`:`input`,t=>{t.target.composing||e[As](js(e.value,n,a))}),(n||a)&&rs(e,`change`,()=>{e.value=js(e.value,n,a)}),t||(rs(e,`compositionstart`,Os),rs(e,`compositionend`,ks),rs(e,`change`,ks))},mounted(e,{value:t}){e.value=t??``},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:a}},o){if(e[As]=Ds(o),e.composing)return;let s=(a||e.type===`number`)&&!/^0\d/.test(e.value)?ce(e.value):e.value,c=t??``;if(s===c)return;let l=e.getRootNode();(l instanceof Document||l instanceof ShadowRoot)&&l.activeElement===e&&e.type!==`range`&&(r&&t===n||i&&e.value.trim()===c)||(e.value=c)}},Ns=[`ctrl`,`shift`,`alt`,`meta`],Ps={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)=>Ns.some(n=>e[`${n}Key`]&&!t.includes(n))},Fs=(e,t)=>{if(!e)return e;let n=e._withMods||={},r=t.join(`.`);return n[r]||(n[r]=((n,...r)=>{for(let e=0;e{let n=e._withKeys||={},r=t.join(`.`);return n[r]||(n[r]=(n=>{if(!(`key`in n))return;let r=ne(n.key);if(t.some(e=>e===r||Is[e]===r))return e(n)}))},Rs=s({patchProp:ms},yo),zs;function Bs(){return zs||=ia(Rs)}var Vs=((...e)=>{let t=Bs().createApp(...e),{mount:n}=t;return t.mount=e=>{let r=Us(e);if(!r)return;let i=t._component;!h(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent=``);let a=n(r,!1,Hs(r));return r instanceof Element&&(r.removeAttribute(`v-cloak`),r.setAttribute(`data-v-app`,``)),a},t});function Hs(e){if(e instanceof SVGElement)return`svg`;if(typeof MathMLElement==`function`&&e instanceof MathMLElement)return`mathml`}function Us(e){return g(e)?document.querySelector(e):e}function Ws(e){uo(`Vuetify: ${e}`)}function Gs(e){uo(`Vuetify error: ${e}`)}function Ks(e,t){t=Array.isArray(t)?t.slice(0,-1).map(e=>`'${e}'`).join(`, `)+` or '${t.at(-1)}'`:`'${t}'`,uo(`[Vuetify UPGRADE] '${e}' is deprecated, use ${t} instead.`)}var K=typeof window<`u`,qs=K&&`IntersectionObserver`in window,Js=K&&(`ontouchstart`in window||window.navigator.maxTouchPoints>0);K&&`EyeDropper`in window;var Ys=K&&`matchMedia`in window&&typeof window.matchMedia==`function`,Xs=()=>Ys&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches;function Zs(e,t,n){let r=t.length-1;if(r<0)return e===void 0?n:e;for(let i=0;it+n)}function q(e,t=`px`){if(e==null||e===``)return;let n=Number(e);if(isNaN(n))return String(e);if(isFinite(n))return`${n}${t}`}function tc(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function nc(e){let t;return typeof e==`object`&&!!e&&((t=Object.getPrototypeOf(e))===Object.prototype||t===null)}function rc(e){if(e&&`$el`in e){let t=e.$el;return t?.nodeType===Node.TEXT_NODE?t.nextElementSibling:t}return e}Object.freeze({enter:13,tab:9,delete:46,esc:27,space:32,up:38,down:40,left:37,right:39,end:35,home:36,del:46,backspace:8,insert:45,pageup:33,pagedown:34,shift:16});var ic=Object.freeze({enter:`Enter`,tab:`Tab`,delete:`Delete`,esc:`Escape`,space:`Space`,up:`ArrowUp`,down:`ArrowDown`,left:`ArrowLeft`,right:`ArrowRight`,end:`End`,home:`Home`,del:`Delete`,backspace:`Backspace`,insert:`Insert`,pageup:`PageUp`,pagedown:`PageDown`,shift:`Shift`});function ac(e){return Object.keys(e)}function oc(e,t){return t.every(t=>e.hasOwnProperty(t))}function sc(e,t){let n={};for(let r of t)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function cc(e,t,n){let r=Object.create(null),i=Object.create(null);for(let a in e)t.some(e=>e instanceof RegExp?e.test(a):e===a)&&!n?.some(e=>e===a)?r[a]=e[a]:i[a]=e[a];return[r,i]}function lc(e,t){let n={...e};return t.forEach(e=>delete n[e]),n}var uc=/^on[^a-z]/,dc=e=>uc.test(e),fc=`onAfterscriptexecute.onAnimationcancel.onAnimationend.onAnimationiteration.onAnimationstart.onAuxclick.onBeforeinput.onBeforescriptexecute.onChange.onClick.onCompositionend.onCompositionstart.onCompositionupdate.onContextmenu.onCopy.onCut.onDblclick.onFocusin.onFocusout.onFullscreenchange.onFullscreenerror.onGesturechange.onGestureend.onGesturestart.onGotpointercapture.onInput.onKeydown.onKeypress.onKeyup.onLostpointercapture.onMousedown.onMousemove.onMouseout.onMouseover.onMouseup.onMousewheel.onPaste.onPointercancel.onPointerdown.onPointerenter.onPointerleave.onPointermove.onPointerout.onPointerover.onPointerup.onReset.onSelect.onSubmit.onTouchcancel.onTouchend.onTouchmove.onTouchstart.onTransitioncancel.onTransitionend.onTransitionrun.onTransitionstart.onWheel`.split(`.`),pc=[`ArrowUp`,`ArrowDown`,`ArrowRight`,`ArrowLeft`,`Enter`,`Escape`,`Tab`,` `];function mc(e){return e.isComposing&&pc.includes(e.key)}function hc(e){let[t,n]=cc(e,[uc]),r=lc(t,fc),[i,a]=cc(n,[`class`,`style`,`id`,`inert`,/^data-/]);return Object.assign(i,t),Object.assign(a,r),[i,a]}function gc(e){return e==null?[]:Array.isArray(e)?e:[e]}function _c(e,t){let n=0,r=(...r)=>{clearTimeout(n),n=setTimeout(()=>e(...r),F(t))};return r.clear=()=>{clearTimeout(n)},r.immediate=e,r}function vc(e,t=0,n=1){return Math.max(t,Math.min(n,e))}function yc(e,t,n=`0`){return e+n.repeat(Math.max(0,t-e.length))}function bc(e,t,n=`0`){return n.repeat(Math.max(0,t-e.length))+e}function xc(e,t=1){let n=[],r=0;for(;r=t&&re.type===B?wc(e.children):e).flat()}function Tc(e=``){if(Tc.cache.has(e))return Tc.cache.get(e);let t=e.replace(/[^a-z]/gi,`-`).replace(/\B([A-Z])/g,`-$1`).toLowerCase();return Tc.cache.set(e,t),t}Tc.cache=new Map;function Ec(e,t){if(!t||typeof t!=`object`)return[];if(Array.isArray(t))return t.map(t=>Ec(e,t)).flat(1);if(t.suspense)return Ec(e,t.ssContent);if(Array.isArray(t.children))return t.children.map(t=>Ec(e,t)).flat(1);if(t.component){if(Object.getOwnPropertyDescriptor(t.component.provides,e))return[t.component];if(t.component.subTree)return Ec(e,t.component.subTree).flat(1)}return[]}var Dc=class{#e=[];#t=0;constructor(e){this.size=e}get isFull(){return this.#e.length===this.size}push(e){this.#e[this.#t]=e,this.#t=(this.#t+1)%this.size}values(){return this.#e.slice(this.#t).concat(this.#e.slice(0,this.#t))}clear(){this.#e.length=0,this.#t=0}};function Oc(e){let t=zt({});Un(()=>{let n=e();for(let e in n)t[e]=n[e]},{flush:`sync`});let n={};for(let e in t)n[e]=I(()=>t[e]);return n}function kc(e,t){return e.includes(t)}function Ac(e){return e[2].toLowerCase()+e.slice(3)}var jc=()=>[Function,Array];function Mc(e,t){return t=`on`+re(t),!!(e[t]||e[`${t}Once`]||e[`${t}Capture`]||e[`${t}OnceCapture`]||e[`${t}CaptureOnce`])}function Nc(e,...t){if(Array.isArray(e))for(let n of e)n(...t);else typeof e==`function`&&e(...t)}function Pc(e,t=!0){let n=[`button`,`[href]`,`input:not([type="hidden"])`,`select`,`textarea`,`details:not(:has(> summary))`,`details > summary`,`[tabindex]`,`[contenteditable]:not([contenteditable="false"])`,`audio[controls]`,`video[controls]`].map(e=>`${e}${t?`:not([tabindex="-1"])`:``}:not([disabled], [inert])`).join(`, `),r;try{r=[...e.querySelectorAll(n)]}catch(e){return Gs(String(e)),[]}return r.filter(e=>!e.closest(`[inert]`)).filter(e=>!!e.offsetParent||e.getClientRects().length>0).filter(e=>!e.parentElement?.closest(`details:not([open])`)||e.tagName===`SUMMARY`&&e.parentElement?.tagName===`DETAILS`)}function Fc(e,t,n){let r,i=e.indexOf(document.activeElement),a=t===`next`?1:-1;do i+=a,r=e[i];while((!r||r.offsetParent==null||!(n?.(r)??!0))&&i=0);return r}function Ic(e,t,n){let r=Pc(e);if(t==null)(e===document.activeElement||!e.contains(document.activeElement))&&r[0]?.focus(n);else if(t===`first`)r[0]?.focus(n);else if(t===`last`)r.at(-1)?.focus(n);else if(typeof t==`number`)r[t]?.focus(n);else{let i=Fc(r,t);i?i.focus():Ic(e,t===`next`?`first`:`last`,n)}}function Lc(e){return e==null||typeof e==`string`&&e.trim()===``}function Rc(){}function zc(e,t){if(!(K&&typeof CSS<`u`&&CSS.supports!==void 0&&CSS.supports(`selector(${t})`)))return null;try{return!!e&&e.matches(t)}catch{return null}}function Bc(e){return e.some(e=>Da(e)?e.type===_a?!1:e.type!==B||Bc(e.children):!0)?e:null}function Vc(e,t){if(!K||e===0)return t(),()=>{};let n=window.setTimeout(t,e);return()=>window.clearTimeout(n)}function Hc(e,t){let n=e.clientX,r=e.clientY,i=t.getBoundingClientRect(),a=i.left,o=i.top,s=i.right,c=i.bottom;return n>=a&&n<=s&&r>=o&&r<=c}function Uc(){let e=P(),t=t=>{e.value=t};return Object.defineProperty(t,"value",{enumerable:!0,get:()=>e.value,set:t=>e.value=t}),Object.defineProperty(t,"el",{enumerable:!0,get:()=>rc(e.value)}),t}function Wc(e){let t=e.key.length===1,n=!e.ctrlKey&&!e.metaKey&&!e.altKey;return t&&n}function Gc(e){return typeof e==`string`||typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`}function Kc(e){return`\\^$*+?.()|{}[]`.includes(e)?`\\${e}`:e}function qc(e){let t={};for(let n in e)t[D(n)]=e[n];return t}function Jc(e){let t=[`checked`,`disabled`];return Object.fromEntries(Object.entries(e).filter(([e,n])=>t.includes(e)?!!n:n!==void 0))}var Yc=[`top`,`bottom`],Xc=[`start`,`end`,`left`,`right`];function Zc(e,t){let[n,r]=e.split(` `);return r||=kc(Yc,n)?`start`:kc(Xc,n)?`top`:`center`,{side:Qc(n,t),align:Qc(r,t)}}function Qc(e,t){return e===`start`?t?`right`:`left`:e===`end`?t?`left`:`right`:e}function $c(e){return{side:{center:`center`,top:`bottom`,bottom:`top`,left:`right`,right:`left`}[e.side],align:e.align}}function el(e){return{side:e.side,align:{center:`center`,top:`bottom`,bottom:`top`,left:`right`,right:`left`}[e.align]}}function tl(e){return{side:e.align,align:e.side}}function nl(e){return kc(Yc,e.side)?`y`:`x`}var rl=class{constructor(e){let t=document.body.currentCSSZoom??1,n=e instanceof Element,r=n?1+(1-t)/t:1,{x:i,y:a,width:o,height:s}=n?e.getBoundingClientRect():e;this.x=i*r,this.y=a*r,this.width=o*r,this.height=s*r}get top(){return this.y}get bottom(){return this.y+this.height}get left(){return this.x}get right(){return this.x+this.width}};function il(e,t){return{x:{before:Math.max(0,t.left-e.left),after:Math.max(0,e.right-t.right)},y:{before:Math.max(0,t.top-e.top),after:Math.max(0,e.bottom-t.bottom)}}}function al(e){if(Array.isArray(e)){let t=document.body.currentCSSZoom??1,n=1+(1-t)/t;return new rl({x:e[0]*n,y:e[1]*n,width:0*n,height:0*n})}else return new rl(e)}function ol(e){if(e===document.documentElement)if(visualViewport){let e=document.body.currentCSSZoom??1;return new rl({x:visualViewport.scale>1?0:visualViewport.offsetLeft,y:visualViewport.scale>1?0:visualViewport.offsetTop,width:visualViewport.width*visualViewport.scale/e,height:visualViewport.height*visualViewport.scale/e})}else return new rl({x:0,y:0,width:document.documentElement.clientWidth,height:document.documentElement.clientHeight});else return new rl(e)}function sl(e){let t=new rl(e),n=getComputedStyle(e),r=n.transform;if(r){let i,a,o,s,c;if(r.startsWith(`matrix3d(`))i=r.slice(9,-1).split(/, /),a=Number(i[0]),o=Number(i[5]),s=Number(i[12]),c=Number(i[13]);else if(r.startsWith(`matrix(`))i=r.slice(7,-1).split(/, /),a=Number(i[0]),o=Number(i[3]),s=Number(i[4]),c=Number(i[5]);else return new rl(t);let l=n.transformOrigin;return new rl({x:t.x-s-(1-a)*parseFloat(l),y:t.y-c-(1-o)*parseFloat(l.slice(l.indexOf(` `)+1)),width:a?t.width/a:e.offsetWidth+1,height:o?t.height/o:e.offsetHeight+1})}else return new rl(t)}function cl(e,t,n){if(e.animate===void 0)return{finished:Promise.resolve()};let r;try{r=e.animate(t,n)}catch{return{finished:Promise.resolve()}}return r.finished===void 0&&(r.finished=new Promise(e=>{r.onfinish=()=>{e(r)}})),r}var ll=new WeakMap;function ul(e,t){Object.keys(t).forEach(n=>{if(dc(n)){let r=Ac(n),i=ll.get(e);if(t[n]==null)i?.forEach(t=>{let[n,a]=t;n===r&&(e.removeEventListener(r,a),i.delete(t))});else if(!i||![...i].some(e=>e[0]===r&&e[1]===t[n])){e.addEventListener(r,t[n]);let a=i||new Set;a.add([r,t[n]]),ll.has(e)||ll.set(e,a)}}else t[n]==null?e.removeAttribute(n):e.setAttribute(n,t[n])})}function dl(e,t){Object.keys(t).forEach(t=>{if(dc(t)){let n=Ac(t),r=ll.get(e);r?.forEach(t=>{let[i,a]=t;i===n&&(e.removeEventListener(n,a),r.delete(t))})}else e.removeAttribute(t)})}var fl=2.4,pl=.2126729,ml=.7151522,hl=.072175,gl=.55,_l=.58,vl=.57,yl=.62,bl=.03,xl=1.45,Sl=5e-4,Cl=1.25,wl=1.25,Tl=.078,El=12.82051282051282,Dl=.06,Ol=.001;function kl(e,t){let n=(e.r/255)**fl,r=(e.g/255)**fl,i=(e.b/255)**fl,a=(t.r/255)**fl,o=(t.g/255)**fl,s=(t.b/255)**fl,c=n*pl+r*ml+i*hl,l=a*pl+o*ml+s*hl;if(c<=bl&&(c+=(bl-c)**xl),l<=bl&&(l+=(bl-l)**xl),Math.abs(l-c)c){let e=(l**gl-c**_l)*Cl;u=e-.001?0:e>-.078?e-e*El*Dl:e+Dl}return u*100}var Al=.20689655172413793,jl=e=>e>Al**3?Math.cbrt(e):e/(3*Al**2)+4/29,Ml=e=>e>Al?e**3:3*Al**2*(e-4/29);function Nl(e){let t=jl,n=t(e[1]);return[116*n-16,500*(t(e[0]/.95047)-n),200*(n-t(e[2]/1.08883))]}function Pl(e){let t=Ml,n=(e[0]+16)/116;return[t(n+e[1]/500)*.95047,t(n),t(n-e[2]/200)*1.08883]}var Fl=[[3.2406,-1.5372,-.4986],[-.9689,1.8758,.0415],[.0557,-.204,1.057]],Il=e=>e<=.0031308?e*12.92:1.055*e**(1/2.4)-.055,Ll=[[.4124,.3576,.1805],[.2126,.7152,.0722],[.0193,.1192,.9505]],Rl=e=>e<=.04045?e/12.92:((e+.055)/1.055)**2.4;function zl(e){let t=[,,,],n=Il,r=Fl;for(let i=0;i<3;++i)t[i]=Math.round(vc(n(r[i][0]*e[0]+r[i][1]*e[1]+r[i][2]*e[2]))*255);return{r:t[0],g:t[1],b:t[2]}}function Bl({r:e,g:t,b:n}){let r=[0,0,0],i=Rl,a=Ll;e=i(e/255),t=i(t/255),n=i(n/255);for(let i=0;i<3;++i)r[i]=a[i][0]*e+a[i][1]*t+a[i][2]*n;return r}function Vl(e){return!!e&&/^(#|var\(--|(rgb|hsl)a?\()/.test(e)}function Hl(e){return Vl(e)&&!/^((rgb|hsl)a?\()?var\(--/.test(e)}var Ul=/^(?(?:rgb|hsl)a?)\((?.+)\)/,Wl={rgb:(e,t,n,r)=>({r:e,g:t,b:n,a:r}),rgba:(e,t,n,r)=>({r:e,g:t,b:n,a:r}),hsl:(e,t,n,r)=>ql({h:e,s:t,l:n,a:r}),hsla:(e,t,n,r)=>ql({h:e,s:t,l:n,a:r}),hsv:(e,t,n,r)=>Kl({h:e,s:t,v:n,a:r}),hsva:(e,t,n,r)=>Kl({h:e,s:t,v:n,a:r})};function Gl(e){if(typeof e==`number`)return(isNaN(e)||e<0||e>16777215)&&Ws(`'${e}' is not a valid hex color`),{r:(e&16711680)>>16,g:(e&65280)>>8,b:e&255};if(typeof e==`string`&&Ul.test(e)){let{groups:t}=e.match(Ul),{fn:n,values:r}=t,i=r.split(/,\s*|\s*\/\s*|\s+/).map((e,t)=>e.endsWith(`%`)||t>0&&t<3&&[`hsl`,`hsla`,`hsv`,`hsva`].includes(n)?parseFloat(e)/100:parseFloat(e));return Wl[n](...i)}else if(typeof e==`string`){let t=e.startsWith(`#`)?e.slice(1):e;[3,4].includes(t.length)?t=t.split(``).map(e=>e+e).join(``):[6,8].includes(t.length)||Ws(`'${e}' is not a valid hex(a) color`);let n=parseInt(t,16);return(isNaN(n)||n<0||n>4294967295)&&Ws(`'${e}' is not a valid hex(a) color`),Zl(t)}else if(typeof e==`object`){if(oc(e,[`r`,`g`,`b`]))return e;if(oc(e,[`h`,`s`,`l`]))return Kl(Jl(e));if(oc(e,[`h`,`s`,`v`]))return Kl(e)}throw TypeError(`Invalid color: ${e==null?e:String(e)||e.constructor.name}\nExpected #hex, #hexa, rgb(), rgba(), hsl(), hsla(), object or number`)}function Kl(e){let{h:t,s:n,v:r,a:i}=e,a=e=>{let i=(e+t/60)%6;return r-r*n*Math.max(Math.min(i,4-i,1),0)},o=[a(5),a(3),a(1)].map(e=>Math.round(e*255));return{r:o[0],g:o[1],b:o[2],a:i}}function ql(e){return Kl(Jl(e))}function Jl(e){let{h:t,s:n,l:r,a:i}=e,a=r+n*Math.min(r,1-r);return{h:t,s:a===0?0:2-2*r/a,v:a,a:i}}function Yl(e){let t=Math.round(e).toString(16);return(`00`.substr(0,2-t.length)+t).toUpperCase()}function Xl({r:e,g:t,b:n,a:r}){return`#${[Yl(e),Yl(t),Yl(n),r===void 0?``:Yl(Math.round(r*255))].join(``)}`}function Zl(e){e=Ql(e);let[t,n,r,i]=xc(e,2).map(e=>parseInt(e,16));return i=i===void 0?i:i/255,{r:t,g:n,b:r,a:i}}function Ql(e){return e.startsWith(`#`)&&(e=e.slice(1)),e=e.replace(/([^0-9a-f])/gi,`F`),(e.length===3||e.length===4)&&(e=e.split(``).map(e=>e+e).join(``)),e.length!==6&&(e=yc(yc(e,6),8,`F`)),e}function $l(e,t){let n=Nl(Bl(e));return n[0]+=t*10,zl(Pl(n))}function eu(e,t){let n=Nl(Bl(e));return n[0]-=t*10,zl(Pl(n))}function tu(e){return Bl(Gl(e))[1]}function nu(e){let t=Math.abs(kl(Gl(0),Gl(e)));return Math.abs(kl(Gl(16777215),Gl(e)))>Math.min(t,50)}function J(e,t){return n=>Object.keys(e).reduce((r,i)=>{let a=typeof e[i]==`object`&&e[i]!=null&&!Array.isArray(e[i])?e[i]:{type:e[i]};return n&&i in n?r[i]={...a,default:n[i]}:r[i]=a,t&&!r[i].source&&(r[i].source=t),r},{})}var Y=J({class:[String,Array,Object],style:{type:[String,Array,Object],default:null}},`component`);function ru(e,t){let n=Wa();if(!n)throw Error(`[Vuetify] ${e} ${t||`must be called from inside a setup function`}`);return n}function iu(e=`composables`){let t=ru(e).type;return Tc(t?.aliasName||t?.name)}function au(e,t=ru(`injectSelf`)){let{provides:n}=t;if(n&&e in n)return n[e]}var ou=Symbol.for(`vuetify:defaults`);function su(e){return N(e)}function cu(){let e=R(ou);if(!e)throw Error(`[Vuetify] Could not find defaults instance`);return e}function lu(e,t){let n=cu(),r=N(e),i=G(()=>{if(F(t?.disabled))return n.value;let e=F(t?.scoped),i=F(t?.reset),a=F(t?.root);if(r.value==null&&!(e||i||a))return n.value;let o=Cc(r.value,{prev:n.value});if(e)return o;if(i||a){let e=Number(i||1/0);for(let t=0;t<=e&&!(!o||!(`prev`in o));t++)o=o.prev;return o&&typeof a==`string`&&a in o&&(o=Cc(Cc(o,{prev:o}),o[a])),o}return o.prev?Cc(o.prev,o,void 0,(e,t)=>t!==void 0):o});return zn(ou,i),i}function uu(e,t){return e.props&&(e.props[t]!==void 0||e.props[Tc(t)]!==void 0)}function du(e={},t,n=cu()){let r=ru(`useDefaults`);if(t=t??r.type.name??r.type.__name,!t)throw Error(`[Vuetify] Could not determine component name`);let i=G(()=>n.value?.[e._as??t]),a=new Proxy(e,{get(e,t){let a=Reflect.get(e,t);if(t===`class`||t===`style`)return[i.value?.[t],a].filter(e=>e!=null);if(uu(r.vnode,t))return a;let o=i.value?.[t];if(o!==void 0)return o;let s=n.value?.global?.[t];return s===void 0?a:s}}),o=P();Un(()=>{if(i.value){let e=Object.entries(i.value).filter(([e])=>e.startsWith(e[0].toUpperCase()));o.value=e.length?Object.fromEntries(e):void 0}else o.value=void 0});function s(){let e=au(ou,r);zn(ou,G(()=>o.value?Cc(e?.value??{},o.value):e?.value))}return{props:a,provideSubDefaults:s}}function fu(e){if(e._setup=e._setup??e.setup,!e.name)return Ws(`The component is missing an explicit name, unable to generate default prop value`),e;if(e._setup){e.props=J(e.props??{},e.name)();let t=Object.keys(e.props).filter(e=>e!==`class`&&e!==`style`);e.filterProps=function(e){return sc(e,t)},e.props._as=String,e.setup=function(t,n){let r=cu();if(!r.value)return e._setup(t,n);let{props:i,provideSubDefaults:a}=du(t,t._as??e.name,r),o=e._setup(i,n);return a(),o}}return e}function X(e=!0){return t=>(e?fu:Sr)(t)}function pu(e,t){return t.props=e,t}function mu(e,t=`div`,n){return X()({name:n??re(D(e.replace(/__/g,`-`))),props:{tag:{type:String,default:t},...Y()},setup(t,{slots:n}){return()=>co(t.tag,{class:[e,t.class],style:t.style},n.default?.())}})}function hu(e,t,n,r){if(!n||Gc(e)||Gc(t))return;let i=n.get(e);if(i)i.set(t,r);else{let i=new WeakMap;i.set(t,r),n.set(e,i)}}function gu(e,t,n){if(!n||Gc(e)||Gc(t))return null;let r=n.get(e)?.get(t);if(typeof r==`boolean`)return r;let i=n.get(t)?.get(e);return typeof i==`boolean`?i:null}function _u(e,t,n=new WeakMap){if(e===t)return!0;if(e instanceof Date&&t instanceof Date&&e.getTime()!==t.getTime()||e!==Object(e)||t!==Object(t))return!1;let r=Object.keys(e);return r.length===Object.keys(t).length?gu(e,t,n)||(hu(e,t,n,!0),r.every(r=>_u(e[r],t[r],n))):!1}function vu(e){if(typeof e.getRootNode!=`function`){for(;e.parentNode;)e=e.parentNode;return e===document?document:null}let t=e.getRootNode();return t!==document&&t.getRootNode({composed:!0})!==document?null:t}var yu=`cubic-bezier(0.4, 0, 0.2, 1)`,bu=`cubic-bezier(0.0, 0, 0.2, 1)`,xu=`cubic-bezier(0.4, 0, 1, 1)`,Su={linear:e=>e,easeInQuad:e=>e**2,easeOutQuad:e=>e*(2-e),easeInOutQuad:e=>e<.5?2*e**2:-1+(4-2*e)*e,easeInCubic:e=>e**3,easeOutCubic:e=>--e**3+1,easeInOutCubic:e=>e<.5?4*e**3:(e-1)*(2*e-2)*(2*e-2)+1,easeInQuart:e=>e**4,easeOutQuart:e=>1- --e**4,easeInOutQuart:e=>e<.5?8*e**4:1-8*--e**4,easeInQuint:e=>e**5,easeOutQuint:e=>1+--e**5,easeInOutQuint:e=>e<.5?16*e**5:1+16*--e**5,instant:e=>1};function Cu(e,t=!1){for(;e;){if(t?Eu(e):Tu(e))return e;e=e.parentElement}return document.scrollingElement}function wu(e,t){let n=[];if(t&&e&&!t.contains(e))return n;for(;e&&(Tu(e)&&n.push(e),e!==t);)e=e.parentElement;return n}function Tu(e){if(!e||e.nodeType!==Node.ELEMENT_NODE)return!1;let t=window.getComputedStyle(e),n=t.overflowY===`scroll`||t.overflowY===`auto`&&e.scrollHeight>e.clientHeight,r=t.overflowX===`scroll`||t.overflowX===`auto`&&e.scrollWidth>e.clientWidth;return n||r}function Eu(e){if(!e||e.nodeType!==Node.ELEMENT_NODE)return!1;let t=window.getComputedStyle(e);return[`scroll`,`auto`].includes(t.overflowY)}function Du(e){for(;e;){if(window.getComputedStyle(e).position===`fixed`)return!0;e=e.offsetParent}return!1}function Z(e){let t=ru(`useRender`);t.render=e}function Ou(e,t,n={leading:!0,trailing:!0}){let r=0,i=0,a=!1,o=0;function s(){clearTimeout(r),a=!1,o=0}let c=(...c)=>{clearTimeout(r);let l=Date.now();o||=l;let u=l-Math.max(o,i);function d(){i=Date.now(),r=setTimeout(s,t),e(...c)}a?u>=t?d():n.trailing&&(r=setTimeout(d,t-u)):(a=!0,n.leading&&d())};return c.clear=s,c.immediate=e,c}var Q=[String,Function,Object,Array],ku=Symbol.for(`vuetify:icons`),Au=J({icon:{type:Q},tag:{type:[String,Object,Function],required:!0}},`icon`),ju=X()({name:`VComponentIcon`,props:Au(),setup(e,{slots:t}){return()=>{let n=e.icon;return U(e.tag,null,{default:()=>[e.icon?U(n,null,null):t.default?.()]})}}}),Mu=fu({name:`VSvgIcon`,inheritAttrs:!1,props:Au(),setup(e,{attrs:t}){return()=>U(e.tag,W(t,{style:null}),{default:()=>[H(`svg`,{class:`v-icon__svg`,xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,role:`img`,"aria-hidden":`true`},[Array.isArray(e.icon)?e.icon.map(e=>Array.isArray(e)?H(`path`,{d:e[0],"fill-opacity":e[1]},null):H(`path`,{d:e},null)):H(`path`,{d:e.icon},null)])]})}});fu({name:`VLigatureIcon`,props:Au(),setup(e){return()=>U(e.tag,null,{default:()=>[e.icon]})}});var Nu=fu({name:`VClassIcon`,props:Au(),setup(e){return()=>U(e.tag,{class:k(e.icon)},null)}}),Pu=e=>{let t=R(ku);if(!t)throw Error(`Missing Vuetify Icons provide!`);return{iconData:G(()=>{let n=Qt(e);if(!n)return{component:ju};let r=n;if(typeof r==`string`&&(r=r.trim(),r.startsWith(`$`)&&(r=t.aliases?.[r.slice(1)])),r||Ws(`Could not find aliased icon "${n}"`),Array.isArray(r))return{component:Mu,icon:r};if(typeof r!=`string`)return{component:ju,icon:r};let i=Object.keys(t.sets).find(e=>typeof r==`string`&&r.startsWith(`${e}:`)),a=i?r.slice(i.length+1):r;return{component:t.sets[i??t.defaultSet].component,icon:a}})}},Fu={collapse:`mdi-chevron-up`,complete:`mdi-check`,cancel:`mdi-close-circle`,close:`mdi-close`,delete:`mdi-close-circle`,clear:`mdi-close-circle`,success:`mdi-check-circle`,info:`mdi-information`,warning:`mdi-alert-circle`,error:`mdi-close-circle`,prev:`mdi-chevron-left`,next:`mdi-chevron-right`,checkboxOn:`mdi-checkbox-marked`,checkboxOff:`mdi-checkbox-blank-outline`,checkboxIndeterminate:`mdi-minus-box`,delimiter:`mdi-circle`,sortAsc:`mdi-arrow-up`,sortDesc:`mdi-arrow-down`,expand:`mdi-chevron-down`,menu:`mdi-menu`,subgroup:`mdi-menu-down`,dropdown:`mdi-menu-down`,radioOn:`mdi-radiobox-marked`,radioOff:`mdi-radiobox-blank`,edit:`mdi-pencil`,ratingEmpty:`mdi-star-outline`,ratingFull:`mdi-star`,ratingHalf:`mdi-star-half-full`,loading:`mdi-cached`,first:`mdi-page-first`,last:`mdi-page-last`,unfold:`mdi-unfold-more-horizontal`,file:`mdi-paperclip`,plus:`mdi-plus`,minus:`mdi-minus`,calendar:`mdi-calendar`,treeviewCollapse:`mdi-menu-down`,treeviewExpand:`mdi-menu-right`,tableGroupCollapse:`mdi-chevron-down`,tableGroupExpand:`mdi-chevron-right`,eyeDropper:`mdi-eyedropper`,upload:`mdi-cloud-upload`,color:`mdi-palette`,command:`mdi-apple-keyboard-command`,ctrl:`mdi-apple-keyboard-control`,space:`mdi-keyboard-space`,shift:`mdi-apple-keyboard-shift`,alt:`mdi-apple-keyboard-option`,enter:`mdi-keyboard-return`,arrowup:`mdi-arrow-up`,arrowdown:`mdi-arrow-down`,arrowleft:`mdi-arrow-left`,arrowright:`mdi-arrow-right`,backspace:`mdi-backspace`,play:`mdi-play`,pause:`mdi-pause`,fullscreen:`mdi-fullscreen`,fullscreenExit:`mdi-fullscreen-exit`,volumeHigh:`mdi-volume-high`,volumeMedium:`mdi-volume-medium`,volumeLow:`mdi-volume-low`,volumeOff:`mdi-volume-variant-off`,search:`mdi-magnify`},Iu={component:e=>co(Nu,{...e,class:`mdi`})};function Lu(){return{svg:{component:Mu},class:{component:Nu}}}function Ru(e){let t=Lu(),n=e?.defaultSet??`mdi`;return n===`mdi`&&!t.mdi&&(t.mdi=Iu),Cc({defaultSet:n,sets:t,aliases:{...Fu,vuetify:[`M8.2241 14.2009L12 21L22 3H14.4459L8.2241 14.2009Z`,[`M7.26303 12.4733L7.00113 12L2 3H12.5261C12.5261 3 12.5261 3 12.5261 3L7.26303 12.4733Z`,.6]],"vuetify-outline":`svg:M7.26 12.47 12.53 3H2L7.26 12.47ZM14.45 3 8.22 14.2 12 21 22 3H14.45ZM18.6 5 12 16.88 10.51 14.2 15.62 5ZM7.26 8.35 5.4 5H9.13L7.26 8.35Z`,"vuetify-play":[`m6.376 13.184-4.11-7.192C1.505 4.66 2.467 3 4.003 3h8.532l-.953 1.576-.006.01-.396.677c-.429.732-.214 1.507.194 2.015.404.503 1.092.878 1.869.806a3.72 3.72 0 0 1 1.005.022c.276.053.434.143.523.237.138.146.38.635-.25 2.09-.893 1.63-1.553 1.722-1.847 1.677-.213-.033-.468-.158-.756-.406a4.95 4.95 0 0 1-.8-.927c-.39-.564-1.04-.84-1.66-.846-.625-.006-1.316.27-1.693.921l-.478.826-.911 1.506Z`,[`M9.093 11.552c.046-.079.144-.15.32-.148a.53.53 0 0 1 .43.207c.285.414.636.847 1.046 1.2.405.35.914.662 1.516.754 1.334.205 2.502-.698 3.48-2.495l.014-.028.013-.03c.687-1.574.774-2.852-.005-3.675-.37-.391-.861-.586-1.333-.676a5.243 5.243 0 0 0-1.447-.044c-.173.016-.393-.073-.54-.257-.145-.18-.127-.316-.082-.392l.393-.672L14.287 3h5.71c1.536 0 2.499 1.659 1.737 2.992l-7.997 13.996c-.768 1.344-2.706 1.344-3.473 0l-3.037-5.314 1.377-2.278.004-.006.004-.007.481-.831Z`,.6]]}},e)}function zu(e,t){let n;function r(){n=De(),n.run(()=>t.length?t(()=>{n?.stop(),r()}):t())}z(e,e=>{e&&!n?r():e||(n?.stop(),n=void 0)},{immediate:!0}),ke(()=>{n?.stop()})}function Bu(e,t,n,r=e=>e,i=e=>e){let a=ru(`useProxiedModel`),o=N(e[t]===void 0?n:e[t]),s=Tc(t),c=G(s===t?()=>(e[t],!!(a.vnode.props?.hasOwnProperty(t)&&a.vnode.props?.hasOwnProperty(`onUpdate:${t}`))):()=>(e[t],!!((a.vnode.props?.hasOwnProperty(t)||a.vnode.props?.hasOwnProperty(s))&&(a.vnode.props?.hasOwnProperty(`onUpdate:${t}`)||a.vnode.props?.hasOwnProperty(`onUpdate:${s}`)))));zu(()=>!c.value,()=>{z(()=>e[t],e=>{o.value=e})});let l=G({get(){let n=e[t];return r(c.value?n:o.value)},set(n){let s=i(n),l=j(c.value?e[t]:o.value);l===s||r(l)===n||(o.value=s,a?.emit(`update:${t}`,s))}});return Object.defineProperty(l,"externalValue",{get:()=>c.value?e[t]:o.value}),l}var Vu={badge:`Badge`,open:`Open`,close:`Close`,dismiss:`Dismiss`,confirmEdit:{ok:`OK`,cancel:`Cancel`},dataIterator:{noResultsText:`No matching records found`,loadingText:`Loading items...`},dataTable:{itemsPerPageText:`Rows per page:`,ariaLabel:{sortDescending:`Sorted descending.`,sortAscending:`Sorted ascending.`,sortNone:`Not sorted.`,activateNone:`Activate to remove sorting.`,activateDescending:`Activate to sort descending.`,activateAscending:`Activate to sort ascending.`},sortBy:`Sort by`},dataFooter:{itemsPerPageText:`Items per page:`,itemsPerPageAll:`All`,nextPage:`Next page`,prevPage:`Previous page`,firstPage:`First page`,lastPage:`Last page`,pageText:`{0}-{1} of {2}`},dateRangeInput:{divider:`to`},datePicker:{itemsSelected:`{0} selected`,range:{title:`Select dates`,header:`Enter dates`},title:`Select date`,header:`Enter date`,input:{placeholder:`Enter date`},ariaLabel:{previousMonth:`Previous month`,nextMonth:`Next month`,selectYear:`Select year`,previousYear:`Previous year`,nextYear:`Next year`,selectMonth:`Select month`,selectDate:`{0}`,currentDate:`Today, {0}`}},noDataText:`No data available`,carousel:{prev:`Previous visual`,next:`Next visual`,ariaLabel:{delimiter:`Carousel slide {0} of {1}`}},calendar:{moreEvents:`{0} more`,today:`Today`},input:{clear:`Clear {0}`,prependAction:`{0} prepended action`,appendAction:`{0} appended action`,otp:`Please enter OTP character {0}`},fileInput:{counter:`{0} files`,counterSize:`{0} files ({1} in total)`},fileUpload:{title:`Drag and drop files here`,divider:`or`,browse:`Browse Files`},timePicker:{am:`AM`,pm:`PM`,title:`Select Time`,hour:`Hour`,minute:`Minute`,second:`Second`,notAllowed:`Value is not allowed`},pagination:{ariaLabel:{root:`Pagination Navigation`,next:`Next page`,previous:`Previous page`,page:`Go to page {0}`,currentPage:`Page {0}, Current page`,first:`First page`,last:`Last page`}},stepper:{next:`Next`,prev:`Previous`},rating:{ariaLabel:{item:`Rating {0} of {1}`}},loading:`Loading...`,infiniteScroll:{loadMore:`Load more`,empty:`No more`},rules:{required:`This field is required`,email:`Please enter a valid email`,number:`This field can only contain numbers`,integer:`This field can only contain integer values`,capital:`This field can only contain uppercase letters`,maxLength:`You must enter a maximum of {0} characters`,minLength:`You must enter a minimum of {0} characters`,strictLength:`The length of the entered field is invalid`,exclude:`The {0} character is not allowed`,notEmpty:`Please choose at least one value`,pattern:`Invalid format`},command:{search:`Type a command or search...`},hotkey:{then:`then`,ctrl:`Ctrl`,command:`Command`,space:`Space`,shift:`Shift`,alt:`Alt`,enter:`Enter`,escape:`Escape`,upArrow:`Up Arrow`,downArrow:`Down Arrow`,leftArrow:`Left Arrow`,rightArrow:`Right Arrow`,backspace:`Backspace`,option:`Option`,plus:`plus`,shortcut:`Keyboard shortcut: {0}`,or:`or`},video:{play:`Play`,pause:`Pause`,seek:`Seek`,volume:`Volume`,showVolume:`Show volume control`,mute:`Mute`,unmute:`Unmute`,enterFullscreen:`Full screen`,exitFullscreen:`Exit full screen`},colorPicker:{ariaLabel:{eyedropper:`Select color with eyedropper`,hueSlider:`Hue`,alphaSlider:`Alpha`,redInput:`Red value`,greenInput:`Green value`,blueInput:`Blue value`,alphaInput:`Alpha value`,hueInput:`Hue value`,saturationInput:`Saturation value`,lightnessInput:`Lightness value`,hexInput:`HEX value`,hexaInput:`HEX with alpha value`,changeFormat:`Change color format`}}},Hu=`$vuetify.`,Uu=(e,t)=>e.replace(/\{(\d+)\}/g,(e,n)=>String(t[Number(n)])),Wu=(e,t,n)=>(r,...i)=>{if(!r.startsWith(Hu))return Uu(r,i);let a=r.replace(Hu,``),o=e.value&&n.value[e.value],s=t.value&&n.value[t.value],c=Qs(o,a,null);return c||=(Ws(`Translation key "${r}" not found in "${e.value}", trying fallback locale`),Qs(s,a,null)),c||=(Gs(`Translation key "${r}" not found in fallback`),r),typeof c!=`string`&&(Gs(`Translation key "${r}" has a non-string value`),c=r),Uu(c,i)};function Gu(e,t){return(n,r)=>new Intl.NumberFormat([e.value,t.value],r).format(n)}function Ku(e,t){return Gu(e,t)(.1).includes(`,`)?`,`:`.`}function qu(e,t,n){let r=Bu(e,t,e[t]??n.value);return r.value=e[t]??n.value,z(n,i=>{e[t]??(r.value=n.value)}),r}function Ju(e){return t=>{let n=qu(t,`locale`,e.current),r=qu(t,`fallback`,e.fallback),i=qu(t,`messages`,e.messages);return{name:`vuetify`,current:n,fallback:r,messages:i,decimalSeparator:I(()=>Ku(n,r)),t:Wu(n,r,i),n:Gu(n,r),provide:Ju({current:n,fallback:r,messages:i})}}}function Yu(e){let t=P(e?.locale??`en`),n=P(e?.fallback??`en`),r=N({en:Vu,...e?.messages});return{name:`vuetify`,current:t,fallback:n,messages:r,decimalSeparator:I(()=>e?.decimalSeparator??Ku(t,n)),t:Wu(t,n,r),n:Gu(t,n),provide:Ju({current:t,fallback:n,messages:r})}}var Xu=Symbol.for(`vuetify:locale`);function Zu(e){return e.name!=null}function Qu(e){let t=e?.adapter&&Zu(e?.adapter)?e?.adapter:Yu(e),n=td(t,e);return{...t,...n}}function $u(){let e=R(Xu);if(!e)throw Error(`[Vuetify] Could not find injected locale instance`);return e}function ed(){return{af:!1,ar:!0,bg:!1,ca:!1,ckb:!1,cs:!1,de:!1,el:!1,en:!1,es:!1,et:!1,fa:!0,fi:!1,fr:!1,hr:!1,hu:!1,he:!0,id:!1,it:!1,ja:!1,km:!1,ko:!1,lv:!1,lt:!1,nl:!1,no:!1,pl:!1,pt:!1,ro:!1,ru:!1,sk:!1,sl:!1,srCyrl:!1,srLatn:!1,sv:!1,th:!1,tr:!1,az:!1,uk:!1,vi:!1,zhHans:!1,zhHant:!1}}function td(e,t){let n=N(t?.rtl??ed()),r=G(()=>n.value[e.current.value]??!1);return{isRtl:r,rtl:n,rtlClasses:I(()=>`v-locale--is-${r.value?`rtl`:`ltr`}`)}}function nd(){let e=R(Xu);if(!e)throw Error(`[Vuetify] Could not find injected rtl instance`);return{isRtl:e.isRtl,rtlClasses:e.rtlClasses}}function rd(e){let t=e.slice(-2).toUpperCase();switch(!0){case e===`GB-alt-variant`:return{firstDay:0,firstWeekSize:4};case e===`001`:return{firstDay:1,firstWeekSize:1};case`AG AS BD BR BS BT BW BZ CA CO DM DO ET GT GU HK HN ID IL IN JM JP KE + KH KR LA MH MM MO MT MX MZ NI NP PA PE PH PK PR PY SA SG SV TH TT TW UM US + VE VI WS YE ZA ZW`.includes(t):return{firstDay:0,firstWeekSize:1};case`AI AL AM AR AU AZ BA BM BN BY CL CM CN CR CY EC GE HR KG KZ LB LK LV + MD ME MK MN MY NZ RO RS SI TJ TM TR UA UY UZ VN XK`.includes(t):return{firstDay:1,firstWeekSize:1};case`AD AN AT AX BE BG CH CZ DE DK EE ES FI FJ FO FR GB GF GP GR HU IE IS + IT LI LT LU MC MQ NL NO PL RE RU SE SK SM VA`.includes(t):return{firstDay:1,firstWeekSize:4};case`AE AF BH DJ DZ EG IQ IR JO KW LY OM QA SD SY`.includes(t):return{firstDay:6,firstWeekSize:1};case t===`MV`:return{firstDay:5,firstWeekSize:1};case t===`PT`:return{firstDay:0,firstWeekSize:4};default:return null}}function id(e,t,n){let r=[],i=[],a=sd(e),o=cd(e),s=n??rd(t)?.firstDay??0,c=(a.getDay()-s+7)%7,l=(o.getDay()-s+7)%7;for(let e=0;e0&&r.push(i),r}function ad(e,t,n){let r=(n??rd(t)?.firstDay??0)%7;[0,1,2,3,4,5,6].includes(r)||(Ws(`Invalid firstDayOfWeek, expected discrete number in range [0-6]`),r=0);let i=new Date(e);for(;i.getDay()!==r;)i.setDate(i.getDate()-1);return i}function od(e,t){let n=new Date(e),r=((rd(t)?.firstDay??0)+6)%7;for(;n.getDay()!==r;)n.setDate(n.getDate()+1);return n}function sd(e){return new Date(e.getFullYear(),e.getMonth(),1)}function cd(e){return new Date(e.getFullYear(),e.getMonth()+1,0)}function ld(e){let t=e.split(`-`).map(Number);return new Date(t[0],t[1]-1,t[2])}var ud=/^([12]\d{3}-([1-9]|0[1-9]|1[0-2])-([1-9]|0[1-9]|[12]\d|3[01]))$/;function dd(e){if(e==null)return new Date;if(e instanceof Date)return e;if(typeof e==`string`){let t;if(ud.test(e))return ld(e);if(t=Date.parse(e),!isNaN(t))return new Date(t)}return null}var fd=new Date(2e3,0,2);function pd(e,t,n){let r=t??rd(e)?.firstDay??0;return ec(7).map(t=>{let i=new Date(fd);return i.setDate(fd.getDate()+r+t),new Intl.DateTimeFormat(e,{weekday:n??`narrow`}).format(i)})}function md(e,t,n,r){let i=dd(e)??new Date,a=r?.[t];if(typeof a==`function`)return a(i,t,n);let o={};switch(t){case`fullDate`:o={year:`numeric`,month:`short`,day:`numeric`};break;case`fullDateWithWeekday`:o={weekday:`long`,year:`numeric`,month:`long`,day:`numeric`};break;case`normalDate`:return`${i.getDate()} ${new Intl.DateTimeFormat(n,{month:`long`}).format(i)}`;case`normalDateWithWeekday`:o={weekday:`short`,day:`numeric`,month:`short`};break;case`shortDate`:o={month:`short`,day:`numeric`};break;case`year`:o={year:`numeric`};break;case`month`:o={month:`long`};break;case`monthShort`:o={month:`short`};break;case`monthAndYear`:o={month:`long`,year:`numeric`};break;case`monthAndDate`:o={month:`long`,day:`numeric`};break;case`weekday`:o={weekday:`long`};break;case`weekdayShort`:o={weekday:`short`};break;case`dayOfMonth`:return new Intl.NumberFormat(n).format(i.getDate());case`hours12h`:o={hour:`numeric`,hour12:!0};break;case`hours24h`:o={hour:`numeric`,hour12:!1};break;case`minutes`:o={minute:`numeric`};break;case`seconds`:o={second:`numeric`};break;case`fullTime`:o={hour:`numeric`,minute:`numeric`};break;case`fullTime12h`:o={hour:`numeric`,minute:`numeric`,hour12:!0};break;case`fullTime24h`:o={hour:`numeric`,minute:`numeric`,hour12:!1};break;case`fullDateTime`:o={year:`numeric`,month:`short`,day:`numeric`,hour:`numeric`,minute:`numeric`};break;case`fullDateTime12h`:o={year:`numeric`,month:`short`,day:`numeric`,hour:`numeric`,minute:`numeric`,hour12:!0};break;case`fullDateTime24h`:o={year:`numeric`,month:`short`,day:`numeric`,hour:`numeric`,minute:`numeric`,hour12:!1};break;case`keyboardDate`:o={year:`numeric`,month:`2-digit`,day:`2-digit`};break;case`keyboardDateTime`:return o={year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`numeric`,minute:`numeric`},new Intl.DateTimeFormat(n,o).format(i).replace(/, /g,` `);case`keyboardDateTime12h`:return o={year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`numeric`,minute:`numeric`,hour12:!0},new Intl.DateTimeFormat(n,o).format(i).replace(/, /g,` `);case`keyboardDateTime24h`:return o={year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`numeric`,minute:`numeric`,hour12:!1},new Intl.DateTimeFormat(n,o).format(i).replace(/, /g,` `);default:o=a??{timeZone:`UTC`,timeZoneName:`short`}}return new Intl.DateTimeFormat(n,o).format(i)}function hd(e,t){let n=e.toJsDate(t);return`${n.getFullYear()}-${bc(String(n.getMonth()+1),2,`0`)}-${bc(String(n.getDate()),2,`0`)}`}function gd(e){let[t,n,r]=e.split(`-`).map(Number);return new Date(t,n-1,r)}function _d(e,t){let n=new Date(e);return n.setMinutes(n.getMinutes()+t),n}function vd(e,t){let n=new Date(e);return n.setHours(n.getHours()+t),n}function yd(e,t){let n=new Date(e);return n.setDate(n.getDate()+t),n}function bd(e,t){let n=new Date(e);return n.setDate(n.getDate()+t*7),n}function xd(e,t){let n=new Date(e);return n.setDate(1),n.setMonth(n.getMonth()+t),n}function Sd(e){return e.getFullYear()}function Cd(e){return e.getMonth()}function wd(e,t,n,r){let i=rd(t),a=n??i?.firstDay??0,o=i?.firstWeekSize??1;return r===void 0?Ed(e,t,a,o):Td(e,t,a,r)}function Td(e,t,n,r){let i=(7+r-n)%7,a=ad(e,t,n),o=yd(a,6);function s(e){return(7+new Date(e,0,1).getDay()-n)%7}let c=Sd(a);c=r&&s++;let c=new Date(s,0,1),l=o(s),u=l>=r?yd(c,l-7):yd(c,l);return 1+Ud(Xd(i),Yd(u),`weeks`)}function Dd(e){return e.getDate()}function Od(e){return new Date(e.getFullYear(),e.getMonth()+1,1)}function kd(e){return new Date(e.getFullYear(),e.getMonth()-1,1)}function Ad(e){return e.getHours()}function jd(e){return e.getMinutes()}function Md(e){return new Date(e.getFullYear(),0,1)}function Nd(e){return new Date(e.getFullYear(),11,31)}function Pd(e,t){return zd(e,t[0])||zd(e,t[1])||Id(e,t[0])&&Rd(e,t[1])}function Fd(e){let t=new Date(e);return t instanceof Date&&!isNaN(t.getTime())}function Id(e,t){return e.getTime()>t.getTime()}function Ld(e,t){return Id(Yd(e),Yd(t))}function Rd(e,t){return e.getTime(){n.locale=e.locale[t]??t??n.locale}),n}var nf=[`sm`,`md`,`lg`,`xl`,`xxl`],rf=Symbol.for(`vuetify:display`),af={mobileBreakpoint:`lg`,thresholds:{xs:0,sm:600,md:840,lg:1145,xl:1545,xxl:2138}},of=(e=af)=>Cc(af,e);function sf(e){return K&&!e?window.innerWidth:typeof e==`object`&&e.clientWidth||0}function cf(e){return K&&!e?window.innerHeight:typeof e==`object`&&e.clientHeight||0}function lf(e){let t=K&&!e?window.navigator.userAgent:`ssr`;function n(e){return!!t.match(e)}return{android:n(/android/i),ios:n(/iphone|ipad|ipod/i),cordova:n(/cordova/i),electron:n(/electron/i),chrome:n(/chrome/i),edge:n(/edge/i),firefox:n(/firefox/i),opera:n(/opera/i),win:n(/win/i),mac:n(/mac/i),linux:n(/linux/i),touch:Js,ssr:t===`ssr`}}function uf(e,t){let{thresholds:n,mobileBreakpoint:r}=of(e),i=P(cf(t)),a=P(lf(t)),o=zt({}),s=P(sf(t));function c(){i.value=cf(),s.value=sf()}function l(){c(),a.value=lf()}return Un(()=>{let e=s.value=n.xxl,f=e?`xs`:t?`sm`:c?`md`:l?`lg`:u?`xl`:`xxl`,p=typeof r==`number`?r:n[r],m=s.value{window.removeEventListener(`resize`,c)},!0)),{...tn(o),update:l,ssr:!!t}}var df=J({mobile:{type:Boolean,default:!1},mobileBreakpoint:[Number,String]},`display`);function ff(e={mobile:null},t=iu()){let n=R(rf);if(!n)throw Error(`Could not find Vuetify display injection`);let r=G(()=>e.mobile?!0:typeof e.mobileBreakpoint==`number`?n.width.valuet?{[`${t}--mobile`]:r.value}:{});return{...n,displayClasses:i,mobile:r}}var pf=Symbol.for(`vuetify:goto`);function mf(){return{container:void 0,duration:300,layout:!1,offset:0,easing:`easeInOutCubic`,patterns:Su}}function hf(e){return gf(e)??(document.scrollingElement||document.body)}function gf(e){return typeof e==`string`?document.querySelector(e):rc(e)}function _f(e,t,n){if(typeof e==`number`)return t&&n?-e:e;let r=gf(e),i=0;for(;r;)i+=t?r.offsetLeft:r.offsetTop,r=r.offsetParent;return i}function vf(e,t){return{rtl:t.isRtl,options:Cc(mf(),e)}}async function yf(e,t,n,r){let i=n?`scrollLeft`:`scrollTop`,a=Cc(r?.options??mf(),t),o=r?.rtl.value,s=(typeof e==`number`?e:gf(e))??0,c=a.container===`parent`&&s instanceof HTMLElement?s.parentElement:hf(a.container),l=Xs()?a.patterns.instant:typeof a.easing==`function`?a.easing:a.patterns[a.easing];if(!l)throw TypeError(`Easing function "${a.easing}" not found.`);let u;if(typeof s==`number`)u=_f(s,n,o);else if(u=_f(s,n,o)-_f(c,n,o),a.layout){let e=window.getComputedStyle(s).getPropertyValue(`--v-layout-top`);e&&(u-=parseInt(e,10))}u+=a.offset,u=xf(c,u,!!o,!!n);let d=c[i]??0;if(u===d)return Promise.resolve(u);let f=performance.now();return new Promise(e=>requestAnimationFrame(function t(n){let r=(n-f)/a.duration,o=Math.floor(d+(u-d)*l(vc(r,0,1)));if(c[i]=o,r>=1&&Math.abs(o-c[i])<10)return e(u);if(r>2)return Ws(`Scroll target is not reachable`),e(c[i]);requestAnimationFrame(t)}))}function bf(e={}){let t=R(pf),{isRtl:n}=nd();if(!t)throw Error(`[Vuetify] Could not find injected goto instance`);let r={...t,rtl:I(()=>t.rtl.value||n.value)};async function i(t,n){return yf(t,Cc(e,n),!1,r)}return i.horizontal=async(t,n)=>yf(t,Cc(e,n),!0,r),i}function xf(e,t,n,r){let{scrollWidth:i,scrollHeight:a}=e,[o,s]=e===document.scrollingElement?[window.innerWidth,window.innerHeight]:[e.offsetWidth,e.offsetHeight],c,l;return r?n?(c=-(i-o),l=0):(c=0,l=i-o):(c=0,l=a+-s),vc(t,c,l)}var Sf=Symbol.for(`vuetify:theme`),Cf=J({theme:String},`theme`);function wf(){return{defaultTheme:`system`,prefix:`v-`,variations:{colors:[],lighten:0,darken:0},themes:{light:{dark:!1,colors:{background:`#FFFFFF`,surface:`#FFFFFF`,"surface-bright":`#FFFFFF`,"surface-light":`#EEEEEE`,"surface-variant":`#424242`,"on-surface-variant":`#EEEEEE`,primary:`#1867C0`,"primary-darken-1":`#1F5592`,secondary:`#48A9A6`,"secondary-darken-1":`#018786`,error:`#B00020`,info:`#2196F3`,success:`#4CAF50`,warning:`#FB8C00`},variables:{"border-color":`#000000`,"border-opacity":.12,"shadow-color":`#000000`,"high-emphasis-opacity":.87,"medium-emphasis-opacity":.6,"disabled-opacity":.38,"idle-opacity":.04,"hover-opacity":.04,"focus-opacity":.12,"selected-opacity":.08,"activated-opacity":.12,"pressed-opacity":.12,"dragged-opacity":.08,"theme-kbd":`#EEEEEE`,"theme-on-kbd":`#000000`,"theme-code":`#F5F5F5`,"theme-on-code":`#000000`,"theme-on-dark":`#FFF`,"theme-on-light":`#000`,"elevation-overlay-color":`black`,"elevation-overlay-opacity-step":`2%`}},dark:{dark:!0,colors:{background:`#121212`,surface:`#212121`,"surface-bright":`#ccbfd6`,"surface-light":`#424242`,"surface-variant":`#c8c8c8`,"on-surface-variant":`#000000`,primary:`#2196F3`,"primary-darken-1":`#277CC1`,secondary:`#54B6B2`,"secondary-darken-1":`#48A9A6`,error:`#CF6679`,info:`#2196F3`,success:`#4CAF50`,warning:`#FB8C00`},variables:{"border-color":`#FFFFFF`,"border-opacity":.12,"shadow-color":`#000000`,"high-emphasis-opacity":1,"medium-emphasis-opacity":.7,"disabled-opacity":.5,"idle-opacity":.1,"hover-opacity":.04,"focus-opacity":.12,"selected-opacity":.08,"activated-opacity":.12,"pressed-opacity":.16,"dragged-opacity":.08,"theme-kbd":`#424242`,"theme-on-kbd":`#FFFFFF`,"theme-code":`#343434`,"theme-on-code":`#CCCCCC`,"theme-on-dark":`#FFF`,"theme-on-light":`#000`,"elevation-overlay-color":`white`,"elevation-overlay-opacity-step":`2%`}}},stylesheetId:`vuetify-theme-stylesheet`,scoped:!1,utilities:!0}}function Tf(e=wf()){let t=wf();return e?Cc(t,e):{...t,isDisabled:!0}}function Ef(e,t,n,r){e.push(`${jf(t,r)} {\n`,...n.map(e=>` ${e};\n`),`} +`)}function Df(e,t){let n=e.dark?2:1,r=e.dark?1:2,i=[];for(let[a,o]of Object.entries(e.colors)){let e=Gl(o);i.push(`--${t}theme-${a}: ${e.r},${e.g},${e.b}`+(e.a==null?``:`,${e.a}`)),a.startsWith(`on-`)||i.push(`--${t}theme-${a}-overlay-multiplier: ${tu(o)>.18?n:r}`)}for(let[n,r]of Object.entries(e.variables)){let e=typeof r==`string`&&r.startsWith(`#`)?Gl(r):void 0,a=e?`${e.r}, ${e.g}, ${e.b}`+(e.a==null?``:`, ${e.a}`):void 0;i.push(`--${t}${n}: ${a??r}`)}return i}function Of(e,t,n){let r={};if(n)for(let i of[`lighten`,`darken`]){let a=i===`lighten`?$l:eu;for(let o of ec(n[i],1))r[`${e}-${i}-${o}`]=Xl(a(Gl(t),o))}return r}function kf(e,t){if(!t)return{};let n={};for(let r of t.colors){let i=e[r];i&&(n={...n,...Of(r,i,t)})}return n}function Af(e,t){let n={};for(let r of Object.keys(e)){if(r.startsWith(`on-`)||e[`on-${r}`])continue;let i=`on-${r}`;n[i]=nu(Gl(e[r]))?t[`theme-on-dark`]:t[`theme-on-light`]}return n}function jf(e,t){if(!t)return e;let n=`:where(${t})`;return e===`:root`?n:`${n} ${e}`}function Mf(e,t,n){let r=Nf(e,t);r&&(r.innerHTML=n)}function Nf(e,t){if(!K)return null;let n=document.getElementById(e);return n||(n=document.createElement(`style`),n.id=e,n.type=`text/css`,t&&n.setAttribute(`nonce`,t),document.head.appendChild(n)),n}function Pf(e){let t=Tf(e),n=P(t.defaultTheme),r=N(t.themes),i=P(`light`),a=G({get(){return n.value===`system`?i.value:n.value},set(e){n.value=e}}),o=G(()=>{let e={};for(let[n,i]of Object.entries(r.value)){let a=Cc(i.dark||n===`dark`?r.value.dark:r.value.light,i),o={...a.colors,...kf(a.colors,t.variations)};e[n]={...a,colors:{...o,...Af(o,a.variables)}}}return e}),s=I(()=>o.value[a.value]),c=I(()=>n.value===`system`),l=G(()=>{let e=[],n=t.scoped?t.prefix:``;e.push(`@layer theme-base { +`),s.value?.dark&&Ef(e,`:root`,[`color-scheme: dark`],t.scope),Ef(e,`:root`,Df(s.value,t.prefix),t.scope);for(let[n,r]of Object.entries(o.value))Ef(e,`.${t.prefix}theme--${n}`,[`color-scheme: ${r.dark?`dark`:`normal`}`,...Df(r,t.prefix)],t.scope);if(e.push(`} +`),t.utilities){let r=[],i=[],a=new Set(Object.values(o.value).flatMap(e=>Object.keys(e.colors)));for(let e of a)e.startsWith(`on-`)?Ef(i,`.${e}`,[`color: rgb(var(--${t.prefix}theme-${e}))`],t.scope):(Ef(r,`.${n}bg-${e}`,[`--${t.prefix}theme-overlay-multiplier: var(--${t.prefix}theme-${e}-overlay-multiplier)`,`background-color: rgb(var(--${t.prefix}theme-${e}))`,`color: rgb(var(--${t.prefix}theme-on-${e}))`],t.scope),Ef(i,`.${n}text-${e}`,[`color: rgb(var(--${t.prefix}theme-${e}))`],t.scope),Ef(i,`.${n}border-${e}`,[`--${t.prefix}border-color: var(--${t.prefix}theme-${e})`],t.scope));e.push(`@layer theme-background { +`,...r.map(e=>` ${e}`),`} +`,`@layer theme-foreground { +`,...i.map(e=>` ${e}`),`} +`)}return`@layer vuetify-utilities { +`+e.map(e=>` ${e}`).join(``)+` +}`}),u=I(()=>t.isDisabled?void 0:`${t.prefix}theme--${a.value}`),d=I(()=>Object.keys(o.value));if(Ys){let e=window.matchMedia(`(prefers-color-scheme: dark)`);function t(){i.value=e.matches?`dark`:`light`}t(),e.addEventListener(`change`,t,{passive:!0}),Oe()&&ke(()=>{e.removeEventListener(`change`,t)})}function f(e){if(t.isDisabled)return;let n=e._context.provides.usehead;if(n){function e(){return{style:[{textContent:l.value,id:t.stylesheetId,nonce:t.cspNonce||!1,tagPosition:`bodyOpen`}]}}if(n.push){let t=n.push(e);K&&z(l,()=>{t.patch(e)})}else K?(n.addHeadObjs(I(e)),Un(()=>n.updateDOM())):n.addHeadObjs(e())}else{K?z(l,e,{immediate:!0}):e();function e(){Mf(t.stylesheetId,t.cspNonce,l.value)}}}function p(e){if(e!==`system`&&!d.value.includes(e)){Ws(`Theme "${e}" not found on the Vuetify theme instance`);return}a.value=e}function m(e=d.value){let t=e.indexOf(a.value);p(e[t===-1?0:(t+1)%e.length])}function h(e=[`light`,`dark`]){m(e)}let g=new Proxy(a,{get(e,t){return Reflect.get(e,t)},set(e,t,n){return t===`value`&&Ks(`theme.global.name.value = ${n}`,`theme.change('${n}')`),Reflect.set(e,t,n)}});return{install:f,change:p,cycle:m,toggle:h,isDisabled:t.isDisabled,isSystem:c,name:a,themes:r,current:s,computedThemes:o,prefix:t.prefix,themeClasses:u,styles:l,global:{name:g,current:s}}}function Ff(e){ru(`provideTheme`);let t=R(Sf,null);if(!t)throw Error(`Could not find Vuetify theme injection`);let n=I(()=>e.theme??t.name.value),r=I(()=>t.themes.value[n.value]),i=I(()=>t.isDisabled?void 0:`${t.prefix}theme--${n.value}`),a={...t,name:n,current:r,themeClasses:i};return zn(Sf,a),a}function If(){ru(`useTheme`);let e=R(Sf,null);if(!e)throw Error(`Could not find Vuetify theme injection`);return e}function Lf(e,t=`content`){let n=Uc(),r=N();if(K){let i=new ResizeObserver(n=>{e?.(n,i),n.length&&(t===`content`?r.value=n[0].contentRect:r.value=n[0].target.getBoundingClientRect())});Vr(()=>{i.disconnect()}),z(()=>n.el,(e,t)=>{t&&(i.unobserve(t),r.value=void 0),e&&i.observe(e)},{flush:`post`})}return{resizeRef:n,contentRect:Vt(r)}}var Rf=Symbol.for(`vuetify:layout`),zf=Symbol.for(`vuetify:layout-item`),Bf=1e3,Vf=J({overlaps:{type:Array,default:()=>[]},fullHeight:Boolean},`layout`),Hf=J({name:{type:String},order:{type:[Number,String],default:0},absolute:Boolean},`layout-item`);function Uf(){let e=R(Rf);if(!e)throw Error(`[Vuetify] Could not find injected layout`);return{getLayoutItem:e.getLayoutItem,mainRect:e.mainRect,mainStyles:e.mainStyles}}function Wf(e){let t=R(Rf);if(!t)throw Error(`[Vuetify] Could not find injected layout`);let n=e.id??`layout-item-${Cr()}`,r=ru(`useLayoutItem`);zn(zf,{id:n});let i=P(!1);Mr(()=>i.value=!0),jr(()=>i.value=!1);let{layoutItemStyles:a,layoutItemScrimStyles:o}=t.register(r,{...e,active:G(()=>i.value?!1:e.active.value),id:n});return Vr(()=>t.unregister(n)),{layoutItemStyles:a,layoutRect:t.layoutRect,layoutItemScrimStyles:o}}var Gf=(e,t,n,r)=>{let i={top:0,left:0,right:0,bottom:0},a=[{id:``,layer:{...i}}];for(let o of e){let e=t.get(o),s=n.get(o),c=r.get(o);if(!e||!s||!c)continue;let l={...i,[e.value]:parseInt(i[e.value],10)+(c.value?parseInt(s.value,10):0)};a.push({id:o,layer:l}),i=l}return a};function Kf(e){let t=R(Rf,null),n=G(()=>t?t.rootZIndex.value-100:Bf),r=N([]),i=zt(new Map),a=zt(new Map),o=zt(new Map),s=zt(new Map),c=zt(new Map),{resizeRef:l,contentRect:u}=Lf(),d=G(()=>{let t=new Map,n=e.overlaps??[];for(let e of n.filter(e=>e.includes(`:`))){let[n,o]=e.split(`:`);if(!r.value.includes(n)||!r.value.includes(o))continue;let s=i.get(n),c=i.get(o),l=a.get(n),u=a.get(o);!s||!c||!l||!u||(t.set(o,{position:s.value,amount:parseInt(l.value,10)}),t.set(n,{position:c.value,amount:-parseInt(u.value,10)}))}return t}),f=G(()=>{let e=[...new Set([...o.values()].map(e=>e.value))].sort((e,t)=>e-t),t=[];for(let n of e){let e=r.value.filter(e=>o.get(e)?.value===n);t.push(...e)}return Gf(t,i,a,s)}),p=G(()=>!Array.from(c.values()).some(e=>e.value)),m=G(()=>f.value[f.value.length-1].layer),h=I(()=>({"--v-layout-left":q(m.value.left),"--v-layout-right":q(m.value.right),"--v-layout-top":q(m.value.top),"--v-layout-bottom":q(m.value.bottom),...p.value?void 0:{transition:`none`}})),g=G(()=>f.value.slice(1).map(({id:e},t)=>{let{layer:n}=f.value[t],r=a.get(e),o=i.get(e);return{id:e,...n,size:Number(r.value),position:o.value}})),_=e=>g.value.find(t=>t.id===e),v=ru(`createLayout`),y=P(!1);return Rr(()=>{y.value=!0}),zn(Rf,{register:(e,{id:t,order:l,position:u,layoutSize:m,elementSize:h,active:_,disableTransitions:b,absolute:x})=>{o.set(t,l),i.set(t,u),a.set(t,m),s.set(t,_),b&&c.set(t,b);let S=Ec(zf,v?.vnode).indexOf(e);S>-1?r.value.splice(S,0,t):r.value.push(t);let C=G(()=>g.value.findIndex(e=>e.id===t)),w=G(()=>n.value+f.value.length*2-C.value*2);return{layoutItemStyles:G(()=>{let e=u.value===`left`||u.value===`right`,r=u.value===`right`,i=u.value===`bottom`,a=Number(h.value??m.value),o=`translate${e?`X`:`Y`}`,s=_.value?0:(a===0?100:a+1)*(r||i?1:-1),c=a===0?`%`:`px`,l={[u.value]:0,zIndex:w.value,transform:`${o}(${s}${c})`,position:x.value||n.value!==Bf?`absolute`:`fixed`,...p.value?void 0:{transition:`none`}};if(!y.value)return l;let f=g.value[C.value];f||Ws(`[Vuetify] Could not find layout item "${t}"`);let v=d.value.get(t);return v&&(f[v.position]+=v.amount),{...l,height:e?`calc(100% - ${f.top}px - ${f.bottom}px)`:h.value?`${h.value}px`:void 0,left:r?void 0:`${f.left}px`,right:r?`${f.right}px`:void 0,top:u.value===`bottom`?void 0:`${f.top}px`,bottom:u.value===`top`?void 0:`${f.bottom}px`,width:e?h.value?`${h.value}px`:void 0:`calc(100% - ${f.left}px - ${f.right}px)`}}),layoutItemScrimStyles:G(()=>({zIndex:w.value-1})),zIndex:w}},unregister:e=>{o.delete(e),i.delete(e),a.delete(e),s.delete(e),c.delete(e),r.value=r.value.filter(t=>t!==e)},mainRect:m,mainStyles:h,getLayoutItem:_,items:g,layoutRect:u,rootZIndex:n}),{layoutClasses:I(()=>[`v-layout`,{"v-layout--full-height":e.fullHeight}]),layoutStyles:I(()=>({zIndex:t?n.value:void 0,position:t?`relative`:void 0,overflow:t?`hidden`:void 0})),getLayoutItem:_,items:g,layoutRect:u,layoutRef:l}}function qf(e={}){let{blueprint:t,...n}=e,r=Cc(t,n),{aliases:i={},components:a={},directives:o={}}=r,s=De();return s.run(()=>{let e=su(r.defaults),t=uf(r.display,r.ssr),n=Pf(r.theme),c=Ru(r.icons),l=Qu(r.locale),u=ef(r.date,l),d=vf(r.goTo,l);function f(s){for(let e in o)s.directive(e,o[e]);for(let e in a)s.component(e,a[e]);for(let e in i)s.component(e,fu({...i[e],name:e,aliasName:i[e].name}));let f=De();if(f.run(()=>{n.install(s)}),s.onUnmount(()=>f.stop()),s.provide(ou,e),s.provide(rf,t),s.provide(Sf,n),s.provide(ku,c),s.provide(Xu,l),s.provide(Qd,u.options),s.provide($d,u.instance),s.provide(pf,d),K&&r.ssr)if(s.$nuxt)s.$nuxt.hook(`app:suspense:resolve`,()=>{t.update()});else{let{mount:e}=s;s.mount=(...n)=>{let r=e(...n);return Tn(()=>t.update()),s.mount=e,r}}s.mixin({computed:{$vuetify(){return zt({defaults:Jf.call(this,ou),display:Jf.call(this,rf),theme:Jf.call(this,Sf),icons:Jf.call(this,ku),locale:Jf.call(this,Xu),date:Jf.call(this,$d)})}}})}function p(){s.stop()}return{install:f,unmount:p,defaults:e,display:t,theme:n,icons:c,locale:l,date:u,goTo:d}})}qf.version=`4.0.8`;function Jf(e){let t=this.$,n=t.parent?.provides??t.vnode.appContext?.provides;if(n&&e in n)return n[e]}var Yf=qf({theme:{defaultTheme:typeof localStorage<`u`&&localStorage.getItem(`nexus_theme`)||`light`}}),Xf=typeof document<`u`;function Zf(e){return typeof e==`object`||`displayName`in e||`props`in e||`__vccOpts`in e}function Qf(e){return e.__esModule||e[Symbol.toStringTag]===`Module`||e.default&&Zf(e.default)}var $=Object.assign;function $f(e,t){let n={};for(let r in t){let i=t[r];n[r]=tp(i)?i.map(e):e(i)}return n}var ep=()=>{},tp=Array.isArray;function np(e,t){let n={};for(let r in e)n[r]=r in t?t[r]:e[r];return n}var rp=/#/g,ip=/&/g,ap=/\//g,op=/=/g,sp=/\?/g,cp=/\+/g,lp=/%5B/g,up=/%5D/g,dp=/%5E/g,fp=/%60/g,pp=/%7B/g,mp=/%7C/g,hp=/%7D/g,gp=/%20/g;function _p(e){return e==null?``:encodeURI(``+e).replace(mp,`|`).replace(lp,`[`).replace(up,`]`)}function vp(e){return _p(e).replace(pp,`{`).replace(hp,`}`).replace(dp,`^`)}function yp(e){return _p(e).replace(cp,`%2B`).replace(gp,`+`).replace(rp,`%23`).replace(ip,`%26`).replace(fp,"`").replace(pp,`{`).replace(hp,`}`).replace(dp,`^`)}function bp(e){return yp(e).replace(op,`%3D`)}function xp(e){return _p(e).replace(rp,`%23`).replace(sp,`%3F`)}function Sp(e){return xp(e).replace(ap,`%2F`)}function Cp(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var wp=/\/$/,Tp=e=>e.replace(wp,``);function Ep(e,t,n=`/`){let r,i={},a=``,o=``,s=t.indexOf(`#`),c=t.indexOf(`?`);return c=s>=0&&c>s?-1:c,c>=0&&(r=t.slice(0,c),a=t.slice(c,s>0?s:t.length),i=e(a.slice(1))),s>=0&&(r||=t.slice(0,s),o=t.slice(s,t.length)),r=Pp(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:Cp(o)}}function Dp(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function Op(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function kp(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&Ap(t.matched[r],n.matched[i])&&jp(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Ap(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function jp(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!Mp(e[n],t[n]))return!1;return!0}function Mp(e,t){return tp(e)?Np(e,t):tp(t)?Np(t,e):e?.valueOf()===t?.valueOf()}function Np(e,t){return tp(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function Pp(e,t){if(e.startsWith(`/`))return e;if(!e)return t;let n=t.split(`/`),r=e.split(`/`),i=r[r.length-1];(i===`..`||i===`.`)&&r.push(``);let a=n.length-1,o,s;for(o=0;o1&&a--;else break;return n.slice(0,a).join(`/`)+`/`+r.slice(o).join(`/`)}var Fp={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0},Ip=function(e){return e.pop=`pop`,e.push=`push`,e}({}),Lp=function(e){return e.back=`back`,e.forward=`forward`,e.unknown=``,e}({});function Rp(e){if(!e)if(Xf){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^\/]+/,``)}else e=`/`;return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),Tp(e)}var zp=/^[^#]+#/;function Bp(e,t){return e.replace(zp,`#`)+t}function Vp(e,t){let n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}var Hp=()=>({left:window.scrollX,top:window.scrollY});function Up(e){let t;if(`el`in e){let n=e.el,r=typeof n==`string`&&n.startsWith(`#`),i=typeof n==`string`?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=Vp(i,e)}else t=e;`scrollBehavior`in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left==null?window.scrollX:t.left,t.top==null?window.scrollY:t.top)}function Wp(e,t){return(history.state?history.state.position-t:-1)+e}var Gp=new Map;function Kp(e,t){Gp.set(e,t)}function qp(e){let t=Gp.get(e);return Gp.delete(e),t}function Jp(e){return typeof e==`string`||e&&typeof e==`object`}function Yp(e){return typeof e==`string`||typeof e==`symbol`}var Xp=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}({}),Zp=Symbol(``);Xp.MATCHER_NOT_FOUND,Xp.NAVIGATION_GUARD_REDIRECT,Xp.NAVIGATION_ABORTED,Xp.NAVIGATION_CANCELLED,Xp.NAVIGATION_DUPLICATED;function Qp(e,t){return $(Error(),{type:e,[Zp]:!0},t)}function $p(e,t){return e instanceof Error&&Zp in e&&(t==null||!!(e.type&t))}function em(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;ee&&yp(e)):[r&&yp(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function nm(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=tp(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}var rm=Symbol(``),im=Symbol(``),am=Symbol(``),om=Symbol(``),sm=Symbol(``);function cm(){let e=[];function t(t){return e.push(t),()=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function lm(e,t,n,r,i,a=e=>e()){let o=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((s,c)=>{let l=e=>{e===!1?c(Qp(Xp.NAVIGATION_ABORTED,{from:n,to:t})):e instanceof Error?c(e):Jp(e)?c(Qp(Xp.NAVIGATION_GUARD_REDIRECT,{from:t,to:e})):(o&&r.enterCallbacks[i]===o&&typeof e==`function`&&o.push(e),s())},u=a(()=>e.call(r&&r.instances[i],t,n,l)),d=Promise.resolve(u);e.length<3&&(d=d.then(l)),d.catch(e=>c(e))})}function um(e,t,n,r,i=e=>e()){let a=[];for(let o of e)for(let e in o.components){let s=o.components[e];if(!(t!==`beforeRouteEnter`&&!o.instances[e]))if(Zf(s)){let c=(s.__vccOpts||s)[t];c&&a.push(lm(c,n,r,o,e,i))}else{let c=s();a.push(()=>c.then(a=>{if(!a)throw Error(`Couldn't resolve component "${e}" at "${o.path}"`);let s=Qf(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&lm(c,n,r,o,e,i)()}))}}return a}function dm(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;oAp(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>Ap(e,s))||i.push(s))}return[n,r,i]}var fm=()=>location.protocol+`//`+location.host;function pm(e,t){let{pathname:n,search:r,hash:i}=t,a=e.indexOf(`#`);if(a>-1){let t=i.includes(e.slice(a))?e.slice(a).length:1,n=i.slice(t);return n[0]!==`/`&&(n=`/`+n),Op(n,``)}return Op(n,e)+r+i}function mm(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=pm(e,location),c=n.value,l=t.value,u=0;if(a){if(n.value=s,t.value=a,o&&o===c){o=null;return}u=l?a.position-l.position:0}else r(s);i.forEach(e=>{e(n.value,c,{delta:u,type:Ip.pop,direction:u?u>0?Lp.forward:Lp.back:Lp.unknown})})};function c(){o=n.value}function l(e){i.push(e);let t=()=>{let t=i.indexOf(e);t>-1&&i.splice(t,1)};return a.push(t),t}function u(){if(document.visibilityState===`hidden`){let{history:e}=window;if(!e.state)return;e.replaceState($({},e.state,{scroll:Hp()}),``)}}function d(){for(let e of a)e();a=[],window.removeEventListener(`popstate`,s),window.removeEventListener(`pagehide`,u),document.removeEventListener(`visibilitychange`,u)}return window.addEventListener(`popstate`,s),window.addEventListener(`pagehide`,u),document.addEventListener(`visibilitychange`,u),{pauseListeners:c,listen:l,destroy:d}}function hm(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?Hp():null}}function gm(e){let{history:t,location:n}=window,r={value:pm(e,n)},i={value:t.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(r,a,o){let s=e.indexOf(`#`),c=s>-1?(n.host&&document.querySelector(`base`)?e:e.slice(s))+r:fm()+e+r;try{t[o?`replaceState`:`pushState`](a,``,c),i.value=a}catch(e){console.error(e),n[o?`replace`:`assign`](c)}}function o(e,n){a(e,$({},t.state,hm(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=$({},i.value,t.state,{forward:e,scroll:Hp()});a(o.current,o,!0),a(e,$({},hm(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function _m(e){e=Rp(e);let t=gm(e),n=mm(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=$({location:``,base:e,go:r,createHref:Bp.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}function vm(e){return e=location.host?e||location.pathname+location.search:``,e.includes(`#`)||(e+=`#`),_m(e)}var ym=function(e){return e[e.Static=0]=`Static`,e[e.Param=1]=`Param`,e[e.Group=2]=`Group`,e}({}),bm=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}(bm||{}),xm={type:ym.Static,value:``},Sm=/[a-zA-Z0-9_]/;function Cm(e){if(!e)return[[]];if(e===`/`)return[[xm]];if(!e.startsWith(`/`))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=bm.Static,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===bm.Static?a.push({type:ym.Static,value:l}):n===bm.Param||n===bm.ParamRegExp||n===bm.ParamRegExpEnd?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:ym.Param,value:l,regexp:u,repeatable:c===`*`||c===`+`,optional:c===`*`||c===`?`})):t(`Invalid state to consume buffer`),``)}function f(){l+=c}for(;st.length?t.length===1&&t[0]===Em.Static+Em.Segment?1:-1:0}function Am(e,t){let n=0,r=e.score,i=t.score;for(;n0&&t[t.length-1]<0}var Mm={strict:!1,end:!0,sensitive:!1};function Nm(e,t,n){let r=$(Om(Cm(e.path),n),{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function Pm(e,t){let n=[],r=new Map;t=np(Mm,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=Im(e);s.aliasOf=r&&r.record;let l=np(t,e),u=[s];if(`alias`in e){let t=typeof e.alias==`string`?[e.alias]:e.alias;for(let e of t)u.push(Im($({},s,{components:r?r.record.components:s.components,path:e,aliasOf:r?r.record:s})))}let d,f;for(let t of u){let{path:u}=t;if(n&&u[0]!==`/`){let e=n.record.path,r=e[e.length-1]===`/`?``:`/`;t.path=n.record.path+(u&&r+u)}if(d=Nm(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!Rm(d)&&o(e.name)),Hm(d)&&c(d),s.children){let e=s.children;for(let t=0;t{o(f)}:ep}function o(e){if(Yp(e)){let t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{let t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(){return n}function c(e){let t=Bm(e,n);n.splice(t,0,e),e.record.name&&!Rm(e)&&r.set(e.record.name,e)}function l(e,t){let i,a={},o,s;if(`name`in e&&e.name){if(i=r.get(e.name),!i)throw Qp(Xp.MATCHER_NOT_FOUND,{location:e});s=i.record.name,a=$(Fm(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&Fm(e.params,i.keys.map(e=>e.name))),o=i.stringify(a)}else if(e.path!=null)o=e.path,i=n.find(e=>e.re.test(o)),i&&(a=i.parse(o),s=i.record.name);else{if(i=t.name?r.get(t.name):n.find(e=>e.re.test(t.path)),!i)throw Qp(Xp.MATCHER_NOT_FOUND,{location:e,currentLocation:t});s=i.record.name,a=$({},t.params,e.params),o=i.stringify(a)}let c=[],l=i;for(;l;)c.unshift(l.record),l=l.parent;return{name:s,path:o,params:a,matched:c,meta:zm(c)}}e.forEach(e=>a(e));function u(){n.length=0,r.clear()}return{addRoute:a,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:s,getRecordMatcher:i}}function Fm(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Im(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Lm(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 Lm(e){let t={},n=e.props||!1;if(`component`in e)t.default=n;else for(let r in e.components)t[r]=typeof n==`object`?n[r]:n;return t}function Rm(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function zm(e){return e.reduce((e,t)=>$(e,t.meta),{})}function Bm(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;Am(e,t[i])<0?r=i:n=i+1}let i=Vm(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function Vm(e){let t=e;for(;t=t.parent;)if(Hm(t)&&Am(e,t)===0)return t}function Hm({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Um(e){let t=R(am),n=R(om),r=G(()=>{let n=F(e.to);return t.resolve(n)}),i=G(()=>{let{matched:e}=r.value,{length:t}=e,i=e[t-1],a=n.matched;if(!i||!a.length)return-1;let o=a.findIndex(Ap.bind(null,i));if(o>-1)return o;let s=Jm(e[t-2]);return t>1&&Jm(i)===s&&a[a.length-1].path!==s?a.findIndex(Ap.bind(null,e[t-2])):o}),a=G(()=>i.value>-1&&qm(n.params,r.value.params)),o=G(()=>i.value>-1&&i.value===n.matched.length-1&&jp(n.params,r.value.params));function s(n={}){if(Km(n)){let n=t[F(e.replace)?`replace`:`push`](F(e.to)).catch(ep);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:r,href:G(()=>r.value.href),isActive:a,isExactActive:o,navigate:s}}function Wm(e){return e.length===1?e[0]:e}var Gm=Sr({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:Um,setup(e,{slots:t}){let n=zt(Um(e)),{options:r}=R(am),i=G(()=>({[Ym(e.activeClass,r.linkActiveClass,`router-link-active`)]:n.isActive,[Ym(e.exactActiveClass,r.linkExactActiveClass,`router-link-exact-active`)]:n.isExactActive}));return()=>{let r=t.default&&Wm(t.default(n));return e.custom?r:co(`a`,{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},r)}}});function Km(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){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function qm(e,t){for(let n in t){let r=t[n],i=e[n];if(typeof r==`string`){if(r!==i)return!1}else if(!tp(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function Jm(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var Ym=(e,t,n)=>e??t??n,Xm=Sr({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let r=R(sm),i=G(()=>e.route||r.value),a=R(im,0),o=G(()=>{let e=F(a),{matched:t}=i.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),s=G(()=>i.value.matched[o.value]);zn(im,G(()=>o.value+1)),zn(rm,s),zn(sm,i);let c=N();return z(()=>[c.value,s.value,e.name],([e,t,n],[r,i,a])=>{t&&(t.instances[n]=e,i&&i!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=i.leaveGuards),t.updateGuards.size||(t.updateGuards=i.updateGuards))),e&&t&&(!i||!Ap(t,i)||!r)&&(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let r=i.value,a=e.name,o=s.value,l=o&&o.components[a];if(!l)return Zm(n.default,{Component:l,route:r});let u=o.props[a],d=co(l,$({},u?u===!0?r.params:typeof u==`function`?u(r):u:null,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(o.instances[a]=null)},ref:c}));return Zm(n.default,{Component:d,route:r})||d}}});function Zm(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var Qm=Xm;function $m(e){let t=Pm(e.routes,e),n=e.parseQuery||em,r=e.stringifyQuery||tm,i=e.history,a=cm(),o=cm(),s=cm(),c=P(Fp),l=Fp;Xf&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let u=$f.bind(null,e=>``+e),d=$f.bind(null,Sp),f=$f.bind(null,Cp);function p(e,n){let r,i;return Yp(e)?(r=t.getRecordMatcher(e),i=n):i=e,t.addRoute(i,r)}function m(e){let n=t.getRecordMatcher(e);n&&t.removeRoute(n)}function h(){return t.getRoutes().map(e=>e.record)}function g(e){return!!t.getRecordMatcher(e)}function _(e,a){if(a=$({},a||c.value),typeof e==`string`){let r=Ep(n,e,a.path),o=t.resolve({path:r.path},a),s=i.createHref(r.fullPath);return $(r,o,{params:f(o.params),hash:Cp(r.hash),redirectedFrom:void 0,href:s})}let o;if(e.path!=null)o=$({},e,{path:Ep(n,e.path,a.path).path});else{let t=$({},e.params);for(let e in t)t[e]??delete t[e];o=$({},e,{params:d(t)}),a.params=d(a.params)}let s=t.resolve(o,a),l=e.hash||``;s.params=u(f(s.params));let p=Dp(r,$({},e,{hash:vp(l),path:s.path})),m=i.createHref(p);return $({fullPath:p,hash:l,query:r===tm?nm(e.query):e.query||{}},s,{redirectedFrom:void 0,href:m})}function v(e){return typeof e==`string`?Ep(n,e,c.value.path):$({},e)}function y(e,t){if(l!==e)return Qp(Xp.NAVIGATION_CANCELLED,{from:t,to:e})}function b(e){return C(e)}function x(e){return b($(v(e),{replace:!0}))}function S(e,t){let n=e.matched[e.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(e,t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=v(i):{path:i},i.params={}),$({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function C(e,t){let n=l=_(e),i=c.value,a=e.state,o=e.force,s=e.replace===!0,u=S(n,i);if(u)return C($(v(u),{state:typeof u==`object`?$({},a,u.state):a,force:o,replace:s}),t||n);let d=n;d.redirectedFrom=t;let f;return!o&&kp(r,i,n)&&(f=Qp(Xp.NAVIGATION_DUPLICATED,{to:d,from:i}),le(i,i,!0,!1)),(f?Promise.resolve(f):E(d,i)).catch(e=>$p(e)?$p(e,Xp.NAVIGATION_GUARD_REDIRECT)?e:ce(e):oe(e,d,i)).then(e=>{if(e){if($p(e,Xp.NAVIGATION_GUARD_REDIRECT))return C($({replace:s},v(e.to),{state:typeof e.to==`object`?$({},a,e.to.state):a,force:o}),t||d)}else e=D(d,i,!0,s,a);return ee(d,i,e),e})}function w(e,t){let n=y(e,t);return n?Promise.reject(n):Promise.resolve()}function T(e){let t=O.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function E(e,t){let n,[r,i,s]=dm(e,t);n=um(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push(lm(r,e,t))});let c=w.bind(null,e,t);return n.push(c),pe(n).then(()=>{n=[];for(let r of a.list())n.push(lm(r,e,t));return n.push(c),pe(n)}).then(()=>{n=um(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push(lm(r,e,t))});return n.push(c),pe(n)}).then(()=>{n=[];for(let r of s)if(r.beforeEnter)if(tp(r.beforeEnter))for(let i of r.beforeEnter)n.push(lm(i,e,t));else n.push(lm(r.beforeEnter,e,t));return n.push(c),pe(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=um(s,`beforeRouteEnter`,e,t,T),n.push(c),pe(n))).then(()=>{n=[];for(let r of o.list())n.push(lm(r,e,t));return n.push(c),pe(n)}).catch(e=>$p(e,Xp.NAVIGATION_CANCELLED)?e:Promise.reject(e))}function ee(e,t,n){s.list().forEach(r=>T(()=>r(e,t,n)))}function D(e,t,n,r,a){let o=y(e,t);if(o)return o;let s=t===Fp,l=Xf?history.state:{};n&&(r||s?i.replace(e.fullPath,$({scroll:s&&l&&l.scroll},a)):i.push(e.fullPath,a)),c.value=e,le(e,t,n,s),ce()}let te;function ne(){te||=i.listen((e,t,n)=>{if(!fe.listening)return;let r=_(e),a=S(r,fe.currentRoute.value);if(a){C($(a,{replace:!0,force:!0}),r).catch(ep);return}l=r;let o=c.value;Xf&&Kp(Wp(o.fullPath,n.delta),Hp()),E(r,o).catch(e=>$p(e,Xp.NAVIGATION_ABORTED|Xp.NAVIGATION_CANCELLED)?e:$p(e,Xp.NAVIGATION_GUARD_REDIRECT)?(C($(v(e.to),{force:!0}),r).then(e=>{$p(e,Xp.NAVIGATION_ABORTED|Xp.NAVIGATION_DUPLICATED)&&!n.delta&&n.type===Ip.pop&&i.go(-1,!1)}).catch(ep),Promise.reject()):(n.delta&&i.go(-n.delta,!1),oe(e,r,o))).then(e=>{e||=D(r,o,!1),e&&(n.delta&&!$p(e,Xp.NAVIGATION_CANCELLED)?i.go(-n.delta,!1):n.type===Ip.pop&&$p(e,Xp.NAVIGATION_ABORTED|Xp.NAVIGATION_DUPLICATED)&&i.go(-1,!1)),ee(r,o,e)}).catch(ep)})}let re=cm(),ie=cm(),ae;function oe(e,t,n){ce(e);let r=ie.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function se(){return ae&&c.value!==Fp?Promise.resolve():new Promise((e,t)=>{re.add([e,t])})}function ce(e){return ae||(ae=!e,ne(),re.list().forEach(([t,n])=>e?n(e):t()),re.reset()),e}function le(t,n,r,i){let{scrollBehavior:a}=e;if(!Xf||!a)return Promise.resolve();let o=!r&&qp(Wp(t.fullPath,0))||(i||!r)&&history.state&&history.state.scroll||null;return Tn().then(()=>a(t,n,o)).then(e=>e&&Up(e)).catch(e=>oe(e,t,n))}let ue=e=>i.go(e),de,O=new Set,fe={currentRoute:c,listening:!0,addRoute:p,removeRoute:m,clearRoutes:t.clearRoutes,hasRoute:g,getRoutes:h,resolve:_,options:e,push:b,replace:x,go:ue,back:()=>ue(-1),forward:()=>ue(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:ie.add,isReady:se,install(e){e.component(`RouterLink`,Gm),e.component(`RouterView`,Qm),e.config.globalProperties.$router=fe,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>F(c)}),Xf&&!de&&c.value===Fp&&(de=!0,b(i.location).catch(e=>{}));let t={};for(let e in Fp)Object.defineProperty(t,e,{get:()=>c.value[e],enumerable:!0});e.provide(am,fe),e.provide(om,Bt(t)),e.provide(sm,c);let n=e.unmount;O.add(e),e.unmount=function(){O.delete(e),O.size<1&&(l=Fp,te&&te(),te=null,c.value=Fp,de=!1,ae=!1),n()}}};function pe(e){return e.reduce((e,t)=>e.then(()=>T(t)),Promise.resolve())}return fe}function eh(){return R(am)}function th(e){return R(om)}var nh=typeof window<`u`,rh,ih=e=>rh=e,ah=Symbol();function oh(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var sh;(function(e){e.direct=`direct`,e.patchObject=`patch object`,e.patchFunction=`patch function`})(sh||={});var ch=typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:typeof global==`object`&&global.global===global?global:typeof globalThis==`object`?globalThis:{HTMLElement:null};function lh(e,{autoBom:t=!1}={}){return t&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([``,e],{type:e.type}):e}function uh(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){hh(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function dh(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function fh(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{let t=new MouseEvent(`click`,{bubbles:!0,cancelable:!0,view:window,detail:0,screenX:80,screenY:20,clientX:80,clientY:20,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null});e.dispatchEvent(t)}}var ph=typeof navigator==`object`?navigator:{userAgent:``},mh=/Macintosh/.test(ph.userAgent)&&/AppleWebKit/.test(ph.userAgent)&&!/Safari/.test(ph.userAgent),hh=nh?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!mh?gh:`msSaveOrOpenBlob`in ph?_h:vh:()=>{};function gh(e,t=`download`,n){let r=document.createElement(`a`);r.download=t,r.rel=`noopener`,typeof e==`string`?(r.href=e,r.origin===location.origin?fh(r):dh(r.href)?uh(e,t,n):(r.target=`_blank`,fh(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){fh(r)},0))}function _h(e,t=`download`,n){if(typeof e==`string`)if(dh(e))uh(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){fh(t)})}else navigator.msSaveOrOpenBlob(lh(e,n),t)}function vh(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return uh(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(ch.HTMLElement))||`safari`in ch,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||mh)&&typeof FileReader<`u`){let t=new FileReader;t.onloadend=function(){let e=t.result;if(typeof e!=`string`)throw r=null,Error(`Wrong reader.result type`);e=o?e:e.replace(/^data:[^;]*;/,`data:attachment/file;`),r?r.location.href=e:location.assign(e),r=null},t.readAsDataURL(e)}else{let t=URL.createObjectURL(e);r?r.location.assign(t):location.href=t,r=null,setTimeout(function(){URL.revokeObjectURL(t)},4e4)}}var{assign:yh}=Object;function bh(){let e=De(!0),t=e.run(()=>N({})),n=[],r=[],i=qt({install(e){ih(i),i._a=e,e.provide(ah,i),e.config.globalProperties.$pinia=i,r.forEach(e=>n.push(e)),r=[]},use(e){return this._a?n.push(e):r.push(e),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return i}var xh=()=>{};function Sh(e,t,n,r=xh){e.add(t);let i=()=>{e.delete(t)&&r()};return!n&&Oe()&&ke(i),i}function Ch(e,...t){e.forEach(e=>{e(...t)})}var wh=e=>e(),Th=Symbol(),Eh=Symbol();function Dh(e,t){e instanceof Map&&t instanceof Map?t.forEach((t,n)=>e.set(n,t)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(let n in t){if(!t.hasOwnProperty(n))continue;let r=t[n],i=e[n];oh(i)&&oh(r)&&e.hasOwnProperty(n)&&!M(r)&&!Ut(r)?e[n]=Dh(i,r):e[n]=r}return e}var Oh=Symbol();function kh(e){return!oh(e)||!Object.prototype.hasOwnProperty.call(e,Oh)}var{assign:Ah}=Object;function jh(e){return!!(M(e)&&e.effect)}function Mh(e,t,n,r){let{state:i,actions:a,getters:o}=t,s=n.state.value[e],c;function l(){return s||(n.state.value[e]=i?i():{}),Ah(tn(n.state.value[e]),a,Object.keys(o||{}).reduce((t,r)=>(t[r]=qt(G(()=>{ih(n);let t=n._s.get(e);return o[r].call(t,t)})),t),{}))}return c=Nh(e,l,t,n,r,!0),c}function Nh(e,t,n={},r,i,a){let o,s=Ah({actions:{}},n),c={deep:!0},l,u,d=new Set,f=new Set,p=r.state.value[e];!a&&!p&&(r.state.value[e]={});let m;function h(t){let n;l=u=!1,typeof t==`function`?(t(r.state.value[e]),n={type:sh.patchFunction,storeId:e,events:void 0}):(Dh(r.state.value[e],t),n={type:sh.patchObject,payload:t,storeId:e,events:void 0});let i=m=Symbol();Tn().then(()=>{m===i&&(l=!0)}),u=!0,Ch(d,n,r.state.value[e])}let g=a?function(){let{state:e}=n,t=e?e():{};this.$patch(e=>{Ah(e,t)})}:xh;function _(){o.stop(),d.clear(),f.clear(),r._s.delete(e)}let v=(t,n=``)=>{if(Th in t)return t[Eh]=n,t;let i=function(){ih(r);let n=Array.from(arguments),a=new Set,o=new Set;function s(e){a.add(e)}function c(e){o.add(e)}Ch(f,{args:n,name:i[Eh],store:y,after:s,onError:c});let l;try{l=t.apply(this&&this.$id===e?this:y,n)}catch(e){throw Ch(o,e),e}return l instanceof Promise?l.then(e=>(Ch(a,e),e)).catch(e=>(Ch(o,e),Promise.reject(e))):(Ch(a,l),l)};return i[Th]=!0,i[Eh]=n,i},y=zt({_p:r,$id:e,$onAction:Sh.bind(null,f),$patch:h,$reset:g,$subscribe(t,n={}){let i=Sh(d,t,n.detached,()=>a()),a=o.run(()=>z(()=>r.state.value[e],r=>{(n.flush===`sync`?u:l)&&t({storeId:e,type:sh.direct,events:void 0},r)},Ah({},c,n)));return i},$dispose:_});r._s.set(e,y);let b=(r._a&&r._a.runWithContext||wh)(()=>r._e.run(()=>(o=De()).run(()=>t({action:v}))));for(let t in b){let n=b[t];M(n)&&!jh(n)||Ut(n)?a||(p&&kh(n)&&(M(n)?n.value=p[t]:Dh(n,p[t])),r.state.value[e][t]=n):typeof n==`function`&&(b[t]=v(n,t),s.actions[t]=n)}return Ah(y,b),Ah(j(y),b),Object.defineProperty(y,"$state",{get:()=>r.state.value[e],set:e=>{h(t=>{Ah(t,e)})}}),r._p.forEach(e=>{Ah(y,o.run(()=>e({store:y,app:r._a,pinia:r,options:s})))}),p&&a&&n.hydrate&&n.hydrate(y.$state,p),l=!0,u=!0,y}function Ph(e,t,n){let r,i=typeof t==`function`;r=i?n:t;function a(n,a){let o=Bn();return n||=o?R(ah,null):null,n&&ih(n),n=rh,n._s.has(e)||(i?Nh(e,t,r,n):Mh(e,r,n)),n._s.get(e)}return a.$id=e,a}function Fh(e){let t=j(e),n={};for(let r in t){let i=t[r];i.effect?n[r]=G({get:()=>e[r],set(t){e[r]=t}}):(M(i)||Ut(i))&&(n[r]=I(e,r))}return n}var Ih=`/api`,Lh=new Set([`/auth/login`,`/auth/refresh`,`/auth/logout`]);function Rh(e,t){return typeof e==`string`?e:Array.isArray(e)?e.map(e=>e?.msg||JSON.stringify(e)).join(`; `):e&&typeof e==`object`?JSON.stringify(e):t}var zh=null;async function Bh(){return zh||(zh=(async()=>{try{let e=await fetch(`${Ih}/auth/refresh`,{method:`POST`,credentials:`include`,headers:{"Content-Type":`application/json`},body:`{}`});if(!e.ok)return!1;let t=await e.json();return t?.access_token?($h().setAccessToken(t.access_token),!0):!1}catch{return!1}finally{zh=null}})(),zh)}function Vh(e,t){let n=`${Ih}${e}`;if(t){let e=new URLSearchParams;for(let[n,r]of Object.entries(t))r!=null&&e.set(n,String(r));let r=e.toString();r&&(n+=`?${r}`)}return n}function Hh(e){let t=$h(),n={...e.headers||{}};return e.body instanceof FormData||(n[`Content-Type`]=`application/json`),t.token&&(n.Authorization=`Bearer ${t.token}`),n}async function Uh(e,t={}){let{params:n,_retry:r,...i}=t,a=Vh(e,n),o=$h();!r&&!Lh.has(e)&&o.token&&o.isTokenExpiringSoon(300)&&await Bh();let s=await fetch(a,{...i,headers:Hh(i),credentials:`include`});if(s.status===401){if(!Lh.has(e)&&!r){if(await Bh())return Uh(e,{...t,_retry:!0});throw o.forceLogout(),new Xh(401,`登录已过期,请重新登录`)}let n=await s.text(),i={};try{i=JSON.parse(n)}catch{i={detail:n}}throw new Xh(401,Rh(i.detail,Lh.has(e)?`认证失败`:`登录已过期,请重新登录`))}return s}async function Wh(e,t={}){let n=await Uh(e,t),r=n.headers.get(`ETag`);if(n.status===202){let e=await n.text(),t;try{t=JSON.parse(e)}catch{t={message:e}}throw new Zh(t?.detail||t?.message||`请输入 TOTP 验证码`)}if(n.status===429)throw new Xh(429,`登录尝试过多,账户已锁定 15 分钟`);if(n.status===304)return{status:304,etag:r};if(n.status===204)return{status:204,etag:r,data:void 0};let i=await n.text(),a;try{a=JSON.parse(i)}catch{a=i}if(!n.ok){let e=a,t=Rh(e?.detail??e?.message,n.statusText),r=new Xh(n.status,t);throw r.detail=e?.detail,r}return{status:n.status,data:a,etag:r}}async function Gh(e){let t=await e.text(),n;try{n=JSON.parse(t)}catch{n=t}let r=n,i=Rh(r?.detail??r?.message,e.statusText),a=new Xh(e.status,i);throw a.detail=r?.detail,a}function Kh(e){if(!e)return null;let t=e.match(/filename\*=UTF-8''([^;]+)/i);if(t?.[1])try{return decodeURIComponent(t[1])}catch{return t[1]}return e.match(/filename="?([^";]+)"?/i)?.[1]??null}async function qh(e,t){let n=await Uh(e,{method:`POST`,body:JSON.stringify(t??{})});if(n.status===202)throw new Zh(`请输入 TOTP 验证码`);if(n.status===429)throw new Xh(429,`登录尝试过多,账户已锁定 15 分钟`);return n.ok||await Gh(n),{blob:await n.blob(),filename:Kh(n.headers.get(`Content-Disposition`))||`download`}}async function Jh(e,t={}){let n=await Uh(e,t);if(n.status===202){let e=await n.text(),t;try{t=JSON.parse(e)}catch{t={message:e}}throw new Zh(t?.detail||t?.message||`请输入 TOTP 验证码`)}if(n.status===429)throw new Xh(429,`登录尝试过多,账户已锁定 15 分钟`);if(n.status===204)return;let r=await n.text(),i;try{i=JSON.parse(r)}catch{i=r}if(!n.ok){let e=i,t=Rh(e?.detail??e?.message,n.statusText),r=new Xh(n.status,t);throw r.detail=e?.detail,r}return i}var Yh={get:(e,t)=>Jh(e,{method:`GET`,params:t}),getList:async(e,t)=>{let n=await Jh(e,{method:`GET`,params:t});if(Array.isArray(n))return{items:n,total:n.length};if(n&&typeof n==`object`){let e=n;if(Array.isArray(e.items))return{items:e.items,total:e.total??e.items.length}}return{items:[],total:0}},post:(e,t)=>Jh(e,{method:`POST`,body:t?JSON.stringify(t):void 0}),put:(e,t)=>Jh(e,{method:`PUT`,body:t?JSON.stringify(t):void 0}),delete:e=>Jh(e,{method:`DELETE`}),upload:(e,t)=>Jh(e,{method:`POST`,body:t}),download:(e,t)=>qh(e,t)},Xh=class extends Error{status;detail;constructor(e,t){super(t),this.status=e,this.name=`ApiError`}},Zh=class extends Error{constructor(e){super(e),this.name=`TotpRequiredError`}};function Qh(e){try{let t=e.split(`.`)[1];if(!t)return 0;let n=t.length%4;n&&(t+=`=`.repeat(4-n));let r=atob(t.replace(/-/g,`+`).replace(/_/g,`/`)),i=JSON.parse(r);return typeof i.exp==`number`?i.exp:0}catch{return 0}}var $h=Ph(`auth`,()=>{let e=N(null),t=N(null),n=N(!1),r=G(()=>!!e.value),i=G(()=>e.value?Qh(e.value):0);function a(e=300){let t=i.value;return t>0&&t-Math.floor(Date.now()/1e3){})}function d(){e.value=null,t.value=null}return{token:e,admin:t,isLoggedIn:r,bootstrapped:n,tokenExp:i,isTokenExpiringSoon:a,setAccessToken:o,tryRestoreSession:s,login:c,fetchProfile:l,logout:u,forceLogout:d}}),eg=`modulepreload`,tg=function(e){return`/app/`+e},ng={},rg=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=tg(t,n),t in ng)return;ng[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:eg,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},ig=$m({history:vm(),routes:[{path:`/`,name:`Dashboard`,component:()=>rg(()=>import(`./DashboardPage-CUPD9pH7.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]))},{path:`/servers`,name:`Servers`,component:()=>rg(()=>import(`./ServersPage-6zeh5KJx.js`),__vite__mapDeps([17,18,19,6,2,3,7,8,9,4,5,10,20,21,22,23,11,12,24,25,26,27,13,1,14,28,29,30]))},{path:`/terminal`,name:`Terminal`,component:()=>rg(()=>import(`./TerminalPage-CWBSa0uQ.js`),__vite__mapDeps([31,1,6,2,3,7,8,9,20,21,32,33,34,35]))},{path:`/files`,name:`Files`,component:()=>rg(()=>import(`./FilesPage-DHKaHWZF.js`),__vite__mapDeps([36,1,37,38,39,40,18,19,41,6,2,3,7,8,9,42,5,10,20,21,22,23,11,12,24,25,43,28,29,44]))},{path:`/push`,name:`Push`,component:()=>rg(()=>import(`./PushPage-CPXCI12O.js`),__vite__mapDeps([45,18,19,41,6,2,3,7,8,9,42,5,10,4,20,21,11,12,24,25,34,46]))},{path:`/scripts`,name:`Scripts`,component:()=>rg(()=>import(`./ScriptsPage-CknVO2RI.js`),__vite__mapDeps([47,6,2,3,7,8,9,5,10,20,21,11,12,24,25,26,27,43,28,29]))},{path:`/credentials`,name:`Credentials`,component:()=>rg(()=>import(`./CredentialsPage-C5c3D-5B.js`),__vite__mapDeps([48,2,3,5,6,7,8,9,10,4,20,21,24,25,26,27,28,29]))},{path:`/schedules`,name:`Schedules`,component:()=>rg(()=>import(`./SchedulesPage-CxS2y1OK.js`),__vite__mapDeps([49,6,2,3,7,8,9,4,5,10,20,21,24,25,50,51,43,28]))},{path:`/retries`,name:`Retries`,component:()=>rg(()=>import(`./RetriesPage-CaygSdmM.js`),__vite__mapDeps([52,6,2,3,7,8,9,4,5,10,20,21,24,25]))},{path:`/commands`,name:`Commands`,component:()=>rg(()=>import(`./CommandsPage-CA2YnvK1.js`),__vite__mapDeps([53,6,2,3,7,8,9,4,5,10,24,25,43,28]))},{path:`/alerts`,name:`Alerts`,component:()=>rg(()=>import(`./AlertsPage-BgMCTUIE.js`),__vite__mapDeps([54,6,2,3,7,8,9,4,5,10,11,12,24,25]))},{path:`/audit`,name:`Audit`,component:()=>rg(()=>import(`./AuditPage-7j50ERAw.js`),__vite__mapDeps([55,6,2,3,7,8,9,4,5,10,24,25,15]))},{path:`/settings`,name:`Settings`,component:()=>rg(()=>import(`./SettingsPage-BNhfSvbM.js`),__vite__mapDeps([56,2,3,20,21,11,12,7,8,24,25,50,51,26,27,32,1,33,29]))},{path:`/login`,name:`Login`,component:()=>rg(()=>import(`./LoginPage-Cau2AFzJ.js`),__vite__mapDeps([57,1,18,19,2,3,58])),meta:{public:!0}}]}),ag=`nexus_chunk_reload_v1`;function og(e){return e.includes(`Failed to fetch dynamically imported module`)||e.includes(`Importing a module script failed`)||e.includes(`error loading dynamically imported module`)}ig.onError((e,t)=>{if(!og(e?.message||``))return;let n=window;if(!sessionStorage.getItem(ag)){sessionStorage.setItem(ag,`1`),window.location.reload();return}n.$snackbar?.(`页面「${String(t.name||t.path)}」资源已更新,请关闭此标签后重新打开后台`,`error`)}),ig.afterEach(()=>{sessionStorage.removeItem(ag)}),ig.beforeEach(async e=>{let t=$h();if(t.bootstrapped||await t.tryRestoreSession(),!e.meta.public&&!t.isLoggedIn)return{name:`Login`,query:{redirect:e.fullPath}};if(e.name===`Login`&&t.isLoggedIn)return{name:`Dashboard`}});function sg(e){e.use(Yf),e.use(ig),e.use(bh())}var cg=N(null),lg=N(!1),ug=N(0),dg=N([]),fg=null,pg=3e4,mg=50;function hg(){return`${location.protocol===`https:`?`wss:`:`ws:`}//${location.host}/ws/alerts`}function gg(){let e=$h(),t=G(()=>{if(!cg.value)return`disconnected`;switch(cg.value.readyState){case WebSocket.CONNECTING:return`connecting`;case WebSocket.OPEN:return`connected`;case WebSocket.CLOSING:return`closing`;default:return`disconnected`}});function n(){if(!e.token||cg.value?.readyState===WebSocket.OPEN)return;cg.value&&=(cg.value.onclose=null,cg.value.close(),null);let t=`${hg()}?token=${e.token}`,n=new WebSocket(t);n.onopen=()=>{lg.value=!0,ug.value=0},n.onmessage=e=>{if(e.data!==`pong`)try{let t=JSON.parse(e.data);if(t.type===`ping`){n.send(`pong`);return}if(t.type===`alert`||t.type===`recovery`){let e={type:t.type,serverId:t.server_id,serverName:t.server_name,alertType:t.alert_type||t.metric,value:t.alert_value||t.value,time:new Date().toLocaleTimeString()};dg.value.unshift(e),dg.value.length>mg&&dg.value.pop();let n=window.$snackbar;if(n){let e=t.type===`alert`?`error`:`success`;n(t.type===`alert`?`告警: ${t.server_name} ${t.alert_type} ${t.alert_value}%`:`恢复: ${t.server_name} ${t.metric} 恢复正常`,e)}}}catch{}},n.onclose=t=>{if(lg.value=!1,cg.value=null,t.code===4001||t.code===4401){e.forceLogout();return}i()},n.onerror=()=>{},cg.value=n}function r(){fg&&=(clearTimeout(fg),null),cg.value&&=(cg.value.close(),null),lg.value=!1,ug.value=0}function i(){if(!e.isLoggedIn)return;ug.value++;let t=Math.min(1e3*2**(ug.value-1)+Math.random()*1e3,pg);fg=setTimeout(()=>{e.isLoggedIn&&n()},t)}function a(){dg.value=[]}return{connected:lg,connectionState:t,alerts:dg,connect:n,disconnect:r,clearAlerts:a}}var _g=J({...Y(),...lc(Vf(),[`fullHeight`]),...Cf()},`VApp`),vg=X()({name:`VApp`,props:_g(),setup(e,{slots:t}){let n=Ff(e),{layoutClasses:r,getLayoutItem:i,items:a,layoutRef:o}=Kf({...e,fullHeight:!0}),{rtlClasses:s}=nd();return Z(()=>H(`div`,{ref:o,class:k([`v-application`,n.themeClasses.value,r.value,s.value,e.class]),style:O([e.style])},[H(`div`,{class:`v-application__wrap`},[t.default?.()])])),{getLayoutItem:i,items:a,theme:n}}}),yg=J({tag:{type:[String,Object,Function],default:`div`}},`tag`),bg=J({text:String,...Y(),...yg()},`VToolbarTitle`),xg=X()({name:`VToolbarTitle`,props:bg(),setup(e,{slots:t}){return Z(()=>{let n=!!(t.default||t.text||e.text);return U(e.tag,{class:k([`v-toolbar-title`,e.class]),style:O(e.style)},{default:()=>[n&&H(`div`,{class:`v-toolbar-title__placeholder`},[t.text?t.text():e.text,t.default?.()])]})}),{}}}),Sg=J({disabled:Boolean,group:Boolean,hideOnLeave:Boolean,leaveAbsolute:Boolean,mode:String,origin:String},`transition`);function Cg(e,t,n){return X()({name:e,props:Sg({mode:n,origin:t}),setup(t,{slots:n}){let r={onBeforeEnter(e){t.origin&&(e.style.transformOrigin=t.origin)},onLeave(e){if(t.leaveAbsolute){let{offsetTop:t,offsetLeft:n,offsetWidth:r,offsetHeight:i}=e;e._transitionInitialStyles={position:e.style.position,top:e.style.top,left:e.style.left,width:e.style.width,height:e.style.height},e.style.position=`absolute`,e.style.top=`${t}px`,e.style.left=`${n}px`,e.style.width=`${r}px`,e.style.height=`${i}px`}t.hideOnLeave&&e.style.setProperty(`display`,`none`,`important`)},onAfterLeave(e){if(t.leaveAbsolute&&e?._transitionInitialStyles){let{position:t,top:n,left:r,width:i,height:a}=e._transitionInitialStyles;delete e._transitionInitialStyles,e.style.position=t||``,e.style.top=n||``,e.style.left=r||``,e.style.width=i||``,e.style.height=a||``}}};return()=>co(t.group?xs:To,{name:t.disabled?``:e,css:!t.disabled,...t.group?void 0:{mode:t.mode},...t.disabled?{}:r},n.default)}})}function wg(e,t,n=`in-out`){return X()({name:e,props:{mode:{type:String,default:n},disabled:{type:Boolean,default:Xs()},group:Boolean,hideOnLeave:Boolean},setup(n,{slots:r}){let i=n.group?xs:To;return()=>co(i,{name:n.disabled?``:e,css:!n.disabled,...n.disabled?{}:{...t,onLeave:e=>{n.hideOnLeave?e.style.setProperty(`display`,`none`,`important`):t.onLeave?.(e)}}},r.default)}})}function Tg(e=``,t=`y`){return{onBeforeEnter(e){e._parent=e.parentNode,e._initialStyle={transition:e.style.transition,overflow:e.style.overflow,width:e.style.width,height:e.style.height}},onEnter(n){let r=n._initialStyle;if(!r)return;n.style.setProperty(`transition`,`none`,`important`),n.style.overflow=`hidden`;let i=`${n.offsetWidth}px`,a=`${n.offsetHeight}px`;[`x`,`both`].includes(t)&&(n.style.width=`0`),[`y`,`both`].includes(t)&&(n.style.height=`0`),n.offsetHeight,n.style.transition=r.transition,e&&n._parent&&n._parent.classList.add(e),requestAnimationFrame(()=>{[`x`,`both`].includes(t)&&(n.style.width=i),[`y`,`both`].includes(t)&&(n.style.height=a)})},onAfterEnter:r,onEnterCancelled:r,onLeave(e){e._initialStyle={transition:``,overflow:e.style.overflow,width:e.style.width,height:e.style.height},e.style.overflow=`hidden`,[`x`,`both`].includes(t)&&(e.style.width=`${e.offsetWidth}px`),[`y`,`both`].includes(t)&&(e.style.height=`${e.offsetHeight}px`),e.offsetHeight,requestAnimationFrame(()=>{[`x`,`both`].includes(t)&&(e.style.width=`0`),[`y`,`both`].includes(t)&&(e.style.height=`0`)})},onAfterLeave:n,onLeaveCancelled:n};function n(t){e&&t._parent&&t._parent.classList.remove(e),r(t)}function r(e){if(!e._initialStyle)return;let{width:n,height:r}=e._initialStyle;e.style.overflow=e._initialStyle.overflow,n!=null&&[`x`,`both`].includes(t)&&(e.style.width=n),r!=null&&[`y`,`both`].includes(t)&&(e.style.height=r),delete e._initialStyle}}var Eg=J({target:[Object,Array]},`v-dialog-transition`),Dg=new WeakMap,Og=X()({name:`VDialogTransition`,props:Eg(),setup(e,{slots:t}){let n={onBeforeEnter(e){e.style.pointerEvents=`none`,e.style.visibility=`hidden`},async onEnter(t,n){await new Promise(e=>requestAnimationFrame(e)),await new Promise(e=>requestAnimationFrame(e)),t.style.visibility=``;let r=Ag(e.target,t),{x:i,y:a,sx:o,sy:s,speed:c}=r;if(Dg.set(t,r),Xs())cl(t,[{opacity:0},{}],{duration:125*c,easing:bu}).finished.then(()=>n());else{let e=cl(t,[{transform:`translate(${i}px, ${a}px) scale(${o}, ${s})`,opacity:0},{}],{duration:225*c,easing:bu});kg(t)?.forEach(e=>{cl(e,[{opacity:0},{opacity:0,offset:.33},{}],{duration:450*c,easing:yu})}),e.finished.then(()=>n())}},onAfterEnter(e){e.style.removeProperty(`pointer-events`)},onBeforeLeave(e){e.style.pointerEvents=`none`},async onLeave(t,n){await new Promise(e=>requestAnimationFrame(e));let r;r=!Dg.has(t)||Array.isArray(e.target)||e.target.offsetParent||e.target.getClientRects().length?Ag(e.target,t):Dg.get(t);let{x:i,y:a,sx:o,sy:s,speed:c}=r;Xs()?cl(t,[{},{opacity:0}],{duration:85*c,easing:xu}).finished.then(()=>n()):(cl(t,[{},{transform:`translate(${i}px, ${a}px) scale(${o}, ${s})`,opacity:0}],{duration:125*c,easing:xu}).finished.then(()=>n()),kg(t)?.forEach(e=>{cl(e,[{},{opacity:0,offset:.2},{opacity:0}],{duration:250*c,easing:yu})}))},onAfterLeave(e){e.style.removeProperty(`pointer-events`)}};return()=>e.target?U(To,W({name:`dialog-transition`},n,{css:!1}),t):U(To,{name:`dialog-transition`},t)}});function kg(e){let t=e.querySelector(`:scope > .v-card, :scope > .v-sheet, :scope > .v-list`)?.children;return t&&[...t]}function Ag(e,t){let n=al(e),r=sl(t),[i,a]=getComputedStyle(t).transformOrigin.split(` `).map(e=>parseFloat(e)),[o,s]=getComputedStyle(t).getPropertyValue(`--v-overlay-anchor-origin`).split(` `),c=n.left+n.width/2;o===`left`||s===`left`?c-=n.width/2:(o===`right`||s===`right`)&&(c+=n.width/2);let l=n.top+n.height/2;o===`top`||s===`top`?l-=n.height/2:(o===`bottom`||s===`bottom`)&&(l+=n.height/2);let u=n.width/r.width,d=n.height/r.height,f=Math.max(1,u,d),p=u/f||0,m=d/f||0,h=r.width*r.height/(window.innerWidth*window.innerHeight),g=h>.12?Math.min(1.5,(h-.12)*10+1):1;return{x:c-(i+r.left),y:l-(a+r.top),sx:p,sy:m,speed:g}}Cg(`fab-transition`,`center center`,`out-in`),Cg(`dialog-bottom-transition`),Cg(`dialog-top-transition`);var jg=Cg(`fade-transition`),Mg=Cg(`scale-transition`);Cg(`scroll-x-transition`),Cg(`scroll-x-reverse-transition`),Cg(`scroll-y-transition`),Cg(`scroll-y-reverse-transition`),Cg(`slide-x-transition`),Cg(`slide-x-reverse-transition`);var Ng=Cg(`slide-y-transition`);Cg(`slide-y-reverse-transition`);var Pg=wg(`expand-transition`,Tg()),Fg=wg(`expand-x-transition`,Tg(``,`x`));wg(`expand-both-transition`,Tg(``,`both`));var Ig=J({defaults:Object,disabled:Boolean,reset:[Number,String],root:[Boolean,String],scoped:Boolean},`VDefaultsProvider`),Lg=X(!1)({name:`VDefaultsProvider`,props:Ig(),setup(e,{slots:t}){let{defaults:n,disabled:r,reset:i,root:a,scoped:o}=tn(e);return lu(n,{reset:i,root:a,scoped:o,disabled:r}),()=>t.default?.()}}),Rg=J({height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},`dimension`);function zg(e){return{dimensionStyles:G(()=>{let t={},n=q(e.height),r=q(e.maxHeight),i=q(e.maxWidth),a=q(e.minHeight),o=q(e.minWidth),s=q(e.width);return n!=null&&(t.height=n),r!=null&&(t.maxHeight=r),i!=null&&(t.maxWidth=i),a!=null&&(t.minHeight=a),o!=null&&(t.minWidth=o),s!=null&&(t.width=s),t})}}function Bg(e){return{aspectStyles:G(()=>{let t=Number(e.aspectRatio);return t?{paddingBottom:String(1/t*100)+`%`}:void 0})}}var Vg=J({aspectRatio:[String,Number],contentClass:null,inline:Boolean,...Y(),...Rg()},`VResponsive`),Hg=X()({name:`VResponsive`,props:Vg(),setup(e,{slots:t}){let{aspectStyles:n}=Bg(e),{dimensionStyles:r}=zg(e);return Z(()=>H(`div`,{class:k([`v-responsive`,{"v-responsive--inline":e.inline},e.class]),style:O([r.value,e.style])},[H(`div`,{class:`v-responsive__sizer`,style:O(n.value)},null),t.additional?.(),t.default&&H(`div`,{class:k([`v-responsive__content`,e.contentClass])},[t.default()])])),{}}});function Ug(e){return Oc(()=>{let{class:t,style:n}=qg(e);return{colorClasses:t,colorStyles:n}})}function Wg(e){let{colorClasses:t,colorStyles:n}=Ug(()=>({text:Qt(e)}));return{textColorClasses:t,textColorStyles:n}}function Gg(e){let{colorClasses:t,colorStyles:n}=Ug(()=>({background:Qt(e)}));return{backgroundColorClasses:t,backgroundColorStyles:n}}function Kg(e){return{text:typeof e.text==`string`?e.text.replace(/^text-/,``):e.text,background:typeof e.background==`string`?e.background.replace(/^bg-/,``):e.background}}function qg(e){let t=Kg(Qt(e)),n=[],r={};if(t.background)if(Vl(t.background)){if(r.backgroundColor=t.background,!t.text&&Hl(t.background)){let e=Gl(t.background);(e.a==null||e.a===1)&&n.push(nu(e)?`v-theme-on-dark`:`v-theme-on-light`)}}else n.push(`bg-${t.background}`);return t.text&&(Vl(t.text)?(r.color=t.text,r.caretColor=t.text):n.push(`text-${t.text}`)),{class:n,style:r}}var Jg=J({rounded:{type:[Boolean,Number,String],default:void 0},tile:Boolean},`rounded`);function Yg(e,t=iu()){return{roundedClasses:G(()=>{let n=M(e)?e.value:e.rounded,r=M(e)?!1:e.tile,i=[];if(r||n===!1)i.push(`rounded-0`);else if(n===!0||n===``)i.push(`${t}--rounded`);else if(typeof n==`string`||n===0)for(let e of String(n).split(` `))i.push(`rounded-${e}`);return i})}}var Xg=J({transition:{type:null,default:`fade-transition`,validator:e=>e!==!0}},`transition`),Zg=(e,{slots:t})=>{let{transition:n,disabled:r,group:i,...a}=e,{component:o=i?xs:To,...s}=tc(n)?n:{},c;return c=tc(n)?W(s,Jc({disabled:r,group:i}),a):W({name:r||!n?``:n},a),co(o,c,t)};function Qg(e,t){if(!qs)return;let n=t.modifiers||{},r=t.value,{handler:i,options:a}=typeof r==`object`?r:{handler:r,options:{}},o=new IntersectionObserver((r=[],a)=>{let o=e._observe?.[t.instance.$.uid];if(!o)return;let s=r.some(e=>e.isIntersecting);i&&(!n.quiet||o.init)&&(!n.once||s||o.init)&&i(s,r,a),s&&n.once?$g(e,t):o.init=!0},a);e._observe=Object(e._observe),e._observe[t.instance.$.uid]={init:!1,observer:o},o.observe(e)}function $g(e,t){let n=e._observe?.[t.instance.$.uid];n&&(n.observer.unobserve(e),delete e._observe[t.instance.$.uid])}var e_={mounted:Qg,unmounted:$g,updated:(e,t)=>{e._observe?.[t.instance.$.uid]&&($g(e,t),Qg(e,t))}},t_=J({absolute:Boolean,alt:String,cover:Boolean,color:String,draggable:{type:[Boolean,String],default:void 0},eager:Boolean,gradient:String,imageClass:null,lazySrc:String,options:{type:Object,default:()=>({root:void 0,rootMargin:void 0,threshold:void 0})},sizes:String,src:{type:[String,Object],default:``},crossorigin:String,referrerpolicy:String,srcset:String,position:String,...Vg(),...Y(),...Jg(),...Xg()},`VImg`),n_=X()({name:`VImg`,directives:{vIntersect:e_},inheritAttrs:!1,props:t_(),emits:{loadstart:e=>!0,load:e=>!0,error:e=>!0},setup(e,{attrs:t,emit:n,slots:r}){let{backgroundColorClasses:i,backgroundColorStyles:a}=Gg(()=>e.color),{roundedClasses:o}=Yg(e),s=ru(`VImg`),c=P(``),l=N(),u=P(e.eager?`loading`:`idle`),d=P(),f=P(),p=G(()=>e.src&&typeof e.src==`object`?{src:e.src.src,srcset:e.srcset||e.src.srcset,lazySrc:e.lazySrc||e.src.lazySrc,aspect:Number(e.aspectRatio||e.src.aspect||0)}:{src:e.src,srcset:e.srcset,lazySrc:e.lazySrc,aspect:Number(e.aspectRatio||0)}),m=G(()=>p.value.aspect||d.value/f.value||0);z(()=>e.src,()=>{h(u.value!==`idle`)}),z(m,(e,t)=>{!e&&t&&l.value&&b(l.value)}),Lr(()=>h());function h(t){if(!(e.eager&&t)&&!(qs&&!t&&!e.eager)){if(u.value=`loading`,p.value.lazySrc){let e=new Image;e.src=p.value.lazySrc,b(e,null)}p.value.src&&Tn(()=>{n(`loadstart`,l.value?.currentSrc||p.value.src),setTimeout(()=>{if(!s.isUnmounted)if(l.value?.complete){if(l.value.naturalWidth||_(),u.value===`error`)return;m.value||b(l.value,null),u.value===`loading`&&g()}else m.value||b(l.value),v()})})}}function g(){s.isUnmounted||(v(),b(l.value),u.value=`loaded`,n(`load`,l.value?.currentSrc||p.value.src))}function _(){s.isUnmounted||(u.value=`error`,n(`error`,l.value?.currentSrc||p.value.src))}function v(){let e=l.value;e&&(c.value=e.currentSrc||e.src)}let y=-1;Vr(()=>{clearTimeout(y)});function b(e,t=100){let n=()=>{if(clearTimeout(y),s.isUnmounted)return;let{naturalHeight:r,naturalWidth:i}=e;r||i?(d.value=i,f.value=r):!e.complete&&u.value===`loading`&&t!=null?y=window.setTimeout(n,t):(e.currentSrc.endsWith(`.svg`)||e.currentSrc.startsWith(`data:image/svg+xml`))&&(d.value=1,f.value=1)};n()}let x=I(()=>({"v-img__img--cover":e.cover,"v-img__img--contain":!e.cover})),S=()=>{if(!p.value.src||u.value===`idle`)return null;let t=H(`img`,{class:k([`v-img__img`,x.value,e.imageClass]),style:{objectPosition:e.position},crossorigin:e.crossorigin,src:p.value.src,srcset:p.value.srcset,alt:e.alt,referrerpolicy:e.referrerpolicy,draggable:e.draggable,sizes:e.sizes,ref:l,onLoad:g,onError:_},null),n=r.sources?.();return U(Zg,{transition:e.transition,appear:!0},{default:()=>[Ln(n?H(`picture`,{class:`v-img__picture`},[n,t]):t,[[Uo,u.value===`loaded`]])]})},C=()=>U(Zg,{transition:e.transition},{default:()=>[p.value.lazySrc&&u.value!==`loaded`&&H(`img`,{class:k([`v-img__img`,`v-img__img--preload`,x.value]),style:{objectPosition:e.position},crossorigin:e.crossorigin,src:p.value.lazySrc,alt:e.alt,referrerpolicy:e.referrerpolicy,draggable:e.draggable},null)]}),w=()=>r.placeholder?U(Zg,{transition:e.transition,appear:!0},{default:()=>[(u.value===`loading`||u.value===`error`&&!r.error)&&H(`div`,{class:`v-img__placeholder`},[r.placeholder()])]}):null,T=()=>r.error?U(Zg,{transition:e.transition,appear:!0},{default:()=>[u.value===`error`&&H(`div`,{class:`v-img__error`},[r.error()])]}):null,E=()=>e.gradient?H(`div`,{class:`v-img__gradient`,style:{backgroundImage:`linear-gradient(${e.gradient})`}},null):null,ee=P(!1);{let e=z(m,t=>{t&&(requestAnimationFrame(()=>{requestAnimationFrame(()=>{ee.value=!0})}),e())})}return Z(()=>{let n=Hg.filterProps(e),[s,c]=hc(t);return Ln(U(Hg,W({class:[`v-img`,{"v-img--absolute":e.absolute,"v-img--booting":!ee.value,"v-img--fit-content":e.width===`fit-content`},i.value,o.value,e.class],style:[{width:q(e.width===`auto`?d.value:e.width)},a.value,e.style]},n,s,{aspectRatio:m.value,"aria-label":e.alt,role:e.alt?`img`:void 0}),{additional:()=>H(B,null,[U(S,c,null),U(C,null,null),U(E,null,null),U(w,null,null),U(T,null,null)]),default:r.default}),[[e_,{handler:h,options:e.options},null,{once:!0}]])}),{currentSrc:c,image:l,state:u,naturalWidth:d,naturalHeight:f}}}),r_=J({border:[Boolean,Number,String]},`border`);function i_(e,t=iu()){return{borderClasses:G(()=>{let n=e.border;return n===!0||n===``?`${t}--border`:typeof n==`string`||n===0?String(n).split(` `).map(e=>`border-${e}`):[]})}}var a_=J({elevation:{type:[Number,String],validator:e=>parseInt(e)>=0}},`elevation`);function o_(e){return{elevationClasses:I(()=>{let t=M(e)?e.value:e.elevation;return t==null?[]:[`elevation-${parseInt(t)}`]})}}var s_={center:`center`,top:`bottom`,bottom:`top`,left:`right`,right:`left`},c_=J({location:String},`location`);function l_(e,t=!1,n){let{isRtl:r}=nd();return{locationStyles:G(()=>{if(!e.location)return{};let{side:i,align:a}=Zc(e.location.split(` `).length>1?e.location:`${e.location} center`,r.value);function o(e){return n?n(e):0}let s={};return i!==`center`&&(t?s[s_[i]]=`calc(100% - ${o(i)}px)`:s[i]=0),a===`center`?(i===`center`?s.top=s.left=`50%`:s[{top:`left`,bottom:`left`,left:`top`,right:`top`}[i]]=`50%`,s.transform={top:`translateX(-50%)`,bottom:`translateX(-50%)`,left:`translateY(-50%)`,right:`translateY(-50%)`,center:`translate(-50%, -50%)`}[i]):t?s[s_[a]]=`calc(100% - ${o(a)}px)`:s[a]=0,s})}}var u_=[null,`prominent`,`default`,`comfortable`,`compact`],d_=J({absolute:Boolean,collapse:Boolean,collapsePosition:{type:String,default:`start`},color:String,density:{type:String,default:`default`,validator:e=>u_.includes(e)},extended:{type:Boolean,default:null},extensionHeight:{type:[Number,String],default:48},flat:Boolean,floating:Boolean,height:{type:[Number,String],default:64},image:String,title:String,...r_(),...Y(),...a_(),...c_(),...Jg(),...yg({tag:`header`}),...Cf()},`VToolbar`),f_=X()({name:`VToolbar`,props:d_(),setup(e,{slots:t}){let{backgroundColorClasses:n,backgroundColorStyles:r}=Gg(()=>e.color),{borderClasses:i}=i_(e),{elevationClasses:a}=o_(e),{locationStyles:o}=l_(e),{roundedClasses:s}=Yg(e),{themeClasses:c}=Ff(e),{rtlClasses:l}=nd(),u=P(e.extended===null?!!t.extension?.():e.extended),d=G(()=>parseInt(Number(e.height)+(e.density===`prominent`?Number(e.height):0)-(e.density===`comfortable`?8:0)-(e.density===`compact`?16:0),10)),f=G(()=>u.value?parseInt(Number(e.extensionHeight)+(e.density===`prominent`?Number(e.extensionHeight):0)-(e.density===`comfortable`?4:0)-(e.density===`compact`?8:0),10):0);return lu({VBtn:{variant:`text`}}),Z(()=>{let p=!!(e.title||t.title),m=!!(t.image||e.image),h=t.extension?.();return u.value=e.extended===null?!!h:e.extended,U(e.tag,{class:k([`v-toolbar`,`v-toolbar--collapse-${e.collapsePosition}`,{"v-toolbar--absolute":e.absolute,"v-toolbar--collapse":e.collapse,"v-toolbar--flat":e.flat,"v-toolbar--floating":e.floating,[`v-toolbar--density-${e.density}`]:!0},n.value,i.value,a.value,s.value,c.value,l.value,e.class]),style:O([r.value,o.value,e.style])},{default:()=>[m&&H(`div`,{key:`image`,class:`v-toolbar__image`},[t.image?U(Lg,{key:`image-defaults`,disabled:!e.image,defaults:{VImg:{cover:!0,src:e.image}}},t.image):U(n_,{key:`image-img`,cover:!0,src:e.image},null)]),U(Lg,{defaults:{VTabs:{height:q(d.value)}}},{default:()=>[H(`div`,{class:`v-toolbar__content`,style:{height:q(d.value)}},[t.prepend&&H(`div`,{class:`v-toolbar__prepend`},[t.prepend?.()]),p&&U(xg,{key:`title`,text:e.title},{text:t.title}),t.default?.(),t.append&&H(`div`,{class:`v-toolbar__append`},[t.append?.()])])]}),U(Lg,{defaults:{VTabs:{height:q(f.value)}}},{default:()=>[U(Pg,null,{default:()=>[u.value&&H(`div`,{class:`v-toolbar__extension`,style:{height:q(f.value)}},[h])]})]})]})}),{contentHeight:d,extensionHeight:f}}}),p_=J({scrollTarget:{type:String},scrollThreshold:{type:[String,Number],default:300}},`scroll`);function m_(e,t={}){let{canScroll:n,layoutSize:r}=t,i=0,a=0,o=N(null),s=P(0),c=P(0),l=P(0),u=P(!1),d=P(!1),f=P(!1),p=P(!1),m=P(!0),h=G(()=>Number(e.scrollThreshold)),g=G(()=>vc((h.value-s.value)/h.value||0));function _(e){return{clientHeight:`window`in e?window.innerHeight:e.clientHeight,scrollHeight:`window`in e?document.documentElement.scrollHeight:e.scrollHeight}}function v(){let e=o.value;if(!e)return;let{clientHeight:t,scrollHeight:n}=_(e),i=n-t,a=r?.value||0;m.value=i>h.value+a}function y(){v()}function b(){let e=o.value;if(!e||n&&!n.value)return;i=s.value,s.value=`window`in e?e.pageYOffset:e.scrollTop;let t=e instanceof Window?document.documentElement.scrollHeight:e.scrollHeight;a!==t&&(t>a&&v(),a=t),d.value=s.value=c-5;!d.value&&u&&s.value>=h.value&&m.value&&(p.value=!0);let g=Math.abs(s.value-i)>100,y=s.value<=5;(d.value&&i-s.value>1&&!u||g&&s.value{c.value=c.value||s.value}),z(u,()=>{c.value=0}),Rr(()=>{z(()=>e.scrollTarget,e=>{let t=e?document.querySelector(e):window;if(!t){Ws(`Unable to locate element with identifier ${e}`);return}t!==o.value&&(o.value?.removeEventListener(`scroll`,b),o.value=t,o.value.addEventListener(`scroll`,b,{passive:!0}),Promise.resolve().then(()=>{v()}))},{immediate:!0}),window.addEventListener(`resize`,y,{passive:!0})}),Vr(()=>{o.value?.removeEventListener(`scroll`,b),window.removeEventListener(`resize`,y)}),n&&z(n,b,{immediate:!0}),{scrollThreshold:h,currentScroll:s,currentThreshold:l,isScrollActive:u,scrollRatio:g,isScrollingUp:d,savedScroll:c,isAtBottom:f,reachedBottomWhileScrollingDown:p,hasEnoughScrollableSpace:m}}function h_(){let e=P(!1);return Rr(()=>{window.requestAnimationFrame(()=>{e.value=!0})}),{ssrBootStyles:I(()=>e.value?void 0:{transition:`none !important`}),isBooted:Vt(e)}}var g_=J({scrollBehavior:String,modelValue:{type:Boolean,default:!0},location:{type:String,default:`top`,validator:e=>[`top`,`bottom`].includes(e)},...lc(d_(),[`location`]),...Hf(),...p_(),height:{type:[Number,String],default:64}},`VAppBar`),__=X()({name:`VAppBar`,props:g_(),emits:{"update:modelValue":e=>!0},setup(e,{slots:t}){let n=N(),r=Bu(e,`modelValue`),i=G(()=>{let t=new Set(e.scrollBehavior?.split(` `)??[]);return{hide:t.has(`hide`),fullyHide:t.has(`fully-hide`),inverted:t.has(`inverted`),collapse:t.has(`collapse`),elevate:t.has(`elevate`),fadeImage:t.has(`fade-image`)}}),{currentScroll:a,scrollThreshold:o,isScrollingUp:s,scrollRatio:c,isAtBottom:l,reachedBottomWhileScrollingDown:u,hasEnoughScrollableSpace:d}=m_(e,{canScroll:G(()=>{let e=i.value;return e.hide||e.fullyHide||e.inverted||e.collapse||e.elevate||e.fadeImage||!r.value}),layoutSize:G(()=>(n.value?.contentHeight??0)+(n.value?.extensionHeight??0))}),f=I(()=>i.value.hide||i.value.fullyHide),p=G(()=>e.collapse||i.value.collapse&&(i.value.inverted?c.value>0:c.value===0)),m=G(()=>e.flat||i.value.fullyHide&&!r.value||i.value.elevate&&(i.value.inverted?a.value>0:a.value===0)),h=G(()=>i.value.fadeImage?i.value.inverted?1-c.value:c.value:void 0),g=G(()=>{if(i.value.hide&&i.value.inverted)return 0;let e=n.value?.contentHeight??0,t=n.value?.extensionHeight??0;return f.value?a.value!!e.scrollBehavior,()=>{Un(()=>{if(!f.value){r.value=!0;return}if(i.value.inverted){r.value=a.value>o.value;return}if(!d.value){r.value=!0;return}if(u.value){r.value=!1;return}r.value=s.value&&!l.value||a.valueparseInt(e.order,10)),position:I(()=>e.location),layoutSize:g,elementSize:P(void 0),active:r,absolute:I(()=>e.absolute)});return Z(()=>{let r=lc(f_.filterProps(e),[`location`]);return U(f_,W({ref:n,class:[`v-app-bar`,{"v-app-bar--bottom":e.location===`bottom`},e.class],style:[{...v.value,"--v-toolbar-image-opacity":h.value,height:void 0,..._.value},e.style]},r,{collapse:p.value,flat:m.value}),t)}),{}}}),v_=[null,`default`,`comfortable`,`compact`],y_=J({density:{type:String,default:`default`,validator:e=>v_.includes(e)}},`density`);function b_(e,t=iu()){return{densityClasses:I(()=>`${t}--density-${e.density}`)}}var x_=[`elevated`,`flat`,`tonal`,`outlined`,`text`,`plain`];function S_(e,t){return H(B,null,[e&&H(`span`,{key:`overlay`,class:k(`${t}__overlay`)},null),H(`span`,{key:`underlay`,class:k(`${t}__underlay`)},null)])}var C_=J({color:String,variant:{type:String,default:`elevated`,validator:e=>x_.includes(e)}},`variant`);function w_(e,t=iu()){let n=I(()=>{let{variant:n}=Qt(e);return`${t}--variant-${n}`}),{colorClasses:r,colorStyles:i}=Ug(()=>{let{variant:t,color:n}=Qt(e);return{[[`elevated`,`flat`].includes(t)?`background`:`text`]:n}});return{colorClasses:r,colorStyles:i,variantClasses:n}}var T_=J({baseColor:String,divided:Boolean,direction:{type:String,default:`horizontal`},...r_(),...Y(),...y_(),...a_(),...Jg(),...yg(),...Cf(),...C_()},`VBtnGroup`),E_=X()({name:`VBtnGroup`,props:T_(),setup(e,{slots:t}){let{themeClasses:n}=Ff(e),{densityClasses:r}=b_(e),{borderClasses:i}=i_(e),{elevationClasses:a}=o_(e),{roundedClasses:o}=Yg(e);lu({VBtn:{height:I(()=>e.direction===`horizontal`?`auto`:null),baseColor:I(()=>e.baseColor),color:I(()=>e.color),density:I(()=>e.density),flat:!0,variant:I(()=>e.variant)}}),Z(()=>U(e.tag,{class:k([`v-btn-group`,`v-btn-group--${e.direction}`,{"v-btn-group--divided":e.divided},n.value,i.value,r.value,a.value,o.value,e.class]),style:O(e.style)},t))}}),D_=J({modelValue:{type:null,default:void 0},multiple:Boolean,mandatory:[Boolean,String],max:Number,selectedClass:String,disabled:Boolean},`group`),O_=J({value:null,disabled:Boolean,selectedClass:String},`group-item`);function k_(e,t,n=!0){let r=ru(`useGroupItem`);if(!r)throw Error(`[Vuetify] useGroupItem composable must be used inside a component setup function`);let i=Cr();zn(Symbol.for(`${t.description}:id`),i);let a=R(t,null);if(!a){if(!n)return a;throw Error(`[Vuetify] Could not find useGroup injection with symbol ${t.description}`)}let o=I(()=>e.value),s=G(()=>!!(a.disabled.value||e.disabled));function c(){a?.register({id:i,value:o,disabled:s},r)}function l(){a?.unregister(i)}c(),Vr(()=>l());let u=G(()=>a.isSelected(i)),d=G(()=>a.items.value[0].id===i),f=G(()=>a.items.value[a.items.value.length-1].id===i),p=G(()=>u.value&&[a.selectedClass.value,e.selectedClass]);return z(u,e=>{r.emit(`group:selected`,{value:e})},{flush:`sync`}),{id:i,isSelected:u,isFirst:d,isLast:f,toggle:()=>a.select(i,!u.value),select:e=>a.select(i,e),selectedClass:p,value:o,disabled:s,group:a,register:c,unregister:l}}function A_(e,t){let n=!1,r=zt([]),i=Bu(e,`modelValue`,[],e=>e===void 0?[]:M_(r,e===null?[null]:gc(e)),t=>{let n=N_(r,t);return e.multiple?n:n[0]}),a=ru(`useGroup`);function o(e,n){let i=e,o=Ec(Symbol.for(`${t.description}:id`),a?.vnode).indexOf(n);F(i.value)===void 0&&(i.value=o,i.useIndexAsValue=!0),o>-1?r.splice(o,0,i):r.push(i)}function s(e){if(n)return;c();let t=r.findIndex(t=>t.id===e);r.splice(t,1)}function c(){let t=r.find(e=>!e.disabled);t&&e.mandatory===`force`&&!i.value.length&&(i.value=[t.id])}Rr(()=>{c()}),Vr(()=>{n=!0}),Br(()=>{for(let e=0;ee.id===t);if(!(n&&a?.disabled))if(e.multiple){let r=i.value.slice(),a=r.findIndex(e=>e===t),o=~a;if(n??=!o,o&&e.mandatory&&r.length<=1||!o&&e.max!=null&&r.length+1>e.max)return;a<0&&n?r.push(t):a>=0&&!n&&r.splice(a,1),i.value=r}else{let r=i.value.includes(t);if(e.mandatory&&r||!r&&!n)return;i.value=n??!r?[t]:[]}}function u(t){if(e.multiple&&Ws(`This method is not supported when using "multiple" prop`),i.value.length){let e=i.value[0],n=r.findIndex(t=>t.id===e),a=(n+t)%r.length,o=r[a];for(;o.disabled&&a!==n;)a=(a+t)%r.length,o=r[a];if(o.disabled)return;i.value=[r[a].id]}else{let e=r.find(e=>!e.disabled);e&&(i.value=[e.id])}}let d={register:o,unregister:s,selected:i,select:l,disabled:I(()=>e.disabled),prev:()=>u(r.length-1),next:()=>u(1),isSelected:e=>i.value.includes(e),selectedClass:I(()=>e.selectedClass),items:I(()=>r),getItemIndex:e=>j_(r,e)};return zn(t,d),d}function j_(e,t){let n=M_(e,[t]);return n.length?e.findIndex(e=>e.id===n[0]):-1}function M_(e,t){let n=[];return t.forEach(t=>{let r=e.find(e=>_u(t,e.value)),i=e[t];r?.value===void 0?i?.useIndexAsValue&&n.push(i.id):n.push(r.id)}),n}function N_(e,t){let n=[];return t.forEach(t=>{let r=e.findIndex(e=>e.id===t);if(~r){let t=e[r];n.push(t.value===void 0?r:t.value)}}),n}var P_=Symbol.for(`vuetify:v-btn-toggle`),F_=J({...T_(),...D_()},`VBtnToggle`),I_=X()({name:`VBtnToggle`,props:F_(),emits:{"update:modelValue":e=>!0},setup(e,{slots:t}){let{isSelected:n,next:r,prev:i,select:a,selected:o}=A_(e,P_);return Z(()=>{let s=E_.filterProps(e);return U(E_,W({class:[`v-btn-toggle`,{"v-btn-toggle--has-color":!!e.color},e.class]},s,{style:e.style}),{default:()=>[t.default?.({isSelected:n,next:r,prev:i,select:a,selected:o})]})}),{next:r,prev:i,select:a}}}),L_=[`x-small`,`small`,`default`,`large`,`x-large`],R_=J({size:{type:[String,Number],default:`default`}},`size`);function z_(e,t=iu()){return Oc(()=>{let n=e.size,r,i;return kc(L_,n)?r=`${t}--size-${n}`:n&&(i={width:q(n),height:q(n)}),{sizeClasses:r,sizeStyles:i}})}var B_=J({color:String,disabled:Boolean,start:Boolean,end:Boolean,icon:Q,opacity:[String,Number],...Y(),...R_(),...yg({tag:`i`}),...Cf()},`VIcon`),V_=X()({name:`VIcon`,props:B_(),setup(e,{attrs:t,slots:n}){let r=P(),{themeClasses:i}=If(),{iconData:a}=Pu(()=>r.value||e.icon),{sizeClasses:o}=z_(e),{textColorClasses:s,textColorStyles:c}=Wg(()=>e.color);return Z(()=>{let l=n.default?.();l&&(r.value=wc(l).filter(e=>e.type===ga&&e.children&&typeof e.children==`string`)[0]?.children);let u=!!(t.onClick||t.onClickOnce);return U(a.value.component,{tag:e.tag,icon:a.value.icon,class:k([`v-icon`,`notranslate`,i.value,o.value,s.value,{"v-icon--clickable":u,"v-icon--disabled":e.disabled,"v-icon--start":e.start,"v-icon--end":e.end},e.class]),style:O([{"--v-icon-opacity":e.opacity},o.value?void 0:{fontSize:q(e.size),height:q(e.size),width:q(e.size)},c.value,e.style]),role:u?`button`:void 0,"aria-hidden":!u,tabindex:u?e.disabled?-1:0:void 0},{default:()=>[l]})}),{}}});function H_(e,t){let n=N(),r=P(!1);if(qs){let i=new IntersectionObserver(t=>{e?.(t,i),r.value=!!t.find(e=>e.isIntersecting)},t);ke(()=>{i.disconnect()}),z(n,(e,t)=>{t&&(i.unobserve(t),r.value=!1),e&&i.observe(e)},{flush:`post`})}return{intersectionRef:n,isIntersecting:r}}var U_=J({reveal:{type:[Boolean,Object],default:!1}},`reveal`);function W_(e){let t=I(()=>typeof e.reveal==`object`?Math.max(0,Number(e.reveal.duration??900)):900),n=P(e.reveal?`initial`:`disabled`);return Rr(async()=>{e.reveal&&(n.value=`initial`,await new Promise(e=>requestAnimationFrame(e)),n.value=`pending`,await new Promise(e=>setTimeout(e,t.value)),n.value=`done`)}),{duration:t,state:n}}var G_=J({bgColor:String,color:String,indeterminate:[Boolean,String],rounded:Boolean,modelValue:{type:[Number,String],default:0},rotate:{type:[Number,String],default:0},width:{type:[Number,String],default:4},...Y(),...U_(),...R_(),...yg({tag:`div`}),...Cf()},`VProgressCircular`),K_=X()({name:`VProgressCircular`,props:G_(),setup(e,{slots:t}){let n=2*Math.PI*20,r=N(),{themeClasses:i}=Ff(e),{sizeClasses:a,sizeStyles:o}=z_(e),{textColorClasses:s,textColorStyles:c}=Wg(()=>e.color),{textColorClasses:l,textColorStyles:u}=Wg(()=>e.bgColor),{intersectionRef:d,isIntersecting:f}=H_(),{resizeRef:p,contentRect:m}=Lf(),{state:h,duration:g}=W_(e),_=I(()=>h.value===`initial`?0:vc(parseFloat(e.modelValue),0,100)),v=I(()=>Number(e.width)),y=I(()=>o.value?Number(e.size):m.value?m.value.width:Math.max(v.value,32)),b=I(()=>20/(1-v.value/y.value)*2),x=I(()=>v.value/y.value*b.value),S=I(()=>{let t=(100-_.value)/100*n;return e.rounded&&_.value>0&&_.value<100?q(Math.min(n-.01,t+x.value)):q(t)}),C=G(()=>{let t=Number(e.rotate);return e.rounded?t+x.value/2/n*360:t});return Un(()=>{d.value=r.value,p.value=r.value}),Z(()=>U(e.tag,{ref:r,class:k([`v-progress-circular`,{"v-progress-circular--indeterminate":!!e.indeterminate,"v-progress-circular--visible":f.value,"v-progress-circular--disable-shrink":e.indeterminate&&(e.indeterminate===`disable-shrink`||Xs()),"v-progress-circular--revealing":[`initial`,`pending`].includes(h.value)},i.value,a.value,s.value,e.class]),style:O([o.value,c.value,{"--progress-reveal-duration":`${g.value}ms`},e.style]),role:`progressbar`,"aria-valuemin":`0`,"aria-valuemax":`100`,"aria-valuenow":e.indeterminate?void 0:_.value},{default:()=>[H(`svg`,{style:{transform:`rotate(calc(-90deg + ${C.value}deg))`},xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 ${b.value} ${b.value}`},[H(`circle`,{class:k([`v-progress-circular__underlay`,l.value]),style:O(u.value),fill:`transparent`,cx:`50%`,cy:`50%`,r:20,"stroke-width":x.value,"stroke-dasharray":n,"stroke-dashoffset":0},null),H(`circle`,{class:`v-progress-circular__overlay`,fill:`transparent`,cx:`50%`,cy:`50%`,r:20,"stroke-width":x.value,"stroke-dasharray":n,"stroke-dashoffset":S.value,"stroke-linecap":e.rounded?`round`:void 0},null)]),t.default&&H(`div`,{class:`v-progress-circular__content`},[t.default({value:_.value})])]})),{}}}),q_=J({chunkCount:{type:[Number,String],default:null},chunkWidth:{type:[Number,String],default:null},chunkGap:{type:[Number,String],default:4}},`chunks`);function J_(e,t){let n=I(()=>!!e.chunkCount||!!e.chunkWidth),r=G(()=>{let n=Qt(t);if(!n)return 0;if(!e.chunkCount)return Number(e.chunkWidth);let r=Number(e.chunkCount);return(n-Number(e.chunkGap)*(r-1))/r}),i=I(()=>Number(e.chunkGap)),a=G(()=>{if(!n.value)return{};let e=q(i.value),t=q(r.value);return{maskRepeat:`repeat-x`,maskImage:`linear-gradient(90deg, #000, #000 ${t}, transparent ${t}, transparent)`,maskSize:`calc(${t} + ${e}) 100%`}});function o(e){let n=Qt(t);if(!n)return e;let a=100*i.value/n,o=100*(r.value+i.value)/n;return vc(Math.floor((e+a)/o+1e-9)*o-a/2,0,100)}return{hasChunks:n,chunksMaskStyles:a,snapValueToChunk:o}}var Y_=J({absolute:Boolean,active:{type:Boolean,default:!0},bgColor:String,bgOpacity:[Number,String],bufferValue:{type:[Number,String],default:0},bufferColor:String,bufferOpacity:[Number,String],clickable:Boolean,color:String,height:{type:[Number,String],default:4},indeterminate:Boolean,max:{type:[Number,String],default:100},modelValue:{type:[Number,String],default:0},opacity:[Number,String],reverse:Boolean,stream:Boolean,striped:Boolean,roundedBar:Boolean,...q_(),...Y(),...c_({location:`top`}),...Jg(),...yg(),...Cf()},`VProgressLinear`),X_=X()({name:`VProgressLinear`,props:Y_(),emits:{"update:modelValue":e=>!0},setup(e,{slots:t}){let n=N(),r=Bu(e,`modelValue`),{isRtl:i,rtlClasses:a}=nd(),{themeClasses:o}=Ff(e),{locationStyles:s}=l_(e),{textColorClasses:c,textColorStyles:l}=Wg(()=>e.color),{backgroundColorClasses:u,backgroundColorStyles:d}=Gg(()=>e.bgColor||e.color),{backgroundColorClasses:f,backgroundColorStyles:p}=Gg(()=>e.bufferColor||e.bgColor||e.color),{backgroundColorClasses:m,backgroundColorStyles:h}=Gg(()=>e.color),{roundedClasses:g}=Yg(e),{intersectionRef:_,isIntersecting:v}=H_(),y=G(()=>parseFloat(e.max)),b=G(()=>parseFloat(e.height)),x=G(()=>vc(parseFloat(e.bufferValue)/y.value*100,0,100)),S=G(()=>vc(parseFloat(r.value)/y.value*100,0,100)),C=G(()=>i.value!==e.reverse),w=G(()=>e.indeterminate?`fade-transition`:`slide-x-transition`),T=P(0),{hasChunks:E,chunksMaskStyles:ee,snapValueToChunk:D}=J_(e,T);zu(E,()=>{let{resizeRef:e}=Lf(e=>T.value=e[0].contentRect.width);Un(()=>e.value=n.value)});let te=G(()=>E.value?D(x.value):x.value),ne=G(()=>E.value?D(S.value):S.value);function re(e){if(!_.value)return;let{left:t,right:n,width:i}=_.value.getBoundingClientRect(),a=C.value?i-e.clientX+(n-i):e.clientX-t;r.value=Math.round(a/i*y.value)}return Un(()=>{_.value=n.value}),Z(()=>U(e.tag,{ref:n,class:k([`v-progress-linear`,{"v-progress-linear--absolute":e.absolute,"v-progress-linear--active":e.active&&v.value,"v-progress-linear--reverse":C.value,"v-progress-linear--rounded":e.rounded,"v-progress-linear--rounded-bar":e.roundedBar,"v-progress-linear--striped":e.striped,"v-progress-linear--clickable":e.clickable},g.value,o.value,a.value,e.class]),style:O([{bottom:e.location===`bottom`?0:void 0,top:e.location===`top`?0:void 0,height:e.active?q(b.value):0,"--v-progress-linear-height":q(b.value),...e.absolute?s.value:{}},ee.value,e.style]),role:`progressbar`,"aria-hidden":e.active?`false`:`true`,"aria-valuemin":`0`,"aria-valuemax":e.max,"aria-valuenow":e.indeterminate?void 0:Math.min(parseFloat(r.value),y.value),onClick:e.clickable&&re},{default:()=>[e.stream&&H(`div`,{key:`stream`,class:k([`v-progress-linear__stream`,c.value]),style:{...l.value,[C.value?`left`:`right`]:q(-b.value),borderTop:`${q(b.value/2)} dotted`,opacity:parseFloat(e.bufferOpacity),top:`calc(50% - ${q(b.value/4)})`,width:q(100-x.value,`%`),"--v-progress-linear-stream-to":q(b.value*(C.value?1:-1))}},null),H(`div`,{class:k([`v-progress-linear__background`,u.value]),style:O([d.value,{opacity:parseFloat(e.bgOpacity),width:e.stream?0:void 0}])},null),H(`div`,{class:k([`v-progress-linear__buffer`,f.value]),style:O([p.value,{opacity:parseFloat(e.bufferOpacity),width:q(te.value,`%`)}])},null),U(To,{name:w.value},{default:()=>[e.indeterminate?H(`div`,{class:`v-progress-linear__indeterminate`},[[`long`,`short`].map(e=>H(`div`,{key:e,class:k([`v-progress-linear__indeterminate`,e,m.value]),style:O(h.value)},null))]):H(`div`,{class:k([`v-progress-linear__determinate`,m.value]),style:O([h.value,{width:q(ne.value,`%`)}])},null)]}),t.default&&H(`div`,{class:`v-progress-linear__content`},[t.default({value:S.value,buffer:x.value})])]})),{}}}),Z_=J({loading:[Boolean,String]},`loader`);function Q_(e,t=iu()){return{loaderClasses:I(()=>({[`${t}--loading`]:e.loading}))}}function $_(e,{slots:t}){return H(`div`,{class:k(`${e.name}__loader`)},[t.default?.({color:e.color,isActive:e.active})||U(X_,{absolute:e.absolute,active:e.active,color:e.color,height:`2`,indeterminate:!0},null)])}var ev=[`static`,`relative`,`fixed`,`absolute`,`sticky`],tv=J({position:{type:String,validator:e=>ev.includes(e)}},`position`);function nv(e,t=iu()){return{positionClasses:I(()=>e.position?`${t}--${e.position}`:void 0)}}function rv(){let e=ru(`useRoute`);return G(()=>e?.proxy?.$route)}function iv(){return ru(`useRouter`)?.proxy?.$router}function av(e,t){let n=Xr(`RouterLink`),r=I(()=>!!(e.href||e.to)),i=G(()=>r?.value||Mc(t,`click`)||Mc(e,`click`));if(typeof n==`string`||!(`useLink`in n)){let t=I(()=>e.href);return{isLink:r,isRouterLink:I(()=>!1),isClickable:i,href:t,linkProps:zt({href:t}),route:I(()=>void 0),navigate:I(()=>void 0)}}let a=n.useLink({to:I(()=>e.to||``),replace:I(()=>e.replace)}),o=G(()=>e.to?a:void 0),s=rv(),c=G(()=>o.value?e.exact?s.value?o.value.isExactActive?.value&&_u(o.value.route.value.query,s.value.query):o.value.isExactActive?.value??!1:o.value.isActive?.value??!1:!1),l=G(()=>e.to?o.value?.route.value.href:e.href);return{isLink:r,isRouterLink:I(()=>!!e.to),isClickable:i,isActive:c,route:I(()=>o.value?.route.value),navigate:I(()=>o.value?.navigate),href:l,linkProps:zt({href:l,"aria-current":I(()=>c.value?`page`:void 0),"aria-disabled":I(()=>e.disabled&&r.value?`true`:void 0),tabindex:I(()=>e.disabled&&r.value?`-1`:void 0)})}}var ov=J({href:String,replace:Boolean,to:[String,Object],exact:Boolean},`router`),sv=!1;function cv(e,t){let n=!1,r,i;K&&e?.beforeEach&&(Tn(()=>{window.addEventListener(`popstate`,a),r=e.beforeEach(()=>sv?n?t():void 0:(sv=!0,new Promise(e=>{setTimeout(()=>e(n?t():void 0))}))),i=e?.afterEach(()=>{sv=!1})}),ke(()=>{window.removeEventListener(`popstate`,a),r?.(),i?.()}));function a(e){e.state?.replaced||(n=!0,setTimeout(()=>n=!1))}}function lv(e,t){z(()=>e.isActive?.value,n=>{e.isLink.value&&n!=null&&t&&Tn(()=>{t(n)})},{immediate:!0})}var uv=Symbol(`rippleStop`),dv=80;function fv(e,t){e.style.transform=t,e.style.webkitTransform=t}function pv(e){return e.constructor.name===`TouchEvent`}function mv(e){return e.constructor.name===`KeyboardEvent`}var hv=(e,t,n={})=>{let r=0,i=0;if(!mv(e)){let n=new rl(t),a=pv(e)?e.touches[e.touches.length-1]:e,o=al([a.clientX,a.clientY]);r=o.x-n.left,i=o.y-n.top}let a=0,o=.3;t._ripple?.circle?(o=.15,a=t.clientWidth/2,a=n.center?a:a+Math.sqrt((r-a)**2+(i-a)**2)/4):a=Math.sqrt(t.clientWidth**2+t.clientHeight**2)/2;let s=`${(t.clientWidth-a*2)/2}px`,c=`${(t.clientHeight-a*2)/2}px`,l=n.center?s:`${r-a}px`,u=n.center?c:`${i-a}px`;return{radius:a,scale:o,x:l,y:u,centerX:s,centerY:c}},gv={show(e,t,n={}){if(!t?._ripple?.enabled)return;let r=document.createElement(`span`),i=document.createElement(`span`);r.appendChild(i),r.className=`v-ripple__container`,n.class&&(r.className+=` ${n.class}`);let{radius:a,scale:o,x:s,y:c,centerX:l,centerY:u}=hv(e,t,n),d=`${a*2}px`;i.className=`v-ripple__animation`,i.style.width=d,i.style.height=d,t.appendChild(r);let f=window.getComputedStyle(t);f&&f.position===`static`&&(t.style.position=`relative`,t.dataset.previousPosition=`static`),i.classList.add(`v-ripple__animation--enter`),i.classList.add(`v-ripple__animation--visible`),fv(i,`translate(${s}, ${c}) scale3d(${o},${o},${o})`),i.dataset.activated=String(performance.now()),requestAnimationFrame(()=>{requestAnimationFrame(()=>{i.classList.remove(`v-ripple__animation--enter`),i.classList.add(`v-ripple__animation--in`),fv(i,`translate(${l}, ${u}) scale3d(1,1,1)`)})})},hide(e){if(!e?._ripple?.enabled)return;let t=e.getElementsByClassName(`v-ripple__animation`);if(t.length===0)return;let n=Array.from(t).findLast(e=>!e.dataset.isHiding);if(n)n.dataset.isHiding=`true`;else return;let r=performance.now()-Number(n.dataset.activated),i=Math.max(250-r,0);setTimeout(()=>{n.classList.remove(`v-ripple__animation--in`),n.classList.add(`v-ripple__animation--out`),setTimeout(()=>{e.getElementsByClassName(`v-ripple__animation`).length===1&&e.dataset.previousPosition&&(e.style.position=e.dataset.previousPosition,delete e.dataset.previousPosition),n.parentNode?.parentNode===e&&e.removeChild(n.parentNode)},300)},i)}};function _v(e){return e===void 0||!!e}function vv(e){let t={},n=e.currentTarget;if(!(!n?._ripple||n._ripple.touched||e[uv])){if(e[uv]=!0,pv(e))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(t.center=n._ripple.centered||mv(e),n._ripple.class&&(t.class=n._ripple.class),pv(e)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=()=>{gv.show(e,n,t)},n._ripple.showTimer=window.setTimeout(()=>{n?._ripple?.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)},dv)}else gv.show(e,n,t)}}function yv(e){e[uv]=!0}function bv(e){let t=e.currentTarget;if(t?._ripple){if(window.clearTimeout(t._ripple.showTimer),e.type===`touchend`&&t._ripple.showTimerCommit){t._ripple.showTimerCommit(),t._ripple.showTimerCommit=null,t._ripple.showTimer=window.setTimeout(()=>{bv(e)});return}window.setTimeout(()=>{t._ripple&&(t._ripple.touched=!1)}),gv.hide(t)}}function xv(e){let t=e.currentTarget;t?._ripple&&(t._ripple.showTimerCommit&&(t._ripple.showTimerCommit=null),window.clearTimeout(t._ripple.showTimer))}var Sv=!1;function Cv(e,t){!Sv&&t.includes(e.key)&&(Sv=!0,vv(e))}function wv(e){Sv=!1,bv(e)}function Tv(e){Sv&&(Sv=!1,bv(e))}function Ev(e,t,n){let{value:r,modifiers:i}=t,a=_v(r);a||gv.hide(e),e._ripple=e._ripple??{},e._ripple.enabled=a,e._ripple.centered=i.center,e._ripple.circle=i.circle;let o=tc(r)?r:{};o.class&&(e._ripple.class=o.class);let s=o.keys??[`Enter`,`Space`];if(e._ripple.keyDownHandler=e=>Cv(e,s),a&&!n){if(i.stop){e.addEventListener(`touchstart`,yv,{passive:!0}),e.addEventListener(`mousedown`,yv);return}e.addEventListener(`touchstart`,vv,{passive:!0}),e.addEventListener(`touchend`,bv,{passive:!0}),e.addEventListener(`touchmove`,xv,{passive:!0}),e.addEventListener(`touchcancel`,bv),e.addEventListener(`mousedown`,vv),e.addEventListener(`mouseup`,bv),e.addEventListener(`mouseleave`,bv),e.addEventListener(`keydown`,e._ripple.keyDownHandler),e.addEventListener(`keyup`,wv),e.addEventListener(`blur`,Tv),e.addEventListener(`dragstart`,bv,{passive:!0})}else !a&&n&&Dv(e)}function Dv(e){e.removeEventListener(`touchstart`,yv),e.removeEventListener(`mousedown`,yv),e.removeEventListener(`touchstart`,vv),e.removeEventListener(`touchend`,bv),e.removeEventListener(`touchmove`,xv),e.removeEventListener(`touchcancel`,bv),e.removeEventListener(`mousedown`,vv),e.removeEventListener(`mouseup`,bv),e.removeEventListener(`mouseleave`,bv),e._ripple?.keyDownHandler&&e.removeEventListener(`keydown`,e._ripple.keyDownHandler),e.removeEventListener(`keyup`,wv),e.removeEventListener(`blur`,Tv),e.removeEventListener(`dragstart`,bv)}function Ov(e,t){Ev(e,t,!1)}function kv(e){Dv(e),delete e._ripple}function Av(e,t){t.value!==t.oldValue&&Ev(e,t,_v(t.oldValue))}var jv={mounted:Ov,unmounted:kv,updated:Av},Mv=J({active:{type:Boolean,default:void 0},activeColor:String,baseColor:String,symbol:{type:null,default:P_},flat:Boolean,icon:[Boolean,String,Function,Object],prependIcon:Q,appendIcon:Q,block:Boolean,readonly:Boolean,slim:Boolean,stacked:Boolean,spaced:String,ripple:{type:[Boolean,Object],default:!0},text:{type:[String,Number,Boolean],default:void 0},...r_(),...Y(),...y_(),...Rg(),...a_(),...O_(),...Z_(),...c_(),...tv(),...Jg(),...ov(),...R_(),...yg({tag:`button`}),...Cf(),...C_({variant:`elevated`})},`VBtn`),Nv=X()({name:`VBtn`,props:Mv(),emits:{"group:selected":e=>!0},setup(e,{attrs:t,slots:n}){let{themeClasses:r}=Ff(e),{borderClasses:i}=i_(e),{densityClasses:a}=b_(e),{dimensionStyles:o}=zg(e),{elevationClasses:s}=o_(e),{loaderClasses:c}=Q_(e),{locationStyles:l}=l_(e),{positionClasses:u}=nv(e),{roundedClasses:d}=Yg(e),{sizeClasses:f,sizeStyles:p}=z_(e),m=k_(e,e.symbol,!1),h=av(e,t),g=G(()=>e.active===void 0?h.isRouterLink.value?h.isActive?.value:m?.isSelected.value:e.active),_=I(()=>g.value?e.activeColor??e.color:e.color),{colorClasses:v,colorStyles:y,variantClasses:b}=w_(G(()=>({color:m?.isSelected.value&&(!h.isLink.value||h.isActive?.value)||!m||h.isActive?.value?_.value??e.baseColor:e.baseColor,variant:e.variant}))),x=G(()=>m?.disabled.value||e.disabled),S=I(()=>e.variant===`elevated`&&!(e.disabled||e.flat||e.border)),C=G(()=>{if(!(e.value===void 0||typeof e.value==`symbol`))return Object(e.value)===e.value?JSON.stringify(e.value,null,0):e.value});function w(e){x.value||h.isLink.value&&(e.metaKey||e.ctrlKey||e.shiftKey||e.button!==0||t.target===`_blank`)||(h.isRouterLink.value?h.navigate.value?.(e):m?.toggle())}return lv(h,m?.select),Z(()=>{let t=h.isLink.value?`a`:e.tag,_=!!(e.prependIcon||n.prepend),T=!!(e.appendIcon||n.append),E=!!(e.icon&&e.icon!==!0);return Ln(U(t,W(h.linkProps,{type:t===`a`?void 0:`button`,class:[`v-btn`,m?.selectedClass.value,{"v-btn--active":g.value,"v-btn--block":e.block,"v-btn--disabled":x.value,"v-btn--elevated":S.value,"v-btn--flat":e.flat,"v-btn--icon":!!e.icon,"v-btn--loading":e.loading,"v-btn--readonly":e.readonly,"v-btn--slim":e.slim,"v-btn--stacked":e.stacked},e.spaced?[`v-btn--spaced`,`v-btn--spaced-${e.spaced}`]:[],r.value,i.value,v.value,a.value,s.value,c.value,u.value,d.value,f.value,b.value,e.class],style:[y.value,o.value,l.value,p.value,e.style],"aria-busy":e.loading?!0:void 0,disabled:x.value&&t!==`a`||void 0,tabindex:e.loading||e.readonly?-1:void 0,onClick:w,value:C.value}),{default:()=>[S_(!0,`v-btn`),!e.icon&&_&&H(`span`,{key:`prepend`,class:`v-btn__prepend`},[n.prepend?U(Lg,{key:`prepend-defaults`,disabled:!e.prependIcon,defaults:{VIcon:{icon:e.prependIcon}}},n.prepend):U(V_,{key:`prepend-icon`,icon:e.prependIcon},null)]),H(`span`,{class:`v-btn__content`,"data-no-activator":``},[!n.default&&E?U(V_,{key:`content-icon`,icon:e.icon},null):U(Lg,{key:`content-defaults`,disabled:!E,defaults:{VIcon:{icon:e.icon}}},{default:()=>[n.default?.()??Se(e.text)]})]),!e.icon&&T&&H(`span`,{key:`append`,class:`v-btn__append`},[n.append?U(Lg,{key:`append-defaults`,disabled:!e.appendIcon,defaults:{VIcon:{icon:e.appendIcon}}},n.append):U(V_,{key:`append-icon`,icon:e.appendIcon},null)]),!!e.loading&&H(`span`,{key:`loader`,class:`v-btn__loader`},[n.loader?.()??U(K_,{color:typeof e.loading==`boolean`?void 0:e.loading,indeterminate:!0,width:`2`},null)])]}),[[jv,!x.value&&e.ripple,``,{center:!!e.icon}]])}),{group:m}}}),Pv=J({...lc(Mv({icon:`$menu`,variant:`text`}),[`spaced`])},`VAppBarNavIcon`),Fv=X()({name:`VAppBarNavIcon`,props:Pv(),setup(e,{slots:t}){return Z(()=>U(Nv,W(e,{class:[`v-app-bar-nav-icon`]}),t)),{}}}),Iv=X()({name:`VAppBarTitle`,props:bg(),setup(e,{slots:t}){return Z(()=>U(xg,W(e,{class:`v-app-bar-title`}),t)),{}}}),Lv=J({bordered:Boolean,color:String,content:[Number,String],dot:Boolean,dotSize:[Number,String],floating:Boolean,icon:Q,inline:Boolean,label:{type:String,default:`$vuetify.badge`},max:[Number,String],modelValue:{type:Boolean,default:!0},offsetX:[Number,String],offsetY:[Number,String],textColor:String,...Y(),...c_({location:`top end`}),...Jg(),...yg(),...Cf(),...Xg({transition:`scale-rotate-transition`}),...Rg()},`VBadge`),Rv=X()({name:`VBadge`,inheritAttrs:!1,props:Lv(),setup(e,t){let{backgroundColorClasses:n,backgroundColorStyles:r}=Gg(()=>e.color),{roundedClasses:i}=Yg(e),{t:a}=$u(),{textColorClasses:o,textColorStyles:s}=Wg(()=>e.textColor),{themeClasses:c}=If(),{locationStyles:l}=l_(e,!0,t=>(e.floating?e.dot?2:4:e.dot?Number(e.dotSize??8):12)+([`top`,`bottom`].includes(t)?Number(e.offsetY??0):[`left`,`right`].includes(t)?Number(e.offsetX??0):0)),{dimensionStyles:u}=zg(e);return Z(()=>{let d=Number(e.content),f=!e.max||isNaN(d)?e.content:d<=Number(e.max)?d:`${e.max}+`,[p,m]=cc(t.attrs,[`aria-atomic`,`aria-label`,`aria-live`,`role`,`title`]);return U(e.tag,W({class:[`v-badge`,{"v-badge--bordered":e.bordered,"v-badge--dot":e.dot,"v-badge--floating":e.floating,"v-badge--inline":e.inline},e.class]},m,{style:e.style}),{default:()=>[H(`div`,{class:`v-badge__wrapper`},[t.slots.default?.(),U(Zg,{transition:e.transition},{default:()=>[Ln(H(`span`,W({class:[`v-badge__badge`,c.value,n.value,i.value,o.value],style:[r.value,s.value,u.value,e.inline?{}:l.value,e.dot&&e.dotSize?{width:q(e.dotSize),height:q(e.dotSize)}:{}],"aria-atomic":`true`,"aria-label":a(e.label,d),"aria-live":`polite`,role:`status`},p),[e.dot?void 0:t.slots.badge?t.slots.badge?.():e.icon?U(V_,{icon:e.icon},null):f]),[[Uo,e.modelValue]])]})])]})}),{}}}),zv=J({badge:{type:[Boolean,Object],default:!1},start:Boolean,end:Boolean,icon:Q,image:String,text:String,...r_(),...Y(),...y_(),...Jg(),...R_(),...yg(),...Cf(),...C_({variant:`flat`})},`VAvatar`),Bv=X()({name:`VAvatar`,props:zv(),setup(e,{slots:t}){let{themeClasses:n}=Ff(e),{borderClasses:r}=i_(e),{colorClasses:i,colorStyles:a,variantClasses:o}=w_(e),{densityClasses:s}=b_(e),{roundedClasses:c}=Yg(e),{sizeClasses:l,sizeStyles:u}=z_(e),d=G(()=>{switch(e.size){case`x-small`:return 8;case`small`:return 10;case`large`:return 14;case`x-large`:return 16;default:return 12}}),f=G(()=>{let{floating:t}=tc(e.badge)?e.badge:{};return(t?d.value/2:0)-1.5}),p=G(()=>({bordered:!0,dot:!t.badge,dotSize:d.value,offsetX:f.value,offsetY:f.value,color:typeof e.badge==`string`?e.badge:`primary`,...tc(e.badge)?e.badge:{}}));return Z(()=>{let d=U(e.tag,{class:k([`v-avatar`,{"v-avatar--start":e.start,"v-avatar--end":e.end},n.value,r.value,i.value,s.value,c.value,l.value,o.value,e.class]),style:O([a.value,u.value,e.style])},{default:()=>[t.default?U(Lg,{key:`content-defaults`,defaults:{VImg:{cover:!0,src:e.image},VIcon:{icon:e.icon}}},{default:()=>[t.default()]}):e.image?U(n_,{key:`image`,src:e.image,alt:``,cover:!0},null):e.icon?U(V_,{key:`icon`,icon:e.icon},null):e.text,S_(!1,`v-avatar`)]});return e.badge?U(Rv,p.value,{default:()=>d,badge:t.badge}):d}),{}}}),Vv=J({...Y(),...yg()},`VCardActions`),Hv=X()({name:`VCardActions`,props:Vv(),setup(e,{slots:t}){return lu({VBtn:{slim:!0,variant:`text`}}),Z(()=>U(e.tag,{class:k([`v-card-actions`,e.class]),style:O(e.style)},t)),{}}}),Uv=J({opacity:[Number,String],...Y(),...yg()},`VCardSubtitle`),Wv=X()({name:`VCardSubtitle`,props:Uv(),setup(e,{slots:t}){return Z(()=>U(e.tag,{class:k([`v-card-subtitle`,e.class]),style:O([{"--v-card-subtitle-opacity":e.opacity},e.style])},t)),{}}}),Gv=mu(`v-card-title`),Kv=J({appendAvatar:String,appendIcon:Q,prependAvatar:String,prependIcon:Q,subtitle:{type:[String,Number,Boolean],default:void 0},title:{type:[String,Number,Boolean],default:void 0},...Y(),...y_(),...yg()},`VCardItem`),qv=X()({name:`VCardItem`,props:Kv(),setup(e,{slots:t}){return Z(()=>{let n=!!(e.prependAvatar||e.prependIcon),r=!!(n||t.prepend),i=!!(e.appendAvatar||e.appendIcon),a=!!(i||t.append),o=!!(e.title!=null||t.title),s=!!(e.subtitle!=null||t.subtitle);return U(e.tag,{class:k([`v-card-item`,e.class]),style:O(e.style)},{default:()=>[r&&H(`div`,{key:`prepend`,class:`v-card-item__prepend`},[t.prepend?U(Lg,{key:`prepend-defaults`,disabled:!n,defaults:{VAvatar:{density:e.density,image:e.prependAvatar},VIcon:{density:e.density,icon:e.prependIcon}}},t.prepend):H(B,null,[e.prependAvatar&&U(Bv,{key:`prepend-avatar`,density:e.density,image:e.prependAvatar},null),e.prependIcon&&U(V_,{key:`prepend-icon`,density:e.density,icon:e.prependIcon},null)])]),H(`div`,{class:`v-card-item__content`},[o&&U(Gv,{key:`title`},{default:()=>[t.title?.()??Se(e.title)]}),s&&U(Wv,{key:`subtitle`},{default:()=>[t.subtitle?.()??Se(e.subtitle)]}),t.default?.()]),a&&H(`div`,{key:`append`,class:`v-card-item__append`},[t.append?U(Lg,{key:`append-defaults`,disabled:!i,defaults:{VAvatar:{density:e.density,image:e.appendAvatar},VIcon:{density:e.density,icon:e.appendIcon}}},t.append):H(B,null,[e.appendIcon&&U(V_,{key:`append-icon`,density:e.density,icon:e.appendIcon},null),e.appendAvatar&&U(Bv,{key:`append-avatar`,density:e.density,image:e.appendAvatar},null)])])]})}),{}}}),Jv=J({opacity:[Number,String],...Y(),...yg()},`VCardText`),Yv=X()({name:`VCardText`,props:Jv(),setup(e,{slots:t}){return Z(()=>U(e.tag,{class:k([`v-card-text`,e.class]),style:O([{"--v-card-text-opacity":e.opacity},e.style])},t)),{}}}),Xv=J({appendAvatar:String,appendIcon:Q,disabled:Boolean,flat:Boolean,hover:Boolean,image:String,link:{type:Boolean,default:void 0},prependAvatar:String,prependIcon:Q,ripple:{type:[Boolean,Object],default:!0},subtitle:{type:[String,Number,Boolean],default:void 0},text:{type:[String,Number,Boolean],default:void 0},title:{type:[String,Number,Boolean],default:void 0},...r_(),...Y(),...y_(),...Rg(),...a_(),...Z_(),...c_(),...tv(),...Jg(),...ov(),...yg(),...Cf(),...C_({variant:`elevated`})},`VCard`),Zv=X()({name:`VCard`,directives:{vRipple:jv},props:Xv(),setup(e,{attrs:t,slots:n}){let{themeClasses:r}=Ff(e),{borderClasses:i}=i_(e),{colorClasses:a,colorStyles:o,variantClasses:s}=w_(e),{densityClasses:c}=b_(e),{dimensionStyles:l}=zg(e),{elevationClasses:u}=o_(e),{loaderClasses:d}=Q_(e),{locationStyles:f}=l_(e),{positionClasses:p}=nv(e),{roundedClasses:m}=Yg(e),h=av(e,t),g=P(void 0);return z(()=>e.loading,(e,t)=>{g.value=!e&&typeof t==`string`?t:typeof e==`boolean`?void 0:e},{immediate:!0}),Z(()=>{let t=e.link!==!1&&h.isLink.value,_=!e.disabled&&e.link!==!1&&(e.link||h.isClickable.value),v=t?`a`:e.tag,y=!!(n.title||e.title!=null),b=!!(n.subtitle||e.subtitle!=null),x=y||b,S=!!(n.append||e.appendAvatar||e.appendIcon),C=!!(n.prepend||e.prependAvatar||e.prependIcon),w=!!(n.image||e.image),T=x||C||S,E=!!(n.text||e.text!=null);return Ln(U(v,W(h.linkProps,{class:[`v-card`,{"v-card--disabled":e.disabled,"v-card--flat":e.flat,"v-card--hover":e.hover&&!(e.disabled||e.flat),"v-card--link":_},r.value,i.value,a.value,c.value,u.value,d.value,p.value,m.value,s.value,e.class],style:[o.value,l.value,f.value,{"--v-card-height":q(e.height)},e.style],onClick:_&&h.navigate.value,tabindex:e.disabled?-1:void 0}),{default:()=>[w&&H(`div`,{key:`image`,class:`v-card__image`},[n.image?U(Lg,{key:`image-defaults`,disabled:!e.image,defaults:{VImg:{cover:!0,src:e.image}}},n.image):U(n_,{key:`image-img`,cover:!0,src:e.image},null)]),U($_,{name:`v-card`,active:!!e.loading,color:g.value},{default:n.loader}),T&&U(qv,{key:`item`,prependAvatar:e.prependAvatar,prependIcon:e.prependIcon,title:e.title,subtitle:e.subtitle,appendAvatar:e.appendAvatar,appendIcon:e.appendIcon},{default:n.item,prepend:n.prepend,title:n.title,subtitle:n.subtitle,append:n.append}),E&&U(Yv,{key:`text`},{default:()=>[n.text?.()??e.text]}),n.default?.(),n.actions&&U(Hv,null,{default:n.actions}),S_(_,`v-card`)]}),[[jv,_&&e.ripple]])}),{}}}),Qv=[`dotted`,`dashed`,`solid`,`double`],$v=J({color:String,contentOffset:[Number,String,Array],gradient:Boolean,inset:Boolean,length:[Number,String],opacity:[Number,String],thickness:[Number,String],vertical:Boolean,variant:{type:String,default:`solid`,validator:e=>Qv.includes(e)},...Y(),...Cf()},`VDivider`),ey=X()({name:`VDivider`,props:$v(),setup(e,{attrs:t,slots:n}){let{themeClasses:r}=Ff(e),{textColorClasses:i,textColorStyles:a}=Wg(()=>e.color),o=G(()=>{let t={};return e.length&&(t[e.vertical?`height`:`width`]=q(e.length)),e.thickness&&(t[e.vertical?`borderRightWidth`:`borderTopWidth`]=q(e.thickness)),t}),s=I(()=>{let t=Array.isArray(e.contentOffset)?e.contentOffset[0]:e.contentOffset,n=Array.isArray(e.contentOffset)?e.contentOffset[1]:0;return{marginBlock:e.vertical&&t?q(t):void 0,marginInline:!e.vertical&&t?q(t):void 0,transform:n?`translate${e.vertical?`X`:`Y`}(${q(n)})`:void 0}});return Z(()=>{let c=H(`hr`,{class:k([{"v-divider":!0,"v-divider--gradient":e.gradient&&!n.default,"v-divider--inset":e.inset,"v-divider--vertical":e.vertical},r.value,i.value,e.class]),style:O([o.value,a.value,{"--v-border-opacity":e.opacity},{"border-style":e.variant},e.style]),"aria-orientation":!t.role||t.role===`separator`?e.vertical?`vertical`:`horizontal`:void 0,role:`${t.role||`separator`}`},null);return n.default?H(`div`,{class:k([`v-divider__wrapper`,{"v-divider__wrapper--gradient":e.gradient,"v-divider__wrapper--inset":e.inset,"v-divider__wrapper--vertical":e.vertical}])},[c,H(`div`,{class:`v-divider__content`,style:O(s.value)},[n.default()]),c]):c}),{}}}),ty=Symbol.for(`vuetify:list`);function ny(e={filterable:!1}){let t=R(ty,{filterable:!1,hasPrepend:P(!1),updateHasPrepend:()=>null,trackingIndex:P(-1),navigationStrategy:P(`focus`),uid:``}),{filterable:n,trackingIndex:r=t.trackingIndex,navigationStrategy:i=t.navigationStrategy,uid:a=t.uid||Cr()}=e,o={filterable:t.filterable||n,hasPrepend:P(!1),updateHasPrepend:e=>{e&&(o.hasPrepend.value=e)},trackingIndex:r,navigationStrategy:i,uid:a};return zn(ty,o),t}function ry(){return R(ty,null)}var iy=e=>{let t={activate:({id:t,value:n,activated:r})=>(t=j(t),e&&!n&&r.size===1&&r.has(t)||(n?r.add(t):r.delete(t)),r),in:(e,n,r)=>{let i=new Set;if(e!=null)for(let a of gc(e))i=t.activate({id:a,value:!0,activated:new Set(i),children:n,parents:r});return i},out:e=>Array.from(e)};return t},ay=e=>{let t=iy(e);return{activate:({activated:e,id:n,...r})=>{n=j(n);let i=e.has(n)?new Set([n]):new Set;return t.activate({...r,id:n,activated:i})},in:(e,n,r)=>{let i=new Set;if(e!=null){let a=gc(e);a.length&&(i=t.in(a.slice(0,1),n,r))}return i},out:(e,n,r)=>t.out(e,n,r)}},oy=e=>{let t=iy(e);return{activate:({id:e,activated:n,children:r,...i})=>(e=j(e),r.has(e)?n:t.activate({id:e,activated:n,children:r,...i})),in:t.in,out:t.out}},sy=e=>{let t=ay(e);return{activate:({id:e,activated:n,children:r,...i})=>(e=j(e),r.has(e)?n:t.activate({id:e,activated:n,children:r,...i})),in:t.in,out:t.out}},cy={open:({id:e,value:t,opened:n,parents:r})=>{if(t){let t=new Set;t.add(e);let n=r.get(e);for(;n!=null;)t.add(n),n=r.get(n);return t}else return n.delete(e),n},select:()=>null},ly={open:({id:e,value:t,opened:n,parents:r})=>{if(t){let t=r.get(e);for(n.add(e);t!=null&&t!==e;)n.add(t),t=r.get(t);return n}else n.delete(e);return n},select:()=>null},uy={open:ly.open,select:({id:e,value:t,opened:n,parents:r})=>{if(!t)return n;let i=[],a=r.get(e);for(;a!=null;)i.push(a),a=r.get(a);return new Set(i)}},dy=e=>{let t={select:({id:t,value:n,selected:r})=>{if(t=j(t),e&&!n){let e=Array.from(r.entries()).reduce((e,[t,n])=>(n===`on`&&e.push(t),e),[]);if(e.length===1&&e[0]===t)return r}return r.set(t,n?`on`:`off`),r},in:(e,n,r,i)=>{let a=new Map;for(let o of e||[])t.select({id:o,value:!0,selected:a,children:n,parents:r,disabled:i});return a},out:e=>{let t=[];for(let[n,r]of e.entries())r===`on`&&t.push(n);return t}};return t},fy=e=>{let t=dy(e);return{select:({selected:e,id:n,...r})=>{n=j(n);let i=e.has(n)?new Map([[n,e.get(n)]]):new Map;return t.select({...r,id:n,selected:i})},in:(e,n,r,i)=>e?.length?t.in(e.slice(0,1),n,r,i):new Map,out:(e,n,r)=>t.out(e,n,r)}},py=e=>{let t=dy(e);return{select:({id:e,selected:n,children:r,...i})=>(e=j(e),r.has(e)?n:t.select({id:e,selected:n,children:r,...i})),in:t.in,out:t.out}},my=e=>{let t=fy(e);return{select:({id:e,selected:n,children:r,...i})=>(e=j(e),r.has(e)?n:t.select({id:e,selected:n,children:r,...i})),in:t.in,out:t.out}},hy=e=>{let t={select:({id:t,value:n,selected:r,children:i,parents:a,disabled:o})=>{t=j(t);let s=new Map(r),c=[t];for(;c.length;){let e=c.shift();o.has(e)||r.set(j(e),n?`on`:`off`),i.has(e)&&c.push(...i.get(e))}let l=j(a.get(t));for(;l;){let e=!0,t=!0;for(let n of i.get(l)){let i=j(n);if(!o.has(i)&&(r.get(i)!==`on`&&(e=!1),r.has(i)&&r.get(i)!==`off`&&(t=!1),!e&&!t))break}r.set(l,e?`on`:t?`off`:`indeterminate`),l=j(a.get(l))}return e&&!n&&Array.from(r.entries()).reduce((e,[t,n])=>(n===`on`&&e.push(t),e),[]).length===0?s:r},in:(e,n,r)=>{let i=new Map;for(let a of e||[])i=t.select({id:a,value:!0,selected:i,children:n,parents:r,disabled:new Set});return i},out:(e,t)=>{let n=[];for(let[r,i]of e.entries())i===`on`&&!t.has(r)&&n.push(r);return n}};return t},gy=e=>{let t=hy(e);return{select:t.select,in:t.in,out:(e,t,n)=>{let r=[];for(let[t,i]of e.entries())if(i===`on`){if(n.has(t)){let r=n.get(t);if(e.get(r)===`on`)continue}r.push(t)}return r}}},_y=e=>{let t={select:hy(e).select,in:(e,n,r,i)=>{let a=new Map;for(let o of e||[])n.has(o)||(a=t.select({id:o,value:!0,selected:a,children:n,parents:r,disabled:i}));return a},out:e=>{let t=[];for(let[n,r]of e.entries())(r===`on`||r===`indeterminate`)&&t.push(n);return t}};return t},vy=Symbol.for(`vuetify:nested`),yy={id:P(),root:{itemsRegistration:N(`render`),register:()=>null,unregister:()=>null,updateDisabled:()=>null,children:N(new Map),parents:N(new Map),disabled:N(new Set),open:()=>null,openOnSelect:()=>null,activate:()=>null,select:()=>null,activatable:N(!1),scrollToActive:N(!1),selectable:N(!1),opened:N(new Set),activated:N(new Set),selected:N(new Map),selectedValues:N([]),getPath:()=>[]}},by=J({activatable:Boolean,selectable:Boolean,activeStrategy:[String,Function,Object],selectStrategy:[String,Function,Object],openStrategy:[String,Object],opened:null,activated:null,selected:null,mandatory:Boolean,itemsRegistration:{type:String,default:`render`}},`nested`),xy=(e,{items:t,returnObject:n,scrollToActive:r,valueComparator:i})=>{let a=!1,o=P(new Map),s=P(new Map),c=P(new Set),l=Bu(e,`opened`,e.opened,e=>new Set(Array.isArray(e)?e.map(e=>j(e)):e),e=>[...e.values()]),u=G(()=>{if(typeof e.activeStrategy==`object`)return e.activeStrategy;if(typeof e.activeStrategy==`function`)return e.activeStrategy(e.mandatory);switch(e.activeStrategy){case`leaf`:return oy(e.mandatory);case`single-leaf`:return sy(e.mandatory);case`independent`:return iy(e.mandatory);default:return ay(e.mandatory)}}),d=G(()=>{if(typeof e.selectStrategy==`object`)return e.selectStrategy;if(typeof e.selectStrategy==`function`)return e.selectStrategy(e.mandatory);switch(e.selectStrategy){case`single-leaf`:return my(e.mandatory);case`leaf`:return py(e.mandatory);case`independent`:return dy(e.mandatory);case`single-independent`:return fy(e.mandatory);case`trunk`:return gy(e.mandatory);case`branch`:return _y(e.mandatory);default:return hy(e.mandatory)}}),f=G(()=>{if(typeof e.openStrategy==`object`)return e.openStrategy;switch(e.openStrategy){case`list`:return uy;case`single`:return cy;default:return ly}}),p=G(()=>{let e=[],n=[...t.value];for(;n.length;){let t=n.pop();e.push(t),t.children&&n.push(...t.children)}return e});function m(e){let t=Qt(i);if(!t)return e;let r=Qt(n);for(let n of p.value){let i=r?j(n.raw):n.value;if(t(e,i))return i}return e}let h=Bu(e,`activated`,e.activated,e=>u.value.in(Array.isArray(e)?e.map(m):e,o.value,s.value),e=>u.value.out(e,o.value,s.value)),g=Bu(e,`selected`,e.selected,e=>d.value.in(Array.isArray(e)?e.map(m):e,o.value,s.value,c.value),e=>d.value.out(e,o.value,s.value));Vr(()=>{a=!0});function _(e){let t=[],n=j(e);for(;n!==void 0;)t.unshift(n),n=s.value.get(n);return t}let v=ru(`nested`),y=new Set,b=Ou(()=>{Tn(()=>{o.value=new Map(o.value),s.value=new Map(s.value)})},100);z(()=>[t.value,Qt(n)],()=>{e.itemsRegistration===`props`&&x()},{immediate:!0});function x(){let e=new Map,r=new Map,i=new Set,a=Qt(n)?e=>j(e.raw):e=>e.value,l=[...t.value],u=0;for(;ue.activatable),scrollToActive:I(()=>Qt(r)),selectable:I(()=>e.selectable),activated:h,selected:g,selectedValues:G(()=>{let e=[];for(let[t,n]of g.value.entries())n===`on`&&e.push(t);return e}),itemsRegistration:I(()=>e.itemsRegistration),register:(e,t,n,r)=>{if(y.has(e)){Gs(`Multiple nodes with the same ID\n\t${_(e).map(String).join(` -> `)}\n\t${_(t).concat(e).map(String).join(` -> `)}`);return}else y.add(e);t&&e!==t&&s.value.set(e,t),n&&c.value.add(e),r&&o.value.set(e,[]),t!=null&&o.value.set(t,[...o.value.get(t)||[],e]),b()},unregister:e=>{if(a)return;y.delete(e),o.value.delete(e),c.value.delete(e);let t=s.value.get(e);if(t){let n=o.value.get(t)??[];o.value.set(t,n.filter(t=>t!==e))}s.value.delete(e),b()},updateDisabled:(e,t)=>{t?c.value.add(e):c.value.delete(e)},open:(e,t,n)=>{v.emit(`click:open`,{id:e,value:t,path:_(e),event:n});let r=f.value.open({id:e,value:t,opened:new Set(l.value),children:o.value,parents:s.value,event:n});r&&(l.value=r)},openOnSelect:(e,t,n)=>{let r=f.value.select({id:e,value:t,selected:new Map(g.value),opened:new Set(l.value),children:o.value,parents:s.value,event:n});r&&(l.value=r)},select:(e,t,n)=>{v.emit(`click:select`,{id:e,value:t,path:_(e),event:n});let r=d.value.select({id:e,value:t,selected:new Map(g.value),children:o.value,parents:s.value,disabled:c.value,event:n});r&&(g.value=r),S.root.openOnSelect(e,t,n)},activate:(t,n,r)=>{if(!e.activatable)return S.root.select(t,!0,r);v.emit(`click:activate`,{id:t,value:n,path:_(t),event:r});let i=u.value.activate({id:t,value:n,activated:new Set(h.value),children:o.value,parents:s.value,event:r});if(i.size!==h.value.size)h.value=i;else{for(let e of i)if(!h.value.has(e)){h.value=i;return}for(let e of h.value)if(!i.has(e)){h.value=i;return}}},children:o,parents:s,disabled:c,getPath:_}};return zn(vy,S),S.root},Sy=(e,t,n)=>{let r=R(vy,yy),i=Symbol(`nested item`),a=G(()=>{let t=j(Qt(e));return t===void 0?i:t}),o={...r,id:a,open:(e,t)=>r.root.open(a.value,e,t),openOnSelect:(e,t)=>r.root.openOnSelect(a.value,e,t),isOpen:G(()=>r.root.opened.value.has(a.value)),parent:G(()=>r.root.parents.value.get(a.value)),activate:(e,t)=>r.root.activate(a.value,e,t),isActivated:G(()=>r.root.activated.value.has(a.value)),scrollToActive:r.root.scrollToActive,select:(e,t)=>r.root.select(a.value,e,t),isSelected:G(()=>r.root.selected.value.get(a.value)===`on`),isIndeterminate:G(()=>r.root.selected.value.get(a.value)===`indeterminate`),isLeaf:G(()=>!r.root.children.value.get(a.value)),isGroupActivator:r.isGroupActivator};return Lr(()=>{r.isGroupActivator||r.root.itemsRegistration.value===`props`||Tn(()=>{r.root.register(a.value,r.id.value,Qt(t),n)})}),Vr(()=>{r.isGroupActivator||r.root.itemsRegistration.value===`props`||r.root.unregister(a.value)}),z(a,(e,i)=>{r.isGroupActivator||r.root.itemsRegistration.value===`props`||(r.root.unregister(i),Tn(()=>{r.root.register(e,r.id.value,Qt(t),n)}))}),z(()=>Qt(t),e=>{r.root.updateDisabled(a.value,e)}),n&&zn(vy,o),o},Cy=()=>{zn(vy,{...R(vy,yy),isGroupActivator:!0})},wy=fu({name:`VListGroupActivator`,setup(e,{slots:t}){return Cy(),()=>t.default?.()}}),Ty=J({activeColor:String,baseColor:String,color:String,collapseIcon:{type:Q,default:`$collapse`},disabled:Boolean,expandIcon:{type:Q,default:`$expand`},rawId:[String,Number],prependIcon:Q,appendIcon:Q,fluid:Boolean,subgroup:Boolean,title:String,value:null,...Y(),...yg()},`VListGroup`),Ey=X()({name:`VListGroup`,props:Ty(),setup(e,{slots:t}){let{isOpen:n,open:r,id:i}=Sy(()=>e.value,()=>e.disabled,!0),a=G(()=>`v-list-group--id-${String(e.rawId??i.value)}`),o=ry(),{isBooted:s}=h_(),c=R(vy),l=I(()=>c?.root?.itemsRegistration.value===`render`);function u(e){[`INPUT`,`TEXTAREA`].includes(e.target?.tagName)||r(!n.value,e)}let d=G(()=>({onClick:u,class:`v-list-group__header`,id:a.value})),f=G(()=>n.value?e.collapseIcon:e.expandIcon),p=G(()=>({VListItem:{activeColor:e.activeColor,baseColor:e.baseColor,color:e.color,prependIcon:e.prependIcon||e.subgroup&&f.value,appendIcon:e.appendIcon||!e.subgroup&&f.value,title:e.title,value:e.value}}));return Z(()=>U(e.tag,{class:k([`v-list-group`,{"v-list-group--prepend":o?.hasPrepend.value,"v-list-group--fluid":e.fluid,"v-list-group--subgroup":e.subgroup,"v-list-group--open":n.value},e.class]),style:O(e.style)},{default:()=>[t.activator&&U(Lg,{defaults:p.value},{default:()=>[U(wy,null,{default:()=>[t.activator({props:d.value,isOpen:n.value})]})]}),U(Zg,{transition:{component:Pg},disabled:!s.value},{default:()=>[l.value?Ln(H(`div`,{class:`v-list-group__items`,role:`group`,"aria-labelledby":a.value},[t.default?.()]),[[Uo,n.value]]):n.value&&H(`div`,{class:`v-list-group__items`,role:`group`,"aria-labelledby":a.value},[t.default?.()])]})]})),{isOpen:n}}}),Dy=J({opacity:[Number,String],...Y(),...yg()},`VListItemSubtitle`),Oy=X()({name:`VListItemSubtitle`,props:Dy(),setup(e,{slots:t}){return Z(()=>U(e.tag,{class:k([`v-list-item-subtitle`,e.class]),style:O([{"--v-list-item-subtitle-opacity":e.opacity},e.style])},t)),{}}}),ky=mu(`v-list-item-title`),Ay=J({active:{type:Boolean,default:void 0},activeClass:String,activeColor:String,appendAvatar:String,appendIcon:Q,baseColor:String,disabled:Boolean,lines:[Boolean,String],link:{type:Boolean,default:void 0},nav:Boolean,prependAvatar:String,prependIcon:Q,ripple:{type:[Boolean,Object],default:!0},slim:Boolean,prependGap:[Number,String],subtitle:{type:[String,Number,Boolean],default:void 0},title:{type:[String,Number,Boolean],default:void 0},value:null,index:Number,tabindex:[Number,String],onClick:jc(),onClickOnce:jc(),...r_(),...Y(),...y_(),...Rg(),...a_(),...Jg(),...ov(),...yg(),...Cf(),...C_({variant:`text`})},`VListItem`),jy=X()({name:`VListItem`,directives:{vRipple:jv},props:Ay(),emits:{click:e=>!0},setup(e,{attrs:t,slots:n,emit:r}){let i=av(e,t),a=N(),{activate:o,isActivated:s,select:c,isOpen:l,isSelected:u,isIndeterminate:d,isGroupActivator:f,root:p,parent:m,openOnSelect:h,scrollToActive:g,id:_}=Sy(G(()=>e.value===void 0?i.href.value:e.value),()=>e.disabled,!1),v=ry(),y=G(()=>e.active!==!1&&(e.active||i.isActive?.value||(p.activatable.value?s.value:u.value))),b=I(()=>e.link!==!1&&i.isLink.value),x=G(()=>!!v&&(p.selectable.value||p.activatable.value||e.value!=null)),S=G(()=>!e.disabled&&e.link!==!1&&(e.link||i.isClickable.value||x.value)),C=G(()=>v&&v.navigationStrategy.value===`track`&&e.index!==void 0&&v.trackingIndex.value===e.index),w=G(()=>v?b.value?`link`:x.value?`option`:`listitem`:void 0),T=G(()=>{if(x.value)return p.activatable.value?s.value:p.selectable.value?u.value:y.value}),E=I(()=>e.rounded||e.nav),ee=I(()=>e.color??e.activeColor),D=I(()=>({color:y.value?ee.value??e.baseColor:e.baseColor,variant:e.variant}));z(()=>i.isActive?.value,e=>{e&&te()}),z(s,e=>{!e||!g||a.value?.scrollIntoView({block:`nearest`,behavior:`instant`})}),z(C,e=>{e&&a.value?.scrollIntoView({block:`nearest`,behavior:`instant`})}),Lr(()=>{i.isActive?.value&&Tn(()=>te())});function te(){m.value!=null&&p.open(m.value,!0),h(!0)}let{themeClasses:ne}=Ff(e),{borderClasses:re}=i_(e),{colorClasses:ie,colorStyles:ae,variantClasses:oe}=w_(D),{densityClasses:se}=b_(e),{dimensionStyles:ce}=zg(e),{elevationClasses:le}=o_(e),{roundedClasses:ue}=Yg(E),de=I(()=>e.lines?`v-list-item--${e.lines}-line`:void 0),O=I(()=>e.ripple!==void 0&&e.ripple&&v?.filterable?{keys:[`Enter`]}:e.ripple),fe=G(()=>({isActive:y.value,select:c,isOpen:l.value,isSelected:u.value,isIndeterminate:d.value,isDisabled:e.disabled}));function pe(t){r(`click`,t),![`INPUT`,`TEXTAREA`].includes(t.target?.tagName)&&S.value&&(i.navigate.value?.(t),!f&&(p.activatable.value?o(!s.value,t):(p.selectable.value||e.value!=null&&!b.value)&&c(!u.value,t)))}function me(e){let t=e.target;[`INPUT`,`TEXTAREA`].includes(t.tagName)||(e.key===`Enter`||e.key===` `&&!v?.filterable)&&(e.preventDefault(),e.stopPropagation(),e.target.dispatchEvent(new MouseEvent(`click`,e)))}return Z(()=>{let t=b.value?`a`:e.tag,r=n.title||e.title!=null,o=n.subtitle||e.subtitle!=null,s=!!(e.appendAvatar||e.appendIcon||n.append),c=!!(e.prependAvatar||e.prependIcon||n.prepend);return v?.updateHasPrepend(c),e.activeColor&&Ks(`active-color`,[`color`,`base-color`]),Ln(U(t,W(i.linkProps,{ref:a,id:e.index!==void 0&&v?`v-list-item-${v.uid}-${e.index}`:void 0,class:[`v-list-item`,{"v-list-item--active":y.value,"v-list-item--disabled":e.disabled,"v-list-item--link":S.value,"v-list-item--nav":e.nav,"v-list-item--prepend":!c&&v?.hasPrepend.value,"v-list-item--slim":e.slim,"v-list-item--focus-visible":C.value,[`${e.activeClass}`]:e.activeClass&&y.value},ne.value,re.value,ie.value,se.value,le.value,de.value,ue.value,oe.value,e.class],style:[{"--v-list-prepend-gap":q(e.prependGap)},ae.value,ce.value,e.style],tabindex:e.tabindex??(S.value?v?-2:0:void 0),"aria-selected":T.value,role:w.value,onClick:pe,onKeydown:S.value&&!b.value&&me}),{default:()=>[S_(S.value||y.value,`v-list-item`),c&&H(`div`,{key:`prepend`,class:`v-list-item__prepend`},[n.prepend?U(Lg,{key:`prepend-defaults`,defaults:{VAvatar:{density:e.density,image:e.prependAvatar},VIcon:{density:e.density,icon:e.prependIcon},VListItemAction:{start:!0},VCheckboxBtn:{density:e.density}}},{default:()=>[n.prepend?.(fe.value)]}):H(B,null,[e.prependAvatar&&U(Bv,{key:`prepend-avatar`,density:e.density,image:e.prependAvatar},null),e.prependIcon&&U(V_,{key:`prepend-icon`,density:e.density,icon:e.prependIcon},null)]),H(`div`,{class:`v-list-item__spacer`},null)]),H(`div`,{class:`v-list-item__content`,"data-no-activator":``},[r&&U(ky,{key:`title`},{default:()=>[n.title?.({title:e.title})??Se(e.title)]}),o&&U(Oy,{key:`subtitle`},{default:()=>[n.subtitle?.({subtitle:e.subtitle})??Se(e.subtitle)]}),n.default?.(fe.value)]),s&&H(`div`,{key:`append`,class:`v-list-item__append`},[n.append?U(Lg,{key:`append-defaults`,defaults:{VAvatar:{density:e.density,image:e.appendAvatar},VIcon:{density:e.density,icon:e.appendIcon},VListItemAction:{end:!0},VCheckboxBtn:{density:e.density}}},{default:()=>[n.append?.(fe.value)]}):H(B,null,[e.appendIcon&&U(V_,{key:`append-icon`,density:e.density,icon:e.appendIcon},null),e.appendAvatar&&U(Bv,{key:`append-avatar`,density:e.density,image:e.appendAvatar},null)]),H(`div`,{class:`v-list-item__spacer`},null)])]}),[[jv,S.value&&O.value]])}),{activate:o,isActivated:s,isGroupActivator:f,isSelected:u,list:v,select:c,root:p,id:_,link:i}}}),My=J({color:String,inset:Boolean,sticky:Boolean,title:String,...Y(),...yg()},`VListSubheader`),Ny=X()({name:`VListSubheader`,props:My(),setup(e,{slots:t}){let{textColorClasses:n,textColorStyles:r}=Wg(()=>e.color);return Z(()=>{let i=!!(t.default||e.title);return U(e.tag,{class:k([`v-list-subheader`,{"v-list-subheader--inset":e.inset,"v-list-subheader--sticky":e.sticky},n.value,e.class]),style:O([{textColorStyles:r},e.style])},{default:()=>[i&&H(`div`,{class:`v-list-subheader__text`},[t.default?.()??e.title])]})}),{}}}),Py=J({items:Array,returnObject:Boolean},`VListChildren`),Fy=X()({name:`VListChildren`,props:Py(),setup(e,{slots:t}){return ny(),()=>t.default?.()??e.items?.map(({children:n,props:r,type:i,raw:a},o)=>{if(i===`divider`)return t.divider?.({props:r})??U(ey,r,null);if(i===`subheader`)return t.subheader?.({props:r})??U(Ny,r,null);let s={subtitle:t.subtitle?e=>t.subtitle?.({...e,item:a}):void 0,prepend:t.prepend?e=>t.prepend?.({...e,item:a}):void 0,append:t.append?e=>t.append?.({...e,item:a}):void 0,title:t.title?e=>t.title?.({...e,item:a}):void 0},c=Ey.filterProps(r);return n?U(Ey,W(c,{value:e.returnObject?a:r?.value,rawId:r?.value}),{activator:({props:n})=>{let i=W(r,n,{value:e.returnObject?a:r.value});return t.header?t.header({props:i}):U(jy,W(i,{index:o}),s)},default:()=>U(Fy,{items:n,returnObject:e.returnObject},t)}):t.item?t.item({props:{...r,index:o}}):U(jy,W(r,{index:o,value:e.returnObject?a:r.value}),s)})}}),Iy=J({items:{type:Array,default:()=>[]},itemTitle:{type:[String,Array,Function],default:`title`},itemValue:{type:[String,Array,Function],default:`value`},itemChildren:{type:[Boolean,String,Array,Function],default:`children`},itemProps:{type:[Boolean,String,Array,Function],default:`props`},itemType:{type:[Boolean,String,Array,Function],default:`type`},returnObject:Boolean,valueComparator:Function},`list-items`),Ly=new Set([`item`,`divider`,`subheader`]);function Ry(e,t){let n=$s(t,e.itemTitle,t),r=$s(t,e.itemValue,n),i=$s(t,e.itemChildren),a=e.itemProps===!0?typeof t==`object`&&t&&!Array.isArray(t)?`children`in t?lc(t,[`children`]):t:void 0:$s(t,e.itemProps),o=$s(t,e.itemType,`item`);Ly.has(o)||(o=`item`);let s={title:n,value:r,...a};return{type:o,title:String(s.title??``),value:s.value,props:s,children:o===`item`&&Array.isArray(i)?zy(e,i):void 0,raw:t}}Ry.neededProps=[`itemTitle`,`itemValue`,`itemChildren`,`itemProps`,`itemType`];function zy(e,t){let n=sc(e,Ry.neededProps),r=[];for(let e of t)r.push(Ry(n,e));return r}function By(e){let t=G(()=>zy(e,e.items)),n=G(()=>t.value.some(e=>e.value===null)),r=P(new Map),i=P([]);Un(()=>{let e=t.value,n=new Map,a=[];for(let t=0;te):t.map(({value:e})=>e)}return{items:t,transformIn:a,transformOut:o}}var Vy=new Set([`item`,`divider`,`subheader`]);function Hy(e,t){let n=Gc(t)?t:$s(t,e.itemTitle),r=Gc(t)?t:$s(t,e.itemValue,void 0),i=$s(t,e.itemChildren),a=e.itemProps===!0?lc(t,[`children`]):$s(t,e.itemProps),o=$s(t,e.itemType,`item`);Vy.has(o)||(o=`item`);let s={title:n,value:r,...a};return{type:o,title:s.title,value:s.value,props:s,children:o===`item`&&i?Uy(e,i):void 0,raw:t}}function Uy(e,t){let n=[];for(let r of t)n.push(Hy(e,r));return n}function Wy(e){return{items:G(()=>Uy(e,e.items))}}var Gy=J({baseColor:String,activeColor:String,activeClass:String,bgColor:String,disabled:Boolean,filterable:Boolean,expandIcon:Q,collapseIcon:Q,lines:{type:[Boolean,String],default:`one`},slim:Boolean,prependGap:[Number,String],indent:[Number,String],nav:Boolean,navigationStrategy:{type:String,default:`focus`},navigationIndex:Number,"onClick:open":jc(),"onClick:select":jc(),"onUpdate:opened":jc(),...by({selectStrategy:`single-leaf`,openStrategy:`list`}),...r_(),...Y(),...y_(),...Rg(),...a_(),...Iy(),...Jg(),...yg(),...Cf(),...C_({variant:`text`})},`VList`),Ky=X()({name:`VList`,props:Gy(),emits:{"update:selected":e=>!0,"update:activated":e=>!0,"update:opened":e=>!0,"update:navigationIndex":e=>!0,"click:open":e=>!0,"click:activate":e=>!0,"click:select":e=>!0},setup(e,{attrs:t,slots:n,emit:r}){let{items:i}=Wy(e),{themeClasses:a}=Ff(e),{backgroundColorClasses:o,backgroundColorStyles:s}=Gg(()=>e.bgColor),{borderClasses:c}=i_(e),{densityClasses:l}=b_(e),{dimensionStyles:u}=zg(e),{elevationClasses:d}=o_(e),{roundedClasses:f}=Yg(e),{children:p,open:m,parents:h,select:g,getPath:_}=xy(e,{items:i,returnObject:I(()=>e.returnObject),scrollToActive:I(()=>e.navigationStrategy===`track`),valueComparator:I(()=>e.valueComparator)}),v=I(()=>e.lines?`v-list--${e.lines}-line`:void 0),y=I(()=>e.activeColor),b=I(()=>e.baseColor),x=I(()=>e.color),S=I(()=>e.selectable||e.activatable),C=Bu(e,`navigationIndex`,-1,e=>e??-1),w=Cr();ny({filterable:e.filterable,trackingIndex:C,navigationStrategy:I(()=>e.navigationStrategy),uid:w}),z(i,()=>{e.navigationStrategy===`track`&&(C.value=-1)}),lu({VListGroup:{activeColor:y,baseColor:b,color:x,expandIcon:I(()=>e.expandIcon),collapseIcon:I(()=>e.collapseIcon)},VListItem:{activeClass:I(()=>e.activeClass),activeColor:y,baseColor:b,color:x,density:I(()=>e.density),disabled:I(()=>e.disabled),lines:I(()=>e.lines),nav:I(()=>e.nav),slim:I(()=>e.slim),variant:I(()=>e.variant),tabindex:I(()=>e.navigationStrategy===`track`?-1:void 0)}});let T=P(!1),E=N();function ee(e){T.value=!0}function D(e){T.value=!1}function te(t){e.navigationStrategy===`track`?~C.value||(C.value=ie(`first`)):!T.value&&!(t.relatedTarget&&E.value?.contains(t.relatedTarget))&&se()}function ne(){e.navigationStrategy===`track`&&(C.value=-1)}function re(e){switch(e){case`ArrowDown`:return`next`;case`ArrowUp`:return`prev`;case`Home`:return`first`;case`End`:return`last`;default:return null}}function ie(e){let t=i.value.length;if(t===0)return-1;let n;e===`first`?n=0:e===`last`?n=t-1:(n=C.value+(e===`next`?1:-1),n<0&&(n=t-1),n>=t&&(n=0));let r=n,a=0;for(;a=t&&(n=0),n===r)return-1;a++}return-1}function ae(t){let n=t.target;if(!E.value||n.tagName===`INPUT`&&[`Home`,`End`].includes(t.key)||n.tagName===`TEXTAREA`)return;let r=re(t.key);if(r!==null)if(t.preventDefault(),e.navigationStrategy===`track`){let e=ie(r);e!==-1&&(C.value=e)}else se(r)}function oe(e){T.value=!0}function se(e,t){if(E.value)return Ic(E.value,e,t)}return Z(()=>{let r=e.indent??(e.prependGap?Number(e.prependGap)+24:void 0),p=S.value?t.ariaMultiselectable??!String(e.selectStrategy).startsWith(`single-`):void 0;return U(e.tag,{ref:E,class:k([`v-list`,{"v-list--disabled":e.disabled,"v-list--nav":e.nav,"v-list--slim":e.slim},a.value,o.value,c.value,l.value,d.value,v.value,f.value,e.class]),style:O([{"--v-list-indent":q(r),"--v-list-group-prepend":r?`0px`:void 0,"--v-list-prepend-gap":q(e.prependGap)},s.value,u.value,e.style]),tabindex:e.disabled?-1:0,role:S.value?`listbox`:`list`,"aria-activedescendant":e.navigationStrategy===`track`&&C.value>=0?`v-list-item-${w}-${C.value}`:void 0,"aria-multiselectable":p,onFocusin:ee,onFocusout:D,onFocus:te,onBlur:ne,onKeydown:ae,onMousedown:oe},{default:()=>[U(Fy,{items:i.value,returnObject:e.returnObject},n)]})}),{open:m,select:g,focus:se,children:p,parents:h,getPath:_,navigationIndex:C}}}),qy=J({scrollable:Boolean,...Y(),...Rg(),...yg({tag:`main`})},`VMain`),Jy=X()({name:`VMain`,props:qy(),setup(e,{slots:t}){let{dimensionStyles:n}=zg(e),{mainStyles:r}=Uf(),{ssrBootStyles:i}=h_();return Z(()=>U(e.tag,{class:k([`v-main`,{"v-main--scrollable":e.scrollable},e.class]),style:O([r.value,i.value,n.value,e.style])},{default:()=>[e.scrollable?H(`div`,{class:`v-main__scroller`},[t.default?.()]):t.default?.()]})),{}}});function Yy(e,t){return{x:e.x+t.x,y:e.y+t.y}}function Xy(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Zy(e,t){if(e.side===`top`||e.side===`bottom`){let{side:n,align:r}=e;return Yy({x:r===`left`?0:r===`center`?t.width/2:r===`right`?t.width:r,y:n===`top`?0:n===`bottom`?t.height:n},t)}else if(e.side===`left`||e.side===`right`){let{side:n,align:r}=e;return Yy({x:n===`left`?0:n===`right`?t.width:n,y:r===`top`?0:r===`center`?t.height/2:r===`bottom`?t.height:r},t)}return Yy({x:t.width/2,y:t.height/2},t)}var Qy={static:tb,connected:rb},$y=J({locationStrategy:{type:[String,Function],default:`static`,validator:e=>typeof e==`function`||e in Qy},location:{type:String,default:`bottom`},origin:{type:String,default:`auto`},offset:[Number,String,Array],stickToTarget:Boolean,viewportMargin:{type:[Number,String],default:12}},`VOverlay-location-strategies`);function eb(e,t){let n=N({}),r=N();K&&zu(()=>!!(t.isActive.value&&e.locationStrategy),s=>{z(()=>e.locationStrategy,s),ke(()=>{window.removeEventListener(`resize`,i),visualViewport?.removeEventListener(`resize`,a),visualViewport?.removeEventListener(`scroll`,o),r.value=void 0}),window.addEventListener(`resize`,i,{passive:!0}),visualViewport?.addEventListener(`resize`,a,{passive:!0}),visualViewport?.addEventListener(`scroll`,o,{passive:!0}),typeof e.locationStrategy==`function`?r.value=e.locationStrategy(t,e,n)?.updateLocation:r.value=Qy[e.locationStrategy](t,e,n)?.updateLocation});function i(e){r.value?.(e)}function a(e){r.value?.(e)}function o(e){r.value?.(e)}return{contentStyles:n,updateLocation:r}}function tb(){}function nb(e,t){let n=sl(e);return t?n.x+=parseFloat(e.style.right||0):n.x-=parseFloat(e.style.left||0),n.y-=parseFloat(e.style.top||0),n}function rb(e,t,n){(Array.isArray(e.target.value)||Du(e.target.value))&&Object.assign(n.value,{position:`fixed`,top:0,[e.isRtl.value?`right`:`left`]:0});let{preferredAnchor:r,preferredOrigin:i}=Oc(()=>{let n=Zc(t.location,e.isRtl.value),r=t.origin===`overlap`?n:t.origin===`auto`?$c(n):Zc(t.origin,e.isRtl.value);return n.side===r.side&&n.align===el(r).align?{preferredAnchor:tl(n),preferredOrigin:tl(r)}:{preferredAnchor:n,preferredOrigin:r}}),[a,o,s,c]=[`minWidth`,`minHeight`,`maxWidth`,`maxHeight`].map(e=>G(()=>{let n=parseFloat(t[e]);return isNaN(n)?1/0:n})),l=G(()=>{if(Array.isArray(t.offset))return t.offset;if(typeof t.offset==`string`){let e=t.offset.split(` `).map(parseFloat);return e.length<2&&e.push(0),e}return typeof t.offset==`number`?[t.offset,0]:[0,0]}),u=!1,d=-1,f=new Dc(4),p=new ResizeObserver(()=>{if(!u)return;if(requestAnimationFrame(e=>{e!==d&&f.clear(),requestAnimationFrame(e=>{d=e})}),f.isFull){let e=f.values();if(_u(e.at(-1),e.at(-3))&&!_u(e.at(-1),e.at(-2)))return}let e=h();e&&f.push(e.flipped)}),m=new rl({x:0,y:0,width:0,height:0});z(e.target,(e,t)=>{t&&!Array.isArray(t)&&p.unobserve(t),Array.isArray(e)?_u(e,t)||h():e&&p.observe(e)},{immediate:!0}),z(e.contentEl,(e,t)=>{t&&p.unobserve(t),e&&p.observe(e)},{immediate:!0}),ke(()=>{p.disconnect()});function h(){if(u=!1,requestAnimationFrame(()=>u=!0),!e.target.value||!e.contentEl.value)return;(Array.isArray(e.target.value)||e.target.value.offsetParent||e.target.value.getClientRects().length)&&(m=al(e.target.value));let d=nb(e.contentEl.value,e.isRtl.value),f=wu(e.contentEl.value),p=Number(t.viewportMargin);f.length||(f.push(document.documentElement),e.contentEl.value.style.top&&e.contentEl.value.style.left||(d.x-=parseFloat(document.documentElement.style.getPropertyValue(`--v-body-scroll-x`)||0),d.y-=parseFloat(document.documentElement.style.getPropertyValue(`--v-body-scroll-y`)||0)));let h=f.reduce((e,t)=>{let n=ol(t);return e?new rl({x:Math.max(e.left,n.left),y:Math.max(e.top,n.top),width:Math.min(e.right,n.right)-Math.max(e.left,n.left),height:Math.min(e.bottom,n.bottom)-Math.max(e.top,n.top)}):n},void 0);t.stickToTarget?(h.x+=Math.min(p,m.x),h.y+=Math.min(p,m.y),h.width=Math.max(h.width-p*2,m.x+m.width-p),h.height=Math.max(h.height-p*2,m.y+m.height-p)):(h.x+=p,h.y+=p,h.width-=p*2,h.height-=p*2);let g={anchor:r.value,origin:i.value};function _(e){let t=new rl(d),{x:n,y:r}=Xy(Zy(e.anchor,m),Zy(e.origin,t));switch(e.anchor.side){case`top`:r-=l.value[0];break;case`bottom`:r+=l.value[0];break;case`left`:n-=l.value[0];break;case`right`:n+=l.value[0];break}switch(e.anchor.align){case`top`:r-=l.value[1];break;case`bottom`:r+=l.value[1];break;case`left`:n-=l.value[1];break;case`right`:n+=l.value[1];break}return t.x+=n,t.y+=r,t.width=Math.min(t.width,s.value),t.height=Math.min(t.height,c.value),{overflows:il(t,h),x:n,y:r}}let v=0,y=0,b={x:0,y:0},x={x:!1,y:!1},S=-1;for(;;){if(S++>10){Gs(`Infinite loop detected in connectedLocationStrategy`);break}let{x:e,y:t,overflows:n}=_(g);v+=e,y+=t,d.x+=e,d.y+=t;{let e=nl(g.anchor),t=n.x.before||n.x.after,r=n.y.before||n.y.after,i=!1;if([`x`,`y`].forEach(a=>{if(a===`x`&&t&&!x.x||a===`y`&&r&&!x.y){let t={anchor:{...g.anchor},origin:{...g.origin}},r=a===`x`?e===`y`?el:$c:e===`y`?$c:el;t.anchor=r(t.anchor),t.origin=r(t.origin);let{overflows:o}=_(t);(o[a].before<=n[a].before&&o[a].after<=n[a].after||o[a].before+o[a].after<(n[a].before+n[a].after)/2)&&(g=t,i=x[a]=!0)}}),i)continue}n.x.before&&(v+=n.x.before,d.x+=n.x.before),n.x.after&&(v-=n.x.after,d.x-=n.x.after),n.y.before&&(y+=n.y.before,d.y+=n.y.before),n.y.after&&(y-=n.y.after,d.y-=n.y.after);{let e=il(d,h);b.x=h.width-e.x.before-e.x.after,b.y=h.height-e.y.before-e.y.after,v+=e.x.before,d.x+=e.x.before,y+=e.y.before,d.y+=e.y.before}break}let C=nl(g.anchor);return Object.assign(n.value,{"--v-overlay-anchor-origin":`${g.anchor.side} ${g.anchor.align}`,transformOrigin:`${g.origin.side} ${g.origin.align}`,top:q(ib(y)),left:e.isRtl.value?void 0:q(ib(v)),right:e.isRtl.value?q(ib(-v)):void 0,minWidth:q(C===`y`?Math.min(a.value,m.width):a.value),maxWidth:q(ab(vc(b.x,a.value===1/0?0:a.value,s.value))),maxHeight:q(ab(vc(b.y,o.value===1/0?0:o.value,c.value)))}),{available:b,contentBox:d,flipped:x}}return z(()=>[r.value,i.value,t.offset,t.minWidth,t.minHeight,t.maxWidth,t.maxHeight],()=>h()),Tn(()=>{let e=h();if(!e)return;let{available:t,contentBox:n}=e;n.height>t.y&&requestAnimationFrame(()=>{h(),requestAnimationFrame(()=>{h()})})}),{updateLocation:h}}function ib(e){return Math.round(e*devicePixelRatio)/devicePixelRatio}function ab(e){return Math.ceil(e*devicePixelRatio)/devicePixelRatio}var ob=!0,sb=[];function cb(e){!ob||sb.length?(sb.push(e),ub()):(ob=!1,e(),ub())}var lb=-1;function ub(){cancelAnimationFrame(lb),lb=requestAnimationFrame(()=>{let e=sb.shift();e&&e(),sb.length?ub():ob=!0})}var db={none:null,close:mb,block:hb,reposition:gb},fb=J({scrollStrategy:{type:[String,Function],default:`block`,validator:e=>typeof e==`function`||e in db}},`VOverlay-scroll-strategies`);function pb(e,t){if(!K)return;let n;Un(async()=>{n?.stop(),t.isActive.value&&e.scrollStrategy&&(n=De(),await new Promise(e=>setTimeout(e)),n.active&&n.run(()=>{typeof e.scrollStrategy==`function`?e.scrollStrategy(t,e,n):db[e.scrollStrategy]?.(t,e,n)}))}),ke(()=>{n?.stop()})}function mb(e){function t(t){e.isActive.value=!1}vb(_b(e.target.value,e.contentEl.value),t)}function hb(e,t){let n=e.root.value?.offsetParent,r=_b(e.target.value,e.contentEl.value),i=[...new Set([...wu(r,t.contained?n:void 0),...wu(e.contentEl.value,t.contained?n:void 0)])].filter(e=>!e.classList.contains(`v-overlay-scroll-blocked`)),a=window.innerWidth-document.documentElement.offsetWidth,o=(e=>Tu(e)&&e)(n||document.documentElement);o&&e.root.value.classList.add(`v-overlay--scroll-blocked`),i.forEach((e,t)=>{e.style.setProperty(`--v-body-scroll-x`,q(-e.scrollLeft)),e.style.setProperty(`--v-body-scroll-y`,q(-e.scrollTop)),(e!==document.documentElement||getComputedStyle(e).overflowY!==`scroll`)&&e.style.setProperty(`--v-scrollbar-offset`,q(a)),e.classList.add(`v-overlay-scroll-blocked`)}),ke(()=>{i.forEach((e,t)=>{let n=parseFloat(e.style.getPropertyValue(`--v-body-scroll-x`)),r=parseFloat(e.style.getPropertyValue(`--v-body-scroll-y`)),i=e.style.scrollBehavior;e.style.scrollBehavior=`auto`,e.style.removeProperty(`--v-body-scroll-x`),e.style.removeProperty(`--v-body-scroll-y`),e.style.removeProperty(`--v-scrollbar-offset`),e.classList.remove(`v-overlay-scroll-blocked`),e.scrollLeft=-n,e.scrollTop=-r,e.style.scrollBehavior=i}),o&&e.root.value.classList.remove(`v-overlay--scroll-blocked`)})}function gb(e,t,n){let r=!1,i=-1,a=-1;function o(t){cb(()=>{let n=performance.now();e.updateLocation.value?.(t),r=(performance.now()-n)/(1e3/60)>2})}a=(typeof requestIdleCallback>`u`?e=>e():requestIdleCallback)(()=>{n.run(()=>{vb(_b(e.target.value,e.contentEl.value),e=>{r?(cancelAnimationFrame(i),i=requestAnimationFrame(()=>{i=requestAnimationFrame(()=>{o(e)})})):o(e)})})}),ke(()=>{typeof cancelIdleCallback<`u`&&cancelIdleCallback(a),cancelAnimationFrame(i)})}function _b(e,t){return Array.isArray(e)?document.elementsFromPoint(...e).find(e=>!t?.contains(e)):e??t}function vb(e,t){let n=[document,...wu(e)];n.forEach(e=>{e.addEventListener(`scroll`,t,{passive:!0})}),ke(()=>{n.forEach(e=>{e.removeEventListener(`scroll`,t)})})}var yb=Symbol.for(`vuetify:v-menu`),bb=J({closeDelay:[Number,String],openDelay:[Number,String]},`delay`);function xb(e,t){let n=()=>{};function r(r,i){n?.();let a=r?e.openDelay:e.closeDelay,o=Math.max(i?.minDelay??0,Number(a??0));return new Promise(e=>{n=Vc(o,()=>{t?.(r),e(r)})})}function i(){return r(!0)}function a(e){return r(!1,e)}return{clearDelay:n,runOpenDelay:i,runCloseDelay:a}}var Sb=J({target:[String,Object],activator:[String,Object],activatorProps:{type:Object,default:()=>({})},openOnClick:{type:Boolean,default:void 0},openOnHover:Boolean,openOnFocus:{type:Boolean,default:void 0},closeOnContentClick:Boolean,...bb()},`VOverlay-activator`);function Cb(e,{isActive:t,isTop:n,contentEl:r}){let i=ru(`useActivator`),a=N(),o=!1,s=!1,c=!0,l=G(()=>e.openOnFocus||e.openOnFocus==null&&e.openOnHover),u=G(()=>e.openOnClick||e.openOnClick==null&&!e.openOnHover&&!l.value),{runOpenDelay:d,runCloseDelay:f}=xb(e,r=>{r===(e.openOnHover&&o||l.value&&s)&&!(e.openOnHover&&t.value&&!n.value)&&(t.value!==r&&(c=!0),t.value=r)}),p=!1;z(t,e=>{e||(p=!0,setTimeout(()=>p=!1,50))});let m=N(),h={onClick:e=>{p&&!t.value||(e.stopPropagation(),a.value=e.currentTarget||e.target,t.value||(m.value=[e.clientX,e.clientY]),t.value=!t.value)},onMouseenter:e=>{o=!0,a.value=e.currentTarget||e.target,d()},onMouseleave:e=>{o=!1,f()},onFocus:e=>{p||zc(e.target,`:focus-visible`)!==!1&&(s=!0,e.stopPropagation(),a.value=e.currentTarget||e.target,d())},onBlur:e=>{let t=e.relatedTarget;!t||r.value?.contains(t)||(s=!1,e.stopPropagation(),f({minDelay:1}))}},g=G(()=>{let t={};return u.value&&(t.onClick=h.onClick),e.openOnHover&&(t.onMouseenter=h.onMouseenter,t.onMouseleave=h.onMouseleave),l.value&&(t.onFocus=h.onFocus,t.onBlur=h.onBlur),t}),_=G(()=>{let n={};if(e.openOnHover&&(n.onMouseenter=()=>{o=!0,d()},n.onMouseleave=()=>{o=!1,f()}),l.value&&(n.onFocusin=e=>{e.target.matches(`:focus-visible`)&&(s=!0,d())},n.onFocusout=e=>{let t=e.relatedTarget;!t||r.value?.contains(t)||(s=!1,f({minDelay:1}))}),e.closeOnContentClick){let e=R(yb,null);n.onClick=()=>{t.value=!1,e?.closeParents()}}return n}),v=G(()=>{let t={};return e.openOnHover&&(t.onMouseenter=()=>{c&&(o=!0,c=!1,d())},t.onMouseleave=()=>{o=!1,f()}),t});z(n,t=>{t&&(e.openOnHover&&!o&&(!l.value||!s)||l.value&&!s&&(!e.openOnHover||!o))&&!r.value?.contains(document.activeElement)&&f()}),z(t,e=>{e||setTimeout(()=>{m.value=void 0})},{flush:`post`});let y=Uc();Un(()=>{y.value&&Tn(()=>{a.value=y.el})});let b=Uc(),x=G(()=>e.target===`cursor`&&m.value?m.value:b.value?b.el:Tb(e.target,i)||a.value),S=G(()=>Array.isArray(x.value)?void 0:x.value),C;return z(()=>!!e.activator,t=>{t&&K?(C=De(),C.run(()=>{wb(e,i,{activatorEl:a,activatorEvents:g})})):C&&C.stop()},{flush:`post`,immediate:!0}),ke(()=>{C?.stop()}),{activatorEl:a,activatorRef:y,target:x,targetEl:S,targetRef:b,activatorEvents:g,contentEvents:_,scrimEvents:v}}function wb(e,t,{activatorEl:n,activatorEvents:r}){z(()=>e.activator,(e,t)=>{if(t&&e!==t){let e=o(t);e&&a(e)}e&&Tn(()=>i())},{immediate:!0}),z(()=>e.activatorProps,()=>{i()}),ke(()=>{a()});function i(t=o(),n=e.activatorProps){t&&ul(t,W(r.value,n))}function a(t=o(),n=e.activatorProps){t&&dl(t,W(r.value,n))}function o(r=e.activator){let i=Tb(r,t);return n.value=i?.nodeType===Node.ELEMENT_NODE?i:void 0,n.value}}function Tb(e,t){if(!e)return;let n;if(e===`parent`){let e=t?.proxy?.$el?.parentNode;for(;e?.hasAttribute(`data-no-activator`);)e=e.parentNode;n=e}else n=typeof e==`string`?document.querySelector(e):`$el`in e?e.$el:e;return n}var Eb=J({retainFocus:Boolean,captureFocus:Boolean,disableInitialFocus:Boolean},`focusTrap`),Db=new Map,Ob=0;function kb(){let e;for(let{isActive:t,contentEl:n}of Db.values())t.value&&n.value&&(e=n.value);return e}function Ab(e){let t=document.activeElement;if(e.key!==`Tab`||!t)return;let n=Array.from(Db.values()).filter(({isActive:e,contentEl:n})=>e.value&&n.value?.contains(t)).map(e=>e.contentEl.value),r,i=t;for(;i;){if(n.includes(i)){r=i;break}i=i.parentElement}if(!r){let t=kb();if(!t)return;let n=Pc(t).filter(e=>e.tabIndex>=0);e.preventDefault(),n.length?e.shiftKey?n[n.length-1].focus():n[0].focus():t.focus({preventScroll:!0});return}let a=Pc(r).filter(e=>e.tabIndex>=0);if(!a.length)return;if(a.length===1&&a[0].classList.contains(`v-list`)&&a[0].contains(t)){e.preventDefault();return}let o=a[0],s=a[a.length-1],c=t===o||t===r||o.classList.contains(`v-list`)&&o.contains(t),l=t===s||s.classList.contains(`v-list`)&&s.contains(t);e.shiftKey&&c&&(e.preventDefault(),s.focus()),!e.shiftKey&&l&&(e.preventDefault(),o.focus())}function jb(e,{isActive:t,localTop:n,contentEl:r}){let i=Symbol(`trap`),a=!1,o=-1;async function s(){a=!0,o=window.setTimeout(()=>{a=!1},100)}async function c(e){let i=e.relatedTarget,o=e.target;document.removeEventListener(`pointerdown`,s),document.removeEventListener(`keydown`,l),await Tn(),t.value&&!a&&i!==o&&r.value&&Qt(n)&&![document,r.value].includes(o)&&!r.value.contains(o)&&Pc(r.value)[0]?.focus()}function l(e){if(e.key===`Tab`&&(document.removeEventListener(`keydown`,l),t.value&&r.value&&e.target&&!r.value.contains(e.target))){let t=Pc(document.documentElement);if(e.shiftKey&&e.target===t.at(0)||!e.shiftKey&&e.target===t.at(-1)){let t=Pc(r.value);t.length>0&&(e.preventDefault(),t[0].focus())}}}let u=I(()=>t.value&&e.captureFocus&&!e.disableInitialFocus);K&&(z(()=>e.retainFocus,e=>{e?Db.set(i,{isActive:t,contentEl:r}):Db.delete(i)},{immediate:!0}),z(u,e=>{e?(document.addEventListener(`pointerdown`,s),document.addEventListener(`focusin`,c,{once:!0}),document.addEventListener(`keydown`,l)):(document.removeEventListener(`pointerdown`,s),document.removeEventListener(`focusin`,c),document.removeEventListener(`keydown`,l))},{immediate:!0}),Ob++<1&&document.addEventListener(`keydown`,Ab)),ke(()=>{Db.delete(i),K&&(clearTimeout(o),document.removeEventListener(`pointerdown`,s),document.removeEventListener(`focusin`,c),document.removeEventListener(`keydown`,l),--Ob<1&&document.removeEventListener(`keydown`,Ab))})}function Mb(){if(!K)return P(!1);let{ssr:e}=ff();if(e){let e=P(!1);return Rr(()=>{e.value=!0}),e}else return P(!0)}var Nb=J({eager:Boolean},`lazy`);function Pb(e,t){let n=P(!1),r=I(()=>n.value||e.eager||t.value);z(t,()=>n.value=!0);function i(){e.eager||(n.value=!1)}return{isBooted:n,hasContent:r,onAfterLeave:i}}function Fb(){let e=ru(`useScopeId`).vnode.scopeId;return{scopeId:e?{[e]:``}:void 0}}var Ib=Symbol.for(`vuetify:stack`),Lb=zt([]);function Rb(e,t,n){let r=ru(`useStack`),i=!n,a=R(Ib,void 0),o=zt({activeChildren:new Set});zn(Ib,o);let s=P(Number(Qt(t)));zu(e,()=>{let e=Lb.at(-1)?.[1];s.value=e?e+10:Number(Qt(t)),i&&Lb.push([r.uid,s.value]),a?.activeChildren.add(r.uid),ke(()=>{if(i){let e=j(Lb).findIndex(e=>e[0]===r.uid);Lb.splice(e,1)}a?.activeChildren.delete(r.uid)})});let c=P(!0);return i&&Un(()=>{let e=Lb.at(-1)?.[0]===r.uid;setTimeout(()=>c.value=e)}),{globalTop:Vt(c),localTop:I(()=>!o.activeChildren.size),stackStyles:I(()=>({zIndex:s.value}))}}function zb(e){return{teleportTarget:G(()=>{let t=e();if(t===!0||!K)return;let n=t===!1?document.body:typeof t==`string`?document.querySelector(t):t;if(n==null){uo(`Unable to locate target ${t}`);return}let r=[...n.children].find(e=>e.matches(`.v-overlay-container`));return r||(r=document.createElement(`div`),r.className=`v-overlay-container`,n.appendChild(r)),r})}}function Bb(){return!0}function Vb(e,t,n){if(!e||Hb(e,n)===!1)return!1;let r=vu(t);if(typeof ShadowRoot<`u`&&r instanceof ShadowRoot&&r.host===e.target)return!1;let i=(typeof n.value==`object`&&n.value.include||(()=>[]))();return i.push(t),!i.some(t=>t?.contains(e.target))}function Hb(e,t){return(typeof t.value==`object`&&t.value.closeConditional||Bb)(e)}function Ub(e,t,n){let r=typeof n.value==`function`?n.value:n.value.handler;e.shadowTarget=e.target,t._clickOutside.lastMousedownWasOutside&&Vb(e,t,n)&&setTimeout(()=>{Hb(e,n)&&r&&r(e)},0)}function Wb(e,t){let n=vu(e);t(document),typeof ShadowRoot<`u`&&n instanceof ShadowRoot&&t(n)}var Gb={mounted(e,t){let n=n=>Ub(n,e,t),r=n=>{e._clickOutside.lastMousedownWasOutside=Vb(n,e,t)};Wb(e,e=>{e.addEventListener(`click`,n,!0),e.addEventListener(`mousedown`,r,!0)}),e._clickOutside||={lastMousedownWasOutside:!1},e._clickOutside[t.instance.$.uid]={onClick:n,onMousedown:r}},beforeUnmount(e,t){e._clickOutside&&(Wb(e,n=>{if(!n||!e._clickOutside?.[t.instance.$.uid])return;let{onClick:r,onMousedown:i}=e._clickOutside[t.instance.$.uid];n.removeEventListener(`click`,r,!0),n.removeEventListener(`mousedown`,i,!0)}),delete e._clickOutside[t.instance.$.uid])}};function Kb(e){let{modelValue:t,color:n,...r}=e;return U(To,{name:`fade-transition`,appear:!0},{default:()=>[e.modelValue&&H(`div`,W({class:[`v-overlay__scrim`,e.color.backgroundColorClasses.value],style:e.color.backgroundColorStyles.value},r),null)]})}var qb=J({absolute:Boolean,attach:[Boolean,String,Object],closeOnBack:{type:Boolean,default:!0},contained:Boolean,contentClass:null,contentProps:null,disabled:Boolean,opacity:[Number,String],noClickAnimation:Boolean,modelValue:Boolean,persistent:Boolean,scrim:{type:[Boolean,String],default:!0},zIndex:{type:[Number,String],default:2e3},...Sb(),...Y(),...Rg(),...Nb(),...$y(),...fb(),...Eb(),...Cf(),...Xg()},`VOverlay`),Jb=X()({name:`VOverlay`,directives:{vClickOutside:Gb},inheritAttrs:!1,props:{_disableGlobalStack:Boolean,...lc(qb(),[`disableInitialFocus`])},emits:{"click:outside":e=>!0,"update:modelValue":e=>!0,keydown:e=>!0,afterEnter:()=>!0,afterLeave:()=>!0},setup(e,{slots:t,attrs:n,emit:r}){let i=ru(`VOverlay`),a=N(),o=N(),s=N(),c=Bu(e,`modelValue`),l=G({get:()=>c.value,set:t=>{t&&e.disabled||(c.value=t)}}),{themeClasses:u}=Ff(e),{rtlClasses:d,isRtl:f}=nd(),{hasContent:p,onAfterLeave:m}=Pb(e,l),h=Gg(()=>typeof e.scrim==`string`?e.scrim:null),{globalTop:g,localTop:_,stackStyles:v}=Rb(l,()=>e.zIndex,e._disableGlobalStack),{activatorEl:y,activatorRef:b,target:x,targetEl:S,targetRef:C,activatorEvents:w,contentEvents:T,scrimEvents:E}=Cb(e,{isActive:l,isTop:_,contentEl:s}),{teleportTarget:ee}=zb(()=>{let t=e.attach||e.contained;if(t)return t;let n=y?.value?.getRootNode()||i.proxy?.$el?.getRootNode();return n instanceof ShadowRoot?n:!1}),{dimensionStyles:D}=zg(e),te=Mb(),{scopeId:ne}=Fb();z(()=>e.disabled,e=>{e&&(l.value=!1)});let{contentStyles:re,updateLocation:ie}=eb(e,{isRtl:f,contentEl:s,target:x,isActive:l});pb(e,{root:a,contentEl:s,targetEl:S,target:x,isActive:l,updateLocation:ie});function ae(t){r(`click:outside`,t),e.persistent?O():l.value=!1}function oe(t){return l.value&&_.value&&(!e.scrim||t.target===o.value||t instanceof MouseEvent&&t.shadowTarget===o.value)}jb(e,{isActive:l,localTop:_,contentEl:s});function se(){let e=y.value;if(!e||!e.isConnected||e.closest(`.v-overlay__content`)||s.value?._clickOutside?.lastMousedownWasOutside)return;let t=document.activeElement;if(!(!t||t===document.body||t===e||e.contains(t)||t.closest(`.v-overlay__content`)))return;let n=e.parentElement,r=n?Pc(n):[],i;if(r.includes(e))i=e;else{let t=Pc(e);i=t.find(e=>e.tagName===`INPUT`||e.tagName===`TEXTAREA`)??t[0]}i?.focus({preventScroll:!0})}z(l,e=>{e||se()},{flush:`post`}),K&&z(l,e=>{e?window.addEventListener(`keydown`,ce):window.removeEventListener(`keydown`,ce)},{immediate:!0}),Vr(()=>{K&&window.removeEventListener(`keydown`,ce)});function ce(t){t.key===`Escape`&&g.value&&(s.value?.contains(document.activeElement)||r(`keydown`,t),e.persistent?O():(l.value=!1,s.value?.contains(document.activeElement)&&y.value?.focus()))}function le(e){e.key===`Escape`&&!g.value||r(`keydown`,e)}let ue=iv();zu(()=>e.closeOnBack,()=>{cv(ue,()=>{if(g.value&&l.value)return e.persistent?O():l.value=!1,!1})});let de=N();z(()=>l.value&&(e.absolute||e.contained)&&ee.value==null,e=>{if(e){let e=Cu(a.value);e&&e!==document.scrollingElement&&(de.value=e.scrollTop)}});function O(){e.noClickAnimation||s.value&&cl(s.value,[{transformOrigin:`center`},{transform:`scale(1.03)`},{transformOrigin:`center`}],{duration:150,easing:`cubic-bezier(0.4, 0, 0.2, 1)`})}function fe(){r(`afterEnter`)}function pe(){m(),r(`afterLeave`)}return Z(()=>H(B,null,[t.activator?.({isActive:l.value,targetRef:C,props:W({ref:b},w.value,e.activatorProps)}),te.value&&p.value&&U(ir,{disabled:!ee.value,to:ee.value},{default:()=>[H(`div`,W({class:[`v-overlay`,{"v-overlay--absolute":e.absolute||e.contained,"v-overlay--active":l.value,"v-overlay--contained":e.contained},u.value,d.value,e.class],style:[v.value,{"--v-overlay-opacity":e.opacity,top:q(de.value)},e.style],ref:a,onKeydown:le},ne,n),[U(Kb,W({color:h,modelValue:l.value&&!!e.scrim,ref:o},E.value),null),U(Zg,{appear:!0,persisted:!0,transition:e.transition,target:x.value,onAfterEnter:fe,onAfterLeave:pe},{default:()=>[Ln(H(`div`,W({ref:s,class:[`v-overlay__content`,e.contentClass],style:[D.value,re.value]},T.value,e.contentProps),[t.default?.({isActive:l})]),[[Uo,l.value],[Gb,{handler:ae,closeConditional:oe,include:()=>[y.value,...Array.from(document.querySelectorAll(`.v-overlay__content`))]}]])]})])]})])),{activatorEl:y,scrimEl:o,target:x,animateClick:O,contentEl:s,rootEl:a,globalTop:g,localTop:_,updateLocation:ie}}}),Yb=Symbol(`Forwarded refs`);function Xb(e,t){let n=e;for(;n;){let e=Reflect.getOwnPropertyDescriptor(n,t);if(e)return e;n=Object.getPrototypeOf(n)}}function Zb(e,...t){return e[Yb]=t,new Proxy(e,{get(e,n){if(Reflect.has(e,n))return Reflect.get(e,n);if(!(typeof n==`symbol`||n.startsWith(`$`)||n.startsWith(`__`))){for(let e of t)if(e.value&&Reflect.has(e.value,n)){let t=Reflect.get(e.value,n);return typeof t==`function`?t.bind(e.value):t}}},has(e,n){if(Reflect.has(e,n))return!0;if(typeof n==`symbol`||n.startsWith(`$`)||n.startsWith(`__`))return!1;for(let e of t)if(e.value&&Reflect.has(e.value,n))return!0;return!1},set(e,n,r){if(Reflect.has(e,n))return Reflect.set(e,n,r);if(typeof n==`symbol`||n.startsWith(`$`)||n.startsWith(`__`))return!1;for(let e of t)if(e.value&&Reflect.has(e.value,n))return Reflect.set(e.value,n,r);return!1},getOwnPropertyDescriptor(e,n){let r=Reflect.getOwnPropertyDescriptor(e,n);if(r)return r;if(!(typeof n==`symbol`||n.startsWith(`$`)||n.startsWith(`__`))){for(let e of t){if(!e.value)continue;let t=Xb(e.value,n)??(`_`in e.value?Xb(e.value._?.setupState,n):void 0);if(t)return t}for(let e of t){let t=e.value&&e.value[Yb];if(!t)continue;let r=t.slice();for(;r.length;){let e=r.shift(),t=Xb(e.value,n);if(t)return t;let i=e.value&&e.value[Yb];i&&r.push(...i)}}}}})}var Qb=J({id:String,submenu:Boolean,...lc(qb({captureFocus:!0,closeDelay:250,closeOnContentClick:!0,locationStrategy:`connected`,location:void 0,openDelay:300,scrim:!1,scrollStrategy:`reposition`,transition:{component:Og}}),[`absolute`])},`VMenu`),$b=X()({name:`VMenu`,props:Qb(),emits:{"update:modelValue":e=>!0},setup(e,{slots:t}){let n=Bu(e,`modelValue`),{scopeId:r}=Fb(),{isRtl:i}=nd(),a=Cr(),o=I(()=>e.id||`v-menu-${a}`),s=N(),c=R(yb,null),l=P(new Set);zn(yb,{register(){l.value.add(a)},unregister(){l.value.delete(a)},closeParents(t){setTimeout(()=>{!l.value.size&&!e.persistent&&(t==null||s.value?.contentEl&&!Hc(t,s.value.contentEl))&&(n.value=!1,c?.closeParents())},40)}}),Vr(()=>c?.unregister()),Mr(()=>n.value=!1),z(n,e=>{e?c?.register():c?.unregister()},{immediate:!0});function u(e){c?.closeParents(e)}function d(t){e.disabled||(t.key===`Tab`?!Fc(Pc(s.value?.contentEl,!1),t.shiftKey?`prev`:`next`,e=>e.tabIndex>=0)&&!e.retainFocus&&(n.value=!1):e.submenu&&t.key===(i.value?`ArrowRight`:`ArrowLeft`)&&(n.value=!1))}function f(t){if(e.disabled)return;let r=s.value?.contentEl;r&&n.value?t.key===`ArrowDown`?(t.preventDefault(),t.stopImmediatePropagation(),Ic(r,`next`)):t.key===`ArrowUp`?(t.preventDefault(),t.stopImmediatePropagation(),Ic(r,`prev`)):e.submenu&&(t.key===(i.value?`ArrowRight`:`ArrowLeft`)?n.value=!1:t.key===(i.value?`ArrowLeft`:`ArrowRight`)&&(t.preventDefault(),Ic(r,`first`))):(e.submenu?t.key===(i.value?`ArrowLeft`:`ArrowRight`):[`ArrowDown`,`ArrowUp`].includes(t.key))&&(n.value=!0,t.preventDefault(),setTimeout(()=>setTimeout(()=>f(t))))}let p=G(()=>W({"aria-haspopup":`menu`,"aria-expanded":String(n.value),"aria-controls":o.value,"aria-owns":o.value,onKeydown:f},e.activatorProps));return Z(()=>{let i=Jb.filterProps(e);return U(Jb,W({ref:s,id:o.value,class:[`v-menu`,e.class],style:e.style},i,{modelValue:n.value,"onUpdate:modelValue":e=>n.value=e,absolute:!0,activatorProps:p.value,location:e.location??(e.submenu?`end`:`bottom`),"onClick:outside":u,onKeydown:d},r),{activator:t.activator,default:(...e)=>U(Lg,{root:`VMenu`},{default:()=>[t.default?.(...e)]})})}),Zb({id:o,ΨopenChildren:l},s)}});function ex({rootEl:e,isSticky:t,layoutItemStyles:n}){let r=P(!1),i=P(0),a=G(()=>{let e=typeof r.value==`boolean`?`top`:r.value;return[t.value?{top:`auto`,bottom:`auto`,height:void 0}:void 0,r.value?{[e]:q(i.value)}:{top:n.value.top}]});Rr(()=>{z(t,e=>{e?window.addEventListener(`scroll`,s,{passive:!0}):window.removeEventListener(`scroll`,s)},{immediate:!0})}),Vr(()=>{window.removeEventListener(`scroll`,s)});let o=0;function s(){let t=o>window.scrollY?`up`:`down`,a=e.value.getBoundingClientRect(),s=parseFloat(n.value.top??0),c=window.scrollY-Math.max(0,i.value-s),l=a.height+Math.max(i.value,s)-window.scrollY-window.innerHeight,u=parseFloat(getComputedStyle(e.value).getPropertyValue(`--v-body-scroll-y`))||0;a.height0;n--){if(e[n].t===e[n-1].t)continue;let r=rx(t),i=(e[n].d-e[n-1].d)/(e[n].t-e[n-1].t);t+=(i-r)*Math.abs(i),n===e.length-1&&(t*=.5)}return rx(t)*1e3}function ax(){let e={};function t(t){Array.from(t.changedTouches).forEach(n=>{(e[n.identifier]??(e[n.identifier]=new Dc(nx))).push([t.timeStamp,n])})}function n(t){Array.from(t.changedTouches).forEach(t=>{delete e[t.identifier]})}function r(t){let n=e[t]?.values().reverse();if(!n)throw Error(`No samples for touch id ${t}`);let r=n[0],i=[],a=[];for(let e of n){if(r[0]-e[0]>tx)break;i.push({t:e[0],d:e[1].clientX}),a.push({t:e[0],d:e[1].clientY})}return{x:ix(i),y:ix(a),get direction(){let{x:e,y:t}=this,[n,r]=[Math.abs(e),Math.abs(t)];return n>r&&e>=0?`right`:n>r&&e<=0?`left`:r>n&&t>=0?`down`:r>n&&t<=0?`up`:ox()}}}return{addMovement:t,endTouch:n,getVelocity:r}}function ox(){throw Error()}function sx({el:e,isActive:t,isTemporary:n,width:r,touchless:i,position:a}){Rr(()=>{window.addEventListener(`touchstart`,_,{passive:!0}),window.addEventListener(`touchmove`,v,{passive:!1}),window.addEventListener(`touchend`,y,{passive:!0})}),Vr(()=>{window.removeEventListener(`touchstart`,_),window.removeEventListener(`touchmove`,v),window.removeEventListener(`touchend`,y)});let o=G(()=>[`left`,`right`].includes(a.value)),{addMovement:s,endTouch:c,getVelocity:l}=ax(),u=!1,d=P(!1),f=P(0),p=P(0),m;function h(e,t){return(a.value===`left`?e:a.value===`right`?document.documentElement.clientWidth-e:a.value===`top`?e:a.value===`bottom`?document.documentElement.clientHeight-e:cx())-(t?r.value:0)}function g(e,t=!0){let n=a.value===`left`?(e-p.value)/r.value:a.value===`right`?(document.documentElement.clientWidth-e-p.value)/r.value:a.value===`top`?(e-p.value)/r.value:a.value===`bottom`?(document.documentElement.clientHeight-e-p.value)/r.value:cx();return t?vc(n):n}function _(e){if(i.value)return;let l=e.changedTouches[0].clientX,d=e.changedTouches[0].clientY,_=a.value===`left`?l<25:a.value===`right`?l>document.documentElement.clientWidth-25:a.value===`top`?d<25:a.value===`bottom`?d>document.documentElement.clientHeight-25:cx(),v=t.value&&(a.value===`left`?ldocument.documentElement.clientWidth-r.value:a.value===`top`?ddocument.documentElement.clientHeight-r.value:cx());(_||v||t.value&&n.value)&&(m=[l,d],p.value=h(o.value?l:d,t.value),f.value=g(o.value?l:d),u=p.value>-20&&p.value<80,c(e),s(e))}function v(e){let t=e.changedTouches[0].clientX,n=e.changedTouches[0].clientY;if(u){if(!e.cancelable){u=!1;return}let r=Math.abs(t-m[0]),i=Math.abs(n-m[1]);(o.value?r>i&&r>3:i>r&&i>3)?(d.value=!0,u=!1):(o.value?i:r)>3&&(u=!1)}if(!d.value)return;e.preventDefault(),s(e);let r=g(o.value?t:n,!1);f.value=Math.max(0,Math.min(1,r)),r>1?p.value=h(o.value?t:n,!0):r<0&&(p.value=h(o.value?t:n,!1))}function y(e){if(u=!1,!d.value)return;s(e),d.value=!1;let n=l(e.changedTouches[0].identifier),r=Math.abs(n.x),i=Math.abs(n.y);(o.value?r>i&&r>400:i>r&&i>3)?t.value=n.direction===({left:`right`,right:`left`,top:`down`,bottom:`up`}[a.value]||cx()):t.value=f.value>.5}let b=G(()=>d.value?{transform:a.value===`left`?`translateX(calc(-100% + ${f.value*r.value}px))`:a.value===`right`?`translateX(calc(100% - ${f.value*r.value}px))`:a.value===`top`?`translateY(calc(-100% + ${f.value*r.value}px))`:a.value===`bottom`?`translateY(calc(100% - ${f.value*r.value}px))`:cx(),transition:`none`}:void 0);return zu(d,()=>{let t=e.value?.style.transform??null,n=e.value?.style.transition??null;Un(()=>{e.value?.style.setProperty(`transform`,b.value?.transform||`none`),e.value?.style.setProperty(`transition`,b.value?.transition||null)}),ke(()=>{e.value?.style.setProperty(`transform`,t),e.value?.style.setProperty(`transition`,n)})}),{isDragging:d,dragProgress:f,dragStyles:b}}function cx(){throw Error()}var lx=[`start`,`end`,`left`,`right`,`top`,`bottom`],ux=J({color:String,disableResizeWatcher:Boolean,disableRouteWatcher:Boolean,expandOnHover:Boolean,floating:Boolean,modelValue:{type:Boolean,default:null},permanent:Boolean,rail:{type:Boolean,default:null},railWidth:{type:[Number,String],default:56},scrim:{type:[Boolean,String],default:!0},image:String,temporary:Boolean,persistent:Boolean,touchless:Boolean,width:{type:[Number,String],default:256},location:{type:String,default:`start`,validator:e=>lx.includes(e)},sticky:Boolean,...r_(),...Y(),...bb(),...df({mobile:null}),...a_(),...Hf(),...Jg(),...lc(Eb(),[`disableInitialFocus`]),...yg({tag:`nav`}),...Cf()},`VNavigationDrawer`),dx=X()({name:`VNavigationDrawer`,props:ux(),emits:{"update:modelValue":e=>!0,"update:rail":e=>!0},setup(e,{attrs:t,emit:n,slots:r}){let{isRtl:i}=nd(),{themeClasses:a}=Ff(e),{borderClasses:o}=i_(e),{backgroundColorClasses:s,backgroundColorStyles:c}=Gg(()=>e.color),{elevationClasses:l}=o_(e),{displayClasses:u,mobile:d}=ff(e),{roundedClasses:f}=Yg(e),p=iv(),m=Bu(e,`modelValue`,null,e=>!!e),{ssrBootStyles:h}=h_(),{scopeId:g}=Fb(),_=N(),v=P(!1),{runOpenDelay:y,runCloseDelay:b}=xb(e,e=>{v.value=e}),x=G(()=>e.rail&&e.expandOnHover&&v.value?Number(e.width):Number(e.rail?e.railWidth:e.width)),S=G(()=>Qc(e.location,i.value)),C=I(()=>e.persistent),w=G(()=>!e.permanent&&(d.value||e.temporary)),T=G(()=>e.sticky&&!w.value&&S.value!==`bottom`);jb(e,{isActive:m,localTop:w,contentEl:_}),zu(()=>e.expandOnHover&&e.rail!=null,()=>{z(v,e=>n(`update:rail`,!e))}),zu(()=>!e.disableResizeWatcher,()=>{z(w,t=>!e.permanent&&Tn(()=>m.value=!t))}),zu(()=>!e.disableRouteWatcher&&!!p,()=>{z(p.currentRoute,()=>w.value&&(m.value=!1))}),z(()=>e.permanent,e=>{e&&(m.value=!0)}),e.modelValue==null&&!w.value&&(m.value=e.permanent||!d.value);let{isDragging:E,dragProgress:ee}=sx({el:_,isActive:m,isTemporary:w,width:x,touchless:I(()=>e.touchless),position:S}),D=G(()=>{let t=w.value?0:e.rail&&e.expandOnHover?Number(e.railWidth):x.value;return E.value?t*ee.value:t}),{layoutItemStyles:te,layoutItemScrimStyles:ne}=Wf({id:e.name,order:G(()=>parseInt(e.order,10)),position:S,layoutSize:D,elementSize:x,active:Vt(m),disableTransitions:I(()=>E.value),absolute:G(()=>e.absolute||T.value&&typeof re.value!=`string`)}),{isStuck:re,stickyStyles:ie}=ex({rootEl:_,isSticky:T,layoutItemStyles:te}),ae=Gg(()=>typeof e.scrim==`string`?e.scrim:null),oe=G(()=>({...E.value?{opacity:ee.value*.2,transition:`none`}:void 0,...ne.value}));return lu({VList:{bgColor:`transparent`}}),Z(()=>{let n=r.image||e.image;return H(B,null,[U(e.tag,W({ref:_,onMouseenter:y,onMouseleave:b,class:[`v-navigation-drawer`,`v-navigation-drawer--${S.value}`,{"v-navigation-drawer--expand-on-hover":e.expandOnHover,"v-navigation-drawer--floating":e.floating,"v-navigation-drawer--is-hovering":v.value,"v-navigation-drawer--rail":e.rail,"v-navigation-drawer--temporary":w.value,"v-navigation-drawer--persistent":C.value,"v-navigation-drawer--active":m.value,"v-navigation-drawer--sticky":T.value},a.value,s.value,o.value,u.value,l.value,f.value,e.class],style:[c.value,te.value,h.value,ie.value,e.style],inert:!m.value},g,t),{default:()=>[n&&H(`div`,{key:`image`,class:`v-navigation-drawer__img`},[r.image?U(Lg,{key:`image-defaults`,disabled:!e.image,defaults:{VImg:{alt:``,cover:!0,height:`inherit`,src:e.image}}},r.image):U(n_,{key:`image-img`,alt:``,cover:!0,height:`inherit`,src:e.image},null)]),r.prepend&&H(`div`,{class:`v-navigation-drawer__prepend`},[r.prepend?.()]),H(`div`,{class:`v-navigation-drawer__content`},[r.default?.()]),r.append&&H(`div`,{class:`v-navigation-drawer__append`},[r.append?.()])]}),U(To,{name:`fade-transition`},{default:()=>[w.value&&(E.value||m.value)&&!!e.scrim&&H(`div`,W({class:[`v-navigation-drawer__scrim`,ae.backgroundColorClasses.value],style:[oe.value,ae.backgroundColorStyles.value],onClick:()=>{C.value||(m.value=!1)}},g),null)]})])}),{isStuck:re}}}),fx=Symbol.for(`vuetify:v-snackbar-queue`);function px(e,t){let n=R(fx,null);if(!n)return null;let r=Cr();n.register(r),Vr(()=>n.unregister(r)),z(e,e=>!e&&n.unregister(r),{flush:`sync`});let{resizeRef:i,contentRect:a}=Lf();return z(t,e=>{i.value=e??null}),z(a,e=>{e?.width&&n.setSize(r,e.height,e.width)}),{id:r,offset:G(()=>n.getOffset(r))}}function mx(e){let t=P(e()),n=-1;function r(){clearInterval(n)}function i(){r(),Tn(()=>t.value=e())}function a(i){let a=i?getComputedStyle(i):{transitionDuration:.2},o=parseFloat(a.transitionDuration)*1e3||200;if(r(),t.value<=0)return;let s=performance.now();n=window.setInterval(()=>{let n=performance.now()-s+o;t.value=Math.max(e()-n,0),t.value<=0&&r()},o)}return ke(r),{clear:r,time:t,start:a,reset:i}}var hx=J({collapsed:Object,loading:Boolean,prependAvatar:String,prependIcon:Q,queueGap:Number,queueIndex:Number,title:String,text:String,reverseTimer:Boolean,timer:{type:[Boolean,String],default:!1},timerColor:String,timeout:{type:[Number,String],default:5e3},vertical:Boolean,...c_({location:`bottom`}),...tv(),...Jg(),...C_(),...Cf(),...lc(qb({closeOnBack:!1,transition:`v-snackbar-transition`}),[`persistent`,`noClickAnimation`,`offset`,`retainFocus`,`captureFocus`,`disableInitialFocus`,`scrim`,`scrollStrategy`,`stickToTarget`,`viewportMargin`])},`VSnackbar`),gx=X()({name:`VSnackbar`,props:hx(),emits:{"update:modelValue":e=>!0},setup(e,{slots:t}){let n=Bu(e,`modelValue`),{positionClasses:r}=nv(e),{scopeId:i}=Fb(),{themeClasses:a}=Ff(e),{colorClasses:o,colorStyles:s,variantClasses:c}=w_(e),{roundedClasses:l}=Yg(e),u=mx(()=>Number(e.timeout)),d=N(),f=px(n,()=>d.value?.contentEl),p,m=N(),h=P(!1),g=P(!1),_=P(0),v=N(),y=R(Rf,void 0);zu(()=>!!y,()=>{let e=Uf();Un(()=>{v.value=e.mainStyles.value})}),z(n,x),z(()=>e.timeout,x),Rr(()=>{n.value&&x()});let b=-1;function x(){u.reset(),window.clearTimeout(b);let t=Number(e.timeout);if(!n.value||t===-1)return;let r=rc(m.value);Tn(()=>u.start(r)),b=window.setTimeout(()=>{n.value=!1},t)}function S(){u.reset(),window.clearTimeout(b)}function C(){h.value=!0,S()}function w(){h.value=!1,g.value||x()}function T(){g.value=!0,S()}function E(e){(d.value?.contentEl)?.contains(e.relatedTarget)||(g.value=!1,h.value||x())}function ee(e){_.value=e.touches[0].clientY}function D(e){Math.abs(_.value-e.changedTouches[0].clientY)>50&&(n.value=!1)}function te(){h.value&&w(),g.value=!1}let ne=G(()=>e.location.split(` `).reduce((e,t)=>(e[`v-snackbar--${t}`]=!0,e),{})),re=G(()=>{let[t,n]=e.location.split(` `);return t===`bottom`||[`left`,`right`].includes(t)&&n===`end`?-1:1}),ie=G(()=>e.collapsed?{"--v-snackbar-collapsed-height":q(e.collapsed.height),"--v-snackbar-collapsed-width":q(e.collapsed.width)}:null),ae=G(()=>f?f.offset.value===null?p:p=q(f.offset.value):{}),oe=G(()=>{if(typeof e.transition!=`string`||!e.transition.endsWith(`-auto`))return e.transition;let t=e.transition.replace(`-auto`,``),[n,r]=e.location.split(` `);return`${t}-${[`start`,`end`,`left`,`right`].includes(r)||[`left`,`right`].includes(n)?`x`:`y`}${[`end`,`right`].includes(r)||![`start`,`left`].includes(r)&&[`bottom`,`right`].includes(n)?`-reverse`:``}-transition`});return Z(()=>{let f=lc(Jb.filterProps(e),[`transition`]),p=!!(e.prependAvatar||e.prependIcon),g=!!(p||e.loading||t.prepend),_=!!(t.default||t.text||t.title||e.text||e.title);return U(Jb,W({ref:d,class:[`v-snackbar`,{"v-snackbar--active":n.value,"v-snackbar--collapsed":!!e.collapsed,"v-snackbar--timer":!!e.timer,"v-snackbar--vertical":e.vertical},ne.value,r.value,e.class],style:[v.value,{"--v-snackbar-offset":ae.value,"--v-snackbar-gap":q(e.queueGap),"--v-snackbar-index":e.queueIndex,"--v-snackbar-direction":re.value},ie.value,e.style]},f,{transition:oe.value,modelValue:n.value,"onUpdate:modelValue":e=>n.value=e,contentProps:W({class:[`v-snackbar__wrapper`,a.value,o.value,l.value,c.value],style:[s.value],onPointerenter:C,onPointerleave:w,onFocusin:T,onFocusout:E},f.contentProps),persistent:!0,noClickAnimation:!0,scrim:!1,scrollStrategy:`none`,_disableGlobalStack:!0,onTouchstartPassive:ee,onTouchend:D,onAfterLeave:te},i),{default:()=>[S_(!1,`v-snackbar`),t.header&&H(`div`,{class:`v-snackbar__header`},[t.header?.()]),e.timer&&u.time.value>0&&!h.value&&H(`div`,{key:`timer`,class:k([`v-snackbar__timer`,`v-snackbar__timer--${e.timer===`bottom`?`bottom`:`top`}`])},[U(X_,{ref:m,color:e.timerColor??`info`,max:e.timeout,modelValue:e.reverseTimer?Number(e.timeout)-u.time.value:u.time.value},null)]),g&&U(Lg,{key:`prepend-defaults`,disabled:!p&&!e.loading,defaults:{VAvatar:{image:e.prependAvatar},VIcon:{icon:e.prependIcon},VProgressCircular:{indeterminate:!0,size:24,width:3}}},{default:()=>[H(`div`,{class:`v-snackbar__prepend`},[t.prepend?t.prepend():H(B,null,[e.loading&&U(K_,null,null),!e.loading&&e.prependAvatar&&U(Bv,null,null),!e.loading&&e.prependIcon&&U(V_,null,null)])])]}),_&&H(`div`,{key:`content`,class:`v-snackbar__content`,role:`status`,"aria-live":`polite`},[t.title?.()??(e.title?H(`div`,{class:`v-snackbar__title`,key:`title`},[e.title]):``),t.text?.()??e.text,t.default?.()]),t.actions&&U(Lg,{defaults:{VBtn:{variant:`text`,ripple:!1,slim:!0}}},{default:()=>[H(`div`,{class:`v-snackbar__actions`},[t.actions({isActive:n})])]})],activator:t.activator})}),Zb({},d)}}),_x=J({active:Boolean,disabled:Boolean,max:[Number,String],value:{type:[Number,String],default:0},...Y(),...Xg({transition:{component:Ng}})},`VCounter`),vx=X()({name:`VCounter`,functional:!0,props:_x(),setup(e,{slots:t}){let n=I(()=>e.max?`${e.value} / ${e.max}`:String(e.value));return Z(()=>U(Zg,{transition:e.transition},{default:()=>[Ln(H(`div`,{class:k([`v-counter`,{"text-error":e.max&&!e.disabled&&parseFloat(e.value)>parseFloat(e.max)},e.class]),style:O(e.style)},[t.default?t.default({counter:n.value,max:e.max,value:e.value}):n.value]),[[Uo,e.active]])]})),{}}}),yx=J({text:String,onClick:jc(),...Y(),...Cf()},`VLabel`),bx=X()({name:`VLabel`,props:yx(),setup(e,{slots:t}){return Z(()=>H(`label`,{class:k([`v-label`,{"v-label--clickable":!!e.onClick},e.class]),style:O(e.style),onClick:e.onClick},[e.text,t.default?.()])),{}}}),xx=J({floating:Boolean,...Y()},`VFieldLabel`),Sx=X()({name:`VFieldLabel`,props:xx(),setup(e,{slots:t}){return Z(()=>U(bx,{class:k([`v-field-label`,{"v-field-label--floating":e.floating},e.class]),style:O(e.style)},t)),{}}});function Cx(e){let{t}=$u();function n({name:n,color:r,...i}){let a={prepend:`prependAction`,prependInner:`prependAction`,append:`appendAction`,appendInner:`appendAction`,clear:`clear`}[n],o=e[`onClick:${n}`];function s(e){e.key!==`Enter`&&e.key!==` `||(e.preventDefault(),e.stopPropagation(),Nc(o,new PointerEvent(`click`,e)))}let c=o&&a?t(`$vuetify.input.${a}`,e.label??``):void 0;return U(V_,W({icon:e[`${n}Icon`],"aria-label":c,onClick:o,onKeydown:s,color:r},i),null)}return{InputIcon:n}}var wx=J({focused:Boolean,"onUpdate:focused":jc()},`focus`);function Tx(e,t=iu()){let n=Bu(e,`focused`),r=I(()=>({[`${t}--focused`]:n.value}));function i(){n.value=!0}function a(){n.value=!1}return{focusClasses:r,isFocused:n,focus:i,blur:a}}var Ex=[`underlined`,`outlined`,`filled`,`solo`,`solo-inverted`,`solo-filled`,`plain`],Dx=J({appendInnerIcon:Q,bgColor:String,clearable:Boolean,clearIcon:{type:Q,default:`$clear`},active:Boolean,centerAffix:{type:Boolean,default:void 0},color:String,baseColor:String,dirty:Boolean,disabled:{type:Boolean,default:null},glow:Boolean,error:Boolean,flat:Boolean,iconColor:[Boolean,String],label:String,persistentClear:Boolean,prependInnerIcon:Q,reverse:Boolean,singleLine:Boolean,variant:{type:String,default:`filled`,validator:e=>Ex.includes(e)},"onClick:clear":jc(),"onClick:appendInner":jc(),"onClick:prependInner":jc(),...Y(),...Z_(),...Jg(),...Cf()},`VField`),Ox=X()({name:`VField`,inheritAttrs:!1,props:{id:String,details:Boolean,labelId:String,...wx(),...Dx()},emits:{"update:focused":e=>!0,"update:modelValue":e=>!0},setup(e,{attrs:t,emit:n,slots:r}){let{themeClasses:i}=Ff(e),{loaderClasses:a}=Q_(e),{focusClasses:o,isFocused:s,focus:c,blur:l}=Tx(e),{InputIcon:u}=Cx(e),{roundedClasses:d}=Yg(e),{rtlClasses:f}=nd(),p=I(()=>e.dirty||e.active),m=I(()=>!!(e.label||r.label)),h=I(()=>!e.singleLine&&m.value),g=Cr(),_=G(()=>e.id||`input-${g}`),v=I(()=>e.details?`${_.value}-messages`:void 0),y=N(),b=N(),x=N(),S=G(()=>[`plain`,`underlined`].includes(e.variant)),C=G(()=>e.error||e.disabled?void 0:p.value&&s.value?e.color:e.baseColor),w=G(()=>{if(e.iconColor===!0||!e.iconColor&&e.glow&&s.value)return C.value;if(!(!e.iconColor||e.glow&&!s.value))return e.iconColor}),{backgroundColorClasses:T,backgroundColorStyles:E}=Gg(()=>e.bgColor),{textColorClasses:ee,textColorStyles:D}=Wg(C);z(p,e=>{if(h.value&&!Xs()){let t=y.value.$el,n=b.value.$el;requestAnimationFrame(()=>{let r=sl(t),i=new rl(n),a=i.x-r.x,o=i.y-r.y-(r.height/2-i.height/2),s=i.width/.75,c=Math.abs(s-r.width)>1?{maxWidth:q(s)}:void 0,l=getComputedStyle(t),u=getComputedStyle(n),d=parseFloat(l.transitionDuration)*1e3||150,f=parseFloat(u.getPropertyValue(`--v-field-label-scale`)),p=u.getPropertyValue(`color`);t.style.visibility=`visible`,n.style.visibility=`hidden`,cl(t,{transform:`translate(${a}px, ${o}px) scale(${f})`,color:p,...c},{duration:d,easing:yu,direction:e?`normal`:`reverse`}).finished.then(()=>{t.style.removeProperty(`visibility`),n.style.removeProperty(`visibility`)})})}},{flush:`post`});let te=G(()=>({isActive:p,isFocused:s,controlRef:x,iconColor:w,blur:l,focus:c})),ne=I(()=>{let e=!p.value;return{"aria-hidden":e,for:e?void 0:_.value}}),re=I(()=>{let e=h.value&&p.value;return{"aria-hidden":e,for:e?void 0:_.value}});function ie(e){e.target!==document.activeElement&&e.preventDefault()}return Z(()=>{let n=e.variant===`outlined`,s=!!(r[`prepend-inner`]||e.prependInnerIcon),g=!!(e.clearable||r.clear)&&!e.disabled,x=!!(r[`append-inner`]||e.appendInnerIcon||g),C=()=>r.label?r.label({...te.value,label:e.label,props:{for:_.value}}):e.label;return H(`div`,W({class:[`v-field`,{"v-field--active":p.value,"v-field--appended":x,"v-field--center-affix":e.centerAffix??!S.value,"v-field--disabled":e.disabled,"v-field--dirty":e.dirty,"v-field--error":e.error,"v-field--glow":e.glow,"v-field--flat":e.flat,"v-field--has-background":!!e.bgColor,"v-field--persistent-clear":e.persistentClear,"v-field--prepended":s,"v-field--reverse":e.reverse,"v-field--single-line":e.singleLine,"v-field--no-label":!C(),[`v-field--variant-${e.variant}`]:!0},i.value,T.value,o.value,a.value,d.value,f.value,e.class],style:[E.value,e.style],onClick:ie},t),[H(`div`,{class:`v-field__overlay`},null),U($_,{name:`v-field`,active:!!e.loading,color:e.error?`error`:typeof e.loading==`string`?e.loading:e.color},{default:r.loader}),s&&H(`div`,{key:`prepend`,class:`v-field__prepend-inner`},[r[`prepend-inner`]?r[`prepend-inner`](te.value):e.prependInnerIcon&&U(u,{key:`prepend-icon`,name:`prependInner`,color:w.value},null)]),H(`div`,{class:`v-field__field`,"data-no-activator":``},[[`filled`,`solo`,`solo-inverted`,`solo-filled`].includes(e.variant)&&h.value&&U(Sx,W({key:`floating-label`,ref:b,class:[ee.value],floating:!0},ne.value,{style:D.value}),{default:()=>[C()]}),m.value&&U(Sx,W({key:`label`,ref:y,id:e.labelId},re.value),{default:()=>[C()]}),r.default?.({...te.value,props:{id:_.value,class:`v-field__input`,"aria-describedby":v.value},focus:c,blur:l})??H(`div`,{id:_.value,class:`v-field__input`,"aria-describedby":v.value},null)]),g&&U(Fg,{key:`clear`},{default:()=>[Ln(H(`div`,{class:`v-field__clearable`,onMousedown:e=>{e.preventDefault(),e.stopPropagation()}},[U(Lg,{defaults:{VIcon:{icon:e.clearIcon}}},{default:()=>[r.clear?r.clear({...te.value,props:{onFocus:c,onBlur:l,onClick:e[`onClick:clear`],tabindex:-1}}):U(u,{name:`clear`,onFocus:c,onBlur:l,tabindex:-1},null)]})]),[[Uo,e.dirty]])]}),x&&H(`div`,{key:`append`,class:`v-field__append-inner`},[r[`append-inner`]?r[`append-inner`](te.value):e.appendInnerIcon&&U(u,{key:`append-icon`,name:`appendInner`,color:w.value},null)]),H(`div`,{class:k([`v-field__outline`,ee.value]),style:O(D.value)},[n&&H(B,null,[H(`div`,{class:`v-field__outline__start`},null),h.value&&H(`div`,{class:`v-field__outline__notch`},[U(Sx,W({ref:b,floating:!0},ne.value),{default:()=>[C()]})]),H(`div`,{class:`v-field__outline__end`},null)]),S.value&&h.value&&U(Sx,W({ref:b,floating:!0},ne.value),{default:()=>[C()]})])])}),{controlRef:x,fieldIconColor:w}}}),kx=J({active:Boolean,color:String,messages:{type:[Array,String],default:()=>[]},...Y(),...Xg({transition:{component:Ng,leaveAbsolute:!0,group:!0}})},`VMessages`),Ax=X()({name:`VMessages`,props:kx(),setup(e,{slots:t}){let n=G(()=>gc(e.messages)),{textColorClasses:r,textColorStyles:i}=Wg(()=>e.color);return Z(()=>U(Zg,{transition:e.transition,tag:`div`,class:k([`v-messages`,r.value,e.class]),style:O([i.value,e.style])},{default:()=>[e.active&&n.value.map((e,r)=>H(`div`,{class:`v-messages__message`,key:`${r}-${n.value}`},[t.message?t.message({message:e}):e]))]})),{}}}),jx=Symbol.for(`vuetify:form`),Mx=J({disabled:Boolean,fastFail:Boolean,readonly:Boolean,modelValue:{type:Boolean,default:null},validateOn:{type:String,default:`input`}},`form`);function Nx(e){let t=Bu(e,`modelValue`),n=I(()=>e.disabled),r=I(()=>e.readonly),i=P(!1),a=N([]),o=N([]);async function s(){let t=[],n=!0;o.value=[],i.value=!0;for(let r of a.value){let i=await r.validate();if(i.length>0&&(n=!1,t.push({id:r.id,errorMessages:i})),!n&&e.fastFail)break}return o.value=t,i.value=!1,{valid:n,errors:o.value}}function c(){a.value.forEach(e=>e.reset())}function l(){a.value.forEach(e=>e.resetValidation())}return z(a,()=>{let e=0,n=0,r=[];for(let t of a.value)t.isValid===!1?(n++,r.push({id:t.id,errorMessages:t.errorMessages})):t.isValid===!0&&e++;o.value=r,t.value=n>0?!1:e===a.value.length?!0:null},{deep:!0,flush:`post`}),zn(jx,{register:({id:e,vm:t,validate:n,reset:r,resetValidation:i})=>{a.value.some(t=>t.id===e)&&Ws(`Duplicate input name "${e}"`),a.value.push({id:e,validate:n,reset:r,resetValidation:i,vm:qt(t),isValid:null,errorMessages:[]})},unregister:e=>{a.value=a.value.filter(t=>t.id!==e)},update:(e,t,n)=>{let r=a.value.find(t=>t.id===e);r&&(r.isValid=t,r.errorMessages=n)},isDisabled:n,isReadonly:r,isValidating:i,isValid:t,items:a,validateOn:I(()=>e.validateOn)}),{errors:o,isDisabled:n,isReadonly:r,isValidating:i,isValid:t,items:a,validate:s,reset:c,resetValidation:l}}function Px(e){let t=R(jx,null);return{...t,isReadonly:G(()=>!!(e?.readonly??t?.isReadonly.value)),isDisabled:G(()=>!!(e?.disabled??t?.isDisabled.value))}}var Fx=Symbol.for(`vuetify:rules`);function Ix(e){let t=R(Fx,null);if(!e){if(!t)throw Error(`Could not find Vuetify rules injection`);return t.aliases}return t?.resolve(e)??I(e)}var Lx=J({disabled:{type:Boolean,default:null},error:Boolean,errorMessages:{type:[Array,String],default:()=>[]},maxErrors:{type:[Number,String],default:1},name:String,label:String,readonly:{type:Boolean,default:null},rules:{type:Array,default:()=>[]},modelValue:null,validateOn:String,validationValue:null,...wx()},`validation`);function Rx(e,t=iu(),n=Cr()){let r=Bu(e,`modelValue`),i=G(()=>e.validationValue===void 0?r.value:e.validationValue),a=Px(e),o=Ix(()=>e.rules),s=N([]),c=P(!0),l=G(()=>!!(gc(r.value===``?null:r.value).length||gc(i.value===``?null:i.value).length)),u=G(()=>e.errorMessages?.length?gc(e.errorMessages).concat(s.value).slice(0,Math.max(0,Number(e.maxErrors))):s.value),d=G(()=>{let t=(e.validateOn??a.validateOn?.value)||`input`;t===`lazy`&&(t=`input lazy`),t===`eager`&&(t=`input eager`);let n=new Set(t?.split(` `)??[]);return{input:n.has(`input`),blur:n.has(`blur`)||n.has(`input`)||n.has(`invalid-input`),invalidInput:n.has(`invalid-input`),lazy:n.has(`lazy`),eager:n.has(`eager`)}}),f=G(()=>e.error||e.errorMessages?.length?!1:e.rules.length?c.value?s.value.length||d.value.lazy?null:!0:!s.value.length:!0),p=P(!1),m=G(()=>({[`${t}--error`]:f.value===!1,[`${t}--dirty`]:l.value,[`${t}--disabled`]:a.isDisabled.value,[`${t}--readonly`]:a.isReadonly.value})),h=ru(`validation`),g=G(()=>e.name??F(n));Lr(()=>{a.register?.({id:g.value,vm:h,validate:y,reset:_,resetValidation:v})}),Vr(()=>{a.unregister?.(g.value)}),Rr(async()=>{d.value.lazy||await y(!d.value.eager),a.update?.(g.value,f.value,u.value)}),zu(()=>d.value.input||d.value.invalidInput&&f.value===!1,()=>{z(i,()=>{if(i.value!=null)y();else if(e.focused){let t=z(()=>e.focused,e=>{e||y(),t()})}})}),zu(()=>d.value.blur,()=>{z(()=>e.focused,e=>{e||y()})}),z([f,u],()=>{a.update?.(g.value,f.value,u.value)});async function _(){r.value=null,await Tn(),await v()}async function v(){c.value=!0,d.value.lazy?s.value=[]:await y(!d.value.eager)}async function y(t=!1){let n=[];p.value=!0;for(let t of o.value){if(n.length>=Number(e.maxErrors??1))break;let r=await(typeof t==`function`?t:()=>t)(i.value);if(r!==!0){if(r!==!1&&typeof r!=`string`){console.warn(`${r} is not a valid value. Rule functions must return boolean true or a string.`);continue}n.push(r||``)}}return s.value=n,p.value=!1,c.value=t,s.value}return{errorMessages:u,isDirty:l,isDisabled:a.isDisabled,isReadonly:a.isReadonly,isPristine:c,isValid:f,isValidating:p,reset:_,resetValidation:v,validate:y,validationClasses:m}}var zx=J({id:String,appendIcon:Q,baseColor:String,centerAffix:{type:Boolean,default:!0},color:String,glow:Boolean,iconColor:[Boolean,String],prependIcon:Q,hideDetails:[Boolean,String],hideSpinButtons:Boolean,hint:String,indentDetails:{type:Boolean,default:null},persistentHint:Boolean,messages:{type:[Array,String],default:()=>[]},direction:{type:String,default:`horizontal`,validator:e=>[`horizontal`,`vertical`].includes(e)},"onClick:prepend":jc(),"onClick:append":jc(),...Y(),...y_(),...sc(Rg(),[`maxWidth`,`minWidth`,`width`]),...Cf(),...Lx()},`VInput`),Bx=X()({name:`VInput`,props:{...zx()},emits:{"update:modelValue":e=>!0},setup(e,{attrs:t,slots:n,emit:r}){let{densityClasses:i}=b_(e),{dimensionStyles:a}=zg(e),{themeClasses:o}=Ff(e),{rtlClasses:s}=nd(),{InputIcon:c}=Cx(e),l=Cr(),u=G(()=>e.id||`input-${l}`),{errorMessages:d,isDirty:f,isDisabled:p,isReadonly:m,isPristine:h,isValid:g,isValidating:_,reset:v,resetValidation:y,validate:b,validationClasses:x}=Rx(e,`v-input`,u),S=G(()=>e.errorMessages?.length||!h.value&&d.value.length?d.value:e.hint&&(e.persistentHint||e.focused)?e.hint:e.messages),C=I(()=>S.value.length>0),w=I(()=>!e.hideDetails||e.hideDetails===`auto`&&(C.value||!!n.details)),T=G(()=>w.value?`${u.value}-messages`:void 0),E=G(()=>({id:u,messagesId:T,isDirty:f,isDisabled:p,isReadonly:m,isPristine:h,isValid:g,isValidating:_,hasDetails:w,reset:v,resetValidation:y,validate:b})),ee=I(()=>e.error||e.disabled?void 0:e.focused?e.color:e.baseColor),D=I(()=>{if(e.iconColor)return e.iconColor===!0?ee.value:e.iconColor});return Z(()=>{let t=!!(n.prepend||e.prependIcon),r=!!(n.append||e.appendIcon);return H(`div`,{class:k([`v-input`,`v-input--${e.direction}`,{"v-input--center-affix":e.centerAffix,"v-input--focused":e.focused,"v-input--glow":e.glow,"v-input--hide-spin-buttons":e.hideSpinButtons,"v-input--indent-details":e.indentDetails},i.value,o.value,s.value,x.value,e.class]),style:O([a.value,e.style])},[t&&H(`div`,{key:`prepend`,class:`v-input__prepend`},[n.prepend?n.prepend(E.value):e.prependIcon&&U(c,{key:`prepend-icon`,name:`prepend`,color:D.value},null)]),n.default&&H(`div`,{class:`v-input__control`},[n.default?.(E.value)]),r&&H(`div`,{key:`append`,class:`v-input__append`},[n.append?n.append(E.value):e.appendIcon&&U(c,{key:`append-icon`,name:`append`,color:D.value},null)]),w.value&&H(`div`,{id:T.value,class:`v-input__details`,role:`alert`,"aria-live":`polite`},[U(Ax,{active:C.value,messages:S.value},{message:n.message}),n.details?.(E.value)])])}),{reset:v,resetValidation:y,validate:b,isValid:g,errorMessages:d}}}),Vx=J({autocomplete:String},`autocomplete`);function Hx(e){let t=Cr(),n=P(0),r=I(()=>e.autocomplete===`suppress`);return{isSuppressing:r,fieldAutocomplete:I(()=>r.value?`off`:e.autocomplete),fieldName:I(()=>{if(e.name)return r.value?`${e.name}-${t}-${n.value}`:e.name}),update:()=>n.value=new Date().getTime()}}function Ux(e){function t(t,n){if(!e.autofocus||!t)return;let r=n[0].target;(r.matches(`input,textarea`)?r:r.querySelector(`input,textarea`))?.focus()}return{onIntersect:t}}var Wx=[`color`,`file`,`time`,`date`,`datetime-local`,`week`,`month`],Gx=J({autofocus:Boolean,counter:[Boolean,Number,String],counterValue:[Number,Function],prefix:String,placeholder:String,persistentPlaceholder:Boolean,persistentCounter:Boolean,suffix:String,role:String,type:{type:String,default:`text`},modelModifiers:Object,...Vx(),...lc(zx(),[`direction`]),...Dx()},`VTextField`),Kx=X()({name:`VTextField`,directives:{vIntersect:e_},inheritAttrs:!1,props:Gx(),emits:{"click:control":e=>!0,"mousedown:control":e=>!0,"update:focused":e=>!0,"update:modelValue":e=>!0},setup(e,{attrs:t,emit:n,slots:r}){let i=Bu(e,`modelValue`,void 0,e=>Object.is(e,-0)?`-0`:e),{isFocused:a,focus:o,blur:s}=Tx(e),{onIntersect:c}=Ux(e),l=G(()=>typeof e.counterValue==`function`?e.counterValue(i.value):typeof e.counterValue==`number`?e.counterValue:(i.value??``).toString().length),u=G(()=>{if(t.maxlength)return t.maxlength;if(!(!e.counter||typeof e.counter!=`number`&&typeof e.counter!=`string`))return e.counter}),d=G(()=>[`plain`,`underlined`].includes(e.variant)),f=N(),p=N(),m=N(),h=Hx(e),g=G(()=>Wx.includes(e.type)||e.persistentPlaceholder||a.value||e.active);function _(){h.isSuppressing.value&&h.update(),a.value||o(),Tn(()=>{m.value!==document.activeElement&&m.value?.focus()})}function v(e){n(`mousedown:control`,e),e.target!==m.value&&(_(),e.preventDefault())}function y(e){n(`click:control`,e)}function b(t,n){t.stopPropagation(),_(),Tn(()=>{n(),Nc(e[`onClick:clear`],t)})}function x(t){let n=t.target;if(!(e.modelModifiers?.trim&&[`text`,`search`,`password`,`tel`,`url`].includes(e.type))){i.value=n.value;return}let r=n.value,a=n.selectionStart,o=n.selectionEnd;i.value=r,Tn(()=>{let e=0;r.trimStart().length===n.value.length&&(e=r.length-n.value.length),a!=null&&(n.selectionStart=a-e),o!=null&&(n.selectionEnd=o-e)})}return Z(()=>{let n=!!(r.counter||e.counter!==!1&&e.counter!=null),_=!!(n||r.details),[S,C]=hc(t),{modelValue:w,...T}=Bx.filterProps(e),E=Ox.filterProps(e);return U(Bx,W({ref:f,modelValue:i.value,"onUpdate:modelValue":e=>i.value=e,class:[`v-text-field`,{"v-text-field--prefixed":e.prefix,"v-text-field--suffixed":e.suffix,"v-input--plain-underlined":d.value},e.class],style:e.style},S,T,{centerAffix:!d.value,focused:a.value,indentDetails:e.indentDetails??!d.value}),{...r,default:({id:t,isDisabled:n,isDirty:l,isReadonly:u,isValid:d,hasDetails:f,reset:_})=>U(Ox,W({ref:p,onMousedown:v,onClick:y,"onClick:clear":e=>b(e,_),role:e.role},lc(E,[`onClick:clear`]),{id:t.value,labelId:`${t.value}-label`,active:g.value||l.value,dirty:l.value||e.dirty,disabled:n.value,focused:a.value,details:f.value,error:d.value===!1}),{...r,default:({props:{class:a,...l},controlRef:d})=>{let f=H(`input`,W({ref:e=>m.value=d.value=e,value:i.value,onInput:x,autofocus:e.autofocus,readonly:u.value,disabled:n.value,name:h.fieldName.value,autocomplete:h.fieldAutocomplete.value,placeholder:e.placeholder,size:1,role:e.role,type:e.type,onFocus:o,onBlur:s,"aria-labelledby":`${t.value}-label`},l,C),null);return H(B,null,[e.prefix&&H(`span`,{class:`v-text-field__prefix`},[H(`span`,{class:`v-text-field__prefix__text`},[e.prefix])]),Ln(r.default?H(`div`,{class:k(a),"data-no-activator":``},[r.default({id:t}),f]):Na(f,{class:a}),[[e_,c,null,{once:!0}]]),e.suffix&&H(`span`,{class:`v-text-field__suffix`},[H(`span`,{class:`v-text-field__suffix__text`},[e.suffix])])])}}),details:_?t=>H(B,null,[r.details?.(t),n&&H(B,null,[H(`span`,null,null),U(vx,{active:e.persistentCounter||a.value,value:l.value,max:u.value,disabled:e.disabled},r.counter)])]):void 0})}),Zb({},f,p,m)}}),qx={class:`hidden-sm-and-down`},Jx=Vs(Sr({__name:`App`,setup(e){let t=th(),n=eh(),r=If(),i=$h(),a=gg();z(()=>i.isLoggedIn,e=>{e?(a.connect(),o()):a.disconnect()},{immediate:!0});async function o(){if(i.isLoggedIn)try{let e=await Jh(`/settings/theme`);(e.value===`dark`||e.value===`light`)&&(r.global.name.value=e.value,localStorage.setItem(`nexus_theme`,e.value))}catch{}}async function s(){let e=r.global.current.value.dark?`light`:`dark`;r.global.name.value=e,localStorage.setItem(`nexus_theme`,e);try{await Jh(`/settings/theme`,{method:`PUT`,body:JSON.stringify({value:e})})}catch{}}let c=N(!0),{mobile:l}=ff();zn(`nexusDrawer`,c);let u=G(()=>({"nexus-terminal-main":t.path===`/terminal`,"nexus-page-main":t.path!==`/terminal`&&t.path!==`/login`})),d=[{to:`/`,title:`仪表盘`,icon:`mdi-view-dashboard-outline`},{to:`/servers`,title:`服务器`,icon:`mdi-server`},{to:`/terminal`,title:`终端`,icon:`mdi-console`},{to:`/files`,title:`文件管理`,icon:`mdi-folder-outline`},{to:`/push`,title:`推送`,icon:`mdi-upload-outline`},{to:`/scripts`,title:`脚本库`,icon:`mdi-code-braces`},{to:`/credentials`,title:`凭据`,icon:`mdi-key-outline`},{to:`/schedules`,title:`调度`,icon:`mdi-clock-outline`},{to:`/retries`,title:`重试队列`,icon:`mdi-refresh`}],f=[{to:`/commands`,title:`命令日志`,icon:`mdi-console`},{to:`/alerts`,title:`告警中心`,icon:`mdi-bell-outline`},{to:`/audit`,title:`审计日志`,icon:`mdi-clipboard-text-outline`}],p=zt({show:!1,text:``,color:`success`}),m=N(``),h=N(!1),g=N(!1),_=N(null),v;function y(){if(clearTimeout(v),!m.value||m.value.length<2){_.value=null,h.value=!1;return}v=setTimeout(()=>b(),300)}async function b(){if(!(!m.value||m.value.length<2)){g.value=!0,h.value=!0;try{let e=await Yh.get(`/search/`,{q:m.value});_.value=e,e.total===0&&(h.value=!0)}catch{_.value=null}finally{g.value=!1}}}function x(){m.value=``,_.value=null,h.value=!1}function S(e){h.value=!1,n.push({path:`/servers`,query:{highlight:String(e)}})}function C(){h.value=!1,n.push(`/scripts`)}function w(){h.value=!1,n.push(`/credentials`)}function T(){h.value=!1,E(`/schedules`)}function E(e){t.path!==e&&n.push(e).catch(()=>{}),l.value&&(c.value=!1)}function ee(){i.logout(),n.push(`/login`)}return window.$snackbar=(e,t=`success`)=>{p.text=e,p.color=t,p.show=!0},Hr(()=>clearTimeout(v)),(e,r)=>{let a=Jr(`router-view`);return V(),Ea(vg,null,{default:L(()=>[F(i).isLoggedIn?(V(),Ea(__,{key:0,color:`primary`,elevation:`0`,flat:``,class:`ps-4`},{append:L(()=>[U(Nv,{class:`text-none me-1 px-3`,height:`48`,slim:``},{prepend:L(()=>[U(Bv,{color:`surface-light`,size:`32`,start:``},{default:L(()=>[U(V_,{icon:`mdi-account`,size:`18`})]),_:1})]),append:L(()=>[U(V_,{icon:`mdi-chevron-down`})]),default:L(()=>[H(`span`,qx,Se(F(i).admin?.username||`管理员`),1),U($b,{activator:`parent`},{default:L(()=>[U(Ky,{density:`compact`,nav:``},{default:L(()=>[U(jy,{"prepend-icon":`mdi-theme-light-dark`,title:`切换主题`,link:``,onClick:s}),U(jy,{"prepend-icon":`mdi-cog-outline`,title:`设置`,link:``,onClick:r[6]||=e=>F(n).push(`/settings`)}),U(jy,{"prepend-icon":`mdi-logout`,title:`退出登录`,link:``,onClick:ee})]),_:1})]),_:1})]),_:1})]),default:L(()=>[U(Fv,{class:`mr-3`,onClick:r[0]||=e=>c.value=!c.value}),U(Bv,{color:`surface`,size:`40`,class:`pa-1`},{default:L(()=>[U(V_,{icon:`mdi-server-network`,size:`24`})]),_:1}),U(Iv,null,{default:L(()=>[...r[10]||=[Pa(`Nexus`,-1)]]),_:1}),F(i).isLoggedIn?(V(),Ea(Kx,{key:0,modelValue:m.value,"onUpdate:modelValue":[r[1]||=e=>m.value=e,y],"prepend-inner-icon":`mdi-magnify`,"append-inner-icon":`mdi-close`,placeholder:`搜索服务器、脚本、凭据...`,variant:`solo-inverted`,density:`compact`,"hide-details":``,rounded:``,clearable:``,class:`mx-4`,style:{"max-width":`360px`},"onClick:appendInner":x,"onClick:clear":x},null,8,[`modelValue`])):Fa(``,!0),U($b,{modelValue:h.value,"onUpdate:modelValue":r[5]||=e=>h.value=e,"close-on-content-click":!1,activator:`parent`,location:`bottom`,"open-on-click":!1,"open-on-focus":!1},{default:L(()=>[_.value&&_.value.total>0?(V(),Ea(Zv,{key:0,width:`420`,elevation:`8`,rounded:`lg`,class:`mt-1`},{default:L(()=>[U(Ky,{density:`compact`,slim:``},{default:L(()=>[_.value.servers.length?(V(),Ta(B,{key:0},[U(Ny,null,{default:L(()=>[U(V_,{size:`14`,class:`mr-1`},{default:L(()=>[...r[11]||=[Pa(`mdi-server`,-1)]]),_:1}),Pa(` 服务器 (`+Se(_.value.servers.length)+`) `,1)]),_:1}),(V(!0),Ta(B,null,$r(_.value.servers,e=>(V(),Ea(jy,{key:`s-`+e.id,title:e.name,subtitle:e.domain,"prepend-icon":`mdi-server`,slim:``,link:``,onClick:t=>S(e.id)},null,8,[`title`,`subtitle`,`onClick`]))),128))],64)):Fa(``,!0),_.value.scripts.length?(V(),Ta(B,{key:1},[_.value.servers.length?(V(),Ea(ey,{key:0})):Fa(``,!0),U(Ny,null,{default:L(()=>[U(V_,{size:`14`,class:`mr-1`},{default:L(()=>[...r[12]||=[Pa(`mdi-code-braces`,-1)]]),_:1}),Pa(` 脚本 (`+Se(_.value.scripts.length)+`) `,1)]),_:1}),(V(!0),Ta(B,null,$r(_.value.scripts,e=>(V(),Ea(jy,{key:`sc-`+e.id,title:e.name,subtitle:e.category||`—`,"prepend-icon":`mdi-code-braces`,slim:``,link:``,onClick:r[2]||=e=>C()},null,8,[`title`,`subtitle`]))),128))],64)):Fa(``,!0),_.value.credentials.length?(V(),Ta(B,{key:2},[_.value.servers.length||_.value.scripts.length?(V(),Ea(ey,{key:0})):Fa(``,!0),U(Ny,null,{default:L(()=>[U(V_,{size:`14`,class:`mr-1`},{default:L(()=>[...r[13]||=[Pa(`mdi-key`,-1)]]),_:1}),Pa(` 凭据 (`+Se(_.value.credentials.length)+`) `,1)]),_:1}),(V(!0),Ta(B,null,$r(_.value.credentials,e=>(V(),Ea(jy,{key:`c-`+e.id,title:e.name,subtitle:`${e.db_type} @ ${e.host}`,"prepend-icon":`mdi-key`,slim:``,link:``,onClick:r[3]||=e=>w()},null,8,[`title`,`subtitle`]))),128))],64)):Fa(``,!0),_.value.schedules.length?(V(),Ta(B,{key:3},[_.value.servers.length||_.value.scripts.length||_.value.credentials.length?(V(),Ea(ey,{key:0})):Fa(``,!0),U(Ny,null,{default:L(()=>[U(V_,{size:`14`,class:`mr-1`},{default:L(()=>[...r[14]||=[Pa(`mdi-clock`,-1)]]),_:1}),Pa(` 调度 (`+Se(_.value.schedules.length)+`) `,1)]),_:1}),(V(!0),Ta(B,null,$r(_.value.schedules,e=>(V(),Ea(jy,{key:`sch-`+e.id,title:e.name,subtitle:e.cron_expr,"prepend-icon":`mdi-clock`,slim:``,link:``,onClick:r[4]||=e=>T()},null,8,[`title`,`subtitle`]))),128))],64)):Fa(``,!0)]),_:1})]),_:1})):m.value&&m.value.length>=2&&!g.value?(V(),Ea(Zv,{key:1,width:`420`,elevation:`8`,rounded:`lg`,class:`mt-1`},{default:L(()=>[U(Yv,{class:`text-center text-medium-emphasis py-6`},{default:L(()=>[U(V_,{size:`32`,class:`mb-2`},{default:L(()=>[...r[15]||=[Pa(`mdi-magnify-close`,-1)]]),_:1}),r[16]||=H(`div`,null,`未找到匹配结果`,-1)]),_:1})]),_:1})):Fa(``,!0)]),_:1},8,[`modelValue`])]),_:1})):Fa(``,!0),F(i).isLoggedIn?(V(),Ea(dx,{key:1,modelValue:c.value,"onUpdate:modelValue":r[8]||=e=>c.value=e,color:`surface`,width:`250`,class:`nexus-nav-drawer`,temporary:F(l)},{append:L(()=>[U(jy,{active:F(t).path===`/settings`,"prepend-icon":`mdi-cog-outline`,title:`设置`,"active-class":`text-primary`,class:`ma-2`,link:``,nav:``,slim:``,onClick:r[7]||=e=>F(n).push(`/settings`)},null,8,[`active`])]),default:L(()=>[U(Ky,{nav:``,slim:``},{default:L(()=>[U(Ny,null,{default:L(()=>[...r[17]||=[Pa(`运维`,-1)]]),_:1}),(V(),Ta(B,null,$r(d,e=>U(jy,{key:e.to,"prepend-icon":e.icon,title:e.title,to:e.to,active:F(t).path===e.to,"active-class":`text-primary`,link:``,nav:``,slim:``,onClick:t=>E(e.to)},null,8,[`prepend-icon`,`title`,`to`,`active`,`onClick`])),64))]),_:1}),U(ey,{class:`mx-3 my-1`}),U(Ky,{nav:``,slim:``},{default:L(()=>[U(Ny,null,{default:L(()=>[...r[18]||=[Pa(`系统`,-1)]]),_:1}),(V(),Ta(B,null,$r(f,e=>U(jy,{key:e.to,"prepend-icon":e.icon,title:e.title,to:e.to,active:F(t).path===e.to,"active-class":`text-primary`,link:``,nav:``,slim:``,onClick:t=>E(e.to)},null,8,[`prepend-icon`,`title`,`to`,`active`,`onClick`])),64))]),_:1})]),_:1},8,[`modelValue`,`temporary`])):Fa(``,!0),U(Jy,{class:k(u.value)},{default:L(()=>[(V(),Ea(a,{key:F(t).fullPath}))]),_:1},8,[`class`]),U(gx,{modelValue:p.show,"onUpdate:modelValue":r[9]||=e=>p.show=e,color:p.color,timeout:3e3,location:`top right`},{default:L(()=>[Pa(Se(p.text),1)]),_:1},8,[`modelValue`,`color`])]),_:1})}}}));sg(Jx),Jx.mount(`#app`);export{I_ as $,H as $n,Bu as $t,ky as A,Lc as An,N as Ar,Og as At,jv as B,gc as Bn,Se as Br,Fh as Bt,Pb as C,Kc as Cn,L as Cr,Rg as Ct,By as D,$s as Dn,ke as Dr,Fg as Dt,Ry as E,Qs as En,qt as Er,Pg as Et,Gv as F,ac as Fn,Qt as Fr,Xh as Ft,$_ as G,Ks as Gn,Ff as Gt,av as H,Xs as Hn,eh as Ht,Hv as I,zc as In,F as Ir,Zh as It,X_ as J,Ls as Jn,nf as Jt,Z_ as K,Ms as Kn,If as Kt,Bv as L,Rc as Ln,re as Lr,Wh as Lt,ey as M,dc as Mn,j as Mr,gg as Mt,Zv as N,Gc as Nn,I as Nr,rg as Nt,Ny as O,Sc as On,en as Or,jg as Ot,Yv as P,ic as Pn,tn as Pr,$h as Pt,z_ as Q,G as Qn,nd as Qt,Nv as R,lc as Rn,k as Rr,Yh as Rt,Nb as S,Bc as Sn,Un as Sr,Wg as St,Iy as T,Pc as Tn,M as Tr,Lg as Tt,tv as U,Ys as Un,Lf as Ut,ov as V,K as Vn,th as Vt,nv as W,Gs as Wn,Cf as Wt,V_ as X,B as Xn,ff as Xt,K_ as Y,Fs as Yn,df as Yt,R_ as Z,ir as Zn,$u as Zt,$b as _,Wc as _n,$r as _r,Zg as _t,Hx as a,_u as an,U as ar,C_ as at,qb as b,ec as bn,Cr as br,Yg as bt,Nx as c,X as cn,R as cr,b_ as ct,Ox as d,Y as dn,Vr as dr,l_ as dt,zu as en,Ea as er,O_ as et,Dx as f,J as fn,zr as fr,a_ as ft,vx as g,qc as gn,zn as gr,e_ as gt,bx as h,Nc as hn,V as hr,i_ as ht,Vx as i,yu as in,Pa as ir,S_ as it,Oy as j,tc as jn,P as jr,yg as jt,jy as k,mc as kn,zt as kr,Mg as kt,Mx as l,lu as ln,W as lr,h_ as lt,Cx as m,jc as mn,Hr as mr,r_ as mt,Gx as n,Z as nn,Ta as nr,A_ as nt,Bx as o,mu as on,Sr as or,w_ as ot,Tx as p,cl as pn,Rr as pr,o_ as pt,Q_ as q,Uo as qn,bf as qt,Ux as r,Cu as rn,ei as rr,k_ as rt,zx as s,pu as sn,co as sr,y_ as st,Kx as t,Q as tn,Fa as tr,D_ as tt,Px as u,ru as un,Tn as ur,c_ as ut,Zb as v,vc as vn,ti as vr,Xg as vt,Ky as w,hc as wn,Ln as wr,zg as wt,Fb as x,_c as xn,z as xr,Gg as xt,Jb as y,q as yn,Xr as yr,Jg as yt,Mv as z,sc as zn,O as zr,Ph as zt}; \ No newline at end of file diff --git a/web/app/assets/initMonaco-Cqv-KFLL.js b/web/app/assets/initMonaco-Cqv-KFLL.js new file mode 100644 index 00000000..d0cd9950 --- /dev/null +++ b/web/app/assets/initMonaco-Cqv-KFLL.js @@ -0,0 +1 @@ +import{n as e}from"./FilesPage-DHKaHWZF.js";export{e as initMonaco}; \ No newline at end of file diff --git a/web/app/assets/monaco.contribution-Cd7B4rFL.js b/web/app/assets/monaco.contribution-Cd7B4rFL.js new file mode 100644 index 00000000..6258a278 --- /dev/null +++ b/web/app/assets/monaco.contribution-Cd7B4rFL.js @@ -0,0 +1,2 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/tsMode-8TpA7NJ9.js","assets/editor.api2-CLbMfXfG.js","assets/editor-DX2BVZF3.css","assets/workers-DM14Vrt9.js"])))=>i.map(i=>d[i]); +import{g as e,h as t,n}from"./editor.api2-CLbMfXfG.js";import{Nt as r}from"./index-C_dP75wD.js";var i=`5.9.3`,a=e({JsxEmit:()=>s,ModuleKind:()=>o,ModuleResolutionKind:()=>u,NewLineKind:()=>c,ScriptTarget:()=>l,getJavaScriptWorker:()=>_,getTypeScriptWorker:()=>g,javascriptDefaults:()=>h,typescriptDefaults:()=>m,typescriptVersion:()=>f}),o=(e=>(e[e.None=0]=`None`,e[e.CommonJS=1]=`CommonJS`,e[e.AMD=2]=`AMD`,e[e.UMD=3]=`UMD`,e[e.System=4]=`System`,e[e.ES2015=5]=`ES2015`,e[e.ESNext=99]=`ESNext`,e))(o||{}),s=(e=>(e[e.None=0]=`None`,e[e.Preserve=1]=`Preserve`,e[e.React=2]=`React`,e[e.ReactNative=3]=`ReactNative`,e[e.ReactJSX=4]=`ReactJSX`,e[e.ReactJSXDev=5]=`ReactJSXDev`,e))(s||{}),c=(e=>(e[e.CarriageReturnLineFeed=0]=`CarriageReturnLineFeed`,e[e.LineFeed=1]=`LineFeed`,e))(c||{}),l=(e=>(e[e.ES3=0]=`ES3`,e[e.ES5=1]=`ES5`,e[e.ES2015=2]=`ES2015`,e[e.ES2016=3]=`ES2016`,e[e.ES2017=4]=`ES2017`,e[e.ES2018=5]=`ES2018`,e[e.ES2019=6]=`ES2019`,e[e.ES2020=7]=`ES2020`,e[e.ESNext=99]=`ESNext`,e[e.JSON=100]=`JSON`,e[e.Latest=99]=`Latest`,e))(l||{}),u=(e=>(e[e.Classic=1]=`Classic`,e[e.NodeJs=2]=`NodeJs`,e))(u||{}),d=class{constructor(e,t,r,i,a){this._onDidChange=new n,this._onDidExtraLibsChange=new n,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(e),this.setDiagnosticsOptions(t),this.setWorkerOptions(r),this.setInlayHintsOptions(i),this.setModeConfiguration(a),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get modeConfiguration(){return this._modeConfiguration}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(e,t){let n;if(n=t===void 0?`ts:extralib-${Math.random().toString(36).substring(2,15)}`:t,this._extraLibs[n]&&this._extraLibs[n].content===e)return{dispose:()=>{}};let r=1;return this._removedExtraLibs[n]&&(r=this._removedExtraLibs[n]+1),this._extraLibs[n]&&(r=this._extraLibs[n].version+1),this._extraLibs[n]={content:e,version:r},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let e=this._extraLibs[n];e&&e.version===r&&(delete this._extraLibs[n],this._removedExtraLibs[n]=r,this._fireOnDidExtraLibsChangeSoon())}}}setExtraLibs(e){for(let e in this._extraLibs)this._removedExtraLibs[e]=this._extraLibs[e].version;if(this._extraLibs=Object.create(null),e&&e.length>0)for(let t of e){let e=t.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`,n=t.content,r=1;this._removedExtraLibs[e]&&(r=this._removedExtraLibs[e]+1),this._extraLibs[e]={content:n,version:r}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){this._onDidExtraLibsChangeTimeout===-1&&(this._onDidExtraLibsChangeTimeout=window.setTimeout(()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)},0))}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(e){this._compilerOptions=e||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(e){this._workerOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(e){this._inlayHintsOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(e){}setEagerModelSync(e){this._eagerModelSync=e}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(void 0)}},f=i,p={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,diagnostics:!0,documentRangeFormattingEdits:!0,signatureHelp:!0,onTypeFormattingEdits:!0,codeActions:!0,inlayHints:!0},m=new d({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},p),h=new d({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},p),g=()=>v().then(e=>e.getTypeScriptWorker()),_=()=>v().then(e=>e.getJavaScriptWorker());function v(){return r(()=>import(`./tsMode-8TpA7NJ9.js`),__vite__mapDeps([0,1,2,3]))}t.onLanguage(`typescript`,()=>v().then(e=>e.setupTypeScript(m))),t.onLanguage(`javascript`,()=>v().then(e=>e.setupJavaScript(h)));export{m as n,a as t}; \ No newline at end of file diff --git a/web/app/assets/tsMode-8TpA7NJ9.js b/web/app/assets/tsMode-8TpA7NJ9.js new file mode 100644 index 00000000..c9d47f74 --- /dev/null +++ b/web/app/assets/tsMode-8TpA7NJ9.js @@ -0,0 +1,11 @@ +import{a as e,c as t,f as n,h as r,o as i,p as a}from"./editor.api2-CLbMfXfG.js";import{t as o}from"./workers-DM14Vrt9.js";import{n as s}from"./monaco.contribution-Cd7B4rFL.js";var c=class{constructor(e,t){this._modeId=e,this._defaults=t,this._worker=null,this._client=null,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker()),this._updateExtraLibsToken=0,this._extraLibsChangeListener=this._defaults.onDidExtraLibsChange(()=>this._updateExtraLibs())}dispose(){this._configChangeListener.dispose(),this._extraLibsChangeListener.dispose(),this._stopWorker()}_stopWorker(){this._worker&&=(this._worker.dispose(),null),this._client=null}async _updateExtraLibs(){if(!this._worker)return;let e=++this._updateExtraLibsToken,t=await this._worker.getProxy();this._updateExtraLibsToken===e&&t.updateExtraLibs(this._defaults.getExtraLibs())}_getClient(){return this._client||=(async()=>(this._worker=o({moduleId:`vs/language/typescript/tsWorker`,createWorker:()=>new Worker(new URL(`/app/assets/ts.worker-B6r0Skfj.js`,``+import.meta.url),{type:`module`}),label:this._modeId,keepIdleModels:!0,createData:{compilerOptions:this._defaults.getCompilerOptions(),extraLibs:this._defaults.getExtraLibs(),customWorkerPath:this._defaults.workerOptions.customWorkerPath,inlayHintsOptions:this._defaults.inlayHintsOptions}}),this._defaults.getEagerModelSync()?await this._worker.withSyncedResources(a.getModels().filter(e=>e.getLanguageId()===this._modeId).map(e=>e.uri)):await this._worker.getProxy()))(),this._client}async getLanguageServiceWorker(...e){let t=await this._getClient();return this._worker&&await this._worker.withSyncedResources(e),t}},l={};l[`lib.d.ts`]=!0,l[`lib.decorators.d.ts`]=!0,l[`lib.decorators.legacy.d.ts`]=!0,l[`lib.dom.asynciterable.d.ts`]=!0,l[`lib.dom.d.ts`]=!0,l[`lib.dom.iterable.d.ts`]=!0,l[`lib.es2015.collection.d.ts`]=!0,l[`lib.es2015.core.d.ts`]=!0,l[`lib.es2015.d.ts`]=!0,l[`lib.es2015.generator.d.ts`]=!0,l[`lib.es2015.iterable.d.ts`]=!0,l[`lib.es2015.promise.d.ts`]=!0,l[`lib.es2015.proxy.d.ts`]=!0,l[`lib.es2015.reflect.d.ts`]=!0,l[`lib.es2015.symbol.d.ts`]=!0,l[`lib.es2015.symbol.wellknown.d.ts`]=!0,l[`lib.es2016.array.include.d.ts`]=!0,l[`lib.es2016.d.ts`]=!0,l[`lib.es2016.full.d.ts`]=!0,l[`lib.es2016.intl.d.ts`]=!0,l[`lib.es2017.arraybuffer.d.ts`]=!0,l[`lib.es2017.d.ts`]=!0,l[`lib.es2017.date.d.ts`]=!0,l[`lib.es2017.full.d.ts`]=!0,l[`lib.es2017.intl.d.ts`]=!0,l[`lib.es2017.object.d.ts`]=!0,l[`lib.es2017.sharedmemory.d.ts`]=!0,l[`lib.es2017.string.d.ts`]=!0,l[`lib.es2017.typedarrays.d.ts`]=!0,l[`lib.es2018.asyncgenerator.d.ts`]=!0,l[`lib.es2018.asynciterable.d.ts`]=!0,l[`lib.es2018.d.ts`]=!0,l[`lib.es2018.full.d.ts`]=!0,l[`lib.es2018.intl.d.ts`]=!0,l[`lib.es2018.promise.d.ts`]=!0,l[`lib.es2018.regexp.d.ts`]=!0,l[`lib.es2019.array.d.ts`]=!0,l[`lib.es2019.d.ts`]=!0,l[`lib.es2019.full.d.ts`]=!0,l[`lib.es2019.intl.d.ts`]=!0,l[`lib.es2019.object.d.ts`]=!0,l[`lib.es2019.string.d.ts`]=!0,l[`lib.es2019.symbol.d.ts`]=!0,l[`lib.es2020.bigint.d.ts`]=!0,l[`lib.es2020.d.ts`]=!0,l[`lib.es2020.date.d.ts`]=!0,l[`lib.es2020.full.d.ts`]=!0,l[`lib.es2020.intl.d.ts`]=!0,l[`lib.es2020.number.d.ts`]=!0,l[`lib.es2020.promise.d.ts`]=!0,l[`lib.es2020.sharedmemory.d.ts`]=!0,l[`lib.es2020.string.d.ts`]=!0,l[`lib.es2020.symbol.wellknown.d.ts`]=!0,l[`lib.es2021.d.ts`]=!0,l[`lib.es2021.full.d.ts`]=!0,l[`lib.es2021.intl.d.ts`]=!0,l[`lib.es2021.promise.d.ts`]=!0,l[`lib.es2021.string.d.ts`]=!0,l[`lib.es2021.weakref.d.ts`]=!0,l[`lib.es2022.array.d.ts`]=!0,l[`lib.es2022.d.ts`]=!0,l[`lib.es2022.error.d.ts`]=!0,l[`lib.es2022.full.d.ts`]=!0,l[`lib.es2022.intl.d.ts`]=!0,l[`lib.es2022.object.d.ts`]=!0,l[`lib.es2022.regexp.d.ts`]=!0,l[`lib.es2022.string.d.ts`]=!0,l[`lib.es2023.array.d.ts`]=!0,l[`lib.es2023.collection.d.ts`]=!0,l[`lib.es2023.d.ts`]=!0,l[`lib.es2023.full.d.ts`]=!0,l[`lib.es2023.intl.d.ts`]=!0,l[`lib.es2024.arraybuffer.d.ts`]=!0,l[`lib.es2024.collection.d.ts`]=!0,l[`lib.es2024.d.ts`]=!0,l[`lib.es2024.full.d.ts`]=!0,l[`lib.es2024.object.d.ts`]=!0,l[`lib.es2024.promise.d.ts`]=!0,l[`lib.es2024.regexp.d.ts`]=!0,l[`lib.es2024.sharedmemory.d.ts`]=!0,l[`lib.es2024.string.d.ts`]=!0,l[`lib.es5.d.ts`]=!0,l[`lib.es6.d.ts`]=!0,l[`lib.esnext.array.d.ts`]=!0,l[`lib.esnext.collection.d.ts`]=!0,l[`lib.esnext.d.ts`]=!0,l[`lib.esnext.decorators.d.ts`]=!0,l[`lib.esnext.disposable.d.ts`]=!0,l[`lib.esnext.error.d.ts`]=!0,l[`lib.esnext.float16.d.ts`]=!0,l[`lib.esnext.full.d.ts`]=!0,l[`lib.esnext.intl.d.ts`]=!0,l[`lib.esnext.iterator.d.ts`]=!0,l[`lib.esnext.promise.d.ts`]=!0,l[`lib.esnext.sharedmemory.d.ts`]=!0,l[`lib.scripthost.d.ts`]=!0,l[`lib.webworker.asynciterable.d.ts`]=!0,l[`lib.webworker.d.ts`]=!0,l[`lib.webworker.importscripts.d.ts`]=!0,l[`lib.webworker.iterable.d.ts`]=!0;function u(e,t,n=0){if(typeof e==`string`)return e;if(e===void 0)return``;let r=``;if(n){r+=t;for(let e=0;ee.text).join(``):``}var f=class{constructor(e){this._worker=e}_textSpanToRange(e,t){let n=e.getPositionAt(t.start),r=e.getPositionAt(t.start+t.length),{lineNumber:i,column:a}=n,{lineNumber:o,column:s}=r;return{startLineNumber:i,startColumn:a,endLineNumber:o,endColumn:s}}},p=class{constructor(e){this._worker=e,this._libFiles={},this._hasFetchedLibFiles=!1,this._fetchLibFilesPromise=null}isLibFile(e){return e&&e.path.indexOf(`/lib.`)===0?!!l[e.path.slice(1)]:!1}getOrCreateModel(e){let t=n.parse(e),r=a.getModel(t);if(r)return r;if(this.isLibFile(t)&&this._hasFetchedLibFiles)return a.createModel(this._libFiles[t.path.slice(1)],`typescript`,t);let i=s.getExtraLibs()[e];return i?a.createModel(i.content,`typescript`,t):null}_containsLibFile(e){for(let t of e)if(this.isLibFile(t))return!0;return!1}async fetchLibFilesIfNecessary(e){this._containsLibFile(e)&&await this._fetchLibFiles()}_fetchLibFiles(){return this._fetchLibFilesPromise||=this._worker().then(e=>e.getLibFiles()).then(e=>{this._hasFetchedLibFiles=!0,this._libFiles=e}),this._fetchLibFilesPromise}},m=class extends f{constructor(e,t,n,r){super(r),this._libFiles=e,this._defaults=t,this._selector=n,this._disposables=[],this._listener=Object.create(null);let i=e=>{if(e.getLanguageId()!==n)return;let t=()=>{let{onlyVisible:t}=this._defaults.getDiagnosticsOptions();t?e.isAttachedToEditor()&&this._doValidate(e):this._doValidate(e)},r,i=e.onDidChangeContent(()=>{clearTimeout(r),r=window.setTimeout(t,500)}),o=e.onDidChangeAttached(()=>{let{onlyVisible:n}=this._defaults.getDiagnosticsOptions();n&&(e.isAttachedToEditor()?t():a.setModelMarkers(e,this._selector,[]))});this._listener[e.uri.toString()]={dispose(){i.dispose(),o.dispose(),clearTimeout(r)}},t()},o=e=>{a.setModelMarkers(e,this._selector,[]);let t=e.uri.toString();this._listener[t]&&(this._listener[t].dispose(),delete this._listener[t])};this._disposables.push(a.onDidCreateModel(e=>i(e))),this._disposables.push(a.onWillDisposeModel(o)),this._disposables.push(a.onDidChangeModelLanguage(e=>{o(e.model),i(e.model)})),this._disposables.push({dispose(){for(let e of a.getModels())o(e)}});let s=()=>{for(let e of a.getModels())o(e),i(e)};this._disposables.push(this._defaults.onDidChange(s)),this._disposables.push(this._defaults.onDidExtraLibsChange(s)),a.getModels().forEach(e=>i(e))}dispose(){this._disposables.forEach(e=>e&&e.dispose()),this._disposables=[]}async _doValidate(e){let t=await this._worker(e.uri);if(e.isDisposed())return;let r=[],{noSyntaxValidation:i,noSemanticValidation:o,noSuggestionDiagnostics:s}=this._defaults.getDiagnosticsOptions();i||r.push(t.getSyntacticDiagnostics(e.uri.toString())),o||r.push(t.getSemanticDiagnostics(e.uri.toString())),s||r.push(t.getSuggestionDiagnostics(e.uri.toString()));let c=await Promise.all(r);if(!c||e.isDisposed())return;let l=c.reduce((e,t)=>t.concat(e),[]).filter(e=>(this._defaults.getDiagnosticsOptions().diagnosticCodesToIgnore||[]).indexOf(e.code)===-1),u=l.map(e=>e.relatedInformation||[]).reduce((e,t)=>t.concat(e),[]).map(e=>e.file?n.parse(e.file.fileName):null);await this._libFiles.fetchLibFilesIfNecessary(u),!e.isDisposed()&&a.setModelMarkers(e,this._selector,l.map(t=>this._convertDiagnostics(e,t)))}_convertDiagnostics(e,t){let n=t.start||0,r=t.length||1,{lineNumber:a,column:o}=e.getPositionAt(n),{lineNumber:s,column:c}=e.getPositionAt(n+r),l=[];return t.reportsUnnecessary&&l.push(i.Unnecessary),t.reportsDeprecated&&l.push(i.Deprecated),{severity:this._tsDiagnosticCategoryToMarkerSeverity(t.category),startLineNumber:a,startColumn:o,endLineNumber:s,endColumn:c,message:u(t.messageText,` +`),code:t.code.toString(),tags:l,relatedInformation:this._convertRelatedInformation(e,t.relatedInformation)}}_convertRelatedInformation(e,t){if(!t)return[];let n=[];return t.forEach(t=>{let r=e;if(t.file&&(r=this._libFiles.getOrCreateModel(t.file.fileName)),!r)return;let i=t.start||0,a=t.length||1,{lineNumber:o,column:s}=r.getPositionAt(i),{lineNumber:c,column:l}=r.getPositionAt(i+a);n.push({resource:r.uri,startLineNumber:o,startColumn:s,endLineNumber:c,endColumn:l,message:u(t.messageText,` +`)})}),n}_tsDiagnosticCategoryToMarkerSeverity(t){switch(t){case 1:return e.Error;case 3:return e.Info;case 0:return e.Warning;case 2:return e.Hint}return e.Info}},h=class e extends f{get triggerCharacters(){return[`.`]}async provideCompletionItems(n,i,a,o){let s=n.getWordUntilPosition(i),c=new t(i.lineNumber,s.startColumn,i.lineNumber,s.endColumn),l=n.uri,u=n.getOffsetAt(i),d=await this._worker(l);if(n.isDisposed())return;let f=await d.getCompletionsAtPosition(l.toString(),u);if(!(!f||n.isDisposed()))return{suggestions:f.entries.map(a=>{let o=c;if(a.replacementSpan){let e=n.getPositionAt(a.replacementSpan.start),r=n.getPositionAt(a.replacementSpan.start+a.replacementSpan.length);o=new t(e.lineNumber,e.column,r.lineNumber,r.column)}let s=[];return a.kindModifiers!==void 0&&a.kindModifiers.indexOf(`deprecated`)!==-1&&s.push(r.CompletionItemTag.Deprecated),{uri:l,position:i,offset:u,range:o,label:a.name,insertText:a.name,sortText:a.sortText,kind:e.convertKind(a.kind),tags:s}})}}async resolveCompletionItem(t,n){let r=t,i=r.uri,a=r.position,o=r.offset,s=await(await this._worker(i)).getCompletionEntryDetails(i.toString(),o,r.label);return s?{uri:i,position:a,label:s.name,kind:e.convertKind(s.kind),detail:d(s.displayParts),documentation:{value:e.createDocumentationString(s)}}:r}static convertKind(e){switch(e){case C.primitiveType:case C.keyword:return r.CompletionItemKind.Keyword;case C.variable:case C.localVariable:return r.CompletionItemKind.Variable;case C.memberVariable:case C.memberGetAccessor:case C.memberSetAccessor:return r.CompletionItemKind.Field;case C.function:case C.memberFunction:case C.constructSignature:case C.callSignature:case C.indexSignature:return r.CompletionItemKind.Function;case C.enum:return r.CompletionItemKind.Enum;case C.module:return r.CompletionItemKind.Module;case C.class:return r.CompletionItemKind.Class;case C.interface:return r.CompletionItemKind.Interface;case C.warning:return r.CompletionItemKind.File}return r.CompletionItemKind.Property}static createDocumentationString(e){let t=d(e.documentation);if(e.tags)for(let n of e.tags)t+=` + +${g(n)}`;return t}};function g(e){let t=`*@${e.name}*`;if(e.name===`param`&&e.text){let[n,...r]=e.text;t+=`\`${n.text}\``,r.length>0&&(t+=` \u2014 ${r.map(e=>e.text).join(` `)}`)}else Array.isArray(e.text)?t+=` \u2014 ${e.text.map(e=>e.text).join(` `)}`:e.text&&(t+=` \u2014 ${e.text}`);return t}var _=class e extends f{constructor(){super(...arguments),this.signatureHelpTriggerCharacters=[`(`,`,`]}static _toSignatureHelpTriggerReason(e){switch(e.triggerKind){case r.SignatureHelpTriggerKind.TriggerCharacter:return e.triggerCharacter?e.isRetrigger?{kind:`retrigger`,triggerCharacter:e.triggerCharacter}:{kind:`characterTyped`,triggerCharacter:e.triggerCharacter}:{kind:`invoked`};case r.SignatureHelpTriggerKind.ContentChange:return e.isRetrigger?{kind:`retrigger`}:{kind:`invoked`};case r.SignatureHelpTriggerKind.Invoke:default:return{kind:`invoked`}}}async provideSignatureHelp(t,n,r,i){let a=t.uri,o=t.getOffsetAt(n),s=await this._worker(a);if(t.isDisposed())return;let c=await s.getSignatureHelpItems(a.toString(),o,{triggerReason:e._toSignatureHelpTriggerReason(i)});if(!c||t.isDisposed())return;let l={activeSignature:c.selectedItemIndex,activeParameter:c.argumentIndex,signatures:[]};return c.items.forEach(e=>{let t={label:``,parameters:[]};t.documentation={value:d(e.documentation)},t.label+=d(e.prefixDisplayParts),e.parameters.forEach((n,r,i)=>{let a=d(n.displayParts),o={label:a,documentation:{value:d(n.documentation)}};t.label+=a,t.parameters.push(o),rg(e)).join(` + +`):``,l=d(o.displayParts);return{range:this._textSpanToRange(e,o.textSpan),contents:[{value:"```typescript\n"+l+"\n```\n"},{value:s+(c?` + +`+c:``)}]}}},y=class extends f{async provideDocumentHighlights(e,t,n){let i=e.uri,a=e.getOffsetAt(t),o=await this._worker(i);if(e.isDisposed())return;let s=await o.getDocumentHighlights(i.toString(),a,[i.toString()]);if(!(!s||e.isDisposed()))return s.flatMap(t=>t.highlightSpans.map(t=>({range:this._textSpanToRange(e,t.textSpan),kind:t.kind===`writtenReference`?r.DocumentHighlightKind.Write:r.DocumentHighlightKind.Text})))}},b=class extends f{constructor(e,t){super(t),this._libFiles=e}async provideDefinition(e,t,r){let i=e.uri,a=e.getOffsetAt(t),o=await this._worker(i);if(e.isDisposed())return;let s=await o.getDefinitionAtPosition(i.toString(),a);if(!s||e.isDisposed()||(await this._libFiles.fetchLibFilesIfNecessary(s.map(e=>n.parse(e.fileName))),e.isDisposed()))return;let c=[];for(let e of s){let t=this._libFiles.getOrCreateModel(e.fileName);t&&c.push({uri:t.uri,range:this._textSpanToRange(t,e.textSpan)})}return c}},x=class extends f{constructor(e,t){super(t),this._libFiles=e}async provideReferences(e,t,r,i){let a=e.uri,o=e.getOffsetAt(t),s=await this._worker(a);if(e.isDisposed())return;let c=await s.getReferencesAtPosition(a.toString(),o);if(!c||e.isDisposed()||(await this._libFiles.fetchLibFilesIfNecessary(c.map(e=>n.parse(e.fileName))),e.isDisposed()))return;let l=[];for(let e of c){let t=this._libFiles.getOrCreateModel(e.fileName);t&&l.push({uri:t.uri,range:this._textSpanToRange(t,e.textSpan)})}return l}},S=class extends f{async provideDocumentSymbols(e,t){let n=e.uri,i=await this._worker(n);if(e.isDisposed())return;let a=await i.getNavigationTree(n.toString());if(!a||e.isDisposed())return;let o=(t,n)=>({name:t.text,detail:``,kind:w[t.kind]||r.SymbolKind.Variable,range:this._textSpanToRange(e,t.spans[0]),selectionRange:this._textSpanToRange(e,t.spans[0]),tags:[],children:t.childItems?.map(e=>o(e,t.text)),containerName:n});return a.childItems?a.childItems.map(e=>o(e)):[]}},C=class{};C.unknown=``,C.keyword=`keyword`,C.script=`script`,C.module=`module`,C.class=`class`,C.interface=`interface`,C.type=`type`,C.enum=`enum`,C.variable=`var`,C.localVariable=`local var`,C.function=`function`,C.localFunction=`local function`,C.memberFunction=`method`,C.memberGetAccessor=`getter`,C.memberSetAccessor=`setter`,C.memberVariable=`property`,C.constructorImplementation=`constructor`,C.callSignature=`call`,C.indexSignature=`index`,C.constructSignature=`construct`,C.parameter=`parameter`,C.typeParameter=`type parameter`,C.primitiveType=`primitive type`,C.label=`label`,C.alias=`alias`,C.const=`const`,C.let=`let`,C.warning=`warning`;var w=Object.create(null);w[C.module]=r.SymbolKind.Module,w[C.class]=r.SymbolKind.Class,w[C.enum]=r.SymbolKind.Enum,w[C.interface]=r.SymbolKind.Interface,w[C.memberFunction]=r.SymbolKind.Method,w[C.memberVariable]=r.SymbolKind.Property,w[C.memberGetAccessor]=r.SymbolKind.Property,w[C.memberSetAccessor]=r.SymbolKind.Property,w[C.variable]=r.SymbolKind.Variable,w[C.const]=r.SymbolKind.Variable,w[C.localVariable]=r.SymbolKind.Variable,w[C.variable]=r.SymbolKind.Variable,w[C.function]=r.SymbolKind.Function,w[C.localFunction]=r.SymbolKind.Function;var T=class extends f{static _convertOptions(e){return{ConvertTabsToSpaces:e.insertSpaces,TabSize:e.tabSize,IndentSize:e.tabSize,IndentStyle:2,NewLineCharacter:` +`,InsertSpaceAfterCommaDelimiter:!0,InsertSpaceAfterSemicolonInForStatements:!0,InsertSpaceBeforeAndAfterBinaryOperators:!0,InsertSpaceAfterKeywordsInControlFlowStatements:!0,InsertSpaceAfterFunctionKeywordForAnonymousFunctions:!0,InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis:!1,InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets:!1,InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces:!1,PlaceOpenBraceOnNewLineForControlBlocks:!1,PlaceOpenBraceOnNewLineForFunctions:!1}}_convertTextChanges(e,t){return{text:t.newText,range:this._textSpanToRange(e,t.span)}}},E=class extends T{constructor(){super(...arguments),this.canFormatMultipleRanges=!1}async provideDocumentRangeFormattingEdits(e,t,n,r){let i=e.uri,a=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),o=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),s=await this._worker(i);if(e.isDisposed())return;let c=await s.getFormattingEditsForRange(i.toString(),a,o,T._convertOptions(n));if(!(!c||e.isDisposed()))return c.map(t=>this._convertTextChanges(e,t))}},D=class extends T{get autoFormatTriggerCharacters(){return[`;`,`}`,` +`]}async provideOnTypeFormattingEdits(e,t,n,r,i){let a=e.uri,o=e.getOffsetAt(t),s=await this._worker(a);if(e.isDisposed())return;let c=await s.getFormattingEditsAfterKeystroke(a.toString(),o,n,T._convertOptions(r));if(!(!c||e.isDisposed()))return c.map(t=>this._convertTextChanges(e,t))}},O=class extends T{async provideCodeActions(e,t,n,r){let i=e.uri,a=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),o=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),s=T._convertOptions(e.getOptions()),c=n.markers.filter(e=>e.code).map(e=>e.code).map(Number),l=await this._worker(i);if(e.isDisposed())return;let u=await l.getCodeFixesAtPosition(i.toString(),a,o,c,s);return!u||e.isDisposed()?{actions:[],dispose:()=>{}}:{actions:u.filter(e=>e.changes.filter(e=>e.isNewFile).length===0).map(t=>this._tsCodeFixActionToMonacoCodeAction(e,n,t)),dispose:()=>{}}}_tsCodeFixActionToMonacoCodeAction(e,t,n){let r=[];for(let t of n.changes)for(let n of t.textChanges)r.push({resource:e.uri,versionId:void 0,textEdit:{range:this._textSpanToRange(e,n.span),text:n.newText}});return{title:n.description,edit:{edits:r},diagnostics:t.markers,kind:`quickfix`}}},k=class extends f{constructor(e,t){super(t),this._libFiles=e}async provideRenameEdits(e,t,n,r){let i=e.uri,a=i.toString(),o=e.getOffsetAt(t),s=await this._worker(i);if(e.isDisposed())return;let c=await s.getRenameInfo(a,o,{allowRenameOfImportPath:!1});if(c.canRename===!1)return{edits:[],rejectReason:c.localizedErrorMessage};if(c.fileToRename!==void 0)throw Error(`Renaming files is not supported.`);let l=await s.findRenameLocations(a,o,!1,!1,!1);if(!l||e.isDisposed())return;let u=[];for(let e of l){let t=this._libFiles.getOrCreateModel(e.fileName);if(t)u.push({resource:t.uri,versionId:void 0,textEdit:{range:this._textSpanToRange(t,e.textSpan),text:n}});else throw Error(`Unknown file ${e.fileName}.`)}return{edits:u}}},A=class extends f{async provideInlayHints(e,t,n){let r=e.uri,i=r.toString(),a=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),o=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),s=await this._worker(r);return e.isDisposed()?null:{hints:(await s.provideInlayHints(i,a,o)).map(t=>({...t,label:t.text,position:e.getPositionAt(t.position),kind:this._convertHintKind(t.kind)})),dispose:()=>{}}}_convertHintKind(e){switch(e){case`Parameter`:return r.InlayHintKind.Parameter;case`Type`:return r.InlayHintKind.Type;default:return r.InlayHintKind.Type}}},j,M;function N(e){M=L(e,`typescript`)}function P(e){j=L(e,`javascript`)}function F(){return new Promise((e,t)=>{if(!j)return t(`JavaScript not registered!`);e(j)})}function I(){return new Promise((e,t)=>{if(!M)return t(`TypeScript not registered!`);e(M)})}function L(e,t){let n=[],i=new c(t,e),a=(...e)=>i.getLanguageServiceWorker(...e),o=new p(a);function s(){let{modeConfiguration:i}=e;R(n),i.completionItems&&n.push(r.registerCompletionItemProvider(t,new h(a))),i.signatureHelp&&n.push(r.registerSignatureHelpProvider(t,new _(a))),i.hovers&&n.push(r.registerHoverProvider(t,new v(a))),i.documentHighlights&&n.push(r.registerDocumentHighlightProvider(t,new y(a))),i.definitions&&n.push(r.registerDefinitionProvider(t,new b(o,a))),i.references&&n.push(r.registerReferenceProvider(t,new x(o,a))),i.documentSymbols&&n.push(r.registerDocumentSymbolProvider(t,new S(a))),i.rename&&n.push(r.registerRenameProvider(t,new k(o,a))),i.documentRangeFormattingEdits&&n.push(r.registerDocumentRangeFormattingEditProvider(t,new E(a))),i.onTypeFormattingEdits&&n.push(r.registerOnTypeFormattingEditProvider(t,new D(a))),i.codeActions&&n.push(r.registerCodeActionProvider(t,new O(a))),i.inlayHints&&n.push(r.registerInlayHintsProvider(t,new A(a))),i.diagnostics&&n.push(new m(o,e,t,a))}return s(),a}function R(e){for(;e.length;)e.pop().dispose()}export{f as Adapter,O as CodeActionAdaptor,b as DefinitionAdapter,m as DiagnosticsAdapter,y as DocumentHighlightAdapter,E as FormatAdapter,T as FormatHelper,D as FormatOnTypeAdapter,A as InlayHintsAdapter,C as Kind,p as LibFiles,S as OutlineAdapter,v as QuickInfoAdapter,x as ReferenceAdapter,k as RenameAdapter,_ as SignatureHelpAdapter,h as SuggestAdapter,c as WorkerManager,u as flattenDiagnosticMessageText,F as getJavaScriptWorker,I as getTypeScriptWorker,P as setupJavaScript,N as setupTypeScript}; \ No newline at end of file diff --git a/web/app/assets/useServerList-DS-TV_aM.js b/web/app/assets/useServerList-DS-TV_aM.js new file mode 100644 index 00000000..6a3b8923 --- /dev/null +++ b/web/app/assets/useServerList-DS-TV_aM.js @@ -0,0 +1 @@ +import{Ar as e,Rt as t}from"./index-C_dP75wD.js";import{o as n}from"./VContainer-DGQjsCTw.js";import{t as r}from"./apiError-BgZlS-MZ.js";function i(){let i=e([]),a=e(!1),o=n();async function s(e){a.value=!0;try{i.value=(await t.getList(`/servers/`,{per_page:e?.perPage??200})).items}catch(e){i.value=[],o(r(e,`加载服务器列表失败`),`error`)}finally{a.value=!1}}return{servers:i,loading:a,loadServers:s}}export{i as t}; \ No newline at end of file diff --git a/web/app/assets/useTerminalQuickCommands-CK2x9Goo.js b/web/app/assets/useTerminalQuickCommands-CK2x9Goo.js new file mode 100644 index 00000000..be21ef92 --- /dev/null +++ b/web/app/assets/useTerminalQuickCommands-CK2x9Goo.js @@ -0,0 +1,2 @@ +import{Ar as e,Qn as t,Rr as n,Rt as r,er as i,hr as a,nr as o,or as s,tr as c,ur as l,yr as u}from"./index-C_dP75wD.js";import{t as d}from"./_plugin-vue_export-helper-BDNMzG2s.js";var f=new Set(`if.then.else.elif.fi.for.while.do.done.case.esac.in.function.return.break.continue.select.until.cd.ls.grep.egrep.fgrep.find.cat.chmod.chown.docker.podman.kubectl.apt.apt-get.yum.dnf.apk.pip.pip3.npm.npx.ssh.scp.rsync.curl.wget.tar.gzip.gunzip.kill.ps.top.htop.nano.vim.vi.journalctl.systemctl.service.supervisorctl.crontab.nginx.df.du.free.mount.uname.hostname.whoami.id.pwd.head.tail.wc.sort.uniq.awk.sed.cut.tr.xargs.tee.netstat.ss.ip.ping.dig.git.make.nohup.timeout.watch`.split(`.`)),p=new Set([`echo`,`printf`,`test`,`read`,`pushd`,`popd`,`exit`,`set`,`unset`,`export`,`source`,`alias`,`type`,`command`,`hash`,`help`,`history`]);function m(e){return e===`sudo`?`sudo`:f.has(e)?`keyword`:p.has(e)?`builtin`:/^[/~]/.test(e)||e.startsWith(`./`)||e.startsWith(`../`)?`path`:/^\d+(?:\.\d+)?$/.test(e)?`number`:`text`}function h(e){let t=[],n=0;for(;n`||r===`<`){let r=n;e[r]===`>`&&e[r+1]===`>`||e[r]===`<`&&e[r+1]===`<`?r+=2:r+=1,e[r]===`&`&&r++,t.push({type:`redirect`,value:e.slice(n,r)}),n=r;continue}if(/\s/.test(r)){let r=n;for(;r]/.test(e[i]);)i++;let a=e.slice(n,i);t.push({type:m(a),value:a}),n=i}return t}function g(e){return e.replace(/&/g,`&`).replace(//g,`>`)}var _={keyword:`sh-keyword`,builtin:`sh-builtin`,sudo:`sh-sudo`,pipe:`sh-pipe`,operator:`sh-operator`,redirect:`sh-redirect`,string:`sh-string`,flag:`sh-flag`,variable:`sh-variable`,backtick:`sh-backtick`,comment:`sh-comment`,number:`sh-number`,path:`sh-path`,text:`sh-text`};function v(e){return e?h(e).map(e=>`${g(e.value)}`).join(``):``}var y=[`innerHTML`],b=d(s({__name:`ShellHighlightField`,props:{modelValue:{},placeholder:{default:``},disabled:{type:Boolean,default:!1},multiline:{type:Boolean,default:!1},rows:{default:3},size:{default:`default`}},emits:[`update:modelValue`,`keydown`],setup(r,{expose:s,emit:d}){let f=e(null),p=r,m=d,h=t(()=>v(p.modelValue));function g(e){let t=e.target;m(`update:modelValue`,t.value)}function _(e){m(`keydown`,e)}function b(){return f.value}function x(){f.value?.focus()}function S(){let e=f.value;return e?e.value.substring(e.selectionStart??0,e.selectionEnd??0):``}function C(){let e=f.value;e&&(e.focus(),e.select())}async function w(e){let t=f.value;if(!t)return;let n=t.selectionStart??t.value.length,r=t.selectionEnd??n;m(`update:modelValue`,t.value.slice(0,n)+e+t.value.slice(r)),await l(),t.focus();let i=n+e.length;t.setSelectionRange(i,i)}return s({getInputEl:b,focusInput:x,getSelectionText:S,selectAllInput:C,insertAtSelection:w}),(e,t)=>(a(),o(`div`,{class:n([`sh-field position-relative`,{"sh-field--disabled":r.disabled,"sh-field--empty":!r.modelValue,"sh-field--large":r.size===`large`}])},[r.modelValue?(a(),o(`div`,{key:0,class:n([`sh-field__highlight font-mono`,r.multiline?`sh-field__highlight--multi`:`sh-field__highlight--single`]),"aria-hidden":`true`,innerHTML:h.value},null,10,y)):c(``,!0),(a(),i(u(r.multiline?`textarea`:`input`),{ref_key:`inputRef`,ref:f,value:r.modelValue,placeholder:r.placeholder,disabled:r.disabled,rows:r.multiline?r.rows:void 0,class:n([`sh-field__input font-mono`,r.multiline?`sh-field__input--multi`:`sh-field__input--single`]),spellcheck:`false`,autocomplete:`off`,onInput:g,onKeydown:_},null,40,[`value`,`placeholder`,`disabled`,`rows`,`class`]))],2))}}),[[`__scopeId`,`data-v-b73e3452`]]);function x(e){return[...e].sort((e,t)=>e.is_builtin===t.is_builtin?e.sort_order===t.sort_order?e.id-t.id:e.sort_order-t.sort_order:e.is_builtin?1:-1)}function S(){let t=e([]),n=e(!1);async function i(){n.value=!0;try{t.value=x(await r.get(`/terminal/quick-commands`)||[])}catch{throw t.value=[],Error(`加载快捷命令失败`)}finally{n.value=!1}}async function a(e,t){await r.post(`/terminal/quick-commands`,{name:e.trim(),cmd:t.trim()}),await i()}async function o(e,t,n){await r.put(`/terminal/quick-commands/${e}`,{name:t.trim(),cmd:n.trim()}),await i()}async function s(e){await r.delete(`/terminal/quick-commands/${e}`),await i()}async function c(e){t.value=x((await r.put(`/terminal/quick-commands/reorder`,{ids:e})).items||[])}return{commands:t,loading:n,load:i,create:a,update:o,remove:s,reorder:c,customCommands:()=>t.value.filter(e=>!e.is_builtin),builtinCommands:()=>t.value.filter(e=>e.is_builtin)}}export{S as n,b as r,x as t}; \ No newline at end of file diff --git a/web/app/index.html b/web/app/index.html index d2d00a28..b09af05a 100644 --- a/web/app/index.html +++ b/web/app/index.html @@ -5,7 +5,7 @@ Nexus - + diff --git a/web/app/install.html b/web/app/install.html index e761b80c..70a45f02 100644 --- a/web/app/install.html +++ b/web/app/install.html @@ -84,12 +84,18 @@

📋 安装前准备

-
    +
    • Python 3.12+ (FastAPI + uvicorn)
    • MySQL 8.0+ (需提前创建数据库和用户)
    • Redis 6+ (心跳缓冲和实时数据)
    • Web 目录和根目录可写权限
    +
      +
    • 1Panel 已安装,应用商店已部署 MySQL + Redis1panel-network
    • +
    • Nexus Docker 容器已运行(nx install / Compose)
    • +
    • 1Panel 数据库:库 nexus、用户 nexus
    • +
    • 进程守护由 Docker restart + healthcheck 负责(无需 Supervisor)
    • +
upstream nexus_api {
+  server 127.0.0.1:;
+  keepalive 32;
+}
+location /api/ {
+  proxy_pass http://nexus_api;
+  proxy_http_version 1.1;
+  proxy_set_header Host $host;
+  proxy_set_header X-Real-IP $remote_addr;
+  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+  proxy_set_header X-Forwarded-Proto $scheme;
+}
+location /ws/ {
+  proxy_pass http://nexus_api;
+  proxy_http_version 1.1;
+  proxy_set_header Upgrade $http_upgrade;
+  proxy_set_header Connection "upgrade";
+  proxy_read_timeout 3600s;
+}
+location /app/ {
+  proxy_pass http://nexus_api;
+  proxy_set_header Host $host;
+}
+location /health {
+  proxy_pass http://nexus_api;
+}
+

SSL: 1Panel → 网站 → SSL → Let's Encrypt → 强制 HTTPS

+ + + +
+
+ 3 + 应用内自检(Layer 2) +
+
+

完成本向导后,Nexus 正常模式自动运行 self_monitor(每 30s 检查 Redis/MySQL/WebSocket)。

+

验收: curl -s http://127.0.0.1:/healthok

+
+
+ +
+
+ 4 + 日常运维 +
+
+

nx update — 拉代码、重建镜像、同步安装向导

+

bash deploy/verify-1panel-install-wizard.sh — 一键验收

+

可选宿主机 crontab: * * * * * /opt/nexus/deploy/health_monitor.sh

+
+
+ + + +

━━━ 后续配置清单(必须完成)━━━

@@ -594,17 +678,21 @@ location / {
- + + + +
- 7 + 安全收尾
-

✓ 安装向导已锁定 — 删除 .env 文件可重新安装

-

.env 包含 SECRET_KEY/API_KEY — 安装后不可修改(加密一致性)

-

✓ 防火墙限制端口 (仅允许本机和子服务器IP)

-

✓ 修改管理员默认密码

+

✓ 安装向导已锁定 — Docker 重装见知识文档 §7.4(删卷内 .env)

+

.env 含 SECRET_KEY/API_KEY — 安装后不可修改

+

✓ 防火墙限制端口 (仅本机与子机 IP)

+

✓ Compose 已绑定 127.0.0.1:,外网经 OpenResty 访问

+

✓ 请使用强密码登录管理后台

@@ -639,6 +727,7 @@ function installWizard() { redisRepaired: false, resolvedRedisUrl: '', dockerDefaults: null, + dockerMode: false, credLoading: false, credChecks: [], credAllPass: false, @@ -671,9 +760,16 @@ function installWizard() { system_title: 'Nexus — 服务器运维管理平台', }, + get isDockerInstall() { + return !!(this.dockerMode || this.dockerDefaults); + }, + get guardianAllOk() { const results = this.initResult?.guardian_results || []; if (!results.length) return false; + if (this.isDockerInstall) { + return results.every(r => !r.includes('✗')); + } return results.every(r => !r.includes('✗') && !r.includes('⚠')); }, @@ -744,6 +840,7 @@ function installWizard() { }); if (d.install_dir) this.installDir = d.install_dir; if (d.pool_size) this.initResult = { pool_size: d.pool_size, max_overflow: d.max_overflow, guardian_results: d.guardian_results || [] }; + if (d.docker_mode) this.dockerMode = true; if (d.step >= 4) this.checkConnections(); } } catch(e) {} @@ -851,6 +948,7 @@ function installWizard() { this.initResult = d; this.installToken = d.install_token || ''; this.btPanel = !!d.bt_panel; + this.dockerMode = !!d.docker_mode; this.step = 4; await this.checkConnections(); } else {